Post

New!

2018-05-24 12:35:03

シンボリックリンクとハードリンクの違い

概要シンボリックリンクとハードリンクの違いについてまとめる 前提 inode データ構造 ファイルシステム上の属性情報(作成者、グループ、作成日時など)をデータとして持つ ls -i1 /i1またはstat /etc/hostsでinode番号を確認できる シンボリックリンクとは 元のファイルまたはディレクトリのパスを参照するディレクトリエントリを追加 実験touch a.md ln -s a.md a_symbolic_link.md // シンボリックリンクを作成 ls -i1 a.md a_symbolic_link.md // inodeが違うことが確認できる 元ファイルを移動...

OS

シンボリックリンク ハードリンク

New!

2018-05-22 10:40:43

開発環境を見直してvimライクにした。

概要開発の効率化を図り、vimを取り入れ、開発環境諸々を刷新したのでまとめておく。各ツールの細かい設定や導入しているプラグイン詳細などは省く。  エディタ Atom 開発で使うメインエディタ vimのキーバインドを使えるようにプラグインを導入 vim-mode-plus-ex-mode vim-mode-plus 画面分割やペイン移動などもvimっぽくできるようにキーバインドを少しいじった Vim ちょっとした編集などサブで使う プラグインは最低限導入 コマンドラインツール iTerm2 bashでvi-modeを有効化 コマンドライン上でviキーバインドが使える...

ツール

tmux vim atom iterm

New!

2018-05-22 10:40:51

tmuxコトハジメ

概要端末多重化ソフトウェアであるtmuxのコトハジメ キーバインドtmux起動tmux or tmux new-session セッション一覧tmux ls セッションのデタッチ(tmuxから抜ける)prefix+d セッションのアタッチtmux attach(a) 任意のセッションにアタッチtmux attach(a) -t 0 セッションの削除tmux kill-session 任意のセッションを削除tmux kill-session -t 0 全てのセッションを’削除tmux kill-server セッションのリネームprefix+$ 新規ウィンドウprefix+c 次のウィンドウに切...

ツール

tmux

2018-05-12 12:36:36

N+1問題とは

概要N+1問題の説明と対応についてまとめる。 N+1問題とは 全てのレコードの取得に1個+レコード文だけのN個のSQLを発行してしまう問題 N+1というより1+Nと解釈したほうがわかりやすい 例 一覧表示用のデータを取得するケース 一覧用の全データを取得するSELECTを1回発行(Nレコード返ってくる) Nレコードの関連データ取得のためにSELECTをN回発行 対応 join SELECT "users".* FROM "users" INNER JOIN "posts" ON "posts"."...

データベース

No Tags.

2018-05-12 13:08:23

osメモ

概要OS周りの勉強をしている時に調べたこと。 swapメモリが足りない時にメモリの中身をハードディスクに移す機能のこと ページキャッシュとは CPUはストレージからデータを直接読み込みができない データは一旦メモリに読み込む必要がある メモリに読み込まれたデータはページキャッシュとして再利用できる ファイル単位でアクセスする時に使用されるキャッシュ バッファキャッシュ ブロックデバイスを直接アクセスする時に使用されるキャッシュ slabキャッシュ ディレクトリのメタデータ情報を格納するdentryやファイルのメタデータ情報を格納するinode構造体などをキャッシュしているカーネル内のメモリ...

ポエム

os

2018-05-13 19:19:01

ダック・タイピングとは

概要ダック・タイピングについてまとめる ダック・タイピングとは 動的型付けオブジェクト指向プログラミング言語において、オブジェクトができることはオブジェクトそのものが決定する インターフェースの全てのメソッドを持つオブジェクトは、インターフェースを実装していなくともオブジェクトはインターフェースを実装しているとみなせる、ということ If it walks like a duck and quacks like a duck, it must be a duck. 参考  Wikipedia - ダック・タイピング

プログラミング

ダック・タイピング

2018-05-11 11:52:09

ソフトウェア開発の法則

概要ポステルの法則 Jon Postel 送信するものに関しては厳密に、受信するものに関しては寛容に ポステルがTCPを規定したRFC793にて記載された1節が一般化されたもの インターネットの通信における原則 パーキンソンの法則 Cyril Northcote Parkinson 第1法則  仕事の量は、完成のために与えられた時間をすべて満たすまで膨張する 第2法則 支出の額は、収入の額に達するまで膨張する 「パーキンソンの法則:進歩の追求」にて提唱された法則 コンピューターへの応用 データ量は与えられた記憶装置のスペースを満たすまで膨張する パレートの法則 Virfredo...

プログラミング

ソフトウェア開発

2018-05-13 16:00:43

ポリモーフィズムとは

概要ポリモーフィズムについてまとめる ポリモーフィズムとは Poly(複数の)Morphism(形状) 複数の異なる型に対し、共有のインターフェースを提供すること 引数を受け取ったインスタンスがクラスによって違う振る舞いをすること ポリモーフィズムの種類 アドホック多相 関数が異なる型の引数に対してそれぞれ異なる実装を持つ 多重定義、関数のオーバーロードによって実現 パラメータ多相 型指定のないコードが書かれ、それぞれの型に対して透過的に使用できる場合 型を引数として渡すことで様々な型に適用することができる ジェネリクスやテンプレートによって実現 部分型付け 共通の上位型を持つ複数の...

プログラミング

ポリモーフィズム

2018-05-06 22:47:19

基本情報技術者教科書平成30年度

基本情報技術者教科書平成30年度 第1章:ハードウェア 第2章:ソフトウェア 第3章:コンピュータで扱うデータ 第4章:アルゴリズムとデータ構造 第5章:システム開発 第6章:コンピュータシステム 第7章:ネットワーク 第8章:データベース 第9章:セキュリティ 第10章:マネジメント 第11章:情報化と経営 第1章 ハードウェア1-2 CPUp.23 CPUの命令実行サイクル 1.命令フェッチ(Fetch) 命令を主記憶から取り出し、CPUのレジスタに取り込む 2.命令の解読(Decode) 命令コードを解読する(デコード) 3.実効アドレス計算(Address Calculati...

基本情報技術者

2018-05-06 22:45:15

Real World HTTP

Real World HTTP 1章 HTTP/1.0のシンタックス:基本となる4つの要素 2章 HTTP/1.0のセマンティクス:ブラウザの基本機能の裏側 3章 Go言語によるHTTP/1.0クライアントの実装 4章 HTTP/1.1のシンタックス:高速化と安全性を求めた拡張 5章 HTTP/1.1のセマンティクス:広がるHTTPの用途 6章 Go言語によるHTTP1.1クライアントの実装 7章 HTTP/2のシンタックス:プロトコルの再定義 8章 HTTP/2のセマンティクス:新しいユースケース 9章 Go言語によるHTTP/2、HTML 5のプロトコルの実装 10章 セキュリティ:ブラウ...

golang HTTP