Rubyに関するpetitbangのブックマーク (19)

  • Ruby の STDOUT と $stdout - tmtms のメモ

    ちょっと前の Ruby-dev office hour で STDOUT と $stdout について話題になってたので書いてみる。 発端は Ractor で $stdout は使えるけど STDOUT は使えないというものだったようだけど、まあ Ractor についてはよくわからないんで置いておく。 Ruby には標準入出力エラー出力を表すものとして、定数(STDIN, STDOUT, STDERR)とグローバル変数($stdin, $stdout, $stderr)がある。 以下で STDOUT / $stdout と書いてるけど、STDIN / $stdin, STDERR / $stderr でも同じ。 Ruby プロセス起動直後は同じオブジェクトを指している。 STDOUT.__id__ # => 7984 $stdout.__id__ # => 7984 $stdout は変数

    Ruby の STDOUT と $stdout - tmtms のメモ
    petitbang
    petitbang 2025/02/03
    “現代の Ruby は fork & exec なんてしなくても system のオプションでリダイレクトを指定できるので簡単にできちゃう”知らなかった…
  • なるほどTCPソケット ― Rubyで学ぶソケットプログラミングの基礎 | snoozer05.org

    ダウンロードPDF(2MB)書について『Working with TCP Sockets』の翻訳版を、原著者であるJesse Storimerの許可を得て島田浩二が公開するものです。 翻訳版の書名は、同シリーズの先行書『なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 - 達人出版会』に揃えて『なるほどTCPソケット ― Rubyで学ぶソケットプログラミングの基礎』としました。 翻訳版も原書と同様、無料でお読みいただけます。 翻訳版の原稿は、10年ほど前に刊行を目指して翻訳したものとなっています。もし現在のRubyで動かない箇所や注釈が必要な箇所があれば、snoozer.05@gmail.com まで連絡ください。 公式ハッシュタグ:#naruhotcp 改訂履歴2024-09-23: 公開謝辞Jesse Storimer Original Author@takahashim

  • フリーランス歴20年の強強エンジニアからのガチコードレビュー集 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    フリーランス歴20年の強強エンジニアからのガチコードレビュー集 - Qiita
    petitbang
    petitbang 2023/07/15
    レビュー3がピンと来なかったのだが、String型で完全一致してるかの判定なのにinclude?を使ってたってことでいいのかな。include?はArrayで使うのが一般的とか出てきて混乱した。
  • Ruby のオススメの機能7選 - Qiita

    この記事は Ruby Advent Calendar 2015 の 8日目です。 比較的あまり知られていないと思うオススメの Ruby の機能を 7つ紹介します。 Enumerator.new Enumerator.new は知ってはいても、あまり使わない人が多いように思います。 私は非常によく使います。 理由は スコープを新たに導入したい Producer-Consumer パターン。値の生成と消費でフェーズの違いを明確化したい。 そのメソッド内で1度使いたいだけなのに yield するメソッドを別に作るのはちょっと気が引ける。名前空間を汚したくない。 全部、一度配列にしちゃうとメモリが気になる。メモリ消費を節約したい。 ネストを浅くしたい Enumerable モジュールの機能が欲しい といったところです。 たとえば下記のようなかんじで使います。 # Producer フェーズ use

    Ruby のオススメの機能7選 - Qiita
  • 続・Rubyのオススメの機能7選 - Qiita

    ゼロからプラスの無限大の間で二分探索しています。 この square の例では、Math.sqrt という自明な逆関数があります。 しかし例えば、消費電力量から電気代を求める計算のように逆関数が自明でない場合もあります。 そんな場合でも Range#bsearch を使うと簡単に電気代から消費電力量を求めることができます。 Double Splat しばしばよく使われるテクニックとして Splat があります。 実は下記の例で、find_element の引数として Splat が登場します。 * よりも無名かもしませんが、ハッシュの Splat を実現するテクニックとして ** があります。 たとえば、私も開発に関わっている電力比較サイトエネチェンジには、下記のようなコードがあります。 def zuttomo_3_energy_charges(kw) summer = {month_fr

    続・Rubyのオススメの機能7選 - Qiita
  • Rubyの開発環境を2021年ぽくする for Windows - おんがえしの blog

    2021年なのでこれくらいは欲しい。 Ruby 2.7.4 VSCode バイナリgemを確実にビルドできる コードフォーマッタ Lint デバッガ コード補完 それぞれは独立した機能なので全部入れなくてもいいと思います。(個人的には上から順に必須度が高い) Ruby 2.7.4 Ruby3自体は安定しているがgem周りの挙動が若干安定していなかったのでこちらを採用した。 (RubyInstallerも2.7系をまだおすすめしていた。) https://rubyinstaller.org/downloads/ rubyinstaller-devkit-2.7.4-1-x64.exeをダウンロードしてインストール。 Rubyのインストール終了後にmsysなどもインストールしてくるか聞いてくるので基的には全てインストール。 バイナリgemのインストール スタートメニューに「Start Com

    Rubyの開発環境を2021年ぽくする for Windows - おんがえしの blog
  • Ruby でデバッグする ruby_jard というツールが凄まじくすごい - Secret Garden(Instrumental)

    今日 Ruby Hacking Challenge in Hamada.rb に参加したときに ruby_jard という Ruby のデバッグツールを教えてもらいました。 これがかなり凄まじくすごかったのでちょっとまとめてみます。 ruby_jard とは ruby_jard とは Ruby のコードをデバッグするツールになります。 ruby_jard | Just another ruby debugger. Provide a better experience while debugging Ruby rubyjard.org 立ち位置としては byebug のようなデバッグツールになっており、コード上で jard というメソッドを呼び出すとそのタイミングでプロセスが停止して、コンソール上から Ruby のコードを実行できるような形になっています。 実際にどういう形でデバッグするの

    Ruby でデバッグする ruby_jard というツールが凄まじくすごい - Secret Garden(Instrumental)
    petitbang
    petitbang 2020/08/12
    これはよさげ。
  • RubyTips.dev - 101+ Tips For Ruby Developers

    cover? Returns true if obj is between the begin and end of the range ('a'..'z').cover?('c') #=> true ('a'..'y').cover?('z') #=> false Ruby Tips - a simple ruby tip generator RubyTips.dev Refresh the page to generate a new tip. Or just click here Built by @zayneabraham

    petitbang
    petitbang 2019/10/19
    知らないメソッドが出てきたりして面白い。
  • Rubyのtrueとfalseの話 - Qiita

    この記事は、技術同人誌としてまとめるはずだった原稿をほぼそのまま転載しています。諸事情により向こうかなり長い間同人誌即売会に売り手として参加することが難しくなったためです。 長いですが、お楽しみいただければ幸いです。 まえがき このは、Rubyコミッタである卜部昌平に、そのである私、卜部一恵がRubyのtrueとfalseについて突っ込んで聞いてみた話です。文は両者の対話形式で進んでいきます。 私は昌平と同じ大学同じ研究室に所属していたのでプログラミングについての基礎は一応ありますが、エンジニアとして職を得たことはありません。つまり、プログラミング初級者です。このはそのくらいのレベル感のだと思います。 私自身が初級者なりにRubyを使っていて、if文が思った通りに動かない、そんなときに抱いた疑問からこのが生まれました。 同じような疑問を抱いている方の一助になれば幸いです。 は

    Rubyのtrueとfalseの話 - Qiita
    petitbang
    petitbang 2017/09/27
    面白い
  • エラー:OpenSSL::SSL::SSLError SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed - #tech

    症状 ruby で任意のwebサーバーに対してHTTPS接続を行おうとするとエラーが発生した。 エラーの内容は次の通り。 OpenSSL::SSL::SSLError SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed問題となった ruby のコードは以下のような感じになっていた。 # ... https = Net::HTTP.new('example.com', 443) https.open_timeout = SYSTEM_TIMEOUT_SEC https.read_timeout = SYSTEM_TIMEOUT_SEC https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIF

    エラー:OpenSSL::SSL::SSLError SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed - #tech
    petitbang
    petitbang 2017/02/13
    参考になりました
  • Ruby超入門 (後編)

    こんにちは。Rubyを作りながらRubyを学ぼうという連載企画、第2回です。 第1回ではRubyインタプリタとは何かを学び、Rubyでプログラミングするための環境の準備をして、簡単な計算をする初めてのRubyプログラムを書いてみました。 今回は、Rubyを作るために最小限必要なRubyの知識として、「変数」と「分岐」、そして「ループ」という概念を学びます。 計算結果を覚えておく 前回の記事で最後に書いたのは、簡単な計算をして出力する次のようなプログラムでした。 p((1 + 2) / 3 * 4 * (56 / 7 + 8 + 9)) このプログラムをRubyインタプリタで実行すると、計算結果である「100」がすぐに出力されます。 Windowsで実行した例はこんな具合になるはずです(C:¥Rubyフォルダのcalc0.rbというファイルにこのプログラムを保存した場合の例です)。 C:¥R

    Ruby超入門 (後編)
  • Ruby超入門(前編)

    こんにちは。 この連載では、ちょっと変わったRuby入門を書いていきます。 想定読者は、Rubyを学びたいプログラミング初心者です。 Ruby以外の言語でプログラミングしたことがあると理解がはかどると思いますが、 Rubyを知らなくてもわかるように、なるべく丁寧に説明していくつもりです。 Rubyをある程度知っている読者には、最初の数回は退屈かもしれませんが、 回を重ねていくにつれ、より深くRubyを知ることができるはずです。 Rubyとは? Rubyは「プログラミング言語」です。 プログラミング言語とは、コンピュータにやらせたい仕事を書くための言語です。 つまり、Rubyを覚えて、Rubyでコンピュータへの指示を書けば、 コンピュータはその指示を実行してくれます。 この指示書のことを「プログラム」と言い、特にRubyで書かれたプログラムを「Rubyプログラム」と言います。 ところで、Ru

    Ruby超入門(前編)
    petitbang
    petitbang 2016/09/14
    「この連載の最終目標は、RubyをRubyで作ることです」面白そう。今後に期待。
  • 書き捨てのRubyスクリプトをgemにするときの育て方の一例 - 2016-09-08 - ククログ

    Rubyでちょっとしたこと、例えばテキスト処理などをしたくてスクリプトを書くことはよくあります。そんなスクリプトは意外と再利用したくなるものです。しかし、作業用ディレクトリに適当なファイル名で保存していたりすると探し出すのは困難ですし、コマンドラインにワンライナーで書いたものだとそもそも残っていないこともあります1。別のPCでの再利用も、それらの保存方法では当然ながら不可能でしょう。 そこで、どこか整理された場所に保存しておいて再利用に備えたいのですが、保存先が問題になります2。そんなとき、私は次のような理由からgemRubyGems)にしてしまうことにしています。手元ですぐに実行できますし、別の環境へのインストールも簡単です。また、他のRubyプログラムへの組み込みもコピペせずに実現できます。もちろん他の人が使えるようになるというメリットもあるのですが、自分の用途に限っても長い目で見れ

    書き捨てのRubyスクリプトをgemにするときの育て方の一例 - 2016-09-08 - ククログ
  • Rubyプロジェクトの始め方の備忘録 - Qiita

    自分の記憶力が薄弱すぎて、Rubyで何か書くかとなった時にいつも下準備の仕方を調べている気がするので、後で楽するために備忘録を残しておきたいと思います。 余談ですが、自分の記憶力が薄弱すぎて(大事なことなので2回繰り返した)「自分のために残すメモ的な意味の熟語なんだっけ?忘備録だったっけ?」って思ってググったら、「備忘録」(忘れるのに備える記録で備忘録)が正しくて、よく見る「忘備録」は誤記で「備えるのを忘れた記録になる」という意味になってしまうようです。 勉強になりました。 前提となる環境 Mac OS X giboをインストール済 ruby-build,rbenvをインストール済 準備 ディレクトリを作ってgit initしてからgiboで.gitignoreをお手軽に作成する。giboは、RubyOSXVimを引数に指定する(OSXVimはなくてもいいかも)

    Rubyプロジェクトの始め方の備忘録 - Qiita
  • Vim で Ruby を書くならこれを使え! - pockestrap

    私は開発環境を整えるのが大好きなのですが、今まであまり発信をすることがなかったのでこの記事を書きました。 少しでも VimRuby を書くのが快適になれば幸いです。 なお、煽り気味のタイトルですが、それだけ私の独断と偏見で便利だと思っているものです。 私は Ruby では Rails をメインに書いているので、Railsを書いている人には特に便利かも知れません。 mikutter plugin も時々書きます。 この記事では、Ruby に特化したプラグイン/設定の紹介をしたいと思います。 汎用的なものに関しては、簡単な説明とレポジトリへのリンクに留めます。 また、インストール方法は、NeoBundleを使用する方法を紹介します。 私がNeoBundleを使用しているので。 github.com neocomplete 用 Ruby 辞書 github.com neocomplete

    Vim で Ruby を書くならこれを使え! - pockestrap
  • http://openbook4.me/projects/92

    http://openbook4.me/projects/92
  • 言語処理100本ノックを敢えてRubyで (1) - 世界線航跡蔵

    言語処理100ノック を(飽きるまで)やってみるにあたり、敢えてRubyで書いてみる。 基的にはPythonを想定しているらしいし、そもそもNLPライブラリの充実度から言ってもPythonを使うのが極めて妥当な選択といえるだろう。そこを敢えてRubyで。 00. 文字列の逆順 puts "stressed".reverse RubyでもPythonでも大差ない。 01. 「パタトクカシーー」 str = "パタトクカシーー" puts 1.step(7, 2).map{|i| str[i]}.join やはりスライスにstepを指定できるPythonのほうが楽である。 02. 「パトカー」+「タクシー」=「パタトクカシーー」 strs = %w[パトカー タクシー] puts strs.map(&:chars).inject(&:zip).flatten.join 別解 strs =

    言語処理100本ノックを敢えてRubyで (1) - 世界線航跡蔵
    petitbang
    petitbang 2015/03/23
    参考になる
  • Rubyが切り開く科学の未来 - ほげほげにゃ

    この記事はRuby Advent Calendar 2014の13日目の記事です。 初めに Ruby教育・研究に使おうという試みはRubyの黎明期からありました。 この時期の有名なパッケージとしてはバイオインフォマティクスのBioRubyや地球科学の電脳Rubyプロジェクトが有名です。 先述のBioRubyやGPhys(電脳Rubyの成果物)は現在も更新が続けられており、多数の利用者を抱えています。 しかし全体として見た場合、科学の分野で使われるLL言語としてRubyPythonやRの後塵を拝している印象があります。 科学計算における均質化、あるいはなぜPythonが着実に他言語のシェアを奪っているか 記事のようにこの分野ではPythonコミュニティが非常に活発で、機械学習など新しい技術は真っ先にPythonで実装されるようになっています。 しかし最近Rubyでも少しずつですが環境が充

    Rubyが切り開く科学の未来 - ほげほげにゃ
  • 知って得する!55のRubyのトリビアな記法

    Rubyはたのしい言語です。Rubyを触っているとマニュアルにも書いていない「小さな発見」に遭遇することがよくあります。このような「発見」は、プログラムの質や効率の改善には直結しないかもしれません。いや、むしろチームプログラミングでは妨げになる可能性すらあります。しかしその一方で、言語自体が自分の知らない領域を持ち続けていることが、その対象に対する興味を失わせないための大きな要因である、というのもまた疑いのない事実なのです。つまり「発見」はたのしさに直結しているのです。 このブログにおいて「知って得するRubyのトリビアな記法」というタイトルで、今まで3回記事を書きました。 “知って得する21のRubyのトリビアな記法” “第2弾!知って得する12のRubyのトリビアな記法” “第3弾!知って得する12のRubyのトリビアな記法” これらのトリビアには、ネット検索で見つけたもの、Twitt

  • 1