tips

ミクロフの歩き方

チェコの南東部、モラヴィアという地域にミクロフ(Mikulov)という街がある。最近どうも景色がきれいということで有名になりつつあるっぽいので、これ幸いと訪ねることにしたのであった。

ミクロフ、プラハ、ブジェツラフの位置 ©2016 Google

ミクロフ遠景

モラヴィア地方はワインの名産地でもあるとのことで、景色もすばらしいとなるとますます行くしかない。ただひとつ、問題は地球の歩き方に載っていないことである。地上にそんな街あるの……?

インターネットを駆使して観光に挑み、無事満喫して(2泊しかしてないけど)帰ってきたので一通りのことを書いておく。

Continue reading

ブジェツラフでVodafoneのSIMを買う

なぜ?

ウィーンからミクロフに行きたいが、ミクロフにVodafoneのショップがないため、途中の乗換駅で調達したい。この町は地球の歩き方にもLonely planetにも全く載っていないので、(特に丸腰(インターネット通信が出来ない状態))で歩くために事前の調査が不可欠である。

どこ?

ミクロフ、プラハ、ブジェツラフの位置 ©2016 Google

ここ。チェコとオーストリア国境近くの田舎町。いま書いてるもう一つの記事からの画像流用なのがばればれで恐縮だが、赤いピンが立っているのはミクロフ。

Continue reading

Windows10 + usbaspでAVRマイコンを使う

AVRマイコンとはAtmel社の製造しているマイコンである。Arduino(およびそのパチもん)に使われているのもAVRのMEGAシリーズというやつで、安くて小さく扱いやすいのが特徴である。他方、ほんとうに素のマイコンのまま売ってるので、直接USBでPCにつないでスケッチをWriteみたいなそういうカジュアルな使い方はまったくできない。ライタと呼ばれる書き込み装置を使ってマイコンにバイナリを転送することになるわけだ。

このライタにはたくさんの種類があり、まあどれを使ってもいっしょだと思うのだが、買うとそこそこの値段 1する。そこでUSBaspというオープンソースのAVRライタを自作することになるわけで、ご多分に漏れず僕の手元には大学の先生に言われるがままに作ったUSBaspと秋月で衝動買いしたAVRマイコンが多数あるわけだ(ここまで8年前の知識)。

AVRマイコンたち。ATMEGA88, ATTINY85など

AVRマイコンたち。ATMEGA88, ATTINY85など

学生時代に自作したusbasp

学生時代に自作したUSBasp

久々にライタとAVRマイコンが出土したので是非いじってみようと思うわけだが、何も思い出せないし当時のPCもないし、なんならWindows10用のドライバなど全く提供されていないのでどこから手を付けて良いかわからぬ。

Continue reading

Notes:

  1. といっても数千円なんだから、今考えれば買ってしまえばよかろうという感じである

Windows 10 Anniversary Updateを適用後、短時間のフリーズが頻発する件

Updateしてからというもの、ちょっと何かする(アプリを立ち上げるとか、その程度)と30秒くらいOSまるごとフリーズするプチフリっぽい現象が頻発していた。かなり厳しい。

イベントビューワを見るとstorahciとかいうのが死んでいるらしい。

storahci

Level: Warning
Source: storahci
Event ID: 129

General:
Reset to device, \Device\RaidPort0, was issued.

Continue reading

Windows 10 Insider preview build 14316でsubsystem for linuxを試す

タイトルが長い。

まずInsider previewのfast ringに入り、build 14316のアップデートを適用する。すると、Windowsの機能?のところにWindows Subsystem for Linux (Beta)という超かっこいい項目があるので、有効にする。

Windows-features

起動したところ

起動してunameを打ったところ

あとは普通にBash on Ubuntu on Windowsとかいうプログラムが追加されているので、起動して適当にあそぶ。

試した範囲では、build-essentialをはじめとする各種パッケージは普通にaptで入るし、それでzsh, emacs, gitあたりは普通にconfigure/makeできて動いた。emacsをちょっと使ったら表示がぶっ壊れたりしてたし、動作はだいぶ怪しいところが当然あるが、普通にうごくのがすごい。

 

Zsh

sudo apt-get install -y git-core gcc make autoconf yodl libncursesw5-dev texinfo
ls
mkdir zsh-build
cd zsh-build/
git clone git://zsh.git.sf.net/gitroot/zsh/zsh
cd zsh/
./Util/preconfig
./configure
make
make install

emacs 24.5

curl -O http://ftp.jaist.ac.jp/pub/GNU/emacs/emacs-24.5.tar.gz
tar xzf emacs-24.5.tar.gz
cd emacs-24.5
./configure --without-x
make
make install
emacs
emacs -version

git

git clone https://github.com/git/git.git --depth 1
cd git/
make configure
./configure --with-curl --prefix=$HOME/local
make
make install

まるでubuntuのように動く。ただデフォルトのリポジトリがクソ重いので、riken様のリポジトリに変えておくとよい。普通にubuntuと同じように/etc/apt/sources.listを変えるだけ。

root@localhost:~# cat /etc/apt/sources.list
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ trusty main restricted universe multiverse
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ trusty-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse

emacsが入ると自分のinit.elを試したくなるのが人情というものだろう。私のはこれ: https://github.com/naotaco/emacs.d

いつも通りel-getを~/.emacs.d/以下にcloneして、このinit.elを置いて起動したら普通に動いた(ただしgit1.9.5以上が必要なので、自分でビルドする必要がある)。すごい。

emacs

emacs

すぐ表示が壊れる

すぐ表示が壊れる

Auto completionもHelmも動く。

Auto completionもHelmも動く。

なにがなんだかわからないが、本当に動いててすごい。使ってて頭が混乱する。あと、Ctrl+Aがどっかにキーを奪われているのかbash/emacsで使えないのが厳しい。まあそれを言えば、コマンドプロンプト並の機能しかないターミナル自体がそもそも相当厳しいが、まあさすがにこの辺はそのうちなんとかなるだろう。とりあえず無限の可能性を感じる。

GitLabとGit LFSを使ってExcelなどのバイナリでできたドキュメントの世代管理をする

前置き

皆さんも業務上やむを得ずWord, ExcelやPowerpointでドキュメントを作っていることと思います。他にもなんかよく分からない画像だったりとか、Astahとかそういうやつとか。とにかく望むと望むまいと僕たちはプロプライエタリなバイナリに囲まれて生きています。

まあその手のドキュメントは作ったり読んだりしてる限り別にいいんですが、だいたい世代管理が困難に近いです。MicrosoftのSharepointとかいう地上最低の操作性を誇るWebアプリを使う 1など、まあ手が無いこともないのですが、いろいろと厄介です。で、そういうファッキンバイナリィドキュメンツが数十GB単位で貯まってきた頃に事故があって、誰かが共有フォルダのファイルを消したりぶち壊したりしてしまったりなんだりして、上司が「ちょっとこれいい感じに管理する方法考えといて」とか無茶なことを言ってくるわけです。

後半に私情が挟まりましたが、とにかくバイナリをどう管理するかは我々の会社生活を左右する死活問題なわけなので、真面目に考えます。

Continue reading

Notes:

  1. なんとドキュメントのロックができるので、他人との衝突を避けることができます!!

低温調理をもちいて角煮を作る

生きることは角煮を作ることなので、今日も角煮を作る。

通常の調理シーケンスについては私の中で確立しており 1、これに従うことで一定の成果を得られることは既にわかっている。しかしまだ肉の線維が固いまま残ることがあり、改善の余地があることもまた見えている。

肉料理界のレジェンド安全ちゃんさんによると、下ゆでとして蒸し、その後味を付けるためにまた蒸すとのこと 2。その根拠は温度管理がしやすく乾燥しないということのようなので、これは低温調理で一発逆転できるのでは??という気になってくる。

私の理解によると角煮の調理の要件は下記の通りである。

  1. 肉を65℃以上に加熱する(コラーゲンを凝固させる)
  2. 臭みをとる
  3. 脂を抜く
  4. 75℃以上で長時間加熱する(コラーゲンを軟化させる)
  5. 味を付ける

通常の方法においては下ゆでで上記1から3、その後煮ることで4,5をカバーしているが、安全ちゃんさんのレシピにおいては1から4までを1回目、5を2回目の蒸しで実現しているように見える。ジップロックに入れて低温調理をすると2,3が苦手であるので、今回は4,5を低温調理に担ってもらう方向で考える。

つまり、

  1. 通常通り下ゆでをする
  2. 醤油以外の下味をつけた汁で80℃3時間調理
  3. 醤油を含めて味を調えた煮汁に長時間浸ける

という感じである。

今回の調理シーケンス

今回の調理シーケンス

Continue reading

根性を用いてUWPでバーコードスキャナを実装する

この記事はWindows Phone / Windows 10 Mobile Advent Calendar 2015の14日目の記事の(予備と)して書かれました。

余談:

本当は楽に済まそうと思ってLumia950のレビューを書こうと思っていたのですが、Cloveが11月末入荷予定からずるずると出荷を遅らせ、最終的に届いたのが11/12でした。小心者の私はLumiaが届かないだろうと思ってこのエントリをすでにバリバリと書き始めてしまったので、Advent Calendarにはこちらの記事を投稿することにしました。結局ギリギリになって950も届いたがためにレビューの執筆も間に合ってしまいました(つらい日曜日だった)。よろしければあわせてご覧ください。

http://blog.naotaco.com/archives/979

本題

まともなNFCがiPhoneに載る気配がないせいか、現代においてもQRコードはとても広く使われています。自分のWindowsPhone/Windows 10 mobileアプリでもQRコードを読みたくなるのが人情というものでしょう。今年のAdvent calendarのトップバッター@tanaka_733さんのエントリをみる限りWP8.1だと比較的楽に実装ができるそうですが、我らがUWP勢にそのような甘えは許されません。 1

必要なものはこちら:

  • 根性
  • W10M端末, もしくはWindows 10 desktop + WebCam
  • ZXing.Net

どうやっていいかわからなかったので、まずはカメラのプレビュー映像を表示して、そこから一定間隔で画像を抜き取り、それをZxing.Netに投げるという方式で進めることにします。作りが雑すぎて故郷の母にはとても見せられないような感じになりますが、強い気持ちで乗り越えてください。

さて、まずはXAMLに置いたUIElementにカメラのプレビュー画像を表示させます。Androidで言うとSurfaceViewに描画するような感じです 2。とにかくMicrosoft謹製のサンプルがあるので、そこのCameraGetPreviewFrameを全力で参考にします。

作ったサンプルコードのソースはGitHubに上げておきました。

Continue reading

Notes:

  1. ていうかZXing.MobileのMobileBarcodeScannerとか今知ったよ……。
  2. 最近は違うのかもしれないですが。。

天体写真のノイズを減らす方法をかんがえる

天体撮影は突き詰めていくと時間との戦いであって、それはつまりノイズと戦うことと同義である。

星が流れない範囲でシャッター時間とISO感度を調整して、画質と明るさのバランスのとれた落としどころを探すというプロセスは必ず必要である。三脚に直接乗せて星景写真を撮るにしろ、赤道儀で追尾して撮るにしろ、無限に撮影できる環境はない。これが普通の夜景なら時間を好きなだけ撮れるので、絞り優先で最も画質の良いところまで絞って、もっともノイズの少ないISO感度にして撮ればよいだけなのだが。

ノイズには複数の種類がある、と思う(自信はない)

  1. 暗電流や熱によるノイズ
  2. 宇宙線などによる輝点、あとは飛行機とか流星とか
  3. 高感度ノイズ
  4. まあなんか他にもいろいろありそうだけど影響は小さそう

このうち1は再現性があるので、撮影時と同じ条件(感度・時間・温度など)でレンズキャップをして露光した画像(ダークフレーム)を引き算することで割となかったことにできる。露光時間が長い撮影をしたあとにノイズリダクションなどの処理がカメラで勝手に走るのは、この減算を勝手にやっているのだと思うが、それが保存されるRAW画像に反映されているのかについては謎。メーカーにもよりそうだけど、どうなのだろうか。とりあえず、天体撮影をするときはダーク画像も撮っておいた方がよさそう。

問題は2,3で、ランダムに出るということになっている。これをなんとかするのが画像処理的なノイズリダクションで、カメラ内の処理でもやってると思う、が、例によってこれがRAWに反映されているかは謎である。されてないことを期待しているが、どうなんだろう。Lightroomなどでもノイズ軽減という機能があって、すごい勢いでノイズを除去できる。後からやる前提で、高感度ノイズリダクションはオフにしておいてもよいと思う。

とはいえノイズ除去を強くかければかけるほど解像感は落ちていってぬめっとした画像になってしまうし、悩ましい。

そこでよく使われるのがコンポジット((画像の)合成)である(前置きおわり)。

ランダムで出るのだから、何枚か撮影して、画素ごとに外れ値の画像を無視して、都合の良い画像のデータを採用すればよい、という考え方で、どういう風に都合の良い画像を得るかというアルゴリズムも多岐にわたるらしい(よくわからん)。

また、単純に重ねると、星がずれる分がそのまま合成されてしまってぶれた画像になってしまうので、星の移動にあわせて画像をずらして合わせるという作業が必要である。手でやると非常に辛い。

Deep Sky Stackerによる合成、を断念

で、最近?はやりのコンポジット用ソフトでDeep sky stackerというのがよいらしいと聞いたので試してみた。ダーク減算はもちろん、フラットフレームの処理とか自動位置合わせもやってくれる優れものとのこと。

  • 日本語環境で表示がぶっ壊れてボタンが見えない(Windows10で確認, OSを英語にしたら直った)
  • RGBいっしょくたに扱うので色がぶっとぶ

が、上記の問題(おもに2点目)があって断念した。望遠鏡につけるようなカメラってカラーフィルターとか自分でつける前提だろうし、Hαでフィルタして撮った画像とか色もクソもないよなあとかそういうことなのだろうが、とりあえずゆとり写真家には厳しい(赤道儀買う前も同じようなことを言っていたような気がするが)。面倒だからBayer配列のカラーフィルターがついたカメラで撮りたいよ。

色を保ったまま簡単に合成していい感じのトーンカーブにする方法があったら教えてください。

Lightroom + Photoshopで楽に合成する

で、私のようなズボラなアマチュアカメラマンにとって一番楽にいい感じの結果が得られそうな気がしているのが、Lightroom + Photoshopでコンポジットする方法。

  1. 何枚かとったうち、1枚をLightroomで現像する
    • 色とかトーンカーブとか白/黒レベルをいい感じにする
    • ノイズ軽減は弱めにしておく
  2. すべてに設定を同期
  3. すべて選択して、右クリック→他のツールで編集する→Photoshopでレイヤーとして開く
    • Photoshopに新しい画像ができて、選択した画像がすべてレイヤーとして重なった状態になる
  4. レイヤーをすべて選択して、編集→レイヤーを自動整列→「自動」のまま実行
    • 画像が微妙にずれて揃うが、一番上のレイヤの画像しか見えない
  5. レイヤーを全て選択して、右クリック→スマートオブジェクトに変換
    • 1つのオブジェクトにまとまる
  6. レイヤー→スマートオブジェクト→画像のスタック→「中央値」を選択
  7. Tiff画像として保存、Lightroomで追い込む(明瞭度とかね)

とすると、画像の位置合わせと合成ができた画像ができる。ここでは中央値(画像を明るい順にならべて、真ん中の順位の画像を採用)を選んだので、ランダムノイズによって何枚かの画像のうち1枚だけが明るいようなものは捨てられる。中央値以外にも他にもいろいろアルゴリズムがあり、エントロピーとかいうのが良いとか悪いとか聞いたが、死ぬほど時間がかかる上に結果がいまいちだった。使いどころが悪いのか?平均は案の定全体的に明るくぼやけてしまってダメダメだった。

M42の比較(等倍)

M42の比較(等倍)

こないだ撮ってきたM42を7枚コンポジットしたものがこちら。だいぶノイズが除去されているのがわかる。ディテールも若干失われてるような気がするが、、、

ぼけている画像とか、ぶれている画像は事前に捨てる必要がある。あと、いちばん上の2でさらっと書いたのだが、中央値の場合は外れ値の画像をすてるので、流星がたまたま写っていたとしても捨てられてしまう(実際にこのとき7枚のうち1枚に流星か飛行機かが写っていたが、合成後の画像には出てきていない)。そういうときはあとから流星だけ合成してやる必要がありそう(今回みたいな長いレンズだとただの直線状のノイズにしか見えないので、べつに無くてもよいのだが)。

あと、この手順だとダーク減算が入ってないので、ほんとうは3の後に各レイヤからダーク画像を減算してやる必要がある、が、楽にやる方法がよくわかってないので今回は無視する。

とりあえず今回は楽にそこそこ効果のあるコンポジット方法が見いだせたので満足しているが、よりよい結果のためにダーク・フラット補正については考慮する必要がありそう。あと位置合わせの精度とか。

 

 

Ubuntu14.04でemacs24.5をビルドする

sudo apt-get install build-essential 
sudo apt-get build-dep emacs 
sudo apt-get install libncurses5-dev 
cd /tmp curl -O http://ftp.jaist.ac.jp/pub/GNU/emacs/emacs-24.5.tar.gz 
tar xzvf emacs-24.5.tar.gz 
cd emacs-24.5/ 
./configure --without-imagemagick --without-x 
make
sudo make install 

最近はbuild-depでビルドに必要な依存パッケージを入れてくれるらしく、あら便利ねえ、と思っていたのだが、’tputs’がないとか文句を言われるのでlibncurses5-devも入れる必要がある。あとはxとimagemagick(こっちは本当に必要かよくわからない)を外してふつうにconfigure, make, make install。

これでel-getいれてperl6-modeは動くわgoの開発環境は動くわでとてもいい感じである

https://github.com/naotaco/emacs.d/blob/master/init.el