hotoolong's blog

プログラムのことやエンジニアリングに関することを記事にしています。

2020-01-01から1年間の記事一覧

パーフェクトRuby on Rails 【増補改訂版】を読んで

イントロ パーフェクト Ruby on Rails 【増補改訂版】を読みました。 Rails本の中では異質な量と質ではないかとおもいます。 誰が読むべきか 最近のRailsをキャッチアップしたい方 Railsをある程度は長く使っている方 よりRailsを理解したい方 Rails初心者の…

Krisp を使ってみた

リモートでの会議が多くなり、Google Meets, Zoom, Discord を使う機会が徐々に増えてきました。 リモートで会議をしながらタイピングをしているケースもあり、 相手のキーボードの打刻音が煩わしく感じたり、 自分の打刻音が相手にどれくらい不快にさせるの…

vimのプラグインマネージャをdein.vimに変更しようとして読み込めないプラグインがある?

イントロ 現在vim-plugを使っています。 プラグインが増えてきて遅延させてロードを対応したこともあったんですけど、 設定が必要なプラグインの場合ロード前に設定がエラーなるようなケースもあり、 deinに乗り換えることにしました。 github.com 以前もdei…

fish shellのprompt_pwdを少し改造する

イントロ 日々fish shellを使っているのですが、 プロントの表示を変更したくなりました。 ただ、単純には変更できなかったのでカスタマイズしてみました。 というお話です。 一般的なやり方 fish shell で プロンプト を変更する場合は以下のコマンドを打ち…

Neovim用の翻訳プラグインを作った

イントロ DeepLなどで翻訳が比較的簡単にできるようになっているのですが、 vimから離れずに翻訳したいと思いプラグイン入れてみるとNeovimに対応されてなかったのがプラグインを作ろうと思ったきっかけです。 ただ、よく調べると同様のプラグインは既にあり…

Ruby 3.0.0 preview1 の インストール

イントロ Ruby 3.0.0 preview1がリリースされました。 www.ruby-lang.org RBS、Ractorなど新しい機能が試してみたいところですね。 手順 ruby-build の アップグレード まずruby-buildのバージョンアップをしましょう。 $ brew upgrade ruby-build インスト…

RSpec初心者向け勉強会の動画がとても良かった

イントロ RSpecの初心者向け勉強会が紹介されていました。 blog.jnito.com 勉強会の内容を動画で公開してくれています。 最近RSpecをあまり書いておらずトレンドも追えてなかったのでとても為になる内容でした。 気になった内容 テストの書くべきところ 動画…

Rubyの継承元のクラスの別メソッドをsuperで呼び出す

イントロ Rubyの継承先で継承元のメソッドを単純に呼び出すにはsuperを使いますが、 継承元の別メソッドを呼び出したい場合にどうしていいのかわからなかったので調べてみました。 詳細 class A def test1(*args) puts "A#test1:args(#{args})" end def test…

vimの置換で改行、タブを挿入する

Vim

イントロ 度々vimの置換処理で改行やタブを追加して置換するケースがあるのですが、 挿入するためのキーバインドを忘れてしまうのでもう少し調べてみたという内容です。 やり方 改行に置換したいケースで 私がよく利用するのはjsのコードで;の後に改行を無作…

asyncomplete-tabnine.vim を neovim に対応してみた

概要 tabnineはAIによる入力補完をサポートしてくれるツールです。 vimでも利用できるのですが、デフォルトで使うと同期処理されてレスポンスが遅く使い勝手が悪いです。 非同期用としてYouCompleteMeやCoC、Deopleteが対象となっていますが、私は普段asynco…

vim-plug で プラグインの遅延ロードを行う

イントロ 最近neovimの起動が もっさり してきました。 プラグインマネージャーにはvim-plugを使っていまます。 こちらの環境で起動時間を改善してみました。 計測 nvim --startuptime ./startup.log こちらのコマンドで起動時の処理時間が計測できます。 ti…

neovimでpython3のエラーに遭遇

概要 結果としてはpython3のバージョンを上げてしまったのでエラーがでてたので対応したというものです。 起動時のエラー内容 ERROR: Failed to run healthcheck for "denite" plugin. Exception: function health#check[21]..health#denite#check[3]..<SNR>211_c</snr>…

ghq list の 代替案

イントロ 普段 ghqとfzfを使ってリポジトリの切り替えをしています。 とても便利なのですが、最近、かなりもっさりしてきて遅いので改善を考えてみました。 改善方法 ボトルネックとしてはghq listがとても遅くなっていました。 簡易改善 ghq root 配下のデ…

rake release で エラーがでた

gem

イントロ 以前の記事でembed_callbacksを作成したと取り上げたのですが、 その中でRubyGemsでユーザ登録に失敗してたのですが、 サポートの人に対応していただきメールアドレスを変更していただきました。 これでやっと登録できるなと思って登録してみたので…

embed_callbacksに機能追加した

概要 前回の記事でembed_callbacksというgemを紹介しました。 こちらの機能を追加したので紹介していきます。 追加した機能 メソッドがエラーになったときに処理を呼び出せる メソッドエラーになっても呼び出せる rescue これはその名の通りでrescueを設定す…

メソッドにcallbackを追加するgemをつくってみた

概要 以前からgemを作ってみたいと思いつつ作れてなかったので作成してみました。 methodにcallbackを追加するembed_callbacksというgemを作成しました。 探すと似たようなgemが出てくるので車輪の再発明的なものになりますが作成してみました. gemの機能 ま…

fzfをつかってRailsのmigrationを実行しやすくする

イントロ Railsのmigationを実行する機会はそこまで多くはないと思うのですが、 generateしてつくったあとにVERSIONの選択が意外と面倒だったりします。 以前の記事 hotoolong.hatenablog.com でgit statusをfzfのpreviewやbindを使って操作しやすくしました…

brewのformulaアップグレード時の依存関係のアップグレードによる弊害に対応する

イントロ googlerをアップグレードしたところopensslのバージョンがあがって 他のツールが壊れてしまったのを戻す作業をした履歴です。 困ってる人の役に当てればと思います。 エラーと調査 ことの始まりは $ brew upgrade googler googlerの新しいバージョ…

RailsのRubyバージョンを2.7.0から2.7.1に上げる

いつものようにRailsのRubyバージョンを上げていこうかと思います。 まずはruby-buildの最新化します。 $ brew upgrade ruby-build rubyをrbenvで管理しているのでrbenvで2.7.1をビルドします。 $ rbenv install 2.7.1 Rails root の.ruby-version を 2.7.1 …

ghコマンドとfzfコマンドのbind、previewを使って開発フローを見直す

概要 よく利用するコマンドが洗練されている方がいいのですが、 時間をかけて修正する大変でなかなか重い腰が上がらないです。 基本的にGitHubを使っての開発が多いのですが、 コマンドライン(以下CLI)とブラウザの行き来が多いです。 pecoを使っていたので…

続 iTerm2でHexコードを送ってfishでCmd+[とCmd+]をディレクトリの戻る進むに対応させる

概要 以前の記事でfishのbindを利用して対応しました。 このbindによってペーストが壊れてしまい対応が難しいとわかったので 別の方法でiTerm2を使って対応しました。 経緯 [github.com ここで貼り付けた文字列が壊れると質問したのですが bind \e\[ 'do som…

fishでCmd+[とCmd+]を使って移動したディレクトリに移動する

こちら記事を書いたのですが、設定するとペーストが壊れてしまう事象が発生してしまいました。 事象が解消してから設定することをおすすめします。 概要 Macでブラウザの戻る進むを Cmd+[ と Cmd+] で行うのと同じように Slackのチャネルの戻る進むを Cmd+[ …

Qiitaの記事をmarkdownファイルで保存する

概要 Qiitaの退会がいて既にみれなくなっている記事もあるかと思いますが、 ストックしてたい記事がなくなるととても残念です。 まだ公開されているものはlocalに保存しておくのも手ではないでしょうか。 やりかた qiita.com こちらを参考にして保存したい記…

コロナウイルスはどれくらい小さいの?

概要 技術的な話では全く無いのですが 以前から少し気になっていたコロナウイルスの大きさに関してブログにしてみました。 興味のある人は読んでいただきたいです。 大きさの比較 実際にμm(マイクロメートル)やnm(ナノメートル)という単位が出てきますが、 1…

Railsのescape_javascriptの脆弱性対応を適応する

概要 Railsのバージョンが6.0.2.2に上がっています。 weblog.rubyonrails.org CVE-2020-5267 の脆弱性が含まれていました。 詳細はこちらを確認することでできます. github.com 適応 Rails6.0.2.1を使っていたため Gemfileを変更して 6.0.2.1を6.0.2.2に変更…

Qiitaのユーザページに読んだ記事の項目が追加されたけど取りやめられたことに関して

私のQiita Twiiterでいろいろ炎上してますが、 私の表示も確認してみました。 読んだ記事あり 全然記事は書いてないのですが、 読んだ記事だけ見るとVim,Ruby,Railsの人みたいですね。 blog.qiita.com Qiitaからの通知があり、読んだ記事は一旦非公開になっ…

fishファイルのfiletypeをneovim(vim)で認識させてコメントするのを簡単にする

こちらはvim-fishのプラグインを追加することで正しく認識できるようです。 github.com こちらをインストールしてください。 以下は参考程度に見てください neovimでfishファイルを開いたときにコメントしたい行があったのですが、 適応されなかったので無理…

fish shell で rbenvに対応させる

Ruby 2.7.0 がリリースされて まだインストールしてなかったので久しぶりにRubyをインストールしてみました。 rbenv install 2.7.0 rbenvでインストールしたのですが $ rbenv local 2.7.0 $ ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwi…

Slackのリマインダーを設定する

Slackのリマインダーの日付設定などをよく忘れてしまします。 slack.com こちらの記載されてはいるのですが、 /remind [#channel|@who] [message] [when] のような構成になっていますが、 whenをどうすべきか 毎月25日の10時と設定したい場合 at 10:00 on ev…

GitHubを操作するコマンドラインツール gh を試してみた

イントロ GitHub 社が公式 cli 作ってる。hub との違いはどうなんだろ。 #golang 製。 / “GitHub - cli/cli: the GitHub CLI” https://t.co/ul0xxXaerO— mattn (@mattn_jp) February 13, 2020 mattnさんがつぶやいていたのをみて ghコマンド便利そうなので使…