PageRank



轉移公告

計劃把 http://blog.hoamon.info/ 文章全部轉移至 http://www.hoamon.info/blog/ 這裡,而本 Blogger 站台的文章近 500 篇,我預計在 2014-12-31 前移轉完畢,完成後 http://blog.hoamon.info/ 將只作代轉服務,一律把舊連結如 http://blog.hoamon.info/index.html 轉成 http://www.hoamon.info/blog/index.html ,敬請舊雨新知互相走告。

新文章只發佈在 http://www.hoamon.info/blog/ 。

何岳峰 敬上

2012年9月18日 星期二

南投農田水利會土城工作站(農田水利設施暨龍泉圳記念碑)





因為意外的空閒,在回家路程中繞到草屯土城一賭「龍泉圳教育文化園區」。我是土木系的學生當然對水利設施構造物有興趣,而龍泉圳歷史的部份就請自行到下面網站了解。
  1. 龍泉圳簡介
  2. 【誰的百年?】影像展-龍泉圳記念碑
  3. 草屯鎮志(第642頁,第四章龍泉圳開發補述)
這個園區是去年(2011)暑假協辦農村再生工程講習會時,前台東農田水利會組長劉志賢講師提到的。

該園區將常見或重要的水利設施以小比例模型呈現,有各式渠道、沉砂池、渡槽、分水工、倒虹吸工等,水門則是實物,而石筍則是歷史用具了(我想應該是吧? 因為現在都用挖土機作導水路了,沒人還這麼辛苦用石筍了吧!)

我也有把解說牌拍下來,各位在看各項設施時,可前後對照。

農田水利會是一個很特別的組織,我個人認為它在過去就是一個充分表現團隊合作(政治)的自治團體。人類社會從漁獵進入農耕社會,第一件事要解決的是「水」怎麼分! 因為陽光、空氣不用費心,大家自然分得到,而「分水」這件事在人口密度高的地方益顯重要,它也不是有錢的人自己悶著頭找人自幹就夠了,一條水路從溪流引水、沉砂、入灌溉渠道、進自己的田、出排水渠道等所經過的地不可能都是同一個人的,而且 10 塊農田也沒必要有 10 條灌溉渠道、 10 條排水渠道,它又不是電信線路,不需專線專用。灌溉系統從沉砂池後進入大給水道,再分到中給水道,後進入小給水道,最後進入農田,而兩塊農田可以是共用大給、中給、小給,只在最後是高地農田先進水,再吐水給低處農田進水。這裡是臺中農田水利會的 「灌溉排水系統區分與管理組織體系」介紹。

因為大家要合作才能有省錢、有效益地讓自己的農田吃到水,這樣一起出錢出力統籌一個組織是自然而然會發生的事。所以一直以來在大部份的時間上(如果有讀歷史的話,有段時間是官派或私營的),各地水利會會長都是管理範圍內的農民投票選出來的(雖然常常看得到某政黨的色彩,但那又是旁話了)。

在農田水利入口網的農田水利事業中可看到一句話: “農田灌溉關係民生甚重、農地甚廣,我國為以稻米生產為主要作物的最成功國家之一,經過長期的發展,不僅現有之營運組織頗具規模,現有之灌溉工程設施亦頗為完善,因此就灌溉技術、用水調配及營運管理組織是世界上少數最成功的國家。為了有效調配運用灌溉水資源,臺灣地區設有十七個農田水利會,除調配用水外並負責維護其轄內之灌溉設施,以維持農田灌溉用水之供應及排除多餘之水量。目前農田水利會重要設施包括導水路、幹線、支線、分線、中小給水路、隧道及排水路,攔水壩、水門、渡槽、渠首工、水橋、跌水工、暗渠及量水設備等,分由各地農田水利會管理營運中。“這段話告訴我們要稻米種得好,就得有良善的農田灌溉系統,沒有灌溉系統,就沒有高品質的水稻。

但國人需要高品質的稻米嗎?我今日早餐是葡萄吐司,中餐是水餃、餛飩麵,晚餐吃了一碗飯及一包維力炸醬麵,這樣的米麥比例應該跟很多人一樣,既然大家都不吃飯,反過來說,灌溉系統壞了也沒關係吧!甚至,把總用水量從農業用水撥走又如何呢?

看看同一份頁面下的第三段「水資源的開發利用」,說明了農業用水一年吃掉 154 億立方,生活用水有 24 億,而工業用水最吃虧,只吃了 17 億立方,農業吃水近工業 10 倍之多,而近年來,GDP 中農業產值輸工業產值 30 倍以上,這看起來,農業應該是扶不起的阿斗,那還給它們那麼多水幹麼,又沒賺多少錢。

我不想講我的答案,但我說說幾件事實供各位參考:
  1. 農業用水進了農田後還會滲漏至地下水,這也是雲林人鑽井還能抽到水的原因; 而工業用水用完後排出的,沒幾個人有種喝下去,如果不肖廠商沒處理就把它打進地下水層中,那更是後患無窮。
  2. 農業是上游產業本來附加價值就遠低於工業,而且農產品多是生活必需品,工業產品往往不是,農產品價格高不利選舉,而農夫用老農年金打發即可。
  3. 降低自有稻米產量,拉高麥類(或其他農產品)進口量,有助於工業產品的出口(WTO的平等互惠原則)。
  4. 政府忽視工廠廣設於農田之間,有助良田變成廢地,畢竟工業廢水很容易缺染農田使其失去耕作價值,而農業廢水對工廠沒什麼殺傷力。此法可間接降低農業用水需求量,提高工業用水,反應在工業產值上,更是可倍於農損產值,兩者合併計算, GDP 只有升高不會降低。
  5. 被汙染的農產品不會只有我一人食用,有問題會有人陪。
如果說農田水利會是自治團體,那它們營利模式是什麼?(待續)

「黑天鵝效應」讀書心得

簡短摘錄書籍內容

書籍內容分成四部。
  • 第一部從知識論角度來說明人類思想的盲點。
  • 第二部舉證了「預測」本身的荒繆。
  • 第三部針對有數學、科學背景的讀者所準備,提供區分真正的不確定性方法。
  • 第四部簡短分享作者個人面對黑天鵝事件的態度。
閱讀更多…

轉移至 Nginx

2012 三月全世界的網頁伺服器市佔率圖 from netcraft.com 

上圖可以看出歷久彌新的 Apache 持續雄距首位,有超過 15 年的時間,沒"器"可挑戰它的地位。直至 Nginx 的出現,或許它現在只有 10% ,但從各方評價看來,它絕對是 Apache 有史以來最強大的對手。短短 5 年,它已經爬上第 3 名的位子,從趨勢線上看來,要超越 IIS 也是有很大的機會。

閱讀更多…

AWS 初試

因綠際會讓我有機會去研究 Amazon Web Service 。那是個與 GAE 功能相同,但操作模式不盡相同的雲端服務。

閱讀更多…

Tomcat6 + JSP + JNDI + Oracle 設定

朋友公司最近想要接個案子:『在 AWS 上面架一個 JSP 網站,而且指定資料庫須用 Oracle DB 』。

用 Oracle DB 不是難事,拿信用卡註冊進去就有了,跑一個小時最低收你 0.17 美金(約臺幣 6 元),很多人都付得起。麻煩的是朋友及我都不是熟 JAVA 及 Oracle 的人。因為我們愛用 Open Source (奇怪 JAVA 明明就是 Open Source 呀! 怎麼我直覺不是呢???)。

為此,我找了高中同學 K ,他可是名門正派(資工背景)出身,從 C , Delphi , VisualBasic , JAVA , .Net 一路走來的程式設計師。而且他幫客戶開發時,多半是採用 Oracle 或是 SQL Server 的資料庫。於是一拍即合。

那我要幹麼呢? 也不是作個牽溝仔怎麼簡單的工作就結束了。 K 只熟 Windows ,而那個 AWS EC2 是要跑 Linux 的。所以我的工作就是搞定 Linux 上的 Http 伺服器( Apache or Nginx )、 AP 伺服器( Tomcat6 ) 及 JNDI Container (其實,我一直想不懂這 JAVA 或物件導向的術語)。

在 AWS 上租用 Oracle DB 是即用即付的,所以我想要在本機先測試 Tomcat6, JNDI 設定成功後再送上去。

我的作法是在本機的 VirtualBox Windows 上裝一個 Oracle 11g express (因 Oracle 沒出 Ubuntu 版),再作一個 1521 port 的 forward ,下載 sqlplus, basic 套件,測試連線正常:

$ sqlplus test/test@//localhost/XE

第一個 test 表帳號,第二個表密碼,最後面的 XE 表資料庫實例的名稱,預設是 XE 。能看到 SQL> 提示就表示可連線 Oracle 11g 了。

安裝 Tomcat6 非常簡單,在 Ubuntu 中打上 apt-get install tomcat6 就夠了。接下來去抓 Oracle 的 jdbc driver: ojdbc6.jar ,置入 /usr/share/java 目錄。然後修改 tomcat6 設定檔:

# /etc/tomcat6/catalina.properties
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,/var/lib/tomcat6/common/classes,/var/lib/tomcat6/common/*.jar,/usr/share/java/*.jar

# /etc/tomcat6/content.xml

<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Resource name="jdbc/OracleDB" auth="Container"
    type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
    url="jdbc:oracle:thin:@localhost:1521:XE"
    username="test" password="test" maxActive="20" maxIdle="10"
maxWait="-1"/>
</Context>

# /var/lib/tomcat6/webapps/MyApps/WEB-INF/web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <display-name>My Web Application</display-name>
    <description>
        A application for test.
    </description>
    <resource-ref>
        <description>Oracle Datasource example</description>
        <res-ref-name>jdbc/OracleDB</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>

然後在 /var/lib/tomcat6/webapps/MyApps/ 放入一個 test_oracle.jsp 程式:


<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page language="java" contentType="text/html;charset=UTF8" %>
<%
Connection con = null;
Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/OracleDB");
try {
    con = ds.getConnection();
    if(!con.isClosed()){
        out.println("與 Oracle db 有連線!!\n<br/>");
    }
    con.close();
} catch (SQLException sqle) {
    out.println("sqle = "+sqle);
} finally {
    con = null;
}
%>

最後到瀏覽器去觀看 http://localhost:8080/MyApps/test_oracle.jsp 網頁,有看到『與 Oracle db 有連線!! 』那就成功了。


StartSSL Extended Validation Certificate has sec_error_unknown_issuer error with Firefox


A few days ago, i bought a Extended Validation Certificate from www.startssl.com for my client( in strictly speaking, cooperate with someone's help ).


The price of two years EV certificate is more cheaper than other competitors's in Taiwan.  StartSSL EV quotes USD$199( closing to TWD 6,000 ), and the same level competitors in Taiwan quote TWD 55,000 ~ 90,000.  Yes, you did not lost, the ten times expensiveness.

But it costs something else, because the www.startssl.com is a Israel company, we must verify the personal and  company authorization with law notarization first.  This law jobs spend our half month.  Anyway, we done, and obtain a real green bar certificate now.

After i install and configure certificate in Nginx Server, Chrome and IE can pop up rightly, but Firefox alerts a "sec_error_unknown_issuer" message to me.

The solution is catching "sub.class4.server.ca.pem"( Exclusive only for Extended Validation Cert ) and "ca.pem" into your_example_domain.crt file, and the order must be "your_domain_crt", "sub.class4.server.ca.pem" and "ca.pem".  You can find the two files in the www.startssl.com/certs/.

Below is my Nginx conf:

listen                  443;
ssl                     on;
ssl_certificate         /etc/ssl/your_example_domain.crt;
ssl_certificate_key     /etc/ssl/your_example_domain.key;

This solution wasted me about one hour, because i did not known the sub.classX.server.ca.pem is different to free-class and Extended Validation Cert.  Free-class cert uses class1 and EV cert uses class4.

Finally, i got a green internet address bar.  So happy~

Python: 淺談 lambda 函式

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

閱讀更多…
Related Posts Plugin for WordPress, Blogger...