ソフトウェア開発

Rails 5.1.1 で vendor/ 配下の画像ファイルが読み込まれないとき

はじめに 「なんで vendor/ 配下に、読み込むべき画像を置くんだよ」という意見、大変ごもっともだと思いますし私もそう思いますが、特例としてお読み下さい…… 環境 Railsは5.1.1 Rubyは2.4.1 vendor/配下の画像ファイルが読み込まれない 例えば、vendor/ass…

hub コマンド の pull-request の際にプルリクエスト先のブランチ名を指定する方法

結論 --bash オプションを用います。 例 現在のブランチから foobar_hogehoge ブランチに対してプルリクエストを出すものとします。 hub pull-request --base foobar_hogehoge 公式ドキュメント hub.github.com

hub コマンド の pull-request の際に Reviewers や Assignees を指定する方法

結論 Reviewers を指定するとき ここでは、foobar さんと hogefuga さんを Reviewers に指定するものとします。「複数人を指定する場合のカンマの前後」にスペースを空けてはいけません。 $ hub pull-request --reviewer foobar,hogefuga Assignees を指定す…

CircleCI で hubコマンド (GitHub CLI) をインストールする方法

結論 以下のような config.yml を書きます。 version: 2 jobs: build: docker: - image: circleci/ruby:2.6.5 working_directory: ~/repo steps: (省略) - run: name: Install hub command 2.13.0 command: | cd /tmp && wget https://github.com/github/h…

CircleCI で tarball から Golang をインストールする方法

結論 以下のような config.yml を書きます。 version: 2 jobs: build: docker: - image: circleci/ruby:2.6.5 working_directory: ~/repo steps: (省略) - run: name: Download Golang 1.13.4 command: | wget https://dl.google.com/go/go1.13.4.linux-am…

PostgreSQL に初期ログインする方法

結論 シェルのユーザを postgres に変更し、psql コマンドで入れる。 具体的な方法 $ sudo su postgres (ここでユーザはpostgresに変更された) $ psql psql (12.0 (Ubuntu 12.0-2.pgdg18.04+1)、サーバ 11.5 (Ubuntu 11.5-3.pgdg18.04+1)) "help"でヘルプ…

Ubuntu 18.04 で MySQL 8 で root パスワードを忘れたときの再設定方法

結論 1. 動いている MySQL を止めます $ sudo service mysql stop

CircleCI CLI を実行しても最新の更新内容で CI が実行されないとき

結論 コミットしていますか。 補足 ファイルを保存するだけではダメです。ただ、.circleci/config.yml はコミットしなくても大丈夫です。

setup-ruby という Actions を使って GitHub Actions にて複数バージョンの Ruby でテストする

setup-ruby という Actions とは 次のとおりです。 github.com 結論 実行するための最低限の YAML は以下のようになります*1。 on: [push] name: Try actions/setup-ruby jobs: build: runs-on: ubuntu-latest strategy: matrix: ruby: [ '2.4', '2.5', '2.6…

GitHub の Draft Pull Request 機能はパブリックリポジトリでないと使うことができない

Draft Pull Request 機能 とは こちらの公式ブログを参照して下さい。いわゆる WIP 状態で出すプルリクエストのことです。 github.blog gyazo.com Draft Pull Request 機能を使うための条件 パブリックリポジトリであること です*1。この認識が不十分だった…

デバッグを効率良く行うためにはエラーログを読む時間を意識的に長くする

実例 CI が通らなくてエラーが出ており、原因を探っていたのですが、いろいろな修正を行ってもうまく行かなかったことがありました。そしてふとある時にエラーメッセージを見直したところ、以下のようなエラーメッセージに気づきました。 exit 127 この終了…

Puppeteer で Basic認証の状態 や 保有している Cookies をクリアする方法

結論 browser.createIncognitoBrowserContext() を用いましょう。 具体例 const context = await browser.createIncognitoBrowserContext(); const page = await context.newPage(); await page.goto('https://www.hatena.ne.jp/'); 補足 Jest + Puppeteer …

Mac の Visual Studio Code で「エクスプローラー(ファイル一覧)」にフォーカスを移動するためのショートカットキー

結論 Shift (⇧) + command (⌘) + e フォーカスが「エクスプローラー」にある状態で上記のショートカットキーを押すと、フォーカスが「エディタ本体」に移動します 補足 「ターミナル」にフォーカスがあるときにこのショートカットキーを押しても「エクスプロ…

Mac の Visual Studio Code で「ターミナル」ウィンドウにフォーカスを移動するためのショートカットキー

結論 Shift (⇧) + control (^) + @ 補足 「すでにターミナルウィンドウが表示されているかどうか」によって、以下のように挙動が異なります。 「ターミナルウィンドウが表示されていない状態」 「ターミナルが表示され、フォーカスがターミナルウィンドウに…

GitHub Actions でキャッシュを利用する方法

結論 2019/10/03 現在、無い。*1 キャッシュがないことでどうなるか ライブラリのインストールで毎回長時間待たされる bundle install や yarn install で毎回5分以上待つことになり、辛さしか無い。 GitHub Actions のデバッグをするのに一回につき5分以上…

git clone の際に clone 先のディレクトリを指定する方法

結論 $ git clone https://github.com/rails/rails.git /tmp/foobar 注意点 上記の例だと、/tmp/foobar 直下に clone したファイルやディレクトリが展開されます。/tmp/foobar/rails 配下ではありません。 一方でディレクトリを指定しなかった場合は、リポジ…

Capybara + Headless Chrome (System Spec) で Basic認証 を通過する方法

結論 username と password のところは実際には環境変数を使ったほうがいいでしょう visit_with_http_auth root_path における root_path はアクセスしたいページの path を入れましょう require 'rails_helper' def visit_with_http_auth(path) username = …

RSpec で Headless Chrome を使う際に Chrome が Dev だったり Canary だったりする場合(安定版とは異なるバージョンの Chrome を使っている場合)の対処法

大原則 使用する Chrome に合った ChromeDriver を ダウンロード します。 合致するバージョンがない場合に以下を試します。 結論 エラーが出たときに出てくるエラーメッセージをよく読みます。 Webdrivers::VersionError: Unable to find latest point rele…

Ruby(RSpec)で ChromeDriver を実行しようとしても見つからないとき(インストール方法)

前提 以下は Mac かつ Ruby 環境を rbenv で構築している場合として書いています。 基本 まずは ChromeDriver を落とします。バージョンは最新のでよいです*1。 インストール ダウンロードして展開したファイルである chromedriver をどこに置くかが問題とな…

Visual Studio Code の デバッガ で Rails のデバッグをする

結論 1. 以下の二つの gem をインストールします ruby-debug-ide debase Gemfile に書く場合は development 環境の部分に書きます*1。 2. VSCode の デバッグメニュー で「歯車」アイコンをクリックし「環境の選択」から「Ruby」を選びます Ruby が選択肢に…

Visual Studio Code でリアルタイムに RuboCop の結果を表示する

必要なもの gem rubocop solargraph VSCode の拡張機能 ruby-rubocop Ruby Solargraph VSCode の設定方法 ruby-rubocop について 変更の必要なし Ruby Solargraph について Solargraph: Diagnostics の設定を true にする 動作確認をしてみる 下の画像はファ…

CircleCI CLI で 環境変数 を設定する方法

結論 —env オプションを使う。 $ circleci build .circleci/config.yml --env FOO=BAR やりがちなこと シェルの環境変数で設定してしまう(私もこれでハマりました)。これでは CircleCI の中での環境変数としての設定にはなりません。 $ echo $FOO BAR 補足…

GitHub で HTTPS を常時用いる方法

GitHub は HTTPS を推奨 GitHub の公式ドキュメントでは、SSH ではなく HTTPS を推奨しています。 Connecting over HTTPS (recommended) If you clone with HTTPS, you can cache your GitHub password in Git using a credential helper. どうするか 常時 H…

CircleCI で失敗しても次のStepに進む場合には when: always を書く(が、場所に注意)

結論 1. when: always を書く ある Step が失敗した場合でも次の Step に進みたい場合には when: always を書きます。 2. 書く場所 when: always を書く場所は、他の Step で失敗したとしても、何が何でも実行したい Step (たち)の中です*1。 3. 具体例 以…

Ubuntu 18.04 に PostgreSQL 11 をインストールする

apt では PostgreSQL 10 がインストールされる 現時点(2019/05/18)では apt でインストールすると以下のように 10 が入ります。

Ubuntu 18.04 に MySQL 8 をインストールする

結論 以下の手順に沿いましょう。

Git でユーザ情報を設定し忘れてコミットしてしまったのをコミットし直したい場合

状況 user.name や user.email が設定されていない 上記が設定されていない状況で commit してしまった user.name や user.email を慌てて設定したけど先ほどのコミットのユーザ情報は変わっていない 結論 ユーザ情報を設定した上で、以下のコマンドを実行し…

開発用の SMTPサーバ として MailCatcher が便利

MailCatcher とは これです。Ruby の gem です。 使い方 gem install mailcatcher した後に mailcatcher コマンドを実行すればよいだけです。デフォルトでデーモンとして動きます。 $ gem install mailcatcher $ mailcatcher これで http://localhost:1080 …

WordPress の REST API の Users エンドポイントにアクセスするためのブックマークレット

結論 WordPress Users API 中身のコード(Minify) 特に難しいことや技巧的なことはしていないです。 javascript:(function(){location.href = location.protocol + "//" + location.host + "/wp-json/wp/v2/users"})() 参考

Mac で複数のバージョンの Java を使い分ける(jenv を用いる)

概要 jenv を用います Java 自体は Oracle のサイトから dmg でダウンロードします(ユーザ登録が必要です)

Powered by はてなブログ