patorashのブログ

方向性はまだない

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勉強会が開催されました。 そんなに間が空いてたかな…と思ったけれど、確かに空いてた。 今回は、登壇者として申し込んでいました。 自分の発表 追記 資料を作るに当たって 他の発表について パズルで学…

docker-composeでseleniumを使っている際のCapybaraの設定について

以前にこんな記事を書きました。 patorash.hatenablog.com 今回はこれの続きみたいなものです。 まだCircleCIでのテスト実行まで至らず、ローカルでテストが全部通ることを目標に調整中です。 featurespec以外のテストは完走したので、問題はfeaturespecのみ…

Railsでfavicon.icoがないと言われるケースへの対応

時々発生していた原因不明のfavicon.icoがないと言われるケース…。favicon_link_tagは使っているのでおかしい!と思いつつ、いつか調べようと思っていたら、Seleniumがめちゃくちゃ大量のエラーを出し始めたので慌てて調査開始。 favicon_link_tag について …

Macで開発環境のDocker化に取り組んでいるので一旦まとめる

MacでRailsアプリを開発しているとなぜかセグメンテーション違反が起きまくって開発に支障が出てきたので、開発環境を全部Dockerに載せてしまおうと思ってここ2週間くらい取り組んでいます。 とりあえず、CircleCIのテスト以外はちゃんと動くようになったか…

MacのRails開発環境でやっぱりセグメンテーション違反起きた

以前にこういう記事を書きました。 patorash.hatenablog.com しかし、PostgreSQLではセグメンテーション違反は起きなくなったのですが、Redisに接続する箇所で起きるようになったので、抜本的な問題解決にはなりませんでした。 ということで、私の中でMacでR…

pgのバージョンを0.21.0にしたらセグメンテーション違反が起きなくなった

少し前に、Railsを起動するとセグメンテーション違反が起きたが、原因がわかった的な記事を書いてた。 patorash.hatenablog.com これで落ち着いたかと思いきや、全然落ち着いておらず、またもやセグメンテーション違反が起きた。シングルプロセスでアクセス…

Rails 6のCredentials方式をRails 5.2にバックポートした

私が担当している製品の機密情報の管理は、Rails 5.1で導入されたEncrypted Secrets(secrets.yml.encを使う方式)を使っていて、5.2になって導入されたCredentials方式の導入は見送っていました。 理由は、5.2のCredentials方式だと、各環境毎の設定が行えな…

Macでrails起動時に発生したセグメンテーション違反の原因がわかった

過去に、こんな記事を書いていました。 patorash.hatenablog.com ずっと騙し騙し、gemの再インストールをしながら使っていたのですが、いよいよresqueがまともに動かないときが頻発したので、ちゃんと調査を開始。 ちなみにこの記事を書いている時点での私の…

Hyper-VでAmazon Linux 2を入れる

勉強のために仮想環境を準備しようと思い、Hyper-VでAmazon Linux 2をインストールしてみたのでその備忘録を記します。 目次 目次 イメージをダウンロード seed.iso 起動ディスクを作成する meta-dataの設定を行う ネットワークの設定を調べる meta-dataを記…

2019年を振り返る

年が変わる前に振り返りをしておこうと思う。 今年は育児休暇が終わって復職してから、様々なことに取り組んだ。 技術的な取り組みはそんなに尖ったものはなかったが、GraphQLとOAuth2の勉強やgemを使った実装をやったりなど。 私はマネージャーではないので…

岡山市周辺の公園・施設を紹介する

この記事は大都会岡山 Advent Calendar 2019の7日目です。 adventar.org 公園・施設を紹介 子供が生まれてから、子供が遊べる公園・施設に行くことが増えているので、今回はそれをまとめてみようかなと思います。順番は、思い出した順です。 サウスヴィレッジ…

合同勉強会 in 大都会岡山で発表してきた

毎年恒例の合同勉強会に参加してきました。今回は発表者としての参加です。 イベントのサイトはこちら。 gbdaitokai.connpass.com 自分の発表内容について 今回は『RailsアプリにGraqhQLを導入してみた話』というタイトルで発表してきました。スライドはこち…

仕事の説明書読書会11回目のまとめ(最終回)

仕事の説明書〜あなたは今どんなゲームをしているのか〜作者: 田宮直人,西山悠太朗,パブリック・ブレイン出版社/メーカー: 土日出版発売日: 2019/07/08メディア: 単行本この商品を含むブログを見る 前回はこちら。 patorash.hatenablog.com 今回で最後だった…

仕事の説明書読書会10回目のまとめ

仕事の説明書〜あなたは今どんなゲームをしているのか〜作者: 田宮直人,西山悠太朗,パブリック・ブレイン出版社/メーカー: 土日出版発売日: 2019/07/08メディア: 単行本この商品を含むブログを見る 前回の記事はこちら。 patorash.hatenablog.com ちなみに私…