タグ

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

タグの絞り込みを解除

rubyとRubyに関するigrepのブックマーク (546)

  • 【続】Rubyの22年に渡るコミットの歴史を可視化してみた(ファイル編)

    この記事はRuby Advent Calendar 2019の19日目の記事です。 (19日目が投稿されなかったので代理投稿します。) はじめに記事は19日目の代理投稿ですが、25日を過ぎて書かれています。そして25日目の続きです。25日目では作者単位で可視化を行いましたが今回はファイル単位で行ってみたいと思います。 Rubyの開発の主なファイルはトップディレクトリ直下に置かれているので、それらのファイルを対象に集計してみたいと思います。 ファイル一覧を作成するまずは22年間の間に存在したファイル一覧を作成したいと思います。これは以下のようなワンライナーでできました。 git log --pretty="format:" --name-only --since="23 years ago"|grep -v '/'|grep -v -e '^\.' -e '^\s*$'|sort|uniq

    【続】Rubyの22年に渡るコミットの歴史を可視化してみた(ファイル編)
  • Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた|ハイクラス転職・求人情報サイト AMBI(アンビ)

    Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた 2019年12月25日にリリースされたばかりのRuby 2.7では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさんに詳しくうかがいました。 まつもとさんはとにかく忙しくて 実はすごいirbの改良 パターンマッチはRubyをどう変えるか キーワード引数は、端的に壊れていたのを大整理した 高速化に向けたいくつかの観点 Ruby 2.7で導入される「コンパクションGC」とは Ruby 3のビジョンは「静的解析」「並行並列」「JIT」 プログラミング言語Rubyには、クリスマス前後に新しいバージョンをリリースする伝統があり、2013年の2.1.0以降は毎年12月25日にメジャーバージョンアップが行われています

    Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた|ハイクラス転職・求人情報サイト AMBI(アンビ)
    igrep
    igrep 2019/12/26
    昨今はリリース日をかっちり決めて、その時点でできているものをリリースする、というやり方が主流なので「なぜこのタイミング?」は「実装できてリリースに入れられる状態になったから」以外にないだろうなぁ
  • キーワード引数というコントリビュートチャンス - Qiita

    Ruby2.7へ向けて そろそろRuby2.7の季節がやってきましたね! すでにアップデート準備はすませましたでしょうか? Ruby3へ向けた移行パスの一環として、Ruby2.7からキーワード引数の仕様が変更されます。 これは多少の破壊的な変更があり、実際にRubyのアップデートを考えるときには悩みどころとなりそうです。 ここでは実際に手元のアプリケーションをRuby2.7.0-rc2に移行する際に遭遇したケースをヒントに、自分なりに想定できる対処方法などを記してみます。 ※ なおキーワード引数の新仕様や、その具体的な挙動については、こちらに素晴らしくわかりやすい解説記事があるので参考にしてみてください。 なおこの移行に伴い、たくさんのgemにおいてコントリビュートチャンス祭りが発生すると思われます Rubyエンジニアの皆様にはぜひぜひこの機会を生かしていただければと思っています! なぜ変

    キーワード引数というコントリビュートチャンス - Qiita
    igrep
    igrep 2019/12/25
    “ぜひ手元のアプリケーションをRuby2.7にアップデートして、警告を注視してください。 最初のうちは、アプリケーションだけでなくgem関連でも警告が出ると思います。これらが全て改修対象になります”
  • 🎉🎉祝Ruby2.7リリース🎉🎉 クリスマスなのでRubyの22年に渡るコミットの歴史を可視化してみた - Qiita

    この記事はRuby Advent Calendar 2019の25日目の記事です。 日はクリスマスということで、例年ならRubyの新バージョンがリリースされる日になります。 新バージョンのRuby 2.7はRC2までやってきたので、リリースに向けて着実に進んでいるようです。 🎉🎉 そして無事に日リリースされました!! おめでとうございます!!! 🎉🎉 (記事投稿時点ではまだリリースはされていません。) そこでRuby2.7のリリースのお祝いとコミッターのみなさんのハードワークに感謝の気持ちを込めて、Rubyの22年に渡るコミットの歴史を可視化してみたいと思います。 (2019/12/29追記) 19日目の代理投稿で以下の続編記事を書きました。 【続】Rubyの22年に渡るコミットの歴史を可視化してみた(ファイル編) - cats cats cats はじめに 一番最初の動機は

    🎉🎉祝Ruby2.7リリース🎉🎉 クリスマスなのでRubyの22年に渡るコミットの歴史を可視化してみた - Qiita
  • RubyやRubyのOSSの脆弱性を見つけた話の続き - ooooooo_qの日記

    この記事はRuby Advent Calendar 2019 - Qiitaの24日目です。 去年(RubyRubyのOSSの脆弱性を見つけた話 - ooooooo_qの日記)と同様にRuby関連で今年見つけた脆弱性の話です。 Ruby CVE-2019-16255: Shell#[]およびShell#testのコード挿入脆弱性 hackerone.com 脆弱性なのか判断に迷うもの。 引数が.sendにそのまま渡されるので値によってはコードが実行できるものでした。 .sendを使って実際に攻撃できるパターンが有るのか、Rubyのコードの中を調べて見つけた覚えがあります。 CVE-2019-15845: File.fnmatch の NUL 文字挿入脆弱性 hackerone.com またNul文字。さすがにRubyではもうNul文字の問題はないのではないでしょうか。多分。 Pathna

    RubyやRubyのOSSの脆弱性を見つけた話の続き - ooooooo_qの日記
  • GitHub - tompng/air_hockey_quine: Network Battle Air Hockey Quine

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - tompng/air_hockey_quine: Network Battle Air Hockey Quine
    igrep
    igrep 2019/12/19
    すげぇ...
  • 【Ruby】NaNのNaNa不思議 - Qiita

    これは Ruby Advent Calendar 2019の18日目の記事です。Otemachi.rb #17 - connpassで話した内容の大幅加筆修正版です。 実用性は皆無ですので、求めている方はブラウザバックしてください。 NaN (Not a Number) とは みなさん NaN ってご存知でしょうか? NaNとは Not a Number の略で、日語では非数といいます。主に浮動小数点演算の結果が不定形だったり未定義だったりするときに返ってきます。 constant Float::NAN (Ruby 2.6.0 リファレンスマニュアル) その数がNaNであるかどうかは、Float#nan?で調べることができます。 NaNの仕様はIEEE 754で規定されているので、大抵のプログラミング言語には実装されています。 JavaScriptだとたまに見かけますが、RubyだとNa

    【Ruby】NaNのNaNa不思議 - Qiita
    igrep
    igrep 2019/12/18
    多分ほかの言語でも大体同じで、CPUによって挙動が変わるケースもあるかも
  • こんなメソッドまで?ブロックを受け取るRubyのメソッドたち - Qiita

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

    こんなメソッドまで?ブロックを受け取るRubyのメソッドたち - Qiita
    igrep
    igrep 2019/12/13
  • Rubyでグラフを描画するツール GR.rb の紹介 - Qiita

    これはなんの記事? GRというグラフ描画ライブラリのRubyバインディングの記事です。 https://github.com/red-data-tools/GR.rb Rubyだってグラフを描きたいのです! こんにちは。気がつくとRubyのコードをこちょこちょ書いているkojix2と申します。 Rubyでグラフを描きたいって思ったことはありませんか? もちろんRubyにもグラフを描くツールはいくつかあります。たとえば NArrayの作者の田中さんが作っているnumo-gnuplot Jupyter-labで動かすiruby-plotly Ankaneファミリーのchartkick かつて一世を風靡し作者が忽然と姿を消したNyaplot Seabornのようなフロントエンドを目指すcharty daruと一緒に使うdaru-view どれも良いツールではあるのですが、一長一短で私は満足できま

    Rubyでグラフを描画するツール GR.rb の紹介 - Qiita
  • capistrano-operator でサービスインフラ運用のオペレーションを対話的にする | IIJ Engineers Blog

    IIJ 2019 TECHアドベントカレンダー 12/11(水)の記事です】 はじめに みなさんはサービスインフラを運用するにあたり、オペレーションはどのように実施しているでしょうか。 オペレーションを自動化するために Ansible, Chef, Puppet を利用するといった話も耳にします。 私も既存の運用方法を見直し、オペレーション手順の自動化を考えました。 その際、Ruby 製のデプロイツールである capistrano を拡張して、capistrano-operator を開発しました。 今回はその capistrano-operator についての紹介です。 開発に至った背景 これまでのオペレーションは、作業ホストにログインし、シェルコマンドベースの手順書からコピー&ペーストをするという方式でした。 この作業を楽にやりたいという気持ちがあったものの、オペレーション中に人の目

    capistrano-operator でサービスインフラ運用のオペレーションを対話的にする | IIJ Engineers Blog
    igrep
    igrep 2019/12/11
    素晴らしい。昔似たようなの考えたなぁ。中断した場合再開はできるんだろうか。
  • Fullstaq Ruby を投入してみた(結果編に続く) - Qiita

    こんにちは。 以前見かけた Fullstaq Ruby を試してみようと思います。 Fullstaq Ruby 触れ込みについて 公式サイト の触れ込みでは Ruby, optimized for production A new Ruby distribution, with the Ruby you know and love, but better. 番環境向けに調整されたより優れたRubyとのことです。 Less memory — save 30-50% メモリ消費を3~5割抑え Faster 高速で More secure セキュアで Fully open source, based on MRI MRIベースの完全なオープンソース とのこと。 作者について サイトをみていると、創設者は Hongli Lai と Fullstaq という会社のようです。 Hongli Lai

    Fullstaq Ruby を投入してみた(結果編に続く) - Qiita
    igrep
    igrep 2019/12/05
  • 【Ruby Advent Calendar 2019】ピュア Ruby で Ruby 2.7 の Numbered parameter を実装してみよう!【1日目】 - Secret Garden(Instrumental)

    Ruby Advent Calendar 2019 1日目の記事になります。 記事では Ruby 2.7 で実装される Numbered parameter っぽい機能をピュアRuby で実装してみたいと思います。 またこの記事の実装は以下の記事を参考にして書いています。 Rubyのブロックつらい問題を解決する暗黙のブロックパラメータ - Qiita 4年以上前にこういうのが書かれていたのすごい。 Numbered parameter とは Numbered parameter、略してナンパラです。 ナンパラは『暗黙的にブロックの引数を参照する構文』になります。 通常ブロックで引数を受け取る場合、仮引数を定義して受け取ります。 # it という名前の仮引数を定義して、それで引数を参照する [1, 2, 3].map { |it| it.to_s + it.to_s } # => ["11

    【Ruby Advent Calendar 2019】ピュア Ruby で Ruby 2.7 の Numbered parameter を実装してみよう!【1日目】 - Secret Garden(Instrumental)
    igrep
    igrep 2019/12/01
    昔Scalaの _ っぽいのを実装してみた記憶があるんだけどどこやったかな...
  • circleci-bundle-update-prをGitHub Actionsで動かせるようにした - くりにっき

    投げたPRはこちら github.com 動機 とある事情でCI用途のパーソナルアクセストークンを撲滅したかった件の一環です。 解説 GitHub Actionsはジョブ実行時に自動でアクセストークンをセットしてくれて便利なんですが、API実行の許可は付与されていても git push に対する許可が与えられていませんでした。 具体的には下記がGitHub Actionsだとエラーになります。 https://github.com/masutaka/circleci-bundle-update-pr/blob/v1.16.1/lib/circleci/bundle/update/pr.rb#L104-L111 そこでシステムの git で git commit と git push してる部分をAPIで置き換えた感じです。 circleci-bundle-update-prをGitHub

    circleci-bundle-update-prをGitHub Actionsで動かせるようにした - くりにっき
  • Ruby中間表現のバイナリ出力を改善する - クックパッド開発者ブログ

    Ruby 開発チームに4週間インターン生として参加いたしました、永山 (GitHub: NagayamaRyoga) です。 私は「Ruby中間表現のバイナリ出力の改善」という課題に取り組み、Railsアプリケーションのコンパイルキャッシュのサイズを70%以上削減することに成功しました。以下ではこの課題の概要とその成果について述べたいと思います。 InstructionSequenceの概要 まず、RubyVM 内で実行される命令の中間表現、InstructionSequence (以下 ISeq と省略) について簡単に説明します。 通常の Ruby プログラムは、以下のような手順で実行されます。 ソースコードを構文解析し、抽象構文木を作る。 抽象構文木をコンパイルして、ISeq を作る。 RubyVM (YARV) で ISeq を解釈し、実行する。 ISeq は、このように Ruby

    Ruby中間表現のバイナリ出力を改善する - クックパッド開発者ブログ
  • 100万行オーバーのモノリシックRailsアプリをマイクロサービス化したクックパッドの手順|ハイクラス転職・求人情報サイト AMBI(アンビ)

    100万行オーバーのモノリシックRailsアプリをマイクロサービス化したクックパッドの手順 マイクロサービスの導入事例を、中の人が徹底的に語ります。クックパッドでは、100万行オーバーの超巨大なRuby on Railsアプリのマイクロサービス化に挑みました。アプリをいかに分離し、連携できるようにするか、など、同社が採ったマイクロサービス化の戦略を聞きました。 Ruby on Railsのバージョンアップに1年かかっていた 【マイクロサービス化戦略】まずはコードを減らすことから 【マイクロサービス化戦略】アプリ固有のバッドノウハウを減らす 【マイクロサービス化戦略】まずは分離しやすい部分からお試しで 【マイクロサービス化戦略】データベースが切れていればサービスも切りやすい 【マイクロサービス化戦略】インフラ構成を標準化する 【マイクロサービス化戦略】サービスメッシュを入れて通信の課題をクリ

    100万行オーバーのモノリシックRailsアプリをマイクロサービス化したクックパッドの手順|ハイクラス転職・求人情報サイト AMBI(アンビ)
    igrep
    igrep 2019/09/18
    トランザクション境界に合わせて分割した方がいいって話もありますもんね。
  • 記事削除 - Qiita

    3分間Perlテキストクッキングの連載開始 Perlはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれています Linuxサーバーで、複数行の文字列を処理、ファイル内容の検索・置換などに便利 Perlはgitやopensslなどで採用され、Linuxミドルウェアとしての実績豊富 PerlでWeb開発するエンジニアPerl入学式サポーター

    記事削除 - Qiita
    igrep
    igrep 2019/09/04
    追記を繰り返して話が大きくなってきてるような…
  • 僕でもわかる継続と部分継続 - まめめも

    callcc と shift/reset についてわかるとこだけ書いてみます。 継続 callcc という操作は、現在から実行終了まで、継続をまるごと取り出します。例題。 p [1] + callcc {|k| [2] + k.call([3]) } #=> [1, 3] callcc では callcc がリターンしてから実行終了するまでの継続 k が取り出せます。k.call([3]) で継続が呼ばれると、いきなり「callcc が [3] を返した瞬間」に実行が飛びます。つまりこんな感じ。 p [1] + [3] あとは自明ですね。"[2] +" のあたりは無視されます。 部分継続 shift という操作は、現在から reset まで、継続の一部だけを取り出します。この継続の一部を部分継続といいます。例題。 p [1] + reset { [2] + shift {|k| [3] +

    僕でもわかる継続と部分継続 - まめめも
    igrep
    igrep 2019/08/09
    "部分継続の呼び出し k.call は「試しに shift をリターンさせて、reset に到達するまで実行して、その返り値を持ってくる」だけ"
  • mrubyをブラウザで実行するまで (WebAssembly) - Qiita

    更新サマリー 2017/11/28 print問題について加筆した。/独自マクロを除去。標準のものへ変更した。その他細かい文を修正した。 2018/7/19 幾つか正しくない表記を変更した。 はじめに Rubyがブラウザで動作する 先日、主要ブラウザでWebAssemblyを利用できる環境が整ったと話題になりました。 (参考リンク) WebAssembly対応、主要ブラウザChrome/Firefox/Edge/Safariで整う。 このことから、今後はWebアプリ(特にフロントエンド)でJavaScript系列以外の言語が選択肢にはいるようになります。(検索すると、Rustがよく引き合いに出されています。) コンテンツはmrubyインタプリタをWebAssemblyに変換し、ブラウザ上でRubyコード"p 'hello world! ...'を動作させるところまでを目標とします。なお、

    mrubyをブラウザで実行するまで (WebAssembly) - Qiita
  • パイプライン演算子の歴史 - まめめも

    (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

    パイプライン演算子の歴史 - まめめも
    igrep
    igrep 2019/06/15
    面白かった
  • Datadog APM について調べていたら, OpenTracing に辿り着いた (1) - ようへいの日々精進XP

    tl;dr OpenTracing について OpenTracing とは そもそも分散トレーシングとは Datadog x OpenTraning OpenTracing の用語 Jaeger で体験する OpenTracing Jaeger Jaeger の起動 Rack アプリケーション (Sinatra) を利用してトレース情報を送信する 利用するライブラリの導入 シンプルなアプリケーション トレース情報を確認 以上 参考 tl;dr Datadog APMPHP にも対応するということで, DD Trace PHP について調べていたら, ドキュメントに以下のように書かれていたので OpenTracing について少しだけ深掘りしてみた. In order to be familiar with tracing elements it is recommended to r

    Datadog APM について調べていたら, OpenTracing に辿り着いた (1) - ようへいの日々精進XP