kenju's blog

About Programming, Mathematics, Security and Blockchain

Ruby

MurmurHashとは何か

背景 RubyのHashTableの実装が知りたくて、ソースコードを読んでいた時に、"MurmurHash"という単語に出会った。何かよくわからなかったので、調べて見た。 https://github.com/ruby/ruby/blob/c08f7b80889b531865e74bc5f573df8fa27f2088/st.c: /* This hash …

activerecord_precountのRails v5対応のパッチを送った

@k0kubunさんが作成されたactiverecord_precountを使っているのだが、Rails v5対応を行う中で、Rails v5で動作しないことが判明した。 そこで、少し前の話になるのだが、acriverecord_precountのRails v5対応をするためのパッチを3件送った。 s/query_scope/…

"Cookpad Ruby Hack Challenge"に参加してきました

“Cookpad Ruby Hack Challenge"に参加してきました。 ↓は参加前日に書いた記事です。 itiskj.hatenablog.com 参加して良かったこと 講義・開発・懇親会全てを通して満足度の高い、最高の2日間でした。ある程度の目的を持って臨んだのですが、それを越す学び…

"Cookpad Ruby Hack Challenge"に参加してくる

普段Rubyを使っているものとして、その内部構造を知りたい、という強い思いがあった。 なので、今回抽選に受かってこの上なく嬉しかった。 RubyのソースコードHackは何度かトライしてみたが、いきなりソースコードをクローンしたものの、なかなかとっかかり…

Rubyでシンプルなデータ構造を表現する時に何を使うか

Rubyを書いている時に、シンプルなデータ構造を書く場面は多々ある。 そんな時に頭の中で無意識的に判断している内容を言語化してみた。 選択肢 細かいところまであげるとキリがないが、大まかな選択肢としては以下の4つが選択肢としてあげられるのではない…

書評『Rubyのしくみ ~Ruby Under a Microscope~』を読んで

Rubyのしくみ -Ruby Under a Microscope-作者: Pat Shaughnessy,島田浩二,角谷信太郎出版社/メーカー: オーム社発売日: 2014/11/29メディア: 単行本(ソフトカバー)この商品を含むブログ (4件) を見る とりあえず一通り通読をし終えた。 今後は、さらにRuby…

『Rubyのしくみ -Ruby Under a Microscope』の読書メモ<第12章>

Rubyのしくみ -Ruby Under a Microscope-作者: Pat Shaughnessy,島田浩二,角谷信太郎出版社/メーカー: オーム社発売日: 2014/11/29メディア: 単行本(ソフトカバー)この商品を含むブログ (4件) を見る 第1~5章編:『Rubyのしくみ -Ruby Under a Microscope…

『Rubyのしくみ -Ruby Under a Microscope』の読書メモ<第10~11章>

Rubyのしくみ -Ruby Under a Microscope-作者: Pat Shaughnessy,島田浩二,角谷信太郎出版社/メーカー: オーム社発売日: 2014/11/29メディア: 単行本(ソフトカバー)この商品を含むブログ (4件) を見る 第1~5章編:『Rubyのしくみ -Ruby Under a Microscope…

『Rubyのしくみ -Ruby Under a Microscope』の読書メモ<第8~9章>

Rubyのしくみ -Ruby Under a Microscope-作者: Pat Shaughnessy,島田浩二,角谷信太郎出版社/メーカー: オーム社発売日: 2014/11/29メディア: 単行本(ソフトカバー)この商品を含むブログ (4件) を見る 第1~5章編:『Rubyのしくみ -Ruby Under a Microscope…

『Rubyのしくみ -Ruby Under a Microscope』の読書メモ<第6~7章>

Rubyのしくみ -Ruby Under a Microscope-作者: Pat Shaughnessy,島田浩二,角谷信太郎出版社/メーカー: オーム社発売日: 2014/11/29メディア: 単行本(ソフトカバー)この商品を含むブログ (4件) を見る 第1~5章編はこちら:『Rubyのしくみ -Ruby Under a Mic…

『Rubyのしくみ -Ruby Under a Microscope』の読書メモ<第1~5章>

Rubyのしくみ -Ruby Under a Microscope-作者: Pat Shaughnessy,島田浩二,角谷信太郎出版社/メーカー: オーム社発売日: 2014/11/29メディア: 単行本(ソフトカバー)この商品を含むブログ (4件) を見る 第1章 字句解析と構文解析 遠くからは複雑に見えること…

エンコードが必要な文字の時YAML.dumpはvalueをクオートでラップして出力する

tl;dr Rubyの現在のYAMLモジュールの実装の詳細は、cのYAML ParserライブラリlibyamlのブリッジであるPsych YAML.dumpしたときに、valueがシングルクオートでラップされることがあるのは、エンコードが必要な文字を出力するとき(例:0x80) 意図しない出力…

AWS SDK for RubyでS3のファイルを扱う時はdownload_file/upload_fileを使う

tl;dr S3へのファイルのアップロードには、#putも#upload_fileもいずれも使えるが、特別な理由がない限り#upload_fileを使うべき 同様に、ダウンロードする際は#download_fileを使う s3 = Aws::S3::Resource.new(...) obj = s3.bucket('bucket-name').object…

FileSystemの互換性を保つファイル名のエスケープ

先日の仕事で、maxOS, Windows, Linuxで基本的に互換性のあるファイル・ディレクトリ名を出力する必要にでくわしました。 Windowsにおける禁止単語 Naming Files, Paths, and Namespaces (Windows) Windowsをあまり使わなかったのですが、Windowsでは↓の文字…

RubyのソースコードリーディングにGNU GLOBALを使うと便利

tl;dr Rubyのソースコードのようなある程度大きい規模のコードリーディングにはタグシステムが必須 いくつかあるツールの中で、GNU GLOBALが手軽でおすすめ GNU GLOBALでコードリーディングするときによく使うキーボードショートカットをまとめた 背景 私が…

rubyzip と zip(1) のメモリ消費量を比較検討した

rubyzipgemが、ある特定のJobサーバーでメモリ消費量的に利用できるかどうかを計測したかったため、Profilerを書いた。比較対象として、Linuxコマンドのzip(1)と比較した。また、単純にzipしようとするファイルをRubyでシンプルに扱う場合どれくらいのメモリ…