タグ

関連タグで絞り込む (632)

タグの絞り込みを解除

rubyに関するkiyo_hikoのブックマーク (504)

  • まつもとゆきひろさん「30 Years of Ruby」 〜RubyKaigi 2023 1日目キーノート | gihyo.jp

    2023年5月11日から13日まで、長野県松市でRubyKaigi 2023が開催されました。今回のRubyKaigiは「松に始まり松に終わる」かたちで、Rubyの作者であるまつもとゆきひろさんの基調講演からスタートしました。タイトルは「30 Years of Ruby」です。 今年はRubyの開発を始めてから30年の節目ということで、今回の講演では、これまでの開発で得た様々な教訓を、いくつかの時代ごとに区分して紹介くださいました。 1993年2月24日⁠:Rubyの誕生 Rubyの名前が決まったのがこの日です。この時点ではRubyのコードは1行もなかったそうですが、公開された日ではなく、名前が決まった日が誕生日とされています。ソフトウェアは物理的実体を持たない概念であり、名前によってその存在が決まるのだから、名前が決まった日を持ってRubyという概念が誕生したとみなしているそうです

    まつもとゆきひろさん「30 Years of Ruby」 〜RubyKaigi 2023 1日目キーノート | gihyo.jp
  • Rubyメソッドの実装を参照するためのいくつかの方法 - BOOK☆WALKER inside

    こんにちは、メディアサービス開発部Webアプリケーション開発課のシゲタです。普段はRuby on Railsによるバックエンドの開発に携わっています。 先日とあるRubyメソッドの仕様が気になりコードリーディングに挑戦したのですが、当該メソッドがどこに何という名前で定義されているのかわからず、定義にたどり着くのに時間を要してしまいました。 同じようなポイントでつまづいた方、これからコードリーディングを始めようと思っている方のために、記事ではRubyメソッドの実装を参照する方法をいくつかご紹介したいと思います。 pry-docで参照する リファレンスから参照する Rubyリポジトリをgit cloneしてローカルから参照する githubで検索して参照する まとめ 最後に pry-docで参照する pryにpry-docをインストールして$コマンドを使うことで、C言語で実装されたRuby

    Rubyメソッドの実装を参照するためのいくつかの方法 - BOOK☆WALKER inside
  • プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try

    今回のエントリでは先日、僕が勤めているソニックガーデンで話題になったプログラミング関連の小ネタを書きます。 それは何かというと、「プログラミング初心者は変数名やメソッド名を略さない方がいい」という話です。 長い変数名やメソッド名はつい略したくなります。 実際、僕も長い名前を略すときはよくあります。 ですが、略称を使うのは長年の経験から「この略称は一般的だから誤解を招くことはきっと少ないだろう」とか「前後の文脈から、変数の中身は誰が見ても明らかだろう」という想像が付いた場合だけです。 一方、プログラミング初心者の人は経験が浅いため、「一般的かどうか」とか、「誤解が発生しないかどうか」といった判断ができません。 そのため、他の人が見たときに「え、何この変数名?」と思ってしまうような略称を付けてしまう恐れがあります。 たとえば、先日のコードレビューで、初心者の人がrev_noという名前の変数を定

    プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try
    kiyo_hiko
    kiyo_hiko 2020/10/20
    reverse_nums派。あとスコープ短いと変数も短くする。例題が数行メソッドならns = [1,2,3,4,5]; sn = ns.reverse; sn.map(&:to_s).とし、メソッドのコメントを厚く書く。あと略称の暗黙知は信用しない。幾つかの英語サイトを見て決める
  • まつもとゆきひろのツイッターを見てRuby使うのをやめようと思った

    Matzことまつもとゆきひろといえばプログラミング言語Rubyの作者なのだが、技術的にはともかく政治的にはツイッターを見ていてとてもつらい。 「高度プロフェッショナル制度」について 高度なスキルを持つと自負し、高い裁量が欲しい私のような労働者を野党が目の敵にしてることはよく分かった。実に残念だ。— Yukihiro Matsumoto (@yukihiro_matz) March 1, 2018 「定額働かせ放題」とも呼ばれ、専門性も裁量性も低い業種への拡大が懸念される「高度プロフェッショナル制度」について、問題点を理解せず反対する野党を揶揄。 「IT 業界を苦しめたいか、生産性を高めるのを阻害したい勢力」について 軽減税率といい、改元といい、サマータイムといい、IT 業界を苦しめたいか、生産性を高めるのを阻害したい勢力が政治をコントロールしている陰謀論を信じたくなるな。— Yukihir

    まつもとゆきひろのツイッターを見てRuby使うのをやめようと思った
    kiyo_hiko
    kiyo_hiko 2020/10/14
    そもRuby自体がそんなに好きじゃない。小気味よくヘンテコリンな構文で書けるのが気に入らない。小気味よくべったり均一な構文で書けるLispがいい
  • [ruby]闇プログラマーによる、うるう年の判定処理

    以下の記事を読んだ私は違和感を覚えた。 私がソフトウェア技術者をやめた理由 今時のソフトウェア技術者というものは未だにこんな判定処理を書いているというのか。やはり遅れているとしか言いようが無い。 闇プログラマー界隈ではその一歩後ろ右斜め奥をいっている。 うるう年の判定とはこうやるのだ。 def leap_year?(y) /^(?:[13579](?:[13579](?:[13579][26]|[26][048]?|[48][048]|0[48])|[48](?:[13579][26]|[48][048]?|[26][048]|0[48]?)|0(?:[13579][26]|[48][048]?|[26][048]|0[48])|[26](?:[048][048]?|[13579][26]|[26][048])?)|[26](?:[13579](?:[13579][26]|[26][048

    [ruby]闇プログラマーによる、うるう年の判定処理
    kiyo_hiko
    kiyo_hiko 2019/12/10
    求道者に正規表現を与えちゃいけません
  • RubyのNet::TelnetはPromptを適切に設定しないと接続がTimeoutする - Qiita

    はじめに telnetは、汎用的な双方向通信プロトコルであり、平文で通信する。以前scpが失敗する件について記事にしたが、.bashrc等の設定次第で、RubyNet::Telnetを使用するとき、失敗することがある。 Net::Telnetクラス 基の使い方 Rubyのマニュアルを確認すると、 require 'net/telnet' # リモートホスト "foobar" に接続 # タイムアウトは 10 秒 localhost = Net::Telnet.new("Host" => "localhost", "Timeout" => 10) # ログインし、プロンプトが出るまで待ち合わせる telnet.login("your name", "your password") {|c| print c} # ls コマンドを実行し、実行後、プロンプトが出るまで待ち合わせる telne

    RubyのNet::TelnetはPromptを適切に設定しないと接続がTimeoutする - Qiita
    kiyo_hiko
    kiyo_hiko 2019/09/11
    Telnetでprompt設定が必要な理由Ruby / たぶんPerlの事情も同様(https://www.perlmonks.org/?node_id=672533)
  • RubyとRailsの学習ガイド2019年版

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

  • RubyとDockerを使って簡単に全文検索エンジンを始めてみよう - Qiita

    Groonga Advent Calendar 2015の7日目の記事です。前日は@ktouさんのGroonga Meatup 2015:Groonga族2015でした! Groongaには公式でDockerコンテナが用意されています。今回はgroonga/rroongaを使ってRuby経由で簡単に全文検索を試してみましょう。 インストール Dockerを使えるようにしてください。その後で以下のコマンドを実行します。Dockerを使うとインストールの失敗がないのがいいところですね!

    RubyとDockerを使って簡単に全文検索エンジンを始めてみよう - Qiita
  • RubyとSeleniumでHeadless chromeを動かす on Ubuntu/Linux - Qiita

    [2017-06-22 追記] chromeバージョン59の正式リリースに伴い、記事の内容を全面刷新しました。 [2017-07-27 追記] selenium使用時にsend_keysが使用できない問題を記載しておりましたが、Chromedriver2.31のリリースに伴い問題が解消しました! はじめに注意 chromeはバージョン59より正式にヘッドレスモードを搭載しました。 それを試そうと「chrome headless」などで検索すると、古いバージョンのchromeをXvfbなどの仮想ディスプレイを通してLinux上で動かす記事が沢山でてきますが、これらはheadless chromeに関しての記事ではなく、普通のGUI chromeをどうにかしてcui上で動かそうという取り組みの記事です。 chromeのヘッドレスモードでは、PhantomJSと同じようにXvfbはありません。g

    RubyとSeleniumでHeadless chromeを動かす on Ubuntu/Linux - Qiita
    kiyo_hiko
    kiyo_hiko 2018/11/12
    Xfvb依存せずに単体で動かせるとは。
  • CentOS7でrbenvを使ってRubyをインストールできるようにする - Qiita

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

    CentOS7でrbenvを使ってRubyをインストールできるようにする - Qiita
    kiyo_hiko
    kiyo_hiko 2018/11/12
    非常に参考になった
  • WebSocket大合戦:Clojure、C++、Elixir、Go、NodeJS、Ruby | POSTD

    Webアプリにリアルタイムの双方向通信が必要な場合、WebSocketを選ぶのは自然なことだと思います。では、どのツールでWebSocketサーバを構築すべきでしょうか。パフォーマンスは重要ですが、開発のプロセスも見過ごしてはなりません。パフォーマンスを基準にするだけでなく、開発のしやすさも考慮に入れるべきでしょう。今回の大合戦では、Clojure、C++、Elixir、Go、NodeJS、Rubyのそれぞれの言語によって慣用的な手法で実装されたシンプルなWebSocketサーバを比較したいと思います。 テスト内容 サーバに実装するのは、 echo と broadcast の2つのメッセージのみを扱う非常に単純なプロトコルです。echoは送信クライアントに返され、ブロードキャストは全ての接続クライアントに送信されます。そしてブロードキャストが完了すると、結果メッセージが送信者に返されます。

    WebSocket大合戦:Clojure、C++、Elixir、Go、NodeJS、Ruby | POSTD
  • RubyistのためのClojure入門 - Qiita

    PuppetがRubyからClojureへ乗り換えていくようです。 そんなRubyistが他にもいるかもしれないので、Rubyist向けにClojureだとどう書くか、みたいなガイドを書いてみます。 イディオム jnchitoさんのRubyイディオム記事をClojureで書くとどうなるか、まず説明したいと思います。 後置if で行数を減らす

    RubyistのためのClojure入門 - Qiita
    kiyo_hiko
    kiyo_hiko 2018/10/03
    RingはRack相当、CompojureはSinatra相当、ViewもHAMLそっくり
  • NGINX Unitが正式リリース。PHP、Go、Pythonなどに対応した軽量アプリケーションサーバ

    NGINX Unitが正式リリース。PHPGoPythonなどに対応した軽量アプリケーションサーバ オープンソースで開発されている軽量なアプリケーションサーバ「NGINX Unit」の正式版がリリースされました(「Announcing NGINX Unit 1.0 | NGINX」)。 NGINX Unitは、軽量なWebサーバとして知られるNGINXの開発者であるIgor Sysoevが設計し、NGNIXのソフトウェア開発チームが実装を担当したもの。昨年の9月にパブリックプレビュー版が登場しており、今回それがバージョン1.0に到達しました。 参考: 日Nginxユーザ会が発足。開発者Igor Sysoev氏が語る、Nginxが生まれ、商用化された理由 - Publickey NGINX Unitの主な特長は、動的制御が可能なためコンフィグレーションやアプリケーションの入れ替え、バー

    NGINX Unitが正式リリース。PHP、Go、Pythonなどに対応した軽量アプリケーションサーバ
  • Ruby 2.5 - tmtms のメモ

    この記事は Ruby 2.5.0 preview1 時点のものです。Ruby 2.5 リリース版については http://tmtms.hatenablog.com/entry/2017/12/30/ruby25 を見てください。 Rubyは毎年クリスマスにバージョンアップされます。 今年も問題なければ12/25にRuby 2.5が出ると思います。 https://docs.ruby-lang.org/en/trunk/NEWS.html を元に変更内容を調べてみました。 言語仕様 トップレベル定数参照 rescue/else/ensure 節 文字列内式のRefinement Unicode バージョン 10.0.0 組み込みライブラリ Array#append, #prepend 追加 Dir.children, Dir.each_child 追加 Dir.glob :base オプショ

    Ruby 2.5 - tmtms のメモ
    kiyo_hiko
    kiyo_hiko 2017/12/04
    doに直接rescue書けるの地味に便利そう。
  • How Ruby Executes Your Code - Pat Shaughnessy

    This is an excerpt from the second chapter of an eBook I’m writing this Summer called “Ruby Under a Microscope.” My goal is to teach you how Ruby works internally without assuming you know anything about the C programming language. If you’re interested in Ruby internals you can sign up here and I’ll send you an email when the eBook is finished. I also posted one entire chapter in May, and an excer

  • ruby は メソッドに return が不要なのではなく、元々そうなっているだけ - MUGENUP技術ブログ

    皆さん、こんにちは。MUGENUP の osada です。 いきなりですが、問題です。 def if_expression(flag) if flag "NG" else "OK" end end Ruby は 最後に評価された値が返る と言われていますね。 では、上記のメソッドで if_expression false の返り値は、何ですか? はい、正解です。OKが返ってきますね。 ちょっと長いので、リファクタリングしましょう。 def if_modifier(flag) "OK" "NG" if flag end さてもう一度。 if_modifier(false) の返り値は、何ですか? Ruby は 最後に評価された値が返る と言われていましたよね? はい。正解です。nil が返ってきますね。 え、"OK"じゃないのかって? いいえ、後置if は if とは全く違います。 右辺の条

    ruby は メソッドに return が不要なのではなく、元々そうなっているだけ - MUGENUP技術ブログ
    kiyo_hiko
    kiyo_hiko 2017/11/09
    後置if気をつけたい
  • RubyWorld Conference 2017で喋ってきた - miyohide's blog

    はじめに 2017年11月1日、2日で開催されたRubyWorld Conference 2017にて「組込みハードウェアモジュールへのmrubyアプリケーション適用試行」というタイトルで喋ってきました。 内容は、ESP-WROOM-32を使ってmrubyアプリを動かすというもの。「業務ですか?」と聞かれたのですが、日OSS推進フォーラムアプリケーション部会で話題に上がったものを個人的に進めていたもので、基は個人的趣味です。業務ではこういうことをしないので、ノウハウが全然なかったり時間が取れなかったりと悪戦苦闘しましたが、無事発表にまでたどり着けることができました。 資料は後日、RubyWorld Conferenceのサイトから公開されると思います。 動機 昨年RaspberryPiを使ってmrubyアプリを動かしたことを発表したのですが、PaspberryPiはCRubyが動くので

    RubyWorld Conference 2017で喋ってきた - miyohide's blog
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
    kiyo_hiko
    kiyo_hiko 2017/10/12
    ログだしをconfig/boot.rbで設定する→less-R // 関連:Padrino::Logger → http://www.rubydoc.info/github/padrino/padrino-framework/Padrino/Logger
  • Rubyで文字列内の改行、スペースを削除: Web自動アクセスなどのプログラミングを学ぶ日記

    curbで取得した情報内に改行や空白が大量に含まれている文字列があるため、改行と空白を削除しました。 ●改行のみ削除 今まで、下記コードで文字列内にある改行を削除していました。 str = str.gsub(/(\r\n|\r|\n|\f)/,"") ●空白、改行を削除 下記コードで、文字列内に含まれる改行、空白を削除しました。 str = str.gsub(/(\s)/,"") ¥sを指定すると空白だけでなく改行も削除するようです。 ●タブ、複数のスペースを一つのスペースに置換 すべてのタブ、スペースを削除すると文字が読みづらくなってしまう部分があるため、複数の連続するタブ、スペースを一つの半角スペースに置換するようにします。 str = str.gsub(/([\t| | ]+)/," ")

    kiyo_hiko
    kiyo_hiko 2017/10/12
    すぐ忘れてしまうので。String#gsub
  • Ruby | Gvizでインデント構造のテキストをマインドマップに変換する - Qiita

    require 'familyable' require 'gottani_core' require "gviz" text =<<-EOS Ruby スクリプト言語 影響 From Perl Lisp Smalltalk To CoffeeScript Elixir Author まつもとゆきひろ Matz 松江 Heroku Web Ruby on Rails Author DHH Products Redmine GitLab Sinatra DevOps Vagrant Author M.Hashimoto Provider Virtual Box VMWare Workstation Fusion AWS Chef Puppet 特徴 楽しい すべてがオブジェクト 可読性の高さ 動的言語 強力なメタプログラミング DSL作成の容易さ EOS sp2 = Gottani::Spa

    Ruby | Gvizでインデント構造のテキストをマインドマップに変換する - Qiita