けいおん!劇場版ただの感想 ネタバレあり

早々に観に行ったのは、Twitter でのネタバレに怯えながら暮らすのが嫌なのと、エンディング曲が The Offspring の Mota を彷彿させるというツイートを見て、それを確認したかったのがある。
メタル寄りなリアル軽音部に所属していた自分としては、とりあえずあの最初のシーン(デスデビルごっこ)にがっつり掴まれた。マキシマムザホルモンの曲をMMDけいおんのキャラに演奏させたMADがあったけど、あれへの公式によるオマージュかと思ったほどだ。個人的にあれがクライマックスだったといってもいい。あそこが音も割れんばかりの大音量で流れることは映画館にとって必須項目である。
構成としてはロンドン旅行と梓へのプレゼントのお話で、それ以上でもそれ以下でもない。どこにでもありそうな軽音部女子の日常を描いた作品ということで自分の中では完結している。ただその描き方が秀逸というか、丁寧というか、監督を始め女性スタッフが多い気がしたのでそのためかな、と劇場版に限った話ではないのだろうが、思った。
舞台も女子高だし、男子が見てはいけない世界を覗いているような感覚もあり、もし全世代に平等に観てもらえる機会を失っているとすればその辺なのかなと思ったりもした。もちろんどんな男子も、多少なりとも女性的な部分を持ち合わせているはずで、それなりに共感できるシーンは多い。自分が女だったら思わず「かわい〜」とか「あるあるw」と言ってしまいそうなシーンばかりだったが、リアル女性にとってはどう映るのかはまったくわからない。
あとは、実際にライブやってみたことがある人にとっては、ちょっとしたシーンの音響のリアルさもニヤニヤしてしまったと思う。
何でも一般化してしまう癖があり、個々のシーンに関してはその場で楽しんだだけでよく覚えてないし後から特に言いたいこともない。ただ、実況向きだと思うので、一日も早くテレビなどで放送されることを望んでいる。

Network.Shpider と Codec.Text.IConv を使って EUC-JP のサイトのソースを UTF-8 で出力

Haskell の練習。
ByteString は Haskell Platform に入ってたんだっけ…。

-- shpidertest.hs

import Network.Shpider
import Codec.Text.IConv
import Data.ByteString.Lazy.Char8 as B

main = runShpider $ do
  (_, page) <- download "http://www.sampou.org/haskell/a-a-monads/html/hardway.html"
  let u_source = convert "EUC-JP" "UTF-8" $ B.pack $ source page
  lift $ B.putStrLn u_source
$ cabal install shpider iconv
$ runhaskell shpidertest.hs

Uncheck comment status when specific category is checked

Put these codes into your theme's functions.php

<?php
function disable_comment_status_when_specific_category_checked() {
        $cat = get_category_by_slug('info'); // Change 'info' to any category you want to disable comments.
?>
        <script type="text/javascript">
        jQuery('#in-category-<?php echo $cat->term_id; ?>').click(function(){
                if (jQuery(this).is(':checked')) {
                        jQuery('#comment_status').attr('checked', false);
                }
        });
        </script>
<?php
}

add_action('admin_footer', 'disable_comment_status_when_specific_category_checked');

WordPress でアイキャッチ画像を選択したあと自動的にメディアウィンドウを閉じる

そのような要求があったので知らない jQuery を調べつつ書いたコード。
テーマの functions.php に下記のコードを書く。以下 foo はテーマ名。

<?php
function enqueue_override_script() {
        wp_enqueue_script('override', '/wp-content/themes/foo/js/override.js', array('set-post-thumbnail'), '1.0');
}

if (is_admin()) {
        add_action('admin_init', 'enqueue_override_script');
}

下記の内容で wp-content/themes/foo/js/override.js を作る

var WPSetAsThumbnail = (function() {
        var original_WPSetAsThumbnail = WPSetAsThumbnail;
        return function(id, nonce) {
                var $link = jQuery('a#wp-post-thumbnail-' + id);
                var win = window.dialogArguments || opener || parent || top;
                win.WPSetThumbnailHTML = function(html){
                        win.jQuery('.inside', '#postimagediv').html(html);
                        $link.queue(function(){
                                win.jQuery('#TB_closeWindowButton').click();
                                jQuery(this).dequeue();
                        });
                };
                original_WPSetAsThumbnail(id, nonce);
        }
})();

以上。

出力を文字列として得る関数

PHP5.3以上で使える無名関数を利用する。

<?php
function capture($f) {
        ob_start();
        $f();
        $content = ob_get_contents();
        ob_end_clean();
        return $content;
}

こういうのを作っておくと

<?php
function tag($tag, $content) {
        return "<$tag>$content</$tag>\n";
}

$tr = tag('tr', capture(function(){ ?>
        <td>foo</td>
        <td>bar</td>
<?php }));

echo tag('table', $tr . tag('tr', capture(function(){ ?>
        <td>FOO</td>
        <td>BAR</td>
<?php })) . $tr);

みたいなことができる。RailsActionView::Helpers::CaptureHelper#capture みたいなもの。
PHP は <?php 〜 ?> の文法が本質だと思っているし、HTMLエディタやシンタックスハイライトのあるエディタでも文字列で渡すよりは見栄えのよいソースが出来ると思うから、早く PHP5.3 が広まってこういうコードを気兼ねなく書けるようになればいいと思う。

lha を起動する Automator Application を作ってみた。

きっかけは lzh ファイルを解凍する手段として DropUnLha や StuffItExpander を使っていたのだが、OSの言語を英語にしているとどうにも日本語ファイル名が文字化けしてしまい、コンソールアプリの lha ならうまくいくようなので、なんとか Finder から lha を起動したい、というところでした。

lha は MacPorts から /opt/local/bin へインストールしました。

sudo port install lha


Automator を起動し、新規作成で Application を選択します。


Utilities からRun Shell Script をダブルクリックし、Pass input を "as argument" とした上で、コードを下記のように入力します。


PATH=/opt/local/bin:$PATH
for f in "$@"; do
	cd `dirname "$f"`
	lha x "$f"
done


適当なフォルダに適当な名前で保存すれば、Finder から Open With で使えるアプリケーションの出来上がりです。
ちなみにこのバージョンではアーカイブと同じ場所に展開するはずです。

まあ他にいい方法があるんだと思いますが、わりと直感的にここまでの解法を導ける Apple の UI はやっぱりすごいと思いました。

MacをWindowsからVNCで遠隔操作する際の設定メモ

※うまくいった一例です

クライアント

OS
Windows Vista
VNC Clinet
Real VNC Viewer 4.1.2
Keyboard
Happy Hacking Keyboard Lite 2

サーバ

OS
Mac OS X 10.6.8
VNC Server
Vine Server 3.0 (1016)
  • DeviceタブのKeyboardセクションで
    Keyboard Layout
    U.S.
    Keyboard Events
    User Session Events
なにせ試行錯誤の結果なので、なぜこの設定でうまくいったかは私には説明できません。 ポイントはVNCサーバにVine Serverを使うことと、そのキーボード設定なのですが、まずOS X付属のVNCサーバだとクライアントに何を選んでもOptionキーを送信できませんでした。また、Vine Serverのキーボード設定がデフォルトのままだと、一度でも十字キーなどを押したあとに、Shift-TABによるフォーカス移動ができなくなるという不具合がありました(KeyRemap4MacBookに付属のKeyDumperで確認すると、十字キーを押したタイミングでNumPadというフラグが立ちっ放しになるのが原因のようです)。クライアント・サーバ双方のキーボードの設定にも依存すると思うのですが、参考にしてみてください。