Hatena::Diary

iWA’s 雑記@はてな出張所 RSSフィード

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は食ってくれなさそう

2010-05-11

[] 簡単ログイン(ケータイID認証)問題を3行で説明してみる(α版)

普通の人が変更するのは難しいが、悪人がなりすますのは簡単なID/パスワードを、全てのサイトで使い回すのと同じ。

  1. IDの変更は、普通の利用者にとっては難しい。
  2. しかし、悪意のある利用者がなりすますのは簡単。(なことが多い)
  3. しかも、簡単ログイン対応のどのサイトにも同じIDが送信される。

……という理解でOK?

2009-12-17

[][] 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

[][][] 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-24

聴神経腫瘍が判明orz

  • 8月某日: 突然耳の聴こえが悪くなったので耳鼻科に行ったら、突発性難聴、と診断される。原因はほとんどの場合不明らしい。症状が出て2〜3週間だったら投薬で治ることが多いそうだが、よく考えると3月頃にもおかしかった記憶が……。4月頃の健康診断でも聴力が落ちてたんだよなぁ。
  • 8月某日: 1週間ほど薬を飲んでみたが、あまり効かず。低音部は多少改善。かかった町医者が夏休みに入るので、市立病院を紹介してもらう。
  • 8月某日: 診断とともにMRIを予約。突発性難聴はたいてい原因不明だが、MRIにて0.5〜1%程度の確率で原因がわかることもあるそうな。
  • 8月某日: 経口薬があまり効かなかったので、点滴を一週間程度実施。終了後の聴力検査では、やはり低音部が多少改善レベル。
  • 8月某日: MRI実施。
  • 本日: MRIにおもいっきり影が写ってますたorz 確率1%未満の外れクジを引くとは……。ぐぐってみると、思ったより怖い状況のよーな。ぅぅぅ……。

2009-08-18

[] MinTTYが進化してる

Andyさんから「試してみてー」と直メールが来たので、0.5(まだαだが)を動かしてみたら、SJISとeucJPが通るようになってる……。

実は、Cygwin-1.7自体、ja_JP.SJISとja_JP.eucJPも使用可能で、何もUTF-8にしないといけないわけではなかったりするのだが、需要あるのか? これ(^^;

あと、コードポイントがU+10000以上の文字も使えるようになったとのことで試してみたら、vimで普通に編集できたので驚いてたり。bashの挙動は怪しかったが……。

2009-07-27

[]「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-07-23

[] Cygwin勉強会中止しました

直前で申し訳ありません、参加者少数につき、Cygwin勉強会は中止させていただきます。m(_ _;m

2009-07-22

[] Cygwin勉強会(7/24)まだ空きあります

現在参加予定者2名orz

しかもfd0さんは出れるかどうかわからないとかー(^^;;;

さすがに1名だったら中止かなぁ。とりあえず明日決めよう。

ちなみに私は以下のネタを準備中。

  • れっつ とーく うぃず あっぷすとりーむ!!
  • 俺のCygwin環境 (Windows XP版)

2009-07-16

[] Cygwin勉強会(7/24)参加者募集中

参加者少数のため、中止しました。m(_ _)m

http://atnd.org/events/1096

少人数な上に募集期間1週間て、逆に人が集まらなかったりして……(^^;;;

# 7/21現在3名(^^;;;

2009-07-13

[] Cygwin-1.7.1 準備中らしい

作業漏れ項目の確認段階に入った模様。今月中には出るかなぁ?

正式リリースされると、setup-1.7.exe が新たな setup.exe になるそうな。

2009-07-01

ついったー(2)

なんか遠回しの圧力を受けたので、ちと使ってみる。

http://twitter.com/vmi_jp

# まぁ、出遅れまくりなので、そらvmiとか取れんわなー。

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-14

[] Cygwin ML

説明が下手なせいで、なんか話が通じてない(^^;

# NOZAKIさんごめん、URL出しちゃった(^^;;;

2009-06-09

Andr0id端末げとー!!

Google Developer Day行ってきた。メモの量が多いので、レポートは気が向いたときにでも(^^;

とりあえず、入手した端末で遊ぶか:-)

2009-06-08

ついったー

アカウントだけ取って放置してたら、一度もメッセージを投げてないのにフォローが付いた。何故に(゚◇゚;

2009-06-04

[] wcwidth for CJK

祝・commit完了!!

コマンドプロンプトのタイトルバーが文字化けするバグも直ったし、俺の知ってるバグはこれで全部かな。

2009-05-26

[] 続々・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

[] 続・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

[] 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.20003B1[α]: 1 / 0025A0[■]: 1
NetBSD-5.00003B1[α]: 1 / 0025A0[■]: 1
Solaris 100003B1[α]: 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

[] 勉強会開催にあたっての検討事項

反応を見てると10人くらいなら集まりそうなので、もうちょっと考えてみる。

  • 時期。新型インフルエンザ騒ぎをどこまで考慮すべきか(^^; もうちょっと落ち着いてからの方がいいかなぁ。曜日は土>日の優先順位で。
  • 場所。区民会館等の貸し会議室だと結構前から予約が必要? プロジェクタかモニタは欲しい。
  • 費用。場所代割り勘でもOK? カラオケとか飲み屋ならデフォルト割り勘でいいんだけど。
  • 時間。あんまり長過ぎてもぐだぐだになりそうだしなぁ(^^;

[] 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を肴にディスカッションできたら面白いかなぁ、とふと思っただけなんで。基本方針としては、

  • 発表希望者は各自ネタを用意してくること。
  • 参加者は1つ以上質問して帰ること。
  • 発表中も突っ込み自由。
  • 議論し易い程度の少人数で。(とは言え、そもそも10人集まるのかね?)

ネタとしては(私が発表するというわけではない:-)、

  • 今が旬(?)のCygwin-1.7について (誰か発表して(ぉぃ))
  • TOEIC300点台の人間が贈る、upstreamとの議論の仕方 (あ、これは私)
  • Cygwinで困ってること
  • Cygwin固有の(バッド?)ノウハウ

なんかが思い付きます。

2009-05-15

[] Cygwin勉強会って需要あるかね?

T/O あ、場所は東京23区内or川崎で……。

ちなみに、何かアテがあるわけじゃないです(^^;

2009-05-14

[] Cygwin MLで戦闘中

比較的説得が容易のようなので、いろいろ突っ込み中。エキサイト翻訳がお友達(^^;

懸案のwcwidth/wcswidthが、意外と早く入るかも?

しかし、パッチを作ろうとしたらcopyright assignment(著作権譲渡)が必要と言われたので、説得して直してもらう方向に方針変更(^^;

2009-05-09

[] 最近撃墜した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まわりに大々的に手を入れる必要が……)

[][] きれいな等幅フォントが欲しい(敗北)

えー、改変自由な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-27

[] 引数に非ASCII文字が含まれているとcygstartが動かない@Cygwin-1.7

予想通りShellExecuteAを呼んでたので、パッチを投げてみた。

……最近こんなことばっかしやってる気がする。

2009-04-25

OSSオープン・ラボの利用申請が酷い

IPAフォントが改変自由になったぜー、ついでにツールも提供してくれるのかー、じゃあ登録してみようかー、と思ったら。

以下「利用申請」ページより抜粋。

申請する情報を入力してください。

住所氏名所属電話番号なんて、個人情報取り過ぎじゃねーか、とは思うが、まあ運営元が運営元だからしゃーないか、と思わんではない。しかしだな。

こちらより利用登録申請書をダウンロードして、下記の利用申請情報入力後に、利用登録申請書の内容に従いFAX又は郵便にてお送りください。

……この運用を考えたやつは本気で馬鹿なんじゃないかとオモタ。

2009-04-24

[] ちびミクさん

ほんの数日前にpixivで全話読んで来たところだぜ……。

最初は単なるほのぼの漫画かと思ってたんだけど、だんだんストーリー的にも面白くなっていって、気が付いたら280話強(当時)を制覇してたり。

ほぼ?毎日更新してるので、今はサイトに日参してる。

フルカラーのコミックスきぼんぬ。


[][] East Asian Ambiguous Character Width

議論の結果、なんと「フォント幅を見て自動判定」という形で決着しました。(゚∀゚)

何か問題があったら突っ込んでくれ。

# あとはcygwin1.dllか……。