There's an echo in my head

日々のメモ。

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

2013年を振り返ってみる

モテキは映画版の長澤まさみ派。 1月 千葉で開催された東京Ruby会議10にスタッフとして参加してきた。 見事に大雪で中止…。当日はテンションが上がってて流れに身を任せていたんだけど、あのときこしばさんの下した中止の決断は素晴らしいと今になってわかる…

aws_configというgemを作った

先日*1書きかけだった~/.aws/configをパースしてくれるものをとりあえず動くものにしてgemにした。 http://rubygems.org/gems/aws_config これを使えば次のようにaws-sdkを初期化できる。 require "aws-sdk" require "aws_config" AWS.config(AWSConfig.defa…

30歳になった

30歳になったらなにか変わるのかなあと思っていたけど、特に変わった様子もない。*1 カレーを作ろうと玉ねぎを切っていたら目がしみて「目が、目がぁ!」とムスカを思い描いてほくそ笑んだり、ハチミツとクローバーを読み返していて「修ちゃん、かっこいいな…

StringScannerでAWS_CONFIG_FILEをパースしてくれるものを書いている

書き途中だけどGitHubに上げておいた。a2ikm/aws_config aws-sdkと組み合わせれば適当なツールがかけるようになるかなあと思ったけど、結局aws-cliとjqの組み合わせのほうが早いのかも?

Railsでオフの状態のcheck_boxの値が送信される仕組み

ActionView::Helpers::FormBuilder#check_boxに書かれている内容。 checkboxのチェックがオフの状態だとブラウザはその値を送信しないため、そのままcheckboxがオフになったことをサーバに伝えることができない。 そこでRailsのcheck_boxメソッドは <input name="post[validated]" type="hidden" value="0" />

サブモジュールでgit pullする直前のHEADを知る方法

git

commitするまえなら.git/modules/<MODULE_NAME>/ORIG_HEADに書いてある。 commitしたあとは…まだわからない。</module_name>

iterm_windowでRubyからiTermのタブを開く

iterm_windowを使うとRubyからiTermのタブを開くことができる。 require "iterm_window" ItermWindow.open do open_tab "opened_by_iterm_window" do write "echo 'Hello from iterm_window'" end end iTermはShell > Broadcast Input > Broadcast to All Pa…

lsyncdのstatusファイルからファイル数とかを集計するコマンド

lsyncdの吐き出すstatusファイルをいちいち目で見てどれぐらいdelayしてるか見るのが手間になったので、適当にスクリプトを書いた。 $ lsyncd_status <サブコマンド> サブコマンド 出力内容 delayed キューに残っている全タスク数 active active(実行中)な…

sorceryのcurrent_userにはご注意

2つコントローラで名前空間をわけてそれぞれでcurrent_userを使っている場合には要注意。 sorceryは ActionController::Baseでincludeされてる ログイン中のユーザはcurrent_userヘルパメソッドで呼び出す。このメソッド名の変更はできない ユーザのクラスで…

認証処理を行うsorceryを試してみた

deviseの主にルーティング周りがなんだかよくわからないので、sorceryを試してみた。ソースはgithubにあげたけど参考になるかは微妙。 sorceryはだいたい モデルで認証処理を行うメソッドを提供する 登録時にsalt値の生成とそれによるパスワードの暗号化 Use…

pow+rbenv+bundlerでエラーが出た

"You have already activated json 1.8.0, but your Gemfile requires json 1.8.1. Using bundle exec may solve this."というエラーが出た。 Powのwikiを見ると、config.ruでBundler.setupを呼び出すよう書いてあったけど、それでは直らなかった: # config.…

OSX 10.9 Mavericksへのアップデートでやったこと

osx

Xcodeのアップデートとかはダイアログが出たので、それ以外の個別に細々とやったことのメモ。これはたしかにBoxenとか欲しくなる。 TerminalCopyOnSelectの更新 EasySIMBL 1.5.1に更新 ソースはこちら u-minor/terminalcopyonselectからソースを落としてきて…

RDSの容量減少をSNSでメールを使って通知する

ざっくりとした手順 SNSでトピックを作り、Create Subscriptionから通知先を追加する 通知先には確認のメールアドレスが届くので、Confirmなんちゃらをクリックしておく CloudWatchからCreate Alarmする メトリクスはRDS: Database Meticsを選択 DBInstanceI…

hub pull-requestを楽にするラッパー

ブランチ名を{issue}_hogeってフォーマットにしてる前提で、 使い方: $ pull-request $ pull-request -h develop

yumのリポジトリを追加する

/etc/yum.repos.dにリポジトリの設定ファイルを作れば、その場で有効になる。 例えばTreasureDataのリポジトリ用の/etc/yum/respos.d/td.repoだったら: [treasuredata] name=TreasureData baseurl=http://packages.treasure-data.com/redhat/$basearch gpgch…

rpmファイルの中になにが入っているか確認したり展開したり

一覧を表示する $ rpm -qlp foo.rpm 展開する $ rpm2cpio foo.rpm | cpio -id カレントディレクトリに展開されるので、一つ階層をほったほうがいい。 yumでrpmをインストールして管理させる # yum localinstall foo.rpm もしくはURLを指定して、 # yum insta…

rakeタスク実行時のrails_adminの警告を出力させない

rails_adminをインストールした状態でrakeタスクを実行すると [RailsAdmin] RailsAdmin initialization disabled by default. Pass SKIP_RAILS_ADMIN_INITIALIZER=false if you need it. というログが標準出力に出力される。 何度も表示されるのも煩わしいし…

Homebrewで入れたmysqlを再起動するにはLaunchAgentのKeepAliveをfalseに設定しておく

~/Library/LaunchAgents/homebrew.mxcl.mysql.plistのKeepAliveがtrueになっていると、mysqlのプロセスが止まった時点でlaunchctlが頑張って起動しなおそうとする。 で、mysqlを再起動しようとmysql.server restartするとうまくいかない。stop/startもだいた…

MySQLでインデックスを使っていないクエリをログに書き出す

[mysqld] slow_query_log=1 long_query_time=0.01 slow_query_log_file=/usr/local/var/mysql/slow.log log-queries-not-using-indexes

delayed_job + Rails4 + Capistrano + rbenv

Rails 4(ActiveRecord)でdelayed_jobを使いつつ、それをCapistranoでデプロイする方法のメモ。基本的に本家のWikiに従う。 キューの機能を使う まず必要なgemをインストールしてマイグレーションファイルと実行ファイルを作成する。 # Gemfile gem "delaye…

今更ながらSPDYとWebSocketのServer Pushについて調べてみた

ログの見れないSkypeやっぱ不便だよね→Hubotとかあるし自分でチャット作ったら面白そう→そういやLINEってSPDYなんだっけ→WebSocketってSPDYに乗るんじゃなかったっけ。 というわけでSPDYとWebSocketのServer Pushについてざっくりと調べてみた。 SPDY と Web…

Keychain Accessに登録した鍵付き証明書をp12で書きだす

osx

複数人で一つのApple IDに紐づく証明書を持っていたいときとか。 Keychain Accessの欲しい鍵付き証明書の左にある矢印"▶"をクリックして展開する 証明書に含まれる鍵が表示されるので、展開元の証明書と展開された鍵の両方を選択し、右クリックからExportを…

APNS用の証明書(cerファイル)からパスフレーズ無しのpemを作る

APNS(Apple Push Notification Service)用に発行した証明書(cerファイル)をサーバ側で保持しておく際にはパスフレーズを外したpemにしておきたい。というわけでその手順を毎回忘れるのでメモっておく。 以下はDistribution用の証明書(aps_production.ce…

nginxにreloadシグナルを送っても設定を再読み込みしてくれなかったりなかなかKILLされなかったり

nginxはreloadシグナルを送れば設定だけを再読み込みしてくれる。 # /usr/sbin/nginx -s reload ただ今回は何度実行しても再読み込みをしてくれなかった。仕方がないのでstop/startで再起動しようとした。 # /usr/sbin/nginx -s stop # ps -ef | grep nginx …

Capistrano2でsharedにシンボリックリンクするディレクトリを追加する

Capistranoではリリース間でファイルを共有するためにいくつかのディレクトリがshared/以下にコピーされ、そちらにシンボリックリンクをはるようになっている。たとえばpublic/assetsとかlogとか。 この仕組は任意のディレクトリに対しても使うことができる…

callの返り値とRack::Response.newの引数の順序

callの返り値の順序とRack::Response.newの引数の順序が違ったのでメモ。*で展開できたら楽だったのになあ。 class GreatMiddleware def initialize(app) @app = app end def call(env) result = @app.call(env) response = Rack::Response.new(result[2], r…

UIBarButtonItemに独自の画像を使う

目的の画像をmyButton.png、1x1透過pngをtransparent.pngとする。 UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"myButton"] style:UIBarButtonItemStylePlain target:aTarget action:anAction]; [item setBackgro…

Homebrewでmkpasswd

パスワードを生成するならmkpasswd、ということでHomebrewで入れた。mkpasswdはexpectのなかに入ってる。 $ brew tap Homebrew/homebrew-dupes $ brew install expect --with-brewed-tk --with-brewed-tkを付けないとエラーが出る。 $ mkpasswd 6oGLnjf8= 英…

Homebrewで入れたFFmpegでaifをoggに変換する

まずインストール。色々オプションをつけてるけど、--with-libvorbisだけでいけるはず。 brew install ffmpeg \ --with-fdk-aac \ --with-freetype \ --with-libvo-aacenc \ --with-libvorbis \ --with-libvpx \ --with-opencore-amr \ --with-openjpeg \ --…

64bitの符号なし整数型uint64_tをObjective-Cで扱う

Tweetのidが64ビットになってたので。 NSNumberから取り出すにはunsignedLongLongValueを使う: uint64_t tweetId = [tweetIdNumber unsignedLongLongValue]; 逆にNSNumberに変換するにはnumberWithUnsignedLongLong:もしくはinitWithUnsignedLongLong:を使う…

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。