IntelliJ Platform Pluginの開発にて、ToolWindow上で、Dialog・Balloon・StatusBarなどを使って改行ありのメッセージを表示してみた

IntelliJ Platform Pluginを作っている際、何らかの方法でメッセージをUI上に表示したくなりました。 実現方法を調べたところ、公式ドキュメントに Notification として記載がありました。 Notifications | IntelliJ Platform Plugin SDK そこで、各Notifica…

IntelliJ Platform Pluginの開発にて、ToolWindow上で、テーブルの絞り込み条件入力で使うコンポーネントを SearchTextField にしてみた

以前の記事では、テーブルの絞り込み条件を入力する項目として TextField を使っていました。 IntelliJ Platform Pluginの開発にて、ToolWindow上で、TextFieldの入力値に従って絞り込み可能なテーブル(JBTable)を表示してみた - メモ的な思考的な そんな中…

IntelliJ Platform Pluginの開発にて、ToolWindow上で、DialogWrapperとPropertiesComponentを使って、設定の保存と読み込みを行ってみた

以前、TextFieldの入力値により、テーブルの値を絞り込むことをためしてみました。 IntelliJ Platform Pluginの開発にて、ToolWindow上で、TextFieldの入力値に従って絞り込み可能なテーブル(JBTable)を表示してみた - メモ的な思考的な 以前は部分一致のみ…

IntelliJ Platform Pluginの開発にて、ToolWindow上で、CellRendererを使ってテーブル(JBTable)の列に画像を表示してみた

前回、ToolWindow上にテーブル(JBTable)を表示してみました。 IntelliJ Platform Pluginの開発にて、ToolWindow上で、TextFieldの入力値に従って絞り込み可能なテーブル(JBTable)を表示してみた - メモ的な思考的な 今回は、テーブルの列に画像を表示できる…

IntelliJ Platform Pluginの開発にて、ToolWindow上で、TextFieldの入力値に従って絞り込み可能なテーブル(JBTable)を表示してみた

以前、「ToolWindow上に色々なコンポーネントを表示してみる」ことを試してみました。 IntelliJ Platform Pluginの開発にて、Kotlin UI DSL Version 2 や Swing を使って、ToolWindow上にコンポーネントを表示してみた - メモ的な思考的な そんな中、「TextF…

IntelliJ Platform Pluginの開発にて、ApplicationManagerやToolWindowManagerを使って、Actionの中でToolWindow上のlabelを更新してみた

IntelliJ Platform Pluginの開発にて、「ToolWindow上のボタンをクリックすると、ラベルの値が更新される」みたいなことを実装したくなりました。 ボタンとラベルを定義したのと同じファイル内であれば、 actionListener を使って以下のように実装できます。…

IntelliJ Platform Pluginの開発にて、RubyMineなどのIntelliJ IDEA以外のIDEがRun Pluginで起動するようにしてみた

IntelliJ Platform Plugin Template を使って IntelliJ Platform Pluginを開発している場合、 デフォルトでは Run Plugin すると IntelliJ IDEA Comunity JBR (JetBrains Runtime) はIDEに同梱されているもの https://github.com/JetBrains/JetBrainsRuntime…

IntelliJ Platform Pluginの開発にて、Kotlin UI DSL Version 2 や Swing を使って、ToolWindow上にコンポーネントを表示してみた

前回、IntelliJ Platform Plugin Templateを使って、JetBrains系IDEのプラグイン開発の Hello, world 的なことをやってみました。 IntelliJ Platform Plugin Templateを使って、「エディタのコンテキストメニューからダイアログを表示する」だけのJetBrains…

IntelliJ Platform Plugin Templateを使って、「エディタのコンテキストメニューからダイアログを表示する」だけのJetBrains系IDEプラグインを作ってみた

JetBrains系IDEを使って日常的にコードを書いていますが、ふとJetBrains系IDEプラグインを作ってみたくなりました。 とはいえ、JetBrains系IDEプラグインの作り方がよく分からなかったので調べてみたところ、 IntelliJ Platform Plugin Template というリポ…

Railsにて、1つのテーブルの複数列で同じテーブルを参照し、参照先を主キーもしくは主キー以外の属性としたい場合に、モデルやマイグレーションの定義方法を調べてみた

Railsを使っている中で、記事のタイトルのようなことがしたくなりました。 例えば、以下のようなことがしたくなりました。 applesとcolorsという2テーブルがある applesテーブルには以下の3列があり、いずれもcolorsと関連を持たせたい 列について 果実の色 …

Railsにて、トランザクションの中だとモデルのid列はいつ設定されるのか確認してみた

Railsを使っている中で、「トランザクションの中だとモデルのid列はいつ設定されるのか」が気になったことから、確認してみたときのメモを残します。 目次 環境 動作確認 余談:Railsのバージョンにより、トランザクション内での return 等の挙動が変わる ソ…

書籍「Solving Identity Management in Modern Applications - 2nd edition」を読みました

前回、SAML2のSP-initiated フローをためしてみました。 Python + Flask + pysaml2 でSP、KeycloakでIdPを構築し、SAML2 の SP-initiated フローでSAML認証してみた - メモ的な思考的な 書籍「SAML入門 - かなめりぜ」を読んだり手を動かしたりして、なんと…

Rubyのオブジェクト配列にて、各要素の同一属性で同じ値が何個あるかを数える

Rubyのオブジェクト配列にて、各要素の同一属性で同じ値が何個あるかを数えたくなる機会がありました。 例えば class Apple attr_reader :name, :grower def initialize(name, grower) @name = name @grower = grower end end apples = [ Apple.new('シナノ…

Python + Flask + pysaml2 でSP、KeycloakでIdPを構築し、SAML2 の SP-initiated フローでSAML認証してみた

以前、OpenID Connect によるシングルサインオン環境を構築しました。 Railsとdoorkeeper-openid_connectやOmniAuth を使って、OpenID Connectの OpenID Provider と Relying Party を作ってみた - メモ的な思考的な OpenID Connect以外でシングルサインオン…

Python + playsound の動作環境を整備して、macからmp3ファイルの音を鳴らしてみた

mac + Pythonな環境で、mp3ファイルの音を鳴らしたいことがありました。 調べてみたところ、いくつかパッケージがあるようでした。 Playing and Recording Sound in Python – Real Python Pythonでサウンドを扱う #Python - Qiita 今回の場合は単に鳴らせれ…

Python + nfcpy + PaSoRi RC-S380 + launchdで、macにログイン後「FeliCaのIDmを通知センターへ出力する」処理を自動起動してみた

以前、Raspberry Pi 2 + PaSoRi RC-S380 + nfcpyにて、FeliCaを読み込んでみました。 Raspberry Pi 2 + PaSoRi RC-S380 + nfcpyにて、FeliCa読み取り時にPowerOffし、Slackへ通知してみた - メモ的な思考的な そんな中、「RC-380はmacには対応していないけど…

Pythonを使って、BOOTHで販売している英辞郎のテキストデータをMDict化し、BOOX Leaf2 の辞書に登録してみた

去年くらいから、 E-Inkディスプレイ搭載のAndroid端末 BOOX Leaf2 で、KindleやO’Reillyアプリの電子書籍を読んでいます*1。 BOOX Leaf2 – SKT株式会社 普通のAndroidタブレットで電子書籍を読むのに比べたら、 Leaf2 は目はあまり疲れない感じです。 また…

Pythonで、実行時のmオプションやpyproject.toml の project.scripts の指定による、実行可能なライブラリを作ってみた

Pythonで自作ライブラリを作った時に python -m <パッケージ名> 例: $ python -m hello <ライブラリで指定したコマンド名> 例: $ hello のような形でライブラリを実行したくなりました。 そこで、どんなふうにすればよいか試してみたので、メモを残します…

Railsにて、ActiveSupport::TaggedLoggingやActiveSupport::ErrorReporterを使って、Request-IDをログへ出力してみた

Railsをproductionモードで動かしている時、ログに I, [*** #237177] INFO -- : [95c95a65-608b-45d3-aa02-bcf61950e7c2] Completed 204 No Content in 1ms と、 [95c95a65-608b-45d3-aa02-bcf61950e7c2] のようなHTTPリクエストを識別できるようなタグがつ…

Djangoにて、ASGIミドルウェアのasgi-correlation-idを使って、HTTPリクエストごとの識別子(Request-ID) をログに出力してみる

前回の記事では、 Django + django-log-request-id という構成で、HTTPリクエストごとの識別子(Request-ID) をログに出力してみました。 また、記事ではRequest-IDをログに出力するサードパーティライブラリを調べました。その中にASGIミドルウェアの asgi-c…

Djangoにて、 django-log-request-id を使ってHTTPリクエストごとの識別子(Request-ID) をログに出力する

OpenTelemetryやログ集約などが不要そうな小さなシステムであっても、HTTPリクエストごとの識別子がログに含まれていると、何かあった時に「どのHTTPリクエストによりログが出力されたのか」を追いかけやすいです。 そこで、DjangoでHTTPリクエストごとの識…

2023年の振り返りと2024年の目標

例年通り、2023年の振り返りと2024年の目標っぽいものを書いてみます。 目次 2023年の振り返り 身近な技術の素振り・深堀りをして、技術のキャッチアップを継続 Ruby / Rails / React まわり OpenTelemetry / Redash / Playwright まわり JetBrains IDEまわ…

React + react-jsonschema-form にて、 JSON Schemaを元にしたフォームからデータを送信し、バックエンドのDjango REST frameworkに保存してみた

これは react-jsonschema-formのカレンダー | Advent Calendar 2023 - Qiita Djangoのカレンダー | Advent Calendar 2023 - Qiita の25日目の記事です。 ここまでの react-jsonschema-form (RJSF) の Advent Calendar では、JSON Schema を元にしてフォーム…

react-jsonschema-formにて、FormのExperimental featuresをためしてみた

これは「react-jsonschema-formのカレンダー | Advent Calendar 2023 - Qiita」の24日目の記事です。 react-jsonschema-form (RJSF) の機能の中には Experimental features と呼ばれる機能があります。 この機能は Warning: This API is experimental and un…

react-jsonschema-formのマイグレーションガイドを読んでみる

これは「react-jsonschema-formのカレンダー | Advent Calendar 2023 - Qiita」の23日目の記事です。 react-jsonschema-form (RJSF) の公式ドキュメントには Migration Guides というページがあります。 Migration Guides | react-jsonschema-form このペー…

react-jsonschema-formにおける、バリデーションエラー時の気になる挙動と対応について

これは「react-jsonschema-formのカレンダー | Advent Calendar 2023 - Qiita」の22日目の記事です。 react-jsonschema-form (RJSF) では、JSON Schemaを元にバリデーションができます。 ただ、バリデーションエラーとなったときに気になる挙動がいくつかあ…

react-jsonschema-formで、additionalPropertiesを使った時の表示を確認してみる

これは「react-jsonschema-formのカレンダー | Advent Calendar 2023 - Qiita」の21日目の記事です。 JSON Schemaには additionalProperties キーワードがあります。 Additional Properties | JSON Schema - object これを使うことで、JSON Schemaにて定義し…

react-jsonschema-formにて、formContextを使ってWidgetやFieldに値を渡してみた

これは「react-jsonschema-formのカレンダー | Advent Calendar 2023 - Qiita」の20日目の記事です。 react-jsonschema-form (RJSF) では、 uiSchemaに自作の option を定義することで、特定のWidgetに独自の値を渡すことができます。 詳細については、Adven…

react-jsonschema-formに含まれる、データを変換する系のユーティリティ関数を使ってみた

これは「react-jsonschema-formのカレンダー | Advent Calendar 2023 - Qiita」の19日目の記事です。 react-jsonschema-form (RJSF) にはいくつかのユーティリティ的な関数が含まれています。 RJSF utility functions, constants and types | react-jsonsche…

react-jsonschema-formにて、ArrayのTemplateをカスタマイズしてみた

これは「react-jsonschema-formのカレンダー | Advent Calendar 2023 - Qiita」の18日目の記事です。 9日目の記事ではTemplateのカスタマイズとして BaseImputTemplate ObjectFieldTemplate FieldTemplate をためしました。 ただ、 react-jsonschema-form (R…