Golang
case sendCh<- <-receiveCh: はアンチパターンぽい【Go】
· ☕ 1 分で読めます
Photo by Karolina Grabowska from Pexels Goでゴルーチンを使ってコードを書いてるときに、詰まったことがあったのでメモ 問題の症状 caseの中でチャネルの受信と送信を同時にしようとすると、 条件判定の最中にブロックしてしまうことがある 1 2 3 4 5 6 7 8 9 ~ for { select { case <-ctx.Done(): return case sendCh <- <-receiveCh: // something } } 具体的には、上記のコードでcontextをcanc

インプットを動的に増減させるFan-Inパターン【Goによる並行処理】
· ☕ 5 分で読めます
Photo by Miguel Á. Padriñán from Pexels Go言語による並行処理 この本でゴルーチンを使った並行処理のパターンをいろいろ読んで、面白いなーと思いながら勉強していて、実際にFan-Inのパターンを使って実装したい場面があったのだが 一度Fan-Inを作った後に、n:1のn側となるインプットのチャネルを任意のタイミング

Hugoにブログを移行してみた
· ☕ 4 分で読めます
Photo by Pixabay from Pexels WordpressからHugoへ 最近全然更新してないこのブログだけど、久々の話題はブログを移行してみましたって話。 https://blog.atori.xyz/ Wordpressに不満があったって言うより、静的サイトジェネレーター(Static Site Generator)を使ってみたかったというのが強い。 もっというと、AWSのS3でブログ

StreamSync - アニメ、映画同時視聴のためのChrome拡張開発①
· ☕ 6 分で読めます
Photo by Tim Mossholder from Pexels はじめに youtubeの動画や配信で、主と視聴者がアニメや動画を同時視聴するという企画があります。 配信なら「同時視聴」と呼ばれるし、動画なら「リアクション動画」と呼ばれることが多いけど構造は同じ。 これ個人的に結構好きで、好きな生主とかyoutuberと好きなアニメを一緒に見てるような体験

【Go】template.ExecuteTemplate中にエラーが起きて中途半端にレンダリングされてしまう問題
· ☕ 2 分で読めます
まずは問題のコードから package main import ( "html/template" "net/http" ) func exampleHandler(w http.ResponseWriter, r *http.Request) { t := template.Must(template.ParseFiles( "example.html", )) err := t.ExecuteTemplate(w, "example.html", nil) if err != nil { http.NotFound(w, r) return } } func main() { http.HandleFunc("/", exampleHandler) log.Fatalln(http.ListenAndServe(":8080", nil)) } 何が起きる? 上のコードは http.ListenAndServeでwebサーバーを立ち上げて、/にアクセスが来たらexample.htmlを返してあげるというシンプルなものです。 exampleHan

paizaのコーディングスキルチェック問題を解いてみる #1【ランクC】
· ☕ 2 分で読めます
Photo by Andrea Piacquadio from Pexels 本格的にプログラミングを始めたときに結構お世話になったのが、paizaというプログラミング学習サイト兼プログラマー向け転職サイトです。 ITエンジニア・プログラマ向けの転職・就活・学習サービス【paiza(パイザ)】 新しい言語を覚えるときに基本的なことを一通り網羅するのにとても便利。 またp

Python,Goで二重ループのきれいな抜け方
· ☕ 1 分で読めます
Photo by Burst from Pexels ググれば最初に出てくるやり方ですが、きれいだし、自分が忘れないように書いておきます Python for i in loop1: for j in loop2: if time_to_break: break else: continue break 説明すると、 for…else…文とは、forが全て回りきった後一度だけelseの中を実行するというものです。 これを利用し、ループ2がbreakせず回りきるとelseに飛んでループ

【Golang】structに別名をつけてメソッドを継承?する方法
· ☕ 2 分で読めます
by Renée French 最近なんだか疲れてて、ブログもあまり書けてないけど、なんとかやめずに続けてきたい。。 ここのところはGoでWebアプリを作ろうとしてちょっとずつやってる。 Goは標準ライブラリが充実してるし、勉強のためにもできるだけフレームワーク無しで作ってみたいと思ってる。 今回はアプリ内部で使うapiを