生涯未熟

生涯未熟

プログラミングをちょこちょこと。

レビュー待ちのPR列挙くんを作った

GitHub Actionsでレビュー待ちのPR列挙くんを作った。こんな感じのイメージ。 コード 【2021/08/10 追記】 そういえばこの状態だとApprovedのPRも列挙してしまうので、弾きたい場合は各々のPRにrequest飛ばして( github.pulls.get )、response内の mergeab…

Firebase Authenticationの電話番号認証でOTP Autofillを体験したかったけど敗北した

前段 Firebase Authentication、便利ですよね。各種主要な認証をポチポチっと様々なプラットフォームで実現できる、素晴らしい。 ただ、電話番号認証でOTPのAutofillをやる際にはとなったのでメモ書き。 やったこと きっかけとして何がやりたかったかという…

GitHubのREADME.mdにある画像をPurgeするGitHub Actionsを公開したよ

社内でGitHub Actionsを拵えた時に、掲題のGitHub ActionsがMarketPlaceに意外と無かったので作って公開したよ。 github.com それ何? GitHubのREADME.mdに貼った画像はセキュリティの観点やらでOSSのcamoを使ってホスティングされているんですよね。 docs.g…

GitHubのprivate repositoryにあるREADME.mdをHTML形式で取得する

久々に書き留めたいネタが出来たのでメモ。 掲題の通りなのだが、何故こんなことがしたかったかというとprivate repositoryにあるREADME.mdの画像をPURGEしたかったから。 やり方 $ curl -H 'Authorization: token [github token]' -H 'Accept: application/…

重複なし英数字6桁のstringの配列を生成しよう in Ruby

12月に入ってから久々にRubyを書いています。Rubyはあれやこれや色々揃っていて良いですな。 さて、掲題のことをやりたいなとこんなん書きました。 スッキリ書ける。いやーいいですな。

2020年振り返り

blog.unasuke.com 上記記事を読んで今年何やったっけなってのを振り返りたくなったので振り返る。中身のない振り返りをします。 利用した技術 Language Go 主に使っていた。部署としては第一候補の言語として挙がるくらいには根付いた。 Ruby ここ最近使って…

Spannerを本番環境で使ってみたので感想戦

会社で大きめの負荷を捌く案件があり、DBにSpannerを使ってみようかという機運がチーム内で高まり、本番運用まで使ってみました。 その中で色々と知見が得られたのでTipsを細々と書いていく。 hotspotの話 SpannerはNewSQLのカテゴライズに含まれ、RDB + NoS…

Memorystore for redis雑感

雑に作って雑に使えるが乗っかってるCPUが1コアなので、雑にハッシュ型をポイポイ〜と投げるとすぐにCPUが100%に張り付く。 実際に7万qps相当のHSETを投げたが、残念ながらCPUが天井を越えて使い物にならなくなってしまった。 こういうCPU使いまっせっていう…

Spannerで書き込みの速が出なかったお話

Spanner、皆さんどう使ってるでしょう?めちゃくちゃ雑に使っても大概のシステムの要件を満たせるくらいに捌いてくれる良い子なので、利用シーンは色々あるかとおもいます。値段はお高いですが・・・ さて、そんなSpannerで唯一"速" が出なかったパターンを…

grpc-gatewayにおけるHTMLの出力

grpc-gatewayを使って組んでるシステムでJSON以外にHTMLを出力せねばならなかったので調査。 grpc-ecosystem.github.io 結論としては↑の記事を参考にすればOKだった。(これに全然辿り着けなくて苦労した・・・ filterとか挟み込む場合はproto.Messageの名前…

Cloud Runにおける段階的ロールアウトのメモ

Cloud Runの段階的ロールアウトに関して知らなかったことがあったのでメモ。 段階的ロールアウトって? ここを見よう。 cloud.google.com 要するにデプロイ後、最新リビジョンに追従するのではなくトラフィックの管理を行い、段階的にロールアウトしていこう…

Cloud Composerを用いた機械学習における推論パイプラインの構築

ここ最近仕事で作成していた推論パイプラインが完成したので、Cloud Composerを使った場合にどのように構築していくのかサンプルプログラムを書いていこうかと思います。 設計 今回は以下のようなフローを想定して構築していきます。 イメージとしては各種ア…

ghでvimを使いたい

Githubからコマンドラインツールが登場しましたね。 www.publickey1.jp READMEを読むと For many years, hub was the unofficial GitHub CLI tool. とあるように、既にあったhubは非公式ツールだったのね、など驚きがありつつ触ってみました。 今の所、ベー…

勉強会の主催をやりません

Goに関連した勉強会をやっておりましたが、今後主催者として開催はしません。 理由として、勉強会でのいざこざにより心を病んでしまったことと、自分がやらなくてもGoに関する勉強会が増えたので必要無くなったかな?と思ったからです。 元々がもう少し多く…

Telegrafを用いたElastic Beanstalk環境のEC2インスタンスにあるDockerコンテナの監視

5ヶ月ぶりです。人生ですね。 Telegrafを使った監視をやってみたので、備忘録として残しておきます。 What is Telegraf InfluxData社が作成したメトリクス集計、レポーティングツールになります。 github.com 構造として、 インプット:メトリクスの集計先 …

MD650LにKarabinerでアンダースコアを割り当てる

地味に困ったのでメモ代わりに書いておく。 MD650Lを日本語配列で使っているとアンダースコアが打てなくて困ることがありました。 Karabinerで上手いことキー割り当てたらええかーと思ったのですが、どのキーを割り当てたらいいのか分からず・・・ どれやね…

Protocol Buffersにclang-formatをかけるとインデント崩れを起こすパターンがある

Protocol Buffersをシコシコ使ってるんですが、clang-formatをかけると具合の悪くなるパターンを発見したのでメモ。 ちなみに一応書いときますがclang-formatはProtocol Buffersをサポートしてます。 github.com どういうパターン? 例えばこういうパターン…

gRPC GatewayとServerで異なるレスポンスで返す方法

前置き gRPCにはgrpc-gatewayという、gRPC ServerのレスポンスをRestful APIの形にして返すプラグインがあります。 Protocol Buffersに少し記述を足すだけで、簡単にRestful APIの対応が出来るのでとても重宝しているのですが、一つ困ったことが起きました。…

Protocol Buffersが出力するSwaggerのParameter descriptionを記述する方法

Protocol BuffersでSwaggerを吐くことが出来ますが、その際にParametersの個々のfieldにdescriptionをどうやったら付けれるのかよく分からなかったのでメモ。 どういうこと? これを追加したかった。 やり方 至極簡単で、OpenAPIのfieldを使ってゴニョゴニョ…

基礎からわかるElm 読書感想文

基礎からわかるElm読み終わったので読書感想文です。 基礎からわかる Elmposted with amazlet at 19.03.09シーアンドアール研究所 (2019-02-27)売り上げランキング: 3,474Amazon.co.jpで詳細を見る 基礎からわかるElm - Curated tweets by syossan27

Docker ComposeのProject Nameにハイフンを使わない方が良いという話

皆さん、Docker使ってますか?僕は新天地でバリバリDocker使うことになりそうなので慌てて復習していたりします。 さて、そんな中Docker Composeで見事にハマってしまった罠があったので、Project Nameにハイフンは使わないようにしましょうという話をします…

Go 1.12で個人的に気になったところを触ってみた

Go 1.12来ましたね。 色々変更点はあるんですが、個人的にベンチマークの実行回数が指定出来るようになったのがオッとなり触ってみました。 実行コード 簡単なコードで試してみます。 package main func Calc(x, y int) int { return x + y } package main i…

有料note販売のそれから

先日、こんなnoteを販売しました。 note.mu その後、あれよあれよと私の予想を大きく上回って売れてしまい、売り上げがこんな額になってしまいました。 買っていただいた皆様ありがとうございます!そこまで大したことを書いていない内容で数百人の方に買っ…

Practical Goを読んだメモ

Go界隈で有名なDave Cheney氏の書いたPractical Goを読んだ時のメモをザッと貼り付ける。 dave.cheney.net Pratical Go - Curated tweets by syossan27

転職エントリ

From:株式会社アイスタイル To:株式会社ミクシィ 経緯:note.mu

pigoを用いた🤔ツールの開発

昨日のお昼休憩中に暇だったのでこんなツールを作りました。 Goで顔を判定してにする謎ツールを昼休憩中に作成した pic.twitter.com/QcyfcOiLwk— しょっさん@ʕ ◔ϖ◔ʔ (@syossan27) January 16, 2019 見た目のインパクトからかプチバズりになり恐縮しておりま…

ioutil.ReadDirでのシンボリックリンクの扱い

ioutil.ReadDirでディレクトリ内を走査した時にシンボリックリンクがあった場合、LStatとStatのどちらでFileInfoが返ってくるか分からなかったため試してみた。 testディレクトリ内に別のディレクトリに対してシンボリックリンクを張ったものを置いてありま…

os.Stat, os.Lstatのシンボリックリンク指定時の違い

いつまで経っても覚えられないので自戒のために書く。 os.Stat 指定されたファイルパスの情報(os.FileInfo)を返す。 シンボリックリンクを指定した場合には、リンクを辿った先の情報を返す。 os.Lstat 指定されたファイルパスの情報(os.FileInfo)を返す…

echoのmiddlewareで一度読んだRequestBodyをもう一度読む

Gopherの皆さんはecho使ってますでしょうか?僕は薄くて好きなのでよく使ってます。 さて、echoにはmiddlewareという機能がございます。 Middleware | Echo - High performance, minimalist Go web framework ハンドラの実行前に処理差し込めるやつですが、…

刺し身たんぽぽについて

刺し身たんぽぽについて調べてみました。 刺し身たんぽぽとは一体何なのか? 刺身の盛り合わせに添えられている食菊(食用菊)の通称。花の大きさからタンポポと誤認されやすい。菊には殺菌作用があり、かつ見た目の彩りや香りも添える。さらに刺身のツマと…