昨今の株価暴落で、twitterを検索するとサンデーダウが若干流行っていたので、信頼性を検証してみる。(ざっくり検証のため、参考程度でお考えください)www.ig.com ①価格のグラフを書いてみる 青色の期間:サンデーダウのみ取引可能時間 橙色の期間:CFDの…
Sushi BrowserというWebブラウザを作りました。 Electronというデスクトップアプリ用のフレームワークがあり、 さらにそのForkのmuonというライブラリを使っている。特徴はマルチパネルでいろいろ操作できること。 検索しながら別の窓で開くみたいなことがで…
※一行のサイズが40byte以下だとあまり良い検証にならないことに気づいたので、再検証予定。最近よくRubyで大規模テキストの処理をしています。 大規模と言っても、数GBレベルで今どきのマシンであれば全部メモリに乗せれるんじゃ..というサイズになります。…
皆さん、tryっていいですよね。でも、MayBeモナド的なgetOrElseにつながるチェーンもかっこいいですよね。 ※ScalaでいうところのList(0,-1,1).find(_ > 1).getOrElse(999) // 999ということで、以下を考えました。 class Object def try_else(*a,else_val, &…
さくらのVPSで上位プランに移行するための手順 - さくらインターネット創業日記で書いてある通りにやったが「Bringing up interface eth0: Device eth0 has different MAC address than expected, ignoring, FAILED」と出てネットワークが認識されなかったた…
Railsのwhereは非常に使い勝手が良い。 慣れれば、普通にSQLを書くより読みやすいと思う。一番簡単な例だと、次のものになるが、まあ便利ですねくらいのものである。 Article.where(id: [1,3]) #=> select * from articles where id in (1,3) しかし、次のよ…
正規表現クックブックを読んだ。詳説 正規表現とどちらを買うか迷ったのだが、 本屋でぱっと見、先読みとか後読みについて詳しく書いてたのが クックブックの方だったので購入した。さて、僕は基本的にはRubyを第一言語で使っており、そこそこ正規表現は使え…
タイトル通りの話です。 次のようにすればできますが、効率は悪いような気がします。 engine = Slim::Engine.new eval engine.call('a href="http://www.google.com" Google') #=> <a href="http://www.google.com">Google</a>
少々炎上しそうな表題ですが、色々と調べたので覚書。まず、前提条件として、CRubyはGIL(Global Interpreter Lock)という仕組みがあります。 細かい説明は グローバルインタプリタロック - Wikipedia を参照いただくとして、Rubyインタプリタは必ずGILを取得…
C#は.net framework 3.5より、LINQ用のEnumerableメソッドが追加されています。Select,Where,OrderByなどです。 これらのメソッドは、LINQでの使用はもちろん、ラムダ式を渡して、利用することができます。これは、Rubyのmapやfilterに当たるものになります…
Rubyのeach_with_indexって便利ですよね。 C#には、each=ForEach、map=Select、select=WhereとRubyのEnumeratorのメソッドに相当するものが有りますが、私の大好きなeach_with_index相当がありません。 ということで、拡張メソッドを使ってサクッとモンキー…
ActiveRecordでレコードを取得する場合、以下の様なコードを書いたとする。 Article.where(cond).map{|record| #condは検索条件 record.attributes.each{|name,value| #hoge } } この処理はレコード数が多い場合に非常に遅い。その理由は、record.attributes…
皆さんご存知の通り、RubyはnilはNilClassのオブジェクトである。 NilClass.instance_methods(false).sortとしてみると、結構な関数が定義されている。 => [:&, :^, :inspect, :nil?, :rationalize, :to_a, :to_c, :to_f, :to_h, :to_i, :to_r, :to_s, :|] #…
ActiveRecordでor検索をしようと思うと、意外と簡単にはできない。 Table.where(id: 1).or(id: 2) とかでできそうなものだができない。 真面目にやるには、Arelを使ってやるのが一番のようだ。 http://techracho.bpsinc.jp/tsunekawa/2013_05_24/8502 非常に…
表題どおり。 arr = [nil,"hoge","fuga"]という配列があり、nilではない最初の要素を取得したい場合、私は以下のようにしていた。 arr.compact.first #=>"hoge" コードゴルフ的に言えば18byteなので、あまりいただけない。(firstではなく、[0]でアクセスする…
処理対象がEnumerableな要素かそうでないかわからない時ってよくありますよね。 ActiveRecordなんかもそうですが、1要素の時は単体のオブジェクトがきて、複数要素の時はEnumerableが来るapiってわりとあります。(scanとかもそう。) で、tapを使えばそれを…
ActiveRecordではjoinsメソッドを利用して、inner joinすることができる。 例: Blog.joins(:article) #=> SELECT "blogs".* FROM "blogs" INNER JOIN "articles" ON "articles"."blog_id" = "blogs"."id" ここで、問題になるのは"blogs".*である。articles…
リファクタリングRubyエディションを読んでいたら、def_eachというイカしたメソッドがあった。まとめて、似たようなメソッド定義をするものだ。 ここで、まとめて似たようなクラス定義をする関数もあったらいいなと思ったので作ってみた。役立つか微妙だが*…
JRuby製テキストエディタRedcarというのがある。 https://github.com/redcar/redcar 便利なのだが、個人的に以下の不満があった。 (1) Ruby1.8系でしか動かない。Evalする時にRuby1.9系のHashの構文とか使えない (2) 日本語ファイル名がNG。日本語ファイル(U…
手抜きプログラムシリーズ。 Excel VBAが吐き出したコードをRubyのWin32ole対応のコードに変換するスクリプトを作成した。やっぱ、ExcelやるならRubyでしょ的な。 https://www.dropbox.com/s/jw51apxtrgjle3k/vba2ruby.rb 基本的な文法(SubとかWithとかForと…
http://www.enterprisedb.com/products-services-training/pgdevdownload に行く。 Linuxの場合、Linux版のをダウンロードする。 chmod 755 postgresql-9.3.0-rc1-linux.run で権限を付けて、 ./ postgresql-9.3.0-rc1-linux.run すれば、Windowsのインスト…