limitusus’s diary

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

Ruby

複数OSSのContributerになりました

年末ということで1つ記事を書いて今年を締めたいと思います。 インフラエンジニアとしての仕事も6年目となりましたが、この間にITインフラ界隈はオンプレからクラウドへの移行というものが急速に進んできているのを感じています。 そんなわけで仕事ではAWSを…

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に行ってきました。