すきま風

勉強したことのメモとか

プログラミング雑記

転職定点観測

概要 2023年1月から新しい職場で働いています。まだ3日しか働いておらず、全体像はこれから掴んでいく感じなのですが、すでに健康に結構な影響が出ていて辛いな、と思っています。 この身体反応は転職のたびに現れて、たいてい数ヶ月で消えていく (なので今…

Spring Integration Ftpのexists メソッドがどんなときもTrueを返す件について

なんてアホな子なのだ! 調べた DefaultのExists ModeはFTP STAT なのでここで判定している。 https://github.com/spring-projects/spring-integration/blob/main/spring-integration-ftp/src/main/java/org/springframework/integration/ftp/session/FtpRem…

Spring WebFlux × Kotlinで NoHandlerFoundException 対策をする

背景 Spring BootでRest APIを作る際、Spring MVCならNoHandlerFoundExceptionがあるため、設定していないURLにRequestが来た場合のハンドリングは ExceptionHandlerで簡単に実装できる。 @RestControllerAdvice class ErrorAdvice { @ExceptionHandler(valu…

【雑記】転職したいけど世の中に興味がない

俺の会社の開発部門はもう限界かもしれない 自分が今の会社に入ったとき、社内はプログラムの内製化に向けて熱があり、実力もある社員が大勢いた。日々が勉強であり、毎日が楽しかった。しかし、会社が一部の自社サービスを身売り (本当は全然違うんだけど、…

AWS SDK for JAVA V2 でS3にMultipart Uploadする

検索してもAWSのサンプルコード以外にヒットしないので需要があるのかわからないけどコードを書いたので記事にします。 localstack で確認していますが、AWSでは動かしていません テスト環境 Library Version Kotlin 1.4.21 Spring Boot 2.4.2 AWS SDK for …

Spring Boot の bootBuildImage で custom runImageを利用する

以前、↓みたいな記事を書きました。 Cloud Native Buildpacksのrun:base-cnb に curlを入れたい - 秋の魔法使い Spring Bootのコードを読んで研究したところ、もっと一般的な解決方法に気づいたので記事にしておきます。 (普通にリファレンスにも書いてあっ…

aws Fargate × golangでIAM Database認証をする

仕事で必要になったのでサンプルを書きました。FargateでIAM Database認証をしているサンプルをネット上で見つけることができなかったことと、awsに掲載されているコードのコピペでは動かなかったので2日くらいハマっていました。誰かの助けになればと思いま…

Spring Boot 2.4.0 でMultiple Propertyファイルを適用させる

Spring Boot 2.4になって、application.ymlの書き方がちょっと変わったのでメモ。色々便利になったようなのですが、k8sとか使っていないのであんまり恩恵がない 基本設定をapplication-base.ymlに記述し、環境ごとの差異をそれぞれのapplication-xxx.ymlに…

goroutineを使ってdatabaseに並列でInsertするサンプル

databaseにgoroutineで並行にinsertするサンプルプログラムです。仕事で必要になって実験しました。 database 接続 sql.Open() を使ってDB Instanceを取得します。DB Instanceは並行安全で、このInstanceがConnection Poolを管理するので Singletonにしてア…

Goでsliceを2次元sliceに変換する

2年に1回くらい必要になってその都度考えてしまうロジック。年々書ききるのに時間がかかるようになってきた 😔 func main() { slice := make([]int, 150) for i := 0; i < 150; i++ { slice[i] = i } results := split(&slice, 100) fmt.Printf("results size …

Cloud Native Buildpacksのrun:base-cnb に curlを入れたい

はじめに この記事内容は古いので、こちらを参考にしてください。 Spring Boot の bootBuildImage で custom runImageを利用する - 秋の魔法使い 以下、せっかく書いたので残しておくもの AWSのECSでサービスディスカバリを構築する場合、 タスク定義にhealt…

goでfile splitterを実装する あるいは AWS ECSによるbatch fan-out

仕事で↓の画像みたいな仕組みを作りました。 fan-out S3にアップロードしたcsv fileをLambdaで複数ファイルに分割して再度アップロードし、それぞれのs3 eventを別のLambdaで補足して、分割したファイルごとにFargateによるバッチ処理を起動してDynamoDBにデ…

AWS Fargate 1.4.0 にUpdateしたらVPCPeeringで通信できなくなった

※ 詳細な調査をしていないので、参考情報程度にしてください アプリケーションをFargate 1.4.0にアップデートしたらVPCPeering接続しているVPCとの通信で落ちるようになったのでネットワークに関するアップデート情報を調べた Fargate 1.4.0 から Jumbo Fra…

雑記

高い技術力を持つ同僚エンジニアが次々と会社を去っていくこととなり、コロナ禍における不景気の中でも実力がある人間には全く関係なく次の職場が決まるものなのだなあとひたすら尊敬している。しかも、みんながみんな異口同音に、別のことにチャレンジした…

golangでRedisの参照と更新をする

golangを勉強することにしました。頑張るぞ 初回は A Tour of Go すら読んでいない状態で、勢いと感性のままにRedis Access をするCLI を作ります。 json fileからデータを読み込んでEntityを作成する redigoを使ってRedis参照と更新ができる Interface を作…

雑記 (ポエム調)

チームビルディングとかマネージャー論とか、強いチームを作る的なブログを見るたびに違和感を覚えるのが どの記事も、実際にチームを構成しているメンバーの能力や性格についての言及が少ない、あるいは一切無いことだ。 自分が知りたいのは、優秀な人間の…

PHP (CodeIgniter), Apache のProductをDocker Imageにする

業務でPHPアプリケーションを保守することになったのでとりまコンテナ化しました。 fpm × nginxで作りたかったけど業務上Apache縛りがあったのでモジュール版を使います。 2020/06/12 追記: fpm versionも書きました ソフトウェアバージョン software versio…

amazon-corretto-11をbrew cask upgrade したら trustAnchors parameter must be non-empty が出るようになった

$ brew cask reinstall corretto $ echo $JAVA_HOME 火 1/21 11:36:24 2020 /Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home $ java -version 火 1/21 11:36:27 2020 openjdk version "11.0.6" 2020-01-14 LTS OpenJDK Runtime Env…

2019年振り返りと2020年

年始から風邪に倒れ、10日たった今も全く治る気配がありません。ずっと寝ていて暇なのでこのブログを書いています。今年はのっけから暗礁に乗り乗りで絶望しかない感じ。 2019年の概括 デレステが前よりうまくなった、くらいしか成長がないです。Lv27 Master…

Configuration annotationのproxyBeanMethodsとBean Lite Modeについての備忘録

記事の概略 SpringのBeanにはBean Lite Modeというものがある Spring 5.2から@Componentの代わりに@Configuration(proxyBeanMethods = false)を指定することでBean Lite Modeにできる CGLIB Proxyが不要ならパフォーマンスがよくなる https://github.com/spr…

フロントエンド開発勉強日誌 4

フロントエンド開発勉強日誌の続きです。 Thymeleaf導入 TypeScriptの開発環境設定 npm-scripts Polyfillを設定する IE11とかの古いブラウザに対応するためにPolyfillを設定します。 core-jsとwhatwg-fetchを入れる Polyfillの設定をする webpack.config.js…

フロントエンド開発勉強日誌 3

フロントエンド開発勉強日誌の続きです。 Thymeleaf導入 TypeScriptの開発環境設定 npm-scriptsを設定する Buildのたびに $ ./node_modules/.bin/webpack とかタイプするのが面倒なので npm-scriptsにBuildとexpressの起動コマンドをpackage.jsonに設定しま…

フロントエンド開発勉強日誌 2

フロントエンド開発勉強日誌の続きです。前回は Thymeleaf 導入までやっています。 今回はTypeScript開発環境を作ります。 TypeScript開発環境を作る やることは以下 事前勉強 Node Install ProjectにScript実装用のDirectoryを用意する package.json用意 Li…

クソ雑魚バックエンドエンジニアのフロントエンド開発勉強日誌 1

Thymeleaf HTMLを用意するためにThymeleafを入れます。そこからかよって感じですが、過去にフロントエンド開発をしたときに使っていたフレームワークがCatalyst (Perl製のフレームワーク) で、Thymeleaf経験すら皆無なのでやむなし。 Presenter class テンプ…

クソ雑魚バックエンドエンジニアのフロントエンド開発勉強日誌 0

モダンなフロントエンド開発の知識皆無の雑魚ですこんにちは。 今までずっとバックエンド側の開発ばかりしており、フロントエンドの勉強を放置していましたが、ここ最近チームのチケットの7割がフロントエンドのものになり、このままだと社内ニート待ったな…

Slackのリアクションemojiを非表示にする

あるSlack嫌いエンジニアの悩み 私はSlackが好きではないので、普段からなるべく見ないようにしています。 しかし、会社はSlackに完全に依存しているため、どうしても1日数回は見る必要があり、その際は給料のために我慢しています。 Slack嫌いな理由は色々…

IntelliJでExternal LibrariesのDebugをする

普通にbreak point設定できます。今までできることを知りませんでした ^^; 色々調査するときに便利です。stack trace追ったりとか。 IntelliJ-screen

ファーストクラスコレクションにコレクションのメソッドを委譲する

data class Book( val title: String, val price: Int ) data class Books( private val books: List<Book> ) : List<Book> by books // コレクションメソッドをdelegate // List<Book> -> Books fun List<Book>.toValue() = Books( map { Book(it.title, it.price) } ) fun main() {</book></book></book></book>…

socket timeoutに関するちょっとした誤解

今まで握手してから完全にデータが到達するまでの時間、だと思っていたが、正確にはdata packet間のアイドルタイムの制限時間という意味だった。 https://www.baeldung.com/httpclient-timeout the Socket Timeout (http.socket.timeout) – the time waiting…