今天因為公車司機開得比較快,早到公司,看到公司內的機房門沒有關,問了一下同事
原來是,老闆要節省冷氣,所以下班以後,開門用電風扇代替散熱
真是省壓
Blog 終於有行動版了
今天登入後,有提醒訊息,終於總算是孵出來了
公視有話好說不能說了
不知道,你有沒有發現,最近他的節目,都是在說健康(香港腳,鼻竇炎…),或是無關政治議題,或重大新聞事件的議題,像是 江國慶 被刑求,槍決的議題,刑求的人,拿令箭亂殺人的人沒事,真兇,逍遙法外多年,一個掃地的二兵,被刑求抓來當替死鬼,由後背朝心窩開了一槍 (我要是當事人的父母,大概沒辦法這麼鎮定),整個路線說改就改,感覺台灣,越來越像大陸了,哪天也出現那種人民幸福感指數 100 分的民調,也不會奇怪了,
http://talk.news.pts.org.tw/ 公視有話好說
PS: 可能是之前預算被檔,又有 NCC 等等,太多長官的壓力吧,一個感覺蠻中立的公共電視台也要這樣搞,邁向,官不官,也就是說要等,民不民了 !
Scalability panel (djangocon.eu)
一偏有關於,可擴展能力的基礎說明文章,內容簡潔,觀念不見得只是用在大型的 Web 開發,大多的 AP 都算可以適用
http://reinout.vanrees.org/weblog/2011/06/08/scalability-panel.html
PS: 如果,這些你完全都沒需求,表示可能你沒有開發過大型的應用 XD
AutoMan 更新測試
由於有網友,反應,康和 API 更新後,有問題,所以這是一版新的更新,針對,康和新版的 OCX 元件
詳細 API 我也沒有下單測試,除非,康和變更 API 介面,不然,應該都沒問題才對 (都下單這麼久了 XD)
記得,您有更新康和新版的 OCX API 元件 才需要,不過,一樣自己要測試一下
軟體時限,延到 201312 月
下載點 http://dl.dropbox.com/u/14137697/20110608/automan.exe
這是程式更新的兩個變動,幾乎沒有改什麼
https://github.com/terryh/automan/commit/631921a41e80e43b12b0fc9f4e456e87fa68d853
https://github.com/terryh/automan/commit/7795066f847672cf3d4ed7c33b3220ae29946f39
關於 AutoMan 可參考以前文章 AutoMan
新的副駕駛
有時候,必須自己一個人帶著他
放在後面,怕他自己給我在後面玩瘋了,雖然,好像坐前面更危險
放心,這一張,媽媽,還沒下車
今天騎腳踏車載小寶寶兜兜風
公園
山洞
船老大和魚工準備出航
Tornado Gunicorn uWSGI 大亂鬥
最近因為有個屬於幫忙性質的案子,這一個專案的主角,有一些堅持,所以也算讓我可以多用一些東西 XD
在這一專案,我是屬於打工的角色,所以一般,主角決定了什麼,打工的做就對了,原本原型,是 Django 搭 MySQL 的專案,要改成 Tornado 加 MongoDB , 但是,好歹多年前,也看過
Nicholas Piël 的 WSGI Server 大亂鬥 http://nichol.as/benchmark-of-python-web-servers
知道其實 Tornado 也沒有多佔便宜,但是口說無憑,當然秉持科學的精神(當然這樣也沒什麼科學),利用一下,小寶寶午休時間,中年老爸,趕快來作一下, benchmark 來驗證一下,就不 post 詳細的數據啦,我只是給自己驗證的結果,所有的軟體,都是安裝最新穩定版,用 pip install 的方式,在 debian 上面測試,官方的文件是說 nginx 只要是大於等於 0.7.63 版,都有將 uWSGI 包含進去,所以不需要重新編譯安裝 nginx , 想用新一點的人要自己再編譯 nginx ,測試用的工具是 Apache 的工具 ab -c 500 -n 2000
uWSGI 效能第一 (100%),穩定,但是,設定的選項很多,對 Linux 沒有概念的,可能比較不會發揮,適合 Linux 熟的
Tornado 效能第二 (93%),回應時間,落差比較大,適合,喜歡自己打造東西的人
Gunicorn 效能第三 (84%),穩定,設定非常的簡單,回應時間穩定
百分比,只是,回應速度,在加權一點回應時間,測試的程式,就只是基本的 Hello World or Ping Pong 的方式,以上三個,都足以應付 production 的需求環境
測試條件
uWSGI 基本上都是參考 Nicholas Piël 方式,不過有些系統的對應參數,必須先用 sysctl 調好,也要懂 -l 的數字一定要大於等於你的 concurrency 數,都是透過 nginx
sysctl -w net.ipv4.tcp_keepalive_time=300
sysctl -w net.core.somaxconn=250000
sysctl -w net.ipv4.tcp_max_syn_backlog=2500
sysctl -w net.core.netdev_max_backlog=2500
uwsgi –gid www-data –uid www-data -z 30 -l 500 -L -M -s 127.0.0.1:3031 -p 4 –env DJANGO_SETTINGS_MODULE=bench.settings -w “django.core.handlers.wsgi:WSGIHandler()” # django app
uwsgi –gid www-data –uid www-data -z 30 -l 500 -L -M -s 127.0.0.1:3031 -p 4 -pythonpath pwd
-w myapp # 單純 wsgi app
Tornado 參考 Nicholas Piël 直接打,還有就是用 https://github.com/bdarnell/django-tornado-demo 的 testsite 測試
Gunicorn 直接用 gunicorn_django –worker=2 ,其實這樣對他有一點不公平,也應該直接接 wsgi app 才對,不過,他的設定最簡單,可以直接上,這就是他的好處
PS1: 專案的架構,一般都是見仁見智,很難有一定的評斷,但是連正式上線,都還沒有上線,就將原型完全換掉,也是一種神人級的豪賭,一種情形是,這些東西神人都可以自己生出來,所以不在乎原型,一種是,神人不喜歡,別人寫得東西,喜歡自己來,一般決定一個專案的架構的時候,第一點,一定是,時間,人力,還有成員的熟悉度,絕不是,盲目的追求效能,或是熱門的話提,要跨入 nosql 之前,先看看自己作過幾個大型的 SQL 專案,能發揮到什麼程度,可以先由一些小型的專案,驗證熟悉
PS2: 這個原型,是我看過非常乾淨的 Django project 不管是自身的架構或是重用別人的部份,都算是非常的漂亮 ( 原作者還呼隴我說寫的很丑很髒 )
PS3: 其實用 Django 外,Python 不像 Ruby 那樣,選擇不多,相反地,我的媽壓,還真不好選, http://wiki.python.org/moin/WebFrameworks ,不同專案有不同需求,找自己愛用的吧,玩得開心最重要,喜歡套件 AP 多,可以直接上,就 Django ,喜歡自己打造,選擇有一大票
GDM3 的鳥問題
開發的桌機,一直都是跟 debian testing
最近,更新完,發現爛了,原本的 auto login 沒辦法用了( 我一直都是這樣設得,沒辦法,這一台是自動下單用的 )
找了半天,才看到解法,只是還蠻鳥的
編輯 /etc/gdm3/greeter.gconf-defaults 加一下,上面有一行, comment 掉的,可以 copy
/apps/gdm/simple-greeter/disable_user_list true
炒翻了
看完後,沒錯我是名副其實的 end user ,感覺還蠻幹的,浪費一堆時間
scala traits in python
http://www.bigjason.com/blog/scala-traits-python/
2.6 才開始有的東西,標準的函式庫裡,還真多東西
Install Dropbox on Debian
小筆記安裝 ubuntu 的 Dropbox 安裝包,到 Debian testing 上面
照往例,一定不是很乾淨的作法,我才寫筆記
到 Dropbox 下載 Linux 64(OR 32) 下面的安裝包
http://www.dropbox.com/downloading?src=index
下面就是指令筆記,因為 Ubuntu 和 Debain 這一個相依關係名稱不同
假設我們下載的名稱是 nautilus-dropbox_0.6.7_amd64.deb
以此為範例,安裝要有 root 權限
dpkg-deb -x nautilus-dropbox_0.6.7_amd64.deb tempdir # 解開到 tempdir
dpkg-deb –control nautilus-dropbox_0.6.7_amd64.deb tempdir/DEBIAN # control 放到 tempdir/DEBIAN 下面
vim tempdir/DEBIAN/control # 編輯 control 檔,將安裝的時候抱怨的 libnautilus-extension1 (>= 1:2.22.2) 改成 libnautilus-extension1 (>= 2.22.2)
dpkg-deb -b tempdir nautilus-dropbox_0.6.7-terry_amd64.deb # 重新包一包,取一個名字
dpkg -i nautilus-dropbox_0.6.7-terry_amd64.deb # 安裝自己包的那一包,就可以了
接下來,看看,自己的應用程式選單裡,應該就有 Dropbox 了