‘Tool’ カテゴリーのアーカイブ

OpenSSHのauthorized_keys2はもう古い

お久しぶりです。ずいぶん記事を書くのをサボっていてごめんなさい。ディノでもAdvent Calendarやろうよ、なんて話もあったんですが、タイミングを逸した感がありますね。毎日とは言わなくても、またボチボチ書いていきたいと思います。

さて、今日は社内での雑談の話題から、「~/.ssh/authorized_keys2」ファイルはobsolete(古い、時代遅れ)だよ、という話題です。

(続きを読む…)

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スクリプトを書きました。

(続きを読む…)

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

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

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

「要素を調査」ボタン

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

(続きを読む…)

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

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

(続きを読む…)

dsvn.el + subversion 1.6が変だったのでパッチを作りました

たかはらです、いつもながら小ネタですいません。

以前、arasho紹介してくれたdsvn.elを便利に使っていたのですが、先日Subversionを1.6.1にバージョンアップしたらステータスバッファのファイル名の認識を誤るようになり、先頭に空白が一つ入るようになりました。

dsvn.elが古いのか?と思い以下の最新版を試したのですが結果は同じでした。

wget http://svn.collab.net/repos/svn/trunk/contrib/client-side/emacs/dsvn.el

svn statusの出力の解釈に失敗しているようだったので、dsvn.elのファイルの中身を以下のように書き換えたところ動作するようになりました。

--- dsvn.el.orig        2008-12-02 23:46:43.000000000 +0900
+++ dsvn.el     2009-05-13 17:08:30.000000000 +0900
@@ -1041,7 +1041,7 @@
(insert str)
(goto-char svn-output-marker)
(while (cond ((looking-at
-                     "\\([ ACDGIMRX?!~][ CM][ L][ +][ S][ KOTB]\\) \\(.*\\)\n")
+                     "\\([ ACDGIMRX?!~][ CM][ L][ +][ S][ KOTB]\\) +\\(.*\\)\n")
(let ((status (match-string 1))
(filename (match-string 2)))

他に困っている方はどうぞ。

cronでは「毎月第1月曜日に実行」ができない

社内の技術メモに「cronでは第1月曜日に実行などはできないので、実行されるスクリプト側で条件判定しないとダメ」というような記述がありました。一体どういうことでしょうか。

crontabの書式は「分 時 日 月 曜日 コマンド」です。また、数字はハイフンで範囲指定ができます。下記のように指定すれば毎月第1月曜日の午前3時にコマンドを実行できそうな気がします。

0 3 1-7 * 1 /path/to/command/execute-only-1st-monday

しかし、これは期待通りには動きません。「1日から7日までの期間の唯一の月曜日」を指定したつもりが、実際には「1日から7日のすべて、または日付に関係なく月曜日」と解釈されます。マニュアルにも書いてあるのですが、「日」と「曜日」が両方指定された場合、OR条件になるのです。

ネット上を探すと、これでハマって試行錯誤した人が複数いるようです。testコマンドとdateコマンドを使ってcrontabのコマンド指定部分で条件判定している人を見つけましたが、それは頑張り過ぎな気がします。趣味の問題ですけど、crontabはシンプルに保って呼び出される側で条件判定した方がいいんじゃないでしょうか。

cronでエラーメールの送り先を指定する方法

cronは良く使うツールの一つだと思いますが、何故かトラブルの思い出がつきまとうのは僕だけでしょうか。今日はそんなcronの便利な機能を一つ紹介します。

(続きを読む…)

Emacsでシンボリックリンクを開いたときの質問を消す方法

今日はEmacsに関する小ネタです。英語の元ネタがusenetのcomp.emacsにありました。

Emacsを使っていると、下記のメッセージが出ることがあります。具体的には、シンボリックリンクをEmacsで開こうとして、なおかつシンボリックリンク先がSubversion管理されている場合に、以下のように質問されます。

"Symbolic link to SVN-controlled source file; follow link? (yes or no)"

これに毎回yesって答えるのがダルい、と思っていたんですが、解決方法を見つけました。.emacsに下記のように書けばOKです。

;; avoid "Symbolic link to SVN-controlled source file; follow link? (yes or no)"
(setq vc-follow-symlinks t)

もしくは、元ネタに書いてある通り、M-x customize-variable RET vc-follow-symlinks RET してもいいと思います。僕は古い人間なのでcustomizeはイマイチ慣れないんですよね…。

元ネタ:how to avoid “Symbolic link to SVN-controlled source file; follow link? (yes or no)”

余談:usenetってまだ機能してるんですね。ビックリです。Googleにリンクを貼るのが正しいのかどうかは疑問ですが、どうするのがベストなんでしょうね…?

Subversion設定の標準化

ディノ社内のバージョン管理は主にSubversionを利用しています。また、社内の開発環境はWindowsとMacとLinuxが入り乱れています。そんな環境で、一番問題が少なそうなSubversionの設定を考えてみました。現在これを社内標準として運用していますが、今のところ大きな問題は起きていません。

設定内容ですが、auto-propsとglobal-ignoresの設定です。各種ファイルについて、eol-style=nativeやkeywords=Idやsvn:mime-typeなどを設定します。

ちなみに、本設定はsymfonyの公式オススメ設定「Symfony Repository Tips」から大半を流用しています。

(続きを読む…)

Windowsユーザもrsyncでファイルをアップしよう

こんにちは、らいあです。
Dinoのプログラマーは毎日いろんなツールや関数を作って遊んでいます。

今日は、windowsマシンで開発作業をしている人のためのhowtoをしようと思います。自分のPCで書いたソースコードを開発サーバにアップロードして動作させる事はよくありますよね。そのときに、みなさんはどうやってファイルをアップしていますか。

ftp?smb?scp?rsync?
今日はそのなかから、WinSCPとrsyncによるやりかたを解説します。どちらもssh経由によるアップロードです。

(続きを読む…)