エンジニア募集しています!

永田です。

今日はCTOとして記事を書きます。

エンジニア募集しています!(切実)

募集内容は 、

中途採用|株式会社インゲージ 採用情報

に載せています。

  • Webアプリケーションエンジニア(サーバーサイドエンジニア)
  • フロントエンジニア
  • インフラエンジニア
  • iOSエンジニア

です。

大阪にある会社で、Ruby (Rails) で仕事ができて、自社サービスで、というのはなかなかないと思います。

どんなサービスを開発しているかは、

最新のメール管理システム|問合せ管理の新基準 Re:lation(リレーション)

を見ていただければわかりますが、今のところサイトがあまりいけてないので(!)、わからないことがあれば説明します。

ただ弊社としては、今、求める人材としては上記ページにも書いていますが、まだまだ小さい会社なので、自己管理ができて、自分から行動してくれる人となります。

もし興味がありましたら、Twitter (@kizashi1122) にメンションください。

Sidekiq を使ったメール送信時に uninitialized constant Mail::* が発生した

永田です。

弊社では Rails をつかって Relationというサービスを構築しています。 サービス内部では処理の効率化のために、非同期処理を様々な機能で使っています。 Rails 4から使えるようになった ActiveJob を Sidekiq で使っています。キューの管理は Redis を使っています。

ActiveJob ではメールの送信もおこなっています。

ActiveJob でメールの送信をおこなうようになってから1年以上は経ちますが最近、奇妙なエラーが発生しました。うちで発生したのは以下の2パターンでした。

uninitialized constant Mail::SMTPConnection

uninitialized constant Mail::AddressList::Address

これには悩まされましたが、mail gem の issue にてすでに議論されていました。

NameError: uninitialized constant Mail::Parsers::ContentTypeParser · Issue #912 · mikel/mail · GitHub

mail gem がスレッドセーフではなかったことが原因とのこと。対応策としては、この issue にも、Sidekiq の Wiki にも載っていますが、

Problems and Troubleshooting · mperham/sidekiq Wiki · GitHub

initializer 内のファイルに

Mail.eager_autoload!

とすることになります。

github に登録したリリースノートを集める

永田です。弊社では、リリース毎に github にタグを打って、リリースノートをつけています。

年末の振り返り時に、リリースノートを一覧で見たくなったのですが、github 上では見れないため、API を使って取得することにしました。

gistd36acf57c330bcd11b9f1bf508d26617

これで、カレントディレクトリに release-v0.0.0 というファイル名で、テキストで(中身はマークダウン形式)出力されます。

あとは、ファイルをぐるぐる回して、必要な情報をとればいいということになります。

弊社では以下のようにフォーマットを決めているので、

### Release Date
- 2017/12/XX
 
### New Feature
- blah blah blah
  
### Improvement
- blah blah blah
  
### Bugfix
- blah blah blah

### Other
- blah blah blah
  

gist77ee798b9bd5650ebfa904ab6d58bc78

こんな感じでパースすると、

    release-v.0.0.0    {
        Bugfix           [
            [0] "blah ...",
            [1] "...",
            [2] "..."
        ],
        Improvement      [
            [0] "blah"
        ],
        'New Feature'    [
            [0] "blah "
        ],
        Other            [
            [0] "blah"
        ],
        'Release Date'   [
            [0] "2017/12/XX"
        ]
    },

という感じでハッシュにデータをいれることができるので、取り出して、CSVにするなり何なりとすればよいということになります。

あけましておめでとうございます

インゲージの永田(id:kizashi1122)です。

Twitter でははるか昔にこんな風につぶやいていましたが、ようやく記事を載せようかなと思います。 コーポレートページやサービスページはまだアレなところはありますが、チームメンバーともども、技術的な知見などを載せていくことができればと思います。

今年もよろしくお願い致します。