Kanazawa.rb meetup #5 のご案内と参考書籍のご紹介

※ doorkeeperのコミュニティに登録してる人は先日送ったリマインダと同じ内容になっています。

一年の計は…えー…、もう元旦は過ぎましたが、kanazawa.rb meetup #5 は 1/19(土) 開催です。早いものであと2週間と迫りました。今回はいつものITプラザ武蔵で、内容は特に決まっていません。

全般的には meetup #3 みたいな感じで各自が課題を持ち寄って、合う人たちは一緒にやったり、あるいは一人で黙々やったりして、何かしらの成果を一つでも出せればと思っています。あと meetup #6 に向けてのアイディア出しなんかもできるといいですね。(毎回言ってますが、なかなかできない)

そのためのきっかけとして、今回は書籍の紹介をしたいと思います。これまでも『たのしいRuby』組が何人かいたように、共通の話題の一つとして使えればと考えています。これらは自分が実際に 2012 年に手を出した本です。(一部まだ読み終わってません)

あくまで、これが kanazawa.rb としてオススメですということではなく、自分がいま興味を持って取り組んでいるものです。これらに興味があるのであれば、一緒にきゃっきゃできるかもしれません。

たのしい開発 スタートアップRuby

また「楽しい」か!と怒られるかもしれませんが、この本は主に Ruby や Ruby プログラマの文化的な側面(コミュニティ活動など)において参考になります。あるいは現代的な Ruby プログラマが主に何を利用しているのかをざっと概観する、meetup #1 で自分が話したような内容をすごく分厚くした感じです。しばらくは「Rubyってどんな感じなん?」という人にオススメし続けようと思っています。

メタプログラミングRuby

これはRuby技術者認定試験のGold対策本が出ていなかった頃に、Gold対策として最もオススメされていた本です。メタプログラミングとは書いてありますが、実際のところはRubyのオブジェクトシステム、メソッドの探索、スコープなどがとても詳細に書かれた第1部と、メタプログラミングの例としてRailsの主にActiveRecordを解説した第2部から成ります。

The RSpec Book (Professional Ruby Series)

まえがきを読むと実はRubyプログラマ向けではなくすべてのプログラマ向けと書かれている本で、内容的には RSpec, Cucumber, Rails, BDD, アジャイルと現代的な開発の情報、知識、姿勢がてんこ盛りに入っています。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

ある程度プログラムを書いた経験のある方であれば、コードやコメントの書き方について「良い」「悪い」「美しい」「美しくない」といった評価を数多くしてきたかと思います。しかしこれはある意味とても主観的で、「いま目の前のこのコードをどうすべきか」を簡単に判断できないことがままあります。これに対しこの本では「読みやすさ」という一貫した評価を与え、それが「なぜ」なのかを明確にしていきます。それでいてコンパクトで軽く読めます。一部の会社ではコードレビューの際に参照先として挙げるようにしているそうです。

WEB+DB PRESS Vol.72

コードレビューの効用や手法、Gitなどの分散バージョン管理環境を前提にしたコードレビューのツール、事例が紹介されており、一部だけでも導入できたらいいなぁと思っている内容です。

参考までに

wtnabe は meetup #5 で RSpec, メタプログラミング、コードレビュー辺りを強化したいなと考えています。Ruby や Rails の入門書ですか? そういうの読んだことないのでどれがいいか分かんないんですよねぇ(笑

あとは思いついたことはハッシュタグ #kzrb で Twitter に垂れ流しています。早めに準備しておくと有意義な時間を過ごせると思いますので、皆さんも気軽にアイディアを出してみてください。面白そうなら企画になるかもしれませんし、ならなくても、少なくとも自分の課題を明確にすることがきっとできると思います。

では休みが終わった人もまだまだ休みの人も Enjoy Ruby !

wkhtmltopdf で Ajax コンテンツを撮影する

なにするものぞ

wkhtmltopdf - Project Hosting on Google Code

  • WebKit
  • Qt

を利用して、コマンドラインで Web ページのレンダリング結果を PDF や画像に変換できるツールです。

今回試したのは static link の OSX(386) 版 0.10.0 beta 4 です。

wkhtmltopdf と wkhtmltoimage ができてた

以前知ったときに、おぉこれはいいなと思ったのですが、うまく撮れるサイトと撮れないサイトがあってちょっと置いておくかーと思っていました。試したバージョンはよく覚えてません。

今回、この中に wkhtmltoimage という文字を見つけたのでこっちを試してみたところ、一部文字組みに凝っているところなどは wkhtmltopdf よりレイアウトの再現性がよいみたいです。1とは言え、PDF なら文書構造も文字情報も保持されるので、テキストベースの再利用性を考えれば wkhtmltopdf の方がいいわけです。

画像さえ撮れればいい場合は wkhtmltoimage で

--format png

などとした方が劣化もなくてきれいです。

ただし全体の見た目はフォントも影響するので、やはり Linux で作るより Mac で作った方がきれいです。

delay を設定すれば Ajax も ok

例えば bijin-tokei(金沢版)official website / Japanese Ver. なんかは肝心の画像の load が遅延実行されるのでそのまま実行しても悲しいことになります。

でも手元の環境では

--javascript-delay 15000

で撮ることができました。たぶんネットワーク環境にもよるので、この数値は一般化できないと思います。

エラー処理

サーバに繋がって 404 が返って来る場合は exit status は 2 になるけど動作は止まらず、スクリーンショット(?)自体も撮れますが、サーバ自体の response がない場合には abort してしまいます。

これは

--load-error-handling

で回避します。これを skip か ignore にすれば大丈夫。( default はabort. ) skip と ignore の違いはよく分かっていません。skip しても ignore しても何かが render されます。

ライセンス

wkhtmltopdf, wkhtmltoimage の実行バイナリのライセンスは GPL v3 or later になります。ただし、libwkhtmltox の部分は LGPL v3 のようです。libwkhtmltox っていうのも以前はなかったのですが、今後はこれをコアにしてアプリや操作は自分で好きなの作ってよ、みたいな展開があるのかも。そうなると面白いですね。

  1. PDF に文字情報として残したうえでレイアウトを凝ろうとすると苦労するのは通常のドキュメントでも一緒ですよね。 

netbook の運び方

U100 をちょっと泊まりで持って行こうと思ったわけだけど、ケースが邪魔だなと思う。(MSI U100 はケースが標準でついてくる。)

カバンが十分大きくて車で移動とかなら多少荷物が大きくなってもなんとも思わないけど、今回は電車移動なのでできるだけ荷物を膨らましたくない。

というわけであれこれ考えたけど今回は着替えで挟み込む形にした。靴下を底部に、裏表をワイシャツと肌着の層で挟み込む。うむ、これはイケる。

Launchy 入れてみた

Launchy: The Open Source Keystroke Launcher

普段 Windows は使ってないんだけど、MSI U100 の環境整備の一環で入れてみた。

Vista ではスタートメニューの検索窓を、Mac のときは SpotLight や shell の alias をランチャ代わりに使っているんだけど、XP にはこういう便利なものはない。昔は MoonLight や、これが AVG とバッティングして以来 bluewind を使ったりしていたんだけど、今これらを見るとどうもピンとこないということで QuickSilver 風のランチャにしてみた。

うむ。なかなか雰囲気があってよい。てことはもう選択基準が雰囲気になっているんだな。昔はちょっとでも速く動くことにこだわったもんだが、そんなことは気にならないくらいには netbook の性能が高いということか。

FDclone と Emacs の dired で cp

今日気がついた。この2つは cp の際、

FDclone
-p なし
dired
-p あり

で動作する。えーと要するに自分の目的としての違いは dired であれば timestamp が維持される。今度から dired にしよう。

※ つかまぁ、そもそも FDclone の出番がそんなに多いわけじゃないんだけど、たまに shell からじゃあ作業しにくいケースがあるのです。

第二波きたー

年末ずっと週末ごとに大雪の恐れ大雪の恐れ言われてた割に全然降らなかったんだけど、今回はきた。しかも信じられないくらいのパウダースノー。

さい先わる

使っていたマシンがモニタに信号を出さなくなりました。

まぁ予兆は年末にすでにあったんですが、そのときは何もせずに回復して気持ち悪いなぁと思っておしまい。しかしやはりダメでした。たぶん VGA の出力部分だけがおかしいんですが、そこだけ直せるのかと言われるとハードに疎い私にはなんともはや。

悠長なことも言ってられないのでとりあえず余っていた「K6-2 5001」にハードディスクを載せて、必要最小限のバックアップを取って、システムのパーティションを飛ばして再インストールとあいなりました。

面倒くせーし遅いし。なんじゃあこりゃあああ。

と言っても今までも Celeron 850 だったんだけど :-P

  1. 20世紀に取り残されてるよ、おい 

Project Dolphin に移行

http://www.project-dolphin.nl/profile.php?uid=29788

去年早々に Project Dolphin が中止になり、代わりに Project Orca が始まったというニュースを聞きつけて、ずっと Orca に参戦していたのだけれど、実は Project Dolphin はその後ほどなくして復活していたらしい。確かに Orca 参加者は5千人程度からほとんど伸びず「なんか思ったより少ないなぁ。こんなもんか?」とは思っていたんだけど。。。

以前この事実を知ってあまりに悔しかったので「もう今年はこのままいく」と決めてそのままにしていたのだけれど、年が変わったので心機一転 Dolphin 用の Pulse クライアントに入れ替えた。現在 2万ちょいという、今まで見たことない順位だけど、これから上げていきまっせー。

THE LAST ORCA

Orca 103位

これが最終成績。

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm