‘lang’ カテゴリーのアーカイブ
2010 年 5 月 13 日 by sou — Mac OS X, PHP, 開発環境

ruby 界隈でよく使われている自動テストツール autotest の Symfony + Lime 用スタイルを書いて公開しました。
プロジェクトのローカルルールに合わせてあるのですが、軽く手を入れれば他のプロジェクトでも、また Symfony や PHP 以外でも使えると思います。
- TDD で書いていないと不安が高じて動悸と息切れが始まる
- red-green-refactoring を唱えなさいとじっちゃに言われた
- growl の red を見ないとコードが先に進まない
よくある話だと思います。
まずテストが無いと何も始まらない!書いたテストはがんがん自動実行して使い倒したい!
となるとやはり、自動テストの出番ですね。
(続きを読む…)
2010 年 4 月 7 日 by tumf — Ruby, Subversion
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スクリプトを書きました。
(続きを読む…)
2010 年 2 月 10 日 by sou — JavaScript
ディノ日本酒調達部員の sou です。こんにちは。 今日はAjax開発に便利なjQueryプラグインを紹介します。
ディノも昨年から JavaScript 案件が増えており、本格的な JavaScript アプリケーションも実装するようになってきました。ただ、サーバサイドのみの開発に比べるとXMLHttpRequest経由でサーバサイドとのつなぎ込みが発生するので、問題の切り分けや実装スケジュール調整など難しい点もあるのではないでしょうか。
そんな時には jquery.mockAjax プラグインが便利です。
(続きを読む…)
2009 年 11 月 11 日 by tumf — C++, lang
たかはらです。
Googleが新しいプログラム言語を発表しました。早速プログラムされている方(1 2)とか尊敬します。最近はご無沙汰ですが、C++最強説を今だに唱え続ける自分としてはGo For C++ Programmersのようなドキュメントをみるとうれしくなってしまいまして、Go For C++ Programmersの最初の”Conceptual Differences”部分を勝手に和訳しました。権利的に問題があれば削除します。
適当に訳したので致命的な誤訳はありそうです。コメント欄で指摘頂けるとありがたいです。
以下、訳となります。
(続きを読む…)
2009 年 7 月 14 日 by hnw — 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)
ところで、最小の整数が必要な場合はどうすればいいのでしょうか。実は最小の整数は定数定義されていないのですが、次のようにすれば取得できます。
(続きを読む…)
2009 年 1 月 6 日 by hnw — PHP, workshop
「コンピュータと時刻・日付」というタイトルで社内勉強会を開催しました。今回は一つのテーマに関してアラカルト的に細かい話題を集めてみましたが、おおむね好評だったようです。主に初級者向けの内容でしたが、一定の経験がある人もそれなりに得るものがあったようです。
まとめ
- 日付・時刻の処理には用心しよう
- 仕様は固まっているか?
- 自前実装にバグがないか?
- サーバの時刻は合っているか?(NTP)
- unix timeで扱える範囲内か?(2038年問題)
(続きを読む…)
2008 年 12 月 2 日 by sou — JavaScript, Web/JS, workshop
Web/JS(あまくち) part.2 - 変数宣言、関数、無名関数
で関数オブジェクトの生成について触れましたが、var name = function(無名関数を変数にバインド)とする方法とリテラルとでは挙動が違うのではないかとの指摘がありました。
JavaScript の var についての考察にあるように、
function() {
var foo = 1;
};
というコードは内部解釈的に見ると(インタプリタの挙動的に解釈すると)
function() {
var foo;
foo = 1;
};
となります。
という事は関数に付いても同様で、関数リテラルの場合は名前付き関数オブジェクトが先積みされ、var name = function とした場合は変数 name だけ先積みされる(name = null の状態)と考えられます。
試してみましょう。
console.log(foo == null); // true
console.log(typeof bar == 'function'); // true
var foo = function() {
};
function bar () {
}
ばっちり予想通りとなりました。
2008 年 11 月 25 日 by hnw — Linux, Mac OS X, Perl, UNIX, shell
みなさん、もちろん端末エミュレータは大好きですよね。PuTTYとかTeraTermとか、MacならTerminal.appとかitermとか、生活の5割は端末エミュレータが相手ですよね(残りの5割はエディタが相手でしょう、きっと)。
ところで、たまに端末に変な文字をペーストしたり、何を血迷ったか「cat *」とかしてしまって、端末の画面制御が壊れてしまうことがありませんか?派手に壊れるときと、微妙に壊れるときと差はありますけど、何にせよこのまま作業し続けたらストレスがたまるぞ、という状態になってしまうことがあると思います。
中でも、X11のktermが特に壊れやすい気がします。ちょっと試してみたところ、バッチリ壊れてくれました。
(続きを読む…)
2008 年 9 月 9 日 by hnw — PHP, zsh, 文字エンコーディング
タイトルそのままなんですが、まずは私のターミナルを見てください。

ドクロマークのようなものが表示されています。日頃の行いが悪すぎてターミナルが呪われたようですね!というのは冗談で、unicodeの文字(U+2620)を1文字表示してみたところです。
私の環境はMacOSXとzshですが、zshでは”\xe2″などで任意の1バイトを表現することができます。つまり、IMEから入力できない文字でも、UTF-8表現の3バイトを指定することで任意の文字を表示できます。
unicodeには色々な文字があります。今回はunicode.orgのMiscellaneous Symbolsを見て、U+2620というのが面白い文字だな、ということで見つけてきました。
(続きを読む…)
2008 年 8 月 5 日 by hnw — Emacs, JavaScript, PHP
Emacs使いなら普通に使ってるよね、ってな素晴らしいEmacs Lispの一つにFlymakeというのがあります。これは名前の通り、Emacsでファイル編集中にon the flyにmake(設定次第で何でも)してくれるEmacs Lispです。makeしてエラーが出た場合には、エラー箇所をハイライトしてくれます。typo などがあれば瞬時に気づくことができますので、開発効率がアップします。

青くハイライトされているのがwarning、赤はエラーの意味です。
PHPもJavaScriptも他の方が設定を公開されていますけど、社内で設定を紹介したところ、「Warningに別の色が付いたりしないんですね」などと言われたので、ムキになってWarningにも色を付けてみました。そんなわけで、他の方の設定とはひと味違うと思います。実はPHPに関して言うと滅多にWarningが出ないので、便利になったかどうかは疑問ですが…。
JavaScriptについてはJavaScript Lintが素晴らしいですね。macportsならport install javascript-lintでインストールできます。「JavaScript Lint - あどけない話」に書いてある通りなのですが、これもWarningに別の色が付くように頑張ってみました。
(続きを読む…)