ビットの海

ゆるふわソフトウェアエンジニアしゃぜのブログ

MacOSXでJDK切り替えるメモ

いつも忘れるので

install versions

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    11.0.2, x86_64:     "AdoptOpenJDK 11"       /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
    1.8.0_202, x86_64:  "AdoptOpenJDK 8"        /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home

ちなみに、 /usr/libexec/java_home の実体は /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home にある。

change

11.0.2から1.8.0_202にするとして

export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_202`

$ java -version
openjdk version "1.8.0_202"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_202-b08)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.202-b08, mixed mode)

^ は現在のセッションのみのなので、必要であれば、 ~/.zshrcなどに書いて V sourceする

export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_202`
export PATH=$JAVA_HOME/bin:$PATH

Team Geekを読みかえしたメモ

昔ぱらっと読んだのを、最近思うところあって、読み返してみた。

所感

  • 2013年なので、まぁまぁ古さも感じる。
  • が、ぼくが知らないだけかもだけど、未だ類書にない魅力があるのも事実。
  • 本書を貫くテーマはHRT(謙虚・尊敬・信頼)、本当に大事だと思う。
  • ミッションステートみたいなのを掲げるの大事。

印象的なパラグラフ

2章 すばらしいチーム文化を作る

  • 一流のアーキテクトと大量のプログラマを採用すれば、優れたプロダクトができると考えている人がいる。できなくもないかもしれないが、刺激を沢山与えてくれる優秀な人のいるチームでなければ楽しくないと思う。

5章 組織的操作の技法

  • エンジニアとしては、何よりもプロダクトのローンチにエネルギーを注ぐべきだ。(略)リファクタリングなどに時間をかけたいと思うかもしれないが、半分以上の時間をこうした防御的な仕事に使っても全く評価されない
  • 「攻撃的」な仕事と「防御的」な仕事、の話(完全に同意するわけではないが、この視点は大切だと思う)
    • ぼくたちは、技術的負債がどれだけあっても、防御的な仕事に時間や労力の1/3~1/2をかけないというルールをつくっている。それ以上は政治的自殺行為につながるからだ。
  • 3つの箇条書きと行動要請には、問題について説明する(最大)3つの箇条書きと1つ(1つだけ)の行動要請が含まれる。以上だ。
  • 自分から会社を辞めたり、解雇されるのを待ったりするという話は、仕事が気に入らなければ履歴書を持って外へ出ろという意味ではない。最初にやらなければいけないのは、仕事を達成するために何かを変えることだ。

6章 ユーザーも人間

  • Googleには有名なモットーが存在する
    • ユーザーに集中すれば、他のことはすべてついてくる

pwgenの使い方のメモ

たまにしか使わなくて忘れるので

install

brew install pwgen

optionの一部覚書

  • -0
    • 数字を含めない
  • -A
    • 大文字を含めない
  • -B
    • 人間にとって紛らわしい文字を含めない。1 と l など。
  • -s
    • 完全にランダムなパスワード
  • -y
    • 記号を含める

usecase

10桁で、大文字を含め、紛らわしい文字を含めず、完全にランダムで、記号を含めないものを複数生成

pwgen 10 -B -s

8桁で、大文字を含め、紛らわしい文字を含めず、完全にランダムで、記号を含めるものを1つだけ

pwgen 8 1 -B -s -y

help全体

$ pwgen -h
Usage: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ]

Options supported by pwgen:
  -c or --capitalize
        Include at least one capital letter in the password
  -A or --no-capitalize
        Don't include capital letters in the password
  -n or --numerals
        Include at least one number in the password
  -0 or --no-numerals
        Don't include numbers in the password
  -y or --symbols
        Include at least one special symbol in the password
  -r <chars> or --remove-chars=<chars>
        Remove characters from the set of characters to generate passwords
  -s or --secure
        Generate completely random passwords
  -B or --ambiguous
        Don't include ambiguous characters in the password
  -h or --help
        Print a help message
  -H or --sha1=path/to/file[#seed]
        Use sha1 hash of given file as a (not so) random generator
  -C
        Print the generated passwords in columns
  -1
        Don't print the generated passwords in columns
  -v or --no-vowels
        Do not use any vowels so as to avoid accidental nasty words

2020年4月-6月の振り返り

前回

2020年1~3月の振り返り - ビットの海

振り返りをサボっていたので、読んだ本とか忘却の彼方...

4月

  • 在宅勤務長期化を覚悟する
  • 職務経歴書のUpdate
  • 子ども生まれる準備。1人目に比べると随分やることは少ない(買うものも少ない)が、いろいろ書い直したりはした。

5月

  • 子供が生まれる準備を本格的にする
  • 6月予定なのに、5末に子ども(第二子)が生まれる

6月

  • コロナ騒ぎの中子どもが生まれて(退院してきて)バタバタ
  • 仕事ぐらいしかしてない
  • 7月から育休入る予定だったので、仕事もギリギリのスケジュールでバタバタしていた

振り返って

  • 仕事と育児しかしていない
  • インプット/アウトプットが絶望的にだめ
  • もう諦めて、在宅勤務中心の生活スタイルの構築をするべきだったけどそれができていなかった(6月ぐらいにはなんとかそういう自宅の体制にしたけど)。

その他

  • 正直1人目の子どもが生まれたときは、育児自体に四苦八苦していた(1年ぐらいはしてたのでは...)が、その点はなんとかなっている。

読んだ本

12大事件でよむ現代金融入門

12大事件でよむ現代金融入門

  • 作者:倉都 康行
  • 発売日: 2014/10/18
  • メディア: 単行本(ソフトカバー)

  • 事例で読むとわかりやすいが、知らない概念が多いので、一般的な金融入門みたいなやつを読んだほうがいいかもしれない。
  • 次候補 金融読本(第31版)

Try

  • 在宅ワーク中心での仕事/家事育児/個人的学習のリズムをつくる(8月現在このテーマでやってる)

MacのLocal Docker環境で、Jenkinsをちょっと試す

やりたいこと

知らんpluginとかの動作をちょろっとみたい。

やりかた

Dockerfileを雑に書く

Dockerfile

FROM jenkins/jenkins:2.235.1
USER root
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt
USER jenkins

plugins.txt に入れたいpluginを書いておく。

plugins.txt

slack 2.40

docker build & run

docker build -t shase/jenkins:2.235.1 .
docker run -p 8080:8080 -p 50000:50000 -v `pwd`/jenkins_home:/var/jenkins_home -d shase/jenkins:2.235.1 

jenkinsの初期パスワードを参照する

 cat jenkins_home/secrets/initialAdminPassword

アクセス

open http://127.0.0.1:8080

先程参照した初期パスワードを入力して使う

オフィシャル版Elastic Homebrew Tapがリリースされてたので使ってみる

www.elastic.co

^ 去年出てたらしい(6月だから結構前だ)

そのままだとHEADしか入らないので指定Versionを入れたいときは別途小細工が必要

(とはいえ、このtap自体は7系以降じゃないとだめそうだ)

Elasticsearch & Kibana Usage

事前準備(tap)

brew tap elastic/tap

elasticsearch

install

デフォルト(Full)版のinstall

brew install elasticsearch-full

start & stop

# plist登録して起動
brew services start elastic/tap/elasticsearch-full

# 停止
brew services stop elastic/tap/elasticsearch-full

動作確認

curl http://localhost:9200

Config /usr/local/opt/elasticsearch-full/libexec/config (シンボリックリンクになっていて、実体は /usr/local/etc/elasticsearch/sudachi こっちになっている。ESの設定で指定するのは実体のほうがよい)

Log /usr/local/var/log/elasticsearch.log

kibana

install

デフォルト(Full)版のinstall

brew install elastic/tap/kibana-full

start & stop

# plist登録して起動
brew services start elastic/tap/kibana-full

# 停止
brew services stop elastic/tap/kibana-full

動作確認

open http://localhost:5601

オマケ、旧VersionをInstallしたいとき

どのversionがあるか確認してみる。7系以降っぽいね。

brew log elasticsearch-full --oneline

cbe4d0f (HEAD -> master, origin/master, origin/HEAD) Overwrite bundled jdk binaries (#42)
6f3c6c3 (tag: v7.7.0) Update to 7.7.0 artifacts (#40)
5fd77c9 (tag: v7.6.2) Update to 7.6.2 release artifacts (#38)
5f77ab6 (tag: v7.6.1) Update to 7.6.1 artifacts (#34)
8fb53fe (tag: v7.6.0) Update to 7.6.0 release (#31)
bed8bc6 (tag: v7.5.2) Update to 7.5.2 artifacts (#30)
78d845a (tag: v7.5.1) Update to 7.5.1 artifacts (#25)
597389e (tag: v7.5.0) Update to 7.5.0 artifacts (#23)
4754f22 Adapt to bundling JDK into jdk.app (#21)
1ca0727 Resign ML binaries on installation (#20)
c7f585a (tag: v7.4.2) Update to 7.4.2 artifacts (#19)
6dea761 (tag: v7.4.1) Update to 7.4.1 artifacts (#18)
72abe9e Add bottle unneeded to tap formulae (#15)
de55f56 (tag: v7.4.0) Update to 7.4.0 artifacts (#16)
e5862e6 (tag: v7.3.2) Update to 7.3.2 artifacts (#13)
63c9412 (tag: v7.3.1) Update to 7.3.1 artifacts (#12)
4219e4e Fix elasticsearch formula tests (#9)
a134e9c Update to 7.3.0 artifacts
bc6550f Update to 7.2.1 artifacts
9407043 Update to 7.2.0 artifacts
f90d9a3 Initial commit

tapのformulaディレクトリでcheckoutする、例では7.5.0にする。 (余談だけど、標準のformulaは/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/にある)

/usr/local/Homebrew/Library/Taps/elastic/homebrew-tap/Formula
git checkout 597389e elasticsearch-full.rb

brew installするとちゃんと7.5.0をダウンロードしてる

brew install elastic/tap/elasticsearch-full

Updating Homebrew...
==> Installing elasticsearch-full from elastic/tap
==> Downloading https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.0-darwin-x86_64.tar.gz?tap=elastic/homebrew-tap

install終わったらformulaを戻しておく

git reset --hard

ダウングレードしたときにエラーになったのでここ見て直した(brew uninstallしてもdataディレクトリは消してくれなかった模様)

Elasticsearch failed immediately - Elasticsearch - Discuss the Elastic Stack

2020年1月-3月の振り返り

今年は時々振り返りをしていこうと思う。 3ヶ月単位よりは、1ヶ月単位が良いな(もう1~2月のことを忘れている)。

読んで良かった本

  • 読んだその日からリストつくっていこうと思える
  • タスクマネジメントであり、ナレッジマネジメントなんだよなぁ

仕事ではじめる機械学習

仕事ではじめる機械学習

  • 理解できてない部分も多いので、今年この分野がんばる

n月刊ラムダノート Vol.1, No.1(2019)

  • MLOps の歩き方目当てで買ったんだけど、TCPの再送制御機構もすごく良かった。久しぶりにネットワーク分野のちゃんとした技術文書読んだ気がする。