2013-05-12
ARC対応のReachabilityでネットワーク状況を確認する
ここからARC対応バージョンをDLして、プロジェクトに加える。
次にBuild PhasesのLink Binary With LibrariesでSystemConfiguration.frameworkを追加。
あとはヘッダを読み込んだファイルで以下を記述したら完了。
コード引用元
Reachability *reachablity = [Reachability reachabilityForInternetConnection]; NetworkStatus status = [reachablity currentReachabilityStatus]; switch (status) { case NotReachable: NSLog(@"インターネット接続出来ません"); break; case ReachableViaWWAN: NSLog(@"3G接続中"); break; case ReachableViaWiFi: NSLog(@"WiFi接続中"); break; default: NSLog(@"??[%d]", status); break; }
追記
#define isOffline \ ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] == NotReachable ? YES : NO )
2013-05-07
XPathQueryでHTML要素取得
iOS, Objective-C | |
XPathQuery
XMLのパーサを利用すると、不完全なHTMLのパースに失敗するので、
ここにあるlibxml2のラッパーを利用して、
XPathで要素を取得。
導入の仕方
ここ
一部変更したのはHeader Search Pathsに追加するのを/usr/include/libxml2にすること。
実装
PerformHTMLXPathQueryを使う。
NSURL *url = [NSURL URLWithString:@"http://google.com"];
NSURLRequest *request = [NSMutableURLRequest requestWithURL: url];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [
NSURLConnection sendSynchronousRequest: request
returningResponse: &response
error: &error
];
if(error) {
LOG(@"%@", error);
}
NSArray *imgs = PerformHTMLXPathQuery(data, @"//img");
for (NSDictionary *dic in imgs) {
for (NSDictionary *attr in [dic objectForKey:@"nodeAttributeArray"] ) {
NSString *attr_name = [attr objectForKey:@"attributeName"];
NSString *attr_value = [attr objectForKey:@"nodeContent"];
}
}
2013-04-23
shibuya.lisp Meet Up #4
shibuya.lisp覚えてる範囲まとめ
- 今回はcommon lispが中心
- アカデミックな方が多かった?
- 素数夜曲
- import-from律儀に書くの面倒くさいから実行時に実際に使ってる関数だけimport-fromするようにする。
- 完璧にしようとするとやることはたくさんある
- SPDY対応
- パッケージ管理はquicklisp
- swankは仕様が文書で無い。pidとかいろいろ送ってる変なプロトコルでemacsに特化してると思って良い。
- clojureはswank使わずにnrepl?
- llvm誰か早よ
- 普及のためにはOAuth2モジュールとかそういうモジュールも作らないと
- 衝突したときにデバッガに遷移するのイラっとする->emacsならpopwinでミニバッファに出すと随分マシ。
- GPU使ってもバスで詰まるから、まだ焦ってGPU使う時期でもない
- 毎月開催しようと思ったらラフな感じじゃないと続かない
- 土日にハッカソンする?
- ust
Perl入学式のサポーター?してきました
@__papix__ さんが各地で開催しているPerl入学式in東京に参加してきました。
第1回はubuntuとplenvの導入がメインでした。計6回で、twitteっぽいwebアプリを作るのが目標だそうです。
参加者はサポーター入れて30人前後かな?
基本のキから解説するので、
ちょっと本を読めば、ちょっとググれば解ること、、、なんだけど腰があがらない、きっかけがない、って人には良いんじゃないかなぁ、と思います。
(でも皆のハマりどころは、pathが設定できてなかったり、シェルの使い方だったり、rootでplenv入れたり、とperl関係ない周辺知識だったので、一人でやるにはしんどいかもですね。今回解決できてよかったですね!)
今回参加できなかった人用に補講があるかもなので、要チェック!
2013-03-31
git-catch-up 書いた
何これ?
ローカルブランチをfork元(upstream)の更新に追いつかせるスクリプトです。
pull request用にローカルでブランチ切って作業してる間に、fork元が更新しちゃったYOって時用のショートカットスクリプトです。
「pull requestするまで」というエントリで書いた通りの、一連の手順を逐次実行するだけです。
使い方
githubから取得してください。
次に、git-coreディレクトリに配置します。(centOSなら/usr/libexec/git-core/)
git catch-up で実行されます。リモートリポジトリ名のデフォルトはupstreamになりますが、引数で変更できます。
git catch-up origin
コマンドは以下を実行するだけ
今のブランチがprotoだと仮定。
git stash
git checkout master
git pull upstream master
git checkout proto
git rebase master proto
git stash pop
感想
お手製感たっぷりだけど、自分としてはすごい楽になった。