Akata Works

東京エンジニア。主にRuby,Go,たまにAWSとiOS。ゲーム音楽が好きです。連絡はTwitterかakata.onen@gmail.comまで

Ruby

RubyのCSI多言語化について調べたらpack, unpackについて理解できた話

Rubyでバイト列の先頭にマジックナンバーが付いたようなものを扱う機会があったのでArray#pack, String#unpackについて調べてみました。 このあたりの認識がふわっとしてると、使うときに障害の種になるので要注意ですね。 結構調べたつもりですが、間違えて…

NodeJSとnodejsコマンド・nodeコマンドの違い

前々からちょこちょこ気になってたことだったので調べてみた。 RubyイメージのDockerコンテナ内とかUbuntuでNodeJSを使おうと思って調べると、すぐにapt-get install nodejsに辿り着くんですが、このコマンドでインストールされたバイナリはnodeじゃなくてno…

Railsでオンメモリにキャッシュするとハマるので注意

Railsのフラグメントキャッシュでオンメモリを指定してたら、外部ミドルウェアを使うのと挙動が違ってハマったのでメモ。 開発環境デフォルトのオンメモリは準備が楽ですが、本番でDalliとか使ってると混乱するので統一しておきたいですね。 検証 恐らく最も…

Base64エンコードとBase64URLエンコードについて

GoogleさんのProtocol Buffersでエンコードしたデータをクエリパラメータで含めようと思ったので改めてBase64エンコードとBase64URLエンコードについて調べてみました Base64エンコーディングについては以下の記事でも軽く触っていますが、データを印字可能…

Rails Console(irb)のアウトプット待ちがメンドイときに消す方法

小ネタです。Rails Console(irb)で適当な処理を実行すると返却値が出力されますよね?例えば以下のeachメソッドの返却値はレシーバ自身なので、eachブロックでゴニョゴニョ処理をするとレシーバが出力されます > %w/hoge huga foo bar/.each{|e| e} => ["hog…

RailsのStatsタスクに調査対象ディレクトリを追加してみる

どうもです。rake statsコマンドを使っていますか?これは一言で言えばプロジェクトの大まかな統計情報を取るためのコマンドです。リファクタリングすべきかどうか、テストコードを書くべきかどうかをざっくり判断したいときに使ったりします $ rake stats +…

RailsとMySQLでiOSの絵文字に対応(UTF8MB4化)した話

兼ねてからちょこちょこエラーが出ていたiOSの絵文字を含んだデータにようやく対応しましたので、その備忘録です。 Railsは3.2.11、MySQLは5.6.25です。 ちなみにMySQLは5.5以降からUTF8MB4に対応しています。 はじめに 文字コードをUTF8からUTF8MB4に変更を…

RailsとBundlerで`bundle exec`を省略した話とその時の副産物について

Railsアプリケーションの開発に使っているBundlerで一々bundle execを打つのって面倒ですよね。 調べてみるとrbenvのpluginだとかいろいろあるらしいのですが、 これまではずっとエイリアスでなんとか凌いでいました。 ↓こんなやつ↓ alias rs='bundle exec r…

コンテンツ単位でボットからのアクセスを無視する

自身のサイトに訪れたユーザのアクセス情報をイベント単位で取得し、レポートを作成したり、Mixpanelを使用するとき、 クローラなどのボットが凄まじいノイズっぷりを発揮し、 レポートがメチャクチャになります。 サイト単位やページ単位でボットのアクセス…

Rubyのスコープと変数定義で「What!?」ってなった話

最近になって急に、開発言語がPerlからRubyとObjective-Cに早変わりして大変です。 そして、Perlの感覚でRubyを書いていると「What!?」ってなったことがあったので、 久しぶりに記事にしてみました。 下記はPerlのコードです。 #!/usr/bin/env perl use stri…