oinume journal

Scratchpad of what I learned

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…

ターミナル環境を見直す: pecoからfzfへ

zsh

コマンドの履歴やディレクトリ移動の履歴を選択するためのツールとして長らくpecoを使ってきたけど、fzfに移行してみた。理由は大したものではなく pecoはshellで複数行のコマンドを検索して実行する場合に、 \ が \\ と2重になってしまうという問題があった…

GCPのCloud Runを使って簡単なリダイレクタを作った話

GCP

今年5月にbetaとしてリリースされたGCPのCloud Runを使って、もともとGAEで運用していたリダイレクタを移植してみたのでその紹介。 Cloud Runとは HTTPリクエストを処理するためのFull ManagedなステートレスのContainerの実行環境。公式サイトには以下のよ…

2019年3月の振り返り

アウトプット GCPのCloud PubSubをGoで動かしてみただけのメモ のみ。とにかく仕事が忙しくてプライベートで勉強したり何かをアウトプットすることを疎かにしてしまった(おかげで仕事は捗った)。 英語 3月から会社がDMM英会話から試験的にNativeCampに切り替…

GCPのCloud PubSubをGoで動かしてみただけのメモ

これはGCPのCloud PubSubのチュートリアルをやってみただけの自分用のメモ。この記事で紹介されているサンプルコードはGitHubに置いてある。 Cloud PubSubとは GCPで提供されているメッセージキュー。メッセージの送信をして(publish)、複数のシステムがその…

2019年02月の振り返り

アウトプット 特になし 英語 1月とほぼ変わらずという状態。ふと、2年前ぐらいに受けたTOEICの結果を見ていたら、Readingにおいて自分は単語力が弱いと書かれていたので、単語をちゃんと勉強するのが一番効果的っぽい。なお、今まで会社の補助で使えていたDM…

楽天銀行のデビットカードはいいぞ

最近メインバンクを三菱UFJから楽天銀行に移している。現在進行系なのは、様々な引き落としの手続きに時間がかかっているためだけど、近日中には終わると思う。 デビットカードってなに?メリットは? 使うときはクレジットカードと同じように使える。例えば…

クライアントを作って理解するOAuth2(実装編)

はじめに クライアントを作って理解するOAuth2(準備編) - oinume journalの続編。前の記事ではGoogle APIsのプロジェクトを作成してOAuth2 clientを登録した。この記事では発行されたClient idを使って実際にAccess tokenを取得する部分をGoで実装してみたい…

2019年01月の振り返り

アウトプット OAuth 2.0について以下の記事を書いた。少しかじった程度だけど、その知識をアウトプットした感じ。 journal.lampetty.net 英語 Daily Tech News Showをほぼ毎日聞いている 1エピソードが5分以内なので聞きやすい。長い英語のpodcastは途中で集…

クライアントを作って理解するOAuth2(準備編)

はじめに GoogleやFacebookなどの外部サービスのAPIを利用する上で欠かせないのがOAuth2という仕様なんだけど、この仕様だけ読んでいてもつまらないしよーわからんので、実際に手を動かしてみて理解を深めよう、というのがこの記事の趣旨です。実際にはOAuth…

2019年の抱負

もう10日以上経ってしまったけど2019年の抱負。 大方針:アウトプット 今年のテーマは アウトプット を第一にする。昨年は本を読んだりUdemyでいろいろ勉強していたけど、雑でもいいからアウトプットすることで自分の血肉にしていきたいと思っている。 1日6…

2018年の振り返り

あけましておめでとうございます。年末年始は親戚とハワイで過ごしていました。冬なのに海に入るという謎の体験をして、正月感はまったくなかったけどこれはこれで新鮮でした。 謹賀新年🎍 pic.twitter.com/kRXTEbvBCC— oinume (@oinume) January 2, 2019 仕事…

Satisfying a large interface quickly in Go

Sometimes it's painful to safisfy a large interface in Go. Here is a simple answer for this, just embed interface on struct. The sample code is bellow: package main import ( "fmt" ) type Foo interface { MethodA() MethodB() MethodC() Method…

2018年10月の振り返り

アルゴリズム BTreeをやっているけど、時間がなくて実装ができずに止まっている。 ブロックチェーン 進捗なし lekcijeのインフラ引っ越し CircleCIでdocker buildしてGoogle Container Registryにpushするところまではできたので、あとはKubernetesのyamlを…

direnvから.envをロードする

.envrcファイルに dotenv と書くだけで、現在いるディレクトリの .env ファイルを読んでくれる素敵な仕様を発見した。これでdirenv使いながら.env形式しかうけつけないアプリケーションも 以下は具体的な例。 $ cat .env PORT=12345 ENV=local $ cat .envrc …

2018年9月の振り返り

9月は10日間の奥さんの出張があったこともあり、本当にあっという間だった。 アルゴリズム 次はBTreeをやろうと思って、その前にAVLTreeやらないとダメそうで、そういえばBinarySearchTreeも実装したことないなって思ってBinarySearchTreeを実装した。 10月…

2018年8月の振り返り

アルゴリズム Boyer Moore法やった 次は何をやろうかと悩んだ結果、データベースでよく使うBTreeをやることにした。 ブロックチェーン https://www.udemy.com/ethereum-and-solidity-the-complete-developers-guide/?deal_code=JPA8DEAL2PERCENTAGE&aEightID…

2018年7月の振り返り

機械学習 進捗なし。次からは振り返り対象から外す。 アルゴリズム 文字列探索で力まかせのアルゴリズム実装した ブロックチェーン https://www.udemy.com/ethereum-and-solidity-the-complete-developers-guide/?deal_code=JPA8DEAL2PERCENTAGE&aEightID=s0…