oinume journal

Scratchpad of what I learned

Raycastを使い始めて1年経った

Mac

Raycastを使い始めて1年経ったので、どういうことに使っているかを振り返ってみる。去年書いた AlfredからRaycastに移行した - oinume journal の記事から少し使い方が変わっているところもあるのでメモがてら。 基本的な使い方 Cmd + QをRaycast起動のショ…

HasuraをDokku上で動かす

VPS上にDokkuを構築したので、そこにHasuraを動かしてみるテスト。Hasuraとは簡単に言うとPostgreSQLのテーブルスキーマからGraphQLサーバーを構築してくれるミドルウェア。 前提として、Dokkuはすでに構築済みとする。(自分の場合はUbuntu 22.04 上にDokku …

squash mergeの環境でCascading PRsでコンフリクトした時

Git

最近以下のような記事を目にすることがあり、ちょうど自分もsquash mergeの環境でひとつ問題を抱えていたので、その話を自分のメモ代わりに書きたくなった。 Git の Squash マージをやめた話 - Mobile Factory Tech Blog squash and mergeしか使ってないけど…

VPSにDokkuをインストールする

VPS上にDokkuというものをインストールして、Dokku上でHello WorldするRailsアプリを動かすまでのメモ。 Why Dokku? DokkuのWebサイトに書いてあるように、Dokkuはオープンソース版のHerokuという立ち位置のソフトウェア。かれこれ7年ぐらいHerokuを使い続け…

ししまるとしろ

最近、新しい猫を我が家に迎え入れた。名前は「しろ」。保護猫で年齢は5~6歳。岡山で多頭飼育の崩壊後ゴミ屋敷となった民家から保護された。その後、地元の預かりボランティアのお宅では他の猫と折り合いが悪く、ほぼケージ生活となったため、他に猫のいない…

Next.js + Auth0でLogin handler failedのエラーを解消する

Next.js + Auth0で認証機能を実装しようとして、nextjs-auth0をセットアップしつつ、このドキュメント通りにやっていたら、AUTH0_ISSUER_BASE_URL の設定を間違えていて以下のエラーが出ていた。 LoginHandlerError: Login handler failed. CAUSE: Discovery…

multipassでAnsibleの動作確認用のVMを作る

モチベーション 趣味で開発しているプロダクトのためにVPSを立てていて、Ansibleで各種ミドルウェアの設定をしているんだけど、VirtualBoxのApple Silicon への対応が微妙なのでmultipassを使ってVMを立てる+Ansible Playbookを流してセットアップするとい…

whisper.cppで文字起こしをやってみた

自分の備忘録としてのやってみた系の話。OpenAIが提供するモデルを使って文字起こしをするC++実装のwhisper.cppを試してみた。 環境 Apple M1 MacBook Air 2020 (Memory 16GB) uname -a Darwin hogehoge.local 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan…

2023年に読みたい本

最近読書量が減ってきたので、今年は読書を頑張ろう!と思ったのでまずは読みたい本をリストアップしてみる。 プロを目指す人のためのTypeScript入門 仕事でTypeScript書いてるんだけど、型システムが難しすぎて詰まっているので、体系的に理解したい。 プロ…

AlfredからRaycastに移行した

Mac

最近はRaycastが巷で流行っているので、自分もAlfredから乗り換えてみた。Alfredはv5への移行をずっと保留にしていてタイミング的にも良かったというのが一番大きい。ちなみに自分はAlfredの有料課金のライトユーザーで、以下の機能を使っていた。 通常のラ…

OpenTelemetryとhttptrace.ClientTraceを使ってHTTPリクエストのlatencyを可視化する

Go

この記事は OpenCensusとhttptrace.ClientTraceを使ってHTTPリクエストのlatencyを可視化する - oinume journal のOpenTelemetry版。OpenTelemetryについては OpenTelemetryとは何か、そしてなぜそれが計装器の未来なのか? | New Relic を見てもらうのが手…

Chapter 5 - Information Hiding (and Leakage) / A Philosophy of Software Design

A Philosophy of Software Design, 2nd Edition (English Edition)作者:Ousterhout, John K. Amazon 第5章はInformation Hiding (and Leakage)というタイトル。いいモジュールを作るには情報の隠蔽(カプセル化)を行うことが大事だよ、という話。 5.1 Informa…

2022年の抱負

もうすっかり年が明けてしまって1月末ですが、今年の目標というか抱負を書いておこうかなと思います。 健康第一 最近は風邪をひいたりすると仕事でもプライベートでも明らかに悪影響が出るので、健康第一で生きたい。その意味で以下を引き続き習慣として頑張…

2021年の振り返り

2021年の抱負 - oinume journalで年初に考えていた抱負がどうだったのか?を振り返ってみる。 習慣化 Habitifyというアプリを1年使い続けてみたけど、習慣化するものとそうじゃないものがあった。ある程度習慣化したものはiKnow(英単語)だけで、その他は習慣…

Chapter 4 - Modules Should Be Deep / A Philosophy of Software Design

A Philosophy of Software Design, 2nd Edition (English Edition)作者:Ousterhout, John K. Amazon 第4章はModules Should Be Deepというタイトル。 4.1 Modular Design ソフトウェアの複雑性を管理するためのもっとも大事なテクニックの一つとして、全体の…

Chapter 3 - Working Code Isn’t Enough / A Philosophy of Software Design

A Philosophy of Software Design, 2nd Edition (English Edition)作者:Ousterhout, JohnAmazon 第3章はWorking Code Isn’t Enough (Strategic vs. Tactical Programming)というタイトル。 Tactical Programming 近視眼的に目の前のタスクを終わらせるために…

Chapter 2 - The Nature of Complexity / A Philosophy of Software Design

A Philosophy of Software Design, 2nd Edition (English Edition)作者:Ousterhout, JohnAmazon 第2章は"The Nature of Complexity"というタイトルで、ソフトウェアのComplexityつまり複雑性についてじっくり説明されている。 Complexityの定義 Complexity i…

テスト

これはテストです。

Chapter 1 - Intruduction / A Philosophy of Software Design

A Philosophy of Software Design, 2nd Edition (English Edition)作者:Ousterhout, JohnAmazon A Philosophy of Software Design の第1章を読んだのでそのまとめ。 Intro プログラムは機能が増えるごとに複雑さが増していく。複雑さが増えると、開発スピー…

A Philosophy of Software Designを読み始めた

タイトル通りで、最近第2版が発売されたのと、いろんなところでオススメされていたのでこの本を読んでいる。やっと第6章まで読み終わったので、それぞれの章のまとめをブログにアップしていく予定。 A Philosophy of Software Design, 2nd Edition (English …

JavaScriptの記号の演算子と構文

JavaScript / TypeScript では一見すると「これなんだ?」という記号の演算子や構文がよく出てくるので、自分用の備忘録としてメモしておく。式と演算子 - JavaScript | MDNには演算子の一覧のページがあるため、わからない記号が出てきたら以下のページを見…

TypeScriptのDestructuring assignment

最近仕事でfrontendの開発を少しずつやるようになったのだけど、TypeScriptはGoに比べて演算子や記号を使う記法が多くて読むのに一苦労する。なので「これなんだろう?」と思ったやつをメモしておく。 TypeScriptやっていて一番最初に「ん?」と思ったのは、…

Go1.17beta1でGenericsに触れてみた

Go

Go1.17beta1がダウンロードできるようになったので、Generics(Type Parameters)でStackを書いて軽く遊んだメモ。 Generics (Type Parameters)について 最新の仕様のProposalは以下を見ると良い。 実際にどんな感じのコードになるのかは、GitHubのdev.typepar…

Apple Silicon向けDocker Desktop for Macでコンテナがハングしないようにする

TL;DR Apple Silicon(M1) Docker Desktop for Macでgoogle/cloud-sdkのDocker Imageを使ってコンテナ内でCloud Datastore Emulatorを立ち上げると、CPUが100%で張り付いてハングするという問題があった。 解決方法として、該当のDocker Imageをarm64v8アーキ…

2021年の抱負

年初に新年の抱負を書こうと思っていたがずっと後回しになってしまい、1月もそろそろ終わってしまう時期になった。というわけで明けましておめでとうございます。 例によって全ては達成できないと思うけど、今年やりたいことを抱負としてまとめてみる。 習慣…

2020年の振り返り

早いもので2020も終わってしまう。歳をとるごとに1年が過ぎていくのが早く感じる気がするけど、ここまで早く過ぎ去ってかつ内容が薄い年は初めてなのではないかと思う。ただ、多くの人にとって大変な年になったのは間違いないと思うけど、自分はソフトウェア…

O'Reilly Online Learningで日本語の本を読む方法

O'ReillyのOnline Learning(旧O'Reilly Safari Books Online)は月額$49でオライリーの本や動画などが見放題になるエンジニア向けのサブスクを提供している。以前は英語の本しか読めなかったが、いつからか日本語の本も読めるようになっていたのでメモ。 www.…

ドクターズプライムに入社しました

これはなに? 入社エントリー&会社紹介です。表題の通りで、10月をもってメルカリ/メルペイを退職し、11月からドクターズプライムという会社で働いています。 なにやってるの? Backend Engineerとして、救急車のたらい回しをなくすためのプロダクトを開発…

moq - gomockを使わないMock生成

Go

Goでよく使われるMockの生成ツールとしてgomockがある1。個人的にはgomockが生成したコードでモックを書くのが好きではないので、代替としてmoqを使うやり方を取り上げてみようと思う。 なお、本記事ではgithub.com/golang/mockではなく、go.uber.org/mockを…

2020年8月までの振り返り

ずいぶんと振り返りをサボってしまったので、頑張って7ヶ月分を書く 2月 この頃は各国のコロナの感染者数を毎日チェックしていた気がする。 国別の罹患者数。Cruise Shipが国に格上げされているwhttps://t.co/rp6wUIvCrS— oinume (@oinume) February 17, 20…