2011/05/29

讓 Google Docs 幫你輕鬆記帳

由於 Google Docs 操作簡單,再加上還可以自己寫 query 撈資料,放棄自己寫的工具全部丟到上面跑了。

個人記帳大概只用到輸入、列表、月支出、類別支出幾項功能,Google Docs 的試算表、問卷功能、Visualization API 幾個功能剛好滿足需求,拼拼湊湊大致就有個陽春的介面可以用哩。

新增「表單」,利用寫問卷的方式輸入資料。



依照自己習慣的填寫方式建立表單,建立完成後記得將網頁底下的網頁連結記下,以後記帳就是連到這個網址。當然,網址不要給別人看到,不然其他人會幫你花錢 XD。

回到 Google Docs 列表會看到剛剛建立的表單,點一下會以試算表的方式打開,如果有輸入資料的話大概會長得類似下面那樣,有特別注意的話應該會看到 Google 另外多放了一個「時間戳記」欄位,這個欄位會紀錄新增資料的時間。



接下來從左下角新增一個工作表,新增的工作表專門做來做資料統計。

與 Excel 的用法類似,在儲存格中以等號開始就會當作運算指令處理資料,例如針對剛剛建立的表單輸入:「=sum( B:B )」則會顯示總支出金額。

Google Docs 提供的 Visualization API 功能,能讓使用者用類似 SQL 的語法把試算表當作一個資料表操作,「按月計算支出」以及「統計各類別的支出金額」語法會稍微複雜一點,不過大概同一個格式複製貼上,改一改欄位名稱就可以用了。

Query 語法分成二部份,第一部份為指令資料範圍,第二部份查詢條件,二部份由分號「;」隔開。第一部份要告知需要處理的資料範圍,若需要存取不同工作表的資料需要加上工作表名稱。查詢條件需使用雙引號「"」將語法包起來,以下語法是利用欄位 A 的時間戳記將資料以「月」分開加總,可以得到每個月的支出總和。如果欄位不一樣,記得更換一下代號。
=query('工作表1'!A:B; "select year(A), month(A) , sum(B) group by year(A), month(A) order by year(A) desc, month(A) desc ")



按照類別統計支出金額感覺上簡單很多。
=query('工作表1'!B:C; "select (C), sum(B) group by C order by sum(B) desc ")


最後,若要繪製統計圖表,將要用來繪圖的資料區塊選取後,點選「插入圖表」按鈕即可。





相關資料:Google Visualization API Query Language
http://code.google.com/intl/zh-TW/apis/chart/interactive/docs/querylanguage.html

2011/05/26

Ubuntu 客製化

安裝 Ubuntu Customization Kit:
sudo aptitude install uck

主選單 => 系統工具 => Ubuntu Customization Kit 啟動。

製作 LiveCD 或 LiveUSB 用系統內建的「開機磁碟建立工具 (usb-creator-gtk)」似乎就夠了。


自己改了 Ubuntu 11.04 映像檔,主要塞了一些 CLI 常用工具,另外裝了 ClamAV 拿來掃毒。二個載點內容相同,用 7zip 解壓縮後大約 1.9GB,再用 Universal USB Installer 轉到 USB 上。

MediaFire:
http://www.mediafire.com/?dvlhhf8ix5mv9rh
http://www.mediafire.com/?0bdvcvrp7nagqt3
http://www.mediafire.com/?bv3hixm0ymu867u
http://www.mediafire.com/?lilbp55s4k88bw9

MegaUpload:
http://www.megaupload.com/?d=1NF2VTHL
http://www.megaupload.com/?d=3G8HFY6V
http://www.megaupload.com/?d=9ERGNZ1F
http://www.megaupload.com/?d=PDBFV8VG

MD5 checksum:
b8ed7023636b8d67070e0aced87d6416 ubuntu-11.04.1-desktop-i386-custom.iso

94a8700b13c33362592cf1083114ead8 ubuntu-11.04.1-desktop-i386-custom.7z.001
3589b1e8d61e51df3df6b1f34267ecbf ubuntu-11.04.1-desktop-i386-custom.7z.002
181ec1c6b7a2290a4a5f01582b616bbb ubuntu-11.04.1-desktop-i386-custom.7z.003
30893200b18e46cede41d93eac40fe6d ubuntu-11.04.1-desktop-i386-custom.7z.004

2011/05/25

MySQL Case Insensitive for Table Names

MySQL 的資料庫為一目錄、資料表為數檔案,MySQL server 會依照 SQL query 去讀取指定位置的檔案,但在 Windows 底下檔名不分大小寫、Linux 底下則有分大小寫。

在 Windows 中底下二個 SQL query 的結果相同:
select * from user_Name;
select * from user_Name; -- 不分大小寫,結果同上

但若是將做資料轉移從 Windows 轉到 Linux 後,卻會因為區分大小寫而造成 dump 回去的資料與 query 到的資料表被視為不同:
create table `user_Name` ( blablabla ..... );
select * from user_name; -- 大小寫不同撈不到資料

若遇到這情況,可以在 my.ini (或 my.cnf) 的 [mysqld] 標籤後加上「lower_case_table_names」參數,讓 MySQL server 處理指令時自動處理。

= 0:資料庫與資料表名稱均區分大小寫

= 1:資料庫與資料表檔案名稱均使用小寫,SQL 語法中的資料庫與資料表名稱均轉換成小寫再做比對

= 2:建立資料庫與資料表時檔案名稱區分大小寫,查詢時轉換成小寫再做比對,僅是用於不區分大小寫的檔案系統。


參考資料:MySQL case insensitive table and column names - Cosmin's Wiki
http://cosminswiki.com/index.php/MySQL_case_insensitive_table_and_column_names

2011/05/24

藍星侵略地圖


在較大的地圖上查看藍星侵略地圖


我還蠻好奇那個在海上的是怎麼回事? XD

2011/05/14

打包檔案的好幫手:tar 與 split

想幫資料做備份,可用 tar 合併成一個檔案:
tar -cvf backup.tar mydata/

tar 只是將多個檔案合併在一起,若希望將資料壓縮省點空間,可以使用 -z (gzip) 或是 -j (bzip2) 壓縮:
tar -zcvf backup.tgz mydata/

若是壓縮後的資料還是太大沒辦法燒錄是光碟,可以使用 split 工具將備份檔分割。先使用 tar 將資料打包、壓縮,在傳給 split 做分割:
tar -xcvf - mydata/ | split -b 650M - backup.tgz.

split 預設使用 a、b、c 當作分割檔標記,上述方式讓單檔最大 650M,檔名分別為 backup.tgz.a、backup.tgz.b、backup.tgz.c ...。

若要讓 split 以數字方式為檔案命名,可以加上 -d 參數,檔案 suffix 則會改為 1、2、3 ...。另外 split 預設字串遞增一次為二個位數,表示檔名後面會是:00、01、02、03 ....,用參數 -a 1 可讓字串遞增改為一位數。


要還原資料時,使用 cat 把資料串接回來即可:
cat backup.tgz.* | tar -xvf -



參考資料:仲佑的網誌 » Blog Archive » Tar and Split
http://yowlab.shps.kh.edu.tw/wordpress/?p=289

wget 續傳、限制速度

wget 是 Linux 上幾個很長用來下載檔案的工具,使用方法很簡單:
wget http://my.url.com/file.zip


當下載到一半斷線,wget 參數 -c 讓檔案續傳:
wget -c http://my.url.com/file.zip


如果下載的檔案很大,想留先頻寬給其他程式使用,則加上 --limit-rate 參數:
wget --limit-rate=400k http://my.url.com/file.zip


下載檔總是需要等待,如果想先去做其他事情,用 -b 參數讓 wget 在背景下載檔案:
wget -b http://my.url.com/file.zip

網路




網路改變了不少生活方式。明明並肩而坐卻用 Plurk 或是 Facebook 聊天,硬是要等到沒電腦、沒網路才肯開口。現在手機可以上網後,路上、捷運上、公車上甚至斑馬線上,都可以看到人二眼僅盯著手機螢幕,完全不理會周遭進入自己的網路世界。






話說現在什麼東西都要資訊化,什麼東西都要上傳到雲端,不如跟攻殼機動隊一樣做電子腦化,以後通訊可以改用加密無線通訊或是有線通訊,連橇鍵盤的力氣都省了。若以後真的只剩下一張嘴的話,說不定還可以把電子腦上傳到雲端服務,身體就不要用了,「升天」以後還長生不老多好。

2011/05/09

XX 產生器

1. Commit Message Generator (純惡搞)
http://whatthecommit.com/

範例:commit -c "Test commit. Please ignore"



2. 專案出包理由產生器 (看也知道是惡搞的)
http://bingo.handlino.com/machines/3586

範例:直到上線前一天,PM 離職了

圖片編碼後鑲在網頁中

無意間發現 Google 404 頁面中的背景圖片並非以圖片形式存在,瀏覽器將 CSS 中的 base64 解碼後轉成圖片顯示而成。

檢視原始碼可看到:
background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKsAAA....)


以這種方式鑲圖片的好處,除了點右鍵沒辦法令存圖片、暫存檔沒有實體檔案外 (其實我原始的目的就是想複製他的圖片 XD),主要的用途是讓瀏覽器不會對伺服器做而外的要求動作。

一般來說,瀏覽器會先取得 HTML,解譯過後發現需要額外的檔案,如:CSS、Javascript、圖片等,就會依照 HTML 中的網址向伺服器要檔案,若檔案數量很大則可能會造成伺服器不少負擔。若是將檔案直接鑲在網頁當中,瀏覽器解譯後直接使用,則不必再向伺服器要求資源。


參考資料:Data URI Scheme @ Wikipedia
http://en.wikipedia.org/wiki/Data_URI_scheme


找到一個工具可以將網路上的資源轉 base64,供大家將資源鑲在網頁中。

Binary / Image File to Base64 Encoder / Translator
http://www.greywyvern.com/code/php/binary2base64

2011/05/01

uSketch:讓照片走素描風

uSketch 是最近在 App Store 上面找一個很棒的修圖軟體,可藉由程式原本設定的樣式將原本的照片轉成類似素描的畫風。



原始照片




應過 uSketch 調整過後的照片,很有美感。

iPad Apps

一些不錯用的 apps 列表。

網路類:
  • Google Search
  • Opera
  • ReadPad (for Google Reader)
  • IM+


社群:
  • Facebook / MyPad
  • Plurk / 破浪
  • Twitter


旅遊相關:

照片工具:

音樂:

遊戲:
  • Angry Bird (讓人 angry 的 bird ...)
  • Gun Bros.
  • Fruit Ninja
  • Tesla Wars (非常不建議在客運上面玩 Orz)


其他:
  • TED / TED + SUB
  • UNIQLOCK (很有藝術感的時鐘)
  • Calculator Pro for iPad


只碰了一個月 iPad 所以比較喜歡的 apps 差不多就是些,有遺漏什麼好玩的東西再請大家推薦吧~


相關網站:appleseed, 蘋果核 - 樂多日誌
http://blog.roodo.com/appleseed