Rubellum fly light

ほぼPHP日記

Rubyのオブジェクトについてのメモ

だいぶ曖昧なのは自分の理解が足りないため。

クラス/Class/classの表記方法について

クラス/Class/classはすべて異なる(ものとして表記している)。

クラス

オブジェクト指向における一般的な意味のクラス。

Class

クラスを表現するのに使用される普通のオブジェクト。
メソッドも持ってる。

class

classはクラスを定義するのに使う予約語
Rubyはオープンクラスなので、スコープを変えてるといえるかも。
というかselfが変える?

すべての道はBasicObjectに通ず

MyClassを定義する。

[22] pry(main)> class MyClass; end

MyClassのスーパークラスをたどってみる。

[23] pry(main)> MyClass.superclass
=> Object
[24] pry(main)> MyClass.superclass.superclass
=> BasicObject
[25] pry(main)> MyClass.superclass.superclass.superclass
=> nil

MyClass -> Object -> BasicObjectの順で階層構造。
BasicObjectは親を持たない。

Classのスーパークラスをたどってみる。

[34] pry(main)> Class.superclass
=> Module
[35] pry(main)> Class.superclass.superclass
=> Object
[36] pry(main)> Class.superclass.superclass.superclass
=> BasicObject
[37] pry(main)> Class.superclass.superclass.superclass.superclass
=> nil

Class -> Module -> Object -> BasicObject という階層構造になっている。

みんなのClass

MyClass, Class, Module, Object, BasicObjectのクラスはClassである。

[27] pry(main)> MyClass.class
=> Class
[28] pry(main)> Class.class
=> Class
[29] pry(main)> Module.class
=> Class
[30] pry(main)> Object.class
=> Class
[31] pry(main)> BasicObject.class
=> Class

Classちゃんはみんなの友達なんだからっ!

トップレベルのオブジェクト

mainというObjectクラスのインスタンス(?)が用意されている。

[50] pry(main)> self
=> main
[51] pry(main)> self.class
=> Object

タイトルは「パルスのファルシのルシがパージでコクーン」を意識した。

Twitterでエゴサーチ

Twitterの検索はいろいろオプションがあってエゴサーチがはかどります。
いまの検索ワードはこんな感じ。

-to:rubellum -from:rubellum -@rubellum rubellum OR るべるむ OR ルベルム

Google先生でもおなじみの「-」検索は素敵ですね。
関係ないツイートが引っかかる場合はどんどん除外していきましょう。

僕は以下のようなツイートを除外してます。

  • リプライ (-to:rubellum) : mentionで見るので除外
  • mention (-@rubellum) : mentionで見るので除外
  • 自分のツイート (-from:rubellum)

あとは"OR"で検索したいキーワードを連結すればOKです。

Kobitoのいいところ

改行。
f:id:rubellum:20120408124105p:plain

説明

markdownにおける改行の仕様は以下のようになっている。

空白行に囲まれた複数行の文章(一行の場合も含む)がまとめて一つの段落として扱われます。

http://blog.2310.net/archives/6#paragraphs_and_line_breaks

つまり、改行が<br />タグのように扱われない。

Markdownで<br />タグを使用したい時は、その行の末尾を二つ以上のスペースを記述してから改行することとなります。

http://blog.2310.net/archives/6#paragraphs_and_line_breaks

改行したいときは、行末に2つ以上のスペースを入力しなければならない。


具体例をあげる(GitHub Wiki)。

markdown
f:id:rubellum:20120408124057p:plain

表示例
f:id:rubellum:20120408124102p:plain
空行を挟むことで改行している(rubyのコードはおまけ)。


Kobitoでは改行はそのまま<br />タグのように扱われる。
f:id:rubellum:20120408124105p:plain
(スクショ撮るの忘れたけど)連続する空行は1つの改行とみなされる。

その他Kobitoについて

コードのリアルタイムなSyntax Highlightがカッコイイ。
"Qiita Markdown"がローカル環境で使えるのが素敵。
「ブログ記事をローカルで書きたい!→プレビュー機能が使えない><」みたいなことが多くって、プレビュー機能がローカルでも使えるのは、それはとっても嬉しいなって。

まあ、なにはともあれ、
「KobitoかわいいよKobito」

「半角/全角」よりもMacの「かな」「英数」の方が好き

Macには「半角/全角」キーがない。
代わりに、スペースの左側に英字入力(半角)に切り替える「英数」キー、右側に日本語入力(全角)に切り替えるを「かな」キーが用意されている。
「半角/全角」は日本語入力と英字入力を"トグル"するが、Macの「かな」および「英数」キーは"トグル"しない(
それぞれのモードに移行するだけ)。


僕は「半角/全角」より、この「かな」「英数」を使う方が好きだ。
「半角/全角」は位置が少しだけ遠くて、打ちにくいと感じてるからだ。
スペースの両隣にある「英数」「かな」は親指で押せるため、こちらの方がストレスなく打つことができる。
僕はすべての環境において、このキー配置を使いたいと考えている。


僕の身近にあるキーボードはMacBook ProRealforce 91UDK-Gの2つ。
RealforceUbuntuマシン(友人には散々Arch Linuxを勧めておきながら)で使っている。
したがって、UbuntuRealforceという環境で「かな」「英数」のキー配置を実現する必要がある。
幸いなことに設定は簡単だった。


まず、「かな」「英数」として使いたいキーのkeycodeを調べる。
これはxevを使うと簡単に調べられる。xevの実行後、調べたいキーを入力すればよい。

$ xev

僕の場合、keycode "102"を「英数」、keycode "100" を「かな」に割り当てればよさそうだった。


次に、ホームディレクトリに「.Xmodmap」を作成する。
「.Xmodmap」は起動時に読み込まれる設定ファイルだ。
keycodeと「Return」や「Escape」といったイベント(?)を結びつけることができる。

「英数」に"Hankaku"、「かな」に"Zenkaku"を割り当てた("Zenkaku", "Hankaku"は適当に決めた)。

! 日本語入力(全角)
keycode 100 = Zenkaku
! 英数入力(半角)
keycode 102 = Hankaku


最後に、IMEのON/OFFを"Zenkaku"および"Hankaku"に対応させる。
これはibusの設定画面から設定可能だ。設定画面はibus-setupで表示できる。

$ ibus-setup

一般タブの「Enable:」「Disable:」がそれぞれ「かな」「英数」に対応しているので、"Zenkaku", "Hankaku"を対応させる。


これで快適なUbuntu生活を送れそうだ。

OS X Lionをインストールした

購入だけしてインストールはしてなかったOS X Lionを今更ながらインストールした。
クリーンインストールしようと思ったのだが、予想以上に難航したので、Snow LeopardクリーンインストールしてからLionにアップデートした。

新しい環境は、とても清々しい。

Lionは新しい機能だけでなく、変更点もいくつかあるようだ。
トラックパッドのスクロールの向きが変わったのは知っていたのだが、マウスのホイールによるそれも変わっていたのは驚いた。
トラックパッドの方はすぐに慣れたが、マウスの方は馴染めなかったので、マウスの方だけ元の動作に戻した(追記:片方だけ変えるというのはできないみたいだ。トラックパッドの方も戻ってしまっていた)。
幸い、設定画面を見たらすぐに変更できた。さすがに予想されてるのだろう。

これらの機能は、不自然だが広まってしまった悪しき慣習だ(ってばっちゃが言ってた)。
それらを容易にぶっ壊してしまうところはさすがだなと思う。
受け入れられないようなら、元の機能に戻せるようにすればいいしね:-)

環境を整えてる途中、XCodeのインストールで困ったことがあった。
コマンドラインgccが使えないのである。これは多くの開発者が困ると思う。
もちろん、Webは解決策を教えてくれる
これは、古臭いコマンドラインツールなんて捨てて、みんなカッコイイXCodeを使おうよ!ってことなのかな。

Chromeの拡張機能に「Minus」をインストールしているとTumblrのダッシュボードの表示がひどいことになる

ChromeでのTumblrのダッシュボードの表示がおかしくなっていた。
Tumblr側がChromeの表示チェックをしていないわけがないので、拡張機能が悪さをしているのだろうと検討をつけて、ひとつずつ無効にしてみたところ、「Minus(Ver 1.7.98)」のせいだということがわかった。
頻繁に使うわけでもないので無効にすることで解決した。
原因を突き止める気はなかったり。