読者です 読者をやめる 読者になる 読者になる

パーフェクトRuby 読書録

コーディングスタイル 有名どころは3つらしい Rubyコーディング規約 LoveRubyNet Wiki: RubyCodingStyle Styleguide | Ruby · GitHub ググると github のものが出てきた。 GitHub - bbatsov/ruby-style-guide: A community-driven Ruby coding style guide …

Ruby Reference Manul を Kindleファイルにしてみた

ruby-list メーリングリストに投稿 [ruby-list:50379] Ruby 2.3.0 Reference Manual for Kindle したが、Ruby Reference Manual を Kindle 化してみた。以前 Amazon CAPTCHAを読んだ際、『次はリファレンスマニュアルを読むこと』といった記述があったのを記…

たのしいRuby 第5版

図書館にあった たのしいRuby 第5版 を読む。 手元の本は第2版で1.8が対象だったのだが、1.9以降のStringの仕様変更の理解がずっと浅いように感じているので、第3部を中心に落ち穂拾い的にあちこち読んで見る。 以下気になった点のメモ。1.8でもあったものか…

pdf ファイルからイメージファイルを取り出す(ruby, poppler)

ruby で pdfファイル内のテキスト、図の情報を取り出すのをどうするか。 簡単なのは poppler みたいなので、試して見る。 poppler 自体は他の gem のインストール時に勝手に入っているので問題なし。 ただし日本語を含むものはエラーが出るので poppler-data…

Rubyの組み込みクラスの一覧を表示してみる

組み込みクラスの一覧を表示してみたいと思い立った。考えたのは Objectの定数一覧取得 それぞれの定数からクラスを得る そのクラスがClassであれば、組み込みクラス [8] pry(main)> puts Object.constants.select { |x| Kernel.const_get(x).class == Class…

Windows版Rubyでp メソッドが文字化けする件の回避(-Uオプション)

いわゆるprintfデバッグに相当する pメソッドなのだが、漢字が正しく表示されない。 例えば class Tel def initialize(number, name) @number = number @name = name end end kyoto = Tel.new('075', '京都市') p kyoto を実行すると、ruby 1.9からだったと…

Effective Ruby

Effectiveシリーズ(と言ってよいのかどうか。作者も異なるし)のRuby版。 なかなか良い本だと思う。。が、価格が高い。 技術書の場合、基本印刷書籍を買うので今回もそうしたが、Kindle版の方が良かったかもしれない。 Effective Ruby作者: Peter J. Jones,…

Rubyのしくみ - Ruby Under a Microscope

類書にはRHGがあるものの、既に絶版で、対象もRuby1.*(確か1.6)ということで、1.9以降導入されたYARVも含む内部説明としては始めてなのでは。 英語版PDFはネットで公開されている。英文そのものは読み易く、すらすら読み進められる。 日本語版は各所に補足…

Rubyリファレンスマニュアル Kindle化計画

Rubyリファレンスマニュアルを通読したいと思うのだが、Webベースで読むのがどうも面倒なので、電子書籍化(Kindle化)を試みることとする。 インターネット上のリソースのKindle化はいくつか実行したこともあるので、なんとかなるだろうと目論んでいる。 第…

ruby-prof と Visual Stduio 2013

メインPCで無事ruby-profが動作するようになったので、別のPCでも動かそうとする。が、うまくいかず。 問題が起きるPCのVisual StudioはVisual Studio Express 2012 for Windows Desktop で、インストール中のコンパイルでエラーが発生している模様。問題を…

コードの世界:まつもとゆきひろ

まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法 を読む。 昨日書いたつもりが、どうも上書きしてしまった模様。はてな記法も忘れてるし。。 記録なのでもう一度。イギリスへ来る際に積読のままだった本を何冊か持ってきたもののうちの…

ruby-prof を Windows で使えるようにする

まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法 を読んでいて、rubyプログラムのプロファイルを取ってみたくなり、実際に試してみる。 まずは標準で入っているもの。 ruby -rprofile test.rb 標準の強みはあるが、Windows環境だからか…

初めてのRuby復習(4)

クラス名と定数(p144) Durationというクラスの定義式を評価したとき、Rubyは (1)Durationクラスを表すClassクラスのインスタンスを作成し、 (2)そのインスタンスへの参照を値として、Durationという定数式を初期化します Rubyではクラスもオブジェクトであり…

初めてのRuby復習(3)

ローカル変数(p100) ローカル変数はメソッド定義の def ... end を境界としてスコープが分離されます。 Rubyを使いはじめのころよくエラーになりました。 ローカル変数は最初の代入式によって発生します。 定数(p102) Rubyの動的性質は定数への再代入を結局…

初めてのRuby復習(2)

整数リテラル(p45) '_' で数値を区切れるのはとても便利。最近アセンブラで dword のリテラルが見づらくて、コメントで書いてたりするのだけれど、時々ソースにも書いてしまってアセンブルエラーになったりする。他の言語でも導入される嬉しいのだけれど。na…

初めてのRuby復習

たのしいRubyに続いて、初めてのRubyを復習。 この本は読むたび、何らかの気づきがあります。 メタプログラミング(p8) Rubyが動的な言語であるということ。例えば「クラス定義」の中でattr_accessor をイテレータから呼び出し、アクセッサを定義することがで…

たのしいRuby 復習-1.44MB FDイメージを読み書きする

第21章〜第24章 までひとまず完了。 目下VMawre, Virtual PCで使用する1.44MB FDイメージを扱えるスクリプトを作成中。 ユーザインタフェースについては、ftpクラアントの動作に準じて cd ls get put の操作をメソッドとして実装する方向。クラス構成は、cla…

たのしいRuby 復習

第15章〜20章 仕事で使うちょっとしたプログラムを作るのは、Rubyで十分な予感。 「なんでRuby?」と言われるけれども ^^http://d.hatena.ne.jp/dogatana/20090530/1243643312 によろしくない点があったのを修正。

たのしいRuby 復習-HDD内のサイズが大きいファイルの一覧を求める

ちょっとしたプログラムが必要なとき最近はRubyを使うことが多いわけですが、同じようなことしかしないので忘却が激しい。都度ヘルプを見てるわけですが、仕事なのでゆっくりというわけにも行かないので たのしいRuby 第2版 Rubyではじめる気軽なプログラミ…

まとめ

ほとんどメモ。 1章:ようこそRubyのある生活へ オブジェクト メソッド object_id IDの取得 class classの取得 equal? 同一性の検査 all? 論理積 any? 論理和 より良いPerl 動く擬似コード ALGOLの皮をかぶったLisp 高階関数 ブロックつきメソッド Domain S…

初めてのRuby − 9.6.2 method_missing

わんくまの掲示板で、定義済みのクラスのメンバ関数を、より短い名前で呼ぶようにしたいという質問あり。 class Graphics g { void Image_Load() { } void Image_Draw() { } }; とあってGraphicsクラス内部にクラスor構造体 aImage を設けて aG.aImage.Draw(…

初めてのRuby − 3.2.5 型と自動変換(coerce規約と method_missing を使った四則演算)

coerce 規約 整数と浮動小数点数の演算は自動的に型変換されるが、処理系ハードコードによるものではなく、coerce規約というメカニズムに従うとのこと。 で、適当な自作クラスでの型変換を試してみる。 次のコードで作った coerce メソッドがそれ。 非常に簡…

初めてのRuby − 2.3 Enumerableモジュール

Eumerableモジュール each メソッドを定義して Enumrable を include すれば map などの一連のメソッドが使えるようになる。 class MyClass def initialize @data = [1, 5, 3, 2] end def each @data.each do |d| yield(d) end end include Enumerable # こ…

初めてのRuby

初めてのRuby を読了。 裏表紙に 他の言語のプログラミング経験者が対象 Ruby1.9までカバー とあり、たのしいRuby 第2版 Rubyではじめる気軽なプログラミング でもやもやしていた部分がかなり解消された。プログラミング初心者でなければ、この本から入ると…

Rubyの配列で循環参照

Rubyでは変数はオブジェクトへの束縛で、参照となるだけ。 よって a = "abc" b = a a[0] = 'A' p b で、==>'Abc'となる。参照ということであれば循環的な配列も作れるということで、試してやると作れました。当たり前ですが。 #ruby -Ks def show_array(a) a…

TABインデントのテキストファイルをFreeMindのファイルへ変換(4)

Rubyなど使わなくても、単にペーストでいけるとのこと。 RubyとかXMLの知識を深めるのには役立ったので良しとする。出所:

TABインデントのテキストファイルをFreeMindのファイルへ変換(3)

parentメソッドを使用し、make_tree()の再帰呼び出しを無くすことができ、一件落着。

TABインデントのテキストファイルをFreeMindのファイルへ変換(2)

ごちゃごちゃしているのは 木の生成を再帰的に実行している 葉から根の方向へ移動する際、先読みしたデータを戻している ところにあると見た。 そもそも、任意の階層のノードが取得できれば再帰を使わなくてもループ一発でいけそうな予感。REXMLにもparentと…

TABインデントのテキストファイルをFreeMindのファイルへ変換するRubyスクリプト

http://d.hatena.ne.jp/dogatana/20090131/1233396767 の逆のことをするRubyスクリプトを書いてみました。(あれは空白でインデントするので厳密には逆ではないです。あれもそのうち修正しよう)1段ずつ木が深くなっていく場合は簡単だったけど、2段以上に…

Lotus Notes 6.5のカレンダーをGoogle Calendarへ転送するRubyスクリプト(3)-notes_lib.rb の修正

notes_lib.rbをLotus Notes 6.5で使用したときの問題 Lotus Notes 6.5のカレンダーをGoogle Calendarへ転送するRubyスクリプト - dogatanaの日記のように、notes_lib.rb をNotes 6.5で使用すると Dominoオブジェクトの全てのメソッドが使えない スクリプト実…

The Ruby Way (初版)

The Ruby Way(初版)を読み始めました。 The Ruby Way―Ruby道への招待 1.1 オブジェクト指向について 上手くまとまっているなぁと思ふ。 1.3 Rubyの中のOOP たのしいRuby 第2版 Rubyではじめる気軽なプログラミングを読んで、もやもやしていた include/requ…

みるみるRubyがわかる本―初歩からウェブまで−掌田津耶乃

後半、Rubyを使用した掲示板システムまで持っていく部分は読み飛ばし。この手だとRuby on Railsをしっかり勉強したほうがよさそう。 掲載されているRubyコードは、恐らく一般的なRubyのコーディングスタイルとは異なっているし、書籍内での統一感も感じられ…

FreeMindのデータをインデント付きテキストファイル、もしくは箇条書きhtmlファイルとして出力するRubyスクリプト

会議中、ある人がアイデアマップをWordにしたものと、アイデアマップそのもので要点を説明しているとき、こちらはFreeMindでメモ取り。そこで作成を思い立つ。 RubyでXMLを扱うのは初めてで(他の言語でもやったことないですが)、一通り動作したあと、html…

Lotus Notes 6.5のカレンダーをGoogle Calendarへ転送するRubyスクリプト(2)

Rubyでは既存のクラスのメソッドを上書きすることができる。今回Lotus Notes 6.5のカレンダーをGoogle Calendarへ転送するRubyスクリプト - dogatanaの日記で notes_lib.rb が問題になったのは、プログラム識別子として 'Notes.NotesSession' を使用していた…

ActiveScriptRuby

色々入ってて、素のmswin32版より手間いらず。RubyGemも標準で入っていて便利。 またGUIも作れるらしいということで、乗り換え。

Lotus Notes 6.5のカレンダーをGoogle Calendarへ転送するRubyスクリプト

動機 Mozillaからスケジュール管理ソフトとして Sunbird Portable というのがあるのを知り、ToDo管理も含めて試そうと思い立ったものの、仕事ではLotus Notesのカレンダーなので、相互にやりとりできない。 SunbirdはGoogle Calendarとの同期ができるので、…

はじめようRuby on Rails

Ruby on Railsは名前だけ知っている程度。「第1章 Ruby on Railsの歴史と特徴」は興味深いものでした。Rubyが盛況になった一因なのでしょうかね。これ。自分でWebアプリを作ることは恐らくないと思うけれど、ペアプログラミング手法によるアプリケーション開…

たのしいRuby読了

一通り読み終えた後、文法のところまで再読。 簡単なライブラリの意味もようやく理解できるようになった。これまではライブラリに直接手を加え、クラス変数に代入するといったことで無理やり動かしていた(@@で始まる変数名なのでなんか怪しかったのだけれど…

たのしいRubyを読み始める

とあるRubyで書かれたプログラムを改造するためのRubyに対する知識習得のために購入。 第3部のライブラリはリファレンスなのでひとまずおいておいて、それ以外をざっと読み終えた。これまでちょっと敬遠していたスクリプト言語だったのだけれど、結構便利そ…