分散システムのテストに関する資料をあげてみる

そういえば2ヶ月も前のブログにkuenishiさんに私が開発した dtest というテストツールが紹介されてました。他のテストツールのことも紹介されていた中、そういえばそんなことも考えていたなぁと記憶を巡らせていたところです。
それっぽい分散テストツールっぽいものをいくつか - kuenishi's blog

さて本題、2年ほど前に分散システムのテストに関する資料を探していた記録が偶然発掘されたので、それらのURLとタイトルを紹介していきます。中身はほとんど読んでない、覚えてないので、それらについての要約はしません。もっと読むべき論文、文献もあるかもしれません。再調査したほうがいいかもしれませんね。

続きを読む

SECCON CTFつくば大会のハッカソンに参加してきた

SECCON 2018
SECCON CTFつくば大会のハッカソンに2012/05/19、2012/05/20とで参加してきました。つくばは先月花見をしてきたので、1.5ヶ月ぶりくらい。

きっかけは、実行委員の@takesakoさんと@sonodamさんのお二人に 機械学習×プログラミング勉強会 : ATND に誘って頂いたことから。

私が選択したテーマ:CTF競技の見える化(お題から選択)
目的、意義:CTF競技を見る側(委員会、参加関係者、プレス、応援)としては、CTF参加者がもくもくPCに向かっているところしか見えないので、どんな活動をしているか可視化したい。実現できれば、見る側も何をやっているかわかりやすい、楽しめる。世界でも活動の可視化自体は少ない(ない?)と伺った。
自分の目標:WebGLでモックぽい形まで動かせれたらいいな。NICTERWEB 2.0 のような想像、パケットから行動を推測したい(キャプチャして垂れ流すためのサーバAPIは私が作るとして、そのパケットキャプチャのpublisher側は競技会場、ジャッジシステムと密結合と仮定する)。

1日目:CTFをチラ見しつつWebGL(three.js)とたわむれる

慣れない3DプログラミングとJavaScriptに苦戦。
WebSocketで試しにclient/server作る分には瞬殺。クライアントでJSONのパースにjQuery、サーバはRubyem-websocket書くだけでチョロい。ハッカソンで集中する前に、ゲームプログラミング系の予習してくればよかった。深夜も続行。

2日目:シューティングゲームっぽい形、オブジェクトに対するマウスオーバー(クリック)を検出できるようになる

カメラ視点の変更、オブジェクト作成、移動あたりに慣れつつある。肝心のUIが決まらずにWebSocketサーバ側からのパケット情報を受信してそれを飛ばすオブジェクト(particle)作っている途中で時間切れ。
CTFチラ見しつつ、ユンブル、各種エナジードリンク混ぜ合わせ(カクテル)を頂く。

発表会:フィードバックも頂く。発表会というよりは何もできてないので処刑場という気分であったが、WebGL触れた報告しつつ、アレもコレもできたらいいねとお話ししつつ、フィードバックも頂く。
道具を使えるレベルになってようやく、スケッチブックなどに可視化を想定する絵を描いては、スタッフを捕まえてインタビュー&フィードバックの繰り返しが出来るのではと思っていた。ハッカソン2日間で妄想だけ絵に描いても餅で終わり、動くコード・スキル修得もなく終わってしまうと悲しいため、今回はWebGL学習に力を注ぎ、CTFのアウトサイダーとしてどんな様子か観察する行動がメインだった。

まとめ

実行委員、参加者の皆様お疲れ様でした。特にハッカソン組の方はアレな睡眠時間でしたが計算通りにバスでの会場移動もできて何よりでした。

ハッカソンは、私の3Dプログラミング力が圧倒的に足りずに未完成。ハッカソンで集中するためには事前準備がないと、つまらないミスでハマるだけなのであらかじめ予習しておくことよい。言い訳の言葉を未来へ残すと、最近は2週間連続で長めの発表があったために社会生活が充実しており、準備が不十分だった。

書きかけのコードはgistへ:
参考にしたthree.jsのサンプルは webgl_lines_sphere.html, webgl_interactive_cubes.htmlなど。
https://gist.github.com/2758316
three.jsリポジトリ直下で動作を前提としている。

一緒に参加してた方のエントリ

新屋さん http://swatmac.info/?p=927

作りかけの画面

2011年11月に就職しました

昨年までは茨城県つくば市に住んでいたのですが、2011年9月に大学院(修士)を退学して同年11月に株式会社Preferred Infrastructureに就職しました。
株式会社Preferred Infrastructure

SNSで就職先が特定されたりされなかったり、社員メンバーの方の有名・スキルや知識のはんぱなさに埋もれるのは予測済みで、それを踏まえてややステルスモードで生活中です。どこかの偉い人は「どこでやるかが重要なのではなく、何を成し遂げるかが重要」とか言ってましたが、別の偉い人は「ちょうどいい時期に良い場所にいることが大事」と書いていたような記憶があります(『Making it Big in Software』)。ソフトウェアエンジニアとして専門の分野と、製品設計などのスキル、どこから突き詰めて何を積み重ねていくかが悩みと言えば悩みですね。読書したり休日は堕落したりしています。

去年の5〜9月頃は「人生のゴールデンウィーク」と称して特に研究・アルバイトもせず、何も考えない時間を作ったり、悩んだり、旅に出たり、攻殻機動隊の原著やSFやデザイン系の書籍を読み漁ってみたり、紆余曲折しながら友達・先輩、先生、家族、セキュリティキャンプ(私は2005年参加、2006チュータ)講師関連の方々に相談させて頂いたりとお世話になりました。本当にありがとうございました。多くの方に支えて頂いて今の私がありますので、こちらからもインスピレーション・技術(知識)・最新のネタ等を提供することができたら嬉しいなぁと思っております。

今後ともよろしくお願いいたします。

最後に、当ブログ(やSNS)の内容・記述については極めて私的な見解ですので、所属組織の見解、コメントではありません(学生時代もでしたが)。「バイナリエディタまだ完成しない?」という声は届いています。モチベーション維持と設計で難航しつつもたまにgithubへコードをコミットしています https://github.com/suma/hex/tree/develop

Android 2.2以降で画面ロックにタイムアウトを設定するアプリを作ってみた

スマートフォンAndroid)のロック機能で、画面の電源をオフにした直後に有効になってしまうことが不便と感じませんか? 私はかつてAutoLockというような名前のアプリケーションを愛用していたのですが、コレはAndroid 2.2以降だとうまく動作しないようです。
また、CyanogenModのようなカスタムROMに画面ロックのタイムアウト時間を変更できる機能が標準で搭載されていますが、標準のAndorid端末にはなぜかそんな機能が搭載されていません*1

というわけで、自分がそんなアプリが欲しくなったので、自分で作成し、公開してみました。以下はアプリの紹介ページです。
<公開停止しました2012年3月上旬>


実装

実装にあたってはAndroid 2.2(API Level 8)以降から提供されている、Device Administrationという機能の一部(ロックに関すること)を利用しています。次のページで解説されてある"Maximum inactivity time lock"というのを、DevicePolicyManagerクラスのsetMaximumTimeToLockを呼び出して実現しています。

http://developer.android.com/guide/topics/admin/device-admin.html

ソース公開

特に隠すほどでもないので、公開しています。ライセンスは未定。
https://github.com/suma/LockAdmin

参考

DevicePolicyManagerの利用法がよくわからず、参考にさせてもらいました。
androidで画面をロックする方法がよく分からない。 - よせばいいのに

端末(機種)によっては動作しない可能性とか

android - How to set maximum time to lock? - Stack Overflow
謎。

*1:2011/10/30追記:先日Androidタブレット(Eee Pad Transformer TF101)なるものを入手しましたが、Android 3.2では画面ロックのタイムアウトが設定可能でした。しかしそのタイムアウトが有効なのは自動でスクリーンの電源が切れたときのみ有効で、手動で電源ボタンを押して画面電源を切って即座に画面電源を入れたときにはロック画面が表示されていました。またAndroid 2.2系の端末機種によっても、手動で電源を切っても設定したタイムアウトが有効な場合があったり、なかったりして、Androidの標準的な仕様なのかそれともメーカー毎の仕様なのかという詳しい原因の追及はできていません。

PFIインターンへ行ってきた(後編)〜その心〜

本エントリはPFIインターンへ行ってきた(前編)〜結合テストの自動化環境を整えてきた - obfuscatismの後編。インターンでやったことは前編を参照してもらうとして、後編ではインターンのきっかけ、参加する上での私の心境だとか、非技術的だけどチーム開発で必要かもしれない行動方針・環境適応のためのライフハック的なこと、インターンで知ったデザインドキュメントについて紹介する。締めのまとめは、ほとんど書かない方針で!

勝手気ままに書いていくので、エッセイみたいな感じで、役に立つかとか読む人を選ぶ文章かもしれないので、最初に断っておこう。構成としては以下のような感じ。

まあ、私の思考をトレースしていくと、こんな人間ができあがるというか、インターンのきっかけから、インターンが終わるまでの思考などを混ぜてみた内容となっている。インターンの面接とか、チーム開発のプロセス云々については書いていない*1

*1:開発プロセスについて書かない=良かった、と思えたということ。逆に言えば、良かったけどどう良かったか私の着眼点が低いから認識できた点が少ないのかもしれないが...

続きを読む