tokuhirom's blog
  • JFR のスタックトレースはデフォルトで64
    JFR では Stacktrace を取得する処理があるが、デフォルトのスタック取得深度は 64 である。 現代のウェブアプリケーションではフレームワーク側で64スタックぐらい余裕で消費しているので
    2021-10-05(Tue)
  • JFR の jdk.ExecutionSample では、STATE_RUNNABLE な Thread しか見れない。
    必要であれば、async-profiler とかで見たほうが良いよ、と。 逆にいうと、STATE_RUNNABLE だけをとってるから、待ちになりがちな web system の場合、容量少
    2021-10-04(Mon)
  • jfr で取れる生データがどんなものか確認できるウェブアプリを作った
    JFR のイベントってどんなんあるんかなーと思ってもドキュメントとかが見当たらないし、確認の方法がよくわからないわけだが、、 実データを見るのが一番良さそうなのだが、実データ見るのがめんどく
    2021-10-01(Fri)
  • ブログを MySQL ベースにした
    昔はブログを MySQL ベースで運用していたのだが、、MySQL ベースでやってると運用がちょっとめんどくさくて、お金をかけずに自前でブログを運用するとなると、ファイルベースで管理したほうがなにかと
    2021-09-21(Tue)
  • Tomcat の session id の生成がめちゃくちゃ遅いとき
    ``` Sep 27 23:41:00 dev3 docker[56810]: 2021-09-27 23:41:00.043 WARN 1 --- [nio-8080-exec-1] o.a.c
    2021-09-21(Tue)
  • VPS を Ubuntu に変えたよ
    何かの作業するとき用に VPS をなんとなく契約しているのだけど、すごい昔の centos で色々めんどくさくなったのでふっとばして ubuntu 20.04 に変更したよ。
    2021-09-19(Sun)
  • gradle の test 失敗情報を stdout に出させる。
    ``` test { useJUnitPlatform() testLogging { // Make sure output from
    2021-09-01(Wed)
  • PowerShell の New-ScheduledTaskTrigger で、DaysOfWeek に複数要素指定する
    `New-ScheduledTaskTrigger -Weekly -At $At -DaysOfWeek @("Monday", "Tuesday", "Wednesday", "Thursday"
    2021-05-16(Sun)
  • Windows 10 で caps2ctrl が動かないときは powertoys 使う
    caps2ctrl で remap していたが、なんか動かなくてぐぐってみると、microsoft が出している powertoys なら動くとのこと。 実際 powertoys を使ったらちゃんと動
    2021-04-08(Thu)
  • lettuce で redis cluster を使ってる場合に、プロセスがうまく落ちないってとき
    lettuce-timer のスレッドとかが残ってうまくプロセスがシャットダウンでき無いとき。 Lettuce の場合 `StatefulRedisClusterConnection` などのコネク
    2021-03-08(Mon)
  • Wikipedia から SKK の辞書を生成するスクリプトをかいた。
    SKK-JISYO.L が最近、メンテナンスされてなくて `れいわ /令和/` が入ってなかったりして困ってしまう。 そこで、neologd から辞書を生成してみた。 しかし、neologd
    2020-08-30(Sun)
  • pytest でテスト名称がマルチバイト文字のときにエスケープされて見辛いとき
    pytest.ini に以下のように記述すればよい。 ``` [pytest] disable_test_id_escaping_and_forfeit_all_rights_to_communi
    2020-08-29(Sat)
  • Mac で synergy がうごかないとき
    Linux を server, Mac を client として synergy を使おうとした。 ``` [2019-03-13T22:16:56] DEBUG: can't get the ac
    2020-08-21(Fri)
  • mecab-ipadic-neologd-git の AUR package をなおした
    なんかよくわからんが fakeroot の下だと file コマンドがうごかないのでなぞだった。 なんかそれっぽく直した。
    2020-08-20(Thu)
  • SparkSQL のクエリをユニットテストしたい
    品質向上のために Spark クエリのユニットテストを実施したいという場合、JVM 言語で開発している場合には、Spark/hive をライブラリとしてロードできるから、容易に実装することができる。
    2020-08-07(Fri)
  • curl で silence したいけどエラーはみたい。
    ``` -s, --silent Silent or quiet mode. Don't show progress meter or error messa
    2020-08-05(Wed)
  • SystemRules ではなく SystemLambda を使う
    stdout/stderr の出力をキャプチャするのに systemrules が便利だが、junit5 対応はしていない。 junit5 に対応するためには system-labmda を使う。
    2020-07-21(Tue)
  • 適当に JDBC でデータとってきてダンプするスニペット
    生JDBCで適当にデータ出してデバッグしたいって時につかうやつです。 ``` protected void selectAndPrint(Connection connection, Str
    2020-06-26(Fri)
  • Swift で Foundation の data をバイト列で初期化したい
    `Data([0xDE, 0xAD, 0xBE, 0xEF])` こんな感じ。Data とか、一般的な名前すぎてググってもなんか見つけにくい。
    2020-06-18(Thu)
  • thrift compiler のバイナリを static build したい
    からダウンロードする。 # linux の場合 ``` sudo yum install glibc-static -y ./configure --enable-static --with
    2020-06-17(Wed)
  • [C#] C# で byte 列を16進数に変換したい
    の通りにやればいい。 ``` byte[] data = { 1, 2, 4, 8, 16, 32 }; string hex = BitConverter.ToString(data); /
    2020-06-12(Fri)
  • Gradle の dependency locking について
    昔の gradle には dependency locking 機能がなかった。ビルドするタイミングによって、別の依存モジュールが利用されたりしていた。。 最近、gradle に dependency
    2020-05-13(Wed)
  • PowerShell に git branch 情報を表示する
    を利用すればいい。 PowerShell gallery からインストールすればいいです。 profile.ps1 に以下のように設定した。 ``` Import-Module posh-gi
    2020-03-20(Fri)
  • jacoco で lombok で生成されたコードを無視したい
    `lombok.addLombokGeneratedAnnotation = true` を追加すればよろしい。Jacoco 側にそういう対応が入っている。
    2020-03-07(Sat)
  • /actuator/configprops で kotlin の @ConfigurationProperties つけてるビーンが出ないよってとき
    configprops は constructor の引数を見ている。何も指定しないと java と同じく arg0 とかになって acutuator で設定が見れない。 ↓gradle の場合は以
    2020-02-27(Thu)
  • NullPointerException の stacktrace が出ないケース
    hotspot だと最適化の都合で、出ないケースがあるらしい。 `-XX:-OmitStackTraceInFastThrow` を入れると全部出るようになるが、パフォーマンスに若干の影響があ
    2020-02-27(Thu)
  • Skitch が catalina で使えなくなったので頑張って OSX のスクショ機能を使っていた
    OSX のスクショ機能なんであんな使いにくいの。。モーダルにしなくてよくない?? って苦しんでたけど、 ↓これで skitch をまた使えるようになった。安心。
    2020-02-26(Wed)
  • compressed oops
    * JVM では pointer を通常 64bit 使うところを 32bit で表現するように圧縮している。 * メモリ節約のため * メモリが32GBあると圧縮されなくなる * hea
    2020-01-29(Wed)
  • cloc みたいな行数適当に数える奴
    ``` #!/usr/bin/env perl use strict; &main; exit; sub main { my %white = map { $_ => 1 } qw/
    2020-01-25(Sat)
  • [kotlin] lateinit が初期化されてるか確認する
    `lateinit var foo: String` である時に、lateinit 変数が初期化ずみか調べるには `::foo.isInitialized` とすると良い
    2020-01-11(Sat)
  • mysql 8.0.17 から 8.0.19 までは member は予約語
    `MEMBER; added in 8.0.17 (reserved); became nonreserved in 8.0.19`
    2020-01-10(Fri)
  • レポジトリの中に含まれる kotlin/java ファイル数を歴史込みで集計する
    TSV が出るので、出たら tableau とかで集計する。 ``` # XXX git checkout --force するんで手元がぶっ壊れるので注意してね! XXX import subpr
    2019-12-12(Thu)
  • mutable なクラスがどのぐらい DI 対象になってるか調べたい
    BeanPostProcessor で探せる。 ``` import org.springframework.beans.factory.config.BeanPostProcessor impor
    2019-12-10(Tue)
  • [spring] @Configuration と @Component は違う、あるいは @Bean lite mode について
    Spring の @Configuration は @Component の stereotype だと思っていたが、挙動が違うとのこと。 `@Bean Lite Mode` というものがあって
    2019-11-19(Tue)
  • Spring framework 5.2 以後=Spring Boot 2.2 以後では WebClient のレスポンスの取り扱いが便利になっている件
    WebClient からの response status などを取得しやすくなっている。 便利。 ``` val logger = LoggerFactory.getLogger(We
    2019-11-07(Thu)
  • assertj 3.12.0 の breaking change がエグい
    ``` Iterator<Foo> fooIterable = getFooIterable(); assertThat(fooIterable) .extracting(Foo::getId
    2019-10-31(Thu)
  • `ClassLoader#getResources("")` の返り値が Java9 以後は jar:file: も含むようになっている
    ``` package com.example; public class Example { public static void main(String[] args) throws j
    2019-10-29(Tue)
  • 【解決済み】 Boot 2.2 で AbstractRoutingDataSource しかない場合にアプリケーションが起動しない問題について
    Boot 2.2 で scan 対象に AbstractRoutingDataSource しかない場合に、アプリケーションが起動しないという問題を見つけたので報告したところ、シュッと対応してくれ
    2019-10-24(Thu)
  • Jackson 2.10 についてのメモ
    ざっくりいうと * Jackson 2.10 は Jackson 3 のインターフェースを含みつつ 2 系の旧インターフェースを新インターフェースを `@Deprecated` 扱いで含んだリリース
    2019-10-19(Sat)
  • Spring Framework 5.2 からは WebClient の retrieve でちゃんと http status を取れる
    Spring Framework 5.2 がリリースされた。 > Support for Kotlin Coroutines. も大きいのだが、、個人的には以下に注目したい。 > Refinem
    2019-10-01(Tue)
  • Python 2 で GMT で出てるやつを適当に JST にする
    ``` from datetime import datetime, timedelta def to_jst(src): return str(datetime.strptime(src,
    2019-09-26(Thu)
  • sparksql で emoji/pictogram を含む行を検出する
    `select text from table where dt='20190911' and text rlike '[\\uD800-\\uDFFF]'` とかでとりあえず良さそう。
    2019-09-13(Fri)
  • filebeat で jvm unified log を収集する話
    * jvm unified log を収集すると gc pause time を正確に収集可能 * gc の状態を正確に把握可能 → tuning に役立てられる可能性 * filebeat で収集し
    2019-09-12(Thu)
  • jetbrains toolbox for linux を chromebook で動かす
    fuse が動かないので `./jetbrains-toolbox-1.15.5796/jetbrains-toolbox --appimage-extract` で解凍。 `APPDIR=$PWD/
    2019-09-10(Tue)
  • Unable to publish SessionDestroyedEvent for session foobar
    * RedisOperationsSessionRepository は MessageListener を実装している * SessionDeletedEvent or SessionExpir
    2019-09-10(Tue)
  • scala で guava のバージョンを確認する
    とりあえずこんな感じで。try-with-resources でやりたかったが、あんま短くかけなそうだった。 ``` %spark import java.util.Properties impor
    2019-09-03(Tue)
  • witcher 3 途中でやめた
    そもそも剣で切り合うアクションあんま好きじゃない気がしてきた
    2019-07-29(Mon)
  • pageres から capture-website にしようと思ったが puppeteer にした
    長年、pageres を利用して web page から画像を生成していた。 pageres の後継として capture-website があることを知った。 ``` The biggest
    2019-07-09(Tue)
  • Excel で特定の行または列を固定する方法
    この辺。
    2019-06-10(Mon)
  • zipkin の RateLimitingSampler が便利(特に低トラフィックの場合)
    zipkin で tracing log を取得する場合、一定の割合でログをサンプリングしてストレージに保存していた(たとえば 0.1% だけストアするなど) この方法では、低トラフィックな環境では
    2019-05-20(Mon)
  • line-bot-sdk-nodejs を typescript で使う
    ``` npm install --save express npm install --save typescript npm install --save @line/bot-
    2019-05-07(Tue)
  • [js] List::Util::all みたいなのを js で
    ``` List::Util::all みたいなものをJSで書くときってどう書くのがいいんだろ lodash とかにありそうだけど syohex [8:55 PM] Array.prototype
    2019-02-02(Sat)
  • ivy が最近は良いらしい
    > 最近はhelmやめてivyつかってますよ! とのこと。僕も変えてみた。
    2019-01-29(Tue)
  • YAPC::Tokyo 2019 で keynote してきた
    keynote の準備に忙しかったりしてあまりトーク聞けなかったけど楽しかったです。
    2019-01-28(Mon)
  • bash で **/* とかしたい
    `shopt -s globstar` で OK
    2019-01-19(Sat)
  • YAPC::Tokyo 2019 で keynote します
    キーノートというのをするのが初めてなのでどういう話をしたら良いのかよくわかってない部分もありますが、僕のキャリア・エンジニアリングに関する考え方などを紹介しようかなあと思います。
    2019-01-07(Mon)
  • spring の 4.3.15, 5.0.5 以後で mockmvc の json path のマッチングで matcher 使わなくてもよくなってる
    mockmvc で jsonpath のマッチングを利用する場合、以下のようにする必要があった。 ``` .andExpect(jsonPath("$.id", is(5963))) ``` これ
    2019-01-06(Sun)
  • spring boot で ExceptionLoggingFilter が ERROR level でログ出まくってうざいってとき
    spring-cloud-sleuth を依存にいれたら ERROR レベルでのログの出方がおかしくなった。 このクラスが例外をキャッチしてエラーログに書いて rethrow するという
    2018-11-30(Fri)
  • spring boot で静的リソースの書き換えを即時反映させたいよってとき
    ``` bootRun { sourceResources sourceSets.main } ``` この設定をすると、静的リソースが source directory から読まれるよ
    2018-11-29(Thu)
  • webflux で x-forwarded-for とかをケアする
    以下の様にすれば良いっぽい。 ``` import org.springframework.context.annotation.Bean import org.springframework.
    2018-11-20(Tue)
Prev
Next
© tokuhirom