最終出社日でした

今日はReproでの最終出社日。思い返せば 30 歳も過ぎてから Ruby とどう関わっていくかという人生だった。 MacRuby (2010年~) 暇つぶしに Mac OS X のアプリを作ってみようかと思い立った時に出会ったプロジェクトだった。 今のように Swift や clang とい…

Oj のパフォーマンス改善についてまとめました + 余談

Oj のパフォーマンス改善についてまとめて、弊社のテックブログにかきあげました。 tech.repro.io 文量の問題で全ては記載してないので、もし他の変更が気になる方は Commits · ohler55/oj · GitHub をご覧ください。 余談 なんでパフォーマンス改善ばかり(…

ObjectSpace を利用して Ruby 製 worker のメモリ使用量を改善した

現在、Ruby 製 worker を作成することを業務で行っているのですが、継続的にメモリ使用量が増加する現象に遭遇してました。 (グラフの値が下がったタイミングが数回ありますが、それぞれでデプロイが行われてリセットされただけ) ObjectSpace.allocation_s…

Ruby の FFI によるメソッド呼び出しのオーバーヘッド

FFI を利用して C のライブラリを呼び出す時のオーバーヘッドがどれくらいなのかと思い調べてみました。 使用したコード 呼び出し時のオーバーヘッドを知りたかったので、処理負荷がかからない単純に加算するだけのコードとしました。 int add(int x, int y)…

Ruby を Windows 環境でビルド

以前 Ruby の Windows 環境 (備忘録) - @watson1978 の日記 で Ruby を Windows でビルドできるように環境を用意したのですが Visual Studio のアップデートなどで手順に差分が生じたので、また備忘録がてら作業ログを残しておきます。 以下の記事を参考にし…

フィヨルドブートキャンプのアドバイザーになりました

Kaigi on Rails を聞きながらオンラインブースの reBako.io(リバコ) - イベント開催をオンラインで簡単に。 で雑談していたら、フィヨルドブートキャンプを運営している町田さんにアドバイザーとして招待していただきました。 bootcamp.fjord.jp

Oj gem のコラボレーターになりました。

いくつか高速化するパッチを送り続けていたら、oj のコラボレーターとして招待されました。 招待された pic.twitter.com/Pcr4fYRveu— Watson (@watson1978) 2021年8月7日

gruff のメンテナーになりました

RMagick が ImageMagick 7 に対応できたので、今度は RMagick を使用しているライブラリを見ていこうかとおもい、gruff のオーナーに連絡したら Contributor として招待していただきました。 とりあえず Rubocop を導入したので調教したりしながら、気長にや…

ImageMagick 7 に対応した RMagick 4.1.0 への移行方法

年始に転職して、現在は Repro株式会社 に所属しています。 昨日 ImageMagick 6 & 7 に対応した RMagick 4.1.0 をリリースしましたので、簡単に移行手順を書きます。 はじめに ImageMagick 6 と ImageMagick 7 が提供する異なる API インタフェースの差分を…

imagemagick formula のアップデート方法(備忘録)

RMagick が ImageMagick 7 に対応しそうなのだが Homebrew で提供されているバージョンだとビルドに失敗するので、アップデートをリクエストした。 やっていることは、ほぼ imagemagick@6 formula のアップデート方法(備忘録) - @watson1978 の日記 とおな…

imagemagick@6 formula のアップデート方法(備忘録)

ImageMagick がちょいちょい細かくバージョンを上げてくれるので、自分が使いたいバージョンにあげたときの作業ログです。 私が作業したのは https://github.com/Homebrew/homebrew-core/pull/40921 です。 Pull Request を作成するところで hub が使われる…

RMagick のメモリ使用量を改善した

【追記 2019/06/17】パッチを含んだ RMagick v3.2.0 がリリースされました。 RMagick を使用すると馬鹿みたいにメモリ使用量があがると言われ続けてましたが、修正方法の見込みがたちようやく直しました。 何が起きていたか RubyKaigi 2019 で登壇した際にも…

RubyKaigi 2019 で登壇しました。

RubyKaigi 2019 CFP を書いた - @watson1978 の日記 で応募した CFP が無事採択されたので、RubyKaigi 2019 で登壇してきました。CFP を採択、運営に携わったスタッフの皆さんに感謝です。 CFP にはエモいことを書いたりしましたが、RMagick がどう改善され…

Xcode を使って Ruby C 拡張ライブラリをデバッグ

RMagick のテストが通らないものを調べる際にどのようにデバッグしようかと思ったのですが、Debugging Ruby C Extensions in XCode - Emil Soman's blog に有益なことが書かれておりました。元の記事では Xcode 5.1 が使われていたので最新の Xcode のスクリ…

Ruby の Windows 環境 (備忘録)

RMagick の ImageMagick 7 対応 作業をするにあたり Windows 環境でも簡単に使えるようにインストールまわりを昨年末くらいからやってました。備忘録がてら作業ログを残しておきます。 Ruby の Windows 環境は 2 種類存在しております。 RubyInstaller に代…

RubyKaigi 2019 CFP を書いた

RubyKaigi 2019 CFP に応募しました。以下は書いた内容です。 RMagick, migrate to ImageMagick 7 Abstract The currently RMagick has some problems about installing on macOS/Windows platform. I will talk about RMagick that it will be migrated fro…

バッチ処理の一部で 30 分以上かかっていた処理を 14 秒で終わるようにした話

Ubiregi Advent Calendar 2018 の 18 日目です。 ユビレジではたくさんのお客様の大量の POS データをお預かりしており、様々なバッチ処理も実行されています。今回は特定のケースでバッチ処理の一部が 30 分以上かかっていた処理を 14 秒で終わるようにした…

Ruby 2.5 の SEGV と闘った話

Ubiregi Advent Calendar 2018 の 5 日目です。 同僚が「Ruby 2.5 が SEGV するんだけど」というので調べて見たときの話です。結論から言うと Ruby 2.6 では直っています。 クラッシュログ 同僚の変更内容を手元の macOS で動かすと確かに SEGV して以下の様…

RMagick の ImageMagick 7 対応の進捗

Ubiregi Advent Calendar 2018 の 2 日目です。 私は ユビレジ でスクラムチームに所属し Rails や iOS、React.js なコードを書いております。スクラムチームでは各個人に得手不得手がありながらもサーバやクライアントのコードを分け隔て無く面倒見ています…

numo-narray と malloc の不可解さ

RubyKaigi 2018 が終わった後、Red Data Tools に参加しようかと思い numo-narray を見ていたりするのですが、ベンチマークが不可解な値を示して頭を悩ませています。 使用しているベンチマークは公式の Wiki にあった Tentative Benchmark を用いてます。 r…

先週、Ruby 本体のカバレッジの取り方を学びました

やり方を忘れる前に。 先週の土曜日に Cookpad Ruby Hack Challenge #4 カバレッジ特別回という meetup に参加してきました。 Ruby 本体の C 言語で書かれた部分と Ruby で書かれたライブラリのカバレッジを取得する方法を勉強して実際にカバレッジを向上し…

#RubyKaigi 2018 3日目に参加しました。

途中からぬけて、嫁と合流して仙台市内を観光したりしてました。 Parallel and Thread-Safe Ruby at High-Speed with TruffleRuby 3年以上 TruffleRuby のことやっているそう CRuby と C extension のフルサポートをターゲッティング CRuby 2.5.1 より起動が…

#RubyKaigi 2018 2日目に参加しました。

RubyKaigi 2018 2日目に参加してきました。お昼に弁当食べたあと、仙台城跡を見に歩いて行ってきました(帰りはタクシーだったけど)。天気が良くて満足度が高かったです。 My way with Ruby My way with Ruby 活動されている内容のはなし。 フリーソフトウ…

#RubyKaigi 2018 1日目に参加しました。

発表を聞きながらメモした内容を貼っておきます。 Keynote ことわざの話 ことわざ=先人の知恵 名は体を表す -> 名前重要 名前を付けてアイディアを交換する。名前付けは非常に重要。 1. 振る舞いに対して クラス、メソッド、変数などの概念 名前付けが難し…

"Improve JSON Performance" という LT を RubyKaigi 2018 でしました

「LT、良かったですよー」と発表後にちらほら話しかけられて良かったです。 (余談)発表では JSON.parse() のパフォーマンスは 19 % 向上と話したのですが、RubyKaigi 2018 LT の CFP 出した - @watson1978 の日記 のときはもっとパフォーマンスが良かった…

OpenGithub という Xcode Source Editor Extension を作りました

Xcode で開いているファイルを GitHub で表示する - @watson1978 の日記 で作ったスクリプトをもとに、OpenGithub という Xcode Source Editor Extension を作りました。 github.com Xcode で開いているソースコードをGithub上で簡単に表示することができる…

Xcode で開いているファイルを GitHub で表示する

調べごとをしていると、Xcode で開いているファイルを GitHub で表示して URL をメモっておくことがままあります。RubyMine だと標準機能で現在開いてるファイルを、 ブラウザで GitHub 上のファイルを開くということができるのですが、なぜか Xcode には見…

RubyKaigi 2018 LT が accept されました

RubyKaigi 2018 LT の CFP 出した - @watson1978 の日記 でだいぶ雑に LT に応募したのですが、無事受理されました。先行して頂いた方々に感謝です。ゴールデンウィーク中に手直ししようかと思っていたのですが、飲んだくれてました(・ω・) RubyKaigi 2018 L…

GitHub Flavored Markdown の Quick Look プラグインを作りました

弊社ユビレジでは、開発要件や手動でテストすることをMarkdownファイルを書いてGitHub上のレポジトリにPull Requestし管理する運用をしています。 今までさっとプレビューしたいときにはQLMarkdownというプラグインを使用していたのですが、GitHub Flavored …

RubyKaigi 2018 LT の CFP 出した

次のような感じで RubyKaigi 2018 LT の CFP に出したよ。 ## Improve JSON performance I would like to talk my progress of daily contribution to Ruby world. Last year, I talked about my performance improvement to Ruby core at RubyKaigi 2017. I…