python 3.6 で secure に random string を生成する方法

python 3.6 には secrets というのが追加されていてこれを使うのが一番簡単です。 15.3. secrets — Generate secure random numbers for managing secrets — Python 3.6.4 documentation もしもurl-safeな文字列を所望するのであれば、こんな感じ。 token = …

Redis Cluster(3.x ~ 4.x) での Pub/Sub

揮発性のあるtopic(channel)に対してのPub/Subが欲しい案件が出てきたので、Redis ClusterでPub/Subでもしようかと思っていたのでちょっと調べてみた。そのメモ書き。 Redis pub/subの内部的な話し このブログが参考になる。 https://making.pusher.com/redi…

[Java] ルート証明書を調べる

こんな感じでサクっと確認。 keytool -list -v -keystore ${JAVA_HOME}/lib/security/cacerts

Redis Cluster での Lua script に関して

Redis Cluster の Slot に関して Redis Cluster は slot(shard) が 16384個あり、それぞれの node がその slot を複数保持している。 ある key がどの slot に割当られるのかは、以下の計算で行われる。 slot_num = CRC16(key) mod 16384 また、key に {...}…

Spring boot の configuration 周りで意識したいクラス命名規則

xxxConfigだったりxxxSettingだったりxxxConfigurationだったりxxxPropertiesだったり、人によってバラバラなのでなかなか困ります。 本家でどうしているのかを見てみると下のような感じです。このようにしたほうがわかりやすいですぞ〜。 @Configurationを…

Spring の UriComponentsBuilder のちょっと罠っぽいところ

UriComponentsBuilder は以下のように、URIの構築を簡単にできるやつです。 Spring とか使っている人だと使ったことあると思います。 String result = UriComponentsBuilder .fromUriString("https://example.com/") .queryParam("hoge", "あ") .toUriString…

IntelliJ IDEAにおいて、remote maven repo の snapshot module がうまく更新されないとき

たしかに local repoには最新版落ちてるのになんぞーって時。 File -> Invalidate Caches / Restart を試す。

SpringのModelに共通な値(デフォルト値)を入れたいとき

開発環境依存の定数とかといったような共通な値をmodelに入れたいときがある。 (static fileのURLとか) 実は@ControllerAdviceに@ModelAttributeが使用できるみたい。 (@ExceptionHandlerとか@InitBinderでしか使ったことなかった。) @ControllerAdvice publ…

Redis Lua script(EVAL)はSLOWLOGにはどう出るのか

先日、RedisのINCRBYFLOATコマンドがSLOWLOGにはSETコマンドとして出て来るといったような話がありました。 https://github.com/antirez/redis/issues/3841 EVALコマンドでLua scriptを実行したときのSLOWLOGは、EVALとして出て来るのか。それともLua script…

Vue 2.0, vue-router, vuex で はてブ リーダーぽいやつ作った

最近サーバー側ばっかやっていて全然フロントエンド側触ってなくてやばい !っという理由と、 そういえば去年の秋頃に Vue 2.0 が出ていたし触ってみるか!っという理由で Vue 2.0 を触ってみた。 ただ触るだけじゃつまらないので、( SPA で)はてブ リーダー…

LINE Notifyでたのでちょっと試してみる。ついでにGithub Enterpriseのwebhookを通知するやつを作ったぞ!!

LINE Notifyがリリースされたぞ!! 2016/09/29にLINE DeveloperDay 2016が開催され、いくつかの新機能などが発表されました。 http://developers.linecorp.com/blog/ja/?p=3779 その中のひとつに、LINE Notifyというものがあります。 一言でいうと、簡単にLIN…

Reluminでslowlog見れるようにした

やったこと ReluminっていうRedis Cluster Admin Toolでslowlog見れるようにしてくれい!という依頼があったので、実装してみた。 こんな感じになります。 GitHub - be-hase/relumin: Redis cluster admin tool 横軸に時間とって、縦軸にslowlogの実行時間(m…

Java(Maven) + Docker + CircleCI + CodecovなCI環境にしたメモ

1年位前に個人で開発していたReluminというRedis Cluster Admin Toolがあるんですが、 久しぶりに新しい機能いれるかってなって、ついでにtest + local env周りのちょっと残念な部分というか手抜きしていた部分を刷新してみた。 github.com (気が向いたら、R…

Prometheusのfluentd_monitor_agent_exporter書いた

最近身の回りでPrometheusが使われていて、僕も色々と試してみようと思い昨晩ビールでも飲みながらdocumentを眺めてた。 ほほう...なるほどと思い、次は適当になんかexporterでも書いてみっか!ってなって、ちょうど昨日fluentd meetupやってたのでfluentdの…

(Java) Lambda使っていい感じにMapとかClass生成できるやつ書いた

MapとかPOJO作るのに疲弊してきた 疲弊しすぎて、イライラして書いた。 https://github.com/be-hase/lamtils Lambda使ってこんな感じで、さっくりと作れる。 例) HashMap : Map<String, Object> map = Lamtils.newHashMap( one -> "one", two -> 2, three -> new Date(), fou</string,>…

Jenkins2.0のPipelineを触ってみたら便利だった

Jenkins2.0でてた Jenkins2.0がでてた。 https://jenkins.io/2.0/ ざっくりと概要を見ると、主な変更点は次の3つらしい。 Built-in support for delivery pipelines. Improved usability. Fully backwards compatible. 2に関しては、単純に見た目が良くなっ…

ブログ放置してた

2年位前に"書くことに集中するなら、自分でサーバーを持つよりも良さそうです。"とか言っておきながら放置してた。 放置しすぎててアレなので、 明日から本気だす。