WiFiテザリングのSSIDに危険な単語を使った乗客、飛行機から排除される

デトロイトからモントリオールに向かうGoJet航空の飛行機が、ヤバいWiFiのアクセスポイントがあるということで離陸できず、ホットスポットの持ち主を排除したというニュースがありました。 出発予定時刻の20:10を過ぎ、客室乗務員がWiFi機器を切るように何度注意しても、オフにならないWiFiアクセスポイントが有ったそう。機内放送でこのままだと警察を呼びますよと警告しても無駄で、結局10台ほどの緊急車両が飛行機を囲み、警官が乗り込んで来て機器の持ち主らしき二人、ケベック州から来ていた42歳男性と31歳女性の二人を連れ出して行ったそう。 https://twitter.com/ReclaimerRob/status/1218041835177893890 WiFiの電波が飛んでいるかを確認して、止まるまで出発しないなんて運用がされているんですね。あまり聞かないけど日本でもそうなんでしょうか。 しかし、緊急車両の数といい、今回の事件がここまでの大騒ぎになったのは、そのWiFiアクセスポイントの名前がREMOTE DETONATOR(遠隔

Fingerbot – リモート操作でボタンを押せるデバイス

メーカーよりレビューしてほしいとサンプルの貸し出しを受けたものです。家電のリモート操作は僕の家でも少しずつ進めていることもあり、面白そうなので借りてみました。 Fingerbot は、スマートフォンから操作できる物理スイッチのガジェットです。 https://www.kickstarter.com/projects/adaprox/fingerbot-control-all-devices-remotely-through-voice-or-app?lang=ja 押すという一動作だけを行うとても単純なデバイスですが、押して動くものは家の中じゅうにあるので、工夫次第で様々な家電などを遠隔操作することができるというわけです。 スイッチにつけたくなるけど、これじゃ液晶が見えなくなる こうか? 邪魔をしないという意味ではこう? はみ出てるので、両面テープだけではこれはなんともならなさそう。取り付けは追加で何か多少の工夫が必要そうですね。手動「でも」押したいなら場所の決め方は慎重にしないと。 手に取った時は「すごい小さいな」と思ったんですが、こうやって設置場所を考えるともっと小さくてもいいかと思うこともあります。でもまあ、バッテリー内蔵で長期間充電せずに動く(←サイトの説明では)ためには、こんなものなのかな。 パソコンはタイマーで起動しようと思えばできるはずなので、あまり意味ないけど。 マンションの鍵はスマートロックにしているのですが、建物のオートロックは結局専用鍵で開けないといけない。Fingerbot でタッチすれば自分で呼び出して自分で開錠することもできそうです。 サンプルには一種類のアタッチメントだけついてきました。先っぽの部分が取り外せて、交換できます。タッチパネルを叩くのに向いたアタッチメントなど複数違った形状のものがセットで購入できるようなので、操作したい相手のスイッチに応じて使い分けることで、よりミスなくスイッチのオン・オフができるということでしょう。 単純に押すだけの似たデバイスは前に見たことがあるので、Fingerbot が優れているとすればこのアタッチメントが交換できるところなのかなと思いました。既存のアタッチメントではどうしてもうまくいかないところを、3Dプリンタで自作・あるいは有料で作ってもらうとかもありそうです。 https://www.youtube.com/watch?v=-B6yVNf9S44 Kickstarter のキャンペーン(今日まで)で1個入手するなら$29、実際のところはインターネットとつなげるアダプタ(Adaprox

AI Dungeon – AI自動生成で無限に遊べるテキストアドベンチャーゲーム

AI Dungeon は、テキストアドベンチャーゲームをAIにより自動生成してくれるというPython 製のツールです。 Jupiter Notebook で動くものが配布されており、Google Colaboratory 上で自分の AI Dungeon を動かすことができます。 ブラウザで数分待つと始まる。簡単です。 大昔にあった Zork シリーズ的なUI。「動詞」で始まる命令文を入れることで、何かが起こります。 「それをやるとループしてしまいます」という返答だらけになり詰まったこともありますが、それでも大昔の同種のテキストアドベンチャーゲームに比べると、かなり自由度が高い。思いついた動詞で適当に命令しても、それに合わせた結果を返してくれます。このへんはさすが自動生成。 ただし、ストーリー展開に整合性が取れているかというと、自分が遊んでみた範囲では、辻褄が合わなかったり急に場面が変わったりの連続で、寝ている時に見る夢に近いような印象を受けました。 AI Dungeon

The Deep Sea – 深海の深さをブラウザの縦スクロールで表現

The Deep Seaは、深海の生物を紹介するウェブサイトです。 面白いのは、深さを縦長のウェブページで表現しているところ。 スクロールダウンすると、海の深さが少しずつ深くなっていき、その深さで観察される生物が表示されます。 生物の名前やその特徴の紹介文などはすべてテキストなので、Chrome ブラウザの翻訳機能を使えば自動翻訳の日本語でも読むことができます。 それにしても、このページ、長い長い。ページの最後は、1960年にマリアナ海溝の最深部に到達したトリエステ号のチャレンジを紹介しています。 via

abbreviate – 英単語の省略形を機械的に決めてくれるツール

dnnrly/abbreviate は、英単語を決まった規則で省略してくれるという、単機能のツールです。 Goで書かれていて、フルに書いた複数の英単語の並びを、内蔵の辞書で決まっている短縮形に置き換えます。 指定によってキャメルケース、パスカルケース、スネークケースなどにもしてくれます。 辞書ファイルに定義されていない単語は出ないため、実用にするにはもっと辞書の拡張が必要かなとも思います。 僕は基本的には省略形の利用に反対なのですが、プログラミング言語や環境によっては、命名に文字数の上限があるものもあるでしょう。abbreviateコマンドの作者は、AWSのリソース名をつける際に上限が問題になることが多くてこのツールを思いついたということです。 省略を多用するプログラマーやそのチームにおいて、元の英単語が必ずこの省略形になる、という保証をツールでするのであれば、ツールを使わないよりはずっと良いのかなとも思いました。 via Hacker

facepalm

有名WordPress プラグインのYoast SEO、500万+のブログ管理者に望まぬバナー広告を表示

Yoast SEOといえば、ワードプレスのSEO対策をしてくれるプラグインで最も有名なもののひとつです。 そのプラグインが、北米の国民的特売日であるブラックフライデー前に、ワードプレスの管理画面に派手な広告バナーを勝手に表示した、として騒ぎになっています。 https://twitter.com/indextwo/status/1200070409741357056 バナーのサイズは 1015px x 102px、しかもYoast プラグインのページではなく管理画面のどのページにいっても表示されたそう。 Yoastプラグインのサポートフォーラムもたいへんなことになってます。 無料で使えて信頼もあり、2万5千件以上ある過去のレビューのほとんどは星5つなのですが、今回の件で雪崩のような不評コメントが延々と続いています。 WordPress

playball – コンソールでメジャーリーグの試合経過を見るツール

paaatrick/playballは、ターミナル画面でMLBの途中経過を見るためのツールです。 起動すると現在行われている試合のリストが表示され、選択するとその試合のここまでの打席結果など詳細も表示することができます。 …はずなのですが、ローカルで試してみたのですが、エラーになってしまいます。調べると試合がないオフシーズンはエラーメッセージが出るだけというチケットがありました。動かすのは春までお預けですね。 CUIの描画にはblessed とReact-blessedが使われています。 Reactベースなんだ。 via Hacker

JSONCrush – JSONをURIに圧縮して載せるためのライブラリ

KilledByAPixel/JSONCrush は、JSONをURLに載せやすい形に変換するライブラリです。 JSONCrushのデモサイト。JSON形式のデータを左上に入力すると、それをテキストとして圧縮し(↓)、さらにURIとして使える文字に縁故度しています(→)。 今回入れてみたJSONでは、そのままURIエンコードした場合に比べて52%、約半分のサイズとなりました。 URLにユーザーが入力した結果のJSONデータをなるべく小さくして載せるというのがライブラリの目的です。URLに再現のためのパラメータが全部載っていれば、結果をブックマークしてもらえばいつでも同じパラメータのページが再現できます。サーバーサイドでいろいろ面倒な処理をして覚えておく必要がありません。 そのままURLEncodeする手もあるけど、URLのサイズ上限(2000バイトちょっと)に引っ掛かるのは避けたい、と。HTTPパラメータとして個別に受け取ればもっとコンパクトにできるのでしょうけど、JSONのまま渡せるのは場合によっては楽なのでしょう。作り手側に楽という意味ですが。 使ってるJSCrush ライブラリが変換部分を担っていて、これは特定の文字列内でテキストをエンコードしてくれるもののようです。JSCrushのデモサイトはこちら。 JSCrush は minify したものしかないらしく、 その動作を解析してる人がいました。この解説によれば、JSCrushライブラリは、1KbyteのJavaScriptで何ができるか、というコードゴルフコンテストの2012年の作品で使われたものだそうです。 via Hacker

Codem Ipsum – ソースコードを Loren Ipsum化

JavaScript のソースコードを左側のペインに入れると、Loren Ipsum風に関数・変数名を置き換えて右側に表示してくれる、というwebサービスです。 本やウェブサイト制作時の文章のダミーとして使われることで有名な Lorem Ipsum のように、ソースコードのダミーとして使うことができるということ。 作者は「文法的には正しいまま、ダミーのコードを作りたかった」とのことです。変換後のコードも動くのか、は不明です。たぶんいろいろ不具合がでるんじゃないかな。 ソースコードは公開されたサイトのhtmlそのままですが、GitHub にも上がっています。 via Hacker

イベント + 地図 = 追っかけ支援サイト

EVMapper は、イベント名で検索するとイベントを地図上に表示してくれるサイト。

アクセスすると、サンプルとして エルビス・コステロの名前が入っているので、検索をかけると全米での彼のコンサート開催位置がわかる。自宅の近場のコンサートを探すもよし、全米おっかけツアーを組むもよし。

“Blog” で検索すると、 Blog 関係の催し物が出てきた。興味のあるアーチストや用語で検索してみると面白い。

各種イベント(コンサートやカンファレンスなど)情報を集積する EVDB.com と、Google Map API を組み合わせたもの。

EVDB のほうは、 meetup.com などからもイベント情報を収集しているようだし、API を公開して主催者にもイベント情報を登録することを奨励しているようだ。iCal や RSS も吐いている。

日本にもほしいねこういうイベント情報サイト。マイクロフォーマットで自動収集されるようになるのはまだまだ時間がかかりそうだし。

regist という英語は無い

さて、サイボウズラボの立ち上げプレスリリースが出たこの瞬間、とりあえずこのブログを見に来る人も多いと思われる。そんなチャンスに、このブログを読んだ人、特に日本のソフトウェア技術者に一番訴えたいことってなんだろう? と考えた。

それは、日本人プログラマーだけが使う謎の動詞 registについてである。そんな単語は存在しないから、ちゃんと “register” を使おう。

出てくるのは日本語のサイトばっかりである。拡張子を”.jsp” や “.asp” にしても同様だが、とにかくこの「存在しない単語を使ったファイル名」のなんと多いことか。

register = 「登録する」 は、名詞でもあり動詞でもある単語だ。”-er” がついた単語は「○○する人」の意味のことが多いため、”er” をはずした “regist” が動詞だと勘違いしてのことだと思う。

これに比べれば、たまにスラッシュドット.jp や技術系のメーリングリストで話が出てくる、 warning や alt の正しい読み方なんて小さい問題だ。

この存在しない動詞 regist 、仕事でだけでも過去に3回見たことがある。そのうち一回は、”regist” を “register” に直すだけで1年半かかった。

あるプロジェクトに途中から入ったとき、外部への公開 API を読んでいたら、なんか違和感を感じた。登録用の関数の関数名 “regist” を辞書で確認してみると、そんな単語は無い。「登録」なら “register” だ。

天下の○○○が、間違った英語を API に含めて出してるのはまずいと思ったので、会議の際に議題にあげてみたのだが、どうも反応が薄い。「すでにその名前で呼び出している他のプログラムがあるので」とか、「関数名を変えてビルドすると全部再試験になるので」(そのプロジェクトには、自動ビルドとか自動テストという概念は無かった)とか、まあとにかくいろんな理由で、直さないという決定になったもんだ。

結局、regist を register に直せたのは、メジャーアップデートのタイミング、気づいてから一年半後だった。

ソフトウェア技術者として、英語は避けることができない要素だし、「名前重要」が身についているなら、常に書いている英単語が正しいかどうか、辞書でチェックすべきだろう。

今このエントリを読んで、「おお、そういわれると間違っていたかも」と思って自分の過去のソースをチェックしよう思ったなら、それが技術英語を身につけるための正しい態度だと思う。

正しい英語名をつけることに気を配っていると、その場その場では余計な時間が取られるような気がするだろうが、「英語で変数名や関数名をつける能力」は簡単に伸びるものなのだ。

帰国子女でもないし海外留学もしたことがない僕が、アメリカでアメリカ人に指示を出す仕事ができたのは、日本にいたときでもそういう細かい作業の積み重ねをしていたからであると思う。

とは言っても、辞書を引くのも適切な単語を調べるのもたいへんなことだ。アプリケーションやウェブサイトを使って、さっと簡単に調べるにはどうすればよいか、どんな道具を使っているかについては、次回に(いつか。すっかり忘れていた)述べたいと思う。

[2006-10-06 追記]

Googleのソースコード検索が出たので、“regist”を使っているソースを検索してみた。件数は3万件でるが、先のページをみても全14件しか出てこない(バグ?)。14件のコード中の署名などから、”regist”を使った人の国籍を推定してみたのが以下。

日本人 7人
不明 3人
フィンランド人 1人
スウェーデン人 1人
ドイツ人 1人
アメリカ人(カリフォルニアの大学、ということで英語ネイティブかどうかは不明) 1人

半数は日本人だった。圧倒的じゃないか。

サイボウズラボのブログ開始

最初のエントリーということで、軽く自己紹介をさせていただく。

新しくできるサイボウズラボのプログラマー。2005年7月末まで、アメリカの子会社 Cybozu Corporation にて研究開発を担当。つまり、これを書いている時点ではまだアメリカ在住ということ。

得意技は英語での技術調査とビルド管理。一番好きな言語は Java。あと使えるというレベルではないが Ruby が気になってしょうがない。

Cybozu Corporation での「日本語製品の英語化、国際化」の経験についても、近いうちに書きたいと思っている。

以後お見知りおきを。

akky's work blog