mk-mode.com Linux, Debian, IT, Server, PG, Ruby, Rails, Python, C++, Fortran, PC, MariaDB, math, GIS, etc...
There’s an interesting pattern I’ve discovered recently in Ruby that is very powerful, yet apparently not widely known or appreciated.1 I call this pattern the Module Builder Pattern. I’ve used it heavily in designing Mobility, a pluggable translation framework I released a couple months ago, and it served me so well I thought I should share what I’ve learned. At its core, the Module Builder is an
2014年10月28日10:57 Ruby requireとrequire_relativeの違いとは? 先日、require_relativeっていうのを見かけて、これなんだろうと思って調べました!どうもRuby1.9.2から導入されたモジュールみたいですね。 そもそも、Ruby1.9.2以降とそれより前のバージョンとでは、$LOAD_PATHの扱いに違いがあります。例えば、Ruby1.8.7では$LOAD_PATHにはカレントディレクトリも含まれます。 $ rbenv shell 1.8.7-p375 $ ruby -e 'puts $LOAD_PATH' /Users/sasata299/.rbenv/versions/1.8.7-p375/lib/ruby/site_ruby/1.8 /Users/sasata299/.rbenv/versions/1.8.7-p375/lib/r
For the second half of 2014 and 2015, most of my time at GitHub was spent working on moving the notifications feature off the primary MySQL cluster on to a new MySQL cluster and making the feature resilient to failure of that cluster. When all your data is stored in one database, making your application resilient to failures of that database is kind of pointless. If the database is unavailable, yo
技術部の牧本です。 今日はモンキーパッチの話をします。 モンキーパッチとは何か そもそもモンキーパッチ (monkey patch) とは何でしょうか? 端的に言えば、言語の組み込みクラスやライブラリ、その他外部ライブラリの挙動を、動的に拡張する仕組みをモンキーパッチと呼びます。 *1 例えば、Ruby のモンキーパッチのすごく単純な例として以下のようなものがあります。 module NilClassExtension def empty? true end end NilClass.prepend(NilClassExtension) インスタンスが空であるかどうかを判定するメソッドとしての #empty? は String や Array など様々なクラスに存在しますが、 nil を唯一のインスタンスとする NilClass には本来は存在しません。 このモンキーパッチを導入することで
イントロ みんな大好き pry の話 何回も binding.pry が呼ばれる環境下で、毎回 exit を入力するのめんどいよね、という話。 サンプル class Test def aaa binding.pry 'aaa' end end describe '#aaa' do it '1' do expect(test.new.aaa).to eq('1') end it '2' do expect(test.new.aaa).to eq('2') end end この場合 binding.pry は 2 回、処理を停止する。 4: def aaa => 5: binding.pry 6: 'aaa' 7: end exit 叩く。 4: def aaa => 5: binding.pry 6: 'aaa' 7: end もう一回 exit 叩く。 あるあるですね。 こういう時、一回で
2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、 ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一本化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、 ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod
私たちの救世主DHH™は最近の Full Stack Radioのインタビュー で、 Basecamp の最新版で彼がどのようにRailsのコントローラを書いたかを説明しています。下記は、彼のすばらしい話を書き取ったものです。 これまでに思うようになってきたのは、「RESTの原則に従うには、どのタイミングで新たなコントローラを作るべきかを一度決めたら、ほぼ異例なくその原則を遵守するべきだ」ということです。いつだってその方がうまくいくんです。自分の作ったコントローラの状態を悔やむのは決まって、作ったコントローラの数が少なすぎた時です。多くの処理を任せようとしすぎてしまうんです。 そこでBasecamp 3では、ある程度理にかなったサブリソースがあれば、毎回コントローラを分割していきます。フィルタなどの場合ですね。例えば画面があって、それがある状態になっているとします。もしこれにいくつかのフィ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <w:document xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wp="http://schemas.openxmlformats.org
We live in the age of remote resources. It's pretty rare to store uploaded files on the same machine as your server process. File storage these days is almost completely remote, and for very good reasons. Using file storage services like S3 is awesome, but not having your files accessible locally can complicate the performance of file-oriented operations. In these cases, use Ruby's Tempfile to cre
An Ode to 17 databases in 33 minutes — Beginner Entertaining tour of databases. Jokes on MYSQL included. Debugger driven development — Beginner Coding is about instant feedback. How to use power of debugger to sky rocket your productivity? All the little things — Intermediate Sandi Metz refactors her code using OO principles. The most valuable thing is hearing her thought process and how the dec
イントロ chef で環境構築したはいいものの、ruby の install は意外と手間だったりします。 できれば rbenv のようなものを使って、色々な ruby のバージョンを試せる方がいいですよね。 ところが肝心の rbenv を install するレシピの自作は結構シンドい。 そんなあなたのために。 必要なもの berkshelf knife-solo(chef) vagrant 手順 1. Berksfile を書く site :opscode cookbook 'ruby_build' cookbook 'rbenv', github: "fnichol/chef-rbenv" rbenv の cookbook は必ず fnichol/chef-rbenv を指定。 2. nodes(attribute) ファイルを書く { "run_list": [ "ruby_bui
Google+ボタン はてなブックマークボタン 更新日時: 2013年05月31日(金) 作成日時: 2013年05月30日(木) 前の記事 / 次の記事 クラスマクロって何? 例えば class Book attr_accessor :title, :author, :isbn end みたいなやつ。 で、これはそもそも何なのかというと ただのクラスメソッド 。 クラスメソッドとして attr_accessor(:title, :author, :isbn) と呼び出すところを 括弧を省略して attr_accessor :title, :author, :isbn と書いているだけ。 なので attr_accessor のようなクラスマクロをつくりたい場合、 クラスメソッドを定義すればいい 。 まつもと直伝 プログラミングのオキテ 第6回 を参考にすると、 attr_accessor
実戦的なコードの書き方は、どのようにして身に付くものなのでしょうか? 文法を覚えること? それともオブジェクト指向言語であれば、オブジェクト指向自体を学ぶこと? 見方を変えて、関数型のエッセンスを学ぶこと? アンチパターン プログラミングを学ぼうとするときに、プログラミング言語自体を完璧に学ぼうとするのは、無駄ではないのですがそんなに効率的ではない気がしています。 Ruby技術者認定試験【Gold】模擬問題 例えば上記の問題集をきっちり解けるようになると、Ruby自体の振る舞いについては、はっきり分かるようになりますよね。ただ、仕様を聞いて「これを作ろう!」と思ったときに、やり方に困るのではないでしょうか。 「Rubyでプログラミングできるようになりたい」という要望は、「Rubyというプログラミング言語を学びたい」のではなく、「Rubyという生産性が高いと言われている言語を使ってプログラミ
Yugui著「初めてのRuby」を読んでいる。 初めてのRuby by Yugui 7章メソッドには、ブロック付きメソッドのことが丁寧に記述されていて大変参考になる。 Rubyのブロックは分かったようで分からない代物だ。スーパーマリオブラザーズのように、間口が広くて奥が深い。少し真剣に向き合ってみた。完全理解にはほど遠いけれども、頭を整理するために今の理解を書いてみることにする。 引数付きメソッド Ruby空間における操作対象はオブジェクトである。オブジェクトは外からのメッセージを受け取ると、その中の対応するメソッドを起動してそこに書かれている手続きを実行する。 文字列オブジェクト”Charlie”にメッセージlengthが送られると、対応するlengthメソッドが起動され、7が返される。 メソッドは引数を取ることができる。メッセージのカッコ内に収められたオブジェクトは、メソッドに渡されそ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く