vscodeでCPU100%に張り付く現象

ゲストOSのプロジェクトを、remote SSH extentionで開いたvscodeの操作が効かなくなる現象を確認 現象 しばらく使っていると以下の現象が起きる テキストの改行ができなくなる(入力・削除はできる) 保存(Ctrl + s)されない topで見るとCPUコア1つが100%で張…

MySQLのロック

ロックとは データベース上の同一データに対して書込み要求が同時に発生した場合、トランザクションが逐次化されていないと結果に矛盾が生じてしまう。 以下図を見ればロックがなぜ必要なのか直感的にわかる 引用: https://www.teradata-jp.com/post/col05i …

TerraformをUbuntu18.04で使えるようにする

tfenv tfenvはTerraformの複数バージョンの切り替えができるようになるツールです。Rubyで言うrbenvのようなもの。 # 参考: https://beyondjapan.com/blog/2019/02/tfenv-change-version/ git clone https://github.com/tfutils/tfenv.git ~/.tfenv # for ba…

Rubyで見るUNIXプロセス

会社の同期で定期的に行われているゆるふわ勉強会でUNIXプロセスについて発表しました speakerdeck.com 「なるほどUNIXプロセス - Rubyで学ぶUNIXの基礎」を参考にさせていただきました。 https://tatsu-zine.com/books/naruhounix Unix系OSを長年使っていま…

vnstatまとめ

ネットワークトラフィックモニター お手軽に導入できる NICごとにIO(rx: 受信, tx: 送信)が確認できる DBに測定値を保存する 月/日/時でグラフ(png)を出力してくれる リアルタイム計測もできる vnstat起動してからのネットワーク量とか Install パッケージで…

Net::HTTPのレスポンスのヘッダーを確認する方法

もうあまりNet::HTTPを使う機会なんてないんだがたまにいてヘッダー確認したい時についres.headersなんてしてしまうのでメモ。 `res.to_hash` これでヘッダー確認出来る。リクエストは素直にheaderとかで確認できた気がする https://stackoverflow.com/quest…

アムダールの法則

並行処理を書いているときに見つけたのでまとめ。 アムダールの法則とは、 並列性を追加して得られるスピードアップは、プログラムがどの程度並列に実行されるかに依存する。 というもの。一般式は以下。 P: 並列化できる割合 N: N個のプロセッサ 以下のグラ…

マルチスレッド

Rubyでマルチスレッディングする際の方法や注意点 マルチプロセス・マルチスレッドの違い マルチプロセスはメモリを完全にコピーする マルチスレッドは同一プロセス内に存在し、メモリを共有する スレッドセーフ マルチスレッドではメモリを共有して並列処理…

goenvの導入

Ubuntu18.04で構築。rbenvとだいたい同じ流れ。 # install goenv git clone https://github.com/syndbg/goenv.git ~/.goenv # bashrcに記載 export GOENV_ROOT=$HOME/.goenv export PATH=$GOENV_ROOT/bin:$PATH eval "$(goenv init -)" # logout # show inst…

【golang】並行プログラミング

並行プログラミングの基本 複数の処理を効率よく行うために、Goは言語自体が並行処理に必要な機能をサポートしている。 ゴルーチン Goにはゴルーチン(Goroutine)という軽量スレッドの仕組みがある。main()関数も1つのゴルーチンの中で実行されている。go構文…

【golang】言語仕様まとめ

インポート import( "fmt" ) func main(){ fmt.Println("hello world") } インポートしたパッケージ内には、パッケージ名.Hoge()でアクセス。 オプションの指定 import( f "fmt" _ "github.com/hoge/fuga" . "strings" ) func main(){ // fmt.Println() => f…

Hugoの記事をGitLab Pagesにサクッとデプロイ

gohugo.io 上記を参考にするとサクッとデプロイできました。

HugoをDockerでサクッと構築

良さげなdockerイメージがあったので使ってみた。 hub.docker.com READMEに書いてあるとおりにすればめちゃかんたんにサーバー起動までできた。 tl;drは以下 # プロジェクト作成 docker run --rm -it -v $PWD:/src -u hugo jguyomard/hugo-builder hugo new …

Ubuntu18にgolang【fish】

https://golang.org/dl/からLinux用のURLをコピー # ダウンロード wget https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz # 展開して配置 sudo tar -C /usr/local -xzf go1.14.2.linux-amd64.tar.gz # config.fishにパスを通す set -x GOPATH /usr/loc…

ActiveRecordでバリデーションを無視してデータを保存する方法

テストデータがほしいときに rails c してActiveRecordを使ってデータを挿入したいことがよくあるのですが、バリデーションが多く保存できるデータがかなり制限されているようなモデルの場合では、テストデータを作成すること自体結構な工数になってしまいま…

MySQL Sample DatabaseのデータをローカルのDockerコンテナで立てたMySQLに反映させる方法

ここの「Download MySQL Sample Database」からmysqlsampledatabase.sqlをダウンロードします。 以下のようなテーブルが作成できます ダウンロードした.sqlファイルをdocker/db/sqlにコピーします。あとは立ち上げるだけで.sqlのデータがDBに反映されます。…

Ubuntuにpecoを導入する(for bash) (for fish)

pecoを導入するとどういう事ができるようになるかは公式サイトを見たほうが早いです。 Install(Ubuntu) cd # 以下のページから最新バージョンをwget # https://github.com/peco/peco/releases wget https://github.com/peco/peco/releases/download/v0.5.7/p…

RSpecをRailsに導入する方法

Rails v6.0.0 Ruby v2.6.3 # Gemfile group :development, :test do gem 'rspec-rails', '~> 3.6' end # install bundle install # RSpec 用の初期ファイルをgenerate bundle exec rails generate rspec:install Spring を使った RSpec の導入 rspecの起動が…

Clockwork

Clockwork ローカルマシンで定期的にスクリプトを動かしたいときに使える。cronのようなもの。 Install gemなのでgem install clockworkで導入。 メソッド メソッド 概要 every 定期実行するジョブを定義する handler ジョブ実行時に呼び出される処理を定義…

ABC 025 B問題 「双子のスイカ割り」(Python)

B - 双子とスイカ割り