2013年7月6日 星期六

做擅長的本業

成本

台北是一個集結台灣許多資源的地方,多到變成一個干擾的環境。例如捷運很便利,但不是每個目的地都必須選擇捷運,反而刻意搭捷運會耗掉一些成本。這讓我回想了資訊業,現況集結了許多未來性的方向,但如果公司資源沒法善用,反而成了無形的內耗模式。

我覺得,能夠做擅長的事是幸福的,但能夠挑戰不擅長的領域也是另一種的快活。如果面對的是一間公司的營運,那就必須考量人力成本,這是很現實的問題。

變化急倏的資訊業中,我相信還是有擅長的、容易顯示出自己價值的路可以走的!不需人云亦云,但也記得不要一直擁抱過去的成果,那些過去不錯的經驗是可以傳承的,卻不代表能那時的成果在現在的時空背景能夠存活下來。

2013年6月30日 星期日

iOS 開發筆記 - 簡易 TCP Socket Client 筆記

最近有需求需要從裝置發 socket request 到指定的 socket server 上,丟一串字串就結束連線。

簡易範例:
- (void)sentAMessageTo:(NSString *)server_ip port:(int)port message:(NSString *)message
{
    NSInputStream *inputStream;
    NSOutputStream *outputStream;
    CFReadStreamRef readStream;
    CFWriteStreamRef writeStream;
    CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)server_ip, port, &readStream, &writeStream);
    
    inputStream = (__bridge NSInputStream *)readStream;
    outputStream = (__bridge NSOutputStream *)writeStream;
    
    [inputStream open];
    [outputStream open];
    
    NSData *data = [[NSData alloc] initWithData:[message dataUsingEncoding:NSASCIIStringEncoding]];
    [outputStream write:[data bytes] maxLength:[data length]];
    
    [outputStream close];
    [inputStream close];
}
此例應該算使用 ARC 方案吧,沒去管記憶體。

[Javascript] 處理新舊網站網址對應問題,以 PIXNET 與 Blogger 為例

PIXNET 公告版面

最近剛從 PIXNET 移到 Blogger 服務,對於之前在 PIXNET 的資料(流量)是否有好的解法呢?嘗試處理一下,的確有解 :)

問題:
  • 舊網站網址與新網站的規則不一樣:http://old_site/blog/post/xxxx 與 http://new_site/2013/06/oooo.html
因此,就算一開始在舊網站採用個人 domain name 網址也無法透過更改 DNS record 方式無痛切換到新網站。

解法:
當使用者逛舊網站時,引導使用者到新網站。由於新舊網站的文章標題一致,可以善用這個特性。
因此,可以透過 Javascript 來解決!先建立一份新網站文章標題與網址對應表後,在舊網站植入 Javascript 程式碼後,每當使用者逛舊網站文章時,當下動態取得文章標題後,查表取得新網站的網址,引導使用者切換過去即可。
PIXNET 公告版面

對 PIXNET 來說,它提供公告版面,這是個不錯的 javascript 植入位置。我將 Javascript 擺放在 github.com 這免費空間中,每當使用者在舊網站讀文章時,我在公告版面顯示新網站位置以及新網站此文章的網址,方便使用者點選,若測試無誤後,也可以考慮直接用 javascript 將使用者導向新網站。

有興趣的可以繼續參考:

[Python] 製作 Blogger 文章標題與網址對應表 (JSON Format) - 簡易 Blogger Crawler

有一些需要,想要知道 Blogger 文章標題與網址的對應,所以寫了隻 python 程式,撈了一遍 blogger 出來 XD 其實 Blogger 有提供 APIs 可以來做這件事 (https://www.googleapis.com/blogger/v2/blogs/blog-id/posts),但因為需要額外提出申請才行,就先快速用 blogger.com/search?max-results=50 的概念進行。

有興趣可以參考:github.com/changyy/blogger-title-link-crawler

使用 Github.com 散佈 Javascript 程式碼

github.com 有提供 raw 存取方式,但其 content type 並僅 text/plain 而已,這會影響 Javascript 的使用。幸運的,github.com 有提供 text/javascript 的存取方式

例如原先 raw 網址:

<script type="text/javascript" src="https://raw.github.com/changyy/note/master/new-site-url/url.js"></script>

僅需改成:

<script type="text/javascript" src="https://rawgithub.com/changyy/note/master/new-site-url/url.js"></script>

即可處理 content type 問題 :)