2018-11-01から1ヶ月間の記事一覧

Catalystのモジュールとか

__PACKAGE__と$selfの関係 warn __PACKAGE__; warn $self; 結果 Hoge::App::Fuga::Controller::Class名 Hoge::App::Fuga::Controller::Class名=HASH(0xd2694a0) Catalyst::Base This used to be the base class for Catalyst Controllers. It remains here f…

mysql コマンド集

特定のカラムのレコード数を取得する select count(フィールド名) from テーブル名; select count(id) from user;

用語集

バッチ処理 バッチ処理とは“一定量の(あるいは一定期間の)データを集め、一括処理するための処理方法”のことである。 リアルタイム処理 バッチ処理の対義語としてしばしば見聞きするのが“リアルタイム処理(あるいはインタラクティブ処理)”である。その名の通…

EC2 / AMI

EC2 概要 EC2とはAWSが提供する「仮想サーバ」である。OSではない。LinuxやWindows 、Red Hat等様々なOSの仮想サーバをすぐに実行できる環境が用意することができる。普通のレンタルサーバのようにSSHでログインしていろんなアプリケーションをインストール…

Linux ディレクトリ構成

/ ルートディレクトリのこと。ルートディレクトリとは、コンピュータファイルシステムにおいて、ファイル階層における最初または最上位のディレクトリのことである。ルートディレクトリは、全ての枝の開始点である木の幹に例えることができる。ルートファイ…

ポート番号関連

ポート番号 実際TCPやUDPで通信を行うときは、コンピュータ一台という単位ではなく「プログラム単位」つまり「プロセスやスレッド単位」で通信が行われる。そのためプロセス同士、正しく受け渡しをする必要がある。このとき通信しているプロセスには「ポート…

FTP/SFTP/SCP

FTP 概要 FTP(File Transfer Protocol)はサーバーとクライアント間で、ファイルを送受信する通信の決まりごと(プロトコル)である。FTPという用語だけで、本来の意味である通信方法以外にも、FTPサーバーやFTPクライアント(ソフト)など、多用な意味を持って語…

シグナル

シグナル 「シグナル」はプロセスとプロセスの間で通信を行う際に使用される“信号”のことで、シグナルを受け取ったプロセスは“何らかの動作”を行う。その動作は、例えば「再起動」であったり、「終了」であったりする。シグナルが送信された際、OSは宛先プロ…

マージソートを実装

use strict; use warnings; use utf8; use Data::Dumper; use Time::HiRes qw(gettimeofday tv_interval); binmode(STDOUT, ":utf8"); &main; sub main { my $t0 = [gettimeofday]; my $arr_size = 10; my @arr_elements = (8, 5, 9, 2, 6, 3, 7, 1, 10, 4);…

Linuxのファイルシステム

ファイルシステム ファイルシステムとは、記憶装置に保存されたデータを管理し、操作するために必要な機能のことである。OSが提供する機能の一つで、ほとんどのOSはファイルシステムでファイルを管理している。 ファイル ファイルとは、記憶装置に保存された…

トランザクションのコミットとロールバック

トランザクション トランザクション (transaction)とは「商品を渡して、代金を受け取る」のように「ここからここまでワンセット」な処理単位のことである。 コミット トランザクションが成功すること、つまり整合性を保って資源を更新することを、トランザク…

コンパイラの内部処理

コンパイラの内部処理 コンパイラでは、字句解析、構文解析、意味解析、コード最適化、コード生成といったフェーズに分かれて順に処理が進む。 字句解析 字句解析とは、広義の構文解析の前半の処理で、自然言語の文やプログラミング言語のソースコードなどの…

全探索アルゴリズムの実装

use strict; use warnings; use utf8; use Data::Dumper; use Time::HiRes qw(gettimeofday tv_interval); binmode(STDOUT, ":utf8"); &main; sub main { my $t0 = [gettimeofday]; $\="\n"; my $input_n = 5; my @n_nums_arr = (1, 5, 7, 10, 21); my $inpu…

gdbを利用したデバッグの手法(c++)

gdbを使ってできること デバッグされるプログラムを開発者の設定したブレークポイントで止めることができる。 プログラムが停止した時、この時のプログラムで発生している事柄を検査することができる。 動的に現在のプログラムの実行環境を変更することがで…

GNU関連

GNUデバッガ GNUデバッガ(単にgdbとも)は、GNUソフトウェア・システムで動く標準のデバッガである。 これは、多くのUnix系システムで動作可能な移植性の高いデバッガであり、Ada、C言語、C++、FORTRAN、FreeBASICといったプログラミング言語に対応している…

c言語のソースコードが実行可能になるまでの流れ

プリプロセス 概要 コンパイル処理において、プリプロセッサ (preprocessor) とは、コンパイラがソースコードをコンパイルする前に、一旦ソースコードに前処理を施すためのプログラムである。プリプロセッサによって実行される命令は「プリプロセッサ指令」…

ハッシュ法の実装

ハッシュ法 ハッシュ法は、検索アルゴリズムの一つで、各要素の値に応じて格納場所を管理するハッシュテーブルを用いて、データの検索を高速化する。ハッシュテーブルはキーを持つデータの集合に対して、動的な挿入、検索、削除を効率的に行うことができるデ…

再帰と分割統治

再帰関数 再帰関数とは、関数の中で自分自身を呼び出すような関数で、アルゴリズムを実装するためのプログラミングテクニックの1つである。例えば、整数nの階乗を計算する関数は再帰関数として定義することができる。 factional(n) if n == 1 return 1 retur…