【Go】bufio.Scannerを使う際の注意点

先日Goでスクリプトを書いているときに以下のようなバグに遭遇したので書き残しておきます。 以下のようなファイルがありました。 {"title": "Eloquent JavaScript, Second Edition","description": "JavaScript lies at the heart of almost every modern w…

アプリケーションのパフォーマンス分析

詳解システム・パフォーマンス5.4はアプリケーションに対するパフォーマンス分析の手法についてまとめられています。 以下の順で分析をすることが勧められています。 ①スレッドの状態の分析 はじめにアプリケーションのプロセスがどの状態で一番時間を過ごし…

パフォーマンス分析の手法

詳解システム・パフォーマンス5.2項はパフォーマンス分析とチューニングのためのメソッド・アンチメソッドです。 メソッド・アンチメソッド 街灯のアンチメソッド ランダム変更アンチメソッド 誰かほかの人を避難するアンチメソッド アドホックチェククリス…

パフォーマンス計測ツールがどこから情報を取得しているのか

詳解システム・パフォーマンス4.2には各パフォーマンス計測ツールの情報ソースについてまとめられています。 www.amazon.co.jp 基本的にLinuxを前提とし、Solarisシステムに関しては省略します。 カウンタのための情報ソース /procディレクトリ:プロセス…

パフォーマンス計測ツールの分類

詳解システム・パフォーマンス4.1にはパフォーマンス計測ツールの分類について書かれています。 www.amazon.co.jp ひとえにパフォーマンス計測のツールと言っても、その特徴ごとに分類することができます。 主な観点は以下の2つです。 全てのイベントに対…

計算理論の基礎:オートマトン

計算理論の基礎を読んでいるので整理のために少しまとめておきます。 www.amazon.co.jp 計算理論の3大分野 他の分野同様計算の理論もいくつかの分野に分かれていますが、そのなかでも重要なのが以下の3つの分野です。 計算の理論における根本的な疑問は計…

2018年を振り返る

こんにちは。いつにも増して筆不精ですが年の瀬なので今年一年を振り返っておこうと思います。 昨年の振り返りにもあるように今年は効率的な学習を強く意識しました。 kentakudo.hatenablog.com 具体的には一年を四半期に区切りそれぞれテーマを絞って学ぶス…

ローカルのkubectlにGKEクラスターを追加

gcloud container clusters get-credentials [CLUSTER_NAME] Quickstart | Kubernetes Engine Documentation | Google Cloud

【NOTE】Prometheus

This is a note taken when investigating Prometheus. https://prometheus.io/docs/ monitoring and alerting built at SoundCloud pull model via HTTP for short-lived jobs, push gateway is available similar services: Graphite, InfluxDB, OpenTSDB,…

【NOTES】Consul

The followings are the notes taken when spiking Consul. host-based to service-based service discovery for connectivity service registry health check DNS and HTTP keep the real time list of services, location and health service segmentation…

MySQLでレプリケーションを設定する

レプリケーションはMySQLで最も重要な機能の一つで、その用途は多岐に渡ります。それゆえ素早くセットアップできることが好ましいです。ここではその手順をまとめておきます。 方法はいくつかありますがここではマスターからmysqldumpでデータを取ってくる方…

MySQLで差分バックアップをとる

リストア処理においてフルバックアップと合わせて必要になるのが差分バックアップです。ということで備忘録。 1. バイナリログを記録する まずはこれをしないと始まりません。設定ファイルのlog-binの項目をコメントインし、サーバーを再起動しておきましょ…

mysqldumpでフルバックアップとリストア

MySQLのバックアップにはいくつか方法があります。その中でも最もオーソドックスな方法であるmysqldumpを使った方法についてまとめておきます。 mysqldumpを使った方法の特徴としては 手軽である 無停止でバックアップが取れる(オンラインバックアップ) デ…

MySQLサーバーの設置

チュートリアルなどでMySQLサーバーが欲しいことがよくあるので手順をまとめておきます。OSはUbuntu18.04TLSです。 【参考】 A Basic MySQL Tutorial | DigitalOcean 1. インスタンスの作成 自分の環境に合わせてインスタンスをセットアップします。今回はGC…

【メモ】AWKについて

AWKについて調べた際のメモおよび「『シェル芸』に効くAWK処方箋」の読書メモです。 マニュアルはここ(あとで読む) 【 awk 】コマンド(基本編)――テキストの加工とパターン処理を行う awk ‘pattern {action}’ filename $番号でフィールドを指定 スクリプ…

【読了】新しいシェルプログラミングの教科書

一介のソフトウェアエンジニアとしてシェルスクリプトくらいさらさらと書けますよね?......僕は書けません。というわけで「新しいシェルプログラミングの教科書」を読んだのでその際のメモです。 www.amazon.co.jp Chapter01: シェルとは ログインシェルの…

7~9月振り返り

久し振りになってしまいました。 やったこと 書籍 はじめて学ぶソフトウェアのテスト技法 知識ゼロから学ぶソフトウェアテスト ソフトウェアテスト技法 テスト駆動開発 実践テスト駆動開発 The Art of Software Testing リファクタリング エクストリームプロ…

4~6月振り返り

やったこと 書籍 30日でできる! OS自作入門 はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識 オペレーティングシステムの仕組み Linuxのしくみ ~実験と図解で学ぶOSと…

【Raspberry Pi】システムタイマ

Raspberry PiでLチカ - 技術について語るときに僕の語ることでLED点滅をしたときにdelay(50000)という関数を使いましたが、「CPU50000クロックってどんだけやねん」という話なのでシステムタイマを利用して秒で指定できるようにしたいと思います。 なお主に…

【メモ】Makefile

Makefileについて調べた際のメモです。 www.gnu.org Microsoft nmake、Borland make、GNU make、Solaris makeなどいろんな種類があるらしい フォーマットはターゲット名: 依存ファイル名を書いて次の行からコマンドを書いていく。 「作りたいもの、必要な材…

Raspberry PiでLチカ

ハードウェア版Hello, WorldであるところのLチカ(LED点灯)をRaspberry Pi(以下RPI)でやってみたいと思います。使用するのはRaspberry Pi B+モデルです。 やることは2ステップです。 LEDに対応するピンを出力モードに設定する。 対応するピンの出力ビットを立…

Goのpluginパッケージを試してみる

例えば強いこだわりにより、switchを使いたくない時 eg) func main() { if len(os.Args) < 2 { fmt.Println(help()) os.Exit(1) } switch os.Args[1] { case "a": a.F() case "b": b.F() } } Go1.8で導入されているpluginのパッケージを使えば以下のように書…

【日記】30日でできる! OS自作入門

book.mynavi.jp 筆者はそうしなくていいと書いていますが、律儀な性格なので1日1Chapter進めていきたいと思っています。 (4日目)一度で理解できる内容ではなく、2週したいので予定変更。 0日目 - 2018/03/31 本はWindowで開発するために書かれているので、ma…

1~3月振り返り

やったこと 受講したオンラインコース DL4US Coursera: Machine Learning 読んだ本 オブジェクト指向における再利用のためのデザインパターン 増補改訂版Java言語で学ぶデザインパターン入門 UNIXネットワークプログラミング〈Vol.1〉(まだ途中) ITエンジニ…

setコマンドについて

-eオプション 実行したコマンドが失敗したときにシェルスクリプトの実行を終了する。 -xオプション 実行するコマンドを出力する。 例 foobar:~ foobar$ echo $HOME + echo /Users/foobar /Users/foobar ++ printf '\e]7;%s\a' file://foobar.local/Users/foo…

ssh-keygen: command not foundのとき

$ sudo apt-get install -y openssh-server で一緒にインストールされる。 Refs ssh-keygen command not found when setting up Git on Windows - Super User server - unrecognized service when starting ssh - Ask Ubuntu

tmpフォルダーのgit管理

フォルダは存在していて欲しいけど、中身のファイルはgit管理されたくない時。 以下をプロジェクト下の.gitignoreに記述。 tmp/* !.gitkeep tmpディレクトリ下に.gitkeepファイルを置く あるいは残したいディレクトリに .gitignore を置き、 /* としてもいい…

GCPインスタンスのファイヤーウォール設定

Flaskアプリケーションにアクセスしたかった際の備忘録。 Firewall Rule設定ページを開く Ruleを作成する Name: デフォルトで設定されているsshの例) default-allow-ssh 優先度: そのままでいい トラフィックの方向: ingress(incoming) = 上り、egress(outbo…

強化学習について

強化学習について調べた際のメモです。 達成したいゴールがあるが、各行動に対する評価は与えられない場合 「行動の選択肢」と「報酬」 強化学習という名前は脳の学習メカニズムであるオペラント学習に由来する 報酬は「連続した行動の結果」に対して与えら…

GANについて

GAN(Generative Adversarial Network)について調べた際のメモです。 GANとは Ian Goodfellow (@goodfellow_ian)が2014年に発表1 生成モデル: 訓練データの分布と生成データの分布が同じになるよう学習 訓練データに対してパラメータが小さく、重要な特徴を学…