2021年4月26日月曜日

VMMap

 

名称説明
ImageEXEやDLLなど実行可能ファイルを示す
Mapped Fileディスク上のファイルに対応し、共有可能なメモリマップ度ファイルであることを示す
Shareable他のプロセスと共有可能なメモリを示す
Heapヒープ。アプリケーションのプライベートメモリ
Managed Heapマネージドヒープ。.NETランタイムによって管理されるプライベートメモリ
Stackスタック。関数のパラメータやローカル変数、呼び出し履歴を格納するのに使用される
Private DataHeap、Managed Heap、Stack以外
Page Tableカーネルモードのプライベートメモリ

2021年4月12日月曜日

C

 配列

  • 宣言:int data[] = {3,4};
  • 呼び出し:printf("%d\n",data[0]);
文字列の長さを求める
  • stringライブラリを使わないやりかた(終端文字を検索する)
    • for(int i=0;str[i]!='\0';i++);
  • string.hをインクルードするやりかた
    • strlen(str);

2021年4月8日木曜日

西暦変換

1925年~1999年の範囲

①89よりも大きいとき

→88を引けば平成になる。 例)1990→90-88=2:平成2年

②88よりも小さいとき

→25を引けば昭和になる。 例)1960→60-25=35:昭和35年


2000年~2099年の範囲

③18よりも小さいとき

→12を足せば平成になる。 例)2002→02+12=14:平成14年

④18よりも大きいとき、

→18を引けば令和になる。 例)2020→20-18=2:令和2年

2021年4月6日火曜日

C#

配列

  • 宣言 string[] team = {"a","b","c"};
  •  呼び出し string[1]
  • 配列の長さの取得 .Length
    • 例:string.Length
  • foreachで配列を回す
    • foreach(string job in team)
    • jobはその場限りの変数

Listクラス

  • 配列と異なり最初に要素数を決める必要がない
  • using System.Collections.Generic; 名前空間を追加すると使えるようになる
var team = new List<string>();
team.Add("勇者");
team.Add("戦士");
team.Add("魔法使い");

foreach(string str in team){
Console.WriteLine(str);
}
  • メソッド
    • Add
    • Insert
    • Remove

Parse

  • int.Parse() 対象をint型に変換する

string.Joinメソッド

  • 配列の内容を区切り文字を入れながら連結できる
  • Console.WriteLine(string.Join(":",team));

string.Splitメソッド

  • 文字列を指定した文字で分割して配列に収める
  • 詳しくはこちら(https://www.sejuku.net/blog/44242)
string str = "A B C";
string[] ary = str.Split(' ');



php

 paiza php学習まとめ

変数

  • 変数は$
  • .でつなげることが可能
    • echo $a.$b とかできる
    • echo $a."abc".$b みたいにして間に指定したリテラルを挟むことも可能

条件分岐、ループ構文

  • 基本Cと同じ

配列

  • $配列名 = array(要素1,要素2,要素3...);
  • 要素数の上限がバージョンで異なる
    • PHP4系は65535個
    • PHP5系は429467296個
  • 特定の要素の取り出し $配列名[要素番号]
    • 例:$team[1];
  • 要素の追加 $配列名[] = 追加内容
    • 例:$team[] = "ドラゴン";
    • いきなりこれをやっても配列は作られる
  • 要素のアップデートは追加の構文で要素番号を指定する
  • 要素の削除 unset($team[2])
    • unsetした要素番号だけ歯抜けになるので注意

連想配列

  • 0,1...ではなく文字列をキーとしたもの
  • Valueは文字列でも数字でも良い
  • 宣言:$item = array("ロングソード" => 2, "鉄の盾" => 1);
    • array関数を使わずに作る方法
    • $item = ["勇者","戦士","魔法使い"];
  • 要素の追加:$item["クリスタル"] = 3;
  • 要素の削除:unset($item["クリスタル"]);

配列のソート

  • sort関数を利用
    • sort($item);
    • 一文字目を取得して順番を並び替える
    • 一文字目が同じだった場合は二文字目で並び替える
    • 日本語ソート、ひらがな→カタカナ→漢字→全角数字の順で整列
    • 漢字の場合は文字コード順なので注意
  • 逆順は rsort関数を利用
    • rsort($item);

連想配列のソート

  • 連想配列にsortをかけると、通常の配列に変換されてしまう(使っちゃダメ)
  • asort:valueを小さい順に並べ替える
  • arsort:valueを大きい順に並べ替える
  • ksort:keyを小さい順に並び変える
  • krsoft:keyを大きい順に並び変える

二次元配列

  • 配列の中に配列を入れられる
    • $itemB = [$teamA[0],$teamA[1],$teamA[2]];
    • $itemB = [$teamA,$teamB,$teamC]; ABC=配列
  • print_rでもそのまま表示できる
  • 呼び出し:$teamB[0][1];
  • 直接の定義
$teams =
[
["勇者", "戦士", "魔法使い"],
["盗賊", "忍者", "商人"],
["スライム", "ドラゴン", "魔王"],
];
  • 配列の追加
    • 親要素に追加 $teams[] = ["A","B","C"];
    • 子要素の追加 $teams[0][] = "D";
  • 配列の削除
    • 親要素ごと削除 unset($teams[0]);
    • 子要素の削除 unset($teams[0][1]);
  • 二次元配列のforループ
for ($i = 0; $i < count($teams); $i++) {
for($j = 0; $j < count($teams[$i]); $j++) {
  • 二次元配列のforeachループ
foreach ($teams as $row) {
foreach ($row as $col) {
  • 二次元配列をarray関数で作成する
$teams = array(
array("勇者", "戦士", "魔法使い"),
array("盗賊", "忍者", "商人"),
array("スライム", "ドラゴン", "魔王"),
);

foreach文

  • foreach($ary as $value){}; $value = バリューを代入する変数
  • キーも同時に取り出す場合
    • foreach($ary as $key => $val){}; $key=キーを代入する変数、$val=valueを代入する変数

array_fill関数

  • 配列を指定した値で埋める
  • array_fill(0,20,"森"); index=0から20個分作る
  • array_fill(0,10,array_fill(0,20,"森")); 入れ子にもできる

rand関数

  • rand(1-5);とかすると指定した範囲内で乱数を作れる
  • 詳細はこちら(https://www.php.net/manual/ja/function.rand.php)

date関数

  • 指定された引数 timestamp を、与えられた フォーマット文字列によりフォーマットし、日付文字列を返す
  • timestampが与えられない場合は現在時刻を返す
  • 詳細はこちら(https://www.php.net/manual/ja/function.date.php)

fgets関数

  • fgets(STDIN) paizaではこう
  • ファイルポインタから一行取得する
  • もう一度実行すると次の行に移動する
  • 詳細はこちら(https://www.php.net/manual/ja/function.fgets.php)

trim関数

  • 文字列の先頭および末尾にあるホワイトスペースを取り除く
  • 改行コードも取り除くことができる
  • 詳細はこちら(https://www.php.net/manual/ja/function.trim.php)

print_r関数

  • 指定した配列、変数に関する情報をわかりやすく出力する
  • 詳細はこちら(https://www.php.net/manual/ja/function.print-r.php)

var_dump関数

  • 配列の型を確認できる

explode関数

  • カンマでCSVを区切って分割などができる(指定した文字で分割する)
  • 分割して配列に入れられる
    • 例:$array = explode(",",$input);

count関数

  • 配列のすべての要素の数を調べる
  • count($array);
  • 二次元配列でも利用可能
    • count($array); count($array[0]);

インクリメント・デクリメント

  • ++やーーが使用可能

比較演算子

  • == > < >= <= !=
  • 型まで比較して同一なのか厳密な確認をする場合は === が使用できる

標準入力に値が入っている限り処理を継続

while($input = fgets(STDIN)){
    $array[] = trim($input);
}

※trimすると改行コードも消えるので、空白行への対応ができなくなる(trimを格納寸前で行えば標準入力読み込み時に空白行でストップするのを防げる

function文

  • function say_hello()
  • function say_hello($x,$y)
  • 引数省略の場合のデフォルト値は関数定義の際に変数=で直接書いておける
    • function say_hello($x = "こんにちわ")
  • 戻り値はreturnで返す
  • PHPでは小文字を使うことが多い
  • 動詞+名詞がスタンダード
  • 関数定義の前でも後でも変わらず動作する

クラス

  • オブジェクト=変数とメソッドがセットになったもの
  • オブジェクトの中にある関数はメソッドに変わる
  • クラス内の変数=メンバー変数と呼ぶ
  • phpではオブジェクトとインスタンスは同義
  • 変数とメソッドがセット→バグが出にくい
  • クラスとオブジェクトに分離→再利用しやすい
  • クラス名の最初の文字は大文字にする
  • クラスの実体化とメソッドの呼び出し
    • newで実体化して、ー>でメソッドを呼び出す
    • 内部の変数にアクセスする際は->$の$は不要なので注意
// クラスを作成する
class Player {
public function walk() {
$message = "勇者は荒野を歩いていた。";
echo $message;
}
}

$player1 = new Player();
$player1->walk();

  • コンストラクタ
    • public function __construct($name)で使用
class Player {
private $myName;
public function __construct($name){
$this->myName = $name;
}
public function walk() {
echo $this->myName . "は荒野を歩いていた。" . "\n";
}
}
$player1 = new Player("戦士");
$player1->walk();

$player2 = new Player("魔法使い");
$player2->walk();

$player1->walk();
  • インスタンスを配列に格納することもできる
$enemies[] = new Enemy("スライム");
$enemies[] = new Enemy("モンスター");
$enemies[] = new Enemy("ドラゴン");
foreach ($enemies as $enemy) {
$enemy->attack();
}
  • 引数と戻り値のあるメソッドを作る
    • returnで値を返すfunctionをメソッドとして持たせれば良いだけ
class Item {
public $price;
public $quantity;

public function __construct($newPrice, $newQuantity){
$this->price = $newPrice;
$this->quantity = $newQuantity;
}

public function getTotalPrice() {
return $this->price * $this->quantity;
}
}

$apple = new Item(120, 15);
$total = $apple->getTotalPrice();
echo "合計金額は" . $total . "円です。\n";
$orange = new Item(85, 32);
echo "合計金額は" . $orange->getTotalPrice() . "円です。\n";
  • アクセス修飾子
    • public:外からでも呼び出し可能
    • private:同じクラスの中から呼び出し可能
  • static修飾子
    • メモリ上に展開されたままになる
    • 全てのインスタンスで共通して利用ができる(オブジェクトを作成する必要はない)
    • $thisは自分のインスタンスを表す指定なので、staticの呼び出し時は使わない
    • 代わりにself::$taxのようにselfを使用する selfは自分のクラスという意味
    • インスタンスを指定するのか、クラスを指定するのかで異なるので注意
    • static宣言されたクラス内のメソッドを呼び出すには Item::getTotalAmoutみたいにする(selfの代わりにクラス名が指定されるだけ)

クラスの継承

  • クラスの継承時はクラス宣言時に「extends 親クラス」をつける
  • 継承元を親クラス、スーパークラスと呼ぶ
  • 継承した子どもは子クラス、サブクラスと呼ぶ
  • 子クラスで定義されていないクラスが呼び出された時、親クラスの方を見に行くようになっている
  • コンストラクタも親のものを継承するので、子クラス側では宣言なしでも良い
<?php
// クラスを継承する
class Box {
public $myItem;

public function __construct() {
$this->myItem = "新しいアイテム";
}

public function open() {
echo "宝箱を開いた。".$this->myItem."を手に入れた。\n";
}
}

class JewelryBox extends Box {
public function look() {
echo "宝箱はキラキラと輝いている。\n";
}
}
$box = new Box();
$box->open();
echo "\n";
$jewelryBox = new JewelryBox();
$jewelryBox->look();
$jewelryBox->open();
?>
  • メソッドのオーバーライド
    • 親クラスのメソッドを子クラスで再定義する
    • 単に子クラス側で同じ名前のメソッドを定義するだけ
<?php
// メソッドのオーバーライド
class Box {
public $myItem;

public function __construct($item) {
$this->myItem = $item;
}

public function open() {
echo "宝箱を開いた。".$this->myItem."を手に入れた。\n";
}
}
class MagicBox extends Box {
public function look() {
echo "宝箱は妖しく輝いている。\n";
}
public function open() {
echo "宝箱を開いた。".$this->myItem."が襲ってきた!\n";
}
}

$box = new Box("鋼鉄の剣");
$box->open();

$magicBox = new MagicBox("モノマネモンスター");
$magicBox->look();
$magicBox->open();
?>






2021年4月5日月曜日

VPC

VPCまとめ 

出典




  • AZ(アベイラビリティ・ゾーン)
    • データセンターの範囲のこと
  • リージョン
    • AZを束ねたもの
VPC=ネットワーク
マルチVPC
マルチアカウント
権限の管理によって変わる
1リージョンに最大5つのVPC
小さなネットワークにサブネットで分ける

データセンターを跨いでサブネットは分けられない

VPCのアドレスレンジ 16-28までしかサブネットできない

インターネット接続可・インターネット接続不可

故障に備えてAZ1とAZ2で同じ構成のサブネットを取る


AWS

 AWSとは

Amazonのクラウドサービス

EC2(仮想サーバー)

ストレージサービス

200種類以上も様々なサービスを提供


代表サービス例

  • Amazon
  • Cousera
  • Netflix
  • ソニー銀行
  • 自治体、公共団体

AWSのメリット

メリット

  • 手軽に利用を始められること
  • 小規模→大規模 に柔軟に拡張
  • 初期費用が安い
  • 運用をサービス提供者に任せられる(責任共有モデル)

デメリット

  • ハードウェア機器の構成に制約がある(特殊な要件には対応できない)→一部利用者機器の持ち込みが可能なところもある
  • 大規模運用の場合、維持費用が高額になる場合がある(時間単価が高額になるので、比較するとクラウドの方が高額になる場合が多い)

AWSとほかのサービスの違い

  • アジュール等と比べて機能が特段充実しているわけではない(基本的に追従するので)
  • AWSは運用実績が長いため信用性がある
  • しばらくは大丈夫

学習方法

書籍

  • AWS しくみと技術がしっかりわかる教科書
  • AWS認定クラウドプラクティショナー 認定資格試験テキスト
  • クラウドエンジニア養成読本

セミナー

  • connpass
  • TECHPLAY
  • ストリートアカデミー

AWSサービス

  • EC2:仮想サーバー 例:オンプレサーバーの移行や数か月程度の短いプロジェクト、災害配置対策での分散配置
  • EBS:Elastic Block Store EC2のドライブ(記憶保存)
  • S3:EBSと比較して容量制限がなく価格が安価 仮想サーバーのドライブとしては使えない 99.9999%の高可用性 静的なWEBの表示も可
  • Aurora:データベースの初期構築、設定、バックアップが自動化されている Auroraはクラウド向けに進化したDBパッケージ(AmazonRDSは従来のDBをインストールして使用するタイプ) オンプレのDBをクラウド移行することが可能
  • DynamoDB:非定型のデータを格納できるNoSQLデータベース 拡張性にすぐれ、高性能と低遅延を保ちながら、データベースの性能を増強させることができる データベースに対する読み込みや書き込みが多数並走する環境での採用事例が多い(例えばECサイト等)
  • Lambda(ラムダ):サーバレスのプログラム実行環境
  • VPC:AWS内のネットワークを論理的に分離でき、相互のルーティングやアクセス制御を設定できる サービスの規模を柔軟に拡張したり、耐障害性を高めたりするのに利用される ルーティングサービスのRoute53と組み合わせて利用されることが多い
  • SageMaker:機械学習のサービス ほかにもPolly Translate Rekognitionなどがある
出典