Hatena::ブログ(Diary)

obfuscatism このページをアンテナに追加

2013-05-28 ブログ移行

2012-11-07

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

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

それっぽい分散テストツールっぽいものをいくつか - kuenishi's blog

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

続きを読む

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

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

SECCON 競技コンテスト開催!

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

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

私が選択したテーマ:CTF競技の見える化(お題から選択)

目的、意義:CTF競技を見る側(委員会、参加関係者、プレス、応援)としては、CTF参加者がもくもくPCに向かっているところしか見えないので、どんな活動をしているか可視化したい。実現できれば、見る側も何をやっているかわかりやすい、楽しめる。世界でも活動の可視化自体は少ない(ない?)と伺った。

自分の目標:WebGLでモックぽい形まで動かせれたらいいな。nicterWeb のような想像、パケットから行動を推測したい(キャプチャして垂れ流すためのサーバ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リポジトリ直下で動作を前提としている。

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

新屋さん no title

作りかけの画面

f:id:obfuscation:20120520233630p:image:medium

2012-04-02 昨年に就職しました

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

2011-10-16 Android 2.2以降で画面ロックにタイムアウトを設定するアプリを作成

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

スマートフォンAndroid)のロック機能で、画面の電源をオフにした直後に有効になってしまうことが不便と感じませんか? 私はかつてAutoLockというような名前のアプリケーションを愛用していたのですが、コレはAndroid 2.2以降だとうまく動作しないようです。

また、CyanogenModのようなカスタムROMに画面ロックのタイムアウト時間を変更できる機能が標準で搭載されていますが、標準のAndorid端末にはなぜかそんな機能が搭載されていません*1

というわけで、自分がそんなアプリが欲しくなったので、自分で作成し、公開してみました。以下はアプリの紹介ページです。

<公開停止しました2012年3月上旬>

f:id:obfuscation:20111016182103p:image:medium:left

f:id:obfuscation:20111016182104p:image:medium

実装

実装にあたっては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の標準的な仕様なのかそれともメーカー毎の仕様なのかという詳しい原因の追及はできていません。

naoya2knaoya2k 2011/11/04 00:39 このアプリがアンインストールできないので困っています。アンインストールするためにはこのアプリのDevice Administratorをremoveする必要があるのですが、そのremoveができる権限を持っているのはこのアプリだけで、かつこのアプリにはremoveする機能がないからです。なので、
・onCreateで毎回ADDするのをやめて、delay_enableのチェックボックスがonのときだけADDするようにする。
・delay_enableのチェックボックスがoffにされたときにDevicePolicyManager#removeActiveAdmin(ComponentName)を呼び出すようにする。
といったあたりを実装すればアンインストールできるバージョンが作れるのではないかと思います。それを速やかにMarketにuploadして以前のバージョンからバージョンアップし、以前のバージョンをインストールした人もアンインストールできるようにしてくださいませんか。お願いします。「謎」で済ませられる問題ではないと思います。

obfuscationobfuscation 2011/11/04 01:38 アプリケーションの説明にも書いていますが、Androidの設定画面(セキュリティ)のデバイス管理者から削除できるのですが、そちらは既に確認されていますか? 私の方では、Android 2.2、2.3、3.2でデバイス管理者から削除できることは確認していますが、それでも削除できないのでしょうか? もしそうなのでしたら、コメント頂いた件で修正してアップデートしたいと思います。
「謎」と記述しているのは、Stackoverflowのリンクの記述にもある通り、AndroidのロックタイムアウトのふるまいがAndroid端末によって一定でなく、動作しない端末も存在することを書いています。なお、Android Marketの開発者を登録しているため、私から確認できる情報ですが、一度このアプリをインストールしてからアンインストールしたというユーザ数が5割ほどいるようです(といっても、インストールした数は20ちょっと超えた程度ですが)。

obfuscationobfuscation 2011/11/04 01:47 デバイス管理者の削除手順としましては以下のようになります。Android Marketの説明が不十分というのはあります。すみません。
「設定」→「現在地情報とセキュリティ」→「端末管理者(デバイス管理)」
http://stackoverflow.com/questions/5387582/how-to-remove-an-app-with-active-device-admin-enabled-on-android

naoya2knaoya2k 2011/11/04 08:28 すみませんでした。たしかにおっしゃるとおり「デバイス管理者」のメニューで解除できました。ちゃんと説明読んでなくてすみません。
(Marketのレビューも修正しておきます

私のSO-01Cでもロックの動作は期待通りではないようなので、なにか上手く動かせる方法がみつかるといいですね…