STAR DRIVER 輝きのタクト 第十二話 ガラス越しのキス
「STAR DRIVER 輝きのタクト 第十二話 ガラス越しのキス」をGyaOでみたけど、あいかわらずきもちわるいな~。
狙ってるんなら大したものだけどマジならきもいだけだな~。
sqlite3でデータをインポートとエクスポートする方法
ニコニコ・レーダーのカテゴリが動作しなくなっていた。原因はDBのATTACHができなくなっていたため。
[SQLiteメモ][perlメモ]SQLiteで一つのコネクションで複数のデータベースファイルを扱うには? – KUMA TYPE
上の記事の方法を使って二つのDBを一つのDBとして扱えるようにATTACHしていたのだがDBIかDBDのバージョンが変わったのかうまくATTACH出来なくなってしまっていた。他にATTACHする方法がわからないのでしょうがなくDBをまとめて一つにすることにした。そもそもなんでDBを分けているのかというと、SQLiteを使っているのでデータベース用のファイルがあんまり大きくなるとパフォーマンスに影響が出そうな気がするのでわざわざ分けている。本来一つにまとまっていたほうが便利なのは言うまでもない。そういうわけでやってみた。
エクスポート
F:\niconico>sqlite3 NICONICO_TAG.DB
SQLite version 3.6.20
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .schema
CREATE TABLE NICONICO_OBJ_TO_TAG(
idx INTEGER PRIMARY KEY,
vid TEXT ,
tag_id INTEGER
);
CREATE TABLE NICONICO_TAG(
tag_id INTEGER PRIMARY KEY,
tag_id2 INTEGER ,
tag_name TEXT
);
sqlite> .mode tabs NICONICO_TAG
sqlite> .output NICONICO_TAG.txt
sqlite> select * from NICONICO_TAG;
sqlite> .q
>sqlite3 NICONICO_TAG.DB
SQLite version 3.6.20
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .mode tabs NICONICO_OBJ_TO_TAG
sqlite> .output NICONICO_OBJ_TO_TAG.txt
sqlite> select * from NICONICO_OBJ_TO_TAG;
sqlite> .q
F:\niconico>dir
ドライブ F のボリューム ラベルは HOME です
ボリューム シリアル番号は B8F0-EFF0 です
F:\niconico のディレクトリ
2010/12/22 (水) 00:10 <DIR> .
2010/12/22 (水) 00:10 <DIR> ..
2010/12/21 (火) 23:41 23,550,976 NICONICO_MOVIE_INFO.DB
2010/12/22 (水) 00:10 3,284,587 NICONICO_OBJ_TO_TAG.txt
2010/12/21 (火) 23:10 8,908,800 NICONICO_TAG.DB
2010/12/22 (水) 00:06 3,345,431 NICONICO_TAG.txt
12 個のファイル 145,904,915 バイト
2 個のディレクトリ 157,417,058,304 バイトの空き領域
インポート
F:\niconico>sqlite3 NICONICO_MOVIE_INFO.DB
SQLite version 3.6.20
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .mode tabs NICONICO_OBJ_TO_TAG
sqlite> .import NICONICO_OBJ_TO_TAG.txt NICONICO_OBJ_TO_TAG
sqlite> .mode tabs NICONICO_TAG
sqlite> .import NICONICO_TAG.txt NICONICO_TAG
sqlite> .q
F:\niconico>
SQLiteSpyでちゃんとできたか確認。
うまくいきました。
ニコニコ・レーダーも直りました。
参考サイト
【Movable Type】ページのソースから不要な改行やインデントを除去してくれるMTプラグイン『RemoveBlank』
下の4枚の画像をを見てください。
「おわかりいただけただろうか・・・」
とんでもなく改行が入っているのがおわかりかと思います。。Movable Type(以降MT)が作成したページのソースはひどいものがあります。MTタグをつかって分岐やループなど色々なことをしてページを生成するととんでもない量の改行が勝手に入ってしまいます。インデントもタグを見るときには便利だけどソースになった時点では無駄なものだし出来ればなくなってほしい。その分読み込みも早くなるし転送量も少なくて地球に優しいかも知れないw。(地球に優しいという言葉はあまり好きなことばではないですがw)
それで、これを解決する便利な方法が無いだろうかと思って調べているとRemoveBlankというMTプラグインを発見しました。早速使ってみることにしました。ダイナミックパブリッシングにも対応しています。
ちなみに現時点でのこのブログのバーションはMTOS 4.35-jaです。
設置は簡単配布元の「Movable Type 備忘録」さんの下のページからダウンロードページにいってRemoveBlank-1.04.zipをダウンロードします。解凍すると
- RemoveBlankというフォルダ
- readme.txtというファイル
が出てくるのでRemoveBlankフォルダをそのままMTのプラグインフォルダ
「mt/plugins」の中にアップロードします。
Movable Type 備忘録 – MTRemoveBlank プラグイン
あとは、MTの設定画面でブログのテンプレート画面を開いて改行やインデントを除去したいテンプレートにかたっぱしから
<MTRemoveBlank>
と
</MTRemoveBlank>
をテンプレートの先頭行と最終行に挿入します。簡単です。
その結果をごらんあれ、下のようにエレガントなソースになりました。読み込みも早くなったような気がします。実際行数が1/2~1/3位に減少しています。素晴らしいです。
MTを使っている人には必須のプラグインではないでしょうか?MTを使っている人はこのブログのページのソースと自分のブログのページのソースを見比べてみるとおもしろいと思います。
Movable Type 備忘録 – MTRemoveBlank プラグイン
タグ : Movable Type, MT, プラグイン
【perlメモ】ヒアドキュメントの中に直接コードを書く方法
最近perlでプログラムを書くときにText::MicroTemplateを使っているとテンプレートの中に直接コードが書けて便利だなーと思ってたら、ヒアドキュメントの中にも直接コードを書く事ができる方法があることを先日知った。今まで出来ないと思い込んでいてずいぶん無駄な処理をしていた。
Text::MicroTemplateを使った場合だと下のように書ける。
sample02.pl
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Text::MicroTemplate qw(:all);
my $mode = 2;
my $renderer = build_mt(<<"EOF");
<html>
<head>
<title>sample</title>
</head>
<body>
<?= ‘Time = ‘.time . ‘ Localtime = ‘ . scalar localtime ?>
?= ‘Random Number 0 to 9 = ‘.int(rand(10))
<hr>
<input type="checkbox" name="option" value="1" <?= ($mode == 1) ? ‘checked’ : ” ?>>
<input type="checkbox" name="option" value="1" <?= ($mode == 2) ? ‘checked’ : ” ?>>
<input type="checkbox" name="option" value="1" <?= ($mode == 3) ? ‘checked’ : ” ?>>
</body>
</html>
EOF
my $html = $renderer->()->as_string;
print "Content-Type: text/html; charset=utf-8\n\n$html";
sample02.plの実行結果
>perl sample02.pl
Content-Type: text/html; charset=utf-8
<html>
<head>
<title>sample</title>
</head>
<body>
Time = 1292851505 Localtime = Mon Dec 20 22:25:05 2010
Random Number 0 to 9 = 6
<hr>
<input type="checkbox" name="option" value="1" >
<input type="checkbox" name="option" value="1" checked>
<input type="checkbox" name="option" value="1" >
</body>
</html>
>
perl標準の機能で同じようなことを出来ることが判明。ヒアドキュメントの中に下のようにしてコードを埋め込むことが出来る。
@{[ perlコード ]}
sample01.pl
#!/usr/bin/perl
#
#print <<"EOF";
#
# @{[ perlコード ]}
#
#EOF
#
use strict;
use warnings;
my $mode = 2;
print "Content-Type: text/html; charset=utf-8\n\n";
print <<"EOF";
<html>
<head>
<title>sample</title>
</head>
<body>
@{[ ‘Time = ‘.time . ‘ Localtime = ‘ . scalar localtime ]}
@{[ ‘Random Number 0 to 9 = ‘.int(rand(10)) ]}
<hr>
<input type="checkbox" name="option" value="1" @{[ ($mode == 1) ? ‘checked’ : ” ]}>
<input type="checkbox" name="option" value="1" @{[ ($mode == 2) ? ‘checked’ : ” ]}>
<input type="checkbox" name="option" value="1" @{[ ($mode == 3) ? ‘checked’ : ” ]}>
</body>
</html>
EOF
sample01.plの実行結果
>perl sample01.pl
Content-Type: text/html; charset=utf-8
<html>
<head>
<title>sample</title>
</head>
<body>
Time = 1292852079 Localtime = Mon Dec 20 22:34:39 2010
Random Number 0 to 9 = 7
<hr>
<input type="checkbox" name="option" value="1" >
<input type="checkbox" name="option" value="1" checked>
<input type="checkbox" name="option" value="1" >
</body>
</html>
>
これは便利。色々活用できそうです。ちょっとしたことならテンプレート使わなくてもよくなります。
しかし、Text::MicroTemplateの様にループ文などを簡単に書くことは出来ないようなので複雑なことは出来なそうです。そういう場合はやっぱりテンプレートモジュールを使ったほうが良さそうですけど、テンプレートの中にループ文などの複雑なコードを書き込まないというポリシーの人にはテンプレート使うより処理が軽くなってよさそうです。サブルーチンは普通に呼べるので複雑なことはサブルーチンでやればいいと思います。
参考サイト
【映画】『アンデッド・ハザード』の感想
GyaO!で映画『アンデッド・ハザード』を視聴した感想。ゾンビ映画。
あらすじ
人の頭に穴をあけてそこから特殊な薬を投与してバンドエイドを貼るとマインドコントロールできるゾンビの出来上がりということをやっている秘密組織に娘を殺されたパパが復讐のために立ち上がるというお話。
感想
つまらなかった。途中30分位寝てしまった。淡々としていて台詞も少なく環境ビデオを見てるような感じ、眠れない夜にはこれを見ながら寝ていれば安眠できるのではないだろうか?
眠れない貴方にオススメの映画です。不眠症の方は是非1本手に入れたいところですね!
僕は字幕版で見ましたがどうしても見るならつまらない映画なので吹替版でいいと思う。
評価:
【映画】『心霊写真奇譚』の感想
GyaO!で映画『心霊写真奇譚』を視聴した感想。2006年の日本のDVD映画。ジャンルはホラー。
概要
心霊写真を題材にした複数の短篇作品で構成されるオムニバス形式の映画。
- 『被写体のない写真』
出演:仲村瑠璃亜、小谷嘉一、次原かな - 『見ている』
出演:松山まみ、足立理 - 『思い出のポラロイド』
出演:近野成美、加藤和樹、鈴木裕樹、岡本明日香、関川太郎 - 『望遠男』
出演:三宅梢子、宇野祥平 - 『届けられたモノ』
出演:優木まおみ、木村剛
の5話で構成されている。
感想
割と面白かった。GyaO!でホラー映画を見ると大抵ハズレなのだがこれは普通に楽しめた。ホラー映画ではあるが短編で構成されている点や話の感じが『世にも奇妙な物語』に近い。そういう感じで普通に楽しめる作品になっているので暇つぶしにはもってこいだと思われる。
評価:
【映画】『ザ・ムーン』の感想
GyaO!で映画「ザ・ムーン」を視聴した感想。2007年のイギリス映画。アポロ計画のドキュメンタリー。
あらすじ
1960年代から1970年代頃まで行われたアポロ計画のドキュメンタリー映画。イギリス制作。当時宇宙飛行士だった人達の回想録と当時の映像で構成されている。
感想
正直あんまり面白くない。途中で眠くなって何度か居眠りした。普通に娯楽作品として楽しむならトム・ハンクスの『アポロ13』の方を見たほうが良いだろう。全然知らない人が見たらおもしろいのかも知れないが特に目新しい情報もなくこういう事に興味があってそれなりに知ってる人が見たら退屈だと思われる。1930代生まれの宇宙飛行士達がアポロ計画から40年後に色々語ってくれるわけであるが当時の宇宙飛行士たちも老いて80歳近くになっている。当時の宇宙飛行士たちの現在を知ることが出来るのはそれはそれで興味深いことではあるが、プロジェクトX臭がする。あれと一緒で老人の自慢話はあんまり面白くないのだ。最後のスタッフロールで当時の宇宙飛行士達がアポロ計画陰謀論を否定している。アポロ計画陰謀論というのは、アポロ計画は嘘で月にも実際には着陸してなくてみんな特撮映像だという話である。米ソの冷戦時代に宇宙開発を競っていたために威嚇的な意味でそういう事をしたのではないかとかいう話である。
本当のところはどうなのかは月に行ったことがないので判らないが、40年も昔によく月に行けたなーとは本当に思う。まだテレビが白黒の時代で今みたいな高性能なコンピュータも無い時代に行ったのだから本当に驚きである。
あれから誰も月に行っていないらしいからそろそろ中国あたりが行ってくれると面白と思う。
QRコード作成バージョンアップ【ver.0.2】
テキストもQRコード化出来るようにしました。今まではURL等のアルファベットや英数字等の文字しかQRコード化出来ませんでした。さっきちょっと試してみて日本語テキストをQRコード化して携帯から読み込めなかったのですが、日本語テキストもQRコード化出来るはずなので修正しました。どちらかというとバグ修正です。
下の画像が実際に日本語テキストをQRコード化してみたところ。携帯電話のバーコードリーダーで下の画像のQRコードを読み込んでみて「そんな装備で大丈夫か?」と読み込めれば大成功です。実機での読み取り確認はauのW43CA、docomoのSH983iTVで行いました。いろんな言葉をQRコードに変換してブログなどに貼りつけたりするとおもしろいと思います。
テキストをドメイン名でソートするツールを作ってみた。
ドメイン名を含んだテキストをドメイン名でソートするツールを作ってみました。
このツールを作成しようと思った理由
理由はこのブログのサイドバーについているアクセスランキングブログパーツです。下の画像のやつです。
アクセス元がわかる便利なブログパーツですが、長く使っていると除外リストが結構たまってくるんです。除外リストはアクセスランキングの設定画面で見ることが出来ますが、アクセスランキングに載らない様に除外するアクセス元を設定するところです。私の場合は検索サイトからのアクセスはアクセスランキングに載らない様に除外しています。
ですが、長い間に設定似たような設定が重複して存在していたりとゴミが結構あるわけです。似たような設定だとまとめてひとつに出来たりするんですが、数が多いと似たような設定の行を調べるのが大変です。テキストエディタでソートしてみたのですが、多少は調べやすくなりますが、行頭の文字は違う事が多いのであまり役に立ちません。そこで、ドメイン名でソートできたら便利なのになーと思って作ったのが「ドメインソート」です。考えてみたら置換設定の方のスリム化にも使えそうです。
使い方
下の様にドメインを含んだリストを貼り付けて[ドメインでソート]のボタンをクリックすると。
結果は以下の様にソートされます。
桁がそろっていない場合は、ソートの結果がわかりにくいのでそういう場合は[行頭に行番号とドメインを付加する]にチェックを入れて[ドメインでソート]をクリックするとドメインでソートされている事がわかりやすく表示されます。不要な部分は秀丸エディタなどのブロック削除の出来るテキストエディタなどで削除するといいでしょう。
下はスパムメールのメールアドレスリストをソートしてみたところ。
肝心の除外設定のリスト
結果的に11行リストをスリム化する事が出来ました。もうちょっと削れそうな部分もあったのですが、用心して余裕を持たせました。しかし、作業効率はとても良かったです。
[行頭に行番号とドメイン名を付加する]にチェックを入れて取得したをテキストエディタにコピーして、同じドメイン名の行を見比べてまとめたり不要な行を削除しました。最後に付加されている行番号とドメイン名の部分をブロック削除でばっさり削除してアクセスランキングの除外設定に編集後のリストを貼り付けて、[編集]ボタンをクリックして作業はおしまいです。
こんな感じで色々工夫次第で使えるかと思いますので何かのときに使ってみてください。
ブロック削除とは?
ブロック削除というのはエディタの機能でカーソルキー等で削除したい範囲を指定して範囲削除する機能です。通常テキストエディタなどで削除というと、一文字削除か複数行削除になりますが、高機能なテキストエディタにはブロック削除機能が搭載されています。
実際に範囲選択したところが上の画像で、削除した結果が下の画像です。このエディタは秀丸エディタです。
四方山話
初めてブロック削除を見たときには感動したのを覚えている。前世紀にUNIXワークステーション上のEmacsだった。こんな高機能なテキストエディタが無料で配布されていると言う事に驚いた。まだパソコン上ではテキストエディタでundoが1回くらいしか出来ない時代だった。それに比べればEmacsは無限とも思えるような回数のundoが行えた。
mbcに拡張子の付いていないasfファイルに.wmv拡張子を付ける機能を追加してみた。
GyaO!からGAS等を使ってダウンロードしたファイルの簡易ファイル破損チェックツールを作ってみた。 – KUMA TYPE
上の記事で紹介しているプログラムに、拡張子の着いてない.asfファイルに.wmv拡張子を自動で付ける機能を追加した。
なぜこの機能を追加したかというと
【ダウンロード支援ソフト】『FlashGet』を導入してみた。【フリーソフト】 – KUMA TYPE
上の記事で書いたように、GAS(GetASFStream)からFlashGetに移行したからで、GASと違ってFlashGetはファイル名を指定した場合自動で拡張子を付加してくれないので、ファイルにタイトルをつけてダウンロードすると下の様に拡張子なしのファイルが出来てしまう。
GASの場合は自動で.asfとか.wmvとか付けてくれていたのでかなり不便に感じる。そこでmbcに拡張子無しの.asfの場合.wmvと拡張子を自動で付加する機能を追加した。
>mbc.exe /wmv
という風に/wmvというオプションを指定するとASF形式のファイルで拡張子が付いていない場合に限って自動で.wmvという拡張子をつけてくれる。
下が実際に実行したところ、ファイル破損チェックのついでに.wmv拡張子をつけてくれます。FlashGetを使い始めてからはファイルの破損はもうありませんけど。
結果、下のように.wmv拡張子がつきました。
ダウンロードは下の記事からです。
GyaO!からGAS等を使ってダウンロードしたファイルの簡易ファイル破損チェックツールを作ってみた。 – KUMA TYPE
タグ : perl