Git の基礎概念 2

git

参考書籍 入門 Git Gitとは git はファイルの状態を管理するためのソフトウェア。 git で管理されているディレクトリ配下のファイル群のバージョン管理を行うことができる。 オブジェクト git はオブジェクトという単位でデータを扱う。オブジェクトには下記…

apt の基本

apt の基本 apt とは aptとは advanced packaging tool の略。 パッケージ管理のためのツールの一つ。 パッケージとはtmuxやtreeなど便利なツールを実行ファイル・設定ファイル・ドキュメントなど一まとめにアーカイブしたファイルのこと。 リポジトリと呼ば…

CSSで余白を作る時に親要素のpaddingにすべきか子要素のmarginにすべきかで迷う

CSS

前提(親子の位置関係) 要素の中身や指定がない場合、親要素のheightは子要素のそれと等しくなる。 要素の中身や指定がない場合、子ブロック要素のwidthは親要素のそれと等しくなる。幅の指定のある先祖がいない場合は window 幅になる。 親要素が要素の中…

CSS のボックスモデルについて

CSS

CSS のボックスモデルについて 参考資料 CSS の margin とは?padding とは?余白の指定方法まとめ 【CSS】box-sizing:border-box の使い方|効かない時は? ボックスモデルとは CSS では要素の持つ領域についてボックスモデルと呼ばれる考え方が適用されて…

CSS の基本

CSS

CSS の基本 参考資料 スタイルシートの基本 CSS とは CSS とは Cascading Style Sheet の略。 CSS はスタイルシートの一つ。スタイルシートは文章の見た目を定義するための仕様のこと。 スタイルシートは HTML の誕生の前から存在していた。 HTML に適用する…

自作コンパイラ開発メモ(2020/12/13)

C

低レイヤを知りたい人のための C コンパイラ作成入門を読んでコンパイラ自作してる時の作業記録です。 対象箇所 for 文に対応するアセンブリを出力できるようにしました。 commit リファレンス 実装 関数 foo が定義された c のプログラムを作成 関数名を識…

自作コンパイラ開発メモ(2020/11/22)

C

低レイヤを知りたい人のための C コンパイラ作成入門を読んでコンパイラ自作してる時の作業記録です。 対象箇所 for 文に対応するアセンブリを出力できるようにしました。 commit リファレンス 実装 {と}を解析しトークン化できるようにした。 ブロック文の…

gccでのループ処理のアセンブリを見てみる

c

cの実装 簡単なループ処理です。 int main(void) { int r = 0; for (int i = 0; i < 10; i++) { r++; } return r; } gccでコンパイル ↓のようにコンパイルします。 gcc -S -masm=intel test.c -Sオプションをつけるとアセンブリソースファイルを作成してくれ…

自作コンパイラ開発メモ(2020/11/20)

C

低レイヤを知りたい人のための C コンパイラ作成入門を読んでコンパイラ自作してる時の作業記録です。 対象箇所 for 文に対応するアセンブリを出力できるようにしました。 commit リファレンス 実装 キーワードforを解析しトークン化できるようにした。 for…

コーディングの品質について

はじめに 品質の高いコードって 品質の高いコードのためにできること プログラムを透明にする 透明なコードの良さ 馬鹿みたいに簡単にする アルゴリズムではなくデータ構造に労力をかける 小さいプログラムを書くには頭を使う 使う人のことを意識する インタ…

自作コンパイラ開発メモ(2020/11/08)

低レイヤを知りたい人のための C コンパイラ作成入門を読んでコンパイラ自作してる時の作業記録です。 対象箇所 if 文に続く else をパースし対応するアセンブリを出力できるようにしました。 commit リファレンス 実装 if というキーワードを解析しトークン…

自作コンパイラ開発メモ(2020/11/07)

低レイヤを知りたい人のための C コンパイラ作成入門を読んでコンパイラ自作してる時の作業記録です。 対象箇所 if 文をパースし対応するアセンブリを出力できるようにしました。 commit リファレンス 実装 if というキーワードを解析しトークン化できるよう…

C の変数

C

変数の中身はどこにあるか 変数の中身(データ)はメモリに収められている。 「変数」って何 変数は中身が収められているメモリ領域のアドレスに付けられた名前である。 変数を構成するもの 変数には下の三つの要素が必要。 識別子 アドレス データ型 識別子…

即時関数

概要 即時実行関数とも呼ばれる。 呼び名の通り定義と同時に実行される関数である。 JSにおいて関数はスコープを限定するために使用されることがよくある。 スコープの限定のために使用し一度しか呼ばれない関数であることがわかっている場合には即時関数と…

c言語での文字列の扱い

データ型 c言語には文字列というデータ型はない。 c言語における文字列とは最後の要素としてNULL文字が格納された文字の配列のこと。 初期化 文字列をダブルクオーテーションで囲むと囲まれた文字が順に配列に格納され配列の最後の要素にNULL文字が格納され…

RDS 再起動時に実際にDBに接続できない時間を計測する

これはなに なんらかの事情によりAWSコンソールでRDSインスタンスを再起動する必要が生じることがある。 再起動よってDBにアクセス不能となった時間を計測したい時があるかもしれない。そんな時のためのシェルスクリプト。 使い方 これを実行しながらAWSコン…

ポインタ

C

ポインタとは ポインタとは変数などの値が格納されているアドレスを値とする変数のこと。 アドレスを扱うための演算子 * * は↓の二つの異なる用途で使う。 それぞれ意味が異なる。 宣言 参照 宣言 pがポインタであることを示す。ポインタにも型の宣言が必要…

めんどくさいとき

これは? 何かをするのがめんどくさいと感じる時に見るメモ どういうときに めんどくさいと感じるのはそのことに対して不安を感じてるとき。 不安の正体はリスクとか恐怖とか罪悪感とかいろいろ。もしくはその作業を過大評価してるとか。 行動を始めるのは簡…

全くの未経験者にプログラミングの本を薦めるなら

はじめに この本 優れていると思う点 本一冊で全てが完結 良い習慣を学ぶことができる 試金石になる(と思う) 終わりに はじめに 僕が職業プログラマーになったのは今(2020年9月)から約2年前(2019年1月)で本格的にプログラミングを勉強し始めたのは約2…

PHP-FPMとは

PHP-FPMとは 参考 www.amazon.co.jp CGIとは CGIとは Common Gateway Interface の略でWebサーバとWebアプリケーションを接続するためのプログラムである。 環境変数を使用しパラメータの受け渡しを行うため1リクエスト1プロセスで動作する。 リクエストご…

HTTPサーバ作成

参考文献 www.amazon.co.jp github github.com

Amazon Linux2 でファイルシステムの容量を拡張する

Amazon Linux2 でファイルシステムの容量を拡張する amazon linux2 ではファイルシステムとしてxfsが使用されているのでxfsのコマンドを使用する。 参考 Linux インスタンス用ユーザーガイド 何をするのか? この操作はAWSのwebコンソールでEBSボリュームの…

ファイルシステム

ファイルシステムとは 参考 システムプログラミング入門―UNIXシステムコール、演習による理解 ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道 ストレージとは データを保存するための記憶領域。 HDDやSSD、CD、DVD、USD…

TCP

概要 トランスポートモジュールの役割はインターネットモジュールから受け取ったパケットをアプリケーションプログラムへ渡すことである。 トランスポートプロトコルの一つであるTCPはデータをストリームとしてアプリケーションプログラムへ提供している。 …

トランスポートプロトコル

はじめに この記事は下記の参考資料を元にした筆者の解釈の記述です。 正確さについては保証されませんので詳しくは下記の参考元をご参照ください。 基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版 トランスポートプロトコル TCP/IPではTCP…

gitの基本概念

git

gitの基本概念 参考文献 入門Git はじめに この記事は入門Gitをテキストとした学習した記録です。 この記事は上記参考文献を読んでの筆者の解釈なので内容についての誤った記述がある可能性があります。 とても面白い本なのでおすすめです。下記内容について…

標準Cライブラリ

標準Cライブラリ はじめに この記事は下記の参考資料を元にした筆者の解釈の記述です。 正確さについては保証されませんので詳しくは参考元をご参照ください。 Cプログラミング入門以前 Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識 ライブ…

ファイルのパーミッションを確認する

PHP

[PHP]ファイルのパーミッションを確認する areFileperms ファイルのパーミッションを確認する。 ファイルへのパス(filename)を文字列で渡してパーミッション(perms)を 0777 などの8進数で渡す。 また、対象のファイル情報についてキャッシュを削除したい場合…

仮想メモリ空間

仮想メモリ空間 はじめに この記事は下記の参考資料を元にした筆者の解釈の記述です。 正確さについては保証されませんので詳しくは下記の参考元をご参照ください。 基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版 仮想メモリとは アプリケ…

キューとスタック

キューとスタック はじめに この記事は下記の参考資料を元にした筆者の解釈の記述です。 正確さについては保証されませんので詳しくは下記の参考元をご参照ください。 基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版 データ格納方式 バッフ…