2021年1月31日日曜日

Pythonのpackageとmoduleの違い

moduleは、.pyファイル

packageは、ディレクトリ。_path_をもつ。 


---

matplotlibの例で、pyplot.pyの入っているディレクトリは

.../matplotlib/pyplot.py となっている。


import matplotlib.pyplot as plt

from matplotlib import pyplot as plt

は、どちらの書き方でも同じimportができる。

---

foo.py というファイルに

def bar():

    pass

という関数があったとする。


があったとする。このときは、

from foo import bar  # これはOK。関数barがimportできる。

import foo.bar  # これはNG

という違いがある。

/foo/bar.py

という構造になっていればどちらでもOK。


vuejsを3にアップデートするのにハマった件

参考

https://stackoverflow.com/questions/51615051/how-can-i-remove-vue-cli-2


$ vue --version

2.9.6

からスタート。cliを入れたいので

$ sudo npm uninstall -g vue-cli

$ sudo npm install -g @vue/cli

をやってみるが

ERR! code EACCES                                                                                                            

npm ERR! syscall access                                                                                                         

npm ERR! path /usr/local/lib/node_modules/vue-cli/node_modules/absolute                                                         

npm ERR! errno -13                                                                                                              

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules/vue-cli/node_modules/absolute'                   

npm ERR!  [Error: EACCES: permission denied, access '/usr/local/lib/node_modules/vue-cli/node_modules/absolute'] {              

npm ERR!   errno: -13,                                                                                                          

npm ERR!   code: 'EACCES',                                                                                                      

npm ERR!   syscall: 'access',                                                                                                   

npm ERR!   path: '/usr/local/lib/node_modules/vue-cli/node_modules/absolute'                                                                                                                                                 

npm ERR! The operation was rejected by your operating system.
とエラー。
$ which vue

/usr/local/bin/vue

$ cd /usr/local/bin/

:/usr/local/bin$ ll *vue*

lrwxrwxrwx 1 root root 35  8月 12 06:22 vue -> ../lib/node_modules/vue-cli/bin/vue*

lrwxrwxrwx 1 root root 40  8月 12 06:22 vue-init -> ../lib/node_modules/vue-cli/bin/vue-init*

lrwxrwxrwx 1 root root 40  8月 12 06:22 vue-list -> ../lib/node_modules/vue-cli/bin/vue-list*

ということで、vue, vue-ini, vuie-listを消した。


nでnodeをアップデートしてから、vue/cliを再インストールするとどうにかできました。


$ sudo npm install -g n

$ sudo n stable

$ node --version                                                                                         

v14.15.4                     

$ sudo npm install -g @vue/cli


+ @vue/cli@4.5.11
added 1391 packages from 707 contributors in 104.949s

$ vue --version
@vue/cli 4.5.11

2021年1月23日土曜日

Linux UbuntuでArduinoのシリアルを受信するC言語

Arduinoでシリアル出力して、Linuxで受信して表示します。


こちらのブログのコードを少しだけ変えました。元ブログはPart1から4まであります。

https://chrisheydrick.com/2012/06/12/how-to-read-serial-data-from-an-arduino-in-linux-with-c-part-1/


Arduino側

シンプルなHelloWorldです。書き込んでシリアル出力を確認。

void setup()
 
{
 
Serial.begin(9600);
 
}
 
void loop()
 
{
 
Serial.print("Hello World\n");
 
delay(1000);
 
}

Linux側

こちらが受信側のCコード。read_serial.cというファイルに保存。
コンパイル、実行
$ gcc -Wall -o serial read_serial.c
$ ./serial

#include <stdio.h>
#include <stdlib.h>
#include <x86_64-linux-gnu/sys/ioctl.h>
#include <fcntl.h>
#include <termios.h>

/* My Arduino is on /dev/ttyACM0 */
char *portname = "/dev/ttyACM0";
char buf[256];

int main(int argc, char *argv[])
{
 int fd;

/* Open the file descriptor in non-blocking mode */
 fd = open(portname, O_RDWR | O_NOCTTY);

/* Set up the control structure */
 struct termios toptions;

 /* Get currently set options for the tty */
 tcgetattr(fd, &toptions);

/* Set custom options */

/* 9600 baud */
 cfsetispeed(&toptions, B9600);
 cfsetospeed(&toptions, B9600);
 /* 8 bits, no parity, no stop bits */
 toptions.c_cflag &= ~PARENB;
 toptions.c_cflag &= ~CSTOPB;
 toptions.c_cflag &= ~CSIZE;
 toptions.c_cflag |= CS8;
 /* no hardware flow control */
 toptions.c_cflag &= ~CRTSCTS;
 /* enable receiver, ignore status lines */
 toptions.c_cflag |= CREAD | CLOCAL;
 /* disable input/output flow control, disable restart chars */
 toptions.c_iflag &= ~(IXON | IXOFF | IXANY);
 /* disable canonical input, disable echo,
 disable visually erase chars,
 disable terminal-generated signals */
 toptions.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
 /* disable output processing */
 toptions.c_oflag &= ~OPOST;

/* wait for 12 characters to come in before read returns */
/* WARNING! THIS CAUSES THE read() TO BLOCK UNTIL ALL */
/* CHARACTERS HAVE COME IN! */
 toptions.c_cc[VMIN] = 12;
 /* no minimum time to wait before read returns */
 toptions.c_cc[VTIME] = 0;

/* commit the options */
 tcsetattr(fd, TCSANOW, &toptions);

/* Wait for the Arduino to reset */
 usleep(1000*1000);
 /* Flush anything already in the serial buffer */
 tcflush(fd, TCIFLUSH);
 /* read up to 128 bytes from the fd */
 int n = read(fd, buf, 128);

/* print how many bytes read */
 printf("%i bytes got read...\n", n);
 /* print what's in the buffer */
 printf("Buffer contains...\n%s\n", buf);

return 0;
}

出力

./serial 
12 bytes got read...
Buffer contains...
Hello World

変更した点:

ioctl.h が No Such File Or Directory のエラー となる


ヘッダの置き場所が違うらしいので変更。

locate ioctl.h | grep /usr/include/

とやると、それらしきものが出てくる。その中からubuntuだとx86...を選ぶ。

#include <ioctl.h>


#include <x86_64-linux-gnu/sys/ioctl.h>

に変更したら直った。

https://askubuntu.com/questions/414110/wheres-my-usr-include-sys-directory


&amp;amp; は & のこと


https://stackoverflow.com/questions/18019716/is-ampamp-valid


2021年1月17日日曜日

qwiklabsでAWSハンズオンをやっていたらブロックされたので解除してもらった

qwiklabsでブロックされてしまった

qwiklabasでAWSのハンズオンをやっていたら、フリーズして終了していました。そのときはまぁいいかと思って後でまたやろうとすると、ログインできません。 

Your account has been blocked. If you believe this could be a mistake, please contact your administrator.

と出ていました。 



このエラーが出るのは、許可されていない操作をしてしまったことが原因みたいです。

https://support.google.com/qwiklabs/answer/9157984?hl=en


上記にあるコンタクトフォーム(https://support.google.com/qwiklabs/contact/contact_us)からメールを送ってみました。 

・Hello,

・My account<hoge@... > がブロックされたみたいです

・最後にやっていたLABはXXXです

・確認してもらえますか

・Thanks in advance.

的なことを書きました。英語で書きましたが、受け付け確認メールには日本語でも良いということが書いてありました。

Psst... at Qwiklabs, we also speak Japanese, Spanish, Brazilian Portuguese, and German! :)


なんと2分後に連絡があって解除

土曜日の21時くらいにサポートフォームから送りましたが、2分後に連絡があって解除してもらえました。速い。

メッセージは、

... your account was blocked due to the reason "resource_limit_exceeded".

This happens when one tries to launch the resources which are not configured in the lab environment. Thus the system automatically blocks those user accounts.

To avoid such case in the future, please make sure that you are not launching the resources which are not configured in the lab environment. As an exception, we have unblocked your account and you can access your account now.

・・・ということで、labのハンズオンに関係ないリソースを触ろうとしたのでブロックになっていたようです。今回は特別に解除してあげます、とのこと。

ハンズオンの設定ってどうなっているのか、と思って探したのが問題だったみたいですね。反省。以後気をつけたいと思います。 

2021年1月11日月曜日

Programming Computer Vision with Pythonを少しやったときのメモ

最初の部分だけを以前やったときのメモ。2017年くらいなので古いかもしれない。


http://programmingcomputervision.com/ 

にオライリー本の最終ドラフトpdfがおいてある。


コードはgithubにある。


PILはPytnon2.7で開発が止まっているのでforkされたpillowを使う。

pillowをcondaで入れるとバグる。pipで入れ直すとよい。

https://github.com/python-pillow/Pillow/issues/2945


インポートはこんな感じ

from PIL import Image

from pylab import *


画像をくり抜いたり、反転させたり、コーナーを検出したりしている

--

他にも沢山ブログなどで紹介されている

http://datahacker.rs/opencv-harris-corner-detector-part2/

AWSのデータ処理のダイアグラム

DataAnalyticsの勉強をしていて、Input/Outputがややこしいのでまとめました。図はdrawioで作っています。

AWS GlueのI/O

・Input: DB全て、S3、Stream
・Output: Redshift, 3rd party DB, Athena, EMR Hive (RDSはNG)


Redshift SpecturmとRedshiftは同じといえば同じでいいのだろうか。

https://docs.aws.amazon.com/ja_jp/glue/latest/dg/how-it-works.html


Kinesis Data FirehoseのOutputは4つのみ

S3、Redshift、ES、splunkしなかい。入力はいろいろ(省略)


Amazon AthenaでのI/O

出力のS3の意味: AthenaでクエリがS3に保存されるので簡易的なETLとして利用できる。




QuickSightのデータソースは多い


-多いので画面キャプチャを引用
- AWSでのRDS, Redfhisft, S3, DynamoDB全て対応している。3rdパーティも多い。

- ファイル(.csv .tsv. dlf. elf. xlsx .json) エクセルxlsxも対応。zip または gzipでの暗号化ファイルはそのまま使える

- QuickSightのソースにESも使えるようになった(2020年11月のアップデート)

https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/supported-data-sources.html

https://d1.awsstatic.com/webinars/jp/pdf/services/20200204_AWS_BlackBelt_QuickSight_Update.pdf


Kibanaのソースは必ずES


KibanaはElasticSearch(ES)を必ず使う








%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22Glue%22%20style%3D%22points%3D%5B%5B0%2C0%2C0%5D%2C%5B0.25%2C0%2C0%5D%2C%5B0.5%2C0%2C0%5D%2C%5B0.75%2C0%2C0%5D%2C%5B1%2C0%2C0%5D%2C%5B0%2C1%2C0%5D%2C%5B0.25%2C1%2C0%5D%2C%5B0.5%2C1%2C0%5D%2C%5B0.75%2C1%2C0%5D%2C%5B1%2C1%2C0%5D%2C%5B0%2C0.25%2C0%5D%2C%5B0%2C0.5%2C0%5D%2C%5B0%2C0.75%2C0%5D%2C%5B1%2C0.25%2C0%5D%2C%5B1%2C0.5%2C0%5D%2C%5B1%2C0.75%2C0%5D%5D%3BoutlineConnect%3D0%3BfontColor%3D%23232F3E%3BgradientColor%3D%23945DF2%3BgradientDirection%3Dnorth%3BfillColor%3D%235A30B5%3BstrokeColor%3D%23ffffff%3Bdashed%3D0%3BverticalLabelPosition%3Dbottom%3BverticalAlign%3Dtop%3Balign%3Dcenter%3Bhtml%3D1%3BfontSize%3D12%3BfontStyle%3D0%3Baspect%3Dfixed%3Bshape%3Dmxgraph.aws4.resourceIcon%3BresIcon%3Dmxgraph.aws4.glue%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22449%22%20y%3D%22360%22%20width%3D%2278%22%20height%3D%2278%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%223%22%20value%3D%22DynamoDB%22%20style%3D%22outlineConnect%3D0%3Bdashed%3D0%3BverticalLabelPosition%3Dbottom%3BverticalAlign%3Dtop%3Balign%3Dcenter%3Bhtml%3D1%3Bshape%3Dmxgraph.aws3.dynamo_db%3BfillColor%3D%232E73B8%3BgradientColor%3Dnone%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22154%22%20y%3D%22317%22%20width%3D%2272%22%20height%3D%2281%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%224%22%20value%3D%22S3%22%20style%3D%22points%3D%5B%5B0%2C0%2C0%5D%2C%5B0.25%2C0%2C0%5D%2C%5B0.5%2C0%2C0%5D%2C%5B0.75%2C0%2C0%5D%2C%5B1%2C0%2C0%5D%2C%5B0%2C1%2C0%5D%2C%5B0.25%2C1%2C0%5D%2C%5B0.5%2C1%2C0%5D%2C%5B0.75%2C1%2C0%5D%2C%5B1%2C1%2C0%5D%2C%5B0%2C0.25%2C0%5D%2C%5B0%2C0.5%2C0%5D%2C%5B0%2C0.75%2C0%5D%2C%5B1%2C0.25%2C0%5D%2C%5B1%2C0.5%2C0%5D%2C%5B1%2C0.75%2C0%5D%5D%3BoutlineConnect%3D0%3BfontColor%3D%23232F3E%3BgradientColor%3D%2360A337%3BgradientDirection%3Dnorth%3BfillColor%3D%23277116%3BstrokeColor%3D%23ffffff%3Bdashed%3D0%3BverticalLabelPosition%3Dbottom%3BverticalAlign%3Dtop%3Balign%3Dcenter%3Bhtml%3D1%3BfontSize%3D12%3BfontStyle%3D0%3Baspect%3Dfixed%3Bshape%3Dmxgraph.aws4.resourceIcon%3BresIcon%3Dmxgraph.aws4.s3%3BflipV%3D0%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2252%22%20y%3D%22317%22%20width%3D%2278%22%20height%3D%2278%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%225%22%20value%3D%22RDS%22%20style%3D%22points%3D%5B%5B0%2C0%2C0%5D%2C%5B0.25%2C0%2C0%5D%2C%5B0.5%2C0%2C0%5D%2C%5B0.75%2C0%2C0%5D%2C%5B1%2C0%2C0%5D%2C%5B0%2C1%2C0%5D%2C%5B0.25%2C1%2C0%5D%2C%5B0.5%2C1%2C0%5D%2C%5B0.75%2C1%2C0%5D%2C%5B1%2C1%2C0%5D%2C%5B0%2C0.25%2C0%5D%2C%5B0%2C0.5%2C0%5D%2C%5B0%2C0.75%2C0%5D%2C%5B1%2C0.25%2C0%5D%2C%5B1%2C0.5%2C0%5D%2C%5B1%2C0.75%2C0%5D%5D%3BoutlineConnect%3D0%3BfontColor%3D%23232F3E%3BgradientColor%3D%234D72F3%3BgradientDirection%3Dnorth%3BfillColor%3D%233334B9%3BstrokeColor%3D%23ffffff%3Bdashed%3D0%3BverticalLabelPosition%3Dbottom%3BverticalAlign%3Dtop%3Balign%3Dcenter%3Bhtml%3D1%3BfontSize%3D12%3BfontStyle%3D0%3Baspect%3Dfixed%3Bshape%3Dmxgraph.aws4.resourceIcon%3BresIcon%3Dmxgraph.aws4.rds%3BflipV%3D0%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2252%22%20y%3D%22207%22%20width%3D%2278%22%20height%3D%2278%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%226%22%20value%3D%22Redshift%22%20style%3D%22points%3D%5B%5B0%2C0%2C0%5D%2C%5B0.25%2C0%2C0%5D%2C%5B0.5%2C0%2C0%5D%2C%5B0.75%2C0%2C0%5D%2C%5B1%2C0%2C0%5D%2C%5B0%2C1%2C0%5D%2C%5B0.25%2C1%2C0%5D%2C%5B0.5%2C1%2C0%5D%2C%5B0.75%2C1%2C0%5D%2C%5B1%2C1%2C0%5D%2C%5B0%2C0.25%2C0%5D%2C%5B0%2C0.5%2C0%5D%2C%5B0%2C0.75%2C0%5D%2C%5B1%2C0.25%2C0%5D%2C%5B1%2C0.5%2C0%5D%2C%5B1%2C0.75%2C0%5D%5D%3BoutlineConnect%3D0%3BfontColor%3D%23232F3E%3BgradientColor%3D%23945DF2%3BgradientDirection%3Dnorth%3BfillColor%3D%235A30B5%3BstrokeColor%3D%23ffffff%3Bdashed%3D0%3BverticalLabelPosition%3Dbottom%3BverticalAlign%3Dtop%3Balign%3Dcenter%3Bhtml%3D1%3BfontSize%3D12%3BfontStyle%3D0%3Baspect%3Dfixed%3Bshape%3Dmxgraph.aws4.resourceIcon%3BresIcon%3Dmxgraph.aws4.redshift%3BflipV%3D0%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22153%22%20y%3D%22207%22%20width%3D%2278%22%20height%3D%2278%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%227%22%20value%3D%22Kafka%22%20style%3D%22points%3D%5B%5B0%2C0%2C0%5D%2C%5B0.25%2C0%2C0%5D%2C%5B0.5%2C0%2C0%5D%2C%5B0.75%2C0%2C0%5D%2C%5B1%2C0%2C0%5D%2C%5B0%2C1%2C0%5D%2C%5B0.25%2C1%2C0%5D%2C%5B0.5%2C1%2C0%5D%2C%5B0.75%2C1%2C0%5D%2C%5B1%2C1%2C0%5D%2C%5B0%2C0.25%2C0%5D%2C%5B0%2C0.5%2C0%5D%2C%5B0%2C0.75%2C0%5D%2C%5B1%2C0.25%2C0%5D%2C%5B1%2C0.5%2C0%5D%2C%5B1%2C0.75%2C0%5D%5D%3BoutlineConnect%3D0%3BfontColor%3D%23232F3E%3BgradientColor%3D%23945DF2%3BgradientDirection%3Dnorth%3BfillColor%3D%235A30B5%3BstrokeColor%3D%23ffffff%3Bdashed%3D0%3BverticalLabelPosition%3Dbottom%3BverticalAlign%3Dtop%3Balign%3Dcenter%3Bhtml%3D1%3BfontSize%3D12%3BfontStyle%3D0%3Baspect%3Dfixed%3Bshape%3Dmxgraph.aws4.resourceIcon%3BresIcon%3Dmxgraph.aws4.managed_streaming_for_kafka%3BflipV%3D0%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22203%22%20y%3D%22497%22%20width%3D%2278%22%20height%3D%2278%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%228%22%20value%3D%22KDS%22%20style%3D%22points%3D%5B%5B0%2C0%2C0%5D%2C%5B0.25%2C0%2C0%5D%2C%5B0.5%2C0%2C0%5D%2C%5B0.75%2C0%2C0%5D%2C%5B1%2C0%2C0%5D%2C%5B0%2C1%2C0%5D%2C%5B0.25%2C1%2C0%5D%2C%5B0.5%2C1%2C0%5D%2C%5B0.75%2C1%2C0%5D%2C%5B1%2C1%2C0%5D%2C%5B0%2C0.25%2C0%5D%2C%5B0%2C0.5%2C0%5D%2C%5B0%2C0.75%2C0%5D%2C%5B1%2C0.25%2C0%5D%2C%5B1%2C0.5%2C0%5D%2C%5B1%2C0.75%2C0%5D%5D%3BoutlineConnect%3D0%3BfontColor%3D%23232F3E%3BgradientColor%3D%23945DF2%3BgradientDirection%3Dnorth%3BfillColor%3D%235A30B5%3BstrokeColor%3D%23ffffff%3Bdashed%3D0%3BverticalLabelPosition%3Dbottom%3BverticalAlign%3Dtop%3Balign%3Dcenter%3Bhtml%3D1%3BfontSize%3D12%3BfontStyle%3D0%3Baspect%3Dfixed%3Bshape%3Dmxgraph.aws4.resourceIcon%3BresIcon%3Dmxgraph.aws4.kinesis_data_streams%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22103%22%20y%3D%22497%22%20width%3D%2278%22%20height%3D%2278%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%229%22%20value%3D%22Athena%22%20style%3D%22points%3D%5B%5B0%2C0%2C0%5D%2C%5B0.25%2C0%2C0%5D%2C%5B0.5%2C0%2C0%5D%2C%5B0.75%2C0%2C0%5D%2C%5B1%2C0%2C0%5D%2C%5B0%2C1%2C0%5D%2C%5B0.25%2C1%2C0%5D%2C%5B0.5%2C1%2C0%5D%2C%5B0.75%2C1%2C0%5D%2C%5B1%2C1%2C0%5D%2C%5B0%2C0.25%2C0%5D%2C%5B0%2C0.5%2C0%5D%2C%5B0%2C0.75%2C0%5D%2C%5B1%2C0.25%2C0%5D%2C%5B1%2C0.5%2C0%5D%2C%5B1%2C0.75%2C0%5D%5D%3BoutlineConnect%3D0%3BfontColor%3D%23232F3E%3BgradientColor%3D%23945DF2%3BgradientDirection%3Dnorth%3BfillColor%3D%235A30B5%3BstrokeColor%3D%23ffffff%3Bdashed%3D0%3BverticalLabelPosition%3Dbottom%3BverticalAlign%3Dtop%3Balign%3Dcenter%3Bhtml%3D1%3BfontSize%3D12%3BfontStyle%3D0%3Baspect%3Dfixed%3Bshape%3Dmxgraph.aws4.resourceIcon%3BresIcon%3Dmxgraph.aws4.athena%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22725%22%20y%3D%22442%22%20width%3D%2278%22%20height%3D%2278%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2210%22%20value%3D%22EMR%20Hive%22%20style%3D%22points%3D%5B%5B0%2C0%2C0%5D%2C%5B0.25%2C0%2C0%5D%2C%5B0.5%2C0%2C0%5D%2C%5B0.75%2C0%2C0%5D%2C%5B1%2C0%2C0%5D%2C%5B0%2C1%2C0%5D%2C%5B0.25%2C1%2C0%5D%2C%5B0.5%2C1%2C0%5D%2C%5B0.75%2C1%2C0%5D%2C%5B1%2C1%2C0%5D%2C%5B0%2C0.25%2C0%5D%2C%5B0%2C0.5%2C0%5D%2C%5B0%2C0.75%2C0%5D%2C%5B1%2C0.25%2C0%5D%2C%5B1%2C0.5%2C0%5D%2C%5B1%2C0.75%2C0%5D%5D%3BoutlineConnect%3D0%3BfontColor%3D%23232F3E%3BgradientColor%3D%23945DF2%3BgradientDirection%3Dnorth%3BfillColor%3D%235A30B5%3BstrokeColor%3D%23ffffff%3Bdashed%3D0%3BverticalLabelPosition%3Dbottom%3BverticalAlign%3Dtop%3Balign%3Dcenter%3Bhtml%3D1%3BfontSize%3D12%3BfontStyle%3D0%3Baspect%3Dfixed%3Bshape%3Dmxgraph.aws4.resourceIcon%3BresIcon%3Dmxgraph.aws4.emr%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22725%22%20y%3D%22555%22%20width%3D%2278%22%20height%3D%2278%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2211%22%20value%3D%22Glue%20Catalog%22%20style%3D%22outlineConnect%3D0%3BfontColor%3D%23232F3E%3BgradientColor%3Dnone%3BfillColor%3D%235A30B5%3BstrokeColor%3Dnone%3Bdashed%3D0%3BverticalLabelPosition%3Dbottom%3BverticalAlign%3Dtop%3Balign%3Dcenter%3Bhtml%3D1%3BfontSize%3D12%3BfontStyle%3D0%3Baspect%3Dfixed%3BpointerEvents%3D1%3Bshape%3Dmxgraph.aws4.glue_data_catalog%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22539%22%20y%3D%22360%22%20width%3D%2272%22%20height%3D%2278%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2212%22%20value%3D%22JDBC-DB%26lt%3Bbr%26gt%3B3rd%20party%22%20style%3D%22whiteSpace%3Dwrap%3Bhtml%3D1%3Baspect%3Dfixed%3BfontStyle%3D1%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22262%22%20y%3D%22206%22%20width%3D%2280%22%20height%3D%2280%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2213%22%20value%3D%22JDBC-DB%26lt%3Bbr%26gt%3B3rd%20party%22%20style%3D%22whiteSpace%3Dwrap%3Bhtml%3D1%3Baspect%3Dfixed%3BfontStyle%3D1%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22723%22%20y%3D%22328%22%20width%3D%2280%22%20height%3D%2280%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2214%22%20value%3D%22Redshift%20Spectrum%22%20style%3D%22points%3D%5B%5B0%2C0%2C0%5D%2C%5B0.25%2C0%2C0%5D%2C%5B0.5%2C0%2C0%5D%2C%5B0.75%2C0%2C0%5D%2C%5B1%2C0%2C0%5D%2C%5B0%2C1%2C0%5D%2C%5B0.25%2C1%2C0%5D%2C%5B0.5%2C1%2C0%5D%2C%5B0.75%2C1%2C0%5D%2C%5B1%2C1%2C0%5D%2C%5B0%2C0.25%2C0%5D%2C%5B0%2C0.5%2C0%5D%2C%5B0%2C0.75%2C0%5D%2C%5B1%2C0.25%2C0%5D%2C%5B1%2C0.5%2C0%5D%2C%5B1%2C0.75%2C0%5D%5D%3BoutlineConnect%3D0%3BfontColor%3D%23232F3E%3BgradientColor%3D%23945DF2%3BgradientDirection%3Dnorth%3BfillColor%3D%235A30B5%3BstrokeColor%3D%23ffffff%3Bdashed%3D0%3BverticalLabelPosition%3Dbottom%3BverticalAlign%3Dtop%3Balign%3Dcenter%3Bhtml%3D1%3BfontSize%3D12%3BfontStyle%3D0%3Baspect%3Dfixed%3Bshape%3Dmxgraph.aws4.resourceIcon%3BresIcon%3Dmxgraph.aws4.redshift%3BflipV%3D0%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22725%22%20y%3D%22216%22%20width%3D%2278%22%20height%3D%2278%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2215%22%20value%3D%22%26lt%3Bmeta%20charset%3D%26quot%3Butf-8%26quot%3B%20style%3D%26quot%3Bfont-size%3A%2014px%3B%26quot%3B%26gt%3B%26lt%3Bspan%20style%3D%26quot%3Bcolor%3A%20rgb(0%2C%200%2C%200)%3B%20font-family%3A%20helvetica%3B%20font-size%3A%2014px%3B%20font-style%3A%20normal%3B%20letter-spacing%3A%20normal%3B%20text-align%3A%20left%3B%20text-indent%3A%200px%3B%20text-transform%3A%20none%3B%20word-spacing%3A%200px%3B%20background-color%3A%20rgb(248%2C%20249%2C%20250)%3B%20display%3A%20inline%3B%20float%3A%20none%3B%26quot%3B%26gt%3BData%20Srore%26lt%3B%2Fspan%26gt%3B%22%20style%3D%22text%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontStyle%3D1%3BfontSize%3D14%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2221%22%20y%3D%22161%22%20width%3D%2280%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2216%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfillColor%3Dnone%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2220%22%20y%3D%22187%22%20width%3D%22340%22%20height%3D%22240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2217%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfillColor%3Dnone%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2220%22%20y%3D%22476%22%20width%3D%22340%22%20height%3D%22141%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2218%22%20value%3D%22%26lt%3Bspan%20style%3D%26quot%3Bcolor%3A%20rgb(0%20%2C%200%20%2C%200)%20%3B%20font-family%3A%20%26amp%3B%2334%3Bhelvetica%26amp%3B%2334%3B%20%3B%20font-size%3A%2014px%20%3B%20font-style%3A%20normal%20%3B%20letter-spacing%3A%20normal%20%3B%20text-align%3A%20left%20%3B%20text-indent%3A%200px%20%3B%20text-transform%3A%20none%20%3B%20word-spacing%3A%200px%20%3B%20background-color%3A%20rgb(248%20%2C%20249%20%2C%20250)%20%3B%20display%3A%20inline%20%3B%20float%3A%20none%26quot%3B%26gt%3BData%20Stream%26lt%3B%2Fspan%26gt%3B%22%20style%3D%22text%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontStyle%3D1%3BfontSize%3D14%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2221%22%20y%3D%22447%22%20width%3D%22120%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2219%22%20value%3D%22%26lt%3Bspan%20style%3D%26quot%3Bcolor%3A%20rgb(0%20%2C%200%20%2C%200)%20%3B%20font-family%3A%20%26amp%3B%2334%3Bhelvetica%26amp%3B%2334%3B%20%3B%20font-size%3A%2014px%20%3B%20font-style%3A%20normal%20%3B%20letter-spacing%3A%20normal%20%3B%20text-align%3A%20left%20%3B%20text-indent%3A%200px%20%3B%20text-transform%3A%20none%20%3B%20word-spacing%3A%200px%20%3B%20background-color%3A%20rgb(248%20%2C%20249%20%2C%20250)%20%3B%20display%3A%20inline%20%3B%20float%3A%20none%26quot%3B%26gt%3BELT%26lt%3B%2Fspan%26gt%3B%22%20style%3D%22text%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontStyle%3D1%3BfontSize%3D14%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22447%22%20y%3D%22300%22%20width%3D%2280%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2220%22%20value%3D%22%26lt%3Bspan%20style%3D%26quot%3Bcolor%3A%20rgb(0%20%2C%200%20%2C%200)%20%3B%20font-family%3A%20%26amp%3B%2334%3Bhelvetica%26amp%3B%2334%3B%20%3B%20font-size%3A%2014px%20%3B%20font-style%3A%20normal%20%3B%20letter-spacing%3A%20normal%20%3B%20text-align%3A%20left%20%3B%20text-indent%3A%200px%20%3B%20text-transform%3A%20none%20%3B%20word-spacing%3A%200px%20%3B%20background-color%3A%20rgb(248%20%2C%20249%20%2C%20250)%20%3B%20display%3A%20inline%20%3B%20float%3A%20none%26quot%3B%26gt%3BData%20Target%26lt%3B%2Fspan%26gt%3B%22%20style%3D%22text%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontStyle%3D1%3BfontSize%3D14%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22680%22%20y%3D%22161%22%20width%3D%2280%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2221%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfillColor%3Dnone%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22680%22%20y%3D%22187%22%20width%3D%22160%22%20height%3D%22493%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2222%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3BfontSize%3D14%3BentryX%3D-0.012%3BentryY%3D0.436%3BentryDx%3D0%3BentryDy%3D0%3BentryPerimeter%3D0%3B%22%20edge%3D%221%22%20target%3D%2221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22620%22%20y%3D%22402%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22510%22%20y%3D%22350%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2223%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3BfontSize%3D14%3BentryX%3D-0.012%3BentryY%3D0.436%3BentryDx%3D0%3BentryDy%3D0%3BentryPerimeter%3D0%3B%22%20edge%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22378%22%20y%3D%22400.04999999999995%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22436.0799999999999%22%20y%3D%22399.99800000000005%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E

2021年1月1日金曜日

Amazon S3 の標準とIAの決め方

 S3で標準 IA(Infrequently access)という低頻度アクセスでコスト削減ができるクラスがあります。

  • 性能は同じ。アクセス速度も標準と同じ(ミリ秒)。
  • ストレージ料金は倍くらい違うが、取り出し料金がかかる

オハイオの1GBで計算してみると

標準S3

1GB/月 ストレージ 0.023 USD

1000リクエスト 0.005 USD

取り出し無料

S3-IA

1GB/月 ストレージ 0.0125 USD

1000リクエスト 0.01 USD

1GB取り出し料金 0.01 USD

取り出し料金はけっこう高い。1回で月間のストレージ料金の80%に相当。

結論

1GBを月に1回でも取り出すなら、標準S3にしておいたほうが良さそう。


---

Redshift SpectrumやAthenaからS3-IAにアクセスしても特に変わらないようです。

https://forums.aws.amazon.com/thread.jspa?threadID=285948


2021年に読んだ本

  • 買った本をリストする
    • 入手順に書く
    • 技術系の本(読み物含む)と一般の本で分ける
  • 感想を書けたらかく
  • 随時更新できれば
  • 2021年末に振り返りをしたい


技術本


徹底攻略 ディープラーニングG検定 ジェネラリスト 問題集

AWSのMLSの勉強のために買って読みました。広く浅く、という感じでMLSには物足りないですが基本的な内容はカバーされているので復習と補講的に良かったです。Chainerの記述が少し変。

できるポケット Web制作必携 HTML&CSS全事典

ちょこちょこHTMLを確認しないといけないことがあり、その度にググるよりも辞書的なものがあればいいかな、ということで買いました。たまに使っています。

組込みエンジニアの教科書 渡辺 登 、 牧野 進二

かなりマニアックで踏み込んだ内容という印象。例えばArduinoをIDEを使わずコンパイルしたりその過程をステップごとに見たりしている。

徹底攻略 Microsoft Azure Fundamentals教科書[AZ-900]

公式オンラインセミナーのレジュメがあればいらなかったかも?著者がセミナーやってくれますし。

HTTPの教科書 上野 宣 

HTTPヘッダの中身の説明とかが丁寧で良かった。絵もかわいくて良い。

プログラマのためのGoogle Cloud Platform入門

良さそうな本だが、2017年4月時点までなので少し古くなってしまっている。大枠として読むのが良さそう。チュートリアルはスタンダードなネタ(掲示板)で良い。

AWS Certified Advanced Networking Official Study Guide: Specialty Exam

ゼロトラストネットワーク(オライリー)

一般の本

ルワンダ中央銀行総裁日記 (中公新書) | 服部 正也

★★★★★ 熱意、リーダーシップ、折衝、など国造りに対する姿勢に感銘を受ける。仕事としてやってきたのにルワンダの人々から友情を得て、望外の喜びだったということが書いてあった。ハンターハンターでもこういうことがあったような。

囚われし者たちの国 / バズ・ドライシンガー

★★★☆☆ 各国の刑務所を訪ねて更生のプログラムなどを実施したりしている。本人はユダヤ人でホロコースト生き残りの子孫ということで、赦しに関して個人的な熱意もあるようだ。翻訳がちょっと微妙。途中で読んでいて飽きてしまいました。

人新世の「資本論」  斎藤 幸平

★★★☆☆ 話題の本。まぁまぁ面白い。結局のところ気候変動を懸念している。資本主義をスローダウンさせるのが解の一つかなと。資本主義をコロナに絡めるのはやや言い過ぎ。

NHK 100分 de 名著 カール・マルクス資本論

★★★★☆ 斎藤幸平氏が資本論について解説しています。これはとても分かりやすかったです。

除染と国家 21世紀最悪の公共事業 日野 行介

★★☆☆☆ あまり印象に残らず。
 

地図から消される街 3.11後の「言ってはいけない真実」 青木 美希


経済政策で人は死ぬか?: 公衆衛生学から見た不況対策

韓国社会の現在-超少子化、貧困・孤立化、デジタル化 春木 育美 

トンデモ“IT契約"に騙されるな

ニコニコ哲学 川上量生の胸のうち

水が消えた大河で ルポJR東日本・信濃川不正取水事件
三浦 英之

南三陸日記 三浦 英之 

牙: アフリカゾウの「密猟組織」を追って 三浦 英之

民主主義の条件 砂原 庸介

大阪―大都市は国家を超えるか 砂原 庸介



戦争における「人殺し」の心理学 デーヴ グロスマン

★★★★☆ ベトナム戦争後の兵士の精神状態等をケアする観点からいろいろ研究がされていて、という話。他の戦争でもなされているが、ベトナム戦争は特殊な理由からPTSDが多かったらしい。2%の人は人殺しを躊躇なくできる(=ソシオパス的な統計)らしい。

ひらめき教室 「弱者」のための仕事論 
松井 優征 、 佐藤 オオキ

★★★☆☆ヒット作を狙って作るにはどうしたらよいか、とかそういう話。

イスラエルがすごい マネーを呼ぶイノベーション大国

★★★☆☆ 軍を辞めた人がベンチャーを起こしまくっているという話。

ヒーローを待っていても世界は変わらない
湯浅 誠  | 2015/2/6

活動家 湯浅誠の仕事 岩盤を穿つ
湯浅 誠

令和改訂版 フリーランスを代表して 申告と節税について教わってきました。 単行本(ソフトカバー) – 2020/10/29
きたみりゅうじ

お金のこと何もわからないままフリーランスになっちゃいましたが税金で損しない方法を教えてください! (サンクチュアリ出版) 単行本(ソフトカバー) – 2018/11/8
大河内 薫  (著), 若林 杏樹 (著)


フォン・ノイマンの哲学 人間のフリをした悪魔

★★☆☆☆ ノイマンと周りの人たちのエピソード集。やたらと「!」を使うのはあまり好きではないです。

香港危機の700日 全記録

★★★★☆ 香港駐在の朝日新聞記者の本。熱い記録だった。

・香港のキャリアのある女性は結婚したら夫の名前を前に付けるらしい。林鄭月娥の林というのは夫の名前だということ。

・2019年のG20で習近平主席と安倍首相の会談。
https://www.mofa.go.jp/mofaj/a_o/c_m1/cn/page4_005086.html

ア 香港の最近の状況に関し,安倍総理から,引き続き「一国二制度」の下,自由で開かれた香港が繁栄していくことの重要性を指摘。

イ 安倍総理から,いかなる国であっても,自由、人権の尊重や法の支配といった国際社会の普遍的価値が保障されることの重要性を指摘。

痛快! コンピュータ学 坂村 健

★☆☆☆☆ あまり印象に残らず。

世界でもっとも強力な9のアルゴリズム ジョン・マコーミック

★★☆☆☆ 読み物過ぎていまいち感銘を受けず。MapReduce  を知っているような読む価値はないかも。

ファミコンの驚くべき発想力 松浦 健一郎 、 司 ゆき

★★☆☆☆ いろいろ工夫して限られたリソースで最大限の成果を出していくという努力が書かれている。

こんなに変わった! 日本史教科書

★★★☆☆ 歴史の調査による新事実でいろいろ教科書の内容が変わっているらしい。仁徳天皇の古墳も違うのでは、とか。足利尊氏の絵も違う、とか。

リー・クアンユー、世界を語る

★★★★☆ シンガポール建国の父。国造りにはエリート教育が重要。年齢によって選挙の票を1人2票にするアイデアなどが面白い。中国が発展しずらいのは文化的なもの、英語が覇権を取ったから。一帯一路に関してはどう考えていたのだろうか。日本についてはあまり触れられていない。

独裁の世界史

白人ナショナリズム


2021年買ったもの

買ったものを書く

感想をつけてメモしていくことにする。

キーボード Mistel MD770

モニターアーム

アフターショックス オープンコム

ペーパーホルダー

細い電源ケーブル

モニター用の細いケーブルで場所を取らなくなってすっきり。