在Android直接以zxing去解碼圖檔

zxing的Android client 端,是直接不斷的進行自動對焦的動作,然後接 Camera 的 Preview,這時候接出來的影像是 YUV 格式的,然後就直接去做判讀。所以,我當下的想法是在這邊直接去讀取一個 YUV 格式的影像檔,讀完就給 zxing decoder 去判讀,但是失敗。我認為可能是我轉換出來的 YUV 有問題。我是這樣轉換的,先用 ImageMagick 的 convert 把 png 轉成 ppm,再用 ppmtoyuv 轉成 yuv。
後來去看了 zxing 的 JavaSE client,他是用 awt 去做影像轉換,就想,可以把 awt 移植到 Android 去嗎? 上網找了一下,還真的有人做,只是後來專案就沒再開發了。
最後還是 stackoverflow 的幫忙:android – Embed Zxing library without using Barcode Scanner app,原來 zxing 裡的 Android client 測試程式裡就已經有一個 import com.google.zxing.client.androidtest.RGBLuminanceSource 可以處理這件事情,所以就先用 BitmapFactory.decodeFile 把圖檔讀出,得到 Bitmap,再把 Bitmap 丟給 RGBLuminanceSource 裡,就可以再用 new BinaryBitmap(new HybridBinarizer(source)); 得到 BinaryBitmap,decode 就可以根據這個 BinaryBitmap 取到條碼了。詳細的程式可以參考Stack Overflow 文裡的程式碼。,這裡不再摘錄。

link2sd

link2sd 是一個可以把應用程式從內部記憶體移到 SD Card 上的應用程式,你需要把 SD Card 切成兩個主要分割區(primary partition),第一個分割區作為正常的 SD Card 使用,第二個分割區就拿來存放應用程式。
之前用的時候,我是將第二個分割區格式化為 vfat,但用了一段時間以後,覺得效率不是很好,也為了 journaling filesystem,就想把 vfat 換為 ext3。研究了好一陣子,昨天決定下手了。
首先先說明我對 link2sd 的了解,照理說,一般要額外掛載分割區是需要額外寫 script 的,link2sd 是寫在 /system/etc/install-recovery.sh 裏面。所以我就簡單修改這個 script,然後關機把 SD Card 拿出來將第二個分割區備份,再格式化為 ext3,再把備份出來的檔案回存回去。但很遺憾,不行。
於是我去看 init.rc,裏面沒有啟動 /system/etc/install-recovery.sh 這一段,我知道編譯 android 源碼以後得出來的 init.rc 是有這段的。於是我修改 init.rc,加入這段,可是重開機以後,再去看 init.rc,我加的這段居然消失了。
沒辦法,只好還原回 vfat,乖乖的使用。

git support in Visual Studio 2010

因為用 git 管理源碼,在切換 Visual Studio 跟 Command Prompt 之間,頗為麻煩,就想說,應該是有人寫了 Visual Studio 的 git 擴充套件了吧~
進 [Tools][Extension Manager] 一找,果然已經有人寫了,主要有兩個:Git source control provider 跟 Git Extensions。Git source control provider 主要是一個給 Visual studio 用的介面,你可以設定實際上以哪個軟體去作 git,例如:msysgit、git extension、tortoise git…等等,所以容量不大,小小的。試用結果還算可以,唯一的缺點就是更動較多檔案時,會導致 Visual studio 重啟動。
Git extensions 我就沒安裝了,因為我已經裝了 msysgit。目前是以 Git source control provider 跟 Command prompt 交互使用中。

Android上的電子書

昨天想起介紹 Kobo eBooks 的那篇文章說 Kobo eBooks 可以吃 epub 格式的電子書,可是一直都忘記試,今天早上上班時,就試了一下,發現閱讀的效果真的比 FBReader 好很多。fbreader用來對付一般的小說是綽綽有餘,但遇到有程式碼的epub,整個就爛給你看,而且是爛的可怕。Kobo eBooks 的處理就好很多,網站上有提供免費電子書可下載,也有像類似 foursquare 的打怪機制,讓你讀書跟打怪一樣,讀的愈多,拿的勳章愈多。
Kobo eBooksKindle 比的話,在記憶體少的機器上運行ok。每次開 Kindle,就常讓我的Asus A50重開機,重開機之後再去開啟程式才能正常進入,常常讓我不知道該不該賭一下,我想這應該是Linux Kernel 發現記憶體不足而砍應用程式的關係。
要說 Kobo eBooks 缺點的話,大概就是沒辦法查字典,Kindle是可以查的。Kindle 在長按單字時,他會自動去查英英字典,第一次查的時候,程式會告訴你要額外送你一本英英字典,下載以後,就可以有自動查單字的功能,畫面是以 pop window 的方式呈現,再點選,會進到英英字典,顯示更多資訊。
如果沒意外的話,我想我以後都會拿 Kobo eBooks 來讀 epub。
除了上面的3個電子書以外,我還有試過 iReader,是同事推薦我的,Market 裡的評價不錯,但iReader網站上的書太多,一時不知道要下載什麼,大多都是簡體中文,又考慮到翻譯品質良莠不齊,所以乾脆就移除掉了。
我還有額外下載獨立電子書的 app:明朝的那些事儿-全集黄河鬼棺-全集,這兩個也不錯,作者是同一個,作者有在積極改版,可是我覺得最早用的那版還不錯用,不太需要改。目前明朝的那些事儿-全集還沒看完,才看到第五集,等看完才會看黄河鬼棺-全集。這兩本雖說是免費,但實際上應該算是盜版吧~

語言治療(8)

這次實際上是第十一次,下次一上課會有一個小測驗,老師會根據這個來決定是否要繼續上課,雖然老師已經有跟我們說過他應該不用來上課了。
老師似乎忘記了上次上什麼,不過我也不知道,因為上次是太座帶大公子來的。反正將錯就錯,老師就繼續講,主要是拿出一組卡片,共兩張,一張是因,一張是果,讓大公子練習描述人事地物與前後的因果關係,這樣的圖片之後陸陸續續講了六組。簡單的說,主題就是加強他描述的能力以及教導他在遇到圖片時該怎麼去說裏面有什麼。
圖片上有,但大公子不知道怎麼講的東西:滅火器、打火機、消防隊員、客廳。回去要記得再跟他加強描述,因為這幾次上課的關係,讓我明白到大公子對很多東西還是不知道該怎麼說。
這次上課,老師有以畫圖輔助說明,跟他說這是什麼東西。
發音問題還是老樣子,這些音還是不太能擺脫慣性:火,多,對,拼圖,風,戒掉用奶瓶喝奶會不會比較好呢? 有跟大公子講過用杯子喝奶,可是他很妙,他覺得牛奶就是要泡在奶瓶裡,所以我決定要買奶粉回來泡給他看,讓他知道也可以用杯子喝奶。

Windows 上的 python + virtualenv + django

安裝上並不難,只是最後有卡到一個問題,特別提出來分享一下。

  1. 下載python 2.7安裝檔,然後安裝
  2. 下載setuptools安裝檔,然後安裝
  3. 打開命令提示字元,先 cd /d c:\python27\scripts ,再 easy_install virtualenv,你公司有 proxy 的話,記得先 set http_proxy=http://your_proxy:port
  4. 安裝好 virtualenv 以後,就可以去創建環境了,假設你的環境都在 c:\envs,那就先 cd /d c:\envs ,再 virtualenv –no-site-packages myenv ,這樣就建好環境了
  5. 啟動你的環境,要先 cd /d c:\envs\myenv ,再輸入 scripts\activate 。Linux 下的activate 是放在 bin 下,這是比較大的不同。
  6. 安裝 django:scripts\pip install django
  7. 使用 django 指令:scripts\django-admin.py startproject myproject ,嗶嗶嗶,卡住了。

哈,我就卡在這裡。django-admin.py 會說找不到 django.core ,我苦思了好久,終於才想到,Windows 下是不鳥 python script 第1行的 sha-bang 的啊,所以雖然 django-admin.py 的第1行指定了說要用 c:\envs\myenv\scripts\python.exe 來處理,可是實際上卻是 .py 註冊在 registry 裡的 c:\python27\python.exe 在處理。因此會有找不到 django.core 的情況,改用 scripts\python scripts\django-admin.py 就可以順利找到 django.core 了。

語言治療(7)

語言治療,這次實際上是第九次,上完還有三次。
這次上課有點匆忙,父親載我跟大公子去慈濟醫院的途中,去市場買了葡萄,耽擱了一點時間。
進慈濟醫院,打算走樓梯上去,可是門卻被鎖了起來,打不開,只好等電梯,一等之下,就等了快十分鐘,真是很讓人挫折。幸好,還是及時掛完號、上完廁所,並且準時上了課。
一上課,我就跟老師說,我要拿東西上去一下再回來。上去是要拿葡萄給嬸婆,這一上去,就又花了十分鐘左右。等到回來,前面都沒有聽到。
這次上課的內容是講小蛇散步的故事,就有一個晴天,小蛇覺得天氣很好就出去散步,散步的途中遇到了一個水坑,突然他聽到一個聲音說,可不可以搭橋讓我過去啊?他回頭一看,原來是螞蟻,於是他很好心的就搭了一座橋,讓螞蟻過去。沒想到,螞蟻過去了,老鼠過去了,獅子也過去了。更令人驚訝的在後頭,大象,他也過去了。小蛇這下可是累到暈倒了,等到它醒過來,它就一口氣把水坑的水給喝光了,繼續上路。
基本上還是跟上次一樣,主要在於矯正發音,並且引導大公子說出故事。我發現大公子在上課到沒興趣的地方時,會開始東摸摸西摸摸,失去專注力,這邊之後要注意。
老師說要去作聽知覺檢查,還沒去做。但有問了常去的診所,醫生表示診所沒有,需要去比較專門的耳鼻喉科做才行。
下次換媽媽帶去,別忘了。

語言治療(6)

語言治療,這次算第7次了。
上次是太座帶大公子去的,是講貓咪的故事,就有一棟大樓,大樓的每一層都有貓咪隱藏在不同的場景裡,這次就是延續上次的故事。
大公子這幾次下來已經可以表達的不錯了,要說有問題,一個就是發音,另一個就是比較沒自信。發音的話,實際上他有記住正確發音的,但就是講的時候常會忘記,然後他又不喜歡被更正的感覺。像是’蛋’念成’幹’、’對’念成’貴’、’花’念成’瓜’…,目前有注意到的是ㄌㄏㄉ這幾個音。沒自信可以從老師問他事情,講話小聲,或是盲從而看出來。
老師在講故事的過程裡,常矯正大公子的發音,此外,也藉由小遊戲來讓他認識正確的發音,老師先念’蛋’跟’幹’,問他說這好不好聽,然後會顛倒’蛋’跟’幹’的順序,讓他來判斷,答對五次就有小饅頭。看的出來,大公子不是很樂意玩這遊戲,因為他分辨不太出來。除了小遊戲,也讓大公子看老師怎麼去發’蛋’的音,並且告訴他舌頭要伸出來。
發音之外,也加強對句子意義的了解,像是”只要x,不要y或是相反”、”先找x再找y”、如果有x就y”等等的。再來就是空間與位置的表達,大公子太常用”這邊”、”那邊”,容易讓人不知道東西在哪裡,加強這部份,對於以後講東西在哪兒會很有用。
老師最後說,他上完這期,也就是再五次,應該就不用再來上課。另外建議我們帶他去檢查聽知覺,看是否有問題。老師相當肯定他仿畫、組織空間的能力,我跟老師說,可能是上學期有上繪畫課,然後有教他看圖去組合積木有關係。
好吧,等上完語言治療的課,接下來就是靠我們自己平常要多注意並且跟學校老師配合了。

速率即斜率

今天早上騎車的時候想到昨天在看的斜率,然後又想到速率,速率=距離/時間,這公式不就跟斜率是一樣的嗎?
斜率 = (y2-y1)/(x2-x1),假定 y 軸是距離,x軸是時間,以幾何圖形來表示,就很清楚。在愈短的時間裡,經過的距離愈長,表示速度愈快,在圖形上的表示,就是斜率愈陡峭,代表速度愈快。
是說自己把觀念連通的時間也太晚了點,現在才發現。

台哥大Catch上網費率試算

就試算一下,然後作圖。

方案 Catch98 Catch198 Catch398
收費 98 198 398
傳輸量 15 50 150
超過以後費率(元/KB) 0.025 0.015 0.0048
費率 6.533333 3.96 2.653333
Cost if over/MB 25.6 15.36 4.9152


從 Catch 98 升到 Catch 198 時,看起來最划算,因為圖形上的斜率較陡峭,很明顯可以感覺到下降很多,從 6.53 下降到 3.96。