2010年9月18日 星期六

如何 減少 寫程式 的 風險,作出 較精確的 時程估計

最近兩周在完成一份工作
要把之前作的兩份研究,整合到另一個專案中
面對的問題大概是這樣子:










記錄一下實作時的想法

2010年9月9日 星期四

blogspot 熱門文章 widget













blogspot 發表了 熱門文章的 widget
就可以從 設計 中新增 熱門文章的 widget

缺點是目前的 熱門文章 widget 的功能還滿簡略的
可以選擇時間的範圍
可以選擇是否顯示圖片 和 簡述

Linkwithin 超好用 自動產生 延伸閱讀 連結


當然,對每一篇 blog 自已加上 延伸閱讀
一定是最完善的推薦
但是,文章一多,要去翻出舊的文章來推薦,也是一件麻煩的事情
更何況,要丟的美觀也是要花點工夫的

不用怕, Linkwithin 幫你解決這個煩惱!
Linkwithin 是一個 免費 而且 沒有廣告的服務
你只用填上 e-mail 和 blog 網址
就會依據你的選擇來產生 widget code,可以很容易的安裝到你的 blog 上

2010年9月8日 星期三

其他 highlight code syntax 方法

上一篇介紹了 SyntaxHighter: 在 blogspot 上顯示漂亮的 code 格式

還有其他的方法
1. code-prettify
一個介紹它的網站,可以看一下它 highlight syntax 的外觀
沒有選擇這一個,純粹是因為我覺得 Syntaxhighlighter 比較漂亮,而且有行數

2. Online syntax highlighting
超方便的 syntax highlighter
完全不用安裝,而是用 html 語法,來改變字的顏色和背景
有支援許多種語言
可惜我選不到喜歡的樣式,以及希望有行數

SyntaxHighter: 在 blogspot 上顯示漂亮的 code 格式

SyntaxHighlighter 目前出到 3.0.83 版
以下是簡單的如何使用在 blogspot 上的流程,官網有詳細的說明

2010年9月7日 星期二

Python: default value to a constructor parameter

我們有一個 class X
constructor 有一個參數 x
我們想給 x 預設值為一個空的 set
直覺會這樣子寫:

class X(object):
def __init__(self, x=set([])):
self.x = x


只是會發生不符合預期的結果:

a = X()
b = X()
print a.x is b.x # True <-- not expected! a.x 和 b.x 指到了同一個 set([])

a.x.add(1)
print a.x # set([1])
print b.x # set([1]) <-- not expected!

2010年9月2日 星期四

SEO: blogspot 自動產生 meta keyword 和 content

meta標籤,必須放在 之中,用於說明網頁的內容
對 Search Engine Optimization (SEO) 來說,一直視為很重要的最佳化項目

而其中最重要的就是兩個

1. description
語法:<meta name="description" content="sheep 的隨手筆記"/>
說明:網頁的內容簡述。
search engine 會抓取 description 來了解網頁的概述,如果沒有,則會抓取網頁內容的最前面幾個字 (ex: 25個字)

2. keywords
語法:<meta name="keywords" content="sheep,note"/>
說明:網頁的關鍵字。最好是以 ',' 來隔開

每個網頁最好都加上此兩種 meta 標籤
而 blogspot 預設是沒有對 meta 作任何的撰寫的
有一個方便的方法來自動的在 blogspot 產生 meta tag

2010年9月1日 星期三

rsync 來備份 mysql database (MyISAM)

詳細的 rsync 的介紹

第一次用到 rsync 是用來作 mysql 的 database 的 備份
如何你的 database 是用 MyISAM 的 storage engine 的話
(wiki 上 MyISAM 的介紹)

每一個 database 就是一個 directory
每一個 table 是以三個檔案的形式來儲存
要備份,可以直接 cp 就好

而用 rsync 的原因在於,
當 sync 的檔案有改變時,rsync 會去更新有改變的地方,並且可以跨機器的作 sync