パパエンジニアのアウトプット帳

30歳に突入した1児のパパエンジニアのブログ

webpackのProvidePluginとresolve.aliasの使い分け

webpackのProvidePluginとresolve.aliasの使い分けがなんとなく分かったような気がするのでメモ。 vue.jsについて調べていた時に両方の書き方をした記事が引っかかってどっちでやったら良いか分からずモヤモヤしていた。 ProvidePlugin new webpack.ProvideP…

初gemを作成した

Logrageを利用していてActiveJobのログも出力したかったのでgemを作った。 github.com gem作成から公開までをやったのは初めてだったのですごくドキドキだったけど、やったみて良かった。 なんで作ったの? Logrageは下記のようにaction_controllerに対してL…

lambda(python)で定期的にAthenaのMSCK REPAIR TABLEを行う

Athenaを使うようにして、パーティションの更新を都度行うのが面倒だったので自動的に行われるようにした。 下記のようなlambda関数を作成して、Cloudwatchでcron式で定期実行ルールを設定した。 import boto3 client = boto3.client('athena') def lambda_h…

CloudFormationでElasticache for redisの設定をする

CloudFormationで非クラスターモード(マルチAZ)の構成を試してみた。 プライマリーノード:1、リードレプリカ:2の3ノード構成でプライベートなVPCに配置する想定。 最終的には下記の公式ドキュメントのサンプルオペレーションをCloudFormation対応した感じ…

CloudFormationのAWS::EC2::InstanceでNetworkInterfacesとSecurityGroupIdsは一緒に使えない

CloudFormationでEC2のインスタンスを作成しようとした時に下記のエラーが出てハマった。 Network interfaces and an instance-level security groups may not be specified on the same request 解決方法としては下記の通りNetworkInterfacesとSecurityGrou…

ActiveJob with sidekiqでリトライをしないようにする

非同期処理のど定番のsidekiq。 それをActiveJob経由で使っている場合は、sidekiq_optionsが使えないので細かな設定ができない。 今回、sidekiqにするにしたがってリトライは現時点では全てのジョブで不要なので、リトライしないようにしたかった。 結論とし…

Capybara::Poltergeist::StatusFailErrorが出たら

このエラーはローカルで Capybara::Poltergeist::Driver.new(app, js_errors: true, timeout: 1) のようにpoltergeistのtimeoutをすごく短くすると同様のエラーになる。 原因はassets compileに時間がかかっていてタイムアウトしている説らしい。 とりあえず…

Aurora MySQLのmax_connectionsの設定

テスト環境でrailsのdatabase.ymlのpool設定を本番に合わせたいが、Auroraの方のmax_connectionsが45になっていた。 これでは足りないので45より多くしたい。 まず、Auroraのmax_connectionsはインスタンスタイプでデフォルトが決まるような設定がされている…

logrotateを使ってローテションを行う

設定方法&確認 下記などを参考にした。 logrotateでログのローテーションをする - おもしろwebサービス開発日記 logrotate でデフォルト以外のフォーマットで日付ファイル名にしたいとき - Qiita こんな感じで設定してみた。 日次で前の日のログをローテート…

Macで特定のアプリにショートカットを割り当てた

下記のやつをやっただけなんだけど、開発とかでよく使うChrome,Terminal,RubyMineにショートカットを割り当てて一発でそのアプリをアクティブにできるようにした。 qiita.com あとウィンドウ操作系は下記のやつを職場の人に教えてもらったので、早速インスト…

今さらjquery-railsがcsrfトークンをいい感じにしてくれていたことを知った

RailsでPOSTなどするときはCSRFのチェックが行われるのでトークンを送る様にしないといけないのだけど、axiosとかで自分でajaxリクエスト投げる時はちゃんとcsrfトークンを付与しないと行けなくて面倒だなーと思っていた。 その時、そういえばなんでRailsでj…

Cloudfront,S3で307リダイレクトに苦しめられた

完全に下記のヤツなんだけど見つけるまですごくハマった。。。 miyasakura.hatenablog.com S3のcssファイルとかを直接参照するのではなくCloudfrontからのみ参照できる様にクラメソさんの下記の記事を見て色々設定を検証していたんだけど、なぜかcloudfront…

vue.jsでtable内でtemplateを使うとIEで効かない問題

原因は下記のissueで書かれている通りなんだけど https://github.com/vuejs/vue/issues/3028 The browser removes those elements before Vue can get access to them, because following the HTML spec, only thead, tbody and <tr> are allowed as direct chil</tr>…

powerline-shellをインストールする

下記を参考にしつつインストール。 linuxfan.info フォントのインストール git clone https://github.com/powerline/fonts.git --depth=1 cd fonts ./install.sh cd .. rm -rf fonts Macの標準ターミナルのフォント変更は下記がキャプチャ付きでわかりやすい…

zshに入門してみる

仕事でMBP使いになったので、今までbashで使っていたシェルをzshにしてみる。 インストールや設定などは下記を参考にした。 qiita.com これでインストールしたらすでにインストールしていたrbenvやtigが使えなかったので、色々調べてみると下記に当たるっぽ…

macOS High SierraにVirtualboxがインストール出来ない

新しいMavBook Proにvirtualboxをインストールしようと思ったらエラーでインストール出来なかったのでメモ。 事象はまさに下記のものだったので、その通りにSIPを無効にしたらインストール出来た。 samancha.com [2018/03/02追記] これ終わった後に有効化に…

最終出社日だった

大手と言っていい?(一応、一部上場企業)SIerを今日で退職した。 新卒から約9年程お世話になった。 転職の動機や転職活動についてなどはまた別の機会にまとめようと思う。 とりあえず、今日日付として記録に残すために。

Rails4.2から5.1へアップグレードした

お仕事で関わっているRailsアプリを4.2から5.1へアップグレードした。 もうRails4系から5系へのバージョンアップをやったブログとかかなりあるのでアレだが、 初めて自分もRailsのメジャーバージョンアップの対応をやったのでメモとして残そうと思う。 所感 …

【訂正】Rails5.1のconfig.load_defaultsを利用しているとconfig/initializers/new_framework_defaults.rbの値は上書きされない(activerecord-session_store利用時)

訂正しました (2017/10/18) どうやら、上書きされないのではなくて、下記の現象が起きていたようです。 [Rails]... | 日々雑記 まだどれが影響を与えているのかわかってないですが、他のRailsアプリだとちゃんと上書きされていました。。。 このアプリだけな…

Railsのinculudesについて

以前は普通にincludesを使っていたけど、includes(:books).references(:books)みたいに書くようになってからちょっと疑念を抱いていた。 そして、確かr7kamuraさんのamakanの実装についての記事でpreloadとかを使っていて、やっぱりpreloadやeager_loadを明…

cancancaでAbilityクラスにcurrent_user以外の引数を渡す方法

Cancan(Cancancan)使ってて、今までは下記みたいにuserさえあればよかったけど、ある時sessionのある値をAbilityクラスに渡したくなった。 class Ability include CanCan::Ability def initialize(user) ←(user, other_param)みたいにしたい! ・・・ end en…

react-railsとreact_on_railsについてのメモ

個人用の調べたことや思ったことメモ。 RailsでReactを利用するのに使われる2大Gem。 どちらもSSRに対応している。 webpackerでreactやるんではダメなん? webpacker:install:reactのこと。 やれなくはないと思う。 しかし、今回はSPAではなく一部分に導入(…

Railsのwebpackerでbin/webpack-dev-serverをした時にinvalid host headerになってしまう

Railsのwebpackerでbin/webpack-dev-serverをしてブラウザからアクセスするとinvalid host headerとJSのエラーになってしまった。 (Virtualboxに開発環境を作ってホストOSのブラウザからアクセスしている) とりあえず、下記の設定を入れてエラーを回避してい…

HerokuのRailsでnpm installをできるようにする

1. 下記の手順に従ってrubyとnodejsのビルドパックを追加する devcenter.heroku.com $ heroku buildpacks:add --index 1 heroku/nodejs Buildpack added. Next release on アプリ名 will use: 1. heroku/nodejs 2. heroku/ruby Run git push heroku master t…

Herokuのタイムゾーンを日本にする

Herokuのタイムゾーンを日本時間に設定する - アインシュタインの電話番号を参照 コマンド heroku config:set TZ=Asia/Tokyo

bitbucketにpushしたらherokuにもpushするようにする

まあ、下記のURLの通りにやるだけなんでけど。 超簡単なのでびっくり。pipeline便利。 Deploy to Heroku - Atlassian Documentation

herokuのDBをローカルのDB(Docker)にリストアする

1. herokuのDBのバックアップを取得する 下記のコマンドを実行。 heroku pg:backups capture --app アプリ名 2. herokuのDBのコンソール画面でバックアップしたファイルをダウンロード コマンドからでもできるみたいだけど、今回は画面から。 herokuのダッシ…

administrateでacts-as-taggable-onと連携できるようにする

最近、管理画面をadministrateで作ってみたが、 acts-as-taggable-onが設定されたモデルをうまく表示する方法が分からなかった。。 試行錯誤の結果、一応できるようになったのでメモとして残す。 やったこと app/dashboards/xxx_dashboard.rbにtagsをField::…

HerokuのDBにimportする

下記のコマンドを実行。 heroku pg:psql --app アプリ名 DATABASE_URL < sqlファイル ※dockerでpostgresqlをインストールして利用している場合は、ローカルにpostgresqlをインストールしていないと怒られる

herokuでridgepole用のDB設定をする

まあ、下記にある通りなんだけど。 www.wantedly.com herokuのpostgresqlのDATABASE_URLは下記のような形式になっているので、config/database.ymlをそれように変更する。 postgres://username:password@hostname:5432/db_name