Galaxy Tab S5eへ乗り換え

f:id:nobu_macsuzuki:20200611053112p:plain
突然だがタブレットGalaxy Tab S5eに買い替えた。
あれほど片手で持てる幅のタブレットにこだわっていたのに、10"のタブレット
なぜ?
COVID-19の感染が筆者の住む米国でも広まり、いわゆる不要不急の外出を避ける(Stay Home)命令が出たのは、筆者が海外出張から帰ってきた3月の始め。
それから3カ月以上、自宅勤務が続いている。
皆同じだとは思うのだが、自宅勤務の場合、勤務時間中はほぼずっとPCの画面を眺めている。
筆者の場合、昼休みを除いたおおよそ8:30から18:30の間。
仕事が立て込んでいる場合には、夕食後の20:00ぐらいから、長ければ24:00まで、ほぼ単焦点で眺めている。

一気に老眼が進んだよ、もう朝起きても世の中がぼんやりとしか見えないよ、ほんとに。
今まで目がよいのだけが取り柄だったのに、もうおしまいだ。
8"の画面の文字が読めるような距離ではとても焦点が合わない。
もちろん今どきのOS、文字サイズぐらい簡単に変えられるのだが、今度はUIのレイアウトが大幅に崩れて使い物にならない。
10"の画面で、ちょっと離してみれば、何とかなる・・・何とかなったんだよ、orz

ということで、みんなCOVID-19が悪いんや!
昔を懐かしみ、今までで所有期間が一番長かったタブレットの遺影を貼っておく。
nobu-macsuzuki.hatenablog.com

F(x)tec Pro 1 - QWERTYスマホへの道は遠く険しい

f:id:nobu_macsuzuki:20190207131842j:plain
さてCOVID-19でもぼけっとしていた訳ではない。
実はこんなものを入手していたのだ。
F(x)tecのPro 1という代物だ。
もともとMotorola(今はLenovoの一ブランド)のMoto Z用のキーボードを開発していたチームが、路線変更して開発を始めたプロジェクトだ。
www.indiegogo.com
そもそもMoto Z用のキーボードを開発していたころからEMSの管理がよろしくなかったようだが、F(x)tecになってからは元のキーボードプロジェクトの出資者、Pro 1の事前予約者も巻き込んで七転八倒
2019年7月出荷開始だったのが遅れに遅れて初期出荷が2019年年末にずれ込み、加えて旧正月&COVID-19の影響で量産の立ち上げがさらに遅延。
この4月に入ってようやく量産体制が整って、まともな出荷が始まったという、Moto Zキーボードのindiegogoに出資して待ち続けた人には涙なしには語れないプロジェクトだ。
筆者はこのプロジェクトを横目で見ており、そろそろ量産が始まりそうだからと3月に予約オーダーしたので、わずか3か月弱の待ちで済んだ。

どこにでも情熱的な社長がいて、このF(x)tecの場合にはNokiaのN97やE7などのキックスタンド機構を激烈に真似したかったのだそうだ。
実際手に取って開いてみる、かっけー。
開閉の質感もとてもよい、かっけー。
やっぱスマホ(笑)にはQWERTYキーボードだよ、かっけー。

しかし、かっけー、だけではどうにもならない。
親指キーボードは置けば打てない、つかえねー。
持って親指で打つのには幅が広すぎる、真ん中が届かない、つかえねー。
おまけに右手側のQ、A、Zの横に記号キーを持ってきた、日本語でよく使うAを打ち間違える、つかえねー。
AndroidのUIは、ほとんどのスマホがそうであるがゆえに、ポートレート優先のデザインなので、ランドスケープで使うとどうにもレイアウトが悪い、つかえねー。
ブラウザもいわゆる専appも縦スクロールなデザインなので、横広ではレイアウトは間抜けなうえに、スクロールを頻繁にするはめになる、つかえねー。

以前所有していたLG Optimus F3Qはそこそこ使えていたので、良かれと思ってやったディスプレイ大型化、横広のための高アスペクト化と大型キーボードがアダとなったと思われる。
ありがとうございました、速攻でebayで叩き売った(1日で売れたよ)。
かくもQWERTYスマホへの道は遠く険しい、記録それはいつも儚い。

nobu-macsuzuki.hatenablog.com

ガジェット歴レビュー(2020年版)

今年の1月からノートPCの台数を削減したのだが、それに当たって過去のガジェット歴を何度か見返し、更新をした。
ここでもう一度振り返ってみようと思う。

デスクトップPC

デスクトップPCは初期のころから主に個人の文書作成、写真、音楽、映像などのデータ管理、ネット徘徊が主な用途だ。
デスクトップPCの更新歴は2007年にConroeの導入から極めて安定しており、ほぼ5年周期で更新している。
それで、なんの不自由もない。
敢えて言えば、最初のころはHDDが壊れ、その間にHDD/SSDの換装はしている。
近年ではメインSSD/ストレージHDDの2台体制で運用している(保存用データはUSB外付けHDDで対応)ので、いきなり寿命が来ないように気を付ける必要がありそうだ。

ノートPC(プライマリー)

ノートPCは、初期はこれがすべてのPC環境だったのだが、デスクトップを2007年に導入してからは主に音楽作成やソフト開発などの趣味プロジェクト、出先・お座敷でのネット徘徊が主な用途だ。
ノートPCはmacを導入する2009年までは派手に買い替えていた。
Mobile Pentiumからスタートして、CrusoeCentrinoと技術革新も華々しかった時代だ。
2008年にIntel macに移行してからは、2010年にPenrynモデル、2013年のHaswellモデル、2017年のKaby Lakeモデルと、ほぼデスクトップPC並みの更新間隔になった。
技術も枯れてきたし、市場の中心がスマホタブレットになったので、大きな技術革新もなくなったのも原因だ。
ブートキャンプでWindowsmacデュアルブートが可能、という夢のようなことができるようになったことおかげで、技術革新が収まってしまった一つの理由だ。

タブレット

こちらは2010年のiPadに始まり、2015年まではアツい市場だった、まさにdog year(s)だった。
筆者もIntelタブレット用のSOC開発に従事して、アメリカに移住させてもらえるほど、バブリーバブリーだった。
スマホに並ぶ10億台(1B)市場と言われたのもこのころだ。
iPadに始まり、iPad miniNexus 7など楽しませてもらった。
しかし・・・あっというまに縮んだ。
理由はいろいろあると思うのだが、書いたらMBAの論文にできるぐらいだろうから、もったいないから書かない。
結果は縮んだのだ。
AppleがProをいれようが、Penを入れようが、キーボードを入れようが、製品の性質が決まってしまい、あっという間もなく市場規模が固定されてしまった。
おそらく現在<300M/yearぐらいだろう。
筆者の端末更新頻度も1年 -> 2年とどんどん開いてきている。
端末更新頻度が開く = 技術革新がない、だ。
筆者はベッドサイドや出張時に電子書籍(主に漫画)を読んだり、スマホの画面では苦労するような作業をする老眼を助けるよい端末になっているのだが、このデバイスの将来は大変怪しい。

ノートPC(セカンダリー) = 2 in 1

筆者は2014年からいわゆる2 in 1に手を出しだした。
と言っても、360度ヒンジを利用したノートPC型ではなく、Surfaceの様なタブレットPC + 取り外し式薄型キーボードのものだ。
筆者のいわゆる社用PCもSuface Pro5である。
でもね、正直「広げてPC、畳んでタブレット」という便利なフォームファクターを使いこなすことは皆無で、「軽いしコンパクトだから使っていた」が正直なところ。
膝の上で使おうとすると、膝から落っこちるかお腹に閊えるかするのも難。
用途はプライマリーと禿しく重複。
ということで、個人のポートフォリオからは脱落。

UMPC

GPD Pocketに始まるUMPCの復興はなかなか楽し"かった"。
古のUMPCよりははるかに高いパフォーマンス、外付けキーボードやモニターを接続すれば、普通に使えるPC、しかも値段はお手頃(10万円以下)。
15年前なら夢のPC"だった"よ、最高"だった"よ。
だけど、メインのデスクトップPC、サブのノートPCを持っている筆者には、所有欲を満足する小さなPC、以外の何物でもない。
とりあえず全ソフト開発環境をぶち込んではあるものの、しばらく更新しないんじゃないかなぁ。

(雑なメモ)githubにModelSim Intel FPGAのRTLシミュレーション用ファイルを含んだQuartus PrimeのFPGAプロジェクトのrepoを作成する

"自己責任"、"「転んでも一人で起きる」"の意味がわからない方は、以下の記載の事柄は適用しないように、お願いいたします。
トライ&エラーで見つけた方法なので免責条項を書いておく。

基本はこちらと一緒で、不要なファイル・フォルダは削除し、それらを.gitignoreに登録すればよい。
(はい、ここまでコピペです)
必要なファイルはただ一つ、RTLシミュレーション用のVerilogファイルだけ。
こちらの方法で、Quartus Primeを使ってTest Bench Templateを作成している場合には、simulation\modelsim\(トップモジュール名).vtがあるので、これだけを残せばよい。
ゆえに、.gitignoreはこんな感じになる。

/db/
/incremental_db/
/output_files/
/c5_pin_model_dump.txt
/*.qws
/*.rpt

#exception for RTL simulation file
/simulation/modelsim/*
!/simulation/modelsim/*.vt

参考に4bit-counterのRTLシミュレーションができるプロジェクトのrepoを作成した。
元にするプロジェクトはQuartus Prime 18.1で作成。
github.com

(雑なメモ)githubにNios II用のFWを含んだQuartus PrimeのFPGAプロジェクトのrepoを作成する

"自己責任"、"「転んでも一人で起きる」"の意味がわからない方は、以下の記載の事柄は適用しないように、お願いいたします。
トライ&エラーで見つけた方法なので免責条項を書いておく。

基本はこちらと一緒で、不要なファイル・フォルダは削除し、それらを.gitignoreに登録すればよい。
ただNios II Software Build Tool for Eclipseは膨大な設定ファイルを生成するうえに、ビルドの度にプロジェクト関連のファイルを更新するので、純粋に差分を更新しようとするとあまり意味のないファイルまで更新されてしまう。
試行錯誤のすえに分かったのは、(1)ワークスペース内のプロジェクトフォルダ以外は保存しなくても元に戻す方法がある、(2)プロジェクトフォルダー内の設定ファイルとビルド中間ファイルは不要、ということであった。
具体的には、

  • ワークスペース内のプロジェクトフォルダ以外は.gitignoreに登録したうえで、初回に削除の上でコミットする
  • プロジェクトフォルダ内の".settings"フォルダも同様
  • プロジェクトフォルダ内のビルド中間ファイル、および"obj"フォルダも同様
  • BSPプロジェクト内の"HAL"、"drivers"ファイルも同様、これらはBSPを再生成すると作成される

残ったのはBSPプロジェクト内の"settings.bsp"ファイルだ。
このファイルの中には、フルパスの記述が一か所ある。

        <BspGeneratedLocation>(フルパスだよーん)\nios2_PIOLED_sw_bsp</BspGeneratedLocation>

このフルパスの部分はこのファイルからの相対パスでも大丈夫なことが分かったので、これを

        <BspGeneratedLocation>..\nios2_PIOLED_sw_bsp</BspGeneratedLocation>

と書き換える。

これでオリジナルの場所以外にcloneした場合でも、完全にビルド可能なファイルセットができた。
ここからビルドまでの方法は、

  • Nios II Software Build Tool for Eclipseを起動したら、ワークスペースを設定(FW、BSPプロジェクトの親フォルダを作り、これをワークスペースにすることを推奨)
  • 空のワークスペースが開くので、FWプロジェクト、BSPプロジェクトをインポート("File" -> "Import"メニューから、"Existing Projects into Workspace"を選び、それぞれのプロジェクトフォルダを選ぶ)
  • BSPプロジェクトを右クリックし"Nios II" -> "Generate BSP"を選択し、BSPを再生成
  • BSPプロジェクトを右クリックし"Clean Project"した後に、"Build Project"
  • FWプロジェクトを右クリックし"Build Project"

で出来上がりだ。
なお、この時に上記のBSPプロジェクト内の"settings.bsp"は更新されるので、add - commit - push前に

git restore software\(BSPプロジェクトフォルダ)\settings.bsp

とすればOK。

ちなみに.gitignoreはこんなだ。

#Quartus intermediate files
/db/
/incremental_db/
/output_files/
/simulation/
/c5_pin_model_dump.txt
/*.qws

#Platform Designer Intermadiate files
/*.sopcinfo
/.qsys_edit/
/nios2_PIOLED_qsys/

#Nios Software Builder tools intermedate files
/software/nios2_PIOLED_sw_bsp/.settings/
/software/nios2_PIOLED_sw_bsp/obj/
/software/nios2_PIOLED_sw_bsp/HAL/
/software/nios2_PIOLED_sw_bsp/drivers/
/software/nios2_PIOLED_sw_bsp/*.a
/software/nios2_PIOLED_sw_bsp/summary.html
/software/nios2_PIOLED_sw_bsp/Makefile
/software/nios2_PIOLED_sw_bsp/mem_init.mk
/software/nios2_PIOLED_sw_bsp/public.mk
/software/nios2_PIOLED_sw_bsp/system.h

/software/nios2_PIOLED_sw/.settings/
/software/nios2_PIOLED_sw/obj/
/software/nios2_PIOLED_sw/*.map
/software/nios2_PIOLED_sw/*.elf
/software/nios2_PIOLED_sw/*.objdump

/software/.metadata/
/software/RemoteSystemsTempFiles/

参考にこちらの(改訂版)DE0-CVでNios IIのrepoを作成した。
元にするプロジェクトはQuartus Prime 18.1で作成。
github.com

米国の学校教育

米国に移住してまもなく7年、年が離れて子供が二人いるので、現地校関係のイベントを一通りこなすこともできた。
いろいろと日本と違う面も見えてきたので、ちょっと書いておく。

(参考まで、米国に赴任・移住してまもなくの学校選びに関してはこちらにまとめてある)

学校生活規範をより重視する

米国の学校では学校生活規範は日本より厳しい。
どの学校でも学校のバリュー -日本でいうところの校訓- が設定されていて、それに沿って行動することを推奨、というより命ぜられる。
これは「誠実」とか「自立」、「情熱」とか言った単語で5つから7つある。
先生もこれに沿って指導する。
集団生活を乱すような行為は、これによって指導され、守れなければ校長室送り、親は呼び出し、説教。
何度も繰り返せば「もう来るな」(退校処分)になる。
本の学校では「道徳」が教科としてあるが、こちらの子供のほうが実行できるモラルは高い。
困っている子には、誰かが飛んできて来て助けてくれる。
一方で「自由」の国でもあるので、日本のような規律は求めない。
「全校集会で全員整列」、「授業中に歩き回るのはダメ」、「私語は全くダメ」とかはないし、制服を導入しようとすれば反対運動が起こり、先生が算数の課題を解く最中にBest Hit Pop Music 100をかける。

より「自立」を求める

これは「概して」になるのだが、児童・生徒の行動に関してはより自立を求める。
例えば休み時間にやりたい遊び・遊具ができない場合にどうすべきか、先生が立ち入らず、自分たちで決める。
「順番を決めてやる」「一緒に遊ぶように"自分で"交渉する」「腹を立てるよりあきらめろ」
最後の解は平等な日本の教育ではあまりないものだと思うが、悪い奴はどこにでもいるので立ち向かずに退くことも手だと習うのだ。
こういった思考のプロセスを以って、児童・生徒たちに自立を促す。

PDCAサイクルを回す

これは小学校の話。
毎年学年の最初に学習、生活態度の目標を定める。
これを年間を通じてPDCAサイクルを回して自己評価する。
年に何回か3者面談があり、先生・児童・親の3者で計画のレビュー、途中評価のレビューなどなど。
まるで日本の会社の査定システム、どころかこっちのほうがちゃんとやってます。

親も教育される

曰く、
「自分の子供がちゃんと宿題提出してるか、学校来てるか、webでチェックしろ」
「でも子供に宿題やったかとか聞くな、中高生にもなったら自発的にやらせるように促せ」
「成績は授業態度、宿題の提出、試験で決まる、子供が宿題も出してないのに後で学校に乗り込んで文句を言いに来るな」
「子供の成績の中間評価を逐一チェックしろ、問題があれば早くホウレンソウ」
「分かっているはずのことでいちいち学校・先生に連絡をするな、こっちも忙しい、メールはちゃんと読め」
あいあいまむ!(学校の先生は女性が多いです)

優秀な子を「ひいき」する

ある分野に長けた児童・生徒は、Talented And Gifted (TAG)と言って特別プログラムが採用される。
これは同じ授業中により難しい課題が与えられたり、別のクラスでより高度な授業を受けたりする。
それにとどまらない。
こういった生徒は、何かをするときにはいつも一番最初にできる(席替えの時の席や課題の選択)、表彰されて学校を行進(全生徒が祝福する)、いろいろな目立つ役割を与えられる。
更に高校になれば、大学入学時に奨学金がもらえるなどなどなどなど。
えこひいき、そしてこれをだれも羨まず、褒め称える。
日本の教育現場のなんでも平等とは正反対で、競争と褒章です。

授業内容は練習より知識、知識より概念

筆者の専門が理系なのでそちらに寄った話になるが、数学や理科の授業内容を見ているとびっくりするほど難しいことをやっていたりする。
これは身近で興味が湧きそうな最近の話題、そしてそれは大概の場合かなり最先端の話題のため、科学の集積のようなものである。
これらは日本のように、「分かりましたね、ではこちらのワークブックの何ページをやってください」というようなものではなく、絵を書いたり、モデルをいじったりと概念を理解することに時間が割かれている。
こういった内容を限られた時間の中で取り扱うため、日本の網羅型知識詰込教育と比較すると、虫食い・穴だらけ。
数学に関して言えば、高校卒業時点で日本の数I+ぐらいしか通常過程ではやらない。
先ほど説明したTAGで数学ができる子でも、日本の理系の数学フルコース(数列、微積分、ベクトルと行列)ぐらいだ。
おそらく共通テストの数学をちゃんと解ける子はTAGで数学ができる子でも少ないだろう。
なので大学に入ると101(日本でいう一般教養のクラス)で死ぬほど苦しむらしい。

都市部の高校にいわゆる「ジョックス」「クインビー」はいない

これは別にスクールカーストがないと言っているわけではない。
都市部の学校はレベルも高く、高校卒業率が70%を超え(米国は高校まで義務教育でこの数字)、大学進学率も高い。
成績優秀、生活態度も優秀、運動などの課外活動でリーダーを引き受け、大学行きの奨学金をつかむことで、ようやく大学に行けるのだ。
よく映画に出てくるようなステレオタイプの、スポーツだけは得意で乱暴者かつ横柄なジョックスであったり、同様なクインビーではこの枠には入れないのだ。
誰かをいじめて校長呼び出しなど食らったら、あっというまに今までの積み重ねがパー。
そんなことになるより、ジョックスもクインビーも(耐えて忍んで)勉強もスポーツもできて皆の面倒も見てくれて誰からも好かれるようなスーパーマンになるべく、努めねばならぬのだよ。

授業参観はありません、学校に無許可で学校内に立ち入ってはいけません!

サイエンスフェアも含めた学習発表会のようなものが年に2-3回あるものの、子供の授業風景を見る機会は0。
自分の子供の学校での生活が見たかったら、学校運営のボランティアに参加しましょう。