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

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

2019-01-01から1年間の記事一覧

Goの標準機能で過去のバージョンをインストールする

自分個人の環境はいつも最新のGoを利用しているので特にgoenvなどのようなバージョンを切り替えるツールを使っていないのですが、Goのバージョンを切り替えて使いたい人もいるみたい。 体感的にgoenvを利用している人が多そうではありますが、Go標準に複数の…

GAE/goの東京リージョンからServerless VPC Access経由でMemorystoreへのアクセスをベンチマークしてみる

つい先日、東京リージョンにも Serverless VPC Access がやってきたので、GAE/SEから Memorystore が利用できるようになりました。 Memorystoreは内部的にはRedisで、今までのGAE/SE 1st-genと呼ばれる環境ではmemcacheが提供されていましたが、2nd-genから…

Kindle fire 10 (19年モデル) を買ったのでGoogle Playをインストールする

サイバーマンデーで10月頃に発売されたKIndle Fire HD 10が1万以下で出ていました。 子供がAmazon PrimeVideoを見ているとテレビを専有されるので子供のプライムビデオ用に買ってみました。 Kindle Fireを購入したのはこれで3台目で 7,8,10 インチとすべて揃…

Goで特定の関数を持つか/実装されているかチェックする方法

いまさらながら、なるほどーと思ったのでメモ。 go1.13のerrorsのUnwrap関数が以下のように実装されている // Unwrap returns the result of calling the Unwrap method on err, if err's // type contains an Unwrap method returning error. // Otherwise,…

GoのGraphQLライブラリのgqlgenのGetting startedをやってみた

この記事は こちら をなぞってみた記事になります。 GraphQLをこれから始めたいという方におすすめ gqlgenを利用してGraphQLサーバを実装する方法です。 todoのリストを返却する 新しいtodoを作成する 完了したtodoをマークする ちなみにココからの手順はgo …

Goでmain関数経由でもベンチマークする

Goはテストの機能としてベンチマークを測定する機能が標準で提供されています。 ただ、そのままだとテストコードを実行できる環境でしか実行ができなかったりするため、 main関数から実行したい場合もあるかと思います。 今回はmainからベンチマークを実行で…

goのプロファイラpprofを利用してパフォーマンスを計測する (GAE + ginもあり)

pprof とは Go言語のプロファイリングツール。 Web UIでフレームグラフや、関数の実行時間のグラフを見ることができる 通常のpprof利用方法 pprofの使い方として2つのパターンがあります。 runtime/pprof : ファイルにプロファイル情報を出力する net/http/…

Bazelでbuild試してみる(Javaでgetting started)

基本的な内容は Getting Started with Bazel をなぞってます。 Bazelとはなにか Googleが開発したBuildツール。 もともとはGoogleが社内で使っているツール(の思想?)をベースに開発されているようですね。 makeを置き換えれるもの的な説明を見かけたが、もっ…

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 を利用することで用意に接続ができるので、ふ…