トップ画像について | 著者について | この日記のはてなブックマーク数

git: ‘/repos/myrepos.git’ is not a git command. See ‘git –help’. って言われる時の対処法 このエントリをはてなブックマークに追加

2011/07/15 金曜日 - 18:09:10 by かなだ

なぜか、新しくリポジトリを作った時に

git remote add origin username@server.example.com:/repos/myrepos.git

とやってローカルからリモートを指定して、

git push origin master

とやると、

$ git push origin master
git: '/repos/myrepos.git' is not a git command. See 'git --help'.
fatal: The remote end hung up unexpectedly

ってなってうまくいかないことがあります。原因を探ってみましょう。GIT_TRACE環境変数を1にセットしてもう一回やってみます。

$ GIT_TRACE=1 git push origin master
trace: built-in: git 'push' 'origin' 'master'
trace: run_command: 'ssh' 'username@server.example.com' 'git-receive-pack '\/repos/myrepos.git’\’
git: ‘/repos/myrepos.git’ is not a git command. See ‘git –help’.
fatal: The remote end hung up unexpectedly

どうも「git-receive-pack」の引数にgitのコマンドを期待しているようです。git-receive-packはgit receive-packと等価で、コマンドは渡された状態のはずなのですが。

git-receive-packは単なるgitへのハードリンクなのでそのあたりが原因なのかもしれませんがよくわかりません。とりあえず以下のようにしてみます。

git config --global remote.origin.receivepack "git receive-pack"

で、もっかいやってみましょう。

$ GIT_TRACE=1 git push origin master
trace: built-in: git 'push' 'origin' 'master'
***この行***trace: run_command: 'ssh' 'username@server.example.com' 'git receive-pack '\/repos/myrepos.git’\’
Counting objects: 79, done.
Compressing objects: 100% (63/63), done.
Writing objects: 100% (79/79), 46.69 KiB, done.
Total 79 (delta 13), reused 0 (delta 0)
To username@server.example.com:/repos/repos.git
 * [new branch]      master -> master

git-receive-packの代わりにgit receive-packとするとうまくいくようです。

【速報】ChromeのURLバーからサイト内検索ができるようになってる このエントリをはてなブックマークに追加

2011/07/12 火曜日 - 16:14:53 by かなだ

がいしゅつかも知れないんですが、中野さんがFacebookで見つけたGoogle Chromeの機能を紹介します

URLバーで例えばwww.amazon.co.jpと打ちます。すると「[tab]キーでamazon.co.jpを検索」と言う文字がURLバーの右側に出るのでタブキーを押すと、URLバーの左側に「amazon.co.jpを検索」という色のついたタイルが置かれるので、続けてキーワードを打つとamazon.co.jp内を検索してくれます。

これは今までのGoogleの「site:」機能と違い、amazon.co.jpそのものの検索を叩くようになっています。

他にも、補完を有効にしていれば、www.amazo くらいまで打つと候補の中に「サイト内検索」の候補が出るのでそこを選択しても同様のことができるようです。

確認しただけで以下のサイトが検索できます。

www.youtube.com
www.google.comなど
ja.wikipedia.orgなど
www.amazon.co.jpなど

turntable.fmをプロキシ経由で使う(Connecting to turntable.fm using EC2 server from outside of US) このエントリをはてなブックマークに追加

2011/06/26 日曜日 - 12:59:59 by かなだ

この記事の内容に責任は持ちませんので、もし実行する場合は各自の責任の元に行って下さい。

Please make sure that I have no warranty about this article. Be responsible for everything if you do that.

昨夜、US以外からのturntable.fmへのアクセスがbanされました。

Yesterday, turntable.fm bans every access except from US. Anyone without US cannot connect to turntable.fm so far.

そこで抜け穴を書いておきます。

So we take a loophole.

まず、Amazon EC2を契約します。そのへんはググればいくらでもドキュメントが出てくると思うので、スルーします。CentOSなりUbuntuなりをセットアップしてsshサーバーを有効にして下さい。また/etc/ssh_configはデフォルトでTCPフォワードするようになっているはずですが、明示的にするにはこのファイルの

First of all, You must make a contract with Amazon and be used to ECS system. For detail, see Official Guidelines and google it. Set up any UN*X(most of all choose Linux like CentOS or Ubuntu) system and boot it up. Now, I think you can make ssh session to server of EC2 by using PuTTY(Windows) or “ssh” command on a terminal(Mac OS X). If you can’t, see Amazon’s guidelines and google about it.

One important thing is that make sure TCP forwarding is enabled on EC2 server. Usually, it’s enabled by default. But you can comment out the line below to enable it explicitly.

/etc/ssh_config:
AllowTcpForwarding yes

のコメントを外してください。モノによってyesの前に=があったりなかったりするので注意。

次にクライアント(PC)側からトンネルを掘ります。Windowsな人はPuTTYでごにょごにょすると良いでしょう。Macの人はコンソールを立てて次のようにします。ssh入ってない人が居たらこの際入れてしまいましょう。

Then, dig a tunnel from your PC to EC2. if you use Mac OS X do as following.

ssh  -D localhost:10080 -l user ec2.example.com

PuTTYユーザーは設定の「接続」「SSH」「トンネル」で源ポートを10022, 送り先は空に設定して下さい。また「ダイナミック」をチェックして下さい。そしてEC2サーバーに接続して下さい。

For Windows users, open PuTTY application, open “preference” “Connection” “SSH” and open “Tunnel” and set “source port” to 10022, check “Dynamic” and leave “Destination” as blank. Then connect to EC2 server. That’s all.

ユーザーとホスト名はEC2のものです。EC2を設置するときは、リージョンをUS内に設置するように気をつけてください。US以外Banされるのですから東京リージョンにすると全く無意味です多分。この辺もググれば出てくると思います。

ec2.example.com is EC2 server. Make sure that set up your EC2 server on US region. Don’t forget that you’re trying to pretend as if you were in US. Keep this connection to use it as SOCKS server.


ブラウザに付属のSOCKSの設定を、localhost 10080に設定します。

Set proxy server of your PC’s browser as SOCKS=localhost:10080. It’ll work.

Enjoy!

冤罪で捕まった時知っておいた方がいいこと このエントリをはてなブックマークに追加

2011/06/05 日曜日 - 15:36:20 by かなだ

ちょっと長いですが引用します

第17回 オタクだけが残った〜竹熊健太郎氏との対話(3)

竹熊 うん。ひろゆき氏の場合はね、もともと2ちゃんねる
やる前に、交通違反のもみ消しサイトっていうのをやってた
んだよね。当時は彼、原付でそのへんを走っていたから。
―――(爆笑)そうなんですか。
竹熊 どうやってもみ消すかっていうとね。たとえ警官の
目の前でスピード違反やったとしても「私はやってません」
って言い張るんだって。すると警官が激怒して、「署に来い」
ってことになるでしょう。それで署に行って、5時間でも
6時間でも「お巡りさんの見間違いじゃないですか。私は
やってません」って言い張るんだって。するとどうなるかって
いうと、最後は警察が勘弁してくれと言い出す。つまり、
それ以上のことをやろうとすると、警察が告訴して裁判を
起こすしかないわけですよ。で、警察組織としてはたかが原付
のスピード違反で、いちいち裁判なんか起こせないんですよ。
それで困り果てた挙句「じゃあ今回は見逃してやる」ってなる。
「それで僕は七つ潰しました」と言ってた。

初めに言っておくと僕は交通違反のもみ消しは推奨しません。それについて論じると長くなるので置いておいて、僕が窃盗罪で冤罪を着せられた時の話をします。

結論から言うと、冤罪を受けた場合は「いいから早く逮捕しろ」というと有効なのではないか、という話です。証拠がない場合はより効果的だと思います。

さて、僕の自転車は近所のスーパーの特売で6,000円買ったものでした。なので僕が住んでいた街は僕が乗っているのと同じ型の自転車で溢れ、コンビニで鍵が開かないなあと思っていると他人の同型同色の自転車だってことがよくありました。

その界隈は自転車の窃盗が多く、自転車に乗っているとよく番号の照会をしに警官が寄ってくるのですが、僕はそういうのは時間の無駄なので、断っていました。きちんと断ればこれは断れます。無灯火とか、傘差しとか、法を犯していた場合は別ですが。

で、ある日警官に呼び止められたんですが、その日は機嫌が良かったのか「いつもご苦労さまです」と言って協力しました。「自転車の窃盗はほんと困りますね」なんて2人組の片方の警官と雑談してました。ところがなんだかもう片方の警官の電話の様子が変です。これは君の自転車じゃない、というのです。

そんなことはありえないのでその場で一悶着しましたが、車台番号も何もかも全部違うというので近所の交番まで連れて行かれました。

警官は僕が窃盗したと信じこんでいるようですが、僕に覚えはありません。熟慮した末、他人の自転車とたまたま鍵が合ってしまったのではないかと考えました。今まで何度も他人の自転車に鍵を突っ込んできたわけで、それは充分あり得ます。そこで持ち主に連絡を取ってもらいました。

すると、悪いことに、その自転車(本来僕の)はついこの間盗難されて届けが出されているということです。

つまり、僕ともう一人の自転車がどっかで入れ替わって、その後もう一人が乗っていた僕の自転車を盗まれたわけです。

一気に状況は不利になりました。交番にはいつのまにか4,5人の警官が集まり、僕は狭い部屋へ通され、強面の初老の警官と二人っきりにさせられました。

僕はやってないの一点張りです。そして自転車が入れ替わった説を強弁しました。向こうもそんなもの証拠がないじゃないかと言ってきます。こちらも、盗んだ証拠だってないじゃないか、と反論します。

しかし、「状況的に窃盗があったと考えるのが妥当で、入れ替わったというような偶然は起こりえない」と一蹴されます。こちらの主張は全く受け入れてくれません。相手はまるでロボットです。こちらの主張はスルーし、同じことを繰り返し言ってきます。一連の犯行の想定を言い、「そうだったんだろ?そう言えばすぐ帰れる」と繰り返します。そんなわけがないのは知っています。

僕はこういう状況には強い方だと思っています。街中で職務質問と称し警官に囲まれてもいつも追い払ってます。ただ、今回はちょっと違いました。最初に職務質問を受けたのが午前0時頃のはずが外はもう明るく、5時間も全く同じ問答のリピートでいい加減参ってきました。

交番は、管轄署の警察署長まできて、多分10人くらいいたと思います。僕一人のために。

ここで、僕はひとつの提案をしました。

「僕の主張は一切変わりません。永遠に否認します。これ以上は取り調べとは呼べないと思います。戦うところで戦いましょう。今すぐ逮捕して下さい」両腕を揃えて差し出す仕草をしました。

すると初老の警官の顔色が変わりました。警官は交番の入り口へその事を伝えると、10人ほどの警官はちょっとざわつきました。

しかし数分後、初老の警官は「逮捕はしない。帰っていい」と言ってきました。「逮捕しろ」のひとことで待遇が全く逆転しました。

僕は自転車の所有権の放棄書と、盗難届を書かされました。書き終わると「君、帰っていいよ」と言ったので、「お前ら、全く無実の善良な市民を6時間も拘束して帰っていいよとは何だ!どうもすみませんでしたくらい言えないのか!」とキレました。10人くらいの警官はそれを聞き、多分毎日練習しているのか、全く同じ角度でほぼ同時に深々とわびを入れてくれました。

ここで学んだのは、警察は「やりました」と言わせるために精神的にかなり追い込んできます。しかし当然ですが何時間拘束されようが「やりました」とは絶対に言ってはいけないということです。そして、取り調べが長期間に及んだ場合、取り調べが不当であることを主張し、早めの逮捕を要求するといいのではないかとこの経験からは推測します。少なくとも、十何時間も取り調べを受け、もうろう状態で「うん」って言ってしまってから逮捕されるよりはずっとマシなはずです。

ちなみに、窃盗罪は「不法領得の意思」というのが必要で、これはつまり「違法に物を手に入れているという意識があった」かどうかということです。僕の場合は他人の物を自分の自転車と信じきって鍵を開けたわけですから、不法領得の意思はなかったということになります。

CentOS5.6で、PHP53にmcryptが入らない問題 このエントリをはてなブックマークに追加

2011/05/13 金曜日 - 10:22:41 by かなだ

久々にPHPのセットアップやった。

基本的にCentOS上ではsudo yum installで片っ端から入れていっているんだけど、PHPはPHP5.1(php)とPHP5.3(php53)の2つを選ぶことができる。

ここで、phpmyadminの最新版はPHP5.2以上のサポートが前提になっているので、php53の方をインストールすることにする。

php53.i386                               5.3.3-1.el5_6.1               installed
php53-cli.i386                           5.3.3-1.el5_6.1               installed
php53-common.i386                        5.3.3-1.el5_6.1               installed
php53-devel.i386                          5.3.3-1.el5_6.1               installed
php53-ldap.i386                          5.3.3-1.el5_6.1               installed
php53-mbstring.i386                      5.3.3-1.el5_6.1               installed
php53-mysql.i386                         5.3.3-1.el5_6.1               installed
php53-pdo.i386                           5.3.3-1.el5_6.1               installed

ここまでは入るしphpmyadminも動くようになるのだが、mcryptがないとphpmyadminに怒られる。しかし、php-mcryptは存在するがphp53-mcryptは存在しない。無理に

sudo yum install php-mcrypt

しようしても

Error: php53-common conflicts with php-common

とコンフリクトして入ってくれない。ググったら以下のような解決方法があったので紹介しておく。

How to build missing PHP 5.3 extensions on CentOS 5.6

とりあえず必要なもの(libmcryptなど)をインストールしておく

yum install php53-devel
yum install libmcrypt-devel

PHP本体を落としてくる(適当なミラーを使おうね)。

wget http://mx2.php.net/get/php-5.3.3.tar.bz2/from/us3.php.net/mirror
tar xvjf php-5.3.3.tar.bz2

よくわかんないけど以下のようにしてやる

cd php-5.3.3/ext/mcrypt/
phpize
aclocal
./configure
make && make test

通ったらインストールしてやる

sudo make install

/etc/php.d/mcrypt.ini ファイルに次の行を加える

extension=mcrypt.so

apacheをリスタート

/etc/init.d/httpd restart

phpinfo()で確認しておしまい。

<?php phpinfo(); ?>