寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

OAuth/OpenID Connectを理解したければここを読め(メモ

タイトルの通り。 OAuth、OpenID Connectを理解するための記事まとめ。 その他、良さそうな記事があればコメントで教えて下さい。 記事 一番分かりやすい OAuth の説明 - Qiita 一番分かりやすい OpenID Connect の説明 - Qiita OpenID Connect 全フロー解説…

今日 (2019/09/10) 現在のGAE/goをUPDATEする際の注意点、俺まとめ

Appengine/goが過渡期とでもいいましょうか、 日々変化も目まぐるしく、いろいろ気をつけるべき点もありそうなので雑にまとめました。 ご参考まで。(2019/09/10現在) GAE/go 1.9 は終わり 画像のとおりです。 警告: Go 1.9 ランタイム バージョンは非推奨…

goのベンチマークメモ

goのベンチマーク周りのメモです 2つのベンチマークの比較 godoc.org pprof のツール github.com goのパフォーマンス周りの資料(observability) bit.ly GoのSSA最適化 qiita.com おまけ 厳密なgofmt github.com go!

GAE/go1.11 で Stackdriver Profiler を使ってみる

appengine go1.11以降でgoでもプロファイラが使えるようなので初期設定だけやってみます。 内容的にはほぼ こちら の内容です。 Stackdriver Profiler は何ができるの? Goの場合には、CPU、ヒープ、競合、スレッドに関するプロファイリングが可能です。 そ…

Go で StartsWith/EndWith、前方一致/後方一致はないの?

Javaで育った私としては、前方一致/後方一致は StartsWith/EndWith というイメージが勝手にありますが、 goを書いているとたまにど忘れするので備忘録。 go での前方一致/後方一致 goでももちろん前方一致/後方一致のための関数は用意されています。 strings…

gcloud コマンドで TaskQueue(TQ)/Cloud Tasksを操作する

皆さんTQつかってますか。 ちゃんと使うとめちゃくちゃ便利なTQ(Cloud Tasks)ですが、コマンドでサクッと作ったり消したりしたい(特に消したい)というのがあったので記事にしました。 TQを作成する 以下のようなコマンドでTQを作成します。 gcloud --pro…

Fault tolerantに関する読み物

たびたび人と話していて、この資料のことを思い出すんだけど、 そのたびに検索するのがしんどいのでメモとして残す。 Building Fault Tolerant Microservices というプレゼン プレゼンの資料はこれ https://www.jfokus.se/jfokus16/preso/Building-Fault-Tol…

ab(ApacheBench) 的な負荷ツール hey を試す

ちょっとした負荷試験をしたい場合に、abが入っていればいいのですが、そうも行かない場合も多いので、go製で簡単にインストールできる hey を試します。 負荷ツールのタイプは2種類ある HTTPの負荷ツールには2タイプあります。 レスポンスが返される限り全…

#Flutter やってみる : (2) Flutterでサンプルアプリケーションを動かしてみる

こちらは、ほぼ この 記事の通りの内容です。 以前の Flutter開発環境の構築 の続きになります。 コマンドラインからFlutter appを新規作成します flutter create my_app シミュレータで実行します cd my_app flutter run とおもったら以下のようなメッセー…

#Flutter やってみる : (1) Flutter開発環境の構築

Flutterのインストール https://flutter.dev/docs/get-started/install/macos zipをダウンロードして解凍してPATH通すだけ。 flutter doctor コマンドでチェックする >> flutter doctor Doctor summary (to see all details, run flutter doctor -v): [✓] Fl…

モノレポ(mono repository)内でmodで管理しているアプリケーションをGAEにデプロイするために必要な2つのポイント

前回は モノレポ(mono repository)内でgoのmoduleを相対パスで利用する方法 という記事を書きましたが、今回はさらにモノレポで管理しているAppengineの複数のサービスをデプロイする方法になります。 なぜGAEのデプロイの記事が必要? 前回の記事を試した…

シンプルなテンプレートエンジンのenvsubstをインストールせずに使う

motivation 色々な仕組みを作るときにテンプレートエンジンが欲しくなることがあると思いますが、 あまり仰々しい感じの仕組みを利用したくない、(or インストールしたくない)ということはあると思います。 kubernetes(k8s)の設定ファイルのパラメータを環…

コンテナでgcloudコマンドを実行するとERROR: gcloud crashed (UnicodeDecodeError): 'ascii' codec can't decode byte 0xe8 in position 1: ordinal not in range(128) みたいなエラーが出る

タイトルの通りで、 コンテナ環境で gcloud コマンドを実行した際 ERROR: gcloud crashed (UnicodeDecodeError): 'ascii' codec can't decode byte 0xe8 in position 1: ordinal not in range(128) のようなエラーが発生してうまく実行できない。 なぜ glcou…

モノレポ(mono repository)内でgoのmoduleを相対パスで利用する方法

goの依存管理ツールはいろいろありますが、最新はGo Modules(mod)を利用することが多くなってきたと思います。 dep(vendor)を利用した依存解決の場合にはgopath配下にあればある程度柔軟に相対的に依存を解決できましたが、 modは普通に利用するとリポジトリ…

Docker build時にキャッシュを利用しない

Docker build する際に、基本的にはCacheを利用されますが、 それでは困る(毎回ちゃんと処理したい)という場合もあると思います。 そんなときは --no-cache オプションを docker build 時に付与すれば良い。 ま、それだけ。 docker build | Docker Documen…

BQMLのサンプルのqueryitを触ってみた

query-itってなに? Groovenautsさんが作った、BQMLのサンプルアプリケーション ソースコードもろもろは多分 こちら こちらのURL からアクセスできたのでメモがてら記事を残します。 使い方 URLでアクセス http://queryit.magellanic-clouds.com/ にアクセス…

git diffで長い行を改行して表示させる

git

git diff をしたときに長い行がターミナルの外に行ってしまって見えない場合、 GIT_PAGER='' git diff ~~ とすればよい。 これだけ、簡単。

自分がよく利用するDockerのコンテナ(メモ)

CI/CDをする際によく利用する、GCPを利用するなら特に知っていたほうが良さそうなコンテナたちをメモ。 GoogleCloudPlatform/cloud-builders GitHub - GoogleCloudPlatform/cloud-builders: Supported builder images for Google Cloud Build この辺りが含ま…

GCP Update 2019/03/06

直近のGCPのアップデートはこんな感じ - BigQuery sandbox: beta - Kubernetes Engine – node auto-repair: GA - Kubernetes Engine – node auto-upgrades: GA - Compute Engine – guest attributes: beta - Kubernetes Engine – Application-layer Secrets …

GCP 2019/02/19 の UPDATE

UPDATEがあった項目は以下 Cloud Firestore: GA App Engine flexible environment – WebSockets support: beta Internal load balancer – service discovery: GA Private Google Access for on-premises hosts: GA Apigee Developer Portal – SmartDocs, acc…

CloudSQL へローカルから接続できない(という人のために)

GCP で MySQL や PostgreSQL のような RDB をマネージドで利用したい場合に CloudSQL を選択することが多いと思います。 ポチポチっと押せばすぐにインスタンスが出来上がるし、gcloud コマンドや、Cloud Shell を利用することで用意に接続ができるので、ふ…

GAE(Appengine)のハンドラの例にある `_ah` ってなに?

こんにちは。chidakiyo です。 皆さんappengine使ってますか? _ahはどういうサンプルに出てくる? appengineのサンプルで、 ハンドラのパスに _ah というパスが含まれていることがあると思います。 例えば、warmupするための こちら の例を見てみましょう。…

GCP 2018/12/17 の UPDATE

Cloud Security Command Center: beta セキュリティの脆弱性を探してくれるやーつ https://cloud.google.com/security-command-center/ Cloud Functions – per-function identities: beta 機能ごとにIAM設定できるので細かく設定できるとかなんとか https://…

minikubeでspinnakerを動かすまで(Macのローカルでspinnakerを動かす)

とりあえずサクッと動かせる環境が欲しかったので、ローカルのminikubeでも一応spinnakerを動かすことはできそうだったので試す。 事前準備 helmがインストールが完了していること (brew install kubernetes-helm) kubectlのインストールが完了していること …

Raspberry Pi : Mackerelで監視してみる

エージェントのダウンロード ダウンロードするディレクトリに移動し、 cd ~ arm用のバイナリをダウンロードする。 こちら から実行時点で最新のものを利用するのが良いと思います。 wget https://github.com/mackerelio/mackerel-agent/releases/download/v0…

helm install しようとしたら Error: could not find tiller のようなエラーが発生したので解決した

タイトルの通りなんですが、helmでローカルのminikubeにhelmインストールをしようと思い、helm install ~~ のような感じでコマンドを実行したがエラーが発生してうまくいかない。 おそらく、helmはインストールしたあとに、GKEのクラスタに対して初期設定を…

Appengine (Node.js/Standard) 環境でHeadless Chromeを利用してサイトのスクリーンショットを取得する

過去に2回ほどGAE/Nodeの記事 これ と これ を書きましたが、もともとはこのHeadless ChromeをAppengine上で利用したかったのでそれを試したかったため。 Headless Chromeを利用することで、Webページのスクリーンショットだったり、JavaScriptが動いていな…

Building a Node.js App on App Engine なぞってみる

この記事は Building a Node.js App on App Engine をなぞってみた話です。 前回の記事 をふまえて、Node.jsのappを作成してGAEにdeployしようという記事です。 1. Creating a Google Cloud Platform project GCPにプロジェクトを作りましょう。 あと、appen…

Appengine Node.js Standard Environmentをデプロイしてみる(quickstart)

まず初回はquickstartに倣ってデプロイしてみるだけ。 ほぼ こちら のクイックスタートのままやってみようと思う。 事前に必要なもの(というかもう設定済みなので) GCPのアカウント作成(gmailアドレスあればすぐ) GCPのプロジェクト作成(適当にGCPコン…

Appengineで初回1回だけ実行したい(設定の初期化)ときはwarmupを利用する

Appengine (GAE) はリクエストのイベントでインスタンスが起動されるので、通常のアプリケーションを実装した際に初回1回だけ実行する処理というのが普通に実装するとなかなか難しい。 特にDB(Datastore)アクセスなどが必要な場合にはrequestが無いとappen…