2011-01-01から1年間の記事一覧
HerokuでFacebookアプリを運用しており、当初はRails3.0.9ベースで作り始めたが、Railsが進化するスピードが速いので常にEdgeの状況を追いかけていたいので版をあげることにした。 基本はRailsCastsで紹介されていることをベースに修正していけばよいがいく…
Ruby Advent Calendar 2011 16日目の記事です。 Webアプリの画面テストにはやはりその利便性からSeleniumを使うことが多いだろう。 ちょっとした変更でも問題ないと高をくくっていても、リリース後にリンクやボタンをクリックした途端に500や404が発生した日…
いつの間にか(手元のMercurial1.9ではすでにそうなっていた)hg recordでコミットできるハンクが最少単位になった。 最少単位っていうのは、連続して変更された行をまとめて一つのハンクとしている。 たとえば、次のコードを、 class Hoge def initialize(a, …
水銀先輩から教えてもらった。 Altキーを押しながらだと、画面のどこを掴んでもドラッグできる便利ツール。 KDE Moving and Resising for Windows
この記事は、Clojure Advent Calendar 2011の2日目の記事です。 Clojureを導入するには Clojureをプロジェクトで使いたい、という現場の要望は結構多いかと思う。 安心してほしい。 フロントエンドにいきなりClojureを使うのはさすがに通りにくいと思うが、 …
この記事は、Mercurial Advent Calendar 2011の2日目の記事です。 revsetsとは? 築いてきた歴史から特定のチェンジセットを効率よく検索するための、Mercurialのサブセット言語だ。 Mercurialでは、 $ hg log -r 1000のlogコマンドように'-r'(--revision)オ…
Tokyo.clj#15に参加してきた。 Twitter社がtweetをリアルタイムに処理するために使ってるstormがClojureから書けると知って前から気になっていたので、ドキュメントやソースコードを読んだり、サンプルを動かしたりした。 以下はstormのTutorialをざっと要約…
Pryという新しいREPLツールがとっても便利だ。 詳しい使い方は、Wikiを読めばだいたいわかる。 Railsコンソールでもこの便利なPryを使うには、Using Pry instead of IRB for Rails' consoleで紹介されているように、config/initializers/pry.rbに次のよう に…
最近MacBookにPassengerの環境を作ろうとして、gem経由でインストールするとfastthreadというgemがインストールされたので、気になったのでなんだろうとコードを読んでみた。 どうやら標準添付ライブラリ(thread.rb)で提供されているQueueやSizedQueueをその…
DVCS(GitやMercurialなど)の利点は、コードを書き散らかしたあとにとりあえずコミットして、あとから論理的な歴史になるようにコミットを並び変えたり、コミットをまとめたりできることだ。 Mercurialでは、これらの歴史の改変はMQ拡張を使って実現できる。 …
基本的にterminal上で使うアプリケーション(エディタ、言語処理系、細かなツール等)は、ソースコードからビルドして使うようにしている。 複数の版を使えるようにしたいのもあるし、なによりビルドすることが好きだからだ。 Mercurialをビルドする前に、docu…
今のプロジェクトでは、データベースのmigrateツールを自作しており、MySQLとのインタフェースにはruby-mysqlを使用している。 しかし、最近、migrateツールを起動すると途中でprotocol errorが発生するようになった。 追いかけていくと、特定のSQL文を発行…
Perlを書いていてsyntax check(perl -c)するときにuse句も実行され、@INCや$PERL5LIBパスからそのライブラリを探そうとする。 一般的なPerlプログラムの構成だと、プロジェクトの直下にlibディレクトリがあり、lib以下に自分で作成するモジュールやら、他の…
pathogen.vimを使ってpluginを管理するときに、.vimrcの冒頭で初期化する関数をコールする。 call pathogen#runtime_append_all_bundles() call pathogen#helptags() しかし、bundle以下にftdetectプラギンが存在する場合そのプラギンがロードされない弊害が…
やんごとなき理由から、とあるスクリプトの出力結果の改行コードをCRLFにしなければならないことがある。 これは、環境変数であるPerlIOを設定することで実行時に変更できる。 次のように実行すると、改行コードがLFのものをCRLFで出力できる。 $ env PERLIO…
.hgrcのpagerでlessのオプションに'-r'を加えるだけでよい。 [pager] pager = LESS='FSRX' less -r と、最初はこれで大丈夫だと思ったのだけど、表示が乱れてしまうので、 pager = LESS=-R less こっちの設定のほうがうまくいく。
uhihisaさんの帰国に合わせてVimmer達が集うためにujihisa.vimが開催されたので参加してきました。 shadow.vim kills your troublesome things by @ujm たとえば、ujihisa.jsというモジュールをCoffeeScriptで作ろうとしているときに、普通ならujihisa.coffe…
id:hitode909さんが作った、Gitのリポジトリのトップレベルにcdするコマンドのコマンドが便利だったので、Mercurialでも同じようなzsh関数を作成してみた。 function hu() { local cdup=`hg showconfig bundle.mainreporoot` if [ $# = 1 ]; then cdup+="/$1…
VimをCUIで使うときにもcolorschemeが256色のものを使用したい。 ターミナルが256色対応しており、GUIを有効にしてビルドしたVimを用いれば、Hack #64: 256色ターミナルでVimを使用するにあるように、CSApprox.vimプラグインを使うとほぼgVimと同様な綺麗なc…
筆者がThinkPadを使う理由の95%くらいはトラックポイントのヒューマンインタフェースの完成度の高さだ。 ホームポジションから手を離すことなく、正確にあらゆる操作を実現できる。 しかし、Windowsのアプリケーションによっては、トラックポイントのデーモ…
MercurialはGitと異なり一度作成したブランチを削除できない仕様だ。そのため、ブランチ名を変更することが基本的に許されていない。 だが、MQ拡張を使うとブランチ名を変更できる。 # pushしていなくて、他のブランチからの干渉(マージ等)がない場合に限る …
Git使いであれば、diffやlogの差分はデフォルトでpagerが設定されており、コミットログを追いかけやすい設定になっていることはご存知だろう。 Mercurialでは、diffやlogの出力は、pager経由ではなくすべて出力される設定になっている。 このままだとlogを追…
Emacs使い達はflymake.elというとっても便利なものを使ってflymake(syntax check, compileを人間がせずに裏でエディタがこっそり実行する)して快適にコードを書いている。 VimにもQuickFixという機能がもともと備わっており、flymakeできる。QuickFixはコマ…
Vim7.3がメジャーリリースされて半年が経過している。だが、いまだにchangelog.vimが欠陥を抱えていることは、周知されているのだろうか。それとも誰もchangelog.vimを使わないのだろうか。 僕はVimプラグインの中でないと生きていけないくらいにchangelog.v…