patorashのブログ

方向性はまだない

後輩との1on1で話したことをまとめておく

1on1というか、今後どうしていきたいか等を話し合っている。継続的に話し合っていくので、まぁ1on1になっていくのかなとも思う。 「一人前」を定義する 目標がめちゃくちゃザックリとしていて、「一人前になる」というものなので、まずは一人前の定義を二人…

Rails 5.2.3から5.2.4.3に更新したらActiveStorageでエラー発生した

社内のRailsアプリのバージョンアップを行ってテストを実行したところ、システムテストが通らなくなりました。 ArgumentError: unexpected value at params[:whitelist_headers] というエラーが出たので、ググったところ、RailsにPRが…。 github.com これはR…

zshでpecoを使って色々

zsh

fishからzshに移行したのですが、便利に使っていた関数を移植し忘れていたのでzsh版を作ってgistで公開しておきます。 pecoでhistory選択 pecoでSSH pecoとghqでリポジトリ移動 pecoでgit switch pecoでgitのブランチを削除 pecoでkill zsh functions

herokuでjemallocのbuildpackの新しいバージョンが出ていた

過去にこのような記事を書いていました。 patorash.hatenablog.com この記事を見返しながら、他のHerokuアプリケーションにもjemallocのbuildpackを適用しようと思ってたのですが、なんとなくbuildpackのページに移動したところ、メンテナンス停止になってい…

activerecord-importの削除は難しい

Rails6にしたので、insert_allメソッドが使えるようになったので、意気揚々とgem activerecord-importを削除しようと修正していってたのだけれど、思ったより難しそうだったので、一旦止めることにした。 activerecord-importの削除が難しい理由 recursiveオ…

PaperclipがImageMagickのデフォルト設定の影響で動かなくなったのを直した

昨日、Macのセットアップが終わったという話をしました。 patorash.hatenablog.com そして、Docker立ち上げて作業後にrspecを流したら、全然関係ないところがエラーで落ちるじゃないですか… pryで止めて、@model.errorsを出力してみると… @details={:report=…

会社のMacを初期化してセットアップし直した

ただの日記です。 ずっとMacの調子が悪くて、よくbundle installに失敗するようになって、その原因もわからなくて、そのため、開発環境のDocker化などに踏み切って、それはそれで功を奏していた。 patorash.hatenablog.com 普段の開発環境なら、まぁそれでい…

昔に作ったgemのメンテを開始した

ただの日記です。 gemはいくつか作っているのだけれど、大体がRailsに関連するgemだったり、Railsでよく使われているgemの関連gemだったりする。 どれもあんまり使われているわけでもないのだけれど、自社サービスで使っているので、RubyやRailsのバージョン…

SprocketsをやめてWebpackerに移行したのでどうやったか公開する

ようやくSprocketsからWebpackerに移行したので、そのためにやったことをまとめておきます。 移行前の状態 Railsのバージョンは6.0系 Sprockets4 CoffeeScript Sass Bootstrap3を使用 yarnは使ってる 筆者(私)はECMAScriptに関してはそこまで詳しくなくて…

WSL2のUbuntuに環境構築の続き

ただのメモです。 postgresql-client, postgresql-contrib, libpq-devのインストールなど。 pyenvのインストール Python 2系のインストール Python 3系のインストール PythonをインストールしようとしてWARNIGが出たのでメモ。 obel.hatenablog.jp その後、…

WSL2のUbuntuに環境構築中

これはただの日記というかメモです。 WSL2のUbuntuに開発環境を作ってみようと思って作業中。 やったことをリストにします。 zshのセットアップ zplugを使ってみる goenvのインストール goのインストール ghqのインストール rbenvのインストール rubyのイン…

webpack実践入門を読んだ

先日子供を車に乗せるときに背中を痛めてしまってしんどいです 寝返りを打つのも痛いし、咳・クシャミしても痛い状態です。どうも「ぎっくり背中」というらしいです。 出かけるのもしんどかったため、家でゴロゴロしつつ、この本を読んでみました。 webpack …

Docker上でWebpackerがファイル変更を検知できない件に対応した

担当しているRailsプロジェクトのフロントエンド環境をSprocketsからWebpackerに移行しようとしていて、ここ最近辛い毎日です。 とりあえず、scssの移行は終わったので、今はCoffeeScriptのコードをできるだけそのままでWebpackerに乗っけようとしているので…

7年開発しているプロジェクトをRails6にアップグレードした

Railsのアップグレード作業は検証含めて非常に面倒なもので、結構遅れがちなのですが、どこかで気合い入れてやらなければなーと思い、エイヤッとやってやりました。Rails3からやってるプロジェクトなので負債もまだまだ多いですが、とりあえずメジャーバージ…

c3.jsのスタックバーチャートの表示順を変更する

c3.jsでスタックバーチャートを書いた際に、スタックバーの順番を変更できないか?という要望を受けたので調査しました。凡例の順番とツールチップで表示される順番がリンクしていないので、見辛いということでした。 公式ドキュメントによると、data.order…

c3.jsでスタックバーチャートをパーセント表示にする

またまたc3.jsネタです。 c3.jsでスタックバーをするのは簡単で、そのスタックバーの軸を100%にするように表示するのも簡単です。dataのところでstack: { normalize: true }とすればできます。 しかし、それだとチャートは%表示になるのですが、ツールチップ…

c3.jsでスタックバーチャートのラベルを縦中央揃えにする

c3.jsでスタックバーチャートを描画するのは、比較的簡単です。dataのところでgroupsに含めてしまえばいいです。 しかし、値のラベルがバーの上に表示されてしまいます。これでもいいケースは多いと思いますが、ラベルの色がバーの色になるため、合わない色…

d3.js, c3.jsで描いたチャートを印刷する

d3.jsを皆さまはご存知でしょうか?data-driven-documentの頭文字をとって、d3.js。JavaScriptでsvgでチャートを書くためのライブラリです。 d3js.org そして、d3.jsをベースにチャートを生成しやすくしたライブラリがc3.js。 c3js.org c3.jsで描いたチャー…

LenovoのPCのバッテリー消費が激しいのは高速スタートアップが原因だった

現在は個人PCはLenovo L380 Yogaを使っているのですが、電源を切っているにも関わらず翌日起動したらバッテリーの残量が30%近く減っていて物凄く驚きました。しかし普通に使う分には結構バッテリーも持つので、バッテリーの不具合ではないだろうとは思ってい…

SwitchBotのキャンペーンに当選した

Twitterで行われていたSwitchBotのキャンペーンに申し込んでいたら、なんと当選してSwitchBotを送って頂きました! www.switchbot.jp うまく動かないケース 付けてみたんだけれど、ボタンが押しきれない…。 SwitchBotつけてみたのだが、あとちょっとが押し込…

gem doorkeeperの承認画面に遷移しない場合があった

gem doorkeeperで連携アプリケーションにログインをさせようとしたところ、認証後に権限の承認画面に遷移せずに普通に認証アプリケーションのログイン後の画面に遷移してしまいました。本来ならば、連携アプリケーションにログインしてほしいのに…。 原因 de…

GETメソッドのFormでの画面遷移をTurbolinksに委ねる

今作ってるアプリケーションではTurbolinksを効かせてて、かなりいい感じだな〜と思ってるのですが、一覧で検索した結果や表示件数を変更した場合に、ページの更新が発生してサクサク移動してたのに、ここでもたつくなぁ…と課題に感じていました。 なんとな…

WSL2 + DockerでRailsの変更を検知しないのを修正した。

表題の通りなのですが、ファイルの変更を行ってからブラウザをリロードしても変更が反映されませんでした。反映しなおすには、Railsサーバを再起動しなければならず、非常に面倒です。 調べたところ、Vagrantでの開発とかでも同様のことが起きたりしているぽ…

deviseで論理削除を実装するときの手順をまとめておく

新しいRailsアプリを作るたびにやっている気がするので、一旦まとめておこうと思います。 今回公開する手順は、削除済みのメールアドレスで再登録可能な論理削除の実装方法です。 Deviseとは? Deviseはアカウント認証管理のgemです。Webアプリケーションに…

gem buoysを使ってパンくずリストを作る

今ちょっと新しいRailsアプリを作っていて、そこでパンくずリストが欲しいなぁ〜と思ったので社内のチャットで「パンくずリストを作るためのgemのデファクトスタンダートってやっぱりgretelですか?」と聞いたところ、I18n対応できるbuoysというgemがあるの…

RailsでModelとDBの制約の検証をするときの方針について

弊社の若者のPRでコメントしたんだけれど、これは普通に記事にできるかなと思ったので転載する。 事の経緯 Modelでのバリデーション メリット デメリット データベースでのバリデーション(Unique制約, Not Null制約, Check制約等) メリット デメリット テ…

WSL2 + Docker Desktop for WindowsでDockerが動かない件を直した

Docker Desktop for WindowsならWSL IntegrationがあるのでWSL2でDockerが動くと聞いたのでやってみようとしたのですが、うんともすんとも言わないので、一旦WSL2のUbuntuをアンインストールして入れ直しました。 wsl2とdocker desktopの連携がうまくいかな…

CircleCIでdocker-composeを起動してテストを実行

ようやく、CircleCIにてdocker-composeを使ってテストを流して問題なく終了するようになったので、そのためにやったことを書いておきます。 これまでの経緯は過去の記事を参照のこと。 patorash.hatenablog.com patorash.hatenablog.com patorash.hatenablog…

docker-composeでseleniumを使っててChromeがクラッシュする際に対処法について

先日こんな記事を書いていました。 patorash.hatenablog.com この記事では、Capybaraの設定について取り上げていたのですが、CapybaraがInvalid session idのエラーを起こす原因については特定できていませんでした。おそらくメモリが不足しているから、とい…

第22回岡山Ruby,Ruby on Rails勉強会で登壇してきた

昨日になりますが、約2年ぶりに岡山Ruby,Ruby on Rails勉強会が開催されました。 そんなに間が空いてたかな…と思ったけれど、確かに空いてた。 今回は、登壇者として申し込んでいました。 自分の発表 追記 資料を作るに当たって 他の発表について パズルで学…