prism

2013-12-29

政府搬錢紀實

這是一篇有關於房地產及稅制的紀實

現在政府或是民眾口中常冒出來的打房,有時候,聽起來自己覺得大家有點被誤導了

在這裡提出一些小弟的見解,房價不需要打,因為政府才是最後的獲利者,

已現行的一般民間通用的,規費計算,買賣雙方,一筆交易後,仲介拿走 6%

給政府的契稅 6%,土地增稅,及代書等相關費用,最後大約有到實價 2% 左右,

依各區域公告地價而定,代書有辦事,仲介也有辦事,政府該算是躺著賺

另外,賣方需申報該年度的房屋所得稅,如果你一買一賣,賺了 200 萬,那這 200

萬是要併入年度所得稅,這一點是最有爭議的地方,如果一般人一輩子就買一到,兩間

的房屋,房屋資產累積,是他一年一年,已稅後薪資所得償還房屋貸款得所得資產,並非一朝一日

的立即利益所得,可是卻會被併入個人該年度所得稅裡,實在算是強取豪奪,房貸可是要繳一二十

年呀,每一毛繳貸款的錢,都已經課了所得稅了,而且銀行的利息,及通貨膨脹,都不算得,哪算

得上是一年的所得,所以最後的贏家就是政府無誤,挑起社會階級的仇恨,從中操作獲取利益

每年一點一滴的加稅

勞保一年一年增加,失業改繳國保

這年頭大家都在比,誰能由政府手上,多拿一點,或是少給一些,才是贏家

案例:

各大電子代工,毛利,3% 4% 利用政府給科技產業租稅優惠

日X生,政府出面,收刮土地,賣給財團,建高價的房屋,在高價賣回給人民

日X光,科技業,租稅優惠

各重劃區的,土地利益糾隔


PS: 這一篇的出發點,是平民百姓,不是聖人,或是富豪,房價會高,就是有需求,不管是民眾因為
就業,離不開,或是親友的生活圈,或是通貨膨脹,不再信任官方每一年的通彭數據,不再相信新台幣,
不管哪一個理由,政府都有責任,而不是只看果,不問因,就業機會,生活圈的發展,都是政府可以作為
卻無為,住屋需求,更是被動,公務人員不沾鍋個性,多一事,不如少一事,土地用合法,但不合理的
方式,送給財團開發,因為,這樣沒有後續管理的問題

待續~~

2013-12-28

PC 筆電 TOSHIBA Z30

雖然這一陣子都是使用 Mac 的筆電,真的是很滿意, 不管是硬體規格,或是驅動

程式的調教,價格性能比幾乎已經完勝 Ultrabook 大概超過一個世代,不過,偶而

看看鄰桌用 GNU/Linux 同事的那種自由,滿足,愉悅的表情,偶而還是會注意一下,

到底如果我要用 Linux ,哪一台,才可以滿足一個中年開發宅龜毛的需求呢?

哈哈,還是有爭氣的廠商,他應該有滿足我先前所有的抱怨

notebook 我要鍵盤好打,效能像話,使用時間長,做工牢靠,能有多輕薄,就有多輕薄,可以

換 2.5 SSD ,記憶體,全球出貨量,有個基數,未來保修備料是玩真的,市場還真的居然找不到

半台,可以選最接近的,好像還真的剩下不多


TOSHIBA Z30
http://chinese.vr-zone.com/93390/toshiba-portege-z30-with-intel-core-i5-4200u-hand-on-review-12062013/



http://www.toshiba.com/us/computers/laptops/portege/Z30 國外價格漂亮多了
RAM 有兩的 slot ,都可以換,可以加到 16G, SSD 是用 msata 算是還可以擴充,1.2 KG 而已,

電池能力,看起來還好,硬碟也可以擴充,還有 RJ45

聯想放棄的小紅點,這台奉還給你小藍點,算是原本用 ThinkPad 的黑友向上提升不錯的選擇 目前就

i5-4200U 版的價格比 Macbook Air 加到 8G RAM 後一樣, 價格似乎還有些高

不過,有些人非 PC 不可,或是要灌 Linux 來用,相信這一台給的彈性還蠻大的,算是不錯的選擇

PS: 這篇不是廣告,單純只是筆記一下,看看一堆轉觸控,轉 RAM 焊死的 Ultrabook 後,終於看到有人做我要的東西

2013-12-24

notwait.net

我想差不多可以玩了,算是 very beta 的版本
signup 或是 login 後,登入後,就可以開始您的報名活動了

您要用在,活動註冊,報名,餐廳預定,診所預約,同事中午便當訂購選單,或是車輛共乘,應該都可以,可以客製表單的欄位

一開始會做這個小服務的原因,就是在門診掛號後,在現場等了快兩個小時,覺得都 2013 年了,

居然還這種不離不棄的等待方式,很不可思議,既然類似的服務很多,都都整合一下,做通用一點,收款的部份,覺得目
前台灣的金流環境屬於有病狀態,晚點再想想

您可以到登入後的控制台,控制,目前進行的場次,及序號,在所有停在這一個活動主頁的瀏覽器網頁都會
更新狀態,目前只支援 longpoll 及 websocket,就是把活動主頁,當成一個主要的 websocket chanel


https://notwait.net

現在缺的大概就是

批次下載報名表

嵌入 widget

markdown editor

客製 css,及 background

導覽,說明,demo 案例,霸氣還沒做
...


就是有時間在加

PS: 跪求意見,及 bug report,容小弟,再耍賴幾天在更新商業型的 SSL 憑證。


2013-12-04

早餐賞 code 時間 riotjs

javascript MVP 框架,小是特點,有 jquery 版,及非 jquery 版

原始碼當然是挑短看,看他的手路怎麼樣


https://github.com/moot/riotjs/blob/master/jquery.riot.js

基本的架構,就是架構在 javascript 的 event 上面

就在用了 $.observable( 你的MODEL Object 包上jQuery的 event) // 就是 on one trigger off


很多東西,都可以自己刻,將自己定義的 model binding event name,然後,再主要的應用程式邏輯裡
去對應處理前端的反應,及呈現,看起來,就是直接切入原本熟悉用 jQuery 的前端工程師,不用一下子跳太遠,
有時間可以來實作一下,比較能感受




2013-12-03

Martini

Martini Demo from Martini on Vimeo.


http://golang.tw/ 上面的分享看到

https://github.com/codegangsta/martini 這寫的太漂亮了吧

和 express.js 有異曲同工之趣,強烈建議,要賞 code 一下,初步,還有很多 middleware 需要有,不過,畢竟他這一個專案,非常的年輕,已經不錯了

順便來一杯


PS: 未成年請勿飲酒,喝酒不開車,開車不喝酒

2013-11-26

New service notwait.net

這是自己作的小玩具,https://notwait.net

基本上個人希望,未來可以滿足像是 KKTIX ,或是像是 定便當

的服務,或是可以預約看牙,預約看診,有作類似診所的燈號的功能,可以即時告知,到幾號了,當然這個通知,是
即時的,簡單的 pub/sub 實作,用 webscoket , long poll 的判斷我還沒寫

目前還沒有開放


距離獻醜版,應該快了


基於 release early release often 的原則,就先放個連結

網站上面的英文說明,寫的像是來亂的 ;-)

心中的商業模式,大概就是移除廣告,及客製頁面的功能收費,手機版,還沒決定要刻原生的還是 html5

目前也還缺很多東西,不過就邊做邊玩

有用到的東西,前些時候 Full Stack 有稍微說一下,目前 ssl
是用免費的 startssl 正式開始會換成商業型


PS: 跪求意見,有人想加入這個很蝦,但是應該很有趣的團隊嗎?

目前 TODO list 還很長
大概像是

File upload
Markdown editor
GPS 定位報到
Qrcode 報到
票務(目前覺得付款這一項很有爭議,手續費也高的不像話,看看有沒有更好的辦法,可以互信易用的)
報到率信用統計
座位表的易用應用,我自己也沒想好必要性
Android App
iOS App
行銷推廣專長的人
.....
點點點,就是邊做邊看,再修正,
沒有人合作,我就自己來,不過我和大家一樣,一天就是 24 小時,要吃飯,要睡覺
目前我會用到的 tool set,大概,後端系統,當然就是 Linux

node.js, javascript, Golang, Python, mongodb, MySQL, nginx, memcached, eleasticsearch,

User Interface, Marketing,

Java, Object C 免不了,現在 Mobile first,沒有人會放棄這一塊, 目前要用原生的還是做 html5 沒有決定,

基本上,以上都不熟也沒關係,至少你有一個熟的就可以,不管是 PHP,Ruby,還是 Perl 也都沒有關係,或是有真男人的執著

非 PostgreSQL 的 persistence store 不用,也沒關係,相信能把事情完成,做好,做漂亮更重要,

(我自已也為了MongoDB 還是 PostgreSQL json store 加上 plv8 想了好一會)

目前可以用兼差方式,勞務交換,畢竟一切都是看實際的營運,我自己也算是兼差 ;-)
我付現,或是合作一段時間,有興趣,各種條件都可以談,右邊有我的 email 歡迎來信

不限性別,年齡,種族,學歷,反正就是什麼都可以談

2013-10-23

讓強者更強

Mac Mavericks 的更新來了

他是這樣說,讓強者更強,免費升級,看了很想升,變強人人都想,我們怕的是變慢呀



Mac 現在是吃 RAM 的怪獸

2013-10-17

辦公室開箱

這個年頭,政府官員,及民意代表,卯足了勁,要炒房,害的年輕的一代,如果沒有長輩庇蔭,要背負非常誇張的房貸

我當然不會和大家去搶,這些要不吃不喝,二三十年的標地物,買的偏遠一點,自己喜歡的地方,話說回來,有一間自己的辦公室,還是異常的踏實

裡面完全沒整理,目前就是租給房屋仲介公司,希望有一天可以自己使用


2013-09-12

馬總統和害死洪仲丘的人都一樣

最近的政治惡鬥,看了真替在這一片土地上生長的大家憂心

馬先生說王先生關說,要王院長死的樣子,好像和先前軍中長官的樣子一樣

厚,被我抓到帶 MP3 player 手機,給你死

政府機關發包的案子,哪一個,不是大包轉中包,中包轉小包,大大小小的事情,關說,根本快是生活
的一部分了,華人,總是喜歡,拉關係,拜託啦,幫忙,幫忙,我也覺得,每次到選舉得時候,大大
小小的政客,都握著我的手,跟我說,拜託拜託,應該拿一張合約書出來,請他簽名,說的到要做得到

不然就是詐欺

還關說勒,我想說你們哪一個不是

騙子


看到政客沒有一個有辦法說到做到,我才替你們感到恥辱

PS: 看到這種惡鬥,我們國家該怎麼走?我們能做什麼?

2013-09-10

How to organize your express.js project

這是一個,一直就想寫的筆記了

在 javascript 裡面,往往有過大的彈性,到最後,龐大的專案,到最後模組之間關係,錯綜複雜

在加上團隊成員也有各自的組織風格,後至撰寫風格,加入 coffeescript,livescript 等,就算用 grunt 來組織 build 專案

也難掩架構變得複雜的事實

這裡要舉的筆記例子,對於初學者,我會建議,可以參考 Madhusudhan Srinivasa 大大的範例,由這一個範例去思考架構方式

https://github.com/madhums/node-express-mongoose-demo

我自己的偏好,則是折衷由 express 產生的預設架構,然後用 express.js 作者 TJ Holowaychuk 在影片中建議的模組方式來將不同功能的程式模組拆開,可以方便以資料夾的結構

將不同功能的元件分別使用在不同的專案,方便擴充

Modular web applications with Node.js and Express from tjholowaychuk on Vimeo.



程式目錄架構,會比較像這樣,把不同功能的模組分拆


terry@terrytekiMacBook-Air ~/Dropbox/notwait/server (master) $ tree -d -p app/*
app/home
app/middleware
app/password
app/site
app/users


另外主要的 server 端程式,架構就沒有太多的修改,在以下是我部分 app.js 裡面的組織方式,以供參考



/**
 * Module dependencies.
 */

var express = require('express')
  , csrf = express.csrf()
  , fs = require('fs')
  , mongoStore = require('connect-mongo')(express)
  , flash = require('connect-flash')
  , helpers = require('view-helpers')
  , routes = require('./routes')
  , user = require('./routes/user')
  , mongoose = require('mongoose')
  , http = require('http')
  , path = require('path')
  , i18n = require('i18n');


/**
 * setup enviroment
 *
 */
var env = process.env.NODE_ENV || 'development'
  , config = require('./config')[env];

/**
 * i18n
 *
 */
i18n.configure({
  locales: ['en', 'zh'],
  cookie: 'i18n',
  directory: __dirname + '/locales'
});


/**
 * mongoose
 *
 */
mongoose.connect(config.db)
var models_path = __dirname + '/models'
fs.readdirSync(models_path).forEach(function (file) {
  if (~file.indexOf('.js')) require(models_path + '/' + file)
})


/**
 *  以下省略,其他模組的設定,自己的模組可以像是下面引入
 */ 

// development env config
app.configure('development', function () {
  app.locals.pretty = true
})

// users signup, twitter, facebook, google, passport must before any routing
require('app/users')(app, config);

// site, contact form
require('app/site')(app, config);

// password reset, forgot
require('app/password')(app, config);

// home, user dashboard
require('app/home')(app, config);

// ...
// ...

http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' +
              app.get('port') + " in " +
              env + " mode " +
              "talk to " + config.db);
});

/**
 * export self
 *
 */
exports = module.exports = app;

2013-09-09

Macbook Air 開蓋關閉螢幕

就是那一個,在 USB3.0 插孔上面的粉紅小磁鐵,他會讓電腦以為,螢幕已經關起來了, 你就可以讓在只接外接螢幕不必闔上蓋的情形下,把筆電內建的顯示器關閉




homebrew 真是好東西,連 sshfs 或是 fuse4x-kext 的模組都有,還不錯用,很多開放原始碼的套件,都可以透過他安裝管理

螢幕分割 Spectacle 還不錯用

最後一個系統預設字體大小的問題,也可以用 ThinkerTool 來解決,圓滿轉換,我所有龜毛的堅持,都沒有問題了

PS: 感恩 Open Source,叩首

2013-09-06

Mac 開發環境設定

網路已經有很多大大寫很多的參考資料,這一篇純筆記,用過 Linux 再用 Mac 覺得
Linux 其實很不錯了,除了 User Interface 差一點,真的非常自由,自由無價

系統調教

mount with noatime on SSD.

http://blog.philippklaus.de/2011/04/ssd-optimizations-on-mac-os-x/


請參考這一個 gist 調整成您要的 ,如果不喜歡這麼麻煩,有一個軟體,有幫你做這些工作,Chameleon SSD optimizer

個人是比較偏好,自己調整

https://gist.github.com/pklaus/931579#file-movetemporaryfolderstoramdisk_macosx-sh

設定好後, /tmp 應該是 Ram Disk 了,可以加大一點,到 1 ~ 2 GB ,把 Chrome 的 Cache 資料夾連結到 tmp

下面小改的 RamFS,用 1G RAM 當 /tmp ,並且加 /tmp/Chrome 來放 Google Chrome 的 Cache
到自己的資料夾 ~/Library/Cache/Google ,把 Chrome 砍了,製作 soft link 到 /tmp/Chrome
另外,我用 pmset 把 hibernatemode 設成 0 後,也就是不再使用 suspend to disk 的方式休眠,我另外把 sleepimage 砍了,用指令另 touch 一個新的sleepimage
再 sudo chflags uchg sleepimage ,看起來會像是這樣,這樣你的 SSD 就可以多出和記憶體一樣的容量


terry@terrytekiMacBook-Air ~ $ ls -al /private/var/vm/sleepimage
-rw-r--r--  1 root  wheel  0  9  9 22:19 /private/var/vm/sleepimage




#!/bin/sh
# Create a RAM disk with same perms as mountpoint

RAMDisk() {
    mntpt=$1
    rdsize=$(($2*1024*1024/512))
    echo "Creating RamFS for $mntpt"
    # Create the RAM disk.
    dev=`hdik -drivekey system-image=yes -nomount ram://$rdsize`
    # Successfull creation...
    if [ $? -eq 0 ] ; then
        # Create HFS on the RAM volume.
        newfs_hfs $dev
        # Store permissions from old mount point.
        eval `/usr/bin/stat -s $mntpt`
        # Mount the RAM disk to the target mount point.
        mount -t hfs -o union -o nobrowse $dev $mntpt
        # Restore permissions like they were on old volume.
        chown $st_uid:$st_gid $mntpt
        chmod $st_mode $mntpt
    fi
}

# Test for arguments.
if [ -z $1 ]; then
    echo "Usage: $0 [start|stop|restart] "
    exit 1
fi

# Source the common setup functions for startup scripts
test -r /etc/rc.common || exit 1
. /etc/rc.common

StartService () {
    ConsoleMessage "Starting RamFS disks..."
    RAMDisk /private/tmp 1024
    RAMDisk /var/run 64
    mkdir -m 1777 /tmp/Chrome
    #RAMDisk /var/db 1024
    #mkdir -m 1777 /var/db/mds
}
StopService () {
    ConsoleMessage "Stopping RamFS disks, nothing will be done here..."
    # diskutil unmount /private/tmp /private/var/run
    # diskutil unmount /private/var/run
}

RestartService () {
    ConsoleMessage "Restarting RamFS disks, nothing will be done here..."
}



解決外接螢幕,字糊掉的問題

http://ireckon.net/2013/03/force-rgb-mode-in-mac-os-x-to-fix-the-picture-quality-of-an-external-monitor

Bash ~/.bash_profile 設定參考
http://natelandau.com/my-mac-osx-bash_profile/

開發所需軟體套件,先安裝 Xcode 後,及他的 Command Line tools 後,再裝 homebrew

工具軟體

http://www.freemacsoft.net/appcleaner/ Application 移除安裝的程式

http://osxfuse.github.io/ Mac Fuse file system ,在裝一下他們家的 sshfs ,可以直接 mount sftp,這一個軟體可以不裝,後面一樣可以用 homebrew 安裝 sshfs

https://github.com/rowanj/gitx git 的圖形化介面,都用 Mac 了,有時候可以離開一下 terminal 了

http://www.sourcetreeapp.com/ 這是另一個 git gui ,功能有點多,個人喜歡簡單的東西

https://github.com/eczarny/spectacle 分割視窗螢幕,看看 Linux 多幸福,預設就有了,不用另外裝

ThinkerTool 調整系統預設字體大小的問題,如果你跟我一樣龜毛,有堅持的字體及大小

JDK

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Golang , brew install go

MySQL, mongodb 請用 brew 安裝

PostgreSQL 建議直接用 http://postgresapp.com/ 是 heroku 包好的 app,plv8 已經包進去了,不用再自己編譯,算是懶人法

ImageMagick 還是建議用 homebrew 安裝

brew install imagemagick

http://cactuslab.com/imagemagick/

另外像是 pdftotext 的小工具,可以安裝 poppler,這一些工具,都和 Linux 上面一樣

brew install poppler

VIM 環境

也是用 homebrew 安裝,可以先 brew info vim 一下,看一下可以下的 options,系統預設的 vim 不是很好

https://github.com/spf13/spf13-vim

iTerm , open source 在 Mac 上面的 terminal,使用起來,預設的熱鍵,及行為和 Linux 上面的比較接近,不錯用

http://www.iterm2.com/#/section/home


其他大多的開發套件用 homebrew 來安裝,python , mysql, mongodb, node.js , memcached , redis 等等

https://github.com/mxcl/homebrew

舉例,安裝完,homebrew 後,可以下指令,看看 node.js 有哪些版可以安裝,先 git checkout 後再安裝


terry@terrytekiMacBook-Air ~ $ brew versions node
0.10.17  git checkout d996e02 /usr/local/Library/Formula/node.rb
0.10.16  git checkout 1782834 /usr/local/Library/Formula/node.rb
0.10.15  git checkout 89e0a43 /usr/local/Library/Formula/node.rb
...
...



git checkout d996e02 /usr/local/Library/Formula/node.rb




brew install node


PS: 看起來,返樸歸真,只要有 Terminal 就可以了,感覺我不是在用 Mac,只是把 Mac 當 Linux 用,下指令用 brew 安裝套件的時候,有點回到許久前使用 FreeBSD 的年代,到 ports套件庫下面,打 make install 的感覺,只是現在電腦和網路都快了不少,這時候,還是覺得 Debian 的套件管理,強到一個不像話

2013-09-01

Macbook Air 試用心得

衝著,Macbook Air 2013 版本不外接加電源,有長使用時間的誘惑下,我這一個老派的 Linux

使用者,也乖乖的把現金掏出來,搬一台回家

說真的沒有用過 Mac ,只有聽說過他底層是用 BSD 打造的,應該八九不離十,用了兩天,說一點點心得

優點

1. 漂亮,不管是外觀,或是使用介面

2. 作工精細,電源線設計,孔位工差,螢幕開合機構,軟體整合,系統穩定性,其他 PC 的 ultrabook 難與其比

3. 不外接電源,使用時間很長

4. 一版一版進步,不太會像是在 pc 廠商上面看到的,一版一版 cost down.


說完好的換說缺點

1. usb 接頭少,要帶 hub

2. 沒有 RJ45,人多的時候,wifi 很鳥的,尤其傳大檔時

3. 螢幕要外接線,而且支援不好

3. 對應其他外廠週邊,驅動程式支援不好,這一點,我好好誇一下 Linux 了,driver 支援包羅萬象,我的外接螢幕設定,在 Linux 上面簡單的輕鬆稿定,
Mac 上沒辦法,接轉接線,正確解析度,還出不來,換了條線,解析度還不一樣,連螢幕連結線也要挑

4. 軟體套件套件更新,這一點 Debian Linux 無敵,不管你要由 source 或是 binary 安裝,Debian 大贏

5. 開發環境建制,和 Linux 比較,因為沒有好的套件管理系統,所以有點耗時,homebrew 和 Debian 的套件管理比起來,還是蠻弱的

6.

Mac 不能調整預設系統字體大小,外接顯示器,判斷成電視,解析度正確,字體模糊 ,外接螢幕時,內建的顯示器,要闔蓋才可以關掉,會不會管太多,想打開幫助散熱也不行,只用電池,外接螢幕,闔蓋他就休眠,把外接螢幕也關了,這會不會也算是自作聰明


http://ireckon.net/2013/03/force-rgb-mode-in-mac-os-x-to-fix-the-picture-quality-of-an-external-monitor


說真要是有 PC 作 Notebook 的廠商,願意用 Air 的作工,加上差不多的使用時間,可以換 2.5 寸 SSD,筆電的
記憶體,價錢比 Air 便宜一點,出貨量也有一定的大量,我一定立馬敗一台,可是卻真的沒有一家廠商願意爭氣一點

說說我的過去 notebook 歷史

第1台 acer 的好像叫 351吧,螢幕底座支架斷裂

第2 台 IBM X31,滿意使用,當時的首選

第3 台 lenovo thinkpad x60 ,還 OK ,溫度有點熱,散熱不太行,真的會熱當

第4 台 lenovo thinkpad x200 ,滿意使用

第5 台 lenovo thinkpad x220 ,因為是最後一代的鍵盤,就買了一台

後來 thinkpad 也不 thinkpad 了,現在 pc notebook 價格不比 Air 便宜,作工用料都比較差,

使用時間短,有點像是 Android 和 iPhone 一樣,每個人有每個人要的,手機我要可以外插 SD卡,換電池,大銀幕,所以高階手機我不用 HTC 的也不用 iPhone ,


notebook 我要鍵盤好打,效能像話,使用時間長,做工牢靠,能有多輕薄,就有多輕薄,可以換 2.5 SSD ,記憶體,全球出貨量,有個基數,

未來保修備料是玩真的,市場還真的居然找不到半台,可以選最接近的,好像還真的剩下不多


現在廠商腦袋,不知道在想什麼,我要便宜,穩定,好用,不是觸控螢幕,或是新的作業系統,如果是硬體廠,你就乖乖的把每一個小細節做好
小事都做不好,連我這麼外行的使用都看的到,有很多小細節,真想不懂,為什麼這些做了十幾二十年的廠商看不到

拜託來一台

鍵盤好打,可以用 2.5 寸硬碟或 SSD,記憶體可以擴充(這就是難的地方,又要擴充,又要輕薄,拜託 RD 時間花這裡),螢幕底座不會裂,
螢幕轉軸,開和鬆緊剛好,不會開久了就鬆,或是太緊,接孔尺寸精準,散熱模組,用點心,都給你作十幾年了說明書還是寫不能放腿上,
輕薄長效,好的外型設計,就繼續用,節省模具成本,不要為了改變而改變,想想能給什麼更好的使用體驗
而不是這一次,要 cost down 什麼



我的比較邏輯
1. 現在所有的 notebok 鍵盤都蠻鳥的,就算了

2. 輕薄的 ultrabook 和 Air 都是裝 SSD ,部份是 2.5 寸 SSD,部份是客制 SSD.

3. 使用時間,ultrabook 的使用時間,大多是 3 ~ 6 小時,這一點 Air 就大勝了

4. Linux 支援度, 自由無價

5. 出貨量要大,就可以保證未來在掏寶或是 EBay 上什麼都買的到


喜歡 Linux ,要兼顧,開發和美觀,作業系統也可以用 Mint

2013-08-21

expressjs conditional CSRF

現在一般基本的網路服務,為了安全性,會加上 CSRF 的保護,如果

用 ajax 的方式傳資料,一般可以跳過,或是,加在 ajax 的 header 裏面


在 Django 下面的話,如果不檢查的話,會加個 decorator @csrf_exempt

在 expressjs 下面,加 ajax header 是可行的,不過懶一點,目前 API 路徑的
請求,先跳過,以下筆記



 /**
 * Module dependencies.
 */

var express = require('express')
  , csrf = express.csrf()
  , fs = require('fs')
  , mongoStore = require('connect-mongo')(express)
  , flash = require('connect-flash')
  , helpers = require('view-helpers')
  , mongoose = require('mongoose')
  , http = require('http')
  , path = require('path')
  , i18n = require('i18n');


  // I olny cut the block of csrf setup

  // adds CSRF support
  if (process.env.NODE_ENV !== 'test') {

    // conditinal CSRF
    
    var conditionalCSRF = function(req, res, next){
      
      // bypass urlpath start with api and moreurl

      if (! /^\/(api|moreurl)/.test(req.path)){
        csrf(req, res, next);
      } else {
        next();
      }
    }
    //app.use(express.csrf());
    app.use(conditionalCSRF);
  }

  // This could be moved to view-helpers :-)
  app.use(function(req, res, next){
    res.locals.csrf_token = req.session._csrf
    next()
  })


參考
http://stackoverflow.com/questions/13516898/disable-csrf-validation-for-some-requests-on-express

http://stackoverflow.com/questions/11200068/how-to-implement-csrf-protection-in-ajax-calls-using-express-js-looking-for-com

2013-08-20

Full Stack

部落格,以當筆記,日記的好處來說,他是比較老派的東西

資料永遠找的到,再來就是因為是舊東西,官方不會一直改介面,或是功能

算算先前自己做玩具時,都沒有好好紀錄,最後結束剩的就真的只有

回憶,這一次,先不管,是好,是壞,會成功,會失敗,都要來紀錄,這就是對軟體的愛吧

今天是颱風假,就說說這一次用的 Stack 好了

白天的工作職務,算是硬派的系統分析,及 Python 程式撰寫

身為熱血工程師 (雖然年紀不小了,不過好歹,血還是熱的),晚上寫的東西

想試試和白天不同的,所以 backend 就先這樣吧

Backend


nginx

node.js

Golang

mongodb


Front End

這一部份有些還沒有想好,大概就是會有


Web (html5,很想直接放生 IE 舊版的,不過會做嵌入的 js 或是 iframe ,不知道,這樣會不會讓人覺得太大牌)

Mobile Web ,基本上和 Web 一樣

Android App (就自己先刻)

iPhone App (沒有 Mac book Air 先放棄,其他先做 已敗家)

Real Time


就 nginx push stream module 先頂一下吧

collaboration


https://bitbucket.org/ 的免費方案加減用了

原型

要做新玩具,當然就是用新技術來做才叫潮

所以馬上就用最新版的 bootstrap 3 還有

最新的 angular.js 1.2.0rc1 AngularJS

不由的抱怨下,bootstrap 一下子把 icon 移出去,一下子又把 svg icon 移回來,還蠻機車的,最

白痴的就是, namespace 改來改去,但是我還是很不爭氣的繼續用了 ( 加入他們),前端的 icon fonts 部份,真的

推荐一下 http://fontello.com/ 真是有潔癖的前端工程師救星

可以把你需要的 svg icon 選起來,客製成自己專屬的 icon font,還蠻乾淨的

Angular.js 1.2.0rc1 部份,也是向更大一包邁進,和原本 1.1.5 系列不同的是,模組切更多,有用到

$routeProvider, $locationProvider 的把 angular-route.min.js 加入頁面,app 記得要 module inject

像是我開始做的 dashboard 原型這樣


var app = angular.module('homeApp', ['ngRoute']);


PS: 用新技術不是為了潮啦,現在誰不做 mobile app,server side 的部份搞 API 大融合,client 部份,就可以 Web App , Desktop App, App (iOS, Android) 3P,4P 皆宜

發想筆記

最近有不自量力的投了一份高薪 SA 的職缺,不過被打槍了,也看到了自己不足的地方,就算你可以很快的學會

機會還是會保留給已經會,且有經驗的人


我想該是為自己努力的時候了,尤其是身為一個軟體開發相關的人員,相信這還是最終要走的道路,你可以熱愛

創造有用,有趣的軟體,可是在台灣的職場上,要找尋,可以把軟體開發,當成終身樂趣的工作,少之又少

應該可以說沒有,沒有的東西,除了自己創造,應該沒有其他辦法

先前,自己有做過一些玩具,網路名片,房地產,股市網站,這一次,想當個 copy cat 好了,就來做類似

http://registrano.com/ 的東西,我想解決的問題點,除了報名,想要處理報到,還有排隊

的問題,相信一個報名的工具,應該很多地方都可以用,只用在活動報名有點可惜

目前,進行第一步,就先買個地點便宜,可以做商業登記的點,作為辦公室好了,既然是網路業,公司登記先省了

主機,網域,應該都是美國的,買好的辦公室,就先當永久住址就好,辦公室還是先租人 :-)

2013-08-16

Install nginx-push-stream-module

要在 Debian 上面安裝,標準官方的 nginx 加上 https://github.com/wandenberg/nginx-push-stream-module 模組

做個筆記,這裡的 nginx 並不是 Debian 官方的 deb,是由 nginx 官方釋出的 deb

裝 官方 nginx ,加個 sources.list 先


# nginx
# wget http://nginx.org/keys/nginx_signing.key
# sudo apt-key add nginx_signing.key
#
deb http://nginx.org/packages/debian/ wheezy nginx
deb-src http://nginx.org/packages/debian/ wheezy nginx



#裝 build depend package

apt-get build-dep nginx

#下載 source
apt-get source nginx

#git clone nginx module ,照官方文件設定環境

git clone https://github.com/wandenberg/nginx-push-stream-module
NGINX_PUSH_STREAM_MODULE_PATH=$PWD/nginx-push-stream-module

# 這時候資料夾,應該有 nginx-1.4.2 的資料夾,看現在新的套件版本

cd nginx-1.4.2

# 編輯一下 vim debian/rules


override_dh_auto_build:
dh_auto_build
mv objs/nginx objs/nginx.debug
./configure \
--prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-mail \
--with-mail_ssl_module \
--with-file-aio \
$(WITH_SPDY) \
--with-cc-opt="$(CFLAGS)" \
--with-ld-opt="$(LDFLAGS)" \
--add-module=../nginx-push-stream-module \ # 就加這一行而已
--with-ipv6
dh_auto_build


#執行

dpkg-buildpackage -b

這樣就包好,可以安裝測試了,不想要更新的話,就把他版本 hold 住


最近試了, socket.iosockjs 還是都沒有讓人覺得很滿意

看看國外 disqus 推荐的 https://github.com/wandenberg/nginx-push-stream-module

還蠻簡單用的,而且複雜性低,不用多加掛一個 socket server ,就交給 nginx 負責 pub 及 sub 的部份,架構算乾淨,自己的下一個玩具,就用他了

2013-07-28

spdy with nginx

這是一個加強版的協定,一開始由 Google 提出 https://zh.wikipedia.org/wiki/SPDY

用 Apache 的朋友可以參考 https://code.google.com/p/mod-spdy/

以下筆記,是以 Debian 用 nginx 官方的 deb 套件由為底的紀錄

nginx 官方的套件 http://wiki.nginx.org/Install

Debian 用 wheezy, source.list 可以加


deb http://nginx.org/packages/debian/ wheezy nginx
deb-src http://nginx.org/packages/debian/ wheezy nginx



再來就是您的 nginx site 的設定了,下面是要加的部份,
也只有 listen 443 ssl spdy 那一行


server {
listen 443 ssl spdy;
#listen 443;

server_name yourcoolhostname;
...
...
...
}


最後可以開 chrome 瀏覽器檢查連到網站的有沒有 SPDY 的連結
在瀏覽器的網址列打 chrome://net-internals/#spdy 就可以看到了

或是可以用 http://spdycheck.org/ 來檢查


目前 nginx 的 spdy 模組,只支援 spdy/2

2013-07-12

支持颱風假百業皆休

支持颱風假應該百業皆休,應該除了警消,醫務人員,都要休吧

在媒體上,你永遠,指會看到,不休的時候,新聞報人民抱怨怎麼不休,休的時候,報百貨公司,電影院人滿為患

媒體也不會去檢討,為什麼百貨公司,或是服務業的從業人員不需休颱風假,上下班都不會危險,他們只是喜歡挑弄是非

是非愈多,才有新聞報,如果服務業也都要休息,自然就不會有這種新聞了

2013-07-11

很悲哀的事實

退伍前一周,被送禁閉室,有點常識的也知道是要弄死你

尤其帶手機,這一種理由,更可笑,要弄死你,什麼理由都可以

現在是什麼世道,做軍人的,謀殺罪,只要記個過,記個申誡就好

這是謀殺無誤

要你死,就得死,這就是軍中黑的地方

http://disp.cc/m/tread.php?id=163-66Ah


以下省略 5000 字,因為不想說髒話

ps: 當義務役的慣例,就是快退伍了,就把沒休的假,休完,和長官感情不錯的,或是
有遇到好人長官(也是有好人的,只是比例不高),也會多給你公假,出去洽公,或是給你
一些時間,找工作

要在身體上折磨你,意志上,堅定你的訓練,在最後一周,已經沒有意義

2013-07-04

vim-airline

這一個 vim plugin 是看到 othree 的 Blog 介紹的

https://blog.othree.net/log/2013/07/04/vim-airline/

先前用 powerline 在 sshfs 上面編輯的時候,會慢到無法接受,就拔掉不用

筆記一下也許這一個簡單,夠輕量,不會有問題

https://github.com/bling/vim-airline

說實在的,powerline 上面的訊息,也是可以用 stausline 就可以了,不想花俏的一點的話

2013-07-01

Debian jessie/testing GNOME 踩雷

Debian testing 用很久了,偶而還是要踩一下雷

最近官方,正在由 GNOME 3.4 要遷移的 3.8 ,算是桌面環境套件,比較大的更新
應該後續,還有有更多的更新出來

我幾乎每天都有更新套件,開發機切 classic 模式,才可以用

暫時的解法,請參考

http://blogs.fsfe.org/the_unconventional/2013/06/30/to-all-debian-jessietesting-users-do-not-upgrade-gnome-bluetooth-to-3-8-1-1-yet/

2013-05-13

Yes GOLANG 1.1 is released


經過近一年的淬練,相信 golang 又向前跨了一步

除了一些小小的改變,這一次很大的亮點,就是效能的提升,以及對 arm 的支援( 原本的就有支援,這一次正式 release 版本的支援更好)
這時候推荐您來玩玩,已經不能算是嘗新了

好兵器,不收嗎?

參考資源

http://blog.golang.org/2013/05/go-11-is-released.html 發佈頁

https://code.google.com/p/go/downloads/list 下載頁面

2013-04-18

debian 上面 excel 轉 csv

應該所有可以裝 libreoffice 的 unix like 的系統應該都可以

我是在 debian 上面,可以裝 unoconv 套件

apt-get install unoconv

之後就可以用

unoconv -f csv filename.xlsx

參考資料

http://unix.stackexchange.com/questions/23726/convert-a-xlsx-ms-excel-file-to-csv-on-command-line-with-semicolon-separated

2013-04-15

JStock



自由軟體鑄造場上面介紹 JStock 的文章,也許這一個系統,可以來整合交易系統的外掛

http://www.openfoundry.org/tw/foss-programs/8943-jstock

Open Source 的世界就是,要什麼都有,缺的可以自己加,一整個歡樂

2013-04-13

SSD on Debian

紀錄一下 SSD 硬碟裝 GNN/Linux Debian 要注意的部份

關於,4K 對齊的部份,我直接安裝用 cfdisk 切割, sda1 都是由 2048 開始,一般就是要是 512 的倍數

/etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#                
# / was on /dev/sda1 during installation
UUID=bababa_uuid /   ext4    discard,noatime,commit=60,errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=bababa_another_uuid   swap    sw              0       0

我很不爭氣的還是切了一點點的 swap

記得 /etc/default/tmpfs 裡 RAMTMP=yes ,/tmp 就會用 tmpfs
把常用的軟體暫存設到 /tmp ,減少寫入,如果是用來開發,有跑 server 的話
要注意一些寫入很狂的工具,像是 mongodb 在開發時,mongodb.conf 裡 nojournal = true 記得加上
就是像這一類的,要注意一下,再背後狂操你的 SSD,可以用 iotop 找出來

設定 /etc/sysctl.conf
#net.ipv6.bindv6only = 0
fs.inotify.max_user_watches = 100000
fs.file-max = 128000
net.core.somaxconn=250000
vm.swappiness=1
vm.vfs_cache_pressure=50


裝一下 sysfsutils
aptitude install sysfsutils

就可以,直接設 /etc/sysfs.conf
block/sda/queue/scheduler = deadline

檢查 trim 有沒有真的開

root@x220:/var/log# hdparm -I /dev/sda1 | grep TRIM
    * Data Set Management TRIM supported (limit 8 blocks)
    * Deterministic read data after TRIM


檢查 SSD 的 wearing 情形

請安裝 smartmontools
aptitude install smartmontools

然後下指令看

smartctl -A /dev/sda

Linux 上面 update firmware,這裡指的 C4 SSD http://www.crucial.com/store/ssd.aspx
其他牌子的,還沒有本錢嘗試

其實就和 Debian 上面製作,開機 USB 碟一樣,依照 syslinux 的開機方式做開機碟,然後把他 ISO 裏面的東西
搬到做好的開機碟( mount -o loop 起來後,複製到 usb 開機碟),修改 usb 碟下面的開機設定檔,就可以用 USB 碟開機,
更新firmware ,我是有切回 BIOS 把硬碟換回 ata 模式,再開機,更新完 firmware 再改回 AHCI 模式

最後記得,所有的東西都要備份,我自己都是用 Dropbox ,你可以用自己喜歡的,重此就可以過著幸福快樂的生活了


參考資料

請愛用 man

http://wiki.debian.org/SSDOptimization?action=show&redirect=SSDoptimization

https://wiki.archlinux.org/index.php/SSD#Tips_for_Maximizing_SSD_Performance

https://wiki.archlinux.org/index.php/Maximizing_Performance

2013-03-18

SPF13



不知不覺,用 VIM 也數不清有幾年了,當年開始接觸 Open Source 的軟體後,每天都活在驚奇裡
常常看到,令人感到新鮮,或是驚奇的想法,被提出,或是實作出來

在使用 VIM 的路上,有時候也會停一下,看看其他高手的開發流程,有什麼過人之處,有什麼是我們可以學習的,偶然看到一個國外的專案,主要的開發
者是 VIM 的愛用者,偶而就會整理一下各種 plugins ,他用的 plugins 和我用的差不多,設定上,也可以達到,簡單的客製,用了幾個月,感覺不管是新手
還是老手,都還蠻適合的,有興趣的人可以參考,有許您會覺得合用,要我說真的好處,就是,他有時會整理一下 plugins ,是依功能為主,也就是
達成一項相同功能,如果有更好的辦法,或是更好用的 plugin ,原作者就會換,使用習慣上,和自己蠻像的,但是,自己要記住的設定,或是客製化的部份
就變得更小

http://vim.spf13.com/

ps: 終歸就是我自己懶,有人整理好的 plugins,幫您關心 VIM 的發展和進步,自己合用就用

2013-03-17

Autotrader

Autotrader 釋出

一個簡單的個人交易系統,所有的功能,基本簡化以 file base 為原則 ( 太難的,我也寫不出來 :-) )

對程式交易有興趣的人,可以玩, bug 是一定有的,不過商業版的軟體,三天兩頭,就更新,問題也不少

ta-lib 所有的指標,都可以整和起來,我還不知道要定怎樣的 name space 比較好,現在系統交易的內建名稱 (name space),已經很亂了,所以小弟先想一下

github 專案位址 https://github.com/terryh/autotrader

window 安裝包 http://dl.dropbox.com/u/14137697/autotrader/20130317/setup.exe

線上文件 https://autotrader.readthedocs.org/en/latest/

ps: 本程式,對任何交易損失一概不負責

2013-03-02

小資機械鍵盤

幾年前,離開前東家,老長官送了一支 cherry 鍵盤給我,一直放在家裡搭桌機用,那種感覺算是不錯,對木手的我,算上是奢侈品了,後來因為有人抱怨聲音吵,又沒注音符號,只好黯然的收起來放櫃子。

現在回頭看看機械鍵盤的價錢,還真是敗不下去,直到看到 Ducky DK 1087 後,先是翻翻資料,有人抱怨,鍵鈕不穩,鍵盤右邊托盤有異音之類的,雖然心裡也猶豫一下,不過看在是 MIT 的份上,就沒想這麼多了,最多就算是支持國貨!

真正開箱後,打了三天,我又訂了一把 (自動買 899 元比較便宜),真是好打,公司,也擺一支接 notebook

有時候,別人覺得是爛貨,對我可能是個寶,很多事物,只有自己試過才知道,別人說鍵帽不穩,我那把舊 cherry 也是搖的厲害,但我是要按它,又不是要搖它,又有一說是有異音,我放在桌上打,也不是要像星爺七大武器之首的摺凳,拿來打架

總之,對我來說,只能說,便宜好打,對你,還是自己試試,看他,能不能成為你的兵器 ;-)

2013-02-12

這一台要是可以裝 Debian 應該不錯

便宜,輕便,比 ipad 貴一點的價格, MBA 的外型,台灣設計,台灣製造

中國時報財團相關的公司生產,算了吧





要忍住,有小孩要養

2013-02-07

go get like npm

Go 下面想要安裝套件,可以像是用 node.jsnpm 安裝不加 global 的參數,做本地端的安裝嗎?

建立 shell script gopm 放在您的 $PATH 中的路徑

#!/bin/bash
# Uasge:
#       gopm get some package from github
#       gopm run yourmain.go
OLDGOPATH="$GOPATH"
export GOPATH=$PWD
go $*
export GOPATH="$OLDGOPATH"

或是都是在本地端開發,不太在意覆蓋原本的 GOPATH,直接像是加在 .bashrc 的環境裡

alias gopm='export GOPATH=`pwd` && go'

只要用 GOPATH 這一個環境變數,就可以達到了,所以這樣設定以後,執行的時候,就會用目前的資料夾當作,GOPATH ,套件也就都會安裝在執行時的目錄

執行程式測試的時候也一樣,假設叫 gopm ,就用 gopm run yourmain.go 就可以了

安裝需要的套件和 go get 一樣,例如在所在專案路徑安裝所有相依套件,原本打

go get

會裝到 GOROOT 路徑下

換成打

gopm get

因為加了目前專案路徑($PWD)為 GOPATH ,所以安裝到目前的資料夾下


PS: gopm 只是我自己隨便取的,文件及 source code 裡是有提到,不可以和 GOROOT 同一個資料夾,不過這不是廢話嗎 XD
UPDATE: 在 mail list 上面當小白後,GOPATH 不要去覆蓋他,會影響到整的 GO 環境 build 變數,以我目前的了解會用暫時覆蓋的方式,有比較好的方式再來更新

2013-02-02

nodejs on raspberrypi

編譯和在 Linux 上面完全一樣,現在已經不需要什麼 patch 了

只是時間要約兩個小時


2013-01-30

官逼民反的年金

最近幾天,最大的新聞應該就屬政府推出的年金改革方案。

基本上,就是小學生都會解的應用數學,就是沒錢了,就跟父母要錢

上一代給我們房價高漲,薪資倒退,我們還是繼續麻木不仁,也讓下一代最終要承受被掠奪將近20% 的薪資所得,這樣稱之為改革

公教人員少的是存款利率,勞工朋友要多繳的是將近薪資所得 20%,還每年 0.5 % 的方式增加,讓你比較不會痛,反彈才不會太大,勞工朋友想想你的後代吧 ! 你有什麼臉面對後代

軍公教,少的是存款利息

勞工少的實實在在的收入,真的沒看過比這個更土匪了,企業或組織好歹也是收入減支出,在繳一定稅率,勞工是你營收多少,就用營收去繳稅,這樣,名叫勞工的這一間公司一定倒

最不負責的人莫過於此

核四給他轉,反正,以後有核廢料問題時,我應該不在人間了

年金先給他領愈多愈好,反正領到我死之前,國家應該不會倒

先想辦法,讓年金不倒,先繳錢來就對了


當政府提的退休年金方案,比商業保險公司的儲蓄險還差的時候,實在看不到理由要把退休金存在政府機關


ps: 覺得我的部落格,愈來愈像苦勞網 :-)


2013-01-23

誰是炒房最大咖

大家真的不要亂怪建商了,他們只是依照政府規劃的政策討生活而已

就和你現在上班,或是做做生意是一樣的意思,台灣的房地產為什麼只漲不跌,其實一切都是政府的規劃,或者說明白一點,該說是政客的規劃。

台灣和其他國家最大的不同,不是土地價值,不是人民所得,真正的不同是政客,把土地房屋,操作成投資工具,或是政治利益,土地及房屋維持的稅率,相較其他國家,遠小於實際的資產增值利益,政客的利益,除了各種公共支出外,最大的利益,就是,農地,變建地,建地,變工業區,再變住宅區,最後成了商業區,有些地方,比較沒人管的,都是直接保護區,變更成住宅區,其實沒什麼城鎮開發,一切都是利益

當全台灣,最有利益的事情,是炒房的時候,科技大老不思新創,只炒房,軍公教不思公民利益,炒房,人民百姓,也知道,如果什麼都不做,現在不買,以後也買不起了,或是多買些以後還可以養老,不知不覺也加入了炒房的行列

一個基本的政策,就是房屋土地的稅率,不成比例,這可是政客最大的財庫,所以眼睛就會自然變瞎,每個政黨皆然,不然你以為,選舉這種勞民傷財,花大錢,賺一點點的薪水,這種賠錢生意有誰會做,拿錢被逮,都叫作政治獻金。

稅法的例子,舉汽車的稅率,就很少有人拿來投資,除非真的 "愛",自然汽車就會備,規類是一個負債,不會是投資工具

房子的稅率,是政府刻意讓有限的土地資源變成投資工具,或是成為政客的政治利益

最後放兩張圖,工業用地,蓋豪宅,政府一天到晚打著拼經濟的名義,收括人民財產,再假開發之名,再整個給某某有辦法的人端走,已經進行很多年了,會不會停,應該不會,因為制度使然