paranitips

Never stop learning! がモットーのゆるふわ開発ブログ

Macのスクリーンセーバーでいいの見ーつけた

f:id:paranishian:20190415224748j:plain

Apple TVスクリーンセーバーをベースにしたMacスクリーンセーバー

github.com

zipファイルをDL→解凍して、インストールするだけでOK。

めちゃめちゃキレイ。癒やされる。4K動画もある。

職業柄、あんまし外に出ない生活してるので外出欲が湧いてきて良い。

他のもついでにぺたり↓↓

f:id:paranishian:20190415224912j:plain f:id:paranishian:20190415224931j:plain f:id:paranishian:20190415224948j:plain

海外に行きたいでござる 🤗

WiFiルーターを刷新したらダウンロード速度6.8倍、アップロード速度15.9倍になった

実家でのリモートワーク中、インターネットが遅くて開発に影響が出てきそうだったので対応することにしました。

回線はドコモ光を契約してる*1し速いはずやのになぁ。。🤔

調べてみると、どうやらルーターに問題がある気配がした*2ので、こいつを購入してbefore/afterを比較してみました。*3

before

遅すぎぃ。。。。

f:id:paranishian:20190304192049p:plain

after

5G速すぎーー!!

2G 5G
f:id:paranishian:20190304192046p:plain f:id:paranishian:20190304192042p:plain

どこの実家もこういう問題ありそうですね。*4

これで快適に開発できるぞ!💪

以上です🤗

*1:そもそもドコモ光を契約していたのになぞのソフトバンクairなるルーターを使っていた事件もありました(実家あるある)

*2:結構前のbuffaloルーターだった

*3:google speedtest」と検索して出てくるやつで実施

*4:そして代理店に搾取されてそう。。

assets:precompileしたアセットのサイズをbundlesizeを使ってPR上に通知する

f:id:paranishian:20181204173858p:plain

アセットは放置しておくと膨らんでいくばかりなのでチェックできる仕組みをつくります。
今回は、assets:precompileしたアセットのサイズ(とmasterとの差分)をPR上に通知するようにしました。

f:id:paranishian:20181206183903p:plain

bundlesizeのセットアップ

bundlesizeの使い方はREADMEを見ていただければと。
siddharthkp/bundlesize: Keep your bundle size in check

今回は、precompileしたアセットを対象にするので以下のようにしました 👇

// package.json
...
  "bundlesize": [
    {
      "path": "./public/assets/application.js.gz",
      "maxSize": "150 kB"
    },
    {
      "path": "./public/assets/application.css.gz",
      "maxSize": "30 kB"
    }
  ],
...

bundlesizeには、PR上で同じファイル名のもののサイズ差分を教えてくれる便利な機能があります。
が、rails4からはdigestが必ずついてしまうのでアセットが別名になってしまってサイズの比較ができない。。🤔

ので、compile後のアセットをnon-digestなファイル名にコピーすることで対応しました。

non-digestなアセットをつくるgemもありますが、testのためにconfig/initializersに手を加えるのは大げさすぎるのでやめました 😪
alexspeller/non-stupid-digest-assets: Fix the Rails 4 asset pipeline to generate non-digest along with digest assets

CircleCIに導入する

BUNDLESIZE_GITHUB_TOKENは別途CircleCIの「Environment Variables」に設定しておきます。 f:id:paranishian:20181204165558p:plain

細かいのはすっ飛ばして今回の箇所だけ。 (実はassetsのキャッシュ部分とか省略している)

# config.yml
version: 2
jobs:
  build:
    docker:
       ...

    steps:
      - checkout

      ...

      - run:
          name: assets:precompile
          command: |
              # bundlesizeで邪魔になるのでcacheされた古いassetsは削除する
              rm -rf public/assets public/packs-test
              bundle exec rake assets:precompile

      # bundlesizeで比較するためにdigestなしでファイルをコピーしておく
      - run: |
          cp public/assets/application{-*,}.js.gz
          cp public/assets/application{-*,}.css.gz

      - run: npx bundlesize

どんどん自動化していくでぇ〜 💪

以上です 🤗