安裝碰到的問題,安裝時會要編譯,所以需要安裝必要的開發套件,其實也就3個:libclutter-1.0-dev、libmx-dev、libclutter-gst-dev,然後再安裝 jsdx-toolkit 即可:npm install jsdx-toolkit
奇怪的是我執行了兩次 npm install jsdx-toolkit 才成功。
Just thinking more…
安裝碰到的問題,安裝時會要編譯,所以需要安裝必要的開發套件,其實也就3個:libclutter-1.0-dev、libmx-dev、libclutter-gst-dev,然後再安裝 jsdx-toolkit 即可:npm install jsdx-toolkit
奇怪的是我執行了兩次 npm install jsdx-toolkit 才成功。
上次裝 FreeBSD,是在 FreeBSD 4 的時候,換言之,已經是差不多快十年前的事情了。
首先當然是下載光碟,我下載了 DVD 版本,下載完畢,就用來開機。開機以後,安裝步驟出乎意料的簡單,問了鍵盤配置、網路、磁碟等等,不超過五個問題,就開始安裝。安裝完以後,就可以開機進去了。
進去以後,想要裝一些趁手的軟體,安裝是使用 pkg_add。pkg_add 預設是使用 FTP 去下載軟體來安裝,因為公司網路對 FTP 的封包非常不友善,於是要改為 HTTP,這裡要用 setenv PACKAGESITE http://ftp.tw.freebsd.org/pub/FreeBSD/ports/i386/packages-9.0-release/Latest/ 把預定要下載的網站改為台灣的伺服器,同時也將 ftp:// 改為 http:// ,這樣就好多了。
目前就先裝了 vim 跟 kde4,晚點再來試試用 ports 自己編譯。
昨天在用 Calibre 時,突然想到如果可以直接在 Calibre 裡直接做搜索與下載的動作不是很好嗎?原本是先去好讀網站上搜索,然後下載到某個資料夾以後,再放到 Calibre 裡,這樣的動作很繁瑣。
有起了念,就趕緊去找,之前是看過幾次寫 Calibre plugin 的文,但這次是增加對書籍的搜索,不知道是不是可以寫這樣的 Plugin。在 Calibre 的源碼裡翻找了一下,大致知道這樣是要寫個 Store,所以就用 Calibre store plugin 去搜索,就找到 Store plugin 的討論串。這個討論串裡面正好有提供框架,就直接拿來改了。今天改了一上午,就改的差不多了,源碼放在 github 上 。有需要的人就自行取用,使用上有一天一百次的限制,這是 Google APIs 的限制,你可以試著申請 developer key,然後把 haodoo.py 裡的 key 改掉,就可以自己擁有一天 100 次 query 的限額。
順便記錄一下幾個心得:
是這樣的,我在公司的電腦安裝了Calibre,想利用send to kindle把電子書寄到指定的e-mail位址,這樣Kindle就會自動更新。但是公司的郵件伺服器不提供SMTP,而Calibre本身的郵件設定又只有跟SMTP相關的部份,因此只能作罷。
這幾天想了又想,本來已經放棄,想要開始hack Calibre源碼,自己作一個 plugin 來補強了。但是正好看到有Open With這個 plugin ,靈機一動,就想到有這個,不就可以自己寫一個 script 來搭配使用了嗎?於是就開始實驗。
整理一下使用 PDF 的經驗談,作為日後參考。
閱讀 PDF:Windows 上主要是用 Foxit Reader ,偶爾會用 Nitro PDF reader 。用 Foxit Reader 是求快,用 Nitro PDF reader 的好處是可以匯出 PDF 裡的圖片。Linux 上我也是用 Foxit Reader ,然後以預設的 GNOME evince 為輔。在 PDF 檔上下標記? 我沒這個需求,所以沒用過,不知道這幾套對這功能的支援如何。
產出 PDF:我有用過的幾套免費軟體,都是以虛擬印表機的形式存在,所以只要選定指定的印表機進行列印,就可以產出 PDF。在 Windows 下,我使用過的軟體有 PDF Creator 、doPDF 、Nitro PDF Creator (好像是裝 Nitro PDF reader時裝上的),都不錯用,會用三套,是因為有時候會有字出不來的情況。在 Linux 上就最方便了,不必另外安裝,一樣也是列印時,指定列印到檔案即可。另外值得一提的是 Open/Libre Office ,裡面有提供獨立的選項,可以直接匯出 PDF。
合併與分割:如果只是簡單的合併跟分割,我是用 PDFSam ,這個可愛的工具是用 Java 寫的,Linux / Windows 上都通用。如果需要一次裁出好幾頁或是編排順序的話,Linux 上我是用 PDFMod ,Windows 上則是用從疑似從 PDFMod 分支出來的 Junko 。
編輯:我沒用到過,也就是說我到目前為止還沒有這個需求,等以後有遇到再說吧。我第一個會試試看的可能是 Open/Libre Office ,去年有聽說有加入這功能。
之前都忘記要 git svn dcommit,今天才想到要提交到伺服器,打指令時就出現 “File or directory ‘xxx’ is out of date;” 的錯誤訊息,試著先 git svn fetch 再 git svn rebase,git svn rebase 也是告訴我錯誤,但他多了一個提示,說可以試著刪掉 .git/rebase-apply 目錄,再 rebase 一次。為了以防萬一,我先把 .git/rebase-apply 備份起來,刪掉,再做 rebase,這次告訴我說有衝突,於是我解決掉該檔案的衝突,用 git add 加回去之後,再用 git rebase –continue 繼續合併的作業,最後就可以用 git svn dcommit 了。
學校圖書館換新系統了,所以,又懶得打勾。這次修正兩個網頁,一個是強制一次顯示出30筆資料,要不然一次只有10筆,還要翻頁才能繼續。另外一個就根據原來的稍稍調整名字,碰到問題的是,上下有兩個「續借」,想要在兩個的旁邊都加上”Check all”跟”Uncheck all”,可是卻只能加上一個。後來追蹤以後才發現,當我加了第一次”Check all”與”Uncheck all”以後,getElementsByTagName()傳回的陣列(elements)居然自動也跟著變大了,所以後面的「續借」按鈕就沒找到。我的解法就先用 list 把這兩個「續借」按鈕都紀錄起來,後續再用另外一個迴圈去一次處理。
好像是在看推還看噗的時候看到的,fcamel 大自己刻的工具gj,今天才在試,發現很方便,找關鍵字很快。使用方法很簡單,先安裝 id-utils (sudo apt-get install id-utils),然後在你要看原始碼的目錄下,輸入 mkid 先建立資料庫,之後就可以用gj keyword 列出有keyword的檔案並讓你選擇要看哪個檔案。如果你用 gj keyword keyword2 就表示要在有 keyword 的檔案裡再去找看有沒有 keyword2,依此類推。
預設是用 vi 去編輯檔案,要改的話,就稍微改一下 gj 即可,gj 是用python寫的喔~
The Harbour Project is a Free Open Source Software effort to build a multiplatform Clipper language compiler. Harbour consists of the xBase language compiler and the runtime libraries with different terminal plugins and different databases (not just DBF).
Harbour is a cross-platform compiler and is known to compile and run on MS-DOS, Windows (32 & 64), Windows CE, Pocket PC, OS/2, GNU/Linux and Mac OS X.
簡單的說,Harbour是Clipper的替代品,目前可以運行在很多平台上,雖然說跟Clipper/VFP同是xBase類的語言,但是還是有很大的差異,這些差異可以從文件裡看出來。不過Harbour有相當大的優勢,就是速度跟平台,它會先把 prg 轉譯為 C 語言,再編譯出執行檔,再者,它可以裝到很多平台上。對被拋棄的xBase語言的開發者來說,是可以考慮看看的。
Linux 上的安裝很簡單,就去Harbour下載網頁找到你的Linux版本,點進去,找到檔案下載即可,我是用Ubuntu,就到binaries-linux-ubuntu下,下載 .deb 檔案。下載以後,執行sudo dpkg -i harbour_3.0.0-1_i386_ubu_10.04-2.deb 就安裝好了。
接下來就寫程式,副檔名是.prg,就建立一個hello.prg,內容就像這樣
&& Output "hello world"
? "Hello world"
&& Create table,沒有VFP的create table,還真的有痛苦到。
local aDbf := {}
AADD(aDbf, { "Fld1", "N", 3, 0 })
AADD(aDbf, { "Fld2", "C", 4, 0 })
AADD(aDbf, { "Fld3", "C", 20, 0 })
DBCREATE("table1",aDbf)
use table1
browse() && browse 不再是指令,而變成函式了。
close all
執行 hbrun hello.prg 就可以直接執行,看到結果。使用 hbmk2 hello.prg 就可以編譯出執行檔 hello,輸入 ./hello 就可以執行。
上星期的某天花了一個小時在寫這個Script來幫我刪sheet,程式邏輯很簡單,很快就搞定了,只是另存新檔,打開以後,卻什麼東西都沒看到。存為 .csv 的話,的確是有資料,那就奇怪了,百思不得其解。一放就又放了一個星期,這次終於解開秘密了。另存新檔以後,不知道為什麼,打開以後視窗會被隱藏,所以什麼都看不到。只要取消隱藏視窗就可以看到了。程式的話,就是要這樣寫: Application.Windows(1).Visible=True,下面就是整個程式: