2007 年 10 月 のアーカイブ

iTermでCommandキーをMetaキーの意味にするパッチ

タイトルの通りですが、MacOS用のターミナルソフトであるiTermについて、Emacs使い向けのパッチを作りました。私の手元で3週間ほど動いていますので公開します。iTerm 0.9.5に対するパッチですが、CVS上の最新版に対しても適用可能だと思います。

以前の記事「シェルの操作にAltキーを使おう」でも紹介しましたが、私はシェルの操作をするのにEmacs風にMeta(Windows環境なら通常はAlt)キーが使えた方が入力効率が良くなると考えています。特にEmacs使いならエディタでもシェルでも同じキー操作ができますから、慣れるメリットは大きいはずです。

ところで、私は最近メイン環境をMacに移行しました。Macに移行してみての最大の不満は、ターミナルソフトでCommandキーをMetaキーの意味で使えない点です。私はTerminal.AppとiTermの2つしか試していないのですが、少なくともこの2つではCommandキーをMetaキーにすることはできないようです。OptionキーをMetaキーにすることはできるのですが、Optionキーはキー配置的に押しにくく、慣れるのは無理だと感じました。

Carbon EmacsではCommandキーをMetaキーにしていることもあり、何とかターミナルソフトでもCommandキーをMetaキーにしたいと考えていたところ、ドイツのDiedrichさんが同じ意図の(本人によればquickかつdirty hackな)iTermのパッチを作っているのを見つけました。これを更に私なりに改造したパッチを公開します。
iterm-cmdkey-as-meta-patch-20071030.txt」です。機能は下記の通りです。

(続きを読む…)

TextMate で快適ひきこもり生活

こんにちは。sou_sk です。
馴染みのカレーショップに三日続けて通ったところ、「ありがとう」でも「ごひいきに」でもなく「大丈夫ですか?」と言われました。ツンデレですね。

さて、カレー探求に労力は注いでもコーディングの余計な苦労は減らしたいもの。
ここ最近、そのための強力な武器となっているのが TextMate です。

(続きを読む…)

svn diffで-wオプションを使う

こんにちは。hnwです。カレー部の部員が3日連続で同じカレー屋に行ったそうです。いくらカレーが好きでも限度があるだろう、と思いますね。私は常識人なので、せいぜい月・水・金と同じ店には1日おきにしか行きません(以上全て実話です)。

さて、今回はsvnコマンドの話題です。バージョン管理といえば昔はCVSで決まりでしたが、最近はSubversionが流行ですよね。この2、3年でCVSからSubversionに移行した方も多いのではないでしょうか。ディノでも2年ほど前に、それまでCVS管理していた全リポジトリをSubversionに移行しました。

Tracの導入やHTTPS+basic認証+クライアント証明書によるアカウント管理の導入など、移行についてはメリットの方が大きかったのですが、多少の戸惑いもありました。中でも私が一番精神的にダメージを受けたのは、私がcommitの前に必ず打つコマンド「cvs diff -w」の-wオプションがsvn diffコマンドでは利用できなかったことです。

念のため補足しておきますが、-wは空白文字列の個数の違いを無視して同一視するオプションです。複数人で開発しているとインデントがおかしい人が混ざっていてインデントを修正することがあるのですが、インデント修正にはたいした意味はありません。diffを取るときには意味のある変更箇所を確認したいので、インデント修正した場所は無視したいのです。本当ならプロジェクト内でインデントを統一すべきなのですが…

もっとも、しばらくしてsvn diffでも-wを実現する方法を知りました。そんなこと知ってるよ、という人も多いかと思いますが、移行したばかりで困っている人が私以外にいるかもしれませんので、念のため紹介します。

(続きを読む…)

Web/JavaScript 講習会 part.8 (ぐりもんでごりごり書こう)

JavaScript 社内勉強会の8回です。
今回は Greasemonkey の紹介、new 演算子を扱っています。

(続きを読む…)

PHPにおける負のunix timeの扱いとPropel

こんにちは、hnwです。さて、今回はPHPの時刻とPropelに関する話題です。

PropelはPHPで使われるO/Rマッパーとしてはメジャーなものの一つです。symfonyでは標準のO/Rマッパーとして採用されていますし、Mojaviなど他のフレームワークを利用した際もO/RマッパーとしてPropelを採用している事例があります。

ところで、PropelではRDBのtimestamp型のカラムを扱う際に内部的にunix timeに直すような実装をしています。SQL標準ではtimestamp型は西暦1年から9999年まで表せるわけですから、unix timeに直す実装というのはtimestamp型の全ての値を正しく扱えないような、いわば乱暴な実装であるといえます。

完璧ではないにせよ、実際に利用する際の適用の可否を考えてみます。unix timeは1970年1月1日からの経過秒ですから、誕生日など1970年より前の日付を扱う可能性があるカラムをtimestamp型にしてPropelで正しく扱えるのか、バグの温床にならないのか、という問題が考えられます。

(続きを読む…)

特定条件でPOSTされた値が消えてしまう問題

自己紹介が遅れました。フォトグラファーでフルート吹きでピアニストのtsukimiyaです。ディノでは(主にPHP関係で)新しいことを真っ先にためして地雷を踏みつける役目です。自分が地雷を踏みつけた経験が他の人の役にたてば幸いです。

さて、今回の話題はPHPを使っていてデータをPOSTした場合、ある一定条件下でPOSTされたデータが消えてしまう、という話です。自分の管理しているサイトで写真投稿のサイトがあるのですが、そのサイトについてこんな情報が寄せられました。
(続きを読む…)

TortoiseSVNでSSL証明書のパスフレーズが保存されない

はじめましてr_koikeです。

今日はTortoiseSVNのSubversionで悩んでいたネタです。

TortoiseSVNのsubversion設定を変えようとして、ファイル(configやservers)を編集したのに、subversionに変更内容が反映されない!

という状況に陥ったことはありませんか?

結論は、
Documents and Settingsにあるsubversion(TortoiseSVN)の設定ファイルだけでなく、レジストリも見ろ。
です。

(続きを読む…)

Web/JavaScript 講習会 part.7 (this, スコープと環境、クロージャ)

JavaScript 社内勉強会も7回を迎えました。段々と内容が深まり、今回は this、スコープと環境、クロージャを扱っています。
ムービー並びに資料をアップロードしました。興味を持たれた方はどうぞご覧ください。

(続きを読む…)

gmailをoutlookで受け取ると表示がかっこ悪くなる

はじめまして、たけこしです。ディノのエンジニアで唯一のVista使いです。みなさん思い思いの開発環境を構築しているので、なかなかVistaが普及しません。時間が味方してくれるのを期待しています。

さて、そんな環境なのでメーラーもそれぞれ便利なものを利用しています。特にgmailは弊社に限らずオープン系開発者では利用されている方が多いと思います。逆にOutlookのようなメーラーはあまり利用者がいないのではないかと思います。

ところがFrom書き換えを行ったgmailをOutlookで受け取ると、非常にかっこ悪いことになります。

(続きを読む…)

Carbon EmacsでCtrl+Spaceが使えない問題の解決

こんにちは、hnwです。会社用のノートPCとして買ってもらったMacBookが今日届きました。私はMac初心者なので、しばらくインストールに苦しむ予定です。

さて、Mac OS X上では大半のアプリケーションでCtrl+aなどのEmacsバインディングが利用できます。素晴らしいですね。その一方で、Emacsユーザーを無視しているようなデフォルト設定も複数存在します。例えば、Spotlightと「ことえり」がCtrl+Spaceを奪ってしまう問題もその一つです。Emacs使いでCtrl+Spaceが使えなかったらストレスで死にそうになると思うのですが、Spotlightと「ことえり」の開発陣にEmacs使いはいなかったのでしょうか。愚痴を言っていても始まらないので、今回はこれを解決します。

(続きを読む…)