google code-beautifer

顯示具有 教育 標籤的文章。 顯示所有文章
顯示具有 教育 標籤的文章。 顯示所有文章

星期二, 8月 01, 2017

EMACS usb 隨身碟版的配置

有時候想在外寫個無關機密的東西,但是不方便時時帶個筆電出門,湊巧有個安全的windows  機器在那可以讓你用USB碟可是你沒有管理員權限,這時在隨身帶的USB 碟上裝一套可攜版的 emacs 來寫寫文件不錯,不過既然都能跑emacs ,當然會想把自己家裡電腦整套.emacs 配置跟.emacs.d 裡面包山包海的套件也帶過來所以跟自家的環境一樣方便。這要怎麼做?其實不難:

可以在啟動emacs 的batch 檔裡設定環境參數:主要就是下面兩行
set HOME=%~dp0..\emacshome
"%~dp0\winbin\emacs-24.5\bin\runemacs.exe" %*

其中 %~dp0 就是windows 裡現行執行檔的現行目錄, 假如把這兩行寫到USB 碟上根目錄的一個檔案叫runEmacsUSB.bat,不管 USB 碟 是 e: 還是f:.... %~dp0 就是那個碟的根目錄,假定 USB 碟 是 e: 那 runEmacsUSB.bat 的位置在e:\runEmacsUSB.bat 而 %~dp0 就是 e:\
這個可以照自己喜好更動,我在  USB 碟 下開了一個子目錄 winbin ,然後又把整個emacs 隨身版拷貝到 winbin 子目錄下的emacs-24.5 裡,所以執行檔路徑就在e:\winbin\emacs-24.5\bin\runemacs.exe
這就是 runEmacsUSB.bat 第二行的前半段但是用雙引號刮起來 後半段就只是把參數全吃下傳給emacs
這樣這個在根目錄的批次檔就會去子目錄裡找到真正的執行檔
但是這個emacs 配置重點在第一行,他會指定 emacs 的家目錄 ,我是在USB 碟根目錄下開了一個子目錄叫emacshome ,然後把 .emacs 設定檔跟 .emacs.d 目錄全拷貝過去emacshome 之下,這下執行 runEmacsUSB.bat 就可以在USB 碟上跑全套 emacs 服務,在電腦上看大螢幕寫東西的爽度不是用手機可以比擬的

順帶一提,我試過emacs 24 跟25 版,在windows 10上某機器上, 25 版對我特製化的程式碼字型設定顯示不佳,會糊糊的。但是24 版不會,所以為了相容性我就沒有跑25 版

星期一, 3月 27, 2017

FreeCAD 裏用尺測量stl 檔

FreeCAD 其實蠻強大的,只是有很多事情除了軟體操作外,是得用上CAD 的知識才能順利完成,所以沒有CAD 知識背景的新手上路很辛苦,比如說明明畫面就有測量尺可用,可是打開stl 檔點半天就是沒有辦法測量。
後來才知道得先把mesh 資料產生相對應的shape ,這樣有點線就可以選兩點做測量。用法是:
主選單-> Part-> Create shape from mesh
這時得等一下讓電腦算,算完原圖會出現一大堆線,這就可以開始用尺測量

星期五, 3月 17, 2017

STM32F103RB 改用 Arduino IDE 開發

這個板子有支援can bus 理論上可以把汽車的OBD II 資料拉出來自己監控,但是手上這片STM Nucleo F103RB 要跑mbed 讓我用的很不順手(哪有人改個程式還要上網的道理?),我前年其實針對這有查過Rroger 的github ,但是當時他只列那種小板子,我就放棄了。但我再看了一下網路資料,現在其實支援的不只這些板子,有個日本人有用Rroger 的程式去處理F103RB :Arduino_STM32を試すArduino_STM32 Nucleo STM32F103RB
,所以有STM32 版的朋友可以試著多搜一下

安裝


基本上照著這邊installation指示:解開 github 上master 的壓縮檔,我把那個解開子目錄改成Arduino_STM32,copy 到你自己 Arduino sketches下的 hardware 子目錄下(沒有就自己建)這個不用放在 Arduino 主程式下hardware 子目錄下,你要放在那也可以。

用root 身份執行 tools/linux/install.sh 去增加udev rulues,最後他會抱怨沒法加dialout 進groups 那是因為原本是用一般使用者sudo 的方式,但一般我們能跑Arduino 時都已經先搞定這一部份了

Udev 設好,插進版子就會看到
/dev/sdc        144K   16K  128K   12% /run/media/你的使用名/NUCLEO
mebed 的flash 看起來超大的,這個來存中文字型啥的應該不錯

比較討厭的是每次他都會警告一下,但是不妨正常運作
Could not find boards.txt in /usr/local/arduino-1.6.12/hardware/Arduino_STM32/examples. Is it pre-1.5?

之前好像有看到有人抱怨這張版子layout 怪怪的,可能要改一些設定,不過我直接跑了blink 的程式上去,啥都沒改就燒入正常,可能是近來一票熱心的發展者把此問題解決了

我這板子是看展覽拿免費的,很大一片。但是網路上價錢不貴而且又小,有能力去網購的可以考慮一下拿這代替Arduino nanoSTM32F103C8T6小系統板 單片機 核心板 STM32開發板 學習板 ARM  ¥9.90 ( 約USD 1.42)

星期一, 10月 17, 2016

餵你的freeCAD 吃蘑菇長大大- 如何安裝addon

Linux 下32d 的CAD 工具還不少,但是能做3d 的卻不多。blender 是可以,但是學習曲線很陡,新手要是沒人帶不易入門。我跟不少人討論過這個問題。一致的結論是,先從freeCAD 這個軟體建些基本的模型上手,再想辦法慢慢學習跟其他自由設計軟體搭配。可是freeCAD 內建的功能實在很有限,讓用過專業軟體的人會有一點抓狂。後來才發現其實freeCAD 也有擴充外掛可以用,甚至還支援繪製爆炸圖這種高級CAD功能,只是一般人都不知道。以下簡短介紹如何安裝addon。

addon 其實可以個別手動安裝,不過我覺得先安裝個替新手設想的addon 管理器來管理是一個不錯的使用方式,首先請下載這個python 檔案
https://raw.githubusercontent.com/FreeCAD/FreeCAD-addons/master/addons_installer.FCMacro
macro 檔的子目錄是可以隨意定,不過既然在linux 下 freeCAD 會在家目錄下新增一個子目錄.freeCAD ,所以我就在.freeCAD下新增一個子目錄叫Macros 來管理這些檔案,把addons_installer.FCMacro這個檔案拷貝進去。這樣之後freeCAD在addons_installer 管理下,會把macro 檔存在~/.freeCAD/Macros
而把其他add on 檔存到~/.freeCAD/Mod 之下

第一次要用時,先到主選單->Macro>Macros 所跳出的視窗最下方,先指定來存放這些macro檔案的子目錄,比如說家目錄下的 .freeCAD/Macros
這樣他就會抓到macro 檔,之後點選要執行的macro 檔,執行addons_installer.FCMacro 會跳出這個

照著螢幕指示就行了,不會很難。執行addons_installer.FCMacro 安裝上面所示外掛之後,選單會列出一堆外加工具,不只限於macro 檔。他會在tool bar 裡的workbench 選單下顯示,比如說齒輪(gear)設計,他提供幾種常用基本樣式,把設定值改改一個齒輪的設計就出來了,很方便

雖說freeCAD尚不若專業CAD 軟體,但一般應用很夠了,比如comboampo說這個電吉他綜合擴大機音箱木工設計 https://github.com/shelandy/comboampo 就是用FreeCAD 做出來的

(This is the 6/20 of my #開放改變20 initiative in this year. )

星期二, 3月 15, 2016

Linux 多媒體系統隨身光碟/USB

我試過了以下幾個

  • bolic 現在根本就進不去
  • artistx.org只有puredata沒有pd-extented,
  • krosspop 跟Apodio是32bit 
  • puredyne有分64/32bit 的版本,是安裝 pd-extented

這些都停止發展了,只剩APODIO

目前我愛用 Apodio
iso 檔3.8 GB 所以最好準備個8G 隨身碟給他

APODIO 跟artistx 兩者改過設定之後都可以把USB 碟變成可寫的。
artistx 的repository 可以裝gcin 但是只有pd 。雖說新的 pd (0.4.3)之後然後手動增加pd外掛增強模組(Externals wrangler for Pure Data)deken也可以
apodio 內建沒有gcin可裝,但是內建pd-extended

星期五, 8月 22, 2014

在firefox 上遇到zotero 問題的解法

zotero 是一個跨多種引用格式的程式。寫學術論文非常好用。
在firefox 上zotero 跟libreoffice 的整合是靠把兩個xpi 的套件裝到firefox 。
要是遇到libreoffice 4 在extension manager 下zetero 顯示不出來, 解決方式是到firefox (或stanalone) 下 tool -> addon -> zetero -> preference  -> 引用->word 處理器 ->選重裝

另外一個問題是對java 的依賴:必須要裝libreoffice-java-common 套件,不
然按半天按鈕zotero 在libreoffice 的對話窗就是不跳出來。這個是在新版才有的問題。

星期四, 2月 23, 2012

隨身碟版 LibreOffice / OpenOfficce

假如您的學校或辦公室電腦沒有LibreOffice或Apache OpenOfficce,又不能搞個Linux live USB 直接開機用,這裡也有LibreOffice可攜版 :

星期日, 1月 24, 2010

從"極光行動"看開放軟體推展的重要性

自由軟體是一種全民的生活方式,而不只是少數人借以爭奪資源的工具。
這觀念其實很重要,但好東西不見得大家都知道,在還沒因為用了IE 碰到大麻煩前,許多人不並瞭解用IE 與FireFox 功能上的差異。從一個社會的群體觀點來看,如何把這些為IE 奴役的使用者拉到自由軟體的陣營呢?好的宣傳其實很重要。比如說:
"法、德政府警告民眾勿用IE"
http://www.zdnet.com.tw/news/web/0,2000085679,20143808,00.htm
這件事你知道嗎?你也許聽說了google 考慮退出中國大陸市場,你大概沒有想到,IE的漏洞在此一事件扮演了很大的推手。可以去看看這一篇
"Google中國員工可能有內賊"
http://www.zdnet.com.tw/news/web/0,2000085679,20143805,00.htm
但是文中沒有說出的是:
微軟當時為了進入大陸市場,跟中共妥協,讓中共可以檢視他們的原始碼,台灣呢,門都沒有。中共可以在關鍵時期搶在微軟發布Hotfix前對安全漏洞發動(零時差)攻擊。所以呢,你用了IE ,等於是當了網際網路的施瑯,哪一天引清兵入關怎麼死的都不知道。這次就是所謂的"極光行動" (Operation Aurora)可以參考http://zh.wikipedia.org/zh-tw/极光行动

只有IE 6確定受害嗎?去查資料的話,其實IE7 也是有可能的,只是還沒做出來。可以參考http://www.zdnet.com.tw/enterprise/technolog/0,2000085680,20143800,00.htm
裏面那張圖。基本上微軟是想利用這個事件去威脅力誘用戶繼續花錢升級到他的新版。但是那你還要等腳趾頭都流血了,才要承認去用腳去踢鐵板是一件愚蠢的事嗎?與其去用那不安全,要看微軟臉色的IE/windows/office ,還不如現在就轉投向開放軟體的陣營,有全世界的開放軟體工程師在替你當守門員,不會因某個國家或黨派的立場箝制資訊走你的電腦後門。網路上有疑似大陸Google 員工發佈「Google 事件真相」這篇文章。原文出於地址: http://www.brookswelding.com/
我第一天聽到時還網址看得到原文,2天再去看時,已經被被迫河蟹(音同"合諧")掉了連不上,今天再去看變成一個怪怪的待售網域名,我當時沒想到那麼多,現在去whois.net看的資料有一點過時了http://www.whois.net/whois/brookswelding.com
雖然目前沒有人能直接證明brookswelding當時的說法,但是對照前後發生事件的進展,中共此地無銀三百兩的意味非常濃厚。網路上找一找還是可以找到原文。

在微軟靠這壟斷市場所或取的暴利來,操控了雜誌到電視的各種主流媒體的前提下,要與之對抗,最有效的應該就是用大量小眾媒體這種螞蟻吞大象的方式,比如說

義大利有個網友替各大不同的Linux 畫了一系列的美少女Linux Tan,
Linux-tan sketch
http://www.jkhp.it/OS-tan/

http://www.firefoxflicks.com/
是鼓勵網友創作 30秒的廣告短片來推展FireFox閱覽器,在以往電視是唯一的強勢媒體時,網路短片可能效果不張,但是在大家把收視習慣移到電腦上如youtube時,情況就大不同了。

http://explorerdestroyer.com/
是當初google 跟mozila 合作的一個陣營。這個可以對台灣的企業募款做一個參考

http://www.thesourceshow.org/
這個網站只要是教大家如何拿開放軟體來做一些媒體出版,或DIY的事。封面有個很有創意,但是些微超出尺度,卻無傷大雅的照片。對年輕人用輕鬆的方式是比較吸引人的。

要怎樣推廣開放軟體?光靠政府是不夠的,前面8年,政黨輪替後新政府一年,我們只知政府每年砸幾千萬下去到錯的地方,沒有一點成效。現在是要靠大家主動站出來合作,扭轉局勢的時候了。

星期二, 2月 24, 2009

用 Graphviz 畫資料庫設計圖

graphviz 的介紹見,用 Graphviz 畫工程科學說明圖

以一般設計資料庫流程,第一階段畫 ER/EER diagram,第二階段畫relation tables 跟 key constraints,要找免費的工具還真不簡單。大多數最多也只是提供免費試用而已,我也用過dia 跟 xfig 來畫過,總覺得少那麼一點。後來還是覺得用graphviz 來畫最方便。

以我實作EER model 的情況,除了weak entity 的total participation 雙線,跟subclass 的關聯線外。幾乎可以直接全部畫出來,其實可以自行加入向量圖形,不過我很懶。在時間有限前提下,用個近似的方法就交差了。要是有人能把這兩個向量圖加入graphviz ,會是功德無量。

下面用 18分大學的體系為例,用graphviz 來畫一個資料庫設計的EER diagram。既然是18分大學,訛誤在所難免。我故意搞了些手腳,好讓那些懶惰的老師或學生會踩到地雷,但懂的人一眼就看穿。好事者請不要公佈答案,不然就不好玩了。


除了EER model ,畫relation table 也沒啥大問題,唯一的地方是標示composite key 的部份。我是用套疊格子的技巧作出來。其實這些小地方不一定要這樣作,我是依據近年美國資料庫教科書首選Elmasri的fundamentals of Database Systems用的記號為依歸,算是遵循標準吧!這樣一般大學生不用我解釋就可以看得懂我的設計。

下面用海角n億洗錢的體系為例,用graphviz 來畫relation table 設計

我想面對犯罪可以為一己之私,可以用泛政治的理由拉一堆人來替自己洗錢掩護,檢警單位應要學學怎樣用自由軟體來彙整日益複雜的犯罪資料。

一般資料庫先畫ER diagram,正規化Schema後再寫SQL。不過有個java 工具sql2dot是可以把簡單 SQL 檔轉成 dot 語言,用法是
java -jar sql2dot.jar 我的sql檔名
我試了一下,語法解析不夠彈性,有些情況沒辦法解析出來。不過後來又看到一些其他的工具sql 轉dot的工具,等以後試了再來紀錄心得。

用 Graphviz 畫工程科學說明圖

一般而言,工程科學說明圖是網路/樹狀結構但沒有很強的流程方向性的圖我用graphivz來畫,圖是網路/樹狀結構而且有很強的資料流程方向性用dia來畫。其他的我才用xfig來畫。

我覺得graphviz 最大的好處是自動編排。只要用文字編輯器把這些節點,聯接,文字相互關係...的.dot 描述檔寫好後。graphivz編譯會自動產生編排好的圖形。不用拿滑鼠在螢幕上移來移去。這在設計複雜的關聯圖形時很重要,而且這些文字大部可以在後面的流程回收。作過一次標準資料庫設計就知道了。剛開始學習要點時間,但是對理工科的人而言長期的回收絕對划算。

Graphviz 編譯命令長的像這樣子
dot -Tpng foo.sql.dot -o foo.png
,除了png 外,也可以選pdf,ps, gif 之類的格式,或是不同風格的圖形編排,輸出成png 或ps 後可以在openoffice 文件裡當插圖用,用中文的話要記得用utf8輸入即可。

graphviz跟emacs 整合的話,工作會更方便,用emacs 編完Graphviz 的.dot
描述檔之後,直接C-c C-c 編譯。(這跟python是一樣的)C-c C-p 直接在 emacs裡預覽輸出圖形。下圖是在emacs裡預覽的結果。

安裝其實很簡單,在winodws 上也有 wingraphviz 可以用。我試過跟某個用winodws平台的人共同用graphviz 溝通開發資料庫,沒有問題。應用實例後面會另文介紹。

參考
用 Graphviz 畫資料庫設計圖

星期五, 1月 04, 2008

歷史文件: 自由軟體產業

--2003 的願景到2007年底的現況

v1.0

這下面是 2003 Sep/Oct 我在軟體自由社群電子郵件論壇發表的,很多不幸的預言都已實現,有一些建設性的東西被某些單位抄去跟政府要錢,但是被亂搞一通。真正重要的東西卻沒人著力。還讓我在網路上被人倒打一記悶棍。。這以後再談。

假如能集合更多志同道合的人,記取歷史的教訓,事情的發展就會不一樣了,現下我還在默默作一些關鍵的事,希望下個四年可以有不同的景象。這裡僅作歷史文件留存,有些聯結到軟體自由協會因其經營不善而逸失,除了排版外內容儘量不更動,更新版會另外發表。
---------------------------------------------------------------------------

借回復ghost Sep 23 在Software Liberty Movement in Taiwan - 軟體自由社群電子郵件論壇
發抒一下對自由軟體產業的看法
我未修飾的原文在此
9/27
10/3

美國在outsourcing產業, 但不同於十年前,台灣要是不能走在大陸印度日韓之前,下場就會像今日的菲律賓般: 台灣從賣成衣塑膠升級到IC電腦,而菲律賓還是菲律賓。在別人也趕上來時,唯有走在前面才能生存,要是當個IT人,被不論台資或美資公司派到大陸去工作,就算不情願也是沒辦法。IBM 這個百足之蟲,投資轉型到linux 服務業不是盲目的理想。而是現實下不得不的考量,希望台灣的老闆及官員們看得到這點。

但我想在這裡有的共識是實作全字集CCCII 內碼給政府電子公文處理中心以外所有的人使用。換句話說,一旦我們做出了desktop 一般使用者的解決方案,字形公司就可以開拓新的end user市場,而不限於政府電子公文處理中心市場,市場其實可以很大,當然他們得善意的放點資源出來才能把餅坐大。

提醒一句,大陸在人力便宜的優勢下發展電玩軟體工業,他們就不會發展2byte
GBK正體字型嗎?以他們人治的體制,臺灣廠商有機會翻身嗎?文鼎之類的公司今日不幫忙自由軟體社群把全字集市場坐大,大家等著看下場吧。

資訊基本建設


有一些事是有助於自由軟體運動,也有助於所謂自由軟體產業,應該算資訊基本建設,我覺得自由/開放軟體的社群應要在這種場合呼籲編預算完成:


  • 向量字(ttf,..)of 標準楷書 in unicode, CCCII,CNS11463 in 類GPL的授權方式(文鼎只有公開big5 且聽說有部分字筆畫不合一般習慣,不適用在教科書上,Big5 的問題更不用提了,正式電子文件署名游錫(方方土)院長? 這樣的碼怎麼用!)
  • unicode 4.0 <-> CCCII <->CNS11463 <-> big5 mapping table
    ( 想要作圖書館生意嗎, 想作中文電子文獻服務的商務或研究嗎?沒有這些都免談,然後眼睜睜的看幾年後對岸用GBK碼把你的市場吃掉)如上次ghost提到Postgres 只有轉CNS11463過期的版本。各位大官大老闆們,就算Postgres是免費的,沒人把這的問題修好 ,你要怎麼作公家機關自由軟體資料庫的生意?)

    • 缺字表

      (有哪些big5字無法當unix檔名... 要提供 Samba服務嗎? 跑不掉的問題吧)

  • 其他...

    • 比較急的成立是政府電子服務障礙網,對民眾而言要能監督抱怨封閉規格造成資訊不公開。對廠商而言他們可以質疑採購封閉規格圖利特定廠商,這該是雙贏的吧。

    • CLDP,在協會的網頁已不再更新
      我們產業界的老闆們對看英文技術文件都像在廁所看金庸小說那麼順暢嗎? 假如沒有,呼籲編個預算請專業翻譯翻LDP好不好?假如國人連接觸開放軟體文件的管道都付諸闕如,是用不著多談發展開放軟體產業的。以台灣的平均研發能力是作不了英文市場的,如果在中文電腦上不著力,就等著被印度中國大陸淘汰。

      就算請一個翻譯專職一年不會用太多錢吧。



政府政策面


有個香港的朋友向我感慨,看看Debian在東方語文的討論及發展成果,就知道日本政府投下了多少力氣 。台灣人要用自由軟體做生意,可以,但先看看人家日本政府在自由軟體是怎樣鴨子划水的。假如說自由軟體是免費的午餐,也得自備餐具,夢想等別人餵就只好等死。

開放軟體的社群不用為不肖的商業模式背書,但要有對社會的影響力 。就要有監督不肖政商模式的前瞻想法,與其讓政府高談推動開放軟體產業 ,要先問政府本身做好了自身作為開放軟體消費者的準備嗎? 德國政府有個值得借鏡的例子,他們在2002就曾有一個 groupware solution 的需求,把這樣的預算拿出來請業界開發自由軟體,得標的三家公司就成立了 Kroupware 計劃然後實作出 Kolab Server 等重量級軟體。 Server GNU/Linux, FreeBSD之類的跑. Clients available for KDE 或 Windows (NT,2000), 沒有只能用微軟平台的限制。

我們個人階層要求的軟體自由,到政府階層就變成機會公平的議題 。要有人去
關切圖利特定廠商的問題,例如為何政府憑證中心(原文出自http//www.linuxfab.com/indexNewsData.php?NID=5630&PAGE=0&DETAILTHREAD=1&POSTID=\7#1-7 )只提供windows可用? 聽說電子報稅也是一樣 。政府服務用開放規格對大家(政府/個人/所有的廠商)都有好處 。舉個例子,寧願編預算給朝陽作開放軟體研究造福全國人民,政府單位及諸多開放軟體廠商,也不要給資源已比他校要多的交大編預買微軟使用執照,只有一校師生及微軟享用到好處 。這並非是否認了交大在學術研究的地位,而是要堅持資源公平及最佳運用的使用原則 。

自由軟體計劃預算應用的重點


預算應用制度,要透明公開制度

  • 發展純自由軟體計劃的優先性,要比在自由軟體上發展封閉軟體的計劃高
    免得自由軟體計劃經費都被封閉軟體拿去搭自由軟體便車

  • 要求建立好制度規範,所有經費要分次發放,避免一次全部發包 而不管計劃書的內容和結果有沒有一致,若年中前期執行成效不彰,後面的預算要能喊停,改撥到其他候選計劃

  • 要求計劃結果都要用類GPL的方式公開回饋

    • 由「名為自由軟體計劃」預算編出來的所產生的軟體部分,必須以符合 fsf 自由軟體定義, 或 osi 開放原始碼定義的授權方式釋出
    • 有很多計劃不寫一行碼,但表格文件極重要,廣義的軟體(表格文件)應也可要求用creative commons 的授權方式釋出

    避免讓不肖單位及廠商圍標走了

其他如商業開放軟體租稅減免,以國防替代役兵源協助政府機構轉向開放軟體等,可能的政策訴求,就讓大家發揮吧。

以2003 計劃未來發展



  • 長遠看,開放軟體研究,要編到大專院校資訊資管相關科系課程 。甚至,開放軟體應用,要編到專科或職技社會教育 。才有辦法培育人才滿足各方面的需求 。
    對開放原碼運動的看法。我自己的想法是,要在台灣作研究或在學校教書,就要帶一群人用打群架的方式累積一些成果, 美國一流研究發展全是團隊工作下的產物 。他們國家縱使有99/100的廢物,那1/100的精英聯手起來的力量就叫人不得不括目相看 。台灣精英遠超過1/10,沒人領導各自為政的結果就是今天的鳥樣 。以前想法比較單純 以為把我自己關注的人工智慧搞好就好了,觀察了中美社會十年 ,才深感覺得到龍應台說的: 那裡有肉就有政客,人民要自我成長,三代後才會有政治家出現 。
  • 關心開放原碼運動,其實是自力救濟:
    李果正兄有一次在論壇上提到這些應由研究機關來作,可惜台灣絕大部分的研究機關 較大的學術單位,都不是由 像洪朝貴老師這樣看得到自由軟體前景的教授領導。我對永遠的非主流派進入主流,不抱太大期望 。不說爭千秋的廢話,但爭不了今年,至少爭明後年。先把這些該作的事列出來, 在沒錢時,大家沈潛討論學新的趨勢。有錢有機會時,再把這些之前該作的完成,有機會發聲 就不要放棄機會,我不願見為商業背書,但有機會為自由軟體爭取空間就不要放過。


社群要想辦法討論出共識



  • 哪些是臺灣 FS/OSS 社群最迫切需要的
  • 與政府預定釋出的資源有無交集
    (綜觀這整件事,是政府在經濟面訴求的考量上,撒一筆錢以堵眾口之悠悠)
    但我覺得是有交集的 (詳見數日前我的post)

    沒有交集的,不如省下力氣在教育社群/自我成長上
    在有交集的地方,要求政府優先支援FS/OSS 社群最迫切需要的

大家要強調

  • 建立社群聯繫對開放原碼軟體工業的重要
  • 臺灣對嵌入式系統產業的迷思
    許多嵌入式系統廠商以為把linux 放到產品上而不管社群,顧客就會跑來。這是錯的,遠見(哈電族)及Sharp 的 linux PDA 未能擴大市場就是一個例子。

    Phillps TIVO大賣不是在賣硬體而是在賣服務,其服務的賣點在於對社群完全公開的介面,其他的類似嵌入式系統都賣的不怎樣。

    臺灣不成功的前例包括:資策會的嵌入式系統(PDA?)專案(後來一票人在Internet泡泡剛起時spin off),遠見的linux PDA,....。

    自由軟體嵌入式系統著是能賣錢,但重點是服務,不是硬體,硬體的優勢大陸廠如海爾在一兩年內就可以用低價趕上。臺灣產業及政府機構要是不能洞悉建立社群服務對自由軟體產業的重要,徒然白費力氣。

  • 不反對商業型態的開放原碼軟體,但政府不要掛羊頭賣狗肉,用自由軟體為名來作分贓的動作。oss.org.tw 很明顯應正名 oss.gov.tw "開放原碼軟體"網站之流

一點想法,願能拋磚引玉

星期六, 11月 24, 2007

歷史文件: 自由軟體 Funding Agency - 收爛攤

下面是4年前 Mon, 27 Oct 2003 14:22:22 -0600 (CST)在SLAT-talk 論壇上發
表的文章。照網友ghost原來的回信照登。當時被視為異類,對照該社團現在的發展,由此不難理解到社群健全對發展開放/自由軟體的重要,要是社群變成少數人的一言堂,再好願景理想的社群都會淪為名利/權力鬥爭的臭水溝。

看過這段歷史後,就不難瞭解,就算某人在某社群不玩跳到他處去另起山頭了,
要是整體社群沒有對組織改革的覺醒,還是成不了事的。所以會有"乃特"當初在諸多眾人不爽ICOS ,獨自力挽狂瀾推出受到好評的COSCUP ,到今天反而被某人準備興訟這檔事。

有興趣"乃特. 馮"他這邊的說法的人可參考:
COSCUP 2007 會後更新
或是他網站blog上其他更勁爆的消息

其他怨男怨女怨怨怨...參考
http://blog.gslin.org/archives/2006/08/11/686/
http://blog.markplace.net/marks_place/9/2006/10/24/148
http://blog.dragon2.net/2006/10/29/374.php
http://xuite-joke.blogspot.com/2006/10/coscup-2006.html

---------- Forwarded message ----------
Date: Mon, 27 Oct 2003 14:22:22 -0600 (CST)
From: 某人的舊電子郵件信箱
Reply-To: slat-talk@softwareliberty.org
To: slat-talk@softwareliberty.org
Cc: 軟自協 公開論壇
Subject: *****SPAM***** [SLAT-talk] Re: Re: [SLAT-talk] 自由軟體 Fundi ng
Agency - 收爛攤


On Tue, 21 Oct 2003, ghost wrote:

> > 斃了!我竟然沒有收到過下面這封信...
> > 難怪我看不懂 PFL 為什麼說:不要一竿子打翻一船人...
> >
> > --------------------------------------
> > Kuo-Chieh Ting wrote:
> >
>> > > 我一直在強調在建立良善的自由軟體預算政策 而不在學術界/ 政府主事機關有沒有分贓
>> > > 分贓嚴不嚴重 圈內人自然心知肚明 不用我這個外人評論
>> > > 沒有分贓 自然不受好的政策束縛 我只是不想淪為空談 替民意代表作作功課罷了
>> > >
>> > > 軟體自由協會的人都是這樣的態度對待社群朋友的建言嗎?
>> > >
>> > > 幽靈兄:都是你害我 好意心平氣和出來建言 結果一直被人誤解我的重點
>> > > 爛攤子你自己收吧
>> > > 你提到投書資訊與電腦的事 我寫信去問了 不過要是我被人硬劃成為光會開砲
>> > > 抨擊學術界/ 政府主事機關有沒有分贓的人士的話 這場戲就玩不下去了
>> > >
>> > > 我對自由軟體產業的完整看法會陸續更新放在我的blog
>> > > http://www.cs.uh.edu/~kcting/blog/ 上 有心人請自行參閱
>> > >
>> > > 有有心人 請注意好心的Andrew 於4 Oct 2003 18:44:47 在
>> > > http://list.softwareliberty.org/pipermail/slat-talk/2003-October/004090.html
>> > > 替我加上我原文沒有的小標題
>> > >
>> > > 有有有心人 請注意 07 Oct 2003 12:15:36在
>> > > http://list.softwareliberty.org/pipermail/slat-talk/2003-October/004170.html
>> > > 上 無視於稍早Ghost於06 Oct 2003 15:51:40在
>> > > http://list.softwareliberty.org/pipermail/slat-talk/2003-October/004145.html
>> > > 比較完整的列出我之前的建言( 附議Andrew 但沒列出Andrew自行加上的小標題)
>> > > 只提到Andrew自行加上的小標題 完全迴避我原文的預算政策重點
>> > >
>> > > 我早該聽舞蹈老師的話去練瑜珈和太極 身段太硬就是死的這樣難看 :-(
> >
> > -----------------------------------
> >
> > 先回答你上面這封信的問題:
> >
> > 1.好吧,爛攤子我來收,要是爛掉了,就全部推到垃圾集中區等垃圾車來收,反正我都不要了.
> > 2.對待社群朋友的建言?
> >  大家勉強都算社群朋友吧,把大官府軟體自由協會拖下水就太沉重了.
> >  (這個大官府真是 `~<>?!@#$%^ )
> >  不過...
> >  大家都有意見不同,想法不同的地方,所以我總是有最壞是"各自努力"的心理建設.
> >  話說回來,每個組合都有意見不合爭論不休的時候
> >  (list history 出現過很多,你不妨找一找,看一看當成消遣...)

這攤子收也太晚了吧 :-)一堆軟體自由協會朋友都早已跳出來講話 大哥您是真沒看到還是拿我消遣?其中以果正兄談的社群內資源取得及分配問題最一針見血
我對基金會或社團定位並無預設立場 但如現狀不改變 我會傾向支持基金會運作

我知道幾位都是好意維護自由軟體社群的向心力 但假如協會裡有人從作朋友變調到玩遊戲
總要有個遊戲規則 ( 依稀記得新黨最初的理想性就是被少數黨內大老用各種名目玩掉的,
以致於今天... Well我只是舉例啦 請不要說我強迫對號入座芸芸...)

我沒有拖軟體自由協會下水
一. 我就事論事 以非會員對協會裡成員的討論誠意質疑 不用"軟體自由協會的人"表稱
難道用"軟體自由協會的鬼"來表稱? (您老當然是唯一的例外)
二. 說(英)文解(中)字: "都"在中文裡可作英文裡always/often/mostly修飾用 也可當all修飾用
有人硬要套用後者 又把疑問句當肯定句來自我對號入座 我也沒辦法

這件事我該說的都說了 只希望大家到此為止 不要浪費大家時間在陪他人玩遊戲
落實在討論社群的願景及實行細節比較要緊 喜歡自我對號入座的朋友恕不奉陪

既然大哥自稱您骨頭硬 那我大膽來提 就下面大方向來討論 何如?
有膽就別走 可別像麥香雞...

以軟體自由協會為名 向政府募四千萬(其實是等著被打折到三千五百萬)
其中三千萬用於轉成立果正兄所擬基金會 方向於本土自由軟體發展規劃及整合
一千萬作下一代CLE/CLDP 基礎發展實際工作經費 (細節包括之前我們討論作 字型
轉換表...等) 成果皆具體由自由分享執照公開與全國文教工商及政府機構分享
以帶動整體社會資訊素養及產業轉型,....

基本上 我不願浪費時間在陪他人玩文字遊戲 有人誠心以待 我自然竭其所能以報
不然兄弟各自登山 我也見多了....我們來看看下面會怎樣發展下去吧

> > 3.你真的要投到資訊與電腦的話,跟我講一下,我來想辦法跟他們打個招呼,問他們意見怎樣.

資訊與電腦是大哥您建議的耶!你是鬧著玩的嗎? 我電子郵件十月六號就送出去了詢問還沒回音
我是不太確定對方的誠意 下一步就看你的咯!
黃泉路?免了吧 真要到那一天 我非同志也 比較喜歡有女鬼陪 :-)

> > 4.那你作者欄不妨加上我吧,陪你走上黃泉路,這樣有伴不錯吧 : )

> > 5.你身段太硬?有我的死人骨頭硬嗎?
> >
> > 回完了,來收爛攤...
> > 有意見的,自己加上去吧,我 overloading ,要 shutdown 送修升級了...
> >
> > ps:下面這個網址很多文字檔我都不能看 > < > > http://www.cs.uh.edu/~kcting/blog/opencontent/opensource/

那個是暫用blosxom架的blog 要用支援cookie的瀏覽器,
得先進 http://www.cs.uh.edu/~kcting/blog/ 才能往下瀏覽
blog我還是菜鳥 所以write back 等plugins 全不會動,... 正待有心人指點....

> >
> > -------------------------------------
> >
> > 這些東西,越來越難整理了...

基本上都是我在唱獨腳戲 要是月底沒有具體的訴求目標 何必強求現在就作結論?
重點是社群要自己討論出我們要的東西 現階段討論面要廣才有意義
下面的沒太多新東西 我暫且先回幾個零碎問題 其餘待有人提出新東西再後詳...

> >
> > 應該是過去一兩個月來,涉及政府及政府推廣計畫的討論中,比較重要的部分...
> >
> > 1.OSSF 可以有的作為:
> >
> > 臺灣社群要作大東西 中文介面的合作式開發除蟲回報系統是一定需要的
> > 政府應支援個專案把一套合作式開發除蟲回報系統(如 IssueZilla)詳細中文化
> > (包括文件和經理人才訓練)
> >
> > PS:反正 OSSF 本來就要有這東西不是嗎?
> > http://www.openfoundry.org/

openfoundry 算是5200萬經費運用裡比較有看頭的 不過愛之深責之切
既然已有 sourceforge 可以讓英文好的發展者用以發表 臺灣社群對
openfoundry 就要有比較高的本土化要求
有些東西不是擺在那裡就算數了 見之前我對openfoundry 的公開建議
希望他們真的會替台灣社群著想 而不是像其他機關又閉門造車
10月八號我回函openfoundry涂小姐及馬兒(兄?)tcliou (兄?)
在他們回應正式運作前我不便進一步評論

> > 2.社群有些的需求應被滿足:
> >
> > 有些重要工作是相關於軟體但非編纂程式碼
> > 如mapping table, document template, teaching/technical document,
> > 屬於opencontent, not opensource,...
> >
> > PS:誰該怎樣做以滿足這社群對這個議題的需求?

期中考提示: 美國NSF甚至有長期贊助電視節目的例子...


> > 3.政府應該扶助早就在做各種努力的社群,組織乃至於個人,而不是分錢給"只會開口要錢"的機關團體
> >
> > A.
> > 政府真有計畫經費要灑 是不是什麼單位可以把它承包下來 買幾顆硬碟作raid0+1/5
> > 把舊的 CLDP, study-area 之類的網站已建的文件作翻修基礎 外加文件索引的建立作未來目標
> > 剩的錢請人慢慢翻譯尚未有的文稿 這樣效率會比COSA 瞎從頭搞 來的好的太多吧
> >
> > B.
> > 以我們看到的內容 oss.org.tw 對自由軟體社群成果分享的效益擴散
> > 遠不如 www.linuxfab.com
> > 至少 linuxfab 有個超大的分類論壇供社群討論開放原碼軟體,而且經營甚久
> >
> > 要嘛 oss.org.tw 在年底前要作的比 linuxfab 還要好
> > 不然預算應該拿去補助 linuxfab.
> >
> > C.
> > 成立一個像「自由軟體/開放源碼辦事處」用來發放死人骨頭的單位,
> > 作為一個撥經費的單位 "Funding Agency",
> > 開放讓自由軟體社群來申請計畫 (如作字型、作轉碼表、作 HOWTO...etc),
> > 由這個中心來補助。
> >
> > http://list.softwareliberty.org/pipermail/slat-talk/2003-October/004181.html
> >
> > PS:當然最大的問題是:誰可以來審社群來提的計畫?
> > 我可以負責來送申請書,審的人不給我就罵誰 : ) <=不要當真,我很膽小... 這又落入人治至上的思維 但臺灣人治的水準實在 ... 所以我一直強調 要建立具體自由軟體政策及執行監督審計守則來校正 見之前對TCA linux portal 的示範批評及相關論述 > > 4.努力建立起政府對開放原始碼正確的觀念,使不被奸商誤導.
> >
> > A.
> > 強調建立社群聯繫對開放原碼軟體工業的重要:
> > 許多嵌入式系統廠商以為把linux 放到產品上而不管社群 顧客就會跑來 這是錯的
> > 遠見的哈電族及 Sharp 的 linux PDA 未能擴大市場就是一個例子
> >
> > ps:台北市電腦公會 Linux 促進會的阿里山日出計畫呢?是不是如出一轍?
> > http://list.softwareliberty.org/pipermail/slat-talk/2003-October/004074.html

我只問一句 這裡有誰去了嗎? 沒人去這個阿里山日出計畫就是白提了
社群要看的比他們遠 有太多更重要的事要作了 不用跟著他們跳腳
批評背後要有我們自己的一套經營策略支撐才會有力

幽靈兄要是有心 與其花時間在批評大家不太理的阿里山日出計畫
何妨提一個年度計劃預計表給大家讓大家有個具體時程概念參考 至少是以月為單位
火力可以比較集中

什麼時候預定開ICOS?有哪些要早在之前就要請大家協調的?
什麼時候在北中南開Linux群英會
什麼時候在北中南開linux體驗日(我們一般在美國都叫install fest 安裝華會)
什麼時候列預算 過去有誰拿了 ,....

有哪些機構媒體可以聯絡? Pchome, pcoffice, hopenet, dr linux, ../
四台加公視TVBS,.../中時, 聯合,../linux fab, cosa, TCA linux, III,
tnc,nici,研考會,教育部, 國科會.../那個立委,.../

這些全是重要的事 好像沒人理

沒有目標 行程 鎖定對象 我覺得都是在這裡亂放炮練中打 浪費時間
我寧願去寫程式還比較積極

(offtopic: 我之前提到要有人來整理資料 有人代回道 協會已有了全職的工程師
但跟我所預期的好像有點差距 舉例而言 我之前提了要求cccii.org
的資源十月九號發函到今天還沒人理我...更別提上面所建議的
要台灣有個健康的自由軟體未來 大家捲袖子自己來吧!)

> > B.
> > 不反對商業型態的開放原碼軟體 但政府不要掛羊頭賣狗肉 用自由軟體為名來作分贓的動作
> > oss.org.tw 很明顯應正名 oss.gov.tw "開放原碼軟體"網站之流
> >
> > ps:這我就真的不知道了,明明寫了經濟部工業局委辦了,還要弄個 .org.tw 的網址,
> >   這到底表示什麼?網站做爛了跟政府無關?政府不敢對國人說:台灣政府支持 FS/OSS?
> >
> >                             ghost 03'10/21
> >
> > --
> >
> > *請支持並參與 Freenix 伺服文件撰寫驗證計畫
> > http://www.freenix-server.info
> >
> > --
> >
> > 得 即 高 歌 失 即 休
> > 任 多 悲 愁 也 悠 悠
> > 青 松 影 裡 朦 朧 睡
> > 燕 飛 無 樓 月 已 鉤
> >
> >       風起雲湧II-幽靈
> >
> >
> > _______________________________________________
> > SLAT-talk mailing list
> > SLAT-talk@softwareliberty.org
> > https://list.softwareliberty.org/mailman/listinfo/slat-talk
> >

星期日, 11月 11, 2007

用Emacs 開發C 程式 第三部分:cscope整合

用Emacs 開發C 程式 第三部分:xcscope整合

xcscope 可以讓emacs搜尋變數的過程更簡便。

比如說找變數 i ,直接用 ^S 會找死人 (i被太多變數包含了),用正規表達式找 \bi\b 又不太方便,xcscope 會把所有引用到變數 i的block 跟行號在另一個視窗*cscope*全部列出來,在*cscope*視窗中把鼠標移到其中想要跳過去查看的那一行,按滑鼠中鍵,主程式視窗列表就會跳到對應的那一行。

安裝:


rpm沒有包入contrib下的檔,所以去抓 tar ball 來用。而且要在.emacs 裡加入

(load-file "/usr/local/cscope-15.6/contrib/xcscope/xcscope.el")
(require 'xcscope)


使用


emacs在載入 C 程式時就會啟用 csope "模式",
xcscope會在當下工作的目錄裡產生cscope.out存放交互連結資料

xcscope在emacs 主選單下有以下選項
Find symbol (d) 列出所有參考到此符號物件的程式行
Find global definition (g)
Find global definition no prompting (G)
Find functions calling a function: (c) 列出所有呼叫此函式的程式行
Find called functions: (C) 列出所有被此函式呼叫的函式
Find text string:
Find egrep pattern
Find a file:
Find files #including a file:

上面這些命令可以用以 C-c s 開頭的按鍵來執行,如Find symbol是 C-c s s跟emacs 的increamental 搜尋不一樣的地方在於,xcscope會另外開一個緩衝區叫*cscope*把所有符合搜尋條件的結果作索引一次全列出來,

比較好的方式,應該是在C 程式緩衝區可以直接用滑鼠鍵叫出 scopse 選單,然後選搜尋選項。根據http://linux.die.net/man/1/xcscope的說法,可以用pop-up (button 3)menus 叫出 xcscopse 選單。問題是沒有一個叫cscope-mode 的東西,所以在C 程式緩衝區裡無法用Ctl 滑鼠右鍵叫出cscope顯示選單。只能在%cscope%緩衝區下針對有列出來的符號用滑鼠叫出cscope顯示選單。

對於這個問題有一個解決的方式是去 ~/.emacs 下自行定義類似這樣的全域鍵盤定義。要充分發揮Emacs 各個元件的功能,善用控制鍵/滑鼠是不可或缺的一環,參考Emacs / X window 鍵盤滑鼠定義

同樣支援 cscope的有cscope-fu, ecsope, 跟bscope。bscope號稱比xcscope.el好。

參見
CScopeAndEmacs
用Emacs 開發C 程式

星期日, 10月 21, 2007

用Emacs 開發C 程式

Version 1.1

(Oct 21: 1.0版)
(Nov.12 1.1版: xcscope 的深入討論獨立出來自成一節)

最近被學校猛操 C 程式開發,我覺得開發C 除錯的時間要比lisp長很多,非得找方便的開發除錯環境來幫忙不可。理論上我可以用eclispe或anjuta 這種大傢伙來開發,但我一邊開發除錯還要一邊作別的事,那些不是很方便。最好的選擇還是找能跟emacs 搭配的工具。

目前在emacs上裝了
ecb
xcscope
xrefactory (xref-1.6.10)
覺得工作起來順手多了。這三個各司其職:
ecb 比較接近快速的瀏覽 source code 整體本身
靜態的呼叫範圍相關問題用xcscope查
跟編譯比較接近的相關問題用xref
三者都跟emacs 的source buffer 緊密結合

除了這三者外,還有一些其他的工具,其中cbrowser好像很久沒更新。SimpleCallTree 我弄不出來,作者勸我用比較正式的工具代替。

Code Crusader 5.2.1 是商業程式。demo有兩種,一種是限制使用時間,另一種是限制最多開啟5 個檔案跟5 個視窗但還要註冊。我不是很喜歡。

Doxymacs等於是Doxygen + {X}Emacs。我根本沒時間好好弄文件,就先擱著。

還有一些不熟的地方,等日後弄通了再整理出來。參見CategoryProgrammerUtils

ecb


結合gdb, outline-mode...這些說起來話長,先放一張圖片供參考。下面會再提到。可以看到在History 視窗裡某些檔案icon 從綠點變成橘點,表示下面這些檔更動過
hmm.cpp
Point.h
其他沒有綠點/橘點的檔案(如chineseNL.txtP),是其他正在編輯但不相干這個工作目錄的。但在目錄視窗裡可以看到Makefile 被動過,所以在這會從綠點變成橘點,但不是emacs 弄的,所以不出現在History 視窗。


xcscope


跟著cscope 有個 xcscope ,提供cscope 支援,可以讓搜尋變數的過程更簡便。附圖可以看到xcscope 把搜尋viterbi 這個符號的兩個結果同時在%cscope%裡顯示

關於xcsope 的深入討論獨立出來,參見第三部分:xcscope整合。

XreFactory


XreFactory(下面簡稱xref)是 www.xref-tech.com 的產品。其中 c/java 是免費使用。現在是1.6.10版。
C/C++ 版現在是2.0.13版,只有八天合法試用期,過了就該買license。
參見http://www.emacswiki.org/cgi-bin/emacs-en/XreFactory

xrefactory 可以列出沒有用到的變數。當編譯時出現問題時,假如選擇查看 log 檔,*xref-log* 視窗會列出有問題的行。如同 cscope,這時用鼠標移到其中想要跳過去查看的那一行,按滑鼠中鍵或左鍵,主程式視窗列表就會跳到對應的那一行。

XreFactory會在~/下產生 .xrefrc

每次建立一個新project 時會產生一個以
[子目錄]
開頭的區塊,裡面可以設定 編譯的選項。我自己是把 make debug 放進去,在
Makefile 註明 gcc -g 好產生符號表供dgb使用。

三者整合使用


這兩者分別控制獨立相對應的主程式列表視窗。

假如螢幕夠大,建議開兩個frame ,其中一個執行 ecb ,一個不要執行 ecb。因為 xref切frame成左右兩個視窗,建議在沒有執行 ecb的frame執行xref 動作。在有執行 ecb的frame 下切到*cscope* 的 buffer執行cscope 動作

寫好直接在 emacs主選單下選 compile。
編完直接在 emacs主選單下選 tool -> debugger(GDB)

以我手上這個程式為例,跑到最後出現
Program received signal SIGSEGV, Segmentation fault.
0x00002b4736238eab in fclose () from /lib64/libc.so.6
(gdb) where
#0 0x00002b4736238eab in fclose () from /lib64/libc.so.6
#1 0x00000000004016d6 in main (argc=1, argv=0x7fff74d3e1a8) at test.c:488
(gdb)
所以就知道程式死在第488行附近

星期五, 6月 08, 2007

在Emacs 上用正規表達式(Regular Expression)

前言

我痛恨Computer Science 一堆老師的位子都被有辦法的外系背景的人佔走,這些人又不懂電腦實務,結果搞出來的電腦教育七零八落。變成惡性循環。這檔事中外皆然,但臺灣尤烈。

假如離散數學學過了正規表達式(Regular expression)跟automata ,就一廂情願以為是可以直接在compiler 上套用non-deterministic的觀念,那就會死的很慘。就算修過compiler ,知道了要用deterministic的觀念,要以為在unix 上的find/grep/awk/表達檔案 wild card 上也可直接套用正規表達式(regular expression) 觀念來用,保證也死的很慘。因為解釋方式不一樣。現在發現,就算知道了前述 unix 系統上的工具如何正確的用正規表達式,在Emacs 下用法還是不太一樣,要小心。但是一但會用,真是如虎添翼。

在eamcs裡起動正規表達式的取代是用
ctrl-alt-%

先輸入搜尋字串正規表達式模版,按enter 後,再輸入取代的字串,一般基本的擴充正規表達式(extended Regular Expression)大多可以用

要輸入控制字元如 Crtl-J (也就是unix 上的換行控制字元),用按Ctrl-Q 後再按j 也就是先按 Ctrl-Q 後再按該字元。這讓Emacs 可以搜尋跟取代跨行的文字。強!

以下是詳細列表

  • ^
  • 代表字串開頭
  • $
  • 代表字串結尾
  • .
  • 任何字元
  • *
  • 重複前面sub-RE任意次, 跟unix 檔案不一樣的是,這跟數學上的RE 用法接近,前面要接一個sub-RE,sub-RE可以是字元RE或字串RE
  • +
  • 同*用法,但是是出現一次以上
  • ?
  • 同*用法,但是是出現零或一次
  • [ ... ]
  • 把 []裡的字元當成集合元素來用,任選其中之一
  • [^ ... ]
  • 把 []裡的字元當成集合元素來用,任選這個集合的補集合裡其中元素之一
  • \
  • 逃逸字元,把上述特殊符號當一般字元時要先加\
  • \|
  • 或: 前後兩個sub-RE 任選其中之一 ,比如說 腦殘 \| 丁丁
  • \( ... \)
  • 連接或群化:把\( \) 裡的平行元素(用\| 分隔)或把sub-RE 元素連成一個大的序列RE,簡而言之就是數學裡的 (,),按照其出現的順序,這些被\( ... \) 形成的RE 可以被後面再次呼叫引用,如\(腦殘 \| 丁丁 \)
  • \數字
  • 去引用前面被\( ... \) 形成的RE,如 \2 是引用前面出現過的第二個\( ... \)的正規表達式模組
  • \`
  • 在檔案(正確說法其實應該是buffer)起頭的空字串
  • \'
  • 在檔案(正確說法其實應該是buffer)末尾的空字串
  • \b
  • (英)文字正前或正後方的空字串 `\bfoo\b' 對應任何單獨存在的 `foo' 字串(以sub-string 型式出現的如food就不算).
  • \B
  • 不在(英)文字正前或正後方的空字串
  • \<
  • 在(英)文字正前方的空字串
  • \>
  • 在(英)文字正後方的空字串
  • \w
  • 對應一個文字字元(對英文而言,即abcd,...不包含空白之類的分隔字元)
  • \W
  • 對應一個非字元字元,也就是\w 的補集
  • \scode
  • 對應任何一個程式(code)字元. 程式字元就是上面那些特殊符號,如
    `w'(文字字元), `-' for whitespace, `(',...等等 。詳情見GNU emacs 手冊的章節: The Syntax Table.
  • \Scode
  • 對應一個非程式字元


我這裡寫的有一點心虛,是因為emacs原來只針對英文設計,處理中文時,因為語文結構上的差異造成了功能定義變得不明確。不過基本上我目前用emacs 22 處理中英文的試驗結果,\b 跟 \w 對待中文字的確是如同英文一般。有意者可以參考gnu 出版的原文手冊。這裡是GNU emacs 手冊提到正規表達式的章節:
http://www.gnu.org/software/emacs/manual/emacs.html#Regexps

星期六, 4月 28, 2007

高等教育的數學開放原碼軟體

以下這兩套軟體在 Mandriva Linux 2007 上都有現成的RPM 供安裝

Maxima


Maxima是一個自由軟體, 首頁在 http://maxima.sourceforge.net/

這是一個強大的電腦代數系統 (Computer Algebra System, 簡稱 CAS) 。功能相當完整:微積分, 矩陣計算, 二維三維繪圖等都有, 可以做符號計算與邏輯推理, 不像平常的計算機系統都只能做數值的計算。可以用以取代 Mathematica 。新版裏也推出了極具親和力的介面wxMaxima,也可以用其他的介面如TeXmacs,甚至在emacs 裡用 Imaxima 。Maxima 在主要平台如 Windows, Mac OS, Linux 上都有。

Maxima 的前身 Macsyma 是第一套 CAS 軟體。Macsyma 原本是 MIT 實驗室裏發展的軟體, 後來 MIT 將這個軟體商業化。University of Texas, Austin 教授 William Schelter 從1982 年起自行開發 Macsyma 的自由版本, 也就是 Maxima。這個版本在有商業版 Macsyma 的情況, 難以得到正式授權。Schelter 教授在這情況下仍堅持理想繼續開發 Maxima 長達 16 年。 1998 年, Maxima 得到美國能源部授權得以用GPL 釋出成為自由軟體 ,所以可見得出生是不是自由軟體不重要,重要的是能不能堅持理想把非自由軟體逐步轉成自由軟體。Maxima 不包含商用版 Macsyma 1982 – 1999 (至少50人年)的發展內容,不過仍然足夠一般教育使用,而且繼續成長中。Mathematica, Maple 等也都是受到 Macsyma 影響而來的。因為 CAS 基本學習觀念是一樣的, 要改用 Mathematica, Maple 也很容易。

參見 http://zh.wikipedia.org/wiki/Maxima
http://en.wikipedia.org/wiki/Maxima

Scilab


Scilab是一個開放原碼軟體,首頁在 http://www.scilab.org/

他是由INRIA 與ENPC開發,與 MATLAB 功能非常相似,在繪圖和處理線性代數問題都非常的出色,但也可以解ODE之類的問題 。Scilab也有類似Matlab裡Simulink的工具,稱為Scicos。無法100% 相容MATLAB的m-files, 不過在網路上有不少延伸函式庫可以增加他的功能。內附的工具箱有:
2D 及3D 繪圖、模擬
線性代數、稀疏矩陣
多項式及有理函數
模擬:微分方程隱式解和顯式解的求解器
Scicos: 混合動態系統建模器和模擬器
經典及韌性控制,LMI 優化
可微分與不可微分的優化
訊號處理
圖及網路
使用PVM 的平行Scilab
統計
電腦代數(Maple,MuPAD)介面
Fortran, Tcl/Tk, C, C++, Java, LabVIEW 介面

相關介紹與入門參見
http://en.wikipedia.org/wiki/Scilab
http://mail.nkmu.edu.tw/~crlin/SciLab_Tutorial/SciLab_tut.htm
http://science.openfoundry.org/scilab.html

星期五, 3月 09, 2007

在學校裡捍衛自由軟體的正確視聽

當你的老闆或同儕在學校裡,散佈這種由搞不清狀況的名校學者發表,偏頗不利於自由軟體的文
章時,你是站在第一線推廣自由軟體的老師,該怎麼辦?

人家玩耍賴的,我們當然也可以用人身credit來質疑,比如說: M$ 捐了不少錢給
哈佛,MIT 在OCPL就用linux走不同的路。其次作者不是在電腦界的,卻用過去的經濟理論
來預測完全新的領域(照這樣,Apple 僱用被開除的Steve Job回鍋當CEO,現在不該倒
閉了?),.....但我覺得這樣在學校裡跟人家比爛,那不好。

下面是我的答案,比較學院風格:

Date: Thu, 28 Sep 2006 20:54:50 -0500 (CDT)
to: 相關同儕(這不好公開)

> Windows will beat Linux threat, say academics
> http://smallbusiness.itworld.com/4378/060912windowslinux/pfindex.html

I do not trust a paper mentioning this by the authors themselves:

"The researchers admit that the formal economic model they've constructed
is highly simplified, and may not reflect important factors that exist in
the real world"


I am not interested in invloving the flame war between Linux VS windows.
I just want to share with you four different view points:


One from MIT
http://laptop.org/

One from French
http://quoi9.net/english/2006/09/25/free-computer-with-every-broadband-subscription/

On from India
http://www.financialexpress.com/latest_full_story.php?content_id=138497

Actually, right here in Texas, Sam Houston State U. is replacing their Cisco VoIP for
open-source Asterisk on linux server
http://www.linuxworld.com/news/2006/091206-von-sam-houston.html

星期日, 2月 12, 2006

關於O世代的新思維

O世代? Generation-Open(開放世代)也。
請別把O世代誤以為成"同志"世代。同志群除了打破傳統性別角色認同外,對其他事務持保守態度的大有人在。雖然我很同情許多同志被社會壓迫的現象,但我不是同志,我也不想自限於停留在僅僅打破傳統社會對性別的不平等,要挑戰的事情還很多,並不只有這一點。

在二十一世紀社會經濟政治科技的新紀元,我要指出的是:
除了勇於挑戰別人的保守外,能不能挑戰自我的封閉,是走出下一步的關鍵。
在台灣/中國大陸社會,最常見現象的是一些人用勇於挑戰別人的權力做號召,一但自己獲取權力後,又開始下一個用權力來禁錮他人自由的惡性循環。這不是我要的。有力氣去把餅坐大多好,何必耗費力氣在勇於內鬥去搶同一塊餅?
我在此引用的Open(開放) 的願景,是特指 Free Software fundation 的 Richard Stallman 所揭赭自由軟體追求的

Free as in Freedom

所引伸出的Open(開放) 。但是這裡強調的是群體長期的自由,而非個人一時的自由,因為個人一時的任意自由,是可以被有心人不公不義的用來去擷取個人利益而妨礙群體長期的自由,那不是大家所樂見的。

那為什麼不用 Generation-G(NU) 或者Generation-F(ree) 呢?
GNU 的觀點是從軟體自由出發,但我覺得還不足夠,應該包涵更寬廣的生活環境,包括開放文件或創作 (如 Project Gutenrberg 或中國文學電子圖書館計劃) ... 而且 GNU 的部分願景目前有地域性的問題 。
Free 在英文有兩譯:免費或自由,後者其實才是Richard Stallman 的重點,在爭取軟體自由的過程中,常常因為對物質報酬的預期心理而導致一些爭議的雜音,更何況有時一時的個人經濟自由,不見得能保障群體的使用更新自由。在選一個簡短標語之時,我寧可捨棄受爭議的免費,來強調其他自由的重點

你認同我的觀點嗎?歡迎加入Generation-O(開放世代)的行列