簡介
因為寫 ext-blog 的原因,慢慢喜歡上github_ 。然后突然有一天產(chǎn)生了一個想法:如果可以把自己的博客_ 和 github主頁 集中到一塊展示給別人,會不會是一種很方便的自我簡介方式?然后我就動手寫了 codertrace.com 。
所以, codertrace.com 這個網(wǎng)站的作用就是用來集中讓程序員炫耀的。它通過RSS抓取,將你的博客,github主頁,或其他有RSS輸出的信息集中到一塊展示給別人。這些信息通常就可以代表一個程序員。
如果你是程序員,也不妨試試。
技術(shù)信息
不知道哪個王八蛋說的,程序員每一年得學(xué)一門新語言。我2010年末接觸了Lisp,然后莫名其妙地寫了 ext-blog ,又莫名其妙地在2011年末接觸了Ruby。因為大學(xué)期間太癡迷C++,我勤奮努力,幾乎通曉這門語言的各種細(xì)節(jié);后來又稍微實踐了下編譯原理。在這若干年間,斷斷續(xù)續(xù)也接觸過其他腳本類語言,我甚至在android上用java寫過幾個 小應(yīng)用 。基于這些積累,我發(fā)現(xiàn)我可以很快上手Ruby,然后再上手Rails,然后就有了 codertrace.com (當(dāng)然還做過一些小的 APP )
所以, codertrace.com 就是一個Ruby on Rails的應(yīng)用。當(dāng)我用這貨來做WEB的時候,我才發(fā)現(xiàn)曾經(jīng)用Lisp寫博客是多么geek。這種感覺就像你在用匯編寫一個GUI程序一樣。我的意思是,ruby/rails的世界里有太多現(xiàn)成的東西,但lisp的世界里沒有。
而且,ruby是一個很爽的語言。我太喜歡它的closure語法,簡潔,不需要加其他關(guān)鍵字就可以構(gòu)造(例如其他語言map(function (item) xxxx end),或者map(lambda (item) xxx ))。但我不喜歡在使用的地方通過yield去調(diào)用---這就像一個hack。我更不喜歡ruby用proc去封裝closure。好吧,這其實是我自我分裂,為什么我要把ruby看成一個函數(shù)式語言?
腳本語言真是太酷了。
服務(wù)器信息
我很窮。不管你信不信,我真的舍不得花1000RMB買個VPS來架設(shè) codertrace.com 。目前, codertrace.com 架設(shè)在 heroku.com ,而且還使用的是免費服務(wù)。免費服務(wù)竟然只有5M數(shù)據(jù)庫。 codertrace.com 后臺為了異步抓取用戶提供的RSS,還使用了一個單獨的進(jìn)程(delayed_job ruby gem)。這也不是免費的。
但ruby的世界里有太多現(xiàn)成的東西了,甚至有很多現(xiàn)成的庫解決這里的兩個問題:heroku_external_db,這個gem可以讓codertrace使用heroku以外的數(shù)據(jù)庫,然后我就在我的VPS上搭了個mysql,這下流量和網(wǎng)站響應(yīng)速度悲劇了啊,你想你請求個頁面,這個頁面直接涉及到若干條數(shù)據(jù)庫查詢。而這些查詢的請求和回應(yīng)竟然是通過internet網(wǎng)絡(luò)傳輸?shù)摹?/p>
workless,這個gem可以在有異步任務(wù)時,例如codertrace上讀取RSS,就會自動開啟這個worker進(jìn)程,然后heroku開始計費,當(dāng)沒有任務(wù)時,它又自動關(guān)閉這個進(jìn)程。雖然省了美元,但再一次讓網(wǎng)站的響應(yīng)速度打了折扣。
為了實現(xiàn)自定義域名,我需要將 codertrace.com 指向 heroku.com 提供的IP。但也許你會同我一樣憤怒,因為它提供的幾個IP都被GFW墻了!所以,目前的實現(xiàn)方案是,我將 codertrace.com 指向了我博客對應(yīng)的VPS,然后在VPS上使用nginx反向代理到 heroku.com 提供的IP。即使如此,我最近甚至發(fā)現(xiàn) codertrace.com 竟然神奇般地會域名解析錯誤,難道godaddy的name server也要被GFW和諧??
故事
作為一個宅男,在工作的若干年中,若干個假期我都用來打游戲,或者寫程序。
所以,當(dāng)這個成為習(xí)慣的時候, codertrace.com ,就順理成章地消費了我今年的春節(jié)假期。我發(fā)現(xiàn)一個人窩在租的小房子里寫代碼是件很爽的事情。在當(dāng)前這個社會環(huán)境下,你可以專注地去干件喜歡的事情,還不用處理各種生活瑣事,真是太爽了。
但為什么我平時得不到這種感覺?因為,我,是一個沒錢的程序員。我和我老婆租在一個標(biāo)間里。在這樣狹小的空間里,多個人就是多幾倍干擾。這太殘酷了。
末了
曾經(jīng)我以為我很牛逼,曾經(jīng)我以為程序員很牛逼。后來我慢慢發(fā)現(xiàn)自己很垃圾。我沒有寫出來過牛逼的程序,大概也沒能力寫。還記得那個程序員的故事嗎?就是有個傻逼也以為程序員很牛逼,但不幸在一家非IT公司的IT部門工作,他的程序員同事的工作就是每周填個excel表格。他后來很絕望,因為他沒有為世界貢獻(xiàn)過任何代碼。后來,這貨丟下一切,坐上去某地的飛機(jī)走了。