2020/11,江端さんの技術メモ

私が使っているQGIS3の地図と地物情報を、先方に送りたいのですが、先方に「DB構築してくれ」とは言えない場合があります(というか、殆どの場合がそうだろう)。

# で、今、実際にそんな状況になっている。

最初、qgzファイルを送付すれば足る、とか思っていたのですが、甘かったようです(qgzファイルはプロジェクト情報しか送付できない)

で、QGIS3を色々触っているうちに、なんかファイルができたような気がするので、自分用のメモとして残しておきます。

以上(現在、先方の成否報告待ち)。

キーワード:gpkg QGIS3 地物情報 先方にメールで送付

 

2020/11,江端さんの忘備録

私が先日記載した「願い」は、どうやら叶わないような感じです。

The "wish" I mentioned the other day is apparently not going to come true.

「私の最悪の予想」の何パーセントくらいのとろで留まるか ―― ということになりそうです。

My interest is going to "What percentage of "my worst expectation" will stay?"

-----

こちら、ある団体から講演を依頼された時に使用したプレゼンテーションファイルです。

This is the presentation file I used when I was asked to give a lecture by an organization.

『気持悪い』アメリカ合衆国大統領選挙の仕組み

"Unpleasant" United States presidential election mechanism

御興味あれば、ご一読下さい。

If you are interested, please read it.

-----

江端:「どうして、今回の合衆国大統領選挙は、11月3日なんだっけ?」

Ebata: "Why is this US presidential election on November 3rd?"

娘:「うーん、日本の『文化の日』にちなんで、かな?」

Daughter: "Hmm, maybe it's Japan's "Culture Day""

江端:「昔だけど、相当数の米国人が『日本の首都は北京』と答えた、という話を聞いたことがあるぞ」

Ebata: "Once upon a time, I've heard that quite a few Americans answered, 'The capital of Japan is Beijing'"

娘:「・・・」

Daughter:"..."

江端:「今も、米国民の日本に対する興味って、その程度だと思う ―― ましてや、日本の祝日を知っているネイティブは、絶無だと思う」

Ebata: "I think that Americans are still interested in Japan at most-even more, and I also think that there are no natives who know Japanese holidays."

2020/11,江端さんの忘備録

(昨日の続きです)

(Continuation from yesterday)

―― とは言え、AWSの自習の為に、月数千円を持っていかれるのは、なんとも悔しいな

"However, it is regrettable to bring thousands of yen a month for AWS self-study."

と思っていたところ、見つけたのが、Amazon Lightsailです。

When I was thinking, I found Amazon Lightsail.

3.5ドル(500円)/月のサーバであり、これなら、自腹を切っても、耐えられる範囲です。

It is a server of 3.5 dollars (500 yen) / month, which is a range that can withstand even if I run out of my own stomach.

うん、これ、いい。

Yeah, this is good.

そもそも、私は、サーバを外部からのサイバー攻撃から守る気がない。

In the first place, I have no intention of protecting the server from external cyber attacks.

システム破られたって、困るような情報なんぞ最初から入れないし、ソースコードに至ってはgithubで公開しているくらいです。

Even if the system is broken, I can't enter any information that would be a problem from the beginning, and the source code is published on github.

仮想サーバのコア(EC2相当)なんぞ1つあれば十分だし、DBはコアの中に作りこんでしまえばいい。

One core (equivalent to EC2) of the virtual server is enough, and the DB can be built in the core.

なにより、ファイアウォールとして使っているロードバランサの設定も、Route53の設定もやりたくありません。

Above all, I don't want to configure the load balancer used as a firewall or Route53.

-----

という訳で、この11月始めの連休は、Amazon Lightsail上に、試作したサーバを搭載して、数千のオブジェクトのデータで攻撃し続けるという、「えげつない」テストを繰り返していました。

So, this weekend in early November, I was repeating a "bad" test of installing a prototype server on Amazon Lightsail and continuing to attack with data of thousands of objects.

当然、通信障害は発生した(させた)のですが、サーバがダウンするようなことはありませんでした。正直『凄いな』と、感心しています。

Of course, a communication failure occurred (caused), but the server did not go down. To be honest, I'm impressed with how amazing it is.

-----

で、ここで、冒頭の話に戻ります。

So, let's get back to the beginning.

「ラズパイを使った自宅サーバの方に、開発方向をシフトさせる」を、さらに再度逆転し「クラウドを使う」がスコープに入ってきました。

"Shifting the development direction to the home server using Raspberry Pi" is coming into scope of "using the cloud".

500円/月で、プライベートなインターネットサーバで遊べ・・・もとい、運用できるのであれば、私には十分です。

For 500 yen / month, I can play on a private internet server ... If I can operate it, it's enough for me.

2020/11,未分類,江端さんの技術メモ

以下、自分用のメモのみ

AWS  Lightsailにdockerのインストールまで成功

PostgreSQLのインストールも成功したと思う

が、ここから嵌り始める。

ca_sim=# create extension postgis;

^C^CCancel request sent
Cancel request sent
ERROR: canceling statement due to user request
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!>

が出てきて、

サーバ側に
2020-11-04 12:52:16.858 UTC [51] ERROR: canceling statement due to user request
2020-11-04 12:52:16.858 UTC [51] STATEMENT: create extension postgis;
2020-11-04 12:53:53.365 UTC [1] LOG: server process (PID 51) was terminated by signal 9: Killed
2020-11-04 12:53:53.365 UTC [1] DETAIL: Failed process was running: create extension postgis;
2020-11-04 12:53:53.365 UTC [1] LOG: terminating any other active server processes
2020-11-04 12:53:53.367 UTC [25] WARNING: terminating connection because of crash of another server process
2020-11-04 12:53:53.367 UTC [25] DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
2020-11-04 12:53:53.367 UTC [25] HINT: In a moment you should be able to reconnect to the database and repeat your command.
2020-11-04 12:53:53.371 UTC [53] WARNING: terminating connection because of crash of another server process
2020-11-04 12:53:53.371 UTC [53] DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
2020-11-04 12:53:53.371 UTC [53] HINT: In a moment you should be able to reconnect to the database and repeat your command.
2020-11-04 12:53:53.372 UTC [56] WARNING: terminating connection because of crash of another server process
2020-11-04 12:53:53.372 UTC [56] DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
2020-11-04 12:53:53.372 UTC [56] HINT: In a moment you should be able to reconnect to the database and repeat your command.
2020-11-04 12:53:53.516 UTC [1] LOG: all server processes terminated; reinitializing
2020-11-04 12:53:53.535 UTC [58] FATAL: the database system is in recovery mode
2020-11-04 12:53:53.538 UTC [57] LOG: database system was interrupted; last known up at 2020-11-04 12:47:18 UTC
2020-11-04 12:53:53.607 UTC [57] LOG: database system was not properly shut down; automatic recovery in progress
2020-11-04 12:53:53.613 UTC [57] LOG: redo starts at 0/216DCD0
2020-11-04 12:53:53.712 UTC [57] LOG: invalid record length at 0/24F2310: wanted 24, got 0
2020-11-04 12:53:53.712 UTC [57] LOG: redo done at 0/24F22D8
2020-11-04 12:53:53.741 UTC [1] LOG: database system is ready to accept connections

そこで、

コンテナの外に出て、

sudo apt-get clean
sudo apt-get install postgis
sudo apt-get update

■全部のDockerを止める
C:\Users\ebata>docker ps -aq | xargs docker stop
C:\Users\ebata>docker ps -aq | xargs docker rm (これやると、これまでの設定も全滅するので注意)

もう一度、imageから作り直して ・・(30分経過)・・ううむ、それでもダメか。

今日はここで一旦引き上げ

2020/11,江端さんの技術メモ

正直手続忘れてしまったけど、一応historyからメモを作成しておきます。
https://docs.docker.com/engine/install/ubuntu/

$ sudo apt-get remove docker docker-engine docker.io containerd runc
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

ここからコケ始めました。

$ apt-cache madison docker-ce

の後、

$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

を入力したら、予想通り失敗しました。

(ちょっと一息)

$ apt-cache madison docker-ce

を入力した時、一番最初に表示された"5:19.03.13~3-0~ubuntu-focal" を訳も分からずに、置き換えしました。

$sudo apt-get install docker-ce=5:19.03.13~3-0~ubuntu-focal docker-ce-cli=5:19.03.13~3-0~ubuntu-focal containerd.io

でもって、

$ sudo docker run hello-world

をして、コメントに出てくる通りに、

$ docker run -it ubuntu bash

を実施しても"Got permission denied....." とか言われて、dockerのコンテナの中に入ることができませんでした。

$ docker ps

Got permission denied while trying to connect to the Docker daemon
socket at unix:///var/run/docker.sock:
Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json:
dial unix /var/run/docker.sock: connect: permission denied

てなエラーが出てくるので、このエラーメッセージで検索したところ、

# dockerグループへユーザを追加
$ sudo gpasswd -a ubuntu docker

# グループの追加ができたことを確認
$ id ubuntu

と入力して、(ここ大事)

# 一回ログアウトして再ログインする
$ exit

して、再度

$ sudo docker run hello-world
$ docker run -it ubuntu bash

をしたら、今度はコンテナの中に入ることができました。

ubuntu@ip-172-26-13-137:~$ docker run -it ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
6a5697faee43: Pull complete
ba13d3bc422b: Pull complete
a254829d9e55: Pull complete
Digest: sha256:fff16eea1a8ae92867721d90c59a75652ea66d29c05294e6e2f898704bdb8cf1
Status: Downloaded newer image for ubuntu:latest
root@e9ff5fa891d0:/# ;s
bash: syntax error near unexpected token `;'
root@e9ff5fa891d0:/# ls
bin   dev  home  lib32  libx32  mnt  proc  run   srv  tmp  var
boot  etc  lib   lib64  media   opt  root  sbin  sys  usr

よく分からんけど、これで、Amazon Lightsailの中にDockerをインストールすることができたんだろう・・・と思っています。

2020/11,江端さんの忘備録

こちらのコラムで、私が、実家の見守りシステムを作る際に、自分のWebサイトのVPSの利用に「失敗した」という話を書いています。

In this column, I wrote that I "failed" to use the VPS on my website when creating a home watching system.

でもって、ラズパイを使った自宅サーバの方に、開発方向をシフトさせるに至りました ―― まあ、そのおかげで、この連載の記事が執筆できたのですが。

Therefore, we have shifted the development direction to the home server that uses Raspberry Pi. Well, thanks to that, I was able to write an article in this series.

ここ一年の間、Amazon Web Service(AWS)の、Amazon Elastic Compute Cloud(EC2)とLBS(ロードバランサ)を使ったシステムを使って、色々やってきたのですが、先日、1年間の無料使用期間が終了して、有料モードに突入してしまいました。

For the past year, I've been using Amazon Web Services (AWS), a system that uses Amazon Elastic Compute Cloud (EC2) and LBS (load balancer). The other day, the one-year free usage period has expired and I have entered the billing phase.

実は、それに気が付かずに、3~4ヶ月くらい5000円/月の課金を喰らっていたことを知って、先日あわててアカウントを抹消しました。

Actually, I didn't notice it and learned that I was charged 5,000 yen / month for about 3-4 months, so I hurriedly deleted my account the other day.

練習用に使っていただけなのに、結構な損金になりました。

Though I only used it for practice, it was a considerable loss.

-----

そもそも、私、"AWS"というものが苦手です。

In the first place, I'm not good at "AWS".

"AWS"というのは、「ビルデイングブロック」で作るサーバです ―― イメージ的に言えば、「電子ブロック」のような感じです。

"AWS" is a server created by "building blocks". In other words, it feels like an "electronic block".

「電子ブロック」は、よく(便利に)使われるメタファですが、これが現実世界で運用するとなると、悪夢のような状態になるのです。

An "electronic block" is a metaphor that is often (conveniently) used, but when it comes to operation in the real world, it becomes a nightmare.

―― ブロックがたった一つでも動かないと、サーバシステム全体が動かない

"The entire server system will not work unless even one block works"

"TLS認証"で、"ロードバンサー"で、"ドメイン登録"で、私がどれほど「動かないサーバ」に恐怖しながら、闘ってきたかは、これまでも、たびたびお話ししたと思います。

I've often talked about how scared I was of "non-working servers" with "TLS authentication", "road bangsar", and "domain registration".

-----

『てやんでい! サーバ構築なんてもんはなぁ、コンソールのシェルが2つ、3つ立ち上がっていればいいんでい!』

"Shut up! I only need two or three console shells up to build a server"

という、1980年代のコマンドインターフェース型のUNIXサーバ構築の技だけで生き残っているロートルには、"AWS"のようなサーバ構築手法は、本当に"辛い"のです。

In this way, for the elderly who survived only with the command interface type UNIX server construction technique of the 1980s, the methods like "AWS" are really "hard".

まあ、とは言え、こういうセリフを語り出した時から、人間はジジイ化する訳で ――

However, if I start talking about these lines, I become "old farts"

『ジジイ化を自分に許してしまったエンジニア』は、そこで『試合終了』となります。

"the engineer who allowed himself to become old farts" is going 'game over'.

『試合終了』が嫌なのであれば、週末でも、大型連休でも、就業後の深夜でも、エンジニアは、闘い続けなければなりません。

If I don't like the 'game over', then engineers have to keep fighting, even when it's a weekend, a major holiday, or late at night after work.

(続く)

(To be continued)

2020/11,江端さんの忘備録

これは、先日の私の誕生日の、長女との会話です。

This is a conversation I had with my senior daughter on my birthday.

長女:「パパ。誕生日おめでとう。さて、誕生日に際して、今後の抱負を一言」

"Daddy. Happy birthday. Now, on the occasion of your birthday, what are your future aspirations?"

江端:「ふむ、抱負か・・・『自分が自分の意識と体をコントロールできる時間内での、苦痛ゼロの死』―― この一択だな」

"Hmm, an aspiration... 'Death with zero pain, in a time when I can control my own consciousness and body' - Just this one option"

-----

ちなみに、嫁さんも、私と同じこと言っています。

My wife also says the same thing.

まあ、皆さんも、いずれ介護のフロントに立てば分かります。

Well, you all will understand when you eventually get on the care front.

ええ、介護者になろうが、被介護者になろうが ―― 全員、例外なく。

Yes, whether you become a caregivera or a care recipient, without exception.

2020/11,江端さんの技術メモ

イプシムのSIM(IPアドレス付きで、一番安いやつ)が、ラズパイに差さったままで使っていなかったので、iPadで使えるようにした。必要に応じて、またラズパイに戻せばいいし。

  1. SIM取り出し用の機具の準備

  2. イプシムのSIMカード情報の確認(画像は偽造しています)

  3. SIMカード番号の確認 (上記のICCIDと同じであるかを確認(画像は偽造しています))

3. iPadのスロットに挿入する

4. iPadから、https://ipsim.net/support.html にアクセスし、APN構成プロファイルをダウンロードする

これをダウンロードするのだが、これがインストールできているどうかが、確認できずに困った(インストールボタンが見あたらなかったから)。この場合は、「設定」で調べる。

ちなみに、以下の情報が必要なのかは分からないが一応セットしておいた。

 

5. iPadから、https://ipsim.net/support.html にアクセスし、APN構成プロファイルをダウンロードする(画像は偽造しています)

上記の赤い囲みに数字が出てくれば、インストールできている(と思う)。

7.右上にこの表示が出てくれば、SIMカードは稼動している(最初のうち、ブラウザが表示されなかったりするが時間が経過すると見えるようになる(ことがあるみたい)。表示されずに、なんども、手順をやりなおしていたが、"放置"が正解だったような気がする)

以上

2020/11,江端さんの忘備録

「沈黙する人工知能 ~なぜAIは米大統領選の予測に使われなかったのか」

"Silent Artificial Intelligence - Why was not AI used to predict US presidential election ?"

を読み返してます。

I'm rereading it.

―― あれから4年かぁ・・・

"It's been four years since then"

と思うと、「疾く」がごとき時間の速さに、感に入っております。

I am impressed by the speed of time, "fast".

-----

ところで、まだ誰も指摘されていないようですが、私は、

By the way, I don't think anyone has pointed this out yet. However, I'm worried about

―― アメリカ合衆国の内戦

"Civil War in the United States"

を心配しています。

-----

シナリオはこんな感じでしょうか。

Here's an example of a scenario.

(Step 1) 直接投票ではトランプ候補が勝利するものの、その後の郵便投票の結果でバイデン候補が逆転する。

(Step 1) Candidate Trump wins the direct ballot, but the results of the subsequent mail-in ballot upset candidate Biden.

(Step 2) トランプ候補が、大統領令で郵便投票の無効を宣言し、一方的に勝利宣言を発表。

(Step 2) Candidate Trump declares the mail-in ballot invalid by presidential decree and unilaterally issues a victory declaration.

(Step 3)最初にカリフォルニア州(民主党勢力)が独立を宣言、それを受けてテキサス州(共和党勢力)も独立を宣言。

(Step 3) California (the Democratic state) is the first to declare its independence, and Texas (the Republican state) follows suit.

(Step 4)各州が、州兵を州境に配置。各州知事が、カリフォルニア国、テキサス国への参入を表明

(Step 4) Each state places the National Guard on the border. Each state governor announces entry into the State of California or the State of Texas.

(Step 5)トランプ候補が合衆国内で国内で限定核(威力を限定的(?)にした核兵器)の使用を言及し、最悪、使用してしまう

(Step 5) Candidate Trump mentions the use of limited nuclear weapons (nuclear weapons with limited power (?)) in the United States, and in the worst case, he uses it.

でもって、中国とロシアが、上記の二大州のバックアップに付いたら、間違いなく人類最後の世界大戦になるでしょう。

So, if China and Russia back up the above two major states, it will absolutely be the last world war for humankind.

-----

4年前の私は、こんな発想すらできませんでした。

Four years ago, I couldn't even think like this.

-----

今の私の願いは、どっちが大統領選挙に勝利しても構わないので

My wish now is that I don't care who wins the presidential election, however,

―― 有無を言わせないほどの圧倒的多数で、勝敗が決して欲しい

"I'd like to see an overwhelming majority to win or lose."

ただ、それだけです。

That's just it.