Linux rpmパッケージのコードリーディングをしたい

デバッグ情報を付与するだけなら debuginfo-install を使えばいいが、今回は、ソースコードを閲覧または変更できるようにする。 参考 CentOS 7: デバッグシンボルでパッケージをデバッグする 検証バージョン ]$ cat /etc/redhat-release CentOS Linux releas…

Python for文とイテレータとジェネレータ

Python3 のチュートリアルを流してみたので、その際に面白いと感じたところのメモです。 参考 Python チュートリアル 動作環境 $ python --version Python 3.7.3 はじめに python の for 文は、イテレータから値を取り出して繰り返すだけ。 JavaやC言語のよ…

C言語がコンパイル~実行されるまで

記事の内容 以下のソースコードがコンパイル~実行されるまでに、何が行われるのかを理解する。 細かいオプションや処理の詳細は追わない。 #include <stdio.h> #define MESSAGE "hello world\n" int main(int argc, char *argv[]) { printf(MESSAGE); return 0; } 記</stdio.h>…

Java オブジェクトの比較に関するひっかけ問題

検証環境 ]$ uname -a Linux localhost.localdomain 3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 29 14:49:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux ]$ java -version openjdk version "11.0.1" 2018-10-16 LTS OpenJDK Runtime Environment 18.9 (build …

Spring なぜMyBatisの実行したSQLがSpringの管理しているトランザクションで実行できるのか?

なぜMyBatisの実行したSQLがSpringの管理しているトランザクションで実行できるのか、を調べる。そのために、 mybatis-spring の実装を追っていく。 対象バージョン java version "11.0.1" 2018-10-16 LTS Spring Boot 2.1.2.RELEASE mybatis-spring-boot-st…

Deep Dive into MyBatis

検証環境 java 11.0.1 2018-10-16 LTS MyBatis 3.4.6 サンプルコード 以下を実行しながら、処理の流れを追っていく。 複雑な箇所は適宜、シーケンス図を作成する。(メインの流れではないと判断したところは適宜省略して記載するので、正確さにはやや欠けます…

CentOS パッケージの更新履歴やバグを確認する

yum-cronでパッケージを自動更新していると、いつの間にかパッケージが思った動作をしなくなることがある。このとき、調べた方法のメモ。 検証バージョン ]$ uname -a Linux localhost.localdomain 3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 29 14:49:43 UT…

Java いまふたたびのJDBC

この記事は Java Advent Calendar 2018 の 9 日目のエントリーです。 流行をとらえた話題が多いなか、10~15年前感のあるコンテンツです。化石です。 しかし化石とはいえ、よく使う技術ではあります。 ということで、何気なく使ってたけど改めて勉強し直しま…

Micrometer Spring Boot アプリケーションのモニタリング

2018/10/31 の Spring Festで『Micrometer/Prometheusによる大規模システムモニタリング 〜ヤフーインターネット広告システムでの導入事例〜』というセッションを聴講し、興味を持ったので調べました。 Micrometerは、Spring Boot Actuatorが内部で利用して…

Spring MultipartFile アップロードが完了しないとControllerのメソッドは呼ばれないぞ!

MuitipartFileとは? MultipartFileとは、ファイルのアップロード機能をアプリケーションコード内で透過的に扱うためのクラスです。アップロード機能の実装は、Servlet 3.0のファイルアップロードか、Apache Commons Fileuploadから選ぶことができます。 具体…