ソフトウェア開発

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 でダウンロードします(ユーザ登録が必要です)

yarn add してもそのディレクトリ配下にパッケージがインストールされない場合

前提 ndenv などで Node と npm を管理しており、その上で Yarn を入れている 結論 ユーザのルートディレクトリに package.json が何らかの理由で存在している*1。 補足 .zshrc にはこんな感じのを書き加えてます。 export PATH="$PATH:./node_modules/.bin"…

GitHub の Wiki を clone しようとしたら ユーザ名 と パスワード を求められたとき

結論 アドレスをコピペしたら https を git に変更する。 参考 Wiki の clone アドレスのコピー用文字列は https しかない 余談 他のリポジトリに Wiki を移転しようとする際は、移動先の Wiki でとりあえず Create してから push しないと怒られる*1。 *1:…

リモートの Git リポジトリからファイルを持ってきてそれをただ配置するだけの Capistrano を書く 

1. まずはインストール gem install でも bundle install でもよいのでまずはインストールします。 $ gem install capistrano 2. まずは初期化 初期化しましょう。 $ cap install mkdir -p config/deploy create config/deploy.rb create config/deploy/stag…

iOSアプリ設計ナイト に行ってきました

iOSアプリ設計ナイト これです。 メモ 以下、メモです。かなりの殴り書きです。

Monit で exec の引数を指定する際はダブルクォートでなければいけない(シングルクォートだとダメ)

結論 標題のとおりです。 ダメな例 check host "FOOBAR" with address 123.123.123.123 if failed url http://123.123.123.123/path/to/hogehoge.html timeout 10 seconds for 3 cycles then exec 'touch /tmp/failed.txt' else if succeeded then exec 'tou…

ngrok をバックグラウンドで動かす

ngrok ローカル開発環境のサーバ(ポート)宛に、グローバル環境からトンネルしてくれるサービスです。HTTPS で受けてくれるため、Webhooks の開発などに便利です。 バックグラウンドで動かす バックグラウンドで動かすためには、まず最初は $ ngrok HOGEHOG…

Ruby/Rails で Google Cloud Vision API を使う

Cloud Vision こちらです。 やれること(主なこと) 画像を投げると OCR でテキストに変換してくれる 画像を投げると「成人向けか否か」「暴力的か否か」などを判断してくれる 画像を投げると「自由の女神」「黒澤明」などその画像の内容にまつわる固有名詞…

Embulk の MySQL output plugin で UTC で書き込めずにハマった

概要 MySQL のあるカラムに UTC でデータを放り込みたい そのカラムの値は embulk preview では UTC で表示されている しかし MySQL output plugin で MySQL に放り込むと JST換算 に変わってしまっている なので MySQL output plugin の設定がおかしい 結論…

Mac の MySQL で(というか MySQL 8 で)認証時に Unable to load authentication plugin 'caching_sha2_password'. と怒られたとき(JDBC利用時)

結論 SQL で WITH mysql_native_password を使ってパスワードを定義する。 具体例 mysql> ALTER USER 'YOUR_USERNAME'@'YOUR_HOSTNAME' IDENTIFIED WITH mysql_native_password BY 'YOUR_PASSWORD'; 補足 Embulk の MySQL プラグインを使ったら遭遇しました*…

Powered by はてなブログ