hotoolong's blog

RailsやVim、業務で気になったことを綴ってます

誤って git reset --hard HEAD^ してしまったので取り消したい

Git

表題通り git reset --hard HEAD^ を取り消したくなったので調べてみました。 以下のreflogコマンドで実行履歴を確認できます。 git reflog -n 5 戻したい場所を確認して、以下のコマンドで指定します。 HEAD@{1}に戻す場合は以下の通り git reset --hard "H…

今更ながら「20年目のRubyの真実」を読んだ

2015年の話なんですね。 ちょっと長いですが楽しく読めました。 個人的に以下が面白かったです。 驚き最小の法則が逆にめんどくさい 次の言語来てほしいけど誰も載ってこない Rails、Rubygemsなどのコミュニティが果たす影響はすごく大きい プロモーションが…

CIでbundle install するときには --clean をつけると無駄にキャッシュされない

タイトルどおりなのですが、 目からウロコだったので、メモとして残しておきます。 Circle CI 2.0 でstore_cache、 restore_cache を使って、Bundler の gem をキャッシュしていたので、 とても参考になります。 ローカル環境でも --clean を付けてもいいの…

MySQLのgroup_concatをつかって複数の項目を1行に並べる

1対多のテーブル構成を多になっているテーブルの情報をgroup_concatを使って表示したくなるケースがあったのですが、 単純に1カラムのデータだけを表示する場合はそのまま使えばいいのですが、 複数を一気に選択することができず、副問合せして取得しました…

Capybaraでselect時に同じ名称のvalueがありエラーになってしまう

RspecでCapybaraのテストをしてたのですが、 select '東京都', from: '都道府県' と記載している箇所で Capybara::Ambiguous: Ambiguous match, found 2 elements matching visible option "東京都" within #<Capybara::Node::Element tag="select" path="/html/body/div/div/div[3]/div[2]/div/div/form/div[8]/select"> のようなエラーが出てしまいました。 FactoryBot</capybara::node::element>…

imagemagickのエラーでRspecが落ちる

Rspecに画像アップロードのテストが含まれているのですが、 軒並みバリデーションエラーになってました。 ActiveRecord::RecordInvalid: バリデーションに失敗しました。 プロフィール画像MiniMagickがファイルを処理できませんでした。画像を確認してくださ…

Slackのバージョンアップ情報が面白い

女の人が書いたんですかね。 記述の端々の言葉遣いに好感が持てます。 面白い取り組みですね。

awscli再インストール時のエラー対応

前回の記事でbrewでpythonを入れ直したのが影響なのか、awsコマンドが使えなくなりました。 /usr/local/bin/aws: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory というエラーが出ていました。pipでコマンド確認したとこ…

MySQLでユーザ定義変数とcountを組み合わせて失敗した

MySQLでユーザ定義変数を使っていたときのお話です。 ユーザ情報に紐づくアカウント数に合わせて出力する形式を変更して解析しようとしてたのですが、 MySQLのユーザー定義変数をcase文で判断させようとしたところ挙動がおかしくなってしまいました。 ユーザ…

Amazon Musicが固まる

仕事しながらAmazon Musicで音楽聞いていますが、 MacBook Proで会社と自宅を行き来してるとスリープ起動、スリープ起動を繰り返すことになります。 なぜかCPUを食って固まることになってしまいます。 バージョンは以下の6.3.4.1269です。 随分前のバージョ…

brew install で Warning: python is outdated になり、nvimでWarningが発生する

Macでgawkのインストールを行いたくなり brew install gawk したときに ==> Deleted Formulae python3 ✔ llvm@3.8 mal4s mimetic nazghul picolisp ufoai voltdb ==> Processing python3 formula rename to python ==> Unlinking python3 ==> Temporarily un…

neovim(nvim)でescの効きが悪いと思ったらtmuxの設定が影響していた

お題の通りですが、 以前からvimのInsert mode から抜けるのがすこし待つのが煩わしいと感じしていたのですが 何が原因でそのような症状になっているのかわかっていなかったのですが、 tmuxの影響だとわかりました。 tmuxのescape-timeがdetfault 500msにな…

vimのxpは有効にしたいけどxでコピーは無効にしたい

Vim

かなり久しぶりのブログになりました。 ブログやめようかと思っていたのですが、続けることにしました。 どこまで続くのかわかりませんがよろしくお願いします。 日頃からvimというかneovimを使っています。 init.vimには set clipboard+=unnamedplus クリッ…

Re:dashをAWSに構築してみた

最近まであまりRe:dashのことを認識してなかったけど、結構使われてるのですね。 会社で入れてみたら?という話になり、構築してみました。 Qiitaなどの過去記事が散乱してるので、、 古いAMIから作ってしまったりしてしまったけど、 結局はhelpから探して最…

fishシェルでnvmをインストールするときにはomfで

あっと言う間に4月ですね。 ブログに書いてなかったのですが、転職しまして4月からスタートアップ企業で働くことになりました。 最近すこし怠けてるので、新しい会社で少し不安です。 それはさておき、 fishシェルにして初めてnvm をインストールして少しハ…

rails server の 引数備忘録

気づけばもう3月ひな祭りですね。 デバックのため、ステージングのサーバを手で上げたくなったときに引数がわからなくなったので ほぼドキュメントなのですが、備忘録として残しておきます。 rbenv exec bundle exec rails s -e staging -p 8080 みたいにし…

多段sshで踏み台サーバのドメインが同一の場合のssh confの書き方

ssh

本題通りですが、 特定のドメインへのsshを踏み台サーバ経由が必要になった場合 毎回踏み台サーバにsshするのは嫌気が差すのでsshconfigにまとめて記載する方法になります。 以下のように 踏み台サーバをHostに別名をつけてあげて踏み台の先のサーバのドメイ…

Mac でスクリーンショットを撮る方法

Mac

タイトルそのままなのだけど、よく忘れる。 全然定着しないので備忘録。 画面全体が shift + command (⌘) + 3 選択部分が shift + command (⌘) + 4 support.apple.com

GoogleスプレットシートにGoogleアナリティクスのリアルタイムアクティブユーザー数を日別シートに書き出す

最近までちゃんとスプレットシートを活用してなかったのですが 、APIで呼び出しできるとアプリ同士で連携すると結構色々できて便利ですね。 まずはリアルタイムアクティブユーザーを取得するためのスプレットシートを作成します。 メニューから ツール > ス…

「⌘英かな」でキー設定をカスタマイズ

USキーボードを使っていると 英数、ひらがなの変換がキー配置になくて少し苦労しますね。 Ctr-Spaceでも切り替えることができるのですが、 少しタイムラグがあって作業が中断してしまいます。 Karabiner というソフトがあったのですがmacOS Sierra になって…

iTerm2越しにコマンドラインの単語で戻る進むのショートカットを追加する

新しいMacを構築中です。 気づいたことをメモっておこうかと思っています。 bashなどのコマンドラインでEsc+f Esc+b で単語移動できますが、 押しづらいのでiTerm2で接続するときに Command+f と Command+b に置き換えています。 iTerm2のPreferences > Keys…

Accept: */*; で MissingTemplateになってしまうのを防ぐ

topページヘのアクセスでたまに変なExceptionが出てたのです。 ActionView::MissingTemplate (Missing template pages/top, application/top with {:locale=>[:ja], :formats=>["*/*;"], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :slim, :c…

新しいMacBook Proを買いました。

Mac

新年あけましておめでとうございます。 しばらくブログを書けていなかったのですが、 気づけば2016年も終わり2017年になってしまいました。 早いものです。 年末に頼んでいたMacBook Proが届きました。 www.apple.com まだ使い始めてセットアップなどしてる…

Windows、Linux、Macで開発している場合のGitの改行コード

Git

Gitで管理してるファイルの改行コードが混在してないですか? いままではnkfを使って改行コードをLFに直したりしてたのですが、 Git側でLFになおしてくれる設定がありました。 なんてこった。。いままで無駄なことして履歴を汚してたなんて、、 core.autocrl…

単一の文字列中から文字列を探すときは正規表現は使わない

文字列から文字列を探すときには正規表現をよく使ってしまいます。 Effective Rubyには =~ などのPerl風機能を避けようということが書かれています。 RuboCopでは逆に=~を使うように促されてしまってなんのこっちゃと思っていたのですが、 ruby-style-guide…

Unite.vimの履歴を使う

Vim

最近、特定のリクエストで Railsのformatsの値が/;に置き換わってしまってMissing templateになるという事例に悩まされています。 原因がいまいちよくわからず。。知ってる人がいれば教えて下さい。 本題ですが、 以前からUnite.vimの履歴があればいいなと思…

シェルで前回使った引数を使う

最近、itamae, serverspecと格闘中です。 production, stagingでうまく切り替えてroleの管理ができないか。 なんて考え中です。うまいことできないかしら。。 本題ですがzshなどを使っているケースで gd aaa bbb ga aaa bbb ※gdはgit diff , ga は git addの…

Macのバックスラッシュ

最近Swiftをすこしかじり始めたのですが、 playgroundからprintで出力しようとしたのですが いままでMacでバックスラッシュを打ったことがないことに気づき、少しハマったのでメモをば var msg: String = "hello world" let s: String = "hoge" print("msg: …

dotinstallのプレミアム会員の料金改定

いつもお世話になっているドットインストールのプレミアム会員の価格が改定されるそうです。 月額880円から980円になるそうで、4月からの適応だそうですので迷っていたかたは今かもです。 『ドットインストール』公式ブログ — プレミアムサービスの価格を改…

Rails4.2でlike句のサニタイズをする

2016年はじまってもう2月になってしまいました。 遅ればせながら、あけましておめでとうございます。 昨年から相当ハードなスケジュールでなかなかブログが書けてないですが、 今年はもう少し書く時間を確保したいところ。 頑張ります。。 今日のお題は SQL…