備忘録

M1 Mac(arm64)環境でsbt-protocがエラーになる

M1 Mac(arm64)でプロジェクトの環境構築をしているとsbt-protocでエラーが出たので、調べた内容と解決方法を残しておこうと思います。 前提 MacBook Pro(arm64) sbt v1.6.1 sbt-protoc v1.0.2 原因 protobufが 3.17.3 以前のバージョンではM1 Mac向けのbinar…

『ドメイン駆動設計入門 - ボトムアップでわかる!ドメイン駆動設計の基本』を読んだ

ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本作者:成瀬 允宣翔泳社Amazon どんな本か ドメイン駆動設計についてかなり噛み砕いて説明された本です。 難しく抽象的な説明はあまりなく、具体的なパターンを説明しながらドメイン駆動設…

Amazon Linux2にPython3をインストールする

Pythonは書いたことなかったんですがスクレイピングするためにサクッと書いて、それをローカルではなくEC2上で動かす必要性が出てきました。 利用しようとしたAmazon Linux2にプリインストールされているのはPythonの2系なのですが、ローカルで書いたスクリ…

MVVMアーキテクチャでAPIからビール情報を取得して表示するコードを書くのに役立った記事をまとめておく

PUNK APIというBREW DOGのビール情報を返してくれるAPIがあり、それを使って簡単なデータ表示アプリをMVVMアーキテクチャで作ったときに役立った記事のリンクを備忘録としてまとめておく。 ライブラリは以下を利用した。 HTTP通信周り OkHttp4 Retrofit2 Ser…

試して理解 Linuxのしくみの第4章を読んだ

blog.ryskit.com 前回の続き。 この4章で取り扱うのは「プロセススケジューラ」についてです。 この章で大事なのは以下のとおり。 同時に何個のプロセスが実行していても、ある瞬間に論理CPU上で動作できるプロセスは1つだけ 論理CPU上では、複数プロセスが…

試して理解 Linuxのしくみの第3章を読んだ

blog.ryskit.com の続き。 今日は第3章のプロセス管理を読んだ。 カーネルによるプロセス生成と削除の機能についてだが、仮想記憶の理解がないと詳しい理解が得られないということで、仮想記憶がない単純な場合をもとに話が進んだ。仮想記憶については5章で…

試して理解 Linuxのしくみの第2章を読んだ

blog.ryskit.com の続き。 第2章では、CPUはユーザモードとカーネルモードを切り替えて処理を実行しているということを学んだ。 CPUのモード遷移の図や実験で試したプログラムのCPUのモードの遷移図は分かりやすい。 試したコマンドは、strace, sar 。 簡単…

direnvの使い方をいつも忘れるからメモしておく

direnvの使い方をいつも忘れるので備忘録として書いておく。 direnvとは 特定のディレクトリに移動したときに設定ファイルに記載された環境変数を読み込んで有効化するツール。 とりあえず、まだインストールしてないのであればインストールするべし!便利な…

メタプログラミングRuby第2版 Ⅱ部を読んだ

メタプログラミングRuby第2版 Ⅰ部を読んだの続き メタプログラミングRuby第2版 Ⅱ部を読んだので、簡単な内容と感想を書いていく。 最後に、読んでメモしたものを追記しておく。 I部ではRubyのメタプログラミングの考え方や継承チェーンの仕組み、メソッドや…

「新装版リファクタリング - 既存のコードを安全に改善する」を読んだ

今、仕事で参加しているプロジェクトのJavaのコードは数年前のもので、昔に書かれた部分は、メソッド名が分かりづらかったり、処理を一つのメソッドに詰め込み過ぎていて可読性が低い状況である。(テストは結構書かれているから修正できる) また、最初にアプ…

メタプログラミングRuby第2版 Ⅰ部を読んだ

最近、友達と毎週メタプログラミングRubyの読書会をやっています。 というのも、友達が転職して、業務でRubyを使い始めることになり、自分も業務で少し使っているので、お互い知識を共有しつつ学びがあれば良いなと思って始めました。 序盤の4章ぐらいまでは…

MySQLのJSON型の値をGenerated Columnsを使ってカラムにデータを追加してみる

MySQLのGenerated Columnsを使う必要があり、動作が気になったので検証してみました。 Generated Columns(生成カラム)とは Values of a generated column are computed from an expression included in the column definition. [翻訳] 生成された列の値は、…