IndexedDB
概要
構造化された多くのデータをブラウザ内に永続化する有用なAPI。
Key:Valueでデータを保存できる。
オブジェクト指向データベース
Indexed
の名の通り、Valueがオブジェクトの場合、
指定したプロパティのインデックスを作成し、検索することができる。
インデックス
Valueがオブジェクトの場合、プロパティでインデックスを作成できる。
したがって、特定の値のプロパティを持つオブジェクトを取得する時、アプリケーション側での全件探索が不要となる。
他の概念や用語の定義はこちら
ライブラリ
資料
リアルタイムWeb技術
概要
リアルタイムWeb技術と呼ばれたりする技術のメモ
詳細はそれぞれの資料を参照。
Polling
- メリット
- 単純
- デメリット
- 無駄なリクエストが生じ、サーバ負荷の増加等を招く
- それほどリアルタイムではない
- 対応環境
- 特に制限なし
Long Polling
サーバからのPushを擬似的に実現
- メリット
- Pollingよりリクエスト回数を減らせる
- デメリット
- 再リクエスト中に生じたイベントの通知が遅延する
- 対応環境
- 特に制限なし
Server-Sent Events
サーバサイドpush
- メリット
- Long Pollingのデメリットを解決出来る
- デメリット
- Long Pollingのデメリットを解決出来る
- 対応環境
- IE, Edgeは非対応、Android 4.4未満の標準ブラウザも未対応
- http://caniuse.com/#search=EventSource
- 資料
WebSocket
上述の技術はサーバからのpushを実現するためのものだが、本技術は双方向通信を実現するもの。
また、上述の技術の通信プロトコルはHTTPだが、本技術のプロトコルはWebSocket
APIも規格化されている
same origin policyがないため、想定しないドメインからの利用を防いだりする必要がある。
- メリット
- HTTPのオーバヘッドがない
- デメリット
- 古いブラウザが未対応
- 対応環境
- IE10、Android 4.4(標準ブラウザ) 以降
- http://caniuse.com/#search=websocket
- 資料
- サーバサイド実装
- Node.js
資料
スマートフォンUIフレームワーク
スマホサイトを作ろうと思うが、CSSをフルスクラッチできる力はないので、
フレームワークのお力を借りようと思う。
色々調べたけど、とりあえずBootstrap使っていきます。
この分野はどう学習していけばいいのかよく分からない。
Bootstrap
言わずと知れたフレームワーク
- テーマ・テンプレート
-
色々なテーマが提供されている。
-
色々なテンプレートやテーマがある。スライドメニューも。
-
色々なテーマやテンプレートが提供されている。
-
色々なテーマやテンプレートが提供されている。
-
ダッシュボードテンプレート
-
Webmin用のテーマ
-
Semantic UI
Materialize
ChocolateChip-UI
material ui
マテリアルデザインを実装したReactのコンポートネント
Reactを学ぶ時に、合わせて触ろうか
資料
Vim プラグイン
プラグイン
-
.vimrcを共有することで、みんなが使っているプラグインを知ることができるサイト
NeoBundle (Shougo/neobundle.vim)
プラグイン管理のプラグイン
同様のプラグインにVundle等もあるが、こちらは後発ゆえ様々な機能が追加されている。
以降のプラグインは、本プラグインで管理していく。
コマンド一覧等の詳細は、:help neobundle
にて
neocomplete (Shougo/neocomplete.vim)
入力補完のプラグイン
Shougo/neocomplcache.vimの後継
どう設定するのが良いのか、まだ把握できていない。。。
Neosnippet (Shougo/neosnippet.vim)
fugitive.vim (tpope/vim-fugitive)
gitのラッパープラグイン
詳細は、:help fugitive
unite.vim (Shougo/unite.vim)
キーマッピングが各々に任されているので、自由ではあるが、
設定を模索中。
- 資料
lightline.vim
ステータスライン・タブラインのカスタマイズプラグイン
lightline.vim作りました - プラグインの直交性について - プログラムモグモグ
作者のブログ。自分も美学を持って、プロダクトを作れれば。
vim-gitgutter
gitの差分を表すマークを行番号の左に表示してくれる。
hunkのリバートやhunk間の移動もできるようにしてくれる。
ctrlpvim/ctrlp.vim
ファイル等のファインダープラグイン
Ctrl-p等のキーマッピングがデフォルトで設定されているので、
自分で設定せずとも簡単に使い始められる。
quickrun(thinca/vim-quickrun)
watchdogs.vim
syntastic
emmet-vim
Emmetのvim plugin
HTML & CSS のコーディング速度が向上するそう
previm
Vim - 依存ツールなしにMarkdownプレビューできるprevimプラグインを作った - ぼっち勉強会
snipmate
YankRing.vim
surround.vim
テキストオブジェクトの外側の区切り文字(文字列)の操作を可能にするプラグイン
vimでHTMLを編集するのに必須と思われる
sudo.vim
smartchr
vimfiler
NERD Tree
ファイルエクスプローラ プラグイン
IDEのように、ツリー状にファイルシステムを表示できる。
t
で新しいタブでファイルを開く時、少し間があるのは自分の環境のせいか。。。
project.vim
savevers
Tagbar
Gundo
JavaScript or Node.js
Node.vim
gfで、requireで読み込まれるファイルをオープンできる。
コードリーディングが捗りそう。
特段の設定をせず、使い始められる。
vim-javascript-syntax
JavaScriptのシンタックスプラグイン
(
や 引数がハイライトになるので見やすくなる
YAJS: Yet Another JavaScript Syntax
vim-javascript-syntaxのfork
ES6をサポートしているそう。ES6で書くようになったら試してみる。
Vim 操作
基本中の基本は省略。
普段使おうと思った操作をまとめる。
オプション
-p
指定されたファイルをタブで開く
移動
コマンド | 効果 |
---|---|
w | 次の単語の先頭へ移動 |
e | 単語の末尾へ移動 |
b | 前の単語の先頭へ移動 |
f |
行中の次の |
t |
行中の次の |
# | カーソル位置の単語の検索(前方) |
* | カーソル位置の単語の検索(後方) |
% | 対欧する括弧への移動 |
H | 画面上の最上行へ移動 |
M | 画面上の中央行へ移動 |
L | 画面上の最下行へ移動 |
z |
現在のカーソルの行が最上行になる |
z. | 現在のカーソルの行が中央行になる |
z- | 現在のカーソルの行が最下行になる |
C-f | 下にページスクロール |
C-b | 上にページスクロール |
C-d | 下に半ページスクロール |
C-u | 上に半ページスクロール |
gf | カーソル位置の名前のファイルをオープン(goto file) |
編集
基本
<オペレータ><モーション> で操作と操作対象を指定する。 (モーション単体は上の移動のコマンド)
- オペレータ
オペレータ | 操作 |
---|---|
c | 変更(削除 + ノーマルモード移行) |
d | 削除 |
y | コピー |
- モーション
モーション | 対象 |
---|---|
w | カーソルのある単語 (後ろの空白含む) 単語全体を指定する場合、単語の先頭で使う |
e | カーソルのある単語(後ろの空白含まない) |
$ | カーソル位置から行末まで |
テキストオブジェクト
特定の文字で囲まれた文字列を操作対象に指定するコマンド
citは便利
コマンド | 対象 |
---|---|
a | 全体を指定 |
i | 内部のみ指定 |
w | 単語 |
s | 文章 |
[, ], (, ), <, >, {, }, “, ‘ | 指定された記号の範囲 |
t | タグ |
etc
コマンド | 効果 |
---|---|
r | 一文字置換 (x + i + ESC の一連の操作を省略できる) |
u | 操作の取消 |
C-r | 取消の取消 |
:r |
ファイル内容の挿入 |
:r ! |
コマンド出力の挿入 |
= | インデントの自動調整 |
C-v -> I | 矩形選択後の編集 |
. | 最後に行った変更を再度適用する |
検索
コマンド | 効果 |
---|---|
[I |
バッファ
ウィンドウ
コマンド | 効果 |
---|---|
:close | ウィンドウのクローズ |
:only | カレントウィンドウ以外のクローズ |
全ウィンドウまとめてクローズは?
タブ
コマンド | 効果 |
---|---|
:tabnew | 新規タブの作成 |
:tabe |
新規タブでのファイルオープン |
gt, gT | タブの移動 |
:tabclose | タブのクローズ |
C-w gf | カーソル位置の名前のファイルを別タブでオープン |
全タブまとめてクローズは?
折り畳み
コマンド | 効果 |
---|---|
zo | カーソル位置の折り畳みを開く |
zO | カーソル位置の折り畳みを全段階開く |
zc | カーソル位置の折り畳みを閉じる |
zC | カーソル位置の折り畳みを全段階閉じる |
zM | 全ての折り畳みを閉じる (foldlevel=0) |
zR | 全ての折り畳みを開く (foldlevel={maz}) |
[z | カーソル位置の折り畳みの最初の行へ移動 |
]z | カーソル位置の折り畳みの最後の行へ移動 |
zj | カーソル位置の下の折り畳みへ移動 |
zk | カーソル位置の上の折り畳みへ移動 |
Netrw
リモートに対応したファイルブラウザプラグイン。
Vimに同梱されているので、別途インストールは不要。
コマンド | 効果 |
---|---|
:Explorer | 起動 |
:Vexplorer(!) | 縦分割後、左(右)ウィンドウで起動 |
Netrw内コマンド | 効果 |
---|---|
<Enter> | ファイルオープン、ディレクトリ移動 |
v | 縦分割後、右ウィンドウでオープン |
P | オープン済みウィンドウでファイルオープン |
t | 新しいタブでオープン |
- | 上位ディレクトリへ移動 |
s | 並び順の基準変更 |
r | 逆順 |
i | 表示形式の切替 |
資料
その他
コマンド | 効果 |
---|---|
C-g | ファイル・カーソル位置情報の表示 |
Tips
検索
検索時に、大文字小文字を区別しない場合、\c
を末尾に付ける
ex: /abc\c
複数回にわたって区別しない場合、
:set ic
(Ignore Case)
区別する設定に戻る時
:set noic
(設定の無効化は、他の設定に関してもnoを付けるだけ)
補完候補一覧
コマンドやファイル名の入力中に、C-d
で補完候補が表示される
オプション
:echo &(option name)
or :set (option name)?
で、設定されているオプションの値を確認できる。
ex. ) :echo &history
:options
で、オプションの一覧が表示される。
ハイライト
:noh
で、検索後等のハイライトを消せる
複数行にまとめて挿入
Ctrl + v
で挿入箇所選択I
- 挿入する文字を入力
ESC
参考
Vim
※項目毎に分割中
概要
操作
設定
プラグイン
-
.vimrcを共有することで、みんなが使っているプラグインを知ることができるサイト
NeoBundle (Shougo/neobundle.vim)
プラグイン管理のプラグイン
同様のプラグインにVundle等もあるが、後発ゆえ様々な機能が追加されている。
以降のプラグインは、本プラグインで管理していく。
コマンド一覧等の詳細は、:help neobundle
にて
neocomplete (Shougo/neocomplete.vim)
入力補完のプラグイン
Shougo/neocomplcache.vimの後継
Neosnippet (Shougo/neosnippet.vim)
fugitive.vim (tpope/vim-fugitive)
gitのラッパープラグイン
unite.vim (Shougo/unite.vim)
ctrlp.vim (ctrlpvim/ctrlp.vim)
※unite.vim把握後に確認。