2015年12月14日月曜日

ソースコードを読むときにコメントを除外して読みたい

すでにある大量のプログラムのソースコードを読まなければならないことがある。そのソースコードにはプログラムの実体以外に大量のコメントが書かれていることがある。

コメントは関数ヘッダであったり、処理の流れであったり、注意すべきことであったり、改訂履歴およびその改訂箇所の始まりと終わりを示すものであったりする。それらは「コーディング規約」に基づいて書かれていることが多い。

時間が流れてそのソースコードの担当者が代われば、そのコメント記述の仕方も違いが生じ、二人、三人と代わればコメントの統一感がなくなってくる。コメン トがソースコードの中で大きな顔をしていて、ソースコードを読みにくいものにしている。ソースコード中のコメントの割合が50%を超えるものだって出てく る。

コメントを見ずにソースコードを読みたくなってくる。

わたしはソースコードを読むときにはエディタ Emacs を使っている。Emacsにhide-comnt.el をインストールするとコメント部分を非表示にすることができる。もちろん非表示から表示にもどすこともできる。

だが、コメントが非表示になると、

2015年11月10日火曜日

気圧は地上あたりでは100m高くなると11.6hpaぐらい低くなるらしい。実際に高層ビルで試してみた。

高い建物の上から下に下りてみて、そのときの気圧の変化を調べてみました。

55階から1階までエレベータで一気に降ります。そのときの気圧を CASIO の腕時計 PROTREK で計ってみたビデオがこれ。



地上付近では高度100mあたり気圧が約11.6hpa変化するそうだ。

55階は180mぐらいのところにあるので11.6x(180/100)=20.88hpaの変化が予想されるところだが、PROTREKの気圧計は55階では1004、階が下がるに連れて気圧も下がり、1階では1025になった。その差21hpa。ぴったりと言っていいでしょう。

使用したPROTRECKは、PRW-5000Tというモデル。撮影は iPhone 5S 手持ち。できた動画を四分の一のサイズに小さく(270x480)して、上の方だけ(270x300)切り出しました。

ffmpeg -i IMG_9999.MOV -s 270x480 out.mp4
ffmpeg -i out.mp4 -filter:v "crop=270:300:0:0"  cropped.mp4

という一連のコマンドで作りました。

PROTREKの気圧測定は2秒に一回なので、針の位置や数値の変化もそれに従ってます。

2015年11月8日日曜日

SDRのテストをしていたら、不思議なFM電波を発見。よく聞いてみたらAMラジオ放送と同じだった。

SDR受信ののキャプチャ画面がこれ。(SDRについてはこちら(ソフトウェア無線)
を参照してください。)
これは受信用ソフトSDR#の画面。受信にはUSBワンセグ受信機 DS-DT308SV を使用。秋葉原で500円で購入したもの。まだ10個ぐらい残っていた。

92.9MHzと93.7MHzに強い電波が出ていて、電波形式はFM(WFM)。放送内容からして民法ラジオらしい。しかしFM放送にしては(わたしの知っている)周波数範囲を超えている。

「○○ラジオ 番組表」で検索してみると、ドンぴしゃり。AM放送の「補完放送」としてFMで放送が始まっているらしい。周波数は90MHz~95MHzという。停波したアナログテレビ地上波の1chの周波数帯の範囲だ。

全国の対応状況もニッポン放送のこのページでわかった。

むかし買ったテレビ1ch~3chも聞けるFMラジオが役にたってくれる。


2015年9月23日水曜日

iPhoneのタイムラプス動画の撮影間隔は撮影時間によって変化することは知っていたが、一晩撮影してみたら、たった26秒だった。

iPhone iOS 8で付加されたタイムラプス機能ですが、その撮影間隔はこのサイトにあるように 10分(15倍速)、20分(30倍速)、40分(60倍速)、80分(120倍速)、160分(240倍速)、というところまではわかっていました。

もっと長い時間にわたって撮影したらどうなるかと思って試してみました。使用したのは iPhone 4S iOS 8.1.2 です。

午後4時ごろからタイムラプスモードで撮影を開始。夜を越して、朝になったらどうなっているかを確かめてみました。

結果は、日が昇った後しばらくして、勝手に撮影が終了していて、撮影時間の正確なことはわかりません。しかし、映像はちゃんと残っていて、日没から夜景、深夜、そして夜明け、空の雲がちゃんと白く見えます。14時間ぐらいは撮影されているようです。

映像の再生時間はたった26~27秒。

240倍速の延長だとすると、320分(5時間20分、480倍速)、640分(10時間40分、960倍速)、1280分(21時間20分、1920倍速)、2560分(42時間40分、3840倍速)と予想できる。

16時間ぐらいということは1280分以内なので、1920倍速ということになるが、ほんとうか。検算してみる。
26秒×1920=49920秒=832分=13時間52分。
27秒×1920=51840秒=864分=14時間24分。
予想通り、240倍速の延長のようです。

そうすると、丸一日タイムラプス撮影しても、その再生は22.5秒で終わってしまうようだ。
24×60×60=86400秒 3840倍速なので 86400÷3840=22.5秒。

2015年9月18日金曜日

PENTAXのフルサイズ一眼のティザー広告の写真をいじってみた

ここにティザー広告がある。

この写真をとりだしてカメラのあたりを切り取ってみた。
これではカメラの様子がわからないので、画像処理してみる。
黒で塗りつぶしたり、グラデーション処理されているが、カメラの外形がだいたいわかる。

使った画像処理は retinex という処理。使ったプログラムは Imagemagick(ここ)のプログラムを組み合わせた retinex というスクリプト。ダウンロードはここから。

2015年9月11日金曜日

台風18号の接近の様子を、タイムラプスで撮影した

たまたまいた部屋の窓にiPhone 5Sを押し付けて、台風18号の雲の様子を撮影した。使用したアプリはiPhone標準のカメラアプリ。

iOS8以降のカメラアプリにはタイムラプス機能がついていて簡単にタイムラプス画像を撮影できる。撮影間隔の設定がないが、どうやら撮影時間によって間隔が自動調整されるらしい。

この映像は2015年9月9日午前10時ごろから1時間半ほどのもの。タイプラプス映像としては、たった23秒。どうやら240倍に時間圧縮されるらしい。バッテリが切れて撮影終了。



画面右下奥の黒っぽい部分が、ちょうどそのころ台風が上陸した知多半島方向。風は画面左から右(東風)。黒っぽいところがだんだん広がって、近づいていることがわかる。やがて雨が降りだして、風が右から左(西風)に変わる。台風が東のほうを通過したようだ。

2015年9月2日水曜日

wena

きのう、時計のベルトに機能をつけたwenaのクラウドファンディングに応募した。

時計そのものはなんの変哲もないもので、そこにはあまり魅力はない。ベルト幅が22mmということで、いま使っている腕時計(CASIO Protrek)と同じらしい。ベルトだけをこっちに付け替えて使うことを考えている。

到着が楽しみだ。

2015年8月24日月曜日

p2-slice, polar 2-slice, 極座標2-slice 変換

長方形図形で、例えば、額縁図形の額縁の太さを変えずに図を拡大縮小したいときに使う 9-slice 変換がある。9-slice変換では長方形を縦横それぞれ三つにわけ計9個の領域に分割し、それぞれの領域にしたがった拡大縮小を行う。

それと同様のこと(円板の枠の太さを変えずに円板の大きさを変える)をするのが p2-slice変換。そのアルゴリズムがこの図。

円板図形を極座標変換(polar conversion)する。できた長方形領域の二つの領域(2-slice)で変形をする。そしてこんどは逆極座標変換する。

アルゴリズムにしたがってプログラムを作ってみた。その結果を示そう。腕時計の文字盤。CASIOのサイトから写真を借用している。

この図形を 50%に縮小する。(convert -resize 50%)
つぎに p2-slice を使って、一番外側の都市を表示した部分の半径方向の高さを変更しないように、50%に縮小する。

わずかな違いだが、この変換が有効な応用分野もある。

2015年7月23日木曜日

iPhone5sのバッテリを交換した

このところiPhone5sの電池の減り方が早くなったので、6に替えようかなと思ったけど、9月には6s?が発表とかいう噂もあるので電池を交換することにした。

発売から二年近く経つので電池交換の情報はインターネット上にいっぱいある。とりあえず電池を2個購入。

分解はiPhone4とは違って吸盤が必要。iPhone3のころに購入した工具セットがいま生きる、という感じです。

電池交換を終えて、星ネジを締める前に動作確認をしてみると、電源が入らない!

どこか接続を壊したかと思って、全体を確認をして、やり直してみるけど、それでも電源が入らない。

ひょっとしてと思って元のバッテリにしてみると、ちゃんと電源が入る。ん?バッテリが死んでるのか。

幸い2個購入していたので、もう一個のバッテリでやってみると、電源が入った。万歳。

だめだった方のバッテリの端子電圧を測ってみると、0ボルト。完全に死んでる。

死んでる電池は交換してもらえることになりました。