2013年12月31日 星期二

django-cache-machine初測

在我們的實際的網路應用中,若網頁是透過Django動態產生且會存取到資料庫,每一次對網頁的呼叫,都會造成DB的I/O,若是用戶量或存取量很大的時候,就會對DB造成很大的負荷,所以我們就必需要加上Cache的機制,若快取內有東西,就直接從快取讀出並送回給Client端。

2013年12月30日 星期一

在CentOS6上安裝Python2.7

在CentOS6的版本上內建的Python版本仍然是2.6的版本,但在我們開發的機器上所使用的Python都是2.7的版本,為了確保開發與上線環境的一致,所以必需要在CentOS上安裝Python2.7。其實如果單純只是要安裝Python並不難,但是如果沒有安裝某些套件的話,會使Python缺少一些相依的函式庫,造成某些函式不可用,雖然這些功能大概也用不到,但是還是裝著比較心安,以下為安裝所需的套件:

2013年12月27日 星期五

iPhone初期化

我把舊的iPhone4手機換成了小米手機2S後,原有的iPhone4現在放在那邊閒置也沒有其他的用途。上周回家老媽知道後,告訴我說可以拿回家給她用,所以就上網找了一下該怎麼把iPhone手機初期化,回到一開始的設定畫面的方法。不過iPhone4在升級iOS7後,一整個感覺就是不順,用起來都卡卡的,我覺得這一定是蘋果的陰謀

2013年12月26日 星期四

Redis在Game Server的圖鑑功能應用

在遊戲的設計中,有一些類型的遊戲會有收集圖鑑的功能,但一般是以以下幾個方法解決:

  1. 在Client端做記錄,找時間與Server同步圖鑑的部份。缺點是若在同步前資料移失則會損失部份的資料。(PSN的獎杯是使用這種做法。)
  2. 在Server端記錄,當觸發拿到物品時記錄圖鑑。

2013年12月25日 星期三

為什麼我喜歡Python勝過PHP

在我們傳統的網站應用中,許多前輩都推薦使用LAMP(Linux,Apache,MySQL,PHP)這樣的組合,可是隨著新技術的成熟,許多的網站也都開始使用Django或Ruby on Rais這樣的技術去架構自己的網站。其中我最喜歡的就是LNMP的搭配了(Linux,nginx,MySQL,Python)。

2013年12月24日 星期二

搶購紅米手機有感-Part2

由於上次沒有搶到現在正夯的紅米手機,所以昨天又準時在十一點多上線搶購,這一次小米官方可能有聽到了玩家的聲音,所以擴充了原本的容量,之前發生過的Timeout或是點連結下去要等很久才回應的狀況也都排除了。依這樣的狀況來看,下周一或許會再有一波的搶購活動,不花一毛錢確做足了宣傳。

2013年12月23日 星期一

在Django Debug Toolbar中加進Redis的debug資訊

在現在的Web應用中,許多應用對於在傳統的RDBMS中的存取次數會太過於頻繁,或是資料結構不適合採取關聯式的方式去定義,造成效能不佳的狀況。所以在新興的網路服務中應用了NoSQL去解決一部份的問題,其中Redis更是效能優秀的佼佼者。

2013年12月20日 星期五

在Django中 對多個資料欄位做索引

Django的ORM實在是很方便的一個東西,自從開始使用了之後,頭腦變好了,每次考試也都考一百分(誤),反而原本的SQL指令都忘的差不多了。不過在舊版的Django中有一個問題是,只能針對單一的資料欄位做index,無法對多個資料欄位做一個index。當然我們也可以手動在database中加入,但這樣就不符合懶人的做法。

2013年12月19日 星期四

Django的delete signals與database存取次數的問題

在Django中,signals這個系統可以很方便的讓我們在不同的app中去listen其他系統發生的事件,透過預先定義好的signal,傳遞指定的變數與資料,降低app間的耦合性,應用在log等等的系統上,可以避免在code中引入其他的系統,插入與該系統相關的程式碼。

2013年12月18日 星期三

在Django Admin中禁止使用者增加或刪除資料的方法

Django的Admin Panel幫我們把常用的CRUD都整合到裡面了,實在是一個很方便的功能,但在一般網站的應用還沒有什麼問題,不過在我們的應用上,是將Django當成一個App server的backend,所以有一些資料的內容是會相依到另外一筆資料列。若使用者手動在後台增加資料列,有可能會發生一些未預期的錯誤,所以我們必需在後台中以程式手動將這樣的功能關閉。

2013年12月17日 星期二

搶購紅米手機有感

昨天開了兩個小米的帳號準備12點整搶購目前正夯的紅米手機,公司的幾位同事也都加入了這一波搶購的行列。結果是4個人全數槓龜,一隻手機都沒有搶到。沒想到這次居然在短短的1分08秒就售完了。我準時12點點下去連結,反而是座位對面的同事說他的電腦已經秀出賣完的畫面,而我的瀏覽器還在轉阿轉的。

2013年12月16日 星期一

Mac初期化

之前幫李董做一些程式優化的部份,但已經習慣了在Mac的電腦下作業,家裡的筆電上灌的也是Windows7的作業系統,又不想像之前在VMWare Player下安裝Ubuntu來coding,所以就跟李董借了一台MacBook Pro來用。

優化的部份做的差不多了,所以向人家借來的筆電也該還了。在公司用了這麼久的Mac,下一台筆電我想應該就是一台surface pro加上一台MacBook Pro或Air的組合了吧。畢竟原本想買台筆電來工作和打Game兩用的作法,經過漫長的時光後證實我連玩PC Game的時間都沒有了,更何況用筆電呢。每次都堅持要買有獨顯的14吋筆電,最後在上面玩Game的時間屈指可數。

2013年3月19日 星期二

MacBook Pro外接HDMI色差問題

現在的這間公司,所有的程式人員都是使用Mac做為一般工作的開發環境。所以在我剛報到的時候,公司就發了一台MacBook Pro 13"給我。但只有MacBook2的螢幕寫程式實在太痛苦了,所以公司又很貼心的幫每個使用筆電的同仁準備了一個27吋的外接螢幕與Mini DisplayPort to HDMI Adapter。

2013年2月21日 星期四

在Apache2中同時設定static file與uwsgi

今天有一個需求是要在網站內加入crossdomain.xml。但是在原本的網頁伺服器上已經將/根目錄全部pass給uwsgi做處理。之前在Nginx上的做法是加入下列的code即可

    location /crossdomain.xml {
        alias /home/webapps/static/crossdomain.xml;
    }

    location / {
        include        uwsgi_params;
        uwsgi_pass     127.0.0.1:9001;
    }