2011年12月23日星期五

Vim system clipboard

之前一直都不知道如何將vim裏的剪貼簿內容複制到系統的剪貼簿
預設的Vim是用自己的剪貼簿的,yy複制的內容不能用滑鼠右鍵貼上
好像是Vim裏每個剪貼簿都叫做register,而預設的是*
圖形界面的剪貼簿好似是用+
所以"+y是會複制到系統的剪貼簿,可以用"+p來貼上也可以在其他地方用滑鼠右鍵貼上
改用系統剪貼簿作為Vim預設的剪貼簿:
set clipboard=unnamedplus
貌似在Windows或Mac OS X用的是unnamed而不是unnamedplus,反正我在Linux裏需要的是unnamedplus

之前試過這個方法一直都不行,上網查查貌似Ubuntu需要安裝vim-gnome
果然sudo apt-get install vim-gnome後就沒問題了:)
Via

2011年12月3日星期六

MySQL user backup

備份MySQL使用者的方法
只備份權限的話很簡單:
show grants for wikiuser;
會輸出兩行GRANT XXXXX
只需要備份那兩行SQL code即可
需要回復的時候直接用admin user執行那兩句GRANT就能回復

所有使用者資料都是存放在mysql database裏的user table
mysql database只有admin user才能訪問的

2011年11月25日星期五

lighttpd htdigest

Lighttpd用htdigest方式登入,可以看這篇教學
我是使用了vhost的,不過主要是在url裏設定auth.require
例如要為trac設定登入,指定trac/.*/login需要認證才能訪問
我選擇了htdigest作為認證方式,clinet那邊會先把password跟username和realm做hash然後才傳給server
這種登入方式不是十分安全的但總比沒有好:)

auth.backend                   = "htdigest"
auth.backend.htdigest.userfile = "/etc/lighttpd/lighttpd-htdigest.user"

    $HTTP["url"] =~ "^/trac/.*/login($|/)" {
        auth.require               = (
                                      "/" =>
                                      (
                                       "method"  => "digest",
                                       "realm"   => "XxXXXxxxXx",
                                       "require" => "valid-user"
                                      )
                                    )

除了在url裏指定auth.require還要在global的地方指定userfile的位置
在userfile裏存放了登入的帳號和密碼hash
格式是:
"username:realm:passwdhash"
可以用下面的function來方便地產生
function hdg() { user=$1; realm=$2; pass=$3; hash=`echo -n "$user:$realm:$pass" | md5sum | cut -b -32`; echo "$user:$realm:$hash" ; }
hdg user xxxxx ppppp
user:xxxxx:15c45a538d4d92f0a4f519311147f098

2011年11月20日星期日

淘寶洗車機

以前都要留意淘寶上的洗車機,一般有兩種
一種是手動打氣的另一種是用電的
手動打氣的肯定水壓不夠大而且洗一次車估計要打好多次氣
用電的水壓應該夠大,估計不錯的
可是需要用汽車裏電池的電力很怕會耗盡了電池的電力
但最近出了一種內置電池充電型的洗車機
售價比手動型貴很多但是內置了電池,這樣洗車就變得容易好多啦!
因為有水槍才能清潔後更干淨又省力省時間

這款是手動型的要89RMB、這款就是充電型的要230RMB
好想買一個來試試~

2011年11月13日星期日

VIM 轉換檔案編碼

有些時候需要把一些用日文encoding儲存的文字檔轉換成utf-8 + BOM
以前都是MadEdit來做,不過這程式太長時間沒開發有很多Bug都沒修復
用着很不爽,於是用vim來做
又快又方便

先用vim打開目標文字檔,然後執行以下命令
:e ++enc=cp932
:set fenc=utf-8
:set bomb

:e ++enc就是重新編輯當前打開的檔案
fenc和bomb就是設定用utf-8 encoding+bom來儲存檔案

++++++
:help encoding-names可以查看vim支持的編碼
cp932是日文cp936是簡體中文big5是繁體中文

2011年11月9日星期三

iPad串流播放電腦上的影片

最近發現了一個方法可以用iPad串流播放電腦裏頭的影片,不用下載就能直接播放
可以節省iPad的內置空間:)
首先我們需要Oplayer HD,它支持HTTP streaming
不用下載就能直接播,FTP和SAMBA好像也支持的
但我試過總是不成功,用HTTP最方便的了
問題是如何臨時架設一個HTTP server?
簡單地用Python即可,先在Terminal裏移動到想要分享的目錄:
$python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"
最後在Oplayer HD裏用瀏覽器打開電腦的ip:8080例如:http://192.168.11.22:8000
然後就可以在線播放電腦裏的影片啦

Oplayer HD支援很多格式,它用了FFmpeg library
所以大部份電腦能播放的影片它應該都能看
不過在線串流似乎不能快進或倒退,只能順着一直看啦

PS
暫時iPad2沒有方法越獄,又不想花錢買天火
所以沒有辦法上網看Flash影片
常常去的acfun就沒辦法上
就算是土豆優酷那些也沒辦法,下載觀看那招在iPad上又無效
現在能串流播放電腦入面的東西算是個救贖吧!

2011年10月21日星期五

gcc 4.x link lib

最近寫程式發現,以前能編譯的代碼突然無法運行
例如在代碼裏要使用sqrt function,gcc需要在編譯時連結到libm
所以需要用加上-lm參數
以前是:gcc -lm a.c
但現在:gcc a.c -lm
看上去好像沒分別但其實新版的gcc規定了-l選項的位置,只會對前面的代碼有效
例如gcc a.c -lm b.c這樣libm只會在a.c裏有效,在b.c就不可以使用math.h

所以我用以前的方法來編譯就會出錯:
undefined reference to `sqrt'

2011年10月18日星期二

Blender open movie project


這裏看到有關Blender之前的Project
第五部Mango計劃關始,貌似是真人拍攝的電影
好像Project London也是真人拍的?
順便就八掛下之前的幾個項目:Orange, Peach, Apricot 和 Durian
Orange就是Elephants Dream,一部3D短片
Peach就是big buck bunny,也是一部3D短片。常常在店鋪裏看見被用來做演示
Apricot就是Yo Frankie!,之前很出名的用Blender游戲引擎制作的3D電腦游戲。有點像超音鼠那種玩法
Durian是比較新的Sintel,有2K電影院畫質的3D短片。這時的Blender不單還有游戲引擎也有物理引擎等業界裏比較先進的技術
最後就是新聞裏介紹的Mango啦,全都是用生果名作為開發代號。很有趣: )

2011年9月29日星期四

一顆平常心

以前常聽說佛家講「平常心」要學會「放低」
人總是有好多事情放不下,出家人就是放下一切四大皆空所以才出家
但是出家人又常說要導人向善,真的四大皆空又為何要在意世人?
也許跟西遊記裏講的主要是佛教去取經,但卻不繼有道家神仙出現
因為作者自己相信佛學卻不得不承認道家思想有時更有用

以前我就以為所謂的平常心就是天天都溫習,不要考試前才臨急抱佛腳
直到最近見到人不停講「認真你便輸了」才有點體會
新聞常說某某天才怎怎樣、某某創業賺了多少
其實都不必太認真看待,看看就好
有些人常看不順這個看不慣這樣,真的有必要去麼?
「不認真」其實就是佛家講的「放低」,凡事不要去計較不要去鬥
世界之大無奇不有、見怪不怪奇怪自敗就是這個道理
要認真只對自己認真就好了,做人做事要對得住自己才能對得住天地良心
也就是所謂的「自強不息」
天外有天人外有人,與人比不如跟自己比
贏過自己才是真正的勝利

小學老師常說君子腹內可藏舟
以前不明所以,以為就是大量不要小氣不要去計較
大個才知道,這世界上有好多事
就像布袋和尚講的大肚能容天下事,心胸要能容下宇宙容下他人
這才是面對現實的表現
人生在世真的有很多很多事和物,總不會每一件都稱心如意
做人一定要學會理解和接受,就如剎那講的互相理解
好事壞事都會發生,只去看壞事不停的說好差好壞是不行的
只去看好事而不顧背面也不可以
那竟究如何是好?甚麼才是真正的理解和接受?
答案就是佛家講的平常心
你要去計較放下是甚麼,何謂放下?不顧家人不顧社會就叫放下?不要錢叫不叫放下?
這樣永遠也不知道真正的「放低」
放下就是放下,你放下了就放下了
你天天打工天天賺錢天天吃肉也叫放下,心裏放下一切自然也都放下
和尚出家不能吃肉,但是「酒肉穿腸過佛祖心中留」不也是道理麼?
你放下了也就不會去計較吃的是素是肉,你硬要計較說自己一定要吃肉的話又如何放下?

我想佛家最重要的就是「平常心」
以前和以為我知道甚麼是平常心,現在我發現我不知道甚麼是平常心
但下一秒可能我又知道了,再過一分鐘可能我又忘了
平常心就是平常心,會的自然就會
不會的想破腦袋也不會,不去想?可能又懂了!

2011年9月27日星期二

ubuntu bluetooth suspend

在爛蘋果裏安裝了Ubuntu,一切都很美好:)
我的是MacBook Pro 5,1按照Ubuntu Official Guide去做基本上都OK (here)
差不多全部硬件都可以正常工作,就除了遙控器之外
(用蘋果的Keynote做演講比Openoffice好太多啦,所以還是留着Mac OS X吧)

安裝過程其實有點密技的
首先別使用其他分盤工具劃分硬盤空間,我以前試過是好好的沒有問題
但是現在分好後進入Mac OS會死機,一定要用Boot Camp分才可以
反正用Ubuntu來分又要安裝rEFIt又要同步分區表
用Boot Camp分的缺點就是只能把Ubuntu安裝左一個分區,但其實這並沒有甚麼問題
分好以後建一個swap file用來做交換空間即可
用Boot Camp分好區後選擇「現在安裝」預設開機會進入Linux,可以按住option鍵開機選擇Mac OS
在Mac OS裏可以用「啟動磁碟」改回Mac OS的,但是就不能改回預設進入Linux(因為Mac OS認不出它是Linux)

127.0.1.1

在Ubuntu裏預設把hostname設定127.0.1.1
localhost是127.0.0.1
其實在127.0.0.0/8笵圍下都是屬於loop back 使用的
所以隨便定一個都可以的,有就好
貌似是因為甚麼FQDN原因所以要把localhost和hostname分開
然後隨便的就用了127.0.1.1
連線router以後會把hostname註冊到router上的domain裏和真實的IP

2011年9月25日星期日

讓Firefox支持桌面通知

Google Chrome實現了很有用的桌面通知(desktop notification)功能
可以該Gmail通過Google Chrome發送彈出式通知提醒有新郵件
Firefox理所當然也應該支持的,對吧?
官方的貌似在計劃中但現在Firefox 6.0也還未支持
幸好有第三方擴展可以用~

這個ff-html5notifications擴展不是在Firefox addons網站上,是放在Google Codes上的開源項目
安裝它後就能讓Gmail也能透過Firefox發送桌面通知~

2011年9月24日星期六

Installing Samba on Gentoo

在Gentoo裏安裝Samba其實很簡單
不過發現網上很多教學過時了
只用作Server分享檔案的話,先設定一下USE
我沒作深入研究,就是不安裝client和printer其餘都是按照預設的
net-fs/samba -smbclient -client -cups server async
然後安裝samba套件就可以
sudo emerge -av samba

安裝完得要設定一下的
首先要在samba的使用者資料庫裏加入有效的使用者帳號
以前是用smbpasswd的但是現在這命令已經取消了
取而代之的是pdbedit,用這條命令就能加入新的使用者
sudo pdbedit -a -u USERNAME
按下Enter後會提示輸入使用者的密碼,不一定要跟登入電腦用的一樣
以後就能用這個帳號登入samba的目錄裏

之後當然要設置一下/etc/samba/samba.conf
預設是沒有這個文件,只有samba.conf.default
把它cp過來即可
預設值其實已經能夠使用,它會自動把使用者的HOME目錄分享出去
也會指printer分享出去使用
詳細按個人需要而定

2011年9月16日星期五

水桶洗車&打蠟

家裏的停車場有水喉可以接水,但是水喉旁邊沒有位置停車。
而且水喉是在行人出入的門口附近,在那裏洗車肯定會阻到人
只有水桶的話洗車實在很麻煩,之前用水樽裝水直接淋上車身
這樣洗跟有水喉差不多的但是需要很多水又要跑好多轉裝水回來
昨天放假有時間了我又洗車
今次就不用水樽了,就像其他人一樣用濕布抹也有用洗潔精

我的洗車流程是這樣的:
先淋濕車身-》用泡泡水洗擦車身-》用淋布抹干淨車身-》吸干水-》抹玻璃-》打蠟-》吸塵
如果不打蠟的話就先吸塵然後抹車裏面
先淋濕車身-》用泡泡水洗擦車身-》用淋布抹干淨車身-》吸干水-》抹玻璃-》吸塵-》清潔內部

2011年9月15日星期四

Ubuntu chroot (Debootstrap)

在Gentoo下很容易就能進入一個chroot環境,用來做一些實驗性的事(例如安裝測試版的套件)
在Ubuntu(或者說Debain)也能這樣做的:)
而且比Gentoo更簡單
Ubuntu有一個叫做DebootstrapChroot的東西就是用來建立chroot環境的
(其實也可以用來安裝Ubuntu就像安裝Gentoo一樣,可能舊時代沒有liveCD installer時就用這東西的??)
還有一個schroot用來管理chroot環境,這個是可選的但是用了它就可以不用super user權限就能開啟一個root user的chroot
詳細步驟在ubuntu wiki裏寫得很清濋,首先當然要安裝這兩個東東:
sudo apt-get install debootstrap schroot
然後找一條ubuntu的source url,例如http://archive.ubuntu.com/ubuntu/
澳門的也可以用這個:http://mo.archive.ubuntu.com/ubuntu/(但是好慢囧)
然後下載一個最小化的Ubuntu到一個目錄裏,我是放在HOME下的ubuntuchroot
$ sudo mkdir -p ~/ubuntuchroot
$ sudo debootstrap --variant=buildd --arch amd64 natty ~/ubuntuchroot http://archive.ubuntu.com/ubuntu/
--arch amd64是64bit版本,如果想在64bit系統裏安裝一個32bit環境可以改回i386
natty就是Ubuntu 11.04,也可以用其他的版本
buildd會安裝build-essential套件,如果想最少化的話用minbase應該也可以的
這樣debootstrap就會自動完成所有工作,基本上可以直接執行chroot進去
為了方便以後隨時進入chroot環境,我們需要設置一下schroot
wiki裏寫的是舊版本用的,現在貌似改變了少許(以Ubuntu 11.04 Natty為例)
schroot的設置文件是/etc/schroot/schroot.conf,在裏面加入:
[server]
description=Ubuntu server for developing
directory=/home/USERNAME/ubuntuchroot
root-users=USERNAME
type=directory
users=USERNAME
要把USERNAME換成自己系統的使用者名稱,directory當然要填剛才下載東西的那個
root-users所指定的使用者就能夠不需要super user權限直接打開一個root的chroot環境

2011年8月11日星期四

掛福頭賣蔡司

眾所周知,現在的蔡司鏡有好多都是日本COSINA代工生產的
COSINA還收購了德國福倫達(Voigtlaender)
生產福頭和Bessa旁軸相機
看了網上對蔡司鏡的介紹,對BiogonSonnar很有興趣
好奇看看福倫達的鏡頭,發現原來福頭都有類似結構的鏡頭!

Voigtlaender的NOKTON classic 40mm F1.4Carl Zeiss C Sonnar T* 1,5/50 ZM的結構非常接近
有接近的焦距和相同的七片六組的鏡片(Rollei也有一支Sonnar是40mm的)
Voigtlaender的COLOR SKOPAR 21mm F4Carl Zeiss C Biogon T* 4,5/21 ZM的結構非常接近
有一樣的焦距和八片六組的鏡片
福倫達的網頁上沒有寫但我相信這兩支就是福頭的Sonnar和Biogon鏡頭吧?
原本想看看ULTRON 40mm F2是不是Planar
ULTRON 40mm的鏡片數目和排列都很相似,但是結構並不一樣也不是雙高斯設計的

光圈

以前一直不明白光圈級數是怎樣算出來的
快門級數是時間直接乘上二,很好理解
但光圈f2.8下一級是f4再下一級是f5.6最下一級是f8
以前以為是前一級乘上2得出來的
例如5.6是2.8*2、8是4*2
但心裹頭想想,總應該有公式可以把它們算出來吧?

上網查了一下,各有各說法但都沒有證明
最後上維基翻一翻Aperture,終於得到解答
首先光圈的那個f值是焦距除以光圈孔徑得出來的
F是焦距,N是光圈f值
然後光圈的半徑就是f/2N
光圈的面積就是π * (f/2N)^2
縮小一級光圈即是光圈的面積減半(快門時間快一倍,光圈面積少一半通過的光才相等,對吧?)
下一級光圈的面積乘二等於上一級光圈的面積
所以:π * (f/2N)^2 = 2 * π * (f/2N')^2
化簡得出2*N^2 = N'^2
所以兩級光圈之間的關系事實是是平方比就2:1
如果光圈值由f1開始,下一級光圈值就是sqrt(2 * 1^2) = sqrt(2) ~= 1.4
再下一級光圈值的平方就是sqrt(2 * 1.4^2) = sqrt(3.92) ~= 4
光圈值就是這樣得出的啦~

2011年8月8日星期一

Tessar 2.8/50 CARL ZEISS JENA DDR

拍了幾卷菲林之後終於能大概掌握到一點點這支鏡頭的特性
首先這支是Tessar結構的鏡頭czj 50 2.8
由四片鏡片組成,特點是鏡頭銳利影像清淅
缺點應該是2.8光圈上限,無法再放大光圈
在50mm標準鏡頭裹這支的光圈只有2.8,其他鏡頭普遍都有1.8的最大光圈

2011年8月5日星期五

攝影師之眼

這幾天我拿着我的小相機DC拍了幾張相
雖然我用的只是便宜又沒用的相機,鏡頭質素好有限
但還是能拍出不錯的作品
相機是有極限但人是沒有極限的
器材好當然能容易影靚相
器材壞就要多花點工夫啦~

在我的心中攝影是一個過程,觀察、思考、決定。
觀察就是取景,尋找有趣的主體或者攝影師想要記錄的畫面
思考就是構圖和曝光,在拍攝前攝影師要思考一下如何構圖才能表現出主體
用甚麼曝光組合才能還原出攝影師眼中的畫面
最後決定就是按下快門
所以影相其實是很快的一件事,按下快門的一刻一切都定下來了

2011年8月2日星期二

追新番

最近發現了兩個新番動畫資訊的網站:動漫FANSBangumi番組計劃

Bangumi計設得比較好,每日放送那裹收集了一星期中每一天播放的新番。點進去還有新番的介紹,追新番必備的工具呀!
好像注冊會員後還有專用的工具幫用戶追新番用,例如記錄看到哪一話等。


Update@2012-01-23
動漫FANS的網站貌似打錯字了囧
今季新番介紹在這

2011年7月15日星期五

tile window on Linux

在Mac和Windows下有一個很酷的軟件叫Divvy
可以輕易地把視窗平鋪,就算是有雙熒幕也是很好用的
在Linux下有沒有呢?
答案是有的,Compiz有Grid plugin
可以像Divvy那樣平鋪視窗
Compiz也有Tile plugin是直接把所有視窗垂直或水平地平鋪
雖然這兩個Plugins都比較Bug...
現在Ubuntu裏的window manager也支持像Windows 7那種拖着視窗到熒幕左邊的邊沿
就可以把視窗的大小變成整個熒幕左邊一半的大小
右邊同樣

最後,還有這個X-Tile可以一試

2011年7月11日星期一

臉書與狗狗家 (Facebook vs Google+)

很多人說Google+是針對Facebook
但我個人認為Google+在殺掉Facebook之前twitter應該最先被殺掉
因為Google+的形式更類似twitter,可以說Google+是強化了的twitter而不是Facebook
在Facebook裹成為朋友必需要雙方確認,但Google+裹這是單方面的
由發文者去選擇誰能看文

狗狗家想要打贏Facebook的話現階段似乎很難
至少Facebook上有很多商家
他們或多或少都會幫Facebook宣傳吸引使用者但狗狗家現在則沒有
雖然狗狗家的功能是很強很好用,但看來狗狗家要走的路還有很長~

Cisco & linksys

Linksys是Cisco的網絡產品的牌子,好多人都認為網絡標準是Cisco定制的那麼Linksys的router一定是很強的啦
其實非也
Linksys的家用產品其實是很普通的,基本上與其他牌子無疑
為甚麼?
只因為它賣的東西只有外殼是自己設計的,內裹都是外面買回來的現成零件
Linksys只不過是負責設計外觀和組裝
這就是ODM或者OEM,所以現在買電子產品牌子並不是很重要
除非消費者對產品的外觀很有要求否則一切都以規格為重

Linux環境下查看電腦硬件配置

昨天剛好有人問我如何在Linux裹查看電腦的硬件配置
我便整理一下方法吧

首先PC裹最重要的當然是CPU和RAM
在/proc目錄下有兩個檔案記錄了相關信息,分別是/proc/cpuinfo和/proc/meminfo
cat /proc/cpuinfo
cat /proc/meminfo
cpuinfo裹記錄了這顆CPU的所有重要信息包括型號、時脈和Cache size
而meminfo所記載的信息就比較少了,有用的就只有Total memory size
除此之外,電腦上其他重要的硬件都是使用PCI連接CPU的
所以可以使用lspci查看所有用PCI連接的硬件設備

如果想進一步查看memory的信息例如連接了多少條RAM或者RAM的規格等
就需要用dmidecode指令,它會讀取/dev/mem所以需要到ROOT權限
最後還有lshw可以提供到整台電腦配置的報告

2011年7月9日星期六

匯入Facebook的朋友到狗狗家(Google+)

狗狗家裹呆了幾天,沒甚麼朋友在上面真的很悶
好想在狗狗家裹尋找Facebook的朋友
看到了這個方法

原來可以先把Facebook裹的朋友導入到Yahoo,接着在Google plus裹導入Yahoo的朋友
這樣便可以把Facebook裹的朋友間接導入到Google+
首先要有一個Yahoo的Account,登入後到連絡人裹選擇導入
之後會問你從哪裹導入,選擇Facebook即可
彈出一個新視窗問你是否允許Yahoo使用Facebook,當然是
然後回來Google+,進入Circle頁面
Find and Invite裹面有一個Yahoo,點它一下
又會彈出一個新視窗問你是否允許Google使用Yahoo,繼續是
接下來是慢長的等待。。。

我試了一下
在Yahoo裹導入Facebook的連絡人好簡單,很快便完成
但是在Google+裹導入Yahoo的連絡人就好慢了,等了很久也沒有效果
只見到Yahoo寫着Connected

2011年7月4日星期一

狗狗家(Google+) 邀請朋友


最近在Twitter上得到邀請加入Google plus
第一時間當然是想邀請朋友一起來玩~
不過找不到invite的按鈕,上網查了一下發現這個方法

首先務必把你要邀請的朋友加進Circle裏
Google Plus是可以把Gmail裏的連系人加入Circle的
然後發一貼上面要寫有他的名字
例如@name 打上英文的@符號然後再打他的Email或名稱,會彈出補完清單讓你選擇的
有時候會有Bug在清單上找不到他,可以在下面選擇要分享的Circle裏打他的名字,也會有補完的
再不成功的話就要叫他自己上plus.google.com看看能不能加入啦
基本上都很容易成功的~

2011年6月27日星期一

flac cue分割

以前遇到cue都是用wine模擬foobar 2000然後轉成分軌的ogg格式
前幾天想把無損音樂燒成CD,但是找不到任何燒錄程式是支持cue的
於是要手動把單個flac按cue分割成一個個單獨的文件
原本也想用foobar的,但是想想又不希望分軌後再次轉換格式而失真
所以就研究下命令行下的方式

先安裝:shnsplit cuetools
在Gentoo的Portage裹都有的,然後使用以下腳本
就可以把單個檔案分割成每首歌一個檔案,我沒有設定輸出格式所以是保留為wav
其實foobar 2000也是先轉成分軌的wav再把wav壓縮成需要輸出的格式
然後用cue裹的資訊填上去分軌後的檔案裹

2011年6月15日星期三

python full syntax (Full Grammar specification)

以前一直有個問題,在python裹到底是and優先還是or優先?
在多數情況下可能沒太大區別,但搞清濋總會比較好

於是查看了Python Full Grammar specification,這是Python裹的parser generator用的
所以Python的語法規則基本上都在這裹
顯然地,在Python2.7是先處理not expression然後再到and expression最後才是or
所以如果or expression裹有任何一個value是true的話整個test最後的值也肯定會是true


2011年6月13日星期一

Trac wiki page name

Trac真是很好用的一套software forge
內建的wiki很強大,預設是會使用CameCase形式來命名wiki page
例如AbCd會自動變成一個wiki page,由大寫字母開頭接着小寫字母再接大寫字母然後小寫子母完結
好多時候這樣會做成麻煩,例如JsonObject這個會變成一版
通常都不需要特別開一版叫JsonObject的,這樣wiki上就會顯示為不存在頁面
變灰了而且有個問號,很難看
在trac.ini裹有設定來隱藏不存在的頁面
[wiki]
ignore_missing_pages = True
這樣就不怕了

2011年6月11日星期六

Gentoo NTFS-3g

kernel裏有提供ntfs的支持,可是只能讀不能寫入
需要ntfs-3g這東西才能比較好的支持ntfs分區
安裝ntfs-3g很間單,首先kernel裏要啟用FUSE support
然後簡單地emerge ntfs3g
這樣就可以掛載ntfs格式的分區了~

在fstab裏用ntfs-3g作為文件系統的格式,就可以直接掛載
想通過udev來自動掛載ntfs-3g的外部硬碟機的話
只要修改/etc/udev/rules.d/99-ntfs3g.rules
加入以下內容:
ENV{ID_FS_TYPE}=="ntfs", ENV{ID_FS_TYPE}="ntfs-3g"

Via
++++++++++
更新:
原來ntfs3g是有udev的USE
設定了udev之後它就會加入udev的rules讓udev自動掛載ntfs-3g的外部硬盤

Gentoo mount internal disk without root

一直以來,我都用esata外接的dock來讀取外部的HDD
因為這樣比較方便
但是Gentoo裏把esata當作成internal devices,需要root限權才能掛載
上網查了很久,今天才發現在Arch的wiki裏有教如何用普通使用者掛載外部的hdd

修改/usr/share/polkit-1/actions/org.freedesktop.udisks.policy
<action id="org.freedesktop.udisks.filesystem-mount-system-internal">
<allow_active>auth_admin_keep</allow_active>
改成<allow_active>yes</allow_active>
這樣就可以以普通使用者的身份掛載外部的硬盤

2011年6月5日星期日

絕對無敵網頁

曾經聽過一個說法:絕對無敵的網頁設計
大概就是說,一個網頁即使在停用了JavaScript和CSS的瀏覽器裏也能正常顯示
(當然是沒有樣式的啦,但所以內容都可以觀看的)
而且,無論瀏覽器的大小和字型大小怎麼改變
都不影響內容的顯示

其實要做到這樣或許有點不可能
可是很多人都在這樣設計網頁的
來到Android手機軟件的開發,這個概念也一樣行得通
很多人會說是Android平台的分裂,就像瀏覽器一樣
有人會說出現眾多的瀏覽器是分裂嗎?
正如W3C的標準一樣
Google也有Android軟件開發的建議
例如使用相對定位(百份比%或字體大小em做單位)
每部手機或者平板的熒幕大小都不一樣,甚至像素密度也不一樣
手機熒幕的像素密度遠高於平板
所以顯示字型的大小也不一樣
使用根據像素密度計算出來的dp

2011年6月3日星期五

Ant UTF-8 encoding

Android Developers上面有Guideline寫着
java source code裹只能用ascii的字符,所以如果想在裹面寫中文的話compile時會出warning
而且無法顯示中文
花了一點時間去研究,在Eclipse下要解決很簡單
設定裹面->General->workspace有file encoding的選項
改成UTF-8就可以

不過我是用Terminal做開發的,使用ant來compile
它預設是使用Android SDK裹的rule來設定javac
首先執行ant debug,它會有一大段顯示
其中有一句:[setup] Importing rules file: platforms/android-8/ant/ant_rules_r2.xml
就要是改這個xml,一般是在Android SDK目錄下面的
搜尋一下ascii,會發現有個javac的tag和encoding的attribute
改成UTF-8就好啦(同時發現它用的javac是1.5版本囧)

2011年6月2日星期四

睇youku新招

上個月看PC3知道的
現在香港、澳門地區不能上youku看TVB垃圾劇集
限制只有內地才能觀看,應該是怕版權問題吧
但是現在有一招
首先上youku找出不能看的影片
例如TVB的新劇怒火街頭
按第一集,播放器會說不能觀看
這時只要到FLV下載
貼上第一集網頁的網址,它就會自動分析出影片的真實連結
通常都是每10分鐘一part的.mp4連結
直接按那些連結就可以在瀏覽器內觀看的啦~
當然也可以選擇下載回來慢慢看啦~

++++++

現在又有一招更方便的~
一樣先上優酷或土豆找想看的影片,然後點一下網址列
在youku或toduo前面加上xia
比如:http://www.tudou.com/playlist/p/a67605i111090482.html
變成:http://www.xiatudou.com/playlist/p/a67605i111090482.html
這時便會進入flvcd的網站,它會自動分析並把下載連結找出來
更支援大陸限定的720p或超清格式~
下載又快而且真的很清晰!

2011年6月1日星期三

社交网络 The Social Network (2010)

前晚花了一點時間看了Facebook電影
其實之前都知道這部電影的,因為對Facebook不太感興趣所以沒有去看
我是看了別人的影評後
發現原來這部電影其實拍得很不錯
所以就看看

平心而論,電影是很好看的
網上很多人都說原著小說不及電影好看
影評我就不懂怎麼寫的
我想講的是Facebook,很多人都會好奇Facebook是怎麼成功的
Facebook其實本身沒太大的創意
至少就有兩兄弟跟它有同樣的概念,不過好明顯沒有任何一家交友網站
可以與Facebook相提并論
尋找熟人,應該是Facebook最基本的概念
但這點不是它成功的原因
Facebook成功是因為它的創始人Mark Zuckerberg
我估計就算他當初做的不是Facebook而是其他
最後也一樣會發達成為最年輕的億萬富豪

先講講Facebook到底是靠甚麼賺錢的?

2011年5月31日星期二

Gentoo baselayout 2

Gentoo在上個月更新了baselayout到2.0
這是一個重大的改變,最主要是啟動器init加入了OpenRC
以往只有boot和default兩個runlevel
現在多了幾個
連加載kernel modules的方式也不一樣
以前的/etc/modules.autoload.d/kernel-2.6沒有了
取以代之的是更針對內核版本的設置方式
/etc/conf.d/modules

可以針對內核版本來加載模組,也可以設置加載模組時用的參數

以前我是用find來查找所以安裝了的模組再寫入kernel-2.6檔案裏面的
現在這句命令不能用了,所以我用awk再改了一下
#find /lib/modules/`uname -r` -type f -iname '*.o' -or -iname '*.ko' | rev | cut -d '/' -f 1 | rev | cut -d '.' -f 1 | awk 'BEGIN { ORS = ""; print "modules_2_6=\"" } {print $1 " "} END {print "\"\n"}'
# vi /etc/conf.d/modules


同樣用find找出所有模組,再用awk把它們連成一行
頭尾再加上需要的字符
把印出來的直接貼在modules裏面即可

2011年5月16日星期一

HTML slides

用HTML做presentation/演講看上去很有趣的
事緣在看Google I/O 2011八卦時見到一份Google的slides
用HTML5技術做的,好過癮
於是上網四出尋找,最後發現了三個現有的工具可以做HTML slides
分別是Docutils的rest2s5、W3C的HTML Slidy、Google的io-2011-slides

就外觀上看,Google的最好看
但是操作和功能上有所不及
W3C的是完全用HTML5的技術,可以直接把html用js和css就變成slide
很不錯,修改外觀也很容易。
個人認為docutils的rest2s5是最容易用的了
功能和W3C的差不多一樣,大網模式用作打印十分好
只可惜它需要用python腳本轉換,而且修改外觀也不容易
(可能跟docutils的風格有關,只注重內容。)

所以呢~
做presentation用PowerPoint、Keynote之類的最好了
始終比較方便簡單,輸出熒幕時也比較適合
單一個文件是HTML無法做到的
打印也比HTML效果好

2011年2月21日星期一

Desire自定義解鎖按鍵

原本的Desire只能按關機鍵來解鎖熒幕,想改用其他按鍵解鎖的話
ROOT了後入Recovery mode修改/system/usr/keylayout/curcial-oj.kl(可能要先mount /system)
加入下面內容:
key 272 DPAD_CENTER WAKE_DROPPED
原本是沒有curcial-oj.kl這個檔案的,在XDA上看見有人講在adb shell裹跑keytest
發現了這個檔案名和key code,試試加入去看看,果然可以!
DPAD_CENTER就是Desire的光學軌迹球按鍵,WAKE_DROPPED就是喚醒熒幕

2011年1月20日星期四

光圈迷思

現在的人就一味追求大光圈,目的就是為了淺景深
可能因為現在的對焦系統都好先進,對焦很容易
完全不用人手操作,於是現在的人都變得很喜歡淺景深
以前的鏡頭都有景深表
現在的鏡頭都沒有,原因為是自動對焦系統吧
自動對焦的確好方便,也改變了人們的攝影習慣
但是大光圈最主要的好處是更高速的快門
以前攝影為了確盡確保畫面清濋,都收細光圈拍攝
現在的人卻相反,為了把背景去掉盡量用最大光圈
其實影響景深的還有焦距和物距
也罷,反正很多所謂的影相佬根本沒有攝影的基礎知識
就只知道甚麼相機好,甚麼鏡頭靚

2011年1月16日星期日

全新攝影手冊

我覺得英國攝影大師-約翰.海吉科所寫的這本全新攝影手冊是十分經典和實用的一本書
內容非想全面,適合新手入門也適合專業的攝影師作為參考手冊
我從網上找到了下載,雖然盜版是不對的
但我覺得這樣的一本好書應該讓更多人閱讀和學習
所以我傳上Google Docs,可以到這裏下載
(ISBN:7800077896)

有型貓貓~


我用我學到的攝影知識簡單點評一下自己拍的相吧~
這張相是在貓貓眼的水平高度拍攝的,這是最佳的角度。貓貓頸上的藍色頸巾很好的突出了貓貓,而且上面的圖案很有趣。自然柔和的太陽光令貓貓身上的毛色紋理十分清濋地被記錄下來。貓毛因為高反差所以層次豐富。背後錄色的小箭嘴指着貓貓頭部,有着領路作用。貓貓身體的線條和地板也有線條透視的作用,使照片具有空間感和立體感。

2011年1月7日星期五

XBMC

XBMC是一個Open Source的Media Center
看界面好像很不錯,Gentoo也有xbmc的ebuild
值得一試~

XBMC原本好像是XBox上的東東,破解以後把XBox當成HTPC用
現在變成跨平台的東東啦

XBMC
http://xbmc.org/

Java new Thread

最近一直在寫Android的程式
發現Java開新線程也很簡單的
可以先宣告一個implements Runnable的class,然後new Thread來執行新線程
就像這樣:
new Thread(new Runnable() {
public void run() {
try {
drawHotel();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}).start();
其餘的事java會自動搞定,是比較方便的
不過Debug的時候就麻煩了

2011年1月4日星期二

電腦修復報告

數日前家裏的PC無故掛了
安裝的是Gentoo system,估計是升級系統時安裝到一半忘記了
關機了令到部份檔案丟失了
可以開機但無法進入Xorg,startx報錯說找不到modules
init.d下的xdm也失踪了
唯有嘗試再次emerge -DaNu world
重新升級系統

可是第一個package gst-plugins-soup無法安裝
查了一下,只不過是某些la檔案舊了
lafilefixer --justfixit,修復好la檔案之後問題便解決了

再來gst-plugins-good-0.10.23無法安裝
compile失敗
上網一查發現,原來是踩中了地雷囧rz
應該某個gtk+ library升級的api改變了
所以gst-plugins-good便不能compile,除了good還有其他plugins
0.10.24便沒有這個問題,可惜portage裏面最新的只有23
(最新的release是26,可能在其他overlay裏面吧囧)
無奈之下只好先升級gnome-light
然後module-rebuild rebuild
接着revdep-rebuild
最後重新開機一看,修復成功了!

收集多年的動畫丟失了

昨天,我一不小心選錯了分區
把收集多年的動畫格式化了
唉,本來是覺得很傷心的
但想想動畫看不完的,再下載回來就是了
心境悉然開朗
此時想起佛家的平常心

有一顆平常心就能面對任何事情
數據沒了可以重新下載
可惜我始終是想不通,動畫是可以重新下載
但好多東西都不能再次得到
或許因為我只是一個普通人吧
反正失去了就是失去了
這是無法改變的事實,就由得它吧
就算是不捨得也不行,只好珍惜我現在還擁有一切吧

熱門文章