SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

限りある時間の使い方

総評

ささっとロンドンで読み飛ばしながら読んだ。

あまり響くポイントはなかった。

DIE with ZEROの方が個人的には好きかなと思う。

[追記]

がしかし、少し時間がたって人生には、「共感」をしてくれる人や、コミュニティ、そこに身をおけることが一番幸せかもしれないなと思った。

それは結婚とかかもしれないし、仲間や仕事の文脈でもあてはまるかもしれない。

たった一人では得られないものがあるのは確かかもな、と。

pickup

どんなに大量の仕事をこなしても、どんなに成功しても、自分は本当にやるべきことをやっていないのではないか、という感覚だ。本当はもっと重要で充実した時間の過ごし方があるんじゃないか。今こうやって黙々とこなしている仕事は、本来やるべきこととは違うんじゃないか。 オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.10). Kindle 版.

やるべきこととは。これは永遠に考えることだと思う。

時間を「使う」ようになった僕たちは、「時間をうまく使わなければ」というプレッシャーにさらされる。 オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.28). Kindle 版.

時間を有効に使うべき、というのは非常に凝り固まった考え方かもしれない。

ほとんどすべてのチャンスを逃すことは──当たり前の現実だ。そうでなければ、そもそも決断に価値はない オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.37). Kindle 版.

トレードオフを認めること、そこを受け入れること。

人は世界中のありったけの体験を味わい、人生を「生ききった」と感じたいと願う。ところが世界が提供してくれる体験の数は実質的に無限なので、どんなに頑張っても、人生の可能性を味わいつくしたという感覚を得ることはできない。 オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.51). Kindle 版.

これは理解をしておくべきかもしれない。 旅をして地球の全てをみることは不可能だ。

限りある時間、という現実から目をそらす方法として、おそらくもっとも魅力的なのは、複数のプロジェクトを同時に進めること オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.79). Kindle 版.

たくさんやった気持ちになりがちだし、これは気をつけるべきことだなと思った。

実際に自分もやっている気がする。

人は後戻りできない状況に置かれたほうが、選択肢があるときよりも幸せになれるというデータがある。手持ちのカードを多く残しておくよりも、「これしかない」という状況のほうが満足度が高まるのだ。 オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.91). Kindle 版.

決断をして進めること。

選択肢はなくてもよい。

トップダウン型の注意をうまく使えるかどうかで、人生の質は左右される オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.97). Kindle 版.

これをやるんだ、と目の前に集中をすること。やること。

ティーブ・ヤングが高野山での修行で見いだしたのは、現実から逃げるのをやめれば苦痛がやわらぐという事実だった。現実逃避をやめて、凍てつく水をしっかりとその身に受け止めたとき、それまでの苦痛は消え去った。嫌だという気持ちよりも、今ここで起こっていることに注意を向けることができたからだ。別に修行僧になる必要はない。日々の生活でも同じだ。難しいタスクを落ち着いてやり遂げるには、完璧に没頭できる状態を夢見るよりも、嫌な気持ちをそのまま認めたほうがいい。苦痛や退屈を否定せず、今起こっていることをそのまま見つめたほうがいい オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (pp.111-112). Kindle 版.

今目の前にあることを5感をつかって、味わうことなのだと思う。

人生の重要な出来事には、いつだって偶然の力がはたらいている オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.121). Kindle 版.

そうした偶然を好きになること。

運気を招ける人間になること。

そして僕たちはたいてい「これが最後」と気づかないまま、その時を過ごしてしまう。だからどんな経験も、それが最後の機会であるかのように大切にするべきだ、 オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.133). Kindle 版.

旅も同じ。

いつかまた来れるかもは、来れない未来なのだ。

なぜ生産的に働くために休まなきゃならないんだ?海辺でのんびりしたり、友達と食事したり、ベッドでごろごろするのに、なぜ「仕事のため」という言い訳が必要なんだ? オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.142). Kindle 版.

余暇は自由であるもの。

バックパックを背負って1年間世界中を旅するという一見遊びに満ちた体験さえも、「より豊かな経験をした自分」になるための手段だったりする。 オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.143). Kindle 版.

これは自分かもしれない。 今の状態は目的なのか、手段なのか、きちんと切り分けておく必要がある。

産業革命以前に生きていた人々には、余暇をこんなふうに捉えるなんて想像もつかなかったはずだ。古代の哲学者たちにとって、余暇は何かのための手段ではなく、あらゆることの目的そのものだった オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.144). Kindle 版.

目的そのものである方が健全。

でも本当は、余暇を「無駄に」過ごすことこそ、余暇を無駄にしないための唯一の方法ではないだろうか。何の役にも立たないことに時間を使い、その体験を純粋に楽しむこと。将来に備えて自分を高めるのではなく、ただ何もしないで休むこと。一度きりの人生を存分に生きるためには、将来に向けた学びや鍛錬をいったん忘れる時間が必要だ。 オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.147). Kindle 版.

無駄にすること、ただ、過ぎゆくことを捉えること。

そこに意味はなくてもよいということ。

でも時間がいくらあったところで、ひとりぼっちではあまり意味がない。時間を意味のあることに使うためには──友達と遊んだり、デートをしたり、子どもを育てたり、ビジネスを立ち上げたり、政治運動に参加したり、技術の進歩をもたらしたりするためには──他人と協力することが不可欠だ。たとえ時間がありあまっていても、共に過ごす人がいなければ、まったく意味がない。 オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.184). Kindle 版.

人との共有はマストか?これは疑問がある。

シェアすることが一番の幸せなのだろうか。

デジタルノマドのライフスタイルには、深い人間関係を築くために必要な、共同のリズムがない。 オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.186). Kindle 版.

これはわかる。

旅をしながら恋人をつくろう、といったことも非常に難しい問題だ。

共有する時間が必要だからだ。

日々の感覚としても、人と生活リズムを合わせたほうが時間がリアルに感じられることはあると思う。ひとりで過ごすよりも時間が濃くなり、有意義に感じられるの オリバー・バークマン. 限りある時間の使い方 (Japanese Edition) (p.191). Kindle 版.

ホステルで早起きをした方がいいのはそうかもしれない。


少し乱雑だが、残しておく。

ロンドンにて。

【読書】自分の意見で生きていこう

読んだ経緯

ちきりんさんのtwitterをいつもみていたから

感想

SNSなどにおける、「意見」と「反応」の違いについてしっかり書かれていて、現代で求められている「意見を言う人」を学べる一冊。

どうして意見を言うことが大事なのかのバックグラウンドも記載してあり、わかりやすい。

意見:ポジションが明確にできる発言のこと。(賛成か反対か)

反応:どちらのポジションとも取れない発言のこと。

自分がAだと思う。なぜなら〜だからだ。

のような当たり前の構文をもっと日頃から意識をしたりすれば、反応ばかりになってしまうことがないようになると感じた。

SNSに必要な力

意見を述べること、発信することというのは、自分のポジションを明確にすることである、と思った。

その明確さ、言い切り、その人の人格も含めて支持されればおのずとみんながみたくなるような発信力がつき、フォロワーも増えるのだなと思う。

これはSNSをやる上で非常に重要な土台だなと思った。

この内容が記載されているのは非常に勉強になる。

1-3章がメイン

ただ、後半はあまりなくてもよいかなと自分は感じた。

(もしかすると自分のモチベーションによるところがあるかも)

旅は意見を鍛える練習になる

個人的な「旅」に絡めて言うと

一人旅は意見を発信するのに鍛えられると思う。

というのも、自分の意見がないと旅は始まらないし、選択の連続をたった一人に迫られるから。

「何を食べる」「どこに泊まる」「何をする」

全てが自分の意見で構成される。

そういった練習をしたいなら、携帯を置いて旅にでれば良い。

何が良かったかは自分一人で振り返れば、それが自分の"意見"になる。

フリーランスや会社員

会社員でい続けるか、やめるか、転職するか。

そういったところでも、選択をして決断をしている人は自分なりの意見を持っている。

わかりやすい指標でもあるなと感じる

Amazon

購入はこちらから。

https://amzn.to/3Mx1Jcr

確定申告知識などまとめ

流れ

  1. 収入をまとめる
    • A銀行, B銀行など
  2. 経費をまとめる
    • クレジットカード
  3. 控除できる金額をまとめる

freeeのプラン

スタータープランにする(1200円ほど)

マイナンバーカード

暗証番号などを用意しておくこと

(drop box paperなどにまとめておくと楽かも)

医療控除

医療経費 - 10万円 or 医療経費 - 200万以下の所得の5%を超過した分

freeeとゆうちょ

ゆうちょのAPIからの取得は、記帳が行われているもののみ。

去年の記事

https://sakurawi.hateblo.jp/entry/e-tax

源泉徴収とは

給与、報酬などの特定の所得の支払者が、その所得の支払をする際に、所定の方法により所得税額を計算し、支払金額からその所得税額を差し引いて国に納付する制度を、「源泉徴収制度」といいます。

自分の理解としては事前に10.21%?を引いておく制度って認識。

国目線では毎月で税収を得られるから大きいメリットがある?

レンジ的に10%か20%の人が多いから?

所得税について

https://www.nta.go.jp/taxes/shiraberu/taxanswer/shotoku/2260.htm

【読書】大きく考えることの魔術

背景

週に4時間働く

で紹介されていたので

感想

さっと3、4時間ほどでよめて、マインド本としてはよい。

7つの習慣や、影響力の武器に近しい感じ。

印象に残ったところ

「コンディションが100%整うことはありえない、だから行動する」

これは自分に響いた。

結局やれると思うこと

思い込みがかなり大事、というようなメッセージにまとめられる。

ただこれだと浅すぎるので、もう少し分解した内容がかいてある

抜粋

行動は恐怖を治療する

もたもた、ぐずぐずしていることは、恐怖を助長する

自信のある考えを持つためには自信のある行動をせよ

精神の食糧は、あなたの環境である

毎日数回は自分自身に元気づけの言葉をかけなさい

どう考えているのかは行動でわかる

自分一人の時間をとること

沈思黙考

どのような分野であれ、成功した人たちは自分自身と相談する時間をちゃんととっている

購入はこちら

https://amzn.to/3HBDt64

Rails6 + heroku + Ruby 2.7.5(3.0.3)

スペック

herokuで動かしたい

基本はこちら

https://qiita.com/anago1030/items/250c44d3754f16e54937

master.keyの設定

https://qiita.com/koki_73/items/df7b4b001943e3ed69e7

ruby のキーワード引数のエラー

https://blog.ezic.info/41843.html

参考

https://qiita.com/nagami0102/items/fa237f21de07ccc34324

https://qiita.com/anago1030/items/250c44d3754f16e54937

AWS lambda を使ってRuntime Ruby2.7で実行する方法【ChromeDriver + Selenium + Docker】

経緯

Ruby2.5のサポート終了に伴い、AWS LambdaのランタイムRuby2.5の関数をRuby2.7アップデートする。

技術スタック

  • Ruby2.7
  • ChromeDriver(2.37)
  • Chromium
    • chromium 64.0.3282.167 (stable channel) for amazonlinux:2017.03
  • Selenium(3.142.4)
  • Docker

前提知識として、これらのは動くverを全て一致していないとうまく動作しない。

作業ディレクトリ図

f:id:Saku-Saku:20220103081055p:plain

Dockerfile

最終的にコレで動かしている

FROM public.ecr.aws/lambda/ruby:2.7

# Install dependencies needed to run MySQL & Chrome

RUN yum -y install libX11
RUN yum -y install dejavu-sans-fonts
RUN yum -y install procps
RUN yum -y install mysql-devel
RUN yum -y install tree
RUN mkdir /var/task/lib
RUN cp /usr/lib64/mysql/libmysqlclient.so.18 /var/task/lib
RUN gem install bundler
RUN yum -y install wget
RUN yum -y groupinstall 'Development Tools'

# Ruby Gems

ADD Gemfile ${LAMBDA_TASK_ROOT}/
ADD Gemfile.lock ${LAMBDA_TASK_ROOT}/
RUN bundle config set path 'vendor/bundle' && \
    bundle install

# 日本語フォント
ENV LANGUAGE ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
RUN yum -y install fontconfig
run yum -y install ipa-gothic-fonts && \
    fc-cache -fv \

# Install chromedriver & chromium

RUN mkdir ${LAMBDA_TASK_ROOT}/bin/

# Chromium
RUN wget https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-37/stable-headless-chromium-amazonlinux-2017-03.zip
RUN unzip stable-headless-chromium-amazonlinux-2017-03.zip -d ${LAMBDA_TASK_ROOT}/bin/
RUN rm stable-headless-chromium-amazonlinux-2017-03.zip

# Chromedriver

RUN wget https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip
RUN unzip chromedriver_linux64.zip -d ${LAMBDA_TASK_ROOT}/bin/
RUN rm chromedriver_linux64.zip

# Copy function code

COPY lambda_function.rb ${LAMBDA_TASK_ROOT}

WORKDIR ${LAMBDA_TASK_ROOT}

RUN tree
RUN ls ${LAMBDA_TASK_ROOT}/bin
# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile)
CMD [ "lambda_function.lambda_handler" ]

下記のスタックオーバーフローに、動かせたよと言っている人がいるDockerfileを真似たもの。

変更点

  1. 実行ファイル名をlambda_functionに合わせた。
  2. 日本語のフォントのインストール、適用をさせた。これは、seleniumでのfind_elementする時に日本語が必要であったため

ref: https://stackoverflow.com/questions/67841994/which-chromedriver-headless-chrome-versions-exist-that-are-compatible-with-rub

dockerの実行方法

imageのbuild

docker build -t test_name:latest .

imageの実行

docker run -i  -v "$PWD" --shm-size=256m -p 9000:8080 -e ID='YYY' -e PASS='YYY'  delete-item

別ターミナルから、下記curlでdockerのrubyのファイルが実行される( CMD [ "lambda_function.lambda_handler" ] )に一致が必要。

 curl http://localhost:9000/2015-03-31/functions/function/invocations -d '{}'

lambdaのレイヤーへのアップロード (gem)

bundle install --path vendor/bundle

で vendor/bundle 配下にインストール

もしミスったら、一度vendorを削除して入れ直すとよい

vendor/bundle/ruby/2.7.0

となっているのを

ruby/gems/2.7.0 にして、zipにして レイヤーにアップする

lambdaのレイヤーへのアップロード (chromedriver & chromium)

S3にアップしてからレイヤーにアップロード

それぞれの実行ファイルは、Dockerfileに記載しているverを入れる

lambdaの実行設定

  • レイヤーの追加
  • 関数の作成
    • 環境変数の設定
      • pathのためのenviroment production
    • レイヤーの設定
    • イベントの設定
    • メモリ、実行タイムアウト時間の設定

docker内で動いたrubyのコードのスクショの見方

curlなどでコードが実行をする。

save_screenshot('filename.png') などでseleniumはスクショが撮れる。

ので、実行をして、

dockerにbashなどで入って、 ホストのディレクトリにcpコマンドをすれば良い。

docker exec -i -t コンテナid bash
docker cp ec8eca1b6473:/var/task/File02.png .

Lambdaの実行環境

Amanzon Linux 2 での実行となる。

OSは CentOS

fontの設定をする

yum install fontconfig

https://command-not-found.com/fc-cache

以下も参考にした

Seleniumの書き方、コツ

waitさせたい

https://www.selenium.dev/ja/documentation/webdriver/waits/

sleep()

非同期での読みこみを待ちたい時は

sleep(15)

などが有効。

5じゃなくて15で安定して動作したりもした。

docker unable to connect to bin/chromedriver 127.0.0.1:9515

docker unable to connect to bin/chromedriver 127.0.0.1:9515

上記エラーは、chromedriverとchromiumがあっていない時の主なエラー

当初戦っていたエラー

docker run --rm -v "$PWD":/var/task --mount type=tmpfs,target=/dev/shm,readonly=true lambci/lambda:ruby2.7 lambda_function.lambda_handler

上記の実行で、動かない。

chromedriverって起動がいる?

本体のverとruby2.7があってないと動かないのかも。

unable to connect to bin/chromedriver 127.0.0.1:9515

その他参考になるページ