A collection of awesome Ruby libraries, tools, frameworks and software
A collection of awesome Ruby libraries, tools, frameworks and software
UPDATE: This is the original announcement of Zeitwerk. Some things in this post are outdated. Please check the README of the gem for standalone usage, and the Rails guide for usage in Rails applications. ZeitwerkI am thrilled to announce the project I have been working on during the last months: Zeitwerk. Zeitwerk is a new code loader for Ruby. It is efficient, thread-safe, and matches Ruby semant
Ubiregi Advent Calendar 2018 の 18 日目です。 ユビレジではたくさんのお客様の大量の POS データをお預かりしており、様々なバッチ処理も実行されています。今回は特定のケースでバッチ処理の一部が 30 分以上かかっていた処理を 14 秒で終わるようにした話について書きたいと思います。前回の Ruby 2.5 の SEGV と闘った話 - @watson1978 の日記 に引き続き DTrace を使った話になります。 はじめに ユビレジでは CSV ファイルでお客様が特定のデータをダウンロードしたりアップロードできる機能があります。CSV ファイルにエクスポートしたり、CSV ファイルから DB に取り込む処理を Worker を起動してバッチ処理しています。 大量のデータを保有しているアカウントと同量のデータを用意して手元の環境で試したところ時間がかかるこ
Ruby Advent Calendar 2018の 15 日目です! 定数よ。お前はなぜそんなに難しいのか 使いやすいRubyのメソッドやクラスインスタンス変数に比べて、定数は難しいですね。 私自身、半年に一回は泣かされている弱小エンジニアのひとりです。 せっかくのアドベントの機会を借りて、このハマりがちなRuby定数の謎を徹底的に読み解いてみたいと思います12 対象としてはこんな方を想定しています。 Rubyにおけるselfの扱い、継承チェーン、メソッド探索は理解している 定数の挙動でハマったことがある この機会にマニアックな理解をしたい 参考文献としてはCRubyのソースコードに加えて、最後に列挙した数々の貴重な資料を頼らせていただきました(ぺこり)。 定数クイズ さっそくですが、定数に関する簡単な問題です。 Rubyistなら全部答えられます・・よね? まず、こんな形であちこちにM
これはドリコム Advent Calendar 2018の4日目です。 3日目はSmithさんによる、デファクト開発環境が無い HTML5 ゲームの世界で逞しく生きるです。 はじめに プログラミングにおいて、読みやすいコードを書く重要性は改めて述べる必要はないだろう。あえて一言添えるなら、ソフトウェア開発者がコードを読む時間は書く時間よりも遥かに長い。本稿では筆者が見つけた読みにくい書き方を主観的な好みで一つ挙げ、なぜ読みにくいのか、どう書くべきか、そして書き換える場合の注意点について散文的に論じる。 読みにくい書き方 今回のテーマとなるのは下のような書き方だ。 def apply_f_procedurally(original_collection) result = [] original_collection.each do |e| result << f(e) end result
The Ruby Reference This book is a reference for the Ruby programming language. It describes the language structure, its core classes and standard library, and provides some additional useful information and links for Ruby development. The Reference is intended to be always up-to-date with the current Ruby version. Most of the reference content is taken directly from Ruby documentation and reorgani
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: 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 UnitでRubyのサポートを開始しました。NGINX UnitはRubyアプリサーバーにどんな意味をもたらすのでしょうか?NGINX Unitは注目すべき製品なのでしょうか?(2057文字、10分) Rubyistのための新しいアプリサーバー
You already know how to use modules in Ruby, but are you abusing them? In this post, we will take a look at different ways to program with modules and why they may or may not be a great idea. NamespaceModules give you an easy way to namespace the rest of your code. For example, when you generate a new gem: $ bundle gem foo_bar_fightersYou get a default file with a module in it: $ cat foo_bar_fight
mruby/cは、Rubyの特徴を引き継ぎつつ、プログラム実行時に必要なメモリ消費量が従来のmruby(福岡で開発された組込み向けの軽量Ruby)より少ないmrubyの実装です。 国立大学法人九州工業大学(田中和明准教授)と共同で研究開発を行っています。 お知らせ mruby/c 2.1をリリースしました mruby/c2.1を公開しました。(公開についてはこちらのページをご覧ください) https://github.com/mrubyc/mrubyc/releases/tag/release2.1 mruby/cのPIC24へのポーティング手順公開について Microchip Technology社製PIC24シリーズへのポーティング手順を作成しましたので公開しました。 こちらからダウンロード可能です。 mrubyコンパイラ mruby Stable版v2.0.1 Windows版(コン
Struct inheritance is overusedWritten August 8, 2013. Tagged Ruby. Too many people inherit from Struct.new(:some, :attributes) as a shorthand without understanding the implications. Take this for example: class Greeter < Struct.new(:person) def greet puts "Hello, #{person.name}!" end endSure, it's convenient. It saves you writing an initializer. But that's not all it does. Struct arguments are not
byebugとpry-byebugのbundle updateをしましょう byebugはRails標準でインストールされるRuby 2.1, 2.2向けのデバッガで、pry-byebugはpry *1 にデバッガの機能を追加するpryのプラグインです。 一昨日から今日にかけて、以下のパフォーマンス改善を含む byebug v8.0.0 と pry-byebug v3.3.0 がリリースされました。 github.com github.com byebugとpry-byebugには、一度byebugやbinding.pryを叩くとそれ以降ずっとアプリケーションの挙動が10倍遅くなるという問題がありました。 これが上記の変更により改善されたので、 Railsアプリやgemのデバッグにbyebugやpry-byebugを利用している方はそれらのbundle updateをおすすめします。 bi
最近話題の Ruby ライクなプログラミング言語 Crystal について。 「Ruby コードが変更なく動く」という衝撃的な発言や、「静的型付けの Rails 嬉しい」といった気の早すぎるように思える発言なども目にして、「じゃあ実際どのくらい Ruby コードがそのまま動くの?」ということを知りたく、「なんかの Gem を Ruby コードのコピペで実装してみよう!」と思いました。 とりあえず空いてる時間が5時間くらいあったので、その範囲という制限でやります。文章も進めながらだらだらと書いていったものそのままで整理していないので超読み辛いかもしれません。 お題の Gem Crystal でコピペ実装する Gem は dotenv です。 これを選択したのは、 他の Gem への依存がない そんなに大きくない コードリーディングで使われたりしてたので Ruby っぽいコードだろう 自分がま
Arel is the kind of library that many of us Rails developers use on a daily basis and might not even know about it. So what's this library whose name only pops up when everything else fails all about? It's all about providing frameworks with a way of building and representing SQL queries. It's not the kind of library you would typically want to use directly (although you could as shown in a minute
Having deployed a variety of Ruby apps (Rails and non-Rails) over the course of many years, here are some lessons I’ve learned to keep things afloat. Tools like Mina and Capistrano already do most of these (more on that further down), but its good to have a first-hand understanding of what needs to happen. All these instructions are available a ready-to-use repo: ruby-deploy-kickstart Ruby/Rails d
本ガイドでは、Railsの「エンジン」について解説します。Railsエンジンのきわめて簡潔で使いやすいインターフェイスを用いて、ホストとなるRailsアプリケーションに機能を追加する方法についても解説します。 このガイドの内容: エンジンの役割 エンジンの生成方法 エンジンのビルド方法 エンジンをアプリケーションにフックする エンジン機能をアプリケーションで上書きする 読み込み/設定フックでRailsフレームワークが読み込まれないようにする方法 1 Railsにおけるエンジンの役割 エンジン (engine) は、ホストとなるRailsアプリケーションに機能を提供するミニチュア版Railsアプリケーションとみなせます。この場合、ホストとなるRailsアプリケーションは、実際にはエンジンに「ターボをかけた」ようなものにすぎず、Rails::ApplicationクラスはRails::Engi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く