2014年5月19日

ProtonMail 加密 Mail 服務



https://protonmail.ch

之前 Snowden 揭露 NSA(美國國安局) 監聽所有網路上的所有資訊(包含電話、mail...)
使得加密 mail 這類服務的需求也增加了許多

以往要將 mail 內容加密多半會利用 GPG/PGP 產生 public key 及 private key
將 public key 提供給要寄信給你的人
對方用你提供的 public key 加密內容後寄給你
你可以用  private key 將加密訊息解密
這一來一往對於許多人來說,可能難以操作…

最近看到的 ProtonMail 就是一個方便的 mail加密服務
ProtonMail 是 哈佛、MIT、CERN 聯手製作出的 WebMail 版本的加密服務
伺服器位於瑞士以避面一些法律問題
不會儲存一些用戶紀錄並可以設定ㄧ個時間,時間一到 mail 就消失在地球上…


2014年5月5日

用 CubieTruck 做家裡的 media center


CubieTruck 是用 A20 處理器, Core 為 ARM Cortex-A7 雙核心
整個板子大小只比 2.5" HDD 大一點點而已
特點在於已經內建 WIFI / BT 甚至連 SATA II 都有
(下圖就是加了 1TB 的 2.5" HDD)






可以看到 /mnt/sata 容量 916G , 這個就是 2.5" 硬碟
另外,也可以用 sdcard 或是 外接硬碟當作大容量的儲存裝置
不過傳輸速度可能就不如 SATA 界面了(有人在 linux 上測試過這顆的 SATA 可以達到 60MB/s 以上)



Android 上有眾多功能豐富的 App 可以下載使用,一般上網、簡單的瑣碎事務都可以作到了
就像是一個大型平板(只是沒有觸控螢幕 XD)

如:用來閱讀新聞群組/網頁、利用Google 編輯文件、試算表、投影片…等



沒有想要的功能?
若是裝好編譯器,甚至可以直接在上面開發 Android App /Java / C / C++ ...等程式




也可以用來看 YouTube 或是 電影



這顆 A20 是 ARM Cortex-A7 核心,效能不算非常好,但以經足夠好了
使用上流暢、已經跟手機幾乎沒什麼差別
而且有了大容量硬碟後,作為簡單版的私人NAS已經足夠

雖然,Android 本來並不是用來作為 Server 來使用
但 Android 提供了許多好用的應用軟體,
且在我七拼八湊之下,已可以跟電腦、手機三方以 P2P 隨時作檔案同步
(因社區網路在重重NAT之下… XD)

改天有機會再改灌 LINUX 架個真正的Server,釋放被封印的 SATA ...哈






2014年3月8日

Octave 動畫製作

有時候我們會想利用 Octave 畫出某些對時間變化的動態模擬的圖形或是分佈圖
對於這方面 Octave 似乎沒有看到有什麼解決方法?
(或許是我孤陋寡聞,如果有請告訴我)

然而,動畫可以看成是一張張依序播放的靜態畫面
所以若是我們將隨時間(t) 變化的圖形輸出成一張張圖檔
再將其串起即可成為動態影像

Octave 程式寫成對時間t 的參數式:

for t = 1:0.1:3*pi
...
name = sprintf("./pic/wave-%04d.jpg", t);
print(name);

...
end
print(file_name) 輸出圖檔,檔名加上序號方便之後轉檔用
再利用 ffmpeg 將這堆圖檔轉成mp4

EX:
ffmpeg -r 10 -i wave-%04d.jpg -c:v libx264 -r 30 wave.mp4

範例:




2014年2月13日

Muzei 藝術畫作手機背景 App

Muzei 提供高解析度藝術畫作為手機背景
除了有圖片精美的優點之外,也讓使用者設定背景的模糊化程度及亮度
讓背景的畫作不會有視覺上產生干擾,很適切的融合在一堆圖示後面。

圖檔來源除了App提供的之外,也可選擇自己相機內的圖片
偶爾想欣賞一下原本清晰畫作時,亦可隨時在畫面點兩下切換




2014年2月12日

MATLAB & Simulink 免費課程








鈦思舉辦的 MATLAB & Simulink 免費課程

今年有下列課程,台北/新竹皆有
有興趣可以去看看

  1. MATLAB 基礎統計應用 
  2. MATLAB 進階統計應用
  3. MATLAB於影像處理及電腦視覺之應用
  4. MATLAB C程式碼產生器之使用技巧及應用 (MATLAB Coder ) 
  5. MATLAB 於訊號處理之應用 
  6. MATLAB和其他語言的整合 
  7. 基於MATLAB 的最佳化技術  
  8. 機器學習 (Machine learning) 


課程詳細資訊及網址

2014年2月10日

Java 中文字型問題解決方法



Linux 中執行某些 JAVA 程式時,會發現每當顯示到中文字時就會變成 [][][] 一堆的方格…
這是 JAVA  未安裝中文字型所致,當設定好中文字型,一切就能正常顯示。


安裝中文字型

  1. 到 JAVA 安裝目錄下的 jre/lib/fonts 中建立一個 fallback 目錄

EX:
若 JAVA 安裝目錄在 :/usr/java/latest/
建立 fallback 目錄 : # mkdir /usr/java/latest/jre/lib/fonts/fallback


  1. 將字型檔 copy 到 fallback 目錄中
EX:
# cp /usr/share/fonts/cjkuni-uming/uming.ttc  /usr/java/latest/jre/lib/fonts/fallback


  1. 到 fallback 目錄中,執行 mkfontscale 後,會產生一個 fonts.scale 檔案
  2. 將 fonts.scale 內容接在 jre/lib/fonts 目錄中的 fonts.dir 後面並更新第一行所累計的數量
EX: 
# cat fallback/fonts.scale >> ../fonts.dir




2013年12月30日

Octave 3.8 內建 GUI 開發環境



Octave 3.8 開始內建圖形界面的開發環境了

目前仍處於開發階段,所以預設仍是文字界面
須加上 --force-gui  參數才會開啟 GUI 界面
有了 GUI 方便性也增加許多,
預計 Octave 4.0 會成熟,並預設使用 GUI

另外,繪圖部份也加入使用 OpenGL 等新功能
互動性也更好(滑鼠可對圖形縮放、移動)




2013年12月12日

建立自己的太空任務 Kerbal Space Program













Kerbal Space Program 是讓你建構一個虛擬太空任務

有各式各樣的火箭零組件讓你選用設計出獨特(奇怪)的火箭/飛行器
組裝好你所設計的火箭後,就可以移往發射台發射

發射過程中,必須調整推力向量及設計軌道參數
讓你的酬載進入你想要的軌道或是登陸某顆星體
其中會面臨一些挑戰,像是能源管理(電力; 某些裝置沒電就停擺,可裝太陽能板)
及軌道/燃料設計(我有隻小綠人登月後就沒有足夠燃料返回地球,只好讓他在那 long stay)

整個遊戲相當符合物理設定(其中的藍星並不是地球, g 也不是 9.8 m/s^2)
真是一個寓教於樂的 game

官網: https://kerbalspaceprogram.com/

目前這 game 還在發展中,官網有 demo版可以試玩 ,
也可以在官網或是steam購買之後會持續升級






2013年12月11日

Octave ( MATLAB 替代軟體 )
























理工相關的工作的人應該大多都聽過 MATLAB 這套功能強大又十分豪華的軟體

MATLAB 就像是一個虛擬的數學實驗室,
對於作各種分析模擬或是演算法,能過很快速的建立好對應的程式
然後有著漂亮的圖形輸出看到結果
當然,該軟體價格也…

如果有學校或公司有 license 可用,當然是最幸福的
若不幸沒有人幫你付錢那……
可以慫恿你老闆去買 license …XD
或是考慮用 open source 的 Octave 來代替


2013年10月28日

OpenRocket 火箭設計模擬軟體

OpenRocket  是GNU GPL許可下的一個 Open Source 的 火箭設計模擬軟體



可以經由設定火箭各項參數(整流罩、彈體、尾翼或發動機…等參數)
模擬出發射後的狀態,如:加速度/速度變化、高度變化…



2013年10月9日

進階版 Debug Message

寫程式往往會 print 一堆變數或是訊息用來 Debug
而 Release Code 時,又不希望這些 Debug Message 鋪天蓋地的出現

或是, 印了一堆訊息,卻不知道某個訊息是
哪個檔案的哪個 function 的哪一行所印出來印出來的訊息?


由於上述問題,於是長久以來
我都會用 define 寫一個專門印 debug message  之用的巨集
並利用 #define _DEBUG_ 開啟
當 Release Code 時 , 將這行註解掉,所有的 message 就會統統消失

印出訊息包含程式檔案名稱、message 所在的行號及 function name 資訊

除了可以直接印一行字串之外
也可以印出多個變數並可以定自訂 format

#ifdef _DEBUG_
 #define Dbg(f,m...)     printf( "%s(line:%d)|%s()| "#m": "f"\n" \
     ,__FILE__,  __LINE__, __FUNCTION__ ,##m)
#else
 #define Dbg(m)
#endif


2013年10月3日

Serial Port Teminal




嵌入式系統不見得都有螢幕可以顯示資訊,
更常見是透過 UART 將資料傳輸到 PC 上顯示
不同的作業系統,往往需要找對應平台的終端機軟體跟板子連接

是否有各平台皆可執行的終端機呢?

藉由 JAVA 可跨平台特性開發了這個終端機程式,
即使在不同作業系統上只要裝好 JAVA 的 JRE
即可執行這個終端機程式

最終,打算整進一個完整開發工具中
如同瑞士刀中的一個刀片…


OS: Linux / Windows

JRE: http://www.java.com/zh_TW/download/

Serial Port Teminal :  Download







2013年9月28日

電路模擬軟體 Qucs

電路模擬軟體 Qucs

一個 Open Source 的電路模擬軟體(類似 HSPICE )


作業系統: Linux(本範例) / Windows


ScreenShots

Download


範例:

RLC 共振模擬






2012年4月12日

Android 4.0 Holo Theme


Android 4.0 中 內建的 Theme 看起來很有質感
僅須於 AndroidManifest.xml 中的 activity 中加入

android:name=".SparkAppActivity"
android:label="@string/app_name" 
android:theme="@android:style/Theme.Holo.Light"
>


即可套用該Theme
白色系: Theme.Holo.Light
黑色系: Theme.Holo

2012年3月5日

SmartGit 3 Release



Eclipse GDB

關於 Eclipse GDB 界面,放幾張畫面圖片應該可以對於他的使用方法略知一二…



先說說之後會寫些 plugin ,作為協助對於處理器不熟悉的user 可以快速上手的初始化設定。
像是clk、gpio、uart …等的設定,皆有圖形化設定界面,可以勾勾選選即可完成設定,
並產生初始化程式。

目標是能利用 Eclipse 已有的 plugin , 加上自己想要的功能組成一套 ARM 的開發環境
(雖有,Keil-C / DS-5 等好用的開發工具,但「制人而非受制於人」的無聊心態作祟
還是想做一套自己的開發環境,順便學學Eclipse Plugin…)


類似下圖方式(目前完成度仍低,就不拿出來獻醜了…XD)


-------------------------------------
回到 Eclispe GDB …
以前不管開發什麼都習慣用 vim + gdb
直到去年,試著用 Eclipse 寫一個小小的 os …發現Eclipse的確有他好用的地方
搭配 openocd + openjtag 在 s3c2440 上開心的寫程式
而去年開始玩 cortex-m3 / m0 也是繼續用這方式開發
(openocd 似乎對swd 有些問題,後來改用 Jlink …)

之後…寫 Android App / Plugin / Verilog .... 都在Eclipse上了…XD




這是程式編輯環境(裝上CDT 即可)




GDB Server 連線設定(這是透過網路連線方式)


連上 GDB Server後,可以對chip預先作一些動作
ex: load image、設定某些 register …






進入 GDB 界面
左邊是目前執行的 c code , 中間是 disassemble  ,右邊是register
下方是 mem dump、上方是變數、break point等資訊














2011年11月18日

忙碌的一年



好久沒來寫寫 blog 了… 

今年真是忙碌的一年…
許許多多的重大變化都集中在這一年發生,
這幾年蟄伏已久的累積,終於水到渠成、開花結果了 

歲末將至, 又將準備揮別這豐收又充滿挑戰的一年,向人生的下一站前進…

2010年6月9日

李白 蜀道難





「噫吁嚱!危乎高哉!蜀道之難,難於上青天!...
黃鶴之飛尚不得過,猨猱欲度愁攀援。」


默默走在這條路上是孤獨的
不僅路程遙遠、崎嶇難行
多視為畏途而敬而遠之…

回首來時路,已經走了10個年頭…

「蜀道之難,難於上青天,使人聽此凋朱顏。
連峰去天不盈尺, 枯松倒掛倚絕壁。
飛湍瀑流爭喧豗,砯崖轉石萬壑雷。」


因非系出名門,不曾受人注意
也因此低調的隱居在這茫茫人海中…

另一方面,
明知旅程困難重重、豈是我等凡人所能探尋?
卻來這山窮水盡、窮山惡水之境,遍歷壯闊山水景色

而不停在這兩種矛盾中 context switch…



「其險也如此, 嗟爾遠道之人胡為乎來哉!」

遠行的人啊,你為了什麼而來?
是為了當初那莫名的執著?

在 Stack 中掙扎 、 Timer 無情的催促下
一失足即落下萬丈深淵 …

遠行的人啊,為了什麼而來?
是否完成心中那渺小的夢想?


「劍閣崢嶸而崔嵬,一夫當關,萬夫莫開。...
蜀道之難,難於上青天,側身西望長咨。 」

1991 年的 Linus Torvalds 玩著「波斯王子」等待著他的新電腦
那年寫下 OS 雛型 印出一堆的 A、另一個 thread 印著一堆的 B…

2010 年「波斯王子」已從 GAME 變成了電影,
而我在 ARM 上重新走過 Linus 的足跡…
















--- SparkOS 開發心情日記


-------------------------- ---------------
李白 蜀道難

噫吁嚱!危乎高哉!蜀道之難,難於上青天!
蠶叢及魚鳧,開國何茫然。
爾來四萬八千歲,不與秦塞通人煙。
西當太白有鳥道,可以橫絕峨眉巔。
地崩山摧壯士死,然後天梯石棧相鉤連。
上有六龍回日之高標,下有衝波 逆折之回川。
黃鶴之飛尚不得過,猨猱欲度愁攀援。
青泥何盤盤,百步九折縈岩巒。
捫參歷井仰脅息,以手撫膺坐長嘆。
問君西遊何時還?畏途巉岩不可攀。
但見悲鳥號古木,雄飛雌從繞林間。
又聞子規啼夜月,愁空山。
蜀道之難,難於上青天,使人聽此凋朱顏。
連峰去天不盈尺,枯松倒掛倚絕壁。
飛湍瀑流爭喧豗,砯崖轉石萬壑雷。
其險也如此,嗟爾遠道之人胡為乎來哉!
劍閣崢嶸而崔嵬,一夫當關,萬夫莫開。
所守或匪親,化為狼與 豺。
朝避猛虎,夕避長蛇。磨牙吮血,殺人如麻。
錦城雖雲樂,不如早還家。
蜀道之難,難於上青天,側身西望長咨。


【語譯】
啊!多麼險峻,多麼高!蜀道難走,比上天還難。

蠶叢和魚鳧兩個蜀王,開國的事情多麼渺茫不清。
從那以後經過四萬八千年,才和秦地的人有交 通。

西邊擋著太白山,只有鳥道,高飛的鳥才可以橫渡峨嵋山頂 。
直到地崩山塌壯士都被壓死,然後才有了天梯與石棧相互連接。

上面有即使是拉車的六龍也要繞彎 的最高峰,下面有衝激高濺的波浪逆折的漩渦。
高飛的黃鶴尚且飛不過去,猿猴想過去,發愁沒有地方可以 攀援。
青泥山迂迴曲折,很短的路程內卻有很多彎道,盤繞著山峰。

屏住呼吸伸手彷彿可以摸到星星,撫胸長嘆。
請問遊歷西蜀,何時才能回來?可怕路途,陡峭的山巖實在 不可攀。
只見古樹上鳥悲鳴,雄飛雌隨往返於樹林間。
又聽見杜鵑在月夜裡啼叫,哀愁充滿空谷。

蜀道難走啊,比上天還難,這話讓人聽了紅顏凋零。

連綿的山峰離天不到一尺,倒掛的枯松依著陡直的絕壁。
急流瀑布爭相喧囂而下,撞擊著山崖使石頭翻滾,發出雷鳴 般聲響。

就是這麼危險,你這遠行的人啊,為了什麼而來?

劍閣高峻崎嶇而突兀不平,一個人駐守關口,萬人也攻不下 。
守關的如果不可靠,就會變成當道的豺狼。
早晨要躲避猛虎,晚上要提防長蛇,
磨著牙齒吸人血,殺的人數不清。
錦城雖然是個安樂的地方,還是不如回家好。

蜀道難走啊,比上天還難,側過身向西望著,不由得慨然長嘆!




2010年2月24日

SONY CW16 顯示卡設定

由於,SONY CW16 的 EDID 是 soft EDID
即使安裝了驅動程式,啟動 X Window 後 ,
由於找不到 EDID 資訊,而螢幕一片漆黑。
此時,顯示卡是進入 TV OUT 模式
(此時,若 VGA Port 外接螢幕是可以看到畫面的)

依 照下述步驟修改,即可將 EDID 資訊匯入
即可正常顯示(各種特效都可以使用)

1. 於windows中,下載 Phoenix EDID Designer 1.3
執 行後,匯出 EDID 設定檔(RAW, 128 byte)

2. 將 EDID 的 RAW 檔( sonycw16.bin )複製到/etc/X11/ 目錄中
於/etc/X11/xorg.conf 中的 Screen Section 中加入下面兩行


Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "AddARGBGLXVisuals" "True"
Option "ConnectedMonitor" "DFP-0,DFP-1,CRT"
Option "CustomEDID" "DFP-0:/etc/X11/sonycw16.bin"

SubSection "Display"
Depth 24
EndSubSection
EndSection