定住生活が必要だって言ってるだろうが!

「定住生活が必要」というエントリを書いてから9年も経っていた。しかし僕らはまだ流浪の旅をつづけさせられている。

 

naoya2k.hatenablog.com

この9年で僕はGUIのプラットフォームを3つ作っているのを見た。1個の製品の寿命が3~4年くらいしかなくて毎回作りなおしているからだ。これは具体的には同じ機能を3回作りなおしているということだ。カレンダーが表示される機械だったらカレンダーの表示処理を3回作っている。日本やアメリカでは1週間は日曜日からはじまるけど欧州は月曜日はじまりで表示しないといけないんだぜとか週番号のはじまりの日が国によってちがうんだぜとかそういうことを毎回バグ指摘されて修正してをやっている。Bluetoothのペアリング機能がある機械でペアリングするときのUI (機器発見をやって一覧を表示して選んでもらって6ケタか4ケタの番号を交換して画面に表示してOKボタンを押してもらうやつ)を毎回つくっている。そんなところを新しくしてもエンドユーザにはなにもうれしくないので顧客価値には全くつながっていない。でも毎回新しいUIを作っているからバグが出て修正をするのに金がかかっている。

傭兵たちは無駄な作業でも賃金が貰えるので集まってくるが社会にインパクトを与えることができるような仕事ではないので儲からない。儲からないから生産性を上げろといいつつ単価を下げてオフショアとかに出したりショボい奴らを雇ったりしてダメなコードが量産されてしまいまた捨てることになる。一般的なソフト開発をやっている会社の場合ソフトは売りものだからすぐに売ってしまい自分たちの資産にするという考え方をしない。ソフトウェア開発の会社をいっぱい見てきました、みたいなコンサルなんかは完全にそういう考えかたで成功を収めてきた例ばかり見ていてプラットフォーム企業になるような方向性は打ち出さない。だからコンサルの言うとおりにするといつまで経っても失敗つづきになる。当然だ。

 

 

ソフトウェアをわかっていない偉い人は「なんでそんな基本的な機能を動かすのにこんなに金がかかるんだ」って言うけど、基本的な機能でも目を引く新機能でもソフトの開発工数はあんまりかわらないんだよ。AppleGoogleが新しいものを作れているのは彼等がAndroidiOSを延々と使いつづけているから、僕等が苦しんでいるような基本的な機能を作り直したりしていないからだよ。

どうして日本はハードウェアでは強かったのにソフトウェアは全然だめなのか?という質問がよく出てくるが、そりゃ当たりまえだ。モノを製造している会社は工場をそんなに頻繁に建て変えない。もちろん気合の入った新製品のために工場を拡張するとかそういうのはある。でも生産するものに合わせて毎回工場を全面刷新したりしない。しかし本邦のソフトウェア開発の教科書は違う。要件分析をしてそれに合わせて最適な部品やプラットフォームを選ぶのが正しいとかいう奴らが居る。でもそれは遊牧民族の生き方であって、それではいつまでたっても巨大な都市も荘厳な建築物もつくられず高度な文化が醸成されることもないのだ。

 

「全面刷新する」みたいなことが大好きなやつらが居るんだ。そのくせ「どうしてiOSAndroidのようなものが作れないのか」と聞いてくるのは本当に意味がわからない。iOSは12年間ずっと基本的な部分は変わってないんじゃないのか。僕等も全面刷新せずに12年間ソフトウェアを育て続けていれば、そしてそのソフトウェアとともに熟練技術者を抱えていればもっと状況は良かったはずじゃないか。それを何度も同じようなソフトを新しい開発者を雇って作りなおし、同じようなバグを出して金を浪費した結果がこの惨状だ。

 

ソフトウェアファーストと言う掛け声が好きな偉い人が居る。そのくせそいつがやろうとしていることは過去のソフトを捨ててまったく新しいソフトウェアプラットフォームをベースにしたなにかを作ることだ。ソフトウェアファーストというなら昔の会社の名前をひきづっている識別子がイヤだからぜんぶ書き換えていまの会社名にするとかそういう生産性のない作業をやるのもやめてほしいし、「xxのフレームワークは古くさいから最新のyyで書きなおしましょう」とかいうのもやめるべきだし、RenderScriptみたいな一時期の気の迷いみたいなやつを最近まで残していたAndroidを見習えと思うし、Appleを褒めるんならNEXTStepMacOSiOSの歴史をとりあえず舐めてからにしてほしい。

昔話といまの話

当時携帯電話のGUIの技術開発や実際の商品ソフト開発をやっていた僕が当時を振り返って下記のやつにコメントしたい。

 

anond.hatelabo.jp

 

    例えば、狙ったところを操作できるような、タッチパネルの進化。昔のタッチパネルって強く押さないと反応せず、操作しにくくなかっただろうか?あれは抵抗膜方式といわれる方式が使われていたからだが、それが静電気で反応する静電容量式が普及することで一気に操作性が上がった。

    後はCPUの処理性能。過去のLinux搭載の携帯端末なんかは処理速度が遅く、ストレスがすごくなかっただろうか?

    だけどiPhoneは最初からぬるぬる動いていた。そのレベルでストレスなく動かせるにはCPUの性能が上がる2010年代を待たなければいけなかった。

静電容量式は新しい技術ではなかった(券売機とかATMとか)が、当時細かい操作に向かなかった。むしろ抵抗膜&スタイラスの方が細かい操作が可能だったため、そこに固執してしまったが、静電容量式チューニング&GUIを工夫した事が正解だった。

 

 

iPhoneは静電容量式だったから操作性が高かったわけではないし、静電容量式を採用したからユーザーに受けいれられたわけではなかった。
タッチパネルをタッチしたりドラッグしたりしてから画面に反応が出てくるまでの遅延時間が短かかったことが、タッチパネルを使えるUIにできた最大の要因だった。

タッチパネルでドラッグやスワイプのような操作をさせるためには、遅くてもユーザが操作してから100ms以内に画面に反応が出ることが必要。しかし当時の携帯電話のGUIフレームワークはもっさりしていてユーザがボタンを押してから画面に反応が出るまで200msかかることが普通。画面切り替えのときは1秒かかるようなこともあった。
一部のメーカーはJavaアプリのために丁寧に設計された描画・表示ルーチンを用意してできるだけ低遅延に動作させるよう工夫していたが、それを使いこなせるのはJavaチームのメンバーなど一部の人たちだけだった。彼らはこれをベースにしたプラットフォームが作れればもっといいUIが実現できるとわかっていたものの、大人数で分担して作っているアプリを、特定のセンスのある技術者が仕切って全部作りなおすというような提案は、当時の雰囲気がそれを許さなかった。
そんな中で世間はiPhoneの操作性に関しては「静電容量のタッチパネルと、マルチタッチと、処理中にアニメーションさせることによって快適な操作性を実現している」というのが定説になってしまっていた。
だから「それらを用意してやる。それ以上の金はないがタッチ対応携帯電話を作れ」というような方針になっていて、そこで「いやそれだけではぜんぜんダメでほぼ全てのGUI部分のソフトを作りなおすようなことが必要だしそれに合わせてミドルウェアも…」という話にGoがかかるわけはなかった。それで静電容量タッチパネルのハードだけ搭載したもののロクでもないソフトが乗った端末が2008年夏〜2009年冬にかけてたくさん出てきた。ロクでもなかったがそれに開発リソースを取れられてAndroidへの移行が遅れたのかもしれない。


タッチパネルについて言うと、2004年末に発売されたNintendo DSがヒットしたときも混乱を招いていた。あれは抵抗膜方式だったがサクサク動いてペン操作がたのしかった。低遅延だったからというのと、UIがゲームの価値に直結していてそこに優秀なプログラマやデザイナが投入されたからだし、重厚なGUIライブラリではなくリアルタイムにぐりぐり動く画面を作るための薄い3Dライブラリだけを用いてプログラムが作り込まれていたからだ(そしてiPhoneがそれに匹敵するヌルヌル動くUIを実現できたのはベースとして既にOpenGLバックエンドでGUIアニメーションをぐりぐり動かしていたMacOSがあったから)。しかしその事実に気付いていなかった(あるいは気付いていていも解決策が見い出せなかった ー たとえばゲームプログラマ並にインタラクティブなUIをさくさく開発できる優秀なプログラマなんて家電メーカには殆ど居ないし、MacOSみたいな素性のいいベースソフトも持ってない)偉い人たちはこのように説明した。「あれは2画面だから良い感じに動作できているのです」「あれはゲーム機だからです。携帯のような制限の大きい製品では実現できません」
iPhoneが出てきてそれが静電容量式だったとき、それらの偉い人はこう説明した。「これまでの抵抗膜方式ではなく、静電容量方式だからあのようなUIが実現できたのです」


これは、「間違った分析を元に間違った戦略を立てると失敗する」という、あたりまえの話である。だがこれはUIの話でしかない。iPhoneの革新的な部分が、もしUIだけじゃなく豊富なネイティブアプリが集まったからだというのであれば、それはまた違った要因で違った対策が必要になる。具体的にはiOSのような開発環境もそうだしAppStoreのような中央集権的なアプリストアもそうだ(ドコモは中央集権的なアプリストアを直接的には許されていなかったためトラステッドアプリなどのややこしい仕組みで頑張ろうとしていたがうまくいかなかった)

 

ところで、当時、券売機もATMも静電容量式ではなかった。あれは赤外線マトリクスか表面弾性波方式だったのではないか?

 


Linux 搭載のガラケーIPhone 直前のモデルはそこまで遅くはなかったし、PDA 勢から見ても CPU 的には一足飛びに進化したわけではなかった。ただハードウェア・OSから作り込むことで、画面の描画やブラウザのカスタマイズで他より早く見せることが出来た。

初代 iphone 以前に要素はあったというか、言い換えると同じ要素が揃っていても、他のメーカーには iphone が作れなかった。(正解が見つけられなかった)

という方が近いのでは。

話の大意としては変わらないけど、要素技術が揃うだけではダメで、それを使った正解の形を見つける事も必要っていう。

 

何が正解かは世間の雰囲気で決まってしまうところがある。
iPhoneが出る前、NDSが大ヒットしてた頃は2画面タッチパネルが大正義だったし、その前、例えば日本ではザウルスはタッチパネルとペンだけだったけど北米では物理QWERTYキーボードがないと売れないんだと言われてた時期もあった。いまはiPhoneがヒットしてタッチパネルだけのものに皆が慣れてしまっていてそれが正解とされているけど本当に正解なのかどうかは個人的には未だに疑問だ。iPhoneはやっぱりiPodをあれだけヒットさせたAppleが本気を出して取り組んでいる、という本気度が伝わったからみんながあれを正解だと信じれたのだと思うし、テスラのEVについても最初は懐疑的だったが7〜8年過ぎたあたりからEVの未来をなんとか信じられる人が増えてきた。


欧州は一体となってBEVが未来だと印象付けようとしているしそういう政策を進めている。これは水面下で主要な欧州メーカーがEVの技術にほぼキャッチアップしてそれがモノにできそうになってきた(これで日本メーカに勝てる)ことが明確になった段階で、いまの形のBEVの進化形が正解だとして規制や社会のムードを変えて勝ちに来ている。少なくとも電力に関しては2050年にはカーボンニュートラルになるんだという前提で
自動車はひとつの車種を開発して発売までこぎつけるのにプラットフォームを流用した場合でも3年はかかる。新規の場合は6年ほどかけて開発されるだろう。欧州がここ数年で急速にBEV化を進めてきているがそれに合わせて各メーカから何車種もBEVが発売されているのは、周到に準備を進めた結果だろう。一方で日本の政府のロードマップは数年でころころ変わるし日本車メーカーもそれに合わせて右往左往しているように見えて不安だ。しかし欧州がそうだったように日本も水面下で調整が進んでいる可能性はある(期待薄だがこれに期待したい)。


とはいえ社会のムードがわりと急に変化する場合があり、それには迅速に対応しないと致命的なことになる。ガソリン車→EV車という転換について、欧州ではそれが少し前に発生したという感じなのだけど、日本とアメリカでそれがいつなのかはよくわからない。いまのトヨタは当時のAppleのようにジョブズのキーノート一発で世間を見方につけることができるほどのカリスマはないから、どんな未来が急に来てもそこそこ対応できるように体制を整えておくしかなくて、いまのようになっているんじゃないかという気がする。

小さいノートPCで良いのがない問題

GPD microPCのヒンジがぶっ壊れて以来、これに代わる小さいPCが出てこないかと物色しているがなかなか良いのが出てこない。そうこうするうちにCF-RZ8がディスコンになってしまった。もう10インチはしばらくは出てこないのではないかという気がしてしまう。

 

 

One Netbook A1かPocket3がおそらくまともに考えた場合の選択肢だと思う。でもどちらもキーボードが残念極まりないデザインとなっている。数字キーがフルキーの半分というのは許されるだろうか? こいつらはそれが許せる人向けのコンピュータだと思う。つまり僕のような人間向けではない。

Pocket3は8インチのディスプレイを搭載するという話だ。そうするとディスプレイの表示部分の大きさは172x108mm、PC全体の横幅は195mmくらいになると思う。だったらもうあと1cm横幅を広げればLibretto 50とか70のキー配列をつっこめるはずだし、エンジニア向けというならそうしてほしい。それが無理でもmicroPCのような配列にできるはずだと思うのに、なぜかアルファベットのキーを大きくすることに執心してキー数が少なくなっている。

One Netbook A1は550gだけどPocket3は600gを超えてくるのではないかと思う。650gになってしまうのであればキーボードの使い勝手なども考えてやっぱり微妙感が漂ってしまう。

そういえばCESで発表されたLAVIE MINIというものがあった。これはいろんな機能が満載されているのでとても高価になりそうだ。でもたとえばN5100やN6000をCPUに使って、RAMが8GBあって、あまり高価でないのであれば、この数字キーが虐げられていないキー配列は魅力的だと思う。

NEC PCが8型2in1「LAVIE MINI」投入、第11世代Coreでゲームも - PC Watch

新型iPad miniのjelly scroll現象はApple Pencilの遅延を小さくするためだと思う

今日家電量販店に行ったら新型iPad miniが置いてあり、噂のjelly scroll現象はどのようなものなのかを確認してみた。

普通にSafariを起動して最初にオススメされているYahoo! Japanのトップページで縦スクロールをするだけで発生した。縦に連続的にスクロールさせると画面の左右で1フレームズレたような表示になり画面が平行四辺形に歪んだように視認される。

実際には実物を見るまで「高フレームレートのカメラのせいなんじゃねーの?」とか思ってたんだけど普通に触ってすぐに視認できるものだったのでカメラのせいではないことは明らかだと思った。

 

画面は60Hzでしか更新されないディスプレイを使っているはずで、通常60Hzのディスプレイというのは画面の内容を1/60秒かけて(コンピュータ側の)フレームバッファから転送してもらうようなインタフェースになっている。この1画面の転送の途中にフレームバッファの内容が更新されるとそれまでに転送されたフレームとそこから転送されるフレームがズレてjelly scrollのような現象が発生する。これはティアリングと呼ばれる現象である。

このiPad miniでは画面の真ん中あたりでティアリングが発生するタイミングで画面のフレームバッファの更新が行なわれている。内部のフレームバッファは120Hzで更新されているのではないか。そう思う理由はこの現象を捉えた60fpsの動画を見たときに60fpsの1フレームで動いた量の半分以下のズレしか発生していないように見えたからだ。
(しかし実際のところ60Hzで画面の片方からもう片方に順次書き変わっていくこのiPad miniのディスプレイを、60fpsのCMOSカメラで撮影しても正しい状況は綺麗には撮影できないから、もっと高速なカメラで撮影しない限り推測が混ってしまうだろうと思う)。

 

Appleがこれに気づかなかったか、なにかとのトレードオフで敢えてこれを放置したかどちらなのかを考えるとおそらく後者。こんなことをする理由は遅延を減らすため。おそらくApple Pencilで描かれた軌跡を1msでも早く画面に反映させるために敢えて内部120Hz動作にしているのではないかという気がする。60Hzの場合には(上から下に向かって画面のリフレッシュが行われる場合には)画面の上半分と下半分で1/60秒=16ms近い遅延の時間差が発生する。120Hzでフレームバッファを更新しティアリングを辞さない場合にはそれが1/120秒=8msに軽減できる。画面表示に伴う遅延の平均値は8msから4msに縮まる。内部120Hzで、ディスプレイは60Hzで、ティアリングを許容することでApple Pencilの操作性が高まり、そして横画面ではあまり気にならないというのならこのようなセッティングにする判断はアリだと思う。

 

iFixitはディスプレイのリフレッシュ方向をこれまでの(iPadを縦向きにしたときの)縦方向から横方向にしたことがこのjelly scroll現象の原因だと推測しているようだが、それは間違っていて、Appleは、「この現象が縦画面のときに起こるのと、それとも横画面のときに起こるのとでどちらがマシか」を検討した結果、横画面のときに目立たないほうがマシだな、と考えて敢えてリフレッシュ方向を変更したんじゃないか。

 

とはいえそこまで低遅延でメリットを感じるのは、Apple Pencilを使う人やもしくはシビアなゲームをやる人だけなわけで、それ以外の人にとっては「単にスクロールしているだけで気持ち悪い視覚効果の生じる欠陥」としか思えないだろう。このややこしい話をユーザに理解してもらうのはわりと難しく、この現象が起こらないようになる設定を設定画面に追加し(フレームバッファの更新も60Hzにするというものだ)、その設定をonにするとApple Pencilの遅延が大きくなるとしたら、それはそれでこの原因が理解できないユーザには受け入れられないような気もする。これはAppleとユーザとの対話力が問われていると思う。

USB-PDには可能性がある

今年度も半年が過ぎた。

`PDトリガーケーブルを買って12Vや15VのACアダプタの代わりにUSB PDのACアダプタが使えることがわかり生活が便利になった。これはイケてる気がした。具体的にはオムロンのマッサージクッションが12Vだったり、手持ちの小さいディスプレイが12VだったりしたのだがこれらをUSB-PDの小さいACアダプタとトリガーケーブルで使うことができることがわかった。レッツノートも15Vのトリガーケーブルで充電できるとのことだったが、15V・5W対応のトリガーケーブルで65Wアダプタに繋ぐとどうもうまくいかない様子で、3Wまでしか引けないケーブルと65Wアダプタの組合せだと安定して充電できているような気がした。このへんは難しいところのような気がする。

 

 

個人的に今いちばん出てきてほしいと思っているのはPDでバッテリーが充電できる電動アシスト自転車だ。PDの100Wのアダプタはそれだけで7000円〜10000円くらいするしバッテリーのほうにPD対応の受電回路や防水に配慮したコネクタを設けるとなるとまたコストが嵩むので自転車メーカとしてはあんまりモチベーションがないかもしれないけど、個人的にはPDで充電できると巨大な充電スタンドを家に置かなくてもよくなるし、出先などでの充電の選択肢が増えるのでめちゃくちゃいいと思う。他にもPDで動かせたら便利になる電気製品はいっぱいあるんじゃないだろうかと思う。

GPD microPCのファンを復活させた

以前ファンが壊れて(というかファンのコネクタがマザーボードからもげて回らなくなってしまって)以来ファンレス運用を強いられていたGPD microPCだが、Windows 11 insider previewを入れるとめちゃくちゃ重くてどうしようかと思っていた。ファン壊れたときの顛末は下記。

GPD microPCのファンが壊れてピンチ - naoya2kの日記

 

重いのが、ファンが動かないせいなのか、Windows11が根本的に遅すぎるだけなのかわからないまま何度かpreviewのアップデートを行いつつ、どうにかならないかなといろいろ探っていたのだが、テスターでいろいろなところの電圧を測っていたところ、コネクタのそばにある二つの少しおおきめの丸いランドが、ファンのコネクタと同じ働きをしてくれることを発見した。

f:id:naoya2k:20210908180409p:plain

これは健全なGPD microPCの基板。橙色で囲ったところのランドがファンのコネクタと同じっぽい

ファンのスイッチをautoにすると5Vが流れて、offにすると0Vになり、スリープになっても0Vになる。ここにファンの赤と黒のリード線を直接接続するようにはんだ付けしたらファンが動くようになった。

 

ところでヒンジはあのあと何度直しても、ヒンジの硬さを保ったままでは壊れてくる状況になってしまったので、ヒンジの硬さをなんとか維持するのはあきらめてグラグラな状態で我慢することにしている。Jasper Lakeでいい機種が出てこないかと期待していたのだけど、Cerence N5100を搭載したコンパクトなノートPCなど全く立ち上がってこないし、こんな状況ではUMPC的なものにN5100が降りてくるのは当分先になるだろう。そもそもWindows11のシステム要件に9インチ以上の画面という条件があるために小さいマシンを作れないのかもしれない。

個人的に軽くてキーボードがまともな配列だったら別に10インチでも構わないんだけどな。

専門家が夏に開催するって決めてみんな賛成したのに、アスリート以外の誰がオリンピックに向いていないって反論できるんです?

バッハ会長は「東京オリンピックの実現には犠牲が必要だ」と言っていた。そのSacrificeというワードに一番あてはまるのは日本国民だが、そこにはアスリートも含まれていたということだ。こんな伏線が用意されていたとは気づかなかったぜ。

 

english.kyodonews.net

 

news.yahoo.co.jp

 

記事は日本が開催地に立候補した際に「この時期の東京は穏やかで晴れた日が多く、アスリートが最高の力を発揮する上で理想的な天候である」と主張していたことを指摘。「穏やか? 理想的? 7月のこの東京が?」と強烈に皮肉った上で、「日本はそれが嘘だと知っていた。東京に住んでいる人間なら、真夏の気候が『穏やか』でも『理想的』でもないことは誰でも知っている」 

 

僕は神奈川に住んでいて、僕個人としては東京の真夏の気候が「穏やか」でも「理想的」でもないと思っている。でも僕はこれまで、僕のことを知らないやつがそいつの狭い了見で僕に関する何かを決めつけてくることにめちゃくちゃムカついていたので、自分が専門家じゃない部分について、専門家がほぼ一致して言っているようなことは、疑いつつも一度は素直に信じてみるべきだと思っている。この「理想的な天候だ」という言葉を綴ったJOCはバカどもだったのかもしれないが、でもIOCの偉い人がそれを評価するときにはちゃんと完璧にファクトチェックをしたに決まっているのだ。だから、僕は「この7月の気候でオリンピックなんてありえないって思うんだけど、それは僕がアスリートじゃないからで、きっとアスリートには、これが理想的な天候なんだろうなー」と無邪気に信じることにした。

 

たとえば大人にとってハチミツはなにやら健康的な食べ物だけど、赤ん坊に与えてはいけない危険な食べ物だし、関西人の半数にとっては最高にマズい納豆という食べ物は関東の民にはおいしい食べ物だし、一部の人にとってはまずくて食べれたものじゃないというカップ麺を僕の子供はめちゃくちゃ好んで食べている。それと同じで、世の中のアスリートという人種にとってはこの気温32℃で湿度80%という環境でも理想的なのかもしれないじゃないか。世界トップクラスのひとたちを自分たちの尺度で捉えるなんておこがましいじゃん。

 

そして2018年の夏は記録的な暑さだった。

2018年の猛暑 (日本) - Wikipedia

もうリオのオリンピックも終わり次は東京なんだからIOCの偉い人達も東京の夏の気候に注目しているはず。このタイミングで猛暑が来て、2018年7月23日には東京都心で最高気温39℃が記録された。これを理由にスケジュールを10月にずらすことは十分に可能だったと思うが、IOCJOCは夏の開催の計画をあきらめなかったしアスリートたちも特に大きな反対をすることはなかった。だからもうとにかくやってみろよとしか言いようがないし、「お前らは自分たちが痛い目を見ないとわかんないんだから最後まで死ぬ気でやれよ」と言いたい気分がめちゃくちゃあるんだけどでも真面目な人が死ぬ気でやったら死んでしまうのでそれはダメだ。

 

 

「僕らに我慢させて開催したんだろ。だからあんたらが数日暑いのを我慢するのなんて、そりゃ当然だろう…」って、みんなが思っちゃうような状態になってしまっているじゃないか。これがもしアスリートの大半が「俺たちにはこの暑さこそが最適な気候何だぜ!!」ではなくて、「いや、俺もこの暑さはダメだと思ってたんだけど、言い出せる空気じゃなかったんだ」みたいな感じなんだったら、それはまるっきり敗戦間近の大日本帝国のような雰囲気だ。こういうのが平和の祭典っていうんだからすごいよな。なぜそれを言えなかったのか、どうして正しい判断が下されなかったのかについてはちゃんと調査して公表してほしいよな。多額の税金を使ってるんだから。