2021年3月から4月にZennで書いた記事

2021年3月から4月までの記事

ShortcutKey2URLを使ってブラウザ操作を快適に(Chrome/Firefox拡張機能)

愛用しているShortcutKey2URLというChrome/Firefox用の拡張機能の紹介記事です。
個人的にはとても便利だと思っているので、もっといろんな人に使ってもらえたらなぁと思っています。

Gradle Shadow Pluginで作成したfat/uber JARで、複数のJDBCドライバがロードできない

Gradle Shadow Pluginで、デフォルトだとMETA-INF/services配下が上書きされてしまい、ハマった際の記事です。
忘れたころにまた嵌りそうです、、

社内勉強会で「最近作ったもの」というタイトルで発表しました

社内勉強会で最近作ったものってタイトルで、Goで作ったツールやRedmine issue assign notice pluginについて発表しました。

www.slideshare.net

在宅勤務で通勤時間&肉体的な負荷が無くなったことで、趣味でコード書ける時間が今までより増えたなーって思います。
あと、Goはちょっとしたツールを作って配布するためのものが全て揃っていて素晴らしいです。

Goでファイル一覧+αを出力するCLIのツール(filist)を作りました

Goの勉強も兼ねて、適当な課題見つけてCLIツールをちょこちょこ作っているのですが、他の人が使っても便利かもしれないものが出来たので紹介します。

指定したディレクトリ配下のファイル一覧を再帰的に表示するツールです。

$ filist -s -M .
a.txt   24  3d3a42d900823afcfdfeb6de338bcec1
b/1.txt 81  ae23e0b40e773ac132f477f661e89b86
b/2.txt 163 494ba81d0d828ff9a244da627b5ece47

ファイルパス以外にも、サイズ、更新日時、MD5、SHA1などといった情報も一緒に出力できます。

オプションは下記の通りです。

Usage: filist [options] directory ...
options
  -r, --rel      Print relative path (If neither 'rel' nor 'abs' is specified, 'rel' will be printed first column.)
  -a, --abs      Print absolute path
  -s, --size     Print file size
  -m, --mtime    Print modification time
  -M, --md5      Print MD5 hash
  -S, --sha1     Print SHA-1 hash
      --sha256   Print SHA-256 hash
  -h, --help     Help

オプションの指定順に情報が並ぶので、例えば先頭にMD5で、その後にファイル名、、といった指定もできます。

$ filist -M -r .
3d3a42d900823afcfdfeb6de338bcec1  a.txt
ae23e0b40e773ac132f477f661e89b86  b/1.txt
494ba81d0d828ff9a244da627b5ece47  b/2.txt

全てのファイルにmd5sumかけたい、、っていうようなときに、コマンド組み合わせてワンライナーで書けなくないですが、こういったツール用意しておくと便利かなーって思って作りました。
Goだと各OS用の実行ファイルをシングルバイナリで簡単に提供できるってのがほんと素晴らしいです。

Redmine issue assign notice plugin の v1.2.0 をリリースしました

チケットの担当者が変わったときに、SlackやRocket.Chat、Teamsなどに通知するプラグイン、Redmine issue assign notice pluginのv1.2.0をリリースしました。

Google Chatのメンションに対応しました。
Google ChatのIncoming Webhookの設定などは、下記をご参照ください。

また、下記の2つの問題を修正しています。

  • Rocket.Chat にて、"[]"がエスケープされることで \[KaTeX\] 表示となってしまう。
  • ドキュメントルート以外でRedmineがデプロイされている場合、カスタムフィールド作成へのリンクが正しく動作しない。

2021年1月から2月にZennで書いた記事

Zennで書くことについて

2021年から、技術的な記事(書くのに多少時間がかかるようなもの)は、Zennで書くことにしました。

Zennがとても良いと思ったのは、GitHubで記事が管理できるというところです。

使い慣れたエディタで、時間をかけて(必要に応じてコミットして)記事を書けるというのは、とても便利です。
また、GitHubで草が生えるのも、モチベーションの維持につながっています。

とはいえ、メインは今まで通り はてなBlog のままにするので、時々Zennで書いたことを、こちらのBlogでもリンクとして記載していこうと思います。

2021年1月から2月までの記事

PostgreSQLのtext型に対するINDEX

PostgreSQLのtext型に対してINDEXを張るといった記事です。あまりtext型に対してINDEXを張りたいって機会は無いとは思いますが、、そういった状況になった際に、参考になるかもしれません。
あとMySQLのプレフィックス長指定でINDEXを張れるのはとても便利なので、PostgreSQLにもぜひ入って欲しいです。

利用ライブラリをMavenリポジトリ形式でプロジェクト内のファイルとして保持する(JCenterシャットダウンに向けて)

ローカルにMavenリポジトリ形式でディレクトリ作っておいて、そこでライブラリを管理する方法について書いた記事です。
JCenterでしか公開されていないようなライブラリが、そのままインターネットから消えてしまうような場合になった際の回避策として書きました。

必要なライブラリをMavenリポジトリとして必要なディレクトリ構成でダウンロードするツールも作りました。

各チャットツールのIncoming Webhoookのまとめ

Redmine issue assign notice というRedmineのプラグインを公開しているのですが、こちらで各チャットツールのIncoming Webhookを使うにあたって、やり方を毎回調べる羽目になってしまっていたので、記事にまとめました。

Redmine: View customize plugin の v2.8.1 をリリースしました

View customize plugin の v2.8.1 をリリースしました。

Redmine 3系(Rails4)+View customize 2.7.0以降でPath PatternとCommentsにおかしな文字が入る問題を修正しています。デフォルト値がおかしくなってしまい、新規作成時に下記のような初期値が入り込んでしまっていました。

f:id:onozaty:20210213183934p:plain

社内勉強会で「Selenium入門」というタイトルで発表しました

社内勉強会でSelenium入門ってタイトルで、Seleniumについて発表(LT)しました。

www.slideshare.net

SeleniumはSelenium1の頃によく遊んでいた(Selenium Auto Exec Server(AES)っての作ったりしてた)のですが、Selenium IDEが一度死んだあたりからあまり触らなくなって、時々WebDriver使ってツール書く、、くらいでした。
で、最近どうなってるのかな、、ってのを調べるのを兼ねて、資料にして発表しました。

ちなみにSelenium IDEは確かに一度死にましたが、見事に復活しています。