homura's tech blog

HOMURA'STECH BLOG

programming memo & tech posts.

Latest Post

Claudeモバイル版だけでブログの技術スタックを移行し切った話

Claudeモバイル版だけでブログの技術スタックを移行し切った話

このブログの技術スタックを Next.js → Astro 、Vercel → Cloudflare Pages に移行した

More Posts

オーディオインターフェースを Yamaha ZG01 から MOTU M4 に乗り換えた

オーディオインターフェースを Yamaha ZG01 から MOTU M4 に乗り換えた

もうガジェットなんて買わないと思っていたが今度はオーディオインターフェースを刷新した。

[Boot camp for Beginners] A - Digit Sum 2 [Rust]

[Boot camp for Beginners] A - Digit Sum 2 [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / A - Digit Sum 2

[Boot camp for Beginners] B - Exponential [Rust]

[Boot camp for Beginners] B - Exponential [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Exponential

[Boot camp for Beginners] B - 文字列大好きいろはちゃんイージー [Rust]

[Boot camp for Beginners] B - 文字列大好きいろはちゃんイージー [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - 文字列大好きいろはちゃんイージー

[Boot camp for Beginners] C - 100 to 105 [Rust]

[Boot camp for Beginners] C - 100 to 105 [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - 100 to 105

[Boot camp for Beginners] B - Guidebook [Rust]

[Boot camp for Beginners] B - Guidebook [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Guidebook

[Boot camp for Beginners] C - Poll [Rust]

[Boot camp for Beginners] C - Poll [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Poll

[Boot camp for Beginners] A - Wanna go back home [Rust]

[Boot camp for Beginners] A - Wanna go back home [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / A - Wanna go back home

[Boot camp for Beginners] B - A to Z String [Rust]

[Boot camp for Beginners] B - A to Z String [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - A to Z String

[Boot camp for Beginners] B - ∵∴∵ [Rust]

[Boot camp for Beginners] B - ∵∴∵ [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - ∵∴∵

[Boot camp for Beginners] B - たてなが [Rust]

[Boot camp for Beginners] B - たてなが [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - たてなが

[Boot camp for Beginners] B - String Rotation [Rust]

[Boot camp for Beginners] B - String Rotation [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - String Rotation

[Boot camp for Beginners] B - Contest with Drinks Easy [Rust]

[Boot camp for Beginners] B - Contest with Drinks Easy [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Contest with Drinks Easy

[Boot camp for Beginners] B - AcCepted [Rust]

[Boot camp for Beginners] B - AcCepted [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - AcCepted

5K2Kのウルトラワイドモニタ(Dell U4025QW)を導入して最強の作業環境をアップデートした

5K2Kのウルトラワイドモニタ(Dell U4025QW)を導入して最強の作業環境をアップデートした

PREDUCTS の天板と FlexiSpot7 で最強の作業環境を手に入れたによってエンドゲームを迎えたと思われていた シリーズ:デスクツアーだが、物欲は止まる所を知らず5K2Kのモニターに手を出してしまった。

[Boot camp for Beginners] B - Palace [Rust]

[Boot camp for Beginners] B - Palace [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Palace

[Boot camp for Beginners] C - Tax Increase [Rust]

[Boot camp for Beginners] C - Tax Increase [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Tax Increase

[Boot camp for Beginners] B - Small and Large Integers [Rust]

[Boot camp for Beginners] B - Small and Large Integers [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Small and Large Integers

[Boot camp for Beginners] B - Good Distance [Rust]

[Boot camp for Beginners] B - Good Distance [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Good Distance

【Rust】競技プログラミングでよく使うものまとめ

【Rust】競技プログラミングでよく使うものまとめ

競技プログラミングをRustで解いているが、よく使うものを忘れてしまうのでまとめる (随時更新)

[Boot camp for Beginners] B - Shiritori [Rust]

[Boot camp for Beginners] B - Shiritori [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Shiritori

[Boot camp for Beginners] B - Counting Roads [Rust]

[Boot camp for Beginners] B - Counting Roads [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Counting Roads

[Boot camp for Beginners] C - Maximal Value [Rust]

[Boot camp for Beginners] C - Maximal Value [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Maximal Value

[Boot camp for Beginners] B - Some Sums [Rust]

[Boot camp for Beginners] B - Some Sums [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Some Sums

[Boot camp for Beginners] B - Comparison [Rust]

[Boot camp for Beginners] B - Comparison [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Comparison

[Boot camp for Beginners] B - Picture Frame [Rust]

[Boot camp for Beginners] B - Picture Frame [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Picture Frame

続:Swift UI で青空文庫形式でルビが振られた文章を縦書きで表示する (横スクロール対応版)

続:Swift UI で青空文庫形式でルビが振られた文章を縦書きで表示する (横スクロール対応版)

前回正常に表示できたかに見えたが、実は文章が長いと画面外にはみ出た領域が切れていた。 画面外にはみ出たものはスクロールできるように修正した。

Swift UI で青空文庫形式でルビが振られた文章を縦書きで表示する

Swift UI で青空文庫形式でルビが振られた文章を縦書きで表示する

Swift UI を使って青空文庫形式でルビが振られた文章を縦書きで表示できるようなviewを作った

MIXIの新卒向けiOS研修(2023年版)やってみた

MIXIの新卒向けiOS研修(2023年版)やってみた

実践的かつ体系的に SwiftUI を勉強したくなったので mixigroup/ios-swiftui-training をやってみる

[Boot camp for Beginners] C - Lower [Rust]

[Boot camp for Beginners] C - Lower [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Lower

[Boot camp for Beginners] B - Lucas Number [Rust]

[Boot camp for Beginners] B - Lucas Number [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Lucas Number

[Boot camp for Beginners] A - Fairness [Rust]

[Boot camp for Beginners] A - Fairness [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / A - Fairness

[Boot camp for Beginners] B - Palindromic Numbers [Rust]

[Boot camp for Beginners] B - Palindromic Numbers [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Palindromic Numbers

[Boot camp for Beginners] B - 美しい文字列 [Rust]

[Boot camp for Beginners] B - 美しい文字列 [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - 美しい文字列

2023年の振り返り & 2024年の抱負

2023年の振り返り & 2024年の抱負

明けましておめでとうございます。振り返りをしておこうと思います。

[Boot camp for Beginners] B - Foods Loved by Everyone [Rust]

[Boot camp for Beginners] B - Foods Loved by Everyone [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Foods Loved by Everyone

ブログに数式を使えるようにした

ブログに数式を使えるようにした

このブログは数式を使っても表示がされなかったので、対応した

[Boot camp for Beginners] C - Low Elements [Rust]

[Boot camp for Beginners] C - Low Elements [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Low Elements

[Boot camp for Beginners] A - Range Product [Rust]

[Boot camp for Beginners] A - Range Product [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / A - Range Product

[Boot camp for Beginners] C - Exception Handling [Rust]

[Boot camp for Beginners] C - Exception Handling [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Exception Handling

[Boot camp for Beginners] B - Five Dishes [Rust]

[Boot camp for Beginners] B - Five Dishes [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Five Dishes

[Boot camp for Beginners] C - Attack Survival [Rust]

[Boot camp for Beginners] C - Attack Survival [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Attack Survival

[Boot camp for Beginners] C - Prison [Rust]

[Boot camp for Beginners] C - Prison [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Prison

[Boot camp for Beginners] B - Not Found [Rust]

[Boot camp for Beginners] B - Not Found [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Not Found

[Boot camp for Beginners] B - Coins [Rust]

[Boot camp for Beginners] B - Coins [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Coins

[Boot camp for Beginners] B - Postal Code [Rust]

[Boot camp for Beginners] B - Postal Code [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Postal Code

Twitter-Clone-SwiftUI 写経してみた

Twitter-Clone-SwiftUI 写経してみた

Swift UI を使って Twitter Clone アプリを写経して学んだこと

[Boot camp for Beginners] B - Increment Decrement [Rust]

[Boot camp for Beginners] B - Increment Decrement [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Increment Decrement

[Boot camp for Beginners] B - Varied [Rust]

[Boot camp for Beginners] B - Varied [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Varied

[Boot camp for Beginners] B - Ruined Square [Rust]

[Boot camp for Beginners] B - Ruined Square [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Ruined Square

[Boot camp for Beginners] B - 754 [Rust]

[Boot camp for Beginners] B - 754 [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - 754

eslint & prettier → biome に移行する

eslint & prettier → biome に移行する

eslint & prettier 両方入れないといけないのが常々面倒だったが、biome だと実行時間も早いらしいので移行してみる。

[Boot camp for Beginners] B - Shift only [Rust]

[Boot camp for Beginners] B - Shift only [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Shift only

[Boot camp for Beginners] B - Count Balls [Rust]

[Boot camp for Beginners] B - Count Balls [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Count Balls

[Boot camp for Beginners] D - Caracal vs Monster [Rust]

[Boot camp for Beginners] D - Caracal vs Monster [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / D - Caracal vs Monster

[Boot camp for Beginners] C - Count Order [Rust]

[Boot camp for Beginners] C - Count Order [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Count Order

[Boot camp for Beginners] B - Nice Shopping [Rust]

[Boot camp for Beginners] B - Nice Shopping [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Nice Shopping

[Boot camp for Beginners] B - Chocolate [Rust]

[Boot camp for Beginners] B - Chocolate [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Chocolate

[Boot camp for Beginners] A - Candy Distribution Again [Rust]

[Boot camp for Beginners] A - Candy Distribution Again [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / A - Candy Distribution Again

[Boot camp for Beginners] C - Next Prime [Rust]

[Boot camp for Beginners] C - Next Prime [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Next Prime

[Boot camp for Beginners] B - Collatz Problem [Rust]

[Boot camp for Beginners] B - Collatz Problem [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Collatz Problem

[Boot camp for Beginners] B - Toll Gates [Rust]

[Boot camp for Beginners] B - Toll Gates [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Toll Gates

Working with UI controls — SwiftUI Tutorials やってみた

Working with UI controls — SwiftUI Tutorials やってみた

Working with UI controls — SwiftUI Tutorials をやってみたのでメモ

Animating views and transitions — SwiftUI Tutorials やってみた

Animating views and transitions — SwiftUI Tutorials やってみた

Animating views and transitions — SwiftUI Tutorials をやってみたのでメモ

Drawing paths and shapes — SwiftUI Tutorials やってみた

Drawing paths and shapes — SwiftUI Tutorials やってみた

Drawing paths and shapes — SwiftUI Tutorials をやってみたのでメモ

[Boot camp for Beginners] B - ATCoder [Rust]

[Boot camp for Beginners] B - ATCoder [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - ATCoder

[Boot camp for Beginners] C - Alchemist [Rust]

[Boot camp for Beginners] C - Alchemist [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Alchemist

[Boot camp for Beginners] C - Go to School [Rust]

[Boot camp for Beginners] C - Go to School [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Go to School

[Boot camp for Beginners] C - Divide the Problems [Rust]

[Boot camp for Beginners] C - Divide the Problems [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Divide the Problems

[Boot camp for Beginners] C - Replacing Integer [Rust]

[Boot camp for Beginners] C - Replacing Integer [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Replacing Integer

[Boot camp for Beginners] A - Cookie Exchange [Rust]

[Boot camp for Beginners] A - Cookie Exchange [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / A - Cookie Exchange

[Boot camp for Beginners] C - Traveling Salesman around Lake [Rust]

[Boot camp for Beginners] C - Traveling Salesman around Lake [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Traveling Salesman around Lake

Composing complex interfaces — SwiftUI Tutorials やってみた

Composing complex interfaces — SwiftUI Tutorials やってみた

Composing complex interfaces — SwiftUI Tutorials をやってみたのでメモ

[Boot camp for Beginners] B - Break Number [Rust]

[Boot camp for Beginners] B - Break Number [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Break Number

Handling user input — SwiftUI Tutorials やってみた

Handling user input — SwiftUI Tutorials やってみた

Handling user input — SwiftUI Tutorials をやってみたのでメモ

iPhone 15 Pro Max UNBOXING

iPhone 15 Pro Max UNBOXING

XS から5年ぶりに乗り換えたので開封の儀を執り行う

Building lists and navigation — SwiftUI Tutorials やってみた

Building lists and navigation — SwiftUI Tutorials やってみた

Building lists and navigation — SwiftUI Tutorials をやってみたのでメモ

[Boot camp for Beginners] B - Card Game for Two [Rust]

[Boot camp for Beginners] B - Card Game for Two [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Card Game for Two

[Boot camp for Beginners] B - Collecting Balls (Easy Version) [Rust]

[Boot camp for Beginners] B - Collecting Balls (Easy Version) [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Collecting Balls (Easy Version)

[Boot camp for Beginners] B - 1 21 [Rust]

[Boot camp for Beginners] B - 1 21 [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - 1 21

[Boot camp for Beginners] B - Bingo [Rust]

[Boot camp for Beginners] B - Bingo [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Bingo

Creating and combining views — SwiftUI Tutorials やってみた

Creating and combining views — SwiftUI Tutorials やってみた

Creating and combining views — SwiftUI Tutorials をやってみたのでメモ

[Boot camp for Beginners] B - Bishop [Rust]

[Boot camp for Beginners] B - Bishop [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Bishop

[Boot camp for Beginners] B - Can you solve this? [Rust]

[Boot camp for Beginners] B - Can you solve this? [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Can you solve this?

[Boot camp for Beginners] B - Tax Rate [Rust]

[Boot camp for Beginners] B - Tax Rate [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Tax Rate

[Boot camp for Beginners] B - Qualification simulator [Rust]

[Boot camp for Beginners] B - Qualification simulator [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B - Qualification simulator

ジャックスカードプラチナの改悪に際して移行先を探す

ジャックスカードプラチナの改悪に際して移行先を探す

メインカードだったジャックスカードプラチナの改悪が決まったので代替案を検討する

[Boot camp for Beginners] C - Rally [Rust]

[Boot camp for Beginners] C - Rally [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / C - Rally

[Boot camp for Beginners] B. Power Socket [Rust]

[Boot camp for Beginners] B. Power Socket [Rust]

Rust で競プロやってみた:Boot camp for Beginners / easy100 / B. Power Socket

microcsmへ移行した

microcsmへ移行した

このブログはpost内容の markdown を直接リポジトリに置いていた。 microcsmの検証がてら、記事の内容などをmicroCMSに移行した。

読書メモ:Game Development with Rust and WebAssembly (Chapter 9)

読書メモ:Game Development with Rust and WebAssembly (Chapter 9)

読書メモ:Game Development with Rust and WebAssembly (Chapter 5,6)

読書メモ:Game Development with Rust and WebAssembly (Chapter 5,6)

読書メモ書いてく

読書メモ:Game Development with Rust and WebAssembly (Chapter 3,4)

読書メモ:Game Development with Rust and WebAssembly (Chapter 3,4)

読書メモ書いてく

読書メモ:Game Development with Rust and WebAssembly (Chapter 1,2)

読書メモ:Game Development with Rust and WebAssembly (Chapter 1,2)

読書メモ書いてく

PREDUCTS の天板と FlexiSpot7 で最強の作業環境を手に入れた

PREDUCTS の天板と FlexiSpot7 で最強の作業環境を手に入れた

Amazonプライムデーで FlexiSpot7 が30%offになったので購入した。 それを機に憧れていた PREDUCTS の天板とその他諸々を買ったのでデスク周りを一新した

読書メモ:事実はなぜ人の意見を変えられないのか

読書メモ:事実はなぜ人の意見を変えられないのか

事実はなぜ人の意見を変えられないのかを読んだので読書メモ

[Rust] 高階関数用のfunctionの型定義を試す

[Rust] 高階関数用のfunctionの型定義を試す

高階関数を作るときに、functionの型をどう定義するべきか。Rustだと色々なやり方がありそうなので試してみる。

[TypeScript] Property based testing やってみる

[TypeScript] Property based testing やってみる

Property-based testing という概念を知ったので、TypeScriptでも試してみる

[Rust] test時に依存するメソッドをmockする方法を考える

[Rust] test時に依存するメソッドをmockする方法を考える

Rust での mock をどうするか考えてみる

[Rust] Property-based testing やってみる

[Rust] Property-based testing やってみる

Property-based testing という概念を最近やっと知ったので、Rustで試してみる

[Rust] test coverage を測る

[Rust] test coverage を測る

Rust で test coverage ってどうするんだっけを毎回調べるので備忘録

読書メモ:Domain Modeling Made Functional (Part 2, Chapter 4~7)

読書メモ:Domain Modeling Made Functional (Part 2, Chapter 4~7)

Domain Modeling Made Functional を読んでいるので読書メモ その2

読書メモ:Domain Modeling Made Functional (Part 1, Chapter 1~3)

読書メモ:Domain Modeling Made Functional (Part 1, Chapter 1~3)

Domain Modeling Made Functional を読んでいるので読書メモ その1

[Rust] clippyに指摘されたことmemo

[Rust] clippyに指摘されたことmemo

最近clippy(rustのいわゆる静的解析ツール)から教えられたことまとめ

[Rust] カリー化(currying)と部分適用(partial application)

[Rust] カリー化(currying)と部分適用(partial application)

Rustでカリー化(currying)と部分適用(partial application)ができるのか試してみた。結論としては可能。

container query と svh を使ってCSSだけで Hero Image を作ってみる

container query と svh を使ってCSSだけで Hero Image を作ってみる

全ブラウザ対応したcontainer queryは何がスゴイのか? を読んで試してみたくなったのでこのブログのトップページに Hero Image を入れてみた

2022年の振り返り & 2023年の抱負

2022年の振り返り & 2023年の抱負

明けましておめでとうございます。振り返りをしておこうと思います。

Pomodoro Technique にまた入門した(多分人生4回目)

Pomodoro Technique にまた入門した(多分人生4回目)

多分人生4回目の Pomodoro Technique に入門したのでメモを残しておく

Intersection Observer を使って要素が画面外に出たら代替要素を表示する

Intersection Observer を使って要素が画面外に出たら代替要素を表示する

3カラム構成のページで各カラムの長さが違う場合に、例えば左カラムが画面外に出たら空いた部分に代替要素(ナビゲーションや back to top など)を出したいので Intersection Observer を使って実現できないか試した記録

年末調整のための(特定増改築等)住宅借入金等特別控除証明書をe-Taxから出力する方法

年末調整のための(特定増改築等)住宅借入金等特別控除証明書をe-Taxから出力する方法

毎年税務署から年末調整の証明書が届かないと騒いで手順を調べるので残しておく

DDDのディレクトリ構成に関して最近考えていること

DDDのディレクトリ構成に関して最近考えていること

ある程度大きなロジックを作る時、DDD(っぽい)ディレクトリ構成にすることが多いのだが、これまでよくやっていたパターンは DDD観点からみるとよくない気がしてきたので見直す。試しているだけの雑多なメモかつポエム的なものなので、結論はない。

[Rust] OptionやResultと組み合わせて使える?演算子

[Rust] OptionやResultと組み合わせて使える?演算子

Rustの?演算子(question mark operator)がとても便利なのでメモしておく

[Rust] `Undefined symbols for architecture arm64` で build が失敗したときにやったこと

[Rust] `Undefined symbols for architecture arm64` で build が失敗したときにやったこと

prisma-client-rust の 0.6.1 を試していたら、`Undefined symbols for architecture arm64` で build が失敗した。解決方法をメモしておく。

prisma-client-rust を試してみる

prisma-client-rust を試してみる

Rust で DB 接続を試してみる。DBスキーマの管理とかは prisma 使いたいので、探してみたところ 非公式だが prisma-client-rust を見つけたので試してみる

クレジットカードの整理

クレジットカードの整理

三井住友カードゴールドNLの100万円修行で解脱に至るための曼荼羅を読んで、自分はここまで頑張ってはないが最低限の頑張りである程度の還元率を出せている気がしたので書いてみる。

next/image で Masonry レイアウトを実現する

next/image で Masonry レイアウトを実現する

next/image で Masonry レイアウトを実現するのは難しい という記事を書いたがレベルが上がって実現できるようになったので訂正記事を書く

[Rust] AWS Lambda へデプロイしてみる

[Rust] AWS Lambda へデプロイしてみる

Rust で作ったものをAWS Lambda で動かしてみようと思う。aws-lambda-rust-runtime を使えばできそうだったので試してみる。

next/image で Masonry レイアウトを実現するのは難しい

next/image で Masonry レイアウトを実現するのは難しい

ウソみたいに簡単! Tailwind CSSのみを使用してMasonryレイアウトを実装する方法 をみて、ブログの記事一覧を Masonry レイアウトにしようと思ったが next/image で実現するのは難しかったので img タグで普通に実装した。

AWS MFA に 1Password を設定した

AWS MFA に 1Password を設定した

久々にログインしたら MFA 設定されてないぞという警告が出てたので設定する。

[Rust] GitHub Actions で monorepo の CI 環境を整える

[Rust] GitHub Actions で monorepo の CI 環境を整える

Rust は簡単に monorepo が試せて良い。ただ、GitHub Actions で CI 環境を構築する上で Rust かつ monorepo 用のCI環境構築経験がないので素振りしておく。

情報処理安全確保支援士(登録セキスペ)をやめた

情報処理安全確保支援士(登録セキスペ)をやめた

情報セキュリティスペシャリストの資格をとって、そのまま情報処理安全確保支援士(登録セキスペ)の登録維持をしていましたがやめることにしました。

[Rust] cargo-xtask でタスクランナーを実現する

[Rust] cargo-xtask でタスクランナーを実現する

Rustの勉強をしているが、npm-scripts 的なタスクランナーが欲しくなったので cargo-xtaskを試してみる。

Mac Studio を買ったのでデスク周りを整理する

Mac Studio を買ったのでデスク周りを整理する

MacBook Pro 13inch(late 2017) が調子悪くなってきたので、下取りに出して Mac Studio を購入した。ついでにデスク周りを整理したので最新状態を記録しておく

ACM(Association for Computing Machinery)会員を退会する方法

ACM(Association for Computing Machinery)会員を退会する方法

O'Reilly Online Learning が利用できるやつが終わるらしいので退会する

indexing API を使ってNext.jsで作ってるブログの全ページをGoogleの indexに登録する

indexing API を使ってNext.jsで作ってるブログの全ページをGoogleの indexに登録する

Next.jsで作ってるブログの記事がGoogleにindexされてないので困っている。ひとつづつ Search Console からクロールリクエストをあげても、らちが開かないのでまとめて index に登録されるように処理する。

Next.jsで作ってるブログにリッチなリンクを貼れるようにした

Next.jsで作ってるブログにリッチなリンクを貼れるようにした

url 貼って紹介したい時とか、amazonのリンク貼りたい時とかにただのリンクだと面白くないので、twitterのカードUI的なリッチなリンクを貼れるようにする

ブログ内のリンクを Next.js の <Link> や Embed に変換したい

ブログ内のリンクを Next.js の <Link> や Embed に変換したい

このブログ内のリンクを Next.js の <Link> や Twitter の Embed に変換したいので対応した

next/image を利用した画像最適化で CWV の数値を改善する

next/image を利用した画像最適化で CWV の数値を改善する

CWVの数値が悪かったので改善する。imgurにあげている画像を参照しているが、最適に表示できていなかったのでCWVの数値が悪い。next/imageの機能を使って最適化してみる

rehypeで生成したhtmlでiframeが表示されるようにする

rehypeで生成したhtmlでiframeが表示されるようにする

markdownからrehypeで生成したhtmlには直接記述したiframeが表示されないので表示されるようにする

OGPを設定してSNSでシェアされた時にプレビューが表示されるようにする

OGPを設定してSNSでシェアされた時にプレビューが表示されるようにする

TwitterやFacebookなどでシェアされた場合にカードUIで表示されるようにOGPを設定する

Medium から export したデータを移行する

Medium から export したデータを移行する

medium + Route53 から gatsby cloud + Route53 に変更した。を読んで、medium からデータを移行できることがわかったので、このブログに移行する。

feed でブログにRSSフィードを追加する

feed でブログにRSSフィードを追加する

RSSフィードを追加した際の手順をメモしておく

next-sitemap でブログにサイトマップを生成する

next-sitemap でブログにサイトマップを生成する

サイトマップを導入した際の手順をメモしておく

vercelにデプロイしているブログに独自ドメインを設定する

vercelにデプロイしているブログに独自ドメインを設定する

このブログに独自ドメインを設定した際の手順をメモしておく

技術ブログのコードフロックにシンタックスハイライトを導入する

技術ブログのコードフロックにシンタックスハイライトを導入する

前回の続き blog-starter-typescript で作った技術ブログのコードブロックにシンタックスハイライトを導入する

blog-starter-typescript で作ったプロジェクトにstorybookを導入する

blog-starter-typescript で作ったプロジェクトにstorybookを導入する

前回の続き blog-starter-typescript で作ったプロジェクトにstorybookを導入する

[JavaScript] ClassMethod を代入すると意図しない動きをする

[JavaScript] ClassMethod を代入すると意図しない動きをする

ClassFunction を変数に代入すると、参照が代入されるだけかと思ったが意図しない動きをするので原因と対策をメモしておく

技術ブログの記事Styleをいい感じにする

技術ブログの記事Styleをいい感じにする

前回の続き blog-starter-typescript で作った技術ブログの記事のスタイルが微妙なので、いい感じにStyleを当て直す

blog-starter-typescript を使って技術ブログを作り直してみた

blog-starter-typescript を使って技術ブログを作り直してみた

Next.js + Tailwind UI を使うとたった6時間で技術ブログのプロトタイプを作れるを参考に技術ブログを作り直してみる。そのためにやったことをメモする

家庭内wifiの通信速度を上げる(2021)

家庭内wifiの通信速度を上げる(2021)

有線に関しては最適化したが無線通信は最適化できていなかったので更なる改善を目指した。先に言っておくが、前のエントリの状態でもほとんどのご家庭には問題ない回線速度なのでこれ以降の対応はオーバーエンジニアリングである。

バロンチェアを買いました

バロンチェアを買いました

TL;DR

CSSでペルソナ5風 hoverエフェクト を作ってみた

CSSでペルソナ5風 hoverエフェクト を作ってみた

概要

z-index: auto; を理解する

z-index: auto; を理解する

概要

ビデオ会議の質を上げるためのデスク周り改善(2020/11)

ビデオ会議の質を上げるためのデスク周り改善(2020/11)

概要

α6600 をZoom用のWebカメラとして使う方法

α6600 をZoom用のWebカメラとして使う方法

概要

デスク周り(2020/10)

デスク周り(2020/10)

概要

Amplify + Next.js でSSRするチュートリアルやってみた

Amplify + Next.js でSSRするチュートリアルやってみた

という記事をZennで書いてみた

家の回線速度を10倍以上改善した話(BBIQ光へ乗り換え & EdgeRouter-X導入)

家の回線速度を10倍以上改善した話(BBIQ光へ乗り換え & EdgeRouter-X導入)

TL;DL

[TypeScript] nullable な Array を null安全な型に filter する

[TypeScript] nullable な Array を null安全な型に filter する

TL;DL

[TypeScript] Promise は何回 await しても同じ結果を返す

[TypeScript] Promise は何回 await しても同じ結果を返す

TL;DR

[TypeScript] export default したclassを require できなくてハマった話

[TypeScript] export default したclassを require できなくてハマった話

TL;DR

fish で node の開発環境構築

fish で node の開発環境構築

仕事ですぐに使えるTypeScript — 仕事ですぐに使えるTypeScript ドキュメント を勉強することにしたので、環境構築する。OS は mac を想定してるので、win の人は適当に読み替えてください。

富士通九州システムズ(FJQS)を退職しました

富士通九州システムズ(FJQS)を退職しました

退職時にご挨拶できなかった方やご連絡できてない方が多いので、退職エントリという形でまとめました。 お世話になった全ての方々に、感謝を申し上げます。

Gradle を使って jCenter に java ライブラリ を公開する

Gradle を使って jCenter に java ライブラリ を公開する

jCenter 側にリポジトリを準備する

fish 上で pyenv を使う

fish 上で pyenv を使う

を見て fish 上で pyenv を使えるようにしようと思ったが一部ハマったのでハマった部分を解説する

python で aws の lambda → lambda 呼び出しを並列化しようとしてハマった話

python で aws の lambda → lambda 呼び出しを並列化しようとしてハマった話

概要

nc コマンドでポート開放を確認する時の注意点

nc コマンドでポート開放を確認する時の注意点

snmp 等のポート開放確認のために nc を udp モードでを使うとnc がタイムアウトした時も succeeded と表示されるため、開放されているか確認できない。

コード/テストコード/コミットログ/コードコメント には何を書くべきか

コード/テストコード/コミットログ/コードコメント には何を書くべきか

コード/テストコード/コミットログ/コードコメント には何を書くべきかを受けて考えたことを纏める

Javaで文字列がネットワークを表すCIDR形式として正しいか判定する

Javaで文字列がネットワークを表すCIDR形式として正しいか判定する

正規表現チェックだけではダメ IPアドレスは2進数で扱える IPアドレス と サブネットマスクを `OR` した結果が サブネットマスクと同一なら問題ない

Java + AspectJ + Gradle でログが文字化けするのを解決した

Java + AspectJ + Gradle でログが文字化けするのを解決した

Javaコンパイラの encoding 設定とは別に、 AspectJコンパイラの encoding 設定も必要だった

正直者が馬鹿を見るルールを作ることに対する弊害を囚人のジレンマで考える

正直者が馬鹿を見るルールを作ることに対する弊害を囚人のジレンマで考える

正直者が馬鹿を見るルールを作ると誰も得をしない(当たり前)

Tips: Jenkinsのスクリプトコンソール芸

Tips: Jenkinsのスクリプトコンソール芸

Jenkinsのスクリプトコンソール芸をまとめる自分用のメモ

Tips: Linuxのipアドレス変更が反映されない場合の対処方

Tips: Linuxのipアドレス変更が反映されない場合の対処方

バックアップファイルを削除する。または、ファイル名を以下の様なバックアップ用の識別子を前につけた形に変更する

EclipseLinkでDBに存在しないレコードに対しての一意制約例外が発生する

EclipseLinkでDBに存在しないレコードに対しての一意制約例外が発生する

@Id が付いているパラメタにDB上で auto_increment が設定されている場合、そのパラメタにコード上で値を入れて persist() すると一意制約例外が発生する。

Gradle から SonarQube を利用する方法

Gradle から SonarQube を利用する方法

Gradle から SonarQube を利用する方法

BCP/DRのTierについて解説してみる(バックアップの目的の話)

BCP/DRのTierについて解説してみる(バックアップの目的の話)

海外のエンジニアに、日本のシステム開発におけるバックアップの目的を聞かれたが答えられなかった。その時にBCP/DRのTierについての説明を聞いて感動したが、後日調べても日本語の記事が見当たらなかったので書いてみました。

Tips: Linuxのipアドレス変更が反映されない場合の対処方

Tips: Linuxのipアドレス変更が反映されない場合の対処方

どこかで「ファイル名の後ろにbkつけてバックアップしましょう」とか言ってる人がいるみたいで大抵の初心者が引っかかる

ラムダ式のメソッドリファレンスを使った特に squid : UnusedPrivateMethod が発生した時の対処方法

ラムダ式のメソッドリファレンスを使った特に squid : UnusedPrivateMethod が発生した時の対処方法

ラムダ式のメソッドリファレンスを使った特に squid : UnusedPrivateMethod が発生した時の対処方法

Tips: Jenkinsのスクリプトコンソール

Tips: Jenkinsのスクリプトコンソール

Jenkinsのスクリプトコンソール芸をまとめる自分用のメモ。随時更新。

SonarQube で squid:S1162 が発生した時の対処方法

SonarQube で squid:S1162 が発生した時の対処方法

SonarQube で squid:S1162 が発生した時の対処方法

EclipseLinkでDBに存在しないレコードに対しての一意制約例外が発生する

EclipseLinkでDBに存在しないレコードに対しての一意制約例外が発生する

EclipseLinkでDBに存在しないレコードに対しての一意制約例外が発生する

SonarQube で squid:S1162 が発生した時の対処方法

SonarQube で squid:S1162 が発生した時の対処方法

SonarQube で squid:S1162 が発生した時の対処方法

Shutdown Patterns in Akka 2 を読んでのメモ

Shutdown Patterns in Akka 2 を読んでのメモ

Shutdown Patterns in Akka 2 を読んでのメモ

AkkaのActorをテストする(Java編)

AkkaのActorをテストする(Java編)

AkkaのActorをテストする(Java編)

.gitignore に記載されているファイルをリポジトリの歴史から削除する

.gitignore に記載されているファイルをリポジトリの歴史から削除する

.gitignore に記載されているファイルをリポジトリの歴史から削除する

serverspecの実行結果をJUnit.xml形式で出力する

serverspecの実行結果をJUnit.xml形式で出力する

serverspecの実行結果をJUnit.xml形式で出力する

zbxapi で Zabbix にAPIを実行する

zbxapi で Zabbix にAPIを実行する

zbxapi で Zabbix にAPIを実行する

gradleからproxy越しにArtifactoryに成果物をアップロードする

gradleからproxy越しにArtifactoryに成果物をアップロードする

gradleからproxy越しにArtifactoryに成果物をアップロードする

iptables TIPS まとめ

iptables TIPS まとめ

iptables TIPS まとめ