タグ

rubyに関するYaSuYuKiのブックマーク (348)

  • 2019年、fat gemをやめる - 2019-11-22 - ククログ

    fat gemを簡単に作れるようにするgemであるrake-compilerをメンテナンスしている須藤です。過去にfat gemの作り方をまとめたこともあります。 Ruby 1.8.7/1.9.1どちらでも使えるWindows用バイナリ入りgemをDebian GNU/Linux上で作る方法 Windowsの32bit/64bitRuby用バイナリ入りgemをDebian GNU/Linux上で作る方法 fat gemが有用な時代もあったのですが、今はメリットよりもデメリットの方が大きいのでfat gemをやめたらどうか、という話をします。 fat gemについて fat gemとはビルド済みバイナリーが入ったgemのことです。Pythonで言えばwheelのようなものです。 RubyはC言語でRuby用のライブラリーを実装することができます。これを拡張ライブラリーと呼びます。拡張ライブ

    2019年、fat gemをやめる - 2019-11-22 - ククログ
    YaSuYuKi
    YaSuYuKi 2019/11/22
    しょっちゅう依存ライブラリ不足でビルドエラーを起こしているから、自動でインストールする機構は欲しい
  • Ruby 2.7.0-preview2 リリース

    Posted by naruse on 22 Oct 2019 Ruby 2.7シリーズのプレビュー版である、Ruby 2.7.0-preview2をリリースします。 プレビュー版は、年末の正式リリースに向け、新たな機能を試し、フィードバックを集めるために提供されています。 Ruby 2.7.0-preview2では、多くの新しい機能やパフォーマンスの改善が含まれています。 その一部を以下に紹介します。 Compaction GC 断片化したメモリをデフラグするCompaction GCが導入されました。 一部のマルチスレッドなRubyプログラムを長期間動かし、マーク&スイープ型GCを何度も実行していると、メモリが断片化してメモリ使用量の増大や性能の劣化を招くことが知られています。 Ruby 2.7ではGC.compact というメソッドを導入し、ヒープをコンパクションすることが出来るよう

  • Ruby 2.6.4 リリース

    Posted by nagachika on 28 Aug 2019 Ruby 2.6.4 がリリースされました。 このリリースには添付されている rdoc の以下の脆弱性修正が含まれています。 RDoc における jQuery の脆弱性についてへの対応 その他の変更点の詳細は commit log を参照してください。 ダウンロード https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.4.tar.bz2 SIZE: 14426299 bytes SHA1: fa1c7b7f91edb92de449cb1ae665901ba51a8b81 SHA256: fa1ecc67b99fa13201499002669412eae7cfbe2c30c4f1f4526e8491edfc5fa7 SHA512: a9fa2f51fb5f86cd8dcaa0

  • Open-sourcing Sorbet: a fast, powerful type checker for Ruby · Sorbet

    We’re excited to announce that Sorbet is now open source and you can try it today. Sorbet is a fast, powerful type checker designed for Ruby. It scales to codebases with millions of lines of code and can be adopted incrementally. We designed Sorbet to be used at Stripe, where the vast majority of our code is written in Ruby. We’ve spent the last year and a half developing and adopting Sorbet inter

    Open-sourcing Sorbet: a fast, powerful type checker for Ruby · Sorbet
  • パイプライン演算子の歴史 - まめめも

    (You can read this article in English.) Ruby の開発版にパイプライン演算子(pipeline operator)が試験的に導入されましたが、いろいろあってプチ炎上になっています(チケット)。 せっかくの機会なので、パイプライン演算子の歴史を調べてみました。付け焼き刃の調査なので、間違ってたら教えてください。 パイプライン演算子とは こんな感じのものです。 x |> f |> g |> h # h(g(f(x))) と同じ意味 h(g(f(x))) という関数適用の式は、関数が呼ばれる順序(f→g→h)と、プログラムの字面上の順序(h→g→f)が逆でわかりにくいとされます。この問題は、特に、関数が大きくなったときに顕著になります。 wonderful_process_h( marvelous_process_g( fantastic_process

    パイプライン演算子の歴史 - まめめも
  • Matzにっき(2019-05-31)

    いやあ、Ruby開発者の日記だというのにまだRuby 1.8で動作していて、恥ずかしい状態だったこの「Matzにっき」だが、前田修吾さんのご尽力で Heroku に移行しました。バージョンも 2.6.2 へ。 これで恥ずかしくない。 最近は、主に Twitter か、Quora で書いてたけど、そろそろここも更新を再開するべきか。

    Matzにっき(2019-05-31)
    YaSuYuKi
    YaSuYuKi 2019/05/31
    これほどのバージョンを超えてデータ互換性があり、メンテナンスが続いているtDiaryの偉大さ
  • Ruby 2.7.0-preview1 リリース

    Posted by naruse on 30 May 2019 Ruby 2.7シリーズの最初のプレビュー版である、Ruby 2.7.0-preview1をリリースします。 プレビュー版は、年末の正式リリースに向け、新たな機能を試し、フィードバックを集めるために提供されています。 Ruby 2.7.0-preview1では、多くの新しい機能やパフォーマンスの改善が含まれています。 その一部を以下に紹介します。 Compaction GC 断片化したメモリをデフラグするCompaction GCが導入されました。 一部のマルチスレッドなRubyプログラムを長期間動かし、マーク&スイープ型GCを何度も実行していると、メモリが断片化してメモリ使用量の増大や性能の劣化を招くことが知られています。 Ruby 2.7ではGC.compact というメソッドを導入し、ヒープをコンパクションすることが出来

  • 欧米で発売されたNintendo Switchゲームが突然配信停止。原因はプログラミング言語「Ruby」に関するイースターエッグ - AUTOMATON

    パブリッシャーのCIRCLE Entertainmentは4月12日、『A Dark Room』のNintendo Switch版を欧米で発売した。作は、Michael Townsend氏が手がけた同名のテキストアドベンチャーゲームの移植版だ。デベロッパーのAmir Rajan氏はiOS/Android版にて成功を収めたのち、Ryan Gordon氏と共にNintendo Switchへの移植をおこなった。しかし、作は配信開始から程なくして、任天堂によりニンテンドーeショップから取り下げられてしまった。その原因は、作に隠されたイースターエッグにあったという。 Nintendo Switch版『A Dark Room』の発売からおよそ2週間が経った4月25日、Amir Rajan氏は“クレイジーな発表がある“と自身のMastodonアカウントを通じて投稿。その内容は、作にはイースター

    欧米で発売されたNintendo Switchゲームが突然配信停止。原因はプログラミング言語「Ruby」に関するイースターエッグ - AUTOMATON
  • 令和時代のRubyコア開発 - k0kubun's blog

    Ruby Core Development 2019というタイトルでRubyKaigiのCFPにプロポーザルを書いたのだが、 もう一つ書いた方の話が採択されたのでその話はしなかった。 さて、今日はRubyコア*1の開発がSubversionからGitに移った節目でもあったので、そっちのトークで言いたかったことの一部を記事にしておこうと思う。 Subversion → Git 移行 [Misc #14632] 去年くらいから @hsbt さんが cgit というGitフロントエンドを使ってGitリポジトリの準備を始め Misc #14632、ついに今日正式にcgitの方がupstreamになった。平成の時代でSubversionでのtrunkのRubyコア開発は幕を閉じた。 この辺を進めているのは主に @hsbt さんな中、僕がこれを偉そうに書いたり今回のRubyKaigiで壇上でアナウンス

    令和時代のRubyコア開発 - k0kubun's blog
    YaSuYuKi
    YaSuYuKi 2019/04/23
    Stallmanも、SourceForgeの時代から危険性を指摘していて、実際、SourceForgeでは毒入りアプリの配布で現実化したので、プロプライエタリなサービスを利用しないことには今も意味がある。実行は容易ではないけどな
  • なぜrubyは他の言語と比べて遅いのでしょうか?

    回答 (3件中の1件目) Rubyの実行速度に興味があって、15年くらいMRIの開発をしています。興味があるので長い記事になっちゃったことをお詫びします。 遅いと言ったとき、多分「実行速度」の話をしているんだと思いますが、それ以外にも結構いろんな「はやさ」があります。思いつくところで少しご紹介します。 (1) プログラムを作るはやさ Ruby は生産性が高い言語と言われることが多いので、プログラムを作る早さは早い、という評価が一般的です。 Cで書くと2日かかる。実行時間は0.1秒 Rubyで書くと1日かかる。実行時間は10秒(Cの100倍) と、すこし極端な仮定を置いてみると...

    なぜrubyは他の言語と比べて遅いのでしょうか?
    YaSuYuKi
    YaSuYuKi 2019/03/27
    TruflleRubyは真剣に速い。文字通り「桁が違う」。ベンチを見たときは目を疑った。ちゃんと実装するとこの記事にあるような問題が出てきて遅くなるものだが、それでもなお速い
  • “Rubyは死んだ”のか? まつもとゆきひろ氏が語る「プログラミング言語サバイバル」とRubyの未来 - Part1

    2018年12月14日、品川シーズンテラスカンファレンスにてRubyアソシエーションが主催するイベント「Ruby Business Users Conference 2018 Winter」が開催されました。すでにRubyを活用しているユーザーや、これからRubyをビジネスに活用しようと考えている人が集い、情報交換を行いました。基調講演「プログラミング言語サバイバル」に登壇したのは、一般財団法人Rubyアソシエーション理事長のまつもとゆきひろ氏。Rubyの開発をはじめて25年、今日のプログラミング言語の潮流とRuby開発者として感じている危機感について語りました。 プログラミング言語サバイバル まつもとゆきひろ氏(以下、まつもと):どうもこんにちは、まつもとと申します。今日は「プログラミング言語サバイバル」というタイトルでお話をしようと思います。 今年は、2月にイベントをやりましたが、Ru

    “Rubyは死んだ”のか? まつもとゆきひろ氏が語る「プログラミング言語サバイバル」とRubyの未来 - Part1
  • Ruby 2.6正式版リリース。JITコンバイラを初めて実験的に搭載

    プログラミング言語「Ruby」は、次のメジャーバージョンアップとなるRuby3をRuby2の3倍の実行速度にするという「Ruby 3x3」(ルビースリーバイスリー)構想の下で積極的な開発が進められています。 そのRuby 3x3を実現するうえでもっとも重要な仕組みとされるJITコンパイラを初めて搭載したRuby、「Ruby 2.6.0」正式版が、2018年12月25日にリリースされました(クリスマスの日にRubyがバージョンアップするのは恒例になっています)。 現時点ではまだJITコンパイラは実験的実装(Experimental)で、有効にするには「--jit」オプションの設定が必要です。また、現在実装されているJITコンパイラは他言語の一般的なJITコンパイラと異なり、いったんC言語のソースコードをファイルとして書き出し、それを通常のCコンパイラを用いてネイティブコードに変換することでJ

    Ruby 2.6正式版リリース。JITコンバイラを初めて実験的に搭載
  • プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ

    技術部の笹田(ko1)と遠藤(mame)です。クックパッドRuby (MRI: Matz Ruby Interpreter、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 もうすぐ Ruby 2.6 がリリースされますね! Ruby 2.6 の新機能は何だろう、と調べるためには、ソースコードの diff を見ればいいのですが、膨大な変更があるので、一つ一つ見ていくのは大変です。 $ git diff --compact-summary origin/ruby_2_5 ... 6404 files changed, 228441 insertions(+), 97984 deletions(-) そこで、NEWS ファイルという、主要な変更点をまとめたファイルが用意されています。これを見るだけで、Ruby

    プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ
  • インタプリタ開発者によるRubyの挙動解析への道 - クックパッド開発者ブログ

    Ruby インタプリタを開発している笹田です。今年のクリスマスにリリース予定の Ruby 2.6、楽しみですね(無事、出るといいな)。 この記事では、私がRubyの挙動を調べるために頑張った記録を書いておきます。 基的に、単純作業の積み重ねなので、難しい内容はありません。お気楽にお読みいただければ幸いです。 大雑把にまとめると、こんな内容が書いてあります。 デバッグカウンタの導入によるRubyの詳細な挙動調査の紹介 (私には)簡単な話で、Rubyをいろいろいじって、Rubyの細かい挙動、しかもほとんどの人が気にしない挙動を調べられるようにした話です。 多くの人が興味ないだろう、Rubyに仕込まれている統計情報をとる仕組みを紹介します。 クックパッドアプリを手元で調査できるようにした話 (私には)難しい話で、Ruby 開発版で弊社アプリを手元で動かすために四苦八苦した記録です。 Ruby

    インタプリタ開発者によるRubyの挙動解析への道 - クックパッド開発者ブログ
  • 簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ

    技術部のフルタイムRubyコミッタの遠藤(@mametter)です。昨日の Hackarade #04 の開催報告に続き、2日連続で記事を投稿します。 今回は、ある条件下でのRubyの実行速度を高速化した話を紹介します。この改善はすでにMRIの先端にコミットされていて*1、年末リリース予定のRuby 2.6に含まれる予定です。 ひとことで言うと、「簡潔ビットベクトルを索引に使うことで、プログラムカウンタから行番号を計算するアルゴリズムをO(log N)からO(1)に改善した。これにより、TracePoint有効時やコードカバレッジ測定下で、長さ N のメソッドの実行が O(N log N) から O(N) に高速化される」ということです。順に説明します。 背景:Rubyのバイトコードの構造 この最適化を理解するにはまず、Rubyのバイトコードのある特徴を知る必要があります。 たとえば x

    簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
  • Rubyがきっかけで、「www(草生える)」を英語で解説――GitHubのエンジニアが語る、“世界とつながるスキル”

    アップルやディズニーなどの外資系企業でマーケティングを担当し、グローバルでのビジネス展開に深い知見を持つ阿部川“Go”久広が、グローバルを股に掛けたキャリアを築いてきたIT業界の先輩にお話を伺うインタビューシリーズ。 今回は、プログラム言語「Ruby」のコミュニティーで英語と日語を駆使しながら活躍し、Twitterで日独特のネットスラング「www(草生える)」の意味を英語で解説したことでも注目を浴びたGitHub(以下、ギットハブ)のソフトウェアエンジニア、Aaron Patterson(アーロン・パターソン)氏にご登場いただく。 阿部川“Go”久広(以降、阿部川) アーロンさんは、生まれも育ちもソルトレイクシティー(ユタ州)なんですね。 Aaron Patterson(以降、アーロンさん) そうです。1980年生まれです。 阿部川 どんな子どもだったんですか? アーロンさん (じっと

    Rubyがきっかけで、「www(草生える)」を英語で解説――GitHubのエンジニアが語る、“世界とつながるスキル”
  • Rubyが魅力的でないとうちのビジネスが困る――クックパッドが取り組むRubyへの貢献とエンジニア育成 (1/2):CodeZine(コードジン)

    クックパッドは1998年にサービス開始し、2008年にRuby on Railsにリプレースしてからちょうど10年。その間、クックパッドRubyの会社として常にトップランナーを走り続けてきた。実際、「世界最大級のモノリシックRailsサービス」として知れ渡り、その開発で培ったノウハウをコミュニティに対して発信してきた。そんなクックパッドが、Rubyに対してどのように付き合っていったのか。Rubyを採用した経緯や課題、競争力の高いエンジニア集団で居続けるための戦略について、同社 技術部部長 兼 エンジニア統括マネージャーを務める庄司嘉織氏に聞いた。会社を挙げたRubyやオープンソースへの貢献やエンジニアとの関わり方も興味深い。 世界最大級のモノリシックRailsサービスと言われて クックパッド 技術部部長 兼 エンジニア統括マネージャー 庄司嘉織氏 クックパッド 庄司嘉織氏は2012年11

    Rubyが魅力的でないとうちのビジネスが困る――クックパッドが取り組むRubyへの貢献とエンジニア育成 (1/2):CodeZine(コードジン)
  • フルタイムのコミッターとして企業に属しながらオープンソースのプログラミング言語を開発するということ - GeekOutコラム

    卜部という名前で、マネーフォワードという会社でプログラミング言語Rubyの開発に携わっているものです。 実は、この文章を書き始めるまでにずいぶんと悩みました。というのも、これまでこのコラムに登場した他の人たちと違って、自分のキャリアというのは決して戦略的に積み重ねてきたものではないのです。そもそも初回の転職からして、やりたくて転職したわけではない。 思い返せば大学院から最初に就職した会社は、受託開発で忙しいながらも楽しく、社会人としてもプログラマとしても大きく成長させてくれた職場でした。何もなければそのまま一生そこで勤めて終わる、当にそう思っていましたし、今でもやがては戻れたらいいなあと思います。しかし現実にはそうはならなかった。どこに行っても仕事がなく、開発者が余ってしょうがないみたいな時代があり、それが十年近く前ですけど、ありていに言えば放り出されてしまった。会社都合退職です。 しょ

    フルタイムのコミッターとして企業に属しながらオープンソースのプログラミング言語を開発するということ - GeekOutコラム
  • まつもとゆきひろさん「ことわざに通じるRubyのプログラミングとコミュニティ」 〜RubyKaigi 2018 基調講演 1日目 | gihyo.jp

    RubyKaigi 2018 Keynote レポート まつもとゆきひろさん「ことわざに通じるRubyのプログラミングとコミュニティ」 〜RubyKaigi 2018 基調講演 1日目 2018年5月31日から6月2日まで、宮城県仙台市の仙台国際センターでRubyKaigi 2018が開催されました。 1日目の基調講演は、Rubyの作者のまつもとゆきひろさんです。 「⁠箴言(Proverbs⁠)⁠」というタイトルで、3つのことわざを取り上げました。そして、ことわざに示される先人たちの知恵から、プログラミングやコミュニティについて学べることを話しました。 名は体を表す 1つ目のことわざは「名は体を表す」です。 まつもとさんの座右の銘が「名前重要」とのことで、プログラミングにおいて名前付けは非常に重要だという話から始まりました。 プログラミングには物理的な実体がないため、クラス、メソッド、変数

    まつもとゆきひろさん「ことわざに通じるRubyのプログラミングとコミュニティ」 〜RubyKaigi 2018 基調講演 1日目 | gihyo.jp
  • ruby 0.62 のソースコードを復活させた - まめめも

    RubyKaigi の後夜祭で、akr さんが「327 種類の Ruby をビルドする方法 〜0.49 から 2.6.0-preview2 まで〜」という発表をされていました。 RubyKaigi 2018 After Party で話したスライドです: 「327 種類の Ruby をビルドする方法 ~0.49 から 2.6.0-preview2 まで ~」https://t.co/J5MXgM2PNN— Tanaka Akira (@tanaka_akr) 2018年6月4日 その中で、ruby-0.62.tar.gz と ruby-0.63.tar.gz のファイルは「gzip 形式じゃないといわれて展開できない」ということで、ビルド対象から外されていました。 いろいろやって、めでたくこの 2 ファイルを復活させることに成功しました。そのプロセスを書きます。 なお、壊れていたファイルも

    ruby 0.62 のソースコードを復活させた - まめめも