リモートでアメリカの大学院に通い始めた

今年春に出願、夏に合格して秋学期からオンラインのコンピュータサイエンス修士コースで勉強している。ちょうど秋学期が終わって成績が返ってきたので、どういう感じだったか書いておく。 I've been officially admitted to Georgia Tech's OMSCS (Online Ma…

USの資産運用とクレジットスコア

前回はベイエリアでの収入や支出についてまとめたが、今回はUS生活でのお金に関するそれ以外の話、具体的には銀行、クレカ、投資、年金などについてこれまで調べたり考えたりしたことを書いておく。 日本に住んでる人でも、金利が0.01%や0.001%の普通預金を…

ベイエリアは東京より儲かるのか

サンフランシスコベイエリアでのITエンジニアの給料は東京より高いが、税金や物価も高いと言われている *1 。ではどちらに住む方がより多くの金が手元に残るのだろうか。 僕がベイエリアに移住してからちょうど1年が経ったので、僕が東京とベイエリアそれぞ…

US移住とブートストラップ問題

USに移住して4か月経った 入社直後から希望していたUS移籍を会社にサポートしていただき、去年の9/21にビザつきの状態で入国して、その後出張で出国は挟みつつもシリコンバレーで生活し始めてかれこれ4か月経った。 移住後の最初の2か月は右も左もわからず大…

2019年にやったこと

2018年にやったこと 2017年にやったこと 2016年にやったこと 2015年にやったこと ハイライト 会社でSREからバックエンドチームに移籍 シリコンバレーに移住し、生活の基盤を整えた RubyのJIT開発を継続し、その参考にすべくJVMの実装を少し勉強した Thanks t…

Rubyで最速のテンプレートエンジンを作る方法

HamlitというRubyで使うテンプレートエンジンをメンテしてて、ちょっと前に思いついたけどこれまで実装してなかった最適化のアイデアを昨日それに実装したので、それについてちょっと書きたい。 github.com StringTemplate というテンプレートエンジン amats…

セルフホストで学ぶJVM入門

RubyのJIT開発でやろうと思ってることが大体 @_ko1 さんの作業待ちでブロックしていて暇なので何かを書こうと思い、JVMを書くことにした。 まだその辺のアプリを気軽に動かせるレベルでは全然ないが、別に秘密裏に開発する必要もないと思ったので公開した。 …

令和時代のRubyコア開発

Ruby Core Development 2019というタイトルでRubyKaigiのCFPにプロポーザルを書いたのだが、 もう一つ書いた方の話が採択されたのでその話はしなかった。 さて、今日はRubyコア*1の開発がSubversionからGitに移った節目でもあったので、そっちのトークで言い…

2018年にやったこと

2017年にやったこと 2016年にやったこと 2015年にやったこと ハイライト 所属しているTreasure DataがArmに買収され、給料が増えた ジョブタイトルがSenior Software Engineerになった Ruby 2.6のJITコンパイラを開発し、Ruby Prize 2018をいただいた ARMに…

リモートでアメリカの大学院のCSの授業を取ってみた話

Armの福利厚生プログラム FlexPot 私が所属しているトレジャーデータは今年Armに買収され、福利厚生周りがArmのものに刷新された。 その中にFlexPotというものがあり、自己啓発にお金をつかってその領収書を会社に出すと、1年間の合計で上限XX万円まで会社が…

SQLで羃等にDBスキーマ管理ができるツール「sqldef」を作った

sqldefのリポジトリ github.com これは何か Ridgepoleというツールをご存じでしょうか。 これはRubyのDSLでcreate_tableやadd_index等を書いてスキーマ定義をしておくとそれと実際のスキーマの差異を埋めるために必要なDDLを自動で生成・適用できる便利なツ…

RubyのJITに生成コードのメモリ局所性対策を入れた話

昨日、RubyのJITの性能改善のためのパッチを入れた。 github.com JITすればするほどRailsが遅くなる問題 Rubyの次期バージョンである2.6には、バイトコードをCのコードに変換した後、gcc/clangでコンパイルして.soファイルにしdlopenすることで生成コードの…

個人で運用するKubernetesクラスタ

Kubernetesの使用感に興味があってaws-workshop-for-kubernetesというのを先週やり、ちょうどEKSがGAになった直後だったのでEKSが試せたのだけど、まあ最初からマネージドだとあまり面白みがないし金もかかるので、個人のVPSで動かしてた奴を全部Kubernetes…

Ruby 2.6にJITコンパイラをマージしました

The English version of this article is available here: medium.com 2/4(日)に、去年のRubyKaigiが終わった直後の新幹線で開発を始め10月に公開したJITコンパイラをRubyのtrunk (2.6.0-dev) にマージし、昨日TD Tech Talk 2018で以下のような内容の発表を…

2017年にやったこと

2016年にやったこと 2015年にやったこと 要約 今年はクックパッドからTreasure Dataに転職し、Rubyコミッターになり、結婚しました。 近況です / “Treasure Data に入社しました - k0kubun's blog” https://t.co/7G7WMahI6L— k0kubun (@k0kubun) 2017年3月1…

ISUCON7本戦「Railsへの執着はもはや煩悩」で4位だった

ISUCON7本戦に「railsへの執着はもはや煩悩の域であり、開発者一同は瞑想したほうがいいと思います。」チーム (@cnosuke, @rkmathi, @k0kubun) で参加し、4位でした。 本戦の概要 予選より参加者は少ないと思うので軽く解説しておくと、クッキークリッカーを…

ISUCON7予選2日目「Railsへの執着はもはや煩悩」で予選通過した

ISUCON7予選に「railsへの執着はもはや煩悩の域であり、開発者一同は瞑想したほうがいいと思います。」チーム (@cnosuke, @rkmathi, @k0kubun) で参加し、217,457点で予選通過だったようです。 正確な値は覚えてませんが、Best Scoreは25万くらいでした。 最…

VMに手を加えずRubyを高速化するJITコンパイラ「YARV-MJIT」の話

先日のRubyKaigi 2017のLTではLLVMベースのCRuby向けJITコンパイラLLRBの話をしました。 5分はちょっとJITの話をするには短かかったですね。 LLRBをふまえた、Cのコード生成への軌道修正 さて、上記の資料にある通り、CRubyのJITにおいてはメインの高速化対…

GraphQLは何に向いているか

今年GitHubがGraphQL APIを正式公開したあたりから、GraphQLが去年とかに比べちょっと流行り始めたように感じる。idobataがGraphQL APIを公開したり、Kibelaも公開APIをGraphQLで作ることを宣言している。 利用者側からすると使えるインターフェースの中から…

CRuby向けのLLVMベースのJITコンパイラを書いている話

LLRBというRuby向けのメソッドJITコンパイラを書いている github.com RubyKaigi 2015の最後のキーノートで@evanphxが「LLVMでCRubyのコードをインライン化するメソッドJITを実装したら速いんじゃね」みたいな発表をしていたのを覚えているだろうか。 LLRBと…

Ruby コミッターになりました

m_sekiさんとhsbtさんの推薦で、ERBのメンテナとしてRubyのコミット権をいただきました。 以下が初コミットです。 github.com 普段テンプレート言語Hamlの高速化やその更に高速な別実装Hamlitの実装をやっていてテンプレートエンジンの高速化に知見があり、…

Treasure Data に入社しました

3月から Treasure Data で働いています。入社初日からタスクをアサインされ、RailsでAPIの開発をやりました。 なぜ Treasure Data に転職したのか 前職もやりたいことができて優秀な同僚に囲まれ文句ない環境だったのですが、アルバイト入社から数えるともう…

Hamlを3倍速くした

Hamlコミッターになった RubyKaigi 2015で「Hamlは遅いしメンテされてないので使わない方がいい」と言ったところ、じゃあ自分でメンテして速くしろということになりコミッターになった*1。 当時から2年ごしなのは、当時のHamlのオーナーがあまりアクティブで…

Linux デスクトップ環境 2017

Linux デスクトップ環境 2016 - eagletmt's blogの人に影響を受けて自作PCでLinuxデスクトップを使い始めてから約1年半が経ち、僕の使う環境が一通り満足な状態になったので今どういう構成なのか書いておく。 僕はKeynoteを使う時とか会社のマシンでmacOSも…

2016年にやったこと

クックパッドで働くのは4年目、社会人としては2年目になった。2015年にやったことと同じフォーマットでまとめておく。 発表 今年は6本発表した。去年RubyKaigi前後にいろいろ集中してて死にかけたので、2か月に1回というのが僕にとってはちょうど良いペース…

Linux向けの最強のキーリマッパーを作った

X Window Systemで動作するキーリマッパー「xremap」を作った 2017/1/9追記: xkremap→xremapにリネームしました 2021/12/21: Rust化に伴いアーキテクチャを刷新し、より多くの機能と環境がサポートされました: Linux用キーリマッパーxremapをRustで書き直し…

RubyConf 2016 で話してきた & MItamae v1.0.0をリリースした

RubyConf 2016で登壇してきた 2016/11/10〜11/12にアメリカのオハイオ州シンシナティでRubyConfというイベントがあって、Ruby DSLによって設定できるCLIツールをRubyインタプリタやgemの存在に依存しないシングルバイナリとして実装するための知見を「Evalua…

Itamaeのmruby実装「mitamae」が大体いい感じになった話

Roppongi.rb #2 で「mitamae」について話してきた Roppongi.rb #2が "Infrastructure x Ruby" をテーマに開催され、そこで RubyなしでItamaeレシピを実行できる「itamae-go」を作った - k0kubun's blog 話と pure mrubyで実装されたItamae「itamae-mruby」を…

SSEを使ってHTMLエスケープを高速化してみた

高速なHTMLエスケープをするライブラリを作った ある日HTMLエスケープを速くしたくなって、hescapeというライブラリを作った。 github.com とにかく速いHTMLエスケープがしたい Railsアプリのビューのレンダリングにおいて、CGI.escapeHTMLを高速化*1するこ…

pure mrubyで実装されたItamae「itamae-mruby」を作った

itamae-goを作り直してitamae-mrubyを作った 先週Goからmrubyを使ってRubyなしでItamaeレシピを実行できる「itamae-go」を作ったんだけど、全く同じコンセプトの、RubyなしでItamaeレシピを実行できる「itamae-mruby」を作った。 github.com itamae-goの問題…