ephemeral – AWS Lambdaで古いツイートを自動削除

1年半ちょっと前にノマド・フリーランサーとなったビッキー・ライさん(Vicky Lai, @hivickylai)が公開したのは、過去のつぶやきがひたすら溜まっていくツイッターを、最近書いたことだけが共有される場所に作り替えるスクリプト ephemeral 。しかも、AWS Lambda の無料枠で動いてしまいます。 ephemeralは「束の間、短期間の」といった意味の単語で、発信した内容が後で消えてしまうようなサービスを形容するのにもつかわれますね。共有した写真が消える Snapchat もそうですし、つい先日発表されたGmail の「自動消滅メール」機能なんかもエフェメラルと言えそうです。 ライ氏はブログ記事Why I'm automatically deleting my

Salieo – レスポンシブ・いい感じに画像を切り出し表示してくれるサービス

Salieo は、Javascript で画像ファイルから写真の重要そうなところを切り出して表示してくれるというサービスです。サイトのキャッチはinstantly, intelligently, responsive(即座に、賢く、レスポンシブに)となっています。 ユーザー登録してAPIキーをもらってみました。同じ一つの写真がこんな風に自動でクロップされて表示されます。 比較のため、スクリプトをオフにすると以下のようになります。横長でも縦長でも、元の画像がそのまま縮むので、車の形がゆがみますね。 # 物があるところをうまく切り出してくれる、ということなのですが、この写真はちょっと例には良くなかったかな。 ユーザー登録した上で、申請したドメインやURLパターンに合致した画像だけが変換の対象となります。変換できる画像の数や変換の回数によって料金が変わりますが、一番下の無料枠でも10画像、月25,000回までの呼び出しができるようです。 先行の類似サービスとして、imaggaやImageKit.ioが見つかりましたが、どちらも無料枠は無いようです。Salieo の無料枠もお試し用という感じの枠ではありますが、実際に試せるのはやはりいいかと。 これらのサービスを使えば、切り出しについて特に考えずに元の画像一つをアップロードしておけば、サイトで表示した時にその時の縦横比にあわせて動的にクロップされるわけです。あとは写真から重要そうな場所を切り出す判定部分の精度が良ければ、画像が表示される際の縦横比を固定しにくいサービス運営者からは、有料でも嬉しいサービスとなるかもしれません。 via Hacker

IDEA – イケアのマニュアル風にアルゴリズムを説明

IKEA の組み立て家具の説明書のような形式で、言葉を使わずにコンピューターの各種アルゴリズムを説明しようというサイト IDEA です。 もともとサンドル・フェケトさん(Sándor P. Fekete)が作っていたものに、セバスチャン・ムーアさん(Sebastian Morr)とセバスチャン・スティラーさん(Sebastian Stiller)が参加し、教師や学生、その他興味のある人が使えるように公開するようになったということです。 マージソート、クイックソート、ボゴソート、二分探索、平衡二分木、公開鍵暗号、一筆書き、グラフ探索、の8種類が、言葉を使わずに絵だけで説明されています。 元のアルゴリズムについて一度は学んでいないと、図だけで何のことかわからない、というものもあるとは思いますが、なんとか簡単に図でおさめようと努力された工夫が見て取れ、面白いものとなっています。 これらの図は、クリエイティブ・コモンズ4.0 by-nc-sa の条件の下で、改変したり配ったりして大丈夫だそうです。 via

Smash – サイズ無制限を謳うファイル転送Webサービス

Smash は、ブラウザベースの巨大ファイル転送サービスです。日本でいうところの GigaFile とか宅ふぁいる便みたいなサービス。 今風のデザインで、ファイルをドラッグするだけでアップロードできます。 個人は無料で、追加サービスやチーム利用でお金を取るビジネスモデルのようです。無料でも広告なしで、ファイルサイズの制限もなし、と良いことづくめのようですが、ファイルを扱うサービスでは当初Unlimitedと売り出しても後日軌道変更を余儀なくされる事例が多いので、さてどうなるか、というところ。 こんな感じでメール等でURLを送って相手に大きなファイルを送ることができます。 # 上のテストは7日で消えるはずです。 via

ゼロ幅文字にエンコードした隠し情報で、文書をリークしたメンバーを特定

とある会員制掲示板からの文書の流出に困った運営者が、ユニコードの見えない文字「ゼロ幅文字(Zero-Width characters)」を使って流出させたユーザーを特定した、という話が出ていました。 数年前の話、Tom さんが所属していた競技ビデオゲームのチームでは、ログインが必要なプライベートの掲示板を使って連絡していました。その掲示板に書かれた秘密情報や戦術に関する重大アナウンスなどがしばしば掲示板外のウェブにコピペされ、チームにとって大きな問題となっていたそうです。 外部ユーザーの攻撃で中身が漏れたというよりは、メンバーの誰かがコピーしているのでは、と考えた Tom さんは、当時気になっていたユニコードのゼロ幅文字を使ったトリックを仕掛けたそうです。 ユーザーを特定する情報を、見えない文字に変換して埋め込む ログイン中のログインユーザーのユーザーIDを、一定のルールによってゼロ幅文字の並びに変換します。そして、この文字列が、掲示板のコメントを表示する際に文章の間に埋め込まれるようにします。 コピー&ペーストされた外部の掲示板等を見ると、目には見えませんがそちらにもこのゼロ幅文字を組み合わせた文字列が含まれているので、そこから逆への変換を適用することで、コピーをしたユーザーのIDがわかる、というわけです。 GitHub 上で公開されたデモコードがこちら。動くデモがこちらです。 1 で入れたユーザー名が入っていないように見える2 のテキストをコピーすると、コピー先の 3 から、元のユーザー名が取り出せていますね。 データ列をASCII文字64個でエンコードすれば Base64 ですが、このデモでは 4種類のゼロ幅文字を使った ZeroWidth4 とでもいうべきエンコーディングですね。 元ブログ記事では、この手法を掲示板に組み込んで新しい情報を流したところ、数時間でコピーされた文章からユーザー名を回復し、流出者を特定できた、と語っています。 この場合はうまくいきましたが、この仕掛けを知った上で無実の他人のユーザーIDに書き換える、といった反撃も考えられるので、ユーザー名をそのまま組み込むとかではなく、改竄があればわかるような形にするのがより良いだろう、とも述べられていました。 自衛ツールの登場など この記事が広く読まれたので、Chrome拡張が早速登場。ゼロ幅文字を絵文字に変換して表示する拡張で、こういうのを入れておくと何かが埋め込まれているな、というのを見つけられますね。急いで作られたせいか、ユーザーが能動的にクリックしないと絵文字表示されないなど、実用するには今一つですが。 それと、英語のテキストでやってる分には問題ないですが、そもそも役割があって文章中にゼロ幅文字が含まれている言語もあるので、一律に除去したり警告したりするようなツールでは不十分だと言えそうですね。 情報を守る立場からすれば、このような追跡手法をいくつも持って仕掛けておくことは有用でしょう。 逆に、内部告発など悪事を暴く活動として秘密情報をコピーする立場から見れば、このような仕掛けがないかを確認したり、同定されないよう過剰と思われる情報を切り落とすツール等を使うなど、ある程度のリテラシーが必要となってきそうですね。 via

USB 経由での Windows 乗っ取り

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

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

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

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

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

Bloglines にトラブル発生中?

Bloglines にログインしたら、自分の登録したフィードが全部消えてしまってるんだけど。。。。

と思ったらPlumber おじさんに切り替わっていた。データベースクラッシュだそうで。規模の大きなネットサービスはたいへんだなあ。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

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

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

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

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

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

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

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

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

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人

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

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

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

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

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

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

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

以後お見知りおきを。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

akky's work blog