Django 可選 checkbox 的正確設定方式


使用 Modelform 的話,建立一個可選的 checkbox 還真要小心
例如 opt-in 類,“Check the box if you do not want to be contacted by us"
Model:

#model.py
class UserProfile(models.Model):
    opt_in = models.BooleanField()

ModelForm:

#model.py
class UserProfileForm( ModelForm ):
    #https://docs.djangoproject.com/en/dev/ref/forms/fields/#booleanfield
    opt_in = forms.BooleanField(
        required=False)

問題是,“required" 令人很容易覺得是 true
因為無論 true false 都不是 null...
但 django 的設定剛好相反

反正很多有 ORM 的 framework 都有這種混亂的情況
例如 cakephp, django
是我的問題還是?

Youtube data API: json vs jsonc

我的其中一個週末企劃中
使用了 Youtube 的 data API 處理 playlists
分享一下和 Google 交互 JSON 的一些概念

JSON 是 Google 其中一種常用的資料交互格式
當然還有 XML 也是常用的
但在我的例子之中是網頁上的交互
JSON 身為 javascript 的一部份就當然是使用 JSON

Google 的 JSON 還分成 JSON 和 JSONC
ref: https://developers.google.com/youtube/2.0/developers_guide_jsonc#Compari...
JSONC 不是 JSONP, C 是指 Compact 的意思

因為一般的 JSON 是來自 XML 的直接編譯
會包含很多 namespace 和其他不必要的資料
這些在網頁的環境並不需要使用到
便另外建立一個更適合的 JSON-compact 格式了
而從開發者的角度,
也可以建立一個更簡單, 直觀的代碼

下星期可以談談 Google 上純 javascript 認證身份的代碼 (javascript based oauth)

Barcamp HK 2012 summer

Barcamp 2012 由一年一度改為冬夏兩次
而夏季的舉行日期為七月十四日
http://www.barcamp.hk/

Barcamp 應該是香港 tech 界中第一第二大的 conference 了
2011年度參加人數就有500人之多
上一年的題目多樣, 包括
startups, entrepreneurship, Android, iOS, html5, js, AI, ROR 等
總之是任何 geek 有興趣的題目都有

而今年的題目則是當日早上由會眾決定
有別於一般的會議有預定的題目
barcamp 的題目是由會眾當日早上才提交
即時分配時間和舉行地點
所以你也可以和大家分享你的想法或技巧
及早預備你的幻燈片吧!

Javascript substr 負數

IE<9 的情況之下,
"1234".substr(-1)
是不會返回 "4" 的

IE<9 會將小於零的數字當作零
而其他的瀏覧器已經懂得返回“從最後開始算字符長度”了

在 IE 6 幾近死亡之後
IE 的路還很長呀

ref: http://eureka.ykyuen.info/2011/04/01/javascript-negative-substr-problem-...

Raspberry Pi (二)

如果大家是隨著我或其他主流的方法安裝Raspberry,
而你的 SD card 的容量又大於 2GB 的話
你會發現你可用的系統容量只有 2G
而且 Debain 又已經使用了一半以上
其餘的容量去了那裏?

其實大家下載 SD card 的映像檔的時候是一個 2G 的映像檔
轉移到 SD card 的時候也會變成一個 2G 的映像檔
而你可以使用例如 Gparted 等的圖形介面工具將容量改為 SD card 的最大值
但很可惜,因為Gparted 是不可以修改系統主盤的
所以你會需要另一部可以使用 Gparted 的電腦
我當然可以很方便的使用我的桌面 ubuntu 完成工作

下星期討論一下將 Raspberry Pi 變成 torrent 交換中心的做法

Pages

Google