patorashのブログ

方向性はまだない

RubyでUTF-8のCSVをExcelに変換するコマンドを作った

お客様や社内の他の部署のメンバーとファイルのやりとりをすることってあると思うのですが、いつも大変なのが、CSVファイル。HerokuのDataclipsがバージョンアップされてExcel形式でダウンロードできなくなったので、仕方なくCSVでダウンロードして、Excel起…

WindowsでChromeが遅かったのはWindows Update(1803)が原因だった

Windows10のChromeで、はてなブログがとてつもなく重くなって大体見られない件で私は数か月ほど疲弊していました。そのため、WindowsではEdgeを使っていました。別にEdgeも悪くはないのですが、Chromeのほうが拡張機能を色々入れていて使いやすいのでやっぱ…

VSCodeのRemote Developmentプラグイン登場

このGWで最高のWindowsでの開発環境を作るんだ!と息巻いておりましたが、MicrosoftさんがVSCodeのRemote Developmentプラグインを発表しました。正直なところ、以下のブログを読んでいただければもう話は終わりです。 crieit.net 連休最後なのでとりあえず…

Vagrant + Hyper-V + Ubuntu18.04でRailsを動かせた

ずっとWindowsでの開発環境構築を試しているのですが、とりあえずベストではないにしてもベターまで来たかなと思うのでメモを残します。過去のトラブルはこちら。 patorash.hatenablog.com patorash.hatenablog.com なお、Hyper-Vを使わずにVirtualBoxを使う…

RubyKaigi2019に参加してきた

元号が令和になりました。GW楽しんでいますでしょうか? さて、10日以上過ぎてしまいましたが、4月18日~20日に福岡で開催されたRubyKaigi2019に参加してきましたのでそのことについて書こうと思います。 弊社からは私を含む3名が参加しまして、岡山から車で…

続・WindowsのVagrantでフォルダ共有でハマったのでメモ

先日、WindowsのVagrantのフォルダ共有でハマったのでメモ、という記事を書きました。 patorash.hatenablog.com この時に、SMBでフォルダ共有をする際にipconfigで取得したIPをsmb_hostに設定すると書いていたのですが、PCを再起動したらこのIPが変わってし…

WindowsのVagrantでフォルダ共有でハマったのでメモ

Windowsで開発環境構築をしようとしていていろいろ模索中。 VagrantでUbuntuを入れてフォルダ共有で作業しやすくしようと思って色々試したのだけれど、かなり四苦八苦したのでメモを残す。 なお、VagrantのプロバイダはHyper-Vで入れてる。 NFSでファイル共…

ActiveRecordのmodel名が〜Typeで終わるものをgraphql-rubyで扱う

なかなか情報がなかったので、書いときます。 model名が◯◯Typeで終わることって、ままあるのかなと思います。CompanyモデルとCompanyTypeモデルのような感じで。これをGraphQLでTypeを定義しようとすると、Types::CompanyTypeとTypes::CompanyTypeTypeになっ…

GraphQLのスキーマ情報からドキュメントを生成する

漠然と考えていたことが既に書かれていたので、非常に参考になったし面白かった。 developer.kaizenplatform.com GraphQL APIの設計を中心にフロントエンド、バックエンドをそれぞれ作っていくと、それぞれの実装待ちが発生しなくてよい。しかもAPI仕様のド…

プロジェクト配下のnodeのコマンドを実行する

Rubyでいうところのbundle exec 〜に該当するNodeのコマンドってなんだろう?と思って雑に呟いたら、色々と教えてもらえました。 npx とか npm install --global とかあります— りんごガチアサリをXにした (@mstssk) 2019年4月2日 npxがいやだったらyarn run…

GraphQLでWebAPIを作っている

自分が担当のプロダクトのWebAPIを整理していかんとほんまヤバいなぁ〜と思いつつ、数年過ごしていましたが、ここ最近で急激にGraphQL熱が湧き上がり、今お試しで実装していってる最中です。 ビビッときたのは、@gfxさんの書かれたGraphQL徹底入門の記事から…

CircleCIでエラーコードを無視して処理する

CI

昨日書いてたやつで、rake releaseが実行されないパターンにあうとどうもエラーで落ちることがわかった。 grepの条件に該当しなかったのでエラーコードが1になっているんだが、それがダメらしい。 しゃーないから最後の行でexit 0を返すようにしてみたんだけ…

CircleCIのテストが通ったらrake releaseする

CI

前回の記事で、TravisCIからCircleCIに移行したことを書いた。 patorash.hatenablog.com 今回は、テストが通ったら自動的にrake releaseする仕組みを作ったので、それについて書く。 ただし、今回のやつは結構面倒であった。 gemをリリースするorbsは既にあ…

gemのCIをTravisCIからCircleCIに変更した

gem imyouのCIをTravisCIからCircleCIに変更した。 理由は単純で、普段からCircleCIを使っているので、CIの構築がやりやすいから。TravisCIは滅多に使わないのでわからなくなることが多く、それがストレスだった。他のgemもCircleCIに変更していこうと思うが…

WSL + Docker for WindowsでRailsアプリを動かしたが遅すぎた

これはノウハウとかじゃなくてただの日記。 この前久々にLenovoのPCを触れたので、Docker for Windowsの設定をして、WSLでdocker-compose upできて喜んでいたが、Railsアプリを起動するところまで時間が取れなかった。昨日ようやく少し時間が取れたのでやっ…

ルーターをIPv6対応のものに交換した

我が家ではルータにTimeCupsuleを使っていたのだが、これがフレッツのIPv6に対応していないせいで、NTT西日本のClub NTT-WESTのポイント交換がうまくいかないというここ数年の悩みがあった。 話はさかのぼること数年前。 Club NTT WESTはフレッツを使ってい…

CircleCIにreviewdogを飼うことにした。

Rubocopを一応入れているのに、滅多に動かしてなくてあんまり意味を成していなかった。issueにずっとあったCIにRubocopを取り入れるというやつに着手しようと思ってようやく取り組み始めた。 reviewdogを知る CircleCIのワークフローにRubocopのチェックを入…

Amazon Linux 1でImageMagick6系の最新版を入れる

gem rmagick 3.0.0を入れようとしたら、bundle installのときにImageMagickのバージョンが古いという理由で落ちました。というわけで、ImageMagickのアップデートやります! qiita.com ここに書かれてることをやれば概ね大丈夫かと思いますが、最初CentOS6系…

Amazon Linux 1にPostgreSQL 11をインストールする

まず、PostgreSQLのyumリポジトリを追加します。 参照先は以下。 yum.postgresql.org Amazon Linux 1はRedHat Enterprise Linux6互換(?)のため、そのURLをコピーして追加します。そのあと、/etc/yum.repos.d/pgdg-11-redhat.repoに記載されているURLをsedで…

database.ymlのschema_search_pathにpublicを書いたらあかん

PostgreSQL 11にアップデートしようとしていたときに起きました。 docker imageを11に変更して、CircleCIでテストを流そうとしたところ、bin/rake db:structure:loadで失敗しました。 psql:/home/circleci/workspace/db/structure.sql:15: ERROR: schema "pu…

CircleCI ユーザーコミュニティミートアップにリモート参加した

CI

3/5にあったCircleCIのミートアップにリモートで参加させてもらいました。 イベントのConnpassはこちら。 circleci.connpass.com ちょうどCircleCIをPerformancePlanに移行したりしていたので、CircleCI Japanの方からZoomで参加しませんか?とtwitterのDMで…

Ruby2.6の関数合成で遊んでみた

Ruby 2.6が出て2ヶ月が経過しているものの、まだ触ってなかったので新機能を調べていたら、関数合成ができるようになっていたのを知った。 techlife.cookpad.com これを使えば多少の加工だったらmapを2周したりしなくて済むんじゃないか?と思って実験してみ…

1つのspecファイルをparallel_testsで並列処理する方法

parallel_testsでテストの並列化していくのが好きなのですが、まだまだ課題に思っていたことがありました。それは、テスト対象ファイルがCPUコア数より少ない場合、フルに並列化できないこと…。 つまり、CPUコア数が4つで、テスト対象ファイルが1つの場合、1…

Capybara3にアップデートしたらハマったことをまとめる

長いことCapybara2系を使っていた。ようやくCapybara3系にアップデートする暇が取れたので作業に着手したら、めっちゃテスト落ちた…。ので、その原因と対策を書いていく。 whitespaceが含まれるようになった。 以下のブログ記事にも書かれていますが、半角ス…

CircleCIをPerformance Planに移行した

CI

会社で使っているCircleCIをPerformance Planに移行しました。 きっかけは以下のブログを読んだことでした。 moneyforward.com 弊社でのCIの課題 弊社ではMoney Forwardさんほどの並列数ではないんですが、16コンテナ契約していて、大きいプロジェクトでは8…

「はじめてのフロントエンド開発」を写経した(React Native以外)

React、Angular、Vue.js、React Nativeを使って学ぶ はじめてのフロントエンド開発作者: 原一浩,taisa,小松大輔,永井孝,池内孝啓,新井正貴,橋本安司,日野洋一郎出版社/メーカー: 技術評論社発売日: 2018/05/09メディア: 単行本(ソフトカバー)この商品を含…

コンポーネント内でreCAPTCHAを使う場合の注意点

昨日Qiitaに書いたのですが、knockout.jsでreCAPTCHAのURLを貼ってデフォルトの動作に任せると、うまく動きませんでした。 qiita.com 原因はコンポーネントの中で使っているから、コンポーネントの描画が終わる前にreCAPTCHAのデフォルトのonloadイベントが…

CircleCIで前に落ちたテストを先に検証するWorkflowを組んだ

昨日、CircleCIで失敗したテストのファイル一覧を取得するという記事を書きました。 patorash.hatenablog.com 今度はそれを使って、CircleCIで前に落ちたテストを先に検証するワークフローを組みました。 こんな感じです。 CircleCIで再テストを先に行うワー…

CircleCIからテストが失敗したファイル一覧を取得するRails Runner作った

表題の通りですが、作りました。 CircleCIで失敗したテストをローカルで流したいのだけれど、わざわざCircleCIのページを見に行くのもあれだし、どうせならガバッと実行したいな〜と思ってCircleCI APIを叩いて取得できるんじゃないかな?と思って調査してみ…

fishのCommand Substitutionsは戻り値を1つと判断するので注意

fishでスクリプトの実行結果を複数渡そうとしたところ、うまく動きませんでした。bashでは動いたのに…。 # bash: Working!! bin/rspec $(bin/rails runner scripts/get_failed_spec_files.rb) # fish: Not working... bin/rspec (bin/rails runner scripts/g…