タグ

ブックマーク / hkdnet.hatenablog.com (12)

  • k0kubun/ruby-jit-challenge 完了報告 - Smoky God Express

    16.85倍はやい僕のJIT RubyKaigi 2023 お疲れ様でした。非常に面白かったですね。k0kubun さんのRJITについての発表が面白かったので ruby-jit-challange をやりました。無事完走できたので感想記事を書こうと思います(激ウマギャグ) ※: ベンチマークから rjit が抜かれてる理由は後述 RJIT / ruby-jit-challenge ってなに k0kubun さんが Ruby で JIT を書けるような機構を作ってくれました。それをRJITと呼びます。RJIT を手を動かして体験できるチュートリアルが公開されています。親切なREADME、命令列をJITするところ以外の部分、機械語生成用のヘルパーも用意されておりおもてなしの精神がすごい。みんなぜひやりましょう github.com なお冒頭で16倍はやいっていっていますが、特定ベンチマークに

    k0kubun/ruby-jit-challenge 完了報告 - Smoky God Express
  • 雑記 - Smoky God Express

    久々の雑記です。書き始めてから1ヶ月経ってて自分でびっくりしました。 生活 いろいろ変わった。コロナがありみんなの生活様式が変わり始めてから1年半、自分はもともと基的には引きこもりなので特に影響がないかと思っていたがそれなりに変わった。といってもコロナの影響はWFH100%になったこと、外に飲みに行けなくなったことくらいだろうか。外に飲みに行けないのは非常に困っている。実利的に困っているわけではなく、娯楽がないのでつらい、というくらいだが、娯楽が禁じられているのはそりゃつらい。なんとかなってほしいが、まあしばらくはこんな感じだろう、はい。 コロナの影響ではない生活の変化要因として、引っ越しと結婚があげられる。というわけで結婚しました。ツイッターとかだといつ書いていいのかわからないし特に報告する意味がなさすぎて書いてなかった。生活に関するところでは共働きで配偶者は出勤せざるを得ない業種、か

    雑記 - Smoky God Express
  • Rails 5.2.4 で autosave: true な関連が invalid なときに元レコードの valid? の振る舞いが変わっている件 - Smoky God Express

    rack の脆弱性対応があり1、それに対応した Rails を使おうとすると 5.2.4.1 を使う必要がある。のでアプデを試みた。5.2.3 -> 5.2.4.1 マイナーバージョンだし、大丈夫やろw と思いながらとりあえずCIを回してみたところテストが落ちた。はい。 原因を気合で確認したところ、この変更によるものであることがわかった。 github.com この変更自体について説明するとこんな感じ。例えば、既存レコードについて何らかの理由で Foo.find(1).valid? すると false を返すようなレコードがあるとする。後からバリデーションが追加されたんでも update 文を手でかいたらぶっ壊れたんでもよいけど、とりあえずそういう invalid なレコードがあるとする2。そのときに、それへの autosave: true な関連をもつモデルについてバリデーションの結果が

    Rails 5.2.4 で autosave: true な関連が invalid なときに元レコードの valid? の振る舞いが変わっている件 - Smoky God Express
  • 平成Ruby会議01 に参加してきました #heiseirubykaigi - Smoky God Express

    めちゃくちゃ楽しかったです。 トーク感想 What is expected? かねこさんのキーノート。パーザーの話。トーク前に expectってかいときゃ rspec だと思われるでしょ、などと邪悪な発言をしており治安が悪いなと思いました。 僕はスライドのチェックを依頼されたので事前に資料だけは見ていたのですが、なかなか骨太な内容でしたね。state の遷移図が結構くせもので、あれがあると state 自体が変化していくように思っちゃうのですが、実際には state の stack になっているのがミソです。あの図がないと遷移のイメージがわかない一方で、あれがあると誤解しやすいという。 まあたぶん誰も質問しない(できない)だろうと思って質問したいなーと思っていたのですが、なにせスライドを事前に読んでわからないところを聞いてるから質問が思い浮かばない。これはマズいと思っていたところ、資料チェ

    平成Ruby会議01 に参加してきました #heiseirubykaigi - Smoky God Express
  • Amazon SQSでFIFOだからってシステム全体が Exactly-Once になると思ったら大間違いだっていう話 - Smoky God Express

    TL; DR Amazon SQS で Exactly-Once なキューを使おうとも冪等な処理を書くべき キューが Exactly-Once であるという性質はシステム全体が Exactly-Once になることを保証できない 結局マルチデータソースへの書き込みの問題が残る Designing Data-Intensive Applications (邦訳: データ指向アプリケーションデザイン) が良書でした 邦訳は未読1ですが原著の内容がいいのできっとだいじょうぶでしょう Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems 作者: Martin Kleppmann出版社/メーカー: O'Reilly Media発売日: 2017/

    Amazon SQSでFIFOだからってシステム全体が Exactly-Once になると思ったら大間違いだっていう話 - Smoky God Express
  • RubyVM::AST を便利に使いたいので gem を作った - Smoky God Express

    github.com さっと作りました。 rubygems には登録してません(名前が重複してるかすら調べてないや) 経緯 Ruby 2.6.0preview2 から RubyVM::AST モジュールが使えるようになりました。 Ruby 2.6.0-preview2 Released RubyVM::AST [Experimental] Ruby 2.6 introduces RubyVM::AST module. This module has parse method which parses a given ruby code of string and returns AST (Abstract Syntax Tree) nodes, and parse_file method which parses a given ruby code file and returns AST

    RubyVM::AST を便利に使いたいので gem を作った - Smoky God Express
  • Speee×Asakusa.rb Ruby2.5リリースパーティー に参加してきました - Smoky God Express

    speee.connpass.com 行ってきました。 twitter に適当に投稿はしましたがだいぶはしょっているのでそれの補完を。 「突然CentOSが落ちるコードをコミットする人はちょっと」とか聞こえた— はくどー (@HKDnet) 2017年12月26日 なんか別方面にささったらしく妙にRTされましたが。これはnobuがCentOS6で落ちるコードをコミットしたことをネタにしていたそうです。コミッタ同士の仲が良さそうで微笑ましいですね。 最初は Matz からの挨拶がありました。無事リリースできましたねーというところと反省点。 2.5の反省。ギリギリのゴーサイン— はくどー (@HKDnet) 2017年12月26日 知り合いのコミッタも12月になってからも気合いれていろいろやっていて、11月にはもうフィーチャーフリーズしてるもんだと思ってたのですがそうでもないんだなあと思ってい

    Speee×Asakusa.rb Ruby2.5リリースパーティー に参加してきました - Smoky God Express
  • ruby/ruby にパッチ送ろうとしたけど失敗してる話 part2 - Smoky God Express

    注: part2といいつつpart1は書き上がってないのでこれが最初です 背景 るりまのサンプルコードを整備しようというプロジェクトがあるのはご存知ですか。 tbpgr.hatenablog.com id:tbpg さんがこちらで精力的に活動されているのですが、ある日こういう話を聞きました。 「Enumerator::Lazy#chunk の定義が可変長引数に見えるんだけど実際は引数渡すとエラーになるんだよね〜」 で、サンプルを書こうとしたときにちょっと詰まったと聞いたので、定義を可変長引数でなくできないだろうかと Ruby hack Challenge もくもく会#2 のネタにさせてもらいました。 connpass.com 事前調査 まずはざっと定義をみておきましょう。ruby/rubyにおいて組込みで用意されているクラスのメソッドはC言語で書かれていることが多く、その場合は rb_de

    ruby/ruby にパッチ送ろうとしたけど失敗してる話 part2 - Smoky God Express
  • Ruby hack Challenge もくもく会 に参加してきました - Smoky God Express

    connpass.com 一言感想。コミッターの方が多数いてすげーなーという気持ちになりました えーとこの会自体は Ruby hack Challenge という企画のもくもく会です。 企画自体はこちらのレポを参照するのがよいかと。 codeiq.jp 僕は rhc 自体には参加してないのですが RubyKaigi 以降はよく ruby/ruby を眺めているのでいってきました。 もくもく会なのでみんな適当になんかする、という感じだったのですが、僕はあまり何をするか考えていませんでした。とりあえずruby/rubyよんで気になったとこを見ようかなという気持ちです。 特に目的も定めずにざーっと読んで読んで、読み進めて。 気になったのが array.c の Array#uniq! の実装。frozen チェックのあたりがちょっと気になります。 static VALUE rb_ary_uniq_

    Ruby hack Challenge もくもく会 に参加してきました - Smoky God Express
  • Ruby本体読みはじめた人に届けたいドキュメント - Smoky God Express

    RubyKaigi2017に参加してやる気が高まったので最近は ruby/ruby のコードを読むようになってます。 github.com しかしこれがなかなか読むのにコツがいる感じです。 RubyKaigi参加前は “Ruby under a microscope”1 を読んで「Rubyの内側面白い!!!」ってなってたのですが、実際にCのソース読みはじめると全然違いますね。マクロ多いし、C言語のこともわからんし……。 Ruby Hacking Guide こと 『Rubyソースコード完全解説』2 を読んだほうがいいのかもと悩むようになりました。 でもそんな悩みも今日解決されました。これ読めばとりあえずはRubyのレポジトリを泳げるようになりそうです。 ruby/extension.ja.rdoc at trunk · ruby/ruby · GitHub これが非常によいです。まず読んで

    Ruby本体読みはじめた人に届けたいドキュメント - Smoky God Express
  • yet another pomodoro - Smoky God Express

    つくりました github.com いつもどおり英語は適当です。 モチベーション ポモドーロテクニックがやりたかった tmuxのバーに表示したかった ターミナルを全画面で使ってる事が多いのでmacのステータスバーに表示するのは微妙 tmuxのバーが一番いいかな?っていう感じで決まった 終わったら通知が欲しかった macユーザーなので右上にピコンと出る系のやつがよかった 対抗馬は? hughbien/thyme: Console Pomodoro timer 使おうとしたんだけど依存関係がちゃんと定義されてなくて普通にやると動かなかった たしかgem installしてレポジトリをとってきてbundle installしてその後bundle exec rakeしてテストを通すとようやく動くようになった 最後の1ステップがマジで謎すぎる ほかはしらない 作ったもの 1秒sleepして、ってやる

    yet another pomodoro - Smoky God Express
  • 2017年1月振り返り - Smoky God Express

    はやいものでもう2017年の1/12が終了したんですね*1。2016年振り返りで書いたように、定量的な指標を導入してみたのでそれを使って振り返りをやろうと思います。 定量的な指標というのはwakatimeで計測した時間です。wakatimeはコーディングしているときの時間を計測してくれるサービスです。 自分が最近何やってるかな、というのの振り返りにはもってこいですね。 プロジェクト名を書いても伝わらないので言語別の指標での振り返りを毎月やっていくことにします。 記録 2017年1月 コーディング時間: 3724分 言語比率 1〜5位 YAML 601 Ruby 388 ERB 254 Go 233 JavaScript 201 total: 8135 minutes 訂正版 Rank Name Minutes 1 Ruby 1658 2 YAML 1511 3 Go 1018 4 Java

    2017年1月振り返り - Smoky God Express
  • 1