タグ

ブックマーク / www.niw.at (6)

  • niw.at — だいぶ実装がアレな SkypeLogger の解説

    Mac OS X のアプリケーションを作る方法が Objective-C だけとは、限りません。 今回はそういった意味ではだいぶ実装がアレな拙作 SkypeLogger の実装を見ながら、こんな作り方もあるよねということを紹介したいと思います。 SkypeLogger の紹介 まず、SkypeLogger ですが、何をするものかというと、Skype のチャットログを人間が読める形で普通のファイルに書きだしてくれるツールです。Skype.app 自体にログを残す機能はあるのですが、人間が読めないし、機械でも読めない独自の形式1で書き出されるので不便なのです。 そこで、Skype API を使ってチャットの発言の送信、受信イベントをもとにチャットの発言を逐一ファイルに書き込んでいくだけの簡単なお仕事をしていただく、というツールです。 しかしこの Skype API が曲者で、API とは名ばか

    kabiy
    kabiy 2012/03/14
  • niw.at — +[NSURLConnection sendAsynchronousRequest:queue:completionHandler:] が何をしているか調べてみた

    +[NSURLConnection sendAsynchronousRequest:queue:completionHandler:] が何をしているか調べてみた TL; DR: +[NSURLConnection sendAsynchronousRequest:queue:completionHandler:] は dispatch_async で +[NSURLConnection sendSynchronousRequest:returningResponse:error:] を呼んでいる。 NSURLConnection を非同期に使いたいなんて要望はもうそれこそかなり昔からあって、数多の車輪の再発明とブログと FAQ が生まれたわけですが、一昨年の Grand Central Dispatch1、GCD の登場でついに抜的な解決が見えるかのように見えてわひょーいってなった割には

    kabiy
    kabiy 2012/03/05
    / +[NSURLConnection sendAsynchronousRequest:queue:completionHandler:] が何をしているか調べてみた
  • niw.at — Mac OS Xで動的ライブラリのバージョン違いの警告が出た

    たまに、nokogiri.gemを使っているときに、 WARNING: Nokogiri was built against LibXML version 2.7.8, but has dynamically loaded 2.7.3 と言われて凹むことがあります、というか、先日ありました。原因は多分Mac OS X 10.7.3にしたことなんですがこういう時に何をすればいいのかという話です。 nokogiri.gemはlibxml2を使ったRubyのXML/HTMLパーサーなんですが、ビルド時に利用したlibxml2のバージョンを覚えていて、実行時に違うバージョンを使うと文句を垂れます。というのも特定のlibxml2はバグがアレすぎてnokogiri.gemがまともに動かないのでそれを排除する目的でそういうことをしているんだと思います。 さて、こうなった時には誰が違うバージョンのlibx

    kabiy
    kabiy 2012/02/09
    http://t.co/C5eO0Xbl - Mac OS Xでライブラリのバージョン違いの警告が出た”
  • niw.at — GmailのIMAP設定画面が難解すぎて生きるのが辛い

    Gmail使ってますよね。もうメール = Gmailなのではないでしょうか。 メールそれ自体はとても古い技術に基づいており、これだけ分散してまともに動いている仕組みは他にDNSくらいなんじゃないかなと思いますが、どちらも問題を抱えていて、特にメールはスパムやらとの戦いの場となっていて多分当面この状況は変わらないんじゃないかなと思います。 しかし、メール = Gmailを意味する世界になっているのだとしたら、もうあまり深いこと考えなくてもそういうもんだと思って使っていけるんじゃないかなあと思いつつ、いい加減代替手段が出てきてもいいよねと思っている次第です。 さて、そんなGmailですが、メールの仕組みの上に乗っかっているサービスなので、とんでもない複雑な設定画面がくっついています。いや、結果的にそうなってしまいました。 そして、設定画面の中で最難関なのがIMAPの挙動の設定ではないでしょうか

    kabiy
    kabiy 2011/12/09
    http://t.co/C5eO0Xbl - GmailのIMAP設定画面が難解すぎて生きるのが辛い”
  • niw.at — デーモンプロセスをゆるふわ監視するときに便利な$0

    たとえばデーモンがあったとします。こんな感じで。 $ ruby -rwebrick -e 'include WEBrick; Daemon.start;\ HTTPServer.new(:Port => 3000).tap{|s|\ s.mount "/", HTTPServlet::ProcHandler.new(Proc.new{|req,res|\ res.body = "hi"});\ trap(:TERM){s.shutdown}\ }.start' これで3000番でHTTPサーバが起動しました。ちょっとリクエストしてみましょう。 $ curl 'http://127.0.0.1:3000/' hi 期待通り動きましたね。ではちょっとこのデーモンが今どんな状態なのかを監視できるようにしましょう… ってなると多分、ログをどっかにとかになりますが、もっと簡単になんとなく知る方法とし

    kabiy
    kabiy 2011/12/07
    http://t.co/C5eO0Xbl - デーモンプロセスをゆるふわ監視するときに便利な$0”
  • blog.niw.at

    Yoshimasa Niwa TwitterGitHub

  • 1