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は確かに一度死にましたが、見事に復活しています。

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

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

担当者にグループをアサインするとエラーとなるという致命的な問題でした。

私の関わるプロジェクトでも、先日やっと導入しました。とっても便利ですね!

2020年音楽振り返り

2020年はコロナもあって、数年ぶりにまったくライブに行かない年になりました。
逆に家での時間が増えたので、その分家で音楽を聴く時間も増えたと思います。

Spotifyの2020まとめでみた12月3日時点でのトータル視聴時間は 74,646時間でした。
夜中はYouTubeでPV流しながら作業するし、SoundCloudでも音楽聴くので、それを考慮すると、1日平均で4時間以上は音楽聴いていたようです。

f:id:onozaty:20210101171121p:plain

  • トップアーティスト
    1. eill
    2. ずっと真夜中でいいのに。
    3. Rin音
    4. YOASOBI
    5. ジャスティン・ビーバー
  • トップソング
    1. SPOTLIGHT (eill)
    2. tell me tell me (m-flo laves Sik-K & eill & 向井太一)
    3. 運動 (abelest, 諭吉佳作/men)
    4. MILABO (ずっと真夜中でいいのに。)
    5. snow jam (Rin音)

2019年のSpotifyまとめの画像がもう見れないので比較画像は貼れないのですが、、2019年は洋楽ばっかり(1位のアーティストはEd Sheeran、上位5位も全部洋楽)だったので、それとはうってかわって2020年は邦楽を多く聴く年になりました。

eill

2020年に一番聴いた&ハマったアーティストはeillでした。 tell me tell me で、この良い声のアーティストは誰だろう、、ってところから始まり、SPOTLIGHTを聴いてすぐに大好きになりました。曲が良いのはもちろん、声がとーーっても良いです。


eill | SPOTLIGHT (Official Music Video)

SPOTLIGHT以外でも、この夜が明けるまで、20、MAKUAKE、最近だとFAKE LOVE/ や 片っぽ とか、たくさん良い曲があります。
もっといろんな人に聴いて欲しいアーティストです。ちょっとしたきっかけがあれば、すぐに有名になるんじゃないかなーって思っています。

ずとまよ、Rin音、YOASOBI、ヨルシカ

Spotifyのプレイリストで良く聴くのはグローバルTop50や日本Top50、Top Hits Japan、Tokyo Super Hits!、Teen Cultureといったところですが、そこからYOASOBI、ずとまよ、Rin音やヨルシカを知って、どんどん聴くようになりました。
どのアーティストも特徴があって、好きな曲がたくさんあります。家族も好きで、小学2年生の娘も良く歌ってます。

Spotifyのおかげでいろいろ新しい音楽を見つけることができているので、ほんとSpotifyすばらしいです。家族みんな音楽が好きなので、Premium Familyに入っています。5人家族で1480円って価格も安すぎるな、、って感じです。

諭吉佳作/men

もっと聞きたかったアーティストです。Spotify上だと楽曲が少ないのですが、、YouTubeやSoundCloudでも聴いています。一番好きな曲は「洋装の語る今日は」で、リズミカルに流れる曲の上でさらに流れるような声という、声も楽器のようなすばらしい曲です。

曲と声のどちらもすばらしいアーティストなので、2021年はもっと楽曲出してくれることをすごーーく期待しています。

2021年に向けて

ストリーミングでのライブはいくつか視聴しましたが、やはり周りのみんなで歌ってアーティストと一緒に盛り上がるライブが最高なので、コロナが収束して、そういったライブにまた参戦できればな、、って思っています。

Flywayでマイグレーション完了時に決められたSQLを実行する

JavaのDBマイグレーションライブラリとしてFlywayを愛用していますが、マイグレーションが全て完了した後に、特定のSQLを流せないかなと調べてみたところ、Callbackという仕組みがあることがわかりました。

マイグレーションが全て成功した後だったり、1マイグレーション毎だったりと、いろいろなコールバックというかフック的なものが用意されています。

マイグレーションが全て完了した後だと、afterMigrateが使えるようです。afterMigrate.sqlを配置し、そこにマイグレーションが全て完了した後に流したいSQLを書けばOKです。

今回これを使いたいと思ったのは、PostgreSQLで参照しかできないユーザを用意したいと思ったところからでした。
PostgreSQLだと、下記のようなSQLでスキーマ内の全部のテーブルに対して権限を与えられます。(以下はpublicスキーマの全てのテーブルに対して、user2にSELECT権限を与えています)

GRANT SELECT ON ALL TABLES IN SCHEMA public To user2;

このSQLは、SQLを実行した時点で存在するテーブルに対してのみしか権限が付与されません。その後に追加されたテーブルがあった場合には、そのテーブルに対しても適宜権限を付与する必要がでてきます。

テーブル追加されるごとに行うのはかなり煩雑なので、afterMigrate.sqlにこのSQLを書いておけば、毎回全てのテーブルに対して権限を与えることができてとても便利そうです。

試したプロジェクトのリンクも張っておきます。

Redmine issue assign notice plugin を作りました

この記事はRedmine Advent Calendar 2020 17日目の記事です。

チケットの担当者が変わったときに、SlackやRocket.Chatなどに通知するプラグインを作りました。

チケットの担当者が変わった時に、下記のようなメッセージを投稿してくれるようになります。

  • 1行目: 担当者変更に関する情報
  • 2行目: プロジェクト名、トラッカー、チケット番号、題名、ステータス
  • 3行目: チケット新規作成時は説明、チケット変更時は注記(先頭200文字まで)

https://github.com/onozaty/redmine_issue_assign_notice/raw/main/screenshots/slack_message.png

また、オプションでメンションを送ることもできます。(メンション先のIDは、ユーザのカスタムフィールドを利用します)

https://github.com/onozaty/redmine_issue_assign_notice/raw/main/screenshots/slack_mention.png

詳しい利用方法は、下記をご参照ください!

Redmine3.0.2と、最新の4.1.1で動作することを確認しています。
また、通知先としてSlackとRocket.Chatで確認していますが、Incoming webhookでtextしか使っていないので、Incoming webhookに対応している他のチャットツールでも動くと思います。(メンション周りはツールによって異なるので、動かないところあったら教えてください!)

こんなプロジェクトにおすすめ

  • 担当者を頻繁に切り替えながら進めていくようなプロジェクト
    • View customize使って、ステータス毎に担当者を切り替える仕組みと組み合わせるとさらに捗ります
  • とりあえずRedmineとSlackなどを連携してみたけど、大量に通知が流れるだけで、あまり活用されていないプロジェクト
    • 本当に欲しいのは「自分が担当者になったことにすぐに気づける仕組み」だったりしないでしょうか