ブログ・ア・ラ・クレーム

技術的なメモとかライフログとか。

read システムコールで直接ディスクデバイスを読むだけのコードを書いた

個人的なベンチマーク用に,エントリ名のようなコードを書いた.
システムコールを叩くようなコードを書いたのは久しぶり.

https://gist.github.com/2436216


純粋なディスクI/Oの処理性能を測りたいのだけど,どこまで潜ればよりよい性能測定が出来るだろうか・・・.
ほぼドライバみたいなコードを書くべき・・・なのか?
とりあえず性能測定か・・・.

はてなブログを開設したり。

はてなブログの方でも、ちらほら記事を書こうと思います。

http://syucream.hatenablog.jp/


しばらくは、純粋に技術的寄りなトピックはこちら、その他ははてなブログでという感じに使い分けそうですが、将来的には向こうに統合するかも知れませんし、その前にブログ書く努力を放棄するかも知れません。
予定は未定ということで。。。

Auto Network Switcher その後

Google Play にて公開中の拙作アプリ「Auto Network Switcher」ですが、ユーザさんから色々コメントを頂き、改善出来そうな点が幾つか発見出来ている状態です。
とりあえず、以下の点は修正したいなと思っております。

  • 電波強度を加味したネットワーク機能のON/OFF
    • 「n分電波が弱かったら機内モードに移行」のような感じ
  • オプションの細分化
    • 現在、WiFi - 3G - 機内モードの全遷移のチェック間隔を同じ値で指定していますが、これをそれぞれ指定可能にします
  • その他
    • スリープモードになっている時間など、ネットワーク状況以外での機能ON/OFFを試してみる?


私生活と根本的な実装の見直しのため、次回アップデートはしばらく先になりそうです。。。
その間、なにか改善点等ございましたら、是非コメントをお寄せ下さい。

OProfile の解析結果出力時にハマった

Linux のカーネルレベルのイベントを含むプロファイリングが可能なツールであるOProfile を使用していたのだが,途中,opreport コマンドによる解析結果出力時に,以下のメッセージが吐かれ詰まったりしていた.

opreport error: Invalid sample file, bad magic number: ...

前のプロファイリング時に使用されたファイルが残ったりしている模様?
以下のようにすればOKのようだ.

$ opcontrol --deinit
$ rm /root/.oprofile/daemonrc 
$ rm -rf /var/lib/oprofile/samples/current

参考: http://old.nabble.com/opreport-error-td23882836.html

iOS版Vim でコードリーディングがしたかった

僕はどうにも、ディスプレイ上に投影されたコードを読むのが苦手なのです。

昔は、コードをまず印刷し紙の上で処理を追っていた程までには。

しかしながら、印刷してコードを読むのは、手間がかかるし場所を取るし、加えて紙の無駄遣いにも繋がります。

 

さてはて、それはともかく。 

今年、新年早々にApp Store にてiOS向けVim が公開されたりしました。

http://applidium.com/en/applications/vim/

 

無料で使用可能で、ソフトウェアキーボードでの入力もそれなりに出来そう。

これなら、iPad 上のVim でどこでも気軽に、それこそ布団に籠りながらひそひそとコード読めるのでは!等と思ったので、必要最低限の手順を踏まえつつ試してみました。

 

 

読むコードをデバイスに転送

iOS版Vim では、iOSとPC間のファイル共有に対応しています。

基本的に、既存ファイルを喰わせる方法はこのファイル共有しか無い模様?

 

iTunes の、iOSデバイス周りの設定にて、Appタブのファイル共有欄から、デバイスに転送するファイルを追加できます。

下の画像は、linux カーネルのata ドライバ周りのソースコードを追加してみた図。

ディレクトリを掘って構造的に管理・・くらいはしたいんだけど、やり方が分からない。

f:id:syu_cream:20120408042107p:plain

 

デバイス側でファイルを読む

普通にVim アプリを起動し、:e でファイルを喰わせればよい。

追加したファイルのブラウジングをしたい場合、:e . などコマンドを打つ。

 f:id:syu_cream:20120408150339p:plain

 

コードリーディングする上での、iOSデバイス向けの留意事項

:help ios で、iOSデバイス独自の振る舞いが確認できる。

主な点では、ESC がバックスラッシュとして入力できたり。

また、上下スクロールは二本指で上下する操作で可能。(MacBook のトラックパッドのような感じ)

f:id:syu_cream:20120408040240j:plain

 

で、実際iOS版Vim でコードリーディングするのは・・・

正直面倒そうです。

ソフトウェアキーボードバリバリ使用するとか、iPad 上でやるには直感的で無いかなと。(Apple Wireless Keyboard 使えば、大分使用し易そうですが)

読むコードの転送も難ありでしょう。Dropbox 経由でファイル転送出来れば楽なのですがうーん。

少々お値段が張りますが、iOS向けテキストエディタアプリ「Textatic」の方がDropbox 経由でのファイル転送が可能だったり良いかも知れません。。。

はてなブログはじまります。

http://d.hatena.ne.jp/syu_cream/

 

から、そろそろ引っ越してこようと思います。

技術的な備忘録や読んだ論文の雑感、果てはライフログまでつらつらと記述していこうと予定しています。

Android で、WiFi やBluetooth を有効にしたまま機内モードに移行する

機内モードへ移行する時は、例えば以下のようにするわけだが、機内モードに移行する際、WiFiBluetooth 通信もOFFになる。

Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 1);
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", true);
context.sendBroadcast(intent);

機内モードへ移行する際、WiFiBluetooth の有効状態を変更させたくない場合、以下の様にAIRPLANE_MODE_RADIOSの設定を書換える。

Settings.System.putString(context.getContentResolver(), Settings.System.AIRPLANE_MODE_RADIOS, "cell");

WiFiBluetooth の有効状態を変更させるようにする場合、以下の様にAIRPLANE_MODE_RADIOSの設定を書換えれば元に戻せる。

Settings.System.putString(context.getContentResolver(), Settings.System.AIRPLANE_MODE_RADIOS, "cell,wifi,bluetooth");