2010-01-01から1年間の記事一覧

ブラウザのコピー機能を拡張する。

ブラウザで何も選択しない状態でコマンド+C押したらタイトルとURLをコピーしてほしい、、。2010-09-18 19:24:04 via HootSuite コマンド+Cなんて贅沢いわないから、キーボードでタイトルとURLコピーできるだけでいいんだけど……全然そういうアドオンがみつか…

screenを使ってファイルを転送する。

「いま、sshで見えてるこのファイルが手元にほしい」という時に、scpは手間がかかりすぎる。 接続するホスト = sshで接続しているこのホスト 欲しいファイル = いまlsで見えてるこのファイル なのに、なぜscpにコマンドラインオプションを渡さなければならな…

MySQLの4と5で、NOTの優先順位が違う。

久しぶりにMySQL4を使ってて冷や汗が出た。 MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.3.1.3 論理演算子 MySQL :: MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 7.2.1 演算子の優先順位 MySQL5 mysql> select not 1 = 2; +-----------+ |…

地獄のようによくわかるSQLテーブル結合

テーブルのJOINが苦手でしたが、この例を思いついてからは、すっきりくっきり理解できるようになりました。むしろ頭から離れません……。 ※ INNER、OUTERは飾り。省略できる。 INNER JOIN → JOIN LEFT OUTER JOIN → LEFT JOIN RIGHT OUTER JOIN → RIGHT JOIN ※…

Apacheのアクセス制御をちゃんと理解する。

Apacheの設定で Order deny,allowとか Satisfy anyとか、なんだか意味わからん人のために。僕はずっとわかってなかった。 基本 Apacheのアクセス制御には、 ホストによる制御 (Order,Allow,Deny) ユーザ認証による制御 (Auth*, Require) の2通りがある。Sati…

テキストファイルでTracのwikiを更新する。

Tracのwikiで長いドキュメントを書いていて辛くなってきたので、テキストファイルで更新するためのRakefileを書いた。wikiのソースをリポジトリにコミットできてうれしい。コミットフックでwiki更新時にチケットを更新できてうれしい。 インストール * http:…

Atom文書の拡張のしかたについて。

Atomのスキーマを見ていて、Atomの拡張方法が厳密に決まっていることを知った。別の名前空間を指定すれば自由に拡張できるのかと思っていた。 RFC 4287 - The Atom Syndication Format http://atompub.org/2005/08/17/atom.rnc スキーマ。RFC4287のAppendix …

URIのスキーム一覧

tag URIをもっとあちこちで使いたい。例えばXML名前空間名には、httpよりもtagの方が適切に思える。しかし、RFCのステータスがINFORMATIONALなのが気になった。使う上でどのくらい問題なんだろう。とりあえず全スキームのRFCステータスを調べてみた。IANAの…

Cでrandom()の状態を保存する。initstate()とsetstate()の使い方。

例えばsrandom(1)で初期化した後、random()を100万回呼んだときの状態を保存したい。pythonだと簡単にできるのだけど、Cだと難しい。マニュアルにinitstate()とsetstate()という関数が載っているが、使い方がさっぱりわからなかった。検索すると「必要な回数…

永久に使える自分だけのURIを作る。

UUIDやTag URIスキームを使うと、永久不滅の自分専用URIを作れる。 urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 tag:user@example.com,2010:foo/bar また、これらのURIをAtomで利用する方法について検討する。 <atom:link rel="tag:nobody@example.com,2010:myself" href="tag:nobody@example.com,2010:myself" /> 自己言及リンク UUID UUIDにはバリエーシ</atom:link>…

Capistrano を Rails 以外で使う設定。

Page not found · GitHub Pages Rails と関係ないプロジェクトで Capistrano を使うための設定を作成した。 最小限の設定 SSHでリモートを操作するための、単純な設定の例。ファイル名は Capfile 。 # sshユーザ名 set :user, "username" # サーバをroleでま…

Ruby で to_yaml するときは、改行コードを LF で統一する。

Ruby 付属の YAML モジュールは、下のような動作をする。文字列を直接 to_yaml した時だけでなく、配列やハッシュの値だった場合も同じ。 "\r"をto_yamlしてloadするとnilになる。 "010\r"をto_yamlしてloadすると8になる。 "010\n"をto_yamlしてloadすると"…

Twitterのエスケープ処理について。

入力 http://twitter.com/koseki/status/12141558975 <"&hearts;&&hearts;"> 表示 <"♥&♥"> HTML &lt;"&hearts;&&hearts;"&gt;&"はエスケープされない!APIが返すテキストも同様。<>だけエスケープされる。Twitterを信じて、与えられたテキストをそのままHTML…

SWFObjectを使ったFlashの貼り方。

documentation - swfobject - Embedding Adobe Flash Player content using SWFObject 2 - SWFObject is an easy-to-use and standards-friendly method to embed Flash content, which utilizes one small JavaScript file - Google Project Hosting SWFObj…

FlashでTwitter APIにアクセスする際のポイント。

アクセスできません。 http://twitter.com/crossdomain.xml http://api.twitter.com/crossdomain.xml JavaScriptでJSONを取得して、そのJSONをFlashで受け取ることならできる。 サンプルを作った感じだと別に難しいことなさそうだった。 JSがJSONPで適当な変…

GPLメモ

配布とソースコード GPLの派生物を渡した相手が希望するなら、ソースコードを渡さなければならない。 不特定多数にソースを公開する義務はない。 AさんがBさんにGPLのソースから作ったバイナリを渡すとき、Bさんに要求されたらソースも渡さなければならない…

Gemのパスを動的に変える方法。

Gem.pathにunshiftしただけではうまくいかない。ソースを見ながら試行錯誤して、以下でrequireできるのを確認した。 Gem.path.unshift("/path/to/your/local/gem") Gem.source_index.spec_dirs = Gem::SourceIndex.installed_spec_directories Gem.refresh …

YAML/JSON/XMLをpp(pretty print)するコマンドを作った。

rubyのppをコマンドにした。いろいろ読んでppで出力。 XMLやJSONに改行が入ってなくて読みにくいとき 日本語がエスケープされててよめないとき パースできるか確認したいとき などに。 インストール rubygemsが必要。 http://docs.rubygems.org/ $ sudo gem …