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

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

2018-01-01から1年間の記事一覧

has_oneのbuildはhas_manyと違う

Railsでhas_many :commentsみないな時にbuildするときは@blog.comments.buildだけど、has_oneの場合は.buildはnilエラーになる。 has_oneの場合はbuild_xxxというメソッドがあるので、そちらを使うと言うことを今頃になって知った。 class Blog has_one :sta…

RubyMineでSlim+Vue.jsを利用していると開けなくなるファイルの条件が判明した

環境 macOS High Sierra 10.13.6 RubyMine 2018.2.4 Build #RM-182.4505.55, built on October 8, 2018 今の会社になってからRubyMineも会社で購入してくれるのでバリバリ使っているのですが、ジョインした時からいくつかのslimファイルがRubyMineで開けない…

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年程お世話になった。 転職の動機や転職活動についてなどはまた別の機会にまとめようと思う。 とりあえず、今日日付として記録に残すために。