Golangをgoenv経由でインストールする方法

一度、rbenv, nvmなどの言語環境設定ツールを使うとそれなしではバージョンのアップグレードなどが不安になってしまいます。
Goの場合はgoenvというものがあるようなので、これを使ってgolangを入れることにしました。

2018年のVimファイル検索・文字列検索はfzfとripgrep(rg)で決まり

sublime2 -> atom -> vscode -> sublime3 を経て5年ぶりぐらいにVimに帰ってきたわけですが、当時から色々変わっていて軽い浦島太郎状態です。ともかく大変なのはプロジェクト内のファイル検索と文字列検索。一度、sublimeのようなテキストサーチを経験してしまうとこれなしには開発できなくなってしまいました。

deinをパッケージのインストールに選び、deniteを試すも大きなプロジェクトではその遅さに困り、ctrlPとfzf両方試し、fzfを利用することに決めました。決め手はその速さ。Blazing fastというやつです。

deinを利用しているので、.vimrcにjunegunn/fzfjunegunn/fzf.vimを追加。

あとはショートカットを追加。ctrl-Pでファイル検索。ctrl-gで文字列検索です。私はバッファ検索はタブを利用しているのであまり使わないと思っていますが、一応追加。\\でvimコマンド一覧を表示できます。

私はタブを利用してて、かつ私のtmuxのprefixキーのctl-tが被って利用できなそうだったので、ctrl-oで新しいタブを開くに変更。

文字列検索はripgrep(rg)を採用

ripgrepをインストールして、Rgコマンドにpreviewを追加。ctrl-gで:Rgが出て、検索する文字列を入れて、Enter。それから?を押すとpreviewモードスタート。ファイルが右側に表示されて便利の極みです。

私の整理されてないvimrcはこちら

[Ubuntu] grepからSilver Searcher(ag)。2018年はRipgrep(rg)をインストールする

昔は、find . | xargs grep 2>/dev/nullを使ってました。agに変更後、その速さに驚き。2018年はそれよりも早いRipgrepを採用しています。

Ubuntuでのインストールは、下記の通り。

使い方はシンプルでrg 検索ワード

[Rails] Action Cableの実装方法

JQueryは古いテクノロジーとはいえ、さくっと動くものを作るときは異常に簡単です。
古いテクノロジーは悪ではなく適材適所で使っていくのが大事だと思っています。

まずは、最初からあるapp/assets/javascripts/cable.jsを該当layoutで読み込みます。

全部のViewでApp.cableを呼ぶ必要はないのでcontent_forでActionCableとの通信をとるViewだけJSを走らせるようにします。

JSでは、App.cableにイベントを登録していきます。 引数のchannelにはクラス名、引数を渡すとparamsに入ってサーバ側で処理できます。this.performを使ってクラス内のメソッドを呼ぶことができます。development環境では別プロセスで動作確認ができないのでsetTimeoutを用いてテストしています。

HTML部分は下記のような感じ。

で最後になりますが、ActionCableを継承したクラスです。subscribedがconnectionとともに走ります。 stream_for MODELでモデルに関係したチャネルが接続されます。 そして、broadcast_to(MODEL, object)でそのモデルへの接続を確率したチャネルにプッシュすることができます。

これでダイナミックにDOMを操作できるようになりました。

[Rails] Device利用時のconnection.rb(Action Cable)

Railsガイドで説明されているconnection.rbはcookieを利用しているもので、deviseを利用する場合は、request.envに設定されているwardenのものを取ってくる必要がある。 もしくはsessionの中を漁る感じ、request.envの方が綺麗に書けるのでこちらを採用した。 (Essentially, the both are cookie tho..)

参考: https://stackoverflow.com/questions/38470463/rails-devise-action-cable

[ChromeOS] Crostiniで日本語入力する

ここ何年もLinuxに触ってなかったので久しぶりに日本語入力系の話。昔は、Cannaとか使ってましたね。SKK/Anthyで院生のときは過ごしてたと思います。

Crostiniでも日本語入力を扱いたいのでGoogleの日本語入力のMozc(モズク)を初インストール。

fcitxというのも初めて。apt-getでプロセスが上がってくる(確か)

XMODIFIERSを設定しろと言われたので下記のコマンドで環境変数を設定する。

fcitx-configtoolでGUIから設定できる。

inputメソッドにmozcを追加。

英語キーボードなのでLayoutを指定。

firefoxか何かをあげてctrl+spaceで入力が表示される。

[ChromeOS] Crostini VMの再起動方法

crostiniのXがよく落ちるのでCrostini VMを再起動するケースがよくある。手順は簡単で、

  1. croshを起動
  2. vmc stop termina
  3. vms start termina

AWS Ruby SDKでCost Exploreの情報を取得する方法

aws-sdk version3での話です。

1. aws-sdkのCost Exploreのモジュールを読み込む

2. IAMユーザに請求情報のアクセス権を与える

上部のナビバーのアカウントをクリックして、請求情報のアクセスのeditをクリックしてIAMアクセスのアクティブ化をチェックして保存。

3. IAMユーザに必要なロールを設定して追加する

下記のロールを作成し(今回はGEtCostAndUsageのみ)、該当ユーザでロールを追加する

4. REPLでテスト

Rails cでコンソールを呼び出しテスト。各キーは設定済みとする。

初期化。us-east-1でのみ提供されている

BlendedCostとUnblendedCostの差がわかりづらい。Unblendedの方が割引などを除いた実際の数値に近いという理解で良いのか。

ドキュメントを読み試行錯誤の結果、タグに紐づいたコストを引くことができた。

注意

Cost ExploreのAPIリクエストにはお金がかかりそう。。

vim-session プラグインを使ってtabごとsessionを保存する方法

tmuxで指定したwindow/paneから始める方法 [再起動も安心]を説明したが、Vimのセッション情報もタブを含めてRestoreしたい。 最初は全て自動で保存しようとしたが、必要に応じて自分でセッションを保存した方が実用的。ブラウザのタブのように、使わないタブが残ってしまい必要のないタブが溜まっていってしまう。

vimはデフォルトでセッションの管理が可能だが、細かいところまで残すにはvim-sessionを使った方が良い。

.vimrc

SaveSessionとタイプするのが面倒なのでノーマルモードで\ssでSaveSessionを呼び出す。

例えば、セッションをProject毎に保存する場合は、引数のセッション名にプロジェクト名を指定することでプロジェクトごとのセッションの作成が可能。

.vim/sessions/<session name>.vimに保存されるのでこれをvimの引数として呼び出せばよい。

実際は、tmuxの起動スクリプトに書いておけば良い。

tmuxで指定したwindow/paneから始める方法 [再起動も安心]

PCの再起動後にTmuxのwindowやpaneを自動的にある所定のものにしたい。tmux-resurrecttmux-continuumを試した試したがうまい具合にシャットダウン前の状態にしてくれないケースがあったので、それなら常に同じ状態からスタートした方が効率が良い気がしてきたので、そのような運用にしてみる。

tmuxのwindow作成などはtmuxコマンドから呼べるので設定ファイルを書くことができる。starttmux.shというスクリプトを作ってこれを.bashrcから呼べば良い。

*C-mはtmuxでの改行

でこれを.bashrcの末尾追加すれれば毎回同じtmuxからスタートできる。

Scroll to top