サーバ上でPDF生成
Webアプリでの帳票印刷のために、サーバ上でテンプレートからPDFを生成したい。でも高いのヤダヤダ。OSSでやりたい。
永遠のテーマかと思っていましたが、今はこんな方法があった!
OpenOffice.orgをPDF変換のバックエンドサービスにしてしまう方法。
まずLinuxサーバ(今回はCentOS 5.4)にOpenOffice.orgをインストールする。結論から言うと現時点yumでインストールできるOpenOffice.org 2.3.0では後述のjodconverterがうまく動作しなかったので、OpenOffice.orgサイトから最新版3.2(Linux RPM用 JRE無し)をダウンロードしてインストールした。
$ tar xvfz OOo_3.2.0_LinuxIntel_install_ja.tar.gz
$ cd OOO320_m12_native_packed-1_ja.9483/RPMS/
# rpm -ivh *.rpm
そして肝。OpenOffice.orgをサーバとして起動する。
# /opt/openoffice.org3/program/soffice \
-headless -nofirststartwizard \
-accept="socket,host=localhost,port=8100;urp;" &
続いてJDOConverterというのをダウンロードする。
これを使うと、こんな感じでコマンドライン一発でOpenDocumentのファイルをPDFに変換できる。
$ java -classpath jodconverter/lib \
-jar jodconverter/lib/jodconverter-cli-2.2.2.jar \
example.ods example.pdf
期待以上の非常に良好な結果が得られた!
OpenDocumentでなくてもOpenOffice.orgが読めるファイル形式ならOK。
OpenDocumentはXML+ZIPなので、比較的簡単にごにょごにょすることができる。というわけで、あんなことやこんなことができるのではないかと思います。夢が広がる。
JavaScriptコード内のHTML解釈
Firefoxに次のようなJavaScriptを食わせると、これがうまく動いちゃうんですねえ…
<script type="text/javascript"><br />
document.write('hello!');<br />
</script><br />
行末に<br />が入っている状態ですが、<br />なんて無かったことにしてくれるようです。特にエラーも発生しない。
しかし他のブラウザ、IE、Safari、Chrome、Operaではいずれもエラーになって動作しません。
問題はブログの記事に<script>を埋め込む時、「改行を自動的に変換」モードなどになっていると、このように<br />が挿入されたHTMLが生成されてしまいます。こうなると、普段Firefoxを使っていると普通に動いてしまうので気付かないのですが、IEとかで見ると動かん!ということになってしまいます。気を付けましょう。
うるう年
PS3が今年をうるう年と勘違いしてバグったらしいですね。我々の業界ではうるう年にまつわるシステム障害というのは定番だけど、今年は勘違いするような年でもないので(あ、オリンピックイヤーではあるか)、どうしてバグったのかは謎。
さて、うるう年(1年が366日)というのは4年に1回必ず訪れるものだと思われることが多いかもしれないけど、その解釈は間違いなわけです。このことはある程度経験のあるプログラマには常識だったりします。なぜなら何年かプログラマをやっていれば教えられなくてもこの問題に気付く機会が必ず1度くらいは訪れるはずだから。
グレゴリオ歴におけるうるう年とは、次の通り。(Wikipediaより)
- 西暦年が4で割り切れる年は閏年
- ただし、西暦年が100で割り切れる年は平年
- ただし、西暦年が400で割り切れる年は閏年
このルールを知らずに(あるいは手抜き実装により)単純に4年に1度のうるう年で計算してしまいカレンダーが狂ってシステムに重大な障害が起きることがしばしばある。というかそれ以前にちょい計算でうっかりうるう年を考慮すること自体を忘れていることも超多いです。(すいません俺も先日やった)
しかし最近のアプリケーションフレームワーク、たとえばRuby on Railsなんかだと、Date、Time型が拡張されて自動的にうるう年を考慮した形で日時の演算ができたりする。これは無茶苦茶便利な一方で、「うるう年とは」というプログラマには必須な常識(でも一般的には雑学のようなもの)を学ぶ機会が失われ、かえってバグが増えることを危惧します。フレームワークが便利になってもどうしても自分でゴリゴリ書かなけばいけないシチュエーションというのは必ずあるので。…ということでこのエントリーを書いてみました次第です。
ダイビングで役立ちそうなiPhoneアプリ
AppStoreで「scuba」とか「diving」とかで検索すると色々出てくるけど今回はそれ以外の一般アプリで役立ちそうなものを紹介します。(ダイブプラナーなどは色々揃ってるみたいだから必要な人はAppStoreで探してみると良いでしょう)
ダイビングに行く直前に確認が必要な最重要情報が風向風速です。これで潜れるエリアが絞られます。2大天気予報アプリの「WeatherNews」「そら案内」ともに風予報が出ます。WeatherNewsのほうが情報は細かいですが、そら案内のほうは波予測も出ます。個人的には日常的にはそら案内をメインで使っています。
風の次に重要な情報が潮汐です。ポイントによっては干潮時にエントリー/エキジットが難しくなりますし、大潮の時は潮の流れにも大きく影響します。潮汐はポイント選定に必要な情報です。
潮汐アプリは色々あるのですが、気に入ったものが見つからず、結局PC向けサイトで確認していたのですが、最近アップデートされた「釣り気分」というアプリがかなり良い感じなので紹介します。
シンプルで見やすいし、操作性も良い。しかも引き潮が発生する時間も一発で分かる優れものです。しかも無料!
釣り目的ではないので、アプリ名とアイコンが残念なところですが…
最後に電車ダイバーの方にはたぶん超役に立つと思われるのが「駅.Locky」です。
ダイビングエリア周辺の駅は電車の本数が少ない場合が多いので時刻表の確認は必須かと思います。このアプリは周辺の駅の電車の発車時刻をカウントダウン表示してくれます。僕は車ダイバーなので使いませんが、無茶苦茶便利そうじゃないですか!お客さんを送迎するショップのスタッフにも便利かも。
最後に重要なことを言います。
家に帰ったら、モグリー(mogry.jp)でログ付けてね!(iPhone専用サイト、アプリはまだ準備できていませんけど)
24日ぶりの自転車通勤
今月に入ってスーツ出勤だったり天気が悪かったりが重なって全然乗れなかったのだ。
自転車通勤はじめて5年経ったけど、こんなに乗ってないのは初めて。
短距離とはいえ、日課の運動をしないと運動不足感が激しい…
今年はホノルルセンチュリーライド参加を予定しているので、通勤だけじゃなく練習しないといかんなあ…
デブサミ2010
今年もデブサミ行ってきました。2日目の午後だけですが。
聞いてきたセッション。
自分でできるWebアプリケーション脆弱性診断
(上野宣)
一応今回のお目当て。僕は表向きプログラマですが、ここ数年Webアプリのセキュリティ診断の仕事をかなり手がけています。脆弱性スキャナなども自作して診断手法もかなり確立してきました。今後の仕事のやり方に何か少しでも参考になるところがあればという気持ちで聞きに行ってみました。
結果としては診断技術に直接関係ありそうなところで特に新しく得られた情報はなかったのですが、LASDECの話は知らなかったので、後で見てみよう。
どういう人をターゲットにしているのかちょっと分かりにくいセッションになってしまっていた気もしますが、デブサミで講演するのに意義のあるテーマだったと思います。
クラウド開発に役立つ OSS あれこれ
(水野正隆/奥垣内喬)
ちょ…ちょっと僕にはすぐには関係の無い内容だったかな…
C++0x、 Ruby、ECMAScript5 言語の国際標準化について
(高橋晶/前田修吾/竹迫良範)
今はC++には興味がないので(C++0xなんてのがあることすら知らなかった)、関心はRubyとECMAScriptですね。いちプログラマにとっては国際標準化は結構関心の低い話なのでこんな機会でもないとなかなか状況を知ることがないです。
今年はまつもとさんのセッションがないので、代わりに前田修吾さんの名前を見つけてとりあえず申込んだセッションでした。
実践Cucumber ~ユーザの視点でシステムの振る舞いを…
(諸橋恭介)
Cucumberについては、以前moroの日記を見て興味をもったものの、試す機会がなくて放置。忘れ去られていた。…Seleniumと比較したかったんだけど…
今回、そのmoroさんのセッションを見つけたので聞いてきました。
デモが見られるかなと期待していたんだけど、文字だけでした。でもそれでも十分魅力は感じた。総合テストが「みんな大好きRubyで書ける」。
TDDがなかなかうまくいかないので、回帰可能な総合テストを重視してみたいと思っていたところです。今ちょうどいいターゲットアプリもあるので、早速試してみなくては。
次世代Web標準 HTML5 最新動向
(矢倉眞隆/小松健作/羽田野太巳/白石俊平/上山智士/竹迫良範)
最後は一番熱いセッションでした。まず人が多い。聞きに来ている人も多いが講演者も多い。長丁場でオケツがいたくなった。
個人的にHTML5はPC用というよりもスマートフォン専用サイトを作る用として注目しています。今から勉強するのでその可能性についてはまだなんとも言えない。
会場で先行販売のこれ買ってきた。
ところで誰かがつぶやいていたけど、デブサミはよほど関心のあるセッションだとかいう場合を除いては基本的にスピーカーでセッションを選んだほうがいいという意見に同感。
オーシャンズ
土曜日はダイフェスのあとアクアシティへ。
なんかペットショップができてた。熱帯魚コーナーがあった。そこにミナミハコフグの幼魚がいて超かわいかったわけですが、これって、成魚になるとどんな姿になるのか、ちゃんと説明して売っているのでしょうか。大変気になるところです。
さて、映画「オーシャンズ」を見てきました。
この映画はすごいです。「撮れるわけねーだろ」的な映像ばかりが次々と出てくる。正直撮れるわけないので、どうやったのか意味がわからないです。CGですかこれ。
音声はほとんどアフレコなんだとは思うが、これがアフレコなんだろうと分かっていてもすごかった。
海中に馴染みの無い人なら映像の迫力と海中生命の営みに圧倒され、水中撮影の経験がある人なら、ありえない映像に驚愕するかと。
とりえあずBDが出たらメイキングとか見たい。
しかしこれだけの迫力の映像を観せられ各々が自然に感じるであろう感情を後半無理やり押し付けようとされた感じになったのは少し残念な部分ではある。しかし特定のシーンだけをもってこの映画を評価してしまうのは非常にもったいない。海好きとしては映像的には永久保存レベルです。
ダイビングフェスティバル
日本ではダイビングのオフシーズンであるこの時期に毎年開催されるダイビングの展示会@東京ビッグサイトです。
昔は、日本中のダイバーが集まってくる、まさにフェスティバルでした。各地でお世話になった現地スタッフに東京で会える数少ない機会でした。しかし池袋で開催されるマリンダイビングフェアの賑わいとは対照的に明らかに年々寂しい雰囲気に。いつのまにか各地の人たちも出展しなくなってしまったので、僕もここ3年くらい行っていませんでした。
…このダイビングフェスティバルが、去年くらいから無料になったということで、少しは息を吹き返しただろうか?ということで久しぶりに行ってきました。
結果としては、まだ残念。というか3年前よりさらに寂しい感じに…。なんとか盛りあげようという努力を感じるフラダンスショーを中心とするハワイアンブースは会場の半分くらいを占めているけど、全くダイビングと関係ないってのが痛い。
器材メーカー、各地リゾートともに出展が少なくて本当に残念。もはやビッグサイトでやるような規模ではないかと…。
昔の雰囲気を知っているだけに、なんとか息を吹替えして欲しいです。
さて、そんなダイフェスでも個人的に見所はありましたよ。INONから新ライトの発売予告きました。っていうかもうWebに出てた。個人的にイチオシであったLE250に早くも新機種ですよ。
まず2AAになって小型化したLE240。光量的にはLE250とほとんど同じだけどランタイムは短い(60分)。ダイビングライトとしてはランタイムが短かいかもしれないけど、カメラのフォーカスライトには最適かと。
そして光量が550ルーメンと大幅にパワーアップしたとLE550-WとLE550-S。2つの違いは照射範囲角度。Wのほうは照射角75度とかなり広く、完全にビデオライト用ですかね。これなら広角の撮影でも相当良い効果が得られるんじゃないだろうか。ビデオ派はぜひチェックを! でもこのライト、ナイトダイビングで使ったら面白いことになりそうで試してみたい。
一方Sのほうの照射角は40度。これは数値的にはLE250に拡散フィルタを付けた状態と同等でかなりワイド集光です。LE250の標準(20度)でも極端にスポットという印象ではないので、この集光が使いやすいのかどうかは、試してみないと分からない。
とにかくこのくらいの性能になると、体感的にはもはやHIDライトに引けを取らないと思います。ちなみにFishEyeからもLED版のダークバスターなども出ていたけど、HIDと大差ない価格や重量では魅力を感じず、INONが水中LEDライト界で突出した印象があります。
ライト好きとしては、LE550-Sが購入候補です。ランタイムは70分と、かなりギリギリのラインですが、毎回eneloop充電をする運用なら問題ないかな。…正直もうちょとサイズ大きくなっても4AAでもいいのにな。と思ってるんだけど。
もうひとつの見所は、オリンパスのPEN Lite E-PL1とその純正ハウジング。
ハウジングの印象は、思ったよりはデカかった。これはEVFが入るというところと、超広角ズーム対応のポートが付いていることが要因かと思われます。
しかし価格面のアドバンテージはあります。コンデジから卒業したいが一眼レフまでは手が届かないという層はぜったいいると思うので、魅力的な選択肢になることは間違いないでしょう。
カメラ本体はかなりコンパクトで、これはこれで魅力的。
>> 過去の記事









3/ 4 from けろり
チリの地震で地球の自転周
デブサミ2010
2/22 from Q
あ、そうなんですか。失礼
デブサミ2010
2/21 from みやまえ
最初の1冊もなにも、この
デブサミ2010
2/20 from Q
HTML5がすっごく気に
(潜)ダイビング情報共有サイト「モグリー」ベータテスト開始!
2/14 from みやまえ
閲覧など一部機能は携帯か