Strings of Life

PHP/Phalcon/MySQL/JavaScript/RegExp/Ruby/Perl/ActionScript

2012年07月

GitHubの使い方、今まではGitHubのサイトでリポジトリを作って、ローカルにcloneして、ローカルからaddしてcommitしてpushして、という工程をたどっていました。

が、いつの間にやら、GiuHub公式のクライアントが出ていました。

http://mac.github.com/(Mac)
http://windows.github.com/(Windows)

これを使うと、上記の作業は全てクライアントで完結します。GUIで分かりやすく、基本的な操作はこれ一つでOK。

『たのしいRuby』は土曜で第3部まで終わったので区切りをつけ、今日は再び『Perl言語プログラミングレッスン』をやりました。

『Perl言語プログラミングレッスン』の不思議なたのしさの源泉は、丁寧な解説と構成にあります。文章も適切ですが、それ以上に読者に与える情報の順番が適切で、よく整理されている。結果として読者は、不明な点を解消しつつ、着実にステップアップすることができます。

Perlのモットーは「There's more than one way to do it.(やり方は他にもはある)」。一つの機能を実現するにも様々な書き方ができる。そのため、初心者向けの言語としては向かない印象もあります。しかし、『Perl言語プログラミングレッスン』では、結城浩氏の巧みな整理によって、様々な書き方があることに伴う混乱は最小限に抑えられています。

一方で、Perlに戻って実感するのは、Rubyのラクさ。Rubyは、行末のセミコロンだとか、条件式の括弧だとかいっためんどくさい要素が排除されています。したがって、プログラミングの好きな人が、プログラミングの楽しさを味わうには向いている言語だと思います。

アカウントは以前から取ってたのですが、ほぼ休眠状態でした。

ひと通りセットアップが終わったので、書いたものの中から適当に選んで上げていきたいと思います。できれば毎日、何かしらは書いてUPしたい。

https://github.com/ryo-utsunomiya

現在は、 https://github.com/ryo-utsunomiya/Ruby に『たのしいRuby 第3版』の答案など上げています。

先日、iOSアプリの『CSS Cookboook』を購入したのですが、どうも動作がおかしい。ページめくりが効かないことが多々ある。

ということで、アプリの販売元であるO'riley Mediaにメールをしてみました(最初はオライリー・ジャパンにメールしたのですが、アプリのことは知らないのでO'riley Mediaに問い合わせてくれ、と返事がきました)。

返ってきたメール:

Some of our iPhone apps don't work well with IOS 5.  Here is a blog post that shows you how to extract the ePub file from that app and use it in iBooks on your phone -
http://zef.me/3246/convert-cheap-oreilly-iphone-app-books-to-epub

オライリーのiOSアプリにはiOS 5で上手く動かないものがあるから、アプリからデータを取り出してePubファイルにして読んでね、とのこと。

で、実際にやってみました。リンク先のブログ記事もスクリーンショットがあって十分わかりやすいのですが、一応手順を書いておきます。なお、操作はMac OS X Lionのものですが、Windows 7でもほとんど変わりません。
  1. iTunesでお目当てのアプリを見つけて右クリック > Finderで表示
  2. 出てきた.ipaファイルを複製
  3. 複製した.ipaファイルの拡張子を.zipに変更
  4. .zipファイルを解凍(ダブルクリック)
  5. 解答して出来たフォルダの中の、Payloadフォルダに.appという拡張子のファイルがあるので、右クリック > パッケージの内容を表示
  6. bookフォルダの中に、META-INFフォルダ、OEBPSフォルダ、mimetypeという名前のファイル、の3つがあるので、これらを選択して「3項目を圧縮」
  7. 圧縮して出来た.zipファイル(Macデフォルトだと「アーカイブ.zip」)の拡張子を.epubに変更

以上で、変換作業は終了。あとは、お好みのePubリーダーに放り込めばOK。iOS 5にデフォルトで入っているiBooksが手軽です(iTunesのブックライブラリに.epubファイルを入れて、同期するだけ)。

なお、CSS Cookbookは、インデックスの量が多すぎるのか、ePubリーダーでも快適に読めるとは限りません。私の試した範囲だと、iBooksはなんとか実用レベル、bREADERはダメダメ、って感じです。

ちなみに、ePubファイルの中身は、ただのhtmlです(OEBPSフォルダの中には大量の.htmlファイルが入っています)。したがって、htmlファイルを取り出して個別に読むこともできます。

今日、Macのダウンロードフォルダを整理したところ、誤ってUbuntuの仮想ハードディスクまで消してしまいました。Ubuntuの仮想ハードディスクをダウンロード後、ダウンロードフォルダに置いたままセットアップしていたのが原因です。

Ubuntuは開発環境(というか、学習環境)の構築と、多少のファイルの移動はしていたものの、本格的に開発に使っていたわけではなかったので、それほど痛手にはなりませんでした。が、一歩間違えたら恐ろしい事態になっていたことでしょう。ファイルの置き場には十分に気をつける必要があると再認識しました。

バックアップをとっていないため、復旧も無理そうなので再セットアップを行いました。そこで、以前LAMP環境を構築する記事で書いた内容と齟齬が生じました。Ubuntuに、PHPが入っていないのです。前回は気づいたら入っていたのですが、恐らくセットアップ初期の段階でインストールしていたのでしょう。

再セットアップの今回は、userフォルダの中に作ってあるtoolsフォルダに入れました。これで誤って消すことはないはず。TimeMachineによるバックアップのためにも、外付けHDDを早く買わねば。



『たのしいRuby』は第2部の基礎編を終え、第3部に入りました。第2分では変数、配列、制御構造、ループといった、「伝統的」なプログラミングの基礎が説かれています。とはいえ、メソッドあたりからは「Rubyらしい」話題になりますし、クラスを自分で定義する、といった話題は本書で初めて読みました。

第3部からは各クラスごとのメソッドを掘り下げ、今までに身につけた内容をテストする練習問題も収録されています。第2部の感想は「まあまあたのしい(でもクラスの辺りはよくわからん)」、第3部は、まだ序盤ですが、ようやく「たのしい」感じになってきましたね。

練習問題にあった素数を判定するプログラムは、PHPを覚えたての頃(今年の3月)に書こうとして上手くいかなかったのですが、今回は書き下ろすことができました。

def prime?(num)
    count = 0
    i = 1

    while i <= num
        if num % i == 0
            count += 1
        end
    end

    if count == 2
        print num, " is prime.\n"
    end
end

3月の段階でも、FizzBuzzは書けていたので、当時でも書くことはできたはず。が、当時は、「2回割り切れたら素数、3回以上割り切れたら素数ではない」という発想ができませんでした。ちなみに、『たのしいRuby』のサポートページにはエレガントな解法が載っています。

このページのトップヘ