わたしの名はフレイ 作家・デザイナー見習い
神々とともに生きる詩人 一等星シリウスの導きを信じて

プログラミング

プログラミングについて

リエントラント 参照カウント方式のガーベッジコレクション テンプレート ハッシュテーブル リエントラント リエントラントとは再入可能という意味で、 あるプログラムの実行中に同じプログラムを起動できるかどうか。 ローカル変数を使う場合には、 リエン…

わたしはこの世界を愛している

わたしがここに居る理由はもうない 生きろ 物理を忘れよ 無視されてもいいことにせよ インターフェイスと枠組み 正しいかが不確かでも信じれば前に進める これで終わり 別れ わたしがここに居る理由はもうない 実際のところ、わたしがここに居る理由はもうな…

プログラムは、機械に読ませるテンプレート

プログラムとは、機械に読ませるテンプレート わたしの本性をあらわにしよう、もう僕は我慢しない 永遠の地獄を乗り越えていけ、光はその先にある わたしは神じゃない そう、そのようにもできただろう、それがどうしたというのか それが罪深いことは重々承知…

nginx

nginx デザインパターンの概要 ITインフラ用語 PHPのセキュリティ データベース用語 nginx Apacheなどのプロセス・スレッドベースのサーバでは、 接続の数だけプロセスやスレッドを作成する。 一つ一つの接続のリソース消費は微々たるものでも、 ものすごく…

デバッグ

「何がどこで実行中か」を見ながら作る バグのないプログラム 「何がどこで実行中か」を見ながら作る ある意味、プログラムの基本とは、「何がどこで実行中か」ということがポイントだと思います。いつ、そのプログラムがどこで何を実行しているのか、それが…

git

git add . git clone インデックスへの登録とコミット リポジトリとプッシュ・クローン・プル ブランチ GitHubで同期 GitはLinuxカーネルの開発のために作られた GitHubはマイクロソフトによって買収 git cloneでパッケージ管理システムは不要になる? 最近…

ゲーム開発

OpenGLでゲームを作るコツは、座標変換と配置と移動 Unity勉強中 UnityではC#を使う ゲームを開発するならDirectX/OpenGLを ローグライクゲーム OpenGLでゲームを作るコツは、座標変換と配置と移動 僕は、OpenGLで3Dのゲームを作るコツは、座標変換と配置と…

並列処理

並列性とは UNIXと並列処理 イベント駆動とは Windowsとイベント駆動 並列性とは 並列性とは、UNIXのようなマルチタスクのOSにおいて、複数のプログラムや処理を同時に(並列して)動かすことのできる仕組み。単純で開発しやすいモデルは、UNIXのコマンドラ…

コンパイラ・インタープリタ

コンパイラを作る インタープリタを作る yaccとlex 3番地コード AIコンパイラ コンパイラを作る 以下は僕の主観的方法論を書いただけにすぎず、経験や知識に裏打ちされた正しい方法ではない。まず、パースの段階で、字句解析と構文解析を行う。字句解析では…

GUI開発

Linux/X11 Windows COMとCORBA その他のGUIプラットフォーム GUIアプリケーションの開発 GUI開発はコントロールの操作ができればできる Windowsプログラミングの問題 Linux/X11 Linuxでは、Linuxカーネルと少数のCUIプログラムによるベースシステムには、グ…

関数型プログラミング

関数型プログラミングとは 再帰 再帰とfor文の比較 イテレータ(反復子)とジェネレータ(yield) イテレータは反復処理のカプセル化 順番を自由に吐き出せ、繰り返しの数列と処理を分離できる クロージャと無名関数 デリゲート、関数オブジェクト、lambda式…

オブジェクト指向

要するにグローバル変数と関数をまとめたもの オブジェクト指向 オブジェクト指向は、データの作成・破棄と共有の仕組み アロー演算子とインスタンスハンドル オブジェクト指向はレシーバ・メソッド・メッセージ getとset(プロパティ) .の連鎖は面白い 大…

アルゴリズムとデータ構造

アルゴリズムとは フローチャート 与える変数や参照・取得する変数だけを変えて同じルーチンを実行する アルゴリズムを自分で書く場面 ハードウェアに近いところにもアルゴリズムはある 独自データベースとアルゴリズム データ構造とは データ構造はプログラ…

レイヤー

UNIXにおける水準 GUIにおける水準 サーバーにおける水準 UNIXにおける水準 まず、高水準・低水準とは、多くの場合、「よりマシンに近いか」「よりユーザーのやりたいことや機能に近いか」といったことから使われる言葉である。たとえば、Linuxカーネルは比…

ポインタとメモリ

ポインタと参照型変数 複数の名札から変数の入った箱そのものにアクセスする もしもJavaにポインタがあったとしたら スタックとヒープ メモリアドレス空間 動的なメモリ確保 スマートポインタとガーベッジコレクション なんであれアドレスを必要とする場合は…

データ操作

変数には、一時的な記憶領域と、関数の間で共有されるデータ構造がある 外部に状態を設定ファイル・データファイルとして保存する 定数をフラグとして扱う 関数と制御の中でデータを扱うことが基本 型は大切 プログラムの中で確保したものはプログラムの中で…

制御フロー

制御構造とフローチャート 条件式に応じたプログラミング イベント駆動によるプログラミング 抽象的な基盤システムの構築 繰り返しを使ったプログラム 正規表現を使ったプログラム 関数は自動の実行処理 サブルーチンはサブのルーチン 小規模プロジェクトと…

プログラミング発展

SEの仕事は問題を解決すること 数値の変換 プログラムに必要な機能をよく分析しよう 入念に作っておいて、あとは何度でも再利用できる 構成や設計を作る能力をつける アーキテクチャ概念の構築 アプリケーションの設計と実装手順 ハードウェアではなくプログ…

プログラミングのコツ

人間が考えるのと同じように書く 変数への値の格納と関数の呼び出しを上手く使う データ構造の共有 関数の分割と分散処理 文字列の操作、ウィンドウの描画、CGI、ライブラリ 何を目的に、どのように実行されるのか ハードウェアを操作する演算計算機 課題を…

プログラミングの考え方

そもそもコンピュータはプログラミングをする機械 焦らないこと、良く考えること、ゆっくり作り続けること Windowsもコードで動いている オープンソース開発 低レベルと高レベル パソコン操作、プログラミング、OS内部、ハードウェア、数学 プログラミングは…

プログラミングの基本

プログラムとは コマンドとGUIのプログラム ウィンドウを表示しているのはWindowsのウィンドウ表示機構 パソコンは自動プリン製造機械 設計が大事 コードはレシピ ひとつの変数と計算手順でたくさんの場合に対応できる 同じ処理の実行の場合を考える プログ…

正規表現

正規表現とは 正規表現の例 ちょっと面倒でも正規表現を使った方が確実で速い キャプチャ 正規表現とは 正規表現は、文字とパターンをマッチングさせる手段。多くの場合、言語のライブラリやUNIXなどのOSのコマンドで利用できる。主に、検索と置換のために使…

vi

viとは Vim公式のヘルプ Vim viとは viは、UNIXの標準的テキストエディタ。特に、サーバーなどの最小限のシステムで使われることが多い。(Emacsは、サーバーでは入っていない場合がある。)モードを切り替えることによって効率的な入力が可能。キーボードに…

Emacs

Emacsとは 公式のチュートリアル Emacsとは Emacsは、GNUプロジェクト創始者のリチャード・M・ストールマンによるテキストエディタ。テキストエディタとは言われているものの、実際はEmacs Lispの実装を内蔵していることから、「Lispによって拡張可能なエデ…

GNUツールチェイン

フロントエンドとバックエンド macOS/Windows版 クロスコンパイラ LLVM/Clang Binutils (as, ldなど) gettext 持論:コンパイラはフリーでなければならない Make Autoconfで移植性を高める Automakeで楽にMakefileを作る フロントエンドとバックエンド GCCは…

コンパイラ

コンパイラ・インタプリタ プログラムとライブラリ /binと/lib /etc/ld.so.confとldconfig GCC GNU make Autotools 国際化・地域化 テキストとバイナリ コンパイラ・インタプリタ コンパイラとは、プログラミング言語で書かれたソースコードを機械語に翻訳す…

継承

継承の用語 HTML/CSS この世界は世界に支配されている UNIX ムーブセマンティクス ポインタ マルチスレッド 継承の用語 継承の用語について。 スーパークラスに対するサブクラスのように、 継承して派生クラスを作る関係を、 is-a関係と呼ぶ。 is-a関係では…

データ構造

データ構造 ものを支配しようとすれば現実での試行錯誤はできる わたしは神を信じている 僕のことをイスラム教徒と言うならば言えばいい 僕は本当の神を知っている データ構造 プログラミングにおいて、 データ構造はさまざまな場面で使われる。 たとえば、…

オブジェクト指向とは

オブジェクト指向とは ピアノができてきた オブジェクト指向とは オブジェクト指向とは、ものを表すクラスを作る、ということです。 クラスごとに、データと手続きを実装します。 たとえば、みかんは食べ物です。みかんクラスは食べ物クラスを継承します。 …

エンジニア職は思ったほどつまらない

セイト先生の話を聞いて思ったこと プログラミングについての興味がないわけではない もっと勉強しよう セイト先生の話を聞いて思ったこと セイト先生のYouTube動画の話を聞いて思ったのは、 「エンジニア職は思ったほどつまらない」ということ。 セイト先生…