Ruby

カタラン数を計算してみる、その2

前回はfactorialとcombinationでカタラン数を導出しようと、fact 20くらいであっけなくオーバーフローしたけど、チーター本のP.216ではカタラン数をDPで計算してる。けど、問題の解説見ててがあったほうが分かり易いなと何となく思った*1。 を定義した場合 …

カタラン数を計算してみる

F#で書いてみたカタラン数は何処かバグっているようで、試しにRubyで書いたらまあ普通に期待値帰ってきたw−世界に整数数値型*1のみならF#でも動くはず*2なのだが? カタラン数とは 気に入ったのは、凸角形の三角形分割の組み合わせ数と一致するとの事。 カ…

rubyでdfsでメモ化再帰

いや、早くなるのは分かってたけどめちゃくちゃ早かった*1のでw− P.S. チーター本の7章「動的計画法、メモ化」のサンプルのrubyでのベンチ結果です。 dfs $ ruby -v ruby 2.1.5p273 (2014-11-13) [arm-linux-gnueabihf] $ time ruby hello_dfs.rb 11975985…

NokogoriでのXMLパース

最近久しぶりにrubyをよく書いてます(デジャヴ)。 でxmlを解析するだけの簡単なお仕事。なので、Nokogiri使い始めたのですけど、 P.S. 正確にはNokogoriでのXML/HTMLパースでした>< 2点ほど罠があったんでメモっときます。 XML名前空間*1 分からなくて最…

true/falseとnilの違いの有用なケース

最近久しぶりにrubyをよく書いている。 で、ちょっと特殊だけどnilとfalseの組み合わせで有用なケースがあったので記載しておく^^ で、先に書いておくと if/unless等では、falseとnilは等価であるが、他の方法(case whenやnil?等)ではfalseとnilは区別でき…

Hash#mergeにおけるkeyの重複チェック

rubyでは、異なる2つのHashをmergeするときに、重複するkeyがあっても上書きされて、特にエラーになったりはしません。 ただ重複が無いはずのHashデータをmergeする場合、仮に重複keyがあればmergeでエラーとなって欲しいので、key重複のチェック方法につい…

「第59回 Ruby/Rails勉強会@関西」で「GitLabとAnsible」について発表してきた

はい、Ruby関西10周年ってことで、Ruby関西のお誕生日が判明した勉強会でした。 第59回 Ruby/Rails勉強会@関西 2014年1月25日(土) お仕事でgitlab構築してみました(仮) お仕事でgitlab構築してみました(仮) お仕事でgitlab構築してみたいですね(仮) お仕事…

JavaでRubyのModule的なものが欲しかった件

下記のFooモジュールのcallメソッド内の”chain(arg,@tag,@dbg)”みたいに、 includeした先のクラスのフィールドをモジュール側でバインドしたかったのだけなんだが Javaでどう書いてよいか解らなかった。 ので仕方なくクラスA, B, Cに、call抽象メソッドを宣…

「関西Ruby会議05」で「mrubyのC API」についてLTしてきた

最初に って、もう二週間も昔のことになりますが、LTしてきました。 http://regional.rubykaigi.org/kansai05 KansaiWorkshop · rubykansai/workshops Wiki · GitHub 内容としては、mrubyのC API入門で、 本家mrubyサイトにあるhello worldをmruby C APIを使…

「たのしい開発 スタートアップRuby」読み

読み終わり。 Ruby言語の学習の本ではなく、かなりRubyの宗教色の強い本でした。 たのしい開発 スタートアップRubyposted with amazlet at 13.08.19大場 寧子 大場 光一郎 五十嵐 邦明 櫻井 達生 技術評論社 売り上げランキング: 293,279Amazon.co.jpで詳細…

「mrubyプチハッカソン」及び「mrubyの夕べ」参加

参加しました。のでつらつらメモ書きw= mrubyプチハッカソン@神保町 mrubyのDL,make,testで、mirbの実行 mrbgemsの紹介、公開されているmrbgemsの場所が分かりづらい Related Projects · mruby/mruby Wiki · GitHub さくらのmruby開発キットはWindows環境…

memo Install ruby on rvm on squeeze

P.S. 20120406:0810 rvm requirementsで言われたやつapt-get installして rvmごと再インストールしたら直ったっぽいwww; https://rvm.beginrescueend.com/packages/readline/ ruby - How to get Readline support in IRB using RVM on Ubuntu 11.10 - St…

RubyでのGmailの読み込み失敗

ruby-gmailってgemで読み込めない>< なんかバグ踏んだ? ruby-1.9.2-p180 :001 > require 'gmail' ruby-1.9.2-p180 :002 > gmail = Gmail.new("hogehoge@gmail.com","hogehoge_password") ruby-1.9.2-p180 :003 > email = gmail.inbox.emails(:all).first …

win32oleで分析ツール使う方法について、その1

rubyでwin32oleを用いてexcel操作する場合に DEC2HEXやHEX2DECにQUOTIENTやMOD等の*1関数が含まれていると 関数の計算結果が#NAME?とエラーになってしまい取得できませんw; で、今ではアドホックで対応してたんでが 一寸問題なってきたので、ググって見れ…

rvm使用時のmigemo不具合

rvmでruby1.9.2を主に使っていると、migemoがうまく動作してませんw; ubuntuのruby1.8.7でないと、駄目そうです>< なので対応としては、 .emacs修正するか*1 cmigemo使うか*2 なのですけど、.emacs修正の方が楽そうなので修正する方針で。 migemo設定メ…

{title: :MetaprogrammingRuby, reading: '1st', week: :Tuesday}

2.2 動的メソッドって余り使ったこと無いっす>< 2.2.1 動的ディパッチか。Javaのダブルディスパッチ?*1初めて知ったときなみの感動っすねw< 2.2.2 動的メソッドな定義も使ったことないw; ruby-1.9.2-p136 :001 > class MyClass ruby-1.9.2-p136 :002?…

{title: :MetaprogrammingRuby, reading: '1st', week: :Monday}

尼崎rbのメタプログラミングRubyの読書会がそろそろなので、 参加できなかったところ、前回は130Pまで読んだらしいのでそこまで復習w まあ、この辺はまあRuby関西で嗜んでるんで、なんとかなりゅかなw; 1.3.2 ん、オブジェクトとインスタンスについて一寸…

ruby on rvm upgrade from 1.9.2-p0 to 1.9.2-p136

去年のクリスマスから早ひと月、って今更感満載ですけど、まあ更新。 rvmで1.9.2-p0から1.9.2-p136に乗り換える。rvm aliasも使ってみた。 - 会長@腹部日記(2010-12-26) http://www.milligramme.cc/wp/archives/3527 まずは現在の環境調査する $ rvm list rv…

(関西Ruby会議03で)話(LT)をしてきたよ

話をしよう *1 あれは今から36万*2… いや、1万4000秒*3前だったか *1:とあるさくらのジェネレータを利用させて頂きましたm. .m *2:4.1日くらい *3:3.9時間

Processing::Appからのkey, mouseイベントのフック、修正

Processing::Appからのkey, mouseイベントのフック - 会者定離で以降なんて書いたんですが これ実際使おうとすると使えません*w* どうしてかと言うと、java.awt.event.KeyEventの仮想キーの定数である UP,DOWN,RIGHT,LEFTなどを参照出来ないからw; 標準…

Rubyのクラス継承に割り込んで定数を参照

superclassで定義されている定数*1を moduleで使いたいケースが有りまして^^; 以下のような感じです。 まあ、当たり前だが以下はErrorです。 class B GOAL = 100 end module M def m GOAL end end class C < B include M end p C.new.m #=>in `m': uninit…

継承したクラスのオープンクラス動作の確認

まあ、当たり前か>< module M class B def bb p :bb end end class C < B def cc p :cc end end end module M class C def test bb cc end end end p M::C.ancestors #=>[M::C, M::B, Object, Kernel] M::C.new.test #=> :bb # :cc

継承順序の確認

メソッドのフックしたかったので、オーバーライドの順序調べてみる>< class C NAME = self.to_s def hook p NAME end end module M1 NAME = self.to_s def hook p NAME super end end module M2 NAME = self.to_s def hook p NAME super end end class S <…

Processing::Appからのkey, mouseイベントのフック

下記記事には大きな問題が有りまして こちらに修正記事を書きましたのデスw< keyCode \ Language (API) \ Processing 3+ http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/KeyEvent.html module Page def keyPressed event # hooked keyPress p "h…

キー入力による別画像の連続表示

def setup size 800,600 frame_rate 10 @ary = %w[1_h 2_h 1_v 2_v] end def draw if key_pressed? if key == CODED and key_code == UP @map = load_image "img#{@ary.pop}.jpg" background 255 image @map,((width/2)-(@map.width/2)),(height/2)-(@map.he…

OpenSolaris2009.06へrvmの導入

メタプログラミングRubyを購入したので早速実行ですが、一つ問題がw ん〜、Ruby1.9ベースで動くらしいので、環境を1.9で試したいのですが手元にはない*1です。 ので、rvm弄るという目的といっしょにためしてみます。 All about Ruby on Rails & Data recove…

OpenSolaris2009.06のemacs環境のflymake設定

さて、flymake環境作る。 2011/03/18 C用の設定忘れてたので追加、このときはまだSolaris使っていたんだな(* ̄_ ̄) flymake-mode 以下を参考にflymakeの環境構築。 ちなみに、emacs22以降だとデフォルトでflymakeは含まれている*1とのこと。 C/C++ flymake, …

「第42回 Ruby/Rails勉強会@関西」の復習

最近ご無沙汰Rubyですが、 Rails系を触る可能性大になので 日本Rubyの会 公式Wiki - 第42回 Ruby/Rails勉強会@関西で 勉強のやり直しです。 まあ予習後の復習が基本ですが 予習せずに参加したので復習だけw; 実践スクレイピング by ふるかわだいすけさん …

OpenSolaris2009.06のemacs環境のRubyな設定、refe補足

rubyな人は、モチロンrefeを入れると思いますが OpenSolarisでrefeを引くと、日本語かな?が文字化けしていました。 なんで、ちょっとしらべてみて同様の問題を発見><b Mac OS X Leopardでrefeの文字化けを解消する - このブログは証明できない。 参考に…

OpenSolaris2009.06のemacs環境のRubyな設定

なにはさておき、ruby環境作る。 ruby-mode ruby-mode の設定(かわちょぶろぐ、2008年01月10日)を参考に、 Ruby本家より1.8系のソースをDLしてmiscディレクト内のファイル全てを、 ~/.emacs.d/elisp/ruby/に移動。 ~/.emacs.d/elisp/init-ruby.elを作成し…