[Javascript] TwZip.js

twzip

Github Link

最近因為 Hax4 有 project 需要用到台灣郵遞區號,所以就花了一點時間做了一個簡單的 js (jQuery) plugin – TwZip.js。不過身為一個前端工程師當然想把事情都留在前端處理就好,因此當初在設計這個 plugin 的時候就打算把所有的資料都放在前端,然後以 lazyload 的方式把資料載進來而不需要後端的支援(超懶)。

而說到資料,TwZip.js 的資料是從中華郵政全球資訊網下載來的,然後簡單寫了一個 makefile 搭配 node.js 自動產生數百個鄉鎮市區的 metadata 供前端使用。

這邊要提一個我一直被卡住的白痴問題(OS 老師當初應該把我當掉),因為原本我的設計是三層式架構(像是 台北市/信義區/信義路),但是這會造成資料過度碎片化的問題。之所以會這樣是因為在 file system 裡面最小單位的 block or Cluster 有一個最小容量,像我電腦就是 4 KB,所以如果資料小於 4KB 就還是以 4KB 計,因此這個三層式設計最後就產生出 16X MB 的資料(因為產生出太多 metadata 了)… 整個比原本的專案大上好幾十倍呀 …

為了解決這個問題,最後就改成兩層式架構(像是 台北市/信義區,也因為層數變少的關係所以最後就變成約 4 MB 的資料了,整個就是皆大歡喜。

還記得以前的前輩曾經教過我在寫程式的時候要先把 API 想好,確定使用者使用的介面再開始寫細節,透過這樣的決定來讓整個專案照著預期的方向前進才是比較好的,這樣才可以提前知道這個設計上的缺陷及問題,算是又多了一點體悟吧!

儘管如此,目前這個 plugin 還只能算是一個 prototype ,未來應該會再把 zipcode 的資訊透過 callback 傳回去。其他的功能就再說吧。

DogFooding ++

[Javascript] Build your own Trip with Trip.js

Image Credit

Demo : http://eragonj.github.io/Trip.js/
Repository : https://github.com/EragonJ/Trip.js

太久沒寫網誌了,所以想說來寫一篇最近比較值得記錄的事情,那就是 Trip.js

什麼是 Trip.js ? 一言以敝之就是「Trip.js is a useful plugin that can help you customize a tutorial trip easily. ( Based on jQuery )」,通常對於 landing page 或是一些需要做  step by step 指導的網站,都會需要這類型的 plugin 來幫助 developer 快速上手,做出需要的效果 ,而剛好之前在公司的時候有類似的需求,所以我就在其他時間自己先行開發了 Trip.js 的初始版,然後分享在網路上。

就目前看來感覺效果還蠻出眾的(在 hackernews & github 上都有一些回響),雖然市面上還有很多類似的 plugin,但是東西是自己寫的那種感覺就是很不一樣,有興趣的 developer 不妨參考一下吧 😛

[JS] plurkable – lightweight jQuery plugin for your own Plurk widget

Demo載點與解說

好吧,我真的是過年太無聊才在那邊用 Javascript 寫一個輕量級的 plugin 讓你可以客制化自己的 widget,其實使用方式在 github 及 demo page 上面都寫的很詳細了,這邊就不多談(或是參考下面的 js code)。
https://gist.github.com/814690.js?file=gistfile1.js

現在開始愈來愈覺得 javascript 非常的 powerful,只要有 browser 就可以跟著老師帶你上天堂,也不用做什麼煩雜的設定,再加上自身對 JSON 格式的 support 及 browser 間內建的 functions 就可以很輕易的完成自己的需求,然後現在這幾年又出現了改變世界的 jQuery,更是把入門的門檻拉低了許多(至少解決了很多問題,雖然也產生了一些問題 xD),不過愈是如此,Javascript 就愈讓人覺得深不可測 …

而且現在又有許多好用的工具像是 PhoneGap 可以幫助我們來實作 mobile applications,而之後也會有許多的 desktop applications 可以用 Javascript 來實作,整個就是拉近了平台間的距離了呀。

ㄜ … 這篇應該是要介紹 plurkable ,但是我好像一直離題呀 … 管他的 xD ~ 祝大家新年快樂啦(????)