write ahead log

ロールフォワード用

VimpleNoteを使ってvimでSimplenoteを使う

Simplenoteは必要なものがわかっているとても良いサービスです.

テキストの編集と検索しかできませんが, 多くの端末から利用できます.

しかし惜しいことにvimから編集できません.

これを解決するプラグインsimplenote.vimがあります.

こちらも素晴らしいですが, python依存は避けたいところです.

と思っていたら, なんとvimscriptで書き直したVimpleNoteという物があります.

例によってid:mattnさんの作品です.

導入

Vim8でWindows10 Home WSL上へ導入していきます.

VimpleNoteは以下に依存しています.

WSLであればcurlが入っているので, 必要なものをgitでcloneするだけです.

こちらの記事にもあるようにvim8からはプラグイン管理が楽になって助かります.

$ cd /home/twinbird/.vim/pack/mypackage/start
$ git clone https://github.com/mattn/vimplenote-vim.git
$ git clone https://github.com/mrtazz/simplenote.vim.git

設定

.vimrcへ以下を追加します.

let g:VimpleNoteUsername = "[Simplenoteのユーザ名]"
let g:VimpleNotePassword = "[Simplenoteのパスワード]"

dotfilesなどでパブリックな場所にvimrcを補完している方は別ファイルにした方が良いでしょう.

" 上述のletを記載したファイルを読み取る
source .vimplenoterc

使い方

ノーマルモードで叩くだけです.

コマンド 動作
:VimpleNote -D 現在のバッファのノートを削除
:VimpleNote -d ノートをゴミ箱へ
:VimpleNote -l ノートの一覧を表示
:VimpleNote -n 現在のバッファから新しいノートを作る
:VimpleNote -t 現在のバッファにタグをつける
:VimpleNote -u バッファのノートを更新

wコマンドで保存すれば更新してくれるし, 非常に便利です.

強いて言えばSimplenote自体のセキュリティがシンプル過ぎるので, 2段階認証が欲しいという気はしないでもないですが.

HomesteadでWindows10上にLaravel開発環境を構築した時のメモ

先にざっくり概要

  1. VirtualBoxを入れる
  2. Vagrantを入れる
  3. Git for Windowsを入れる
  4. HomesteadのVagrant boxをダウンロード
  5. Homesteadのgitリポジトリをclone
  6. init.batを起動
  7. 環境変数を設定
  8. ssh-keygenで鍵を作成
  9. Homestead.yamlを編集
  10. vagrant upでVMを起動
  11. vagrant sshで接続
  12. laravelプロジェクトを作成
  13. ホスト環境からブラウザで確認

詳細な手順

VirtualBoxを入れる

以下からどうぞ.

Oracle VM VirtualBox

Vagrantを入れる

こちらも以下からどうぞ.

導入時バージョンは2.1.2.

Hashi Corp - Vagrant

Git for Windowsを入れる

以下からどうぞ.

Git for Windows

コマンドプロンプトで使う設定で入れた.

HomesteadのVagrant boxをダウンロード

コマンドプロンプトで以下を実行.

> vagrant box add laravel/homestead

Homesteadのgitリポジトリをダウンロード

コマンドプロンプトの任意のディレクトリで以下を実行.

> git clone https://github.com/laravel/homestead.git Homestead

init.batを実行

上述でcloneしたリポジトリディレクトリへ移動して以下を実行.

> init.bat

環境変数を設定

これはおすすめできないけど.

ssh-keygenしたいだけだったのだが, Git for Windows導入時に入ってくるものがコマンドプロンプトにパスが通ってないので使えない.

というわけで環境変数へ以下を追加するという暴挙に出た.

C:\Program Files\Git\usr\bin

乱暴だけどunixコマンドが使えるようになって便利かも.

ただ, findコマンドみたいに名前が被るコマンドだと......

ssh-keygenで鍵を作る

.sshディレクトリがなければ作っておきましょう.

> mkdir %HOMEPATH%\.ssh

移動してssh-keygenで鍵を作る.

> cd %HOMEPATH%\.ssh
> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (//.ssh/id_rsa): c:/Users/twinbird/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in c:/Users/twinbird/.ssh/id_rsa.
Your public key has been saved in c:/Users/twinbird/.ssh/id_rsa.pub.

Homestead.yamlを編集

ホームにhelloworldプロジェクトを作る前提で.

folders:
    - map: ~/helloworld
      to: /home/vagrant/helloworld

sites:
    - map: homestead.test
      to: /home/vagrant/helloworld/public

vagrant up でVM起動

> cd [GitでcloneしてきたHomesteadのディレクトリ]
> vagrant up

vagrant sshVMにつなぐ

> vagrant ssh

laravelプロジェクトを作成

helloworldプロジェクトを作るとしましょう.

$ composer create-project --prefer-dist laravel/laravel helloworld

ホスト環境からブラウザで確認

ホストからブラウザで下記へアクセス.

192.168.10.10

番外

Homestead.yamlの変更が効かないんすけど

vagrantをリロードします.

vagrant reload --provision

--prefer-distって何?

こちらが詳しかった

Rails5で簡易CRM(顧客管理システム)を作った

自分のための禊ネタなので誰の役にも立ちそうにはない. 特に旬な技術を使っているわけでもない. バグもまだまだあると思う.

github.com

Herokuで動作もさせてみた. Travisから自動デプロイもできて素晴らしい.

Rails CRM

暇な人は捨てアドでも使って試してもらっても良いかもしれない.

Railsネタはブックマークがずいぶん溜まったので知識整理を兼ねて少しずつ記事にしておきたい.

最近はアプリ系の技術を試す時には見積書を出すだけのアプリを作ることにしている.

前回はこれ.

SIerの人間らしくて良いかなと思ってる.

Rails5でJSON APIをテストする

知らないとハマる.

JSONAPIに以下の様にしてアクセスしようとすると.

get order_detail_path(@buy_new_computer)
assert_response :success

UnknownFormatと言われる.

ActionController::UnknownFormat: ActionController::UnknownFormat
    app/controllers/order_details_controller.rb:7:in `show'
        test/controllers/order_details_controller_test.rb:30:in `block in <class:OrderDetailsControllerTest>'

調べるとjsonを取得する際は asでの指定が必要らしい.

#get order_detail_path(@buy_new_computer), as: :json
get order_detail_path(@buy_new_computer)
assert_response :success

参考

助かりました....

RailsのテストでJSON形式のデータを取得する

Rails5でcoffeescriptを途中から排除した時にハマったのでログ

個人でコツコツ触っているRailsですが, coffeescriptの扱いは困った感じでした.

最初はデフォルトという理由で頑張って勉強しようかと思ったのですが, もうjsもES2016とか2017とかも話題になっているし流石に良いかなと排除することに.

ところが消すのも以外と苦労したのでメモっておきます.

手順は以下でやりました.

  1. .coffeeのファイルを.jsへリネーム
  2. 中身をcoffeeからjsへ変更
  3. Gemfileのcoffee-railsコメントアウト
  4. キャッシュを削除

以下1つずつ.

.coffeeのファイルを.jsへリネーム

これはコマンドですぐ終わります.

$ cd app/assets/javascripts
$ for nm in *.coffee; do
    git mv $nm ${nm%.coffee}.js;
done

中身をcoffeeからjsへ変更

これが恐らく一番面倒ですが, 今回はほとんどjsを書いていなかったのですぐ終わりました.

ただし, 中にはcoffeescriptのコメントだけのファイルがあったりして油断すると引っかかるので注意かも.

Gemfileのcoffee-railsコメントアウト

これは消すだけです.

#gem 'coffee-rails', '~> 4.2'

これでgenerateコマンドでもjsを吐き出すようになります.

キャッシュを削除

ここまでやってもう大丈夫かなと思ったら以下のエラーが出てテストが通らなくなりました.

LoadError (cannot load such file -- coffee_script):

困ってたんですが, githubにissueがあったので救われています.

LoadError: cannot load such file -- coffee_script

以下のコマンドで解決できました.

bin/rake tmp:cache:clear

キャッシュが残るんですね.

gemも変えているのでサーバの再起動も忘れないように.

vimのステータスラインに出てくるbotって何?

ってふと思ったので調べてみた.

StackOverflowで同じ質問をしている人がいた.

stack overflow - what do “All” and “Bot” mean in vim status line?

どうやら

  • 行頭を表示している => Top
  • 行頭も行末も表示している => All
  • 行末を表示している => Bot

ということらしい.

確かにこの文章を書いている間もそういう挙動をしている.

10年近く使っているのに考えもしなかった.

もう少し色々気を配って生きた方が良いかもしれない.

ubuntu 18.04でホームディレクトリのディレクトリ名を日本語から英語にする

日本語環境でインストールするとデフォルトで日本語になってしまうので.

ターミナルで以下を実行.

$ LANG=C xdg-user-dirs-update --force

実行後, 日本語と英語両方のディレクトリがホームに残る形になる.

この時点ではちゃんと機能していないので再起動する.

再起動するとubuntuから日本語に変えるか提案されるが, もちろん無視して問い合わせさせないようにする.

あとはターミナルでホームを開いて日本語ディレクトリを消す.