CentOS 8.0.1905

今までMLの授業で散々お世話になったMNIST提供の手書き文字。MNISTってのは、NISTアメリカ国立標準技術研究所が公開したもの。

国勢調査票に記される数字の認識コンテスト用が発端とか。最初は、20x20の白黒画像だったけど、実用に近いって事を考慮して28x28のグレースケール画像になったらしい。

国勢調査で頭角を現したのは、カードの穴あけ機を作ったIBM。第二のIBMの出現を望んで、画策されたんでしょうかね。

日本で数字の自動認識と言うと、郵便番号による自動振り分け機。

郵政省における 手書き文字読取方式 の区分機

文字認識

画像処理研究の歴史 

MNISTに対抗して日本でもやってみようと言う機運が盛り上がっています。数字じゃなくて、読むのに苦労するくずし字を対象にして。上手くいけば、地方に眠っている昔の資料の分析が飛躍的に向上する事でしょう。

そう言えば、旧家に残る日記と言うか家計簿を丹念に読み解いて、武士の家計簿だから本を出した先生がいたな。今や、先生あちこち引っ張りだこだからなあ。二匹目のドジョウを捕まえるには、AIと手を組むのが手っ取り早いぞ。

くずし字翻刻(テキスト化)/翻訳

KMNISTデータセット(機械学習用くずし字データセット)

LightGBM 徹底入門 – LightGBMの使い方や仕組み、XGBoostとの違いについて

centos 8

ちょっと前まで、CentOS 7.6 だったのさ。それが、ある日のupdateで、900Mもパッケージをロードしてくれて、CentOS 7.7 になったんだ。

それから1週間後ぐらいに、CentOS 8 が出てきた。今やIBMの傘下になった赤帽さんのリリースから遅れる事4ケ月。遂にと言うかやっとと言うか出たんだ。

7.7は軽いので、そのまま使うって手もあったけど、ここに最新式のsbclを入れようとしたら、お前ん所のglibcが古すぎて、付き合いきれませんと言われた。

んな事で、お試しで8を入れてみたよ。そしたら、emacs 24.3 から 26.1になってた。やっと時代に追いついた風です。sbclも文句を言われず、すっと入ったし、めでたしめでたしです。

でも、起動してからGUIのログイン画面になるまでが、もっさりした感じがするぞ。

Gnome Desktop

GUIな画面の迷走が見られる。7.7のそれと異なったI/Fになってたぞ。一貫性が無いな。

困ったのが画面全体の大きさを指定するmonitor settingアプリが無い。あちこち突いていたら、Activitiesをクリックして、左側に出て来る・9の象形文字を叩く。settingでDeviceのDisplayを選んで、Resolutionが1280x768を1400x1050に変更。これで丁度良い具合になった。一度logoutしちゃうとデフォに戻ってしまうと言う不親切さが特徴だ。

Univarsal AccessからLarge Textをonにしておくと、文字が多少拡大されて、年寄りには優しくなる。一度設定すれば永続化されるって言う、一貫性のなさが気になるけど。

トラブル

GUIな画面からshutdownさせたら、画面が残ったままになって往生した。WindowsのTask ManagerからVMWARE Playerを直接殺した。

次回起動したら、サスペンドしたままの画面が出てきて、にっちもさっちもいかなくなった。 起動中は、そのメモリーイメージがUUID.memなんてファイルに保存されてる。その他にもロックファイルが2個出来てた。

これらを消せばいいんだろうけど、VMWAREが掴んでいて、管理者でも消せない。Windowsを再起動。そして、すかさずロックファイルやらを削除。

Playerのメニューに管理ってのが有り、その中で終了時にサスペンドするか電源まで切るかの選択が有った。迷わずに、切るを選んだよ。

こんな調子で何とかGUIな環境を制覇。次は、notebookして、juliaがfirefoxを起動するか確認。相応の画面になったので、Cellを実行。

最初は、using Knetとかなんだけど、これが何時まで待っても終了しない。どうも暴走してるっぽいぞ。たまたまCLIな端末を立ち上げていたので(ってか、何か有った時の命綱)、どんな状況か調べようとしたんだ。普通はpsぐらいですかね。

こちらもさっぱり応答が無い。wしたら、ロードアベレージが20を超えてたぞ。何とか頑張って、プロセスを殺した。やっぱり命綱だったわい。

それにしてもLinuxも我慢強くなったね。こういう高負荷でも平気で動くのはBSD系だけかと思っていたよ。少し見直したぞ。

modfy

お約束事項で、/tmpをRAMDISKにしておく。 on /etc/fstab

tmpfs	 /tmp	 tmpfs	 size=1024m	 0	 0

ホスト名もちゃんと決めておこう。CentOS の 8 だから、c8でいいや。この名前だったら、8.1になろうと8.2になろうと違和感なく使えるからね。えと、/etc/hostname に書いておくのだな。それと、/etc/hostsか。

コンパイル試験でgaucheを入れた。goshとrlwrapはセットでしょ。 rlwrapをパッケージから入れようとしたら、見つからないので、 rlwrapに行って取ってくる。先端ソースなんで、configureが付いていない。INSTALLをみたら、親切に解説が出てた。

If the configure script is not found, you can recreate it, and all of
the other files it needs, by:

aclocal
autoconf
autoheader
automake --add-missing

or, even shorter:

autoreconf --install

configureしたらLinuxのお約束が出て来たので、dnf install readline-devel したよ。全く、ヘッダーぐらいはケチらないで入れて桶っつうの。プンプン。

続いて、セカンドオピニオンって事でgoogle-chromeを入れておく事にする。事前にリポジトリを登録するんだったな。ええい、古い7.7のやつを流用しちゃえ。

(base) cent:yum.repos.d$ cat google-chrome.repo
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub

入れたら、unstable版だった。実験台にしやがって。gpuが必要って、スピード命。打倒firefoxなブラウザー戦争なんだな。何でも、M$もググル配下になって、エッジがchromeの技術に依存したそうだからね。

まてまて、そうではないだろう。ブラウザーがgpuを使って賢くなるのよ。機械学習をブラウザーにやらせる。その成果をググルが掠め取る。ひと昔前に人のブラウザーでビットコインを採掘させるのが問題になったけど、それを真似するんだな。

違うって、ブラウザーが賢くなったら(男の)夢が実現するぞ。ムフフなおねーちゃんの写真が出てきたら、それをシースルーに置き換える。これぞ正しいAIの利用法です。

まだまだ、そんな夢は実現しそうに無いので、諦めてstable版に入れ替えておいた。

そして、サードオピニオンです。 w3mです。あちこち探し回るよりソースから入れちゃうのが通ってもんです。

cofigureしたら、gc.hが無いぞと言われた。で、下記のように探したよ。バイナリーは無事に出来たんだけど、近頃はhttpsなサイトばかりで、閲覧不自由。

(base) [sakae@c8 w3m]$ dnf provides /usr/include/gc.h
(base) [sakae@c8 w3m]$ sudo dnf install gc-devel
(base) [sakae@c8 w3m]$ sudo dnf install openssl-devel

んな事で、debianに入ってるw3mをlddして、暗号方面を探しだす。出来上がったのは、

(base) [sakae@c8 ~]$ ldd /usr/local/bin/w3m
        linux-vdso.so.1 (0x00007ffddab66000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f03f3a73000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f03f386f000)
        libgc.so.1 => /lib64/libgc.so.1 (0x00007f03f3512000)
        libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f03f327f000)
        libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f03f2da7000)
        libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f03f2b7a000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f03f27b6000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f03f3df5000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f03f2596000)
        libatomic_ops.so.1 => /lib64/libatomic_ops.so.1 (0x00007f03f2393000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f03f217b000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f03f1f64000)

ssh login 失敗するぞ

問題が出てきた。i386なdebian機に接続出来ない。

(base) [sakae@c8 ~]$ ssh -v -p xxxx xxx.xxx.xxx.xxx
  :
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: password
debug1: Authentication succeeded (password).
Authenticated to xxx.xxx.xxx.xxx ([xxx.xxx.xxx.xxx]:xxxx).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
packet_write_wait: Connection to xxx.xxx.xxx.xxx port xxxx: Broken pipe

CentOS 7.7 からは全く問題なく繋がる。

相性問題かと思って、vboxに入れているOpenBSDに接続してみるも、8.0からは接続出来ず、7.7からは問題なく繋がる。

それぞれのssh_configを比べてみても、差異は無い。ネットを検索してみても、繋がってるセッションが切断されちゃう場合の対処法しか出てこないし。どうすべ?

で、過去にもログイン出来ない事例があったな。思い出したぞ、FreeBSD(12.0)から別ネットのマシンにログインしようとすると、Broken pipeになってた。

この時は、FreeBSD(12.0)特有の問題と思ってスルーしていたけど、この症状がCentOSにも表れると、さすがに本腰を入れてみるかって気になる。

症状を整理すると、発症は新しいOS。同一のサブネットにあるホストとは、問題なく接続出来る。同一サブネット外になるホストと接続しようとすると、エラーになってしまう。

しつこくネットを漁ってみたら、よもやと言うオプションを与える事で、接続してる人が居た。 オイラーも真似て、VMWareに入れてるFreeBSD 12.0 から、Virtual Boxに入れてるOpenBSDに接続実験。-oのオプションを与えないとエラー。下記のようなオプションを与えると接続成功。

$ ssh -o IPQoS=throughput -p yyyy xxx.xxx.xxx.xxx
sakae@xxx.xxx.xxx.xxx's password:
Last login: Sun Sep 29 22:55:08 2019 from 10.0.2.2
OpenBSD 6.5 (GENERIC.MP) #2: Thu Aug 29 20:13:21 CEST 2019

このオプションを永続化するには、confファイルに登録しておくと良い。CUIなI/Fは、何処かのグノームと違って、すっきりさっぱりしてるな。だからCUI大好きなんよ。

/etc/ssh/ssh_config

# Host *
IPQoS throughput
  :

ssh_config(5) の資料に当たっておく

     IPQoS   Specifies the IPv4 type-of-service or DSCP class for connections.
             Accepted values are af11, af12, af13, af21, af22, af23, af31,
             af32, af33, af41, af42, af43, cs0, cs1, cs2, cs3, cs4, cs5, cs6,
             cs7, ef, lowdelay, throughput, reliability, a numeric value, or
             none to use the operating system default.  This option may take
             one or two arguments, separated by whitespace.  If one argument
             is specified, it is used as the packet class unconditionally.  If
             two values are specified, the first is automatically selected for
             interactive sessions and the second for non-interactive sessions.
             The default is af21 (Low-Latency Data) for interactive sessions
             and cs1 (Lower Effort) for non-interactive sessions.

DSCP( Differentiated Services Code Point )

色々と大人の事情ってものが導入されてるのね。

で、大人の事情を考慮するようになったのは、CentOS 8 とか FreeBSD 12.0 とかなんだな。 実用的に使われてて、何とかパケットを優先しとくれってユーザーに対応せざるを得なくなったとな。

VoiceTra update

週刊何とかと化しているこのHPだが、気にせずにブイブイ行くぞ。

今週の目玉は、前回紹介した 音声翻訳アプリ VoiceTraがアップデートされた事。 外国の話者と日本語話者の切り替えが容易じゃないからって苦言を呈しておいた。 その苦言をさっと汲んで、進化してた。

基本は選んだ外国語(英語とか)と日本語間の翻訳だけど、外国語の自動設定に出来るようになった。最初、中国語でしゃべると、上手くいけば中国語と自動認識され、以後は中国語と日本語間の翻訳モードになる。

後はただ喋るだけで良い。大いなる進化を遂げている。

オイラーの日本語を正しく認識してくれなくて、ミャンマー語と見做されてしまったのは、お笑いぐさだ。言語選択画面も東南アジア系が初画面に出て来てて、インバウンドの傾向がこんな所にも反映されてると、びっくりしたよ。確かに実用的と思うぞ。AI万歳ですな。

etc

クラウドを支えるこれからの暗号技術

StatsBeginner: 初学者の統計学習ノート

clojure cookbook