-
SourceTree の圧倒的な素晴らしさと致命的な欠点について。 - こせき... d:id:koseki2
SourceTree の UI は最高に素晴らしく、これまで見たどんなバージョン管理アプリケーションと比べても、次元が違う洗練されたユーザエクスペリエリンスが約束されており、有料になったら絶対買うんですが、いまは無料なので本当に感動的です。Free Mac client for Git, Me... 続きを読む
-
Sinatra でアプリケーションログをファイルに書く方法。 - こせきの... d:id:koseki2
Sinatra はじめて触ったんだけど、ログをファイルに書く方法がなかなかわからなかった。ログを、ただファイルに書きたいのです。 結論独自のミドルウェアで env['app.logger'] を設定し、アプリケーションのloggerメソッドをオーバーライドする。 参考ruby - Use Ra... 続きを読む
-
PHP で h() を書くなら一緒に echo しよう。 - こせきの技術日記 d:id:koseki2
名前が長い関数 htmlspecialchars() を h() と書けるようにすると便利、という話がある。PHP: htmlspecialchars - Manualhtmlspecialchars関数を簡単に扱えるようにするCakePHPで高速Webアプリ開発:第1回 CakePHPを使い... 続きを読む
-
HTTPのクエリパラメータにコロン(:)を書くのは不正なのか。 - こせき... d:id:koseki2
PHP の $_SERVER['REQUEST_URI'] と parse_url() の予想外な動作について。 - こせきの技術日記の続き。PHPのparse_url()は、 "/abc?a=x&time=09:00&x=y" をパースするのに、 "/abc?a=x&time=09:00" ... 続きを読む
-
PHP の $_SERVER['REQUEST_URI'] と parse_url() の予想外な動作につ... d:id:koseki2
REQUEST_URI と HTTP_HOST PHPのサーバ変数 $_SERVER['REQUEST_URI'] には、ふつうパスとクエリが設定される。(例: /test.php?query=value )ただし、常にパスから始まると保証されているわけではない。以下のように、GETに続けて絶... 続きを読む
-
TAILQ のソースを読んで C のポインタをマスターする。 - こせきの技... d:id:koseki2
正月は TAILQ のソースを読んでいた。普段 C を読み書きしないので、とても勉強になった。ポインタの使い方がわかった(ような気持ちになれた)。 TAILQって?TAILQ は C のマクロで書かれた双方向リンクリストの実装。 連結リスト - WikipediaBSD、OSX や glibc... 続きを読む
-
Varnish の設定ファイルを使って Basic 認証を実装する。 - こせきの... d:id:koseki2
Varnish 本体に Basic 認証の機能はない。VCL を使って、Basic 認証を実装することならできる。 原始的な実装。Authorizationヘッダが一致しなかったら401エラーを出す。 backend apache { .host = "127.0.0.1"; .port = ... 続きを読む
-
Varnish の hit_for_pass ってなに? - こせきの技術日記 d:id:koseki2
結論「キャッシュしない」ことをキャッシュするのが hit for pass キャッシュオブジェクト。同じ URL に、同時にアクセスされたとき、キャッシュが見つからない場合 …… 先頭のリクエストだけをバックエンドに送り、残りはそのレスポンスを待つ。 hit for pass キャッシュが見つ... 続きを読む
-
右寄りのプログラマを粛正する。 - こせきの技術日記 d:id:koseki2
まずこれを10回読もう。うねりコード - 【アンチパターン】遠くから見ると、画面上でコードがうねっている。コードが2段階以上右に寄ったら、右足はウンコ踏んでると思いましょう。無闇とエディタの横幅を広げるのも良くない。広いディスプレイは甘え。つぎこれ。ガード節による入れ子条件記述の置き換え - ... 続きを読む
-
nohupコマンドの実行パターン。 - こせきの技術日記 d:id:koseki2
実行に時間がかかるコマンドはnohupで実行する。 nohup ${時間がかかるコマンド} > /tmp/nohup-$(date +"%Y%m%d%H%M%S").out 2>&1 標準出力が端末の場合は、nohup.out か $HOME/nohup.out に出力される。 SSH接続時は... 続きを読む
-
最近変更されたファイルをtailで表示する。 - こせきの技術日記 d:id:koseki2
ファイル名をワイルドカードで指定して、一番最近変更されたファイルをtailで表示する。 ls -t /path/to/prefix-*.log | head -1 | xargs tail -f ls -t /path/to/prefix-*.log | head -1 | xargs les... 続きを読む
-
2つの期間が重なり合うかどうかを判定する。 - こせきの技術日記 d:id:koseki2
2つの期間 A〜B と X〜Y が重なっているかどうかを判定したい場合。のように4つのパターンがある。これを単純に、 A のように判定してはいけない。Xは青い線の上を、Yは赤い線の上を自由に動くことができる。これで4つ全てのパターンをカバーできる。 X ORが不要になる。始点と終点をわかりやす... 続きを読む
-
Mac の tmux でクリップボードを使う。 - こせきの技術日記 d:id:koseki2
Mac OSX の tmux では、pbcopy/pbpasteコマンドが正常に動作しません。コンソールの出力をコピペしたいことは頻繁にあります。Evernoteで作業ログをとったり、メールで手順を送ったり、Tracに実行結果を貼り付けたり。クリップボードが使えないと不便です。 古い対策これま... 続きを読む
-
Emacsの正規表現編集モード re-builder とややこしいバックスラッシ... d:id:koseki2
Emacsの re-builder を使うと、正規表現にマッチする部分をリアルタイムにカラー表示してくれる。 Emacs で正規表現を使うなら re-builder を使おう - ひげぽん OSとか作っちゃうかMona- re-builder: the Interactive regexp b... 続きを読む
-
ブラウザのコピー機能を拡張する。 - こせきの技術日記 d:id:koseki2
ブラウザで何も選択しない状態でコマンド+C押したらタイトルとURLをコピーしてほしい、、。 2010-09-18 19:24:04 via HootSuite コマンド+Cなんて贅沢いわないから、キーボードでタイトルとURLコピーできるだけでいいんだけど……全然そういうアドオンがみつからない。... 続きを読む
-
screenを使ってファイルを転送する。 - こせきの技術日記 d:id:koseki2
「いま、sshで見えてるこのファイルが手元にほしい」という時に、scpは手間がかかりすぎる。 接続するホスト = sshで接続しているこのホスト 欲しいファイル = いまlsで見えてるこのファイルなのに、なぜscpにコマンドラインオプションを渡さなければならないのか。実は簡単な方法があるんだろ... 続きを読む
-
screenを使ってファイルを転送する。 - こせきの技術日記 d:id:koseki2
「いま、sshで見えてるこのファイルが手元にほしい」という時に、scpは手間がかかりすぎる。 接続するホスト = sshで接続しているこのホスト 欲しいファイル = いまlsで見えてるこのファイルなのに、なんで一から全部書き直さなければならないのか。実は簡単な方法があるんだろうか……。理想とし... 続きを読む
-
MySQLの4と5で、NOTの優先順位が違う。 - こせきの技術日記 d:id:koseki2
久しぶりにMySQL4を使ってて冷や汗が出た。 MySQL5 mysql> select not 1 = 2; +-----------+ | not 1 = 2 | +-----------+ | 1 | +-----------+ 1 row in set (0.00 sec) 1は2じゃ... 続きを読む
-
地獄のようによくわかるSQLテーブル結合 - こせきの技術日記 d:id:koseki2
- コンピュータ・IT
- read it later sql
- 22 users
- 2010/09/16
-
テーブルのJOINが苦手でしたが、この例を思いついてからは、すっきりくっきり理解できるようになりました。むしろ頭から離れません……。 ※ INNER、OUTERは飾り。省略できる。 JOIN = INNER JOIN LEFT JOIN = LEFT OUTER JOIN RIGHT JOIN... 続きを読む
-
地獄のようによくわかるSQLテーブル結合 - こせきの技術日記 d:id:koseki2
テーブルのJOINが苦手でしたが、この例を思いついてからは、すっきりくっきり理解できるようになりました。むしろ頭から離れません……。 ※ INNER、OUTERは飾り。省略できる。 JOIN = INNER JOIN LEFT JOIN = LEFT OUTER JOIN RIGHT JOIN... 続きを読む