sagantaf

メモレベルの技術記事を書くブログ。

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の発展により、コンテナを利用したサービスやシス…

評論家にならずに行動する人間になる! 〜仕事をする時に意識すること〜

はじめに 「評論家」とはどういう状態か? なぜ評論家じゃダメなのか? 1. お客さんからお金をもらえない 2. 自分の成長や社内の評価に繋がらない じゃあどうすれば良いのか? 行動することに時間をかける 定期的に仕事を振り返る 周りの「評論家」に対して…

Kubernetes入門〜Docker for Mac でKubernetesをインストールしJupyter notebookを起動してみる

はじめに Macを使って手軽にKubernetesを体験してみるための手順です。 はじめに 環境 Docker for Mac のインストール Kubernetes環境を構築する contextの切り替え Jupyter notebookを起動するためのマニフェストファイルを作成する デプロイの実施 アクセ…

シェルスクリプトとプログラミング言語の関係は?

答え 解説 スクリプト言語 コンパイル言語 それぞれのメリデメ まとめ 意外と分からなくなる人が多いはず…と思ってまとめました。 答え シェルスクリプトはプログラミング言語のひとつ。 解説 そもそもプログラミング言語には、スクリプト言語とコンパイル言…

RNNとLSTMを理解する

この記事の目的 0. 通常のNeural NetworkやConvolutional Neural Networkの問題 1. RNN (Recurrent Neural Network) 2. 勾配消失(爆発)問題 3. LSTM (Long-short term model) 入力ゲートと出力ゲートはなんのために用意されたか? 忘却ゲートはなんのために…