ddc.vimとvim-lspを使って自動補完機能を設定する

はじめに Vimには標準で自動補完機能が備わっていません。したがって手動でLSPを導入したり、補完候補が表示されるように設定をする必要があります。 今回はvim-lspという非同期LSPを行うVimプラグインと、LSPの設定を簡易にしてくれるvim-lsp-settingsというプラグイン、そして自動補完の設定を行うddc.vimというプラグインを導入していきます。 vim-lspに関しては自動補完以外にも定義ジャンプなど便利な機能もあるようですが、これについては別の機会にまとめようと思います。 Denoインストール ddc.vimがDenoで開発されているらしく、まずはDenoのインストールから行います。 $... 御覧になる | 御シェアする

iTerm2とVim上でSolarizedカラースキーマを利用する

はじめに 最近Macを初期化してしまったので、カラースキーマの設定もし直すことになってしまいました。 とりあえずSolarizedテーマを使っておけば間違いはないと思うので、今回はiTerm2とVimを使用するという前提の下でカラースキーマをSolarizedに設定する方法をまとめてみました。 Vimプラグインをインストール .vimrcに下記を追記して下さい。 Plug... 御覧になる | 御シェアする

Unity備忘録

はじめに これはUnity初心者のUnity初心者によるUnity初心者のために書いた、備忘録です。 ウィンドウサイズをスマホ幅にする ゲームタブの左上の所から変更可能です。 但し最初にビルドプラットフォームをPCに選択している場合は、比率を選択しても縦長になりません。その場合は「File」→「Build... 御覧になる | 御シェアする

WindowsのSourceTreeでGitHubとSSH(公開鍵)接続する

はじめに 今回はWindowsにてSourceTreeを使ってGitHubアカウントに公開鍵暗号方式でSSH接続する方法の説明です。 Linux環境では何度も設定していましたが、最近になって初めてWindowsで設定を行いました。その際に意外と沼にはまってしまう点があったので、次の機会のためにまとめておこうと思います。 鍵の作成 まず認証に使用する秘密鍵と公開鍵を作成します。 SourceTreeを起動して「ツール」→「SSHキーの作成/インポート」を押下します。 PuTTY... 御覧になる | 御シェアする

NoSQLと行・列指向型DBの技術選定

はじめに ログ分析システムを構築するにあたり、ログを格納するDBは何にすればいいのかについて考える機会がありました。 この時、慣れているからという理由だけで行指向型DB(MySQL)を採用するのは非常に危険な考え方です。もし深く考えずに安直な選択をした場合、DBのレコード数が増えて来た頃に1クエリ毎に1分近くも処理時間を待たなければならないという未来を迎えることでしょう。そしてそうなった時には後戻りが出来なくなってしまうのです。 今回はそうならないためにもNoSQLとSQL(行・列指向型DB)の3つを比較しながら、技術選定の観点をかんたんにまとめてみました。 行指向型DB 行指向型DBとはMySQLやPostgreSQLなどの最も一般的なDBです。行単位でレコードを読み書きします。 メリット 少ないレコードへの読み込み・書き込みが速い検索しやすい デメリット レコードが多いほど読み込み(ディスクシーク)が遅くなる HDDとアクセス速度 忘れがちですが、HDDに保存されたデータへのアクセスは結構遅いです。レコードを読み取るということは、すなわち円盤の上のアームが回転して保存された磁気データを探しているということです。 つまりレコードが増えるほど回転量が増えて処理時間も長くなります。 列指向型DB 列単位でレコードを読み取る。列方向はデータ形式が同じで、同値が多いので圧縮保存される。BigQueryなどが代表的。 メリット 大量レコードでも読み込みが速い検索しやすい ※列方向に圧縮して保存するので、HDDのデータシークの観点からレコードが増えても読み込み速度が速い ※クエリは行指向と変わらないので検索しやすい デメリット 書き込みが遅い ※一行であろうと更新する際には、圧縮されたDBを展開してから更新して再度圧縮を行うため時間が掛かる NoSQL NoSQLはキーバリュー型やドキュメント型など種類が多くあります。※ここではAWSのDynamoDBなどで代表的なキーバリュー型を想定しています。 メリット 読み込み・書き込みが速い拡張性が高い ※インデックスキーを登録出来るので該当キーでの読み込みが速いです ※キーバリュー形式で様々なデータを格納出来る インデックス インデックスとは本で言う索引のようなもです。インデックスのロジックはDB毎に様々ですが、ここでは二分探索木をイメージしています。 例えば1,000行のレコードがあるとして、1000番目のレコードを探索する際に頭から順番に検索するのではなく、1~500行目はここ、501行目~1000行目まではここという風にグルーピングされていればより速く検索することが出来ます。 細かい説明は割愛します。 デメリット 検索しにくい設計が難しい ※RDBMSの様な複雑な検索は出来ません。また登録出来るインデックスキーの数に限りがある。 ※どのキーで検索・ソートするのかなど、あらかじめ決めるべき項目が多いため設計が難しい まとめ 各DBの説明は以上です。どのDBを採用するかは、レコード数や検索性、用途や予算などを整理した上で、各データベースの長所と短所を比較しながら選定することになるかと思います。 以上です。 ... 御覧になる | 御シェアする

Vimでアカウント・パスワードを管理するベストプラクティス

はじめに 複数のシステムのアカパスを管理している場合、どうしてもローカルのテキストファイルなどに管理してしまうかと思います。しかし、この方法はふとした瞬間に困ることがあります。 第一にファイルアクセスまで時間が掛かるということです。ファインダーを立ち上げ該当のテキストファイルまで移動して、クリックしてから確認という工数になります。 第二にうっかり画面共有などで他の人に見られてしまう可能性があることです。皆さんはやらないかと思いますが、自分は気をつけていても結構やってしまいます。説明やペアプロの時などに画面に映してしまい、その度に上司に注意されています。 そこで今回はVimで若干セキュリティを上げつつアカパスを管理する方法を考えてみました。 折り畳みを使う 概要 大抵のIDEや開発向けのエディタには折り畳みという機能があります。ファイルの中の一部分を折り畳むようにして一時的に非表示にする機能のことです。Vimにもfoldingという折り畳み機能があります。 下記はよく使うモーションです。 zf選択部分やカレント行を折り畳むzd折り畳みを削除するzD折り畳みを全て削除するza折り畳みを切り替えるziファイル内の折り畳みを切り替えるzj... 御覧になる | 御シェアする

Vimでブラウジング

はじめに Vimでブラウジング出来るとどんな良いことがあるのか考えてみましょう。仕事している風を装いながらスポーツニュースの速報をチェック出来たり、サクッと天気予報を確認出来たりします。 他にもコーディングをしながら調べものをする際にターミナルからブラウザなどのアプリに切り替えなくて済むようになります。一日に何十回とする面倒な作業が省略されて開発体験も改善されます。 という訳でVimでブラウジングする方法をまとめました。 テキストブラウザ w3mというテキストブラウザを利用します。普段私達が見ているWebページには画像やCSSなどの装飾が埋め込まれています。それらはChromeなどのブラウザによってパースされた後、DOMを構築したりスタイルを適応していき最終的に私達にとって見やすい形で画面に表示されています。 テキストブラウザとはWebページの文字で表現されている部分のみを抽出してターミナルに表示するブラウザのことです。w3mはその内の一つです。 $... 御覧になる | 御シェアする