limitusus’s diary

主に技術のことを書きます

Ruby

CircleCIをv1からv2に上げたら4倍速くなった話

tl;dr 今までRubyのテストをCircleCI v1で行ってきましたが、v2がGAになったことを受けてv2への移行を行いました。 結果、それまで2分40秒ほどかかっていたテストが40秒台で完了できるようになりました。この過程と効果について紹介します。

AWSのコストを取得するgemを調べた

AWSは料金表を提供していますが、JSONを取得してごにょごにょ…と自分でやるのは何か違う気がします。どうせgemくらい誰か作ってるだろう、ということで少し調べてみました。 tl;dr 今のところamazon-pricingを使うか、やっぱり自前で書くのがいいのではない…

RDS logをRubyでダウンロード

AuroraのAudit log検証をしていて、「これ定期的にS3にアップロードしないと消えるよね?」って話になったので、まずはRDSから取ってくるとこからだね…ってことでやってみることにしました。 候補手段 方法はいくつかあるんですが、 1. rds-cliを使う もうde…

Server::Starterに対応するとはどういうことか

StarletやStarmanと組み合わせてよく使われているServer::Starterですが、普段気にしないような部分を読む機会があったのでメモ。Server::Starterは --port (TCP) や --path (Unix Domain Socket) を渡すとこれでlisten(2)して起動するworkerに引き渡してく…

昨日残った問題

エラーが出たときに追いかけにくい気がする(というか追いかけかたがよく分からない) Controller側かView側か、一発で見分ける方法とかあるのかな? テンプレートエンジンにHamlを使ってみたい 使い方が分からない。id:coji が書いたやつを読むか。 そもそ…

ログファイルに出力

問題が合ったときにコンソールだけでなくファイルにもエラーログを出力したいときのこと。 例外の投げ方は前書いたものと同じようにしておく。その下にファイルにもエラーログを書く部分を示す。 def user(input_data) begin # 入力値が適正かチェック raise…

例外処理

昨日から例外が起きたときにブラウザ上には多くの情報を出さず、コンソール側にはバックトレースを出したいと思って悩んでいたのを解決。 def raise_test begin raise Exception, "Exception!" rescue Exception => mes Ramaze::Log.warn(mes.message + " Fo…

テンプレートの使い方

ramazeはデフォルトでMVC開発ができる。 $ ramaze --create hoge により生成した場合、V(iew)を担当するのはview/以下。とりあえずpage.xhtmlとindex.xhtmlなどが生成されているはず。 大枠はpage.xhtmlに書かれている。これはmain.rbの layout '/page' に対…

ramazeでパラメータを受け取る

割と簡単にパラメータを受け取ることができることがわかった。 http://localhost:7000/mult/34/67 というアドレスにアクセスしたら34*67の掛け算をした結果を出力することにしよう。main.rb内にmultというメソッドを作成する。 def mult(a, b) c = a * b "#{…

ramazeの勉強を始めてみた

インターン先の方に「ramazeかわいいよ」と言われたのでramazeを勉強してみることにした。導入編みたいな。ramazeってのはRubyのフレームワークの1つです。Railsと同列ということ。 Railsに押されてるけど、お手軽なのがいいところみたいですね。ちなみに私…

LL Future行ってきたレポ

昨日知ったのでLL Futureに行ってきました。