タグ

Rubyに関するuneasyのブックマーク (191)

  • Ruby(とC)でRubyを実装してみた(builtinで遊んでみた) - Qiita

    はじめに タイトルにもあるようにRubyのbuiltin(正式名称を知らないので呼び出し方法から拝借)というものを使ってRuby自体をRuby(とC)で実装してみた話です。 内容としてはRuby自体の実装に興味のある方向けの話になります。 builtinって? builtinとはRuby(とC)でRuby自体を実装するというものです(正式な名前は今のところないみたい?)。以下のように__builtin_<Cで定義した関数名>をRubyのコードから呼び出すことでRubyとCを使い、より簡単にRubyの実装を行うことができます。 たとえば、Hash#deleteはCで以下のように実装されています。 static VALUE rb_hash_delete_m(VALUE hash, VALUE key) { VALUE val; rb_hash_modify_check(hash); val =

    Ruby(とC)でRubyを実装してみた(builtinで遊んでみた) - Qiita
  • Railsエンジニアの視点でHanamiを解説してみた - Qiita

    はじめに 新しい職場に来てもう少しで2ヶ月が経過します。現在の業務でHanamiを書き始め、何となく慣れてきたので、アドベンドカレンダーの機会にHanamiについて書いてみたいと思います。しかし、Hanamiはまだまだマイナーなフレームワークであるため、Railsエンジニアの視点で分かりやすいように解説していきます。 Hanamiとは 2017年4月にバージョン 1.0.0 がリリースされたばかりの比較的新しいRubyのフレームワークです。Railsとの違いで代表的なものはこんなところです。 長期的なメンテナンスに向いたフレームワーク Rails はMVCやActiveRecordに仕様の大部分が依存したフレームワークになっています。 一方でHanami は DDD (ドメイン駆動設計) をベースにしつつ、ある程度柔軟性を残した状態で開発出来るフレームワークとなっています。 もう少し具体的

    Railsエンジニアの視点でHanamiを解説してみた - Qiita
    uneasy
    uneasy 2019/12/09
  • Ruby 2.7 の変更点 - 復活したものや入りそうで入らなかったもの - tmtms のメモ

    Ruby 2.7 アドベントカレンダーの1日目の記事です。 qiita.com Ruby は毎年クリスマスにバージョンが上がります。 今年も順調にいけば 12/25 に Ruby 2.7 がリリースされる予定です。 2.7 がリリースされるまで毎日少しずつ変更点を見ていきます。 ソースは NEWS(とか git log とか)です。 Ruby 2.7 までに復活したもの キーワード引数のハッシュのシンボルでないキー flip-flop 構文 Ruby 2.7 で入りそうだったけど入らなかったもの パイプライン演算子 メソッド参照演算子 Ruby 2.7 までに復活したもの キーワード引数のハッシュのシンボルでないキー Ruby 2.6.0 で キーワード引数のハッシュのキーがシンボルでない場合はエラーになったんですが、2.6.2 でその挙動が取り消されてエラーにならなくなりました。 2.7

    Ruby 2.7 の変更点 - 復活したものや入りそうで入らなかったもの - tmtms のメモ
    uneasy
    uneasy 2019/12/02
  • 環境変数を設定するだけでRuby on Railsサーバが10%高速化する(かもしれない)話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

    この記事は Akatsuki Advent Calendar 2019 1日目の記事です。 はじめに アカツキでは Ruby on Rails を使ったゲームサーバを開発・運用しています。ゲームの体験を向上するために、レスポンスタイムは一つの重要な要素となるため、種々のパフォーマンスチューニングを行なっています。今回はその一例として、環境変数を1つ設定するだけで、あるAPIのレスポンスタイムが10%も改善した例をご紹介します。 TL;DR 多数の時刻を含むレコードを扱う Ruby on Rails サーバでは、 TZ 環境変数を設定することで、デフォルトタイムゾーン設定ファイル /etc/localtime へのアクセスが減り、高速化が図れるかもしれません。 効果は Time オブジェクト1個あたり数μsの短縮といったオーダーですが、チリも積もれば山となり、数千個のレコードを処理するAPI

    環境変数を設定するだけでRuby on Railsサーバが10%高速化する(かもしれない)話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)
    uneasy
    uneasy 2019/12/02
  • Ruby の yield を使いこなす - Qiita

    まえがき yield ってなにがどうなっているのか (yeildが使われているコードの説明で) 自分で書くとこの設計できないのよね こんな感想をいただきました yield の理解を深めてもらうために、こんな使い方をしているよというコードベースでご紹介していきます 対象読者 yield がよくわからない人 yield がわかっているけど、自分の書くコードで使ったことがない人 yield ユースケース パフォーマンス監視 処理時間を記録して報告するような機能 module XXXReportable def with_reporting(name: ) started = Time.zone.now yield ended = Time.zone.now report(name: name, started: started, ended: ended) end private def rep

    Ruby の yield を使いこなす - Qiita
    uneasy
    uneasy 2019/06/30
  • バッチ処理の一部で 30 分以上かかっていた処理を 14 秒で終わるようにした話 - @watson1978 の日記

    Ubiregi Advent Calendar 2018 の 18 日目です。 ユビレジではたくさんのお客様の大量の POS データをお預かりしており、様々なバッチ処理も実行されています。今回は特定のケースでバッチ処理の一部が 30 分以上かかっていた処理を 14 秒で終わるようにした話について書きたいと思います。前回の Ruby 2.5 の SEGV と闘った話 - @watson1978 の日記 に引き続き DTrace を使った話になります。 はじめに ユビレジでは CSV ファイルでお客様が特定のデータをダウンロードしたりアップロードできる機能があります。CSV ファイルにエクスポートしたり、CSV ファイルから DB に取り込む処理を Worker を起動してバッチ処理しています。 大量のデータを保有しているアカウントと同量のデータを用意して手元の環境で試したところ時間がかかるこ

    バッチ処理の一部で 30 分以上かかっていた処理を 14 秒で終わるようにした話 - @watson1978 の日記
    uneasy
    uneasy 2018/12/18
  • VSCodeでRuby On Railsを快適に書きたい

    // Filepath to the configuration file for Rubocop "ruby.rubocop.configFilePath": "", // execution path of rubocop. "ruby.rubocop.executePath": "", // execute rubocop on save. "ruby.rubocop.onSave": true, // Defines if it should clear the terminal on each spec run "ruby.specClearTerminal": true, // Defines a custom command to run for specs (i.e. 'spring rspec') "ruby.specCommand": "", // Defines if

    VSCodeでRuby On Railsを快適に書きたい
  • Rubyによるデザインパターンまとめ - Qiita

    はじめに デザインパターンって常識っぽいからちゃんと学んでおかないとと思いつつ、いまいちよく分からないままな人って意外と多いんじゃないかと思い、絶版になってることもありまとめてみることに。2章は基的なRubyの文法の解説なので省略。 変なところあったら教えてくださいね。 対象 デザインパターンを避けてきた人 Ruby以外が不得意で、巷に多く出回っているJavaなどのデザインパターンのが読みたくても読めない、もしくは読むのが面倒な人 Rubyによるデザインパターン買いそびれた人 Rubyによるデザインパターンとは ラス・オルセン 著、ピアソン・エデュケーション(2009) GoFによる23のデザインパターンのうち著者が特に有益だと考える14パターン + Ruby独自の3パターンの解説が書かれている。 実際にデザインパターンが使われている例として、RubyRailsの内部のコードが出てく

    Rubyによるデザインパターンまとめ - Qiita
  • 雑に始める GraphQL Ruby【class-based API】 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? まずはじめに 目的 この記事は、これからgraphqlをはじめる、もしくはgraphql始めたてにおいて知っておくと良さそうな情報(と、そこへのindex)をまとめることを目的に書いています。 想定読者は「これからgraphql始めたい人、始めたばかりの人」です。 その背景として、graphqlベースのAPIがもっと増やすべく、その導入/学習コストがそこまでは高くないことを説明したい、ということがあります。 ------8<------- 以下宣伝 ------8<------- なお、 Issus(イシューズ) という個人向けマークダ

    雑に始める GraphQL Ruby【class-based API】 - Qiita
  • gem install・bundle installなしでgemを使ったスクリプトを実行する方法 - Qiita

    通常、gemを使うには主に以下の2つの方法を使います。 gem install fooでgemをインストールしてから使う Gemfileにそのgemを記述し、bundle installでインストールしてから使う どちらもせずに済ますには、bundler/inlineを使います。 bundler/inlineの使い方 以下はTimers gemを使うサンプルです。 require 'bundler/inline' gemfile do source 'https://rubygems.org' gem 'timers' end timers = Timers::Group.new every_five_seconds = timers.now_and_every(1) { puts "Hello!" } loop { timers.wait }

    gem install・bundle installなしでgemを使ったスクリプトを実行する方法 - Qiita
  • Goby: Rubyライクな言語(2)Goby言語の全貌を一発で理解できる解説スライドを公開しました!|TechRacho by BPS株式会社

    2018.04.14 Goby: Rubyライクな言語(2)Goby言語の全貌を一発で理解できる解説スライドを公開しました! こんにちは、hachi8833です。 前回のGoby: Rubyライクな言語(1)Gobyを動かしてみるから時間が空いてしまいました。久方ぶりのGoby記事です。 リポジトリ: goby-lang/goby 公式サイト: https://goby-lang.org/ スライド「Goby ← Golang + Ruby」 「Gobyとは何ぞや」をまとめたスライドを趣味で作りました(47ページ)。 実はこのスライド、明日開催のGo Conference 2018 Springに応募したものの選に漏れた後にそのまま作り始めたのですが、やっているうちにだんだんムキになってきてついつい手を入れまくってしまいました。 Gobyコントリビュータにも評判がよく、BPS社内勉強会でも

    Goby: Rubyライクな言語(2)Goby言語の全貌を一発で理解できる解説スライドを公開しました!|TechRacho by BPS株式会社
    uneasy
    uneasy 2018/04/15
  • 文系から半年でRuby(Sinatra, Rails)を学んだら人生変わった@沖縄Ruby会議02

    Transcript จܥ͔Β൒೥ͰRubyʢSinatra RailsʣΛֶΜͩΒਓੜมΘͬͨ ಙݩ কٛ ࣗݾ঺հ • ಙݩ কٛʢͱ͘΋ͱɹ·͞Α͠ʣ • ླྀେ࢈ۀܦӦֶՊ࢛೥ • 2017೥4݄͔Β͞΅ (@saboyutaka) ͞ΜͷԼͰWebΤ ϯδχΞΛ໨ࢦ͢ • ISUCON2017 • 4݄ʹʮΈΜͳͷ΢ΣσΟϯάʯ ʹब৬͠·͢ • ϒϩάɿ·͞ˏϒϩάॻ͖ࠐΈத ࠓ೔࿩͍ͨ͜͠ͱ 1. Rubyͷॳֶऀ͕΍ͬͨ΄͏ֶ͕͍͍शखॱ 2. RubyΛֶΜͰมΘͬͨ͜ͱ ॳֶऀ͕RubyΛֶͿ࣌ʹ΍ͬͨํ͕͍͍खॱ ʢRailsνϡʔτϦΞϧ͔Β΍Βͳ͍ʂʣ 1. Webʹ͍ͭͯཧղ͢Δ 2. HTMLˍCSSʹ͍ͭͯཧղ͢Δ 3. Rubyͷجຊʹ͍ͭͯཧղ͢Δ 4. SinatraΛֶΜͰΞϓϦΛ࡞Δ 5. RailsνϡʔτϦΞϧΛ΍ͬͯΞϓϦΛ࡞Δ Webʹ͍ͭͯ

    文系から半年でRuby(Sinatra, Rails)を学んだら人生変わった@沖縄Ruby会議02
    uneasy
    uneasy 2018/03/11
  • Ruby25周年記念イベントでお話ししました #ruby25th - ローファイ日記

    登壇者枠です。 Infrastructure as Code/mrubyなどによるConfiguration as Codeの話をしました。 speakerdeck.com もともとこの倍の分量のスライドが発生して笹田さんにご心配をかけてしまいましたが、なんとか時間通り? 話せました...。 当スライドで後半でいった内容だったり、僕が最近やっているようなことについて、当に純粋に「なんでやっているの?」という質問が何人かからありました。Kubernetesの「Railに乗って」コンテナをオーケストレーションしてビジネスをドリブンする、そういうのも確かにエンジニアとして生きるにあたり有力な選択肢だと思います。 でも僕にとって興味のあることは、そもそもKubernetesとか、コンテナとか、それを支えるLinux自体とかがどうなっているかというところであり、興味を持った分野に関しては 世界の

    Ruby25周年記念イベントでお話ししました #ruby25th - ローファイ日記
    uneasy
    uneasy 2018/03/01
  • ホーム - CloneTracker

    当社はCookieを使用して、お客様が当社のWebサイトでより良い体験を得られるようにしています。引き続き閲覧する場合は、プライバシーポリシーに同意したことになります。

    ホーム - CloneTracker
    uneasy
    uneasy 2018/03/01
  • もしOSに断絶があればRubyは死んでいた可能性が高い、まつもと氏がRuby25周年で講演

    Post author:sider Post category:Uncategorized Reading time:4 mins read Post published:2018-02-26 もし過去のOSに断絶があったら、Rubyが絶命していた可能性はかなり高い。25年のRuby開発の歴史を振り返りつつ、そんな意外な見方を示したのはRubyの生みの親として知られる、まつもとゆきひろ氏だ。 日生まれのプログラミング言語「Ruby」(ルビー)が25歳の誕生日を迎えた。Rubyが生まれたのは1993年2月24日のこと。それからちょうど25年目となる2018年2月24日に、Ruby25周年記念イベント「Ruby25(ルビー・トゥエンティーファイブ)」が、Rubyアソシエーションおよび日Rubyの会の後援で東京の品川インターシティーで開催された。 基調講演を行ったまつもと氏は、25年を振り返

    もしOSに断絶があればRubyは死んでいた可能性が高い、まつもと氏がRuby25周年で講演
    uneasy
    uneasy 2018/02/26
  • Ruby誕生25周年記念イベントでしゃべった & After Partyやった - たごもりすメモ

    Ruby誕生から25周年を祝うイベントが開催され、そこの「Rubyの今」というセッションでデータ処理について話さないかという依頼があり、受けたので、話してきた。 Ruby25 | Top 当にいろんな人が参加していて、みんなでわいわいとお祝いをする、という感じ。高橋会長やまつもとさんの話はあちこちのメディアに出ているから良いとして、Matzのご息女が出てきてMatzが壇上でものすごく動揺してたのがちょっと面白かった。いやあ、これこそがコンテンツだな。 他にスポンサー企業のブースがあったり、いろんなプロジェクト・コミュニティのポスター展示があったり。ポスター展示はよかったなー。あんなふうに自分のプロジェクトをアピールできるのはすごく良いと思う。見て回ったけどじつに楽しかった。 しゃべってきた Data Processing and Ruby in the World from SATOSH

    Ruby誕生25周年記念イベントでしゃべった & After Partyやった - たごもりすメモ
    uneasy
    uneasy 2018/02/26
  • JITコンパイラを初搭載した「Ruby 2.6.0-preview1」リリース。大幅な実行速度向上を目指し

    JITコンパイラを初搭載した「Ruby 2.6.0-preview1」リリース。大幅な実行速度向上を目指し Rubyでは、次のメジャーバージョンアップとなるRuby3をRuby2の3倍の実行速度にするという「Ruby 3x3」(ルビースリーバイスリー)構想に基づいて開発が進められています。JITコンパイラの実現は実行性能の向上に欠かせない要素であり、プレビュー版でのJITの初搭載はRuby 3x3の実現に向けて大きな一歩を刻んだと言えるでしょう。 まだプレビュー段階ということで「今回のリリースはこのJITコンパイル機能を皆さんの環境で動作を確認して頂くとともに、セキュリティ上の問題が無いかを早期に確認するために行っています。 」と説明されています。 下記は発表文「Ruby 2.6.0-preview1 リリース」から。 JITコンパイラはあらゆるRubyプログラムの実行を高速化することを目

    JITコンパイラを初搭載した「Ruby 2.6.0-preview1」リリース。大幅な実行速度向上を目指し
    uneasy
    uneasy 2018/02/26
  • Ruby誕生25周年を祝うイベント「Ruby25」開催。まつもと氏にサプライズでお嬢様ふたりから花束贈呈

    まつもと氏「これまでたくさんのRubyのイベントがありましたが、私自身が開催しようと言ったことはありませんでした。ただ、Rubyの4分の1世紀はエポックメイキングなことだと思ったので、やってみたいねと言ってみたら、あれよあれよと立派なイベントになり、大変ありがたく思っています」 「ソフトウェアの誕生とはなんでしょう? ソフトウェアには物理的実体はない、概念上の存在です。じゃあ、Rubyはいつからあるのか? 私の中でRubyはいつ生まれたのかと考えると、おそらく、Rubyという概念が生まれたとき、それは名前が重要なので、Rubyという名前が生まれたときではないかと思います。 私は昔からプログラミング言語に関心があって、とうとうプログラミング言語を作ろうと考えたときに、会社の先輩とどんな名前にしようかと相談しました。名前というのは重要で、名前をつけた日こそがRubyの生まれた日ではないかと思い

    Ruby誕生25周年を祝うイベント「Ruby25」開催。まつもと氏にサプライズでお嬢様ふたりから花束贈呈
    uneasy
    uneasy 2018/02/24
  • プログラミング言語 Ruby の生誕 25 周年に寄せて

    次の週末、2018 年 2 月 24 日(土)には、Ruby の生誕 25 周年をお祝いするプログラミング言語Ruby 25周年記念イベントが開催されます。オンラインでお祝いのメッセージを募集しているとのことなので、ぼくも日頃お世話になっている Ruby に感謝のお手紙を書くことにしました。 言語を選ぶということ おそらく 10 年よりもっと昔、どこぞの英会話スクールが「英語を話せると、10 億人と話せる」というコピーでテレビ CM を放映していた時期があったかと思います。たしかに、英語を選んで学習すれば、英語圏のすべての人たちと会話できる潜在的機会を得られることになります。たとえば日人のあなたがフランス人を相手に情熱的な恋をしたら、その相手とたくさんのことを話すために、熱意を持ってフランス語を学ぶかもしれません。 なるほど。「言語を選ぶ」ことは「話し相手を選ぶ」ことにつながるのですね。

    プログラミング言語 Ruby の生誕 25 周年に寄せて
    uneasy
    uneasy 2018/02/21
  • Ruby / Rails の企業として新卒氏が入社した後にウォッチするように伝えるもの - koicの日記

    先日、神速さんのエントリを見てあとで書こうと思ったもの。 表題ママだけれど、Ruby / Rails の企業として新卒氏が入社した後にウォッチするように伝えているもの。もちろん流量も結構なものなので実際にどの程度ウォッチしているかは人に委ねている。自分も全部は見れていない。メールでのタイトルか送信者 (PR や Issue を出した人) で興味を引かれたものが基準。 Rails 研修での Rails Tutorial の流れで、upstream とそれに近い情報源を伝えている。特に y-yagi さんのブログは、子供の頃に読み始めた新聞と同じで最初は分からなくても読み続けているうちに分かることが増えてくるので継続するのが力になることと共に伝えている。 GitHub 上のリポジトリ https://github.com/rails/rails ... ruby/ruby のリポジトリと一緒

    Ruby / Rails の企業として新卒氏が入社した後にウォッチするように伝えるもの - koicの日記