2009年10月2日金曜日

Unicodeエスケープされたテキストを復元して確認する

Javaでプロパティファイルを使用するときなどに、Unicodeエスケープを施したテキストファイルが使用されるが、その内容を(Eclipse等を立ち上げずに)さっと確認したいときもある。

そんなときは以下の内容のバッチを作っておけばよい。

set A2N_OUTPUT=c:\a2n_output.txt
native2ascii -reverse %1 %A2N_OUTPUT%
call notepad %A2N_OUTPUT%
del %A2N_OUTPUT%
exit /b

もちろんnative2asciiがパスの中にある必要があるので、必要であればバッチ中でパスを設定するなり、フルパスで記述するようにする。

あとはこのバッチファイルにドラッグアンドドロップで、Unicodeエスケープされたファイルを 落としてやると、メモ帳でUnicodeエスケープを復元した文書を観ることができる。メモ帳を閉じれば、テンポラリファイルは削除される。ランチャに登録するときは、ドロップしたファイルパスがバッチの引数になるようにそれぞれ対応してほしい。

2009年8月28日金曜日

映画 「サマーウォーズ」

観てきたので感想を。

あらすじ

  • 主人公はNerd系男子高校生。と思いきや非コミュではない。そして数学ができる子(数学オリンピックの代表(って日本代表ってことかな?)にあとちょっとでなり損ねた)。オタク部ことPC部、こと物理部員のケンジくん。
  • この世界では、ネット上にOZというインフラ?があり、SNSやショッピングのような機能に加えて行政サービスや携帯電話の基盤にまでなっている。
  • ある日、校内でも人気が高くケンジくんの憧れでもあるナツキ先輩(もちろん女子高生)が、「一緒に田舎に旅行してくれる」バイトをケンジくんに依頼する。
  • で、田舎にいってみたら、田舎の大家族がいてその雰囲気に飲まれていると、なんだかんだあってOZがクラッカーに荒らされている。なんだかんだのいきさつでそいつとケンジくんと大家族が戦うというおはなし。

お話の軸

  • 男子高校生の成長物語+恋愛要素
  • 未来的な仮想空間と田舎的大家族の人間関係

よかったところ

  • 夏休みのよさが伝わってくる。
    • 開け放たれた田舎の家
    • にぎやかな家族
    • 青い空
    • 高校野球
  • OZのデザイン
    • アバターのデザインがかわいいし個性的(普通の人間型のものから動物やら無機物やら平面的なドット絵やら)。
    • どんな言語でも瞬時に翻訳されるという夢機能。ここは今のインターネットにぜんぜん足りてないし、あったらすごく良いなと思えるところだよね。
    • クラッカーとは格闘ゲームあるいは花札で戦う。映画等での「ハッカー」あるいはコンピュータの描写ってちょっとのリアリティとかなりのうそ臭さがあるんだけど、そこをばっさり仮想空間上でのゲームに置き換える潔さがいい。
  • 実名のリアリティ。OZが今のネットとかけ離れてる一方で、現実世界の描写は徹底して実名。製品についてるロゴ(SONYとかDELLとか)とか車もRX-7(FD)だし、高校野球を戦っている高校名も実名らしい。
  • あとは単純にこういう夏休みの経験がうらやましいです!

イマイチなところ

  • 声優。俳優さんがやっているんだけど、アニメにはアニメ声優のほうがしっくり来る気がする。でもぎこちなさもそれはそれで雰囲気作りに一役買っている面もあるかも知れない。
  • ナツキ先輩があまり魅力的に描かれていない(という誰かのレビューを見かけた)。けど、これはこれで良いんじゃないかと思う。彼女はあくまでケンジくんの目を通して魅力的であればそれでいいんじゃないかな。
  • 細かいところが気になる。生活のインフラ、それも命に関わるレベルのシステムがインターネットの向こう側ってどれだけ、とか、ゲームで戦うのにチートないの?とか。まあくだらないことだけどね。そういう意味では実写じゃなくて(実写でもできるだろうというレビューも見かけた)アニメでやったのは正解だと思う。実写のリアリティでここら辺の嘘があるとほんとに寒くなっちゃうだろうから。

まとめ

お話の大筋は「高校生の男の子が夏休みに事件に巻き込まれて、うまく解決して、そのうえかわいい女の子とうまくいく」っていう、よくあるもの。だから話としてとてもおもしろいとは感じなかった(逆に安心して観られたけど)。そのよくある感じのところに、OZみたいに視覚的におもしろみがあるシーンや、大家族のどたばたとか、アニメならではの非現実的な行動とかがうまいこと盛り込まれてて、それぞれの要素をそれぞれに楽しむことができた映画でした。

2009年7月27日月曜日

People I Follow on Twitter 3

第三弾。勝手に紹介してもいいものなのか若干の不安がありつつ続行。

  • @kengo : ブログGoing My Wayの中の人。プロフィールは該ページのaboutに詳しく載っている。「ビールオフやっています」というプロフィールに惹かれてフォロー。
  • @dk19810313 : 渋谷在住で西麻布勤務のエンジニア。aquadrops *が彼のページ。
  • @sakomoko : 相沢沙呼。PHPer。小説を書くのも読むのも好きらしく鮎川哲也賞を受賞され、10月に刊行されるらしい。おめでとうございます。
  • @flextv : 音楽系に強そうな方。音楽ユニット(?)idiot pop広告営業等をしているらしい。
  • @microsyntax : TechCrunchの記事をみてフォローしてみたんだけど。あまりポストないしよくわからない。
  • @t2y : ソフトウェア製造業勤務。オープンソースエンジニア。Python系に強い?
  • @itoh_bmark : んーフォロー返しだったか。Ruby系 & Unix/Linux系統の人っぽい。つぶやきは現状・感想系が多いかも。
  • @hyuki : 結城浩。プログラミング系の著作も多く、また数学ガールの著者でもある。クリスチャン。
  • @ksorano : 「ダダ漏れ女子2号」。決断ポトフの中の人。ustream生放送(これがダダ漏れと呼ばれている)などを活発に行い、最近プレゼンスを上げている人。
  • @ken_in : コンサルタント。以前プロフィールかidか名前に生年が書いてあった気がするんだけどな。たぶん同い年位なんだろう。
  • @mary_ctrl_plus : コントロールプラス株式会社代表取締役 村田マリ。デート通.jpなるサイトを運営している会社のようだ。彼女のブログはおいしそうな店がたくさん載っている。
  • @Tsuhata : ここら辺から猫アイコンフォローブームに。Webの会社で働くOracleDBA。つくばにすんでいるらしい。
  • @hanzoht : 猫アイコン。漫画好きでバンドもやっている?大阪の人のようだ。
  • @hossie : 猫アイコン。東方とTCG(トレーディングカードゲームか?)と猫が好きらしい。
  • @m0_0m : 猫アイコン。ポストも猫関連多い。その上猫ブログを持っている。idも猫の顔なのかも。
  • @jugyo : ターミナルから使用するTwitterクライアントTermtterの作者。
  • @cho_co : 都内在住Webプログラマー。フォロー/フォロワーがともに1,000超。柴犬アイコン。自転車乗り。
  • @_ruka_ : 写真の学校(専門?美大?)に通っている。なので写真系ポストが多い。
  • @benchan : Webデザイナー/プログラマー。ポストはあんまり多くない。
  • @_AWAWA_ : SIerのSE。8年目くらいで、転職経験ありのようす。

2009年7月10日金曜日

People I Follow on Twitter 2

僕がTwitterでフォローしている人達その2。

  • @misky : miskyworks.netの中の人。大学生二人で、絵や音楽やプログラムなど。未踏もやっていたらしい。
  • @junk_yumeiro : 駒場にある大学に通う現在大学4年生。DTMをやっている。東方厨かつボカロ厨かつニコ厨。らしい。
  • @kurosio : 静岡の喫煙家、黒潮家道元定吉。
  • @marco11 : iddyがやけに充実している。が何している人なんだろう。'75生まれの男性らしきことしかわからない。フォロー/フォロワーがいずれも1,000超。
  • @echidna243 : 教育系デジタルコンテンツプロデューサー。コンテンツの健全性/有害性に関わるお仕事? アキバ関連ポストも多め。
  • @comaz : 猫アイコン。写真がメインコンテンツのblogを持っている。ポスト数多め。
  • @kzisdzl : Mac使いの映像屋さん。tumblrはおしゃれな写真が多い。
  • @hyoshiok : よしおかひろたか。このページのプロフィールなどが参考になるか。オープンソース周りで成功している人の一人。
  • @arton : RubyやJava関連の著作を持つお方。彼のウェブサイトはここ
  • @umejava : Smalltalk Evangelist。合同会社ソフトウメヤ代表社員(社長みたいなもの?)。オージス総研、豆蔵出身。
  • @51h : VJ/DJ/Webプロデューサ。tumblrは女性のかっこいいヌード写真が多い。
  • @hina : 美人コスプレイヤー。メイドカフェ仕掛け人。旧名称愛咲ひな
  • @yugui : Mad web programmer。Rubyのリリースマネージャ。トランスジェンダーだそうです。
  • @c_cha : c_chaとかいてしーちゃと読む。日常ポスト多めかつポスト頻度高め。
  • @ogochan : WASP株式会社代表取締役。40歳代というネットの世界では割と長老級な方。だが結構ぶっとんでいる人かもしれない。
  • @okinao2 : オタっぽいポストが結構あるが、リアル嫁がいる模様。Flickrはちょっとくすんだ感じの写真があってよい。あとトイカメラ。
  • @pha : 無職のphpプログラマ。無職でも生きていけるんだなってことを確認できる。
  • @groove1011 : 歌って踊れるITコンサルタント。ポストが5月で止まってる。
  • @ukulelestar : 土壌分解微生物系女子。テレビ/エンターテインメント系ポスト多め。
  • @micek_flicek : 大阪のオープン系プログラマ(女性)。阪神タイガースと菅野ようことチェコとインド好き。

2009年7月8日水曜日

People I follow on Twitter 1

フォローしている人が100を超えたのでここら辺で棚卸しをかねて勝手に紹介。20人ずつやることにしよう。フォローした順で。

  • @tookami : 僕の中高時代のリアル友達。資格受験生の皮を被ったニート。
  • @_kzr : Radium Softwareの中の人。あるいはよよP@ニコ動。プログラムとか音楽とか電子工作とか。SCEに勤務されていたようだが最近退職されたらしい。
  • @bernarde : 日本在住の外国人。会社を持っているらしい。プログラミングやCGやなんやとこの人も幅広い。英語ポスト多め。
  • @asatohan : ゲーム開発/ソフトウェア開発についてのポスト多め。ソフトウェア開発と進化というなにやらかっこよさげなことについて研究しているらしい。
  • @chumby_jp : chumby。フォローしたら当たるかもっていうのでフォローして放置しっぱなし。あまりポストは多くない様子。
  • @dme2k : 趣味はマックでアイコンはペンギン。フォロワーが3,000超。
  • @timoreilly : O'Reillyの中の人。100%英語。
  • @t_meitei : スイーツ系メガネ男子。ゲーム開発してコンテストか何かに提出していた模様。メガネでゲームでもヲタ系ではない。
  • @emiemon : 4月からポストがない。remove候補かしら。
  • @hiniku : トミモトリエ。自分屋24の中の人。元祖「ダダ漏れ女子」。
  • @tryal : 若いのにcybozu.netのCOOとかいう偉そうなポジションにいる人。マーケティング関連ポスト多め。
  • @dankogai : 小飼弾。ダンコーガイ。Japanese Perl guruとどっかで紹介されていた気がする。きっと変なおっさんに違いない。
  • @HolyGrail : Yahoo!のウェブエンジニア。フォロワー4,000超え、フォローも3,500超え。
  • @serima : 株式会社MemoLiの代表取締役。たぶんウェブサービスを作っている。
  • @yoshiaki310 : Perl系SE? 技術系ポストやらブックマークポストやらが多い気がする。
  • @yoichiro : 現在ITアーキテクトとして活躍中らしい。彼のブログではJavaの話題なんかも取り上げられている。なんでもJavaに思い入れがあるとか。
  • @nullpon : ブログnullpo.printStackTrace();から。Web系プログラマ。Java、Perl、Rubyなど。
  • @taro_taro_imo : 大学生。アイコンがパッチョだったので。
  • @hachinogy : アニメのコンポジットをしているらしい。アニメのコンポジットってなんだろう。ポスト頻度低め。
  • @merli : 大学生。ネットラジオやったりめるりP@ニコ動だったりする。恋のお悩み風ポスト多め。

2009年5月25日月曜日

Javaソースコードの特定位置がコードがコメントか文字列か判定する方法

まだ検証していないけどとりあえずできたので上げてみる。

まじめに構文解析しないで簡易に知る方法ないかなと思って実装してみた。言語はPython。文字列リテラルとコメント(と一応文字リテラル)の開始をサーチして、それに対応する終わりを探す。という処理を再帰で繰り返して、閉じてればNoneを、閉じてなければ対応する文字列を返却する。コメントは単純だけど文字列とかはエスケープもあるので、ちょっと不安。

import re

beginning_regex = re.compile(r'(\'|"|(?:/\*)|(?://))', re.MULTILINE)
doublequote_regex = re.compile(r'(?:[^\\]|\A)(?:\\\\)*"', re.MULTILINE)
singlequote_regex = re.compile(r"(?:[^\\])(?:\\\\)*'", re.MULTILINE)
cpp_comment_regex = re.compile(r'\n', re.MULTILINE)
c_comment_regex = re.compile(r'\*/', re.MULTILINE)


regex_map = {'"': doublequote_regex,
    "'": singlequote_regex,
    '//':cpp_comment_regex,
    '/*': c_comment_regex}
return_map = {'"': 'string',
    "'": 'char',
    '//': 'cppcomment',
    '/*': 'comment'}

def is_open(code_content,pos):
    '''
        code_content : string of whole source code
        pos : position for checking
        returns None when the string doesn't contain open comment/string literal
        otherwise, returns a string "ccomment", "cppcomment", "string" or "char"
    '''
    idx = 0
    cnt = 0
    print pos
    while True:
        match = beginning_regex.search(code_content, idx)
        if (match == None) or (pos < match.start()):
            return None
        match_head = match.group()
        end_regex = regex_map[match_head]
        idx = match.end()
        if (match_head == '"') or (match_head == "'"):
            idx =  idx - 1
        end_match = end_regex.search(code_content, idx)
        if (end_match == None) or (pos < end_match.start()):
            return return_map[match_head]
        idx = end_match.end()

#main routine
f = open(filepath)
position = 100
result = is_open(f.read(), position)
if result:
    print result + '内です'
else:
    print 'コードです'

2009年5月23日土曜日

4/11 from 京急蒲田 to 川崎

文章を綴るほど脳みそが働かないので、以前散歩したときに撮った写真を。

謎のダクト

タイトル:孤独

駐輪場

趣のある建物と歩道橋

ブルー

ブルー

イエロー

イエロー

ピクトさんx2

カラフル屋根瓦(写真斜めすぎ!)

カラフル外壁タイル

Rollover Beethoven

18

川!

Camera Girl

Bike Girl

河原ゴルファーズ