DomainModelとDTOが相互に変換可能であることを要求するTraitが作りたかったんだ

業務の中で思いついた便利 Trait を供養します。どこかで使えそうで、いやしかしどこにも使えそうにない Trait です。もしかしたらライブラリにありそうだけど標準ライブラリにはないはず。たぶん。 経緯 いま業務で関わっているアプリケーションでは Domain…

Viteで作ったWebアプリをClaspでGASにデプロイするまで

Web アプリケーションを無料でホストする必要が生まれた。非プログラマが運用できる且つ Google Drive に保存された画像を参照することが要件であるためGASを使うことにした。ここにはメモも兼ねてその手順を残しておく。 Setup volta install node volta in…

Tailscaleで自宅の外からVSCodeに繋ぐ

先月にPCを自作したけれど、もちろんラップトップではなくデスクトップなので持ち運びができない。せっかくお金をかけて作ったPCなので、自宅の外だろうがハイスペPCを使いたい。 prelude.hatenablog.jp prelude.hatenablog.jp Tailscale 自宅PCに繋げるため…

Setup Manjaro Linux 続き - GPU購入

初めてPCを自作した。ゲームや画像編集などをするわけではないのでGPUは買わずにIntel CPUの内蔵GPUで十分だろう。そう思っていた時期は下記のとおり。 prelude.hatenablog.jp GPUの購入 実際に使ってみるとマルチモニタの片方で動画を見ながらもう片方でブ…

Setup Manjaro Linux

Mac OSでの開発がしんどくなってきたのでLinux PCを自作した。初めての自作で学びが多かったので見返せるように残しておく。試行錯誤を整理するのが面倒だったのでメモ程度に。 PCの組み立て CPU マザーボード メモリ SSD CPUクーラー 電源 ケース 組み立て …

素数判定器を作った

みなさんは今日が素数かどうか気になったことはありますよね?私もあります。そこで簡単にツールを作りました。 github.com Algorithm 使用したアルゴリズムはAKS素数判定法とミラー–ラビン素数判定法です。 Performance 手元の環境では下記のようになりまし…

組織のナレッジマネジメントは難しい

透明性で何を実現したいのか中途半端なまま透明性を謳う組織が多いと思う。また、経営層の決定事項を詳らかにすることを透明性としている場面を見かける。しかし、それは透明性ではなくて経営層が大きな声で発しているだけだと思う。 とはいえ自分の中の「な…

ISUCON11に「良心の呵責」というチームで参加して予選敗退しました

ISUCON11に「良心の呵責」というチームで @44smkn と @kuwata0037 と参加しました。 isucon.net 結果としては予選敗退で最終スコアは34,976点(122位)でした。決勝進出は10~15万点あたりがボーダーのようだったのでまだまだでした。 結果は残念でしたが非常に…

転売自体は悪くない

経緯 こんなツイートをした。 転売アンチ、憎しみを転売じゃなくて買い占めと高額販売に向けるべき— 良心の呵責 (@karrybit) 2021年6月5日 そしたら知人からこんなリプがあった。 定価以下での転売はゆるせという主張でおけ…???(大体みんなそんな感じかと…

SQLアンチパターンを読んだ

背景 最近になってDBの知識不足に危機感を憶えて色々と読んできた。 ゼロからはじめるデータベース操作を読んだ - Prelude 達人に学ぶDB設計を読んだ - Prelude 失敗から学ぶRDBの正しい歩き方を読んだ - Prelude 今回は度々引用されているのを見かけるSQLア…

無職転生の原作を読んだら1ヶ月が溶けた

無職転生とは 無職が転生する話。なんやかんや困難が訪れなんやかんや解決していく、というのが話の主な展開。 2012年から小説家になろうで連載開始。2021年の冬アニメとして放送開始。 ja.wikipedia.org 公式サイトはスマホじゃないと開けない。 mushokuten…

【OSS探訪記】hq

背景・モチベーション Goで並行処理について公式ドキュメントや書籍を読んだが、実際にどのように使われているのか、そしてどのようなプロダクトがあるのか気になった。そこで、awesome-goを見て並行処理をしていそうなOSSを読んでみようと思う。 ざっくり気…

失敗から学ぶRDBの正しい歩き方を読んだ

以前の達人に学ぶDB設計に引き続き下記の本を読んだ。 prelude.hatenablog.jp 失敗から学ぶRDBの正しい歩き方 (Software Design plus)作者:曽根 壮大発売日: 2019/03/06メディア: 単行本(ソフトカバー) 読んだ背景 それっぽく何が良いのかのわかったので、…

競技プログラミング in Go #3

前回 prelude.hatenablog.jp 今回 今回は下記の記事を参考に迷路の最短路と特殊な状態の列挙のAtCoderの問題を解いていく。 qiita.com 幅優先探索 問題:C - 幅優先探索 解答:Submission #20044513 - AtCoder Beginner Contest 007 考えたこととか [][]rune…

達人に学ぶDB設計を読んだ

背景 年末に読んだ。 達人に学ぶDB設計 徹底指南書作者:ミック発売日: 2013/08/07メディア: Kindle版 感想 論理設計と物理設計 物理設計はなかなか馴染みがないので主に論理設計で知識が増えた。 論理設計はドメインをRDBにどういう形で落とし込むか決めるこ…

競技プログラミング in Go #2

前回 競技プログラミング in Go #1 - Prelude 今回 今回は下記の記事を参考に部分和とLake CountingのAtCoderの問題を解いていく。 qiita.com たくさんの数式 問題:C - Many Formulas 解答:Submission #19722074 - AtCoder Regular Contest 061 考えたこと…

ゼロからはじめるデータベース操作を読んだ

背景・モチベーション いままでRDBにはあまり関わってこなかったため理解が浅い。DBとなるとKVSを触る機会の方が多かった。RDBが裏側にいたとしてもデータ部隊が別に存在しSQLを書いたりDBの設計に関わることはなかった。SQLを書くとしても、redashでデータ…

サーバーサイドGo入門 #5 ~redisを使う~

DB Go

前回はこちら prelude.hatenablog.jp 今回作るもの ユーザーIDの追加 redisの導入 redis clientの初期化 redisを使う redisを動かす curlで確認 コード全文 まとめ 雑談 今回作るもの redisを用いてReadのレスポンスを早めましょう。 ユーザーIDの追加 redis…

競技プログラミング in Go #1

背景 2年半くらい前に少しやって以来あまりできていない。たまに思い立ったように問題を解いたり蟻本を読んでみたりするものの、以前の内容を憶えておらず同じような内容を初見の顔をして勉強していることが多い。 まずはこの現状を打破して継続できるように…

Go言語による並行処理を読んだ

結構前に下記の本を読んだ。メモをしていたのでここにも残しておこうと思う。 Go言語による並行処理作者:Katherine Cox-Buday発売日: 2018/10/26メディア: 単行本(ソフトカバー) 前提知識 今までgoroutineを使うことはあってもいくつか作ってsync.WaitGrou…

Go言語の並行処理に関する公式ドキュメント

Go

背景 goroutineなんもわからん。書くことができても使いこなすことができてるとは言い難いなあと日々感じている。Goは並行処理の理解の助けのため、リポジトリのwikiにたくさんの資料がある。 資料を全部読んだ上で解説したいものだが、一部しか読めていない…

サーバーサイドGo入門 #4 ~test~

前回はこちら prelude.hatenablog.jp 今回作るもの testing HTTPサーバーのテスト net/http/httptest DBのテスト DATA-DOG/go-sqlmock テスト 補足 まとめ 今回作るもの ginとgormを使ったTODOアプリが完成しました。今回はこれらのテストを行います。 基本…

サーバーサイドGo入門 #3 ~gin, gormを使う~

Go

前回はこちら prelude.hatenablog.jp 今回作るもの net/http関連のライブラリ ベンチマーク database/sql関連のライブラリ ライブラリを使って書き換え ginの使用 gormの使用 curlで確認 まとめ 雑談 今回作るもの 前回まででnet/httpでリクエストを受け取り…

サーバーサイドGo入門 #2 ~database/sqlでDBを扱う~

DB Go

前回はこちら prelude.hatenablog.jp 今回作るもの Dockerで動かす コンテナを立てる MySQLの中に入る GoからDBを扱う SQLを渡す DBを読み込む TODOをインメモリからDBへ まとめ 雑談 今回作るもの 今回は、インメモリに作成したデータをDBに永続化します。 …

サーバーサイドGo入門 #1 ~net/httpでサーバーを立てる~

Go

背景・モチベーション 作るもの プロジェクトを作る サーバーを立てる 処理を加える JSONを返却する モデルを定義する レスポンスを返却する TODOを登録する まとめ 雑談 背景・モチベーション 前職の同僚が、Goでサーバーサイド開発をすることになったけれ…

iDeCoを考察する

年末年始は投資について調べていた。 prelude.hatenablog.jp iDeCoの考察をしたので整理をしたい。 iDeCoとは iDeCoとは「個人型確定拠出年金」のこと。詳しくは公式サイトがあるのでそちらをあたると良い。温かみのあるドメインだ。 www.ideco-koushiki.jp …

投資の勉強をした

背景 漠然と将来の不安があって投資を検討したというわけではなく、コロナを機に実家に戻って経済的に楽になったので、資産を銀行口座に眠らせておくより投資して増やしたいなと思い調べ始めた。 実際に給料から毎月いくら何年続けるとどうなるのか、という…

Go言語でgit操作してGitHubにPRを出す

背景・モチベーション アプローチ 作ったもの 使ったもの 特徴 感想 ドキュメントがわかりやすい gitわからん sshわからん モチベーションの整理大事 雑談 背景・モチベーション 社内ツールにos.Execを多用しているGoのツールがあり非常に厳しい感情になって…

【iOS】ファイルのソート方法

iOS

XCodeでの開発でファイルのソートをしていますか? XCodeのProjectファイルはファイルの順序を記憶しているため、ファイルを少し動かしただけでもgitの差分が生まれてしまいます。 複数人で開発していると ファイルの順序によるgit差分 が含まれたPRをたまに…

死んだブランチをslackに通知するツールを作った

ブランチ同士で依存が複雑な開発を乗り越えた後ってブランチの消し忘れが案外多かったりしますよね。しかも、消し忘れたとしても実害はない上に、消そうと思えばすぐに消せることも相まって後回しにしてしまうことも多いです。(自分はそう) しかし、消し忘…