Engineering Note

プログラミングなどの技術的なメモ

Python

【暗号技術入門】単一換字暗号と頻度分析

結城浩氏の「暗号技術入門 第3版 秘密の国のアリス」を読んでいく中で、折角なので自分でも勉強ついでにコーディングをしてみました。 今回は単一換字暗号と頻度分析について学んでいきます。

【暗号技術入門】シーザー暗号とブルートフォースアタック

結城浩氏の「暗号技術入門 第3版 秘密の国のアリス」を読んでいく中で、折角なので自分でも勉強ついでにコーディングをしてみました。 今回はシーザー暗号とブルートフォースアタック(総当たり攻撃)について学んでいきます。

Pythonで学ぶカルノー図

プログラムを作成していく中で、論理式を避けて通ることはできません。 また複数ある条件をそのまま記述していくことで、複雑に入り組んだように見えてしまうこともあります。 このような時にカルノー図を用いることによって、論理式をシンプルに記述するこ…

サーバソケットの多重化(プリフォーク)(Pythonによるネットワークプログラミング)

本記事は、Pythonによるネットワークプログラミングについての学習メモとなります。 参考書籍としてLinuxネットワークプログラミングバイブルを用い、同書の内容に沿ったかたちで、Pythonに書き直しをしていきます。 今回は、サーバソケットのマルチクライア…

サーバソケットの多重化(Thread)(Pythonによるネットワークプログラミング)

本記事は、Pythonによるネットワークプログラミングについての学習メモとなります。 参考書籍としてLinuxネットワークプログラミングバイブルを用い、同書の内容に沿ったかたちで、Pythonに書き直しをしていきます。 今回は、サーバソケットのマルチクライア…

サーバソケットの多重化(fork())(Pythonによるネットワークプログラミング)

本記事は、Pythonによるネットワークプログラミングについての学習メモとなります。 参考書籍としてLinuxネットワークプログラミングバイブルを用い、同書の内容に沿ったかたちで、Pythonに書き直しをしていきます。 今回は、サーバソケットのマルチクライア…

サーバソケットの多重化(epoll())(Pythonによるネットワークプログラミング)

本記事は、Pythonによるネットワークプログラミングについての学習メモとなります。 参考書籍としてLinuxネットワークプログラミングバイブルを用い、同書の内容に沿ったかたちで、Pythonに書き直しをしていきます。 今回は、サーバソケットのマルチクライア…

サーバソケットの多重化(poll())(Pythonによるネットワークプログラミング)

本記事は、Pythonによるネットワークプログラミングについての学習メモとなります。 参考書籍としてLinuxネットワークプログラミングバイブルを用い、同書の内容に沿ったかたちで、Pythonに書き直しをしていきます。 今回は、サーバソケットのマルチクライア…

サーバソケットの多重化(select())(Pythonによるネットワークプログラミング)

本記事は、Pythonによるネットワークプログラミングについての学習メモとなります。 参考書籍としてLinuxネットワークプログラミングバイブルを用い、同書の内容に沿ったかたちで、Pythonに書き直しをしていきます。 今回は、サーバソケットのマルチクライア…

クライアントのタイムアウト処理(Pythonによるネットワークプログラミング)

本記事は、Pythonによるネットワークプログラミングについての学習メモとなります。 参考書籍としてLinuxネットワークプログラミングバイブルを用い、同書の内容に沿ったかたちで、Pythonに書き直しをしていきます。 今回は、前回作成したクライアントプログ…

Python サーバプロセスのデーモン化

プロセスの中でも、バックグラウンドで動作し続けるものをデーモンと言います。 今回は前回作成したデーモンプログラムを利用し、デーモン化したサーバプログラムとそうでないサーバプログラムとの違いを確認してみます。

Python x86エミュレータの作成(bios)

本記事はPythonで簡単なx86エミュレータを作成します。 前回ではIOポートの読み書きに使用されるin/out命令について学びました。 今回はBIOSの機能を使った文字出力について学んでいきます。

Python x86エミュレータの作成(in/out命令)

本記事はPythonで簡単なx86エミュレータを作成します。 前回 では条件分岐命令で使用されるeflagsの使い方について学びました。 今回はIOポートの読み書きに使用されるin/out命令について学んでいきます。

Python x86エミュレータの作成(eflags)

本記事はPythonで簡単なx86エミュレータを作成します。 前回 ではサブルーチンを呼び出す命令であるcall/retについて学びました。 今回は条件分岐命令で使用されるeflagsの使い方について学んでいきます。

Python x86エミュレータの作成(call/ret命令)

本記事はPythonで簡単なx86エミュレータを作成します。 前回ではModR/Mを実装し、オペランドを柔軟に指定する方法について学びました。 今回はサブルーチンを呼び出す命令であるcall/retについて学んできます。

Python x86エミュレータの作成(ModR/M)

本記事はPythonで簡単なx86エミュレータを作成します。 前回ではorg疑似命令によるプログラムの配置場所を指定するプログラムを作成しました。 今回はModR/Mを実装し、オペランドを柔軟に指定する方法について学んでいきます。

Python x86エミュレータの作成(org疑似命令)

本記事はPythonで簡単なx86エミュレータを作成します。 前回では簡単なオペコード(mov命令とjmp命令のみ)を読み込み、実行するプログラムを作成しました。 今回はorg疑似命令を実装し、プログラムの配置場所を調整する方法について学びます。

Python x86エミュレータの作成

本記事はPythonで簡単なx86エミュレータを作成します。 主にCPUが動作する仕組みを学ぶことを目的とし、オペコードはmov命令とjmp命令のみで、難しいところはすっ飛ばしてとりあえず動くものにしました。

Python シグナルによるプロセスの再起動

サーバシステムなどでは、設定ファイルの変更に伴う再起動にあたり、ハングアップシグナル(SIGHUP)を送り、execコマンドで上書きするというやり方がよく使われています。 今回はこの方法について学んでいきます。

Python プロセスのデーモン化

プロセスの中でも、バックグラウンドで動作し続けるものをデーモンと言います。 今回はデーモンプロセスの作成について学んでいきます。

Python シグナルAPIの操作

Pythonでは、signalモジュールによりUnixやLinuxで扱われるシグナルに纏わるAPIを利用することができます。 今回はsignalの基本的な使い方について学んでいきます。

Python プロセスAPIの操作(fork, exec, wait)

Pythonでは、osモジュールによりUnixやLinuxで扱われるプロセスに纏わるAPIを利用することができます。 今回はfork、exec、waitの基本的な使い方について学んでいきます。

クライアントプログラムの作成(Pythonによるネットワークプログラミング)

本記事は、Pythonによるネットワークプログラミングについての学習メモとなります。 参考書籍としてLinuxネットワークプログラミングバイブルを用い、同書の内容に沿ったかたちで、Pythonに書き直しをしていきます。 今回は、シンプルなクライアントプログラ…

サーバプログラムの作成(Pythonによるネットワークプログラミング)

本記事は、Pythonによるネットワークプログラミングについての学習メモとなります。 参考書籍としてLinuxネットワークプログラミングバイブルを用い、同書の内容に沿ったかたちで、Pythonに書き直しをしていきます。 今回は、シンプルなサーバプログラムの作…

Python ビット演算によるローテートシフト

Pythonでは、C言語のように2進数に対してビット演算をするためのビット演算子が用意されています。 今回はこのビット演算によるローテートシフトについて学んでいき、これを用いて簡単なハッシュ関数を作成していきます。

一目均衡表 (Pythonによるファイナンス)

本記事は、PythonのPandasを用いてファイナンスの基本的な理論などについて学んでいきます。 今回は、日本人によって発明されたテクニカル指標の一つである一目均衡表(Ichimoku Kinkō Hyō)について学んでいきます。

ローソク足チャート (Pythonによるファイナンス)

本記事は、PythonのPandasを用いてファイナンスの基本的な理論などについて学んでいきます。 今回は、江戸時代に日本で発明されたローソク足チャート(Candle Stick Chart)について学んでいきます。

ボリンジャーバンド (Pythonによるファイナンス)

本記事は、PythonのPandasを用いてファイナンスの基本的な理論などについて学んでいきます。 今回は、標準偏差や正規分布という統計学的な観点からトレンドを把握するボリンジャーバンド(Bollinger Bands)について学んでいきます。

ゴールデンクロスとデッドクロス (Pythonによるファイナンス)

本記事は、PythonのPandasを用いてファイナンスの基本的な理論などについて学んでいきます。 今回は、前回学んだ移動平均を利用したトレンドの見方としてゴールデンクロス(Golden Cross)とデッドクロス(Dead Cross)について学んでいきます。

移動平均 (Pythonによるファイナンス)

本記事は、PythonのPandasを用いてファイナンスの基本的な理論などについて学んでいきます。 今回は、テクニカル分析の分野で昔から広く利用されている移動平均(Moving Average)について学んでいきます。