南韓資優生的程式教學
以下所摘要的內容,為南韓 KAIST 對於大一不分系學生所開設的程式語言課程規劃,自 2010 年春天開始,由原本的 Java 教學改為 Python, 這項改變與 Java 程式語言本身的功能與用法的優劣完全沒有關係,重點在於,這個專門招收南韓資優生的大學,經過幾年的嘗試,終於體認, Python "或許"比 Java 更適合用來作為大一的第一門程式語言課程.
美國喬治亞理工學院, MIT,與 Google, Yahoo, Red Hat 大量採用 Python 的案例,或許對於採取此一改變的大學,提供了更有力的背書.
Java 與 Python 都是一時之選的高階程式語言,但是對於初學者而言, Python 應該比 Java 更容易聚焦在演算法與邏輯概念的教學與印證.
南韓已經跟進,那台灣呢?
Notepad++ 與 Portable Python
http://arccos.blogspot.com/2009/03/notepad-python.html
說明了如何在 Notepad++ 中使用系統所安裝的 Python,或者必須要提供給 Notepad++ Python.exe 所在的絕對目錄,這點對於可攜的 Portable Python 與 Notepad++ 來說都不甚方便,雖然可以透過 subst 的方式,在每次隨身裝置啟動後,執行一次資料的對應,但是最簡便的方式,可以透過以下設定完成兩者的整合:
1. 將 Notepad++ 放到 Portable Python 的目錄中.
2. 在 Notepad++ 中編輯一個批次檔 exec_python.bat,內容為,
cd ..
python %1
3. 在 Run->Run 的外部指令對應中,輸入
cmd /k exec_python.bat "$(FULL_CURRENT_PATH)" & PAUSE & EXIT
4. 最後將此一指令存成快捷鍵,名稱存成 python, 並且與 Ctrl+Alt+Shift+P 對應.
設定完成之後,就可以在 Notepad++ 中編輯 Python 程式,然後按 Ctrl+Alt+Shift+P,啟動執行.
五個階段的 PHP 資料庫連結
PHP 的資料庫連結,共經歷過:
1. PHP 透過 COM 以 DSNless 連結 Access 資料檔 (Windows 環境)
2. PHP 透過 ADODB 連結 Access 資料檔 (Windows 環境)
3. PHP 透過 ADODB 連結 SQLite 2.0 資料檔 (Windows 與 Linux 環境)
4. PHP 透過 ADODB 連結 MySQL 4.0, 5.0 資料庫 (Linux 環境)
5. PHP 透過 ADODB 連結 SQLite 3.0 資料檔 (Windows 與 Linux 環境)
基本的 PHP 程式,則由 4.0 過渡到 5.0,以下為相關的資料庫連結設定:
function access_connect($database_name)
{
global $dbc,$connstr;
// this is for sqlite 3.0 through adodb and pdo
$dbc = NewADOConnection('pdo');
$dbc->SetFetchMode(2);
$connstr="sqlite:".dirname(__FILE__)."/".$database_name;
$dbc->charPage=CP_UTF8;
if ($dbc->Connect($connstr)==NULL)
{
$output="無法連接到資料庫";
return $output;
exit;
}
}
twCMSimple 中文 3.3 版釋出
請到
http://cmsimple.cycu.org/?Download_twCMSimple 下載
在台灣希望在中華電信註冊一個特有的網路符號名稱,費用為每年新台幣 900 元(其他服務商的收費更便宜,但若是公司,建議還是在中華電信登記 Domain Name).
在台灣的虛擬主機,只要能夠支援 PHP,就能夠執行 twCMSimple,費用一年大約為新台幣 1000 ~ 5000 元(當然還有更便宜的其他網路服務商).
以 Python 查驗檔案 md5 值
根據這篇網誌的說明,可以利用以下的 python 程式查驗特定檔案的 md5 值.
#!/usr/local/bin/python
import os, sys
import hashlib
def md5(fileName, excludeLine="", includeLine=""):
"""Compute md5 hash of the specified file"""
m = hashlib.md5()
try:
fd = open(fileName,"rb")
except IOError:
print "Unable to open the file in readmode:", filename
return
content = fd.readlines()
fd.close()
for eachLine in content:
if excludeLine and eachLine.startswith(excludeLine):
continue
m.update(eachLine)
m.update(includeLine)
return m.hexdigest()
if __name__ == "__main__":
for eachFile in sys.argv[1:]:
print "%s %s" %(md5(eachFile), eachFile)
twCMSimple 中文 3.2 版釋出
最新版的 twCMSimple 中文 3.2 版已經完成,並在今天釋出,歡迎到
http://cmsimple.cycu.org/?Download_twCMSimple 下載.
CMSimple 中文版的特點如下:
1. 可以正確顯示中文簡體與繁體內容,原來的英文版本,在 UTF-8 編碼下,碰到特定的中文組合內容,會出現亂碼.
2. 可以正確使用中文命名的影像檔與上下傳檔案.
3. 可以將網頁的管理密碼進行編碼,以增加資料的安全性.
4. 適用於 Windows 與 Linux 操作系統.
5. 上傳影像檔時,系統自動產生縮圖,內容頁面插入縮圖,編輯器自動產生連結至原圖.
6. 適用於 Shared SSL 環境.
7. 內建 wrapper plugins.
嘉義燈會系列報導(一)
嘉義公園大門口附近,為了配合即將登場的嘉義燈會活動,已經緊鑼密鼓進行各項裝置藝術工程(2007年的嘉義縣燈會),以下為相關影像畫面.
本次工程由幼葉林藝術創作工作室負責,找遍搜索引擎,除了找到負責人零星的作品介紹,沒有專門的工作室網站,也沒有此次作品的介紹,實在可惜.
Page Rank 查詢
最友善的查詢連結,可能是 easylife 這一個.
http://pagerank.easylife.tw/
Page Rank 是 Google 用來辨識網頁重要性的一種評量方法,但是在過去十年的網站架設中,對於網址的異動與內容的雙重備份,都很容易受到"處罰"而丟失好不容易累積的 Page Rank.
在幾年前,或許還會希望設法 Argue 回來,但是事情一多,就想,算了,只要網站的開銷與收入,能夠打平就好了, 網站內容被 Google 給誤判,就認了.
最近在蒐集與 SEO 相關的資料, 發現最具權威性的網站為 http://www.dns.com.tw/blog/, 不但有許許多多深入討論 SEO 的文章與見解,等讀通了,再好好萊整理一下手上可憐的網站.
Shared SSL 環境下的 WebERP
這裡指的 WebERP 來自 http://www.weberp.org/,是一套適合中小企業使用的網際企業資源規劃系統.
首先是 config.php 與 includes/Login.php 中的修改,必須區分共享 SSL 連線與一般連線的差異
1. 針對 config.php
// blog.cycu.org for netsolhost shared ssl
if($_SERVER["HTTP_X_FORWARDED_HOST"])
{
$rootpath = "https://".$_SERVER["HTTP_X_FORWARDED_HOST"]."/".$_SERVER["HTTP_HOST"]."/";
}
else
{
$rootpath = dirname($_SERVER['PHP_SELF']);
針對 Login.php,將 $_SERVER['PHP_SELF'] 改為 $rootpath
<form action="<?php echo $rootpath;?>" name="loginform" method="post">

