about 5 hours ago

這次到 RailsConf@huacnlee 介紹了我用了這個神奇的玩意 Guidebook

真的非常非常的方便。像這次 RailsConf 的議程在 Guidebook 上也可以下載。

IMG_0150.jpg

整合多項會議資料

大會或者是有心人只要上他們的網站,編排會議資訊,其他人下載會議資料之後,就可以很快的掌握大會所有資訊了。這個 App 整合了議程資料、Twitter、最愛議程、地圖,等等。

IMG_0151.jpg

支援多種 Device

而且還支援不同 Device。iPhone, iPad, Android ...等等當然都是在支援列表內。

螢幕快照 2014-04-24 上午8.14.47.png

以前都不知道有這種東西,這東西看起來這麼方便。

看起來以後 Conf 就不用費心找人做大會 App 了....

 
11 days ago

原文摘自我的 FB。很多人問要怎樣「正確」跟工程師相處,以下是我的回答:

1. 不要把工程師當「得來速」,隨便點餐。

工程師正確的用法要這樣用:

今天如果你有一個問題,你就直接跟他講你有什麼問題,有沒有辦法設計一個方案解決。工程師強的不是你以為的寫程式能力(這個另外討論)。而是他比你強的「工程角度」解決問題的能力。

你跟他講你有什麼問題,有一定能力以上的人可以很快就幫你想想出正確的 workround。甚至還親手幫你做好。

切忌逼他寫你心目中想要的程式,他只會覺得你智障然後繼續回去打 diablo。

2. 不要沒把解決手段想清楚就把問題扔給他

有的時候,那個問題不是純工程角度 workround 可以解的。而是必須從實體角度去切入,程式去輔助自動化。你必須先想清楚,實體你打算怎麼做。

「我想上網開店賺大錢」這種 request 你丟給他。他會直接永久靜音你的 FB 對話。

不要以為他是蠢。工程師在問題出現前 8 個小時前就可以看到問題,三秒鐘就可以判斷到底要不要做。人家聰明的很。後知後覺的是你。

3. 不要跟他講什麼「應該很簡單」

「應該很簡單」只有「Senior Developer」才可以跟 「Developer」講的。其他人沒資格講。

你應該要跟 Developer 說,這個問題有一點挑戰,你不知道找誰。

你跟他講「應該很簡單」,他內心會直接跟你這個人絕交。

4. 請他吃高級燒肉

我還沒遇過工程師不喜歡吃燒肉的。吃燒肉友誼點數大概可以灌 3 倍速度。

***

以上是工程師相處指南。

我要回去打 diablo 了。

 
about 1 month ago

開辦 Taipei Rails Meetup 兩年多以來。除了在 前文 提到有招募過程 「鑑定」/「被鑑定」的困擾外。

另外一個我也常常被要求幫忙,但始終想不到有效解決方法的兩個問題是:

  1. Xdite,你知道哪裡有「好的」(甚至不用好的..),現在正在找工作的開發者,可以介紹嗎?
  2. Xdite,你知道哪裡有「好的」(甚至不用好的..)Rails 公司在找人,可以介紹嗎?

很難幫上忙因為:

  1. 「我個人保證」這間公司 / 這個開發者很好,風險是很高的。所以發生次數也不高。
  2. 即使不需要我個人保證,參與 Meetup 的個人與雇主(不一定雙方會同時參與同一次),很難有效的牽上線。

傳統招募流程的問題(費時)

根據我與朋友過去的招募經驗,招募其實是很痛苦的一件事。因為需要招募往往表示著現在就有補人壓力,但是你卻不知道哪裡有可以「嘗試」的「新鮮面孔」可以招募(可以談的其實多半都先談完了,然後才會公開招)。而面試的流程往往是這樣的:

  1. 寫招聘啟示。並在社交媒體或社群內散布。
  2. 等待求職者投遞履歷,並視「Dev Lead 有空的時間」安排面試。
  3. (幸運的話一次就錄取)(不幸的話繼續重複循環)

一個月內就有補人壓力。但是卻因為種種原因,卻只能排到五場面試,三場面試裡面可能又會有一兩場是坐下來五分鐘,就知道不用繼續下去。但為了保持禮貌還要寒暄 30 分鐘。

面試者也有相同的壓力。因為要遷就「Dev Lead 有空的時間」。可能一個月內也排不到幾場面試,卻坐下來聊不到五分鐘,就覺得這不是自己想要的公司...

參與社群也不見得當次就有會現身要招募的雇主。

解決方案:Speed Dating

我也一直在思索到底要怎麼解決這樣的困境。最近因為要邀朋友一起參加外國 Conference,跟朋友分享參加的好處。才突然想起來,在前幾年兩次參與 Conf 路過舊金山 Ruby / Rails Meetup 時,就看到他們發明解決方案了。這個解決方案就是:Speed Dating,快速約會

快速交往源於外國聯誼,為了「快速挑選可以交往的對象」,這樣的聯誼通常會是約 10 個男生,10 個 女生。雙方簡單交流 5-10 分鐘。換下一桌。如果不喜歡,時間到就可以逃到下一桌。如果看對眼,當場就交換資訊,會後聯絡..。

Employer-Developer Speed Dating 也是相同的原理。很多時候,雙方差不多聊 5 分鐘就可以知道要不要繼續談下去。不喜歡就換下一桌不失尷尬。雙方交談甚歡的話也可以馬上約時間安排面試。

一場下來。雙方交換到八個十個以上不錯的機會也是很有可能的事。將這個想法跟社群內幾家 Rails 公司交流了一下,也很快獲得了認同。

所以我們決定舉辦第一次這樣的招募快速約會 http://tp-rails-meetup.kktix.cc/events/speed-dating-01

活動詳情:(招募者付費,開發者免費)

報名網址:http://tp-rails-meetup.kktix.cc/events/speed-dating-01
時間:3/30 (日)下午 14:00 - 17:00
地點:CLBC (台北市復興南路一段293號4樓)
票價:

  • 開發者:免費
  • 招募者:5000 新台幣
  • 招募者尊榮方案:8000 新台幣
  • 現場備有無限酒水暢飲

活動辦法:

  • 募集 10 - 15 位左右的招募者,以及 50-75 位左右的開發者
  • 以 5 分鐘為計時單位,快速交換寒暄,簡單自我介紹公司以及開發者背景。決定要不要後續聯絡。
  • 開發者可以自由決定是否要留下資訊給招募者(主辦方會給予開發者紙卡,留下自己簡單聯絡資訊),進行後續面試。
  • 主辦單位在一開始活動簽到時,會發給參與者一張所有招募單位的資訊(每間公司500字,主辦方會聯絡招募者繳交)。
  • 主辦單位在一開始會有簡短的開場時間介紹招募單位,也會留給大家 social 的時間
  • 報名尊榮方案的招募單位,可以請主辦單位夾帶發放一張單張的公司招募文宣

其他:

  • 歡迎透過 KKTIX 的 聯絡主辦單位 [https://kktix.com/organizations/tp-rails-meetup/contact/new] 發問。
  • 早點報名可以早點獲得 Speed Dating 的面試順序(因為開發者眾多,故可能安排三個時段進行)
  • 有其他更好的想法也可以跟我們聯絡。
  • 如果成效不錯的話,我們可能會發展成 per month 活動
 
about 1 month ago

Land Dream Rails Job http://get-rails-job.today 是我昨天發表的一本新書,主題是「Rails 工作求職指南」。

說是「求職指南」其實不太精確,正確來說應該是「成長指南」和「面試 / 被面試」指南。

撰書動機:解決困擾

在臺北辦 Rails Meetup 兩年多以來。這些年來:很多人來 Meetup 找我問過問題。根據統計:頻率最高的竟不是「開發上的問題」(基礎開發的問題我都轉交社群朋友回答,我本人只接受技術架構調整、Code Review、求職面試類的問題。),而是求職相關問題。

以下按照排名列出我常被問到的問題(也包含來信 email 統計):

求職篇

  • 如何找到一個 Rails 工作(超過150次)
  • 我夠不夠資格面試上一份初級 Rails 工作 (超過100次)
  • 我零經驗,想轉行寫 Rails。合適嗎?(超過100次)
  • 學完「基本」的 Rails 之後怎麼實做自己的 project ( 超過 50 次)
  • 我沒有太多開發經驗,想換公司去累積經驗,但人家又不收沒有經驗的開發者,要怎麼辦(超過 50 次)
  • 哪間公司目前比較適合我的程度(超過 40次)
  • 怎麼樣才算是 Senior Rails Developer (超過 30 次)
  • 你知道某某公司面試考什麼嗎?(超過 20 次)
  • 可以幫我看一下履歷寫這樣可以嗎?(超過 20 次)
  • 我要找一份 Remote 工作,目前這樣程度夠格嗎?(超過20次)

找人篇

  • Xdite 你有認識人可以介紹嗎?
  • 你的公司都怎麼挑人?
  • 你怎麼出筆試/面試題目的啊?
  • 怎麼正確鑑定一個 Rails Developer 的程度
  • 怎麼阻擋「亂來」的履歷入侵信箱
  • 去哪裡徵才可以找到優秀的 Developer?

身為職業 FAQ 答題機器人,我發現願意高薪求才的公司非常多,但他們找不到合適的人(或者說是從履歷上看不出來適合)。學習 Rails 的人也非常多( Rails 101 銷量非常好 )。但是這兩者卻對接不起來。

身為勞方,大多數人卡在「雞生蛋、蛋生雞」的問題,沒有作品開發經驗怎麼找工作。或者是不知道怎麼樣的技能需求才能達到面試門檻。

身為資方,不知道去哪裡找人。或者是信箱每天老是收到一些「完全來亂」的履歷。

其實這些都有解答。但不是一時用講的,甚至在 Meetup三小時內,能夠就講清楚的答案。但是我一年要回答這些問題非常非常非常多次...

於是最後我決定把這些問題和答案全部集結在一起編成這本書。

解決勞方 / 資方的問題

  • 如果你想自學,這本書裡面有一整份順序自學實作指南
  • 如果你想打破雞生蛋、蛋生雞的問題,這本書教你如何順利累積書本外的實作經驗
  • 如果你想找能正確累積經驗的工作,這本書教你找到適合等級的工作
  • 如果你想找工作大加分,這本書教你開金手指
  • 如果你不想履歷石沈大海,這本書教你寫出不容易被刪掉的履歷
  • 如果你不想搬家,想要找到 Remote 的工作,這本書教你如何應徵上 Remote 工作
  • 如果你想升上資深工程師,這本書會介紹資深工程師的進階方式

=== ===

  • 如果你是僱主,這本書教你怎麼樣快速刪掉篩選出來亂的履歷
  • 如果你想要找到好的人才,這本書教你去哪裡找人,刊登職缺最有效率
  • 如果你想快速鑑定出一個人是否唬爛,這本書教你如何出題

購買網址

美元售價 85 USD。台幣售價 2500 新臺幣。

(i.e. ReadMoo 會晚 LeanPub 一天更新,因為是人力更新)

FAQ

A: 我怎麼知道內容是不是唬爛?

  1. http://leanpub.com/dream-rails-job 有書籍部分章節 Sample
  2. http://leanpub.com/dream-rails-job 有 45 天無條件退款保證。看完覺得不滿意可以退掉這本書。(不過退掉這本書之前,還請幫我一個忙,Feedback 讓我有改進的機會。
  3. 如果你是 Senior Developer 或僱主。可填寫 Feedback 這個表單免費索取這本書。
  4. 如果你 22 歲以下 可填寫 Feedback 這個表單索取 discount

A: 這本書會不會拖稿?

  1. 這本書已經寫完了,所以沒有拖稿問題。
  2. 3/6 上架之後,因為讀者反映骨架稍微單薄,需要更多真實情境。5-10 章全部砍掉重寫,新版的內容多了十幾頁。
  3. 如果你有想知道的其他議題,但書裡面沒有這部分,可填寫 Feedback 表單建議新增。

A: 這本書為什麼這麼貴?要 2500 臺幣。

  1. 寫這本書的原因,純粹只是不想一直回答同樣的問題高達100遍。而回答書裡面的這些問題絕對會超過 1 個小時以上。而雇用我本人一個小時薪水不止 2500。而且我也不想賣這樣的服務。所以只好出此下策。
  2. 我相信求職一直被 Reject 的成本遠大於臺幣 2500。請假一天出去面試就要扣1-2000薪水了。

A: 有沒有折價卷

  1. 在 3/6 前購買 Rails 101 的讀者信箱裡面應該都有收到折價卷了。金額保密。

A: 什麼地方可以找到你問真人問題?

來我公司。或者是每個禮拜二我會參加 Rails Meetup

A: Lean SaaS 什麼時候更新?

3/16

 
about 1 month ago

太常講了。乾脆寫成一篇...。主要是對 btn-danger 濃濃的不滿...=_=

Read on →
 
about 1 month ago

What should we do? -- Part 1 ( Still using Wordpress)

OK。上一篇其實都是廢話。被整過的都已經知道「大概」是怎麼回事了。重點是 Solution。Solution。Solution。

如果你還是希望暫時繼續使用 Wordpress 的話,有幾件事情可以馬上處理。

Read on →
 
about 1 month ago

今天路過 FB 看到朋友蔡校長寫了一篇政治文章,這篇文章的話題性之高( Visit 40,000+、Pageview 130,000+) 意外的衝倒了部落格本家。蔡校長不是不想解決,也一直為 Scaling 屢次搬家所苦,只是他遇到的狀況,會跟網路上能夠 Google 到的答案都不太一樣。剛好我在創業前,就是在 某科技網站 專注做 CMS ,這個主題還算略懂,所以打算寫篇文章來分享給有類似之苦的朋友。

(此篇文章特別的目標讀者是:針對使用 Wordpress 架站,並且苦惱一天到晚倒站的內容生產者)

Read on →
 
about 1 month ago

今天在 FB 上看到這篇文章 為什麼新聞網站長這樣。看了覺得有點手癢來回一下。

某科技網站 願意讓我用「某科技網站」的形式,分享 2011 實作該網站首頁和內頁的細節。所以這裡就不截圖了。

首頁版面的編排

Read on →
 
about 1 month ago

這篇是一篇有趣的觀察。主要的動機原先是因為想投稿 RailsConf 2014。填了報名表單以後發現有趣的細節,覺得可以分享,最後寫了這篇文章。

投這次 Conf 的動機主要是想省一點旅費。(投中者有一張免費門票 (750USD) + 500 USD 的補助費,沒中大會也會幫忙保留門票名額...)。不試白不試,所以也拿了一個小題目投了 CFP。

http://www.flickr.com/photos/xdite/12722098294/sizes/o/in/photostream/ (目前 CFP 的頁面已經關起來了,所以這是存檔畫面)

結果一開 CFP 的畫面我就笑了。因為界面和規則超熟悉 XD。

竟然是 YCombinator 式的徵題目方式 XD。( 去年秋天幫 Logdown 去投了 YC...)

傳統的 Conf 投稿流程

先聊聊傳統的 Conf 徵稿流程,以免讀者不太理解為什麼這件事值得記錄。

傳統 Conf 的 CFP 通常是這樣的:

第一次舉辦 (沒得投 CFP)

如果這個 Conf 是第一次舉辦的話,通常一般參加者是沒有參加 CFP 機會的。講者通常會是 Conf 主辦者到處去拜託他的大咖朋友們出席幫忙湊名單...。所以每個 Conf 的第一屆通常會很好看,因為 80% 以上的都會是大牌。

第二次以後舉辦(開始可以投 CFP)

如果這個 Conf 第一屆辦得好的話,很有機會隔年可以繼續再舉辦。這時候就會有可以投 CFP 的機會。通常投稿的格式只有一種:

1. 講者簡介:(你是誰?)
2. 主題介紹:(你想講什麼主題,內容摘要是什麼)

大概全世界 99.95% 的 Conf 都是這種徵稿方式。

所以取決會不會投上的因素通常也只有兩個。

1. 講者本人經歷以及背景
  • 當地大咖。上的機率就會 ++++
  • 社群活躍度非常夠。(有知名 opensource 專案或者文章非常多)
  • 演說經驗(有 meetup 演說經驗數次)
  • 任職的公司(如果公司有厲害的 scale 經驗,也容易上)
2. 題目本身

但用「人」去篩選題目,其實也容易出現誤差。因為一定會有其實題目很強,但講者是剛出道或是其他國家強者(有可能你不熟悉)。主辦者會試著想要捕獲落網之魚。這時候就是用題目篩...

不過主辦者會這樣想,投稿者也會這樣想。所以有時候真的節目單上會出現很厲害的 Title,但到現場發現演講者根本是一個什麼都不懂的新手在亂扯而已。

Rails core team member: Aaron Patterson 有一篇演講「算是」「半諷刺」的在 Talk 裡面塞這種現象:American Next Engineer。非常好笑,值得一看。

小結

然後結果就是我這樣一寫完,你就知道怎樣對一般 Conf 作弊了(?)。(不過不寫的話,你投稿失敗幾次後,自己通常也可以試出方法)。

不過很遺憾的,即便大家都知道遊戲規則和作弊手段,但還是沒有辦法有一套有效的機制防止。

RailsConf 歷年的 CFP

RailsConf CFP 我投過 12,13,14。12 是傳統的講者簡介/主題介紹。13 是講者簡介/主題介紹(但在第一階段禁止泄露個人資訊,進行海選)。14 是 YCombinator 式篩選。

YC 式是我寫這篇文章的主因...

RailsConf CFP 2014 ( YC Style)

備份的 CFP 辦法(存檔):http://www.flickr.com/photos/xdite/12722098294/sizes/o/in/photostream/

備份的 CFP 界面:

Screen Shot 2014-02-21 at 22.41.02.png

規則簡單的歸納是以下三點:

  1. 簡介你的 Talk ( Abstract )
  2. 敘述技術細節 ( Detail )
  3. 為何你有資格講這個題目 ( Pitch )

不過雖然必須要填寫(3)。但為了公平起見,還是嚴格禁止講者在此欄泄露個人資訊。

Screen Shot 2014-02-21 at 22.44.18.png

然後該份 Talk 可以選擇「Tag」。也就是大會這次有 Prefered 的主題。你也不必猜口味,直接選你的 Talk 趨向哪一種。

在第一階段的話,評審會 Review 你的 Proposal,然後透過盲問盲答的方式篩,由問答當中看功力。第二階段才會根據「你是誰」(該講者技術以及演講經驗決定是否入選)做篩選。

How YC do?

原辦法(存檔)https://gist.github.com/xdite/9173702

為什麼會說 RailsCFP 2014 跟 YC 很像呢?因為 YC 的規則更嚴問更多,其目的是試著讓創業公司以 360 度的方式審視自己並且線上 Pitch。

而且 YC 預設也會有一些偏好投資的題目讓你勾(比如說其中一個選項就是未來的媒體...)。

(填這份資料真的相當吃力,這份表格我們當初就寫了兩週多,還花了三天的時間錄了一段 interview 影片。還請朋友幫我們大修稿一遍)

審核程序

填完之後,( HN 上的謠言說) YC 校友會線上觀看這些 video 進行投票,高的會進 review。然後,YC 的 board 再視對你感興趣的程度線上問問題(要自己刷 HN),要你回答。

我們的成績是自介影片 1:30 左右平均被看了 1:08。有 8 個人看。然後 PG 本人寄了兩次信向我們要數據...(美國時間週六下午三點 submit 問題,然後美國時間週六下午八點寫信催我交,五個小時後我看到信,剛好在北京 RubyConf 最後一天晚上十點,回飯店累都快累翻了,結果只好熬夜寫 code 凌晨兩點抓數據...)。

海選的公平性

當初填過這麼慘烈的表格,所以這次才會印象這麼深。看到辦法馬上就會心一笑。

不過這的確是相當好的方法,因為熱門的創投投資公司,與熱門的 Conf 都會遇到相似的問題:

  1. 背景經歷顯赫的創辦者是好的經理人但卻不一定是適合的創業者
  2. 創辦者不熟悉自己所創辦的事業細節,卻精熟於 Presentation 的 Pitch

由這種互動方式也許能篩掉一部份的冒充者..

 
3 months ago

自從開始用 Rails4 以後,一直踢到類似的 asset compiling 爛賬。在 development 端是好的,在 production 一壓卻是爛的。但是在 Rails 3 行為卻是好好的。

一直踢到類似的鐵板,很難試出 root cause 是什麼。最近在用別人包的 Gem,覺得再遇到這種狀況會抓狂,於是認真找了 root cause 是什麼。

Asset Pipeline 的邏輯

基本上在

  • app/assets
  • lib/assets
  • vendor/assets

上掛的東西應該都是有效的。上 production 也會壓得過。(在 Rails 3 是成立的,但在 Rails4 變成圖片時常會找不到,然後鬼打牆一直 debug 不出來 )。

經過人工暴力和看熱門的 Gem (如 font-awesome-rails ) 的作法,發現把 assets 搬到 app/assets 是絕對會動。

Root Cause

花了一堆時間找討論串,發現是 https://github.com/rails/rails/pull/7968 (一年前 Josh Peek 的即興 Design)造成的。底下可以看到一堆熱門的 repo 都 ref 了這支可惡的 pull-request。

原因是 Josh 認為 app/assetslib/assets / vendor/assets 之間的行為要分開。app/assets 是你自己開發的,應該要自動 load。lib 和 vendor 則應該要手掛。

所以如果 image 或 icon-font 放在 lib/assets & vendor/assets。開發者要自己在 config/enviorments/production.rbconfig.assets.precompile 下自動一個一個加入想壓的(非 css/js 的 asset) 才可以。

嚴重的問題點:慣例原則

Rails 的 Asset Gem 維護者大多很嚴謹的維持一個原則。把 Asset 儘量都放在 vendor/assets,表示裡面這份 code 他不是原作者。而且這個 Gem 很明顯是 3rd party libraray。

但是依據開發慣例,如果你把 CSS 放在 vendor/assets下面。那麼相關的 images 基本上 100% 也會放在 vendor/assets/images/, vendor/assets/*/images/。基本上你不會吃飽沒事幹,一份放 app/assets,一份放 vendor/assets

那麼 Johs Peek 的這個強迫行為,造成了原始採用 vendor/assets 設計且有非 css / 非 js 的 Gem,在 Rails 4 全部出事。(而且這個 bug 在 Rails 3 沒有)

然後查了這個一年以前的 Deisgn,竟然沒有在 sprocket-rails 官方文件清楚的指出來。( 去送了一個 pull-request 才發現原先的 README 講的非常含糊)。

暴力解決法

1. 在你的 project 加入這行
config/enviorments/production.rb
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
2. 把你維護的 Gem 從 vendor/assets 搬到 app/assets

結論

不過雖然可以解決問題。但是這兩個解決方法只是讓 Rails project 變得更髒而已 -_-。實在非常不爽 sprocket-rails 這個team。如果你長期有在追 compass-rails 與 sprocket-rails 這場戰爭的話,應該會非常非常討厭後者..。

 

My Books

  1. #1 Rails 101

    Buy Rails 101
  2. #2 Maintainable Rails View

    Buy Maintainable Rails View
  3. #3 Lean SaaS

    Buy Lean SaaS