最近使用 resume 把 markdown 轉 PDF 時,遇到中文變成空白的問題。
造成問題的原因是 resume 使用 pandoc, 而 pandoc 預設的 latex 引擎不支援 utf8。pandoc 在 github 上有個 issue 討論過這個問題,只要加上指定引擎與字體的參數即可解決。不過我照做之後,中文依然還是空白,原因不明。
在瘋狂 google 後找到 vgod 的文章,特別指出需要使用XeTex 引擎,這點與上述作法一致。使用他給的 template 是可以產生中文的。差別在於前者的解法使用 command line 參數,而後者是寫成 latex 語法。
我試著在 resume.py 處理過後的檔案開頭加入一行 \setmainfont{Adobe Ming Std} ,果然成功了。
到此為止的結論是,command line 參數不知為何沒有成功傳進去。
工匠、學人、設計師
夢想成為實力一流的工匠,熟稔軟體開發。 夢想成為掌握底層運作原理的學者,永遠是個學徒。 夢想打造偉大的作品、真正符合人們需求的工具。
2014年8月17日 星期日
2014年8月16日 星期六
讓 instiki 復活
instiki 大概是沒人在維護了, 隨著 ruby 版本的更新漸漸出一些相容性的問題 :(
總之就是 ./instiki 會 crash, 把錯誤訊息拿去 google 會找到「把 ruby 版本降級」、「重新安裝 sqlite」之類的回答,但仍跑出「找不到 libsqlite3.0.8.6.dylib」問題。
rvm use 1.9.3-p392
ruby bundle install --path vendor/bundle
gem uninstall sqlite3
gem install sqlite3
問題似乎出在 homebrew 上。找不到 sqlite 的問題不只出現在 instiki ,svn也被它雷過。
最後的必殺技是:自己做一個 soft link 。
ln -s /usr/local/opt/sqlite/lib/libsqlite3.0.dylib /usr/local/opt/sqlite/lib/libsqlite3.0.8.6.dylib
不過這種解法,等哪天 sqlite 重灌 / homebrew 重灌 / OS 重灌後又會再冒出來...
總之就是 ./instiki 會 crash, 把錯誤訊息拿去 google 會找到「把 ruby 版本降級」、「重新安裝 sqlite」之類的回答,但仍跑出「找不到 libsqlite3.0.8.6.dylib」問題。
rvm use 1.9.3-p392
ruby bundle install --path vendor/bundle
gem uninstall sqlite3
gem install sqlite3
問題似乎出在 homebrew 上。找不到 sqlite 的問題不只出現在 instiki ,svn也被它雷過。
最後的必殺技是:自己做一個 soft link 。
ln -s /usr/local/opt/sqlite/lib/libsqlite3.0.dylib /usr/local/opt/sqlite/lib/libsqlite3.0.8.6.dylib
不過這種解法,等哪天 sqlite 重灌 / homebrew 重灌 / OS 重灌後又會再冒出來...
2013年12月29日 星期日
解決 lolcommits 中文亂碼問題
lolcommits 提供 --font 參數以客製化字型。打開字體簿,找個喜歡的字體吧!
在 mac 上可以這麼做:
lolcommits --capture --font=/Library/Fonts/Apple\ LiGothic\ Medium.ttf
而更改 lolcommits 的預設行為,可以透過修改 .git/hooks/post-commit 達成。
在 mac 上可以這麼做:
lolcommits --capture --font=/Library/Fonts/Apple\ LiGothic\ Medium.ttf
而更改 lolcommits 的預設行為,可以透過修改 .git/hooks/post-commit 達成。
2013年1月4日 星期五
apache config 學習資源
在 OSX 設定防火牆,特別是轉port的設定
http://ikawnoclast.com/security/mac-os-x-pf-firewall-avoiding-known-bad-guys/
apache 常見錯誤設定
http://wiki.apache.org/httpd/CommonMisconfigurations
這篇有教怎麼同時聽80跟8080
http://httpd.apache.org/docs/2.2/vhosts/examples.html
http://ikawnoclast.com/security/mac-os-x-pf-firewall-avoiding-known-bad-guys/
apache 常見錯誤設定
http://wiki.apache.org/httpd/CommonMisconfigurations
這篇有教怎麼同時聽80跟8080
http://httpd.apache.org/docs/2.2/vhosts/examples.html
2012年11月28日 星期三
OS X 上如何 restart deamon
在 FreeBSD 上,如果我們要 restart syslogd, 作法是:
/etc/rc.d/syslogd stop
/etc/rc.d/syslogd start
然而在 OS X 下並沒有 /etc/rc.d/ , 當然也看不到這類 deamon script.
根據 Apple Mailing Lists, 就直接kill它, launchd會重新把它跑起來。
/etc/rc.d/syslogd stop
/etc/rc.d/syslogd start
然而在 OS X 下並沒有 /etc/rc.d/ , 當然也看不到這類 deamon script.
根據 Apple Mailing Lists, 就直接kill它, launchd會重新把它跑起來。
2012年10月11日 星期四
2012年10月1日 星期一
在mac中,用 Virtualbox boot 外部實體裝置的問題
問題一(已解決):vmdk建好了,卻無法加入VM?
如何用 VBoxManage 建立一個指向實體裝置的 vmdk 檔,google一下就會有很多資料。
要注意的是,在mac下這個指令必須以sudo執行。
然後在Virtualbox GUI畫面,建立新的VM、「加入現有硬碟」這一步就卡住了。
(注意,在加入硬碟時必須把該硬碟「Eject(退出)」。OSX會自動加載,請把它退出。否則Virtualbox會告訴你「resource busy」。)
http://ubuntuforums.org/showthread.php?t=1914382
https://forums.virtualbox.org/viewtopic.php?f=8&t=50326
上面兩篇討論串指出,The medium <filename> can't be used as the requested device type 錯誤是使用者權限的問題。
我試過對該vmdk檔以 chown 把擁有者改回自己、以 chmod 把權限改成777,即使如此還是無法加入硬碟。
猜想,應該是由於該檔案指向/dev/disk2,而/dev底下的裝置只有root權限才能存取所致。
故解法變成,`sudo Virtualbox`:以root權限啟動Virtualbox。
這方法work,不過要注意開起來的Virtualbox會與你平常用的分開。在這裡創建的東西會存在 /var/root/VirtualBox VMs/ 底下。
雖然每次用都要以root權限較麻煩,但至少可以work。
[2012/10/2 下午11:05 更新]
找到mac的解法了,網址如下:http://www.garrettbartley.com/2010/06/12/running-bootcamp-using-virtualbox/
linux的解法是讓user加入disk群組,以取得磁碟存取權限;然而mac無法這樣做。上述網頁是將/dev/disk1用chmod改變權限;然而重開機即失效,故令寫一支applescript並存為應用程式。
問題二:無法以EFI開機
我目前遇到第二個還沒能解決的問題是,當外部裝置以EFI開機會失敗。
日前製作了一份小白整顆硬碟的拷貝,OSX已經安裝rEFInd。照理說這顆硬碟開機會進入rEFInd的選單畫面,但VirtualBox只是閃了一下就結束程式了。
問題三(已解決) :eject flash USB,/dev/disk2卻不見了?
在Finder「退出」,對不同USB裝置的意義也不同。退出外接硬碟,/dev/disk2還會留著;退出flash USB,/dev/disk2會一起消失。
解法是,在終端機下指令`diskutil unmountDisk /dev/disk2`.
這樣Finder上的圖示會消失,而/dev/disk2卻會留下來。
參考:http://apple.stackexchange.com/questions/40112/how-do-i-mount-ejected-external-usb-flash-storage
問題四:用實體裝置的vmdk當做硬碟,會無法透過光碟開機
其實還有一種可能,即root權限下的VirtualBox不能做這件事。這想法不太合理,但我還沒測試過所以還是不將他排除。
如何用 VBoxManage 建立一個指向實體裝置的 vmdk 檔,google一下就會有很多資料。
要注意的是,在mac下這個指令必須以sudo執行。
然後在Virtualbox GUI畫面,建立新的VM、「加入現有硬碟」這一步就卡住了。
(注意,在加入硬碟時必須把該硬碟「Eject(退出)」。OSX會自動加載,請把它退出。否則Virtualbox會告訴你「resource busy」。)
http://ubuntuforums.org/showthread.php?t=1914382
https://forums.virtualbox.org/viewtopic.php?f=8&t=50326
上面兩篇討論串指出,The medium <filename> can't be used as the requested device type 錯誤是使用者權限的問題。
我試過對該vmdk檔以 chown 把擁有者改回自己、以 chmod 把權限改成777,即使如此還是無法加入硬碟。
猜想,應該是由於該檔案指向/dev/disk2,而/dev底下的裝置只有root權限才能存取所致。
故解法變成,`sudo Virtualbox`:以root權限啟動Virtualbox。
這方法work,不過要注意開起來的Virtualbox會與你平常用的分開。在這裡創建的東西會存在 /var/root/VirtualBox VMs/ 底下。
雖然每次用都要以root權限較麻煩,但至少可以work。
[2012/10/2 下午11:05 更新]
找到mac的解法了,網址如下:http://www.garrettbartley.com/2010/06/12/running-bootcamp-using-virtualbox/
linux的解法是讓user加入disk群組,以取得磁碟存取權限;然而mac無法這樣做。上述網頁是將/dev/disk1用chmod改變權限;然而重開機即失效,故令寫一支applescript並存為應用程式。
問題二:無法以EFI開機
我目前遇到第二個還沒能解決的問題是,當外部裝置以EFI開機會失敗。
日前製作了一份小白整顆硬碟的拷貝,OSX已經安裝rEFInd。照理說這顆硬碟開機會進入rEFInd的選單畫面,但VirtualBox只是閃了一下就結束程式了。
問題三(已解決) :eject flash USB,/dev/disk2卻不見了?
在Finder「退出」,對不同USB裝置的意義也不同。退出外接硬碟,/dev/disk2還會留著;退出flash USB,/dev/disk2會一起消失。
解法是,在終端機下指令`diskutil unmountDisk /dev/disk2`.
這樣Finder上的圖示會消失,而/dev/disk2卻會留下來。
參考:http://apple.stackexchange.com/questions/40112/how-do-i-mount-ejected-external-usb-flash-storage
問題四:用實體裝置的vmdk當做硬碟,會無法透過光碟開機
其實還有一種可能,即root權限下的VirtualBox不能做這件事。這想法不太合理,但我還沒測試過所以還是不將他排除。
訂閱:
文章 (Atom)