エンジニアのはしがき

プログラミングの日々の知見を書き連ねているブログです

バックエンド

BunからFirestoreにDocumentを追加しようと思ったらうまく動かなかった

ちょっとハマってしまったのでメモがてらに書きます。。 やりたかったこと 以下のようなFirestoreのあるCollectionにDocumentを追加するような処理を書いてました。 import { cert, initializeApp } from "firebase-admin/app"; import { getFirestore } fro…

Spring(Java)で雑にOpenAI APIにニュースを要約させてみた

日頃技術系のニュースを追う際に、よく見るサイトの記事を俯瞰して見たいので毎日スクレイピングした記事をDBに格納して、自作アプリから見れるようにしています。 ↓こんな感じ https://birds-eye.ts-soda.net/news 特に大きな問題はなく運用できていたんで…

Spring FrameworkでRDBMSと通信する手段について調べた

以前Spring Frameworkについて調べていた時、RDBMSとの通信方法をまとめていたのですが記事として公開せず放置していたので公開しておきます。

MySQL(InnoDB)のTransaction Isolation Levelsについてまとめる

DBのロックについて考える際にTransaction Isolation Levelsを確認することはよくあると思いますが、バックエンドを触ってない期間が長くなると細かい部分を忘れてしまうのでまとめてみました。

Mockito+Springで単体テストを書く

業務ではバックエンドにSpringを使っているのですが、単体テストを書く場合のモックフレームワークとしてMockitoを使っています。 割合としてはE2Eテストの方が多く単体テストを書く機会が少ないのですが、今後は単体テストも割合を増やしていきましょうとい…

ExcelでCSVの集計頑張るのが辛いならSQLiteでSQL書くのもアリ

SQLiteを今まで使ったことが無かったのですが、先日ExcelでSQL的なことをしようとして思うように書けず辛かったのでSQLiteへデータを流し込んでSQLのクエリで集計しました。 SQLiteはPostgreSQL, MySQL等と比較すると気軽にデータを格納・集計できるので、普…

InnoDBのlocking read

tm-progapp.hatenablog.com ↑の記事にてInnoDBのロックについてまとめましたが、公式ドキュメントを読み漁る中で「locking read」と「non-locking read」という言い回しがあり、気になったのでまとめてみました。 MySQL :: MySQL 8.0 Reference Manual :: 15…

InnoDBのロックについてまとめた

MySQLを実務で触っているのですが、改めてInnoDBのロックの仕様について頭の整理をするためにまとめてみました。 ロックの種類 共有ロック 排他ロック ロックの範囲 レコードロック ギャップロック ネクストキーロック テーブルロック ロックの範囲はどのよ…

JavaでJsoupとSeleniumでWebサイトをスクレイピングしてみた

最近IT系のニュースサイトをスクレイピングするプログラムを走らせて、ネットサーフィンする時間を節約するようになりました。 スクレイピングにはJavaのJsoup, Seleniumを使っているのですが、今回はその実装内容について書き残してみます!

SpringでInterfaceを@Autowiredするだけで動作するのはなぜ?

JavaとC#は似て非なるものだと日に日に感じる今日この頃です。

WindowsのGit Bashでmysqlに接続できなかった

Windowsで開発する時は、ターミナルとしてGit Bashを多用しています。が、たまに特有の仕様にひっかかってしまうことがあり、今回もそんなトピックとなります。

Serverless Framework+AWS Lambda(Java8)でHello worldしようとしたらNoClassDefFoundError

少しずつですがJavaのビルドツール周りも分かりかけてきたなという矢先、エラーで数時間ハマりました…😭

Javaでの非同期処理の方法についてピックアップした

まだまだJavaの勉強中です。 先日、そういえばJavaで非同期処理する方法をまだ知らなかったなぁと思い調べてみました。

PostgreSQLのTOASTって何だろう

1つ前のPostgreSQLについてのブログ記事でついでに調べた内容です。そのまま記述すると長文になりそうでしたので分割しました。 PostgreSQLも掘り下げれば掘り下げる程、本当に奥が深い世界だと実感しますね😑

RDS(PostgreSQL)のストレージを拡張した話

こんばんは! データベースは運用し始めてから気づくような問題も多いかと思いますが、今回はそんなトピックです。

.NET CoreからGCPのText-to-Speech APIでテキスト読み上げ音声を生成する

様々な企業がテキストから読み上げ音声を生成するAPIを公開していますが、その中でもGCPのText-to-Speech APIは日本語読み上げのクオリティが高かった為、実装をしてみました。 ↓Text-to-Speech APIは過去記事でラズパイ(Python)でのテキスト読み上げの時に…

言語によって曜日を現す数値の実装はバラバラだった

タイトルの通りです。 各プログラミング言語の曜日を現す数値を調べてみたところ、見事に統一されておらず「何でだよ!」と言いたくなった、そんな記事です。

達人に学ぶDB設計 徹底指南書を読了しました

近々DB設計の機会があるので、一度網羅的にデータベースを理解したいと思い、「達人に学ぶDB設計 徹底指南書」を読みました。今回は読了後のまとめです。 ↓Amazonにて購入できます 達人に学ぶDB設計 徹底指南書 | ミック | 工学 | Kindleストア | Amazon

ER図はPlantUMLで書いて楽しよう!

こんばんは! 仕様書に書く図ってチームで管理する上で統一感を出すのって難しいですよね。 私の場合、色や枠線などのデザインも人によって微妙に違ったりすることも多かったのですが、 そのせいで別の仕様書にコピペするとデザインが合わずキモチワルイ感じ…

ポートフォリオサイトが完成しました!

空き時間を見てはちまちまとNext.jsで書いていたポートフォリオサイトを公開しました! 今後も追加する内容があればマイナーアップデートを続けていくつもりです😊 portfolio.ts-soda.net github.com

RDS Proxyを使いたかったけどNpgsqlから接続できなかった(解決済み)

AWSでLambda+RDSの構成を構築すると、Lambda自身が起動の度にRDSへのコネクションを張る為に負荷が大きく、あまり宜しくない構成であると言われてきました。 そのような構成の場合、RDS ProxyをDBプロキシとしてRDSの手前に配置することでコネクションのプー…

.NETライブラリのClosedXMLで既存のExcelファイルを編集する

Excelは好きですか? 僕は嫌いです。規則性に乏しい罫線やセル結合にまみれたエクセルを加工するとかうんざりしますね。 …しかしながら最近既存エクセルのプログラムによる修正を強いられましたのでその方法を記録しておきたいと思います 本記事では.NETライ…

Docker上でASP.NET CoreのWebAPIを動かす

ASP.NET CoreをDockerで動かしてみたいなーとなんとなく思ったので動かしてみました。 Visial Studioは使わず、VSCodeで動かす想定です。

Unicodeの結合文字列がバグを呼び起こしてしまった

エクセルに比べれば外部のCSVを扱う処理はまだ悩むことが少ないだろうと油断していたところ、 先日かなり頭を悩ませたので戒めとして記録したいと思います。

AWS Glue(Python shell)をLambda代わりに使ってタイムアウトを伸ばす

AWS Lambdaは、サーバ自体のお守りが不要なのでさくっとバックエンドを構築したい場合はかなり便利です。 ただ難点を挙げるならば、タイムアウトが15分までしか伸ばせない点。 これは残念ながら仕様となっているのでどうしようもできません。 Lambda のク…

ASP.NET CoreがLambda上で何故か動かず四苦八苦した

何が起こったか フロントエンドから呼ばれるAPIサーバをAWS Lambda(ASP.NET Core)で構築していたのですが、 とあるリリース作業時に最新バージョンをLambdaへデプロイした後、APIサーバが常にエラーを返すようになってしまいました。 原因 ASP.NET Coreの…

APIGateway+Lambdaによるアプリサーバをバージョン管理する

APIGatewayの統合リクエストとLambdaの組み合わせでバックエンドを構成することが多いのですが、最近になってバージョニングが出来ることを知り、いろいろと調べてみた結果を書き連ねていきたいと思います!

.NETライブラリのClosedXMLでExcelファイルを生成する

Excelは好きですか? 僕は嫌いです。大概の内容はマークダウンで済むと思っています。 しかしながら、最近バックエンド(ASP.NET Core)でExcel出力機能の実装を強いられましたのでその方法を記録しておきたいと思います。 ↓フロントエンド(Node.js)でエクセル…

Node.jsでお手軽にHTMLをPDF化させてみる

PDFを生成するjsライブラリとして、以前からpdfmake(http://pdfmake.org/#/)を使っていたのですが、 チマチマソースをいじっては実PDFの出力結果を見て、また修正して…といった繰り返しが大変苦痛でした。 HTMLのようにブラウザの開発者ツールでお手軽微調整…

Lambdaで安易に静的メンバーを扱ってドハマリした

業務では、C#でAWS Lambdaをでゴリゴリに使い倒すことが多いのですが、 先日、短期間に連続してLambdaを実行すると意図したレスポンスが得られないというバグが発生し、半日程溶かしてしまいました。 戒めとして、Lambdaでの静的メンバーの扱いについて調べ…