最近変更されたファイルをtailで表示する。

ファイル名をワイルドカードで指定して、一番最近変更されたファイルをtailで表示する。 ls -t /path/to/prefix-*.log | head -1 | xargs tail -f ls -t /path/to/prefix-*.log | head -1 | xargs lessお好みで tail -f $(ls -t /path/to/prefix-*.log | hea…

2つの期間が重なり合うかどうかを判定する。

2つの期間 A〜B と X〜Y が重なっているかどうかを判定したい場合。のように4つのパターンがある。これを単純に、 A <= X && Y <= B || X <= A && Y <= B || A <= X && B <= Y || X <= A && B <= Yのように判定してはいけない。Xは青い線の上を、Yは赤い線の…

Mac の tmux でクリップボードを使う。

(2015-09-05 追記) この記事は古くなっています。他の記事を参照してください。reattach-to-user-namespace は Homebrew でインストールできます。 ChrisJohnsen/tmux-MacOSX-pasteboard · GitHub tmuxとMacのクリップボードを共有する(copy-mode, vim) - …

EBSのスナップショットを定期的に作成するスクリプト

参考にしたもの code.rock: Amazon EBSとRightAwsを使って自動バックアップ環境を構築する こちらのスクリプトに @gommmmmm さんが手を加えたのが元になっています。ありがとうございます。 失敗時にcronからメールを出すために、正常時に標準出力に何も出力…

Emacsの正規表現編集モード re-builder とややこしいバックスラッシュ問題について。

Emacsの re-builder を使うと、正規表現にマッチする部分をリアルタイムにカラー表示してくれる。 Emacs で正規表現を使うなら re-builder を使おう - Higepon’s blog - Mona OS and Mosh re-builder: the Interactive regexp builder | Mastering Emacs M-x…

Macのドックに時計を表示するDockClock3がいい感じ。

AppStoreで115円です。 http://itunes.apple.com/jp/app/dock-clock-3/id424227129 無理なくアナログ時計を表示しっぱなしにできます。 コマンド+タブにも表示される。230円でカレンダー付きのもあります。別に要らないので買ってないけど。 Dockに時計や日…

Capistrano で名前空間内に変数を設定する。

Capistrano の名前空間を使うと、同じ名前のタスクを複数定義できる。だが、setメソッドで設定する変数は、名前空間で装飾されない。setで設定された変数はCapfile内でグローバルになる。 namespace :aaa do set :path, "A" # 名前空間 aaa に入っている pat…

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

ブラウザで何も選択しない状態でコマンド+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 …

mod_rewriteのコンテキストとサブリクエストについて調べた。

発端 WordPressでパーマリンクをカスタマイズすると、下の設定を.htaccessに書くように言われる。 Using Permalinks « WordPress Codex RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRu…

RubyでハッシュをパラメータにしてHTTPリクエストを送信する。

以下の3つのことをまとめて実行するメソッドを書いた。 Hashからクエリー文字列作成。 URLのパース。 Basic認証。 response = http_request("get", "http://www.example.com/search", {:id => 123, :name => "koseki"}, "user", "pass") みたいにして使う。 …

Mac OSXでPostfixが勝手に起動する仕組み

Mac

メールを送ろうとしたら送れたので驚いた。 Macではメールサーバの設定をしなくても、外にメールが出ていく。 プロセスリストを見ても気づかない。 sendmailコマンド実行時にpostfixが勝手に起動し、静かに終了する。 sendmailを実行するアプリケーション(PH…

WordPressをアプリケーションフレームワークとして使う。

WordPressを使ってアプリケーションを開発した。これまでWordPressは使ったことがなかったが、簡単に機能を追加できた。ブログ的なアプリケーションを効率よく開発できる環境になっていると思う。 ビュー: テーマをカスタマイズする ./wp-conent/themes/defa…

はてダ記事の変更履歴を表示するGoogleガジェットを作った。

こんな感じ。github APIからコミットログをXMLで取得して表示している。 ソース http://github.com/koseki/hatenadiary-writer/commits/master/lib/google_gadget.xml TODO 自動的にガジェットの高さを変えたい。_IG_AdjustIFrameHeight()はiGoogleでしか動…