2010-05-31
■[雑談] iPhoneで撮った動画に手を加えようとしたら心が挫けた
当方、コンテナとCODECの区別が付く程度の動画初心者なのだが、うっかり動画処理に手を出したら、この世界の深淵を垣間見た気がした(^^;
先日、四季の森公園にお出かけしたとき、写真だけじゃなくてムービーも撮ってみた。が、家に帰って再生してみると、手ぶれが激し過ぎて見れたもんじゃない(-_-; まぁ、画面も見ずに胸元にささげながら歩き回っていたせいなんだけど。
しかしこの手の問題をかかえているのは私だけであるはずがない、ということで適当にぐぐってみる。ツール自体はすぐに見付かった。
早速ダウンロード、インストール、実行でファイルを開こうとしてみる。……MOVは食ってくれないらしい。
そこで、MOVをAVIに変換するツールを探してみる。……多過ぎて、どれを選んでいいかわからねぇ。とりあえず、
を入れてみたけど、2010年現在だと何を入れるのが適当なんだろーか?
で、適当に1個変換してみるかー、と思って起動してみる。……なんかCODECがいっぱいあって、またしてもどれを選んでいいかわかんねーよ!! まぁ、コンテナの載せ替えができればいいんじゃないかと思って、ビデオをx264、オーディオをaacにしてみる。
……なんか一所懸命変換してるっぽいんですけど。*1
……VirtualDubで開こうとすると、そんなCODEC知らんと言われるんですけど。
よくわからんので、デフォルトになってた xvid + mp3 で変換してみると、ようやく VirtualDub が食ってくれた。(何が最適なのか未だにわからん)
ややうんざりしつつ、Deshakerの設定画面を開いてみる。……意味がさっぱりわからねぇ。(この時点で既に挫けつつある) 全くわからんので、参考元のブログ記事そのまんまの値を突っ込んで変換してみる。……CPU(Core2Duo 3GHz)のパフォーマンスメーターが振り切れているにもかかわらず、遅々として進まない。生まれて初めてGPGPUの必要性を体感した瞬間であった。
この辺で心が挫けたので、目的は全く果たされていなかったりする。リベンジするにしても、どこから手を付けるべきかねぇ……。
*1:後から「Original」という選択肢があったことに気付く。が、どっちにしろVirtualDubは食ってくれなさそう
購入: 1人 クリック: 3回
2009-12-17
■[Java][Wicket] Session Fixation対策
Wicketで、ログイン時にJSESSIONIDの再発行を行おうとしたんだけど、ぐぐってもぐぐってもなかなか情報に行き当たらない。なんとか見付かった「2008-07-27 - okkeyの日記」を参考にキーワードを工夫することで、ようやく「[#WICKET-1767] Protection against Session Fixation - ASF JIRA 」にたどりついた。
おもいっきりはしょると、Wicket-1.4以降なら「Session#replaceSession()」を呼ぶだけでいい。中身はokkey氏の日記のコードと同じだったりするが:-)
2009-09-30
■[Java][Eclipse][WTP] WTP上のTomcat6でH2をデータソースにする
一回できたのに忘れてしまったのでメモ。なお、EclipseにはPleiadesが組み込まれてるものとする。
多分これでいいと思うんだけど、間違ってたら誰か突っ込んでくれ。
WTPで動かすTomcat6に外部のjarを登録する
「Servers」プロジェクトを選択して右クリックメニュー
⇒ 「実行」 ⇒ 「実行の構成」
⇒ 「クラスパス」タブを選択
⇒ 「ユーザー・エントリー」にH2のjarを追加
⇒ 「適用」を押す。
H2をJDBCドライバとして登録する
「Servers」プロジェクトのサーバ定義フォルダ(例えば「ローカル・ホスト の Tomcat v6.0 サーバー-config」)にある「context.xml」を編集する。
<Context>〜</Context>の内側に以下を追加。
<Resource name="TestDB" auth="Container" type="javax.sql.DataSource" maxActive ="-1" -- テスト用なので適当 -- maxIdle="-1" -- 〃 -- maxWait="-1" -- 〃 -- username="test_web" password="test_web" driverClassName="org.h2.Driver" url="jdbc:h2:~/workspace/TestDB" />
H2がサーバとして起動している場合は「jdbc:h2:tcp://localhost/~/workspace/TestDB」のように指定する。
Connectionオブジェクトを取ってくる
public class ClassOfSingleton { @Resource(name = "TestDB") private DataSource ds; ... void method() { Connection conn = null; try { conn = ds.getConnection(); ... } catch (SQLException e) { ... } finally { try { conn.close(); } catch (SQLException e) { ... } } ... } }
2009-08-31
■ 勉強会参加予定(8月分)
- 2009-08-08(土) 10:00-17:00
Java読書会BOF - 2009-08-14(金) 18:30-21:00
第1回Scala言語仕様輪読会@scala-be : ATND - 2009-08-29(土) 10:30-20:40
Lightweight Language Television (LLTV)
2009-08-24
■ 聴神経腫瘍が判明orz
- 8月某日: 突然耳の聴こえが悪くなったので耳鼻科に行ったら、突発性難聴、と診断される。原因はほとんどの場合不明らしい。症状が出て2〜3週間だったら投薬で治ることが多いそうだが、よく考えると3月頃にもおかしかった記憶が……。4月頃の健康診断でも聴力が落ちてたんだよなぁ。
- 8月某日: 1週間ほど薬を飲んでみたが、あまり効かず。低音部は多少改善。かかった町医者が夏休みに入るので、市立病院を紹介してもらう。
- 8月某日: 診断とともにMRIを予約。突発性難聴はたいてい原因不明だが、MRIにて0.5〜1%程度の確率で原因がわかることもあるそうな。
- 8月某日: 経口薬があまり効かなかったので、点滴を一週間程度実施。終了後の聴力検査では、やはり低音部が多少改善レベル。
- 8月某日: MRI実施。
- 本日: MRIにおもいっきり影が写ってますたorz 確率1%未満の外れクジを引くとは……。ぐぐってみると、思ったより怖い状況のよーな。ぅぅぅ……。
2009-07-27
■[Cygwin]「Cygwin-1.7はレジストリを使いません」
http://cygwin.com/ml/cygwin/2009-07/msg00924.html
HKLM/Software/Cywin/setup/rootdir
that rootdir is only used by setup.exe, not by Cygwin.
なん……だと……? じゃあどーやって / を検出してるんだ?
http://cygwin.com/ml/cygwin/2009-07/msg00928.html
- Check for Cygwin DLL path, for instance C:/cygwin/bin/cygwin1.dll.
- Strip DLL name and parent dir --> C:/cygwin
- Create default mount points from here:
C:/cygwin / whatever binary,auto 0 0
C:/cygwin/bin /usr/bin whatever binary,auto 0 0
C:/cygwin/lib /usr/lib whatever binary,auto 0 0
UNIXでも$0からの相対パスを拾うのはよくやる手だったのに予想できなかった(^^;;;
2009-06-17
■key value store
オレンジニュース経由、http://twitter.com/understeer/status/2178888905 より:
DB学会の発表なのにRDBの話が無く、key value storeだけだった。もうRDBは終わったのか?永続化可能なKVSでもういいってことかな?
10年くらい前から「永続化と検索ができる、連想配列の配列があればRDBいらないよ!!」と思い続けていて、OODBとXMLDBには裏切られてきたのだが、ついにそういう時代が来たってことかなぁ。
2009-06-08
■ ついったー
アカウントだけ取って放置してたら、一度もメッセージを投げてないのにフォローが付いた。何故に(゚◇゚;
2009-05-26
■[Unicode] 続々・wcwidth と East Asian Ambiguous Character Width 問題
[NetBSD][Cygwin] wcwidth(3)その2くらいより:
しかし世の中には -c- で -ISO10646-1なフォント、ちゅう頭の痛いモノも存在しますが。常にwcwidth=1って…
そんな邪悪なシロモノに付き合う必要性は認めません(^^;
# 何考えてンなフォント作ったんだ……何も考えてなかったんだろうなぁ。
NetBSDでは近い将来(※ただしNetBSD時間)対応しようと思ってます。
了解です。何か突っ込まれたときのネタにさせていただきます。
# ≒光画部時間?:-)
あと2なのはCJKだけで、V(=vietnam)の場合は1の方がよさげ。
参考になります。Vについてはあとで修正依頼を出しておこう。
以下余談。
規格原理主義からすると、JISやGB、KSそしてUnicodeでは文字幅は規定してないちゅう建前
アプリケーションと表示機能が切り離されている、固定ピッチフォントベースの環境(要はCUI)に特化した標準規格*1が必要なんだと思います。
……どーすればそんなの確立できるのだろう。
*1:アプリと端末がお話する仕組みとか、アプリが端末とは無関係に動く(テキストフォーマッタとか)ときの振舞いとか。
2009-05-24
■[Unicode] 続・wcwidth と East Asian Ambiguous Character Width 問題
[NetBSD][Cygwin] wcwidth(3)より:
そもそもL prefixはC localeつまりPortable Character Set以外ダメで、multibyteは扱えないでっせ
動けばいいやーレベルのテストコードなんで大目に見てつかーさい(^^;
# 文字コードも表示してるのは、期待通りにコンパイルされなかったときに検出するためだったり。
対応するのは定義ファイル書けばすぐなんですが、/usr/share/localeの
容量問題というのがあるので、誰か文句言ってくるまでは放置しようかと思ってたとこ。
なるほど。単に容量の問題であって、積極的に「1でなければならない」と判断してそうなってるわけでないんですね。
ちなみに、直すとしたら「LC_CTYPE=ja, ko, vi, zhなら2を返す」になると思っていいですか?
I'm not happy with the idea of a cygwin-specific solution (or workaround).
なんて言われて、このやろー、と思ったりしてたので、ある程度反論できるネタが欲しいな、と。
そもそもUnicodeとwcwidth(3)って結合文字とかとも食い合わせ悪いですしねぇ、困ったもんだ。
まったくで。┐('〜`;)┌ その割には意外といろんなとこで使われてるんだよな……。
もうwcwidth(3)はobsoleteにすべきですが、替わりになるlayout engineの標準が無いという。
どこに向かって叫べば改善されるんでしょーねぇ……。
個別パッチに付き合うのはもう嫌だポ……。
2009-05-23
■[Unicode] wcwidth と East Asian Ambiguous Character Width 問題
ことの発端@Cygwin-ML
こりーな「CJK Ambiguous Width は無視するぜ!!」
おれ「冗談ぢゃねぇ、LC_CTYPE=ja, ko, vi, zhなら2を返せ*1」
こりーな「おk」
とます「かくかくしかじかという問題があるし、そもそもそんなworkaroundは許せん」
おれ「そういう実装もあるらしい(*1のこと)ぞ。それに、おまいの言ってることは実用上問題にはならん」←いまココ
次の反論説得対策にakrさんの言ってるような実装を探してみる
が、見付からない……。
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <wchar.h> int main(void) { wchar_t w[] = L"α■"; wchar_t *wp; int i; setlocale(LC_ALL, "ja_JP.UTF-8"); for (wp = w; *wp; wp++) printf("%06X[%lc]: %d\n", *wp, *wp, wcwidth(*wp)); return 0; }
| Debian lenny (glibc) | 0003B1[α]: 1 / 0025A0[■]: 1 |
| CentOS-5.3 (glibc) | 0003B1[α]: 1 / 0025A0[■]: 1 |
| FreeBSD-7.2 | 0003B1[α]: 1 / 0025A0[■]: 1 |
| NetBSD-5.0 | 0003B1[α]: 1 / 0025A0[■]: 1 |
| Solaris 10 | 0003B1[α]: 1 / 0025A0[■]: 2 |
うーん。特にSolaris 10はわけわからん……。どなたか、上のコードのどちらも2になる処理系をご存知でしたら教えてください。
East Asian Ambiguous Character Width に対する wcwidth はどうあるべきか
俺はCJK(Vも?)の場合は2になるべきだと思うんだけど、glibcにも*BSDにも入ってないのは何で? kubotaさん(debianとこのホームが消えてる……)とか、Citrusな人とかが活動してたはずなんだけど、そこらへんの状況が今一つわからん。
調べてみると個別パッチだらけなので、いい加減なんとかならんもんか……。
*1:[mule-ja-2009:09582]より、akrさん曰く「wcwidth と wcswidth がそうなんじゃないでしょうか。LC_CTYPE に依存して決まります」とのこと。なんかMLのアーカイブ変換が止まってるようでリンク張れない。
2009-05-20
■[Cygwin] 勉強会開催にあたっての検討事項
反応を見てると10人くらいなら集まりそうなので、もうちょっと考えてみる。
- 時期。新型インフルエンザ騒ぎをどこまで考慮すべきか(^^; もうちょっと落ち着いてからの方がいいかなぁ。曜日は土>日の優先順位で。
- 場所。区民会館等の貸し会議室だと結構前から予約が必要? プロジェクタかモニタは欲しい。
- 費用。場所代割り勘でもOK? カラオケとか飲み屋ならデフォルト割り勘でいいんだけど。
- 時間。あんまり長過ぎてもぐだぐだになりそうだしなぁ(^^;
■[Cygwin] locale
http://www.hi-matic.org/diary/?20090512#12-1-2より:
Cygwinスレの方もご愁傷様だなー、 前も書いたけど1.7のlocaleはまともに動かんと思うよ。
とりあえず私はUTF-8で困らない程度に動いてくれればいいでつ:-)
1.7.0-45 supports setlocale(3)より:
- wctype.hの方の実装(isw*/tow*とか)
今の実装捨ててWin32APIのGetStringType[AW]に書き換えるのはどうなんでしょう?やっちゃっていいんでしょうか? (でもwinsupはcopyright assignmentがめんどい) - __jis_mbtowc()
localeでのJISのサポートって必要なんでしょうか? 需要がないなら抹殺しちゃってもいいんじゃ(ぉ - Windowsのlocale != Cygwinのlocaleの場合
言語違い? エンコーディング違い? 実はcygwin1.dllの関数ではなくてMSのライブラリの方が呼ばれてるとか?
2009-05-17
■新型インフルエンザ
新型インフルエンザA(H1N1)の流行状況(2009年5月13日)@感染症情報センターより:
以上の結果から、感染性は季節性のインフルエンザよりも着実に高く、過去に起こったインフルエンザパンデミックにおけるR0の低い方の推計値とは相応なものであると結論されている。
「弱毒性だから気にする必要なし」という人もいるようですが、素のインフルエンザでもかかると十分死ねる(一人暮らしだと、身動きするのもつらいので余計)ので、対策は打っておいた方がいいよね。
2009-05-16
■[Cygwin] 勉強会ネタ案
ときどきの雑記帖より:
「勉強会」ってなにやるですか?
なにやりましょう?(ぉ いや、Cygwinを肴にディスカッションできたら面白いかなぁ、とふと思っただけなんで。基本方針としては、
- 発表希望者は各自ネタを用意してくること。
- 参加者は1つ以上質問して帰ること。
- 発表中も突っ込み自由。
- 議論し易い程度の少人数で。(とは言え、そもそも10人集まるのかね?)
ネタとしては(私が発表するというわけではない:-)、
- 今が旬(?)のCygwin-1.7について (誰か発表して(ぉぃ))
- TOEIC300点台の人間が贈る、upstreamとの議論の仕方 (あ、これは私)
- Cygwinで困ってること
- Cygwin固有の(バッド?)ノウハウ
なんかが思い付きます。
2009-05-09
■[Cygwin] 最近撃墜したCygwin-1.7関連のバグ
- mintty: タイトルバーを設定するエスケープシーケンスにマルチバイト文字を含められない (mintty-0.40で修正済み)
- cygstart: LANGを設定しているのにマルチバイト文字を含む引数が使えない (cygutils-1.4.0で修正済みらしいが、まだ落ちてこない)
- cygwin1.dll: locale未設定時、マルチバイト文字のファイル名があるディレクトリでreaddir(3)を実行するとerrnoがEILSEQになる (次回リリースで修正予定)
あと、既知のバグとしては、
- cygpath: マルチバイト文字を含むパス名が、localeの設定によらず、何故か現在のコードページで出力される (CJKで言うところのCな人が報告してたので、そのうち解消されると思われ)
- cygwin1.dll: wcwidth, wcswidthが問答無用で1を返す (真面目に何とかしようと思うと、localeまわりに大々的に手を入れる必要が……)
■[Windows][フォント] きれいな等幅フォントが欲しい(敗北)
えー、改変自由なIPAフォントが出たのを機に、FontForgeを入れていろいろいじってたんですが……結局敗北しますたorz
これで終わり、これで終わり、と思いつつもGWの1/3以上を潰してしまい、もったいないのでまとめておきます。
ちなみに某スレの759は私だったり……。
Windowsでのアウトラインフォントについての個人的まとめ(暫定)
- Windowsが扱えるフォントにはTrueType(*.ttf)とOpenType(*.otf)があるが、これはコンテナの違いであり、表示の違いはアウトラインフォーマットの違いで出る。
- アウトラインフォーマットにはTrueTypeアウトラインとPostScriptアウトラインがあり、OpenTypeには両方入れられる。一般的に出回っているOpenTypeのフォントファイルはTrueTypeアウトラインが多いようだ。(IPAフォントもTrueTypeアウトライン)
- 処理するレンダリングエンジンにより、以下のような違いがでているように感じる。(以下ではアンチエイリアスをAAと省略)
種別 全角半角混在等幅フォント 縦方向のAA クッキリ感 個人的評価 TrueType
(ClearType)可 × △ 横線の太さがバラバラだったり斜め線がガタガタなのが論外。 TrueType
(標準AA)可 ○ × 全体的にボケた感じになるし、フォントによっては小さいフォントにAAがかからずかなり酷い状況になるのでやっぱり使えない。 PostScript
(標準AA)不可 ○ ○ ClearTypeは使えないが、ヒント情報を付加すると、意外ときれいに出て良い感じ。しかし全角半角混在の等幅フォントにできないので実用にならない。 gdi++(参考) フォーマット依存 ○ 設定次第? 期待通りの設定を行うのがかなり難しい。PostScriptのレンダリング結果を超えることができなかった……。 - Windows Vista以降でも既存のAPIを使用しているアプリについては状況が変わらないようだ。新規のAPIについてはよくわからず。
レンダリング結果の比較
2009-04-25
■ OSSオープン・ラボの利用申請が酷い
IPAフォントが改変自由になったぜー、ついでにツールも提供してくれるのかー、じゃあ登録してみようかー、と思ったら。
以下「利用申請」ページより抜粋。
申請する情報を入力してください。
住所氏名所属電話番号なんて、個人情報取り過ぎじゃねーか、とは思うが、まあ運営元が運営元だからしゃーないか、と思わんではない。しかしだな。
こちらより利用登録申請書をダウンロードして、下記の利用申請情報入力後に、利用登録申請書の内容に従いFAX又は郵便にてお送りください。
……この運用を考えたやつは本気で馬鹿なんじゃないかとオモタ。

