レッツノートの調子が悪いと悩んでいる人にタイムリーに助言できなかった話

去年の夏に別の部署の人としばらく毎朝ミーティングをするような仕事があった。

その人は割と新しいレッツノートを持っていたんだけど、「最近調子が悪くて、急にスリープに落ちることがある」と言っていて、僕はあまり深く考えずに「そうですか… それは大変ですね」と返していた。

 

 

しばらくしてふと思い出した。最近のレッツノートは開閉検知をホール素子かなにかの磁気センサーによって行っていて、その素子が配置されている部分はパームレストの手前のどこかになっていることが多く、その部分にディスプレイ側に仕組まれた磁石が近づくと閉じられたと判断するのだ。そしてその人はよくノートPCの上にスマホや携帯スピーカーを置いたりしていた。スマホによっては背面にスピーカーがありその部分はそれなりの磁力を発生させていたり、ケースに磁石が仕込まれていたりする。つまりパームレストの特定位置にスマホを置くだけで液晶が閉じられたと誤検知されることがある(そして僕もたまにイヤホンがパームレスト上に当たることによっての開閉誤検知を発生させている)。

僕はノートPCを閉じた場合にも自動的にスリープに入らない設定にしているので、誤検知されても画面のバックライトが消えるだけで、「ああ、なんかあたってるな」と思ってすぐに復帰できていて、特に問題視していなかったのだが、デフォルト設定では液晶閉じたときのアクションはスリープだから、ふとした拍子にスリープに入ってしまうことはあると思う。

もしそれが重要な会議前などだったら焦るだろう。でもこれは原因がわかればさほど焦る必要もないような話であった。そのときに気づいていれば教えてあげられたと思うけどもうそのタイミングは失われてしまったのでちょっと残念だ。

 

 

別にレッツノートに限った話ではないと思うが、もしこれを防ごうと思うなら開閉検知を他の手段で行うようにするか、あるいは2つの素子を左右の離れた位置に用意して同時に反応した場合を条件とすればいいと思うが、少しでも部品を減らして0.1gでも軽量化しようとしている方向性とはトレードオフになるので、割と悩ましいところなのかも。

Raspberry PIの電源制御ボード OnOff SHIMを買ってみた

素のRaspberry PIの電源をオフにするときの操作はshutdownコマンドのあとに電源ケーブルを抜くという形になり面倒な感じだった。電源制御ボードというのを付けることでそれが改善されるというので物色していたところ、OnOff SHIMという安くて小さいやつがあることを知り購入してみた。

(他にももっと高機能なHATがいくつかあったけどこの小ささに惹かれた)

 

www.switch-science.com

 

GPIOピンにはんだ付けするのはちょっと怖いのでピンソケットを使って接続してみた。ボタンで電源on & ボタン長押しでシャットダウンシーケンスが走った後自動的に電源オフになる。便利。ただちょっと基板がヤワい感じなので電源ケーブル(microUSB)の抜き差しとかピンソケットを外したりするのは注意しないと壊れそう(特にピンソケットのはんだの部分が)で怖い。

 

 

ボタンが押されたことを検知してシャットダウンする部分の制御は割とシンプルなプログラムで出来てそうだったので読んでみた。pythonスクリプトで書かれていて、1秒に1回raspi-gpioでボタンの入力をポーリングして押されていればそのあと1秒間の長押し検出に入るコードになっていた。これはこれでシンプルで実用になっているし悪くないのだ。

 

しかし、僕らが作っている商品ではこういう作り方はできない、富豪なコードだと思った。たとえ全体のCPUパワーがこのPI 3B+を全く上回っていたとしても、たぶん1秒に1回pythonスクリプトが定期的に動いてそこからプロセス生成を含むコマンドが呼び出されるというところがもう無駄にCPUパワーを使うというところでダメであり、押したタイミングによって必要な長押し時間が最大1秒変わってしまうというところもダメだ。同じpythonでやるにしてもRPi.GPIOを使えばもうちょっといい感じにできるんじゃないのか? とか思ったんだけどそうすると割と初心者には難しいプログラムになってくるし、これくらいのユルさが許されるのがいいのかなとも思った。

XPERIAの不調に思う

ソニーの2018年度3Q決算によればXPERIAが不調とのことで、XZ2に対するユーザたちの落胆度合いを見てりゃそりゃあのデザインでは日本では売れないだろうな…というのはわかるんだけど、じゃあなんであんなデザインにしてしまったのか? というのは割と謎だ。

 

2015年くらいまでのXPERIAの良いところは何だったのかというと、一般的には音質が良くてカメラがいい、そして個人的にはさらに、割とデザイン的にいい感じの場所(背面左上隅)にある背面カメラと、4.6インチのCompactのモデルが重要なんじゃないかという感じだった。それがXPERIA XZ2は背面のデザインがかなりダサい感じに見えるし、イヤホン端子がなくなってデジタルオンリーになり音質面で強さを主張できなくなってしまった。そしてXZ2 Compactは5インチ液晶になって大きくなり、iPhone7より30g・iPhone8と比べても20gも重い端末になってしまった。そりゃiPhone8買うって。いくらiPhone8がダサいって言ってもXPERIAも似たようなものになってしまっているわけだし。

 

Compactの系列は、Z3 Compact以来新機種が発表されるたびにちょっとずつ重くなっていくので毎回残念だと思っていたんだけど、XZ2 Compactは特に残念だった。

129g(Z3c) → 138g(Z5c) → 135g(Xc) → 143g(XZ1c) → 168g(XZ2c)

 

小型化がソニーアイデンティティじゃなかったのか。他社が大きいのを作るから僕らも大きくして、大きくなったから重くなっちゃいましたとか、そういう発想はおかしいだろ。僕の周囲だけかもしれないが周囲の誰に聞いても「XZ2/XZ3は大きすぎる。XZ2 Compactは重すぎる」 というようなことを言っている。ここで小さいのを作らないようなのは顧客の声を聞いてないとしか思えない。

 

 

そして残念なのがカメラだ。もともとiPhoneがあまりカメラに力を入れてなかったときはXPERIAのほうがカメラ画質が断然上だったが、iPhone4sあたりで並ばれてしまい、そしていつのまにか静止画を「その撮影画像をぱっと見たときに綺麗に見えるように撮る」ということにおいては完全に逆転されてしまっていることは目の肥えた人になら明らかだったのではないか。たとえばdpreviewというサイトではXPERIA XZのレビューでは下記のように厳しい評価を受けていて(評価点の比較ではその1年前に発売されたiPhone 6s plusにすらボロ負けしており、勝っているのはシャッターボタンがあることだけだ)、そしてXZ1以降はそもそもレビューすらされていない。

 

Sony Xperia XZ camera review: Digital Photography Review

So, while there is currently a lot of camera innovation to be found in the the high-end bracket of the market, it seems like Sony has only made incremental improvements to its smartphone cameras and imaging apps ever since the first Xperia with 1/2.3" sensor, the Xperia Z1, was launched back in 2013. As a consequence, the Xperia XZ is struggling to stand out among its highly competitive rivals.
With its solid construction, environmental protection, good screen and responsive operating system the Xperia XZ is a very good smartphone in general use. However, while camera performance is by no means bad, some rivals currently have more to offer to mobile photography enthusiasts.


現在のハイエンドスマホ市場ではカメラに関するイノベーションがたくさん出てきてるけど、ソニーは最初の1/2.3センサーを使ったXperia(2013年発売のXperia Z1)を出して以来、ちょっとずつしか進化してきてないように見えるぞ。結果として、Xperia XZは競争力のあるライバルたちに埋もれちゃってる。堅牢な構造、環境に優しいとか、画面が綺麗でOSの反応がいいので、Xperia XZは普通に使う分には非常に優れたスマートフォンなんだけどさ、カメラの性能は決して悪いわけではないけど、他の機種はもっといろいろ良くなっているので。

 

そして以前なら画素数の多さで騙せていた素人たちにとっても、背面にあるレンズの数が1個しかないというところで、レンズが2個並んでる中華スマホのほうが良いのではないかと判断されてしまうような事態になってしまった。

 

そんなわけで、イヤホンジャックを復活させて、(4K動画とか超高速連写とか960fpsとかそんなのはどうでもいいから)もっと静止画がちゃんと綺麗になるようにカメラを真面目に考えてあとシャッターボタンは(とてもしょぼいけど)唯一iPhoneに勝ってるところだから絶対に外さないで、そしてコンパクト軽量なやつを作ってくださいお願いします。

モバイルバッテリー QE-AL201を買った

先週ヤマダ電機にたまたま偶然立ち寄ったところ、パナソニック製のACアダプタ一体型モバイルバッテリーが安価でワゴン売りされていた。パナソニック製は割と安心感があって良い。このモバイルバッテリーを普通に使っていて、万一火を吹くなどした場合、きっと交換したり原因究明してもらえるに違いない。

 

理由はPSEマーク関連だそうで、その後下にあるようにネットでも話題になっていた。

 

internet.watch.impress.co.jp

 

QE-AL101とか202とかいろんな種類のものが売っている中で、以前から欲しいと思っていたQE-AL201を発見したので購入した。QE-AL201は、下記の記事にあるようにUSB機器につないで電力供給している状態で、バッテリをACにつないで充電状態にしたり、ACから外して放電状態にしたりを繰り返しても、USB機器への電力供給が途絶えることがないということで、以前から欲しいと思っていたのだけど、欲しいと思った頃にはすでに流通在庫しかない状態になっていたので購入を躊躇していた。

kitto-yakudatsu.com

 

家に帰って実際に試してみると、確かにRaspberry Pi 3B+に給電しながらACに挿したり抜いたりしてもRaspberry PIは動作し続けており、電源断しなくても部屋を移動したりすることができる。これは素晴らしいと思った。買ってしばらくしてから気づいたのだが、付属のケーブルを使うとスマホの発熱を検知して自動的に給電を止めるという独特な機能があり、これもRaspberry Piにずっと給電し続けるような用途では安心感があってとても良い気がする。繰り返し使用可能な回数が2700回とやけに多いのだが、満充電・放電を繰り返してこんなにサイクル寿命が出るわけがないので電池のフル容量を使っていない(レッツノートのエコモードのような)挙動をしているのだと思うが、それで容量の割に重いような気がするので本当にモバイルバッテリーとして使う分には微妙かもしれない。

iPhoneが液晶をやめてOLEDだけになったらGUIの潮流が変わるかもしれない

ハードウェアデザインの差別化のために扱いの面倒そうな高いデバイスを使うというのはなんとなく凋落していったソニーがそうだったような印象があってあまり好きにはなれない。OLEDは焼付きの問題があるので僕は長く使うデバイスに関してはLCDであってくれたほうが嬉しい。しかもLCDのほうが安くて消費電力が少ない。今後廉価なものは出さない方向なのか、それともOLEDが十分に安くなると踏んでいるのかはよくわからないけど、おそらくこれはAppleがOLEDモデルとLCDモデルが両立していることの面倒さにぶち当たったのではないかという気がする。

 

OLEDの消費電力を抑えるには高輝度で点灯しているピクセルを減らせばいい。Retina Displayの高精細差を目立たせるなら黒い背景に高輝度な細いラインで文字が書かれているような感じの画面が、デザインの差別化の観点からも望ましい方向になると思う(黒い額縁部分との一体感も出る)。しかしそれはLCDにとっては割と苦手なタイプの画面である。LCDでそのような画面を表示すると、高輝度なバックライトのほとんどの光を液晶で遮ってしまうことになり無駄が大きい。液晶に気をつかって今の(iOS 7から続いているような)白基調の画面を使うとOLEDの良さをあまり生かせない。

 

そんなわけでiPhone全モデルがOLEDになる、あるいはOLEDになってしばらくしたタイミングで、iOSのUIデザインが一新される可能性はわりと高いと思っている。今でもAppleのサイトに行くとiPhoneを選んだときだけ背景が黒基調になっているが、最低でもあれが全般に適用されるような感じに画面の雰囲気が変わるはず。それに影響されて世界全体のUIの潮流が変わっていくかどうかは知らないが、少なくともいまのAppleiPhoneの商品ページは、すでにiOS7で提唱された境界線がなくグラデーションを使うフラットデザインではなく、できるだけ真っ黒な背景に、どうしても必要なときには白いくっきりした境界線を引くようなデザインに変わっている。いまのiOSにみんながいま慣れているからといって、白基調ですりガラスレイヤーを使ったUIを5年後の製品に何も考えずに提案しているとまずいことになるかもしれない。

いいキーボードとエディタがないとコードの質が劇的に低下する問題

VS2017 CommunityがインストールされたGPD PocketでC#のコードを書き始めて半月ほど経つ*1

まだVS2017の環境設定がちゃんとできていなくてEmacsキーバインドがちゃんと動かない。GPD Pocketのキーボードの使い勝手の悪さも相まって、VS2017で機能追加やバグ修正のコードを書いていると、ついあまり編集をしたくなくなって適当な修正方法にしてしまう。要するにキーボードをたくさんつかうと疲れるので、コードの正しい有り様はそっちのけで、あまりキーボードを触らなくていいような修正方法に流れてしまう感じがする。C#のインデントや改行のコンベンションなどが自分に合ってないというのもあるかもしれない。

今日僕が書いているようなコードは所詮趣味のコードだからまあいいけど、こういうことが仕事で起こっているなら割とゆゆしき自体のような気がした。若い人たちのコードが微妙なとき、それが彼らがキーボードやエディタに慣れていないせいでそんな微妙なコードを書いてしまうのか、それとも知識や経験がなくてそうなっているのか、もし真因が前者なのに後者だと勘違いして研修とか勉強会とかをやっていたら割と無駄であるし、もしサクラエディタSublime若い人たちの間で標準なのに我々の開発環境がEmacsvimしか提供できていないならそれもどこかで改善しないといけないかもしれない。


自分の身について考えると僕はEmacs以外のキーバインドだったら生産性が低下してアウトプットの品質も低下してしまいそうな気がする。最近はVSCodeが開発用エディタとしてじわじわと浸透してきているのだが、僕はまだVSCodeをちゃんと使えていないのでよくわからないのだけど、ちょっと試してみた感じでいま存在しているVSCodeEmacsキーバインド機能拡張はあまり良くないし、EmacsバインドにしてしまうといろんなVSCodeの便利なTipsがそのまま使えなかったりして不便になってしまうようにも思える。自分が納得できるVSCodeEmacsキーバインド拡張を作るか、なにかしら回避をしてVSCodeを素のまま使うことを頑張るかどっちかが必要そうな気がする。

*1:正月にRustでも勉強するか、と思いGPD Pocketに開発環境を入れようとしたところ rust bookに「Visual Studio2013 以降用の C++ ビルドツールも必 要になるという旨のメッセージが出るでしょう。ビルドツールを取得する最も簡単な方法は、Visual Studio 2017 用のビルドツールをインストールすることです。」のように書かれていたので思わずVS2017のCommunityを割とフルにインストールしてしまったのだ。

Raspberry Pi3でBlenderを使う

経緯

正月実家に帰省していて帰ってきた後、体調が悪くなったりして何もする気になれなかったので録画された番組を漁ってみると「映画 プリキュアドリームスターズ!」があったのでちょっと観ていた。異世界である「桜が原」はフルCGで、意図的に普通のプリキュアとは違うCGっぽいカメラワークが使われて異世界感を強調しているようだった。11歳の子供も一緒に観ていたのだが、2Dのシーンと3Dのシーンの雰囲気の違いの理由を聞かれ、3DCGの作り方を口頭で解説したところ、自分やってみたいと言いだした。「3Dのソフトは高くて遊びで買えるものじゃないが、Blenderというタダで使えるものもある」というような説明をしたところ、「ぜひBlenderを見てみたい」と言い出したので、空いているWindowsマシンを見繕うとしたのだがいいマシンがなかった。

1日経って、そうだRaspberryPi 3 model B+を買えばいいのでは? と思い、ヨドバシ.comで在庫を確認したところ最寄り店舗に在庫があったので速攻買いに行った。

 

設定

Raspberry Pi 3 に、NOOBSを入れてRaspibianをインストールした。

https://www.raspberrypi.org/downloads/noobs/

 

Blenderのインストールは、aptで簡単にできた。

sudo apt-get install blender

起動してみるとクソ遅くて「これでは使い物にならんぞ…」という感じだったが、ハードウェアレンダリングになっていないことがわかったので、raspi-configコマンドの「GL Driver」の項目で「GL (FULL KMS)」を選んでGLを有効化した。

 

 

次に起動したところ、速度がまともになり動作速度という意味では快適にはなったのだが、ウインドウが点滅しまくって「いや、これもつらいぜ」という感じだったが、これはBlenderのUser Preferenceの「System」タブの「Window Draw Method」を「Triple Buffer」にするといい感じに解決できた。あと「International Fonts」のチェックボックスをOnにするとメニューやらが日本語で表示されるようになりフレンドリーな感じになった。

 

それで…

 

子供の前で実際にBlenderを試行錯誤しながら使ってみたわけだけど、結局立方体をいくつかおいてレンダリングしてみるくらいしかまだできていない。3DCGはやっぱり難しいし子供に使わせるのはとてもできそうにない。でも物体を配置してレンダリングするという手順で絵ができるという部分は理解してもらえたみたいなので良かった。