コマンドラインを拡張しやすくするヤツ書いた

Go

gitなど既存のコマンドラインを拡張して新しいサブコマンドを追加する方法はいくつか考えられる。 git alias gitの場合はgit aliasを使うことで簡単にサブコマンドを追加できる。gitのとき限定。 ラッパー github/hubのような既存のコマンドラインをラップし…

Pocketのもう読んでない記事を掃除するヤツ書いた

Go

naoty/sweep 普段、Pocketを使って「あとで読む」記事を管理している。ちょっとした時間に見つけた記事をPocketに追加しておいて、通勤時間などにiOSアプリで消化している。ただ、長い記事が増えてくるとだんだん消化しきれなくなってきて、消化しようという…

コミット数が多いファイルを表示するコマンドを書いた

Go

naoty/hot インストール $ go get github.com/naoty/hot 使い方 $ cd src/github.com/naoty/Timepiece $ hot 24: README.md 17: Sources/NSDate+Timepiece.swift 15: Tests/NSDate+TimepieceTests.swift 10: Timepiece.xcodeproj/project.pbxproj 9: Timepie…

「すごいHaskell たのしく学ぼう!」を読んだ

すごいHaskellたのしく学ぼう!作者: Miran Lipovaca出版社/メーカー: オーム社発売日: 2012/09/21メディア: Kindle版購入: 4人 クリック: 9回この商品を含むブログを見る 本書は一度は8章あたりで挫折したが、今回13章あたりまで読みファンクタ―、アプリカ…

naoty/todoとnaoty/nowisで定期的なtodoを管理できるようにした

Go

前回のエントリで紹介したnaoty/todoと今回作ったnaoty/nowisを組み合わせることで、定期的なtodoをコマンドラインで管理できるようにした。 naoty/nowis 使い方 $ nowis saturday && echo 'Today is Saturday!' Today is Saturday! nowisコマンドは、現在時…

自分専用のtodo管理ツールを書いた

Go

最近、プライベートでの開発したいことや勉強したいことが増えてきたので、それらを管理するツールを書いた。 naoty/todo 使い方 $ todo add Go言語を勉強する $ todo add todo管理ツールを書く $ todo add ブログ記事を書く $ todo list [ ] 001: Go言語を…

#potatotips でTimepieceについて発表した

potatotips 【第17回】potatotips(iOS/Android開発Tips共有会) (2015/05/13 19:00〜) 資料 最近のTimepiece GW前あたりから急激にバズってきた。一時GitHubのトレンドで1位になった。それまでは☆70くらいだったけど、もうそろそろ☆500になりそうな勢いだ。 …

コミット毎に実行環境をビルドするoasisを書いた

Go

Dockerの理解を深めるため、またGo言語の経験を積むためにoasisというツールを書いた。「とりあえず動いた」レベルの完成度であり、実用で使うにはもっと時間をかけて改善していく必要がある。 naoty/oasis これはコミット毎の実行環境をdockerのコンテナと…

ghqを読んだ

Go

Goの勉強のため、普段からお世話になっているmotemen/ghqを読むことにした。なお、現在の僕のGoの知識はgotourを完走した程度だ。最初から現在のコミットを追いかけるのは骨が折れそうだったので、最初のコミットbad21c7df65ccefd74530d6fcc5f0707b63e0266か…

Railsにコントリビュートした

Add `rake initializer` by naoty · Pull Request #19323 · rails/rails 軽い気持ちでpull requestを送ってみたら数十分後になんとmergeされてしまった。間違ってmasterブランチに送ってしまったため、おそらくrails 5で公開されることになる。 追加したのは…

Rubotyで勤務時間を管理する

bot

リモートワークのときでも勤務時間を自動的に記録するため、botに発言時間を監視させ、だいたいの勤務時間を記録させるようにした。 いま使っているbotはr7kamura/ruboty製で、これに機能を追加するプラグインを書いた。 naoty/ruboty-timecard このプラグイ…

Timepieceを0.2.0にアップデートした

naoty/Timepiece Swiftの日付操作ライブラリであるTimepieceに機能を追加し0.2.0にアップデートした。また、1ヶ月くらい前からしれっとCocoaPods(現在はまだrc版)をサポートしたのでCocoaPodsからインストールできるようになってる。 NSDate <-> Stringの…

「UMLモデリングの本質」を読んだ

UMLモデリングの本質 第2版作者: 児玉公信出版社/メーカー: 日経BP社発売日: 2011/05/26メディア: 単行本購入: 6人 クリック: 23回この商品を含むブログ (6件) を見る 「UMLモデリングの本質」という本を読んだ。最近、ソフトウェアの設計について興味があっ…

「達人に学ぶDB設計徹底指南書」を読んだ

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ作者: ミック出版社/メーカー: 翔泳社発売日: 2012/03/16メディア: 単行本(ソフトカバー)購入: 21人 クリック: 316回この商品を含むブログ (23件) を見る 「達人に学ぶDB設計徹底指南書」を読…

ブランチごとにDB切り替えるヤツ作った

Gitのブランチ名をもとにActiveRecordが接続するDBを切り替えるRubygemを作った。 naoty/brancher 使い方 group :development do gem "brancher" end Gemfileに書いてbundle installするだけ。あとは自動的にブランチごとに別々のDBが使われるようになる。 c…

`rails s`読んだ

rails sでRailsサーバーが起動するまでに何が起きているのかを紐解くことでRailsとは何なのかを理解していきたい。今回読んでいくソースコードのコミットは2d9b9fb5b5f6015e66d3ad5cb96bc1ba117fd626だ。 TL;DR bin/rails sがユーザーによって実行される。 G…

Qiita:TeamのテンプレートとJSONからテキストを組み立てるヤツ

あけましておめでとうございます。 プログラミング初めとしてnaoty/qiita-buildという簡単なrubygemを作りました。Qiita:Teamで下のようなテンプレートがあったときに # 自己紹介 * 氏名: %{fullname} * ニックネーム: %{nickname} * 居住地: %{location} * …

activeadmin読んだ

activeadmin/activeadminを初めて使うことになったので、どういう仕組みになっているのか調べてみた。 TL;DR rails g active_admin:installを実行するとlib/generators/active_admin/install_generator.rbが実行され、ActiveAdmin.routes(self)がconfig/rout…

RailsのReloaderの仕組み

Resqueのworker上で実行されるコードが古いまま更新されないというような問題があって、意味もわからず書いたコードでなんとかその場を収めたんだけど、気持ち悪いのでRailsでいかにしてコードが更新されるのか調べてみることにした。 TL;DR 未定義の定数が…

Qiita API v2のSwiftクライアントを書き始めた

昨日、Qiita API v2 Hackathonに参加してきた。 僕はハッカソンでnaoty/qiita-swiftを作った。Qiita API v2のSwiftクライアントだ。動機としては、Swiftはすごく楽しいのだけどJSONのパースあたりがとてもつらいという問題があって、そこらへんの地味な実装…

転職のお知らせ

12/1から新しい職場で働くことになりました。久々のチーム開発なので楽しみです。相変わらずRailsやったりiOSやったりな感じになりそうです。転職先は卓球ハウスに遊びに来られたときにでもお話します。 いつものです。よろしくお願いします。

Web API: The Good Partsを読んだ

Web API: The Good Parts作者: 水野貴明出版社/メーカー: オライリージャパン発売日: 2014/11/21メディア: 大型本この商品を含むブログ (1件) を見る 業務ではiOSアプリとバックエンドの開発を両方担当しているので、APIの設計を何回かやってきた。しかし、…

MDCSwipeToChooseを読んだ

前回に引き続き、UI周りのテクニックを学ぶためhttps://github.com/modocache/MDCSwipeToChooseを読む。海外で話題のTinder風のアプリを簡単に開発することができる。 まず使い方を簡単に見ていく。 override func viewDidLoad() { let options = MDCSwipeTo…

SlackTextViewControllerを読んだ

UI周りの理解を深めるため、Slackが公開しているhttps://github.com/slackhq/SlackTextViewControllerを読む。コミット番号は9fcf06ac6f7004e4aacb6536b375d1cb03f08289だ。 全部はさすがに読みきれないので、以下の気になるポイントに集中してコードを読ん…

自分をコピーするbotを作る

自分のTwitterアカウントをコピーするbotを簡単に作れるmirror botというものを作りました。@naoty_botはこれを使って作りました。 naoty/mirror_bot @naoty_k なんでわざわざ大金払って太ろうとしてるの?バカなの?— なおてぃー(bot) (@naoty_bot) 2014,…

pod installしたらgit cloneしてくれるヤツ書いた

ghqを使ったローカルリポジトリの統一的・効率的な管理について - delirious thoughtsを拝見して良さそうだったので、iOS開発にも持ち込むためCocoaPodsのプラグインを書いた。20行くらいしか書いてないし、ghqとの連携もまだ実装できてないけど、取り急ぎ。…

「集合知プログラミング」を読んでる

「集合知プログラミング」という本を先週から読み始めた。この本は機械学習をテーマとしていて、現実にありそうな問題(例えば、映画の評点から似ているユーザーを推薦するとか、数ある旅行プランの組み合わせから最適なプランを選択するとか)を題材にさま…

ストリームを利用したローパスフィルタの実装

このスクリーンショットに映された2つの線は共にiPhoneの加速度センサーの値を表しており、下の緑が加工していない生データ、上の青い線がローパスフィルタという仕組みで揺れを除去したデータだ。 以前の記事でSwiftを使ったストリームの実装をしてみたのだ…

マシなiOSアプリのフォームを実装・デザインする

普段iOSのフロント寄りの実装やデザインについて手が着けられていなかったけど、Xcode6の新機能のおかげでそっちも興味がでてきたので、ログインフォームを想定してiOSアプリのフォームの設計について本気出して考えてみた。 最もシンプルなフォーム メール…

Swiftでストリームを扱うライブラリを書いた

FRPの記事をいくつか見てあまり理解できなかったので、Swiftでストリームを扱うライブラリを書いてみた。結論から言うと、まだストリームについて深く理解できていない感じがするので「FRPとは何か」「ストリームとは何か」といった話はしない。そういう話は…