タグ

rubyに関するjoker1007のブックマーク (355)

  • RubyWorld Conference 2024に参加してました - .。○(あいおいです)

    はじめに こんばんは、あいおいです。佐香やではすみませんでした……。今回は初めて松江に行ってRubyWorld Conference*1に参加したのでその話をします。なんか過去のブログを見ると見出しサイズがまちまちで「なぜ…?」と思っています。 Day -1 荷造りが終わってなくてお昼とかに気合で荷造りしてなんとかサンライズに間に合いました。サンライズのチケットはべーたさんに取ってもらっています。ありがとうべーたさん……あなたは今ぷぽさんと楽しげに蟹を茹でています*2ね……楽しそうで何よりですよ…… サンライズ、こたつハウスの住人たちとうなすけと大倉さんと金子さんといまいずみさんが一緒に乗ってたんだったかな。いまいずみさんがいるのは知らなかったのでびっくり。 いってきまーす べーたさんに取ってもらったのは4人分で、2人ずつ。ぷぽさんとべーたさんはあんまり寝られてないのでゆっくり寝てもらうた

    RubyWorld Conference 2024に参加してました - .。○(あいおいです)
  • RubyKaigi 2024に行ってきた&しゃべってきた - たごもりすメモ

    沖縄、那覇で行われたRubyKaigi 2024に参加してきた。いやあ、もう、最高でしたね。 (Photo by @hsbt -san) しゃべってきた "Namespace, What and Why" というタイトルで話してきた。 speakerdeck.com これはいまRubyに提案している"Namespace on read"というものについての紹介で、当は実装面とかも細々ひたすら語りたかったんだけど、なにしろこれまでのRubyに全くなかったパラダイムと機能なので、デモやユースケースの紹介、これからどうなるか、みたいな解説を中心にせざるをえなかったかな、というのはある。けど、そうしただけあって、聞いてくれた人達にはかなりインパクトを与えられた、んじゃないかなあ、少なくともKaigi中にいろんな人から感想を聞く限りは……。 実装はまだ完成していなくて、自分のトークが15日(水曜)

    RubyKaigi 2024に行ってきた&しゃべってきた - たごもりすメモ
    joker1007
    joker1007 2024/05/21
    モリスさんの発表は実に良い発表だった。未来にワクワクする!
  • フルタイムRubyコミッター・松本宗太郎を採用 開発生産性やコード品質向上に取り組み、Ruby自体の改善にも寄与|ニュース|株式会社タイミー(Timee,Inc.)

    フルタイムRubyコミッター・松宗太郎を採用 開発生産性やコード品質向上に取り組み、Ruby自体の改善にも寄与 #経営情報 スキマバイトサービス「タイミー」を提供する株式会社タイミー(所在地:東京都港区、代表取締役:小川 嶺)は、開発生産性やコード品質の向上を目的とし、松宗太郎をフルタイムRubyコミッターとして採用したことをお知らせします。 「『はたらく』を通じて人生の可能性を広げるインフラをつくる」というミッションの実現に向け、開発における生産性やコード品質向上に取り組み、さらなる事業拡大を進めてまいります。 Rubyコミッター:松宗太郎(Soutaro Matsumoto) 【略歴】 Rubyコミッター。大学院でRubyプログラムの型検査の研究に取り組み、修了後はスタートアップでWebアプリケーションの開発に従事。2017年から型検査ツールSteepの開発を始め、2019年から

    フルタイムRubyコミッター・松本宗太郎を採用 開発生産性やコード品質向上に取り組み、Ruby自体の改善にも寄与|ニュース|株式会社タイミー(Timee,Inc.)
    joker1007
    joker1007 2024/04/18
    おお、soutaroさんtimeeでフルタイムRubyコミッタとして勤務するのか!おめでとうございます!
  • プロと読み解くRuby 3.3 NEWS - STORES Product Blog

    テクノロジー部門CTO室の笹田(ko1)と遠藤(mame)です。今年の 9 月から STORES 株式会社で Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています(Rubyのこれからを STORES で作る。Rubyコミッター笹田さん、遠藤さんにCTOがきく「Fun」|STORES People )。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 日 12/25 に、恒例のクリスマスリリースとして、Ruby 3.3.0 がリリースされました(Ruby 3.3.0 リリース)。クックパッド開発者ブログで連載していたように、今年も STORES Product Blog にて Ruby 3.3 の NEWS.md ファイルの解説をします(ちなみに、STORES Advent Calendar

    プロと読み解くRuby 3.3 NEWS - STORES Product Blog
  • Ruby: メモ化のイディオムが現代のRubyパフォーマンスに与える影響(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Performance impact of the memoization idiom on modern Ruby | Rails at Scale 原文公開日: 2024/02/14 原著者: Jean Boussier(byroot) CC BY-NC-SA 4.0 Deed | 表示 - 非営利 - 継承 4.0 国際 | Creative Commons Ruby 3.2における主要な内部変更のひとつに、オブジェクトシェイプ(object shape)の導入があります。 記事では、オブジェクトシェイプが導入された理由、仕組み、制限事項について解説します。 🔗 オブジェクトのインスタンス変数はどのように保存されるのか Rubyは非常に動的な言語なので、インスタンス変数へのアクセスという単純な操作でも多くの作業を伴います

    Ruby: メモ化のイディオムが現代のRubyパフォーマンスに与える影響(翻訳)|TechRacho by BPS株式会社
  • neovimで作る最新Ruby開発環境2023

    大阪Ruby会議03 登壇資料。 neovimの話かと思わせておいて、実は半分以上LSPの話だったりする。 source markdown: https://github.com/joker1007/slides/blob/gh-pages/osaka_rubykaigi_03/slides.md

    neovimで作る最新Ruby開発環境2023
    joker1007
    joker1007 2023/09/11
    SpeakerDeckにも大阪Ruby会議03での登壇資料を上げました。neovimの話かと思いきやLSPがメインの話です。
  • YJITの性能を最大限引き出す方法 - k0kubun's blog

    RubyのJITコンパイラYJITを開発している弊社Shopifyでは、社内で最もトラフィックが多いストアフロントのアプリにRuby 3.3 (master) をデプロイして平均レスポンスタイムが16%高速化、社内で最も大きなアプリであるモノリスにRuby 3.2をデプロイして平均レスポンスタイムが9%高速化している。他の会社でも、YJIT番で有効にしたら高速化したという事例をちらほら目にした。 一方で必ずしも良い報告ばかりではなく、YJITを有効化したらメモリを使い切ってしまったりだとか、遅くなったみたいな報告も目に入ることがある。こういった問題は我々も多かれ少なかれ経験しており、それぞれ適切に対処することで解決できたため、その知見を共有する。*1 メモリを使い切ってしまった時 zenn.dev YJITを有効化すると、YJITが生成する機械語に加えて、それに関するメタデータもメモリ

    YJITの性能を最大限引き出す方法 - k0kubun's blog
  • Ruby programming with types in action

    RubyKaigi 2022 -- Tsu, Mie, Japan September 10, 2022

    Ruby programming with types in action
  • RubyKaigi2022で発表した - スペクトラム

    rubykaigi.org speakerdeck.com RubyKaigi2022で発表した。オンライン参加で、発表は録画だったので、発表したかどうかは奇妙な感じだけど、ともかくできるだけのことはやりきった。 僕にとって、RubyKaigiは2013が最初の参加だった。以来「いつかは発表を……。」と思ってはいたけど、ネタがなかったり、CFPを出したけどRejectだったりだった。 今回、"Rubyに関する国内最大級の国際会議"に初登壇できたのは万感の思いだ。当に嬉しい。 一方、採用率(採用数 / CFP数)は実は2倍もない。つまり誰にでもチャンスはあって、やれる覚悟があるかどうかが重要なのだ。みんなも発表やってみよ。 KPI "GitHubリポジトリのスター100個"を目標にしてたけど、結果としては30くらいだった。 https://github.com/ksss/orthoses

    RubyKaigi2022で発表した - スペクトラム
  • Hashの値の省略記法 - NaCl Blog

    とみなされるというもので、ES6と同じ記法です。 ただ、HashというよりSetに見えるという理由で却下されました。私自身、すごくほしいというよりは「実装できたから提案してみるか」という感じだったので、あまりがんばって説得しなかった気がします。 次の提案は2018年のFeature #14579 Hash value omissionです。Hashのように見えないのがいやだと言われたので という記法に変更しました。 これならちゃんとHashに見えるので意気揚々と提案したのですが、「前の文法よりいいけど、ES6の文法と違うRuby独自の文法の導入になっちゃうし、どっちも直感的じゃないから好きじゃない」という理由でこれも却下されました。 ES6と違う文法を導入するのはいやで、ES6の文法もいやということで、ああこれは詰みですねということでもう提案を諦めることにしました。 ところが、その後も同じ

    joker1007
    joker1007 2021/12/20
    “来年はRuby 3.2にするっと入ってしまったProc#usingを紹介したいと思います。” 超期待してますw
  • mmcはどう失敗したのか - Qiita

    「愚者は経験に学び、賢者は歴史に学ぶ」はビスマルクさんの言葉ですが(ググった)、愚者である私は当然経験から学んでおります。経験から学ぶととかく失敗が多いのですが(これも経験から学んだ)、今回は私が5年くらい取り組んでいるmmcが失敗した話でもしたいなと思います。 はじめに 静的型付けであらずんばプログラミング言語であらず 世はまさに大静的型付け時代なわけですが、動的型付け言語が静的型付け言語と同じとかそれ以上の速度で動作したらどうでしょう?実はそのような言語処理系は既に存在し、Stalinなどはその代表です。まあ、静的型付けがもてはやされるのはプログラムの実行速度だけではないので変わらないかもしれませんが。 mmcもStalinと同じようにとにかくどんなにコンパイル時間がかかっても(ここ重要)高速なコードを生成するという目標で開発したRubyからCに変換するトランスレータです。正確には入力

    mmcはどう失敗したのか - Qiita
  • HTTP server in Ruby 3 - Fibers & Ractors

    This is part #2. Head over to part #1 to learn about HTTP in Ruby. Motivation Historically Ruby's been lacking in the concurrency department. Ruby has "native" threads (prior to 1.9 there were only "green"), which means there can be multiple threads controlled by an OS, but only 1 thread can be executed at a time, this is managed via Global Interpreter Lock (GIL). However, native calls and I/O cal

    HTTP server in Ruby 3 - Fibers & Ractors
  • Sorbet Compiler: An experimental, ahead-of-time compiler for Ruby · Sorbet

    For the past year, the Sorbet team has been working on an experimental, ahead-of-time compiler for Ruby, powered by Sorbet and LLVM. Today we’re sharing the source code for it. It lives alongside the existing code for Sorbet on GitHub, mostly in the compiler/ folder: → https://github.com/sorbet/sorbet/tree/master/compiler/ We want to be clear up front: the code is nowhere near ready for external u

    Sorbet Compiler: An experimental, ahead-of-time compiler for Ruby · Sorbet
    joker1007
    joker1007 2021/07/31
    Sorbetで型を付けたRubyコードからLLBM-IRを生成し、RubyのC extension互換のsoファイルにコンパイルして、それをRuby VMからrequireして実行する方式か。
  • RBS Railsを使ってRailsアプリケーションにSteepを導入する - pockestrap

    RBS Railsを使ってRailsアプリケーションにSteepを導入するまでの解説します。 ただしこの「導入できる」というのは、解析が完走するという意味です。 型エラーを全てつぶすことや、Steepを実際の開発フローに乗っけることは私もまだできていないため、この記事ではサポートしません。 登場人物 RailsアプリケーションにSteepを導入するには、複数のプロジェクトが関連してきます。 まずはそれらをざっと紹介します。 steep gem Rubyの静的型検査器です。 rbs_rails gem RailsでRBSを使う上で必要な型定義を提供・生成するgemです。 データベースのスキーマ定義からモデルの型生成、及びroutesの定義からパスヘルパーの型生成をします。 それ以外のコードの型生成は担当範囲外です。 rbs gem ビルトインのライブラリ、及びスタンダードライブラリの型定義を

    RBS Railsを使ってRailsアプリケーションにSteepを導入する - pockestrap
  • しまもん | おく | RubyWorld Conference 2019 に参加しました

    joker1007
    joker1007 2019/11/11
    本当お世話になったなーと思って読んでたら、最後に俺とkoicさんが話してたTracePointの注意事項が出てきて吹いたww
  • TracePointから学ぶRubyVM

    富山Ruby会議 発表資料

    TracePointから学ぶRubyVM
    joker1007
    joker1007 2019/11/03
    富山Ruby会議の発表資料です。PDF上げたら解像度が上手く調整できなくてソースコードが読み辛いかも……。 #toyamark
  • What a cool Ruby-2.7 is !

    大阪Ruby会議02 発表スライド

    What a cool Ruby-2.7 is !
    joker1007
    joker1007 2019/09/17
    遅くなりましたが、大阪Ruby会議02で登壇した際の資料をUploadしました。 #osrk02
  • Instance Variable Performance

    require "benchmark/ips" class Foo def initialize forward forward ? go_forward : go_backward end ivars = ("a".."zz").map { |name| "@#{name} = 5" } # define the go_forward method eval "def go_forward; #{ivars.join("; ")} end" # define the go_backward method eval "def go_backward; #{ivars.reverse.join("; ")} end" end # Heat Foo.new true Foo.new false Benchmark.ips do |x| x.report("backward") { 5000.t

  • Ruby on Jets | Serverless Deployment Service

    Jets: Serverless Deployment Jets is a Deployment Service. Jets makes it easy to deploy and run your app on Serverless. It packages up your code and runs it on AWS Lambda. Jets can deploy Rails, Sinatra, Hanami, and any Rack app. Learn More!

    joker1007
    joker1007 2019/05/17
    おお凄い!しかし、これ実際結構お金かかるんじゃなかろうか。
  • Ruby 2.6.0とより高速なcsv - 2018-12-25 - ククログ

    Rubyの標準添付ライブラリーのcsvをメンテナンスしている須藤です。 歴史 csvは名前の通りCSVを読み書きするための便利ライブラリーです。 もともとRuby体とは別に開発されていたのですが、Ruby 1.8.0のときにRuby体にバンドルするようになりました。dRubyやREXMLがRuby体にバンドルされたのも同じタイミングです。Ruby 1.8.0のときにバンドルするライブラリーをすごく増やしたのです。(その頃の様子がわかるURLをここに置いておきたかったけど見つけられなかった。。。) Rubyではcsvのようにrequireするだけで使えるライブラリーを「標準添付ライブラリー」と呼んでいます。Stringのようにrequireしなくても使えるライブラリーは。。。なんだろう。組み込みクラスかしら。 その後、Ruby 1.9.0のタイミングで実装をFasterCSVに置き換え

    Ruby 2.6.0とより高速なcsv - 2018-12-25 - ククログ
    joker1007
    joker1007 2018/12/26
    コツコツ積み重ねてあるなあ。