!410

七転八倒

Octopressのrake Previewやrake Generateが終わらない

bundle updateの罠

新しいものはいいものだ、とばかりにかけましたら、rake generateなどが永遠を約束する事態に。
ぐぐったところdirectory_watcherが1.5.1だとよろしくないようです。

参考:Octopressでpreviewしていたらregeneration: 1 files changedが終わらない場合の対処方法

というわけで、実際に入っているものを確かめます。

$ bundle exec gem list

*** LOCAL GEMS ***

bundler (1.3.5)
chunky_png (1.2.8)
classifier (1.3.3)
compass (0.12.2)
directory_watcher (1.5.1)
fast-stemmer (1.0.2)
fssm (0.2.10)
haml (3.1.8)
jekyll (0.12.1)
kramdown (0.14.2)
liquid (2.3.0)
maruku (0.6.1)  
posix-spawn (0.3.6)
pygments.rb (0.3.7)
rack (1.5.2)
rack-protection (1.5.0)
rake (0.9.6)
rb-fsevent (0.9.3)
rdiscount (1.6.8)
RedCloth (4.2.9)
rubypants (0.2.0)
sass (3.2.8)
sass-globbing (1.0.0)
sinatra (1.4.2)
stringex (1.4.0)
syntax (1.0.0)
tilt (1.4.0)
yajl-ruby (1.1.0)

よかったこれだ。というわけで記事の通りにGemfileにバージョン指定を追加。
$ vi Gemfileで書けば十分でしょう。gem "directory_watcher", "~> 1.4.1"を書き加えてwq、updateし直し。

$ bundle update
Fetching gem metadata from http://rubygems.org/.......
Fetching gem metadata from http://rubygems.org/..
Resolving dependencies...
Using rake (0.9.6) 
Using RedCloth (4.2.9) 
Using chunky_png (1.2.8) 
Using fast-stemmer (1.0.2) 
Using classifier (1.3.3) 
Using fssm (0.2.10) 
Using sass (3.2.8) 
Using compass (0.12.2) 
Using directory_watcher (1.4.1) 
Using haml (3.1.8) 
Using kramdown (0.14.2) 
Using liquid (2.3.0) 
Using syntax (1.0.0) 
Using maruku (0.6.1) 
Using posix-spawn (0.3.6) 
Using yajl-ruby (1.1.0) 
Using pygments.rb (0.3.7) 
Using jekyll (0.12.1) 
Using rack (1.5.2) 
Using rack-protection (1.5.0) 
Using rb-fsevent (0.9.3) 
Using rdiscount (1.6.8) 
Using rubypants (0.2.0) 
Using sass-globbing (1.0.0) 
Using tilt (1.4.0) 
Using sinatra (1.4.2) 
Using stringex (1.4.0) 
Using bundler (1.3.5) 
Your bundle is updated!

[iOS]UIWebviewへJSONでデータを取ってくる計画

Twitterなどの脈絡がなくても取れるものならこういう感じ。

NSURL *httpDataUrl2 = [NSURL URLWithString:apiUrlJson];
NSURLRequest *request = [NSURLRequest requestWithURL:httpDataUrl2];
NSData *json_data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:json_data options:NSJSONReadingAllowFragments error:nil];

しかし今回はJSONで呼び出す側がセッションを使っているため、単純にURLで指定して取る方式は使えない。
Webviewを動かしJavascriptを介して取ってくる。

[webView stringByEvaluatingJavaScriptFromString:@"alert('call from native');"];

ほんとにこれでいけるのか。
だめだったら素直にIDなんかを保持しといて、引数に渡す方式のを実装しとかないといけない。
その場合はメモリにためればいいのでそんなに難しくないはず。

05/16追記

単純に呼び出す箇所が悪いだけだった。

- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

ここで確かめていたので取れない。遷移直前に呼ばれるためrequestにセッションがちゃんと入ってなかったりする。

- (void) webViewDidFinishLoad:(UIWebView *)webView

これで問題無し。
Javascriptで実装する場合、Viewに依存することになってよくない。

参考

Test Post

Hello Octopress

このあたりを参考に作ってみました。作ったというか設定しただけですが。

$ rake new_post["test post"]などとページを作って、編集すればブログエントリがひとつできあがる。
rake previewでサーバを上げて、変更などを捕捉してくれる。
だけどどこにもないような。と思ったら、_config.ymlでエラー発生していた。
コロンのあとには半角スペースがないとだめ。
ちゃんとやれば1文字変えただけでも反映される。

最初のpublish

$ rake setup_github_pages
でリモートリポジトリを設定して、
$ rake generate
$ rake deploy
これでよしなにやってくれる……はずなのだけれど、

Warning: Permanently added 'github.com,204.232.175.90' (RSA) to the list of known hosts.  
Permission denied (publickey).  
fatal: Could not read from remote repository.  

鍵の設定が必要になってしまった。むむむ。
vi ~/.ssh/configIdentityFile ~/.ssh/id_rsaなど入れてなんとか突破。

Markdown

Markdown日本語訳