autotest で Symfony + Lime を自動テストする

screen-shot-2010-05-12-at-140931
ruby 界隈でよく使われている自動テストツール autotest の Symfony + Lime 用スタイルを書いて公開しました。
プロジェクトのローカルルールに合わせてあるのですが、軽く手を入れれば他のプロジェクトでも、また Symfony や PHP 以外でも使えると思います。

  • TDD で書いていないと不安が高じて動悸と息切れが始まる
  • red-green-refactoring を唱えなさいとじっちゃに言われた
  • growl の red を見ないとコードが先に進まない

よくある話だと思います。
まずテストが無いと何も始まらない!書いたテストはがんがん自動実行して使い倒したい!
となるとやはり、自動テストの出番ですね。

この投稿の続きを読む »

Subversionのブランチ操作をgit並に簡単にする

svnとgit両方使うようになりました。するとgitの便利さに感嘆する一方、svnのブランチ操作の面倒臭さが際立ってきました。特に、ブランチ操作ではgitは素晴らしく例えば以下のような例をご覧いただくとその差は一目瞭然かと思います。

ブランチ一覧を得る

git branch
svn list http://example.com/svn/branches

ブランチを作る

git branch mybranch
svn cp http://example.com/svn/trunk http://example.com/svn/branches/mybranch -m 'create mybranch from trunk'

以上のように、svnはブランチをブランチとして扱っていないためとても面倒なコマンドを打たなくてはなりません。これではとてもsvnのブランチなんて使ってられないのでとっととgitに移動したいところです。しかしながら、諸処の都合によりまだ、しばらくは両方使い続けなくてはならないため、svnのブランチ操作を簡単にする、svnbrというRubyスクリプトを書きました。

この投稿の続きを読む »

rsyncの-Cオプションの指示を上書きする

rsyncの-Cまたは--cvs-excludeオプションって便利ですよね。これは、下記のファイル・ディレクトリを転送対象から外す設定です。

RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS
.make.state .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak
*.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj *.so *.exe
*.Z *.elc *.ln core .svn/ .git/ .bzr/

転送すると問題になりがちなファイルを転送対象から外せるので、普段はとても便利です(よく見るとEmacsユーザーにしか影響の無いファイル*.elcも混ざってますね)。でも、「上記のうち*.soだけは転送したい」なんて時はどうすればいいんでしょうか。

解決方法は色々あると思いますが、私はrsyncのオプションに「--include-from=rsync_include.txt」を追加し、rsync_include.txtを下記の内容で作成しました。

*.so

これで-Cにより他のファイルを転送しないままで*.soだけ転送するようにできます。バイナリ配布されている共有ライブラリをデプロイしたい状況で上記のように対処したので、小ネタとして記録しておきます。

jquery.mockAjax でサーバ待ちしないさくさく開発を

ディノ日本酒調達部員の sou です。こんにちは。 今日はAjax開発に便利なjQueryプラグインを紹介します。

ディノも昨年から JavaScript 案件が増えており、本格的な JavaScript アプリケーションも実装するようになってきました。ただ、サーバサイドのみの開発に比べるとXMLHttpRequest経由でサーバサイドとのつなぎ込みが発生するので、問題の切り分けや実装スケジュール調整など難しい点もあるのではないでしょうか。

そんな時には jquery.mockAjax プラグインが便利です。

この投稿の続きを読む »

Go For C++ Programmers #Conceptual Differences の勝手に和訳

たかはらです。

Googleが新しいプログラム言語を発表しました。早速プログラムされている方(1 2)とか尊敬します。最近はご無沙汰ですが、C++最強説を今だに唱え続ける自分としてはGo For C++ Programmersのようなドキュメントをみるとうれしくなってしまいまして、Go For C++ Programmersの最初の”Conceptual Differences”部分を勝手に和訳しました。権利的に問題があれば削除します。

適当に訳したので致命的な誤訳はありそうです。コメント欄で指摘頂けるとありがたいです。

以下、訳となります。

この投稿の続きを読む »

株式会社ディノの中途採用について

株式会社ディノでは技術者の中途採用を随時行っています。いま現在も一緒に仕事する仲間を募集しています。本記事では、採用の方針や採用フローのご紹介をさせて頂きます。

募集するエンジニアについて

ディノではプログラミング・データベース・サーバ管理などの分野について一家言あるようなエンジニアを募集しています。ディノは社長が技術者ということもあり、技術指向の強いメンバーが集まっている会社だと思います。これは本ブログの内容からも見て取れるのではないでしょうか。

弊社ではプログラミング言語としてPHPを採用していますが、プログラミング言語の知識はそれほど重視していません。Webで複数人での開発を経験されている方なら、言語の知識は大して重要ではないと考えています。また、多少経験が足りなくても熱意のある方なら大歓迎です。入社後にはsymfonyを利用してWeb+DBシステム構築のプロジェクトに参加して頂くことになります。

サーバ・ネットワークまわりに特化したエンジニアも募集しています。サーバ周りでは仮想化技術に特に注力していますので、面白そうな会社だと思った方はぜひ一度面接にいらしてください。

この投稿の続きを読む »

PHPで最小の整数を得る方法

PHP 4.4.0以降およびPHP 5.0.5以降では、最大の整数が定数PHP_INT_MAXとして定義されています。

$ php -r 'var_dump(PHP_INT_MAX);'
int(2147483647)

64bit環境では次のような結果になります。

$ php -r 'var_dump(PHP_INT_MAX);'
int(9223372036854775807)

ところで、最小の整数が必要な場合はどうすればいいのでしょうか。実は最小の整数は定数定義されていないのですが、次のようにすれば取得できます。

この投稿の続きを読む »

Firebugの「要素を調査」ボタンを出すと便利!

Firefoxのアドオンの中でもFirebugは便利ですよね。無いと死ぬって人も多いかと思います。ところで、このFirebugの機能の中でも「要素を調査」ボタンが便利すぎるのでご紹介します。

ここで言っている「要素を調査」ボタンというのは、下記のキャプチャ画像にある、ナビゲーションツールバーの眼鏡のアイコンのことです。

「要素を調査」ボタン

この眼鏡ボタンを押すとFirebugの「要素を調査」の機能が働きます。要するに、Firebugの「調査」ボタンと同じです。Firebugをインストールしたままの状態だと、ステータスバーのFirebugのアイコンを押してから「調査」を押して、と2回クリックするところが、1回クリックするだけで実行できるというのが違いです。こうして説明すると小さな差ですけど、このおかげで私の「調査」をする頻度が格段に上がった気がします。JavaScriptやCSSを触る人は「調査」する機会が多いと思いますので、この差は大きいのではないでしょうか。

この投稿の続きを読む »

講習会「正規表現入門 (3)実習&ツール紹介」を開催しました

「正規表現入門 (3)実習&ツール紹介」というタイトルで、経験2〜3年目の人をターゲットに社内勉強会を開催しました。正規表現に対して苦手意識を持っている人は多いようなので、実習を交えた形のプレゼンを試してみました。実験的な試みでしたが、おおむね好評だったようです。

まとめ

  • 次の機能が使いこなせれば正規表現は怖くない!(たぶん)
    • グルーピング
    • 繰り返し
    • 後方参照
  • 正規表現作成のコツ
    • 構造を日本語で説明できれば、正規表現が書けたも同然
      • 例:「ドットの後に英数字2文字以上」の1回以上繰り返し
    • 「ナントカのN回繰り返し」の組み合わせを作っていく
  • Perlは便利!

この投稿の続きを読む »

続・$HOME/.ssh/configを活用していますか?

以前の記事「$HOME/.ssh/configを活用していますか?」では、設定ファイルを少し頑張って書けば普段のSSHライフが随分変わりますよ、と紹介しました。今日はその続編です。前回よりマニアックな設定を紹介します。

この投稿の続きを読む »