sagantaf

IT関連の技術記事を書くブログ。

Recoil get・setとuseRecoilStateの使い分け

フロントエンドの状態管理ツールの1つであるRecoil。 その使い方として、状態管理したい変数をatomやselectorに定義し、getやset、resetで、取得、更新、初期化する、という流れですが、useRecoilStateやuseRecoilValueなどのReact hooksとの違いがいまいち…

bitcoin coreをM1 Macにインストールしてgenesisブロックを追ってみる

目的 bitcoin core を M1 Mac にインストールし、genesis ブロックを追ってみるための記事です。 リアルなトランザクションを確認したいので、mainnet に接続します。また、ソースコードからビルド、インストールし、 bitcoin-cliを使うため、GUI は利用しま…

Podをヘルスチェックする3つの方法 - probeを理解する

KubernetesにはPodをヘルスチェックする方法として3つのprobeという機能を用意しています。その3つのprobeの使い方や違いを解説します。 probeはKubernetesの重要な機能で、エンドユーザーにとって使いやすいサービス提供のために欠かせないものです。基本…

Go言語のtesting.Tとtesting.Mとtesting.Bとtesting.Fの違いと使い方

Go言語のtestingパッケージには、ユニットテストやベンチマークテスト、Fuzzingテストを行うためのツールが組み込まれています。 このパッケージには、いくつかの重要な型が定義されています。 testing.T testing.M testing.B testing.PB testing.TB testing…

React HooksのuseReducerとuseContextとカスタムフック

useReducer useReducerの基本 Stateとdispatch(actionを送信する関数)を返すフック。 これを使うことでコンポーネント内でstate管理ができる。 書き方は以下。 const [state, dispatch] = useReducer(reducer, stateの初期値) reducer にはstateの更新方法を…

React.memoとReact HooksのuseCallbackとuseMemo

React.memo React.memoの基本 処理した結果をキャッシュとして保持することを「メモ化」と呼ぶ。React.memoはそのメモ化をするための機能。 メモ化することでコンポーネントの再レンダーを回避し、パフォーマンスを上げることができる。レンダリングに時間が…

React HooksのuseEffectとuseRef

useEffect useEffectの基本 useEffectとは何か? コンポーネントのレンダー後か、アンマウント後に処理が稼働するフック。 「レンダー後」に稼働するため、DOMを操作できる。また、アンマウントとはコンポーネントをDOMから削除して破棄することを指す。 【Re…

React Hooksの基本とuseState

Hooksとは HooksはReactの16.8.0バージョンから追加された新しい機能。 Hooksを使うことで、ReactのComponentを関数で定義することできる。従来はクラスによる定義のみであったが、関数でも定義できるようになったことで、 同等の機能を実装する場合、クラス…

文章を書くときのチェックリスト

書く前にやること 記事を書く目的を明確にする 読み手を意識する 構成を考え、要素を箇条書きにする(結論、理由、具体例、結論など定型を考える) 「である調」「ですます調」のどちらにするか決める →「である」は強い印象を与えるが端的に書ける。「です…

pythonの関数とclosureのメモ

python function is first object >>> def outer(): ... def inner(): ... print('hoge') ... return inner() ... >>> outer() hoge inner()を返している点に注目。ここではouter()を呼び出すことでprint文の実行結果が返される。 innerを返す内容に変えてみ…

AWSのVPCなどのネットワークをTerraformで作成する

はじめに AWSのVPCやサブネットなどのネットワークリソースを新規にTerraformで作成します。ネットワーク内でのローカル通信、外部からのアクセス、外部へのアクセスが可能なネットワークにします。 Terraformの基本的な使い方や、インストール方法などは、 …

Terraformを実際に使えるようになるためのTerraform入門+ちょっと実践

はじめに AWSのリソース作成を参考にTerraformの基本的な使い方と、実際に開発する時に必要になるファイル構成や環境変数を使い方などを解説します。 目次 はじめに 目次 実行環境 インストール まずは使ってみる(QuickStart的な) AWSのconfig設定 EC2イン…

円錐曲線(楕円、双曲線、放物線)のグラフをgo言語で描く

背景 main関数 thetaデータの生成 DrawConic()関数 クロージャ CalcConicPolar()関数 座標変換(極座標→直交座標)Polar2cartesian()関数 グラフの描画と保存 PlotDrawLiner()関数 最大値と最小値を取得 GetMaxMin()関数 コード全体 結果 背景 go言語と宇宙…

Go言語 - 指定した範囲の数値をintervalごとにリストにして返す

背景 指定した範囲でランダム値を返す方法はググれば見つかったけど、intervalごとに数値を生成する方法は見つからなかったので書いてみました。 中身 CreateNumList関数として作成。入力値も出力値もfloat64のtypeにしています。 // init ~ last の数値をin…

アイデアのつくり方のまとめ

書籍「アイデアのつくり方」のまとめです。 アイデアのつくり方作者:ジェームス W.ヤング発売日: 1988/04/08メディア: 単行本 中身は、書籍のままであることが多いですが、自分なりの言葉に変換し、実際に使える形にまとめてみました。文章をそのまま引用し…

GoLandをMacにインストールし起動する(無料版)

環境 インストール対象のOS: MacOS Catalina インストールするGolandのバージョン:GoLand 2020.1.4 ダウンロード GoLandは以下のページからダウンロードできます。30日間無料体験できるので、まずは試してみようと思います。 www.jetbrains.com ダウンロー…

redisとetcdをコンテナとして起動してPythonやGUIから使ってみる

はじめに KVS(Key Value Store)として利用できるRedisとetcdのうち、どちらがより簡単に使い始められるか、シンプルな導入として適しているかを検証しました。 どちらもDockerコンテナの形式で起動し、Pythonからの操作と、GUIでの操作を試しています。 環…

docker-composeでコンテナの内部IPアドレスを固定化してWebサイトを作る

はじめに docker-composeでDockerコンテナの内部IPアドレスを固定化し、nginx + uwsgi + flask を使ってWebサイトの環境を構築します。 サイトの中身自体は hello world するだけの超簡単な内容にしてあるので、正直nginxを挟む必要は無いですが、コンテナが…

Go言語の開発環境をMacとVScodeで作りコードを動かしてみる

はじめに A Tour of GoでGo言語の基本を学んだので、次は実際に開発するために開発環境を構築してみます! また、Go Modulesを使ったモジュールの作成も簡単に試しています。 想定環境 Golangのインストール VSCodeのインストール VSCodeをGo環境用にカスタ…

go言語の文法基礎をサンプルとともに(part3)

はじめに A Tour of GoでGo言語の基本を学んでみましたが、言葉や具体例がいまいち分かりづらい部分もあったため、自分なりにまとめました。 (今の自分のレベルに対する備忘録の側面が強いため、逆に分かりにくい部分もあるかもしれません…) これはpart3で…

go言語の文法基礎をサンプルとともに(part2)

はじめに A Tour of GoでGo言語の基本を学んでみましたが、言葉や具体例がいまいち分かりづらい部分もあったため、自分なりにまとめました。 (今の自分のレベルに対する備忘録の側面が強いため、逆に分かりにくい部分もあるかもしれません…) これはpart2で…

go言語の文法基礎をサンプルとともに(part1)

はじめに A Tour of GoでGo言語の基本を学んでみましたが、言葉や具体例がいまいち分かりづらい部分もあったため、自分なりにまとめました。 (今の自分のレベルに対する備忘録の側面が強いため、逆に分かりにくい部分もあるかもしれません…) これはパート…

Dockerのネットワークの仕組み

はじめに 前回は、Docker/Kubernetesを扱う上で必要なネットワークの基礎知識ということで、 階層構造 プロトコルの詳細と通信の流れ MACアドレスとIPアドレス ネットワーク機器の種類 VLAN iptables network namespace について解説しました。 リンクは以下…

Docker/Kubernetesを扱う上で必要なネットワークの基礎知識(その2)

はじめに DockerやKubernetesを使ってマイクロサービスなどを構築する時に必要になるネットワークの基礎知識まとめ、その2です。 その1は下記です。 sagantaf.hatenablog.com 今回のその2では、 VLAN network namespace iptables について記載しています。…

Docker/Kubernetesを扱う上で必要なネットワークの基礎知識(その1)

はじめに DockerやKubernetesを使ってマイクロサービスなどを構築する時には、必ずネットワーキングが必要になります。そのために必要な基礎知識をまとめておきました。 テーマは、 階層構造 プロトコルの詳細と通信の流れ MACアドレスとIPアドレス ネットワ…

Docker入門〜dockerとdocker-composeのインストール方法

はじめに dockerとdocker-composeをインストールする方法を記載します。 検証環境はUbuntu16.04です。 はじめに dockerのインストール docker-composeのインストール おわりに dockerのインストール まずは、必要なパッケージをインストールします。 sudo ap…

強化学習のコーディングをする上で便利なdefaultdictの使い方

強化学習の勉強を進める上で、defaultdictをよく使うので、簡単に使い方を残しておきます。 まずはimportします。 In [1]: from collections import defaultdict さて、例えば強化学習させる環境の行動(action)が、UP、DOWN、LEFT、RIGHTを取れるとします。 …

Rancher構築(オンプレ/Ubuntu)

はじめに 前回構築したKubernetesクラスタをRancherにて管理するため、環境を構築していきます。 前回の記事は下記です。 sagantaf.hatenablog.com 環境は、オンプレ、Ubuntuの前提です。 1. Rancherコンテナの構築 2.既存Kubernetesクラスタの追加 3. アプ…

Kubernetesクラスタ構築(オンプレ/Ubuntu)

はじめに 以前、KubernetesをDocker for Macを使って構築してみました。(下の記事) sagantaf.hatenablog.com 今回は、Ubuntu環境にKubernetesクラスタを構築したいと思います。 Ubuntu16.04, 18.04どちらも構築できることを確認済みです。 なお、クラウドの…

コンテナセキュリティのリスクと対策

はじめに コンテナ技術のセキュリティリスクとは コンテナのライフサイクルから見えるリスクと対策 コンテナ周りのコンポーネントから見えるリスクと対策 まとめ 参考資料 はじめに 最近のDockerやKubernetesの発展により、コンテナを利用したサービスやシス…