SSブログ

2020年の自動運転レベル4どこ行った [日記]

アマゾンが、自動運転のスタートアップ Zoox という会社を買収というニュースが出て驚いた
https://www.watch.impress.co.jp/docs/news/1261977.html
何年か前に各社
「2020年に自動運転レベル4を実用化」
を目指してカリフォルニアで、いろんな会社が実証実験を繰り返してたが、2020年の今、全然実用化される感じになってない。
アマゾンは何か勝算があるんだろうか?

自動運転レベル4が実用化されたら、安価で路上にあるものをラベリング(アノテーション)する仕事が大量に発生するんだろう。
そういう世の中は嫌だなと思うので、Deep Leaning で画像処理する自動運転がうまくいかなくてちょっとほっとする。
自動運転がうまくいってないことは、人間が思ったよりすごいことしてることがわかったということで、なんかうれしい。
(うれしいのは、自分が自動運転に人生掛けてないからだけど)

別の技術で自動運転が実用化されるまで待つことにしよう。
しかし、何十年かかるかわからない。ペーパードライバーの自分が自動運転の恩恵を受けることはなさそうだ。
コメント(0) 
共通テーマ:日記・雑感

継承による共通化とか、Mixin とか [日記]

先日、継承で処理を共通化しようとしてるコードを見た。
まだそんなことやってるの・・・という気分。

共通化できる部分を無理に発見して基底クラスにして、その基底クラスのメソッドで呼び出しているメソッドを、派生クラスで定義してあげないといけない設計。
分かりづらいくてめんどくさいことになっている。
共通の処理を括りだして基底クラスにしてしまうという発想になっているのがダメだと思われ。

正直、こうなっているところはもう直せないので、継承関係を維持したまま継ぎはぎしていくことになる。
「継承より委譲のほうがいい」
と言っているわけではない。
委譲も、無理やりデザインパターンに当てはめようとしたり、無理やりデザインパターンの用語を
使おうとして、かえってわかりづらくなっているのも見る。
(これは、自分が、パターンを理解してないのもあるが)
今までに、 Mixin という名前のコードを見たことが何回もあるが、 Zope みたいなすごいフレームワークで頭のいい人たちが入念に考えた Mixin 以外は、使いづらいだけで、ちゃんと付けはずしができるようになっていて、定義をみたら「あー、こういう機能あるのねー」ってわかるの、見たことない。

そういうのは、おじいちゃんが昔のやり方に固執しているわけではなく、むしろ勉強熱心な若者がやっていて、自分のほうがよっぽどおじいちゃんなので、つらい。

根底には、ソースコードの重複を排したいという気持ちがあるんだと思うんだけど、全然違う処理でたまたま、同じような実装になることも多々あるので、ソースコードの重複を恐れすぎだと思う。
(いや、わかんない。僕が同じような処理を書き過ぎなのかもしれない)

コピペコーディングが良い言うわけではなく、最後は加減ということになって、結局のところ、そういう加減が、これが正解というのがなくて一番難しい。

コメント(0) 
共通テーマ:日記・雑感

田舎の子がプログラマーになること [日記]

僕がプログラマーになった最大の要因は、首都圏の大学に進学したことだと思っている。
大学は藤沢にあったが、たまには東京に行っていたし、東京の会社で働くというイメージは
なんとなくできていた。
(逆に、就職活動で首都圏以外の会社に面接に行ったりするのは難しかった)

もし、愛知県内の大学に進学していたら、(当時は情報系の学科ってなくて)
電気、電子という、最もプログラマーに近い学科に進んだとしても、プログラマーにはならなかった(なれなかった)と思う。

首都圏にしかない職業ってたくさんあると思うけど、プログラマーも首都圏以外ではすごく少ない職種だと思う。

僕の出た愛知の県立高校の同窓生で、プログラマーになった人ってどれくらいいるんだろう。
たまに、母校のサイトから、進学実績を見ると、相変わらず愛知県内の進学が多い。
僕の田舎は田舎過ぎて、県内の大学でも自宅通いできないので、もっと東京の大学に進学すればいいのにと思う。

高校のサイトを見ると、部活動の紹介があって、
「お、僕らの頃には(当たり前だけど)影も形もなかった『パソコン部』なんてあるじゃん!」
と思ったが、・・・
パソコン部は日々、検定や大会、作品作りに必要な知識を身につけるために努力をしています。ただし、「パソコンを使う=遊び」ではありません。 と書いてあって、全然楽しくなさそう。 情報処理の資格を取るとか、商業科の子しか入らないっぽい内容なんだが、パソコン部の子たちはプログラマーにはならないんだろうなぁ。 家庭環境(自宅のインターネット接続環境)によって大きく違うと思うが、 田舎の子にとっては、僕がマイコンBASICマガジンを読んでいた 39年前よりプログラマーになりづらいのかもしれない
コメント(0) 
共通テーマ:日記・雑感

富岳とArm Mac と Docker [日記]

富岳、すごい性能でスパコン世界一になったそうな。
Arm で RHEL8 がうごいているそうな。

WWDC 2020 で、Mac が Arm ベースになって Universal binary2 というので x86 と Arm の両方の Mac で動くバイナリ形式ができるそうな。
Power PC と x86 で動く Universal binary って、うまくいったんだっけかな? PPC から x86 に移行する時期に Mac 使ってなかったので、よく知らない。

AWS の EC2 には、 Arm ベースのサーバーもあるそうで、CPU性能と価格で計算すると、ちょい安いらしい。

こうなってくると、開発者のローカルの環境から本番サーバーに至るまで x86 とArm アーキテクチャーが混在することになって、インフラを Docker で管理しづらくなる場面が出てくるのかな?
CPUアーキテクチャーの違いで別の Docker Image を使うってことはできるんだろうけど、Docker Image を2つ作らないといけなくなっちゃうと、Docker のいいところなくなっちゃう気がする。

組み込み機器 や Rasberry pi からスーパーコンピューターまで全部 Arm になっちゃう可能性あるな。
Arm のライセンス料高いらしいと、どうせなら RISC-V をみんなが使う世界来ないかな。

最近、以前の常識が覆されるようなゲームチェンジが起きてないので、そろそろ何かすごい変化が来ると面白いな。
どういう変化が起きるか想像できないんだけど。

コメント(0) 
共通テーマ:日記・雑感

Ubuntu20.04 に Python3.5〜Python3.7 をインストール [Python]

Ubuntu20.04 には Python3.8 がデフォルトで入っている

deadsnakes team https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa
がメンテナンスしくれているリポジトリのパッケージから
Python3.5〜Python3.7 をインストールした

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update

sudo apt install python3.5 python3.5-venv python3.5-dev
sudo apt install python3.6 python3.6-venv python3.6-dev
sudo apt install python3.7 python3.7-venv python3.7-dev

で Python3.5〜Python3.7 が入れられた

Python3.9 も、リリースされたら deadsnakes さんたちがパッケージを用意してくれそう

ちなみに Python2.7 は、 ppa:deadsnakes/ppa を追加しなくても
sudp apt install python2.7 pyton2.7-dev
で(今のところは)インストールできている

curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py
sudo python2 get-pip.py
で python2.7 の pip (pip2)がiインストールされる
コメント(0) 
共通テーマ:日記・雑感

義理の伯父の訃報 [家族]

昨年末に亡くなった伯母 https://nakagami.blog.ss-blog.jp/2019-12-07-1 の旦那の(私から見ると義理の)伯父さんが亡くなったという連絡を受けた。
(あの人、いつ亡くなったっけ?というのを記録しておくために日記に記しておく)

緊急事態宣言は終わり、都道府県をまたがる移動の制限も解除されたが、感染が収束しているとは言い難く、年寄りも集まることから、葬式に参列するのはやめることにした。

従弟も、まだどうなるかわからないが、近所の人を呼ぶのはやめて、近い親戚だけで小さくやろうとしているというような話をしていた。
田舎での葬式も、 COVID-19 で大きく変わっているが、COVID-19 の流行がどれくらい続くかもわからないし、この変化が、一時的なものなのかどうか、まだわからない。

父が亡くなってから、親戚の葬式に出るようになって、煩わしいなとも思ったが、親戚が寿命で一人、また一人と亡くなってきていて、この後、親戚にあう機会が何回もないなぁと思うと、出られないのは残念に思うが、まかり間違って感染させると大変なのでやめておく。

コメント(0) 
共通テーマ:日記・雑感

Zope Database Adapter の Zope4 対応 [Python]

最近、 Produsts.ZSQLiteDA が動かないんだけど Update しないの?というメールが来た(超訳)

Produsts.ZSQLiteDA は sqlite の Zope Database Adapter だが、そういえば、Firebird の Database Adapter を、何か Update した記憶があるが、 sqlite の Database Adapter は放置してるな・・・
Zope ってどうやってインストールしたんだっけかな?と思って、自分の日記を探したらこれだ
https://nakagami.blog.ss-blog.jp/2019-02-16
確認してみると、この時、 Firebird の Database Adapter の Zope4 対応をしようと思って Zope (Plone)をインストールしてみたが、 Products.FirebirdDA については何もしてなかったみたい。
ダメじゃん。

というわけで(というほど簡単な話ではなかったが) この2つの Database Adapter の Zope4 対応、Python3 対応をした。

- https://pypi.org/project/Products.ZSQLiteDA/
- https://pypi.org/project/Products.FirebirdDA/

Browse タブで、データーベースのテーブル定義が見られる機能があったのだが、動かなくなっていて、これを動くようにするのは大変そうだったし、Firebird はデーターベースサーバーの機能が増えて、これじゃ足りないという状態だったので、 Browse タブは、ばっさり削除した。

Products.ZSQLiteDA は、7年振り、Products.FirebirdDA は6年半振りくらいのリリースになった。

もう、自分が Zope の使い方自体わからなくなってしまったので、Test タブで、試しに SQL文を実行してみるくらいのところまでしかしてないけど、ちゃんと動いてるかな?

うまく動かなかったら、使いたい人が Pull Request を送ってくれると嬉しいなぁ。

それにしても、Zope の Database Adapter なんて、誰も使わないだろう、と思って放置していたが、問い合わせがくる Zope すごいな。
コメント(0) 
共通テーマ:日記・雑感

娘が学校に行った [日記]

あいにくの雨の中、さっき、娘が大学に出かけた。

入学式もガイダンスもなく、5月から遠隔授業(Zoom とビデオ)だけやっていたが、今日から金曜の実験だけ登校。
毎週、この実験のコマだけ登校して、あとは遠隔授業が少なくとも夏休みまでは続くそうな。
3月に買った春物の服は(ほとんど外に出てないので)着ることなく季節が変わってしまった。

受験した2月以来のキャンパスで、クラスメートにも初めて会うので、いささか緊張して出て行った。
(2月がはるか昔のようだが、今思うと、受験が COVID-19 の影響もなく普通にできたのはラッキーだったな)

たまたま、隣に座った子と話をするとか、みんなで一緒にお昼を食べに行くとか、同年代の子と知り合いになるってことが大学の大事なところで、親としては、それに金を払っているつもりなので、まずは大学生らしい生活の第一歩に進めて一安心。

現状は、サークル勧誘もなく、
「実験終わったらそそくさと帰れ。 あまり用もなく学校に居るのはやめろ。」
と言われている状態で、早く大学が正常化するといいなと思っている。
よもや、 COVID-19 で4年間こんな感じじゃないだろうなぁ。

コメント(0) 
共通テーマ:日記・雑感

姪の結婚 [日記]

(あまりに私的なことで、書くのをためらったが、10年後に自分が読み返すときのために書いておく)

昨日、実家近くに住む妹に所用で電話した。
田舎に戻らないメリットを享受しつつ、責任の一部を押し付ける形になっていて、妹には申し訳ないと思っている。
普段は聞かないんだけど、何の気なしに「姪たちは元気にしてるか?」と聞いたところ、姪のうち妹の方が結婚したという。
僕が聞かなかったら言わなかったろう。弟にもまだ言ってない。

どこで知り合った知らないけど、先月に 40代の滋賀の男性と結婚して、車を置いて滋賀に行ってしまった。
相手がバツイチなので結婚式はしないだろう。子供は別れた奥さんのところにいる・・・ということらしい。
姪は23歳初婚。
今まで、車中心の生活だったのに、歩いて行けるところにスーパーあるようなところに住むので姪の車はいらないんだそうな。
40代なのは(今は)まだいいけど、親元を離れたことない子が、見ず知らずのところで生活スタイル変わっちゃうの大丈夫なのかなぁ。
急に二人だけの生活になって、思ったのと違う!ってならなければいいけど。

お祝いを送ろうにも、まだ妹(親)も何も送ってないのでペンディング状態。
どこで知り合ったか・・・つっても、出会い系とか、マッチングアプリとかなんだろうなぁ。

一度、親(妹夫婦)のところに挨拶に来たそうで、姪は亭主の親に挨拶に行ったそうだが、相手の親も高齢なので、先方の親と妹夫婦はまだ会ってないらしい。

妹の口ぶりからしてそんなに反対はしなかったようだ。
「ま、しょうがないか・・・」
って感じで。
反対したところで、田舎でフリーターしてていい話がそうそうあるわけでもなく、挨拶に来る程度の友好性を持った人なら、あとは幸せになることを祈るしかないと、僕も思う。
もし、自分の娘が40歳超えた男を連れてきても、心配しながら許すだろう。

「親にしてもらったほどのことはしてあげられないけど、できる限りのことはしてあげたいんだけどねぇ」
という話から、もう一人のめい(姉)がこのまま家にずっといたら・・・なんて話もした。

電話が終わってから、家族に姪が結婚したことと、子供たちは将来従姉妹が困っていたら助けてやって欲しいという話をした。
僕の親の世代は7人兄弟(乳児の頃に亡くなった子は除く)だったが、僕の子供たちは、兄妹に父方母方のいとこを全部足しても6人で、それでも多い方だと思う。
親の世代がいなくなったら、いとこの世代は、昔の兄弟のように助け合って欲しいなぁ。
いとことの交流は、もう何年もないけど、血は水よりも濃いというし。

昔は、
「これからの時代、子供に老後の面倒をみてもらうなんてとんでもない」
と思っていたが、それどころではない。
自分が死ぬ前に子供が親以外の(親より若い)人と助け合って
「これで俺がのたれ死んでも、子供の生活はなんとかなるだろう」
と思えるようになるのが、なんと難しいことか。

コメント(0) 
共通テーマ:日記・雑感

Go Modules でバージョン設定 [日記]

自分が以前からメンテナンスしている Go言語のパッケージをバージョンを設定したくなった。依存パッケージのバージョン番号を指定する仕組みが 1.11 とか、最近の Go言語でできたらしく、バージョンが設定してあると、最近の Go 言語にキャッチアップしてますよ感が出せる。

Go Modules というやつで依存パッケージのバージョン指定したり、自分のパッケージにバージョンを設定するらしい・・・ということは分かったんだが、検索して調べてみてもよくわからん。
ブログ記事見ても go mod init して、 go.mod と go.sum を作るあたりで終わってる。
そうじゃなくて、僕は自分のパッケージにバージョンを設定したいんだが。

・・・と思って悩んでしたが、結局、公式ブログの一連の記事を読むのが良さそう

- https://blog.golang.org/using-go-modules
- https://blog.golang.org/migrating-to-go-modules
- https://blog.golang.org/publishing-go-modules
- https://blog.golang.org/v2-go-modules

go mod init example.com/hello を実行すると go.mod ファイルができる。
go test とか、 go build とかで go.mod に依存パッケージとそのバージョンが書かれ
go.sum というファイルに、依存パッケージのハッシュ値が書かれる。

依存パッケージのバージョンが上がっていくと、 go.sum の依存パッケージのハッシュ値が追加されていく

go mod tidy で、go.sum の使われていない依存は消される

パッケージにバージョンを指定したい場合、tagをつける
git tag v1.0.0
git push origin v1.0.0

Breaking change を含むバージョンアップをする場合は https://blog.golang.org/v2-go-modules によると
mkdir v2
cp *.go v2/
cp go.mod edit -module example.com/hello/v2 v2/go.mod
git tag v2.0.0
vit push origin v2.0.0
v2 っていうディレクトリ掘って、そっちで開発して v2.0.0 の場合
"example.com/hello" で v1の API で "example.com/hello/v2" で v2 の API でアクセスできるようにする。
・・・というふうにしよう、ということらしい。

結局、バージョン番号は、git tag で設定すればいい模様。
コメント(0) 
共通テーマ:日記・雑感