SwiftでNSDateを簡単に扱うライブラリを書いた

Swiftの実験的なプロジェクトとしてActiveSupportの拡張っぽく直感的に時間を扱うライブラリ"Timepiece"というものを書いた。 naoty/Timepiece · GitHub demo let today = NSDate.today() let tomorrow = NSDate.tomorrow() let dayAfterTomorrow = tomorrow…

Alamofire/**/*Tests.swiftを読んだ

前回Alamofireの実装を読んだので、ついでにテストコードも読んでみた。 $ tree -P "*Tests.swift" -I .git . ├── Source └── Tests ├── DownloadTests.swift ├── ParameterEncodingTests.swift ├── RequestTests.swift ├── ResponseTests.swift └── UploadT…

Alamofireを読んだ

Alamofireとは https://github.com/Alamofire/Alamofire Swiftで書かれたHTTP通信ライブラリ。 AFNetworkingの作者であるmatttさんの新作。 AFNetworkingをリプレースするものではなく、AFNetworkingはSwiftでも安定して動くのでそのまま使えるとのこと。(…

PromiseKit/swiftを読んだ

PromiseKitとは http://promisekit.org/ iOSプログラミングで頻繁に出てくる非同期処理を簡単かつエレガントにするライブラリ。 JavaScriptとかでおなじみのPromiseパターンの実装と、各種CocoaフレームワークからPromiseを使うための拡張が含まれている。 O…

バックエンドAPI用のテンプレートを作り始めた

モバイルアプリケーションやJavaScriptアプリケーションのバックエンドとして使うAPIのテンプレートを作り始めた。 https://github.com/naoty/metallic まだそんなにできてないけど、連休終わるので進捗を書いておく。まだ公開できるレベルではないので公開…

APNsの概要と関連ツール群

Apple Push Notification Service(APNs)は、ソフトウェア開発者(プロバイダ)から受け取ったメッセージを安全な方法でデバイスにプッシュ通知するサービスである。 プッシュ通知までの流れ プロバイダはデバイストークンとペイロードから成る通知メッセー…

pecoでハッカーを検索

かなり前にcui-about.meというサービスを作ったんだけど、pecoと相性がいいことに気づいたので組み合わせてみた。 about() { if [ $# -eq 0 ]; then local name=$(curl -s cui-about.me/users | peco) else local name=$1 fi curl cui-about.me/$name }

技術メモの管理

今後ちゃんと学んだことをメモに残しておこうと思い直し、メモを管理する仕組みを整理した。 保存場所 Dropbox/Documents/notes/以下。複数のPC間で簡単に共有したいのでDropboxで管理する。 メモを書く まず以下のような関数を用意した。 note() { local no…

ブログ移転しました

はてなブログからTumblrに移転しました。理由はHTMLをカスタマイズできる点、無料でも広告がつかない点の2点です。 http://naoty.tumblr.com/ ご査収の程、宜しくお願い致します。

ChefでRaspberry Piをセットアップする

仕事で複数台のRaspberry Piをセットアップすることになったので、Chefを使ってセットアップを自動化することにした。Chef、Vagrant、Serverspecなどいろいろな周辺ツールの全体像を整理したり、それらを使ったワークフローを体験できてよかったので、ブログ…

RubyのWebSocketサーバー「pingpong」を作った

最近、「Working with TCP Sockets」って本を読んだ。Rubyでソケットと戯れつつ、7つくらいのWebサーバーのアーキテクチャを概観できるいい本だった。で、その中にイベント駆動モデルの実装とかノンブロッキングIOの実装について紹介されてて面白かったので…

iOS用グラフ描画ライブラリを書き始めた

卓球ハウスに来てから楽しすぎてコード書いてないことに気づいたので、なんか書こうと思った。最近はセンサーのデータをどうにかiOSに転送したくていろいろ試しているのだけど、送られたデータを表示するときに何かとグラフを描画したくなる。 iOSでグラフを…

半年経ちました・引っ越しました

2013年もあっという間に半年が経ちました。上半期の半分はiOSアプリやAndroidアプリを書いたり、プライベートでgemを書いたりしてました。上半期のもう半分は新しい会社でハードウェアの企画・開発に携わりました。この期間は自分のなかで失敗の連続で落ち込…

konashi make-a-thonに参加してきた

6/1と昨日6/22の2日間、konashi make-a-thonに参加してきた。konashiを使ってiOSと連携するハードウェアをmakeするイベントだった。数人のチームに分かれてアイデアのブレーンストーミングから実際の開発まで行った。 一日目はワークショップ形式でたくさん…

slide_template改めglideの今後について

LTのスライドつくるのだるい - naoty.to_sの続き。 "slide_template"という名前はあまりに味気なかったので"glide"という名前をつけた。"slide"に近い単語で、スムーズにスライドを作成できるイメージから名付けてみた。あと、ギタフリで好きな曲の名前でも…

LTのスライドつくるのだるい

Keynoteの使い方よくわからないし、なんでこんなものに数千円はらったのか意味がわからない。だいたい、マスタという概念はwebでいうCSSなんだからテキストファイルとして定義できるようにすればいいのに。そうすれば、githubとかで共有できるから、かっこい…

todoリストをwebに公開した話

自分が開発したいこと、勉強したいことをwebに公開した。 naoty.info/todo 以前に書いた記事の通り、ここ数週間vimでtodoリストを書くようになった。これがなかなかよくて、.vimrcをいじってtodoリストを書きやすいようにvimをカスタマイズした。GUIアプリだ…

Androidに乗り換えるかも

自分のために作ったアプリを公開したい場合にiOSはとてもハードルが高い。 仕事でやるなら別にいいんだけど、自分で使うのが主のモチベーションで 「他の人もこれ使ったら便利だと思う」程度のモチベで公開しようとするとそのハードルの高さに愕然とする。 …

mrb_valueについて調べてみた

昨日の続き。 mrubyのソースコードを読むと、mrb_valueという構造体がよく出てくるのでソースコードを追いかけて使い方を調べてみた。参照しているコミット番号は昨日と同じく「9663a7」です。 mrb_valueの定義 // include/mruby/value.h:40 typdef struct m…

mrubyで定義したクラスとメソッドをCから呼び出す

mrubyで書いた方がいいところはmrubyで書いてそうじゃないところはCで書く、という開発をするには、Cで定義した関数をRubyから実行させたり、逆にRubyで定義したクラスやメソッドをCから呼び出せるようにする必要があると思った。前者のような実装はmrbgems…

Head First Cの感想

以前参加したmrubyの勉強会でC言語でコードを書く機会があってよくわからなかったので、オススメされた「Head First C」を読んでみた。 Head First C ―頭とからだで覚えるCの基本作者: David Griffiths,Dawn Griffiths,中田秀基(監訳),木下哲也出版社/メーカ…

vimでTodoリスト

Vim

今までいろんなTodo管理アプリを試してきたけど、「GUIアプリほど高機能はいらない」「ターミナル上でtodoを確認したい」という理由でvimでTodoリストを書くようになった。これによるとGithubがGithub Flavored MarkdownにTodoリスト記法を実装したようなの…

vimプラグインを作ってみた

Vim

はじめてvimプラグインというものを作ってみた。コメントを折りたためるようにするだけ。zm, zrなどで表示/非表示を切り替えられる。NeoBundleでインストールすればそのまま使える。 naoty/vim-folcom · GitHub 金曜日にmrubyの勉強会にいって、build_confi…

vimの便利機能

Vim

入力補完 インサートモードで<C-n>または<C-p>と打つと、補完候補が出てきます。 バッファ 新しいファイルを開くと、バッファという領域にその中身が読み込まれます。過去に開いたファイルをまた開くときに便利です。 直前に開いたファイルに戻りたい場合によく使いま</c-p></c-n>…

退職のお知らせ

3月末をもって、アルバイトの頃から約2年ほど勤めていた会社を退職することになりました。アルバイトの頃はRailsでサーバーサイドの開発を担当し、大学卒業後は正社員としてAndroidアプリとiOSアプリの開発を担当しました。未経験の自分にアプリ開発を任せて…

人間の脳みその限界とツールについて

複数の設定があり、それらの組み合わせによって挙動が変わるアプリを書いていると、だんだんそれぞれの組み合わせについて頭がこんがらがってくる。コードを修正するたびにそれぞれの組み合わせについて、どのように影響が出るか考えなければならなくて、つ…

Arduinoと感圧センサーで圧力をサーバーに送信する

秋葉原の秋月電子に行って、慣れない雰囲気の中、なんとかこの感圧センサーをゲットしました。 オライリーのPrototyping Labという本を見ながら回路を接続して、上のようなプログラムを実行するとこんな感じになりました。 センサーに加わった圧力を0番のア…

ハッカソンでgithub連携のnode.jsアプリ作った話

疲れたので手短に。 土日2日間ぶっ通しのハッカソンでnode.jsを使ったgithub連携アプリを作った。仕事はRailsで、まともなアプリをnode.jsで書いたことなかったし、せっかくだからnode.js使ってみた(っていうか、勝ちに行っても勝つ見込みないから、楽しむ…

Railsに組み込むgemを作るためのTips

params_inquirerというgemを作りました。何ができるかと言うと、文で説明するのがなかなか難しいので、下のコードを見てください。 # users_controller.rb def index if params[:status].accepted? # params[:status] == 'accepted' と同じ @users = User.ac…

最近のテスト事情

むかしに比べると、かなりテストが書けるようになってきたし、TDDもだんだん慣れてきた。最近テスト書いてて便利だと思ったことについてメモっておく。 スタブを使ってbefore_filterをスキップする describe 'GET index' do context 'ログインしている場合' …