2013年5月22日水曜日

はてなブログを試してみる はてなブックマーク

  • Markdownで書ける
  • コードのシンタックスハイライトが簡単
ということで、しばらくはてなブログを試してみようと思います。

http://hiroki23.hateblo.jp/

1記事だけ書いてみましたが、なかなか良い感じ。


2013年4月26日金曜日

Mac版Google ChromeでもついにTabキーで候補選択が可能になった はてなブックマーク


昨日新しく買ったHHKB Pro2の記事を書いた。

そのあと会社で5年使っている方を改めて使い、そして今また新しい方を使ってるわけだけど、やっぱり全然違う。新しい方はなめらかで快適そのもの。もはや別モデルと言っていいくらい。これと比べると会社の方は硬さや跳ね返りがよくなくて、不満を感じてしまう…。

個体差だとしたら困ってしまうのだけど、改良されているのだとしたらやっぱり会社のほうもまた買い換えたいなあ。

さて、家ではMacを使っていて、会社ではWindowsを使っているのだけど、ブラウザは両方ともChromeを使っている。

そこで困るのがアドレスバー(オムニバー)に入力したときに出てくる候補の選択。
WindowsではTabキーで候補の選択ができたのだけど、MacだとTabキーはフォーカスがアドレスバーから外れてしまう。
Macで候補を選択するには、Control + Nキーを押す必要があるのだけど、このキーはWindows版Chromeでは新しいウィンドウが開くショートカットになっている。

同じソフトウェアで操作が違うというのはかなりひどいことで、結果、何度も無駄に新しいウィンドウを開いてしまったり、逆にMacでTabキーを押してフォーカスを外してしまったりということが頻発することになってしまっていた。
このストレスは多くの人が感じていたのではないだろうか。(と思って検索しても同じような不満を持っている人は全然見つからなかったのだけど…)

そんな状態が長いこと続いていて、Mac版Chromeの開発どうなってるんだとずっと思っていたのだけど、ついに、直近のChromeの更新で、MacでもTabキーで選択できるようになった。(Chromeは開発版を使っていて、現時点でのバージョンは 28.0.1485.0 dev)

タブキーで選べるように!


ただ現状だと、Tabキーでサイト内検索できるサイトまで行った時の動作が少しおかしい。
これは開発版だからということで、今後改善されるのだといいなあ。

とにかく、MacでもTabキーにで操作できるようになったことはいいことだ。


2013年4月25日木曜日

HHKB Professional2を5年ぶりに購入したらキーが軽くなってて驚いた はてなブックマーク




自宅用にHappy Hacking Keyboard Pro2の墨を購入した。

5年前に購入し、会社ではずっと愛用していたのだけど、自宅のPC環境新調の一貫で散々迷った末に購入。なにせキーボードに2万円、それも2台目なので…。

墨モデルはもともと文字が目立たないので、無刻印でもいいかなと思ったのだけど、在庫がなかったので印字つきに。

そしてキーを打ってみて驚いた。

…軽くなってる!

会社で使っているものと全く同じ機種なのに、全然違うキータッチ。
特にはっきりわかるのはEnterキー。古いほうがカチャっという感じの音なのに対し、新しいほうはコトッという感じ。全体的に静音化されているような印象だ。

会社の方が長年使って摩耗していたという可能性もなくはないけど、覚えている限りではやっぱり最初からこんなタッチじゃなかった気がする。
いつの間にかマイナーチェンジしたんだろうか。
いずれにせようれしい誤算だ。

RealforceではなくHHKBを選んだのは主にサイズやデザインが理由で、打鍵感は柔らかいRealforceのほうが上だと思っていた。
でもこの軽いタッチなら最高。打鍵感を含めて自分的最高のキーボードになった。

いい買い物をした。
今度は会社のHHKBの硬さが気になっちゃいそうだけど。


2013年1月15日火曜日

reveal.jsを使ったWebプレゼンツールはもうあった はてなブックマーク

数ヶ月前に、Markdownでプレゼンを作成できるツールを探していて見つけたreveal.js

せっかくブラウザでプレゼンを表示できるなら、Web上で作成から表示まで完結できるようにしたらいいのにと思い、Herokuに作りかけたまま放置していたRailsアプリがありました。
http://webslides.herokuapp.com/

最近reveal.jsがやや注目されているのかなと思っていたところ、なんとrvl.ioというreveal.js作者さんによるオンライン版が既に公開されていることを、こちらのブログで知りました。

さすがに、とてもよくできています。

ということで、作ろうと思っていたRailsアプリはこれ以上開発する必要がなくなりましたが、せっかくなのでソースコードを公開しておきます。
https://github.com/hiroki23/WebSlides

アプリ的には、ActiveRecordではなくMongoDBを使っていること、SlimというHamlのようなテンプレートエンジンを使っていること、decent_exposureというgemを使っていることなどが特徴です。

decent_exposureについては、このあたりがわかりやすいです。
RailsCasts#259
http://blog.remarkablelabs.com/2013/01/how-to-decrease-coupling-in-your-controllers-views-with-decent_exposure-for-better-maintainability

Twitterログインなどで利用したomniauthも、RailsCastsを参考に実装しました。
RailsCasts#241

2012年11月13日火曜日

GitLab CI はてなブックマーク

今やプライベートなGitリポジトリ管理の定番のひとつになりつつあるGitLab。
そのGitLabと連携するCIサーバーが公開された。

Continuous Integration Server From GitLab
http://blog.gitlabhq.com/continuous-integration-server-from-gitlab/
https://github.com/gitlabhq/gitlab-ci

GitLabの開発速度やクオリティには本当に驚かされるが、同じ開発者が手がけるGitLab CIもすごいソフトウェアになりそう。


Ruby 2.0では(UTF-8なら)マジックコメントが不要になるか はてなブックマーク

何気なくRailsのコミットログを見ていたら、こんなコミットが。

Ruby 2.0.0 defaults source encoding to utf-8 so we need to specifically tag this file with us-ascii
https://github.com/rails/rails/commit/8f3f50a3cca98a322083269562d446498825ad5f

ぐぐってみるとRubyのsvnログ(11/6)を発見。

set default source encoding as UTF-8 instead of US-ASCII
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=37485

Ruby2.0では # encoding: utf-8 というマジックコメントは書かなくてよくなるかもしれない。
Ruby1.9では文字コードに悩まされることが多々あって、みんなよく我慢してるものだと思っていたので、この変更はとてもうれしい。

2012年10月27日土曜日

SlimかHamlか、Rails Rumbleで使われたGem はてなブックマーク

Slim

Railsのテンプレートでは、ERBにするかHamlにするかという選択になるのが一般的ですが、比較的新しいSlimという、Hamlに似た優れたテンプレートがあります。
まだまだ十分に知られていないようなので、もっと普及させるべく、紹介したいと思います。

まずは見てみましょう。Slimはこんな感じ。
http://slim-lang.com/

Hamlはこんな感じになります。
http://haml.ursm.jp/

一見してわかるように、SlimはHamlによく似た、インデントによってHTML構造を表すテンプレート言語です。
一番の違いはタグに%(パーセント)がつかないこと。
行の先頭はタグの扱われるため、%をつける必要がありません。
その代わり、先頭にテキストを書く場合は |(パイプ)が必要です。

細かい文法の違いがあり、後発であることからSlimのほうが少し洗練されているようにも思いますが、それほどの違いではありませんので、Hamlを使っていた人はすぐに使えるでしょう。

Slimのほうが書きやすく、読みやすいのではないかと思いますが、%がついたほうがタグということが視覚的にわかりやすいという人もいますね。Slimの場合は、シンタックスハイライトが特に重要になってきそうです。

僕としてはHamlの%が、Perlの$と同じように人を寄せつけない雰囲気をもっていて、特にデザイナーに受け入れてもらいにくいのではないかと思っているので、Slim推しでいきたいなと今のところは思っています。

GitHubのリポジトリを見ると、Starが1,440(2012/10/27時点)ついていますし、開発も十分活発なようです。
https://github.com/slim-template/slim

Railsテンプレートの選択肢として、Hamlとともに検討してみてはいかがでしょうか。

Rails Rumbleで使われたGem

Ruby5を聞いていたらRails Rumbleで勝者が使っていたGemをまとめたブログが紹介されていました。とても興味深かったので紹介します。
http://www.dwellable.com/blog/Rails-Rumble-Winners-Gem-Teardown

なお、Rails Rumbleというのは4人までの少人数で、48時間以内に一気にRailsアプリを作り、その出来を競うイベントのようです。

勝者10チーム中10チームがjQueryを使い、9チームがCoffeeScriptSassを使用。
Twitter Bootstrapの使用が6チーム。

テンプレートでは、Hamlが5チーム、先ほど紹介したSlimが3チーム
Rails Rumbleに出るようなチームは先進的だと思われるので、Slimは今後もっと普及してくるのではないかと期待しています。(ただし、SidekiqでSlimが必要になるからかもとの注意書きがあります。)
HamlとSlimは兄弟のようなものなので、Haml系が8チームとも言えます。エンジニアだけで一気に作ろうというところでは、ERBのようなテンプレートよりも、よりプログラマーフレンドリーなHamlやSlimのような言語が使われるのでしょう。

DBでは、MySQLが5チームに対して、MongoDBが3チームというのも面白いです。
僕も自分のプロジェクトでMongoDBを使いはじめていますが、スキーマがないというのはとても快適です。

テストはRSpec。
DHHがRSpecを好きじゃないようなのでRailsのデフォルトにはなかなかなりませんが、そろそろ現実にほとんどの場合でRSpecが選ばれているということを受け入れてもいいのではと思いますね。

そしてバックグラウンドジョブの仕組み。
GitHubのdefunktが作ったResqueが定番かと思っていましたが、SidekiqというGemが今後の定番になるのかもしれません。

ちなみにSidekiqでもSlimを使ってるみたいです。
https://github.com/mperham/sidekiq/blob/master/web/views/layout.slim

Slimのシンタックスハイライト

SlimではVimやEmacsのシンタックスハイライトは用意されているのですが、ひとつ残念なのがGitHub上でのシンタックスハイライトが効かないこと。
上記SidekiqのGitHubリポジトリを見てもわかるとおり、Slimテンプレートはハイライトされていません。
対してHamlはシンタックスハイライトが効きます。
GitHubクローンの定番GitLabでも同様です。

GitLabではシンタックスハイライトに、PygmentsというPython製のライブラリを利用する、pygments.rbというGemを使っていますが、それがSlimに対応していないのです。

Slim向けのlexerというのを自分で書いてPygmentsに取り入れてもらえれば、GitLabでも(もしかするとGitHubでも)シンタックスハイライトされるようになるはずなので、このあたりを読んで勉強しようと思っています。