昨今騒がれているmoshですが、試しに開発マシンにmosh経由でサーバにアクセスしてVimを起動して作業してると、とてもじゃないが使い物にならないくらいレンダリングが追いついていない。普通に起動してるだけなんだけどなぁ。
gemを開発しているとrubygemsに登録したりと何かと細かい作業が発生するのでjewelerに任せているのですが、最近gitflowを使って開発していることから、その作業の流れを紹介します。bugfixやfeaturesの開発はgitflowに任せて開発します。僕は基本的にgithub…
以前は頻繁に更新があったRuby Insideですが最近めっきり更新されてなくて、収束しちゃうんじゃないかと心配していました。先日久しぶりの更新があり、3月のRuby界、Rails界についてのまとめ記事があがってたので、気になった記事をメモしています。 トップ…
職場が代わり、Macが支給されてLionに初めて触れたが、しばらく触れていない間に開発環境が変わっていたりして、たとえばXcode4.3でgccやautoconf、automakeといったビルドツールがごっそりインストールされなくなったので手動でhomebrew経由でインストール…
めっきりVimへの情熱が失われつつあるのでプラギンの整理から始めることにした。 vundleの導入 楽。:BundleInstallでインストールできる様は時代を感じた。 colorschemeの変更 ずっとkoehlerだったけどmolokaiがいいみたいな話をちらほら見かけたので変えて…
バッチを管理したくて、けど、そんなに高機能なものは必要なくて、バッチ間の依存関係を定義できればいい。 最初、GearmanやRabbitMQ等のジョブキューサーバを用意してそれ経由で管理しようと思ったけど依存関係を定義して、決まった時間にキックしたのち成…
行末スペースはコードをぐんにょりさせる原因の一つなので注意を促す意味で表示させるようにしたけど、 list listchars=trail:$ コード書いてたり文章書いていても常に表示されるようになって、すごい気持ち悪くなったので、buffer保存時に行末スペースを削…
RSpecでアプリケーションの終了ステータスをテストしたい時があります。Rubyアプリケーションで、exit(Kernel::exit, Process::exit)が呼ばれるとSystemExit例外が発生します。riからexitの挙動のコードを抜粋すると、 begin exit puts "never get here" res…
漠然とですが以前から作ったものに対してユーザの反応を気にするようになってきて、そういったことを勉強できる本はないものかと思っていました。この本は、インタラクションデザインを提唱して、事例を交えつつ考察してて面白いです。一度流し読みで全体に…
MacBook(今は亡き黒ポリカーボネート)を24inchモニタにつなぐと世界が止まるので、泣く泣く自宅のマシンで最強のスペックを誇るThinkpad X201sで作業しています。 なんとかしてLinux環境を手に入れたくてVirtualBox(Ubuntu)+putty+ssh(ポートフォワード)とい…
RSpecでたとえば例外のテストコードを書くとして、 it "should raise CommandError in unknown command" do lambda { LocalPort.command.find("foo") }.should raise_error( LocalPort::CommandError, "foo" ) end このlambda {...}.shouldは読み手からした…
最近、自分が所蔵する本をすぐに読めない状況に少しフラストレーションがたまってきている。ここひと月の間では、洋書はすべて、和書も何冊か電子書籍で購入していて、電車に乗っている間はiPhoneで読んだり、コード書いてる時にはマシンでも素早く検索した…
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…