Rhebok, High Performance Rack Handler / Rubykaigi 2015
@ainame user.articles.preload(:comments, :stocks_count) みたいにstocks_countのようなassociationを生やしており、stocks_countの内部実装はPreloaderが弄られていてIDだけ取ってる— 内製フレームワーク (@r7kamura) 2015, 8月 23 @ainame これを抽象化するために、Article.has_many(:stocks, counter: true) みたいにすると、article.stocksとarticle.stocks_countがほぼ同じSQLで同時に定義されるようになってる— 内製フレームワーク (@r7kamura) 2015, 8月 23 @ainame それを実現している実装がこれです / k0kubun/activerecord-precount https:
本日は、 Ruby の OpenSSL バインドを利用してデータを暗号化する方法をご紹介します。というのも最近、自宅サーバーにある各種データを Web 上のサービスに移動しようと画策していまして、その際にプライベートなデータは暗号化して保存したいのです。ほとんどの Web API は暗号化なしの HTTP で通信しますし、いくらパスワードで保護されているとはいえ、他所の HDD にプレーンな状態で保存するのは不安ですからね。 それ以外でもスクリプトで暗号化の処理をしたい場面はいろいろあると思います。そんなときは、ぜひ参考にしてください。 それでは、まずは暗号化の処理から。 OpenSSL はさまざまな暗号化アルゴリズムをサポートしていますが、ここではリファレンスでも推奨されている AES-256-CBC を使うことにします。ひとつの文字列(バイト列)を暗号化する関数は以下のようになります。
先月、heroku の推しサーバが unicorn から puma に変わったという発表がありました。unicorn だとスロークライアントの影響を受けやすいというのが理由なようです。 もう少し詳しく調べてみましょう。 そもそもスロークライアントってなに その名の通り遅い回線のクライアントです。3G環境のモバイル端末などが該当します。 「unicorn だとスロークライアントの影響を受けやすい」とは unicorn はプロセスモデルのサーバであり、blocking I/O モデルを採用しています。つまり、クライアントとの通信中プロセスが専有されるということです。 例えば unicorn がワーカプロセスを3つ立ち上げていて、そこへ通信完了に10分かかるようなスロークライアントが3つ接続されたら…、続くクライアントはスロークライアントの通信が完了するまで実行を待たなければならなくなります。プ
mk-mode.com Linux, Debian, IT, Server, PG, Ruby, Rails, Python, C++, Fortran, PC, MariaDB, math, GIS, etc... Ruby スクリプトをデーモン化する方法についてです。 デーモン(Daemon)とは、マルチタスク OS におけるバックグラウンドで動作するプロセスのことです。 Windows のようなシングルタスク OS では、同様な処理を擬似的に実現するサービスに当たるでしょうか。 以下、Ruby スクリプト作成例を掲示して簡単に説明し、起動スクリプトも紹介します。 0. 前提条件 Linux Mint 14 (64bit) での作業を想定。 Ruby 2.0.0-p247 での作業を想定。 デーモン処理を行う Ruby スクリプトを起動・停止・再起動するスクリプトも作成する。 1. R
I must be overlooking something very simple here but I can't seem to figure out how to render a simple ERB template with values from a hash-map. I am relatively new to ruby, coming from python. I have an ERB template (not HTML), which I need rendered with context that's to be taken from a hash-map, which I receive from an external source. However, the documentation of ERB, states that the ERB.resu
ginzarb_21.md rails_adminのつらみとオススメGemについて rails_adminのつらみ カスタマイズできるようで出来ない rails_adminをカスタマイズする方法まとめ - Qiita レコード件数が一定以上になると使えない機能 ダッシュボード 何も考えずに各モデルをカウントするのでレコード件数増えるとえらいことになる。 関連を付け替えするフォーム 出したり出さなかったりを一々切り替えるのがめんどい 検索機能がほぼ役に立たない じゃあどうするか プロジェクト用のscaffoldを作る方が良いのでは? 一つのモデルに対するを管理画面を作って大まかなレイアウトを決める それをテンプレート化してlayoutとscaffoldのテンプレートを上書きする コントローラーの構成もテンプレートで上書きできる それ以上の場合はlib以下にgeneratorを書く Rails
~/.rbenv/以下に複数のRubyバージョンをインストールして、それぞれのRuby環境を切り替える仕組みを提供する。 ~/.rbenv/ (rbenvがRubyを管理するルートフォルダ) ~/.rbenv/shims/ (rubyやgemがインストールするコマンドへのラッパーを保存しておくフォルダ) ~/.rbenv/version (global環境のRubyバージョンを記録するファイル) ~/.rbenv/versions/ (Rubyの各種バージョンをインストールするフォルダ) Ruby環境の構造 例えば、rbenvがインストールしたRuby-1.8.7-p375は、以下のような構造となっている。 ~/.rbenv/versions/1.8.7-p375/bin/(実行コマンドを含む:erb gem irb rake rdoc ri ruby testrb) ~/.rbenv/v
既に大きい書店の店頭には並んでいる所もあるようで、自分もアキバの書泉で現物を見てきました。 立ち読みして、ほほーうとやってる著者の図って感じです。 献本させていただいた方にも、既に届いていて読んだよーって言ってくれてる方がちらほら。 参考になったと言っていただけて、とても嬉しく思っています。 さて、今回はちょっと自分の担当した部分と思ってた事について少し書いてみたいと思います。 私が担当したのは、3章のアセットについてと4章のlibディレクトリ周り+Railsのロードパスについて、そして9章のモデル実践編みたいな所です。 一応それぞれありますが、主に言いたいのは9章についてですw 3章について CoffeeとSassについて、どの程度解説するか非常に悩みました。 実際、書くとなるとリファレンスマニュアルを日本語で解説する、以上の事はページ数的にできない。 かといって、昨今のRailsアプリ
今回は、issue管理ツールのwatsonを導入してみました。 普段のissue管理は、redmineなどを使って行われている方も多いと思います。 ただ、チケット切るためにいちいちブラウザを開いて、あれこれ入力してという流れに時間がかかってしまうために、面倒だと感じている方も多いと思います。 特に、人が少ないスタートアップなどはこの作業に時間を取られるのは致命的です。 そこで、もうソースコードに直接issueを書いて管理してしまえ!!ということで、今回のwatsonの出番です。 issue自体をソースコードに直接書くので、管理対象もソースコードのみとなります。 これで、毎朝remineから飛んでくるうざい?メールを見なくても済みそうです。 watsonとは? 冒頭でも述べた通り、ソースコードに直接issueを書き込めるツールです。 これらのissueは、コミット時にgithub上の
gistfile1.md rbenvとruby-buildでRuby環境を最新に保つ 更新日:2014/11/19 rbenv, ruby-buildを更新 $ cd ~/.rbenv $ git pull origin master $ cd ~/.rbenv/plugins/ruby-build $ git pull origin master rbenvでインストール可能なリストを表示 $ rbenv install -l Available versions: ... 2.1.0-rc1 2.1.1 2.2.0-dev ... openssl, readlineをインストールしていなければ $ brew install openssl $ brew install readline Ruby2.1の最新バージョンをインストール ※-Wshorten-64-to-32と警告が出るので
スクリプト言語で重要な事はエロ画像集取で学んだ 1. スクリプト言語で 重要な事は エロ画像集取で学んだ @shokai 大人のYAPC2013 2. 私 •@shokai (しょうかい) •趣味:料理、glitch、Ruby •Perl書けないけど •LT応募したら通った… 3. Perl勉強した 4. Perl2.0の薄い本 簡潔でわかりやすい! 5. 正規表現とか配列だけ でもだいぶ色々できる 6. 今日のお話 7. 画像いっぱい集めたい という欲求で いつのまにかRuby書ける ようになってた話をします 8. ぜんぜんPerlでてこ ないけど 9. たぶんPerlでも だいたい同じ感じで プログラミング学習で きると思うから許して 10. 2008年ごろ 11. Yahoo Pipesで 画像掲示板から RSS作りまくった 12. Web系やったこと なかったけど欲望 のまま100
--all-installed 的なオプションがありそうでないのでメモ (--all はあるけど特定の gem のすべてのバージョンを削除の意味)
CentOS release 6.4 (Final) rbenv, ruby-buildのインストール sudo地獄なのでrootで作業を行う. su # 以下root cd /usr/local git clone git://github.com/sstephenson/rbenv.git rbenv mkdir rbenv/shims rbenv/versions groupadd rbenv chgrp -R rbenv rbenv chmod -R g+rwxXs rbenv git clone git://github.com/sstephenson/ruby-build.git ruby-build cd ruby-build ./install.sh として, /etc/profile.d/rbenv.shに export RBENV_ROOT="/usr/local/rb
Ruby中級入門 1. Ruby中級入門 @shokai 2013年8月5日(火) @masuilab 2. 私 •@shokai (しょうかい) •趣味:料理、glitch 3. ある程度大きなアプリケーションを作 っていると、部品に分割したくなると 思います。アプリ内ライブラリやgem の作り方を説明します。Rubyの機能を 活用した使い勝手の良いライブラリの デザインについて考えます。 4. • アプリ内ライブラリの作り方・gemの作り方 • サンプルコードとテスト • ライブラリのデザイン • API • DSL • 泥臭い小手先の技 • 例外・エラーの通知 • ドキュメント コンテンツ 5. ライブラリを作る 例:LeapMotionを自作アプリに組み込むための アプリ内ライブラリを作る 6. • LeapMotionはport 6437にWebSocket 接続するとJSONで
社内で開催されたRSpec勉強会テストのパフォーマンスチューニングについて話したので資料を公開してみます。 RSpecの名は冠しているものの他の言語やテスティングフレームワークでも応用できるところがあるかもしれません。 RSpec Performance Turning from sue445 8/3追記:はてブコメント返信 テストのテストにはテスト対象を使えばいいんでしょうか。 場合によりますね。 基本的にはテストコードとテスト対象のプロダクトコードはペアであるはずなので、テストにバグが混入したとしても対応するテスト対象が変更されていなければテストがなんらかの形でエラーになるので、そこで検知できると思います。 テストコードのリファクタリング(共通処理をメソッド抽出など)は、既存のテストが品質を担保してくれてます(グリーンのままであればリファクタリング成功) 0からテスト書く場合でテストの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く