エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

Goで時刻のゼロ値が変になった話

エムスリーエンジニアリングG/BIRの遠藤です。

アドベントカレンダーは終わっちゃっいましたが、年納めに小ネタを。

BIRはビジネスインテリジェンス&リサーチの略で、そこでは医療従事者の会員向けアンケートをベースに、製薬会社へのマーケティング支援を提供する事業を行っています。

f:id:enkn:20201225180221p:plain

BIRでは多くのシステムをGoで実装しています。

業務で1年利用してだいぶ慣れてきましたが、 先日思わぬ時刻のオフセットの問題に引っかかったので紹介します。 最終的には言語関係ない問題だったので、もしかすると他の言語でも似たような問題があるのかもしれません。

  • IsZero()が正常に判定されない
  • 0001-01-01T09:18:59 とは?
  • なぜIsZero判定できなくなったか?
  • この問題を回避するには
    • 1. UTCで運用
    • 2. Asia/Tokyoのオフセットを+09:00に固定
    • 3. オフセット情報のない形式にシリアライズ
    • 4. LMTのオフセットを表現できる形式でシリアライズ
    • 5. ゼロ値をnil(null)で表現
  • まとめ
    • (2021/01/04 追記)
  • We're hiring!
続きを読む

グループ会社に突撃リビルドしまくって早一年

みなさんお久しぶりです。エムスリーエンジニアリンググループの青木(@blue_1617)です。 「エムスリーデジカル」を作ったりゲームしたりしてます。最近は「スーパーマリオ オデッセイ」をプレイしてます。

さて、今回は「株式会社日本アルトマーク」にエンジニアとして突撃してチームで改善祭りをした話について書きます。

  • 株式会社日本アルトマークとは
  • 突撃エンジニアリングの必要性
  • 改善内容
    • MDB メンテナンスシステムの完全内製化
    • オンプレサーバー内製化・環境移行
      • データ移行をやらかした話
    • ファイル納品サービスのクラウド化
    • Rails アプリケーションのクラウド化
  • まとめ
  • We are Hiring!
続きを読む

VPoEとしてこの3年間を振り返って

こんにちは。先日、プライベートで購入した話題のM1チップ搭載のMacBook Proが到着*1して毎日が楽しいエムスリーエンジニアリンググループ執行役員兼VPoE兼プロダクトマネージャー兼CDO(Chief Design Officer、最高デザイン責任者)の山崎です。

本ブログはエムスリー Advent Calendar 2020の25日目の記事です。

エムスリー Advent Calendar 2020の締めとして何を書こうか色々と迷ったのですが、今回はVPoEらしく、今年も「VPoEとしてこの3年間を振り返って」と第して2020年を締めくくりたいと思います*2

qiita.com

はじめに

2017年12月にエムスリーにおいて始めてVPoEが設置され、私が初代VPoEに就任しました。 それからの3年間は本当にあっという間に過ぎ、3年も経っているとは信じられないというのが正直なところです。 一方で、その間、多数のチャレンジをしてきました。

この記事では、社内外の参考になるかもしれないと思い、それらのチャレンジを抜粋して紹介したいと思います。 ちなみに、評価制度と報酬に関するチャレンジはセンシティブなので割愛します*3

f:id:yamazaki-m3:20201225211223j:plain
なぜか年末になって自宅にMacBook Proがいっぱいある図

*1:もちろん開発用に15インチフルスペックも手放せません

*2:今年の業務は12/29まで続き…なんなら運用は12/31の24:00まで続きますがそこはよしなに。

*3:CTO、VPoEの方で聞きたい方がいらっしゃればCTOミートアップなどで個別にお声がけください。

続きを読む

怪談のためにElasticsearch入門した話

この記事はエムスリーAdvent Calendar 2020 24日目の記事です。

クリスマス付近の予定はこのアドカレ執筆だけ、エンジニアリングGのowlです。

ところでみなさんは怪談がお好きだと思います、もちろん自分も大好きです。常日頃から手当たり次第に読んでいるのですが、最近では読むものが少なくなってきたので中国古典の志怪小説や江戸時代以前に書かれた怪談集や説話集も集めています。いつか現代語訳されているものも読みつくしてしまったら外国語や古典籍のくずし字を解読する羽目になるかもしれません。

ちなみに怪談は好きですがホラー映画は苦手です、びっくりするので。

さて、大量の怪談を読むうちにその内容や語られ方が時代や地域によって大きく異なりそれぞれが興味深い特徴を持っていたり非常に似通った類話が存在することに気づきました。例えば江戸時代からいわゆる幽霊物の占める割合が急激に増える、現代の都市伝説的怪異の中には「色」をキーワードとするものが多い、日本である年代から突然「霊感」という概念が一般に広まる……など。

そこで少し真面目に怪談に関する考察をやってみようと思い立ち、その前準備としてなるべく怪談をデータベース化していくことにしました。

f:id:owl-m3:20201225064251p:plain

  • やりたいこと
    • 使う技術スタック
  • 実装に関する短い説明
  • 「類話」の話
  • 重要語の抽出とテキスト分類
  • 入門してみた感想
  • We're hiring !
続きを読む

AWS ECSユーザーからみたGKE再入門

こんにちは、エンジニアリンググループ AI・機械学習チームの安田です。

これは エムスリー Advent Calendar 2020 の22日目の記事です。

今回は、普段AWS ECSを主に使っている私が、GKEをECSとの比較から眺め直します。

  • 読者想定/前提
    • 読者想定
    • 前提
  • ECSの復習
    • API
    • Batch
    • ECSのまとめ
  • GKEの確認
    • API
    • API(k8sのyamlあり)
    • Batch
  • ECSとGKEの比較とGKEの疑問点
    • ECSとGKEの比較
    • LB(service)
    • LB(Ingress)
    • スケジューラ(cronjob)
  • まとめ
  • We are hiring!
続きを読む

Go で Chrome Bookmark Fuzzy-finder を作ってたら無限ネスト JSON を平らにしてた

f:id:abctail30:20201222210244p:plain

エムスリーエンジニアリンググループ AI・機械学習チームの中村(@po3rin) です。 好きな言語はGo。仕事では主に検索周りを担当しています。今回はGoでfuzzy-findingツールを作ったのでその方法と、Chromeブックマークのような無限ネストJSONを Visitor Pattern でスライスにパースする方法を紹介します。

続きを読む

幼児向けの四方見ビューワを作った

エムスリー エンジニアリングGの岩本です。

これは エムスリー Advent Calendar 2020 の21日目の記事です。

幼児向けのお勉強は子供にとって大変なことですが、親もなかなかに大変ですよね。 子供のやる気を削がないように、気を使いながら楽しく勉強することが必要です。 そして、同じ問題を解かせていると答えを覚えてしまうので、ちょっと問題を変える必要もあります。

算数のような問題であればかんたんに親が作れますが、図解が必要なものは作るのがなかなか難しい。 前回は迷路のエディタを紹介しましたが、今回は四方見(しほうみ)ビューアを紹介します。

f:id:cpw:20201219101050p:plain:w200

四方見ビューア

続きを読む