2021/03/10(水) カスペルスキー kaspersky に就職しました

2020/09 で Veritas をレイオフになり、けっこう長く就職活動をしていましたが、2021/02 にようやくオファーをいただきました。就職先はカスペルスキー kaspersky という、ロシアのセキュリティソフトウェアメーカーで、仕事は相変わらずテクニカルサポートです。

Sun. Jan. 17, 2021 Make HOLUX ezTour usable, even after HOLUX’s failure

This entry is English translation of essense of my Japanese entry titled “2020/12/10(木) HOLUX ezTour を復活させる…”

After HOLUX had been bankrupted, HOLUX m-241 (and m-241Plu)’s logger software ezTour stop showing Google Maps properly. I tried to restore this.

ezTour uses Google Maps API key: “AIzaSyBuAcOB_vBhIk5EcBGT4zMQ8NNPh7ORKjA”. Of course HOLUX had been paying for this key, but after HOLUX’s failure, they stop paying and Google stop Maps API service to this key, so that ezTour is no longer able to show Google Maps.

I start looking ezTour exe binary by use of a binary editor tool (I used Stirling), and found that the API key shown above in UTF-16 format. Google Maps API key can be obtained by anyone. I got mine and replace the API key in the binary file by the binary editor.

The API key is tied to accessing domain name. The domain ezTour using to access Google Maps is holux.com, so I need to modify the URL part which can be found in the binary in UTF-16 format as well.

One of the original URL part is “http://gomap.holux.com/uploadhtmlfile.php“. This is hard coded in the ezTour binary. As I don’t own holux.com domain, so I need to replace this URL with my own domain. I used the binary editor again to replace this URL. I found a few other URL’s and replace domain part of all of them.

Actually, my own domain is bit longer than holux.com, so I need to shorten the rest part of URL like, modify “uploadhtmlfile.php” to “updhtml.php”, so that the total length of accessing URL isn’t changed.

I can’t see the actual script of uploadhtmlfile.php, but I can assume that it saves the received content to the file named after [proj_id] query string with “.html” extension. So I created a PHP script as below. (My server’s document root is /volume1/web/ and you need to modify that part to actual document root of your web server if you use this script.)

<?php
// ezTour uploader (emulated)
// Fri. Oct. 04, 2019 by Hirotoshi OKUMURA

$uploaddir = ‘/volume1/web/ezToolD/TGV/ezTour/’; // need to be changed for actual path for that web server’s document root
$uploadfile = $uploaddir . basename($_POST[‘proj_id’]) . ‘.html’;

echo ‘<pre>’;
if (move_uploaded_file($_FILES[‘file’][‘tmp_name’], $uploadfile)) {
echo “File uploaded.\n”;
} else {
echo “Error on move_uploaded_file()\n”;
}

>

updhtml.php

In my tweet below, you can see the screen shot of working ezTour even after the date of HOLUX failure.

2021/01/05(火) Let’s Encrypt SSL 証明書

この Blog、SSL 対応自体は以前からしていたのですが、証明書を自分のドメインで取っていないとか、HTTP でもアクセス可能だとか、中途半端な状態のままでした。

ふと思い立って、2021/01/05(火) に Let’s Encrypt の SSL 証明書を発行して、ちゃんと自分の okumura.com ドメインの証明書にして、また HTTP でアクセスに来た場合は HTTPS にリダイレクトする設定を行い、SSL 化しました。

2020/12/10(木) HOLUX ezTour を復活させる…

私の blog にはあまりアクセスはありませんが、twitter log となっている旧 Blog (http://blog.okumura.com) のうちのある 1 日、2019/09/11(水) のページ にはけっこうアクセスがあります。HOLUX ezTour を使えない人が検索で見に来ているのかな、と思いますが、この 2019/09/11(水) の tweet には、具体的な対策は何も書かれていません。

その後、2019/09/14(土) の tweet (2019/09/14 のつぶやき) では具体的な対策を書きましたが、Google Maps への HOLUX の支払いが停止してしまったことにより、ezTour に組み込まれている HOLUX が契約していたと思われる Google Maps API キー “AIzaSyBuAcOB_vBhIk5EcBGT4zMQ8NNPh7ORKjA” が無効になってしまい、この 2019/09/14(土) に書いた方法は使えなくなってしまいました。

そこでもう少し調べてなんとかできないかやってみました。
ezTour の実行ファイルをバイナリエディタで確認すると、上記のキーが UTF-16 形式で保存されている個所がありました。Google Maps の API キーは誰でもお金を払えば登録できるので、登録して、バイナリエディタで ezTour の実行形式の該当部分をバイナリエディタで書き換えました。また、Google Maps の API キーがアクセスする時の Host: ヘッダーのドメイン名と関連付けられているため、元々 holux.com となっていたドメイン名部分も、バイナリエディタで書き換えてしまい、かつ、そのドメインのサーバー (つまり自分の web server) で動く php プログラムを作ることで、ezTour はちゃんと Google の地図を表示できるようになりました。ドメイン名部分を単純に書き換えると、私の所有しているドメインとは長さが異なるため、バイナリ全体の長さが変わってしまいます。それでも動くかどうかはよくわからなかったので、URL のドメイン名とは別の部分を変更して長さが変更前と全く同じになるように調整しました。
URL の部分は具体的には、”http://gomap.holux.com/uploadhtmlfile.php” という URL が実行形式内にハードコードされています。これを自分のドメインに変更するのですが、自分の所有しているドメイン名はもっと長いので URL のドメイン名部分が長くなってしまうので、例えば “uploadhtmlfile.php” を “updhtml.php” に変更して、その長さの分を短くして、URL 全体の長さを同じにするようにしました。

本来の uploadhtmlfile.php の中身は当然見れませんが、外形的にやっていることは proj_id という query 引数に html 拡張子を付けたファイルに、クライアントから送られてきたデータを全て保存しているだけとわかったので、その動きに合わせて以下の php スクリプトを作りました。(ドキュメントルートは /volume1/web/ です。実際に試みられるのであれば、それぞれの web server の document root に応じて書き換える必要があります)

<?php
// ezTour uploader (emulated)
// Fri. Oct. 04, 2019 by Hirotoshi OKUMURA

$uploaddir = ‘/volume1/web/ezToolD/TGV/ezTour/’; // need to be changed for actual path for that web server’s document root
$uploadfile = $uploaddir . basename($_POST[‘proj_id’]) . ‘.html’;

echo ‘<pre>’;
if (move_uploaded_file($_FILES[‘file’][‘tmp_name’], $uploadfile)) {
echo “File uploaded.\n”;
} else {
echo “Error on move_uploaded_file()\n”;
}

>

updhtml.php

以下の 2019/10/04(金) の tweet が、実際にこれらの変更を行った後の画面です。

現在 2020/12/09(水) でも、この書き換えた実行形式で ezTour は HOLUX m241Plus から読み込んだ GPS log データの地図を表示できています。
ただ、実行形式ファイルを書き換えてしまっているためか、セキュリティソフトが警告を出すようになってしまいました。

上記までの説明を読んで意味が理解できる人は、おそらく全く同じことができます。リスクと言えるようなリスクはありませんが、own risk でやってみようという方のヒントとなれば幸いです。なお、上記までを読んで「自分でもできるな」と「思えない人」への質問に答えるつもりはありませんのでよろしくお願いします。

2020/10/19(月) Happy Birthday my blog

奥村の貧乏暇なし Blog は、SeeSaa blog でホストするブログとして 2005/10/19(水) に開設されました。途中 WordPress への移行、さらに別サーバーの WordPress への移行がありましたが、通算で今日で 15 周年となり、16 年目に突入します。

まぁ、全然更新してませんが…

2020/07/09(木) WordPress メール投稿設定、とある web mail からの投稿試験

WordPress でメール投稿の設定後、ガラケーのメールからは投稿が確認できました。

次は、とある web mail から、設定したアドレス宛にメールを送って試験をしています。メール署名付けたまま送って、それも投稿に載ってしまったりという間違いをやってしまいそう…

2020/07/06(月) Hello world! – 新しいサーバーに移行しました。

WordPress を古いサーバーから新しいサーバーに移行しました。

新しいサーバーは仮想サーバーが設定できるので、URL を、パス名の付いていた http://server.okumura.com/blog という以前の URL から、http://weblog.okumura.com/ と、ちょっと見栄えのよい URL に変更できました。(http://blog.okumura.com は、さらに以前から使っている SeeSaa の Blog を、Twitter log として残してあるので、weblog にしました)

2018/04/17(火) 朝日新聞がダウンロードできるようにしている、陸自イラク日報 370 + 26 + 39 = 435 日分の PDF

朝日新聞が web site で昨日 2018/04/16(月) に公開した記事 「陸自イラク「日報」防衛省が公表した全文書」 は、陸自イラク日報 (3 区分それぞれ、370 日分 + 26 日分 + 39 日分 = 合計) 435 日分の PDF をダウンロードできるようにしている記事です。

とても素晴らしい記事だと思いますが、PDF を 1 つ 1 つダウンロードするのはとても大変です。

この Blog post は、上記の記事からリンクされている 435 個の PDF ファイルを HTML の img タグで指定してあります。PDF を img タグで指定しているので、この Blog post 自体は、壊れた画像ファイルのアイコンが 435 個表示されるだけになっています。

何の意味があるのかというと、こうすることで、この Blog post を表示させてブラウザーでダウンロードすると、1 回のダウンロード操作で、435 個の PDF が画像扱いでダウンロードされるということができます。そのような操作で使われることを意図した post です。

ご活用ください。



















































































































































































































































































































































































































































2016/12/25(日) Tokyo Bowl 慶応義塾大学ユニコーンズ vs 立命館大学パンサーズ

母校、立命館大学のアメリカンフットボールチーム・パンサーズは、今年 2016 年は関西学院大学ファイターズに敗れて、甲子園ボウルに出場できませんでした。

3 年前から、関東の大学リーグが、関西リーグの有力校チームを招待して行う、東西大学対抗戦と言う名目で Tokyo Bowl というボウルゲームを新設しました。有力チームと言いますが、もっとも「有力」なチームは東西とも甲子園ボウルに出ることになるので、開催初年以来、東西それぞれの 2 位のチーム同士が対戦しています。(ただし、公式には 2 位のチームが出場するとはどこにも書かれていないと思います)

甲子園ボウルに出場できなかった立命館大学は、この Tokyo Bowl に出場することなりました。

3 年前の第 1 回の Tokyo Bowl も立命館大学が出場しています。その時は見にいけませんでしたが、今年は他の予定とも重なっておらず見に行くことができました。

今回の会場は、横浜スタジアムです。第 1 回はアミノバイタルフィールドだったそうですが、第 2 回は川崎球場と、Tokyo Bowl という名前であるにも関わらず、神奈川県での開催となり、第 3 回の今回も、神奈川県開催です。Kanagawa Bowl やんと突っ込まざるを得ません。

非常に寒い日ですが、天気は雲 1 つない快晴の中、横浜スタジアムに到着しました。客の入りはとても寂しく、慶應、立命館、どちらも 2000 人いるか、いないか、という感じです。しかも地元の慶應は、一応応援団の吹奏楽、チアリーダーがいますが、立命館側は、応援団なしです。

スタンドがスカスカのまま試合前セレモニーが始まりました。まずはコイントスです。特にコイントスのために誰か呼ばれているわけでもなく、審判がコイントスをします。ボウルゲームで、こんなあっさりしたコイントスは珍しいように思います。コイントスには慶應が勝ち、後半のレシーブを選択しました。

コイントス終了
コイントス終了

それぞれのチームが円陣を組みます。私は長年立命の円陣は何を言っているのかわからなかったのですが、「Whose house? Whose house?」 と中央に立つ人 (主将?) が問いかけ、円陣を組む選手たちが、体を左右に揺らしながら 「Rit’s house、Rit’s house」 と応じているらしいです。

Whose house? Rit's house!
Whose house? Rit’s house!

そしてキックオフですが、キックオフの体勢に両チームが入ってから、なかなか審判がキックオフの合図をせず、試合が始まりません。どうやら試合前のスタート進行のタイミングが不適切だったので、キックオフ時刻の 14:00 まで、まだ 5 分ぐらい余っている状態で、両チームをキックオフの体勢にさせてしまったようです。審判団のミスだと思います。結局、一度両チームに体勢を解除させました。それぞれ、フィールドにいる選手だけで円陣を組んでいましたが、今更話をすることもないだろうから 「この審判団アホちゃうんか」 というような話をしていたのだろうと思います。後ほどわかるのですが、実際、この日の審判団は、アホでした。

結局 14:00 になる前にキックオフとすることを決めたらしく、再度両チームの選手がフィールドに散らばり体勢を作り、キックオフです。

キックオフ
キックオフ

キックオフ
キックオフ

立命館のレシーブで試合が始まり、最初のドライブはパントで終わります。立命館の選手は、慶應の実力がよくわからず、探り探り試合を進めている感じでした。

慶應のドライブもパントで終わります。

次の立命館のドライブはかなり進みましたが、タッチダウンには至らず、フィールドゴール (FG) で終わりました。とりあえず先制です。

立命館、先制のフィールドゴール (FG)
立命館、先制のフィールドゴール (FG)

その後は、立命館の怒涛の攻撃という感じで、このままだと完封かな、という感じの展開でした。第 1Q は、まだ慶應の力を試しながらプレーしている感じでしたが、第 2Q に入ると、特に立命館のディフェンスチームがものすごく機能するようになりました。相手チームのオフェンスがどの程度なのかをつかめたようで、慶應のオフェンスはほとんどゲインできない状況になってしまいました。

後半に入ると、立命館は 2 線の選手を中心にしたプレーになったようで、あまり得点は奪えなくなっていましたが、それでも力の差は歴然という感じでした。慶應の攻撃は、点差が大きいためパス中心で大きなゲインを狙い続ける必要があったのはわかるのですが、ランも交ぜないと、パスだけでドライブできるはずがありません。慶應のクオーターバック (QB) は、後半は全く落ち着いてプレーができていなかったと思います。インターセプトも 5 回ありましたが、そのうち 1 回は、パスの投げられた先のフィールドポジションには、その地点に向かって走っている慶應のレシーバーを立命の選手がブロックしているということもなく、立命館の選手しかいないという、八百長で負けようとしているとしか思えないようなプレーさえありました。

では立命館が強かったのかというとそんなことは全然ありません。例えばこの写真のプレー。この距離なら外さないだろう、というような距離の FG を外したのですが、スナップがずれてホルダーがボールを受け取るのに体を大きくひねらなければならないような状況になっていました。

FG トライでスナップが大きくずれたシーン
FG トライでスナップが大きくずれたシーン

この後、ホルダーはよく立て直してちゃんとボールをセットしたと思います。

ホルダーはがんばってセットしたように見える…
ホルダーはがんばってセットしたように見える…

しかし、キッカーが動揺したのかちゃんと蹴れず、FG 失敗となりました。

あと立命館のこの試合での問題点は反則です。コンタクトスポーツでは避けがたい反則というのはありますが、今日の立命館は、明らかに避けられるような反則を何度も繰り返していました。中盤以降は、あまりに弱い慶應に、立命館側のプレーヤーは discipline を保てなくなっていて、反則しまくりになっていたという印象です。

あと、この試合で気になったのは審判団です。意味の無いイエローフラッグを投げたり、反則のコールを間違えたりしてました。

審判の行為の中で、慶應の選手にとってかわいそうだったのは、立命館のバックワードパスを、慶應の選手がはたいて落としたプレーです。慶應の選手はおそらくバックワードパスだと認識していたので、パスインコンプリートにはなっていないと判断していたはずです。フィールドポジションも立命館のゴールに近い場所だったので、慶應の選手が拾ってプレーが続行していれば、タッチダウンになっていてもおかしくない状況でした。慶應の選手がバックワードパスをはたいて落としたと判断していたことは、動きを見ていても明らかだったと思います。ところがほとんどの審判がフォワードパスだと誤認識していたらしく、パスインコンプリートと判断して笛を吹いてプレーを止めてしまっていました。笑ってしまえるのは、この直後にプレーを再開しようとした時、「フォワード・パスインコンプリートだから」 という理由でプレーを止めたので、前回のスナップ位置からプレーを再開しようとしている途中で、審判団の 「プレーの確認」 があって、「最後のプレーはバックワードパスを落としていたので、プレー再開位置は元の位置ではなく、ボールデッドの地点です」 と場内への説明を行って、スナップ位置を下げてしまったことです。ヒドすぎます。

立命館の選手にとってかわいそうだった審判のミスは、立命館のディフェンスがオフサイドした時の判断です。立命館のディフェンスがスナップ前にオフサイドした時、その瞬間にイエローフラッグが 2 枚飛びましたが、レフリーはプレーの開始を止めずに続行させていました。立命館のディフェンスの選手の何人かは、スナップされる前に飛んだイエローフラッグを見て明らかに気を抜いていたように見えました。そのためもあってか、慶應のこの日のオフェンスでは一番ゲインがあったのではないかと思うぐらいのゲインがありました。笛を聞く前に気を抜いてしまった立命館のプレーヤーにも問題はあると思いますが、レフリーはなぜ笛を吹かなかったのでしょうか? これはレフリーのミスだと思うのですが… (プレーを続けさせる別の基準があったりして、違うのかな…?)

こんなヒドい審判をされていても、両チームとも何の文句も言わずに淡々と審判の結果に従ってプレーしているのがすごいなと思いました。

そんな感じで試合は進み、結局慶應義塾大学ユニコーンズは FG 2 本でタッチダウンなしの 6 点のみで、慶應義塾大学ユニコーンズ 6 – 44 立命館大学パンサーズという、それなりの大差が付きました。

慶應義塾大学ユニコーンズ 6 - 44 立命館大学パンサーズ
慶應義塾大学ユニコーンズ 6 – 44 立命館大学パンサーズ

試合の最後は立命館の攻撃で、ダウンを更新したところでニーダウンでの決着となりました。

立命館大学パンサーズ、最後はニーダウンで時計を流して試合終了
立命館大学パンサーズ、最後はニーダウンで時計を流して試合終了

慶應義塾大学ユニコーンズの試合を初めて観戦した感想としては、ランプレーでは何度か非常に力強いよいプレーがありましたが、それ以外の点では、「本当にこのチームが関東の 2 位なの? 法政よりも、日大よりも強いの?」 という感じでした。甲子園ボウルでも関西のチームの優勝が続いていますが、去年 2015 年の甲子園ボウルの早稲田大学ビッグベアーズ対立命館大学パンサーズの接戦を見る限り、関西と関東の差は縮まってきているように思っていました。しかし、今日の試合や、1 週間前の甲子園ボウルを見ている感じだと、今年は差が広がったのかも、という印象を受けました。

最後に、プレーの合間に気になったものを撮った写真をいくつか…

立命館の使っていたテントですが、関東大学から借りたもののようです。セブンイレブンのロゴが入っていて 「セブンイレブンは関東大学アメリカンフットボール部を応援します。」 とプリントされていました。

セブンイレブン・関東大学のテント
セブンイレブン・関東大学のテント

座った席の上段 (つまり、後ろ) を振り返ると、立命館大学パンサーズのスポッター席がありました。

立命館大学パンサーズのスポッター席
立命館大学パンサーズのスポッター席

試合の後半、フィールドにいる報道カメラマンらしき人が、なにやら全然関係ない方向にレンズを向けて写真を撮っていました。

どこにレンズ向けて写真撮ってるの?
どこにレンズ向けて写真撮ってるの?

方向から判断すると、この時の被写体は、ナイター照明です。

撮影対象は、おそらくこのナイター照明
撮影対象は、おそらくこのナイター照明

この日は天気が良かったので、青空背景にナイター照明を撮ると、「秋晴れの下、横浜スタジアム」 という感じの写真が撮れそうではありました。

慶應の応援団のうち、吹奏楽は遠目で見ていてはっきりとはしませんでしたが、おそらくエキサイティングシートに座っていたと思いますが、チアリーダーたちは、そのまっすぐフィールド寄りではなく、ずっと端の方、エンドゾーンの真横ぐらい端っこの方に居ました。

慶應の応援席。こちらから見て向かって左手の方に観客が多く座っているのに、チアはこの写真では右下にいる
慶應の応援席。こちらから見て向かって左手の方に観客が多く座っているのに、チアはこの写真では右下にいる

立命館側もそうですが、慶應側も、応援に来ていた観客の多くは 50 ヤードラインの真横となるあたりに座っていたので、エンドゾーンの真横あたりの観客席には、ほとんど人がいません。そのためチアは試合中、ほとんど観客のいない客席に向かって踊り続けていました。

慶應チアの目の前のスタンドはガラガラ
慶應チアの目の前のスタンドはガラガラ

たぶん位置決めしてバミ・テープなどでマーキングしてしまってあるので、試合が始まってからおかしいと思っても、場所を動けなかったのだと思いますが、吹奏楽があの場所でやることを決めた時に、どのあたりに一番観客が入るかは考えていたはず。なぜチアだけあんな端っこに追いやったのか不思議です。

あと、フィールドに 50 ヤード、40 ヤードなど 10 ヤード毎の数字が書かれていますが、今回のフィールドは、エンド手前のエンドラインのところに “G” と書かれていました。”G” は “Goal” の “G” のような気がしますがアメリカンフットボールではあまりゴールと言わないので、ここに “G” と書いてあるのはかなり不思議な感じがしました。

エンドラインのところにある謎の "G" のマーク
エンドラインのところにある謎の “G” のマーク

来年は Tokyo Bowl ではなく、甲子園ボウルを観戦したいので、立命館大学パンサーズにがんばってもらいたいところです。