タグ

Rubyに関するnekomoriのブックマーク (138)

  • 『研鑽Rubyプログラミング ― 実践的なコードのための原則とトレードオフ』 発売のお知らせ

    いつもご来店いただきありがとうございます。新刊『研鑽Rubyプログラミング ― 実践的なコードのための原則とトレードオフ』発売のお知らせです(4月13日12:00より発売開始)。 書は2021年11月から「β版」として先行して発売していた書籍の「正式版」となります。β版にGitHubでフィードバックをいただいた@QWYNG、@hsbt、@ima1zumi、@june29、@kaorahi、@kfukai23、@kuredev、@kyanagi、@okuramasafumi、@spinute、@ursm、@yancya、@ytjmtさん、ありがとうございました!(GitHubアカウント名のみ。2023年3月20日時点。sort(1)出力順。このほかにレビュアーの伊藤浩一さん、遠藤侑介さん、金子慶子さん、笹田耕一さん、塩井美咲さん、島田浩二さん、鳥井雪さんと株式会社万葉 研鑽Rubyプログラ

    『研鑽Rubyプログラミング ― 実践的なコードのための原則とトレードオフ』 発売のお知らせ
  • ニコニコ漫画をRuby3.2.0に更新してYJIT有効化するとパフォーマンス改善された話 - BOOK☆WALKER inside

    はじめに こんにちは。ニコニコ漫画の開発をしているyotaとtukiyoです。 この記事はペアブロギングによって執筆しています。 記事ではニコニコ漫画で利用しているRubyのバージョンを3.2.0へ更新したこととYJITの有効化によるパフォーマンスの変化について紹介します。 ニコニコ漫画のインフラ構成についてにある通り、ニコニコ漫画は4つのプロダクトによって運用されています。 このうち記事の対象となるのは、Rubyを利用している「新バックエンド」と「課金サブシステム」になります。 今回、Rubyのバージョンが3.2.0になったことでYJITが実験段階ではなくなりました。*1 ニコニコ漫画のバックエンドシステム内では複雑な処理も多く、恩恵に与ることを期待して更新を行いました。 結果として大きなパフォーマンスの向上が見られました。 はじめに 更新に関する作業 更新前後のパフォーマンス比較

    ニコニコ漫画をRuby3.2.0に更新してYJIT有効化するとパフォーマンス改善された話 - BOOK☆WALKER inside
  • 欧米で発売された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とRailsの学習ガイド2019年版

    この記事は RubyそしてRailsをこれから勉強したい方に、どんな技術を勉強すればいいかと、それらの技術全体のガイドマップを図示します。そしてそれを学ぶための資料(書籍、Web記事ほか)を紹介していきます。この記事は、頭の中に技術全体の地図を描き、イメージしてもらうのが狙いです。 Railsアプリを作るときに必要になたくさんの技術について説明していきますが、当にたくさんの技術が出てきます。まだ学んでいない、分からない言葉が出てくると思いますが、全体を把握するために、ひとまずは「そういう技術があるのだな」くらいで捉えてもらえればと思います。将来、その言葉が出てきたときに「どこかで聞いたような?」と思えたら儲けものです。 勉強方法のお勧めは、1つの知識を徹底的にやるよりも、まずは全体を通して勉強し、そのあとで勉強したいところに戻って積み重ねて学んでいく方が、挫折しづらいのでお勧めです。 追

  • 新しいRubyアプリサーバー「NGINX Unit」を調べてみた(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: A New Ruby Application Server: NGINX Unit 原文公開日: 2018/03/28 著者: Nate Berkopec (@nateberkopec): Railsのパフォーマンスコンサルタントです。 主著: The Complete Guide to Rails Performance 参考に、NGINX Unitの動画を貼っておきます。 画像は元記事からの引用です。 概要: NGINX inc.は同社の新しい複数言語対応アプリサーバーであるNGINX UnitRubyのサポートを開始しました。NGINX UnitRubyアプリサーバーにどんな意味をもたらすのでしょうか?NGINX Unitは注目すべき製品なのでしょうか?(2057文字、10分) Rubyistのための新しいアプリサーバー

    新しいRubyアプリサーバー「NGINX Unit」を調べてみた(翻訳)|TechRacho by BPS株式会社
  • Ruby 2.5.0 リリース

    Posted by naruse on 25 Dec 2017 Ruby 2.5シリーズの最初の安定版である、Ruby 2.5.0がリリースされました。 Ruby 2.5.0には、多くの新しい機能やパフォーマンスの改善が含まれています。 その一部を以下に紹介します。 新機能 rescue/else/ensure が do/end ブロック内にも直接書けるようになりました。 [Feature #12906] yield_self が追加されました。与えられたブロックをそのコンテキストでyieldします。tapと異なり、yield_self はブロックの値を返します。[Feature #6721] 分岐カバレッジとメソッドカバレッジの計測がサポートされました。分岐カバレッジは分岐が実行されたかどうかを表します。またメソッドカバレッジはメソッドが呼び出されたかどうかを測定します。テストスイートを

  • Mastodon API gemを使って投稿する - Qiita

    #!/usr/bin/env ruby require 'bundler/setup' Bundler.require(:default) require 'mastodon' require 'highline/import' require 'oauth2' require 'dotenv' require 'pp' DEFAULT_APP_NAME = "mastodon-cli-sample" DEFAULT_MASTODON_URL = 'https://mstdn.jp' FULL_ACCESS_SCOPES = "read write follow" Dotenv.load if !ENV["MASTODON_URL"] ENV["MASTODON_URL"] = ask("Instance URL: "){|q| q.default = DEFAULT_MASTODON_U

    Mastodon API gemを使って投稿する - Qiita
  • Rubyで書いていたら破滅したので、Lisp/Racket で書きなおしたお話 (『プログラミング言語の基礎概念』について) - Line 1: Error: Invalid Blog('by Esehara' )

    今日のアート mograg garageで行われたKYOTAROさんという方が描かれた絵です。 手帳にも描いてもらいました。ありがとうございます!! 概要 タイトルが釣りっぽくなって申しわけない(だったらやらなきゃいいじゃん……)。 普段は練習にRubyを利用しており、あるコードを規則に従ってステップを作成するプログラムを作っていたところ、とてもではないが、メンテすることが不可能になってしまった。なので、Lispの方言の一つであるところのRacketを使ったところ、サクサクと実装できるようになった。なぜこの違いが生まれてしまったのか、できるだけプログラミング言語の特性に依存せずに、この違いを語ろうと思う。 はじめに つい最近、知人と出あったところ、『プログラミング言語の基礎概念 (ライブラリ情報学コア・テキスト)』が話題にのぼった。このテキストはオンラインによる問題集が付属しており、知人に

    Rubyで書いていたら破滅したので、Lisp/Racket で書きなおしたお話 (『プログラミング言語の基礎概念』について) - Line 1: Error: Invalid Blog('by Esehara' )
  • サクサク引ける Rubyリファレンスマニュアル

    キーボード操作 [↓]次の項目を選択 [↑]前の項目を選択 [Enter]選択された項目を開く Fork me on GitHub ≫ https://github.com/miyamae/rubydoc-ja/tree/master 静的なファイルだけで構成されているので、ダウンロードしてローカルで利用することもできます。 作ってる人=みやまえ@BitArts

    サクサク引ける Rubyリファレンスマニュアル
  • パトライトをコントロールするgemを書いた - ただのにっき(2015-01-08)

    ■ パトライトをコントロールするgemを書いた 職場の隣のグループがネットワーク接続型のパトライト(たぶんこれ)を買ってもらっていいなーと思ったのでRubyからいじれるライブラリを書いた(もちろんgemも)。なお、Webサイトを探しまわったけど取扱説明書のダウンロードリンクが見つからなかったものの*1、ググったらすぐみつかった(PDF)のでこれを使っている。 こんな感じで使える(赤色ランプを点灯して10秒後に消す): require 'net/pns' Net::PNS.new(ADDRESS_OF_PATLITE, 10000) do |patlite| patlite.light({red: :on}) sleep(10) patlite.clear end 「最新型らしいし、いまどきはRESTful Web APIくらいあるんだろ」と思ったらぜんぜんそんなことなくて、SNMPはまぁこ

  • Ruby 2.2.0 の新規フィーチャーをネチっこくおさわりする #ruby - Qiita

    Ruby 2.2.0 の新規フィーチャーを ネチっこくおさわり する #ruby 概要 2014/12/25 にリリースされた Ruby 2.2.0 の新規フィーチャーを ネチっこくおさわり してみます リリースノート Ruby 2.2.0 リリース | Ruby Official Ruby NEWS | GitHub Ruby 前提 下記記事で作成した環境を利用 Vagrant + CoreOS + Docker + Itamae で使い捨ての Ruby 2.2.0 環境を構築する pry を利用して、一部の新規仕様のドキュメントを参照します 1 Binding Binding#local_variables pry で doc を確認 [6] pry(main):1> ? local_variables From: vm_eval.c (C Method): Owner: Kernel

    Ruby 2.2.0 の新規フィーチャーをネチっこくおさわりする #ruby - Qiita
  • Rubyを用いたマイコンプログラムの遠隔書き換えシステム

    3. 3 プログラム書き換えの仕組み インターネット上のサーバにapacheなどを 入れておき、http/httpsでプログラムが取得 できるようにしておく。 インターネット・クラウド DropBoxファイル 公開サーバ上ファイル mrubyボードには、httpを用いて指定ファイルが取得 できるrubyクラスが実装されている。 下記のサイトからのファイル取得が可能なこと が確認できている。 ・DropBox (httpsによる取得) ・Yahoo ジオシティーズ (httpによる取得) 実行中のプログラム 自分自身を終了させて、 ダウンロードしたプログラムを呼び出す ダウンロードしたプログラム ダウンロードしたプログラム の呼び出し ダウンロードしたプログ ラムの実行 6. 6 rubyプログラム while(true)do #http://www.geocities.jp/cansatk

    Rubyを用いたマイコンプログラムの遠隔書き換えシステム
  • Ruby 2.1.5 Released

    Posted by nagachika on 13 Nov 2014 Ruby 2.1.5 has been released. This release includes a security fix for a DoS vulnerability of REXML. It is similar to the fixed vulnerability in the previous release, but new and different from it. CVE-2014-8090: Another Denial of Service XML Expansion And, some bug fixes are also included. See tickets and ChangeLog for details. Download https://cache.ruby-lang.o

  • RubyのOptionParserの底力を知る - ザリガニが見ていた...。

    コマンドは、以下のような書式でオプションと引数を設定して、実行する仕組みになっている。 例: コマンド名 オプション オプション オプション引数 オプション コマンド引数 optparser_test.rb -a -b VALUE --foo FILE_PATH 実際にコマンドを作ろうとすると、オプションの解析には手間がかかると気付く。 そのため、多くの言語環境にはオプション解析用のライブラリが用意されている。 Rubyのoptparserについて、基的な使い方は知っているつもりだったが... Rubyでコマンドの中身を作るまで - ザリガニが見ていた...。 ちょっと気の利いたコマンドにしようとすると、その使い方は謎だらけになった。 どうしたら苦労最小限でオプションを解析できるのか、調べてみた。 基 require 'optparse' OptionParser.new do |op

    RubyのOptionParserの底力を知る - ザリガニが見ていた...。
  • http://geechs-magazine.com/1607

    http://geechs-magazine.com/1607
  • mitukiii.jp | Rubyでコマンドラインスクリプト書くならThorが便利そう

    経緯 PadrinoというRuby製のWebフレームワークのジェネレータ周りのコード読んでるとThorというライブラリでタスクが書かれていました。コードがエレガントで読みやすかったので調べてみました。 Thorとは GithubのREADMEのDescriptionより意訳。 wycats/thor – GitHub Thorは自己ドキュメント化されたコマンドラインツールを効率よく作るツールです。これ使うことによりコマンドラインオプションのパースや使い方を書くという面倒な作業から解放されます。Rakeの代わりに使うことも出来ます。書き方もRakeに近いので既にRakeを使っている人もすぐに馴染むことが出来ます。 Thorってなんなんだろう。 – pochiのメモ帳 rakeとの主な違いは記述方式と、コマンドラインオプションです。 rakeを利用すると基的なコマンドラインオプションを用いて

  • Rubyで高速にパターンマッチするgemを作った - TODESKING

    Ripperの出力とかParseletの解析結果などを扱うのに、ArrayやHashでパターンマッチして中身を取り出す処理を多用する必要があったのでパターンマッチライブラリを作りました。 GitHub: todesking/patm 同様のライブラリとしてはpattern-matchがあります。 機能面ではpattern-matchのほうが豊富ですが、PATMは高速なのが売りです(DSLによるメソッド定義を使用した場合、ネイティブRubyコードにコンパイルされるため50倍くらい速い。case式内で使用した場合でも7倍程度)。ベンチマークについてはこの記事の下のほう参照。 主な機能 DSLによるメソッド定義 extend Patm::DSL することで define_matcherを使ったメソッド定義が可能です。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

  • “binding.pry”って実際のところは何なのだろう - Qiita

    はじめに この記事はPryのコミッターであるkyryloが書いたso-what-is-binding-pry-exactlyを訳したものです。日語訳の公開を快く許可してくれたkyryloに感謝します。 Pryの使い方で一番最初に習うのは、“binding.pry”だと思います。この言葉をあちこちに埋め込むことで、幸せになれます。簡単にいうと、“binding.pry”を使うことで、日々の生活がだいぶ楽になります。あなたは“binding.pry”が何者なのか、不思議に思ったことはありませんか? 細かいことなので気にならなかったことだと思います。私がPryを使い始めたときは、これをおまじないの一種と考えました。“binding.pry”は不思議な魔法のようにみえたのです。魔法などでないことは、確かです。しかし、新しいことを学ぶとき、実際より不思議に思えてしまうことはよくあることです。この記

    “binding.pry”って実際のところは何なのだろう - Qiita
  • tDiary、13歳。ようやく折り返し - ただのにっき(2014-04-20)

    ■ tDiary、13歳。ようやく折り返し 今日でtDiaryの開発を始めて13年になる(というのを書いているのは例によって日付が変わってからなんだけど)。夕後には(tDiaryのカラーに合わせて)緑色の抹茶のケーキを。 25年継続するというプロジェクトの目標まで、あと半分を切った*1。こうしてみると、まだまだ先は長いなぁ。まぁ、自分が日記を必要としている限り開発は続くだろうし、日記を必要としなくなる日が来るとは現時点ではあまり想像できないのだけど。 ruby 2.1でとうとう$SAFEが使えなくなってしまったので、これがEOLになる頃には同一サーバ上で複数のtDiaryを動かすのに簡便な方法がなくなってしまう。なのでこれをPaaSのような個々のアプリが分離されているような環境へデプロイできるようにするのが当面の目標。すでにできているじゃないかと思われるかも知れないが、まだ全機能が使える

    tDiary、13歳。ようやく折り返し - ただのにっき(2014-04-20)
  • Rubyで学ぶデザインパターン - Iterator - Qiita

    Wantedlyエンジニア新人研修(設計)の1回目 チェックポイント ArrayはIteratorを使っているか? HashはIteratorを使っているか? 自分でIteratable(Enumerable)なクラスは書けるか? Rubyでインターフェースは存在しないがどう置き換えられているか? 1. どういう時に使うか 集合の要素を全走査したいとき。 Rubyで言えば XXX.each でループを回せる部分。 2. メリット (+デメリット) メリット 個々の要素とその集合という概念を扱えるようになる。 デメリット 特になし。 3. このパターンを使わないとどうなるか 配列やDB的なidがあるものに関してはfor (int i = 0; i < x.size(); i++)というような決まり文句で代替が効く。 文字列をKeyにした集合だと、そのkeyの配列などがない限り個々の要素にアク

    Rubyで学ぶデザインパターン - Iterator - Qiita