並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 10016件

新着順 人気順

rubyの検索結果161 - 200 件 / 10016件

  • [Ruby]うるう日の午前0時から9時までに起動したプロセスでのみ再現するサーバー障害

    原因調査 エラーの発生箇所の特定 このエラーIncorrect datetime valueはデータベースのdatetime columnに対して不正な値を書き込もうとしたことが原因で発生しています。通常のINSERT statementを使って、過去の時刻を書き込むことはほとんどありませんが、MySQLなどに用意されているINSERT … ON DUPLICATE KEY UPDATE statementを使って複数の行を更新するときには、過去の時間を使ったクエリが生成されます。 例えば、複数の消耗品を所持しており、1つのクエリで複数の所持数を変更するときは、下記のようになります。 // PK(user_id, item_id) SELECT * FROM items WHERE user_id = 123; user_id | item_id | quantity | created_

      [Ruby]うるう日の午前0時から9時までに起動したプロセスでのみ再現するサーバー障害
    • MemoryView: Ruby 3.0 から導入される数値配列のライブラリ間共有のための仕組み - Speee DEVELOPER BLOG

      Ruby コミッターの村田です。Ruby 3.0 に組み込まれる実験的な新機能を作ったので解説します。 新機能は MemoryView と名付けられました。これは C などで書かれる拡張ライブラリ向けの機能です。メモリ上の、型が均一で同一サイズの要素から構成される配列 (e.g. 行列や画像など) を、複数の拡張ライブラリ間でコピーレスで共有するために必要な仕組みを提供します。 MemoryView が導入された背景 多次元数値配列が重要な役割を持つ時代になった 深層学習やデータサイエンスの流行にあわせて、メモリ上で大きなサイズの多次元数値配列データを処理する事例が増加しています。このような数値配列データに対する処理は、複数のライブラリの機能を組み合わせて実現されます。この分野でよく使われる Python では、データ構造を numpy と pandas が提供し、機械学習アルゴリズムを

        MemoryView: Ruby 3.0 から導入される数値配列のライブラリ間共有のための仕組み - Speee DEVELOPER BLOG
      • エクストリームプログラミングの成功にRubyは欠かせない 角谷信太郎氏が語る『研鑽Rubyプログラミング』にかける想い

        「初学者から上級者までが楽しめるWeb系の技術カンファレンス」、Kaigi on Rails。ここでKakutani氏が、「Polishing on "Polished Ruby Programming" 」をテーマに登壇。『Polished Ruby Programming』という書籍について紹介しました。 今回のセッションで伝えたいこと 角谷信太郎氏:みなさんこんにちは。角谷と言います。Rubyist-istをやっています。 Rubyist-istとは、Rubyistが好きな人のことです。この話は4年前に島根のRubyWorld Conferenceでして、YouTubeに動画とかもあるのでよかったら見てください。 いいカンファレンスで2021年もあるので、ぜひ3万円の松葉ガニを買って、一緒にカニを食べながら楽しみましょう。 『Polished Ruby Programming』という

          エクストリームプログラミングの成功にRubyは欠かせない 角谷信太郎氏が語る『研鑽Rubyプログラミング』にかける想い
        • 大規模分散DBのCloud Spannerが、RailsのActive Recordに対応。スケーラブルで高可用なRubyアプリケーションの開発が容易に

          Googleは、同社がクラウドサービスとして提供しているCloud SpannerをRailsのActive Recordに対応させるアダプタ「activerecord-spanner-adapter」が正式版となったことを発表しました。 Cloud Spannerは、Googleの多数のデータセンターにまたがる地球規模で大規模分散処理を行うリレーショナルデータベースです。事実上無制限とされる高いスケーラビリティと99.999%の高可用性を備えつつ、強い一貫性とトランザクション処理、SQLによるクエリなどを実装しています。 メルカリの決済サービスであるメルペイがバックエンドデータベースにCloud Spannerを採用し、数百万ユーザーの処理を行っているとされています。 このCloud SpannerをRailsのActive Recordのバックエンドデータベースとして使えるようにするア

            大規模分散DBのCloud Spannerが、RailsのActive Recordに対応。スケーラブルで高可用なRubyアプリケーションの開発が容易に
          • Rubyアンチパターン: なんでもHash

            ソフトウェアの内部では、データを様々な形に加工しつつ、あちこちに受け渡して再利用します。そのためのデータ構造として、RubyではHashクラスのオブジェクト(他の言語ではMapだったりDictionaryだったり連想配列だったりします)を使うことはよくあります。 単体の数値や文字列ではなく、それらを組み合わせたデータを扱う際には、Hashオブジェクトが便利です。 しかし、あらゆる場面でHashを駆使しようとすると、利便性よりも弊害が大きくなります。 典型的な症状 あちこちで同じだったりちょっと違ったりするHashオブジェクトを引き回していたりします インスタンス変数が少なく(あるいはまったくなく)、その代わりとしてメソッド引数のHashオブジェクトにいろんなデータを渡していたりします 1つのHashオブジェクトのキーとして、文字列やシンボル、さらにはそれ以外のクラスのオブジェクトが使われて

              Rubyアンチパターン: なんでもHash
            • 「人とAIの“模倣”は本質的に同じ」Rubyの父・まつもとゆきひろに聞く、技術の進化と“模倣”の関係 レバテックラボ(レバテックLAB)

              「人とAIの“模倣”は本質的に同じ」Rubyの父・まつもとゆきひろに聞く、技術の進化と“模倣”の関係 2024年5月14日 一般財団法人Rubyアソシエーション 理事長/Ruby開発者 まつもと ゆきひろ(松本行弘) プログラミング言語Rubyの生みの親。株式会社ネットワーク応用通信研究所フェロー、一般財団法人Rubyアソシエーション理事長、NPO団体軽量Rubyフォーラム理事長などを務める。島根県松江市名誉市民。 近年、大量のデータから文章や画像を生み出す生成AIに注目が集まる中、改めて「模倣」が果たす役割を問い直そうという動きが広がっているように見受けられます。実際に、人間はこれまで、既存の技術を「模倣」しながら新しい技術をつくりだし、その繰り返しによって発展を遂げてきました。 世界中のプログラマーから支持を集める「Ruby」も、他のプログラミング言語のさまざまな要素を採り入れて誕生し

                「人とAIの“模倣”は本質的に同じ」Rubyの父・まつもとゆきひろに聞く、技術の進化と“模倣”の関係 レバテックラボ(レバテックLAB)
              • RailsアプリをRuby 2.7.0で動かして分かったこと | Recruit Tech Blog

                はじめに (背景) 昨年のクリスマスにRuby 2.7.0がリリースされました。 Ruby 2.7は今年リリース予定のRuby 3への移行を見据えたバージョンであり、多くの新機能や変更点があります。そこで、弊社が企画制作する『Babyプラス』のRailsアプリをRuby 2.6.5 -> 2.7.0に上げて動かしてみたところ、約1,000件のテストケース実行に対して6件のエラーと2,700件ほどのワーニングが発生しました。この結果の分析によりRuby 2.7移行について傾向と対策が見えてきたので、現時点 (2020/01/08) で分かったことを共有します。 結論 (Ruby2.7移行についての傾向と対策) 傾向として、多くのgemがRuby 2.7.0からワーニングとなる言語仕様変更の影響を受ける 具体的には、ブロック無しProc.new/proc/lambdaおよびキーワード引数 (k

                  RailsアプリをRuby 2.7.0で動かして分かったこと | Recruit Tech Blog
                • 初学者が Ruby on Rails の広大さに途方にくれたけどなんとかやっていけるようになった話 - Eggshell

                  これは「フィヨルドブートキャンプ Part 1 Advent Calendar 2020」の4日目の記事です。 フィヨルドブートキャンプ Part 1 Advent Calendar 2020 - Adventar 昨日は hogucc さんの Rubyでリファクタリングをやってみよう でした。 Part2 もあります。 フィヨルドブートキャンプ Part 2 Advent Calendar 2020 - Adventar また、この記事は2020年ふりかえりアドベントカレンダー 4日目です。昨日の記事は 「数学ガールの秘密ノート/学ぶための対話」感想 です。 今日はフィヨルドブートキャンプで最も苦しんだプラクティス、Ruby on Rails についての思い出を書こうと思います。随分長くなってしまいましたが、ふわっとした話なので暇なときにでもどうぞ.. フィヨルドブートキャンプで Rub

                    初学者が Ruby on Rails の広大さに途方にくれたけどなんとかやっていけるようになった話 - Eggshell
                  • Google App EngineでRubyのスタンダード環境でのサポート開始。負荷がないときはゼロインスタンスまで縮退可能

                    Google App EngineでRubyのスタンダード環境でのサポート開始。負荷がないときはゼロインスタンスまで縮退可能 Google App Engineは、JavaやPython、PHP、Node.js、Goなどさまざまなプログラミング言語の実行環境を提供する、いわゆるPaaS型クラウドサービスです。 利用者はこれらのプログラミング言語で記述されたコードをデプロイするだけで実行可能。負荷に合わせたプロセスの増減などスケーラブルな処理や、万が一プロセスが異常終了したときのフェイルオーバーの処理などもクラウド側で行ってくれるため、運用の手間がかからないなどのメリットがあります。 Google App Engineは2016年から、ユーザーがGoogle App Engineにプログラミング言語の実行環境を持ち込んで実行できる「フレキシブル環境」においてRubyをサポートしていました。

                      Google App EngineでRubyのスタンダード環境でのサポート開始。負荷がないときはゼロインスタンスまで縮退可能
                    • Ruby フルタイムコミッタの仕事報告 2022年12月 - ANDPAD Tech Blog

                      こんにちは、hsbt です。先日、Podcast を収録した際に紹介した PS5 のウィッチャー3がまだ終わらずに引き続き時間を費やしています。いつになったら終わるのでしょう。 今日は前回の Ruby フルタイムコミッタになってからやったこと、の定期シリーズということで 2022年12月にフルタイムコミッタとして行った仕事の一部をご紹介します。 ソフトウェア開発におけるアーカイブの重要性 Ruby に限らずソフトウェア開発において、コードの Why と Why not を把握できる状況を維持することは、自分だけではなくソフトウェアに関わるチームメンバー全員にとって、継続的な開発を行うための重要な取り組みです。 コードには How テストコードには What コミットログには Why コードコメントには Why not を書こうという話をした— Takuto Wada (@t_wada) 2

                        Ruby フルタイムコミッタの仕事報告 2022年12月 - ANDPAD Tech Blog
                      • Ruby 3.3’s YJIT Runs Shopify’s Production Code 15% Faster

                        Ruby 3.2 YJIT is Battle-Tested Shopify deploys YJIT on business-critical services in production, such as Storefront Renderer, the software that powers all online storefronts on Shopify’s platform, and Shopify’s Monolith. As of the Ruby 3.2 release, YJIT sped up our Storefront Renderer by 10% on average. Storefront Renderer is a complex application. Your more reasonable-sized app might get better/w

                          Ruby 3.3’s YJIT Runs Shopify’s Production Code 15% Faster
                        • Ruby 3.0の静的型定義をTypeScriptみたいにライブラリに書いてみた所感 - Narazaka::Blog

                          Ruby 3.0が先日のクリスマス(というか昨日)にリリースされたと言うことで、型をやっていきたいと思います。 当方TypeScript大好きっ子なのでRuby 3.0で取り込まれた最も注目すべき機能は静的型チェック関係なのですが、どうもその辺についていまいちまとまって書いてある物がなかった気がするので調べたことをメモします。 Rubyの静的解析 型宣言 rbsファイルを作る方法 実際に型宣言を書く(基本) 検査時の型アノテーションが貧弱でつらいぞ…… 所感 gemに型を含める Steepの作者さんからフィードバックをいただきました。(※追記) 実際に型宣言を書く(Rails関連) DefinitelyTyped相当?「gem_rbs」と「rbs_rails」 実際に型宣言を書く(頑張っていい感じにする)(※追記) VSCode拡張機能で充実する 所感 untypedでやっていき Defi

                            Ruby 3.0の静的型定義をTypeScriptみたいにライブラリに書いてみた所感 - Narazaka::Blog
                          • Rubyのコミッタになりました - kateinoigakukunのブログ

                            実は先日 ko1さんとmameさんから推薦をいただき、Rubyのコミッタになりました。 ここ数ヶ月間、Rubyアソシエーションの開発助成プロジェクトとしてCRubyのWASIサポートを進めており、WASIのプラットフォームメンテナが必要ということで。 WASI対応の話はPublickeyさんに良い感じにまとめていただきました。詳しい実装の話は後日書こうと思います。1 www.publickey1.jp 正直Rubyのことを聞かれても答えられる自信はありませんが、CRubyの実装はほんのり分かるようになりました。あとビルドスクリプトはどこもつらい。2 という訳で、晴れてSwiftとRubyのコミッタという謎の人材になりました。 引き続きどちらもやっていくので、よろしくおねがいします。 書きました An Update on WebAssembly/WASI Support in Ruby |

                              Rubyのコミッタになりました - kateinoigakukunのブログ
                            • OSS開発者が自分の人生を犠牲にしなくていい。「フルタイムRubyコミッター」という生き方が与えてくれた恩恵 - Findy Engineer Lab

                              お店のデジタル化を支援するSTORES 株式会社(以下、STORES)は、Rubyコミッターの笹田耕一(@koichisasada)さんと遠藤侑介(@mametter)さんの両名を社員として採用しました。笹田さんと遠藤さんはフルタイムのRubyコミッターとして STORES に入社し、Rubyの機能改善や品質向上のための仕事に専念します。 どのような経緯で、両名は STORES への転職を決めたのでしょうか。そして、今後の具体的な活動内容とは。笹田さんと遠藤さんにお話を伺いました。 「6月は2人で一緒に、フルタイムRubyコミッターとして働く道を探ろう」 笹田さんが取り組む並列並行処理の改善 遠藤さんが取り組む静的型解析 世の中のニーズと本人のモチベーションが合致して生まれる、奇跡的なキャリア 「6月は2人で一緒に、フルタイムRubyコミッターとして働く道を探ろう」 ――転職活動どうもお疲

                                OSS開発者が自分の人生を犠牲にしなくていい。「フルタイムRubyコミッター」という生き方が与えてくれた恩恵 - Findy Engineer Lab
                              • Ruby v3.1.0のSegmentation faultに遭遇した話 - メドピア開発者ブログ

                                こんにちは。サーバーサイドエンジニアの三村です。 保険薬局と患者さまを繋ぐ「かかりつけ薬局」化支援アプリ kakariやその姉妹サービスである患者接点を資産化する診療予約システム かかりつけクリニック支援サービス kakari for Clinicの開発を担当しています。 目次 はじめに 現象 bugs.rubyに報告 原因究明までの道のり 環境依存の問題かどうかを切り分け エラー発生ファイルの特定 specの実行順をランダムから定義順に変更 因果関係のあるテストを特定 脱Docker Desktop for Mac MySQL -> SQLiteに変更 再現コードの特定 再現コード報告 修正確認 work around まとめ おまけ はじめに kakariをRuby v3.1.0にアップグレードする作業をしていたところSegmentation faultに遭遇したので、bugs.rub

                                  Ruby v3.1.0のSegmentation faultに遭遇した話 - メドピア開発者ブログ
                                • 「RubyでDDDやるならHanami」という噂の真相

                                  こんにちは。株式会社InnoScouter CTOの大西(Twitter: @monarisa_masa)です。 InnoScouterでは、Ruby製WebフレームワークであるHanamiを採用しており、DDDを用いて開発しています。 Hanamiについて言うと、私個人としては、前職も含めて4年ほど運用経験があります。 ここでは、Hanamiが出てくるとよく話題にされるRailsとの比較は取り扱いませんが、初めてHanamiについての記事を読まれる方にも分かるようなサンプルコードで説明したいと思います。 突然ですが、こちらが本日のメイントピックです。 今回は、「RubyでDDDやるならHanami」と言われてますが、本当にそうなの?ってところを掘り下げていきたいと思います。 ツイートが意味していることと、それに対する自分の考えを話していけたらと思います。 この記事の対象読者 Rubyを触

                                    「RubyでDDDやるならHanami」という噂の真相
                                  • Ruby on Browser

                                    ruby.wasm で作ったページの紹介と ruby.wasm の使い方 スライド内のリンク - 文字化けを復元するよ https://tmtms.net/mojibake/ - シャッフル https://tmtms.net/shuffle.html?list=Ruby,Perl,Pytho…

                                      Ruby on Browser
                                    • Ruby 3.1はここに注目! 新しいJITとは? デバッガ、エラーメッセージ、そして未来! リリースマネージャーに聞いた |ハイクラス転職・求人情報サイト AMBI(アンビ)

                                      Ruby 3.1はここに注目! 新しいJITとは? デバッガ、エラーメッセージ、そして未来! リリースマネージャーに聞いた 2021年12月25日にリリースされたばかりのRuby 3.1では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさん、ko1さんに詳しくうかがいました。 プログラミング言語Rubyでは2013年の2.1.0以降、毎年クリスマス(12月25日)にメジャーバージョンアップが行われています。2021年も無事にバージョン3.1.0がリリースされました。 ▶ Ruby 3.1.0 リリース Ruby 3.1は、言語機能の面では全体的に穏やかなリリースにも見えますが、新しい方式のJIT(just in time)コンパイラ、標準の新デバッガー、事前アナウンスでも好評だったエラーメッセージの改善な

                                        Ruby 3.1はここに注目! 新しいJITとは? デバッガ、エラーメッセージ、そして未来! リリースマネージャーに聞いた |ハイクラス転職・求人情報サイト AMBI(アンビ)
                                      • Ruby 2.7正式版が登場、オブジェクトのパターンマッチ、REPLの改善など。次はRuby 3が年内登場予定!

                                        毎年12月25日のクリスマスにアップデートされるオブジェクト指向スクリプト言語の「Ruby」。今回も新バージョンとなるRuby 2.7正式版が予定通り、2019年12月25日にリリースされました。 Ruby 2.7の主な新機能は、case文でのオブジェクトのパターンマッチ、コマンドラインからRubyが利用できるirbにおける複数行編集の対応、コンパクションガベージコレクタ、JITコンパイラ性能の改善などです。 Ruby 2.7の主な新機能 実験的実装による新機能として追加されたオブジェクトのパターンマッチ機能は、case文で使うことができます。 一般にパターンマッチとは文字列などの値に関するパターンの一致や不一致を思い浮かべますが、Ruby 2.7で追加されたのオブジェクトの構造がパターンと一致するかどうかが調べられ、一致した場合に処理が実行される、というものです。 これまでif分などを組

                                          Ruby 2.7正式版が登場、オブジェクトのパターンマッチ、REPLの改善など。次はRuby 3が年内登場予定!
                                        • Ruby の引数の種類をまとめてみた - Secret Garden(Instrumental)

                                          普段何気なく書いている Ruby なんですが実はメソッドの引数の種類って思ったよりも多くてまとめてみました。 実際自分も Ruby の AST をいじっている時に引数の種類が多すぎて混乱したのでまとめておくと色々と役に立つかなーと。 と、軽い気持ちで書いてみたんですが結構なボリュームになってしまいまsた。 引数の名称とかは調べつつ独断と偏見で書いてあるのでそこら辺はご注意ください。 諸注意 この記事は基本的に Ruby 3.1 を元にして動作確認しています 下にも書いてあるんですが 仮引数(parameter) についての解説で 実引数(argument) の話はあんまりでてきません 引数の名称は日本語に寄せていますが Ruby 界隈だと英語で書いてある事が多いかも 調べる時は英語の方で調べてもらったほうが情報はでてくると思う 引数という言葉の意味とは 『引数』という言葉には厳密に言うと『

                                            Ruby の引数の種類をまとめてみた - Secret Garden(Instrumental)
                                          • 設定だけで Ruby アプリを高速化する

                                            新年あけましておめでとうございます。 @rosylilly です。 この前 SRE 養成講座の体験授業配信 をしたんですが、その時にハンズオンの一環で Ruby 製アプリケーションをいじって高速化してみる。という内容を実施しました。 コンセプトとしては、『ちゃんと設定ファイルを書くだけでも高速化する』という感じです。作業としてはアプリケーションをいじらずに、設定だけいじって高速化する、ということなんですが、結局何がどれくらい効くのか、というのを事前に参考値レベルで弾いておかないとぶっつけ本番になっちゃうな、ということで何がどれくらい効くのかを試してからにしようということで、事前に調査したときのベンチテストと何を変えたかの記録になります。 ベンチマークの前準備 今回はほぼ何もしない Sinatra アプリケーションを作って、その性能差から測ります。ということで用意した性能測定用何もしない S

                                              設定だけで Ruby アプリを高速化する
                                            • Ruby の正規表現で素数かどうかを確認する方法

                                              Ruby の正規表現で素数かどうかを確認する方法 作成日 2018.09.11 更新日 2018.09.13 Regex Ruby Ruby の正規表現を使って, 素数かどうかを確認するメソッドを作ってみました. パフォーマンスは正直全然良くないのですが, 余興の様なものとしては面白いのではないかと思います. 正規表現の説明もします. そもそも素数というのは, どの様な数なのでしょうか. Wikipedia によりますと次のように定義されています: 素数(そすう、英: prime number)とは、1 より大きい自然数で、正の約数が 1 と自分自身のみであるもののことである。正の約数の個数が 2 である自然数と言い換えることもできる。 なので 0, 1, 4, 6, 8, 9, 10, 12 といった数は素数ではなく, 2, 3, 5, 7, 11, 13 といった数が素数になります.

                                              • 社内共通システムをPHPからRuby on Railsにリプレイスした話

                                                2019年7月6日、株式会社サイバーエージェントが主催するイベント「Battle Conference U30」が開催されました。30歳以下のエンジニアによる30歳以下のエンジニアのための技術カンファレンスである本イベントには、さまざまな領域で活躍する若手が登壇。企業の枠を超えて、自身の技術・事業・キャリアに関する知見を発表しました。「システムリプレイスで事業を変える開発戦略」に登壇したのは、株式会社エイチームライフスタイル・鈴木就斗氏。 社内共通システムをリプレイス 鈴木就斗 氏:それでは「システムリプレイスで事業を変える開発戦略」ということでお話させていただきます。エイチームのグループ会社である株式会社エイチームフィナジーの鈴木就斗です。ちなみにみなさん、エイチームという会社を知っていますか? 聞いたことある方は手を挙げてほしいんですけど……。 (会場挙手) ありがとうございます。パラ

                                                  社内共通システムをPHPからRuby on Railsにリプレイスした話
                                                • クジラに乗ったRuby: Evil Martians流Docker+Ruby/Rails開発環境構築(更新翻訳)|TechRacho by BPS株式会社

                                                  さて、どこからお話を始めましょうか。ここに到達するまでに長い長い旅路をたどりました。かつて私は開発にVagrantを使っていましたが、当時のVMは私の4GB RAMのノートPCでは少々重すぎました。そして2017年にコンテナへの乗り換えを決意したときに、やっとDockerを使い始めました。 しかしDockerで問題がたちまち解決したという気持ちではありません。自分自身やチーム、そしてすべての人々にとって完璧な設定を追求し続けてきましたが、「これでよし」と言える究極の設定はありません。標準的なアプローチを見出すまでにかなりの時間を要しました(2019年に本記事を最初に公開した時点でも相当の時間を費やしていました)。 本記事を最初に公開して私の秘密を隅々までオープンにして以来、多くのRailsチームや開発者が私の手法を採用し、さらに改良や貢献にもご協力をいただきました。 前置きはこのぐらいにし

                                                    クジラに乗ったRuby: Evil Martians流Docker+Ruby/Rails開発環境構築(更新翻訳)|TechRacho by BPS株式会社
                                                  • Optimizing Ruby with JIT

                                                    Builderscon 2019 http://builderscon.io/builderscon/tokyo/2019

                                                      Optimizing Ruby with JIT
                                                    • Rubyの型チェッカーのSorbetを導入しました - freee Developers Hub

                                                      申告チームでテックリードをやらせてもらっている id:nanjakkun です。 freeeではfreee会計をはじめ多くのプロダクトがRuby on Rails(以下Rails)のアプリケーションとして実装されています。 日々の開発の中で、Rubyでも静的な型の解決ができればなあと思うことがあります。 ということで、Rubyの型チェッカーのSorbetをfreee申告に導入してみました。 Sorbet(ソルベ)とは sorbet.org 決済代行サービスのStripeを運営しているStripe社が公開している漸進的型チェッカーです。 ※余談ですがfreeeアプリストアではStripeを決済手段としたアプリの有料販売ができます。 developers.freee.co.jp 有料アプリ販売の準備をする | freee Developers Community 漸進的型付けとは 漸進的型付け

                                                        Rubyの型チェッカーのSorbetを導入しました - freee Developers Hub
                                                      • CIで稀にSegmentation faultが起きてRubyが死ぬ問題と対応 - メドピア開発者ブログ

                                                        CTO室SREの@sinsokuです。 先日、弊社のCIで稀によく Segmentation fault が起きるようになりました。 _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y ̄ 調べてみた 最初は気づかなかったけど、画像の右端のダウンロードっぽいアイコンをクリックすると、実行結果のログを全文見ることができます。 [BUG] Segmentation fault at 0x000056529cd6d5e0 ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux] -- Control frame information ----------------------------------------------- c:0059 p:---- s:0312 e:000311 CFUNC :[] c:0058 p:0016

                                                          CIで稀にSegmentation faultが起きてRubyが死ぬ問題と対応 - メドピア開発者ブログ
                                                        • Rubyの静的型検査を利用した開発手法の現状まとめ

                                                          Leaner 開発チームの黒曜(@kokuyouwind)です。 先週はBurikaigi2022で登壇させていただきました! 今回はリモート開催でしたが、来年は現地でブリしゃぶを食べられると良いですね! Burikaigi ではRBSから始める静的型付け生活と題して、 Ruby の静的型検査の概要や開発手順などについて登壇しました。 入門的な内容ではありますが、今回は発表内容を大まかにまとめた記事をお届けします。 なお記事の構成上、発表内容から一部割愛している話がありますがご容赦ください。[1] Ruby 静的型検査の概要 TypeScript の台頭や Python 3.5 での型注釈記法の導入など、動的型付けの言語においても静的型検査の仕組みを導入する動きが近年活発です。 Ruby においても 2020 年 12 月にリリースされた Ruby 3.0.0 において RBS と Typ

                                                            Rubyの静的型検査を利用した開発手法の現状まとめ
                                                          • Ruby の型チェッカーの比較 | Wantedly Engineer Blog

                                                            はじめにこんにちは、Wantedly の 2021 年サマーインターンに参加した宮下と申します。今回のインターンでは三週間の間 DX (Developer Experience) チームに所属し、Wantedly のコードベースに Ruby の型チェッカーの導入を試みることをテーマにしていました。 インターンの前半では、様々な型チェッカーの性能を調べたり、それぞれの型チェッカーを実際に使ってみることで、開発効率を基準とした比較を行いました。インターンの後半では、現段階では一番実務に適しているだろうと判断した Sorbet に焦点を当て、Wantedly のいくつかのコードベースに実験的に Sorbet を導入した環境を作った型情報をつけていく作業をしていました。 本記事は、主にインターンの前半で調査した、型チェッカーの比較という部分に焦点を当て、文章の形にまとめたものになります。 Ruby

                                                              Ruby の型チェッカーの比較 | Wantedly Engineer Blog
                                                            • Rubyインタプリタの品質向上のために個人的にやっていること - クックパッド開発者ブログ

                                                              技術部の笹田です。Ruby 3.2 無事にリリースされて良かったよかった。 Rubyインタプリタは複雑なプログラムなので、当然のごとくバグが入ってきます。Rubyインタプリタ開発者は、これに対していろんな対策をしています。たとえば、テストを書いて、CI環境でチェックするとか、今となっては当然のことを、当然のごとくやっています(RubyCIやchkbuild、ruby/spec: The Ruby Spec Suite aka ruby/specなどの整備や、実行環境の日々のメンテナンスの成果です)。 これに追加して、個人的にテストをとにかくたくさん繰り返し行うマシン群を用意しています。テストの実行頻度をなるべくあげて、「時々しか発生しない」というバグを炙り出して、Rubyインタプリタの品質向上を目指すためです。本稿ではそんな、ちょっとだけ変わったテスト環境についての話をご紹介します。 この

                                                                Rubyインタプリタの品質向上のために個人的にやっていること - クックパッド開発者ブログ
                                                              • YJIT: Dive into Ruby's JIT compiler written in Rust / Rust.Tokyo 2022

                                                                Rust.Tokyo 2022

                                                                  YJIT: Dive into Ruby's JIT compiler written in Rust / Rust.Tokyo 2022
                                                                • こども向け新言語「IchigoRuby」誕生!IchigoJamとRubyのいいとこどり

                                                                  Matz葉がにロボコン向けに作ったRubyによるレゴ制御、LWP.jsとRuby-Jamでしたが、その場でプログラミングしている様子を見たこどもたちにはちょっと難しそうな印象を与えてしまいました。 引いてしまう理由は、アルファベットの小文字や見慣れない記号が並ぶプログラミング言語にあると仮説を立て、作った新プログラミング言語「IchigoRuby(イチゴルビー)」。記号とタイプ量が少なくて済むRubyの文法そのままに、予約語をアルファベット大文字でも使用できるようにした、Rubyのサブセットです。 「IchigoRuby」 RubyParserで構文木(AST)を生成する200行弱のミニインタプリタ「execRuby.js」へ渡すプログラムを、まるごと小文字にしています(文字列内も変換されてしまう問題はIssueに記述)。 WHILE 1 LED 1 SLEEP 1 LED 0 SLEEP

                                                                    こども向け新言語「IchigoRuby」誕生!IchigoJamとRubyのいいとこどり
                                                                  • GitHub Actionsで Ruby を使うための現状と展望(2019/01/05時点) - masa寿司の日記

                                                                    2020/02/08追記 GitHub Actionsでrubyを使うなら ruby/setup-ruby を使おう - masa寿司の日記 に本記事より後の状況をまとめました。 はじめに actions/setup-rubyにPR出したのをきっかけに masa-iwasaki/setup-rbenvを作ったりして actions/setup-ruby周りで多少知見が溜まっているので、まとめてみます。 注意事項 GitHub Actionsに関する説明や他CIと比較などは省略します。 断りがない限り、すべて現時点での話です。 後半で書きますが、今後一気に状況が変わる可能性があります。 ほぼ自分が使っているLinux環境(Ubuntu 18.04)の話だけ書いてます。そして、もちろん私の独断です。 タイトルどおりの内容なのですが、もしかするとRuby以外の言語やソフトウェア・ライブラリにも役

                                                                      GitHub Actionsで Ruby を使うための現状と展望(2019/01/05時点) - masa寿司の日記
                                                                    • WebAssembly対応でRubyは何が出来るようになったのか?

                                                                      はじめに Ruby 3.2よりWASIベースのWebAssemblyサポートされました。 これによってRubyをブラウザ上で実行できるようになるわけですが、実はWASMはブラウザの外での動作も可能になっており、OSに依存しないライブラリを作ったり、Edge Computingで実行させたり、シングルバイナリの実行可能ファイルにしたりと色々な事が出来るようになります。 今回はRubyのWASM対応でどんなことが出来るようになったかをまとめたいと思います。 WebAssemblyとは? WASMに関して少しおさらいをしておきましょう。 WebAssemblyは仮想命令セットアーキテクチャです。WASMとも言います。RustやCをはじめとした多くの言語からコンパイルする事が出来、Webブラウザの中で高速にそしてセキュアに処理を実行するための仕組みとして登場しました。 元々ブラウザ向けに登場した仕

                                                                        WebAssembly対応でRubyは何が出来るようになったのか?
                                                                      • Ruby Parser開発日誌 (14) - LR parser完全に理解した - かねこにっき

                                                                        こんにちはかねこです。私はCRuby(ruby/ruby)のコミッタをやっているのですが、最近はCRubyをメインのターゲットとしてLALR parser generator Lramaの開発をしています。 現役のLALR parser generator開発者として、日頃私以上にLR parserのことを考えている人はそうはいないでしょう。 この記事を読んでいる皆さんは構文解析、なかでも特にLR parserを理解するためにいろいろな教科書や記事を読んできたと思います。 一方でどんなに調べてもどこか腑に落ちない部分が残っているのではないでしょうか。 LR構文解析を勉強すると構文解析表に出会うとおもいます。 構文解析表を作る方法そのものは教科書に説明が載っており、その通りに手を動かせばこのような表を作ることはできるでしょう。 また出来上がった構文解析表をもとに実際に構文解析する手順も理解で

                                                                          Ruby Parser開発日誌 (14) - LR parser完全に理解した - かねこにっき
                                                                        • STORES、笹田耕一氏、遠藤侑介氏がフルタイムRubyコミッターとして入社

                                                                          お店のデジタル化を支援する STORES 株式会社(以下、STORES)は、Rubyコミッターの笹田耕一氏と遠藤侑介氏の両名を採用したことをお知らせいたします。笹田氏、遠藤氏にはフルタイムのRuby開発者として STORES に入社していただき、Rubyの品質向上、ユーザー体験や性能の改善に専念します。 CTO 藤村大介(左)、笹田耕一氏(中央)、遠藤侑介氏(右) ■ フルタイムRubyコミッター採用の背景 1993年に日本で生まれたプログラミング言語Rubyは、Rubyコミッターを中心として多くのエンジニアによって磨き上げられ、世界中で使われてきました。私たちもサービス開発言語の一つとしてRubyを選択し、様々なサービスを提供してきました。 STORES のミッションである”Just for Fun”という言葉は、Linuxの作者であるリーナス・トーバルズの著書※からインスパイアされたも

                                                                            STORES、笹田耕一氏、遠藤侑介氏がフルタイムRubyコミッターとして入社
                                                                          • ソフトウェアが“死”を迎えないためにできること Ruby30年を振り返って語る、発展におけるバランスの難しさ

                                                                            Qiita Conferenceは、ソフトウェア開発者が集まり、最新の技術や最先端の挑戦・ソフトウェアの未来についての考えや知見を共有し、つながる場を創出する、「Qiita」が開催するオンライン技術カンファレンスです。ここでプログラミング言語Rubyの生みの親であるまつもとゆきひろ氏が登壇。最後に、ソフトウェアが死を迎えないために、それぞれの時期でできることについて話します。前回はこちらから。 なぜソフトウェアは死んでしまうのか まつもとゆきひろ氏(以下、まつもと):今度は横軸、時間軸です。ソフトウェアの寿命って意外と短いんですよね。開発のほうでいうと、毎年新しいWebアプリケーションフレームワークとか、なんとかツールみたいなものがどんどん出てくるんですけど、数年経つと何か違うものに取って代わられるみたいなことが頻繁に起きるんですよね。 物によるんですが、アプリケーションとかだと数年。2年

                                                                              ソフトウェアが“死”を迎えないためにできること Ruby30年を振り返って語る、発展におけるバランスの難しさ
                                                                            • Ruby gem で Rust をつかって爆速にしたい!!!!!!11

                                                                              Ruby Gems で Rust が Native として利用可能になった のでとりあえず UUIDv4 を生成してみた。 リポジトリ 準備 Ruby 側の gem に Rust を利用する準備として rb_sys と rake-compiler を利用します。この二つの gem は native compile するためにインストールしておきます。 Rust 側から Ruby へ関数を公開するために rb-sys と magnus を利用します。 gem install とりあえず cargo で Rust のパッケージを作って Rust を書いてみます。 > bundle gem rust_uuid --mit --ext rust_uuid # --ext を指定してnative build する gem を作成 > cd rust_uuid # 作成した gem のディレクトリへ移

                                                                              • もう puts/p をデバッグに使わない! デバッグライブラリ IceCream の Ruby 版 - Qiita

                                                                                先日、Python 向けのデバッグライブラリ IceCream が話題になっていました。 Python 以外にもいくつかの言語版があるようですが、残念ながら Ruby 版が無い。というわけで作ってしまいました。 Ricecream (icecream-ruby) はじめに まず、このライブラリはいわゆる「print デバッグ」1の代替となるものです。 そもそも本格的にデバッグを行う場合、print デバッグではなく Byebug 等のデバッガを用いるべきです。 参考:printデバッグにさようなら!Ruby初心者のためのByebugチュートリアル とはいえ print デバッグが非常に手軽なものであることは間違いなく、ちょっとしたデバッグにはいちいちデバッガを使うより print デバッグで済ませてしまうという方も多いでしょう。 しかし print デバッグは手軽な分そのままでは困ることも

                                                                                  もう puts/p をデバッグに使わない! デバッグライブラリ IceCream の Ruby 版 - Qiita
                                                                                • Ruby support comes to App Engine standard environment | Google Cloud Blog

                                                                                  We have some exciting news for App Engine customers. Ruby is now Beta on App Engine standard environment, in addition to being available on the App Engine flexible environment. Let's dive into what that means if you’re a technical practitioner running your apps on Google Cloud. There are lots of technical reasons to choose App Engine standard vs. flexible environment (this link explains it if you

                                                                                    Ruby support comes to App Engine standard environment | Google Cloud Blog