從MoPtt事件認識自由軟體

前些陣子發生了現稱的MoPtt事件,大抵就是手機Ptt瀏覽器MoPtt會過濾掉對手JPtt的簽名檔’Sent from JPTT on’,也有鄉民把MoPtt的Java 嘔吐物打開來檢視,發現的確有過濾的程式碼,只要是該文字開頭該行(還是該文?)就會直接消失:

if (!flag && !s.trim().startsWith("Sent from JPTT on")) goto _L5;
else goto _L4
_L4:
return;
_L5:

其實這件事整體來看沒什麼大不了的,會鬧大比較像是MoPtt作者危機處理的問題,大部分人擔心的,都是所謂的「見微知著」:

如果今天可以屏蔽一行,明天能不能屏蔽特定詞彙?

我們可以從這個事件來認識一下所謂的自由軟體(Free Software)的理念。

...

 June 27, 2015 |    Comment  |    Comment  | 1631 字  |  YodaLee

駭客與畫家:電腦世紀的大觀念

書名 駭客與畫家-電腦世紀的大觀念
原書名 Hackers and Painters: Big Ideas from the Computer Age
作者 Paul Graham
譯者 莊友欣 莊惠淳
出版商 歐萊禮
出版日 2006-02-20
ISBN 9789867794697
...

Rust Cargo

佈署是現代程式設計遇到的一個問題,雖然網路的出現讓大家可以快速的流通成品,同時也帶來各種版本混亂。
這個問題在C/C++ 上不嚴重,主因C/C++的跟底層黏著度高,演化速度也慢,都是透過作業系統的套件更新。
相對的我們可以看到無論python 的pip、Ruby的RubyGems、Golang 支援從github 取得project、NodeJS的npm,都是要建立一個統一的套件佈署管道,方便設計師開發。

今天要提的,就是Rust 的解決方案: Cargo,用來管理rust project,當然如果不用cargo,就算像之前的嵌入式系統一樣,直接寫一個rust檔案並用Makefile + rustc 編譯也是沒有問題的。

...

 May 13, 2015 |    rust  |    rust , cargo  | 1379 字  |  YodaLee

Javascript Worker

最近在寫一些前端的東西,深覺前.端.超.難.(yay) ,接觸了HTM5 javascript 的worker , 在這裡筆記一下:

...

 May 10, 2015 |    web  |    javascript  | 640 字  |  YodaLee

書評 - 二十一世紀資本論

書名 二十一世紀資本論
原書名 Le Capital au XXIe siècle
作者 Thomas Piketty
譯者 詹文碩 陳以禮
出版商 衛城出版
出版日 2014-11-14
ISBN 9789869109321
...

使用 rust 來寫極簡的嵌入式系統

最近看到一些有趣的東西:

用rust 來寫嵌入式系統,感覺相當生猛,正好最近在上傳說中的jserv 大神的嵌入式系統,就想把嵌入式系統作業用到東西,用rust 實作出來, 主要參考的內容包括上面的armboot,跟作業的mini-arm-os :

本篇相關的原始碼

...

Rust Macro 簡介

今天要講的是Rust Macro :

Rust 的Macro 是個有趣的功能,能讓你對原始碼在編譯時期進行擴展,最熟悉的例子大概是 println! 了。

...

 April 30, 2015 |    rust  |    rust , macro  | 1653 字  |  YodaLee

Linker script 簡介

Linker script,就是給Linker 看的script。

Linker

當然這樣是在講廢話,首先要先知道Linker 是什麼:
在程式編譯成物件檔之後,會把所有的物件檔集合起來交給連結器(linker),Linker 會把裡面的符號位址解析出來,定下真正的位址之後,連結成可執行檔。

...

用llvm 編譯嵌入式程式

最近幾天在研究嵌入式系統,玩一玩也有一些心得。
課程上所用的編譯工具是arm-none-linux-gnu toolchain,在Archlinux 下可以用如下的方式安裝:

yaourt -S gcc-linaro-arm-linux-gnueabihf
yaourt -S qemu-linaro
yaourt -S arm-none-eabi-gcc49-linaro
yaourt -S arm-none-eabi-gdb-linaro
ln -s /opt/gcc-linaro-arm-linux-gnueabihf/libc /usr/arm-linux-gnueabihf

不過最近心血來潮,想來試試如果用另一套編譯器 LLVM 來編譯看看,至於為什麼…好玩嘛(炸),總之這裡是設定筆記:

...

使用Vundle 維護的新vim 設定

離上一篇 我的vim設定 已經過了一段時間
其實這個設定已經過時,大約去年九月左右就已經整個換掉了。

現在的設定是由阿蹦大神推薦的,包括:

  • Vundle 自動安裝插件的插件
  • ultisnips 強大的原始碼片段展開
  • vim-snippets 各種snippets的集合
  • YouCompleteMe 補齊插件,包括C語言、Java(雖然我沒寫)跟python 的補齊
  • Cscope Cscope,利用Ctags 幫助原始碼查找的工具
  • vim-better-whitespace 自動幫你把trailing whitespace 給幹掉的插件
  • tagbar 顯示檔案內的 tag 和整體架構
...

 March 21, 2015 |    vim  |    vim , vundle  | 1047 字  |  YodaLee