突っ走り書き

見せるほどのものでは..

istio を動かしてみる

install minikube

Minikubeはローカル環境でKubernetesを簡単に実行するためのツールです。Kubernetesを試したり日々の開発への使用を検討するユーザー向けに、PC上のVM内でシングルノードのKubernetesクラスタを実行することができます。

minikube.sigs.k8s.io

% brew install minikube
% minikube version
minikube version: v1.28.0
commit: 986b1ebd987211ed16f8cc10aed7d2c42fc8392f

おためし minikube

kubernetes.io

めっちゃ絵文字のインストールが完了:

% minikube start
😄  Darwin 13.1 (arm64) 上の minikube v1.28.0
✨  docker ドライバーが自動的に選択されました
📌  root 権限を持つ Docker Desktop ドライバーを使用
👍  minikube クラスター中のコントロールプレーンの minikube ノードを起動しています
🚜  ベースイメージを取得しています...
💾  ロード済み Kubernetes v1.25.3 をダウンロードしています...
    > preloaded-images-k8s-v18-v1...:  320.81 MiB / 320.81 MiB  100.00% 27.71 M
    > gcr.io/k8s-minikube/kicbase:  347.52 MiB / 347.52 MiB  100.00% 13.18 MiB 
    > gcr.io/k8s-minikube/kicbase:  0 B [________________________] ?% ? p/s 18s
🔥  docker container (CPUs=2, Memory=4000MB) を作成しています...
🐳  Docker 20.10.20 で Kubernetes v1.25.3 を準備しています...
    ▪ 証明書と鍵を作成しています...
    ▪ コントロールプレーンを起動しています...
    ▪ RBAC のルールを設定中です...
🔎  Kubernetes コンポーネントを検証しています...
    ▪ gcr.io/k8s-minikube/storage-provisioner:v5 イメージを使用しています
🌟  有効なアドオン: storage-provisioner, default-storageclass

context に minikube ができた:

 % k config get-contexts
CURRENT   NAME             CLUSTER          AUTHINFO         NAMESPACE
          docker-desktop   docker-desktop   docker-desktop   
*         minikube         minikube         minikube         default
% kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10

TODO

  • context とは?

6週間働き2週間プラプラする

息切れしないための戦略。会社ではプラプラするわけにはいかないから、プライベートで試してみたい。

ひたすらにずっとやり続けることは、無理だということなんだろう。『6週間プロジェクト』と『2週間のガス抜き』を試してみよう。

僕らの会社では、プロジェクトに六週間打ちこんだら、そのあとの二週間は定まった仕事の予定は入れず、気ままにガス抜きをして過ごすことになっている。

NO HARD WORK! 無駄ゼロで結果を出すぼくらの働き方 (早川書房)

 

毎日タイトなスケジュールで機械のように働いていると、長期的には持たなくなる。そこで、私は時々休みを入れるほか、いくつかの週は「フリーワーク」と呼ぶ形で仕事をしている。それは、ポモドーロを使わず、その週全体について計画を立てないというものだ。そのような週は、仕事をしたいと思うときだけ働く。

SOFT SKILLS ソフトウェア開発者の人生マニュアル

GOOS本写経:Openfire を使えるようにする、Dockerで。

リポジトリを clone する

github.com

git clone git@github.com:igniterealtime/Openfire.git

build する

ここに書いてあるとおりに(結構時間がかかる):

download.igniterealtime.org

cd $OPENFIRE_DIR
./build/docker/buildWithDocker.sh docker build . -t openfire:mything

GOOS本写経:WindowLicker を使えるようにする

GOOS本の第11章「最初のテストを通す」で使う WindowLicker を使えるようにする

参考文献

futurismo.biz

手順

git clone

$ git clone https://github.com/petercoulton/windowlicker.git windowlicker

ソースコードを修正

clone 後 ./build.sh すると以下のエラーが出る。

Buildfile: ./build.xml

clean:
   [delete] Deleting directory /Users/i/ghq/github.com/petercoulton/windowlicker/build

compile:
    [mkdir] Created dir: /Users/i/ghq/github.com/petercoulton/windowlicker/build/classes
    [mkdir] Created dir: /Users/i/ghq/github.com/petercoulton/windowlicker/build/jars
    [mkdir] Created dir: /Users/i/ghq/github.com/petercoulton/windowlicker/build/classes/windowlicker-core-DEV.jar
    [javac] Compiling 36 source files to /Users/i/ghq/github.com/petercoulton/windowlicker/build/classes/windowlicker-core-DEV.jar
    [javac] 警告:[options] ブートストラップ・クラスパスが-source 5と一緒に設定されていません
    [javac] エラー: ソース・オプション5は現在サポートされていません。7以降を使用してください。
    [javac] エラー: ターゲット・オプション5は現在サポートされていません。7以降を使用してください。

BUILD FAILED
/Users/i/ghq/github.com/petercoulton/windowlicker/build.xml:87: The following error occurred while executing this line:
/Users/i/ghq/github.com/petercoulton/windowlicker/build.xml:77: The following error occurred while executing this line:
/Users/i/ghq/github.com/petercoulton/windowlicker/build.xml:57: Compile failed; see the compiler error output for details.

Total time: 0 seconds

これを回避するため、以下のように書き換える:

diff --git a/build.xml b/build.xml
index e74a2a7..e62ac7a 100644
--- a/build.xml
+++ b/build.xml
@@ -54,7 +54,7 @@
        <sequential>
            <mkdir dir="@{classdir}" />
 
-          <javac srcdir="@{srcdir}" classpathref="@{classpathref}" destdir="@{classdir}" debug="true" source="1.5" target="1.5" fork="true" />
+           <javac srcdir="@{srcdir}" classpathref="@{classpathref}" destdir="@{classdir}" debug="true" source="1.7" target="1.7" fork="true" />
 
            <copy todir="@{classdir}">
                <fileset dir="@{srcdir}" excludes="**/*.java" />

jar をプロジェクト配下にコピーする

  • windowlicker-core-DEV.jar
  • windowlicker-swing-DEV.jar

gradle に依存関係を追加

dependencies {
    implementation files('../libs/windowlicker-core-DEV.jar')
    implementation files('../libs/windowlicker-swing-DEV.jar')
}