新しいことにはウェルカム

技術 | 電子工作 | ガジェット | ゲーム のメモ書き

本「Go言語による並行処理」で非同期処理が楽しくなった

Go言語を始めました。 何か新しいことを学ぶ時には、ワンストップで体系立て全体像が把握できる、書籍を読むやり方が好きです。 今回「Go言語による並行処理」を読んだのですが、とても良かったので、ここに感想を書きました。 Go言語による並行処理 並行処…

Go言語の時刻演算パッケージ「time」の使い方メモ

Go言語は、シンプルな関数を組み合わせてプログラミングをすることが多く、また、関数毎にエラーチェックが発生するので、全般的にコードが長くなりがちです。 ちょっとした事をしたい時でも、コードをそれなりに書く必要があるのですが、毎回ゼロから書くの…

Go言語の正規表現・文字列操作方法メモ

Go言語は、シンプルな関数を組み合わせてプログラミングをすることが多く、また、関数毎にエラーチェックが発生するので、全般的にコードが長くなりがちです。 ちょっとした事をしたい時でも、コードをそれなりに書く必要があるのですが、毎回ゼロから書くの…

SVNでちょっとファイルをダウンロードをしたい時のコマンドメモ

SVNを使っているプロジェクトがあって、そこから最新のファイルをダウンロードすることがあります。 あくまで指定したファイルが欲しいだけで、そんな、ちょっとファイルを取得したい時に使う、必要最低限のSVNコマンドメモです。 svnインストール sudo apt-…

Go言語でJSONを読み書きする方法メモ

Go言語は、シンプルな関数を組み合わせてプログラミングをすることが多く、また、関数毎にエラーチェックが発生するので、全般的にコードが長くなりがちです。 ちょっとした事をしたい時でも、コードをそれなりに書く必要があるのですが、毎回ゼロから書くの…

Go言語でファイル・IO・ストリームを使った読み書き方法のメモ

Go言語は、シンプルな関数を組み合わせてプログラミングをすることが多く、また、関数毎にエラーチェックが発生するので、全般的にコードが長くなりがちです。 ちょっとした事をしたい時でも、コードをそれなりに書く必要があるのですが、毎回ゼロから書くの…

AWS CLI設定方法メモ

久しぶりにAWS CLIをインストールしました。バージョン2になっているんですね。 一度設定すると中々触れる機会がなくて忘れてしまうので、自分用設定方法メモです。 基本的な仕組み ~/.aws/config でプロファイルを設定する ~/.aws/credentials でユーザー…

Linuxでディレクトリ毎に環境変数を自動で変える方法

Docker Composeのプロジェクト名は、docker-compose.yamlファイルが置かれているディレクトリの名前になります。 しかし、ディレクトリを別の名前にしたいことは多く、そんな時はdocker-composeコマンドを実行する度に-p <project_name>オプションでプロジェクト名を指定す</project_name>…

Go言語でローカルパッケージを使う方法(Go Moludes)

Golangでプログラムを書いていて、プログラムが長くなってきたので、パッケージに分けてみました。 構成 ディレクトリ構成は下記のような感じ。 . |-- a | `-- a.go |-- b | `-- b.go `-- main.go 手順 方針 Go Modules を使って、プログラムを1つのモジュ…

Go言語でハマったことメモ(インターフェース)

Golangを始めました。 GolangはC言語のように、シンプルな文法・データ構造でできているのですが、同時に、生産性を高めるための、高度な概念も取り入られています。 そしてそのために、Golangには若干トリッキーな構文がいくつかあります。 しかし、それら…

Go言語でハマったことメモ(値渡し・ポインター渡し)

Golangを始めました。 Golangはポインターを使います。 Golangは歴史的に新しい言語なので、ポインターを意識しないで、何となくコードを書けば良しなに動いてくれるのかなと思ったのですが、甘かったです…。 ポインター自体はよくあるもので、とりあえずポ…

Go言語でハマったことメモ(slice・map・string)

Golangを始めました。 GolangはC言語のように、シンプルな文法・データ構造でできているのですが、同時に、生産性を高めるための、高度な概念も取り入られています。 そしてそのために、Golangには若干トリッキーな構文がいくつかあります。 しかし、それら…

Go言語でハマったことメモ(マップに構造体を入れると「cannot assign to struct field ...」のエラーになる)

Golangを始めました。 始めてみて感じたのですが、Golangはできるだけ文法をシンプルにかつ、できるだけコードがシンプルになるように設計されています。 そしてそのために、Golangには若干トリッキーな構文がいくつかあります。 しかし、それらを知らずに、…

Go言語でハマったことメモ(クラス・継承)

Golangを始めました。 始めてみて感じたのですが、Golangはできるだけ文法をシンプルにかつ、できるだけコードがシンプルになるように設計されています。 そしてそのために、Golangには若干トリッキーな構文がいくつかあります。 しかし、それらを知らずに、…

Go言語でハマったことメモ(ポインターのアロー演算子がない)

Golangを始めました。 始めてみて感じたのですが、Golangはできるだけ文法をシンプルにかつ、できるだけコードがシンプルになるように設計されています。 そしてそのために、Golangには若干トリッキーな構文がいくつかあります。 しかし、それらを知らずに、…

Docker Composeで、コンテナ毎にログをタブに分けて表示する方法

複数のコンテナを連携させたい時は、Docker Composeを使っています。 Docker Composeを実行すると、各コンテナのログが表示されるのですが、1画面に全てのコンテナのログが表示されます。 コンテナ毎にログを追いたいのですが、途中で他のコンテナのログが…

Jenkinsのdockerイメージは、Docker公式とJenkins公式の2つあるのか…

DockerでJenkinsを使いたかったので、Jenkinsイメージを取ってきて使いました。 FROM jenkins:alpine 問題発生 Jenkinsのセットアップでプラグインをインストールしようとすると、ことごとくエラーになりました。 原因究明 プラグインのエラーを見るとこんな…

kubectlで複数のクラスターを切り替える方法

Kubernetesの新しいクラスターを追加したので、kubectlコマンドで切り替えられるように設定しました。 一度設定してしまうといじることはなく、このままだとやり方忘れてしまうので、自分用に設定方法をメモしておきます。 仕組み Kubernetesを操作するにはk…

Google Cloud SDK(gcloud)で複数アカウント・プロジェクトを切り替える方法

Google Cloud Platformに新しいプロジェクトを追加したので、Google Cloud SDK(gcloud CLI)でプロジェクトを切り替えられるように設定しました。 一度設定してしまうといじることはなく、このままだとやり方忘れてしまうので、自分用に設定方法をメモして…

Microsoft Graph (Office365) API の、管理者アクセスできる、ユーザーなしトークンを取得して使用する方法

Microsoft Graph (Office365) APIの、管理者トークンの取得と使い方に関するメモです。 きっかけ Azure Active Directoryのユーザー・グループの追加・削除を、APIを使って行おうとしました。 Azure Active DirectoryのAPIは、Microsoft Graph (Office365) A…

Azure Active Directoryのシングルサインオン(SSO)で、アプリにログインできない時の対処方法

シングルサインオン(SSO)サービスに興味があって、一時期色々サービスを試していました。 www.kwbtblog.com Office365のユーザーをキーとしてログインしたかったので、結局Azure Active DirectoryのSSOを使うことにしました。用途としては、主にTableauのロ…

Dockerfileのタグでlatestは使っちゃいけないなぁと思った

定期的に、AWS S3のファイルを、Google Cloud Storageにコピーしています。 コピーのやり方は色々あるのですが、ここではGoogle Cloud SDKのgsutilコマンドを使っていて、 Google Cloud SDKは、Alpine LinuxのDockerイメージを使用しています。 しかし、ある…

Google BigQueryのNode.js SDKで、Cloud Storageの複数のファイルをまとめてロードする方法

Google BigQueryに、Google Cloud Storageのファイルをロードする時、複数のファイルをまとめてロードすることができます。 しかし、それをGoogle BigQueryのNode.js SDKでやろうとしてハマったので、そのメモ書きです。 概要および問題点 table.createLoadJ…

Google Cloud Storageでファイルとディレクトリを区別する方法

Google Cloud Storageで、サブディレクトリ内のファイル一覧を取得して、それらのファイルの処理をしようとしました。 しかし、ファイルがおかしいとエラーが出るので見てみたら、取得したファイル一覧に、サブディレクトリが含まれていました。 原因 前に勘…

Google Cloud Storageのサブディレクトリ一覧をNode.jsで取得する方法

以前、Google Cloud Storageのサブディレクトリ一覧を、GCP Pyhtonライブラリを使って取得したのですが、そのNode.jsバージョンです。 Pythonバージョンはこちら www.kwbtblog.com 手順 GCP Node.js SDKのドキュメントにサンプルがあるので親切ですね。 http…

TwitterのSearch APIの使い方で混乱したのでまとめてみる

Twitter APIを使ってデータ収集する機会がありました。 Twitter APIには、Googleの検索のように、ツイートを検索するSearch APIがあって、今回それを使いました。 普段Twitterは、主にリーダーとして利用していたので、あまり機能を意識することは無かったの…

Linuxでアンダーバーが入力できなくなった

追記 Chromeの更新通知が来たので、期待しながら更新すると、アンダーバーの入力ができるように治ってました! 元記事は残しておきます。以下元記事です。 Linux(Ubuntu)とWindowsを使っているのですが、キーボード・マウス・モニターを切り替えるのが面倒…

JavaScriptで、Excelで出力した、改行・カンマ付きCSVファイルを読み込む方法

CSVファイルの読み込みは、今までSheetJSを使っていました。 しかし、どうしても文字化けしてうまく読み込めないCSVファイルがあったので、他のライブラリを試してみることにしました。 npmで「csv」で検索すると一番上に出てくる、その名も「csv」というラ…

Twitter APIでデータ収集してみる

世の中の動向を知るのに使えないかと、Twitterのデータを、Twitter APIを使って取得してみました。 結論から言うと、Twitter APIの制限がキツイと噂には聞いていましたが、本当にキツ過ぎて使い物になりませんでした…。 Twitter APIでデータを取得するところ…

格安SIMに変えて、半年ほど使ってみた感想

大手キャリアでiPhoneを使っていました。 7Gのプランでしたが7G超えることはなく、毎月の請求は1万円弱くらいでした。 何となく高いなぁとは思っていましたが、キャリアやプラン変更は面倒くさくてそのまま使い続けていました。 しかしその後、色々家計を見…