oinume journal

Scratchpad of what I learned

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がある。個人的にはgomockが生成したコードでモックを書くのが好きではないので、代替としてmoqを使うやり方を取り上げてみようと思う。 題材 GitHubのAPIを使って指定したリポジトリのブランチを出力するServi…

2020年8月までの振り返り

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

Gatsby + Firebase Hostingでプロフィールサイトを構築する

GatsbyとFirebase Hostingを使って自分のプロフィールサイトを構築したのでそのメモ。 前提 サイトの中身はGitHubリポジトリで管理 https://github.com/santosfrancisco/gatsby-starter-cvがプロフィールサイト向けだったのでこれを使った GitHub Actionsでm…

メルカリ/メルペイを退職します

いわゆる退職エントリーというヤツです。表題の通りで、10月をもって4年3ヶ月勤めたメルカリ/メルペイを退職します。思い返せば、退職エントリーというものをブログに書くのは初めてです。少し緊張してます。 だれ? oinume です。Goが好きなBackend enginee…

go testを並列で動かして速くする

Go

はじめに アプリケーションが大きくなってくると、テストを並列で実行しないとどんどんgo testの実行時間が長くなってしまい、いわゆる「CI待ち」というものが発生してしまう。この記事は自分用のメモだが、テストを少しでも速くしたいという人のための記事…

Resolving 3rd party proto file on IntelliJ IDEA

I use Protobuf Support Plugin for syntax highlighting. However, it can't resolve 3rd party proto file like this: In my case, the file which is not resolved is located in proto/third_party directory. Solution Open Project Structure (File ->…

Touch BarありでIntelliJ IDEAのShift + F6などのショートカットキーが効かない場合の対処方法

TL;DR Touch BarありのMacBookProで、IntelliJ IDEAでShift + F6などのFunction Keyと他のキーを組み合わせた場合のショートカットキーが効かないという問題があった Karabinar Elementsを使っている場合は Devices で No product name (No manufacturer nam…

使ってみて便利だったGitHub Actions

今年の2月ぐらいからGitHub Actionsを仕事で使うようになったので、実際に使ってみて便利だったものを紹介する。 Slackへの通知を行うaction-slack github.com Slackへ通知するActionはいくつかあるけど、これが一番きめ細かく送る内容を設定できてかゆいと…

GoでLRU Cacheを実装する

LRU Cacheは何かをキャッシュする際によく使うデータ構造の一つだと思う。よく使う一方でその実装はやったことがなかったので、今回Goで実装してみたよ、という話。 LRUCacheとは? Least Recentry Used Cache のこと。一定のキャパシティを持つもので、キャ…

Review on Jan 2020

What I did on Jan 2020 Got flu on the beginning of this year... Went to GoDays 2020 in Berlin! Went to Warsaw as a persona trip Work, work, work Output Wrote a blog post about GitHub Actions. Sleep 6 hours 50 min. 1st week: many sleep hour…

GitHub ActionsでReleaseが作成されたら次のバージョンのrelease branchを自動的に作る

はじめに 自分のチームではA successful Git branching modelに近い感じで、リリースする前にrelease branchを作りそこにfeature branchをmergeしてからテストしてリリースする、という流れで開発からリリースまでのサイクルを回している。 リリースする前に…

2020の抱負

新年あけましておめでとうございます。年末年始はインフルエンザになって寝込んでいて、そういえば今年は厄年だったことを思い出しました。もう1/15になってだけど2020年の抱負をあらためて書いておこうと思います。 1日6時間15分以上寝る 昨年は1日6時間以…

2019年の振り返り

2019年も早いものであっという間に終わってしまった。以下が2019年初頭に考えていた抱負だったので、これをベースに振り返りをしてみよう。 journal.lampetty.net アウトプット ちゃんとした記事を月に一つは書く!というの目標に対しては以下のように未達だ…

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

Go

はじめに みなさんこんにちは。これはGo5 Advent Calendar 2019の19日目の記事です。この記事はOpenCensusとhttptrace.ClientTraceを使ってHTTPリクエストの内部的なlatencyを可視化する話です。「内部的なlatency」というのは、HTTPリクエストの中で名前解…

Go言語における並行処理 - ユースケース編

Go

はじめに これは以下の記事の続きの記事。以下の2つではgoroutineとchannelについて説明したので、これらを使って具体的な並行処理のユースケースを書いてみる。 Goにおける並行処理 - goroutine編 - oinume journal Goにおける並行処理 - channel編 - oinum…

2019年9月の振り返り

8月の振り返りをサボってしまったのでまとめて。 アウトプット Goの並行処理の記事とMySQL 8.0へアップデートする記事を書いた。 Goにおける並行処理 - goroutine編 - oinume journal Goにおける並行処理 - channel編 - oinume journal Problems when updati…

初めてIELTSを受験した

IELTSってなに? 国際的な英語の試験。大学の入学の条件に使われたり、国によっては永住権を申請する時のポイントとして使われるもの。 会場 自分は東京会場で、場所は幸ビルディングという新橋付近の貸し会議室っぽいところだった。 持ち込みできるもの 中…

Problems when updating MySQL from 5.7 to 8.0

Introduction I updated MySQL from 5.7 to 8.0. There were some problems when updating. This is just a memo how to solve the problems. InnoDB deprecated file format parameters These parameters are deprecated in 8.0. innodb_file_format innodb…

Goにおける並行処理 - channel編

Go

はじめに これはGoにおける並行処理 - goroutine編 - oinume journalの続きの記事。goroutineに引き続き、Goの並行処理を支える重要な概念であるchannelについて説明する。 channelとは? channelはメモリに対するアクセスを同期するためやgoroutine間の通信…

Goにおける並行処理 - goroutine編

Go

はじめに Goでは、goroutineとchannelが言語仕様として組み込まれているため、他の言語に比べてとても並行処理のコードが書きやすい。この2つの基本的な動作原理についてまとめた自分用のメモである。(channelについては別の記事で書く予定) goroutineとは?…

2019年7月の振り返り

アウトプット 7月も小ネタだけどブログを書いた。 xargsでファイルの内容をコマンドの引数として渡す - oinume journal Intellij IDEAを2019.2にアップグレードするとコピペや入力がおかしくなる問題のワークアラウンド - oinume journal path-shrinker path…

Intellij IDEAを2019.2にアップグレードするとコピペや入力がおかしくなる問題のワークアラウンド

先日IntelliJ IDEAを2019.2にアップグレードしたところ、以下の問題に遭遇した。 エディタでのコピー&ペーストすると同じものが2回ペーストされる 文字の入力に取りこぼしがある(publicって入力してもpubcみたいなる) バグトラッカーを見たところ、Copied t…