yak shaving life

遠回りこそが最短の道

開発

Spring Data RedisでZPOPMIN(MAX)を使う

RedisにはSorted Setというデータ型があって、ユーザランキングみたいなものを作るときに便利だったりする。このSorted Setに対する操作はZADDとかZRANKのようにZから始まるものとなっている。 Sorted Setから一番スコアが低い(高い)ものを破壊的に取り出…

HomebrewでJmeterをインストールしたらちゃんと動かなかった

諸事情によりJmeterのGUIを動かしたかったのでMacでのインストール方法を調べると、Homebrewにあるとのことだったのでインストールした。が、ちゃんと動かなかったのでやったことをメモ。 環境 macOS 10.15.13(Catalina), JavaはOpenJDK 11.0.4, MacBook Pro…

Spring BootでJS/CSSのバージョニングをするための最小設定

ググってもなんか古い情報とかが多くてうまく見つけられなかったのでメモ。Spring Bootのバージョンは2.5.x。 基本的に、application.yml / application.properties に spring.web.resources.chain.strategy.content.enabled プロパティを追加するだけででき…

github.devがめちゃ便利で感動している

いや、感動は言いすぎかもしれないけど。良い。 最近ペアプロならぬペアコードレビューをやったりしていて、そういやgithub.devって使ってます?的な話をしたところ使ったことがないというのでとりあえず見せてみようと思って何気なく「.」キーを押したとこ…

ParallelStreamは親スレッドというか元のスレッドも並列処理に使用するし一部のスレッドで例外が発生しても正常処理のスレッドは継続する

PararellStream絡みでなんだかよくわからないことになったので公式ドキュメントなどを読んでみたけどたいした記述がない。(もっと詳しく書いてあるページがあるのか?) docs.oracle.com しばらくうんうん唸っていたけどもう一度ググり始めたら神記事を見つ…

WordPressで Object of class WP_Error could not be converted to string in と Warning: count() を直した

普段ほとんど触らないWordPressだけど、ちょっとエラーを直す機会があったのでメモ。 Object of class WP_Error could not be converted to string in こいつのせいでFatal Errorになってページが表示できない状態になっていた。 テーマが悪いのかなんなのか…

Node.jsでrequireするとrequire is not definedエラーが出る

という話を聞いた。自分が遭遇したわけではない。これってどういう時に起こるんだろうか。ブラウザ上でrequireするとこうなるのは知っているのが…。 気になったので適当に色々試していたら、ESMを使わなければいけない環境でrequireしようとすると出るっぽい…

Rust勉強にっき(1)

前回のは(0)ということで(1)から始めることにした。やっぱ数字は0から始めないとね。 というわけで Rust The Programming Language 通称 the book のChapter 1, 2をやって、Chapter 3の途中で終わった。進み遅っ。2章のハンズオンが楽しいし分かりやすいしプ…

Rustに入門した

doc.rust-lang.org これをやってみることにした。せっかくなので英語版で。分からない言葉が出てきたらメモるようにしてたらRustというより英語の勉強してるみたいになっている。英語力ェ…。 以前これの日本語版を多少読んだはずなのに全く覚えていなくて最…

Datadog Agentを手元のマシンで動かして、ローカルのサーバを監視する

Datadogの新しいサービスを使い始めるときやcustom metricsを作りたいとき、まずローカルで動作確認したくなると思う。 「Datadog Agentをローカルで動かす方法」みたいな公式ドキュメントやブログ記事が意外となかったのでやり方をメモしておく。 Applicati…

httpstat.usがちょっとしたテストに便利

とあるWebのAPIをコールして、レスポンスが返ってこずタイムアウトしたときの処理を書きたかったのだけれども、諸事情によりMockサーバを使うことができず、ガチのhttpsコールを外部に飛ばした上でタイムアウトさせたくなった。 URLは書き換え可能だったので…

Selenium IDEがChromeで使えるようになっていた

Seleniumといえばブラウザ操作の自動化ツールで、Selenium IDEはFirefoxのアドオンである。いや、であった。いつの間にかChrome Extensionが出来ていたようだ。せっかくなので使ってみた。 Selenium IDEを使えば、ブラウザ操作を"Record"してTest Suiteを作…

Jenkins Pipelineで特定の処理をDockerコンテナ上で実行する書き方3つ

Jenkinsfileを書いていて、一部の処理だけDockerコンテナ上で動かすにはどうすれば良いか調べたところ、なんか色々出てきたのでメモっておく。Jenkinsfile、たまにしか書かないのですぐに全てを忘れてしまう。 Jenkins 2系、Declarative Pipelineを想定して…

Nodebrewでnode.jsインストールしようとしたら失敗した

nodebrewでnode.jsをインストールしようとしたら失敗した。 MacOS version 10.14.6, nodebrew 1.0.1です。 $ nodebrew install v12.13.1 Fetching: https://nodejs.org/dist/v12.13.1/node-v12.13.1-darwin-x64.tar.gz Warning: Failed to create the file W…

Rubyで配列の全要素に対する繰り返し処理の「正しい」書き方(Ruby 2.6.0 Ver.)

久々にRubyを触っていて、色々調べることが多い。 この間見つけた10年前のstack overflowがなんとなく面白かったので適当に言及してみる。「Rubyで配列の全要素に繰り返し処理する正しい方法はなんですか?」 stackoverflow.com 上から二番目の回答が好きな…