技術系
Cloud Storage*1使っていますか? 私は最近、画像の保存場所によく使っています。 最近使ったものだと、大学のプロジェクトで作っているWebアプリのユーザアバターを保存する場所として使っています。 github.com さて、このCloud Storageですがテストを書い…
最近、趣味アプリ用にCloudSQLでSQLのサーバを作成しました。 そこで、SQLのマイグレーションを自動化するべくGitHubのリポジトリで操作しようと思います。 以下の記事を参考にしました。 blog.fukkatsuso.com 作成したリポジトリは以下です。 github.com Cl…
エンジニアは新しいものが好きである*1。そのため、新しいものを使うために新しい言語を習得するということは日常茶飯事である。 このブログでは私が新しくプログラミング言語を勉強する際に実施している勉強法を書く。 TL;DR 公式のドキュメントを眺める 他…
recoiljs.org const localStorageEffect = <T>(key: string): AtomEffect<T> => ({setSelf, onSet}) => { if (process.browser) { const savedValue = localStorage.getItem(key); if (savedValue !== null) { setSelf(JSON.parse(savedValue)); } onSet((newValue</t></t>…
find.cateiru.com どういうもの? 相手の位置が矢印と距離で表示します。 Waaaaay!のWebアプリ版と思ってもらえればイメージしやすいと思います。 Androidは動作未確認です。多分うまく動かなさそうです。 使い方 待ち合わせを作成を押して新しく待ち合わせ…
TL;DR Tailscaleを使用すると数分でVPNを構築可能 前提条件 Sambaがインストールされており、ローカル上でNASとしてすでに機能しているPC やり方 1. Tailscaleを使用してVPNを構築する これは、簡単です。Tailscaleにアクセスしてアカウントを作成します。そ…
Goのアプリケーションで、CodeCov使ってテストカバレッジとっているのだがカバレッジ上げるのにすごく大変なのでメモと言うか愚痴というか。 Goではエラーはタプルの返り値で帰ってきてnil判定で判別します。 このように: hoge, err := sameHandle() if err …
はじめに Goで、FormFileがあり画像ファイルを読み込むHandlerを書いたがテストでハマってしまったので備忘録として書く。 TL;DR writer.Close()にdeferはつけない 本文 func HogeHandler(w http.ResponseWriter, r *http.Request) { if err := r.ParseMulti…
Webアプリケーションでログイン処理を作る際、ログイン情報の保存は必要となる。しかし、どのようにして保存するのか方法が沢山あるため個人的な備忘録としてまとめたい。 この記事はid:cateiruの薄い知識の上に成り立っているため間違えている箇所があれば…