第8回「オブジェクト指向設計実践ガイド」読書会に参加したけど第7回の補講をやりました

12/13 NSEGの「オブジェクト指向設計実践ガイド」読書会の第8回に参加しましたが、行ってみたら参加者3人だったので延期になりました。 が、3人とも前回欠席だったので、補講(?)として第7章を読みました。 第6章のクラスに続いて第7章はモジュールの話でした…

reveal-ck-mermaid-plugin

最近発表用スライドを作るのには reveal-ck を使ってMarkdownで書いてます。 この前の Club MySQLでシーケンス図を描きたくて、テキストベースで簡単に書けるツールが無いかなーと探したら mermaid というのを見つけました。 HTML中に次のように書けばシーケ…

クラスはクラスクラスのインスタンスである

タイトルで出落ち感がありますが…。 naruby で時間があまった時のために用意してあったのですが、時間が余らなかったので発表しなかった小ネタです。ここで公開して供養します。 Rubyはほぼすべてがオブジェクトです。 クラスもオブジェクトです。オブジェク…

Ruby 2.5

Rubyは毎年クリスマスにバージョンアップされます。 今年も問題なければ12/25にRuby 2.5が出ると思います。 https://docs.ruby-lang.org/en/trunk/NEWS.html を元に変更内容を調べてみました。 言語仕様 トップレベル定数参照 rescue/else/ensure 節 文字列…

ながのRubyの会を開催しました

12/2 ながのRubyの会第1回を開催しました。 naruby.connpass.com キャンセルもなく、飛び入り参加もあり、参加者&発表者あわせて19名でした。 発表者7人のうち普段からRubyを使ってプログラムを書いているのは私含めて約2人でした。長野のRuby層の厚さを感…

本当はこわいMySQLプロトコル

11/28 に Haskell で MySQL の Xプロトコルを実装したという話が聴ける Club MySQL というイベントがあったので参加してきました。 clubmysql.connpass.com MySQLのプロトコルの話ということで、平日の夜とは言え東京で参加者9人(発表者含む)というマニアッ…

Rubyのリファレンスマニュアルを端末で読むrefe

Rubyのリファレンスマニュアルをmanのように端末上で読むコマンドとしてriがありますが、残念ながらこれで読めるのは英語のマニュアルだけです。 Rubyには日本語でかかれたマニュアル(通称「るりま」)がありますが、いちいちブラウザで読むのも面倒だしネッ…

Firefox 57 のテキスト入力時に Ctrl-N で新規ウィンドウが開くようになってしまったが xremap で事なきを得た

Emacs 使いなので、デスクトップのキーバインドも Emacs にしていて、Firefox のテキスト入力欄でも Emacs ぽく入力していたのですが、Firefox 57 でなぜか Ctrl-N で新規ウィンドウが開くようになってしまいました。Ctrl-B, Ctrl-F, Ctrl-P はちゃんとカー…

第6回「オブジェクト指向設計実践ガイド」読書会に参加しました

11/15 NSEGの「オブジェクト指向設計実践ガイド」読書会の第6回に参加しました。参加者3名でした。寂しい。 nseg.connpass.com 今回は第6章を読みました。 第6章は継承の話でした。 普段あんまり意識せずになんとなく実装していたのですが、明文化されるとな…

Gitでコメントを無視して差分を見る

古いRubyのコードのコメントを独自のRDoc形式からYARD形式に変換して、さらにその後にプログラムを変更したんですが、その後に差分を見ると大量のコメントの差分が表示されて、実際のコードの差分が何かわからなくなったりしたので、コメントを無視して差分…

Rubyのbundlerをアップデートしたらプログラムが動かなくなった話

Ruby の bundler を 1.13 から 1.15 にアップデートしたら今まで動いたプログラムが動かなくなりました。 こんな感じ: % bundle _1.13.7_ exec ruby -r./hoge.rb -e Hoge.new % % bundle _1.15.4_ exec ruby -r./hoge.rb -e Hoge.new hoge.rb:3:in `initiali…

第5回「オブジェクト指向設計実践ガイド」読書会に参加しました

11/1 NSEGの「オブジェクト指向設計実践ガイド」読書会の第5回に参加しました。参加者7名でした。 nseg.connpass.com 今回は第5章を読みました。 オブジェクトの型(クラス)を調べて処理を変えるというコードの例としてcase文が使われてました: case preparer…

実行中プログラムのイメージを得る

Twitter見てたらこんなこと言ってる人がいました。 Unix で実行中の実行ファイルのパスを確実に得る方法はない、というのは FAQ だと思うけど、実際にやりたいことは自分自身を別プロセスで新たに立ち上げたいということなので、メモリにロード済の自分自身…

Ubuntu Mate 17.10

Ubuntu 17.10 が出たので、Xubuntu を 17.10 にしてみた。 あんまり代わり映えしなかったので、GNOME ベースになったという Ubuntu を使ってみた。 % sudo apt install ubuntu-desktop あいかわらず、アプリのメニューバーがアプリのウィンドウ内ではなく、…

Rubyおもしろい

Rubyは括弧をつけなくてもメソッドを呼び出せます。メソッド名は普通は英小文字で始まります。ローカル変数も英小文字で始まります。 こんなRubyプログラムを実行すると(ifの条件部で代入しているのはtypoではありません)、 def hoge 123 end p hoge x = 456…