2011年12月8日 星期四

[MongoDB] update one field of all records 更新所有資料裡的某個欄位

Usage: db.collection.update( criteria, objNew, upsert, multi )

MongoDB shell:
> db.users.update({}, {$set : { subscribe : true }}, false, true)

[MongoDB] print one field of all record 列出所有資料裡的某個欄位

MongoDB Shell:

> db.users.find({}, {email:1}).forEach(function(u) {print(u.email)})

2011年10月20日 星期四

[Erlang] Simple sample to parse XML by xmerl

XML:
<Bookstore>
  <Book>
    <ISBN>9781401309657</ISBN>
    <Name>The Last Letcture</Name>
    <Author>Randy Pausch</Author>
  </Book>
</Bookstore>
Code: Result:
[{'ISBN',"9781401309657"},
 {'Name',"The Last Letcture"},
 {'Author',"Randy Pausch"}]

2011年9月28日 星期三

[JavaScript] Repeat Words

 有時候看似簡單的問題, 也有很多不同的解法

如果要你用 JavaScript 寫一個 function 叫 repeat_words

repeat_words('a', 4); // output: 'aaaa'

你會怎麼寫呢?

通常第一個反應一定是用一個迴圈, 像這樣:
但有一種解法更快更簡單, 利用 Array 的 join, 有時候稍微轉個念, 就會衍生出更多方法了

2011年7月11日 星期一

[生活札記] 我身邊有這樣一位朋友

我身邊有這樣一位朋友, 他熱愛設計, 熱愛工作, 熱愛電影, 喜歡愛因斯坦跟若干日本設計師。

開心時會大聲的大笑, 東西做不出來時對著電腦罵髒話。

超愛鍋貼跟水餃、茶。

他,是一位美國人。


2011年6月30日 星期四

[jQuery] use .filter(':visible') to replace $('#id:visible')

Sometimes we will use

$('div:visible') // Does not use querySelectorAll()

to select something is visible, but it dose not utilize querySelectorAll()

so we can use

$('div').filter(':visible') // Uses it

to get high performance

See Also

http://tutorialzine.com/2011/06/15-powerful-jquery-tips-and-tricks-for-developers/

2011年5月26日 星期四

[Nodejs] MD5編碼

var crypto = require('crypto');
console.log(crypto.createHash('md5').update('123').digest("hex"));
// 202cb962ac59075b964b07152d234b70

2011年5月18日 星期三

[Chrome Extension] 過濾網站內容留下圖片 Image Only Sample

今天在試著寫Chrome Extension, 就寫了一個把網站的內容都過濾掉只剩下圖片的小功能

例如在Google Image 搜尋 IU

然後按下ImageOnly Extension, 就會幫你把圖片等比例縮圖然後排好好的














Source Code
https://github.com/hankwang/image-only-chrome-extension

See Also
http://code.google.com/chrome/extensions/index.html

[JavaScript] Loop Performance - Cache Array Length

簡而言之, 就是暫存整個Array的長度, 不要loop時每次都去取Array.length

See Also
http://taitems.github.com/Front-End-Development-Guidelines/

2011年5月1日 星期日

[閱後筆記] 一線之間 A Fine Line



ISBN: 9789868599550

設計不只是讓東西看起來好看而已,設計能創造並提出創新的觀念,增進人類的互動和體驗。

設計必須從文化中解讀,與更深遂的未來連結。

企業需要創業,就像人類需要氧氣。

「感性設計」-- 科技產品必須是被設計成就感性層面與人面連結

設計創新(Design-driven Innovation)

我決心把我的想法帶給這個世界 -- 我感覺到生命的每一個片刻,似乎都是為了這樣的機會而存在。

2011年4月21日 星期四

[Ubuntu] Change Ubuntu distribution source

tw.archive.ubuntu.com is totally slowly

So I change tw.archive.ubuntu.com to us.archive.ubuntu.com

~$ sudo gedit /etc/apt/sources.list

2011年4月14日 星期四

[Apache] mod_proxy Settings

# Reverse Proxy
ProxyRequests Off

<Proxy *>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
        Allow from 1.2.3.0/23
</Proxy>

ProxyPass /chat/ http://mydomain.com:1234/
ProxyHTMLURLMap http://mydomain.com:1234 /chat/
<Location /msg/>
        ProxyPassReverse /
        # ProxyHTMLEnable if mod_proxy_html version >= 3.1 else SetOutputFilter
        # ProxyHTMLEnable On
        SetOutputFilter proxy-html
        ProxyHTMLURLMap / /chat/
        # RequestHeader unset  Accept-Encoding
</Location>

See Also

http://httpd.apache.org/docs/2.0/mod/mod_proxy.html

2011年4月11日 星期一

[Node.js] 第一個程式Hello World

建立檔案HelloWorld.js
var http = require('http');
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(8888, "127.0.0.1");

console.log('Server running at http://127.0.0.1:8888/');


然後執行
~$ node HelloWorld.js

打開瀏覽器http://127.0.0.1:8888/

就可以看到Hello World

See Also
Synopsis
Node - HTTP

[Node.js] Node.js介紹與相關連結

Node.js 是一個Server-side JavaScript 執行環境, 使用非同步事件驅動模型(event-driven model)所建置
這架構得以讓Node.js 在許多的網路應用程式上得到很好的執行效率

編譯與安裝Node.js
Building and Installing Node.js

查看Node.js版本
~$ node -v
v0.4.5

2011年4月1日 星期五

[Ubuntu] lsb_release查詢系統 distributions 版本號

Linux Standard Base (LSB)

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.10
Release:        10.10
Codename:       maverick

http://en.wikipedia.org/wiki/Linux_Standard_Base

2011年3月25日 星期五

[Python] Install pip on Windows

1. 下載並安裝easy_install

Easy Install: http://pypi.python.org/pypi/setuptools#using-setuptools-and-easyinstall

2. 透過easy_install直接安裝pip

$ easy_install pip

3. 如果安裝不順利可以透過下載pip的壓縮檔來安裝

Pip: http://pypi.python.org/pypi/pip

4. 用cmd到pip的資料夾下, 安裝pip

python setup.py install

5. 將Python的路徑加至環境變數的PATH中 (C:\Python2x\Scripts)

成功! 之後就可以用pip install來安裝Package
$ pip install *package*

[Django] Detect Django Version - 取得Django版本

$ pip freeze | grep 'Django'

Django==1.5.1

Or

$ python

Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(1, 3, 0, 'final', 0)

Or

python -c "import django; print(django.get_version())"

[iOS Dev] Detect App Running on Simulator or Actual Device - 判斷App執行在模擬器或是實體

對於開發時要設定不同參數很有幫助
It's helpful to set different config.

#if TARGET_IPHONE_SIMULATOR
  // It's running on the simulator 目前跑在模擬器上
#else
  // Running on Actual Device  在實機上跑
#endif

2011年3月21日 星期一

[iOS Dev] 日期轉換 Date and Timestamp converter

NSDate *now = [NSDate date];
NSTimeInterval interval = [now timeIntervalSince1970];
NSLog(@"%@", now);   // Date
NSLog(@"%f", interval);    // Date to Timesatmp
NSLog(@"%@", [NSDate dateWithTimeIntervalSince1970:interval]); // Timestamp to Date

2011年3月19日 星期六

[影片分享] TEDxTaipei - Janet Hsieh -

"You can only live once, but if you do it right, once is enough." - TEDxTaipei - Janet Hsieh -



JANET HSIEH
// TV show host

Janet Hsieh is a lifestyle expert. She is the host of all nine seasons of "Fun Taiwan" on the Discovery, Travel, & Living channel.

Hsieh enjoys traveling, cooking, dancing, exercising, kickboxing, and photo taking. She describes herself as a professional traveler and a lifelong student. Through her talks, she shares her outlook on lifestyle with others.


謝怡芬
// 旅遊節目主持人

身為連續九季的旅遊節目主持人,Janet是最佳台灣旅遊代言人。
但這只是她其中一項專業而已,活動主持、廣告代言、公益活動、寫作、音樂錄影帶甚至戲劇,都是她活躍的舞台。
喜歡旅行、攝影、跳舞、運動、烹飪、跆拳道,並且通曉五種語言的她,形容自己是一位職業的旅行家和一輩子的學生。
Janet呈現出多變的風貌,傳達出永不設限自己的理念,每個角色都是真實的她,是玩出風格和專業的最佳寫照

[JavaScript] trim() function for IE

if(typeof String.prototype.trim !== 'function') {
   String.prototype.trim = function() {
          return this.replace(/^\s+|\s+$/g, ''); 
   }
}

"We don't well support any IE browsers as that is killing all of the web engineers' time." -- GuruDigger

2011年3月16日 星期三

[Python] 將Run Python的快捷鍵新增至Komodo的Toolbox

在Toolbox新增一個Command

Command填即可
%(python) %F

可以在Key Binding裡設定你要的快捷鍵

[Linux] 使用 pwgen 產生隨機密碼 Use pwgen generate random password

$ sudo apt-get install pwgen

$ pwgen


Result:
ohp1Shei Keiwohr9 nahThe8a Gie6Fiev xie0Un0v phi0GaiL Ie2quufo angie6Qu
sahgoh6U Rubaot4o iphei1Ki tah2uChe oP9uong7 aixieJ0i Yachae6e chipa6In
Reem3ahM ohda2Cei Eib5ohno gieLa0ze uighoo6X Shoom1Ee Goope5sh Viewah1a
Jaito1oo chua9kiD du4eiP3y yohlie4T oc8oPhez Fu1quo0x bei1eaGh thahqu3K
Zeila2ai Aosho2ag fie5aiV8 ooKejiv0 Ieb2kait eeg3Xoh0 quaete7E Shoo5eix
iej2Iehe kee1Ohyu jeuDae9z eeShoh8j Ieth8Hai Queinai8 Zuce3ahb Oqu7ohd6
Thohtei0 aeT0ieth zur6teoZ doh0Oon2 Kooj1Lee uiDoh3jo ohHaiw1r uhet0eiX
Jolei3do to8Thohh Lohmook0 fohH3jei pah1uRae HioTie4e jequ0Iet AhM5ieSo
Voo3uTah Woo4eith Kai1aeth oazu1oT3 Toovah2e Aiz1uing yeiph8Ze Ayoo0po3
Gohqu3zu yohXesh4 pooXai7j zoo6de7E jicoo2oF uo5iez0U ieS7eeYe peFah4ph
eihuoTh7 kooPh4ei Fat6aong re6Axai7 gieNg2ae omaeHee3 Shai3xep yin5aaJu
Zuy3aaho ci3aiH1o aefo5aeW Sei3Phuu cu2wuaZu uu5ReeCo ohNgav5g OhLe9pha
aPei4Iep Xae3Gefu fu8Wixae eox2Duuk Isahcie6 eegai7Mu Reibohj6 noh7AhL4
ea5Thae1 vongoh3W Eey7Uz9h ael4ooBu Lai2iuj2 iaSheap3 Alae8ao3 ee1Aetha
reilaX8O Eenohj2y shee7Or9 uGh4eino Ohyot0mo iShuad9t kei0Eeko iequie8E
nooN2kia ahn5kooH eizaa2Pi Aeth1aof Xalo3ohS Aoquuv2L Aij3pho0 Dah7ooF4
ohwa5ohY daf7JauT Ieko6bih Oox7ieko lain8Eil xe7Af8ei biepooX0 ju8Ied8A
zagol7Qu EeM2etio eeW3ahno Chae5pho Nid0ceiz vie5Goo5 eW3ahbei Eik4thao
Aer9Dini oos8Eeho fi4aBi2R aid2Chei Oob1Eipu iiJie1sh xeiDoo4o Amuu8bah
sheiP9oh AeguGae9 iChee2oh Gah2yahy ZaiPh9Ah Pek0hahj BieM4ahs ooS6chah

2011年3月11日 星期五

[Ubuntu] Install Apache, PHP, MySQL, FTP 安裝指令速記

$ apt-get install apache2
$ apache2 -v
$ a2emod
$ /etc/init.d/apache2 restart

$ apt-get install php5
$ php -v

$ apt-get install mysql-server
$ mysql -u root -p
Enter Password:
mysql> select version();

$ apt-get install php5-mysql
$ vim /var/www/phpinfo.php

$ apt-get install phpmyadmin

$ apt-get install vsftpd

Mount /var/www
$ groupadd webadmin
$ useradd -mG webadmin --shell /bin/bash newUser
$ passwd newUser

$ chgrp -R webadmin /var/www/website
$ chmod 775 /var/www/website
$ chmod -R g+s /var/www/website
$ mount --bind /var/www /home/newUser/www


See Also
[CentOS] vsftpd 安裝與管理
vsftpd 設定啟動

2011年3月9日 星期三

[iOS Dev] Filter FetchedResultsController with NSPredicate

NSPredicate *predicate = [NSPredicate predicateWithFormat:
[NSString stringWithFormat:@"(firstName like '%@')", @"Hank"]];

NSArray *items = [fetchedResultsController.fetchedObjects filteredArrayUsingPredicate:predicate];
 
 for (NSManagedObject *o in items) {
  NSLog(@"%@", o);
 }

[iOS Dev] NSDate, NSString conversion and get TimeZone

2011年3月7日 星期一

[iOS Dev] UITableView indentationLevel 縮排


- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath {
 NSUInteger row = [indexPath row];
 return row;
}

2011年2月24日 星期四

[轉貼] 主動久了 心會碎


如果有一個女生或男生
放下身段主動聯繫妳
一次……
兩次……
三次……

如果有一個女生或男生
放下所謂的尊嚴
有事没事都聯繫妳
一天……
兩天……
三天……

[iOS Dev] UIKeyboardType 所有鍵盤類型截圖

Reference:
iOS Reference Library - UIKeyboardType

typedef enum {
   UIKeyboardTypeDefault,
   UIKeyboardTypeASCIICapable,
   UIKeyboardTypeNumbersAndPunctuation,
   UIKeyboardTypeURL,
   UIKeyboardTypeNumberPad,
   UIKeyboardTypePhonePad,
   UIKeyboardTypeNamePhonePad,
   UIKeyboardTypeEmailAddress,
   UIKeyboardTypeDecimalPad,
   UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable
} UIKeyboardType;

2011年2月23日 星期三

2011年2月22日 星期二

[iOS Dev] 自動出現鍵盤並延遲出現 UIKeyboard auto show and delay

我在弄一個功能, 從 MainViewController 換到SecondViewController後, 自動顯示鍵盤

本來是寫在ViewDidLoad裡, 讓鍵盤自動跑出來

- (void)viewDidLoad {
    [self.textField becomeFirstResponder];
    [super viewDidLoad];
}

但是這樣換頁動畫還沒完, 鍵盤會同時蹦出來, 我想要的是畫面Load完, 鍵盤再從下面蹦出來

所以用了另一種方法如下:

- (void)enableKeyboard {
 [self.textField becomeFirstResponder];
}

- (void)viewDidLoad {
    [self performSelector:@selector(enableKeyboard) withObject:nil afterDelay:.3]; 
    [super viewDidLoad];
}

這樣子就可以在viewDidLoad之後延遲0.3秒再顯示鍵盤, 我的換頁動畫設定0.3秒, 所以延遲也設0.3秒, 這樣動畫顯示完會恰恰好蹦出來

2011年2月14日 星期一

[閱後筆記] 誰搬走了我的乳酪 Who Moved My Cheese?



看完這本書花不了你多少時間, 但可以改變你人生中很多的看法, 別再害怕改變了!

沒有人能幫助你改變, 只有你自己能!








2011年2月11日 星期五

[iOS Dev] 簡單使用 UIActionSheet 和 iPad上的注意事項

簡單的UIActionSheet範例:

在.h加上 UIActionSheetDelegate 的 Protocols 實作 clickedButtonAtIndex 事件

1. 在iPad上不能使用在ViewDidLoad, 會出現Exception錯誤, 所以拉一個Button用IBAction去執行
2. 在iPad上點擊其他空白地方時, 會自動關閉UIActionSheet, buttonIndex會回傳3, 但是如果將cancelButtonTitle設成nil的話, buttonIndex會回傳-1

Source Code

2011年2月9日 星期三

[iOS Dev] 簡單的網路連結測試 Simple Internet Connection test

以下範例為使用 NSURLConnection 測試網路連結

若網路連結失敗會回傳錯誤訊息 kCFURLErrorNotConnectedToInternet , 則使用UIAlertView來回報錯誤 (也可以做成Cancel and Retry讓使用者選擇)




若用 iPhone Simulator 是用Mac的網路連結, 所以測試前, 要先把Mac的網路斷線

[iOS Dev] UITabBarController的AutorotateToInterfaceOrientation

每一個UITabBarController的SubView都要設成return YES, 如果其中一個return NO就會沒有作用

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}

2011年2月8日 星期二

[Objective-C] Classes 筆記 (3) - Property 屬性 (setter & getter)

在Objective-C 2.0之後, 可以透過@property@synthesize來達到setter & getter的效果(或稱accessors & mutators)

[Objective-C] Classes 筆記 (2) - Method, Message Sending 方法與訊息傳遞

Methods
  1. instance method (宣告時在開頭用 - )
  2. class method (宣告時在開頭用 + )
    • 用法像是JAVA的static method
差別在於instance method要先實例化, class method可以直接透過Object使用
-(void) instanceMethod:(NSString *)param;
+(void) classMethod:(NSString *)param;


Message Sending -- 訊息傳遞

[object method:param];

有點類似其他語言的call function or call method, 但是嚴格上來說是不一樣的
object.methodName(params);

Message Sending即使你打錯method name或是method不存在的時候, compiler並不會顯示錯誤, 因為object會自動忽略, 在XCode上, 只會出現警告訊息, 'Object' may not respond to '-method'

[Objective-C] Classes 筆記 (1) - 基本的實作與宣告

@interface - 可以宣告在header file(.h) 或是 implement file(.m)

  • Declare a class
@interface MyClass : NSObject {
}

  • Declare View Controller Class
@interface MyViewController : UIViewController {
}


2011年2月7日 星期一

[轉貼] 王森專欄 > 不賣雞排也可以 - 程式設計師真情懺悔錄(上)(中)(下)

這篇文章真的很棒, 一直找不到原出處, 所以轉貼JAVA週報的版本, 並加以排版。

--

JAVA週報: 程式設計師真情懺悔錄
時間: Sat Mar 30 02:04:54 2002
作者: austen (奧斯汀) 看板: kenduest
標題: 【轉載】程式設計師真情懺悔錄(上)(中)(下)
-來自 JAVA週報
------------------------------------------------

前言

不久前,蔡學鏞先生發表了兩篇分別叫做 "程式與香雞排"、"再論香雞排"的文章,受到的迴響之大,據說連作者本人都接到該文的轉寄。

足以見得該文的內容道出了台灣程式設計師心裡最深處的想法。

所以,本文想針對台灣程式設計師來做討論,看看身為一個程式設計師,究竟犯了什麼過錯,導致大家寧願賣雞排也不願再繼續寫程式。

璩美鳳小姐為自己驚動台灣社會的行為寫了真情懺悔錄,我們也該真誠地檢討一下自己。


2011年2月6日 星期日

[閱後筆記] 衝了!:熱血玩出大生意 Crush It !:why now is the time to cash in on your passion

ISBN: 9789862165171
exuberance

衝了!:熱血玩出大生意Crush It !:why now is the time to cash in on your passion

exuberance

做快樂的事才有競爭力

"share" is important

無私分享

口碑,典範傳承

關愛家人 拼命努力 擁抱熱情

打造個人品牌

2011年2月5日 星期六

[Music] IU - Good Day

最近瘋狂愛上她。IU

---

李知恩(Yi Ji Eun,諺文:이지은,1993年5月16日-),韓國歌手,出生於京畿道 廣州市。音樂類型以藍調音樂, R&B,POP BALLDE ,SOUL,SOFT ROCK 為主,歌唱技巧講究,音樂風格抒情。

IU - 維基百科




【人為什麼活著?】大眾銀行 - 夢騎士




人,為什麼活著?

為了思念

為了活下去

為了活更長

還是為了離開?

===

2011年1月30日 星期日

[影片分享] 祝我生日快樂 (Hank Wang covered)



謝謝大家給我的祝福
我的生日願望就是希望大家都能很快樂
不管是大學時一起努力的同學、當兵一起同甘苦的弟兄、平日玩在一起的朋友、一起工作的­同事
雖然大家都為了生活各忙各的很少見面
但是至少我們都曾經為同一個目標努力過
希望未來我們都能過的更好、更快樂
別忘記自己的初衷、努力實現自己的夢想

2011年1月27日 星期四

2011年1月26日 星期三

[Xcode] 常用快捷鍵


Command + Alt + ↑   在.h及.m間切換
Command + Ctrl + Arrow   在.h及.m間切換 (XCode 4)

Command + Shift + E   編輯器視窗最大化

Command + ]   增加縮排

Command + [   減少縮排

ESC   展開所有可能的自動完成列表

Command + Ctrl + ← / →   展開或收起整個function
Command + Alt + ← / →   展開或收起整個function (Xcode 4)

Command + Shift + R   打開Console

Command + Ctrl + Alt + R   清除Console Log

2011年1月25日 星期二

[Python] PythonBee - 冠軍賽- 用嘴巴講出一套好程式



(不負責任翻譯XD)


This is from the final round where our last two contestants competed for a Kindle.
這影片是最後決戰的兩位參賽者

Contestants were not allowed to see their code or have it read back to them in any way. They had to specifically dictate all spelling and punctuation (and tabbing).
參賽者不允許看他們的程式碼或是反悔已經唸過的程式碼, 他們必須唸出所有的標點符號跟空白和Tab

The challenge for the last round was to write a function that would return true if and only if the string passed to it hadmatching sets of parentheses.
最後一回合的比賽, 參賽者必須寫一個程式, 檢查匹配括號的字串, 如果是則return True

[Objective-C] 將NSDictionary新增至NSMutableArray

建立一個words的陣列, 然後建立一個dictionary存入words

Source Code
// 宣告array
NSMutableArray *words = [NSMutableArray array];

// 宣告dictionary
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
   @"Title 01", @"title",
   @"Explain 01", @"explain",
   nil];

// 將dict新增至array裡
[words addObject:dict];

// print出dict中所有資料
for (id key in dict) NSLog(@"key: %@  value: %@", key, [dict objectForKey:key]);

// print出Array中所有資料
for (NSInteger i=0; i < [words count]; i++) NSLog(@"%@", [words objectAtIndex:i]);

// print Array有幾筆資料
NSLog(@"Words count : %i", [words count]);
Result








See Also

NSDictionary Class Reference
NSMutableArray Class Reference

2011年1月21日 星期五

[MySQL] 讓Windows下的MySQL允許使用大寫資料表(Table)名稱

Linux是對大小寫敏感的系統, 也就是同個英文字, 大小寫是不相同的

但是Windows則是不敏感的系統, 會把WINDOWS跟WinDows認成同一個字。

從Linux匯出的資料庫, 若匯入Windows會被自動轉成小寫

解決方法如下

修改
C:\Program Files\MySQL\MySQL Server 5.1\my.ini

加入以下這行

lower_case_table_names = 2

然後重新啟動MySQL Server

接著重新匯入一次資料庫即可

[iPhone] 在iPhone上取得快照 ScreenShot的方法

Image From apple.com

原來iPhone就有內建的ScreenShot功能

1. 先按住圓圓的那顆鍵


2. 按一下待機鍵(右上角那個)

就會把目前畫面存到相簿裡, 非常的方便

2011年1月20日 星期四

[iOS Dev] UITableView換頁時隱藏UITabBar

在換頁的didSelectRowAtIndexPath method中加入:

targetViewController.hidesBottomBarWhenPushed = YES;


Sample
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
 UIViewController *targetViewController = [[menuList objectAtIndex: indexPath.row] objectForKey:kViewControllerKey];
 targetViewController.hidesBottomBarWhenPushed = YES;
 [self.navigationController pushViewController:targetViewController animated:YES];
 [targetViewController release];
}


See Also
iLessons iLearned: How to Hide UITabBar

2011年1月17日 星期一

[iOS Dev] Clear all application on iPhone Simulator

iPhone Simulator Application Path
/Users/UserName/Library/Application Support/iPhone Simulator/4.2/Applications

rm -fdr ${HOME}/Library/Application\ Support/iPhone\ Simulator

[Objective-C] NSTimer snippet

[NSTimer
    scheduledTimerWithTimeInterval:2
    target:self
    selector:@selector(doSomething)
    userInfo:nil
    repeats:NO];

NSTimer Class Reference

[iOS Dev] UIAlertView on iPhone App


UIAlertView *alert = [[UIAlertView alloc]
        initWithTitle:@"Title"
        message:@"Message"
        delegate:nil cancelButtonTitle:@"Cancel"
        otherButtonTitles:nil];
 [alert show];
 [alert release];

2011年1月15日 星期六

[Python] 用BeautifulSoup解析HTML範例 - 取出統一發票號碼

[Last Updated: 2013-03-11]

BeautifulSoup用來解析HTML真的很好用, 直接透過pip安裝
$ pip install BeautifulSoup

以下的小範例, 示範如何把 財政部稅務入口網-統一發票中獎號碼-101年11、12月 上的統一發票號碼截取出來



觀察網頁的HTML

會發現在每個號碼都有個class t18red標籤


<span class="t18red"> 55138690</font>

搜尋後剛好是7個 (1個特別奬, 1個特獎, 3個頭獎, 2個增開獎), 所以我們就可以針對這個HTML標籤去做解析

程式碼
See Also
財政部稅務入口網 - 統一發票中獎號碼單

2011年1月13日 星期四

[Python] 計算自己已經活了幾天 calculate your age in days

看自己一年半前寫了一篇Java的文章 : 
[Java] 計算自己已經活了幾天 calculate your age in days

最近都在寫Python, 就想說用Python也來寫一個, 還蠻簡單的。

Python版

Result

你已經活了 9479 天

Java版

跟Java版比起來真的是簡潔太多了。

[有感而發] 很多人事物, 失去了, 就無法珍惜了

「失去了才懂得珍惜」

有很多人、事、物,失去了,就無法再珍惜了。

如果你一直很有錢, 哪天你沒錢了, 你才會想到你是如此的揮霍。
如果有個人對你很好, 哪天他對你不好了, 你才會懷念他對你的好
如果你的電腦一直都正常運作, 哪天他出問題了, 你才開始想著要備份充滿回憶的照片跟重要的工作文件

哪天你家人不在世上時, 你想盡孝道也盡不了了。(子欲養而親不待)
(今天不努力工作,明日努力找工作)

人可能很容易見到, 事很容易重新遇到, 物很容易得到。

但是你永遠不知道你什麼時候會失去什麼。

"改天我們去..."
"有機會我一定要..."

每個人一天都只有24小時, 你有多少的改天跟有機會呢?

珍惜當下吧

想吃就去吃、想做就去做

熱愛生命, 忠於自我, 活出自己的精采人生

2011年1月11日 星期二

[iOS Dev] iOS Development and Objective-C 相關資源與書籍

史丹佛大學完整課程


2011 Stanford University - iPad and iPhone Application Development (HD) by Paul Hegarty
(iTunes U - Video和講義免費下載)




iOS App Resource


Apple官方Sample Code
iOS Reference Library - Cocoa Fundamentals Guide
iPhone Tutorials | Ray Wenderlich




Objective-C


【2011天下經濟論壇】陳聖德:商機將在蓬勃發展的中小企業

了解市場
了解中國政策變化
大陸人才難尋難留, 灰的地方過大
小心選擇夥伴品牌,
中國是一個相信品牌的地方
品牌能夠長線經營會被大家接受
invest in r &d  (投資在開發與研究)


[Python] 時間格式轉換(strtime & strftime)

strftime 將 datetime object 轉換成String
strptime 將 datetime string 轉換成object

>>> datetime.now()
datetime.datetime(2011, 1, 11, 16, 19, 5, 211588)

>>> datetime.now().isoformat()
'2011-01-11T16:20:06.161541'

>>> datetime.strftime(datetime.now(), '%Y-%m-%d')
'2011-01-11'

>>> datetime.strptime(datetime.now().isoformat(), '%Y-%m-%dT%H:%M:%S.%f')
datetime.datetime(2011, 1, 11, 16, 24, 18, 411861)


See Also

http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior

2011年1月9日 星期日

[Blogger] 讓非本站的外部連結, 自動開新視窗

Blogger如果要讓外部連結開新視窗, 都要手動自己加上target="_blank", 非常麻煩

所以寫了一個小程式判斷如果連結不是http://whhnote.blogspot.com開頭 就會另開視窗

展開小裝置範本後, 搜尋</body>

在</body>上面加上如下Code:

<script type="text/javascript">
jQuery("a").each(function(index) {
    var r = new RegExp("^http://whhnote");
    if (!r.test(jQuery(this).attr('href'))) {
        jQuery(this).attr('target', '_blank');
    }
});
</script>

Code中間的http://whhnote改成你自己網站的網址


我有用到jQuery, 通常Blogger應該都會讀取, 如果發現沒辦法用, 將以下code加在上面的Code的上面

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>

[Blogger] 在文章上方顯示 麵包削 Breadcrumb

效果如圖所示


到後台-> Design(設計) -> (Edit) 編輯HTML


打勾 Expand Widget Templates (展開小裝置面版)


按Ctrl + F 搜尋 ]]></b:skin>

在該code正上方貼上CSS:

.breadcrumbs{ 
  padding:5px 5px 5px 0; 
  margin:0;font-size:95%; 
  line-height:1.4em; 
  border-bottom:4px double #cadaef; 
}

接著搜尋 <div class='post hentry

在code正下方貼上:

<!-- breadcrumb -->
<b:if cond='data:blog.homepageUrl == data:blog.url'> 
<b:else/> 
<b:if cond='data:blog.pageType == "item"'> 
<div class='breadcrumbs'> 
Browse » <a expr:href='data:blog.homepageUrl'>Home</a> » 
<b:if cond='data:post.labels'><b:loop values='data:post.labels' var='label'> 
<a expr:href='data:label.url' rel='tag'><data:label.name/></a> 
<b:if cond='data:label.isLast != "true"'> , </b:if> 
</b:loop> 
</b:if> » <data:post.title/>
</div> 
</b:if> 
</b:if>
<!-- breadcrumb -->

2011年1月6日 星期四

[Python] convert Unicode to Big5

有時候抓出來的中文unicode字串像這樣 \u55ae\u8eca

結果找一堆資料, 試了unicode, encode, decode都試不出來

結果昨晚就到Stack Overflow去問問看, 果然有一堆好心人幫忙回答

沒想到只要unicode-escape就解決了

str = '\u55ae\u8eca' # It mean '單車'
print str.decode('unicode-escape')

See Also

How to convert utf-8 string to big5 with python? - Stack Overflow

2011年1月5日 星期三

[Python] 安裝Pyflakes Python語法檢查工具及設定Komodo Toolbox

pyflakes 是用來檢查Python程式語法用的, 可以提示未命名的變數或是沒用到(unused)的變數


passive checker of Python programs


Pyflakes is program to analyze Python programs and detect various errors. It works by parsing the source file, not importing it, so it is safe to use on modules with side effects. It's also much faster.


檢查結果如圖所示





[Cherokee] 解決 favicon.icon 500 Error

到Admin介面的vServers

到Rule Management新增一個Rule

Regular Expression: ^/favicon.ico$
Handler: Static Content

然後Save即可


2011年1月4日 星期二

[Python] Convert dateime string by Twitter 轉換從 Twitter API 抓出來的時間

轉換從 Twitter API 抓出來的時間

Twitter API抓出來的時間 Created_at 會像這樣

Tue Jan 04 05:27:30 +0000 2011

所以要轉換成自己要的格式才能存進資料庫

from datetime import datetime, timedelta

created_at = 'Tue Jan 04 05:27:30 +0000 2011'
utc_offset = '28800' # +0800   60 * 60 * 8

created_at = datetime.strptime(created_at, '%a %b %d %H:%M:%S +0000 %Y')
local_time = created_at + timedelta(seconds = int(utc_offset))

print created_at
print local_time

Result
2011-01-04 05:27:30
2011-01-04 13:27:30

抓出來的時區是+0000, 所以要再加上UTC_Offset, 才會是本地時間


See Also

Python Documentation - 8.1. datetime — Basic date and time types
在 app engine 使用 pytz
Twitter API Documentation

2011年1月3日 星期一

[Django] Deploy Django on Cherokee Web Server by uWSGI

Cherokee Web Server

The Fastest free Web Server out there!
Cherokee is a very fast, flexible and easy to configure Web Server. It supports the widespread technologies nowadays: FastCGI, SCGI, PHP, CGI, uWSGI, SSI, TLS and SSL encrypted connections, Virtual hosts, Authentication, on the fly encoding, Load Balancing, Apache compatible log files, Data Base Balancing, Reverse HTTP Proxy, Traffic Shaper, Video Streaming and much more.

Cherokee-Admin, a user friendly interface, provides a no-hassle configuration of the server. Check out the benchmarks and documentation to learn more, join our active Community and give it a try to squeeze your hardware to the fullest!

Related Posts Plugin for WordPress, Blogger...