Monday, May 11, 2015

Libreboard

Trello.com 一直是一個非常好用的工具。

Libreboard 則是 Trello 的一個 open source copycat。
如果你的資料不想放到 Internet 上去,那麼可以考慮使用 Libreboard。



Libreboard 提供了 Sandstorm 與 Docker image,可以快速安裝。
我在 Windows 7 使用 Docker image,遇到了一些小問題,所以還是紀錄下來安裝方式,免得以後忘掉。


  • 安裝 boot2docker
    要注意 BIOS 的 Interl VT-x 必須要開啟
  • 啟動 vm
boot2docker start
  • 下載 MongoDB image
# docker pull mongo
  • 下載 Libreboard image
# docker pull ncarlier/libreboard
  • 在 vm 裡面建立 mongodb 目錄, 目前測試無法寫 external volume...

    # boot2docker ssh
    $ sudo  mkdir /mnt/sda1/var/mongodb
  • 啟動 MongoDB container
# docker run -d --name mymongo -v //mnt//sda1//var//mongodb://data//db -p 27017 mongo
  • 啟動 Libreboard container
# docker run -d --name libre --link mymongo:mongo -e "MONGO_URL=mongodb://mongo:27017" -e "ROOT_URL=http://127.0.0.1" -p 80:8080 ncarlier/libreboard
  • service ready
    可以用 boot2docker ip 取得 vm 的 ip,那麼 http://boot2docker_vm_ip/ 就可以連上 libreboard 了。
  • VirtualBox port forwarding
    照上面執行後,libreboard 就可以在本機使用了。但是如果要讓其他人也能使用,就必須開啟 VirtualBox port forwarding 才行。
ps: 一次刪除多個 container 的方法
# docker stop $(docker ps -a -q)# docker rm $(docker ps -a -q)

Wednesday, February 11, 2015

格陵蘭滾翻初體驗

人在水裡,心裏默記著
  1. 側持槳,槳平貼船側
  2. 翻槳。槳在水面處,注意槳面角度與位置
  3. 雙手持槳固定與身體角度
  4. 膝蓋頂船,挺腰,旋身
咦!我翻起來啦!喔耶~~~



去年開始學習海洋獨木舟,讓我發現了這比登山、單車、衝浪等等都還更有趣的戶外活動!好啦,就當我是喜新厭舊也行。總之,這近一年來,我是逢人就猛介紹、狂推薦獨木舟!

「海洋獨木舟超好玩的你知道嗎!」
「住台灣不划船真是太可惜了!」

而幾乎每次都不免被問到:「哦!獨木舟。就是要會翻船翻回來對不對!?酷耶~」

「呃... 高級動作我還不會。」

所以說,能不學滾翻嗎?這能不學嗎!?

好在我們有神奇獨木舟學校。
教練幫我們找到這麼好的場地,將整套動作拆解成 SOP,還詳細講解各個動作分解練習的眉角。讓我們這些不年輕的身軀也能一次就找到滾翻的感覺。哈哈哈哈~

回到家,發現雙腿的筋酸了三天,還有數處烏青。比爬山還慘一些~
但,就是一個爽~~~ 超讚的!

對了對了,你有聽說過獨木舟超好玩嗎? ^_^

Tuesday, September 10, 2013

解救被禁用的 iPad

From Evernote:

解救被禁用的 iPad

前陣子把 iPad 設上了密碼控制晶晶的使用量,讓她在輸入錯誤後進入「禁用中」的狀態。

原本想說到時就接上 Mac 重新 sync 一下應該就可解鎖。沒想到一看文件,居然只能靠 restore 才能解鎖… 一整個臉黑~ = =
我不想花那麼多時間作 restore 啊~~

但是咧~ 嘿嘿,被我意外試出一個可以不必 restore 的方法。

首先照文件進入 recovery mode,就是
  1. usb cable 先接上 Mac,但是不接上 iPad,開啓 iTunes
  2. iPad 關機
  3. 按住 Home button 不放,同時把 usb cable 接上 iPad。
  4. iPad 會自己開機,並進入 recovery mode.
然後咧,不必進行 recovery。

就直接拔除 usb cable,然後重開 iPad 就會又可以輸入 passcode 啦~~~ 哈哈!

Monday, March 25, 2013

PerPageHTML Calendar 不會換日問題修正

From Evernote:

PerPageHTML Calendar 不會換日問題修正

剛接手了一支 iPhone 4,發現 JB 後可以安裝 PerPageHTML 就能有類似 hTc 時鐘的 widget!


嗯,畫面果然不錯~
除了 hTc 時鐘,還有Calendar widget。


但是,過了一天就發現 Calendar 不會自動換日,但是時鐘卻很正常。

用 iFile 檢查了 Calendar code 後,發現這不知道從哪裡拿來用的 Calendar (會不會是直接拿 dashboard widget?),本來就都有用 setTimer 寫好 update timer 在換日時作用,只是不知道為什麼在 PerPageHTML 下不會作用。但是 hTc 時鐘卻告訴我們,在 PerPageHTML 下 setInterval 是正常的。

作了幾個簡單的測試,發現
  • setTimer 沒有作用
  • setInterval 30min 也不會動作
  • 但是 setInterval 1sec 卻可以正常動作
既然有了這個測試結果,我也懶得去深究原因。(雖然猜測大概是 PerPageHTML 的 Renderer 並沒有一直在執行 Calendar widget)簡單改了一下 Calendar 後,發現會正確換日了,實測也沒有耗電的現象。

所以,在此做個紀錄、收工~

我修改了
     1. 在 Widget.html body 加入 setInterval 呼叫 updateDate

<span id='date'>
<script language="JavaScript">setInterval('updateDate()', 1000)</script>
</span>

     2. 修改 Canlendar.js 的 updateDate

function updateDate ()
{
     gDate = new Date();
     var currentEqualDate = gDate.getMonth() == gBrowsingMonth &&
                                gDate.getFullYear() == gBrowsingYear &&
                                gDate.getDate() == gBrowsingDate;
 
     if (!currentEqualDate)
     {
          gBrowsingMonth = gDate.getMonth();
          gBrowsingYear = gDate.getFullYear();
          gBrowsingDate = gDate.getDate();
 
          drawGrid (gBrowsingMonth, gBrowsingYear);
          drawHiliteTodayInGrid ();
          drawText ();
     }
}

Monday, September 10, 2012

解救你的自由式:Total Immersion Swimming

你會游泳嗎?你的自由式游得輕鬆嗎?
如果你會,那麼恭喜你。

如果你跟我一樣,會游泳,但是自由式游個 50m 就很累,游起來歪來歪去。
那麼我很樂意在此分享我最近兩個月學習 Total Immersion 的心得。

就短短兩個月,我都還沒有完全把 TI 動作記憶在身體裡面,但是卻已經可以用自由式游上 500m or 600m 後只有心跳加速卻不累~ 




為什麼海豚游得那麼快?

  • 流線體型,低阻力
  • 強壯的肌肉與鰭,高推力
人類體態天生不適合在水下快速前進,更沒有鰭來推水。因此我們想要能有效率地游泳,第一要點就是調整姿態減少水阻力,這比增加推進力要更重要!

Take a look at the differences

如何減少在水中的阻力?

  • 物體越長,在流體中的阻力越小 
  • 維持一直線穿水而過 

不要浪費不必要的能量

  • 輕鬆地保持地阻力的姿勢 
  • 不要大動作製造水花 
  • 不用力抬手 
  • 利用你的體重 

該保持什麼樣的姿態?


調整姿態的要點

維持身體是一直線

  • 始終有一隻手向前伸展 
  • 手不是向中間伸 
  • 手掌向下,輕鬆微張 
  • 另一隻手在大腿側 
  • 頭不要抬起來 
  • 腿不要下沈 
  • 身體是傾斜的,一邊肩膀在水面上 

如何換手

  • 用大臂抬起移動小臂 
  • 不要抬太高,手指約在水面掃過 
  • 抬臂往前越過頭後,斜插入水向前伸展 
  • 抬起的手入水時,才將伸在前面的手收回 
  • 手插入水往前伸展時,順勢轉動身體,讓手能儘量前伸。而同時水裡面的手則剛好貼着身體收到大腿側。 
  • 不需要刻意划水 


不要想著要出力推水,專心在如何輕鬆地穿水而過

剛開始學習 Total Immersion 的人,先專注在用正確的姿勢減少阻力,可以獲得最大的效益。

重點是:手掌要始終向下微張。如此在換手時就會順勢抓水而獲得推力。

要不要踢腿?

要快當然要踢腿。但是如果踢腿會造成身體不平衡,那麼還不如不踢。  
踢腿有助於在換手轉動身體時能保持平衡。

換氣的時機與姿勢

不是在抬手時換氣!

當換手、轉動的動作完成,一手在前、一手在大腿側時,轉頭讓下巴靠往在水面上的肩膀,就可出水換氣。抬手時則已經換氣完,準備轉頭入水。

練習左右兩邊輪流換氣。


Thursday, December 08, 2011

政府哪時該出手?

看著新聞,突然覺得台灣政府應該要出力幫助 hTc!

且不管 hTc 老闆已經多有錢。

hTc 是台灣在主流消費者商品上,極少數能跟世界一流品牌同台競爭,還打得有聲有色的品牌。而他們所處的競技場正是未來幾年最重要的市場,Mobile!

然而 hTc 面對的最大競爭對手,卻是現金富可敵國的 Apple。這種競爭本來就沒有所謂公平可言,也沒必要追求平等。如果就讓 hTc 獨自面對這場戰爭,連老花眼都看得出來 hTc 有多弱勢~這情形,大人出場幫手是應該的。

我真的認為台灣需要這樣一個品牌站出去。

Thursday, July 14, 2011

你會做「阿拉蕾」嗎?

「妳這樣有像阿拉蕾耶。」媽媽對戴著鴨舌帽的晶晶說道

「哪有,阿拉蕾的帽子不是這種顏色。」晶晶反駁

「那你想當阿拉蕾嗎?」媽媽問

「又不行,人家阿拉蕾家裡是有博士耶!」晶晶說

「我們家也有啊!」媽媽指著我

「你是博士嗎?」晶晶問我

我點點頭

「那,你是科學的博士嗎?」晶晶再問

我點點頭

「那你會做阿拉蕾嗎?」晶晶繼續問

我... 我當然只能搖頭啦~

「你看,他只會看漫畫啦,整天都在用 iPad 看漫畫~」晶晶對她媽說

我...

我要轉行! 我要轉行去做機器人~

Friday, July 08, 2011

你以為我是你的「窮人」喔?

「哈囉,小女生!幫我拿桌上的格子薯餅給我~」我在沙發上,請騎著扭扭車的晶晶幫忙

「你以為我是你的『窮人』喔?」晶晶拿著薯餅,還斜睨著眼

我:「啥?你說什麼??」

「我是說~ ~ ~ 媽!那個都要聽別人話、幫別人做事情的是什麼人?」晶晶跑去找媽媽問

窸窸窣窣、窸窸窣窣...

「我是說,你以為我是你的『僕人』喔?」晶晶騎回來重說一次正確的

「那~不然你是什麼人?」我反問

晶晶:「我?我就是小孩子啊!」

我:「小孩子本來就要幫忙啊。」

「那為什麼大人就不用!?」晶晶騎車跑掉~

「喂,窮人!別跑~」

Friday, May 27, 2011

iOS 開發日誌:memory leak at navigation pushing control

一直覺得 XCode 提供的 Instrument tool 很方便,習慣都會在 milestone build 做個 memory leak 檢查。

昨天卻發生了 memory leak 在 UIKit 裡面的現象

        IssueViewController *nextController = [[IssueViewController alloc] init];
        [self.navigationController pushViewController:nextController animated:YES];
        [self.navigationController setNavigationBarHidden:YES animated:YES];
        [nextController release];

Code 很標準,但是 Instrument 卻回報在 pushViewController 發生了 memory leak,不管在 simulator 或是實機都一樣。

翻翻 Google,看到很多人有過這種經驗,但是並沒有一致的原因,多半還都是沒有 solution。

在使用 Heap spot 也看不出問題的情形下,只好用最笨的隔離法測試,結果終於找到問題點了!

問題出在 pushViewController 的下一行

        [self.navigationController setNavigationBarHidden:YES animated:YES];

原來在 push 後若是再對自己的 navigationController 動作,對導致 reference count 的增加,變成 memory leak...

移掉這行就 ok 了。

這情形不好抓,只好寫篇記錄~

Thursday, May 19, 2011

iOS programming journal: Holy grail of tableview image handling

花了好幾天時間,嘗試各種方式企圖提昇帶有 imageView 的 tableview scrolling performance

Google 搜尋後看到幾個 tip
- prepare image in background。這我本來就這樣做了,但是仍然會頓
- 自己畫 tableviewcell。我也試了,沒用~
- 自己寫 tableviewcell 的 drawRect,不要讓 Cocoa 做一堆 subview render/layout。這我不想試,不信一定要這麼麻煩...

終於在昨天讓我看見了這篇的 Apple sample
http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html

原來真正的重點在

- 當 tableview 在 dragging、decelerating 時,不要去做花時間的動作,譬如 resize image,或是設定很長的 UILabel
- 等 tableview scrolling 停止後,再把畫面上少的東西用準備好,必要時用 background thread(要實作 UIScrollViewDelegate)

總算搞定,現在滑得可順了~~

Wednesday, May 04, 2011

爸!我跟你說一個密碼

「爸!我跟你說喔~」剛洗好澡的晶晶跑過來找我

「我的耳朵有密碼,你說錯密碼它就會關起來!」

...


「103,快去睡覺。」我指著晶晶

晶:「錯!」

「咦?你不是跟我說密碼是 103 嗎?」我剛其實沒很仔細聽

晶:「不是~密碼是:『嘛嘛咪嘛嘛』」

= =

Tuesday, April 12, 2011

路人的對話 一

路人的對話 一

在花博圓山入口處

A 女:「啊!我忘了帶腳架啦~」

B 女:「我只有帶數位相機。」

C 女:「怎麼辦,那我們就不能合體了耶!」

...

我心裡 OS:「要合體時,記得通知我啊~~」

Monday, April 04, 2011

買紅豆餅

請晶晶下車去排隊買紅豆餅
拿了一百元給她,提醒要買三個紅豆的喔

隊伍不長,才三個人,可是卻等了有點久
因為有位先生買了二十幾個,每種買四個

等輪到了晶晶時

「小妹妹要買幾個?」賣紅豆餅的阿姨問

「紅豆兩個、奶油兩個... 還有~芋頭兩個、蘿蔔絲兩個!」晶晶回答

啥咪!!

「 不對啦!」我趕快阻止她。吼,這小鬼是想跟人家比豪氣喔。

Thursday, December 09, 2010

晶晶的創作歌曲

今天晶晶作了一首歌

        小白小白我愛你,你是我的好狗狗
        小白小白我愛你,別忘記你的好主人

Sunday, November 21, 2010

久違的老同學聚餐

今天與幾位好多好多年沒見面的老同學相約聚餐,帶了晶晶同去

回家後的晚上

我:「妹,今天妳最喜歡誰呢?」

晶:「嗯~那個短頭髮,帶我去上廁所的阿姨」

我:「短頭髮?是坐在我旁邊那個嗎?」(其實我根本不記得大家的髮型... 小女生注意的果然不一樣)

晶:「對!」

中間省略,其實晶晶接下來把每位阿姨都提到了,還每人都有不同的理由,唯獨漏了某先生
...

我:「那叔叔呢?他有買布丁送妳耶」

晶:「啊,布丁?那個是短頭髮阿姨給我的啊~」

我:「哦!哦!原來是因為這樣,妳才最喜歡她喔!?」

晶:「嘻... (害羞)對啦...」

我:「...」(可見這芒果布丁有多好吃,thx Ryan)

ps: 這位 pass 布丁的短頭髮阿姨,就請自己對號入座吧. ^_^

Tuesday, November 09, 2010

[App] 討人厭的開發者行為

使用 iPad 一個多月 有 App Store 確實很方便,也發現了幾種很差勁的 App 開發者行為,會陸續記錄下來,今天先寫兩個
  1. Maxim: 十月底時推出 Oct. free issue 讓人閱讀免費的十月號,結果在 11 月更新 App 就直接把你 iPad 裡的免費 Oct. issue 幹掉變成要點選購買。
  2. MagV: 號稱付月費就能看多種雜誌,但是雜誌品質不佳外,居然又另外推出旅遊情報誌 App 對某些雜誌分開收費。

Thursday, September 16, 2010

睡不著之胡思亂想

莫名其妙睡不著,躺在床上突發奇想,乾脆爬起來寫寫格文好了

一個會死的軟體團隊是不是會有這項癥狀:
團隊中最聰明且有能力的幾位,只被當成是工人使用。
而對外的 sales 卻在扮演客戶傳聲筒,沒腦袋似地被客戶擺佈著。

每當有新的 request 進來時,developers 都必須要動腦袋想辦法寫出來,甚至常需要從多種方法擇優採用。那為什麼 sales 卻可以不動腦袋想辦法把已有的產品再包裝成客戶願意買的模樣,而只會說客戶說要 XX features?

我看根本原因應該是我誤認為他們是 sales 吧~

反正只是被樓上機車鄰居吵得睡不著的胡思亂想...

Sunday, August 29, 2010

你可以先買啊

剛才晶晶不知道從何處翻到了個小東西(似乎是小妏在整理抽屜)

拿著跑來問我:「爸~你這個是在日本買的嗎?」

我看了一下:「不是,是在上海買的」

晶:「那你有去過日本嗎?」

我:「有啊」

晶:「那你怎麼沒有買日本的娃娃給我當禮物?」

我:「拜託!我去日本的時候,妳就還沒出生咧~」

晶:「你可以先買啊,等我長大再送給我!」

... (你可以先買啊... 你可以先買啊... 你可以先買啊...)

我:「好啦,好啦,我下次會記得...」(臉上三條線)

Wednesday, July 07, 2010

妳以為妳萬人迷啊

晚上,晶晶拿著蒸蛋坐在沙發上吃
吃著吃著,人也愈坐愈歪

我:陳晶晶,吃東西坐好!
...

我:陳晶晶!吃東西要 坐!好!
...

我:陳晶晶!(眼睛瞪著她)

這小鬼現在才終於有回應了
晶:你為什麼一直看我?(眨眼,眨眼)

我:我在罵妳,當然看著妳啊。快坐好!

晶:嗯~ 你不要一直看我嘛~

哇咧,妳以為我是喜歡妳在看妳啊?給我坐好!........

Wednesday, May 26, 2010

被負面思考主宰的年輕一代?

每天在網路上的生活,我都會花不少時間在 Mobile01, ptt 之類的論壇看他人的發言。

看著,看著...
突然間,我驚覺到一件事~

不管是什麼議題,像是這幾天的鴻海跳樓事件、或是大鵬灣的新賽車場動工、或是採用 Scrum 的優點、等等。
我都發現到一點!

就是一旦開始討論,大多數人的發言都非常地負面...

本來在網路上的言論就當不得真沒錯。
但是,我相信這些所謂的鄉民,其實正可代表在台灣的年輕一代。包含了在學的中學以上學生,還有現在三十多歲的世代在內。

原本在論壇,多半見到是以搞笑、戲謔的發言居多,大部分人都不是很正經地在發言。
可是,我漸漸地發現到變化了~

負面的情緒跟言論,逐漸地在蔓延。
不論是什麼樣地議題,都會有滿滿的負面言論出現。
譬如:

- 台灣連路都鋪不平,搞什麼賽車場
- 採用 Scrum 就是要多寫文件、多開會,在台灣搞只會更壓榨工程師啦
- etc...


我對這類的傾向有點憂心...
年輕一代的觀念、思想太過負面。只看黑暗面,不願轉頭去尋找光明。
對他人充滿不信任,不相信別人有真心想做對的事...

而被負面思考主宰的結果是很難有進步。

個人覺得,企業主管跟老師都有責任多讓光明照在這些年輕一代的心靈。
(我對家長跟媒體、政治人物反而是沒什麼期待...)