鴨川食堂 いつもの

家人によれば以前TVドラマにもなっていたとか。

読んでいて日本酒が飲みたくなってきた

  • 石川県 五凛
  • 京都 月の桂 にごり
  • 備前 酒一筋

常温でのおすすめらしい

  • 高知 酔鯨
  • 福島 笹の川
  • 青森 田酒
  • 静岡 磯自慢

鴨川食堂いつもの (小学館文庫)

鴨川食堂いつもの (小学館文庫)

Land of Lisp の Kindle(mobi) ファイルを改善する

Land of Lisp いう面白い本があるわけです。

Land of Lisp: Learn to Program in Lisp, One Game at a Time!

Land of Lisp: Learn to Program in Lisp, One Game at a Time!

翻訳本

Land of Lisp

Land of Lisp

もあるものの、英文に抵抗がなければO'Reilly のサイトから購入すると
PDF, epub, mobi 全てがDRM フリーで購入できるいので、そちらがオススメ。
shop.oreilly.com

ただ、オリジナルmobiファイルのままだと

  • 画像が小さくみずらい
  • 丸数字の大きさがまちまちで体裁が悪い

が気になるため、epub から改めてmobiを作成することにした。
結果はこちらGitHub - dogatana/kindle-Land-of-Lisp: Improve readerbility of Land_of_Lisp.mobi based on Land_of_Lisp.epub

これで読むのが楽になった(気がする)。

バイスとしてのKindleは好きだが、やはりDRMフリーの電子書籍が購入できるのは嬉しい。

パーフェクトRuby 読書録

ローカル変数かメソッドか

紛らわしい例。これは以前とあるコミュティーでも質問が出た件。
アクセッサを利用しているつもりがそうならない例。
以来 @val のように明示的にインスタンス変数として参照しているが、最近呼んだ本では、あまり良くない例とされている。クラス内部のメソッドからでも隠蔽したほうが良いのか?

> irb --simple-prompt
>> class Hoge
>>   attr_accessor :val
>>   def test
>>     val
>>   end
>>   def test=(v)
>>     val = v
>>   end
>> end
=> :test=
>> h = Hoge.new
=> #<Hoge:0x3312060>
>> h.val = 10
=> 10
>> h.val
=> 10
>> h.test
=> 10
>> h.test=(20)
=> 20
>> h.test
=> 10
>> h.test = 30
=> 30
>> h.val
=> 10
>>

Fixnum の object_id は数値そのもの?

試してみる

>> '%x' % 0x1000.object_id      
=> "2001"                       
>> '%x' % 0x10000.object_id     
=> "20001"                      
>> '%x' % 0x100000.object_id    
=> "200001"                     
>> '%x' % 0x1000000.object_id   
=> "2000001"                    
>> '%x' % 0x10000000.object_id  
=> "20000001"                   
>> '%x' % 0x100000000.object_id 
=> "186e94c"

確かにそうなっている模様。0x1000000 の次がFixnumとBignumとの境目。

組み込み変数 __dir__

2.0以降で追加された __dir__ だが、便利かも?

*****@*****-PC C:\usr\sandbox
> type test.rb               
puts $0                      
puts __FILE__                
puts __dir__                 

*****@*****-PC C:\usr\sandbox
> ruby test.rb               
test.rb                      
test.rb                      
C:/usr/sandbox

制御構造

  • begin .. end while は do while の動作
  • for v in x の v は for以降でも参照可能(スコープの変化なし)
  • 大域ジャンプは catch / throw
  • begin / rescue / else / ensure ensure 以外は値を返せる



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

ruby-list メーリングリストに投稿 [ruby-list:50379] Ruby 2.3.0 Reference Manual for Kindle したが、Ruby Reference Manual を Kindle 化してみた。

以前
Amazon CAPTCHAを読んだ際、『次はリファレンスマニュアルを読むこと』といった記述があったのを記憶していてずっと気になっていた。

が、実際のプログラミングの際には、chm ファイル版か、検索で事足りるため、なかなか通読する気になれなかたので、例によって例の如く html ファイルから変換した次第。

変換では

  • spine (本文)ファイルをどうするか
  • ナビゲーションをどう構成するか
  • httpで始まるリンクをどうするか

などの問題もあり、特にナビゲーションについては、リンクの設定の仕方によって kindlegen がエラーを吐くのが原因不明で、結局問題になる下の階層の項目を削除して回避。

マニュアル自体は独特の形式(rd 形式?)で記述されていて、それをBitclust というツールで

に変換できるらしい。
ただし、html 以外はうまく行かないかもしくは期待している内容と異なるファイル群となるので、もう少し調べが必要もある。

リファレンスマニュアルのメーリングリストも活動停止状態のようで、さてどうしたものか。

公開されている C++11の文法と機能 をKindleファイルへ変換してみた

ここ何年もC++は使ったことがなかったが、偶然 本の虫: C++11参考書の公開:C++11の文法と機能 を発見。
https://github.com/EzoeRyou/cpp-bookで内容が公開されているとのことであるので、kindle.rb の使い方を思い出すのも兼ね、Kindle形式(mobiファイル)へ変換してみた。

結果はこちら https://github.com/dogatana/cpp-book/tree/kindle

今日 GFDL を確認したところ、改変した際に改変者の表記が要求されるのが分かり、表紙画像他を修正。
TODO には書いたものの Paperwhite 向け修正までは手が回らない。。

2016/8/23 追記

ライセンスに関する表記の修正と、表紙画像の高解像度化実施