Facebook Oauth2.0 client side authentication
作為一個開發者,你就是無辦法避開 Facebook 的 API
無論它比屎還爛
或者文檔比死海古卷還殘缺都一樣
還好的是,這次介紹的API Google 都有
所以照抄之下還可以
就是 javascript side 的用戶認證
https://developers.facebook.com/docs/authentication/client-side/#no-jssdk
我介紹的是「不使用 JS SDK」的版本
反正跳進它的 SDK還得花一番工夫
基本使用是
1. 連到一個特定 facebook URL
2. URL 內 facebook 詢問用戶允許使用資料權限 (facebook 全權處理)
3. facebook 跳轉到一個開發者指定 URL, 連同 access_token 作為 hash
4. 使用 JS 分解從 hash 中提取 access token
5. 使用 ajax 連同 access token 使用 Graph API
這是我唯一使用 facebook API 的愉快經驗,
連 Facebook 大力推的 Graph API 也不外是一個巨大的死海古卷中的一節而已
Mid 2012 Intel Eureka Design Challenge - StartJG
新公司的第一個專案是 Intel 嵌入式系統的專案
透過遊戲和互動媒體,鼓勵參協者針對 Intel 的嵌入式平台構思應用
並以 2012 年 San Fran Intel 開發者年會的入場券作為獎勵
使用的技術是 python(Django)+PGSQL
Django 給我的感覺是完整的,功能齊全的CMS
但在 Model 的設定上需要小心
而python 作為一個web app 語言在方便性上比PHP有不足的地方
而且設定 apache 也比較複雜
是值得留意的地方
Sentry 4.8.2 + Python2.7 + ubuntu 10.04 + SQLite
Sentry 是 disqus 釋出的一個圖像化 logging 的工具
本身是基於 django 的,安裝等基本就不多說明了
可以參考 http://sentry.readthedocs.org/en/latest/quickstart/index.html#install-se...
而我還到的問題是:
ImportError: cannot import name abbrtask
問題源自 celery 的最新 3.0 版本不相容於 sentry
https://github.com/dcramer/sentry/issues/538
解決方法:pip install sentry "celery<3.0"
Barcamp HK 2012 summer 後記
先 open source 我的 presentation https://github.com/joetsuihk/barcamp2012
其實我講的 "JS 201, when JS becomes hard to manage"
也不是什麼新的東西
只是將我做小 project 時的經驗講一下
希望訓練自己的演講能力的同時
可以帶到些什麼給其他人
今年我自己覺得學生好像特別多
上一年在大學裏舉行,學生比例偏高是正常
但今年在 HK Cacoon 仍然有不少學生
更有正在做 startup 的
但整體 presenation 的質量仍然舋得每年下降 (我也有份拉低)
期望冬季的 barcamp 能有更精采的演講
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
是我的問題還是?