犬ターネット

Archive : 2012年05月

jpegのRGB値をちょっとずつずらして保存していくと

jpegのRGB値をちょっとずつずらして保存していくと、なんかいい感じでぶっこわれていく。以下はRGB値をそれぞれ15ずつずらしていった場合。


















なんかにつかえないかなあ。


デス育児

娘(3)がいろんなことを理解するようになってきたから、今日はCDやDVDを聴かせて感想をきいてみた。

  • 安藤裕子の勘違い → (ジャケをみて)かわいい
  • ディスコトーション → (しばらくきいたあと)うるさい
  • スキルキスルの1st → やだ
  • KAIKOOのパート2 → きいろい
  • キングクリムゾンのRED → くろい
  • メシュガーのライブDVD → こわい

ただ、寝る前になって「めしゅがーみる、めしゅがーみたいー」と言ってきたのでなんか引っかかるものがあったんだろう、よしよしパパはうれしいぞー、と思いながらもう一回見せたところやっぱり「こわい」とのことだった。こわいよね。ごめんね。

(メシュガーを観る娘(3))


日記

出社したら伝言メモに「メール送ったので見てください」とあったのでメール開いたら見たこともないバグが添付されててうわーこわいなーと思いつつそのまま打ち合わせのため外出し4時間も不毛な会議をおこない遅めの昼飯でまずいラーメンを食べ帰社し朝送られていた意味不明なバグを調査&片付けたら定時を超えてたので鬼ダッシュで帰ったら娘がパフュームを歌いながら踊っていたので俺も一緒におどったり風呂に入ったり娘にking crimsonのREDを聴かせたり洗濯干してたらいつものインータネットの時間です。黒霧島を買ってきました。うまいです。


cssのパラレルロードと@import

ブラウザにはパラレルロードっつう並行してコンテンツを読み込む仕組みがあるんだけど、スタイルシートの @import 使って読み込む場合、このパラレルロード使えないってことをさっき知ったのでメモっておく。

ちなみにテストで使ったcssはPHPで作って1秒waitかけてる。

パラレルロードする場合

読み込みたいcssをhtmlにlinkタグで全部書いとけばいい。

<link rel="stylesheet" href="./base.php" />
<link rel="stylesheet" href="./1.php" />
<link rel="stylesheet" href="./2.php" />

Firebug使って計測するとこんな具合。1秒で読み込み終わり。

パラレルロードしない場合

ちょっと極端な例だけど、htmlにはcssを1個だけ読み込む記述を、

<link rel="stylesheet" href="./base.php" />

各cssには@importで読み込ませる記述を記述。

base.php
@import url('./1.php');

1.php
@import url('./2.php');

2.php
.hoge{};

Firebug使って計測するとこんな具合。3秒かかってる。見事に base.php → 1.php → 2.php の順に読み込まれている。

@importってほとんど使わないけど、こういう弊害があるってことを頭の片隅にいれとこう。


永遠のファミリー

保育園の同じクラスのママさん、自分の子供に対して、

「ったく、ビービーないてんなよクソ」
「うるせぇっつってんだろ?あ?」
「とっとと靴脱げよ、脱げっつってんだろ!」

みたいに言う。おれや先生が近くにいようが構わず言う。

彼女自身も親に同じようにされたんだろうよ。

誰かが言ってたっけ、親に育てられたようにしか子を育てられないって。

負の連鎖は永遠に続く。


アーズスーンナーズ

先日 Z が解散を発表して、あーってなったんだけど、

http://zjapanz.tumblr.com/post/21898627882/a-decision-of-z-z

今度は AS MEIAS が解散を発表して、ああーーってなって、

http://asmeias.tumblr.com/post/10686469698/as-meias

なんか気持ちがずーんですよ。


Twig さわる

Pure PHP が好きなんだけど、思うところあって、Twig っつうテンプレートエンジン使って、このサイトを動かしてみることにした。

https://github.com/fabpot/Twig/tags から v1.8.0.zip をダウンロード&展開、lib/Twig/ 以下を適当な場所に配置して準備完了、以下のコードで動いた。

cache はコンパイルキャッシュを作成するディレクトリを指定。falseにするとキャッシュが作成されない。

charset はそのままの意味。ディフォルトはutf-8。

auto_reload を true にすると、テンプレート更新時にコンパイルキャッシュを再生成してくれる。ディフォルトは false。

autoescape は変数出力時に自動で htmlspecialchars かます設定。ディフォルトはtrue。自前で制御したい場合は false にする。

結構わかりやすいし導入も楽。ドキュメントも詳しい。

------

ただ、問題が一つ。

コンパイルキャッシュが /path/to/view/compilation_cache/ 配下に作られるんだけど、Smarty みたいに 1 階層にコンパイルファイルが作成されるんじゃなくて、こんな感じでサブディレクトリが作成される。

んで、このサーバの場合、apacheの権限で書き込みが行われるため、権限が異なってコンパイルキャッシュが生成できない。仕方なくコンパイルキャッシュオフにした。

ああ...全てのうまみが失われた感...


YUI Compressor 使う

js圧縮したかったから YUI Compressor 使ってみる。

http://yuilibrary.com/download/yuicompressor/ から Version 2.4.7 をダウンロードして解凍、build ディレクトリ内にある yuicompressor-2.4.7.jar を 適当な場所に配置して準備完了。

とりあえず http://code.jquery.com/jquery-1.7.2.js でも圧縮してみる。

> java -jar yuicompressor-2.4.7.jar --charset utf8 jquery-1.7.2.js > jquery-1.7.2.comp.js
> ls -l jquery-1.7.2*
-rw-r--r-- 1 mgng mgng 105844 May  8 09:55 jquery-1.7.2.comp.js
-rw-r--r-- 1 mgng mgng 252880 Apr 23 17:01 jquery-1.7.2.js

サイズが半分以下になった。使い方とオプションはこんな具合。

使い方

java -jar yuicompressor-x.y.z.jar [オプション] [入力ファイル]

オプション

  • --type js/css
    js か css を指定。未指定だと拡張子から判断。
  • --charset 文字コード
    読み込むファイルの文字コードを指定。出力もこの文字コードで出力される。utf8 とか SJIS とかを指定。
  • --line-break 数字
    設定した数字byte付近で改行いれてくれる。200って指定すると200byteらへんで構文的に問題ないところで改行入る。
  • -o 出力ファイル名
    出力ファイルを指定。複数の入力ファイルがある場合、フィルタ構文も利用可能。
  • -v
    エラーメッセージとか表示
  • --nomunge (jsだけ有効)
    改行とかコメントとか削除するだけ。変数名の圧縮はしない。
  • --preserve-semi (jsだけ有効)
    不必要なセミコロンを消さずに保持する。JSLintを経由する場合はつけとくといいかも。

詳しくは同梱されてる doc/README を参照。

ちなみに、ソースコード中の /*! .... */ のコメントは削除されずに残る。


連休

この連休は、

  • ゲボを吐いた
  • インータネット二次会に行った
  • 公園に100回くらい行った
  • 娘の匂いを嗅いでいた

といった感じで過ごした。インータネット・ピース。


0.0.0.0

レスポンスの遅い広告やサイトを遮断したいので hosts は頻繁にいじる。

hosts のいじり方は簡単で、Windowsだと、C:/Windows/System32/drivers/etc/hosts ファイルに

0.0.0.0   gero.example.com
0.0.0.0   kuso.example.com

みたいに「0.0.0.0 遮断したいホスト名」を書けばいい。


ちわー泥棒でーす

twitterとかFacebookとかmixiとかに「明日から温泉!」「GWはハワイに行くんだ―」って書いてる人いるでしょ、ソーシャルスケジューリングとでもいうのかな。しらないけど。ともかく、おれが泥棒だったらまっさきにそいつんちいくよね、だってその日留守にしてるのわかってるんだもん。こんなチャンスはない!ということでとっても住みやすい世の中ですね~


なんで /unko/index.php でも /unko/index.php/geri/123 でも動くの

さて、

/unko/index.php
/unko/index.php/geri/123

のどっちでも /unko/index.php が動くんだけど、なんでかなあと疑問に感じたまま放置してたので調査。

まず、この機能は Apache の AcceptPathInfo ディレクティブによるもの。

このディレクティブは実際のファイル名 (もしくは存在するディレクトリの 存在しないファイル) の後に続くパス名情報があるリクエストを受け付けるか拒否するかを制御します。続きのパス名情報はスクリプトには PATH_INFO 環境変数として利用可能になります。

このディレクティブは On|Off|Default のどれかを設定できて、ディフォルトだと Defalut が設定されている。Defaultっつうのは以下の意。

続きのパス名情報の扱いはリクエストの ハンドラで決まります。普通のファイルのためのコアハンドラのデフォルトは PATH_INFO を拒否します。cgi-script や isapi-handler のようにスクリプトを扱うハンドラは 一般的にデフォルトで PATH_INFO を受け付けます。

つまり、ディフォルトだと、普通のファイルの場合は無効で、.phpとか.cgiだと有効になってるっつう。

だから、httpd.conf とか .htaccess に

AcceptPathInfo On

って記述しとけば、

/unko/test.html
/unko/test.html/geri/123

のどちらでもアクセスできるし、環境変数の PATH_INFO も利用可能になる。

つうか最近、このタイプのURLみなくなったね。