min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

Amazonが開発者に無料で提供するコワーキングスペース「AWS Loft Tokyo」を利用する

長い出張の終わり。羽田からのフライトまではかなり時間がある。

どこか落ち着くところでパソコン開きたい。書きかけのコード仕上げてしまいたい。

 

気になる記事を発見。Amazon提供のコワーキングスペースがあるようだ。

findy-code.io

 

 

詳細

・目黒駅を出てすぐ

・一番高いタワー「MEGURO CENTRAL SQUARE」内

・17階

f:id:min117:20190218124304p:plain

・利用料金は無料

・事前予約不要

・平日10:00-18:00

・電源あり

Wi-Fiあり

・カフェあり(軽食あり。支払いはクレジットカードのみ)

 

利用のしかた

3階警備員に「AWS Loftを利用したい」と言えば警備を通過してエレベーターホールに通してくれる。

・エレベーターで17階へ

AWSアカウントが必要(12ケタのアカウントIDを控えていくとよい)

 開発者やスタートアップ(を自認する)人が対象なので。

 

さっそく行ってみる。

 

まずは目黒駅へ。出て「atre」を正面に見ながら右を向くと

f:id:min117:20190218125155j:plain

一番高い建物がある。みずほ銀行も入っているようだ。

f:id:min117:20190218125159j:plain

f:id:min117:20190218125329j:plain

目黒セントラルスクエア。3Fを目指す。

f:id:min117:20190218125409j:plain

エスカレーターか階段を使って昇り

f:id:min117:20190218125404j:plain

中2階を抜けて道なりに進むと

f:id:min117:20190218125532j:plain

受付があり、警備員がいる。
f:id:min117:20190218125825j:plain

エレベーターに乗って17階へ。平日だからか、午前来た時点では人も少なかった(エレベーターでも一人だけ)。

f:id:min117:20190218125855j:plain

17階に到着。

f:id:min117:20190218125955j:plain

エレベーターまでアレ。

f:id:min117:20190218134223j:plain

アノ文言もしっかり。

f:id:min117:20190218134231j:plain

AWS Loft の掲示のあるほうへ進む。

f:id:min117:20190218134327j:plain

 

奥に立つ警備員

f:id:min117:20190218134344j:plain

とくに何かするわけじゃないけど「セキュリティがしっかりしている」という意識づけになるし、トイレに立つときに荷物をそれほど気にしなくてよくなるのが最高。利用者もAWSアカウントで把握されているわけだから、万が一盗難があっても調べられるという安心感がある。さすがのAmazon品質。

 

コワーキングスペースの受付に到着。アジア系の外国人と思われる方(東南アジア系かな?)が、堪能な日本語で案内してくれる。さすがはグローバル企業Amazon

f:id:min117:20190218130140j:plain

ここでコワーキングスペースの利用登録のために AWS のアカウントID(12ケタ)が必要になる。今回はあらかじめ取得しておいたので、スムーズにいけた。

 

環境はとにかく最高

f:id:min117:20190218130531j:plain

良すぎて、あんま他の人に教えたくない。自分の場所にしときたい。

f:id:min117:20190218130737j:plain

Amazon製品の展示もある。

f:id:min117:20190218132437j:plain

f:id:min117:20190219215352j:plain

f:id:min117:20190219215418j:plain

 

f:id:min117:20190218130526j:plain「写真を撮るときは他のご利用者さんの顔を映らないようにご注意を」くらいしか言われない。

f:id:min117:20190218132501j:plain

会議スペースでは普通の声で「このサービスは…」なんて会話をしているけど全く気にならない。BGMがあるからか。

f:id:min117:20190218130718j:plain

f:id:min117:20190218130712j:plain

皆もくもくと作業をしてる。

f:id:min117:20190218133303j:plain

大きな声で騒いだり、関係ない会話したりなんてもちろんない。開発者同士の暗黙の了解(?)みたいなもの?これもAmazon品質なのか。

f:id:min117:20190218132654j:plain

Appleジーニアスバーとはまた全然違った客層だ。

 

 

そして、カフェが併設。素晴らしい。

f:id:min117:20190218130941j:plain

f:id:min117:20190218131109j:plain

決済はクレジットカードのみ。「Amazon Pay使えるのは社員さんだけなんです」とのこと。

f:id:min117:20190218131041j:plain

レギュラーコーヒーLargeで200円。

f:id:min117:20190218131502j:plain

f:id:min117:20190218131137j:plain

ミルクも無料でかなりお得。

f:id:min117:20190218131250j:plain

自分の顔をラテアートプリントできるようだ。

f:id:min117:20190218131147j:plain

最高すぎた。東京くるたびに寄ろう。

Python3 からGmailのSMTPを叩いてメールを送信する

Python3 からメールを送りたい。受信するとこんな感じ。

f:id:min117:20190128005507p:plain

自宅サーバでの動画圧縮の完了をメールで知らせるようにしたい。

f:id:min117:20190128005916p:plain

メール本文には、圧縮完了した日時と動画名を載せる。ついでに圧縮後の動画(自宅サーバで公開)のリンクも表示して再生できるようにする。

 

 

 


できた。

f:id:min117:20190128004753p:plain

f:id:min117:20190128004952p:plain

<注意点memo>

・20-23行目。パスワードを都度入力にしたいときはここを有効にする。

・33-43行目。Python内でシェルコマンド実行はこうやってPIPE使うらしい。

・85-88行目。Toやccはテキトーな文字列でOK。メール送信はここのアドレスを見ているのではないから。ここは単に、メールの「To」欄に表示する文字列を決めているだけ

 f:id:min117:20190128010920p:plain

 

実行はこう。環境は Python3

f:id:min117:20190127225420p:plain

$ python myGmailAuto.py

f:id:min117:20190128010330p:plain

メール送信を実行後、Python内で実行したシェルコマンド(ls)の結果も表示してくれる。

 

動画圧縮(HandBrakeCLI)と組み合わせれば、

$ for i in 動画名.ts; do echo "$i"; HandBrakeCLI -i "$i" -o "$i".mp4 -Z "AppleTV 3" && rm "$i" && python myGmailAuto.py; done

f:id:min117:20190128012849p:plain

圧縮(数時間かかる)完了時にメールで知らせてくれる。超便利。

 

<今後>

・送信:ファイル添付を実装する。

・受信:受信クライアントを実装する。

・受信:HTMLで受信したメールに含まれるポイントリンクを自動でクリックさせる。 

min117.hatenablog.com

・送信:件名や本文を引数から受け付けるようにして、cronのイベントの完了通知に使う。

・メールでなくてLINEでも通知するように改良する。

Python3 「API を叩かずに Google から画像収集をする」を試す

コマンド一発で画像を集めたい。Google検索で。

素晴らしい記事を発見。

qiita.com

 

これ。素晴らしすぎる。

f:id:min117:20190127225151p:plain

APIいらない。

 

<結論>

やりたいのはこれ。

検索文字列枚数を指定して画像検索+保存する。

 

$ python image_collector_cui.py 'トクサツガガガ ドラマ'  20

f:id:min117:20190127232630p:plain

結果はこう。

f:id:min117:20190127233707p:plain

ブラウザから見てみるとこう。

f:id:min117:20190127232715p:plain

画像一覧にするとこう。

f:id:min117:20190127231702p:plain

 

環境は Python3

f:id:min117:20190127225420p:plain

 

コードは記事そのまま写経。

$ vim image_collector_cui.py

f:id:min117:20190127225527p:plain

ただし、分かりにくいところや自分がつまづいたところだけは シャープ3つでコメントつけた。

f:id:min117:20190127232119p:plain

f:id:min117:20190127232148p:plain

<間違ったところmemo>

・7行目は requests108行目は request(sなし

 → 108行目はsつけてもエラーが出ないがダウンロードが0件になってしまう

・14行目は「57.0」にしといたほうがよい?

・31行目のカッコとじ

・93行目のdata を date にしない。

・94行目のexistの綴り注意(exit、existsは誤り)

 

<今後試すこと>

画像サイズ「大」にした検索(アドバンストサーチ)での画像保存

・通常の検索(文字検索)結果の取得

サジェストでの検索結果の取得

 

qiita.com

github.com

github.com

https://raw.githubusercontent.com/nazboost/image-collector/master/image_collector_cui.py

 

f:id:min117:20190128000216p:plain

f:id:min117:20190128000223p:plain

 

 

 

関西国際空港・伊丹空港の利用がトクになる KIX-ITM CARD を申し込んでみる

大阪方面に飛ぶことが増えた。関西国際空港伊丹空港大阪国際空港)には、KIX-ITMカード(キックスカード)なるものがあるらしい。

www.kansai-airport.or.jp

どうも、本当にトクになるようだ。

 

「仮にクレジットカードだとすれば、ハピタス経由でポイントにするかな」

と、検索するものの「見つかりませんでした」となった。

f:id:min117:20190120220752p:plain

その買うを、もっとハッピーに。|ハピタス

 

どうやらKIXカードはクレジットカードではないらしい。

 

調べたら、空港が発行している単なる会員カードだっだ。

sola-trip.com

 

しかし特典はいろいろあるようで。

jimitabi.com

 

狙い目はこれ。移動がトクになる。空港から大阪市内までの特急が少し安くなる。地味だがこういう金額って(あとから出費見直すと)結構かかっているので。

f:id:min117:20190120221155p:plain

 

さらに良さそうなのがこれ。空港内ネカフェが半額になる。これはよい。

f:id:min117:20190120221250p:plain

tabihack.jp

f:id:min117:20190120224854p:plain

 

しかもフライトのポイントはマイルに交換できるとある。

nomad-saving.com

 

正直、トクばかりのものってウラがありそうであまり信頼していない。大阪の空港に限って何でこんなに太っ腹なサービスをするのか?

 ・大阪、関西人の気質だから。

 ・関西国際空港の利用を促してハコモノ建設を正当化するため

どっちもだろうが、後者が大きいだろう。

 

だいたいが土地を埋め立てて空港にしようなんてそもそも無理がありすぎる。地震があったらすぐ液状化してつかものにならなくなる。

 

と思ってたら、地震どころか台風が来ただけでコレ。

news.livedoor.com

「2週間で復旧」なんて美談にしているがそもそも台風程度で空港が浸水したり孤立する時点でアウト。作ってること自体に無理がある。

f:id:min117:20190120222524p:plain

そんな関西国際空港だから、使ってもらわないとハコモノ戦犯たちには都合が悪いのだろう。だからこんなに異常に(利用者がトクになるだけの)カードができあがるわけだ。

 

利用者目線のサービスがこんな理由でしか出てこないのは資本主義の皮肉だと思うが、裏を返せばこれは純粋にトクしかないサービスと見てよいだろう。使わせてもらう。

www.kansai-airport.or.jp

 

登録画面に進む。 

f:id:min117:20190120213545p:plain

 

利用規約はあとでゆっくり読む。

f:id:min117:20190120213719p:plain

 

各種情報を登録。受付番号が発行される。

注意点として

 ・受付番号は、発行後90日しか有効期限がない。

 ・カードは受け取りに行く必要がある。

 ・受付番号、免許証が必要。

 ・本人の来店が必要。

f:id:min117:20190120223912p:plain

どれも問題なし。次のフライトついでに取りに行ってみる。

 

 

bash 仮想通貨マイニングウイルスに現実に仕込まれたソースからシェルのノウハウを学ぶ

1月に入って、ランサムウェア「GandCrab」が添付されたメールが大量に出回っているらしい。

f:id:min117:20190119145451p:plain

japan.zdnet.com

 

復元ツールは出ているみたいだけど

japan.zdnet.com

ランサムウェアは影響が大きいので感染はゴメンこうむりたい。

 

なんて情報をあさっていたら、実際の攻撃に使われていたらしいソースを発見。GandCrabのものではなく仮想通貨をマイニングさせるためのウイルスのコードだったが、あまりにも美しいコードなので(ウイルスに関する部分を無視して仕事に使えそうなところだけ採取して使ってみる。

 

 

 

<採取部分>

OSを自動判定ubuntu,debian,centos6 or 7,redhat,それ以外か判定)する部分

・デバイスパフォーマンスを最大化(hugepage等)する部分

・サービスの自動起動を仕込む(shからcrontabを書き込む)部分

 

<ソース>

まずはOSの自動判定部分(ディストリビューション判定)。

f:id:min117:20190119144657p:plain

※ 「日本語の行」と「echoでの表示行」はこのコードの作者(攻撃者)ではなく、自分(このブログ所有者)自身が読みやすくするためにつけた。実際には全て英語で書かれ、一切のechoがなく処理が進む(ウイルスなんだから当然だけど)。

15行目

 ・tr で 大文字小文字変換をサラっとやってる。

 ・17行目のif文を正確にするためだろう(仕事が丁寧だなぁ)

17行目

 ・ここのif文はカッコ(testコマンド)が一つだけ。

 ・thenは同じ行に書く人なのね。

20行目

 ・ここのif文はカッコ(testコマンド)を2つ重ねてる。

 ・17行目とあえて使い分けている。相当慣れた人が書いているとみた。

 ・このへんのノウハウがモロに詰まっている。

qiita.com

 f:id:min117:20190119150424p:plain

39行目

 ・/etc/ の下をワンライナーでまさぐるこのテクニック。ニクい。素晴らしい。

ls -d /etc/[A-Za-z]*[_-][rv]e[lr]*

47行目

 ・ここはテストコマンドにifすらつけてない。

 ・17行目とも20行目とも違う(違う人間が手分けしてコード書いてるのか?)

59行目

 ・ip -4 route の結果からデバイス名を得るとは。

hname=`ip -4 route get 114.114.114.114 | awk '{print $7}' | tr -d '\n'`

 ・どのLinuxでも「まず使えるだろう」という汎用性を持たせている。

 ・どのディストリビューションにも詳しい人間が作っている。

 

 続いては、サービス登録するための関数を作成し、判定したOS(ディストリビューション)に合わせてデバイスのパフォーマンス(仮想通貨を掘るためのパワー)を最大化させている部分。

f:id:min117:20190119144836p:plain

※ シャープ(イゲタ)が1つの行は、実際の処理が走らないよう、ブロク所有者がコメントアウトしただけで、実際には全て実行できる状態(コメントなし)だった。

73、75、77行目

 ・/etc/security/limits.conf ファイルを書いてパフォーマンスを上げている。

 ・hugepageも設定してる(こんな方法があるのか…)。

98行目

 ・$distro に設定された値を全て小文字に変換するのに ${distro,,} としている。変数操作のテクニック。

f:id:min117:20190119165544p:plain

f:id:min117:20190119144925p:plain

123、124行目

 ・nohup でバックグラウンド実行させるスゴさ。

 ・仮想通貨をマイニングさせ続けるために「仕込む」前提で書いている。

 ・悪いことをする人間は本当に貪欲だ。目的に対して純粋とも言える。

qiita.com

www.codereading.com

 f:id:min117:20190119170459p:plain

 f:id:min117:20190119173812p:plain

ハッカー(って言葉はそれとして)のホワイトとブラックは紙一重とはよく言ったもので。全部業務で使えるノウハウの塊だった。

 

 

電子入札システムに必要なJRE8の(Oracleによる)サポートが2019年1月で切れるらしい → OpenJDKについて調べる

f:id:min117:20190119134316p:plain

 

スラドを見ていたら気になる記事。

developers.srad.jp

Oracleが(これまでフリーで提供していたJavaの実行環境を)有償にするという話らしい。Oracleってこういうことを平気でする。仕事でも以前煮え湯を飲まされた。ライセンス形態を突然変えて有償にしてくれたおかげで、プロジェクトごとの単価がモロに上がって営業が大慌て。Oracleから担当者を呼んで話をきいたことがある(2015年頃だったはず)。

 

そこに目をつけたAmazonが、新たに独自のJava実行環境(OpenJDKを核にしたAmazon Corretto)を発表した、という流れのようだ。

developers.srad.jp

 

今回の(Oracleによる)Java有償化は、特に電子入札の界隈で問題になっているみたい。

f:id:min117:20190119134505p:plain

www.pref.miyagi.jp

入札に利用するICカード(?)まわりをJavaで開発していたけど、その開発環境のサポートが有償になるという話。

 

電子入札と言えば、例えば自治体が民間から何かの製品を調達したり、民間に発注(工事とか?)するときに、公募をかけて、それに対しての入札を(従来は紙でしていたところ)電子的にできるようにしたシステム、という認識でいいのだろう。

f:id:min117:20190119135634p:plain

 

それが使えないと、紙での入札になる(逆戻り)してしまうと。

tech.nikkeibp.co.jp

自治体ではモロな影響だろう。企業でさえ大変だったんだから、自治体だと巨額の予算措置(?)が発生するのか。

 

この記事が詳しそうだが、有償なのでみられない。

tech.nikkeibp.co.jp

 

こんなモロな案内も発見。

http://www.cals.jacic.or.jp/coreconso/inadvance/data/20181129_oshirase.pdf

http://www.cals.jacic.or.jp/coreconso/inadvance/data/20181129_oshirase.pdf

 提供元が「日本建設情報センター」とあり、建設関係の入札がとくに影響を受けるみたいだけど、それ以外に総務省電子政府窓口にも影響するっぽい。

ityarou.com

 

代替案は「OpenJDK」らしい。コミュニティベースのJavaだけど、大手(IBMMicrosoftAmazon)によるサポートがある(つまり製品として手に入る)ようだ。

qiita.com

自治からしたら、

 1.突然有償にしたOracleにはカネは払いたくない(のか?)

 2.けど、誰が責任者か分からない「コミュニティ」ベースのOpenJDKには踏み切れない

 3.ので、大手(IBMほか)が製品として(無償で?)サポートすると謳っているJDKにしたい(といってもベースはあくまでコミュニティ提供のOpenJDKで、それに大手のコロモをつけただけだが)

といったところか。

 

一見すると2と3には(プログラム自体に)違いがなさそうだけど、自治体からすれば「大手によるサポート(動かない時の保証)がついてくる3.がとても魅力的」という話のように見える。

 

 

 

 

ところでJavaは(世界的には)人気の言語ランキング1位だったはず。

japan.zdnet.com

f:id:min117:20190119141930p:plain

しかし日本だけ「行政機関が脱Java加速」なんて流れになってるとすると、日本だけランキングが変わったりして。Javaはじめようかと思ってたけどしばらく待つかな。ちょっと注意してみていくことにする。

bash ファイル移動の進捗状況をモニタリング(forループでlsして5秒毎にclear)する簡易スクリプト

だいぶ前に録画したファイルを、別のハードディスクに移動する。

時間がかかるので、移動先のディスクに今時点で何MB移動したかモニタリングしてたい。

 

bashでサッと書いてみる。5回分表示したら画面クリア(clear)することにする。途中の割り算はお遊び(bashの動作確認)なので無視でOK。

 

$ for i in `seq 1 100`; do echo "$i"; ls -shar | egrep 'わるいや'; echo `date`; echo -n "$i"' / 2 = '; echo $*1 ; echo -n "$i"' % 2 = '; echo $*2; echo '---------------------'; if [[ $*3 == 0 ]]; then sleep 2; clear; fi; sleep 3; done

 

こんな感じ。

f:id:min117:20190119124756p:plain

 

検索文字列を入力させて動作するスクリプトにしちゃう。

$ vim mycnt.sh

f:id:min117:20190119131335p:plain

 

実行。

f:id:min117:20190119131306p:plain

よし。

 

エイリアス alias にも入れておくか。シングルクオートのエスケーブだけ注意必要だけど。  

 

 

 

*1: $i / 2

*2: $i % 2

*3: $i % 5