oinume journal

Scratchpad of what I learned

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…

xargsでファイルの内容をコマンドの引数として渡す

dates.txt 2019-01-01 2019-02-01 2019-03-01 みたいなファイルがあった時に、このファイルの行をxargsコマンド経由で任意のコマンドの引数として渡す方法。 $ cat dates.txt | xargs -I{} 'echo {}'

MacBookAir 2019を買おうか悩み中

今使っているのはMacBookPro 13inch late 2016 Two Thunderbolt3 portsなんだけど、2018年モデルのMacBookAirにCPUスコアは負けている... browser.geekbench.com Single-Core Score: 3886 Multi-Core Score: 7701 以下は2018年モデルのGeekBenchのスコア。 b…

2019年6月の振り返り

2019年がもう半分が過ぎてしまった。やばい。 ▓▓▓▓▓▓▓▓░░░░░░░ 50%— Year Progress (@year_progress) July 2, 2019 アウトプット 6月は頑張ってブログを書いた。それなりの分量の記事を書こうとすると週に1個が限界な気がするので、良いペースだと思う。 タ…

Goのcontextによるキャンセルやタイムアウト

Go

これはなに? Go言語におけるcontextパッケージを使ったキャンセルやタイムアウトについて説明する。この記事を読むと以下について詳しくなれるはず...! context.WithCancel context.WithTimeout context.Done context.Err とはいいつつも、かなり自分向けの…

zshをやめてbashにした

TL;DR Bashを使うにあたって、zshが持つ標準機能のレベルと同じにするには初期設定が面倒だったけどなんとかいける。Bashは進化していると感じた。 bash-itが便利 設定は .bash_profile も含めてoinume/dotfilesに上げているので参考にどうぞ 動機 ターミナ…

2019年5月の振り返り

仕事 4月はもっぱら仕事が忙しく、最終的にGWは半分以上出勤するという体たらくだったので振り返りはスキップしてしまった。おかげでメルペイあと払いのリリースは何とかできたけど、技術的負債が多すぎて運用で死んでいる。 アウトプット GCPのCloud PubSub…