Kotlin Fest 2024で発表した次のセッションのスライド資料になります。 https://fortee.jp/kotlin-fest-2024/proposal/59aca818-d5d5-4eb4-a123-abae563a7f28
kotest は、 Kotlin ネイティブなテストフレームワークで、Kotlin で書かれたコードをテストするための強力で便利な機能が多く含まれています。 Kotlin/JVM では、テストに JUnit を使っている方が多いと思いますが、アサーションライブラリが Java しか考えていなかったり、coroutines, 非同期処理への対応が弱かったりと、もっと Kotlin の機能を最大限に活用して快適にテストを書きたいと思われる場面も多い事でしょう。 kotest は、アサーションライブラリだけを JUnit と組み合わせて使うこともできるし、テストフレームワーク全体を kotest へ置き換えることも可能です。 このセッションでは、主に今 JUnit を使ってテストを書いている方を対象に、kotest へ移行するとどんな良いことがあるのか、移行のやり方や具体的な実例を紹介します。
MySQLで接続関係の問題、具体的に言うとAborted_clientsやAborted_connectionsというステータス変数が増え続けてしまうような現象に遭遇することがある。MySQLは、そういったネットワーク関係の問題をあまりたくさんログに記録しないようになっている。DoS攻撃などでログが溢れかえってしまわないようにするためだ。そんなとき、試して頂きたいのがmysqlsniffer。 mysqlsnifferとは。http://hackmysql.com/mysqlsniffer mysqlsnifferは、tcpdumpのようにネットワークインターフェイスからパケットをキャプチャするプログラムだが、tcpdumpとはMySQLのプロトコルを理解するという点で異なる。というかMySQLのプロトコル専門のキャプチャプログラムだ。OSのroot権限さえあれば、MySQLサーバーに対し
みなさん連休はどうでしたか?私はというものずーっと家に引きこもってcloudbitでsshアクセスできるようにしたりして遊んでいました。 今日の記事ではMySQL Serverに対してコマンドを発行して結果を取得していきます。 基本的にコマンドの実行の流れを最小で追ってみよう、という趣旨なので細かい分岐やエラーハンドリングなどは省いていますのであしからず。 Select Queryを投げてみよう Queryの実行はMySQLサーバーに対してCOM_QUERYコマンドを送信すると結果が帰ってきます。 大まかなシーケンスとしてはdev.mysql.comに記載の通りとなっています。図でいうと一番左の分岐です。Select Queryを実行するだけですので、ProtocolText::Resultsetが帰ってくることが期待できそうですね。 簡単な図にするとこんな感じの順番でデータがやってきます
最近、RDMBSの通信プロトコルに興味があり、代表的なPostgreSQL・MySQLの通信プロトコルの調査をしています。今回は、とくに興味があった問い合わせ(Query)とその応答の通信プロトコルについて整理してみます。 取っ掛りとなる調査ではありますが、その通信プロトコル仕様から、PostgreSQL・MySQLそれぞれの設計思想的なところも垣間見れ、興味深い調査となりました。端的に言えば、PostgreSQLは高速かつ合成的で合理的、対するMySQLの仕様は厳密で冗長的な設計の印象を持ちました。 RDBMSの質問(Query)操作とは RDBMSへ対する操作は、質問(query)と更新(update)に大別されます。RDBMSの基礎となるリレーショナル代数は、前者の質問操作を対象とするものであり、挿入(insert)や削除(delete)などは後者の更新処理に含まれます[1]。 リレ
Welcome to the MySQL source code documentation.This documentation covers primarily the MySQL server, for the mysqld process. Other programs, like the MySQL Router, are also documented, see the Server tools section. The order chosen to present the content is to start with low level components, and build upon previous sections, so that code is presented in a logical order. For some sections, a full
今年ももうそろそろ終わりですね。 沢山パケットキャプチャした方も、そうでない方もいらっしゃると思いますが、今年残り僅かの日々も大事にパケットキャプチャしていければな思います。 じつはWiresharkではMySQLのプロトコルに対応しているのは知っていたのですが、試したことなかったのでせっかくの機会ですので試してみることにしました。特にレプリケーション周りは個人的にも気になっていました(試してないですがGTID使うパターンも気になる) 個人的には実際にパケットキャプチャをしながら資料を読むのが、結構理解につながるなと思っています。 今回は以下のページなども参考にしました。 MySQL Internals Manual MySQLのプロトコル解説 MySQLユーザーのためのMySQLプロトコル入門 環境 ubuntu 14.04 mysql 5.5 mysql client - mysql
MySQLを触ったことがある人なら、一度はMySQLのクライアントを一から全部作ってみたくなることがあると思います! そういうときのために、今回は、MySQLプロトコルを用いてMySQLに接続するために必要なハンドシェイクパケットの見方を説明していきたいと思います。 MySQLプロトコルとは? MySQLプロトコルは、MySQLサーバとMySQLクライアントを接続するためのプロトコルです。このプロトコルを使ってConnector/Jといったコネクタ類やMySQL Proxy、マスタースレーブのレプリケーションなどに利用されています。このプロトコルにはSSLを用いた暗号化や圧縮といった機能も含まれていますが、今回は紹介しません。 このプロトコルは、コネクションを張るフェーズとコマンドを実行するフェーズの2つのフェーズに分かれていて、今回説明を行うのはコネクションを張るフェーズに関する部分です
メルカリのセキュリティチームでインターンをしている赤松宏紀(@hi120ki)です。 私はセキュリティチームの中でも、インフラセキュリティなどを担当しているSecurity Engineering Team(紹介記事)にて8月中旬からの一ヶ月半、Kubernetesのランタイムセキュリティ監視ツールであるSysdig SecureとFalcoの再検証に取り組みました。 本記事では、再検証によって獲得した、下記の知見について紹介します。 ・ Microsoft社が公開しているThreat matrix for Kubernetesに不足している攻撃手法の検討 ・ Falcoへの攻撃検知ルールのコントリビュート ・ Falcoの検知回避手法と対策 ・ Falcoによる攻撃検知の効果と限界 また実施したタスクの内容の他に、インターンをする中で感じたメルカリでセキュリティエンジニアとして働く上で求
MemLab: An open source framework for finding JavaScript memory leaks We’ve open-sourced MemLab, a JavaScript memory testing framework that automates memory leak detection. Finding and addressing the root cause of memory leaks is important for delivering a quality user experience on web applications. MemLab has helped engineers and developers at Meta improve user experience and make significant imp
Dependency Management Plugin とは Spring Project で開発されている(と表現していい?) Gradle のプラグイン。 Maven の BOM と同等の仕組みを Gradle でも使えるようにするためのもの。 BOM の説明は Gradle で BOM を使いたいときには Spring チームの出している Dependency management plugin を使うのがよさそう - なにか作る などを参照。 もともと Spring Boot 1.x の頃は Spring Boot プラグインの一部だったが、 Spring Boot が 2.x になったときに独立したプラグインとして分離された。 + なので、 Spring Boot とは関係なく利用できる(でも、実際一番お世話になるのは Spring Boot を使うときだと思う)。 環境 Gr
こちらのエントリーが素敵だなと思ったので、最近書いてるKotlinプロジェクトのベストプラクティスをまとめてみます。一部はJavaプロジェクトにおいても利用できるはずです。 zenn.dev 基本方針 参加障壁を下げる。OSSプロジェクトでもプロプライエタリ・ソフトウェアプロジェクトでも、新しい開発者が参加するコストを下げることには大きな意義がある。 環境差異を吸収する。javaにPATHが通ってさえいればOSに関係なくビルドが通るようにする。 プロジェクト固有ルールを作らない。Conventional CommitsやKeep a changelogなど、ひろく世に使われているルールを採用する。 Gradleを設定する Spotlessを使う コードのフォーマットはformatterに任せて人間は細かいことを考えない、というのが不特定多数が参加するソフトウェアプロジェクトのあるべき姿だと
はじめに Build.gradle.kts kotlin() 標準ライブラリ(stdlib)の依存 Java ツールチェーンサポート kotlin.testAPI JavaFX アプリケーション まとめ はじめに Gradle Kotlin DSL もいろいろと変わっており、2022年における Kotlin アプリケーション向けの Build.gradle.kts の定義をまとめます。 Gradle は以下のバージョンを使用します。 $ gradle -v Gradle 7.3 Kotlin は、2021年11月16日にリリースされた Kotlin 1.6 を使うものとします。 Build.gradle.kts 基本的な build.gradle.kts の構成は以下の様になります。 plugins { kotlin("jvm") version "1.6.0" application }
JavaScript relies on garbage collection (GC) to reclaim memory. In this post, we will dig into JSC’s garbage collection system. Before we start, let me briefly introduce myself. I am Haoran Xu, a PhD student at Stanford University. While I have not yet contributed a lot to JSC, I found JSC a treasure of elegant compiler designs and efficient implementations, and my research is exploring ways to tr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く