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…

二分探索の実装

二分探索 二分探索やバイナリサーチとは、ソート済み配列に対する探索アルゴリズムの一つである。コンピュータで扱うデータは、多くの場合ある項目によって整列され管理されており、そのような場合はより効率的なアルゴリズムを適用することができる。二分探…

【Perl】for/foreach/whileの使い分け

まずはforeachで書けないか考える まず最初にforeachを使って書けないかを考える。foreachはループを最も簡単に書けるので、foreachで十分なのであれば、foreachを使う。foreachは繰り返しをするための条件を指定することができない。 my @animals = ('Cat',…

番兵法を用いた線形探索の実装

概要 線形探索は、配列の先頭から各要素が目的の値と等しいかどうかを順番に調べる。等しいものが見つかった時点でその位置を返し探索を終了する。末尾まで調べて目的の値が存在しなかった場合はそのことを示す特別な値を返す。アルゴリズムの効率は悪いが、…

探索

探索 探索(英: search)とは、特定の制約条件を満たす物を見つけ出す行動のことである。 探索アルゴリズム 探索アルゴリズムとは、大まかに言えば、問題を入力として、考えられるいくつもの解を評価した後、解を返すアルゴリズムである。まず解くべき問題を…

ラウンドロビンスケジューリングのアルゴリズムをPerlで実装してみた

概要 ラウンドロビン・スケジューリングは、オペレーティングシステムなどにおけるプロセスなどに関するスケジューリング規則のひとつで、単純な部類に分類される一種である。実行可能状態にあるプロセスに、順番にプロセッサを割り当てる。順番に交代する、…

マークアップ言語/JavaScript系概要

マークアップ言語 概要 マークアップ言語とは、文字の並びであるテキストに適当な指示を挿入して文字の形や大きさ、段落、見出しなど文章の構造と体裁を指定するためのコンピュータ用言語である。目印をつける(Markup)というのは、文書の各部分が、どのよ…

sudoの設定ファイルsudoersについて

概要 Linuxでは例えばユーザーの追加や削除やプロセスの管理など、管理者以外が操作するとシステム運用にリスクを伴う。そのため、Linuxシステムにとって重要なコマンドは、rootのような管理者だけが実行できるようにするのが一般的だ。一般ユーザでrootユー…

ジョブ管理システム

ジョブ管理システム 概要 ジョブ管理システムとは、複数のジョブ(プログラム、バッチ処理)の起動や終了を制御したり、ジョブの実行・終了状態の監視・報告などを行うソフトウェアである。「ジョブスケジューラ」、「タスクスケジューラ」とも呼ばれる。な…

逆ポーランド記法で与えられた数式の計算結果を出力するアルゴリズムの実装

逆ポーランド記法 逆ポーランド記法(Reverse Polish Notation, RPN)とは、数式の記述方法で、演算子を被演算子の後に記述する表記法である。日本語では、後置記法とも呼ばれたりする。この記法は、演算の優先順位を指定する括弧が不要な点が特徴のひとつで…

シェルソートをPerlで実装してみた

シェルソート シェルソート(Shellsort)は、in-placeな比較ソートのアルゴリズムの一種である。シェルソートは、バブルソートあるいは挿入ソートの一般化と見なすことができる。ソートの方法は、まず、間隔の離れた要素の組に対してソートを行い、だんだん…

ソートアルゴリズムの安定性

安定ソート 安定ソート(stable sort)とは、ソート(並び替え)のアルゴリズムのうち、同等なデータのソート前の順序が、ソート後も保存されるものをいう。つまり、ソート途中の各状態において、常に順位の位置関係を保っていることをいう。 use strict; us…

選択ソートをPerlで実装してみた

選択ソート 選択ソート(selection sort)は、ソートのアルゴリズムの一つ。配列された要素から、最大値やまたは最小値を探索し配列最後の要素と入れ替えをおこなうこと。最悪計算時間がO(n2)と遅いが、アルゴリズムが単純で実装が容易なため、しばしば用い…