2012年4月16日 星期一

[Django] 圖片上傳錯誤

換了新的VPS後上傳圖片出現錯誤:
(jpg才會出現)

"上傳一個有效的圖片。你上傳的檔案不是圖片,否則就是壞掉的圖。"
英文:
"Upload a valid image. The file you uploaded was either not an image or a corrupted image."

果然是PIL的問題,找不到libjpeg吧,用pip或apt重裝/upgrade PIL, libjpeg等都沒用。

懶得自己重編,最後是以下順序成功了:
sudo pip uninstall PIL
sudo apt-get install libjpeg-dev
sudo pip install PIL

2012年4月14日 星期六

[WebDesign] 10 things every designer needs to know about forms (心得文摘)

via: 10 things every designer needs to know about forms

其實很多都是「常識」了,不過再實作時還是會常常忘記。

1. 不用特別標示「必填欄位」,使用者通常只會直接按送出,然後再看有什麼沒填完的。
2. 不要用HTML5的"spinner",按鈕小不好按,用普通的TextField或Select就好了
spinner: http://www.html5tutorial.info/html5-number.php
3. 表單有很多按鈕時,要把最重要的「送出」特別標出,不然容易迷失自我。
4. 欄位多可以分區塊,人是視覺的動物
5. 表單的用詞遣字可多用心,讓使用者覺的填這資料是有意義的,而不是冷冰冰格子。(想一下例子)
6. 日期欄位用動態跳出的月曆來選很酷,但是要考慮各地風水民情不同,年月日順序等(用Select簡單又方便)
7. Server端檢查不容易,但還是一定要做好 (工程師的事)
8. 不要設橫向欄位,或是用tab,從上到下就好了
9. 簡化欄位,如地址不要用xx路xx巷xx號、電話不要分區碼,直接用一格就好了
10. 別用機掰語氣做錯誤檢查,如:出生選成2028年,不要寫「你是未來出生的嗎」

2012年3月29日 星期四

[Flask][WTForms] 要在HTML的Select tag, 新增一個"空"的預設選項

本來想用jQuery來後製,但其實不用那麽麻煩,WTForms果然都想好了:
QuerySelectField的話,加上
allow_blank=True, blank_text=u'-- please choose --'


wtforms doc

2012年3月8日 星期四

時常出現HTTP 403 Forbidden

Forbidden

You don't have permission to access xxx on this server.

通常發生在圖很多的頁面,兇手是Apache防DOS的mod_evasive
果然是被保護機制擋掉了...

2012年2月17日 星期五

[Python] 像PHP的associate array一樣初始Dict

Python的dict不能像PHP的associate array一樣"任意給值",當不知道dict有幾維時很麻煩。
有一個defaultdict可以用,只是不好看,哈哈!

cat = {} # 先初始一個dict
for k, v in foo_list:
cat.setdefault(k, []).append(v)


ref: collections

2012年2月15日 星期三

2012年2月8日 星期三

domain transfer

Godaddy -> Namecheap

1. 登入Godaddy,Domain Manager左邊Domain Information的Authorization Code:按Send by Email,
就會寄一封EPP Code的信來
2. 到Namecheap申請domain transfer, 付完錢後會寄一封信來, 給你一個認證網址, 再輸入剛才godaddy寄來的EPP code. 輸入後再等一封transfer認證信(不會馬上).
3. 收到認證信後, 點一個"terms and conditions of the Agreement"的連結, 看完按Approval, 等結果