Skip to main content

ログ取得ツール

柄にもなく環境問題

「環境問題はなぜウソがまかり通るのか」という本が話題だったので、だいぶ昔に図書館に予約を入れていたのが今頃になって確保できたので読んでみた。

最初のペットボトルの話は因果の結びつけに無理があるとは思うが、リサイクルがうまく回っていないのは事実だろう。サイクルにして回すには、作って売って回収して再生する、という流れが必要になるが、回収するところで売る量の半分くらいになって(この値は優秀だと思います)、再生するところではその1~2割くらい。平均して、買ったペットボトルの10~20本に1本が何かに再生されるという計算。

おそらく技術的な問題があるため下流の再生の部分が流れないことが分かっているのに、絶大なコストがかかるけれど国民に(分別の手間を)転嫁できる回収の部分だけ発達させてしまった、というのが最大の問題でしょうね。分別して回収しても結局再生のアテがつかないから、そのまま燃やすしかないんだよね。ゴミを燃やすための燃料にするor熱を回収する、というのは分別しなくてもできることですから、分別に意味を持たせるには燃やしてOK(というか誰かに処分を押し付けてOKにしているみたい?)という現状はダメでしょう。再生の技術的な問題を解決してサイクルを回すか、分別回収をやめて無駄なコストを削るか、どちらかをしなければ非効率(による環境破壊?)を解消できない。こないだあった再生紙の問題も同じ構造ですね。再生の部分に技術的な問題があるためにごまかす必要が生じた。

セブンイレブンでネットプリント!

ネットでアップしたPDF類をセブンイレブンのプリンタで出せる。なんて便利な世の中になったものか。モノクロ20円/枚、カラー60円/枚。

類似のサービスは2つほど見つけた。

  • 日本に上陸したPrintMe。米国でメジャーなのかな。ただし日本では出力先が少ない。新宿か品川プリンスホテルのフロントか成田空港近くのラディソンホテルくらい。問題外ですな。
  • ハイブリッドめーるサービス。郵送してくれるらしい。ただし2枚まで。

他にも印刷屋さん系で製本やチラシ印刷のサービスは多いけど、1部単位でやってくれるところは見つけられなかった。普通にネットプリントと言うとデジカメで撮影した画像データの印刷(現像)を指すことが多いみたい。

で、さっそく登録して税務署に出す所得税の確定申告のPDFを出そうと思ったのだけど、エラーになってしまった。用紙のサイズが混在しているとダメとかいうエラー。いや混在してないんだけど。しょうがないので自宅のプリンタで出した。途中からインクが少なくてかすれてしまったが優秀な税務署の職員なら少々薄くても読めるだろう。

電子申告にはまだ手を出していません。なんだかんだいって手順を見て、面倒だということに。本人確認なんてもうちょっと適当でもいいんじゃないのかな。

しかし、プリンタ捨てようと思ってたんだけどね。こういうことがあるとなると、捨てることができなくなってしまった。

WLWのAPI

WLWにはAPIが用意されている。どうにかしてこれを呼べないかなぁと思った。ファイルは「C:\Program Files\Windows Live\Writer\WindowsLive.Writer.Api.dll」だということはわかっている。状況から考えて、たぶん.NETのライブラリなんじゃないかな。

まずはPythonに付属のctypesだが、ctypes自体は状況によっては異常に便利な、ものすごいものではあるが、、、

>>> import ctypes
>>> wlapi=ctypes.cdll.LoadLibrary(r"C:\Program Files\Windows Live\Writer\WindowsLive.Writer.Api.dll")

ここから先が続かないんだよね。何の関数を呼べばいいんだろう…そもそも.NETのdllってctypesから呼べるのかどうか…

.NETだからIronPythonだろう、ということでipyを入れてやってみると、当たりっぽいのが出てきた。

>>> import sys
>>> import clr
>>> sys.path.append(r"C:\Program Files\Windows Live\Writer")
>>> clr.AddReference("WindowsLive.Writer.Api.dll")
>>> import WindowsLive.Writer.Api as wlapi
>>> help(wlapi)
 :(大量のテキスト)
>>> dir(wlapi)
['AdaptiveHtmlObject', 'Alignment', 'ContentCreationException', 'ContentResizedEventHandler',
 'ContentSource', 'HtmlDocumentAvailableEventArgs', 'HtmlDocumentAvailableHandler',
 'HtmlScreenCapture', 'HtmlScreenCaptureAvailableEventArgs', 'HtmlScreenCaptureAvailableHandler',
 'HtmlServices', 'HtmlType', 'HttpRequestCacheLevel', 'ILayoutStyle', 'IProperties', 'IPublishingContext',
 'ISmartContent', 'ISmartContentEditorSite', 'ISupportingFiles', 'InsertableContentSourceAttribute',
 'LiveClipboardContentSourceAttribute', 'PluginDiagnostics', 'PluginHttpRequest', 'ResizeCapabilities',
 'ResizeOptions', 'SmartContentEditor', 'SmartContentSource', 'SupportsFeature',
 'UrlContentSourceAttribute', 'WriterApplication', 'WriterPlugin', 'WriterPluginAttribute',
 '__builtins__', '__dict__', '__name__']

なんかぐぐりながらやっていけば、少しは見当がつきそうな感じ。でもプラグインの呼び出しの口はDLLで作らなきゃいけないはずだから、Pythonで作るのは無理かなぁ。プラグインのDLLを別から呼んで遊ぶなんてことはできるかもしれない。WriterPluginではなくWriterApplicationクラスを使えば、自分のスクリプトからWLW経由で投稿、というのは可能か。

お手軽HDRI(5) cinepaint

cinepaintでブラケット撮影の画像を読み込んで1つにできると聞き及び、やってみた。ずれを検出して補正する機能もついていた。Fedora8で

## yum install cinepaint

でインストール、cinepaintコマンドで起動できる。さっそくこのへんのチュートリアルを見ながら、「ファイル」-「New From」-「Bracketing to HDR」を選び、ずれ(offset)を検出、HDR画像を生成してみた。紫色のエリアがたくさんできるので、「画像」-「Colors」-「Gamma-Expose」で適当にチェックすると、それらしい画像になった。

ただ、手持ちだとさすがにずれはいかんともしがたいですね。cinepaintの補正は平行移動を仮定しているようだけど、それだけではずれがおさまらないです。非常に手ブレ感のある画像になってしまいます。あと、HDR画像をOpenEXRで保存できませんでした(gamma値が外れているとかいうエラーが出る)。xcfやtiff、hdrなどの形式では保存できましたが、cinepaintとgimpの世代が違うらしく、xcfをFedora8のgimpでは開けないという…まあ、32bit IEEE floatをやめてPNGあたりで保存するのがいいかなぁと思います。8bit unsigned intにしてもjpegで保存できませんでした…

お手軽HDRI(4) RawTherapeeを使ってみたら…

会社の人から「何やってんの、Rawtherapee使えばそんなの楽勝っすよ」と言われたので試してみた。rawtherapee hdriでぐぐると、日本語ではその人のページと2chのログくらいしか検索されないんですけど… さっそくインストールして使ってみた。Windows版にはgtk+のライブラリやら何やらも詰め合わされて入っている。Linuxアプリをgtk+ライブラリ詰め合わせにしてWindows版、Windowsアプリをwine詰め合わせにしてLinux版、で両方配布するのが今後は主流になるのかもね。言語ファイルのenglishをjapaneseという名前にコピーして、自分で翻訳していけばUIも日本語が出るようになるので便利だ(?)。私はこういう技術に疎いので妥当な訳語が分からないですが。 rawのデコードにはdcrawを使っているような雰囲気。機能がありすぎてどれを使えばいいのかよくわからないが、「Color Boost」で最高にブーストすると(?)、不自然に色が強調された、それっぽい絵になった。jpegでもColor Boostすれば、それっぽくなるなぁ。 今までいじっていたufraw(こちらはdcrawのフロントエンドか?)でも似たような感じにまではできる。機能はRawTherapeeのほうが多そうです。 それで、RawTherapeeを使って、jpeg1枚とraw1枚でどういう差が出るのか、対決してみようかと思いました。 このシリーズで初めて画像を出してみよう。元の絵はさきほど撮った室内の様子です。自宅の写真はちょっと恥ずかしいですけど。キャプションをそれっぽくするために、無駄にポラロイド風にして傾けてしまった(笑)。RawTherapeeの設定は、以下のようなもの。操作としては普通に読み込んで、ColorBoostでめいっぱい効果が出るようにしてみただけです。

Intel 64

VMWare経由で使っているFedora 8をx86_64版にしてみた。ホストOSが32bitでもゲストOSを64bitにできるようです。えらいです。

VMを生成するときに警告が出てIntel VTが有効になってないとか言われたので、BIOSを眺めて有効にした。今まで有効だと思って「さすがに速いな…」とか呟いていたのだけど、間抜けでした。VMWareはコードのロード時にバイナリを書き換えて実行するときのオーバーヘッドを減らしているので、無効でもそこそこ速いはずです、というのは言い訳です。

確かに、こころなしか速くなってる気がしますね。気のせいかもしれません。

聞いていたとおり、ポインタとlongが64ビットになってますね。あと特に何かせずに普通にoff_tを使っても64ビットになっているので、面倒だったFILE_OFFSET_BITS=64も必要なくなります。あとは変わらず、かな。

# for i in char short int long "long long" quad_t "void *" off_t; do sh sizeof.sh "$i" sys/types.h ; done
sizeof(char)=1
sizeof(short)=2
sizeof(int)=4
sizeof(long)=8
sizeof(long long)=8
sizeof(quad_t)=8
sizeof(void *)=8
sizeof(off_t)=8

スクリプトは以下の通り。

ルビ

ruby ところで、WLWでは略語(やタグ)についてはプラグインがあって、勝手に略語の定義を探してきてくれたりするのだけど、漢字(かんじ)のルビのプラグインはまだないようだ。なら作ってしまえ、と思ったのだけど、Windowsでプログラムを書くなんてことに恐怖を覚えてしまうし、果たして書けるものかどうかも分からない。あまり大げさにしたくもないので、wxPythonで書いてみた。

一応、ルビ()と略語(と)を作ってクリップボードに送るように書いてある。これをWLWで「形式を選択して貼り付け → HTML」を選べば、そこそこうまいことやってくれる。ただルビはうまく処理できておらず、ルビの外側に書き続けたいのにルビの内側に書き加える形になってしまったり。

勢いで書いてしまいましたが、自分で使うかどうかはわかりません。あと「TAB」キーでフォーカスが移動しないのはなんでだろう…

テセ2戦連発か

一人退場した後に貴重な同点弾、2引き分けに持っていったらしい。試合は見てませんが(放送なかったの?)、絶好調ですね。次の相手は中国。韓国と日本が引き分けて、北朝鮮が中国に2点差で勝てば優勝、という。同時刻開催ではないので、日本と韓国の試合の結果が分かってからキックオフ、らしいです。日本と中国の試合は、一応TVで見てましたが…略。

お手軽HDRI計画(3) EV値とRGBの値の関係は…

理論はわかりませんが、少しずつためていたサンプル画像を観察すると、だいたいEV補正値が0.5違う場合、JPEGで見えるRGBの値(0~255)で20程度違いがあります。20という値が正確なのかどうかはわかりませんが、色の平均をとってみると、そんな感じで出る画像が多い。EV補正±0.3の場合は10程度の差に見える。 そのため、オートブラケットでEV補正±0.5で3枚撮った場合は、RGBの範囲が0~255だったのが-20~275くらいに広がるという感じにまではできそうです。 明るいほうと暗いほうに、だいたい7~8%ずつ増えて、256階調→約300階調くらいになる程度ですね。ちょっと物足りない感じもしますが、あくまでも「お手軽」だからこのくらいでいっか、という気もするところ。 0~99を暗め明るめの画像から、100~199(元画像の値で80~179)は中くらいの画像から、200~300(160~255)を明るめ暗めの画像から採用すれば、そこそこ色の範囲が広くなるのではないかと思います。 (追記) 2008/02/20(水) 19:44 「明るめ」と「暗め」が逆でしたね。