andante

2015-03

0228

昨晩はJSONのマッパーを書いていましたとりあえず必要なものは作れたのでよかったというか僕の気分としてはかなり便利に使えるものになったような気がするのだけどいろいろのケースでどう振る舞うかは知らないとりあえず今回の案件では十分だろう

結局APIの応答のスキーマをCoreDataとは分離した上でそのいくつかをCoreDataに変換できるようヘルパを各ことにしたAPIがRESTful?に書かれているからスキーマの大部分はCoreDataにも現れるモデルで書けるこのことは圧倒的二度手間感を生むが同時に変換を容易にする完全な結合はSwift1.1時点ではコンパイラの不具合のため不可能で1.2では修正されていると聞くけれど別にあえてそうすることもないのではという気もするなにが返ってくるかわからないAPIをCoreDataに近づけすぎるのはたぶん不正解でそれを吸収するためにいろいろ気にしなきゃいけないのならそのためにクラスが挟まるくらいどうってことないのかもしれない

今夜はそれに伴う書き替えほぼ終わっているけれどをしますこれでJSONエラーのハンドリングがいい感じにできるようになったので今度はCoreDataのエラーハンドリングをちゃんとしようかな昔書いたヘルパをそのまま使っていておおむねよく動いているのだけどエラーを握りつぶす悪い癖があるというかエラーを返せるようにできていないクラッシュはしないけれど


そういえば美容院の予約を入れました記録によれば九ヶ月ぶりです明日の夕方どきどき

0301

昨晩はJSONMapperによる書き替えを終わらせてあといくらかリファクタリングをしましたでももうちょっとやりたいよねもっと共通化できるはずそうするメリットがあるかはともかく
どうでもいいけど成功失敗コールバックをcompletionに統合したのは失敗だった気がするよな失敗はすっごいシンプルで定型的だから失敗だけ隔離することにはメリットがあるまあこれを直すこと自体はそう難しくないし暇になってからやろう

あとObjectiveCランタイムを触ってNSUserDefaultsへのアクセサを動的生成するのもいろいろ試したのだけどやっぱりC構造体の一般的扱いが無理そうですこれはobjcの時から無理だったけどさらに無理になってる感じがある構造体は値渡しなのでキャストでどうこうできるわけではないし可変型をどうこうするのはちゃんと調べてないけどSwiftとobjcの互換性の問題でダメそう結局一般に扱うのは諦めるほかなさそうですうーんまあ僕はこれそんなに使いたいと思って作ってるわけじゃないのだけどもとはいえ別に誰に頼まれたわけでもなく単に練習問題として解いている


今日はTwitterクライアント作る計画のためにいろいろ調べごとしていましたOAuthのためのいろいろは昔自分で書いたものがあったのでそれを参考にすればよさそうAFNetworkingにどのくらいそのまま載せられるかはまだわかっていないけれどトークン取ってしまえばRequestSerializerでどうにでもなりそうそれより問題はUserStreamへの対応でこれはSessionManagerを継承していろいろオーヴァライドする必要がありそうそれより標準で対応していない理由が気になる素朴なアプローチではうまくゆかないのだろうか

夕方は美容室で髪を切ってもらいました雑談がしんどかった趣味とかありますかって言われていや〜本を読むのとかまあまあ好きですけどなんかこういうのって趣味感ないというかそのために外出したりコスト払うわけでもないから話題にもならないし使えないですよね〜みたいな話をした途中で思い出したけど僕は数学を趣味にしようと思っていたのだしあと最近どう見てもプログラミングが趣味になりつつあるなと思ったまあでもいずれにしてもこれ話題として不適切なのよね共感のしようがないから


なんか頭がぼうとしているので早めに寝たほうがいいかもしれませんやれやれこの週末は多少具合がよかったと思ったらこれか

0302

昨晩はOAuthのいろいろを移植しようとしていましたが結局あまり進みませんでしたまあゆっくりやればよい


お昼から仕事今日は比較的UI寄りの作業を進めましたテーブルをがりがり作ったりとか入力させたりとかキーボードを避ける機構は昔考えたのを移植すればいいかしら画面回転とかしないしあとUnwind Segueがなかなか便利だったけれどiOS8.0で壊れてるらしいから確認しなきゃいまのところ動いているのがなおさら不気味だ


さてちょっとだけ具合が悪く具体的には親不知が腫れていますうーむ

0303

昨晩はAFNetworkingにOAuthをしゃべらせるところまで書きましたトークン取得ハンドシェイクとかは書いてないけどまあそんなの最後にやればよいのです
今夜はストリームを受信するところができたらいいと思うけど具合が悪いから早く寝るべきのような気もするJSONのデシリアライズはSBJsonってのを使うのが適切らしいストリームデータに対応しているのだがこれはこないだ書いたJSONMapperと相性がどうかしらね


お昼から仕事ウィザード形式に連なる画面遷移状態の受け渡しが本当にだるくてオブジェクト一つに纏めたけどそれでもUUIDの受け渡しが八回くらい発生する八回代入を書いているとはいえコードがアレなだけで処理としてはグローバルに置くよりはマシだと思う
ちょうど関数プログラミングの本を読んでいるのでこういうときモナドがあるといいのになと思うこの場合はNavConに状態を持たせるのがいいのでしょうかそれはそれでやっぱり気味が悪い気もする状態を受けることは明示的であってほしいのよなだからやっぱりモナドか


ニューラルネットワークを使ってものの集まりの中から部分集合Aを判別することに成功したとするしかしこのときこのニューラルネットワークのどこを見てもAのA性と本質的に関係あるような部品は見つけられないこのことは証明という考えかたと正面から対立している
証明できないものにどこまでを任せられるかが今後の人類の課題だろう自動運転車だったり医療行為だったり責任を負わせられるかどうかという話でもあるしかし負わせられないのなら人間が代わりに負うことになるのならそれは結局人間がやったほうがいいという話になるだろう人間が負える責任の量には限度があるあるいは責任という概念は耐用年数にきているのかもしれない

0304

昨晩はふわっとTwitterのUserStream APIを叩いたらふわっと結果が返ってきたので安心して寝ました一晩放置したところ20MBくらい受信してメモリ使用量は定常状態6MB程度だったのでこれはどうやらうまくいっているらしい今日はパースしますCoreDataに入れるとかはまた別に考えないとそもそもCoreDataなのか未定でもまあ一番手軽だしなあとどう抽象化するかとか


お昼から仕事ぐるぐる回るインジケータとかカスタムダイアログとか通信中にぐるぐる出したりエラーだったらダイアログだしたりなんだかちゃんとしたアプリらしくなってきました


さて今夜は上述のストリームクライアントにパーサを繋ぐ作業かなああいかわらず親不知が腫れてるでも気分はそこまで悪くないや

0305

昨晩はTwitterのストリームを簡単にパースしましたこないだ書いたJSONMapperに投げ込んだらまあまあ動いたけどそういえばこいつは任意属性の子属性の必須属性が存在しないときに変換はしつつエラーを返すんだなってことと必須属性が存在しなくても残りを全部確認するのは無駄だよなと思ったのでこれはそのうち直します特に後者いろんな種類のオブジェクトが流れてくるときに判別するためにいちいち全属性探してたら時間がもったいない

一応動いてはいるのだけどどうもメモリリークがあるので困っていますこれはなんか行儀の悪い方法でマルチスレッドしてるコンソールアプリとして動かそうとするとRunLoopを作るとかで謎が多いから変則的な事が起こっているのか普通に書きかたが悪くて循環参照があるのか切り分けをこれからします今日はもう遅いしそれだけかなあ


お昼から仕事地味目なUI作りと画面遷移コンテナの書き直しコンテナ書き直しのほうはだいたい完了したけどいろいろ同期取ったりするところは未完成明日やろう

ところでリリースビルドの時だけ起こる不具合が見つかったので地獄のような気分ですどこが壊れているのかはわかったけど直しかたはまだわからないリリースビルドは冗談抜きで数分かかるからデバッグがほんとうにつらい

0306

お昼から仕事画面構造の書き直しの続きとりあえず元の動作+αくらいのことは再現できたしさらなる改善の道筋も見えているのでとりあえず一旦このくらいであとはモデルオブジェクトのライフサイクルの管理をいろいろ検討しました一筋縄ではゆかないけれどとりあえず十分な機構ができたはず
そういえば昨日見つけたリリースビルドでしか発現しない不具合はどうにか解決しましたArray.mapでやると壊れるのでfor-inにしましたうーむ


そういえばなんだか忘れていたのだけど週末ですTwitterAPI叩いたりRedmineプラグイン試したりかなーそういえばメモリリークの件はSwift1.2の不具合であることがはっきりしましたdevforumに最小コードがあったautoreleasepoolがちゃんと動いていないようです
結局データの永続化をどうしようか迷っていますいや永続化だけならCoreDataで文句ないんだけど表示とかのことを考えるとちょっと悩ましいかもとはいえ最初は普通のCoreData Stackこれも最近ちょっと新しい構成の話を聞いたので調べたいけどで普通のFRCで100万件くらいさばけるのか試してからかしら

Redmineプラグインは会社の社内ツールを便利にしたいよね〜って話が発端でまあ優先度は低いけどやっとくとなにかとよさそう最近は自動化と可視化と知識共有がテーマです

0307

昨晩はプラグインの開発用にRedmine環境を立てたりしていましたDockerでズドンというのが理想だったのでとりあえずそうしたのだけどプラグインの開発で中をいじるのにはまったく不向きだとわかったのでそういえばそうだ結局macに置きましたまあgit cloneしてジャーンという感じなので簡単

中身はRailsなのでプラグインもジェネレイタでズドンと出てきてコントローラとビューを書いたらジャーンとチケット一覧が出せたりして手軽でしたうーんこのアッサリさやっぱりプラグインの仕事じゃないのかもしれないプロジェクトページにタブ増やす方法ってこれしかないと思うのだけども
それより可視化のほうはd3.jsに手を出してみようと思っているのでこっちはいろいろ試す必要がありそうですとりあえずそっちの勉強かな

そういえば中退した大学院の研究室で同期が卒業するので追い出しコンパがあるらしく僕もどうと誘われました今更どんな顔してとも思ったのだけどけっこう上の人が誘ったらって言ってくれたらしいのでじゃあ行きましょうという感じ僕はあの研究室でついになにも意味ある成果を出さず逃亡したけれどそれでもこうして誘ってくれるのはありがたいことだなあと思うありがたい


さて今夜はTwitterからの応答をCoreDataに仮で投げ込んでみるところとd3.jsの実験かなあ

0308

昨晩はtimelineをNSTableViewに順番に表示させるなどしていましたOSXにはFetchedResultsControllerってないのでNSArrayControllerなるものを使うようでしたCocoa bindingとかもよくわからなくて難儀したのだけどとりあえず表示はできたのでよかったただ行の挿入削除にアニメイションがつかないのと削除の反映が遅いのとが気になりますこの構成をそのまま使うのはうまくないのかもとはいえFRC相等の機構があるわけでなし悩ましい

あとRedmine REST APIを叩いてチケット情報を取得するJavaScriptを書いたりフロントエンドのライブラリ管理の流行りがよくわからない


今日はd3.jsのことをいろいろ調べているのだけどまだ絵が出るには至りませんなんかいきなり複雑なことしようとしすぎてトラブルが起こっているのではという気もしますやれやれ


明日はまた仕事それから夜に深井さんたちと鍋会です

0309

近頃のカレンダーは誰かの誕生日に年齢まで教えてくれるのですね


昨晩はd3.jsとかやろうと思っていたけどあんまりやる気出なくってマンガを読んでぼんやりしていましたやさしいセカイのつくりかたを読みました僕は別に才能があったわけでもなんでもないのだけどこういうお話を読むとぐるぐるするぐるぐるする
それはそれとして5巻までKindleで読んだら最終巻だけまだKindle版がないことを知ったえーえー


今日は夕方早く上がるから早く起きて早く会社に行こうと思っていたのに起きて目覚ましを止めて気がつくといつもの時間でしたまあいつもの時間に勝手に目が覚めたのは不幸中の幸いでしょうはあ

仕事は3D関係をぐりぐりカメラ位置を制御しようと思ったのでこれはクォータニオンチャンス到来かと思ったらOpenGLの関数をStackOverflowに書いてある通りに繋げばいいらしくってナァンダと思っていたらSwiftからはGLKitの数学関数が触れないらしくSwift1.2で直るそうですがクォータニオンチャンスと思ったら当然そのあたりの計算をまとめたサードパーティライブラリが見つかってナァンダと思ったらそのライブラリの計算がわりとデタラメだったので結局クォータニオンの勉強しながら自分で書きました最低限のことしか調べてないけどとりあえず動いたのでよし


夜は深井さんたちと鍋会をしましたいつにもまして買い出しが行き当たりばったりだったけど鍋という場の包容力によってすべてが赦されておいしい鍋ができたでも肉は足らなかったと思うあと個人的には春菊もうちょっとほしかったかも野菜

小説とアニメの話と飛躍と飛躍と飛躍という感じで全体的にメチャ楽しかったです人と話すことがこんなに楽しいってひさびさに思いました本当ですこの楽しさは刹那的なものなのかもしれないそうだとしても

いつか部屋を片付けてちゃんとしたローテーブルを買ってそれからスキヤキをしましょうもうシーズンじゃないかもしれないけれどでも鍋料理にシーズンがあるという観念を僕は実家を出るまで持ったことがなかった父が鍋料理好きで一年中鍋ばかりしているいまもそうらしい


知人の訃報を聞きましたそれなりに話したことのある人が死んでしまうということに慣れてどうなるというものでもないけれど慣れないなと思いますでも僕が想像しているのは徹頭徹尾自分の死でしかないのだとも思ういや他人の死なんてものは存在しないのだから死を想うことはつねに自分の死を想うことでしかあり得ないだろうだったら他人の死を想うことに意味などないのだろうかいやいや
そういえばあの人と死後について議論したことがあったなそんなものは存在せずただ消えるとする立場をとっていたけれどその消えるはどうしても三人称的な記述の混入ではと思っただから僕から見ればそれで正しいのだけどさてあなたにとっては