激安液タブPC: CHUWI UBook 11.6″ CWI509 お絵かきレビュー

親戚が簡単なお絵かきができる 2-in-1 タブレット PC を欲しがっているということなので、 セールしていた CHUWI UBook を入手してみた。

中華PCを人にオススメするのもどうかとは思ったが、一応 技適もとってる 日本向けのモデルだし、予算と目的がバッチリ一致するので、お絵かき用途ならこれでいいかなと。
10万近くかけて高いノートPC買うほどではものの、そもそもプライベートの PC も持ってないらしいので、基本的人権のメモリ 8GB はある安いの探してたのよね。

買ったマシンのキッティングを行うにあたって、 Windows OS 搭載の一体型液タブとして見てどうだったのかをレビューして見ようと思う。

購入したモデル

今回購入したのは CHUWI UBook と言うモデル。

主なスペックは以下の通り。

機能 詳細
モデル CHUWI UBook CWI509
CPU Intel Celeron N4100 (Gemini Lake)
GPU UHD Graphics 600
メモリ 8GB RAM
ストレージ 256 SSD
画面 1920*1080

購入した当時は、 Bangood の セール で、 本体とキーボードセットで 29,991円 + ペン 3,500円 ぐらいだった。
送料と配送保証を含めても、 35,000円 行かないくらい。

この値段帯の格安 PC では、 メモリが 4GB だったり、 ストレージが 64GB eMMC だったりと、使うには厳しいスペックのものばかりだ。
そんな中で、 このモデルはメモリもストレージもホビーユースには最低限必要な量が搭載されている。

昨今の情勢から、国際郵便の配達には時間がかかるかなと思ったが、購入から丁度 14日 で手元に届いた。

ちなみにこのモデルは、 製造時期によって対応しているペンが HiPen H3 のものと、 H6 のものの二種類ある。
6月以降の香港在庫分は H6 らしいという情報をもとに、半ば賭けで H6 のほうを追加で買ったが、それで正解のようだった。

開封

箱自体もそこまでチープさはなく、悪くない。
だいぶしっかりと緩衝材で保護されているので、かなり乱暴に配達されていても本体にダメージはなさそうだ。

同梱されている AC アダプターのケーブルは C タイプのものだったが、日本の A タイプの変換プラグが雑に梱包袋に放り込まれているので、充電には支障なし。

本体の仕上げも、値段の割にまずまず。

性能

確かに、 Intel Celeron N4100 は非力だが、絵を描くにはまぁそう不都合はない。格安ながら、メモリが 8GB あるのと、ストレージが (eMMC ではなく) SSD なので、起動処理のもたつきは少なめ。

液タブとしての書き味だが、本体後ろのキックスタンドは見た目よりはしっかりしており、手を置いてキャンパスにペンを走らせる分には問題なさそうだ。

ただ、 ディスプレイの拡大率を 100% にして、 Chrome や Chromium Edge で画像や要素が盛りだくさんのページを表示させたり、スクロールさせたりすると、CPU 利用率が 100% 近くなる程度には CPU が弱い。

ペン

肝心のペンだが、 他で言われているほど「処理能力が低くてペン先の遅れが気になる」と言うことは気にならない。

もちろん Wacom などと比べれば、確かにペン先の追従は悪いのだが、そこまで酷い遅れではなく、許容できる範囲でないかと思う。

筆圧の見地も思ったより繊細で、良い感じに強弱をつけられる。

電池式ではなくて充電式なので、電池のコストがかからないのも良いポイント。
(人によっては、充電が必要な点がデメリットとなるかも知れないが。)

しかし、一つとても気になるポイントというか、明らかに悪い点がある。
それは、ペンを一度画面から離してから近づけたときに、反応するまで時間がかかってしまうクセがある点だ。
(丁度、以下の動画では 「かいじゃりすいぎょ」の「ょ」のあたり)

なるべくペン先を画面から離さないようにすれば、線が途切れることはないのだが、コレがなかなか難しい。

このため、「気持ちよくかけるか?」という点からい言うと、否だ。

ただ、それを補ってあまりあるほど値段が安いので、多少の不都合に目を瞑れるなら、オススメの端末だ。

.NET Interactive の C# REPL を Jupyter で

今回は、 .NET Interactive を利用し、ローカルマシンで C# や PowerShell Core の REPL を利用するまでをまとめる。

なお、 とりあえず動かしてみたいだけであれば、 launch binder バッジのリンクをクリックして、 オンライン上の Binder にブラウザにアクセスするだけで、利用することができる。
Use Jupyter with .NET Interactive on Binder

.NET Interactive とは

.NET Interactive は、 以前 Try.NET と言う名前で提供されていた、 .NET のインタラクティブな機能を提供する API スイートだ。
JupyterLab に .NET カーネルを追加する形で、 REPL の実行やノートブックの作成する仕組みを提供することが、 主なユースケースとなっている。

REPL ではコード補完も効くので、非常に便利なものになっている。

Jupyter について

まず、 Jupyter についても軽く説明しておく。
既にご存じなら読み飛ばして欲しい。

JupyterLab とは?

続きを読む

OPPO Reno A のカメラの結露の水滴が取れないことに四苦八苦した話

久々にしょーもない話をひとつ。

ある日、自分のスマートフォンを見たら、前後のカメラのレンズの部分結露して、水滴がついてしまっていた。

そのスマホで写真を撮ってもごらんの有様↓

大きな寒暖差がある冬場の季節でもないし、そもそもこのスマホ (OPPO Reno A) は防水であり、最近 SIM カードスロットを開け閉めした覚えもない。
どこから水分が入ってしまったのか…

思い当たる節と言えば、先日このスマホに石けん水がかかってしまったことぐらいだろうか。
多分それだな。
(※ 「石けんで洗える」などと特記されているもの出ない限り、防水であっても石けん水だとパッキンから流入してしまうことが多い。 また、そもそもとして防水であっても防湿ではない。)

とりあえず乾燥剤とともにジップロックにぶち込む

原因はともかく、とにかく症状が悪化してしまう前に、なんとか本体内の水分を取り除きたい。

幸いにも、私は過去にも数々の電子デバイスを水没させてきた実績があるので、このようなことは慣れたもの。

スマホの SIM カードを入れるパッキンを取り外して、 いつものように乾燥剤とともにジップロックにぶち込んで一晩寝かせる。


……

水滴取れてへんやないかいっ!

ドライヤーの風を、本体を傷めない程度に離した距離から(具体的には、その風を手にも当ててそれほど熱くならない状態)あててみて、内部の水分を飛ばしてみる。

暖めた直後は結露がなくなるのだが、しばらく経って温度が下がるとまた結露する。

水分の逃げ道が無くなってるな、コレ。

続きを読む

Linux や Windows で大量の nanaco ギフトを自動登録して、オトクに税金を支払う

突然だが、自動車税や固定資産税などの税金を、どのように払っているだろうか?
支払う額も大きくなりがちなので、なるべくお得に支払いたいのではないだろうか。

そこでオススメなのが nanaco ギフト だ。

クレジットカードで直接納税したり nanaco 残高にチャージする場合、手数料がかかったり、ポイントがたまらなかったりと、あまりお得にならない。
しかし nanaco ギフトであれば、お得に購入する手段が知られている。

  • ベネフィット・ステーション
    • 福利厚生型の会員制割引サービス。
    • 2020年4月現在、 毎月 10万 円分まで 額面の 2% OFF で nanaco ギフトを購入できる。
    • 所属組織による団体加入か、 「ベネフィット・ステーション プライベート」 や 「デイリーPlus」 といった個人向けの有料サービスで利用できる。
  • Kiigo (廃止)
    • 以前はクレジットポイントを貯めながら nanaco ギフトを購入できたのだが、 2019年 に nanaco ギフトの取り扱いがなくなってしまった。

また nanaco 残高と違ってセンターお預かりへのチャージなので、 チャージ残高の上限が非常に高く (50万円以上も可能らしい)、 nanaco 残高のチャージ上限である 5万円を超えるような金額の支払いでも使える大きなメリットがある。

nanaco ギフトでのお得な納税の話は、他のサイトでもっと詳しくわかりやすく書かれているだろうから、これくらいにしておく。

nanaco ギフトの登録がめんどくさい

さて、 ここからが本題だ。

そんな nanaco ギフトにもひとつ 大きな欠点がある。
それは、 1,000 円単位で提供されることが多い ということだ。

例えば 10万円分 チャージしようとすると、 100 回も nanaco ギフトID のコードを入力しなくてはならないのだ。

更に、 nanaco ギフトの登録を行う UI が、大量のギフト登録に とても優しくない
1回 コードを入力する毎に nanaco にログインしたり、 コードを 4文字 ずつテキストボックスに入力しなくてはならなかったりと、 数をこなすのにとにかく手間がかかるのだ。

10万円 の納税で 2,000円 得するために、 2,000円分 相当以上の手間をかけるのでは愚の骨頂だ。
こうなったら、自動入力させるしかない。

続きを読む

Outlook の “会議室の検索” が表示されない場合の対処法

Microsoft 365 (Office 365) など、 Exchange 上の Outlook で新しい会議を作成するウィンドウには、本来であれば 「会議室の検索」 というペインを表示させることができる。
具体的には、以下のスクリーンショットのように、リボンの 「スケジュール アシスタント」 タブに、「会議室の検索」ボタンが存在し、そのボタンによって「会議室の検索」 というペインが切り替えられるようになっている。
本来の表示

ところが、一部のユーザの環境で、この「会議室の検索」ペインも、リボンのボタンも表示されない状態に陥ってしまった。
会議室の検索が表示されない状態

これでは、組織で作成された「会議室の一覧」などが使えず、空き会議室を探すのがとても不便で困る。

ということで、この「会議室の検索」が消える問題の、解消法を紹介する。

続きを読む

Power Automate の式で property doesn’t exist となるのを解消する

Power Automate (旧 Microsoft Flow) で式を記述して実行した時、以下のようなエラーに遭遇することがある。

The template language expression '*' cannot be evaluated because property '*' doesn't exist, ...

特によく遭遇するのが、 HTTP トリガーでヘッダーを参照するときだ。

例えば、 Slack のイベント購読を HTTP トリガーで受ける時に、

triggerOutputs()['headers']['X-Slack-Retry-Reason']

のようにしてヘッダーの情報を参照しようとすると、 このヘッダが存在しない初回の実行時に上述のエラーが発生してしまう。

contains(triggerOutputs()['headers'], 'X-Slack-Retry-Reason') のように、プロパティの有無のチェックの and 論理演算を加える方法 などが紹介されているが、実はもっと簡単な方法がある。

それは、 疑問符演算子 "?" を使うことだ。
(C# で言う Null 条件演算子 のようなもの)

これを使って、

triggerOutputs()['headers']?['X-Slack-Retry-Reason']

と記述すれば、

if(contains(triggerOutputs()['headers'], 'X-Slack-Retry-Reason'), triggerOutputs()['headers']['X-Slack-Retry-Reason'], null)

と等価になる。

各プロパティがオプショナルなものかどうかは、ヘルプを見ればある程度わかるものだが、メンバーアクセス演算子やインデクサー演算子を使う場合は、常に疑問符演算子を併せて使うのがよいのかもしれない。
Power Automate のドキュメント内の "条件付きの式を使用する" などのサンプルでも、常に疑問符演算子がつけられているので。


Power Automate のバックエンドは、 Azure Logic Apps となっているらしく、 式で使える 演算子式関数 、そして 組み込みのトリガー などに関するリファレンスが、 Azure Logic Apps のドキュメントにしか存在しない。

また、 コネクタのリファレンス も、 Power Automate のドキュメントとは別になっている。

同じ情報が二重三重に書かれて内容に同期が取れないような状態になるよりはマシだが、欲しい情報が探しにくいのが辛いところだ。。。

タスクトレイで指令を待ち続ける健気な PowerShell スクリプト

この記事は PowerShell Advent Calendar 2019 の 23日目 の記事だ。
日程が埋まりきっていなかったので、適当な内容で埋めていこう。

あなたは、 PowerShell の短いコードを、 デスクトップのアイコンをクリックするのも億劫なほど、手軽に実行したいと思ったことはないだろうか?

ないって?
私はある。

例えば、ブラウザなどでコピーして WYSIWYG エディターにペタリと貼り付けるときに、クリップボード内の装飾情報を削除したいとか。

(Get-Clipboard -TextFormatType UnicodeText -Raw) -replace '^[ \r\n\t]*|[ \r\n\t]*$','' | Set-Clipboard

PowerShell なら上記のような一行コード実行すれば済む話だ。 しかし、 ウィンドウをシェルに切り替えたり、 ショートカットクリックするのも面倒。 タスクトレイのアイコン一つクリックして実行できたらいいのに。

はい、それを叶えます。

続きを読む

C# REPL GUI Shell, Mono gsharp を Ubuntu に入れようとすると発生するエラーを回避する

.NET Core の登場で大分影が薄くなったものの、 まだまだ Xamarin でガンガン使われている Mono。
この Mono には, gsharp という C# GUI Shell が存在する。

CUI 版の Shell と比べると、 グラフがプロットできるとか、 画像が手軽に表示できるといったメリットしかないが、タブ補完も効くし、まぁ便利っちゃ便利なツールだ。

しかし Windows で gsharp を動かしたくても、 Windwos 用の Mono インストーラには gsharp が入っていないため、そのままでは gsharp を使えない。
このため、 WSL の Ubuntu に gsharp をインストールして、 VcXsrv などの X Server を使って動かすのが手っ取り早い。

以下の記事が詳しい。

ところが、 この gsharp などを含む、 Mono 拡張 GUI ツールを、 WSL を含む Ubuntu ベースのディストリビューションにインストールしようとすると、エラーになってしまう。

今回は、 その暫定的な回避策について。

TL;DR

早く mono/mono#16322 の不具合直した Mono パッケージを出してくれ。

続きを読む

ルータを経由すると仮想ブリッジ接続の VM にアクセスできない?

今回は、ネットワークの話。

解決してみれば割としょうも無いトラブルで、時間を浪費してしまったので、自戒の意味を込めて記事にしておく。

サブネット外から ping が通らない

ある日、 ホストPC の NIC とブリッジ接続されている VM に、 サブネット外からアクセスできなくなってしまった。

構成を図にすると、以下のような感じ。
(あまり UML図 に明るくないので、書き方がヘタクソだったり本来の意味と違う記号の使い方をしている点は大目に見て欲しい。)

data:application/gzip;base64,H4sIAAAAAAAEAIVTPU/DMBDdI+U/nLIihziUAhVC5UOCDmWgqAtlMM61jZTYleOIAbW/Hcdy6qQtwkt8757f3dkv40ozpeuyCIMw4IWsM4gmQqMSqCNgFeQuMFkptJIFRG+yNpjNKrsNA4VcM7EqECJ6lcZ0GA/SODlPBxH8hAGYxWW5kQKFhuhFVhqmjK9zgVZlwy3kmM2yVZeMo2O/Th4tE/W6iT2xU3g+raKuxoHO6/27lRBM9zm+s4PDBwKmNm2boMfMzoDzKTzXWGk3nN3/J5200kmfue2H7gKAfKzzLEPxSY4HMoDPn5BsENjtCa7BEZSoVc6BLgS9ad7wOr4cxmn/rCPDzt7CCPxr0+HpTnct9UHl2Qo9yU22PfKHswZIsRAzViLM6q/WjhtuGtqeNNzFn4brCj7lyyWqBu6pUqvamh1uCdl72ySB3Hmr2y+QTH4LcuYdaTpzYOLBMBijyMzv9QsMZU+SaAMAAA

同一サブネット内 (図の "Machine on Same Subnet") から 172.16.42.16 を叩くと VM ゲストに到達するのだが、 サブネット外 (図の "Machine on Different Subnet") からだと ping すら通らない。

以前は同じ構成で、サブネット外から繋がっていたはずだ。

ちょうど直前に、ネットワーク機器のメンテナンスがあったため、 そちらで IPフィルタの動作がおかしくなったのではないかと疑ってしまった。
しかし、繋がらなくなった直接的な原因は、 VM Gurest 側にあった。
このため、答えにたどり着くのに時間がかかってしまった。

アクセスできなかった原因

続きを読む