2014年4月13日 星期日

WMI Code Creator

最近又開始寫Windows application,從MFC的世界跳躍進.Net,發現現在的程式開發的架構與觀念要比從前進步多了。

有個方便的小工具要推一下,Microsoft的WMI Code Creator。網路上搜尋到Microsoft網站有提供下載。

有需要系統相關資訊的話,WMI提供一個查詢的介面,現在連查詢的程式碼都可以自動產生。這一定要推一下的拉。

2014年2月20日 星期四

邪惡宗教

早就說基督教的教義狹隘到不行,滿嘴的愛不過是騙人的把戲。

媽祖害西海岸地層下陷

三太子跟王爺是邪靈

信耶穌得鑽石
牧師鋸觀音像
恢復處女膜?!

2013年4月30日 星期二

動物園復興?

這個周末到新竹市孔廟前廣場看紙風車劇團表演,個人看過紙風車的三次表演,對於紙風車劇團的付出與用心深感敬佩。但這次表演對新竹以至於台灣的歷史描述,個人實在不敢領教。

基本上,就是你我都被教育過的國民黨史觀。

講到日本人就是只有欺壓台灣人,拿日本人蓋的新竹火車站照片跟劉銘傳做連結,事實上劉銘傳蓋的鐵路根本短得很,根本沒有到新竹。再加以路線品質差 ,日治時期早就拆掉重蓋了。

講到新竹動物園的建立年代是民國二十五年,其實還不是日本明治年間蓋的,跟國民黨年號竟也能這樣搭上線。

講到國民黨就是歌功頌德的,又是科學園區,又是經濟奇蹟,絕口不提兩蔣的高壓統治,更別說台灣人辛苦才掙來的解嚴與民主。

我失望了,這是為台灣孩子好,還是在欺騙天真的兒童?很明顯是充滿人工色素香料的汽水。不知道民進黨的林市議員到底知不知道自己贊助了什麼東西?與其老是打高空談動物園復興,倒不如先把自己的歷史學好再說吧。


2013年4月24日 星期三

Arduino Due

Arduino是著名的open source hardware project,在社群與眾多業餘人士的支持之下,衍生了眾多周邊硬體與軟體程式庫,成為有意研究嵌入式系統的同好的寶貴知識庫。

Arduino所採用的程式語言是C++,它有相當完整的程式庫,IO相關的函式相當齊全。而硬體線路方面則是採模組化設計,一個符合腳位規格的硬體模組叫做shield,只要照著圖例接線或是直接把shield對接上,即使是軟體工程師也可以輕鬆完成線路。

原本就有Arduino UNO R3的我,因為好奇而再度購入Arduino Due。Arduino Due採用Atmel的SAM3X8E,是採用32-bit ARM Cortex M3系列的核心,工作頻率是84MHz,SRAM有96k bytes,Flash有512k bytes,遠比原本8-bit AVR系列來得強大,經過測試後也的確是如此。

但是轉換到32-bit平台並不是完全無痛。首先就是被許多原本玩家抱怨的3.3V IO與原本5V IO無法相容的問題,雖然有部分shield有考慮到電壓準位的問題,但是大部分還是沒有辦法沿用。另一個問題是它的IDE,目前1.5.2版還是beta,穩定性欠佳,另外32-bit程式也變大了,燒錄速度慢了許多。

但是以先前Arduino的成功,個人還是滿懷希望。畢竟更高階多為Linux系統,對於業餘輕度玩家太過複雜。基於.Net Micro Framework的Netduino雖然性價比高,但是個人對.Net用於embedded system有疑慮。目前看來業餘玩家這一塊還是Arduino比較有看頭。

2013年1月27日 星期日

Inkscape SVG小小相容性問題

從三年前開始,我就開始以Inkscape繪製SVG圖檔,會採用SVG的主要原因是因為我需要畫的圖大多是簡單的方塊或流程圖,在不想動用肥大的office軟體的情況下,SVG變成我的最佳選擇。另一個優點是它的檔案相當小,當然是因為我的圖案多是方塊與文字。

然而,當我把這些SVG上傳到Mediawiki的時候,問題發生了,有的圖檔會rsvg被render出一些黑色的區域,有些圖檔呈現的是方塊,有些則是不規則的黑色區塊。經過一番的研究,終於解決了這個問題。

其實實際的問題原因與現象有二:

一是黑色方塊的問題,其實是肇因於Inkscape支援的一個非標準語法。更精確的來說,就是它支援了所謂的flowed text,一個曾經進到draft,但後來卻在正式標準1.2版中被改掉的一項功能。關於Flowed text的說明,在Inkscape的FAQ網頁有提到。

Flowed text的產生是因為在Inkscape中輸入文字之前,先用游標畫一個框。如果想要單純的text,正確的做法應該是直接以游標點擊一個點,就可以開始輸入文字 。解決的方法使以Inkscape打開檔案,選擇flowed text物件,在Text選單下選"Convert to Text"即可將它改成text,當然也可以直接刪除它再重新輸入。另一個解決的方法可以在找不到flowed text的時候採用(例如flowed text方框內沒有文字,或是夾雜在許多物件之間找不到),很簡單,以vim將flowRoot的部分改掉或刪除即可。

第二個問題的肇因並沒有完全確認,但應該不是Inkscape的問題,問題是出在rsvg。通常出現在圖形較複雜,背景有大片透明的時候。這樣的檔案在IE/Firefox/Chrome上面都是正常的,所以現在傾向懷疑rsvg。但是也有解決方式,就是畫一個大塊矩形當背景即可。

2012年11月16日 星期五

不能對美國心存幻想

美國雖然是民主國家,嘴裡也口口聲聲說要支持民主,但是在國家利益之下,只要不是美國人,都是可以犧牲的。其實這樣做也很正常,美國人也常常把國家利益掛在嘴邊,只是就台派來說,司法部針對扁家在美資產逕自沒入還是很誇張。

我想中國的高官貪官在美國置產入籍多不勝數,也不曾聽說美國司法部沒入哪個貪官的資產。國民黨藏汙納垢那麼多年,落跑的人一堆,以及興票案之類不明不白的資產,都不曾被沒入。

美國司法部的新聞稿稱這是"alleged bribe",只是alleged就可以這樣搞,要說不是政治事件還真令人難以相信。我相信美國司法部會用alleged,其實也心知肚明KMT在搞什麼。

可憐的台灣人只有靠自己了,美國為了自身利益隨時可以把你給賣了。 還有,這該不會是給小金子的見面禮吧?

QEMU and ARM Linux

我是以Ububtu Linux上的qemu-system-arm來進行實驗,先要安裝qemu-system-arm

sudo apt-get install qemu-user-static qemu-system

想知道支援的CPU型號列表:

qemu-system-arm -cpu ?

想知道支援的系統列表:

qemu-system-arm -machine ?

這裡用的是ARM Versatile這個系統當範例,這塊板子的CPU是ARM926EJ-S

Toolchain


首先要解決的是toolchain,這裡是直接下載現成的CodeSourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux.

假設解開到~/test-qemu-arm/, 這時就需要把它的路徑加到PATH

export PATH=$PATH:~/test-qemu-arm/arm-2012.03/bin

寫個小程式來試試看QEMU, 這裡我用個老掉牙的Hello world C程式做測試

qemu-arm-static -L ~/test-qemu-arm/arm-2012.03/arm-none-linux-gnueabi/libc/ ./hello_world

Kernel


寫個script來設定編譯Linux kernel所需的環境變數:

export PATH=$PATH:/home/victor/test_qemu-arm/arm-2012.03/bin
export ARCH=arm
export CROSS_COMPILE=arm-none-linux-gnueabi-


根據我們使用的平台,載入default config:

make versatile_defconfig

接著做個小修改:

make menuconfig

在"Kernel Features"這一頁,打開"Use the ARM EABI to compile the kernel"

離開前記得要存下設定。

接著就可以開始編譯,這個會稍微花點時間,但以現今PC的能力來說,其實才幾分鐘而已。

make uImage

檢視一下這個uImage file:

file arch/arm/boot/uImage

大致上會看到這樣的輸出:

arch/arm/boot/uImage: u-boot legacy uImage, Linux-3.6.3, Linux/ARM, OS Kernel Image (Not
compressed), 1986896 bytes, Mon Oct 22 17:52:05 2012, Load Address: 0x00008000, Entry Point:
0x00008000, Header CRC: 0x7EF0365B, Data CRC: 0xAE2513DE


現在可以用QEMU來測試kernel:

qemu-system-arm -M versatilepb -m 128M -kernel arch/arm/boot/uImage

Root Filesystem


我們借助於buildroot來建立所需要的root filesystem。
我下載的是buildroot-2012.08.tar.bz2
網址是 http://buildroot.uclibc.org/

下面是在編譯前需要做的設定:

  • Set toolchain as an External, Custom, Pre-installed toolchain.
  • Set toolchain path = ~/test_qemu-arm/arm-2012.03/
  • Set toolchain prefix = arm-none-linux-gnueabi
  • Set serial port from ttyS0 to ttyAMA0
  • Enable "cpio the root filesystem"
  • And set "Compress method" to gzip.

有些套件可能需要安裝才能順利編過
  • bison
  • flex
  • texinfo(for makeinfo)

編出來的root filesystem是在output/images/rootfs.cpio.gz

現在把kernel跟root filesystem放在一起跑:

qemu-system-arm -M versatilepb -m 128M -kernel uImage -initrd rootfs.cpio.gz -serial stdio

這套系統可以用root登入

下面是我參考的網頁:

http://www.linuxforu.com/2011/06/qemu-for-embedded-systems-development-part-1/
http://www.linuxforu.com/2011/07/qemu-for-embedded-systems-development-part-2/
http://www.linuxforu.com/2011/08/qemu-for-embedded-systems-development-part-3/
http://elasticsheep.com/2011/01/building-and-emulating-a-basic-arm-linux-system/

2012年9月29日 星期六

Sometimes the Truth Just Socks

幾天前看著公共電視台播放的怪醫豪斯,Park重擊House的後腦杓,說了這句話:

"You’ve spent your whole life looking for truth, but sometimes the truth just sucks."

是的,sometimes the truth just socks. 了解了這個世界是這麼的現實與殘酷,這就是我現在的心情。

2012年9月8日 星期六

四不像

這個中國自製的processor是在Jserv的部落格看到的,就computer architecture的角度,我想要評評這個core。

很顯然UniCore32是ARM與MIPS架構的混合,就指令集來看,它的架構應該比較貼近MIPS(不要看mnemonic code就以為它像ARM),而且還是比較陽春的MIPS。東抄西抄的結果,不小心也把缺點抄進來了。

一是register number。register多固然對於compiler optimization有幫助,但是也代表了contex switching代價高,interrupt反應時間長。另外,大的register file也比較耗電。32 registers太多了,常寫底層程式的人應該會懂。

一是code density。ARM創造了Thumb/Thumb-2,MIPS創造了MIPS16,都是為了改進code density,code density代表的是cost and performance,UniCore32竟然直接放棄。

當年凌陽自己搞了一個S+Core,君正搞了個MIPS。現在晶心搞了Andes,北大眾志搞了個UniCore32。每次都是在自吹自擂說是可以自製CPU,其實以現在技術做個CPU有何難?真的難處在於跟市場上的架構比有沒有競爭力。說難聽一點,華人世界缺乏對軟體工程師的尊重,沒有軟硬體互相激盪配合的話,是做不出個能存活的產品來的。

以前在北京跟某個科技公司的總經理碰面,一開始就吹噓其產品是在人民大會堂高調發表,某法院院長某黨校校長某某機關首長都來了。草泥馬的,這些腦滿腸肥的官懂個屁。

也難怪東西作不好只好牽拖其他的有的沒的來騙人了。

2012年7月5日 星期四

KMT跟中國共產黨

014事件正在熱頭上,KMT就拿釣魚台開始轉移注意力。幾家藍媒開始用力報導船隻衝撞,卻絕口不提人家拿的可是五星旗。
KMT跟中國共產黨越來越像了啊!

2012年7月2日 星期一

特偵組 好樣的

特偵組諸公為了護主真是不計毀譽,明明014是被檢舉的嫌疑人,竟然大張旗鼓的要去拘提檢舉人,還在媒體上放話說要羈押,實在是不知道是怎樣的邏輯。

對014的約談與搜索就可以這樣拖個幾天,難怪GGY要說台灣是鬼島,還真是大白天見鬼了。

2012年6月30日 星期六

FTP server for Ubuntu 12.04

 用Google找了一下,大多數是用vsftpd。vsftpd是"Very Secure FTP Daemon"的意思,通常提到secure的意思就是有些小地方要注意設定,不然它理都不理你。

sudo apt-get install vsftpd

安裝之後編輯/etc/vsftpd.conf來作設定。

這裡分幾個情況來說明

Anonymous Read-Only Access
編輯/etc/vsftpd.conf
anonymous_enable=YES
anon_root=/home/ftp 
要注意的是anon_home這個目錄的設定,我習慣將它設定成/home/ftp,將它的owner:group設定成ftp:ftp,mode設定成0577。這個目錄對ftp user而言一定不可以是writable,不然login時會有訊息抱怨權限錯誤。

Anonymous Read-Write Access
編輯/etc/vsftpd.conf,除了上述的兩個變數之外有一些額外的設定
write_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES

上面的設定變數如果沒有需要可以不打開,各變數的說明請man vsftpd.conf

Local User Access
編輯/etc/vsftpd.conf

local_enable=YES


Server上有帳號的人(local users)可以login,login之後是到自己的home directory。

2012年6月9日 星期六

TFTP server for Ubuntu 12.04

用apt-get直接裝TFTP server套件。

    sudo apt-get install tftpd-hpa

Default options放在 /etc/default/tftp-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

TFTP_DIRECTORY 是TFTP的檔案存放目錄.,我是將它改成rw for all,不知有沒有甚麼副作用?

    sudo chmod a+rw /var/lib/tftpboot

在Ubuntu上面直接裝的TFTP server套件不會在開機時執行,精確一點說應該是開機時跑了卻沒有起來。這是個老毛病,修一下就好。
編輯 /etc/init/tftpd-hpa.conf ,修改它錯誤的初始條件。

#start on runlevel [2345] # the original line which is wrong
start on (filesystem and net-device-up IFACE!=lo)

2012年5月25日 星期五

Network interfaces problem for Wireshark in Ubuntu

最近因為工作上的關係,需要使用到Wireshark這套軟體,在Ubuntu 12.04安裝了之後,卻跟Windows版本不一樣,沒有出現network interfaces。經過研究,原來是權限問題。

下面是我的步驟
1. 安裝Wireshark
    sudo apt-get install wireshark
2. 將網路擷取的部份設成root or wireshark group才有權限使用
    sudo dpkg-reconfigure wireshark-common
3. 將你的帳號加到wireshark group
    sudo useradd -a -G wireshark your_account
4. Reboot

當然使用sudo or gksudo也可以,只是危險了點。

2012年5月12日 星期六

本小格公告

日常生活的折磨,讓人無力再這裡寫些什麼。台灣人好騙難教,奴性沉重,冷眼看在眼裡,也沒有心力可以改變這些蠢人。很佩服一些前輩以部落格苦心的想要扭轉現狀,在這裡要向這些前輩致敬。

即日起,會開始努力寫些小筆記,但是是與軟體技術相關的東西。那些不公不義與愚蠢的東西,基本上看心情開罵吧。

2012年3月24日 星期六

Linux from Scratch首次達陣

一年之前有次想要好好的照著LFS (Linux from Scratch)的文件編出個Linux系統來,但是卻半途而廢。這次是認真起來了,也沒想到竟然這樣簡單,幾乎沒有遭遇到大問題就編完了,而且初步看來沒啥問題。

就我的經歷來看,邊看邊做零零總總的時間加起來,大約3~4個工作天。Compilation的時間比想像中短,要拜現在x86 CPU太過強大之賜。

建議還在猶豫的人真的可以放手去做,LFS的文件相當清楚,動手做過會更有感覺。

下個目標呢?嗯~再想想吧。

2012年1月14日 星期六

今天是值得紀念的一天

小英在大選的失利,代表台灣人的民主仍是在嬰兒期。

一個滿嘴謊言施政荒腔走板的總統還能得到連任,無疑是一種反淘汰。這代表著手握著不公不義的黨產,掐著媒體的脖子,派一條狗來選都可以選得上。

馬的清廉根本就是假的,媒體的化妝術可以把黑的變白的,這讓頭腦還清楚的人真是情何以堪!

算了!結果既然是這樣,或許該考慮移民了!難怪在台灣只要有點錢的人都有綠卡或是楓葉卡,跟這些藍丁耗甚麼呢?

2011年8月2日 星期二

沒常識就少看電視

最近看到號稱有國際觀的小妹大節目,提到了有台灣人去吐瓦魯(Tuvalu),想要拍紀錄片,看看吐瓦魯有沒有因為全球暖化泡在水裡。

結果令人驚奇的是,根本拍不到被海水淹沒的小島,吐瓦魯人過得好好的。所以有了結論,吐瓦魯不過是為了爭取各國援助,誇大全球暖化事實。

其實那位導演如果認真一點先到Wikipedia查一下(英文的,中文版沒有),只要海平面再上升20~40cm,吐瓦魯就會變得uninhabitable,誰說要被淹沒才會不能住人?只要土壤鹽化,淡水糧食發生問題,問題就大條了。

這就是陳大嬸(說小妹太噁心了)所謂的國際觀啊!建立在錯誤的假設上,如何得到正確的結論呢?

2011年7月31日 星期日

宋省長的盤算

就我來看,藍營已經有敗選的打算了。最近藍營媒體對宋與親民黨大加撻伐,竟然把綠營晾在一旁,簡單的來說,就是為了爭選後的地盤。宋是不可能出來選總統的,以一個70歲老人來說,他最近的出手為的是甚麼?為的是馬敗下後留下的地盤。

親民黨本來就是國民黨的一部分,當初是宋號召成立,然而馬抓到KMT的大位之後,親民黨的泡沫化越加明顯。馬的下台是橘營趁機轉型的好時機,我預計統派在台灣要生存會越來越艱困,國親合併將在選後發生。如果宋能當上泛藍共主之位,親民黨旗下諸將才有新的舞台可以發揮。那為何不踢下國民黨呢?呵呵呵,這就是醬缸文化中所謂道統的觀念,招牌是老的好啊。

2011年7月24日 星期日

電視新聞反過來看就對了

我說HTC很可疑,新聞台都在幫它消毒敗訴的事,果然後來就真的是敗訴了。

同樣的道理,新聞台在洗腦靠么老農津貼要花多少多少錢(據說是78億),他們沒說的是所謂的退輔會一年有1000多億的預算,軍公教今年的加薪(賄選?)要108億,辦個2266的花博也要100多億。

數字大家會說,真的攤開來很難看。會去挺藍不是利益集團之中的人就是笨到不行,看起來第二種比較多。