2013年9月21日 星期六

Installing Emacs on Win7/8/10 for dummies

20200411更新:新版(26.X)安裝請參考 在 win10 上,平行於現有 emacs 環境,安裝 spacemacs , 在 win10 上,平行於現有 emacs 環境,安裝 spacemacs (2) 

1. 抓 emacs , 網址 http://ftp.gnu.org/gnu/emacs/windows/

2. 解壓到合適的目錄

3. 執行 bin/addpm.exe 以建立捷徑 (新版已非必要動作,參 https://www.gnu.org/software/emacs/manual/html_node/emacs/MS_002dWindows-Registry.html )

4. (多機器共用工作環境設定,若不需要可跳過。)若有安裝 dropbox ,並有已寫好的 .emacs 檔,則在 C:\Users\[username]\AppData\Roaming 目錄中建立指向該檔的link 。此指令必需在具有系統管理員權限的cmd視窗中執行,[username]請替換為使用者的id。例如:

cd C:\Users\[username]\AppData\Roaming
mklink .emacs C:\Users\[username]\Dropbox\emacs\.emacs

5. 複製特殊字型(等寬的在表格較好看),如monaco、文泉驛,到字型目錄 C:\Windows\Fonts

6. 參"win10 上安裝 emacs 25.3 新增套件的注意事項" ,下載此檔 : http://ftp.gnu.org/gnu/emacs/windows/emacs-25-x86_64-deps.zip  並解壓縮到安裝主程式的目錄如 C:\Program Files\emacs-24.3\bin 。執行條列 lib 的指令後可知取得的檔案仍然必需視情況重新命名,才能被正確執行;沒提到的 zlib1.dll 也必需複製!!。

7. 接下來可以利用elpa,指令為 M-x package-list-packages 。某些 package 寫得不太優雅,當舊版沒有移除就安裝新版會有很嚴重的問題,因此建議更新時先移除舊版。


2013年9月20日 星期五

win7中利用perl將srt字幕檔延遲任意秒數

perl -p -i.bak -e "$k=16;s/((\d\d):(\d\d):(\d\d))/@{[sprintf \"%02d\",int(($4+60*$3+3600*$2+$k) \/ 3600)]}:@{[sprintf \"%02d\",int((($4+60*$3+3600*$2+$k) % 3600 \/ 60) )]}:@{[sprintf \"%02d\",($4+60*$3+3600*$2+$k) % 60]}/g;" "srt.srt"

其中$k=16指定要延遲的秒數為16秒,srt.srt是所要修改的字幕檔。這個i.bak參數是因應win7的限制,詳見 http://stackoverflow.com/questions/2616865/why-do-i-have-to-specify-the-i-switch-with-a-backup-extension-when-using-active


2013年9月3日 星期二

firefox之遠端除錯方式

之前提過mozrepl,可參考

https://github.com/bard/mozrepl/wiki

https://github.com/bard/mozrepl/wiki/Tutorial

它與emacs間的合作,可參考

https://github.com/bard/mozrepl/wiki/Emacs-integration

有段影片顯示了實際上的作業方式

但要如何載入jquery到網頁中呢?請看

http://stackoverflow.com/questions/6716388/how-to-inject-the-code-into-the-page-using-mozrepl

p.s.: 相對而言,google chrome使用jss來代替mozrepl的角色

2013年8月30日 星期五

抗拒有害影響十步驟from路西法效應

摘自 http://athoughtofpsychology.blogspot.tw/2013/07/11.html

 "我"
1.「我犯錯了!」:當機立斷對自己與他人承認自己的錯誤。
2.「我會很警覺。」:保持用心、警覺及批判性思考。
3.「我會負責任。」:為自己的決定和行動負責,不盲目服從權威。
4.「我會堅持自己的獨特性。」:不要讓別人把你放到類別,例如種族、性別中,堅持自己的個體性。



"群體"
5.「我會尊敬公正的權威人士,反抗不義者。」:分辨真正擁有專業、智慧並值得尊重的權威。
6.「我希望被群體接受,但也珍視我的獨立性。」:判斷什麼時候可以服從群體,什麼時候應該拒絕。

"價值"
7.「我會對架構化資訊維持警覺心。」:架構化的訊息例如標語、口號傳遞著某種意識型態,使我們沒有意識到自己正在受影響。
8.「我會平衡我的時間觀。」:當過去與未來結合,將能抑制現在的暴行,從而削弱情境的力量。
9.「我不會為了安全感的幻覺而犧牲個人或公民自由。」:拒絕當局的操弄,要我們交出部分自由以保證毫髮無傷。
10.「我會反對不公正的系統。」:與有相似想法的人合作,將個人的抵抗能力結合起來,就可能造成改變。

2013年8月25日 星期日

以javascript開發app的好處,及可能的應用

多年以前就有人說過,瀏覽器有一天會成為作業系統,而程式不再是下載後安裝、執行這樣的流程。隨著google docs的出現和成熟,感覺上這一天也慢慢的到來。

用javascript的好處,以目前風行的unobtrusive javascript概念來說,就是把html/css/javascript三者分離,感覺上有點像所謂的model-view-controller(MVC)分離的設計理念,而這些元素是分散在不同檔案裏的,相當程度上就像開發一個執行檔的專案中各組成原始碼一樣,可以容許分工、版本管理。另一方面來說,瀏覽器本身就已經是一個動態的執行環境,讓網頁在除錯和改寫上有高度的彈性,不需要整個執行檔重新編譯,可以立即inject或modify程式碼,配合上瀏覽器本身的開發者工具,可以立即繼續測試,這實在是有效率到一整個恐怖的境界。當然這些執行期的修改要記得寫回主要的html檔,不然就白改了XD而再搭配上所謂的cobrowsing工具,專案成員可以同時進行功能驗證、測試,同時開發、修改程式的各個部分,這個模式想必會是下一代開發工具的典範。

而在瀏覽網頁時,在開發者工具中可以即時進行改寫或查詢(web query),不需要再對頁面的原始html碼進行parsing;我12年前剛使用ie的webbrowser元件就發現這個可能的用法,不過當時使用ie5感覺還是很不穩定,利用delphi去呼叫又多了一層不確定因素。今天能很簡單的利用javascript及各瀏覽器提供的REPL工具(Run-Evaluate-Print Loop)去做到當初費盡心機又不穩定的自動化,真是令人讚嘆。

未來在網頁上做標註並進行分享會更加的容易,而pdf的協作顯然也可以朝這個方向來進行。標註的意義就是jquery的中心哲學,選擇什麼元素,做什麼動作。所以只要在網頁載入完成後injcet jquery,下達jquery指令,就可以進行標註。真是空前的簡單

2013年8月21日 星期三

以網頁模擬iOS app的方式

HOWTO: Native iPhone/iPad apps in JavaScript

js近來的進展神速,大家都是有目共睹的。此文提出以網頁模擬iOS app的方式,不但在開發流程上加快許多,真有必要時仍可包裝成app上架到app store去賣。 (但就如作者所言,why bother?)

2013年8月18日 星期日

希臘羅馬神話

圖書館中常見的兩本是譯自Edith Hamilton-Mythology及Gustav Schwab-Ssagen des Klassischen Altertums。

根據美國的雅虎知識家,建議的參考書版本有四,上面是其中兩個。顯然前者是大學常用的參考書,後者比較傾向口語化,而且較為詳盡。我個人比較喜歡後者,但是字體有點太小了…