2010年11月16日火曜日

bit.ly に icon 画像を保存してみた。

やり方:
まず、PHP が動くサーバーに次のような PHP スクリプトを用意する。(PHP が無ければ、適宜同内容で置き換える。)


<img src="<?php echo $_GET['d']; ?>" />


この PHP を仮に、http://kt3k.org/m.php というアドレスに置いたとする。
こうすると、d に data URI scheme に変換した画像文字列 A を入れれば、A に相当する画像が表示される。
具体的には、
http://kt3k.org/m.php?d=A
にアクセスすれば、A に相当する画像が表示される。
この時、
http://kt3k.org/m.php?d=A
に相当する文字列が、2048 Byte を超えていなければ、bit.ly で短縮する事が出来る。(=bit.ly に画像データを保存している。)

data URI は
http://www.kawa.net/works/js/data-scheme/base64.html
ここなんかで作成可能。

ブラウザに貼付けるときはこのままでいけるけど、
bit.ly で短縮するためには、さらに、urlencode する必要あり。
スクリプト書くのが面倒なときは、
http://urlencode.net/
ここなんかにコピペする。

たとえば、

のような画像を上の方法で URL に変換すると、


http://kt3k.org/m.php?d=data%3Aimage%2Fgif%3Bbase64%2CR0lGODlhKgAuAIYAAAEBAoSEhERERcTDtiUlKLmWkHJdWuPj5FxbUxMTE6Cgnu%2FCukI1NLi1pFRTTHR0dfPz85OSjjMzMyMdHNivqItxbAkJClVFQ9PT1GtqZhsbG7OztNnVvsvLzDMsK6qqrLq6vPz89dvb3AkHCIyLe0xMTCsrK%2Bvr7GRkYxgTFKamqUk9O3x8fZycnZx%2FetzdvwcHCE9APsLCxMSfmFxcXBYWGKOjpDs7PL27qlVVVHh2bvf3%2BJKSlDY2OeO4sZN3cw8PEVxLSGtrbB4eIc%2FP0L6%2BwP39%2FYuLiS0tMe%2Fv8ODcw%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEsALAAAAAAqAC4AAAj%2BAJdYAECQxZKDCBMqXHiQwIQUIwAwXAJgRIoJDm9M3JjwQpALDAgAscAQCAEGHkFq5DjRQIUfFQysIJCAoYcYLmEaiCGA5UIDLgrMKODCQEiGK4AKJWoUiE%2BEFyoUoOCDQoEKQTwwjDq16tULE1ayJBDkxwwfC3zM%2BBFko1m0atkSIKjBAQkcHJQoedEggwkAE7hStYp1o9TBXyfQLXHEiGPHA3SYsJCCgdKhRS9svMyUQQoAFgjkeEw6gAQLIwjgfBkzhgmOOVsTiBh6tOMQj00nAGAS5cejHH2DFEkQgOjHuB0LmUzQIsaHI3w%2Bh1gcgIYSyB%2FTmFu9%2BlOK3en%2BCsju2IGG8AS%2Fg%2B9uQcN40o5znEevvjqC4u7hK59MI3x9gv1BQBABDuhnxBFHnCdgf6AhZAFJG6GXgAQoQHDCgw%2BecOAR4UGIIYQMFccgABIIgQEGHz7YAQY2zNefBTUJhGGExSVAwA1HdHCAEaDB8CAARpyAgQiTDQTjQR%2FSCAAMGtzAAwYQGEjaARgI8GOKD2400IARYCClfkKiQBCWIC6UgAUwJHCEhl%2FqB8EGZ56J5UQSmEBAjm1%2BeYQJp5E5EQ145inlEQ6QmeVEeEZJmggfqAACm%2FodIaehG3WgHwYfrCjDB17C10EHIxl6KEM5WioCBiuKQGUHKkD66RH%2BBIiaJEMlsNACCJ%2BeAMGuFn4qAoIICjCprBMRIMADnB6gK68QKNuBDEXwsJ2ssy40xA0PgHBAlIo6ZqGQH6AgQQ3UzsjQjQHIsKwR3HorZAslaBBquRM1GUAHbLZr4a4Y8CBsueYupAESQhShK7vsnnDCAQzLcMQNw1I7UQLu2SACtwyfKsKpIAQAMcCjCiwBCxtgsPDGCrUgxA0E1HDmSEBEHLC1ApCcqggTlSABARq4nEACQ5A050ZCZDokzhv1YGfPNWgAYoocGY0ySxIM4XINsTpoAcwcKXvC1BzdWAINOZQAogA0sBAADxwpfADYG2mAwgM8HGEQQg8c8QFMCCC0fTLSLLWQqQwbJORoB3AnpKrbiU8kgwgKAy6DDEcDrpCyFr5t%2BUYmZ47QiSdunpDXX4vOEAakm87Swl9%2FpyrDb6sn%2B%2BWwq35QQAA7

となって、
ちゃんと bit.ly に保存できる。

http://bit.ly/bnoWjm

2010年7月10日土曜日

cannot mount an NTFS-volume in Mac OS X (even using NTFS-3g)

NTFS-3g for Mac というのをインストール
すると Mac でも NTFS の外付け HDD を
読み書きできて非常に便利。
(NTFS は本来は windows 用のファイルシステム)

だけど、あるとき、何らかの事情で、
NTFS の volume を unmount せずに、
USB コネクタぶち抜きしたのを境に
どうも、書き込みが出来なくなった。

システム環境設定の中にある、
NTFS-3g の設定項目を見ていると、
どうも NTFS としてマウントできていないらしい。

検索した結果、HDD ぶち抜きで mount できなく
なるのはたまにある事らしく、
このページの指示に従って、

問題の HDD を
windows に持っていって、
[winボタン] + r
で、ファイル名を指定して実行を起動し、
cmd
と入力して、コマンドプロンプトを開いた後、
d:[Enter]
と入力して(D: ドライブとして認識された場合)、
当該 drive 上に移動した後、

chkdsk /f

コマンドを入力してみると、
いろいろな処理の後、

ファイル システムを修正しました。

というメッセージが表示され、
そのディスクを再度 Mac に移して読み込んでみたところ、
見事に NTFS-3g volume として mount され、
読み書きが可能になった。

そのディスク自体は TSUTAYA で借りた DVD が一週間で
見切れない時に、保存しておくためだけの用途の、外付け
HDD なのだけど、危うく残りの 150G が無駄になるところだった。

2010年6月29日火曜日

/etc/motd

Amazon EC2 で、RightScale 提供の CentOS イメージを
ベースにして、MoE のテスト/開発サーバーを作成中、
どうも、最初のログイン時の welcome メッセージが
しっくりこない。


___ _ __ __ ____ __
/ _ \ (_)___ _ / / / /_ / __/____ ___ _ / /___
/ , _// // _ `// _ \/ __/_\ \ / __// _ `// // -_)
/_/|_|/_/ \_, //_//_/\__//___/ \__/ \_,_//_/ \__/
/___/

Welcome to a public Amazon EC2 image brought to you by RightScale!

********************************************************************
********************************************************************
*** Your EC2 Instance is now operational. ***
*** All of the configuration has completed. ***
*** Please check /var/log/install for details. ***
********************************************************************
********************************************************************


このメッセージは一体どこから出ているのだろうと思って、

~/.bash_profile
~/.bashrc
/etc/bashrc
/etc/profile
/etc/profile.d/*

あたりのファイルを端から見ていったけど、どうも、それらしいところが
見つからない。
読んだ感じだと、/etc/profile が一番最初に呼ばれていそうな感じがしたけど、
/etc/profile の先頭に echo test と書いても、
上のバナーの下に test と表示されてしまう。
その後すこし調べたところ、/etc/motd というのを発見。

Message Of The Day

の略で、その日のお知らせをユーザーに知らせるためのファイルらしい。
分かるか。

modprobe capability

Amazon EC2 で、RightScale 提供の CentOS イメージをベースにして、
MoE 開発/テスト環境を作っていたら、イメージの保存中に、
ec2-register コマンドでこける。-n オプションがあったら駄目だといわれる。
でも、ドキュメントを読んでいたら、-n オプションは明らかに必須オプション
なので、何かがおかしい。調べていると、どうも、元にしたイメージが古すぎた
らしく、api-tools 群の更新日時が 2008 年になっていた。api-tools を
最新版に差し替えたら、うまくいった。

その後、FTP 出来た方が便利だろうということで、vsftpd をインストールしていたら、

500 OOPS: cap_set_proc

というエラーで止まる。検索すると、

shell $ modprobe capability

で解決するという情報があったので、modprobe が何かも分からないけど、
パスが通っているようだったので、そのまま打ち込んでみたら解決した。
(深く調べる時間もない。)

2010年6月14日月曜日

window xp で explorer が死んだ時

Ctrl + Alt + Del でタスクマネージャ起動後、
タスクマネージャのメニューで、
[ファイル] → [新しいタスクの実行]
で、explorer と入力。

2010年5月4日火曜日

hurl.it - Web API を叩いたり、叩いた結果を共有したりできる Web Service

hurl.it
http://hurl.it/

メソッドやパラメータ、さらには任意の HTTP header を
設定した上で、任意のサイトの Web API をチェックできるサービス。
さらにはチェックした Web API の出力を保存・共有も可能。

twurl
http://dev.twitter.com/console

twitter バージョン

2010年4月26日月曜日

無変換と変換を IME オン/オフ に設定

Mac と Windows を行ったり来たりしているとやたらと
間違って打ってしまう、無変換キーと変換キーを
それぞれ、IME-オフと IME-オンに変更してみたら、
とても快適になった。
もともと、無変換とか、変換キーって押したこと無かったし・・・

2010年4月18日日曜日

Google のページランク計算式が変わったらしい。

http://jp.techcrunch.com/archives/20100416google-speed-and-your-local-pizza-place/

Google の検索のランク付けで、ページ表示速度も
ランクに影響するようになったらしい。
これからは、ページのパフォーマンスチューニングも
SEO の一部になるという事かな。

2010年3月7日日曜日

よく使う QuickSilver コマンド

Mac の Launcher QuickSilver で、自分がよく使うコマンド、

fi --> Firefox
sk --> Skype
ch --> Chromium
go --> Google Chrome
sm --> Smultron
shut --> Shut Down
em --> Empty Trash
xco --> Xcode
vm --> VMware Fusion

Shut Down は sd で起動させた方が賢いかも・・・
以前は、ter で Terminal 起動も高頻度で使ってたけど、
Visor を導入してからは、使わなくなった。

2010年3月2日火曜日

log slow queries

酒井さんに言われて、MySQL のオプションで、log slow queries というのを on にしてみたら、面白いように、ボトルネックとなる呼び出しが分かって、非常に便利だなと思った。

やり方としては、my.cnf の中で、


log-slow-queries=[PATH]
long-query-time=2


という行を追加するか、(コメントアウトされてれば)コメントを外して、
mysqld を再起動すれば OK.

これで、この設定だと 2秒以上のクエリーが発生すると、slow query log に残るので、何が悪いのかをピンポイントで知る事ができて便利。

最初から、全部自分で設計して、どういう時にどういう呼び出しが起こるかを完璧に把握しているシステムなら、必要ないけど、例えば、人が作ったシステムを引き継いだ時に、何がどうなってるか分からない状態で、パフォーマンスを改善したいような時は、この機能があると相当助かると思う。

2010年2月17日水曜日

Firefox (3.5) で、[このサイトではパスワードを保存しない] を選んだけど、後からパスワードを保存したくなった時のやり方

[環境設定/オプション]

[セキュリティ]

[パスワード]

[例外サイト]

ダイアログが出てくるので、パスワードを記録したいサイトを選択して、[削除]

2010年2月11日木曜日

Amazon EC2 ちょっと稼働させてみた。

ami-c4f615ad というマシンイメージが割と使いやすかった印象(Ubuntu 8.04 を普通にインストールしたもの)。結構はずれイメージとかあるっぽく、例えば、QuickStart に上がってる、Fedora 8 Lamp とかいうイメージは、デフォルトで、


$ /etc/init.d/httpd restart


が fail して、再起動不可能で、サーバー設定が弄れなかったり、適当な Ubuntu イメージ選んだら ssh で入れなかったりと、いろいろ面倒くさかった。単にシンプルな環境が欲しい場合なんかは、パブリックな AMI から、使いやすい AMI を選んで使った方が、得だと思うので、どの Public AMI が良いやつなのかを知っとくのは結構大事かなと思った。

2010年2月9日火曜日

Amazon EC2 に登録してみた。

Amazon の EC2 サービスに登録してみた。登録の途中で、携帯番号を、web フォームから入力すると、携帯に電話がかかって来て、PIN ナンバーを入力すると認証されるという仕組みがあって面白かった。番号入力 → PIN ナンバー表示 → 電話かかってくる → 電話に出てPIN入力 → 認証が通過、という過程が、リアルタイムに、AJAX で、画面上に反映されていて、面白かった。

2010年2月5日金曜日

win XP + vmware player + ubuntu + perl + Image::Magick という環境を作ろうとしたら、あまりにもスムーズで驚く。

この間、xampp のサーバー上で動く perl + Image::Magick 環境を作ろうとして、アホみたいにハマった上に、出来なかったので、方向性を変えて、VMware Player (無償)上に、ubuntu サーバーを建てて、aptitude で、Image::Magick (perlmagick) を入れてみようという方針に変えてやってみたら、あまりにもスムーズに行って、びっくりした。

Image::Magick に関しては、

$ sudo aptitude install imagemagick
...
$ sudo aptitude install perlmagick

の2行で本当にちゃんと入った。

2010年2月3日水曜日

win XP + xampp + activeperl + Image::Magick という環境を構築しようとしてハマる。

ハマったし、諦めた。

今、ActiveState サイトに上がってる activeperl が 5.10.1.1007 という build なのだけど、ImageMagick のインストーラはなぜか、5.10.1.1006 のみ対応。ActiveState サイトは、最近、過去のビルドをアップしない方針に変えたらしく、5.10.1.1006 はどこを探しても見つからない。Web を見ると、version が少しでもずれてたら入らないと書いてあるので、もしかして、activeperl 5.10.1.1006 が手に入るか、もしくはImageMagick のインストーラーが 5.10.1.1007 対応版が出る、というような事があれば、うまくいくかもしれない。

ppm の Image::Magick はあるけど、入れても動かないし、何を修正して良いのかも調べても分からず。

cygwin の cpan で入れる方法なんかは論外な感じ。すぐ止まるし、まともにヒントになりそうなエラーメッセージを全然吐かないので、がんばる事自体が出来ない。

xampp に、MT とか wordpress で必要になるレベルのライブラリは全部入っていれば良いのにと思った。

2010年1月29日金曜日

Anarchy golf - repeat line

repeat line が、open。
perl で大幅に負けた。

自分の解答は

print(($_=<>)x~-length)


1位の解答は

s/./print/gefor<>


あまりにも違うので、あまり比べようがない。
以下気づいた点
・入力が一回しかないのに for 文を回している。
・s のオプションの ge と for の間にスペースがないのにちゃんと parse されている。
・$_ に変数を入れれば、print だけで、出力できる。
・s の e オプションは置換が起こった各パーツに対して、評価が起こる?

こんなんで 6人も1位が並ぶ意味が分からん。

PHP も少し負けた。

自分の解答は

<?=str_repeat($i=fgets(STDIN),strlen($i)-1);


1位の解答は

<?for($a=fgets(STDIN);$a[++$i];)echo$a;


未定義の変数がundef(==0)で初期化されるという仕様を押さえておけば
多分思いついたと思う・・・

短いながら、意外と解答が収束しない良い問題だったと思うので、本当はもう少しいろんな言語で解きたかった・・・

Worst Brainfuck dialect ever

Misa という最低な Brainfuck 方言があった。

http://homepage2.nifty.com/kujira_niku/okayu/misa.html

2010年1月28日木曜日

mac 版 firefox に入ってた3本指スクロールが便利だと思った。

mac 版の firefox で、MacBook のトラックパッドを3本指で下/上にスクロールすると画面の一番下/上(resp.)にスクロールする、という機能が入っている事に気がついて、便利だなと思った。safari とか、chrome だとこういう機能は入っていないらしい・・・。

2010年1月27日水曜日

feed まとめツールを変更。

ブログのフィードを mixi の日記にまとめて表示する為に使っていた、feed まとめツールの www.mixfeed.jp が、最近なんとなく、ちゃんとフィードの更新を反映してくれなくなった気がしてきたので、ほぼ同様のサービスの rssmix.the-search.jp に変更してみた。こちらの方が登録等なく、単純に mix されたフィードを作ってくれるので、シンプルで簡単。

2010年1月19日火曜日

Ruby FizzBuzz 55B

自分では全く解いていないけど、ランキングを見ていたら、Ruby の FizzBuzz が 2年半越しに 56B から 55B に更新されていた事を知って驚いた。こういう基礎的かつコンペティティブな問題で、こういうタイミングで更新されるのってすごいと思う。