Ruby

桜川本店4個セットの組み合わせ

大阪のカヌレ専門店カヌレ堂ステマ企画 第3弾。堂島店ではホワイトデー需要も終わり落ち着きを取り戻した感があるが、桜川本店では相変わらず春休み需要に沸いているようだ。Instagram で桜川4個セットを投稿している人がいて、桜川店での4個セット価格が570…

【訂正】ホワイトデーの組み合わせ

ホワイトデーも終わり、そろそろカヌレ堂も落ち着くかと思いきや、春休みということで連日賑わっているようだ。前回「ホワイトデー4個セットの組み合わせを洗い出す」に間違いがあることが分かった。カヌレ堂では、毎月フレーバーの変わる 1ヶ月限定のカヌレ…

ホワイトデー4個セットの組み合わせを洗い出す

大阪のカヌレ専門店「カヌレ堂」では、8種類のカヌレを販売しており、1個単品から購入できる。*1ところがホワイトデー*2期間は単品では購入できず、8個, 16個, 24個の箱入りか、4種ランダムのセットしか販売していなかった。*34種入りは 600円で販売されてお…

Ruby初級者向けレッスン 45回 ─例外─

第57回 Ruby/Rails勉強会@関西での初級者向けレッスンの資料を公開します。*1 エラーメッセージ require 'open-uri' open 'http://github.com/rubykansai/workshops/wiki' .../open-uri.rb:223:in `open_loop': redirection forbidden: http://github.com/ru…

解答例 ─ Ruby初級者向けレッスン 44回

第56回 Ruby/Rails勉強会@関西 での Ruby初級者向けレッスン 44回 の解答例 *1 演習問題 1 0 から 9 までの数値をもつ配列 a がある。a = (0..9).to_a a # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 各要素を順番に表示しよう。 各要素を 2倍した値を持つ配列を作…

Ruby初級者向けレッスン 44回 ― ブロック ―

第56回 Ruby/Rails勉強会@関西での初級者向けレッスンのスライドを公開します。*1 繰り返し a = [0, 1, 2] a.each do |i| puts i end a.each{|i| puts i} # >> 0 # >> 1 # >> 2 ブロックの代表的な使い方は繰り返し処理。 do と end で囲まれたもの、{ と } …

Minami.rb 第13回勉強会で受けた衝撃

半年ぶりくらいに Minami.rb の勉強会に参加した。 Rubyリファレンスマニュアル読み (Hashクラス編) るりまをみんなで読もうというセッション。 Hash クラスと言えば、第54回 Ruby/Rails勉強会@関西 の初級者向けレッスンでやった。 ところが、何人かはレッ…

演習問題回答例

第55回 Ruby/Rails勉強会@関西 演習問題1 属性として身長と体重を追加しよう。体重は秘密にしよう。 仕様を決める。 initialize で height, weight を渡す 省略時は nil class Person @@variables = [:@name, :@born, :@height, :@weight] def initialize na…

第55回 Ruby/Rails 勉強会@関西で初級者向けレッスンやってきた

第55回 Ruby/Rails勉強会@関西 初級者向けレッスンを担当したので、以下スライドを解説。*1 *2 クラスとは オブジェクトの雛形 属性と振舞いを定義 カプセル化 (属性・振舞いの隠蔽) Rubyはクラスベースのオブジェクト指向言語 クラスを作ってみよう class P…

関西Ruby会議に関する重要なお知らせ

第55回 Ruby/Rails勉強会@関西 LT で話してきたのでご報告。 今年は「関西Ruby会議」を開催しません 関西にお住まいの Rubyist の皆さまにおかれましては、私たちに遠慮することなく地域Ruby会議を開催なさってください。関西地域でRuby会議が開催されました…

Emacs から rbenv を使う

gist を表示する練習を兼ねて、Emacs で rbenv を使う elisp を作ってみた。ググってみると exec-path を設定する話がやたら出てくるけど、rbenv でインストールした複数の ruby を切り替えて使う例が出てこない。以下のように環境変数に使いたい ruby のバ…

演習問題解答例

第54回 Ruby/Rails勉強会@関西 演習問題 1 既存の Array に変更を加える方法と、新しく Array を作る方法で [0, 1, 2, 3] という Array を作ろうという問題。 a = [] b = a b # => [] a.object_id # => 134275960 4.times{|i| a[i] = i} a # => [0, 1, 2, 3]…

第54回 Ruby/Rails 勉強会@関西で初級者向けレッスンやってきた

第54回 Ruby/Rails 勉強会@関西 初級者向けレッスンを担当したので、以下スライドを解説。*1スライドだけ欲しい人は直接どうぞ。 http://higaki-it.jp/ruby/54/slide.pdf Array とは 配列クラス 任意のオブジェクトを持つことができる [1, 1, 2, 3] [1, "two…

関西Ruby会議04で初級者向けレッスンやってきた

2011年11月11日(金)・12日(土)に関西Ruby会議04が開催された。「会議」という感じではないが、KOF (関西オープンソース2011)というイベントの会場で開催されるということもあり、新人Rubyistを勧誘 (洗脳?) すべく初級者向けレッスンも開催した。*1 レッスン…

第51回 Ruby/Rails勉強会@関西で話してきた

Ruby/Rails勉強会@関西で話してきた。どなたかが「人のネタでも発表していい」と言ってた気がしたので @rubykansai くんのネタで初級者向けレッスンの代わりのようなことをした。資料は @rubykansai くんの tweet を列挙しただけで、フリートーク & グループ…

第50回 Ruby/Rails勉強会@関西

第50回 Ruby/Rails勉強会@関西今回は珍しく尼崎で開催。*1 今回は珍しく発表がたくさん! スイーツ食べたりする時間はない!今回は珍しく、みんな Ruby の話してくれない。 Ruby3D by kyara さん Blender (Python) のはなし? 3D hour/2 by keisukenさん,にし…

最後の RubyKaigi に行ってきた

RubyKaigi 参加は今年で 2 回目。 去年は当日スタッフで参加したけど、今年は一般で参加した。*1 その代わりと言ってななんだけど、今年も個人スポンサーには応募した。一年ぶりに Ruby 界で著名な方々にお会いした。中には私のことを覚えてくれてる方がいて…

Fiber で FizzBuzz

ruby-list で Fiber のサンプルがイケてない。 Fiber.yield, Fiber#resume の戻り値使えよ。 と言われてたので、そんな FizzBuzz に挑戦してみた。 class FizzBuzz def initialize @buzz = Fiber.new do |i| loop do print "buzz" i = Fiber.yield(i+1) end …

るびきちさんを囲む会

るびきちさんが関西にいらっしゃるというので kansai-emacs #x03 開催が決まったようだ。勉強会については他の人にお任せするとして、午後からの勉強会に先立って午前中に行われた会合についてレポートしてみる。 朝 9:30 になんばマルイ前でるびきちさんと…

rvm の設定あれこれ

Mac を新調したのを機に Ruby の環境も変えてみる。今までは、Ruby を野良ビルドしてコマンド名を変えて使い分けていた。 Ruby 1.9 をインストール これをやめて rvm を使ってみる。 rvm とは 様々なバージョン、実装の Ruby をインストールして必要に応じて…

完全に一致しなくても、だいたい合ってりゃいいとき

浮動小数点の数は直接比較してはいけない。 0.3 == 0.1 + 0.2 # => false 0.1 + 0.2 # => 0.30000000000000004 ほぼ同じなんだから、なんとかならんのか。 そんなの誤差でしょ。≒みたいなのが欲しい。MiniTest::Assertions#assert_in_delta では、ふたつの数…

浮動小数点はむずかしいですね

2.2250738585072011e-308 というのは、なかなか厄介な数値らしい。Java もこの数値を文字列に変換したりするのが苦手らしい。Ruby では、どうか? RUBY_VERSION # => "1.9.2" bang = '2.2250738585072011e-308' bang.to_f # => 2.225073858507201e-308 bang.t…

覚えておくと便利な Array のメソッド (追加)

前回「覚えておくと便利な Array のメソッド」のつづき。 Array#permutation サイズ n の順列を生成。 (1..8).to_a.permutation(2).to_a # => [[1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], # => [2, 1], [2, 3], [2, 4], [2, 5], [2, 6], [2, …

第49回 Ruby/Rails勉強会@関西では発表者を募集しています

第49回 Ruby/Rails勉強会@関西 では発表者を募集しています。以前話してくれた人や他の勉強会で話している人に声を掛けると、 「もうネタないから」 「そのネタは○○で話したから」 などの理由で断わられる。*1 ネタがない? 以前話したネタがあるじゃないか!…

ファイル入出力とエンコーディング

Ruby1.8 の文字列はただのバイト列だったが、Ruby1.9 からは、それぞれの文字列がエンコーディングを持っている。 エンコーディングの変換には String#encode を使う。utf8 = 'Ruby関西' eucjp = utf8.encode(Encoding::EUC_JP) utf8.encoding # => #<Encoding:UTF-8> eucjp.</encoding:utf-8>…

第48回 Ruby/Rails 勉強会@関西で ust したけど失敗した

新春 Ruby/Rails勉強会@関西 に行ってきた。 今回は司会兼 Ustream (以下 ust) 係をやったんだけど、かなり失敗した。 以下は ust 中継に失敗した言い訳と開き直り。 ust 中継の位置付け まず、勉強会における ust の位置付けは、オマケでしかない。 勉強会…

練習1-1 また間違えてた

このまえの練習問題。 練習1-1 次のように、任意の数の整数データを与えるとその総和を計算するメソッドを書いてください。 sum_all(1, 2, 3, 4, 5) # => 15.0 結果は Float でないといけないのか!入力は整数なのに?整数でない入力もありだとしてやってみる…

第47回 Ruby/Rails勉強会@関西に行ってきた

第47回 Ruby/Rails勉強会@関西でいつものように京都女子大学へ。 おけいはんで七条駅に着くと、いつもと違って女子大生がいない。*1 「女子大生いないよー」と tweet しかけて止めた。*2 Rubyist のための HTML5 入門 - Content models - by Sixeight さん H…

練習 3-4 やりなおし

前回 ごにょごにょしたけど、String#scan 使えば簡単だった _| ̄|○ require 'open-uri' RUBY_VERSION # => "1.9.2" puts open('http://www.google.com', 'r:cp932', &:read). scan(%r|<a.*?href="(.*?)".*?>(.*?)</a>|m). map{|url, text|"#{text} <#{url}>"} # >> 画像 <http://www.google.co.jp/imghp?hl=ja&tab=wi> # >> 動画 </http://www.google.co.jp/imghp?hl=ja&tab=wi>

練習 3-4

初級者向けレッスンの宿題。文字列から抽出する練習問題。空気を読んで出題者の意図通りに。 require 'open-uri' RUBY_VERSION # => "1.9.2" puts open('http://www.google.com', 'r:cp932', &:read). gsub(/\n/, ' '). split(%r|</a>|). map{|i|i.sub(/^.*<a/, '')}. map{|i|[$1, $2.strip] if /href="(.*?)".*>(.*)/</a/,>…