@kotyのブログ

PythonとかAWSとか勉強会のこととかを、田舎者SEがつづります。記事のライセンスは"CC BY"でお願いします。

失敗の科学 読了後メモ

やらかし反省シリーズ。やらかしに関係する本を手に取ってみたが、「やらかしをしないようにする」ではなく「やらかすのは仕方ない。それを今後に活かすことが大事」のような内容だった。

第1章 失敗のマネジメント

妻が医療事故により亡くなってしまった事例。

ミスの再発防止のための仕組みができておらず「調査嫌い」な医療業界と、第三者機関など再発防止の仕組みができている航空業界を(ふたつの業界に環境要因はあり必ずしも医療業界を責められないとフォローしつつ)比較している。そして「間違いを教えてくれるフィードバックがなければ、訓練や経験を何年積んでも何も向上しない」「フィードバックを得る環境を作るために『ミスの報告を処罰しない』」ことを説いている。

所感

  • 環境要因もあるとはいえ、医療業界の閉鎖性には暗い気持ちになった。日本だけじゃないんだな。
  • ミスの報告を責めないのは大事。障害票に「(直接の)障害起因者」欄を作るとか、障害件数ゼロを目標にする組織にいたことがあったけど、今はどうしてるかな。

第2章 人はウソを隠すのではなく信じ込む

人は自分の過ちを認めるよりも、事実の解釈を変えてしまう。 犯罪捜査にDNA鑑定が使われるまでは、捜査は人の記憶に頼っており多くの冤罪が生まれた。

所感

  • 自分が誤っていると分かったときは素直に認められるようでありたい。そうしているつもりだけど結構難しい

第3章 「単純化の罠」から脱出せよ

瀉血(しゃけつ)療法の事例、刑務所訪問の効果の事例などを挙げ、 人は物事を単純化しがちだし単純化されて理解しやすいものを信じやすい。 しかし物事はそれほど単純では無いことが多い。RCTなど客観的な事実をみることが大事と説く。

所感

第5章 「犯人探し」バイアスとの闘い

「非難したり訴えたり裁判にかけたりすれば、相手は責任感を強く持つようになると思い込んだままでいいのか、ということだ。今のところそれで説明責任が強化されたという証拠はひとつも出ていない」

所感

まったくそのとおり。。。

第6章 究極の成果をもたらすマインドセット

「個人でも組織でも、失敗に真正面から取り組めば成長できるが、逃げれば何も学べない」

所感

まったくそのとおり。。。

終章 失敗と人類の進化

「子どもたちの心に、失敗は恥ずかしいものでも汚らわしいものでもなく、学習の支えになるものだと刻み付けなければならない。」

所感

これは日々言っていきたい。

最後に

ということで、「やらかし」を気をつけはせよ恐れずに生きたいと思ったのだった。

私って、ADHD脳!? 読了後メモ

最近公私共に大きめの「やらかし」をしていたので、手に取った。何かを解決するわけではないけれど、これまで感じていた生きづらさの原因が見える化されて納得感(?)は得られた。

「片付けられない」以外は「注意力散漫」「忘れ物、失くし物が多い」「並行作業が苦手」「決まった手順に沿って作業するのが苦手」など心当たりがかなりあり、程度は分からんけど多少なりとも注意欠陥障害に該当するのだと思う。 これまでいろいろやらかしをしてきて、どうして自分は出来ないんだと悩むことがあったが、これも個性だと思って受け入れるしかないんだろう。 もちろん、やらかさないように努力できるところはしないといけないが。。。注意書きとか予定とか入れててもそもそも注意書きや予定をを見なかったりするんだよな。

それでも、周りにご迷惑をかけつつもここまで生きてこれたから、この先も何とかなるでしょう。

漫画で分かりやすいので、似たようなお悩みの方、うっかり者のフォローばかりしている方、おすすめです。

ローカルプロキシで、Chromeへのレスポンスを編集する(Mac OS BigSur)

やりたいこと

背景は聞かないでください。

  • 特定のサイトにアクセスした時に
  • 「本番サイトです!」とHTMLに表示

f:id:kkotyy:20210213203948p:plain

方針としては、ローカルプロキシを立てて特定のサイトの場合だけ当該プロキシを経由、プロキシでレスポンスを編集することを考えた。

ローカルプロキシ

GUIを備えたプロキシもあるようだが、導入がお手軽そうだったmitmproxyというのを使ってみた。

インストール

brew install mitmproxy

いったん起動する

mitmproxy

この状態で、プロキシ経由で証明書をダウンロードする

curl -x 127.0.0.1:8080 'http://mitm.it/cert/pem' > /tmp/mitm.pem

証明書をMacのKeyChainに登録し、Trustする。

タグ挿入スクリプト

BeautifulSoupを使うので入れておく。よく分からんがmitmproxy独自のpython仮想環境がある模様。

/usr/local/opt/mitmproxy/libexec/bin/pip install beautifulsoup4

pythonコードを書く。text/html のレスポンスにタグを挿入する。

import os
from bs4 import BeautifulSoup
from mitmproxy import http

class Injector:

    def response(self, flow: http.HTTPFlow) -> None:
        if flow.response.headers.get("content-type") and flow.response.headers.get("content-type").find("text/html") != -1:
            html = BeautifulSoup(flow.response.content, "html.parser")
            if html.body:
                tag = html.new_tag("span", id="mitmproxy", style="color: red;")
                tag.string = '本番サイトです!!!'
                html.body.insert(0, tag)
                flow.response.content = str(html).encode("utf8")
addons = [Injector()]

書いたスクリプトを指定して、起動しておく

mitmdump -s inject_alert.py

Chromeの設定

Chrome extensionをインストールする。 chrome.google.com

proxyの設定

f:id:kkotyy:20210213203631p:plain

auto switchの設定

f:id:kkotyy:20210213203729p:plain

最後に、extensionのアイコンから auto switch を選択する。

f:id:kkotyy:20210213203858p:plain

大成功の図

なんというか、そもそもこんなことをする必要に迫られたくない。

f:id:kkotyy:20210213203948p:plain

参考サイト

「モノリスからマイクロサービスへ」読了後メモ

モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイド

モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイド

  • 作者:Sam Newman
  • 発売日: 2020/12/26
  • メディア: 単行本(ソフトカバー)

  • マイクロサービスに分割されていることで、一部分だけ新しい技術で作り替えやすくなる。これは顧客にとって良い結果を提供する意外にも新しい技術を習得することで開発者の満足にもつながる。
  • 分解しやすさ、分解による利益の2軸で分解する機能の候補を絞る
  • 一発で分解するのではなく、段階的にリライトを繰り返す

4章の「データベースを分割する」ではデータベースリファクタリングで出てきた話題と割と共通していた。まずはトリガーやデータ更新時、日時バッチ等で新旧両方のDBに更新をかけ、徐々に切り離していくっていう辺りが。

トランザクションをかけられない場合にどうデータの整合性を維持するか

2フェーズコミット、オーケストレーションベースのサーガ、コレオグラフィベースのサーガなどが紹介されていたが、どれも私が関わっているシステムには過剰に感じた。保守できる気がしない。

ロールバック用のロジックを用意しておくのが現実的である。

マイクロサービス間の依存関係をどう管理していくか

現実のシステムでも徐々にシステム間連携が増えてきている。何らかの方法で依存関係を見える化しておかないと、ある改修が意図しない箇所に影響してしまうことが先々ありそうな気がする。 サービスメッシュてのが紹介されていたが、これがいいんだろうか。。。

マイノリティであることの不利益を人生で初めて実感した話

通っていたジムの営業時間が縮小して非常に使いづらくなってしまった。 これまでは朝7時から開いていたので、息子を保育園に送った帰りに泳いでから仕事できた。 しかし今後は10時から営業となった。夕方も17時に閉まってしまう。 サラリーマンの私にいったいいつ泳げというのか。 さらには、コーチがやってくれるレッスンも縮小されてしまった。

この件の記事が新聞に載っていて「利用者の8割は高齢者」だそうだ。 今後は主たる利用者にターゲットを絞って営業するとのこと。 つまり少数派である現役世代はスコープ外となったわけだ。 このご時世でスポーツジムは経営が厳しくなり、生きる道をどうにか探した結果で仕方のないことだと思う。 しかし仕方のないと理解はするものの、子どもたちがスイミングを卒業したらサヨウナラで彼らが就職後に水泳を続ける場所は提供せんなどという焼き畑みたいなことをしていていいんだろうか。中長期的に理念を追うことは忘れないでほしい。

これまで何度か人と違う選択をしてきてマイノリティ側になることが多かったものの不利益を被ったことはなかった。 それが今回マイノリティであることの不利益を初めて経験している。

特に結論は無い。あまりネガティブなことは書きたく無いんだけど、今のお気持ちを記録しておく。

「教育格差 ──階層・地域・学歴」読了後メモ

かなり重い内容ではあった。

本書では、大卒か否かで生涯賃金に厳然たる差があること、さらには大卒か否かは家庭の環境と強い相関があることを客観的に示しており、やはり大学は卒業しておいた方が良さそう、また何らかの親の介入が必要そうという認識を持った。こんなことはほかのご家庭であれば常識なのだろうな。

自分の親は高卒かつ、健康でありさえすればどうにかなるという考え方で、私の進路に何らアドバイスをしたことも選択肢を提示したこともなかった。 三者面談のときに私の志望大学を聞いて「そんな大学があるんですか?」と言い放って担任を唖然とさせたのは今でも語りぐさである。本書で言う低SES家庭である。 しかし偶然たまたま私は選択肢を自力で見つけ、偶然たまたまその選択肢に向かって努力でき、大卒者となった。 この体験があるので、自分の子供に対して選択肢を提示することや勉強を促すことに本書を読んだ後もまだ抵抗がある。健康でありさえすれば大卒であろうがなかろうが自由でいいのではないか、偶然たまたま大学に行ければそれでいいんではと。。。

日本は教員免許制度、教科書検定などの義務教育の諸制度のおかげで傍目には平等な教育機会を持てているように思われている。しかし生まれた家庭や地域によって機会の不平等があると客観的に本書では示している。そして階層、地域による教育格差を縮めていくためにいくつかの提言をしている。

とまあそれはそれとして、せっかく持っている学歴を活かした子育てをした方が、多額の資金を投じて大学へ行かせてくれた私の両親への恩返し(恩を売ったつもりはないだろうけど)にもなるし、社会にも資するのではないかと、ひとりの親としては感じたのだった。

謹賀新年2021

あけましておめでとうございます。例年通り、振り返りと今年やりたいことなどを書きます。

昨年の振り返り

健康問題が大きかったです。

コロナの影響は公私ともにありました。個人的には良いことも悪いこともありました。悪い面は保育園の行事が中止になったとか、旅行できなくなったとか、出社できなくなったとかですかね。 でも良い事もあって、消防や地域の要らん飲み会がなくなったりイベントが簡素化されたりしたことです。なので割と穏やかに過ごせた面もあり良かったです。

転職2年目

新規サービスのシステム面を任されました。割とうまくいっていると評価されているようでほっとしています。自分のスキルに合った規模、テクノロジーであったことが大きいと思います。 エンジニア、非エンジニア問わず周りが非常に優秀でなかなか自信を持って業務するに至っておりませんが、この調子で少しづつ成功体験を重ねて、会社になじんでいきたいです。

一番苦手なのは要件を決めるための調整ですね。利用者側は運用が固まる前にシステム化を望むことが多いのですが、それをしてしまうと無駄なものを作る危険があるのでまずは極力て運用で始めて業務フローが固まったら本格的にシステム化するように意識して調整を試みます。devのリソースで作れてopsのリソースが回る業務フローを提案&調整するのがほんと苦手。手を動かすのは楽しいのですけどね。でも今後ITに詳しい人間として飯を食っていくためには必要なスキルなので引き続きやっていきます。

ちなみに去年担当案件をどうにか世に出したいと書いていた件はいろいろあって世に出ていません。。。

コロナ禍の前から在宅勤務していたので、自分自身の働き方はほとんど変わりませんでした。唯一、月2回ほど出社していたのがなくなったのが地味につらいです。最後の出社は2020年1月で、さすがに出社したいです。

技術的には、引き続きRails+jQueryが主、vue、GASが少々という感じでした。Rails+jQueryはストレスがたまります。。。

IT勉強会関係

思い返せばNSEGが立ち消えしてしばらく経ちまたコロナで対面の勉強会もなくなり、すっかり参加するモチベーションが落ち、まったく勉強会には出ませんでした。なので昨今の最新技術に疎くなっている危機感があります。 PyConJPがオフライン開催されていれば情報交換する機会もあったのでしょうが。。。

英語

英会話は挫折してしまい、podcastを聴くくらいしかしませんでした。それでも耳はだいぶ慣れて、最初聞き始めた時にめっちゃ速いと感じた実践ビジネス英語はほぼ聞き取れるようになりました。聞き取れるだけで、知らん語彙が多いのは変わらず。 一方ネイティブ向けのpodcastはめっちゃ速くてほぼ聞き取れません。実践ビジネス英語でもゆっくり話していたんだと気付かされます。

また、English Journalを購読していたのですがこれは私には合いませんでした。割と俳優とか歌手のインタビューが多く、自分は興味が湧きませんでした。

水泳関係

ここ数年家族旅行を兼ねて出場していたOWSに今年は出られませんでした。フォームをいろいろ試行錯誤したり、練習時間を取ったりして一時期よりは泳力はついたように思います。まだ1,500mを22分半(1分半/100mペース)で泳ぐのは諦めていません。

夏場に水球の練習に参加できたのも良かったです。やはり水球は楽しいです。

家族

健康問題が大きく、夫婦ともに入院しました。健康第一。

koty.hatenablog.com

koty.hatenablog.com

息子が元気なのが救いです。

上記投稿でも書いたのですが、これらを無理なく乗り越えられたのは会社の理解があったからでほんとうに感謝しています。開発スケジュールの調整が効く一方、運用にしわ寄せが行っているのではという心配もあります。

今年の抱負

息子が小学生に上がるので、多少自分の時間が増えるのではと。。。

仕事

予定している新規サービスは非Railsなので楽しみです。少なくない量のGAS資産の保守も続くので、こちらの効率的な管理も模索したいです。

勉強会

新規案件で採用を予定している技術のコミュニティに入っていきたいです。 PyConJPも今年はどうにか現地開催できるといいけど、厳しいかな。

水泳関係

通っているジムがコロナ禍で事業縮小した関係で朝営業をやめてしまうのが痛いですが、引き続きがんばります。

OWSの大会に出たいです。1,500mは23分30秒くらいで泳げるようになりたいな〜。

英語

English Journalは合わなかったのでCNN English Expressを購読してみます。

このご時世で受検を控えていたTOEICを今年はどうにか受けれたらと思います。英会話はモチベーションがあれば。。。

プライベートのモノづくり

家業のシステムをいい感じにしたいなー。試用してみたShopifyはいまひとつ合わなかったので、自作する機運が高まっています。

今年もよろしくお願いします

健康第一で。