BBC Micro bot – ツイッターで走るBASICインタプリタ

@bbcmicrobot に対して、BBC BASIC のソースコードをつぶやくと、 https://twitter.com/bbcmicrobot/status/1230066377081413633 エミュレーターで実行して結果をアニメーションGIFで表示してくれるという bot が登場してます。 BBC BASIC というのは、1980年代にイギリスで教育用に開発された BBC Micro というパーソナルコンピューターに搭載されていた BASIC 言語だということです。 https://twitter.com/bbcmicrobot/status/1226830837573967872 この @bbcmicrobot

マックハック – ドイツのマクドナルドアプリが無料注文機に

東ベルリンのマクドナルドで、記者の前でWiFiから無料のハンバーガー注文をしてみせた3人組のハッカーの話です。 現地のマクドナルドのスマートフォンアプリでは、購入後にアンケートがあり、アンケートに答えると無料のドリンククーポンが貰えるそうです。 ドイツのソフトウェア開発者デビッド・アルバートさんは、この無料ドリンククーポンの使用時の通信内容が毎回同じであることに気づき、まずはドリンク飲み放題という手段を手に入れました。 さらに彼らは、アプリケーションからマクドナルドのサーバへの通信経路にプロキシーサーバーを挟み、そこで通信の書き換えを行うことで、どのメニューの注文でも好きな値段に、ゼロにでも、書き換えることを確認したそうです。 アプリから0円で注文し、呼ばれて受け取りカウンターに行った彼らは、記者の前で店員に自分たちが無料で注文するトリックを使ったこと、正規の値段を支払うことを申し出たそうですが、店のマネージャーはいいから取っておきな、と取り合わなかったそう。 これまでも同じように自ら申告して、店側が注文をキャンセルしたこともあるし、咎められずに受け取ったハンバーガーをホームレスにあげたりもしたそう。 彼らは無銭飲食をしたいわけではなく、この抜け穴をマクドナルドに伝えることで3人のうち2人の職探しの助けにならないかと考えていたとのこと。 そのような動機で昨年11月にマクドナルドのカスタマーサービスに問題を伝えたものの、2週間経っても穴は塞がれず。その後記者がマクドナルドに問い合わせした際には、「システムは十分にセキュアに作られていて、よほどの手練れでもなければそんな穴はつけないだろう。とはいえ、改善はしています」と回答されたということ。 12月中旬には、この食べ放題ハックは使えなくなっているのが確認されたそうです。3人にも、マクドナルドからの感謝が何らかの形で示されたらしいです。 via Schneier on

ダイヤル式携帯電話

アメリカのブルックヘブン国立研究所で働くエンジニアのジャスティン・ホープトさん(Justine Haupt)の作による、ダイヤル式携帯電話。 一見するとネタに見えますが、作者によれば決して懐古趣味で作ったものではなく、既存のタッチスクリーン式の携帯電話を凌駕している箇所も複数あると言います。例えば、 アンテナを外したり、指向性の強いものに換装も可 「電話アプリ」を探したりすることなく、いきなり電話ができる 夫に掛けるための専用物理ボタンも搭載 LED表示の電波強度・電池残量表示は4段階ではなく10段階もある 背面に搭載したeペーパーはタッチスクリーンよりはるかに電池消費が少ない 電源はスライドスイッチ一発で、長押しした上で画面を確認するとかの必要がない なるほど。実際に使われてるんですね。 回路も起こし、ガワも3Dプリンタで作成しと。作り方もオープンソースとして公開されています。クールな携帯電話だと思います。 via Laughing

Printing Money – 紙幣の量で様々な時給を比較

ニール・アガヴァルさん(Neal Agarwal)の、米1ドル札を使ったビジュアライズ。様々な時給を、スクロールするお金の量で表しています。 先頭は連邦最低賃金の$7.25 。一時間に$7.25稼げるということで、一時間で7.25枚分のドル札がスクロールするんでしょう。 # ほとんど止まっていますが ソフトウェア技術者、医師、フォーチュン500企業のCEO、らの時給が並べられています。「あなたの時給」を入れて比較することも可能。 その下は、$1000 の束を使って表した有名企業の収入、NASAや米軍の出費、アメリカの赤字拡大額、などですね。まあこちらは「なんかすごい」という感じにしかなりませんけど。 via

Japan Rent Calculator – 日本の家賃概算を英語で

Japan Rent Calculatorは、日本式の不動産賃貸料の試算ができる単機能のwebサービスです。 このサイトに希望の家賃額や借りる期間を入れると、実際に掛かる費用が試算されます。 敷金、仲介料、まあこのあたりは海外でもあります。そして日本特有の礼金、保証料などを含めて、実際の家賃がいくらぐらいになるのか、日本語がわからなくても確かめることができますね。 サイトのデフォルトは2年間、敷2礼1保証料1となってますね。まあ関東ではよくある数字ではないでしょうか。 「家賃10万円」とあっても住むのが半年だと、実質の支払いは月に均すと18万円以上にもなる、ということで、こういうサービスを前もって使ってもらうことで、日本に来て話が進んでから「そんなの聞いてない!」とショックを受けることは減るかもしれません。 via Hacker

Bella – AIによる赤ちゃん見守りカメラ

子供の活動を遠隔からも見守れるウェブカメラは、使ってる人は使ってるぐらいの時代になってきてるようですね。単なる固定カメラだけでなく、リモートからカメラの撮影角度を変更できるとか、音声で会話できるとかいうものもあります。 Bella は、乳児監視カメラにソフトウェアによる異常検知を追加した賢い監視カメラのようです。 映像の中の赤ちゃんの顔が見えない=何かが被っていると、警告を投げてくれるそうです。部屋が暗くても検知できる、とあるのはさすがに暗さによっては無理なんじゃないかという気もするんですが。 映像の中で「安全な領域」を設定しておくと、そこを出た時に警告してくれるということ。この写真では中央のカーペットを設定してるようですね。ちょっと台所で作業、といったような際に、赤ちゃんが特定の場所から離れないかを見ててくれるというような使い方ができそう。 逆に、「危険な領域」を設定して、そこに赤ちゃんが(何かが?)映ったら警告というモードも。こういう階段に柵をつけるという物理的な安全対策もありますが、このような警告が来れば対処できるケースもありそう。 「赤ちゃんが泣いたら警告」機能は、乳児でも別室に寝かせたりする海外らしい機能かもしれませんね。日本なら泣かれても気づかないほど家の中で離れてることもなかなかないかも。 ソフトウェア側で、これまで親などがやっていた見張り的な作業を代替してくれるというのは、育児のたいへんさを軽減するのに役に立ちそうです。画像・動画の解析・検知技術が普及してきたことで、今後もいろいろな進化が期待できるのではないでしょうか。 Kickstarter でのクラウドファンディングです。早期予約で$149 、これが予価の4割引きだそうなので、市販まで行ったら定価は$250 ぐらいでしょうか。 コメント欄では5月のリリースに向けて既に製造体制とありますが、クラウドファンディングの常で、お金を払っても製品が届くか、届いた製品が売り文句通りかは保証されていないことにご注意ください。 via release

telnetの諸外国キーボードでの抜け方

telnet の終了キーは、セッション開始時に示されるように Escape character is '^]'. コントロールキーを押しながら']'キー ( Ctrl + ] )がデフォルトであり普通だと思っていたのですが、国によっては']'キーがキーボードに無かったりするんですね。 そんな状況でtelnetを抜けるためのキーをまとめた情報がありました。

Msgif – テキストをアニメーションgif化してくれるサービス

Msgif は、文字列を打つと、打ってる様子をアニメーションgifにしてくれるというサービス Product Hunt の新着で見かけて、「こういうの日本語は動かないことが多いんだよねえ」と試してみたら、まったく問題なく動くしIMEで入力中の状態まで再現されました。 フッタの作者名を見たら日本名で、カナダ在住の日本人の方のようです。なるほど。 作成画面から、twitterなどSNSでの共有で使う用途で考えられているようですね。動きのあるメッセージを簡単に作って共有できるのはいいんじゃないかなと思いました。 via Product

それがサイボウズラボである必然性は?

景気が良かろうが悪かろうが、よい人材を獲得する必要性は変わらない。サイボウズラボでは、「日本でもトップクラスの技術者を集め、世界に挑戦する」ことを目標としているが、言うだけなら誰でもそんなことは言える。また、よい技術者を集めている会社もたくさんある。

では、あなたの技術力を高く評価してくれる会社が複数あったとして、なぜそこからサイボウズラボを選ぶべきなのか? 思うところを書いてみる。

現在の日本に、ソフトウェア製品で海外に打って出よう、という会社はどれぐらいあるだろうか?

僕が3年半前、できてまもない米国 Cybozu Corporation に転職したのも、ローカライズ(現地語にソフトウェアを移植すること)エンジニアのほとんどが、「英語から日本語」への翻訳を仕事にしている中で、「日本語から英語」という方向の開発が非常に珍しく、面白いと思ったからだ。

ソフトウェアでの「タイムマシン経営」というか、多くのパッケージソフトウェアはまず米国で普及し、その日本語版が半年から一年ほど遅れて出るのが普通だった。唯一ゲーム業界では日本発のソフトウェアがそれなりの地位を占めているが、PC 向け、ビジネス向けソフトウェアでは輸入品がほとんどを占める。

そんな逆風の中、米国に英語版を売りに行こう、という豪気さに感銘を受け、合流したものだ。

サイボウズ/サイボウズラボには、

– 会社に熱意がある。支えるだけの資金がある。
– 現役プログラマーでもある社長が、技術者中心の会社を作っていく。
– 日本で数少ない、世界に行く気のあるソフトウェアパッケージ会社である。

正直、できるプログラマーに取っては他の選択肢もたくさんある。技術で売っている会社としては、たとえば NaCl であったり、はてなであったりが存在する。(もちろん他にもあるだろう。上の二社は僕がすごいと思っている。特にこの会社がすごい、見習うべき、というのがあればぜひコメントで)

そういった技術指向の先輩会社からは学ぶところが多いし、チャンスがあればぜひ協同させていただきたい。ベイエリアにあるような、いろんな技術者が会社の枠を越えて勉強しあうような雰囲気を作ることができれば、と思う。まだ東京に居てすらいないのにこんなことを書くと偉そうだが。そして、それらの会社に興味があるような人には、ぜひサイボウズラボも検討対象としてみてほしいと思う。

ラボの問い合わせ用アドレスでは、どんどん質問を受け付けている。

僕は今米国支社の閉鎖手続き等で忙しく、ラボ開設の反響等を十分チェックできていないが、8月には東京に移る。興味があるし話を聞いてみたいが、いますぐ転職とか公式な面接とかはまだちょっと、という人がいたら、ぜひ秋元を指名して問い合わせアドレスから連絡してほしい。

USB 経由での Windows 乗っ取り

eweek の記事より、USB ドライバ経由で Windows を乗っ取れる

USB ドライバをバッファオーバーフローさせることで、任意のプログラムを Windows に実行させることができる脆弱性が見つかった、というもの。まだマイクロソフトには報告が行っておらず、これが本当かどうかは確認されてないということだが。

USB メモリを挿しただけで破壊やデータ吸出しツールを送り込めるのであれば、外部からの訪問者や出入りの掃除業者などがちょっとした時間で PC を乗っ取ることができそうだ。スパイ映画みたいな話だが。

USB メモリによる企業情報持ち出しを防ぐために、USB ソケットを無効化するプログラムが開発された、というニュースを前に読んだ気がする。挿すだけで簡単に使える、という利便性が、管理側に新たな負担を強いているということなんだなあ。そして、その対策を事業にする人が出てくると。

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

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