星期四, 6月 30, 2011

json parse error with double quotes

搞了半天
原來要用3個斜線
var tmp = {'name' : "kev///'s blog"};


Reference
json parse error with double quotes

星期二, 6月 28, 2011

建立index的準則

  • 具有特定鍵值足以識別特定資料
    如Primary key, Alternative key或user視為key拿來查詢的欄位
  • table資料少
    不到50筆或不到一個Data block,則建立的價值不大
  • join過程在where中會出現的欄位
    join過程大都以Primary key及Foreign key為條件,因此最好針對 Foreign key建立Index
  • 如果update或Delete程度超過20%,index價值不大
    因為系統必需同時I/O索引與實體資料
  • 不要太多索引
    太多的索引會造成資料異動過程要花很多時間調整索引
  • 查尋條件不明確
    考慮建立複合索引

Reference
Oracle 10g 資料庫管理實務, 林存德

星期六, 6月 18, 2011

JavaScript debug工具、技巧

寫入快顯視窗
  • 測試視窗
    var debug = window.open('','newWin',[arguments]);
    function addDebugginMessage(msg){
    debug.document.write(msg + '<br>');
    }

無侵入腳本程式設計 unobtrusive scripting

意思即將html中的view(css),結構(html),行為(js)分開
不要把3者都摻在html裡
css就很明確的利用class name從html分離了
js見下例
//html夾了javascript
<a href="#" onclick="showPopuup('niceimage.jpg')">Nice image!</a>


將html與js分開
<a href="niceimage.jpg" id="nice">Nice image!</a>
document.getElementById('nice').onclick = function(){
showPopup(this.href)
};

利用JavaScript跳過中間轉頁處理

html中,利用href的效果,如同click連結,會開啟新頁面
如果js中,判斷條件後轉頁
利用href轉頁,將會在history多一個歷史記錄
將造成使用者click上一頁會回到判斷頁,
而判斷頁又馬上轉到下一頁

解決方法,利用replace
//javascript
var isSupported = [check JavaScript support];
if (isSupported){
  locaiton.href = 'scriptpage.html';       //如果使用者按上一頁,就會再回到此判斷頁
  locaiton.replace('scriptpage.html');  //將回到真的上一頁
}




Reference:
pp]{ on JavaScript

星期一, 6月 13, 2011

CentOS 5.5升級PHP至最新版


PHP 5.3 on CentOS 5.5


#To install, first you must tell rpm to accept rpm’s signed by me, then add the yum repository information to yum:
rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm

#Now you can install php by doing:
yum --enablerepo=webtatic install php

#update an existing installation of php
yum --enablerepo=webtatic update php

後記
好像失敗,原因還沒查出來
似乎是升級php後,部份套件沒升到相同版本
例如php 5.3,但php-common停在5.1
先remove重灌試試
而yum install php-common 會停在5.1
所以要用上面的方法 改變安裝的來源
yum --enablerepo=webtatic install php-common 安裝php-pear 因為centos的pear版本為1.4.9 需與php-devel 5.1搭
所以如果更新php後,就會裝不了
簡單點的方法就 ...
  1. 先降回5.1
    yum remove php php-*
  2. 再安裝pear
    yum install php-pear
  3. 最後升級php最新版

星期五, 6月 03, 2011

軟體開發書單

初階
  1. 態度
    心態最重要... 一切從心開始...
    • 自慢 1
    • 自慢 4
    • 打不破的人生 30 個定律
    • 學徒模式 優秀軟體開發者的養成之路
  1. Programming 
    • 編程創藝:編寫出卓越的程式碼 Code Craft: The Practive of Writing Excellent Code
    • 重構:改善現有程式碼的設計 Refactoring: Improving the Design of Existing Code, Martin Fowler
    • 程式碼大全 Code Complete
    • 程式開發心理學 The Psychology of Computer Programming 
    • 程式師修煉之道 The Pragmatic Programmer
    • 程式設計實踐 The Practice of Programming
    • Woking Efficiency with Legacy Code
  2. Design Pattern
    • 設計模式:可重複用的物導向軟體的基礎 Design Patters: Elements of Reusable Object-Oriented Software 
    • Design Pattern於java語言上的實習應用, 結城浩
  3. Coding Sytle
進階
  1. 物件觀念
    • Streamlined Object Modeling
    • Object Modes: Strategies, Patterns, and Applications (2/e) - by Peter Coad
    • Java Modeling in Color with UML: Enterprise Components and Process - by Peter Coad, Eric Lefebvre, Jeff De Luca
  2. Software Architecture
    1. Expert One-on-One J2EE Design and Development
      Spring Framework的創始人Rod Johnson對於J2EE 2.x的反思
    2. Expert One-on-One J2EE Development without EJB
  3. Software Development
  4. 專案管理
    • 人月神話 (The Mythical Ma0Month)
    • 溫伯格的軟體管理學, 溫伯格
    • 與熊共舞:軟體專案的風險管理
    • UML Distilled, Martin Fowler
    • 讓事情發生--專案管理之美學
    • 人件 (Peopleware:Productive Projects and Teams)
    • 深入淺出軟體開發 
    • Ship it
References

軟體開發時間估計

怎麼估計軟體開發的時間
我向來不猜想。猜想是很不好的習慣,它有害邏輯的推理 ~ 夏洛克.福爾摩斯
實用的估計方法
  1. 將任務盡可能地分解成最小的單位,高效地通過首次系統設計
  2. 當得到一個不錯的解決方案,並且它的各個組成部份都可以得到正確理解的時候,為每一個小任務塊提供一個時間範圍估計,「人時」或「人天」為單位
  3. 當你完成所有時間範圍估計之後,將這些時間放在一起,加總即得到一個整體的時間範圍估計
關鍵概念:徵求別人的意見來幫助你進行估計
交付軟體所需的所有活動
  • 執行考慮充分的設計
  • 所有必要的試驗性工作和原型設計
  • 實際的程式碼實作工作
  • 除錯
  • 編寫單元測試
  • 整合測試
  • 編寫文件
  • 期間需要開展的任何研究或培訓

懶惰的人只有靠運氣才能做出成功的估計

References
Code Craft: The Practice of Writing Excellent Code