俺#

新潟市でIT業を営むおっさんのブログ。

#QWERTY スマホ #unihertz「 #TiTAN 」届いた!


Titan, Unihertz Rugged QWERTY Smartphone

Kickstarterでプレッジしたunihertzの防塵・防滴・耐衝撃・QWERTYキーボードなAndroidスマホ「TiTAN」。ギリギリ年内に間に合いました!

f:id:yamagw:20200101005032j:plain

予想していたが「デカい!」「厚い!」「重い!」というのが最初の印象。BlackBerry Key 2 LEを愛用している嫁曰く「キーボードのサイズは羨ましいが片手で持てないのは厳しい」。薄っぺらいヤワなスマホから乗り換えるには少しばかり気合と工夫が必要だ。

f:id:yamagw:20200101004554j:plain
f:id:yamagw:20200101004607j:plain
f:id:yamagw:20200101004616j:plain
(ヤワなスマホの代表として5.5インチのcovia「g07」と比較。高さは同じ位、幅は120%位、厚さは220%位。)

遠慮なく奢られたメモリ・ストレージ・バッテリーに対し、実用品として価格相応に割り切られたCPU・画面解像度・カメラの仕様がなかなか憎い。限られたコストの割り振り方が「解っているヤツ向け」だと言える。

Apple的なスマートさとは無縁のボディは細部まで仕上げが丁寧で、存在感のあるサイズに良く似合う。指紋センサーの感度やスピーカーの音質も良好。リーズナブルながら、所有感を満たす「良いモノ感」はちゃんとある。

f:id:yamagw:20200101004349j:plain
f:id:yamagw:20200101004405j:plain
f:id:yamagw:20200101004455j:plain
f:id:yamagw:20200101004508j:plain

キーボードは良好。BlackBerry KEYより高さと幅があるだけでなく、大きめのボディが安定したホールド感をもたらす*1IMEの「Kita-Keyboard」は普通に使える完成度だが、英語モードで先頭を大文字にしたり自動でスペースが入る機能はお邪魔。お気に入りの「FSKAREN」も試したが、BSキーが動作せずShiftやaltも同時押し必須になるので断念。

f:id:yamagw:20200101005017j:plain

スクエアのモニタは「さぞ狭かろう」と思っていたが、使ってみると「横に広くなった感じ」が正しく思いのほか快適。物理的な幅だけでなく「戻る」等のボタンが物理キーなのが効いている*2。16:9の動画を再生してみると、絶対的なサイズこそ普通のスマホの横向きに及ばないが必要十分。

今時のスマホとしてはサイズと重量が規格外である点を呑み込めれば、QWERTYキーボードと玄人好みのスペックを有する、実用性の高い面白い機種だと思う。せっかくなのでメインで使ってみたい。

*1:ただし、SHARPの伝説的なQWERTYスマホW-ZERO3」にはどうしても及ばない。親指ポチポチには横向きQWERTYキーが最強なのだと再確認した次第。

*2:明らかに縦が狭く感じてしまうBlackBerry KEYとは対照的である。もちろんBlackBerry KEYは「薄っぺらいヤワなスマホ」の範疇にありながらもQWERTYキーを備えている事のメリットが絶大なのだが。

12/15に引退した #485系 #きらきらうえつ に乗った時の記録

railf.jp

15日に引退した485系きらきらうえつ」の最後から3番目の臨時運行になった「きらきらしんえつ」にツアーで乗ってきた時の写真。定期運行で乗れなかったのは残念だけど最後のチャンスで乗れたので良かった。

f:id:yamagw:20191217114040j:plain
きらきらうえつ」で運行される「きらきらしんえつ」。ややこしい。

f:id:yamagw:20191217113945j:plain
485系には見えないなーと思ってたけど上屋は新造だったそうな。

f:id:yamagw:20191217114025j:plain
新津駅にて。今期最終運行の「SLばんえつ物語」との並び。

f:id:yamagw:20191217114440j:plain
「きらきら弁当」も終売となった模様。

f:id:yamagw:20191217114545j:plain
柏崎駅にて。

f:id:yamagw:20191217114612j:plain
新幹線では食べられなくなってしまった「シンカンセンスゴイカタイアイス」。本物だった(すごく硬かったの意味)。

f:id:yamagw:20191217120019j:plain
パネルの消耗具合が18年の歳月を物語る。

f:id:yamagw:20191217114722j:plain
直江津駅にてお別れ。

f:id:yamagw:20191217114754j:plain
18年間お疲れ様でした。乗れてよかった。

#centos8 にコンパクトな #emacs クローン「 #mg 」をインストールする

私は何処でも可能な限りEmacsをインストールする。設定ファイルを弄る程度なのでEmacsのマルチな性能は不要なんだけども、DOS時代からEmacsクローン*1を使っていたので「CUIで使うエディタはemacs」と脳味噌に染みついているのだった。とりあえずviは〇ね(ぉい)

Emacsをインストールすると400MB以上も容量を食ってしまうが(Centos8の場合)、今時のストレージはデカいので問題ないのである。しかし、コンパクトにまとめたいDockerイメージの場合には看過できなくなる。元が300MB位なのに700MBに!これはダメでしょ。

というわけで、サイズの小さいEmacsクローンを探してみたところ「mg」というプロダクトが見つかった。

GitHub - hboetes/mg: Portable version of the OpenBSD maintained mg, micro emacs clone

元々のmgはOpenBSD由来で、libbsdを使用して他でも動くようポーティングされたバージョンだそうだ。有難い事である。

Dockerコンテナ内でmakeしようとするとmakeの時に必要なものまで入れないといけないので、ホストか別のmake用コンテナでmakeし、お目当てのコンテナではmake installで実行される手順を手動で行うことで追加容量を最小限に抑える。

makeする(ホスト or make用コンテナで実行)

# 標準的な開発用パッケージをまとめてinstall

dnf groupinstall "Development Tools"

# libbsdのdevelパッケージをinstall

# https://pkgs.org/download/libbsd

mkdir work
cd work

wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libbsd-0.8.3-1.el7.x86_64.rpm
wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libbsd-devel-0.8.3-1.el7.x86_64.rpm

rpm -i libbsd-0.8.3-1.el7.x86_64.rpm
rpm -i libbsd-devel-0.8.3-1.el7.x86_64.rpm

# ncursesのdevelパッケージをinstall

dnf install ncurses ncurses-devel

# makeする

# https://github.com/hboetes/mg/

mkdir mg
cd mg/
wget https://github.com/hboetes/mg/archive/master.zip
unzip master.zip
cd mg-master/
make clean
make

# 普通にインストールしてみる

make install

手動でinstallする(お目当てのコンテナで実行)

# libbsdのパッケージをinstall

wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libbsd-0.8.3-1.el7.x86_64.rpm
rpm -i libbsd-0.8.3-1.el7.x86_64.rpm

# ncursesのパッケージをinstall

dnf install ncurses

# make済みmgをinstall

cd work/mg/mg-master/

/usr/bin/install -d /usr/local/bin
/usr/bin/install -d /usr/local/man/man1
/usr/bin/install -m 755 mg /usr/local/bin/mg
/usr/bin/install -m 444 mg.1 /usr/local/man/man1/mg.1

# emacsシンボリックリンクを張る

ln -s /usr/local/bin/mg /usr/bin/emacs

ちゃんと記録してなかったが確か30MB位で収まってたハズ。許容範囲であろう。いわゆるマルチバイト文字には未対応なのであくまでメンテナンス用だ。

*1:PC-9801の「NIT Emacs」とかサイコーでしたな~。

#centos8 に #docker ce をインストール。#yum( #dnf )でパッケージバージョン指定

docs.docker.com

現時点で公式手順に従ってCentOS 8にDocker Engine Communityをインストールしようとすると以下のエラーが出る。

[root@fuga yamagw]# dnf*1
install docker-ce docker-ce-cli containerd.io
エラー:
問題: package docker-ce-3:19.03.4-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
- cannot install the best update candidate for package docker-ce-3:18.09.0-3.el7.x86_64
- package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.el7.x86_64 is excluded
- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

「containerd.ioの1.2.2以降が見つからん」とおっしゃる。この対処として「素直に--nobestを指定する」「containerd.ioのrpmを拾ってくる」のいずれでも動くことは動くが、微妙に気持ち悪い。なので「少し前のバージョンのDockerを使う」を試してみる。

まず使用できるパッケージのリストを確認。「yum list --showduplicates」すると過去分も含めてリストしてくれる。

[root@fuga yamagw]# dnf list --showduplicates containerd.io
containerd.io.x86_64 1.2.0-1.2.beta.2.el7 docker-ce-stable
(略)
containerd.io.x86_64 1.2.0-3.el7 docker-ce-stable

最新のcontainerd.ioは1.2.0のようだ。

[root@fuga yamagw]# dnf list --showduplicates docker-ce
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
(略)
docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
(略)
docker-ce.x86_64 3:18.09.9-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.0-3.el7 docker-ce-stable
(略)
docker-ce.x86_64 3:19.03.4-3.el7 docker-ce-stable

docker-ceとdocker-ce-cliについても確認し、両方に共通して存在するバージョンを新しい方から順にさかのぼって試していくと、「18.09.1-3.el7」であればcontainerd.io 1.2.0と組み合わせられることが判った。

[root@fuga yamagw]# dnf install docker-ce-18.09.1-3.el7 docker-ce-cli-18.09.1-3.el7 containerd.io
依存関係が解決しました。
========================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリ サイズ
========================================================================================================================
Installing:
containerd.io x86_64 1.2.0-3.el7 docker-ce-stable 22 M
docker-ce x86_64 3:18.09.1-3.el7 docker-ce-stable 19 M
docker-ce-cli x86_64 1:18.09.1-3.el7 docker-ce-stable 14 M

トランザクションの概要
========================================================================================================================
インストール 3 パッケージ
これでよろしいですか? [y/N]:

よろしいです。インストール後に「docker run hello-world」で確認。

[root@fuga yamagw]# systemctl restart docker
[root@fuga yamagw]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
(略)

問題ないようですな。さて、このままだと「yum update」する度にエラーが出てしまうので、「docker-ce」と「docker-ce-cli」をupdate対象から除外する設定を行う。

[root@fuga yamagw]# emacs /etc/yum.conf

exclude=docker-ce*

(末尾に追記)

「ん?もしかしてdnf.conf?」と思ったが「yum.conf」は「dnf.conf」のシンボリックリンクになってました。

[root@fuga ~]# ls -al /etc/yum.conf
lrwxrwxrwx. 1 root root 12 5月 14 04:34 /etc/yum.conf -> dnf/dnf.conf

除外したことを忘れないようにしないと延々と古いものを使い続けることになる点は要注意ですな。

*1:CentOS8から「yum」は「dnf」になった。使用方法は基本的には同じで「yum」もまだ使える。

#CentOS 8 に #ffmepg と #cuda を入れて #nvenc (ハードウェアエンコード)を試す

Geforce GTX 1050 Tiを差した物理マシンを組み立てたのでffmpegでハードウェアエンコードを試してみるテスト。

1)NVIDIAのドライバを入れる

NVIDIA DRIVERS Linux x64 (AMD64/EM64T) Display Driver

ダウンロードして実行するだけなのだが「nouveau」というカーネルモジュール(OSSなディスプレイドライバ)が動いていると入らない。Xを入れると普通に動いているのではないかと。

Nouveau kernel driver

停止するためにはrunlevelを3にしてnouveauをブラックリストに載せてDracutして再起動するという手間がかかる。なおインストール時にkernel moduleがmakeされるのでgccはもちろんkernel-devel kernel-headers辺りも必要になる。

2)CUDAを入れる

CUDA Toolkit 10.1 Update 2 Download | NVIDIA Developer

ドライバが入る条件が整っている or 既にドライバが入っていればすんなりいく。runfile(local)は最初にドライバも入れてくれる感じ。rpm(local)はドライバは入れてくれない感じ。

3)ffmpegをパッケージで入れる

How To Install FFmpeg on CentOS 8 - idroot

EPELのパッケージで「hevc_nvenc」にも「h264_nvenc」にも対応してるffmpegが入る。makeしなくて済むの有難い。

おまけ)ffmpegをパイプでつなげると面白い

sshとパイプを使ってWindowsからLinuxのエンコーダを活用する、、などという事もできる。

ffmpeg.exe -i src.mp4 -c:v copy -c:a copy -f mpegts pipe:1 | ssh.exe /usr/bin/ffmpeg -i pipe:0 -c:v hevc_nvenc -c:a copy -f mpegts pipe:1 | ffmpeg.exe -i pipe:0 -c:v copy -c:a copy -f mp4 dst.mp4

この方法だとファイルコピーだのディスクのマウントだのをしなくても良いので意外と重宝するのである。

#避難勧告 からの避難のタイミングをデータで考える #新井郷川 #阿賀野川

当地(新潟市北区)は地形的に水害に弱く、昔から良く沈んだそうだ。もっとも先人の努力により治水が進み、現在では「福島潟放水路」「胡桃山排水機場」「新井郷川排水機場」といったデラックスな設備群に守られている。パチパチパチ。カーックイイ!

(...でなければ申し訳ないけど引っ越してこれませんな(^^;)

しかし、台風19号がやばかった。これだけ広範囲で一斉に氾濫が起きるなんて!当地も阿賀野川が上流で氾濫し、その影響で台風が過ぎてから避難勧告が出た。信濃川もそうだが、大河の下流域では雨のピークからタイムラグがある。

近隣を流れる新井郷川(から分岐する兄弟堀)が阿賀野川に面しているのは「胡桃山排水機場」だが、、、

■排水機場の内側(兄弟掘側)
f:id:yamagw:20191013123930j:plain
■排水機場の外側(阿賀野川側)
f:id:yamagw:20191013123935j:plain

外側の水位は図示された周囲の土地よりも高い!そして外側の水位が3.6mなので1.4mに立地する我が家は決壊したらアウツなのであります。なお排水機場の内側は常時「マイナス水位」に保たれているので、-0.8mは定常値である。水位差4.4mをブロックしているわけだ。

仮に付近が決壊するとした場合「兄弟掘の水位」の変化があるはずだ。それが避難行動のトリガーとなるだろう。先ほど阿賀野川側の水位がピークを越えたので、今のところ楽観視している。

。。。とまぁ、簡単な確認だけでも「え?避難しようか?どうしようか?晴れてるけど!?」みたいな迷いをクリアにすることが出来る。身近な地形やデータの在処など頭に入れておくと良いと思う次第。

www.pref.niigata.lg.jp

www.river.go.jp

夏のイベント総まとめ #夏休み

5日間の夏休みを1日ずつバラバラに取ってみたけど、3連休がたくさんある生活はワークライフバランスが良い感じであった。人間にとっては週4勤務くらいが適切なのだろうなぁ。

7月26日

柏崎の「海の大花火大会」へ。これは前に書いた

8月18日~19日

毎年恒例「志村魂」を観に名古屋へ。名古屋は2年ぶり。志村魂は初回公演から欠かさず見ているが、もう14年目なのである。今思えば地井武男が家老役だった初期の公演は貴重だったな。

駐車場は「akippa」を使い、車を2日間停めたまま地下鉄とバスで移動するスタイル。真新しい「ダイワロイネットホテル名古屋太閤通口」にて泊。

9月7日~8日

諏訪湖で開催される全国新作花火競技大会へ。諏訪湖の花火は何年ぶりだろうか。自分の入院騒ぎで中止して以来だ。天気がよく暑くも寒くもない最高の日和りだった。

家に誰もいなくなるのでワンコも同行。岡谷にある「ケアホームプーチ」にお泊り。ペットホテルが個室&大型犬可能ということで、大変安心感があった。対応も丁寧で有難い限り。

ホモサピエンスはお馴染みの「チサン イン 塩尻北インター」。ここで寝るの何度目だ?

翌日は安曇野の「大王わさび農場」に立ち寄ってみた。夏が戻ってきてあっちぇ。上信越道を走るのも飽きてきたので糸魚川を経由して帰宅。国道が奇麗になってた。

9月13日~14日

結婚記念日で「新潟グランドホテル」にお泊り。毎年「ちゃんと計画的にやろうねー」とか言ってるのだが、今年も予約したのが前日だったりして。だいたい前後の時期はイベント目白押しで、日程も予算も厳しくなる。

食事は「リゾートガーデン」にて。要するにビアガーデンなんだけれども、お料理はちゃんとホテルグレードである。肉うんめ。景色や開放感も言う事ナッシング。

9月21日

実家の庭の草刈りをしに諏訪へ。そこそこ広いが祖父が亡くなってからは荒れ放題。病持ちの母だけでは手に負えない状態なので、たまに手伝うのである。子供が同居しない時代、自分たちも含めて老後の住まいをどう扱うのか課題だと思う。

夜は小~中学校時代からの友人と夕食。5年ぶり!らしい。間が開きすぎだとお叱りを受ける。諏訪には年4~5回のペースで来ているのだが、用を足すのが目的なのでなかなか寄り道する余裕がないというのも現実である。

とはいえ5年に1回では80歳まで生きたとしても会えるのはあと7回程度。そう考えると善処せねばと思う。人生の短さに愕然とするよね。

9月23日~24日

嫁の通院のため立川へ。立川に住んでいた時から続く年1回の検査のイベント。長らく安定しているので「立川に遊びに来る口実」とか言って未だに転院していない。(コレがあるせいで余計に結婚記念日の前後がひっ迫するんですけどねぇ...(^^;)

転院しないちゃんとした理由もある。ある指標が手術適用のボーダーライン上なので、転院先での検査結果や医師の方針によっては即手術になる可能性が高いのだ。それは避けたいというのが本人の意向で、医師にもご理解いただいた上で通い続けている。

検査の結果は今年も「変化なし」。正確には別の指標が次第に上昇しているが、こちらはボーダーまで余裕あり。今まで通り次回の検査は1年後となった。命に直結する病ではないのだが、手術しなくて済むならそのほうが良い。とりあえず一安心である。

普通に日帰り可能だが、せっかく夏休み最後の日なので「ホテル日航立川」で前泊することに。昔はザ・クレストホテルだったところ。建物はほぼそのままだが、中はリニューアルされていた。

用事が済んだ後は東京都心へ。代官山をぶらぶら。穴場だった代官山アドレスの地下駐車場が値上がりしててガッカリ。「松之助N.Y.」がお休みで二度ガッカリ。「ミスターフレンドリーカフェ」でホットケーキ。

最後に予定外のディズニーランドへ。アフターシックスパスで時間いっぱい動き回る。東京千葉を発ったのは23:00過ぎ。さすがに眠くなり休憩を何度か入れたので新潟着は28:00近く。ギリギリ暗いうちに布団に潜り込めたので良しとしよう。

てな感じで夏休み終了!