ネットの海の片隅で

技術ネタの放流、あるいは不法投棄。

gem

oneshot task に規約と仕組みを導入する

Cookpad TechConf 2018 の突発 LT で話した内容をもう少しちゃんと書いてみます。 アドホックなタスクの必要性 日々、サービスを運用しているとアドホックなデータの変更や処理の再実行などが必要になります。 典型的には以下のようなケースです。 データマ…

Ruboty で TRPG をする

Ruboty pluginを書いたので簡単に紹介しておく。 https://github.com/s-osa/ruboty-roll 使い方 1d100, 3d6 などの文字列を ruboty roll に渡すと、ダイスの出目と出目の合計値が出力される。 > ruboty roll 3d6 [2, 4, 5] => 11 > ruboty roll 1d100 [41] =…

Net::FTPでNAT越えする

解決したいこと FTPはActiveモードを使った時にデフォルトでNATを越えられない。 NAT越えのためにはFTPのPORTコマンドを適切に使用する必要がある。 RubyのNet::FTPにはPORTコマンドあるいは似たようなオプションが無い。 RubyアプリケーションでNAT越えのFT…

エンコードしない文字を指定できるURIエンコーダ「uri_encoding」

世間がRubyKaigiで盛り上がっていて寂しかったので、URIエンコード・デコードを行うgemを書きました。 s-osa/uri_encoding · GitHub インストール uri_encoding | RubyGems.org | your community gem host に置いてあるので、テキトーにbundle installとかge…

不揃いなHashから長方形の配列をつくるgem「Emmental」

ソースはここに置いてあります。 s-osa/emmental · GitHub インストールはgem i emmentalとかbundle installとかのいつものやつで。 使い方 基本 emmental = Emmental.new emmental << {foo: 1, bar: 2} emmental << {fizz: 3, "buzz" => 5} emmental << {fo…

RailsのモデルでJANコードのバリデーションをするgem 「jan_validator」

つくったもの Rails*1向けのJANコードバリデータ。 先日のgemをベースにしています。 参考にしたページ ActiveModel::Validator balexand/email_validator · GitHub 使い方 JANコードのバリデーションがRails標準のpresence: trueのようなカタチで書けるよう…

JANコード用のgem「jan」

作ったもの JANコードを便利に扱うためのgemを作りました。 JANコードっていうのはバーコードに使われているこんなやつです。 国際的にはEANコードと呼ばれていたりします。 JANコードとは│JANコード登録│ 一般財団法人流通システム開発センター ean | RubyG…

正規乱数を生成するgem「RandomBell」

Rubyで一様な乱数が欲しければRandomやSecureRandomを使えば良いと思うのですが、「偏った乱数」が欲しいこともあると思います。 イメージとしてはゲームのパラメータとかですかね。 例えば、あるダンジョンで出てくる敵のレベルを20-30の間でランダムに決め…