@kyanny's blog

My thoughts, my life. Views/opinions are my own.

2014-01-01から1年間の記事一覧

Look Back 2014

毎年恒例の振り返り。今年は面倒くさいので日本語で。 Look back 2012 - @kyanny's blog Look back 2012 - @kyanny's blog Look Back 2013 - @kyanny's blog Look Back 2013 - @kyanny's blog 1-3月 TOEICを受けてスコアは720点だった。仕事は昨年から引き続…

7 Patterns to Refactor Fat ActiveRecord Models

mixin はうまくないぜ、ってのは納得感あった。query object と特に policy object はなるほどと思った。 Original Page: http://t.co/8snEniIfOf Shared from Pocket

Ruby 2.2.0 の vfork

Ruby 2.2.0 のリリースノートを読んでいて system() と spawn() における vfork(2) の使用を実験的にサポートしました というのが目に止まったので手元で動作確認してみた。 以下の Linux 環境で実験した。 vagrant@precise32:~$ uname -a Linux precise32 3…

一人アドベントカレンダー達成ならず

今年は技術系アドベントカレンダーに参加しなかった。そのかわりに、自分のブログに毎日何か書くことに挑戦した。日付をごまかしているので厳密には毎日書いたわけじゃないけど、日付を埋めることはできた...と思っていたらうっかりして12月19日のぶんを投稿…

Continuous Deployment と Continuous Delivery の違い

Continuous Deployment とは、自動化されたテストをパスしたら自動的にプロダクション環境へデプロイされ、エンドユーザーに対してリリースされる状態を指す。Continuous Delivery とは、Continuous Deployment とほぼ同様だがプロダクション環境へのデプロ…

TSUTAYA TV の動きがおかしかった

奥さんが最近ハマっている海外ドラマがあって、 Hulu ではまだ視聴できない新シリーズが TSTUTAYA TV でなら視聴可能というので、 PlayStation Vita TV 上の TSUTAYA TV アプリで一ヶ月見放題パックというのを購入した。 しばらくふつうに使えてたみたいだけ…

Codeship 所感

Continuous Delivery for free | Codeship Codeship を使ってみた。可もなく不可もなくという印象。 Continuous Delivery を全面に打ち出すだけあって、デプロイ先の設定はブラウザからダッシュボード上で操作できてわかりやすい。 Heroku へのデプロイは数…

アナログ世界時計をチャットに貼れるサービス Tokei.link をリリース(Slack 対応)

「現在時刻を知りたい国や都市をチャットでつぶやいたら時計が表示されると便利だな」と思ってそういうサービスを作りました。無料です。登録も不要です。 http://www.tokei.link/ アナログ時計なので文字を読まずにパッと見でだいたいの時刻を把握できます…

Jenkins のジョブを外部からビルドするには API Token を利用する

Jenkins 1.594 にて確認。 Jenkins の認証ありの場合 「セキュリティを有効化 / Enable security」にチェックを入れている場合。 認証必須環境におけるJenkinsのスクリプトトリガーによるビルドの実行 - そんなこと覚えてない そして Authenticating scripte…

Jenkins で認証の設定をミスって締め出されたときは $JENKINS_HOME/config.xml の useSecurity を false にすればなおる

<useSecurity>false</useSecurity> に変更して Jenkins を再起動すると Enable security オフの状態に戻るので設定をやり直せばよい。 ちなみに Homebrew でインストールした Jenkins を一般ユーザー権限で起動するとデフォルトの $JENKINS_HOME は $HOME/.jenkins になるので設定ファイ…

Mac OSX の Python 2 にインストールした httpie で一部の SSL URL にアクセスすると "sslv3 alert handshake failure" エラーが出る

httpie が内部で使っている requests という HTTP ライブラリのリポジトリに該当する issue があった。 https GET request fails with "handshake failure" · Issue #2022 · kennethreitz/requests · GitHub Mac OSX にプリインストールされている OpenSSL …

Jenkins ジョブの中で $JOB_URL などの環境変数を利用するためには Jenkins のシステム設定で Environment variables を有効にした上で Jenkins URL を入力する必要がある

Manage Jenkins -> Configure System から Global properties -> Environment variables のチェックを入れること(デフォルトではチェックされていない==無効)有効になってないといくつかの環境変数がジョブから参照できないらしい。参考 [#JENKINS-16225] …

Book: Web API: The Good Parts

内容はよくまとまっていた。確かにそこは悩むよね、という点がいくつもカバーされていて、かつ既存の API をリサーチしたまとめを元にベターな選択肢が述べられていて納得感がある。 API の設計や実装に慣れている人でも、迷ったときのリファレンスとして利…

Google API Client (Ruby) で Refresh Token を使って Access Token を発行するサンプルコード

google-api-client-example/refresh_token.rb Signet::OAuth2::Client#new の引数に refresh_token を渡して、そのインスタンスを Google::APIClient#authorization= に入れて、 Signet::OAuth2::Client#refresh! (または fetch_access_token!)を呼ぶと新…

vagrant share の実装を読もうと思ったら暗号化されていた

Vagrant に再入門している。 Getting Started を読んで vagrant share という機能があることを知った。手元の仮想マシンがコマンド一つでインターネットに公開されてすごい。どうやっているのか気になったのでソースコードを読んでみようと思ったら RubyEnco…

ブログのテーマを「Hatena2 for はてなブログ」に変更

これまでに使ってきたテーマ(デザインテンプレート)はどれもコードブロックの表示が気に入らなかった。このブログの記事の多くは本文中にいくらかのコードを含み、それらのコードスニペットが一番重要な情報であることも少なくない。肝心の情報が見づらい…

capybara-webkit で Invalid Date エラーが出る場合の対処法

capybara-webkit は QtWebKit を使うが、 QtWebKit が Qt 4 でビルドされていると Invalid Date エラーが発生することがある。 QtWebKit を Qt 5 でビルドしなおせば解決する。 Improper date parsing · Issue #570 · thoughtbot/capybara-webkit · GitHub n…

window.location は stub できない

JavaScript の window.location は read-only プロパティなので上書きできず、したがって Sinon.JS でスタブすることもできない。知らなかった。 Window.location - Web API Interfaces | MDN The Window.location read-only property returns a Location ob…

Rails が params をネストしてくれる仕組みは ActionController::ParamsWrapper が実現している

アレがどのように実現されてるのか、あとネストしたハッシュのキーにあたる文字列は単数形になるものなのか複数形になるものなのか、理解しておらず不思議がっていたら同僚が調べてくれた。復習がてらメモ。 結論 一連の仕事は ActionController::ParamsWrap…

GitHub Flavored Markdown の Task Lists の数を数える

小ねた。ちょうど今日必要にせまられたので。 そもそも目視で数えられないほど多くチェックリストを作るなという話ではあるけど、 TODO が全部で何個あってそのうち何個終わってるか知りたいときは Markdown をコピペしてファイルに保存し、 grep するのが手…

Book: Zero to One

ちょっと話題になっていたので読んだ。前半はなかなか面白かった。後半は息切れを感じた。 前書きを含め、リーンスタートアップへの痛烈な批判が目につくが、むしろ本書を読んで手法としてのリーンスタートアップはいいものだと再認識した。 本書が批判して…

Backbone.sync で毎回パラメータを付与する with Rails

いつもよくわからなくなって混乱するので調べてまとめた。実験に使ったアプリ https://github.com/kyanny/backbone_sync_rails_app フロントエンドを Backbone.js、バックエンドを Rails として、 fetch/save/destroy いずれの場合も必ず token というパラメ…

AWS の IOPS 課金でパケ死しかけた

クラウド破産 - Togetterまとめ これより金額は一桁少ないけど、考えなしに AWS で大量の IO が発生するベンチマークを実行して請求額が跳ね上がった。次回の請求額が $231 もあって、思い当たる節があったので明細をみてみたら予想どおり SSD な EBS ボリュ…

get-google-oauth-token

Google の OAuth アクセストークンをコマンドラインから取得するスクリプトを作った。 https://github.com/kyanny/get-google-oauth-token (この Client ID は削除済みなのでもう使えません) 琴線探査: Google DriveにCURLでアップロードするには? を見て…

Submitted CFP to RubyConf Philippines 2015

Submitted CFP to RubyConf Philippines 2015! @RubyConfPH #rubyconfph http://t.co/p8i4uOlY8x— Kensuke Nagae (@kyanny) December 2, 2014 今年の目標に「海外カンファレンスでスピーチする」というのを掲げていたものの、春先の RubyConf Philippines 20…

Qiita のアドベントカレンダーの統計情報

http://qiita.com/advent-calendar このページに年ごとのアドベントカレンダー関連の数値が載っている。スプレッドシートの練習にグラフ化してみた。 カレンダー数は順調に伸びている。 参加者数は伸び率がすこしおだやかになった。 2014年分のストック数は…

vvo/gifify

開発した機能や修正したバグのデモとしてアニメGIFを Pull Request や Issue に貼り付けるのをよくやる。いくつかのやり方を試して、今は QuickTime Player の画面収録で動画を撮影しアニメGIFに変換するのに落ち着いた。尺を気にしなくていいのとマウスクリ…

Book: オービタル・クラウド

面白かった。分冊版の一巻を買ったのは数ヶ月前で、最初の方しか読まず時間が経ってしまったが、ちゃんと読み切ろうと思って続きを読み始めたら数日で一気に読みきってしまった。それよりずいぶん前に読んだ Gene Mapper も楽しめたので、好みに合っているん…

Book: How Google Works

平凡な本だった。この本ならではという内容は無く、組織のあり方というテーマに関心がある人ならすでにどこかで見聞きしていそうな話題ばかり、という印象を受けた。Googleであっても苦労するポイントは同じということがわかるのはよかったが、それに対する…

ghn v2.2.0 released: Add -v option

http://rubygems.org/gems/ghn/versions/2.2.0 ChangeLog: New Feature: Add -v (--verbose) option by @masatomo https://github.com/kyanny/ghn/pull/33 https://github.com/kyanny/ghn/releases/tag/v2.2.0