台北開車族必去網站~~~停車場管理網站
每次把車停在公有停車場,常常有單子被人家抽走的經驗。每次都因此去繳交了600的罰款,非常的倒楣。不過有了這個網站,就可以很方便的查詢、甚至讓它自動傳簡訊給你,方便吧!!!
每次把車停在公有停車場,常常有單子被人家抽走的經驗。每次都因此去繳交了600的罰款,非常的倒楣。不過有了這個網站,就可以很方便的查詢、甚至讓它自動傳簡訊給你,方便吧!!!
由於之前需要建立有IMAP的EMAIL SERVER所以我將電腦中的SENDMAIL 換成了POSTFIX,設定方式可以參考鳥哥的私房菜裡面的教學文章。
POSTFIX算是一套很好設定、並且很容易使用、功能又強大的一套EMAIL SERVER。但是問題來了,MT裡面的EMAIL 設定,可是預設為SENDMAIL 的說~
根據JEDI大大的書中內容,可以去改為SMTP的寄送方式,並且透過CPAN網路上的套件MAIL::SENDMAIL就可以完成這件事情,在此也跟大家推薦POSTFIX因為他很好用,並且還有IMAP的功能,就可以建立像HORDE、OPENWEBMAIL這種需要IMAP架構的WEBMAIL軟體,很好用。
今天早上有了一點時間,好好的將EMAIL好好的閱讀一次,發現了這篇蠻好的文章~我想身為粗枝大葉的工程師,我們更需要閱讀一些文學性的文章~
客服工程師:您好,有什麼我可以為您服務的嗎? > > > > 顧客:嗯,我考慮以後,決定安裝「愛」。你能夠一步一步教我怎麼做嗎? > > > > 客服工程師:可以的!你準備好要安裝了嗎? > > > > 顧客:嗯,我不是很懂技術,但是我想我準備好了。我首先要做什麼? > > > > 客服工程師:第一步是要打開你的心,你找到心了嗎? > > > > 顧客:找到了,但是有幾個其他的程式正在執行。在它們還在執行的時候安裝「愛」沒有問題嗎? > > > > 客服工程師:有哪些程式正在執行呢? > > > > 顧客:我看看,有「過去受的傷」、「沒自信」、「妒忌」和「悔恨」正在執行。 > > > > 客服工程師:沒有關係,「愛」將會讓「過去受的傷」在你的目前的作業系統中逐漸消掉。它可能會繼續留在你的記憶體裡面,但是不會影響其他程式。「愛」自己有一個叫「充滿自信」的組件將會覆寫過「沒自信」。不過,你必須完全關閉「妒忌」和「悔恨」。這兩個程式將會使「愛」無法順利安裝,你能夠關閉它們嗎? > > > > 顧客:我不知道如何關閉它們,你能夠告訴我嗎? > > > > 客服工程師:當然沒問題!在你的開始選單啟動「寬恕」和「遺忘」,重複這個動作直到「妒忌」與「悔恨」完全消除為止。 > > > > 顧客:嗯,好了!「愛」自動開始安裝了,這樣正常嗎? > > > > 客服工程師:是的,不過你目前只有基本的程式,你必需連接上其他的心才能升級。 > > > > 顧客:啊!我已經遇到錯誤訊息了,它說「程式無法在外部元件上運作」,我該怎麼辦呢? > > > > 客服工程師:不要緊!它是說「愛」程式是必須建立在內心裡來運作的,但是還沒有辦法在你的心裡運作,說得簡單一點,它意味著在你能夠愛別人之前,你得要愛你自己。 > > > > 顧客:那麼,我該怎麼做? > > > > 客服工程師:拉下自我接受的選單,點選下面這幾個檔案:「自我寬恕」、「瞭解自己的優點」、和「接受和面對自己的軟弱」。 > > > > 顧客:嗯,好了。 > > > > 客服工程師:現在把他們複製到「我的心」這個目錄底下。系統會覆寫掉任何有衝突的元件,然後開始修復程式裡的錯誤。還有,你得要把「喋喋不休的自我批評」從所有的目錄底下刪掉,然後清空資源回收筒,確保它絕對不會再出現。 > > > > 顧客:咦!?我的心一直有新的檔案出現,螢幕上出現「笑容」、「平靜」與「踏實」在我的心上自動複製得滿滿的,這樣正常嗎? > > > > 客服工程師:有的時候是會這樣的,有的時候得等上一會兒,不過所有的東西終究都會在合適的時間出現。「愛」已經安裝好,也開始運作了,掛斷電話之前我還有一件事要告訴你,「愛」是免費軟體,記得一定要把它和它的各種有趣可愛的部份分享給每個你碰到的人,然後他們又會和其他人分享它,最後一些很棒的組件又會傳回到你這邊來。 > > > > 顧客:謝謝你!我想我知道該怎麼做了。 > >
最近常常有人跟我講,他的LINK不見了,我就覺得奇怪我自己算是很懶的維護我的del.icio.us上的鏈結,那怎麼會不見呢?仔細追下去看,原來del.icio.us所提供的CSS內容,裡面只會有25筆資料。
大家或許會問,那~~~~~~ 25筆以外的資料怎麼辦?好問題,在我不斷尋找解決方式之下,總算找到一個很鳥、但是算是方便的一個解決方法,就是改原來的JAVA SCRIPT。
原來del.icio.us相關JAVA SCRIPT建立方式,請各位去看ROYBOY的網頁裡面有很詳細的介紹,在此我就提供各位怎麼讀取25筆資料的方式~~~~
建立標籤(TAG):
原來del.icio.us幫你建立每個頁面的時候,都會給你的一個選擇性輸入的欄位(TAG),而他的作用呢~~~主要就是會幫你做分類的工作,比如說 http://del.icio.us/kkdai/company 就是連接到我公司同事的網頁,這樣一來如果大家超過25個以上的資料,就請將他一一的分標籤。
(是不是很鳥的方式??? 但是~~ 其實這樣也有助於你整理龐大的鏈結)
然後,去修改原來JAVA SCRIPT,多增加幾個deliciousrss,並且多做幾次document.write即可,這樣雖然很鳥,但是改一次JAVA SCRIPT 總比改一堆模板好吧??
var rssfloat = Math.floor(Math.random()*99999); var deliciousrss = ‘http://jade.mcli.dist.maricopa.edu/feed/rss2js.php?src=http://del.icio.us/rss/kkdai/company?’ + rssfloat + ‘&chan=yes&num=0&desc=yes&date=no’; var deliciousrss2 = ‘http://jade.mcli.dist.maricopa.edu/feed/rss2js.php?src=http://del.icio.us/rss/kkdai/blog?’ + rssfloat + ‘&chan=yes&num=0&desc=yes&date=no’; var deliciousrss3 = ‘http://jade.mcli.dist.maricopa.edu/feed/rss2js.php?src=http://del.icio.us/rss/kkdai/code?’ + rssfloat + ‘&chan=yes&num=0&desc=yes&date=no’;
function showdelicious(){ document.write(‘’) document.write(‘’) document.write(‘’) }
如果有更好的方式,請告知~~~~
再此寫下一些最近的讀書心得,可能太多無法一次全部寫完。但是有時間會繼續將其補其,有興趣的人再往下看吧!!
1.何謂Defensive Programming?
_Defensive Programming_一辭簡單明瞭,在此書章節的開頭也有提到,所謂的Defensive Programming並不是增強程式的防禦,這樣是沒有用的。有太多種未知的輸入與狀況可能會出現,如何在已知、未知的環境中,對於正確、錯誤的輸入的反應,才是真正的Defensive Programming。
2.保護你的程式–對於不正確的輸入(Input)
好的程式絕對不會產出不正確的垃圾(garbage),不論是正確的、非法的輸入下都應該如此。所以一個程式的開始,對於參數的輸入,在處理之前都應該要有檢查的機制,避免處理過程中錯誤的產生。(在此書中有提到相關概念稱為 Preconditional)在此章節中,本書提到許多詳細的方式,就讓我稍微用一些方式將其整理一下:
Check the values of all data from external source
對所有外來的變數,都應該要有做些檢查,比如說輸入字串就要能預防”Escape() “的輸入;對於網頁來的內容,要能分辨是不是含有非法的字串;對於數值要做”boundary check”,如此一來可大大降低錯誤產生的機率。
Check the values of all routine input parameter
處理的函式中,若要傳遞參數到其他的函式前,也要將其參數做相關的檢查,如此一來可避免不必要的錯誤值加以傳遞。
Design how to handle bad inputs
OK,即使你抓到了錯誤的輸入,最重要的是,你要怎麼處理這樣的狀況,回傳預設值、回傳上一次正確值、直接改為正確值…許多的方式可以應用。
3.Assertion的應用
的確,本書對於assertion如何應用的方法算是相當的詳細,但是如果更仔細的使用(大量範例與CODE),可以去看Debugging Windows Programs裡面第三章對於assertion有相當的介紹,不過在此書還是有提到幾個比較重要的地方:
Use error-handling code for conditions you expect to occurs; use assertions for conditions that should never occur.
也就是知道有可能發生的錯誤(輸入數值錯誤、找不到資訊、無法完成的函式)要有相關的錯誤處理方式,但是對於不應該、也不會發生的錯誤(指標尚未指定,參考點消失,COM被release掉)都應該要用assertion去加以標示出來,這一點是我認為本書再此章節中最重要的一個概念。
Avoid putting excutable code into assertions
在VC++中,assertion在release build中是不會執行的,所以儘量不要有類似以下的程式碼。
ASSERT(DoWorkReturnStatus()); > >
Use assetion to document and verify precoditions and posconditions.
針對函式內參數的應用,可以利用assertion去做一些邏輯上的檢查,藉以作一份記錄。比如說,輸入的月份應該在1~12月之間,就可以寫成
ASSERT(nMonth > 0 && nMonth <= 12); > >
For high robus code, assert and then handle the error anyway.
在此,作者建議。避免無法預測的錯誤,先ASSERT在針對ASSER的狀況去處理(光是assertion並不能解決問題,還是得將錯誤作一個妥善的控制才對。)這樣一來工程師可以快速的找到錯誤可能發生的地方,而程式本身也不會被不可預知的錯誤破壞。