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

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

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

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

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

「Linuxのしくみ」はOSやハードウェアについて、実際に手を動かして挙動を確認しながら学べる本です。 仕事で一緒に働いている方々が低レイヤに詳しいので、感化されてこの本を手に取った。 理由は、試して理解と書いてあったから。 手を動かさずに理解する…

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

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

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

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

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

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

EC2+Squidでプロキシサーバを立てて、複数IPでアクセス元を分散させる

スクレイピングをする場合、同じアクセス元だとBanされたりすることがあるようで、なるべくコストを抑えつつプロキシサーバを運用したいと相談されたので、AWSで試してみることにしました。 前提 VPCとサブネットがすでに作成されている前提で書いていきます…

メタプログラミング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. [翻訳] 生成された列の値は、…

[Android] [Kotlin] Android開発でRoomとKoinの設定

今、UdemyのAndroid開発コースをやっていて、そのコースではRoomとToothPickというライブラリを使って開発が進むのですが、個人的にKoinを使いたくてドキュメント見ながらやると見事に設定の記述漏れでハマったので、備忘録として書いておきます。 Kotlinの…