プリパラを見ていた時期に面白そうなハッカソンがあったので参加しました。*1
第一印象
プリッカソン、プリキュアハッカソンと同じような空気感で安心した #prickathon
— sue445@10/8技術書典5 か75 (@sue445) September 23, 2018
成果物
下記のプリティーシリーズ版です。
プリパラを見ていた時期に面白そうなハッカソンがあったので参加しました。*1
プリッカソン、プリキュアハッカソンと同じような空気感で安心した #prickathon
— sue445@10/8技術書典5 か75 (@sue445) September 23, 2018
下記のプリティーシリーズ版です。
しばらくv3.0.0で止まっていたのですが、ここ数日で立て続けにv3.1.0, v3.2.0, v3.3.0と出たのでメモ
fog-core v2.1.1のリリースにより Fog::Compute::AWS
って書いてると「Fog::AWS::Compute
を使え」ってdeprecation warningが出るようになった。
https://github.com/fog/fog-core/blob/master/changelog.md#211-09042018
fog-coreでdeprecation warningを出すようになったのでfogファミリー全部に対応が必要になった。
自分のアプリでも出るようになったんですが、rake叩く度にむっちゃwarning出るようになってノイズになってつらかったので直した。
https://github.com/fog/fog-aws/compare/v3.0.0...v3.1.0
今年の4月以降リリースされずに溜まってたPRが一気にリリースされた感じ。
deprecation warning対応以外で自分のアプリで影響範囲調べるのならこのdiff見るのがよさそう
https://github.com/fog/fog-aws/compare/v3.1.0...v3.2.0
私ですo^
コミットログ見ると本当にきれいなsed芸ですね(熱い自画自賛)
ちなみにこの辺のPRはOSSパッチ会での成果でした。(PR出せたのは3連休だけど)
本当はこのバージョンでdeprecation warningが解決されてるはずだったんだけど、僕のPRより前に出てた https://github.com/fog/fog-aws/pull/467 がマージされ忘れてたのでdeprecation warning対応は不完全。
https://github.com/fog/fog-aws/compare/v3.2.0...v3.3.0
https://github.com/fog/fog-aws/issues/466#issuecomment-422165748 で https://github.com/fog/fog-aws/pull/467 のマージし忘れを指摘されてv3.3.0ががリリースされた。
ここでようやくdeprecation warning完全対応。
技術書典5 まで残り1ヶ月切りましたが一通り執筆終わったので告知です
か75
これはPackerのビルドを行う時にmItamaeでレシピを適用し、Serverspecでテストを実行するための本です。
本書のゴールはmitamaeでプロビジョニングしたサーバに対してServerspecでテストを行い、PackerでAMIを作成することです。 AMI作成だけでなくVagrantやCircleCIの設定を整えることでmItamaeを利用した実践的なレシピ開発も視野に入れています。
おそらく日本初のmitamae本じゃないかと思ってます。(要出典)
表紙と目次です
目次だけですが何について書いているかはだいたい分かるかと思います。
画像だとググラビリティがないので使っている技術に関してざっとキーワードを挙げておきます
A: 進捗最高です!(もう一通り執筆は終わって、今は知り合いにレビュー依頼している)
A: 当日の頒布物はPDFをDLするためのシリアルコードのみです。
見本用に1〜2部印刷するかもしれないですが、基本は電子版のみです。
A: 後日 BOOTH で電子版の販売を予定しています。
当日は プリ☆チャン のフォロチケ交換も受け付けていますぷり。
表題の件についてググっても同じ事象が出てこなかったのでメモ
Chrome拡張のNorton Safe Webが悪さしてた
Chromeのタスクマネージャで見るとTwitterのタブが常時CPU 100%に張り付いてる('A`)
Chromeの拡張のどれかが悪さしてるだろうとあたりをつけて、試しに拡張を全部無効にしてTwitterを開くと激軽。
それから1つずつ拡張を有効にしていったらNorton Safe Webにぶつかった。
再度Norton Safe Webをオフにした時のタスクマネージャ
rspec-time_stop (0.1.0): Stop current time in example. https://t.co/7RArS5QO0o
— RubyGems (@rubygems) 2018年8月25日
前職の spec/support/
によくあったテスト系の便利ヘルパを現職でも使いたくなったので記憶からサルベージしてgem化しました
it
や describe
に :time_stop
をつけるだけで現在時刻を止めた状態でテストを実行します
実装はたったこれだけです
https://github.com/sue445/rspec-time_stop/blob/v0.1.0/lib/rspec/time_stop.rb
READMEからコピペ
RSpec.describe Rspec::TimeStop do context "with :time_stop", :time_stop do it "current time is freezed" do before_time = Time.now sleep 1 after_time = Time.now expect(after_time).to eq before_time end end context "without :time_stop" do it "current time is not freezed" do before_time = Time.now sleep 1 after_time = Time.now expect(after_time).to be > before_time end it "current time is freezed when :time_stop is granted", :time_stop do before_time = Time.now sleep 1 after_time = Time.now expect(after_time).to eq before_time end end end
原状対応してるのは ActiveSupport::Testing::TimeHelpers
だけです。
(timecop対応も一応考えたんだけどCI込みだと両方対応するのがちょい面倒だった)
開催してました
文字通りNewStage(新天地)での開催でした。
現職での勉強会主催が初な上に今までの会場と勝手が違って慣れてなかったですが、先輩キュアエンジニア達に助けられて無事に終わることができました。
秋映画の オールスターズメモリーズ をrubicureで対応しました
irb(main):001:0> Precure.all_stars(:memories).count => 55 irb(main):002:0> Precure.all_stars(:memories).map(&:precure_name) => ["キュアブラック", "キュアホワイト", "シャイニールミナス", "キュアブルーム", "キュアイーグレット", "キュアドリーム", "キュアルージュ", "キュアレモネード", "キュアミント", "キュアアクア", "ミルキィローズ", "キュアピーチ", "キュアベリー", "キュアパイン", "キュアパッション", "キュアブロッサム", "キュアマリン", "キュアサンシャイン", "キュアムーンライト", "キュアメロディ", "キュアリズム", "キュアビート", "キュアミューズ", "キュアハッピー", "キュアサニー", "キュアピース", "キュアマーチ", "キュアビューティ", "キュアハート", "キュアダイヤモンド", "キュアロゼッタ", "キュアソード", "キュアエース", "キュアラブリー", "キュアプリンセス", "キュアハニー", "キュアフォーチュン", "キュアフローラ", "キュアマーメイド", "キュアトゥインクル", "キュアスカーレット", "キュアミラクル", "キュアマジカル", "キュアフェリーチェ", "キュアホイップ", "キュアカスタード", "キュアジェラート", "キュアマカロン", "キュアショコラ", "キュアパルフェ", "キュアエール", "キュアアンジュ", "キュアエトワール", "キュアマシェリ", "キュアアムール"]
https://github.com/sue445/rubicure/blob/master/CHANGELOG.md#v117
あとは 技術書典5 の原稿を書いてました。
ここからが本当の地獄だ・・・ #技術書典 5 pic.twitter.com/WyKhlwOKiJ
— sue445@10/8技術書典5 か75 (@sue445) August 1, 2018
◎貴サークル「ウインドテイスト」は、 か75 に配置されました。 #技術書典
— sue445@10/8技術書典5 か75 (@sue445) August 17, 2018
pixiv PAYのサークル情報にも配置を追記 #技術書典 pic.twitter.com/Tf8uQO8jPA
— sue445@10/8技術書典5 か75 (@sue445) August 17, 2018
以前ChatWorkMentionTaskというアプリを作った時に
ChatWorkのAPIのリフレッシュトークンの有効期限は2週間なので、リフレッシュトークンが切れる3日前にリマインド用にタスクを作るようにした
って書いたのですが、ChatWork本家でリフレッシュトークンの有効期限が無期限に設定できるようになったということなので小躍りして対応しました。ヒャッホウ!
参考
OAuthクライアントの設定に「永続的なAPIアクセスの許可」が増えているのでこいつをチェックして保存
omniauth-chatwork であれば scope
に offline_access
を足すだけ。
Rails.application.config.middleware.use OmniAuth::Builder do provider :chatwork, ENV["CHATWORK_CLIENT_ID"], ENV["CHATWORK_CLIENT_SECRET"], scope: ["users.profile.me:read", "rooms.tasks:write", "rooms.info:read", "offline_access"] end
ChatWorkMentionTaskの本番に適用する前に試したけど、offline_access
を有効にした後も既存のアクセストークンやリフレッシュトークンは問題なく使えたのでサクッと変更していいんじゃないかと思います。
リフレッシュトークンの有効期限がなくなったので、リフレッシュトークンが切れる3日前のリマインド用にタスク作成はなくします。
(現状リフレッシュトークンが14日間のままのユーザがまだ何人かいるので機能の削除自体はもうちょい先になりますが)