ludwig125のブログ

頑張りすぎずに頑張る父

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

GKE を格安で使うためにやったこと

GKE を格安で使うためにやったこと 目的 やりたいこと ここで紹介する方法でできないこと 料金の確認 一か月の使用料金について 【実例】n1-standard-1でHello Worldを表示するだけのサーバを動かした時の費用 なんでこんなに高いの? SKUについて 料金の内…

Go言語で作ったプログラムをKubernetes のコンテナにおいて実行する(デバッグ用)

概要 Kubernetes(またはDocker)のコンテナ内でGoのプログラムをデバッグする時に使う方法の自分用のメモ 活用ケース Kubernetesにデプロイしたけど、Goのプログラムが予想通り動いていない! というときに、またDocker ImageのbuildしてからKubernetes deplo…

go言語のBenchmarkTestメモ

概要 いろいろとベンチマークを取った時のメモ 参考: An Overview of Go's Tooling - Alex Edwards ← 超イイ High Performance Go Workshop ← 神 Effective Go - The Go Programming Language ← 公式 Go slice ベストプラクティス - Qiita 【題材1】slice…

go言語のpipeline、fan-in、fan-out

関連 ludwig125.hatenablog.com pipeline(パイプライン) Go言語による並行処理を読んでパイプラインやファンイン、ファンアウトについて自分なりに理解したので具体例とともに挙動を書く O'Reilly Japan - Go言語による並行処理 pipelineや、fan-in(ファ…

go言語で複数のgoroutineのエラーハンドリングをする

関連 ludwig125.hatenablog.com 複数のgoroutineの結果の取得 複数のgoroutineの結果の取得1(エラーが起きると中断する例) 第5章 並行プログラミング―ゴルーチンとチャネルを使いこなす:はじめてのGo―シンプルな言語仕様,型システム,並行処理|gihyo.j…

go言語で同時並列数を制御する

関連 ludwig125.hatenablog.com 同時並列数の制御 【同時並列数の制御】1. 並列数を制限しない場合 並列数を制限しない場合はこの通り単純 複数のgoroutineを起動する場合は、WaitGroupで待ち合わせをする ※time.Sleep(1 * time.Second)は処理の様子をわかり…

go言語でシグナルをきちんとエラーハンドリングする

関連 並行処理全般に関するメモは以下 go言語の並行処理 - ludwig125のブログ go言語でsignalを適切に処理する方法を調べたので例をいくつか シグナルを受け付けて関数を適切に終了させる例1 SIGINT, SIGTERMを受け付けられるsignalの例 参考: Go by Examp…

Ubuntu 18.04.2のgoのversionを最新にする

目的 go modを使いたかったのでgoを1.11以上にする必要があった せっかくなので最新にした インストール方法参考 公式 Getting Started - The Go Programming Language 環境 Ubuntu 18.04.2 LTS go version go1.9.7 linux/amd64 手順 ほとんどこのままできた…

同一Lan内からLinuxの複数のファイルをまとめてダウンロードさせる

目的 家や会社などの、同じLan内の別のデバイスから複数のファイルをまとめてダウンロードできるようにする 具体例 他の人に複数の写真の共有をしたいときに、 メールなどで送るのめんどくさい Dropboxなどのラウドサービスを使いたくない USBメモリとかで受…

GKEのチュートリアルでkubectlをインストールできなかった

cloud.google.com こちらの方法に従ってkubectlをインストールしようとしたらエラーが出て失敗 gcloud components install kubectl $ gcloud components install kubectl ERROR: (gcloud.components.install) You cannot perform this action because the Cl…

go言語reflectメモ

reflect パッケージについてメモ 他記事: ludwig125.hatenablog.com reflectとは reflectはGoでReflection機能を提供するためのパッケージ このパッケージの関数を使うことで、引数の型や値を動的に取得できる 使い方1. (reflectで参照した変数の値を変更し…

CloudSQLを安くするために考えたこと

無料トライアル期間が終わったのでCloudSQLのマイグレーションをした話 安さを追求したわけではなく、自分なりの妥協点を探っただけ 事象 2019/5/22 CloudSQLに接続できなくなった $ gcloud sql connect myfinance --user=root ERROR: (gcloud.sql.connect) …

GoogleHomeまたはAndroidに話しかけてスプレッドシートにメモを取る

概要 GoogleHomeやAndroidに話しかけるだけでスプレッドシートにメモを取ることができる ちょっとしたメモを取るのに便利 ludwig125.hatenablog.com こちらとほぼ同じ方法で作った 手順 これだけ 1.スプレッドシートを用意する 2.スプレッドシートにGoog…

GoogleAppEngine(GAE)でgoroutineを使う

GoogleAppEngineでgoroutineを使う 以下に記載されている通り、GoogleAppEngineでは並列処理はサポートしていない。 Go Runtime Environment | App Engine standard environment for Go | Google Cloud App Engine の Go ランタイム環境は、goroutine を完全…

相関係数について

相関係数について 下記相関係数の導出までの説明 正の相関と負の相関 データ列1のように、年月日に対して値が増加している場合、これを「正の相関がある」という データ列2のように、年月日に対して値が増加している場合、これを「負の相関がある」という …

pythonアルゴリズムなどメモ

内容 自分がよく使うpython3の書き方のまとめ 大体はpython2でも使えるはず(?) Tips 文字列を受け取って整数にする N = int(input()) 文字列を受け取って整数の配列にする A = list(map(int, input().split())) またはリスト内包表記を使って A = [int(a)…

go言語の並行処理

概要 「Go言語による並行処理」を読んだのでメモ ※この本に書いてないことも以下では取り上げている github.com goroutineとsync goroutineの書き方 一番単純なgoroutine(これは期待した通り動かない) package main import "fmt" func main() { hello := fun…

vmwareで「パワーオン中にエラーが発生しました」が出た(Windows10)

起きたこと Windows10 で、 VMware Playerで以下のエラーが発生して起動しない パワーオン中にエラーが発生しました:Transport(VMDB)error -44 Message. The VMware Authorization Service is not running. vmware やったこと Windows10の場合、左下のWin…

go言語で呼び出す関数を動的に変更する

package main import ( "fmt" ) func main() { funcList := []func(){function1, function2, function3} for i:=0; i < 3; i++{ funcList[i]() } } func function1() { fmt.Println("print function1") } func function2() { fmt.Println("print function2")…

GoogleAppEngine(GAE)メモ

Tips githubに上げたくない環境変数をどうやって管理するか githubに上げたくない環境変数をどうやって管理するか 以下を参考に、別のyamlをincludesして、秘密にしたいinclude先のファイルは.gitignoreに入れてgithubには上げないようにする app.yaml リフ…

go言語アルゴリズムやTipsなどメモ

内容 go言語で自分がよく使う書き方やTipsのまとめ 並行処理関係は以下 ludwig125.hatenablog.com BenchmarkTestは以下 ludwig125.hatenablog.com Tips 入力値 入力値を受け取る 文字列で受け取る var s string fmt.Scan(&s) 整数で受け取る var N int fmt.S…

Ubuntuインストール後の設定メモ

前提 Windows7にUbuntuをインストールする手順メモ - ludwig125のブログ Ubuntuでデスクトップのディレクトリ名を「Desktop」にする 参考: Ubuntuでデスクトップのディレクトリ名を「Desktop」にする - ぬいぐるみライフ? 端末エミュレータを開き,以下の…