それでも気分は高専生

元高専生が自分のやってきたことを記事として残すためのてきとーなブログ

IQ1が不労所得で暮らしたかった...

本記事はIQ1アドベントカレンダー2019の13日目の記事となります。

adventar.org

注意 一部の不労所得を夢見る人にはショッキングな内容かもしれません。

はじめに

「ふろうしょとく」ってすごくいい響きだと思いませんか?

僕はIQ1なので言葉の響きにのこのこと釣られてしまいました...

来年から社会に放出されるIQ1の労働不適合者として、そろそろ真剣に不労所得について考えてみないといけないな ('・ω・') と思った次第です。

ふろうしょとくとは?

文字通り労働せずに得られる所得のことを指します。

Wikipediaによれば

とたくさんの種類があるようですが、IQが1なので把握しきれません。

不労所得 - Wikipedia

種類が多すぎるので、今回は株式の配当に絞っていきます。

選んだ理由としては、FXや家賃収入、株式売買益だとメンテナンや売買操作など、なにかしらの作業(=労働)をしなければいけないからです。

配当?

配当金は各会社が大体半年に一回程度、株主に対して与える餌です(米国企業だと3ヶ月に1回程度もらえるらしいですが)。

(中間)決算時に利益の一部をばらまいている餅投げのようなイベントなのですが、株主はこれを楽しみに人生を過ごしておられるようです。

ちなみに大企業の経営陣は役員報酬などの給与より、保有株式からの配当金が稼ぎのメインだという話もあります。IQ1なのでとてもエンヴィーです。

最新予想!「配当金で稼ぐ社長」トップ500 | 企業ランキング | 東洋経済オンライン | 経済ニュースの新基準

配当金は取得にかかる税金は約20%で固定されていて、額が大きくなってくると累進課税である給与所得よりも大変有利な収入源となります。

r > g が加速しますね。にゃーん🐈

証券税制早わかり 株式の税金 | みずほ証券

No.2260 所得税の税率|所得税|国税庁

このように株式の配当金は大変魅力的な収入源であるわけですよね。

でもお高いんでしょう?

日本では単元株(現在100株)というものが決まっており、この単元株未満で売買することができません...従って、株価が1000円の株を買おうと思ったら100株である10万円が最低購入価格となるわけです。

(ちなみに米国株は1株単位で買えるので、日本株よりは資金的なハードルが低そうです)

株価は企業によってばらつきが激しく、1株数十円のものから数万円のものまでたくさんあります。IQ1には選択肢が多い...

配当金で暮らすには?

では実際に「働かずに暮らす」を目的とした場合、どの程度の投資資金が必要となるのでしょうか?

配当利回り

まずは一年間で株価の何%が配当金として得られるかを示す配当利回りを見ていきましょう。

2019年12月13日時点で日本経済新聞が発表している日経平均の予想配当利回りは1.99%でした。

定期預金の金利と比べると非常に魅力的な数値ですね?IQ1なのですぐに買っちゃいそう...

国内株式指標 :株式 :マーケット :日経電子版

定期預金の金利が高い銀行ランキング![2019年・冬]定期預金金利がメガバンクの25倍のじぶん銀行など、「冬のボーナス」は高金利でお得な銀行に預けよう!|ネット銀行比較|ザイ・オンライン

ちなみに配当利回りのレンジも非常に広く、0%から10%を超えるものまで様々です。

ここで「高配当株」でggるとよく出てくるオリックスを代表してみていきましょう。

Yahoo!ファイナンスによれば2019年12月13日時点でのオリックスの予想配当利回りは4.12%でした。

今後の計算はそこから税金を引いた3.3%で計算します。

いくら必要?

ではいよいよ本題です。

IQ1が不労所得で快適に暮らせるにはいくらの投資元本が必要か計算してみましょう。

ついでにちょっと節約すれば投資に回せそうな額(月5万円と月10万円の場合)を貯めていった場合、どのくらい時間がかかるかも計算してみます。

(IQ1なので計算がガバガバですが、お許しくださいボルガ博士)

年間1000万円の場合

配当金で暮らす!大金持ち!ベンツ!タワマン!港区男子

やはり夢は大きく年間1000万円くらいは欲しいですよね?ではいくら必要なのか?...

1000万円 / 0.033 = 30.3031億円!!

それだけの額を貯めるにはどれだけかかるのか...

  • 月5万円貯めると606061ヶ月( 5050年 ちょっと)
  • 月10万円貯めると30304ヶ月( 2525年 ちょっと)

......。

年間250万円の場合

大卒の新卒平均年収は250万円くらいだそうです。

新卒の平均年収はどれくらいか|初任給・手取り額についても紹介 | キャリアパーク[就活]

贅沢はしなくていいからせめて平均的な新卒くらいの生活をIQ1で享受したいですよね?ではいくら必要なのか?...

250万円 / 0.033 = 7576万円!!

それだけの額を貯めるにはどれだけかかるのか...

  • 月5万円貯めると1516ヶ月( 126年 ちょっと)
  • 月10万円貯めると758ヶ月( 63年 ちょっと)

まあ昇給もあると思うし?老人になるころにはデキナクハナインジャナイカナー?

年間120万円の場合

月10万円の生活(=年間120万円)ではどうでしょう?

田舎に引っ越して頑張って節約すれば生活できそうな額ですよね?ではいくら必要なのか?...

120万円 / 0.033 = 3637万円!!

それだけの額を貯めるにはどれだけかかるのか...

  • 月5万円貯めると728ヶ月( 60年 ちょっと)
  • 月10万円貯めると364ヶ月( 30年 ちょっと)

意外と時間がかかっちゃうね...

でも怖い!リスクは?

株式はリスク資産と言われます。

それは業績などに伴い

  • 株価の下落
  • 配当金の減額
  • 企業の倒産 (あるいは上場廃止)
  • 証券会社の倒産

といった懸念があるからですね。

リーマンショック時には世界株式時価総額の約60%が失われたともいわれています。

もちろん逆の動きもありますが、IQ1の僕には十分大きい恐怖です。

ちなみに証券会社の倒産に関しては「会社と顧客の資産は別管理」がされること、それでも返還が難しい場合は「上限1000万円までの補償」が受けられるので、無防備というわけではないです。

証券会社が倒産した場合、預けている証券やお金はどうなるの?|投資の時間|日本証券業協会

しかしバブル崩壊時には当時日本の証券会社四天王の一角であった山一證券が経営破綻していますので、無視できるリスクではないですね。

おわりに

みなさん如何でしたか?

IQ1が生き残るために不労所得を得ようと思案した結果がこのざまです。

不労所得で生活するには数千万円のお金を株式という非常にリスキーな資産に投入しなければいけないという現実を突きつけられました。

もちろん増配当や複利効果といったものを考えるともう少し簡単に達成できるかもしれませんが、それらは不確実なものですし、なにより ただの皮算用 です。

やはり自分の労働価値を上げ、お賃金を上げていくのがQoLを上げていくには一番だと痛感すると同時に自分の人的資本の大きさというものに気づかされました。

DMM.comグループの亀山会長のお言葉がぐっさり刺さる思いです。

r25.jp

不労所得で暮らすというよりは、余ったお金で不労所得という楽しみを作るぐらいの感覚のほうがいいかもしれませんね。

i3-wmのすゝめ

本記事はDMMグループ '20卒内定者 Advent Calendar 2019 - Adventar6日目の記事となります.

本当は研究で使っている技術を軽くまとめて記事にしようと思ったのですが,研究で使ってる環境がぶっ壊れてしまい,それどころじゃなくなったので急遽i3-wmの紹介をします! (また別日にやります...)

執筆開始時点で12/06 22:37...記事の作成が間に合うのか...!?

i3-wmとは?

i3-wm(あいすりーうぃんどうまねーじゃ)はX上で動作するタイル型のウィンドウマネージャです.

macOSWindowsのデフォルトのものの他にも,LinuxでもGNOMEKDEXfce,MATEといった多くのデスクトップ環境ではフロート型のウィンドウマネージャを採用しています.

こんな感じのいろんなサイズのウィンドウを重ねたり自由に配置できるスタイルですね.

f:id:takahiro0914:20191206224616p:plain

i3-wm上でもフローティングスタイルにすることもでき,丁度こんな感じになります.

一方でタイル型ってどんな感じ?と思われる方も多いでしょう.

f:id:takahiro0914:20191206225044p:plain

こんな感じで画面をウィンドウと呼ばれる区間に分割して表示できるんですよ!

格好いいでしょう?

小さいウィンドウがやだ!というときはタブにまとめたり,ウィンドウを増やすなど様々なやり方があります.

i3-wmの動きはhttps://youtu.be/BlH66xj5JXMで見られますよ!

(クッキークリッカーがかなり重い...i3-wmは軽量だよ!)

具体的にどういうところがお好き?

  • タイル型でキー操作のみなのでマウスに手を伸ばす煩わしさから開放される!
  • カスタマイズで操作をvimに寄せられるのでホームポジションから移動しなくていい!(ウィンドウキー+hjklでウィンドウ間の移動ができる)
  • いつも画面をいっぱいいっぱい有効活用が可能!
  • ただのウィンドウマネージャなので,比較的軽量!

ちょっとアレなところ

  • デスクトップ環境でなく,ウィンドウマネージャなので単体での機能が貧弱
  • デフォルトでメニューバーとかが無い (dmenuからアプリ名で検索して起動とかになる)
  • 慣れるまで使いづらいかも...
  • アニメーションとか,ヴィジュアルにこだわる人には向いていないかも...

でも導入コストがお高いんでしょう?

i3-wmを既存のLinuxにインストールすることもできますが,Manjaro Linuxにデフォルトでi3-wmが導入されているManjaro-i3というものがあります.

manjaro.org

こちらを使えば最初から,

  • いい感じに設定済みで
  • いい感じに見た目が整っていて
  • いい感じにツールがインストール済み

のi3-wmが導入されています.

ちなみに僕のメインPCもManjaro-i3が動いています.

非常に快適で良き良き...

総括

一度慣れると他のスタイルが触れなくなるほどの驚異の中毒性を持つ,タイル型ウィンドウマネージャ...そのひとつであるi3-wmを紹介させていただきました.

今ではブラウジング以外でトラックパッドを触ることもほとんどなくなり,日常生活のストレスがかなり軽減されました(^ω^).

そんな効能も期待できるi3-wm,是非使ってみてはいかがでしょうか?

もしi3-wmが好きな方,興味が在る方がいらっしゃいましたら是非語り合いましょう.

雑な記事になってしまいましたが,読んでいただきありがとうございます.

※ 本記事執筆中(23:41時点)にノートPCの充電が切れてしまい,ノー下書き状態でPCが落ちるという災難に遭いましたが,はてなブログさんの優秀な自動バックアップ機構のおかげで記事を消失させずに済みました...本当にありがとうございます!!

今更ながらの自己紹介

本記事はDMMグループ '20卒内定者アドベントカレンダー1日目の記事です.

DMMグループ '20卒内定者 Advent Calendar 2019 - Adventar

※ 一日目から記事の公開が遅れたりgdgdで申し訳ないっす >_<;

もうアドカレ名がネタバレですが,僕は2020年度からDMM.comグループで労働者デビューします!

2年もの間,てきとうなことを気まぐれに書いてきた本ブログですが,そういえば自己紹介記事とか書いていなかったなぁ...と思いながら,それも兼ねてここで改めて2019年現在の自己紹介しようかなあと思い立ったので書いていきます.

僕の自己紹介だけなら誰得記事になってしまうので,加えて人生で良かったお店ベスト5でも紹介します.たぶん...

僕について

属性: 男,中肉中背,わすれっぽい,元高専生,元大学院生(予定)

趣味: Amazarashi (いいぞぉ!) ,スキー,プログラミング,読書,FGO,あと最近Cookie Clickerにハマってます

宗派: vim,i3-wm

成り立ち

僕は生まれてこの方24年間ずっと片田舎の徳島県民をやっていて,

  • 生徒の鳴らす爆竹が時報代わりの中学校時代
  • プロコンなどを経て多少プログラミングができることに天狗になっていた高専時代
  • 学会や就活で強い学生を知って「世間怖い,にゃーん(ΦωΦ)」となっていた大学時代

を経て,お賃金をもらいながら働く園児NEERになろうとしています.

趣味

趣味ですが,まあこの手の学生の定番(?)であるプログラミングとかエディタ改造とかは置いておいて,スキーをしたりAmazarashiの曲を聞いたり,読書をしたりてきとうにゲームをしていたりします.

Amazarashiはいいですよ...いい曲ばかりですが,特に「さよならごっこ」「空っぽの空に潰される」「風に流離い」「空洞空洞」あたりは特にお気に入りです.

センチメンタルな歌詞と言葉のセンス,曲調,歌声の全てが激えもなんですよ (〜ω〜)

あとDMM.comのCD/DVDレンタルサービスでは,蟹工船のインスパイアアルバムがレンタルできます!(他のレンタルサービスではもう置いてないんですよ...)

このアルバムに収録されているインディーズ時代の曲「闇の中 〜ゆきてかへらぬ〜」が激えもすぎて,Aamazarashiがハマる人なら是非とも聴いて欲しいです.

www.dmm.com

あとFGOもやってます.

まったり微課金勢ですが,一応サービス開始当初からやっているのでサーヴァントの保有率とかもまあそこそこです.

【FGO】サーヴァント所持率チェッカー - GameWith

もしフレンドになりたい!という殊勝な方がいらっしゃいましたら,TwitterのDMで宜しくおねがいします. m(-_-)m

へたれ@駆け出しエンジニア予定 (@OriishiTakahiro) | Twitter

内定承諾までのみちのり

会社との馴れ初めはインターンシップでした.

以前から艦これやFANZAという形でお世話になっていたので存在は知っていたのですが,正直何をしている会社なのかよく分かっていませんでした.

当時は漠然と「就活に向けて何かインターンにいかなきゃなあ」「技術的に面白いことがしたいな」と考えていて,偶然見つけたDMMのインターンに恐れ多くも参加させていただきました.

インターンシップの詳細については以下の記事を参照ください.

inside.dmm.com

インターンシップ参加後に本選考に進み,無事内定をいただきました.

内定承諾先としてDMM.comを選んだ理由は

  • 松本CTOが参入し,会社の組織構造や向かう方向が大きな変化をしているフェイズにある
  • ここまで事業分野が広い会社はなかなかない
  • 面白い課題と高い技術力がたくさんありそう

といったところです.

今後のやっていき

エンジニアとして,バックエンドからクラウドインフラにかけての技術力を磨き上げていきたいと思っています.

また組織や事業におけるエンジニアの在り方や他業種との連携など,ちょっと組織論じみたところにも興味がありますので,そちらもボチボチやっていければと考えています.

大した人間ではないですが...技術や組織論に興味がある方や従事されている方は一緒にお話できれば嬉しいです!!

おまけ - オススメの店 -

自分が人生で訪れた中で良かった店ベスト5を紹介します!

5. 堂の浦 (徳島県徳島市)

堂の浦 駅前店 (らーめん) - 徳島/ラーメン [食べログ]

徳島市内では有名な鯛塩ラーメンのお店です.

魚介系の出汁がしっかり効いていて風味豊かなんですよね...そしてラーメンを食べた後はスープにご飯を入れて食べる...これがまた美味しいんです.

4. フルハウス (愛知県豊橋市)

フルハウス (FULLHOUSE) (豊橋/カフェ) - Retty

愛知県豊橋市にある隠れ家的なカフェで,チンキカレーと食後のコーヒーがすごく美味しい....

まだ一度しか行ったことがないので,また別のメニューも食べに行きたいところ.

3. びんび屋 (徳島県鳴門市)

びんび家 (びんびや) - 鳴門市その他/魚介料理・海鮮料理 [食べログ]

徳島県内では有名な海鮮料理屋です.

地元の美味しい海鮮が楽しめます.

鳴門わかめで作った味噌汁もすごく美味しい!

2. うちの海 (徳島県鳴門市)

かき焼き食べ放題・海鮮バーベキューなら鳴門市鳴門町【かき焼き うちの海】

徳島県にある牡蠣食べ放題が楽しめるところです.

少し辺鄙なところにあり,自動車がないと行くのが難しいところですが...バケツ一杯の牡蠣を鉄板の上に広げ焼いて食べるのが非常に良い経験になりますし,牡蠣もすごく美味しいです.

1. 酒酔 醍醐 (石川県金沢市)

酒酔 醍醐 (シュスイ ダイゴ) - 北鉄金沢/居酒屋 [食べログ]

石川県金沢市に在る日本酒バーです.

会社の先輩に連れて行ってもらったのですが,多岐にわたる日本酒や料理のどれもが非常に美味しかったです.

僕はこれがきっかけで日本酒にハマりました.

以上,僕の自己紹介と人生で行って良かったお店の紹介でした.

これからもどうぞよろしくおねがいします!!

Git Submoduleを使うと,.gitがディレクトリじゃなくなる

やっていたこと

あるアプリケーションをDockerで動くようにDockerfile,およびローカル実行のためのdocker-compose.ymlを書いていた.

ビルド時にアプリケーションをイメージに含めたいので,サブディレクトリにアプリケーションのリポジトリをサブモジュールとして置いた.

実行時はこんな手順で手軽にできればいいなと思った.

$ git clone git@hogehoge:foobar.com/docker-repo
$ git submodule init
$ git submodule update
$ docker-compose build
$ docker-compose up

問題

アプリケーションが内部でgitを使っていたらしく,fatal: Not a git repository: ../../.git/modules/web-app/appとのお叱りを頂いた.

なぜだろうと思い,.gitディレクトリへ移動しようとすると...

cd: not a directory: .git

な,なんだってーーーッ!?

$ cat .git
gitdir: ../../.git/modules/web-app/app

結論

Git Submoduleを使うと,サブモジュールとして埋め込まれたディレクトリ配下の.gitは親のディレクトリの.gitへの参照を書いたやつに化けるっぽいです.

サブモジュールを諦めて,git clone.gitignoreの合わせ技にしました.

某経歴詐称は何故バレてしまったのかについての雑な調査と考察

TL;DR

多分これ

  • 検証しやすい (その項目ついて知識や調査方法をもつ人間の母数が多かった)
  • 正確に把握せず、周辺知識を混同していたまま嘘をついた

興味を持った理由

研究の進捗がない現実から逃げたかった、自分が嘘つくのが下手なので「今回の話を一般化すると何が悪かったんだろうねー」というのが気になった。

事件の概要

何が起きたかについては言わずもがな、まとめ記事を参照されたし。

enbeyond.com

何故バレたのか?

先に貼ったURLの「塚本廉 経歴・プロフィール詐称判明の経緯」において、公開されているスレから察するに

  • 東大の卒論論文集(?)に該当著者がいない
  • 高専経由でのルートであれば年数が合わない

といった点に疑問を持たれたのが塚本氏の輝かしい経歴崩壊のきっかけになってしまったのだと思われる。

この手の質問をしてくる輩は大体理論武装の理詰めで攻めることが多く、塚本氏はそれに対抗するだけの論理的に筋が通った嘘を用意できていなかったのだろう。

公衆の面前で平謝りか、人に暴露されるかといった選択肢に迫られたのだと思う。

自業自得とはいえ、心中お察しします...

何故疑問を持たれたのか?

東大の卒論論文集(?)に該当著者がいない

まず一つ目の指摘についてはどうか。

東大の学生人数ってかなり多いので、それこそ「簾」という名前の一人や二人ぐらい探せなかったのだろうか。

(或いは「親からつけてもらった名前が嫌で改名したやで」とでも言えばよかったのに....)

これくらいの方便、意識高い系カリスマとしてはいくらでも思いついたと思う、しかし想定と準備が足りなかったのだろう。

東大の図書館FAQによれば、卒業生や在学生、教員であれば卒業生のリストを見ることも可能であるし、学位論文も学科ごとの差異はあれど閲覧可能である。

opac.dl.itc.u-tokyo.ac.jp

そう考えると、この点に関しての敗因はおそらく次の通りになる。

  • そもそも卒論を残す(教員でなくても閲覧できる)大学のシステムを知らなった
  • 論文集を閲覧できる人 (攻撃できる人) の母数が多かった

高専経由でのルートであれば年数が合わない

次に二つ目の指摘について。

高専→日立→東大→大学院(24歳なう)」はおかしいとの指摘である。

高専(工業高等専門学校)は中学卒業後、高校と並ぶ進路として存在し、5年間かけて工業を中心に学ぶ学校である。

計算してみると

  • 高専 (15 ~ 20歳)
  • 日立 (20 ~ 21歳)
  • 東大 (21 ~ 25歳)
  • 大学院 (25歳 ~ )

となってしまい、確かに辻褄が合わない。

ちなみに編入学や3年次で大学受験してからの東大という道もあり得えるが、経歴からして一度日立製作所経由になっているため、このパターンもあり得ない。

しかし、「あのカリスマ塚本氏がこのようなミスを犯すだろうか?

私はその疑問を胸に、塚本氏の過去の記事を調べていくこととした。

本当に高専について言っているのか?

まず次の記事を読んでほしい。

tasukake.weban.jp

高専についての基礎知識があれば、塚本氏が高専について次のように言及していることに疑問が浮かぶはずだ。

  • 日立製作所直営の学校
  • 学費や寮費等一切お金がかからない
  • 赤点を2回連続でとると強制退学
  • 退学するとそれまでにもらっていたお金は一括で全額返済
  • 技能オリンピックというものにも出場

日立製作所直営の高専なんて聞いたことがないし、安いとはいえ学費や寮費もとられる、普通の大学と同様に留年や留年の限度年数はあるものの即退学などはない、技能オリンピックもなんとなく聞いたことはあるもののさして有名でもない。

流石に穴開けすぎてるやろ!平成28年度時点で全国に計57校(高等専門学校(高専)について:文部科学省)ある高専について、ここまでガバガバに嘘をつくのは流石に無謀だと考えた。

ひょっとして日専校?

ちなみに株式会社日立製作所 日立工業専修学校 (科学技術学園高等学校日立)、通称「日専校」というものがある。

www.hitachi.co.jp

なんとこの学校

  • 日立製作所直営
  • 工業技術が学べる
  • 学費や寮費が基本無料
  • 技能オリンピックで毎年のように入賞者を排出

なのである。

まさに「塚本氏が語る高専そのもの」ではないか?

更に加えると、日専校は3年制(その上に1年の専修科)であり、これで年齢と計算を合わせると

  • 日専校 (15 ~ 18歳)
  • 日立 (18 ~ 19歳)
  • 東大 (19 ~ 23歳)
  • 大学院 (23歳 ~ )

また専修科を含めてもギリギリ24歳在学はあり得る話である。

正直「高専」と「日専校」はややこしいかもしれないが、あまりに話が違いすぎるので致命的だ...

  • 赤点を2回連続でとると強制退学
  • 退学するとそれまでにもらっていたお金は一括で全額返済

このあたりはまた別の学校と混同させている節があるのではないかと思うが、調べるの疲れた...

以上より、二つ目の指摘「高専経由でのルートであれば年数が合わない」については

  • 高専と日専校がややこしすぎて混同した

が原因だと考えた。

総括

本記事では塚本氏がなぜ学歴詐称バレしてしまったのかについて、まとめサイト上に乗っている質問者の指摘事項をもとに調査を行い、何が綻びの原因となったのかについての考察を行った。

数年間、意識高い系学生の心を惹きつけてやまなった塚本氏、多くの講演やパネルディスカッションをこなしてきた彼の能力は疑問にすべきではないだろう。

その彼がなぜこのような綻びを作ってしまったかについては、私は以下のように考えた。

  • そもそも卒論を残す(教員でなくても閲覧できる)大学のシステムを知らなった
  • 論文集を閲覧できる人 (攻撃できる人) の母数が多かった
  • 高専と日専校がややこしすぎて混同した

これを一般化すると、長期にわたる嘘をつくには「周辺知識への十分な理解」「調査、指摘される可能性」「自分がきちんと理解し、混同せず使い分けできているか」といった要素について注意しなければ、塚本氏の二の舞になるぞということである。

あの塚本氏にすらそれができなかったのだ...やはり我々人類には嘘は早すぎた。

紗倉まな氏のように嘘をつかず、素直に生きていきたいものである...

(研究頑張ります...)

Fargateでタスク定義実行時,ECRからイメージの取得に失敗

問題

  • タスク定義を走らせると状態が PENDING → STOPPED
  • CloudWatchにもログが貯まっていない
  • エラーメッセージは
    CannotPullContainerError: Error response from daemon: Get <Repository URL>: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

原因

いつも通りGitHub Issueの紹介記事になっちゃうのですが,原因はこれでした.

Fargate: CannotPullContainer located on ECS registry · Issue #1128 · aws/amazon-ecs-agent · GitHub

ECSはインターネットアクセス経由でイメージを取得するのでFargate側からインターネットへアクセスできるようにする 必要がある. - Public IPを使うなら0.0.0.0/0へのアウトバウンドをインターネットゲートウェイへルーティングしているか,
- Public IPを使わないなら0.0.0.0/0をNATゲートウェイ/インスタンスへルーティングさしているか,
- Security Groupが0.0.0.0/0へのアウトバウンドを許可しているか,
確認して.

とのこと.

結果

Public IPの自動割り当てを許可したら走りました.

Ansible-containerのinstallでつまづく

TL;DR

githubのソースからインストール

はじめに

単一イメージで闇鍋状態の環境を複数のDockerコンテナに分割したい.

すでにAnsibleのPlaybookはあるのでDockerfileへの書き起こしは半分単純労働だが,どうせならPlaybookを使いまわしたい.

Welcome to ansible-container! — Ansible Container Documentation

ansible-containerというツールを見つけたので,これを使おうと決心.

インストールの過程

いろんな記事に載っているが, pip install ansible-containerでいいよとの事なので頑張ってみる

Collecting ansible-container
  Downloading https://files.pythonhosted.org/packages/bc/2a/b1252de3931173d26a30fc965be33c9cc0044cf7b23ce4c707f55d86830c/ansible-container-0.9.2.tar.gz (1.4MB)
    100% |████████████████████████████████| 1.4MB 648kB/s
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/tmp/pip-install-pctywm/ansible-container/setup.py", line 10, in <module>
        from pip.req import parse_requirements
    ImportError: No module named req

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/tmp/pip-install-pctywm/ansible-container/

github.com

pipのバージョン下げたり色々してるけど,gitソースから持って来ればいいのね.

$ git clone https://github.com/ansible/ansible-container.git
$ cd ansible-container
$ sudo pip install -e .
...
ansible-container 0.9.3rc3 has requirement docker==2.7.0, but you'll have docker 3.7.0 which is incompatible.

なんかdockerモジュールのバージョン指定してる...しかもそこそこに古い...

$ sudo pip uninstall docker
$ sudo pip install docker
$ pip show docker
Name: docker
Version: 2.7.0
Summary: A Python library for the Docker Engine API.
Home-page: https://github.com/docker/docker-py
Author: Joffrey F
Author-email: joffrey@docker.com
License: Apache License 2.0
Location: /Library/Python/2.7/site-packages
Requires: websocket-client, backports.ssl-match-hostname, ipaddress, six, requests, docker-pycreds
Required-by: ansible-container
$ sudo pip install -e .
$ ansible-container
usage: ansible-container [-h] [--debug] [--devel] [--engine ENGINE_NAME]
                         [--project-path BASE_PATH]
                         [--project-name PROJECT_NAME]
                         [--vars-files VARS_FILES] [--no-selinux]
                         [--config-file CONFIG_FILE]
                         {run,help,deploy,stop,destroy,restart,init,version,build,install,push,import}
                         ...
ansible-container: error: too few arguments

おわりに

インストールマネージャ使ってのインストールがマネジメント仕切れていないの多いよね ()

TorノードのIPv6対応具合

とある研究会発表資料の嵩増しのため,Torノードがどの程度IPv6に対応しているか適当に調べた.

ソースコード

基本pythonはグラフをプロットするぐらいにしか使っていないので,ツッコミどころ満載かも.

#coding: UTF-8

import re
from bs4 import BeautifulSoup

html_file = './data/node_list.html'

ipv4_pattern = re.compile('([0-9]+\.){3}[0-9]+')
ipv6_pattern = re.compile('([0-9|a-f]{4}:){7}[0-9|a-f]{4}')

count_v4 = 0
count_v6 = 0

with open (html_file) as f:
    s = f.read()
    soup = BeautifulSoup(s, 'lxml')
    for a in soup.find_all('td', attrs={"class", "line-content"}):
        txt = a.get_text()
        if ipv4_pattern.match(txt):
            count_v4+=1
        if ipv6_pattern.match(txt):
            count_v6+=1
print("ipv4: %d/%d" % (count_v4, count_v4 + count_v6))
print("ipv6: %d/%d" % (count_v6, count_v4 + count_v6))

https://www.dan.me.uk/tornodes

からスクレイピングしてIPアドレスの形式でフィルタかけて計数するだけ.

スクレイピングというよりはHTMLをダウンロードしてきてファイルを調べている感じ.

(このページは一度アクセスすると30分間アクセスを禁止されるので,コーディング中のトライアンドエラーが超面倒くさい)

結果

2019.03.03時点

ipv4: 6624/7614
ipv6: 990/7614

割合的にそんなもんだよねというお気持ち.

我々はGCPのプロジェクト名とプロジェクトIDを勘違いしてはならない...

TerraformでGKEのクラスタを立てようとしていたところ,terraform apply実行時にエラーが出た.

variable "project" {
  type = "map"
  default = {
    "id" = "gke-project"
    "cred_path" = "credentials.json"
  }
}

provider "google" {
  credentials = "${file(var.project["cred_path"])}"
  project = "${var.project["id"]}"
}

エラーメッセージは以下のとおり.

Error: Error applying plan:

1 error(s) occurred:

* google_container_cluster.gke: 1 error(s) occurred:

* google_container_cluster.gke: googleapi: Error 403: Required "container.clusters.create" permission(s) for "projects/gke-project". See https://cloud.google.com/kubernetes-engine/docs/troubleshooting#gke_service_account_deleted for more info., forbidden

Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure.

ggってみたら似たようなエラーで死んでる人がいた...

stackoverflow.com

んー...ん?

f:id:takahiro0914:20190203184825p:plain

Project ID のところに Project Name 書いてた

variable "project" {
  type = "map"
  default = {
    "id" = "gke-project-230601"
    "cred_path" = "credentials.json"
  }
}

あっはい...サーセンっす...

シェルスクリプトでコマンドの実行時間を変数に格納

やりたいこと

シェルスクリプト上でコマンドの実行時間を変数に格納したかった.
dateコマンドで前後の時間差から求めると,ブラウザのプロセスなどのノイズが大きいため,timeコマンドで測りたい.

コマンド (この場合はユーザ空間での実行時間)

TIME=`(/usr/bin/time -f '%U' command 2>&1 1>/dev/null) 2>&1`

注意点

  • commandの標準出力/エラーはtimeコマンドに受け継がれるので,捨てるなりしないと出力にゴミが入る
  • ()で範囲を明示しないとリダイレクトが全部commandの方へ適用される