2010-01-01から1年間の記事一覧

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

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

電子書籍をいくつか試してみた感想

電子書籍にはまったく興味がなかったんだけど、iPad を人に見せると「本が読めるんだよね?」とか聞かれるので、いくつか買ってみた。 書籍アプリ 電子書籍ならではの特殊効果を使ったりするにはアプリにするしかないのか?Apple の DRM が使えるのも利点なの?…

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

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

Bluetooth ヘッドセット買ってみた

知人が Bluetooth ヘッドホンをしていて「線から解放された」と嬉しさを語っていたので、以前から気になっていたのを買ってみた。Jabra Clipper 長いケーブルが不要になったのは確かに楽だが、クリップ (本体) から出たイヤホンの線がやっぱり邪魔。しかし S…

練習 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/,>…

練習 3-3

文字列を置換する練習問題。前回、文字コードの変換が面倒だと書いた。 もうちょっとシンプルに変換 File#open で外部と内部の文字コードを指定。読み込んだ文字列は内部コードに変換済み。1行ずつ変換するよりも効率がよい (と信じてる*1 ) # -*- coding: u…

練習 3-2

`cmd` を使って文字列を作る練習問題。 前回の修正 前回のをちょっと修正。 puts `ls -la | awk 'NF==9{printf("%s, %d\\n", $9, $5)}'` # >> ., 3366 # >> .., 204 # >> .bash_history, 507123 # >> .bash_profile, 16 # >> .bashrc, 1188 ... NF==9 がない…

第46回 Ruby/Rails勉強会@関西 練習問題

第46回 Ruby/Rails勉強会@関西に行ってきた。初級者向けレッスンの練習問題に挑戦。 練習 3-1 任意の桁数の数字の文字列があったとき、その数字 0, 1 ... 9 を巡回的に 1, 2 ... 0 に入れ替える方法を考えてください。問題を誤解していた。314159 が与えられ…

O'Reilly のキャンペーン来た

4週連続のキャンペーン。今回はトートバッグをゲット。

メソッドチェーンの p デバッグ? それ tap でできるよ

「リファクタリング Ruby エディション」によると、一時変数は極力排除した方がいいらしい。メソッドチェーンを使えば、結果をいちいち変数に覚えなくても最終結果だけ得られる。 s.split(/\n/).each_slice(2).map(&:join) でも、結果が意図したものと違った…

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

第45回 Ruby/Rails勉強会@関西演習問題をやってみた 正の整数 n の階乗 n! を求める方法を何通りでも考えてください class Integer def ! case self when 0, 1 1 else self * (self-1).! end end end # とか class Integer def ! (1..self).inject(1, &:*) e…

iPad のここがダメ

WiFi 接続が頻繁に切れる Pocket WiFi でインターネットに接続して、メールを読んだり、Web サイトを見たりしていると、突然 「WiFiパスワードが違います。」 とか言われる。パスワードを入力せずにキャンセルすると、 「接続しています。…」 とか言う。なん…

第2回 リファクタリング Ruby エディション読書会に行ってきた

今回は 2 章から 6 章の途中まで読んだ。 3 章はリファクタリングの基礎。 どういう時にどういう技を使うべきか書いてある。職場のコードは、ほとんどの悪いパターンに該当していてヘコむ。*1その反面、今まで経験と勘でやってきた修正が間違ってなかったの…

OSC2010 Kansai@Kyoto に行ってきた

今年はボランティアスタッフとして参加した。 ボランティアスタッフになると、 T シャツがもらえる 打ち上げに参加できる 今回は家庭の事情で遠慮したが いろんな人に気軽に話しかけられる 聴講したいセミナーに行けない (こともある) LT & 抽選会に行けない…

Minami.rb 第1回 勉強会に行ってきた

少人数、初心者歓迎の勉強会 Minami.rb ブログを作ろう id:rudeboyjet が live coding するのを、みんなで写経。 みんな好き勝手に質問する。 id:rudeboyjet は「なかなか進まんなぁ」とボヤいていた。 時間が足りないので、いろいろ機能を省略。 ブログでは…

モテると聞いて女子大に iPad 持って行ってみた

先週のRuby/Rails勉強会@関西に iPad を持って行った。 結論から言うとモテなかった。「初めて見ましたー」「触ってもいいですかー」と女子大生がやってきたので、とりあえず "Winnie the Pooh" を見せて、 "noby noby boy" を見せて、 「つみネコ」をやらせ…

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

第44回 Ruby/Rails勉強会@関西 初級者向けレッスンの演習問題 Arrayクラスの次のメソッドを Stringクラスにも作ってください。 文字列はアスキー文字 (1バイト文字) だけからなるもとのします。 sort については、非破壊的なメソッドと破壊的なメソッドを作…

fibonacci(36) を計算してみた

いつも読んでる SoftwareDesign 誌の 2010年 5月号に Konoha という言語が紹介されていた。Konoha というのは静的型のスクリプト言語らしい。記事の最後にフィボナッチ数列を求めるスクリプトのベンチマークが載っていた。 我らが Ruby は断トツの最下位に挙…

数値からローマ数字への変換

第42回 Ruby/Rails勉強会@関西 の演習問題 一方 Windows では Excel を使った。 require 'win32ole' class Integer EXCEL = WIN32OLE.new 'Excel.Application' def to_roman EXCEL.WorksheetFunction.Roman(self) end end [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, …

iPhone でバーコードをちゃんと読む方法

はてなモノリスを使い始めた。ところがバーコードが小さいと iPhone の貧弱なカメラだと読み取れない。そこで、誰でも持っているコンパクトデジカメを使ったライフハックを紹介する。*1まず、バーコードをコンパクトデジカメのマクロ機能を使って撮影する。…

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

第42回 Ruby/Rails勉強会@関西 京都女子大学にて開催。 土曜日だというのに女子大生が大勢いて女子大感満載。勉強会にもたくさんの女子大生が参加してくれた。 実践スクレイピング by ふるかわだいすけさん モバイラーズオアシスというサイトを作るためにス…

謎のウイルス検知が止まらない

Windows では WDS (Windows Desktop Search) を使ってメール、その他を検索している。*1 ある日、トロイの木馬を添付したメールを受け取った。 すると翌日から NOD32 (アンチウイルスソフト) が毎朝ウイルスを検知するようになった。おそらく POP からメール…

代入メソッドの罠

Ruby ではメソッド名の末尾に = が付いていると、属性への代入のように使える。 def Foo def name=(name) @name = name end end foo = Foo.new # => #<Foo:0x100c7f98 @name=""> foo.name = 'foo' # => "foo" ←ここに注目 foo # => #<Foo:0x100c7f98 @name="foo"> つまり代入のように書くと Foo#name=(name) を呼び</foo:0x100c7f98></foo:0x100c7f98>…

覚えておくと便利な Array のメソッド

いつも「何かそういうメソッドあったはず」と思ってるりまを調べなおすことになるのでメモ。 Enumerable#each_cons 順番に n 個ずつ取り出す。 marunouchi = ['方南町', '中野富士見台', '中野新橋', '中野坂上'] marunouchi.each_cons(2).to_a # >> [["方南…

無料のカメラアプリをいろいろ試してみた

操作方法は詳しく書かないことにする。 バージョンが変わると操作方法もガラリと変わったりする。 無料なので実際に試した方が早い。 Apple の都合でアプリが削除されてたらゴメン。 写真アルバム 位置情報 Camera 利用可 SepiaCamera カメラのみ 利用不可 V…

第1回 関西Emacs勉強会

ポジションペーパーなるものが必要らしいので書いてみた。 自己紹介 ひがき・まさる Ruby関西 @higaki id:mas-higa Emacs 遍歴 μEmacs (OS-9) Nemacs (SunOS) Mule (SunOS) Meadow (WindowsXP) Carbon Emacs (Mac OS X) Emacs で何をしているか MFC・.NET プ…

告知: 第41回 Ruby/Rails 勉強会@関西

今週の土曜日は第41回 Ruby/Rails 勉強会@関西です。 日時 2010年 3月 20日 (土) 13:00〜 場所 神戸大学 学術情報基盤センター分館 内容 RubyとWebCamであんなこと by にしたかお さん 非同期 by ujihisa さん ActiveScaffold デモ by cuzic さん Ruby初級者…

ブロックの受け渡し

以前マージソートを作ったとき、受け取ったブロックを別のメソッドへどう渡したらいいのか分からずに試行錯誤した。 マージソートにブロックを渡す 「プログラミング言語 Ruby」を読んでいたら、もっとシンプルなブロックの渡し方が書いてあった。 module En…

topcoder sample1

topcorder sample1 - うんたらかんたらRuby 与えられた英語の大文字で構成された文字列の中の文字を、与えられた数字の分だけ左にシフトさせなさい。 たとえば、'C' を 2 つ左にシフトさせると 'A'、'Z' を 2 つ左にシフトさせると 'X'。 与えられる英語の文…