Write and Run

it's a simple way, but the only way.

Arietta G25 で遊ぶ

なんか久しぶりにブログを書く気がします。KOBA789 です。

Arietta G25*1 というボードを @ 氏から買いました。これがどんなものかというと、

  • 小さくて
  • 安くて
  • 簡単な
  • ARM9@400MHz

というものです。400MHz ですが Debian GNU/Linux が動くし、何より小さい(フリスクに入る)し、Raspberry Pi はちょっとデカくてイケてないよねー、みたいなときにいい感じです。あと、「猫も杓子も Raspberry Pi 使いやがって癪に触るんじゃ」みたいな人にもおすすめです。さらにいうと ADC ついてます(Raspberry Pi にはない)。

興味があれば @ 氏に声をかけると(まだ在庫があれば)売ってくれるんじゃないかと思います。

今回はそんな Arietta G25 で遊んでみたので、遊び方のまとめを書くことにしました。なお、公式のチュートリアルTutorialsです。

イメージ焼き

なにはともあれ microSD を焼きます。公式が配ってるイメージがいいと思います。以下からダウンロードできます。arietta_no_wifi.img.zip ってやつがそれです。

Download microSD images

まぁなんとなく dd とかで焼いてそういう感じにします。

sudo dd if=arietta.img of=/dev/rdisk2 bs=1m

起動

いい感じの焼き色になったら Arietta G25 に入れて、microUSB ケーブルで母艦とつなげます。母艦はできれば Linux 機がいいと思います(後述)。

さてこの Arietta G25、HDMI 出力もなければ USB ポート(ピンを引き出せば3つくらいあるけど)もありませんので、Raspberry Pi のように画面とキーボードを繋げて、みたいなことはできません。どうするかっつーと、母艦が Arietta G25 を USB 接続の Ethernet ポートとして認識するので、そこへ SSH する、という方法をとります。母艦が Linux のほうがいいというのは、Arietta G25 をインターネッツの大海原に導いてやるために母艦で IP フォワーディングやら IP マスカレードやらする必要があるからです。

以下、Linux でやるのが一番楽っぽいので母艦を Linux として説明します。その他のプラットフォームに関しては公式のページ(Getting started with Arietta)を読んでください。

Arietta G25 を接続すると、usb0 というデバイスが見えます(systemd とかで書き換えられている人はわからないので読み替えてください)。こいつが Arietta G25 の正体なので、IP アドレスを与えて link-up してやります。公式のイメージでは Arietta G25 の IP アドレスは 192.168.10.10/24 で決め打ちっぽいです。で、デフォゲは 192.168.10.20/24 ということになってます。なので、

$ sudo ip addr change dev usb0 192.168.10.20/24
$ sudo ip link usb0 set up

とします。これでとりあえず 192.168.10.10SSH できるようになりました。しかし、このままでは母艦と通信できるだけでパケットが外に出られないので、いい感じにフォワーディングとか NAT とかしてやります。eth0 は読み替えてください。

$ sudo sysctl net.ipv4.ip_forward=1
$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

これで Arietta G25 もインターネッツにつながるようになりました(パチパチ)。

さっそく SSH してみます。デフォルトパスワードは acmesystems です。

koba789@ubuntu:~$ ssh root@192.168.10.10
root@192.168.10.10's password:
Linux arietta 3.16.1+ #3 Sat Aug 30 14:39:44 CEST 2014 armv5tejl

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Jan  1 01:30:24 2007 from 192.168.10.20
root@arietta:~# uname -a
Linux arietta 3.16.1+ #3 Sat Aug 30 14:39:44 CEST 2014 armv5tejl GNU/Linux
root@arietta:~#

よさそうです。ちなみに時計がおもいっきりズレてるので、ntp とかでいい感じにしてあげたほうがいいと思います。

まとめ

だるくなったので GPIO とかは次回に回そうかと思います。では。

AngularJSは今すぐ生まれ変わるか死ね

mizchi 氏のエントリを踏まえて。

Angularが嫌い - mizchi's blog

何をやるにもググって解決しなければならないぐらいには一貫性がない

マジでこれ。設定が多すぎる。特に directive 定義。どうやら Web Components の流儀に沿うようになっていて、将来的には Web Components に乗っける、ということらしいが、そもそもの Web Components の仕様が汚いし、救いようがない。

参考: AngularJS: Developer Guide: Directive

制御構造と要素を分離してねぇせいで replace とかいうオプションが生えてるし、tranclude との組み合わせでより複雑なことになるし、isolated scope な directive は併用できないとか、ng-repeat で作られた scope の下に他の directive の scope が入るように優先度とかいう暗黙的な値があったり、マジでクソ。その優先度はコードのどこに見えるんですか!!! ドキュメントと本体の実装ですかそうですか!!! ライブラリの知識がないとコードの意味がわからないから雇用が守られていいですね!!! 100 飛びで優先度を振ってあるから横入りしやすくて便利だと思います!!! N88 BASIC の行番号じゃねぇんだぞ死ね!!!

AngularJS の不健全さを知るためには、とりあえず restrict オプションを見とけばいいと思う。directive を attribute でマッチするか、element でマッチするか、class name でマッチするか、というオプションなんだが、それを "A" "E" "C" という文字列の「連結」で表現する。つまり、attribute と element なら "AE" という文字列を指定することになる。なんだそれ。マトモな脳ミソなら { element: true, attribute: true } にするよな。getUserMedia だってだいぶ前に直ったんだぜ?

とにかく、AngularJS の設計が気に食わない。なんでどこもかしこもアドホックなルールだらけなんだ。犯人がわかったと思ったら後出しでアリバイが出てくる推理小説かよこれは。

AngularJS は今すぐ生まれ変わるか死ね。あと Object.observe を AngularJS のためだけに Chrome に先行実装してゴリ押しするのやめろ。

CSS flexible box は WPF の StackPanel と同様の表現力を持つ

週末の実験結果。かなりわかりやすくレイアウトを組めることがわかった。しかし WPF の Grid と比較するとまだまだ表現力が足らない。細かいことはまた今度書く。

ちなみに CSS の display プロパティに grid という激ヤバな値が導入された*1。現状 IE10+ のみだが、Chrome の Nightly とかにも入ってる、らしい。IE11 では確認した。しかし gird が導入されても依然としてセンタリングは難しく、人類が100%幸せになることはなさそう、というところ。

さて、StackPanel もどきをベースに UI を構築できる何かを考えるか……

2014年を迎えて(なお2013年は終わった模様)

あけましておめでとうございます。旧年はお世話になりました。今年もよろしくお願いします。(ここまでが台本です)

KOBA789の2013年まとめ

年のはじめからいろいろあったといえばあったのですが、どれも悪いことではなく、とても良いことのほうが多かったという印象です。振り返ってみると、ここ数年で1番平和で純粋に幸せな年でした。具体的には、ゲヒルンに Join したり、文化祭で無茶言いまくって暴れたり、筑波大に合格したりしました。

2014年とは

2013年の次の年で、2015年の前の年です。まぁ例によっていろいろあると思います。

2014年の目標

2013年がだいぶ平和だったので、2014年はおかしな年になって欲しいなぁという感じです。というわけでして、周囲の皆々様、心の準備をお願いします。