気まぐれメモランダム / でたらめフィードバック

2023年の投稿

Springセッションスコープの単体テストは要Webアプリケーションコンテキスト

公開:
Java製WebアプリケーションフレームワークのSpringに業務で初挑戦することになりまして、Controllerの単体テスト実装で引っかかったのでメモを残しておきます。SpringにはControllerの単体テスト方法として次の二種類が用意されています。Spring Bootの組み込みAPサーバーを使う方法組み込みAPサーバーを使わず、代わりにSpring MVCのテストフレームワークであるMockMvcを使う方法MockMvcを使う方法はさらに次の二種類に分かれます。SpringのWebアプリケーションコンテキストを自動構成で有効にする方法テスト対象ControllerクラスにAutoConfigureMockMvcアノテーション
エントリを表示

気づかなかったLinuxシリアル通信プログラミングチェックポイント

公開: / 最終更新日:
2023-12-17(Sun)追記:「送受信データが変換される」を追加しました。またLinux manページのリンク先をDebianのそれに変更しました(OSDNが安定しないため)。USB-シリアル変換ケーブルで接続するデバイスからデータを受信するLinuxアプリを業務で作成することになりました。Webエンジニアなのに。そもそもシリアル通信もLinuxアプリもやったことのない人間にそんなタスクをアサインするのはどうかと思うのですが、まあそこはそれ、いろいろ調べてなんとかかたちにするところまで持っていきました。その過程で気づいた、Webにある情報では気づきにくかった、あるいは見当たらなかった情報をいくつかメモとして残しておきます。ちょっとどこまで一般化できるかわからないのですが………
エントリを表示

pytest+motoでセットアップを共有する方法

公開:
Python初心者かつAWS初心者の私がAWS Lambdaの開発をはじめて半年強、ようやくpytestを使って単体テストを本格的に書けるようになってきました。motoというAWSのモックサービスを使うとローカルであることをほぼ意識せずに単体テストが書けることも学習。ただしmotoのもっとも手軽な使用法であるデコレータでの指定だとせっかくのAWSモックセットアップがテストケース間で共有できません。テストケースをクラスでグループ化してクラスにデコレータで指定しても駄目。まあそんなものかと思っていたのですが、「共通化できるのでは?」との声があがったので本腰を入れて調べて、無事解決に至ったのでメモとして残しておきます。…
エントリを表示

日時の秒未満精度のプログラミング言語による違い(2023年9月現在)

公開:
プログラミング言語によって日時の秒未満の精度が異なる点を意識しなければならないケースに先日見舞われ、せっかくなので思いあたるプログラミング言語の秒未満精度をざっと追いかけてみました。親しみのないものも多く誤りがあるのではないかと思いますが、取り急ぎの結果は次のとおり。言語精度補足JavaScriptミリ秒ナノ秒対応の標準ライブラリ(Temporal)がリリース待ちPHPマイクロ秒Pythonマイクロ秒Swiftミリ秒?sub-millisecond precisionとの表記あり.NET(C#他)ナノ秒書式化の精度は7桁までC++ナノ秒Goナノ秒Javaナノ秒(LocalDateTime)Java 8より前は…
エントリを表示

Cognito Authentication Extension Libraryのメソッドはnullを返すことあり(2023年9月現在)

公開:
Amazon CognitoアクセスライブラリとしてAWSが.NET向けに公式に提供するAmazon Cognito Authentication Extension Library。README.mdに掲載されているコード片からだとCognitoUser.StartWithSrpAuthAsyncメソッドはnullを返すことがないように読めるのですが、実際には確認済みでないCognitoユーザーを指定して呼びだすとnullを返すことを確認しました。なんで例外送出でないのかは不明。こういう落とし穴は気づきづらくてこまりますね……。皆様もお気を付けを。
エントリを表示

ロートルプログラマのC++再訪記

公開:
あんなに親しかったC++と疎遠になって早や十数年。次にネイティブのプログラムを作るならRustを使いたいなあと思っていたところ、何の因果かふたたびC++と相まみえることになりました。疎遠になっていたとはいえ噂話は耳にする間柄、いまどきのC++(いわゆるModern C++)がかつてとは異なる様相を呈していることくらいまでは把握していましたが、細部に目を凝らしたりまでは当然しておらず、何がどうなっているかは浦島太郎状態。しかしC++を舐めてかかると痛い目にあうことは過去の経験で叩き込まれています。これはまずいと必死になってキャッチアップ、なんとか一息付くところまでたどり着いたので、せっかくですからまとめておきます。…
エントリを表示

daisyUIでサイトリニューアル

公開:
サイトをリニューアルしてしまいました。つい魔がさして。主目的はCSSフレームワークの変更です。これまで採用してきたMaterial Design Lite(MDL)は重たい上に早々に開発終了したので移行は長年の懸案だったのですが、移行先の第一候補としていたGoogle公式の後継プロジェクトは進捗がはかばかしくなく、一方たまに思いついて情報収集するくらいではよさそうなCSSフレームワークに巡り合えず、でいままで来てしまっていました。しかし最近になって知ったdaisyUIがJavaScriptなしにもかかわらず見た目が今風、リニューアル前にMDLで実現していたことはすべて解決できたので、この機を逃してはなるまいと切り替えに踏み切った次第です(daisyUIがベースとする…
エントリを表示

Boto3 S3 Client APIのupload_file関数はメタデータ設定可能

公開:
必要に迫られてAWS SDK for Python (Boto3)を使った S3 へのファイルアップロード機能について調べたところ、クライアント API のupload_fileではオブジェクトメタデータは設定できないとする Web ページをいくつか目にしました。たとえば次。python で S3 にメタデータをつけてファイルをアップする - たそらぼAWS S3 オブジェクトの Metadata 管理 - public note実際にはUploading files - Boto3 1.28.14 documentation の The ExtraArgs parameterで説明されているとおり、upload_file でもメタデータは設定できます。…
エントリを表示

シャドウDOMを使わないLitElementでslot要素を使う方法

公開:
Lit、というかウェブコンポーネントには子要素を指定位置に再配置するためのslot 要素という機能があります。これはシャドウ DOM用のため、thisを返すcreateRenderRootメソッドを定義するなどして普通に DOM にレンダリングするようにしたLitElementでは機能しません……そのままでは。しかし考えてみれば普通に DOM にレンダリングしたのですから普通に DOM として操作すればよいだけの話です。幸いなことにその実現を容易にするライフサイクルメソッドをLitElementクラスは定義可能です。レンダリング前に呼び出されるconnectedCallbackメソッドで子要素を参照できます…
エントリを表示

Amazon Cognito関連のエラー応答を整理する(2023年7月版)

公開:
AWS 提供サービスのご多分に漏れずAmazon Cognitoも求める情報を膨大な公式ドキュメントの中から得るのに骨が折れます。Cognito はユースケースが幅広いこともありその苦労もひとしお。特に苦労したのはエラー応答に関する情報で、まとまっているのを Web ではあまり見かけないように思うので、自分用の整理も兼ねてメモしておきます。Cognito のエラーハンドリングが必要になるパターンは典型的には次かと思います。URL 指定で直接アクセスしたときAPI Gateway のオーソライザーに設定したとき各種 SDK でアクセスしたとき以下それぞれについて。

URL 指定で直接アクセスしたとき

エントリを表示

Amazon CognitoはEメール送信数超過でエラーLimitExceededExceptionを返す(2023年7月現在)

公開:
先日見舞われて愕然としたので共有。AWS の提供する認証サービスAmazon Cognitoはメール他による通知機能を提供しています。このうち E メールに関してはAmazon SESと関連付けないかぎり 24 時間の送信数が最大 50 件になります(Amazon Cognito のクォータ - Amazon Cognitoより)。実運用に耐える数字とは思えませんが、AWS としては SES との関連付けが前提で、関連付けなしは評価用等の想定なのでしょう。ではこの制限を超えたらどうなるか。当然 E メールは送られず、Cognito の API はエラーLimitExceededException…
エントリを表示

RMWCとminifyの組みあわせでMDCのCSSが失われたときの対応方法

公開:
こんな現象に遭遇するのは私くらいかなあと思いながらメモ。個人用勤怠記録 Web アプリWorking time aroundは次のサードパーティーライブラリ・ツールを利用しています。UI キットにRMWC。React で Google 謹製 Web 向け Material Design CSS フレームワークMaterial Components for Web(以下 MDC)を利用可能にするコンポーネントライブラリで、MDC に依存もともと使っていた Google 謹製のMDC Reactの開発が終了してしまったのでやむを得ず乗り換えたもの(乗り換えの顛末)バンドラーにParcel先日ライブデモ
エントリを表示

「アウラ」のアウラに目を凝らす - ベンヤミンや「複製技術時代の芸術作品」などをめぐって

公開:
「アウラ」という言葉を目にするとつい身構えてしまいます。20 世紀前半のドイツの思想家ヴァルター・ベンヤミン由来のこの言葉は、時に氏の論文「複製技術時代の芸術作品」とセットで、主に芸術作品の芸術性をめぐる議論で参照されます。たとえば次のように。裕福な少数の人びとの手の中にあった藝術がもっていた独特の高級感(それをベンヤミンは「アウラ」[光輝]と呼びました)あるいは次のように。20 世紀を代表する哲学者のひとりであるヴァルター・ベンヤミンは、複製技術が普及する近代以前の時代を考察し、複製不可能な芸術が持っていた「いま、ここにしかない」という「1回性」や「礼拝的価値」を「アウラ」と呼び、映画や写真が芸術の「1回性」を喪失させ、芸術そのものが世俗化していくことを肯定した。
エントリを表示

Processing製フォント一覧表示ユーティリティ `ProcessingFontScape` 公開

公開:
自分の中で必要性が高まったので、以前作成した Processing のフォントカタログの機能をすこし強化してあらためて GitHub リポジトリとして公開しました。DBC-Works/ProcessingFontScape: A small utility that draws a list of fonts available in Processing.ささやかなユーティリティですが、お役に立てば幸いです。なおREADMEでも触れましたが、Windows 10 以降の環境では Processing はすべてのユーザー用にインストールしたフォントしか利用できません。にもかかわらず `PFont.list()の戻り値にはログインユーザーでのみ利用可能なフォント名も含まれます。皆様お気をつけを。…
エントリを表示

失われた言葉を - M01D新曲"Around (lost) words"公開

公開:
――取り戻す術はあるものだろうかと思いながら。Around (lost) wordsKORG M01D での新作、"Around (lost) words"を公開しました。お聴きいただければ幸いです。『ミュージック・マガジン』2023 年 2 月号でひさしぶりにゴルジェという単語を見かけたのですが、室内ゴルジェというジャンルが存在するとしたらもしかしたらその片隅に居場所があるかもしれません。
エントリを表示

互いを排除せずに - M01D新曲"Will(to keep death away)"公開

公開:
――存在するために。Will(to keep death away)KORG M01D での新作、"Will(to keep death away)"を公開しました。お聴きいただければ幸いです。今回の作品には "Techno" のタグをつけました。私はジャンルを聴き分ける熱意と能力に欠ける人間なのですが、今後自作にはいままでよりすこし積極的に、誤用を恐れずにタグ付けしていこうと思います。タグ付けもまた一つの意志表明の手段である――昨年末にアンダーグラウンド・レジスタンスの作品をある程度あらためてまとめて聴いて、そう考えを改めました。
エントリを表示

Pick up work

最近のエントリ

アーカイブ

ブログ情報