hoamon's sandbox

"sandbox" is a jargon of Version Control System.

Trac安裝筆記(下)

上一篇文章 我們談了使用內建的 Tracd 來執行 Python 的 CGI 程式,本篇文章則是要介紹用 Apache2 + mod_python 來跑 Trac 程式。

事實上,這沒什麼難度,3個步驟就結束了:

  1. 安裝 mod_python
  2. 設定 apache.conf
  3. 設定 .htpasswd

Read more...


Trac安裝筆記(上)

2006年在自由軟體的最佳開發人員協助工具領域獲得評審肯定大獎的 Trac 軟體,是一套結合 Wiki 及 Request Ticket 的網頁程式。

wiki 適合來作規格書的共同開發; RT 則適合作程式專案的回饋追蹤。本來以為只有我會把這兩樣東西合在一起使用,正想裝一個 kwiki 及一個 RT 系統時(真巧兩個都是 Perl 寫的),居然讓我發現這個用 Python 寫的整合系統 Trac ,嘿嘿~世事難料!果然如此。

Trac 官網: http://trac.edgewall.org/ (原 http://trac.edgewall.com/ )它本來應是一間公司,不過現在改成 .org 的,站上也沒看見任何販賣及商業支援的資訊,應該不會是搞 Python 的,都賺不了錢吧!希望是錢賺太多,不想賺了。

Read more...


Ubuntu 6.06.1 + HUAWEI 3G 網卡 + 中華電信

不曉得之前作錯了什麼,讓 skype 無法通話。所以想要重灌我的 IBM notebook 。

趁著過年長假,我好好地整理一下 r51,其實也不算好好整理,嚴格地說:應該是隨便整理,因為我只備份3g網卡的 wvdial.conf 設定檔,其他的檔案,我並不需要備份,這得歸功 unix 的資料夾分類原則。整理後並花了1個小時把 Ubuntu os 重灌。

這一次的重灌,讓我對 Ubuntu 充滿了三分敬畏及三分害怕。

Read more...


hoamon’s public keys

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAABAEA7i8H7CpGgwHFTNNHf93y/u+eUzX9aSqtjwMQhYosELqzHZTdZTmVowzUELVvd0JwQgn0E6uYmjvnl2wY/6YjeB3Qup5N15PvPvSRGATu80VctTkkgJK40qU+/GsMIt6iZ07tawCm3d4tFgIfMhVmyzL1WC5tb8OwRXPiSo0UYBMfoqrFZL+yWxbzoDW1quocW9IAJucu7pHd8iK3v3Ydi9yeNfNJ353eYZYzdpzFpn4qsQM7OXR/C1nGbwtD6DfI9xTM/jqehW6NIstniK6BMsNu0FHCbj2gUgybikeeYF9yItnGuUL8nrFJNkJDmu3U1r6Mc0LXeqn2u2iwcDETGscFNy7ePkguYea96sdC6d7Ewe5mYYGC+E+nAtTcRIa05N+FrF2Z7bqUBKn36LjTClaAcqjkcGCKD4MKaLVPvNsr+7yXUBSnn5mesMX8JSTeC2hXUkB6tu4Df1T/f5Ju/qTtDUR1qJlzQnZJOuZRB38XhwNPEuwhSrf65dgXedNNBknlnFDISmVCIkjGjLEf5eCuHRoFzpaKoept2ZUDcSu54vNTCD3ZT7ofq89gEpE6ybzpcFlNZdr6ihZJaunm6kFwzD35Hl8FT4AdLZkJPpNAP5zFS8uRX2VomIztKTMGfFbaYIDID6Q55ZfaxZ4m3AnRj5FeTHQtumDNOVXmdI8BqrCQXKWlUHDpp+V5pHOtp7nO+5l1oKFzdtrmxURFMJMQD5KA3AQvUL/y9H2+7XNGXugiuTrTVUFJpng5xxzy4WEih0qL35iY3shFNPizeL32HV9t2VXi7oNf4CWqL9wN2YrQd8314VJOogWrULPfMNpoaUHqYxnXjP7QlSpOOsgb6+OWyN9oZHb6nhAKZSGzB9s7ql1j7qvukFeV9lXTlh+8nj7oNNJIrShxvIS726kjWqR9Xjm8u8Y+eE1PyO4ZyQzH4UE2RxRwN7G+08ABuLut6yzQshitS9n/XukN5juPvzJK5hIAdJ7k8MbctGyJcTb5QNe6EbuTwbPy15TNg9TwUZqIhfKCw1FJd5EHVbKYVw1QK/GQO5OoF8QG48SSr7X+Pdt64NliT98FZyubsEsVfdpvErHffN1H5LCCoVpqjvJ8WRqtyLDZzBNpqyI+cXXs2ZxO/3B61zvJp41mUSs8w0mNamxwB3YUqSqxqR/KHg+lAYawAgXjOOYHue46dU9wUHEZzC+f2M3PlLsqLEOt5H3jg4Zwh5I4jWmP+viHftvglr+h9XEBg9ntENUYPD7CNUC8T2+V7OIg3q4r1o39bCiJ+Ad5RUrDMKDma12mIfb4QvrzdUq+7TUlujGb5UTeVjomn00lXi9KaRXb+ZzdXtVMxTq9hHjSsDqLsQ== rsa-key-20130205
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDFxNrF4qtUeg6rbRu5E/FlCDr+EZmqvtAUCjvmBemHrhn1Bkth7JVvIwNlund5Y3t9PqXzx2nHQo95FxH7NkoMkz2rGD5/qMTd+C6sRjlfPOpAntT4AQ4QzWE88TT7F4vLWTH9n4xdU9NiZ+uhr+j5semLflLsAmHYh5vS8L7KGP5OFmyRY5ER+86JCcDblerut7d4dFsgJrInLvvBQAc1Hh4hUT14jIzL3nYgGl0hFWvivzoDS8dph5b7xguS7M7T72SqGZKtYpajwR1uTndIo6d0fZWC6bd+Luehl8ORk0jtBeG/IIWXpufyqFUe1K7xNhmZi3iZn73bacUarV66+vLn7H8wT/+UGm9HD3NS5lClDtKPqK6pW6Sgt0OpNeJ8Gf2PJqu/48sgu7ImY3/sVqTJYvN0WcQAnk0QczWsrQkNOqaVmfWdpTR5BNF6fmIARIrE8ACrW36yDpkgvK0DL9na2c9MsVV7pN0gvt9geM/2Z/LL5MK8eisbqgwmBS47grPnH1IB4IBUnXYEKx5jRxvop0jDq0HnusB13tSaKZ7s5FJcf3ZF+yWfx0nOUSWNHGF9JlrtUiQOg35l2p9G6edmla4xyqiKhifIJN1FWn6rYl1ZYRelIqdOfzSpeqpilfhLy7f9HpeD8S4zLXTZ7kN6vhCa/Hg+B0JY5StzOAK2uIR1lZhy37ACsdzmFLC6xhadiCNlZmfywZzbB3dSI2F5H+WhrAyH2h4Esdy+BjOwUfDqlg0XmmHewlNNHmnkVRSJ0ydw2C5agw8Qmo+SVpbyMwQ0GUi6SZQcdFi6ZaiFomQWH3Ndrq+Wlj0otyRVksYClO1yAx716+H+jbxModjBeG4lafKW9C/I05DbDJoUT9qzETC+EkEAA4TSn9JuPwaZ4RFx64mHQJZ2nyv36kDolHy20actbDNb+BYtaav4DoQmbuovRnI0ZnAM4kfVBT2nCGliRAz7dK7sU1mz7QDbzSdBvybGBLhAh8uf/nPBhBkOlbH1wifi10I4O5rfgTD7H0FE5VItr3tUJsQtXtyrHgqBcmmMj2B235e/vJCioWsy8FOkGa6HWfeDsXFXkB9JxSFJDDSeCdMMmdf4vIrhxlYehTZtgam2yCuWbm8ulCJ0I6VhZItdva9e7+KR96r+hZA6oi7mNAo255dmMrQVgiZ4xMsi02BbekCMTUKXAN1fbCQ1Rn2gNnwSREoy8MGkTY2CU4ke4yBMNAXMM1HY2BxuRjI+lZoJ5OEa8eU6J2E43p3nroG3rK6d+AJC0Y/b1kE1JUxkOVecYUgPPDxXZv0xgV0ESR9itocqV2IeJfoRas9aonJOKpgonpGtj6KqqDB7HIl+usbjsERj hoamon@X201i
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDgQSGTzv2hi3Lc5MLnLKDcURDSC+U0TuEEus6SQAdr0UEVJqUXMJawsNXBfF0ki1uxyAOQJWQ6BWNxfZxfCDoubXGpac6vKu57PfAD9E5Qml8pjLN0IdKH9/bRBsfLkf+3Pv48ta73FbFAgXxfEIvm1X/qwVIHldGG43or4stnaZ1zfdbpPJtXDFS3SQVGaIZKb+dTQYkwr3rtrE53fwpb72UqlkO2FfoiCe+QqNTFx2WiduVTUNzQYeeL6fXK0UsY8iq1BdY8jJoWsG76Nmo3EEivPzQ+rSFB38nLkqs+4D7ji9Hc4WP53Q6XfuUf65tO8PGpNGl4neZI8lCjN1G9tQACTFJ+2Rix8y5UjlMrEmOMXgRAY8P/R0RdCmh805z8N0IU4T6UQkMS5WIvle1TIxSvanlOnHmB9+PvHO3DHic6uRcIcTIcNz/iNPfDxAn9VVxuWzcKKKMHE+xLkfBLqUUN4eMmdLZRXRxm1idDCzaYzGqp4rrKb8puM5S/OB8n+UBR1sr6JOxWuHVZ3BDBXTkk5llSUqQ5c7FVVTjXXzb/H4U3rsL3htIixB7QxXKL9yVHBNsr2++VUDEZqCm+wXdfZgA+BSAzM21XlMj483d5qB/IyuwVJlVm+cqfkAkFB54VENHFUvSsuiS9oS97M4OCH4nktG6tu0g2c9YGM5rLMec3AQ/XeAU76xXNq4qKH/EkJHqSnhBnCeFoKPsCkBUy2ZNTwnSuVbJP1yUpRjcfXiIw8ljEYH4redk5d4S4thU4sSMBNxMLgRvaqF/rQIaXd2oKcRu9xSiu+lbx6tN/p6JwdaLpidy0t99v3/RgpbqAYZ171mpK5qd0/5YvsrVPjc5OJlTlev5Lyopcp3SX0zSmTqicvut952dknpvwDlZ6k9K5tlbRhAIaMdg7P1tCOS/pRqQYx5ZBclrTaoMEiJkzZOG3it5LlW4AFORyKYSvNKNMLsL7fEaeCD3EgSmnIQkT/kojHvg1W6ni8vm+QcXIHSVWfQ+aq4fh/46dZKOgNuWcXsXAnsrXad4nQ4vN4jzWPuMOeUYNK1PJ7CIit9m1eUES9om75BmikmfpCGeK5kKM+IOipXXnbHH1jUFXF0ZDoKOoDT7Kogkw8gT9scMlix4K0P1Mr6qIFA+yKHADX84L1GwBEem7IXyvumR0SbcHR/zp2wQ4kMUQGnaqfdLEZ0eKLu8MR7V7EspJ+PjXs44MOjpQne5R5I1IttmaVFSY/XaA98fGLxrWak+DME+n7AQvWijO8fb3h4G46NGhfH5pcYqiUgdmlo6rg1tqnwvyRwQ1FGsCMbvQ9DIbYuYEweX8e01y5VA0hLjbMAW2Z/Xso+h3DwFr6c8h hoamon@Aspire-M1930-U
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCov+ABkQfI9RMDQ6NbrkZZJThgzB/INToM7fnnHBrLyboNjsm8UiwCJHBqFlQoVvEoPJuiASZANjusV3Ofwo8lIrBc3a4w501/D7iiif/gxMnVosNx7YcfWlX1sWZgROe4L2KCxhg8GPjOH/wU3NTCjiyd6U7S5h/cKo7z2pIeF2ftm5nqE6wtBocSX0lu63lAp+YaNr7K//ACWGh+KS0pxmDqyzcdX3McrNNocmSGrlm92WFZKlTCCkZOdmoZ8I2UO7n6HWB07oi4spHmVFhyNWlpYnmEeLdSkigWrgOLgDS/VrAdzKFBYTQ8x2tklK77756Ybt6qiYV9nVIuQMJ4/LPWfbKAcgW7q6D3wSKcJGGm+4Kqee9JcP/tMtkThoR0K7CmW64TI0ctxUGKal2fGOOrecXeRwwzJgnPImpRTMUnXx1mlSxhjI8oAZxz5S8FFXHl1W9uJQFJtlEtu1mimjfWKfrgV5ATnsResp4Qem3BTcr2rbTOAN1esUucB1LEfVTcAX9xwupIPdBoQ/Ve+o4OJYiqBc2M6Y5dBKz2oWidQLTucqZFiMVg3D/VTmexyjqsYPMya59gia3JMKqE/OIYgmFdTWnCIeqyw9u6ySZN9YpYTad0ZJxgmMdc0ebXTbSsojvjmskrUkViu69lMQUmKYERUxKDzK2jkCg+f8is8e9okUn+H/XFDxrZlBJMYqkKFmAPRUEzL1NCkeu1JlLBPp+uBnKTWQABFWeuyJoKlnDLDymtUoLhcyisUAnJ6vXoxaX3VTg8BIyIdKSzy4vUF/ELxrnrYdTOZyUatvfXvOvNSK8Cdo3k9whLPdrheTxoB2EwLlCdH0Vu2qnEPM+mYIx1SuLOtluWoo7h48uTC7w1n6EWkaxyMupntbkUwXUVLndYP/AjHGBSwFQ/6Jn91Fmvj4WDS6hkTESaDmxO6X9BeVQxN9+2KVWsDYoSBBwn3EGWwWS0gnHczV13G9AKNrOyppvsnW499jrDGBZP1yuFNzvEJxRjGYL7bZRTtWRuv0Is0Md1W9NRAqnk7Kvfwyb7DQZ+d4mhTILSLq/tkg8NRTUr9Hj7OdtAEDeod+NNx2OQoJAKzaY5RJwzV5anPvVu2hr6LdxhL7B7zEOHsZOt7OHq7fprj+R32srbSslV9PaNCGnmw/7c7J2m4h6PkQYieBEs5U+NpjuzkBRZ6swaRfcDTTiDkwgS2/bpaWAUVHugIpDh5VwNLrERoetzoXtz0/18rqsM3lguKXfnAWBe/j3sgpL4KhgRg1ElvIz9Xr52oVQneGNzquDrY/+3CvhVkeLXx+ee6wxAJXryrkjWHoOtQax2xNmBYor/K5jiQaQQiHOvb4xdDE+j hoamon@ThinkPad-X230i

put above in .ssh/authorized_keys2


有趣的Google Adwords,微軟也有在用喔~

../../../_images/Screenshot-3.png

Google Adwords ,微軟也有在用喔~

某個機緣發現了 Google Adsense(網頁出版者放置廣告的系統) ,覺得 Google 真是一家良心企業,他們願意提供部份利潤給網頁出版者。

一般來說,網頁出版者寫網頁的心態大部份只是分享自己的成果,如果要讓這個成果有「利」可圖,得再花費一段力氣,如出書、建物流體系…等。但 Google Adsense 卻讓出版者簡單即能獲得利益,只要網頁使用者瀏覽網頁之際也點選了 Google Adsense 提供的廣告,那麼 Google 就會拿出一部份他在這個廣告所獲得利潤給網頁出版者。

Read more...


Follow Google!

剛剛看到這則新聞 Google股價逼近500美元 超三大競爭對手總和 。心裡覺得非常高興,一個優質的企業也能在投資人的心中排行前茅。說它優質倒不是因為賺錢的能力,而是 Google 有一個中心思想: Don’t do evil !(這是對比那家公司,請各位看倌發揮想像力吧!)

而 Google 有四項武器: Linux 、 MySQL 、Python 及 C 語言。

很高興我現在正在學習 Python 、使用 Python 。你呢!

Old Comments in Blogger

何岳峰 hoamon at 2011-10-07T15:55:52.968+08:00:

真不曉得,我當時怎麼會把 MySQL 當作是 Google 的武器呢?

資料結構重於演算法

引言:「萬丈高樓平地起。」

曾有個程式宗師說:「只讓我了解你程式的演算法,我是無法得知你程式的資料結構。但讓我了解你的資料結構,我大概也知道了你的演算法。」這可說明了演算法是依附在資料結構上的。

Read more...


Python: def 函式中的變數空間

Python 有一個和其他語言不同的地方,這個奇異點有點奇怪。當然,這一定是我不懂這麼作有什麼好處的關係。

當我們宣告一個函式如下:

def func():
    print X

這個 X 變數的值,會從 func 函式中找尋區域變數定義,找不到就往整個程式的全域變數來作套用,再找不到,就會去找整個 python 直譯器所擁用的內建變數搜尋,再找不到,就會丟出一個 NameError 的例外訊息。

Read more...


Python: 淺談 lambda 函式

lambda是用來定義一個小小函式用的,與一般使用的 def 有些許不同, Lisp 語言也有這個功能。因為這個 lambda 函式,讓 Python 語言可以更靈活地使用。

Read more...


Python: 可變物件(list、hash)在 def 函式的引數傳遞部份有著特別的行為

很多語言在函式傳遞的部份,都是用記憶體位址來作傳遞,具有不同習性語言的,我只知道有 Perl 及 Linux shell script 而已。 Python 也是用記憶體位址來傳遞引數的。

Read more...


Fork me Related Posts Plugin for WordPress, Blogger...