2016-12-31

Quantum CSS (Stylo)

個人的な持論として、新しいプログラミング言語は自分自身の存在意義の証明をすべしっていうのがある。実際自分が雇用された会社が言語を作った例ってのがいくつもあるんだけど、大体の会社においてそれが行われている。実際ポシャったLonghornのコードなんかはシェルがC# (Avalon)+WinFSゴリゴリで書かれてて、デスクトップ用途におけるC#の存在意義を示すものだった。このプロジェクト自体は失敗したけど。失敗した理由は決して言語のせいだけじゃなかったけどね。完成時におけるハードウェアスペックの想定を間違えていた。

Rustって言語は、同じ時期に出てきたGoと同じ感じと勘違いする人は多いけど、Rust自体は言語仕様としてコーディング時に起きやすいミスを言語仕様的に許さないっていうことがあって、C言語みたいなとりあえずコンパイルは通すみたいなのを許してくれないことが多い。そのため、動いてしまえば問題が起きづらいって感じで、さすが2010年代に出てきた言語だなという感触がある。でもRustって言語の証明をしないといけないとは思うけど、それは?ってところでServoというエンジンがある。

Servoのデモっていくつか残念な話があって、Servoで最速な部分の話を全面に出してて、実際のところよく最適化された現在のいろんなWeb Engineにくらべて速いってことはそんなに多くはない。ただ、局所においてはそうとう速いところはある。

現在のGeckoのCSSパーサーやStyle Systemの設計は相当古い。WebKitやBlink、Edgeに比べれば速いわけでもない。そこでStylo (Quantum CSS)で置き換えて行くってことになる。Stylo自体は去年のMozilla All HandsでRustをどう使うかとかServoどうするのよ的な話から派生した流れで2015年の年末からBobby Hollyがやり始めたもので6月の時点のデモではWikipediaのCSS Parse / Stylingが約5倍くらいになるよって感じでステータスが報告された。Stylo自体は別ツリーでビルドされているので、まぁちょっとずつだけど進んではいる。実際のところは3/4くらいのCSSプロパティの実装は行えてるので、このままだと2017年の春から夏にはNightlyで有効にされるんじゃないかな?

なおBlinkはCSSパーサーをアップデートしたらしいんだけど、そのパーサーをAppleもポーティングしてWebKitに組み込んだらしいんで、2017年は各社のCSSパーサーがいろいろとアップデートされる年なんだろうね。

2016年に買ったもの

PINE64

https://www.kickstarter.com/projects/pine64/pine-a64-first-15-64-bit-single-board-super-comput

Cortex-A53採用のボード。値段が安いしDebianがサポートされてるので非常に使い勝手がいい。Firefoxのaarch64対応はこれを対象に動かしてる。

SONY XPEDIA Z5 Compact

http://www.sonymobile.co.jp/xperia/docomo/so-02h/

Snapdragon 820を採用した世代が発売になるまで買い換えるのを止めようかと思ったけれど、前使ってたZ3 Compactが壊れたので購入。発熱量が多くて段々遅くなったりGPSを拾わなくなる話が多くて、ポケモンGOをやるとGPSを拾わなくなるというのが残念。

ホント、Cortex-A57採用のSoCはいろいろと問題あるねって感じ。

でもサイズ感は気に入ってるので、このサイズのシリーズは続けて欲しいと願ってる。

iRobot Braava 380

https://www.irobot-jp.com/braava/300series/

始め発売された時は全く興味なかったのだけれど、クイックルワイパーを使うと便利すぎるという話を聞いて購入。ルンバは便利なんだけど、ちょっとたまにゴミがとれてないなと思うときに、クイックルワイパーを併用してたんだけど、こいつのおかげでそれがなくなった。

今年買った中で最高の一品。



Withings WS-50

http://www.withings.com/jp/ja/products/smart-body-analyzer

今年の後半くらいからジムにちゃんと行きだしたのだが、進捗管理用に購入。WiFiでデータを勝手に送信してくれるため、メモる必要がないのが便利。

難点は自分が使ってるRuntasticとの連動が有料アカウントのみってところ。

あと、なぜか現在の二酸化炭素量とか温度とかを測る機能がついてるのだけど、これが必要になった理由がやっぱり知りたいよね。



EPSON PULSENSE 脈拍計測機能付活動量計バンド PS-100BL

http://www.epson.jp/products/pulsense/ps100/

運動時の心拍数を図りたいというのもあって、試しに購入。Life Fitnessのトレッドミルと連動できるかどうかをいろいろ試したが、どうもペアリングできないようで非常に残念だった。

あと、バッテリの残量を表すのにバイブでそれを表したりするんだけど、寝てる時にバイブが動いたりするんで、ホント迷惑。たぶんこれ開発者が使ってないんだろうなって思える出来だった。

これは買って損した。



Moto 360 Sports

https://www.motorola.com/us/products/moto-360-sport

フィットネストラッカーとしてどれを買うか考えた結果、Android Wearをネタで一つ持っておくかと思って、購入。

Runtasticアプリの出来の話になるんだけど、Life Fitnessのトレッドミルとスマホを(USBで接続して)連動させた時、なぜかAndroid Wear側のRunアプリがジョギングモードになってしまい、トレッドミルの情報をアプリ側が拾ってくれないっていう残念な問題があるんで、ジムでは使わないことにしてる。



MacBook 2016 Early

http://www.apple.com/jp/macbook/

OSX版の開発環境として Mac Mini 2009 Earlyを使ってたのだけど、10.12からついにサポート対象外になったため購入。外でコードを書いたりする時は DELL XPS12を使っていたのだけど、数百グラムの差は大きかった。厳密には異なるけどSandyBridge世代のCore i5とでビルド時間が20分ほど短縮された。

後当然のことながらUSB-CなHDMI変換ケーブルとかも買った。

でもMac Mini 2016が出てたら絶対こっちは買ってなかっただろうなと