2010年1月18日

TiddlyWiki隨身走

TiddlyWiki_Automator

原先蒐集文章資訊都是使用iPod Touch中的Instapaper代勞,但最近將傳輸線送去蘋果維修,Touch的電量也不足以讓我每天正常使用,因此改採在隨身碟當中放入TiddlyWiki來進行筆記本的工作。

TiddlyWiki上次被我提及好像是想要在iPod Touch中作個隨身資料庫,後來因為同樣功能的工具挺多,所以最後就沒有繼續提下去。不過這次我利用TiddlyWiki與資料同步空間Dropbox來使用,讓我可以隨時隨地(在有網路的環境下)使用新版的Wiki筆記。你只需要先去下載TiddlyWiki空白檔案並放在Dropbox資料夾就算OK,之後每當你更新檔案時Dropbox就會自動更新檔案到線上空間,並且同步到其他一樣安裝Dropbox的電腦中,不管你在何處修改都沒有關係,真正達到跨平台的目的。


WorkFlow
因為最近工作地點沒有網路的關係,我想乾脆就把TiddlyWiki放在隨身碟中帶著走,而這個想法最後就是利用Mac機器人,Automator來達成。你只要拖曳出一個複製檔案的流程,固定在按下圖式時自動將Dropbox中的最新TiddlyWiki複製到隨身碟即可。

2010年1月17日

關於最近寫的幾個批次

批次檔是Windows底下的一個小程式,只需要利用記事本寫下幾個命令並存成*.bat(batch,批次)就可以運作。最近在工作上有些動作是在反覆重複,因此在命令提示字元底下觀察相關教學,直到今天寫出了幾個有趣的小程式。分別為:定時關機、複製資料夾結構與檔案列表。


定時關機
好吧,我承認我使用太多的GOTO,這樣的寫法也為我引來不少的問題,不過我覺得能夠動就不錯了:P這邊還使用了排程的功能,可以設定定時或是倒數來關機。

@echo off
:Menu
set jojo=%time%
echo 很高興為您服務,我是關機精靈:)
set /p Ser1="1)定時關機 2)重新開機 3)取消定時 4)開啟排程 5)關閉精靈 6)關於:"

if %Ser1%==3 goto StopX
if %Ser1%==4 start %SystemRoot%\Tasks

if %Ser1%==5 goto ExitX
if %Ser1%==6 goto AbouX
set /p time="請問幾秒後執行此服務(若需排程定時執行,請輸入 t):"
if %time%==t goto FixT
if %time% LSS 0 goto Wrong
if %Ser1%==1 goto ShutX
if %Ser1%==2 goto RestX

:AbouX
CLS
echo **************************************
echo *****      SHUTDOWN FAIRY        *****
echo *****       LI-FONG CHEN         *****
echo *****    January 10, 2010        *****
echo **************************************
pause
CLS
Goto Menu


:Wrong
CLS
echo (╯-_-)╯╧╧
echo 別玩我啊,大哥,重新想一想吧!
pause
Cls
Goto Menu

:FixT
echo 現在為%jojo%
set /p hhss="請輸入時間(HH:MM)以執行程式:"
if %Ser1%==1 at %hhss% shutdown -s
if %Ser1%==2 at %hhss% shutdown -r
CLS
if %Ser1%==1 echo 現在為%jojo%,預計於%hhss%進行關機。
if %Ser1%==2 echo 預計於%hhss%進行排程重開,屆時會有30秒供您取消命令。
echo 您若想取消排程,請選擇 2)開啟排程,並手動刪除at1, at2...檔案,
Goto ReMenu

:ReMenu
set /p Ser2="命令執行中,請問接下來要:1)取消定時 2)開啟排程 3)關閉精靈:"
if %Ser2%==1 goto StopX
if %Ser2%==2 start %SystemRoot%\Tasks
if %Ser2%==3 goto ExitX
CLS
Goto Menu

:ShutX
shutdown -s -t %time%
echo 命令執行中
CLS
Goto ReMenu

:RestX
shutdown -r -t %time%
CLS
Goto ReMenu

:StopX
shutdown -a
pause
CLS
Goto Menu

:ExitX
End


複製資料夾結構

如果你有需求要複製一模一樣的資料夾結構,例如從C槽底下複製3個資料夾與底下的子資料夾到D槽,卻不要複製到裡頭存放的檔案,那麼可以參考使用ROBOCOPY這個指令,其中的關鍵在於 /NOCOPY以避免複製檔案,而/E可以複製子資料夾。

@echo off
:Menu
set /p First="本程式將幫您複製資料夾結構但不包含檔案,請問是否執行?(y/n)
if %First%==n goto Exit
set /p From="來源資料夾路徑:"
set /p To="目標資料夾路徑:"
set /p Ans="本程式將幫您複製%From%資料夾結構到%To%,是否執行?(y/n)"
if %ans%==n goto Menu
robocopy %From% %To% /nocopy /E
set /p Rea="本程式已經執行結束,是否有下一任務?(y/n)"
CLS
if %Rea%==y goto Menu
:Exit
End


製作檔案列表
純粹想要知道資料夾底下有哪些檔案,如同DIR的功能一般,只不過順便存成記錄檔。
@echo off
:Menu
echo 很高興為您服務,我將為您製作指定資料夾的檔案列表
set To=C:\
set /p From="來源資料夾路徑:"
set /p To="檔案列表儲存於(預設為C槽,如不需更改請按Enter):"
set /p Name="列表檔名:"
set /p Ans="將幫您製作%From%的檔案列表%Name%.txt至%To%,是否執行?(y/n)"
if %ans%==n goto Menu
DIR %From% /S /B >>%To%\%Name%.txt
set /p Rea="本程式已經執行結束,是否有下一任務?(y/n)"
CLS
if %Rea%==y goto Menu
:Exit
End

為什麼要公布原始碼,那是因為我這些資料取決於網路上,而我所得到的成果你也可以在網路尋找到。如果你認為很有用,甚至覺得改一改會變得更加有趣,希望你可以讓我知道來學習。畢竟我只是一個以電腦為興趣的人,有機會可以得到更多資訊會對我很有幫助。

創意玩知識

Play the piano

前一陣子瑞典的KOKOKAKA在Youtube上放了名為「Play the Piano」的影片,利用的是Youtube字幕的功能,讓你可以在影片上面點選並且發出鋼琴彈奏的聲音。

當我看到這段影片時,我腦袋大概想像了運作的原理,是不是有點像網頁上設定錨點的方式,當你按下選定的音時會跳到影片的固定片段,可能每個片段只有1秒左右的時間,前後保留一些空白以避免播放出下一個音。例如Do是0.5~1.5秒,Re是2.0~3.0秒依此類推,可惜我不太懂得如何製作,不過真的是將字幕做了創意應用。

當記者採訪某間電腦補習班詢問這段影片的製作時,電腦老師以一派專業的口吻說,「這其實是很簡單的原理,只要懂得....(略),就可以輕易做到。」聽到這句話時我很不以為然,因為同樣的原理可能有數千人以上會知道,甚至能夠做出更複雜更有趣的作品。只是光是擁有知識並不夠,因為那等於擺了一個倉庫的木材與零件,要如何組裝起來還得靠使用者如何去思考應用。

最近踏入職場見習的心得,我發現會做事的人真的很多,而且能力與水準都很高,但是論及創意的部份就挺薄弱。過去以專業能力稱霸的時代已經慢慢轉變成專業與創意結合的新時代,光是擁有學科能力似乎還不夠用,要懂得包裝自己的知識才會有更多發展可能。因此我還滿羨慕上過設計課程的人,因為他們擁有將素材成品優化的能力,只需要學習組裝素材的技能就算足夠。反之受過一般學科教育學程的我們,要在未來闖出一番成就的方法,就是多方獵取非專業領域的知識,遠離的越遠越好。

重點不在於自己的本業精通多少(雖然很重要),而在於抱持什麼心去學習精進,永遠抱持想要突破前人成就去創作,這才是學習的目的與精神。

iPod Shuffle浴水重生

iPod Shuffle/ 繪圖:小泉
平常出門都是以單車代步,騎車時習慣聽些音樂來伴隨路邊風景。擁有夾子設計的Shuffle2代就是隨身攜帶的首選,只要夾在牛仔褲的零錢口袋就能帶著走。但,這樣的方便性也在全世界埋下了潛藏的危機....


Shuffle常小到讓人很容易忽略它的存在,掛在褲子上是這樣,扔進洗衣機時也是這樣。你可以上網搜尋「iPod Shuffle Washing Machine」這組關鍵字就會發現,發生這樣意外的人其實還挺多的。當我曬衣服時從口袋中取出Shuffle,我當下想起過去大家提過的種種案例。像是Macbook被水或果汁潑灑到、手機掉到水池或者馬桶的處置方式之類的;最重要的一步就是絕對不要開機,一開機就有可能讓裡面的電路燒燒掉。

但是,但是...我的Shuffle是在電源開關持續開著的時候扔下去洗的!!「I'm singing in the rain~~」我大概想像Shuffle在洗衣機唱歌唱到掛點的情景


想當然我當下也很手賤地開關了一下Shuffle測試是否真的沒力。不過就算Shuffle沒有故障,浸水後開機應該也會掛點,珍惜的人請不要這麼做。後續就照著我所知道的陽春方式去搶救:除濕加風乾。試了兩個禮拜後,我想這也許就是Shuffle的結局,插上電腦一點反應也沒有。由於造型可愛的緣故,我想扔掉也實在太浪費,就扔到有除濕包的櫃子當中自生自滅。因為手邊還有Touch可以繼續聽音樂的娛樂,所以就沒有再去嘗試


昨天將Touch的傳輸線送回蘋果維修(保固/裂開),約略七個工作天沒有音樂可聽,原本想要不要就趁此機會購買純聽音樂的Shuffle三代呢?我再度瀏覽Shuffle的網頁,迷你的造型當然很好,也繼續保留了夾子的設計;但那只有少數可支援的線控耳機跟組合鍵的操作方式,讓我非常遲疑買不下手。有多麼買不下手呢?甚至能夠讓我把宣布陣亡的二代拿出來插在Macbook上重新測試


以下是奇蹟發生的經過,插上電腦後沒有像正常的機子發出橘色光芒代表充電;如果是平常,我大概會拔下Shuffle扔回櫃子繼續除濕,但我選擇繼續插在電腦上就去睡。今早起床時,我看到Macbook上有幾個裝置在閃爍,一個是隨身碟的LED,另一個橘色的燈號是...

電腦螢幕跳出過去一個月怎樣測試都沒出現的iTune同步訊息,拖曳幾首歌到Shuffle中,美妙的音樂從Shuffle的耳機流出,聽在心頭滿是感動。

2010年1月4日

泉媽也玩Facebook

難得的連續三天元旦假期,連泉媽都停下拼命工作的習慣進行短暫的休息。就在某天晚上她問我一個提起過兩次的問題,「我同事說可以玩什麼開心農場種菜的,聽說很好玩耶!」說著便指著前年買來當做生日禮物的電腦,「這台電腦上面可以玩嗎?」這時我腦中開始陷入一個猶豫狀態,我應該讓對如何移動捲軸的母親接觸這個規則略顯複雜的線上遊戲,她連怎麼打字輸入都顯得有些吃力,玩這個妥當嗎?

早年長輩拒絕接觸電腦的理由是「擔心電腦會壞掉」,如今則替換成比較合理化的理由,「聽說個人資料可能會外洩」。但在稍微說明之後,我還是不顧一切幫家母申請了一個Facebook的帳號,略帶強迫地要求她一字一字打入自己的帳號來登入。平常這個挺困難的動作,竟然在遊戲的吸引誘惑之下慢慢被克服,似乎只要熬過這幾十秒的打字考試之後就可以進入夢幻樂園一般。如今家母已經懂得如何在開機之後利用瀏覽器連到Facebook,輸入帳號密碼後在各個應用程式間切換遊戲來玩,而這個進步是我當初根本沒想到的。

隨著電視與戲劇類節目當中的推廣,長輩似乎對於電視中同年齡的演員可以自由自在使用電腦、照相手機等科技產品有了認同,覺得自己應該也可以學懂如何使用。而在對自己的自信建立之後,接下來的問題就在於年輕人願不願意拋開刻板印象,幫長輩引進這個自己成長熟悉的科技環境,而不是一味認定對方再怎麼學都是沒有用,不要把力氣白白浪費在這上面。很不幸地,之前我真的也有這樣的感覺,我認為家母究竟是看到韓劇中的老爺爺使用的如此流暢而產生的三分鐘熱度,還是真的想認真學會如何使用呢?



我喜歡舉一個常見的例子來說明,如果今天長輩想要購買一支手機,你會推薦他們使用哪一款,是功能豐富的新潮款式還是實用簡單的保守款式呢?以前我們都會認定照相功能、MP3音樂對長輩是不太必要的,所以就會推薦市面上最陽春的款式給他們使用,甚至還有把手機弄得像是計算機一般只剩下按鍵的老人機。但實際並不然,有些長輩看到自己可愛的孫子孫女時也會很想能幫他們拍張照,甚至將照片設成桌面圖案來隨時向朋友炫耀。排開年齡差異與成長背景,其實長輩也跟我們一樣懂得去享受,也在渴求科技帶來的便利,只是需要花比較長的時間去摸索,而我們卻可以輕易度過新科技的陣痛期罷了。

當初教泉媽如何使用電腦時,我想到有篇文章說學會如何使用Word就可以弄懂整個視窗的操作。對於經常利用Word處理報告的學生族群來說,這個的確是很好的學習途徑,就是反覆練習來增強對於視窗作業系統的熟悉。但當時泉媽面對Word時的無奈與無聊,我倒是記得很清楚。雖然是套有用的學習方式,如果激不起學習者的熱情,那麼這套方法也是沒用。當初吸引我們學習電腦的動機為何,這點我經常反覆在思考,最後想到的解答就是「想找到感興趣的事物相關資訊」。這點如同泉媽明明不會用電腦,卻能夠在反覆摸索當中開始熟悉瀏覽器跟滑鼠的操作方式,與當初興致闌珊的模樣截然不同。

當泉母在學習電腦的過程,我也在學習如何克制自己的不耐煩與教學慾,避免因為自己操之過急的個性破壞了初學者的學習樂趣。在這過程當中我也發現有趣的事情,就是家母很容易被桌面上的其他圖示給吸引住,像是Nero燒錄軟體、IE圖示、我的電腦、垃圾桶之類的,每次她都可能會不小心被誤導點開這些程式,然後跟我反映同一個問題:「為什麼我沒辦法上網!」因此我讓上Facebook的方法簡化到某種程度,就是在桌面上只留下Firefox瀏覽器和偏僻右下角的垃圾桶圖示。因為Firefox有書籤工具列的設計,因此我就將Gmail與Facebook捷徑設置在明顯位置,直接點選就可以進入玩遊戲。一切簡化到不能再簡化,就只希望她可以稍微撥點時間給那台電腦吧!

我想,過去我們學習的路上,長輩給予的指導多半都只在於輔助性質,讓我們可以自由選擇自己想學習的目標。如今我們擁有教導他們的能力,是否也能放開心胸教給他們想要的,而非在各種顧慮之下而斷然做出對方無法學會的結論。讓他們擁有學習的機會,就像他們曾給我們的。

2010年1月3日

iCal Sync with Multiple Google Calendars

去年跟小布提起一個計畫,就是將一些網路謠言所提到的日期記載下來,像是蘋果即將推出的平板電腦是否真的在一月份會推出,或者今年的研發者大會要在什麼時候展開。謠言的產生必定有它的部分真實性,可惜我的頭腦只有一個,因此最好的方式就是把這些日期記下來,事後再來驗證。

預計這個謠言日曆將會利用 Google Calendar 來分享,今天我就是在忙如何隨時隨地都可以更新資訊,也就是利用麥金塔上的 iCal 與 iPod Touch的Mobile iCal 來雙向編輯。Google 於 2008 年釋出 CalDav 的連結方式,在 MacOSX 10.5 時就可以直接在 iCal 上新增 Google Calendar 帳號;至於iPhone的部份也於 2009 年時釋出利用 Microsoft Exchange 來同步。這中間唯一的問題就是,同步設定時預設的是同步第一個日曆,也就是 Google Calendar 使用時建立的第一個日曆,至於你的其他日曆是無法顯示,必須後續手動設定。早上搞了半天都弄不出來的日曆,在睡了滿足的午覺之後終於有了解決的方案。


SnowLeopard的iCal設置

iCal如何同步 Google Calendar 可以參考Google說明,就是將日曆 ID(一長串的英文與數字@group.calendar.google.com)套用到伺服器位置( https://www.google.com/calendar/dav/日曆ID/user)供 iCal 同步。

在 iCal 4 時已經在帳號類型中新增 Google 選項,只需輸入 Google 帳號密碼即可設置完畢,缺點如同上述就是只能同步預設的第一個日曆。因此在設置時,帳號類型請選擇 CalDAV,藉此來作更詳細的設定。帳號密碼輸入後,請將日曆ID套用到伺服器位置,並且輸入至 Server Address 當中即可完成。


變更語言使用英文

至於 iPhone 的部份倒也挺簡單,參見《Google Sync on your mobile phone》,利用 Microsoft Exchange 設定完成即可。與同步 iCal 時遇到同樣的問題,如何設定顯示多個日曆呢?請利用iPhone的 Mobile Safari 進入行動Google網站同步,進入時你可能會遇見非常頭疼的問題,就是畫面顯示不支援你的裝置。這點只須透過「變更語言」就能夠解決,接下來勾選你要顯示的日曆就算完成。

將 iCal 與 Google Calendar 的好處就是可以利用平常熟悉的 iCal 離線建立事件,不必特別連到 Google Calendar 才能輸入修改。不過這邊也有個延伸的問題,就是當桌機與 iPhone 各別設定與 Google Calendar 同步,在 iPhone 與桌機同步時就會發生事件重複的情形。原因就在於 iCal 會將訂閱日曆同步至 iPhone,因此 Google 日曆理所當然同步進去;而 iPhone 本身也利用 Microsoft Exchange 同步,因此會產生在 mobile iCal 上會出現重複的事件。除了這個小缺陷外,其實這個方法倒是挺有用的。