タグ

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

  • niw.at — iOS で文字数制限つきのテキストフィールドをちゃんと作るのは難しいという話

    「そんなん簡単やろ」と思いますよね。 たとえば、「UITextField 文字数制限」でググれば山のようにブログ記事やらコードが出てくるし、Stack Overflow に載ってるコードのコピペ一発で解決しそうに思えませんか? 実は文字数制限をつけたテキストフィールドはそんなに簡単な話ではないのです。 shouldChangeCharactersInRange:replacementString: は使えない子 今回はこれに尽きます。 UITextField や UITextView のデリゲートで呼ばれる textField:shouldChangeCharactersInRange:replacementString: やtextView:shouldChangeCharactersInRange:replacementString: は使ってはいけません。 より正確に言うと、使うとき

    sora_h
    sora_h 2014/07/25
    つらい
  • niw.at — アメリカの健康保険事情

    最近ちょっとまじめに調べないとダメな状況になって、一晩かけてちゃんと勉強する機会があった健康保険について、その成果をまとめておきます。ちなみに僕は保険のプロじゃないのでなんかマジな話の場合はちゃんとその筋の方に相談することをおすすめします。あと今回は Medical Insurance つまり医療保険についてのみのお話で、歯医者さんなどについてはまた別の機会に1。 基礎知識 アメリカには国民皆保険制度がありません。 日では殆どの場合、事業所が保険者となって知らない間に給与や賞与の額から決まる標準報酬月額になんか知らないけど厳しい医療保険の財政状況とかいって毎年あがる保険料率をかけた保険料額を社会保険として知らない間に給与から引かれて加入していることになっていると思います。殆どの場合は。 そういう仕組がアメリカにはありません。つまり、自由と自己責任の国アメリカでは健康保険に入るのも、入らな

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

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

  • 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 の登場でついに抜的な解決が見えるかのように見えてわひょーいってなった割には

    sora_h
    sora_h 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

  • niw.at — GmailのIMAP設定画面が難解すぎて生きるのが辛い

    Gmail使ってますよね。もうメール = Gmailなのではないでしょうか。 メールそれ自体はとても古い技術に基づいており、これだけ分散してまともに動いている仕組みは他にDNSくらいなんじゃないかなと思いますが、どちらも問題を抱えていて、特にメールはスパムやらとの戦いの場となっていて多分当面この状況は変わらないんじゃないかなと思います。 しかし、メール = Gmailを意味する世界になっているのだとしたら、もうあまり深いこと考えなくてもそういうもんだと思って使っていけるんじゃないかなあと思いつつ、いい加減代替手段が出てきてもいいよねと思っている次第です。 さて、そんな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 期待通り動きましたね。ではちょっとこのデーモンが今どんな状態なのかを監視できるようにしましょう… ってなると多分、ログをどっかにとかになりますが、もっと簡単になんとなく知る方法とし

  • blog.niw.at

    Yoshimasa Niwa TwitterGitHub

  • 1