2019-07-01から1ヶ月間の記事一覧

浮動小数点数とは?

【結論】 0.0025というように、小数点の位置を固定して値を表現する方法を固定小数点という。 これに対して、浮動小数点では0.0025を0.25×0.01(10のマイナス3乗)と表現する。 浮動小数点は固定小数点と比較すると、同じ情報量でより小さな数字を表現するこ…

MacにGo言語をインストールする方法

【結論】 ちょっとGo言語を試したいだけなら、ここで十分。 はじめに 質問:なぜGo言語をインストールしたんですか? 答え:実行したいソースがGo言語で書かれていたからです。 インストール $ brew install go 初期設定 Goの作業場所として$GOPATHを設定す…

IoT向け通信プロトコルのMQTTとは?

【結論】 MQTTは通信プロトコルの一つで、パブリッシュ/サブスクライブ方式を採用している。 MQTTでは送受信するデータをトピックと呼ぶ。 MQTTは、現実世界の新聞の配達方式を採用した通信方式である。 新聞社(送信する機器)が新聞(トピック)を発行(パブリ…

【Ansible】🤢🤮

【結論】 Ansibleでは別フィルを呼び出すことで、関数呼び出し的なことをできる。 ただし、引数や戻り値を渡す方法はないため、全てグローバル変数でやり取りする。 結果、現場のエンジニアが「動いているのも不思議」とぼやくレベルのコードが出来上がる。 …

VLANという単語について調べてみた。

【結論】 VLANとは(Virtual LAN)の略。 物理的に接続されたLANとは独立して、仮想的なLANを構築する技術。 内部では、送信元と送信先の情報を元に通信制御を行っているだけ。 【目次】 はじめに 参考情報 さいごに はじめに 下図のようにA〜Eの5台のPCをハブ…

システムの信頼性を向上させる方法

【結論】 システムの信頼性を向上させるには、同じ構成を2系統用意すれば良い 信頼性と費用には相関関係がある。 【目次】 はじめに ホットスタンバイ ウォームスタンバイ コールドスタンバイ 参考情報 さいごに はじめに スポーツの大会では、試合当日や試…

ナルシストになりたくて…

【結論】 鏡を見つめてうっとりすることだけが、ナルシストになるための手段ではない。 己の日々の行動を見つめてナルシストになる方法だってある。 【目次】 はじめに ナルシストへの憧れ ナルシストになるために さいごに はじめに 今のところは、後から見…

【Linux】正規表現を駆使してsedコマンドで置換してみた

【結論】 置換(ちかん)とは、あるものを他のものに置き換えること。(念の為) Linuxではsedコマンドで文字列を置換できる。 正規表現と組み合わせることで、汎用的な置換ができる。 正規表現を使いこなせると、自分に酔うことができる。(個人の感想) 【目次】…

【Linux】|,grep,curl,seq,xargs,sed,;の解読

【結論】 curlコマンドを使えば、HTTPリクエストを投げることができる。 |を使えばコマンドの実行結果を次のコマンドに渡すことができる。 その際に、xargsコマンドを実行すれば、受け取った結果を引数として特定のコマンドを実行することができる。 grepコ…

【Linux】ハテナブログに投稿した記事の一覧を取得する方法

【結論】 Linuxのコマンドを駆使すれば、コードを書かなくてもスクレイピングできる。 【目次】 はじめに ハテナブログの分析 実行するコマンド コマンドの動作確認 参考情報 さいごに はじめに 「120日間毎日ブログ投稿したぜ」的な記事を出すための下準備…

【Ansible】[name="hoge"]から[hoge]だけ抜き出す方法

【結論】 AnsibleでXMLを解析するには、XMLを解析するための.ymlファイルを別途用意する必要がある。 正規表現を使いこなせれば、XMLに限らずどんなファイルでも解析できる。 しかし、正規表現を使いこなせないと、1行のコードを書くのに1日以上費やしてし…

【Ansible】ソートされたリストの並び順をチェックする方法

【結論】 Pythonであればindex()でリストの添字を取得できるので簡単に比較できる。 同じことをAnsibleでも実装したかったのですが、いくら探してもPythonのindex()に相当する書き方を見つけることができませんでした。 よって、苦肉の索として辞書型に変換…

【Ansible】uriモジュールの癖がすごい件について

【追記 2019/07/18】 return_content: yesの指定を追加すれば、成功時もcontent(ブラウザに表示されるデータ)を返してくれました。 【結論】 AnsibleではHTTPリクエストを投げるためにuriモジュールが提供されている。 ブラウザでHTTPリクエストを投げると、…

【Python】`&`と`|`演算子について

【結論】 &と|はビット演算子で、int型とset型(集合演算)で使うことができる。 【目次】 はじめに 数値の場合は 文字の場合 集合演算子の場合 辞書型の場合 リスト型の場合 タプル型の場合 参考情報 さいごに はじめに Rubyで|,||,&,&&を解説している記事見…

【Python】エンジニア認定基礎試験合格体験記

【結論】 Python3エンジニア認定基礎試験は簡単に合格することができる。 (とドヤルことができて、内心ホッとしてます。) 【目次】 はじめに 合格体験記 証拠写真 参考情報 さいごに はじめに 現在、業務ではAnsibleのプレイブックを開発しています。 なので…

お酒を飲む前に読む記事〜自戒の念を込めて〜

【結論】 お酒を飲んで酔っ払っている時は気分がいいが、次の日頭痛に悩まされて後悔する羽目になる。 飲み会はお酒を楽しく飲む場ではなく、相手を楽しませる場。 相手を楽しませるのに、自分がお酒を飲む必要は無い。 【目次】 はじめに 飲酒量は? 人がお…

【Ansible】JSON形式のファイルを読み込む方法

【結論】 AnsibleでのJSONファイルの読み込みは、Linuxのコマンドを実行する感覚でいける。 catでファイルを読み込んで、|を使ってfrom_jsonに渡すだけ。 【目次】 はじめに ファイル構成 JSONファイルの中身 Pythonで書いた場合 Ansibleで書いた場合 参考情…

【Ansible】with_itemsで処理をループさせる

【結論】 Ansibleでプログラムのfor文に相当する処理を行いたい場合はwith_itemを使う。 【目次】 はじめに Pythonで書いた場合 Ansibleで書いた場合 参考情報 さいごに はじめに 自称プログラマーがAnsibleのソースを理解するための備忘録です。 よって、Py…

【Ansible】whenで処理を分岐させてみた

【結論】 Ansibleで、プログラムのif文に相当する処理を行いたい場合はwhenを使う。 whenはif文と同じノリで条件式を記述することができる。 【目次】 はじめに Pythonで書いた場合 Ansibleで書いた場合 参考情報 さいごに はじめに Pythonプログラム読めな…

【Ansible】プレイブックとインベントリーとは?

【結論】 インベントリーは管理対象機器の接続情報のリストをまとめたファイル。 プレイブックとは管理対象に対して行う操作の一覧を記述したフィル。 【目次】 はじめに Pythonで書いた場合のイメージ Ansibleのソースファイル プレイブックを実行するため…

なんで毎日ブログを書いているんだろう?と思った時に読む記事

【結論】 本記事は、アニメの最終回に影響を受けて、アラサーおじさんの中に眠る中二病魂が爆発した記事です。 「波」という概念は、自己のモチベーションを維持する上で役に立つ。 【目次】 はじめに 波とは 波を止める理由 波を止める方法 毎日ブログ投稿…

【Ansible】CentOS7 にインストールしてみた

【結論】 CentOS7にAnsibleをインストする際の手順をまとめた。 viコマンド使えない前提で手順をまとめました。 【目次】 はじめに 前提条件 Pythonのインストール Ansibleのインストール SSH公開鍵認証設定 CentOS 7 で ssh-copy-id ができなかったときの対…

【Vagrant】共有フォルダを作成する方法

【追記 2019/07/08】 vagrant-vbguestプラグインを追加しないとファイルを共有できないことに後で気づいたので追記追記します。 【結論】 Vagrantファイルに1行記述して、コマンドを数回実行するだけ。 上記作業にハマってしまい、半日も浪費してしまった。…

VagrantとVirtualBoxで仮想環境構築してみた

【結論】 仮想環境を構築する上でVirtualBoxは現場責任者的な立ち位置。 昔の開発者は、VirtualBoxと直接やり取りすることで仮想環境を構築していた。 現場責任者とやり取りする必要があるので、仮想環境構築はかなり面倒だった。 しかし、Vagrantという仲介…

冪等性(べきとうせい)とは?

【結論】 同じ操作を何度繰り返しても同じ結果が得られる性質のこと。 インフラ構築の自動化を進めるにあたって、冪等性の担保が重要になってくる。 【目次】 はじめに 簡単な自動化の例 冪等性とは? 参考情報 さいごに はじめに 作業を自動化するプログラ…

レプリケーションとは?

【結論】 レプリケーションとはリアルタイムでレプリカ(偽物)を作成するシステムのこと。 ブランド品のレプリカは淘汰すべきだが、システムのレプリカを作ると次のような利点がある。 障害発生時に迅速に復旧できる。 アクセス増による負荷の分散。 欠点は、…

【Python】yieldについて

【結論】 yieldを使うことで関数の処理を中断・再開することができる。 yieldを使うことで、「お昼はこれを食べよう」と決断する必要がなくなる。 説明する上で図は必要だが、正確である必要は無いと考えている。 【目次】 はじめに returnとyieldの検証ソー…

【Python】sys.exit()は例外を投げているだけ

【結論】 sys.exit()はプログラムを強制終了しているわけではなく、BaseException例外を投げているだけ。 よって、tryブロックでsys.exit()を呼ぶと強制終了しない。 os._exit()を呼べばtryブロックでも強制終了できるが一般的な書き方ではない。 【目次】 …

【Python】0から10までの偶数を出力するコード

【結論】 誰が書いても同じ書き方になることを目指すPythonですら、色々な書き方がある。 【目次】 はじめに 例1:while文とif文を使う 例2:for文とif文を使う 例3:for文だけを使う 例4:for文を1行で書く 例5:for文とif文を1行で書く 例6:filterを使う …