エムスリーテックブログ

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

Pythonのパッケージ周りのベストプラクティス(2019年現在)

砲撃する自走砲(PzH2000自走榴弾砲)。自走砲は戦車じゃない。間違えると痛い目にあうぞ!*本編とは関係ありません。 こんにちは、エムスリー基盤開発チーム小本です。 Pythonのパッケージ管理周りでは、 「setup.pyでrequirements.txtを読み込むのが普通…

イベント告知:1/17(木)19:00〜「M3 Tech Meetup #6 〜US出張報告会〜」を開催します。

あけましておめでとうございます。 エムスリーエンジニアリンググループ(以下、エンジニアリングG)でVPoEをやっている山崎です。 今日は下記イベントの告知記事を公開します。 記載内容は下記リンク先と同じです (もし内容に齟齬があった場合はリンク先が…

Factorization Machineの実装と数値検証

はじめに あけましておめでとうございます。エンジニアGの西場です(@m_nishiba)。AI・機械学習チームで自然言語処理や推薦システムの開発を行っています。 Gunosyのデータ分析ブログのDeepなFactorization Machinesの最新動向 (2018)を読んでFactorization M…

「エンジニア実績システム」を導入しました!

あけましておめでとうございます。エンジニアリンググループの松原@ma2geです。 私はこちらの記事にもあるマルデバチームのチームリーダーをしていますが、採用チームとしても働いております。 今回は採用チームで取り組んでいるエンジニアの成長や OSS 活動…

エムスリーのグローバル戦略と今回のニューヨークオフィス出張について(まとめ)

エムスリーエンジニアリンググループ(以下、エンジニアリングG)の山崎です。 VPoEとして2018年締めくくりのテックブログを書きたいと思います。 はじめに 2018年はエムスリーエンジニアリンググループにとって多くのチャレンジをした1年でした。 まずはエ…

エムスリー Advent Calendar 2018 まとめ!

エンジニアリンググループの松原@ma2geです。 2018 年の Advent Calendar を無事に完走したのでまとめます。 qiita.com 今年のエムスリー Advent Calendar は以下の Qiita 記事でまとめられている内容を見る限りはてブ数ランキングでなんと7位だそうです!*1 …

ルーターを風呂場の天井裏に置きたくないので VLAN を使ってみた

エムスリー エンジニアの 矢崎 (id:Saiya) です。 集合住宅では天井高などの都合で 浴室天井裏にルーターが置かれる ケースが少なくないと思うのですが、VLAN を使うことで自由な場所にルーター等を配置できるようにしてみました。その状態で一年ほど運用し…

M3 Tech Meetup #5 ~年の瀬前のLT大会~を開催しました

こんにちは、エムスリー エンジニアリンググループの大和です。 いよいよ年の瀬も近づいてまいりましたが、12/6 (木) に弊社オフィスにて「M3 Tech Meetup #5 ~年の瀬前のLT大会~」を開催しましたのでご報告いたします。 m3-engineer.connpass.com 参加さ…

Auto Scaling に対応した EC2 監視アラーム設定ツール

こんにちは、エムスリー 兼 QLife エンジニアの園田です。 昨日、小ネタで投稿した Auto-Scaling 配下の EC2 の CloudWatch Alarm 設定ツールを SAM の OSS として公開したので、その説明のポストとなります。 github.com 昨日の小ネタ記事はこちらです。 (…

(小ネタ) AutoScaling で増減した EC2 インスタンスに動的に CloudWatch Alarm を設定

AWS

こんにちは、エムスリーエンジニアの園田です。 AWS の AutoScaling で増減する EC2 インスタンスに対して CloudWatch Alarm を動的に設定したくなることありますよね? AutoScalingGroup のメトリクスで AutoScalingGroup 内の平均 CPU 利用率などを監視す…

医療用語に注目した文書の類似度計算(SCDV+XGBoost)

はじめに エンジニアリングGの西場(@m_nishiba)です。 エムスリー Advent Calendar 2018に参加しています。 文書間の類似度計算をしたい。 エムスリーでは20以上のサービスを展開しています。各サービスごとにコンテンツのフォーマットが大きく異なるのです…

エムスリーエンジニアリングGの組織構成について

エムスリーエンジニアリンググループ(以下エンジニアリングG)の山崎です。この記事は エムスリー Advent Calendar 2018 の24日目の記事です。 私自身はエンジニアバックグラウンドのプロダクトマネージャですが、昨年12/1よりVPoEとして、今年の4/1より業…

React.js, Vue.jsが使えない状況でメンテナンス性の高いJavaScriptを書く3つのポイント

エムスリー エンジニアの岩本です。 この記事は エムスリー Advent Calendar 2018 の23日目の記事です。 React.jsやVue.jsを使えれば、開発のベストプラクティスなどがあるので、メンテナンス性の高いプログラムはずいぶんと書きやすくなったと思います。本…

JUnit5を使おう

エムスリー エンジニアの中村です。 この記事は エムスリー Advent Calendar 2018 の22日目の記事です。 JavaでのテストフレームワークといえばJUnitですが、最新版のJUnit5がかなり使いやすくなっています。 既に多くのJUnit5紹介記事がありますので、改め…

JJUG CCC 2018 Fallで登壇しました

この記事はエムスリー Advent Calendar 2018 の21日目の記事です。 こんにちは。エンジニアリンググループの滝安(@juntaki)です。 先日のJJUG CCC 2018 Fallで「エムスリーでのKotlinへの取り組み」と題して、スポンサーセッションで星川(@oboenikui)と2名…

How to contribute to Nuxt.js

この記事はエムスリー Advent Calendar 2018 の20日目の記事です。 エンジニアリンググループの@suusan2goです。現在はAIチームで、機械学習以外のことを色々やっています。 エムスリーではVue.jsを様々なプロジェクトで活用しており、今年開催されたVue Fes…

JJUG CCC 2018 Fallにゴールド&ブーススポンサーとして参加しました

この記事はエムスリー Advent Calendar 2018 の19日目の記事です。 こんにちは。エンジニアリンググループの池田(@progrhyme)です。 去る12/15(土)、ベルサール新宿グランドにて、日本最大のJavaコミュニティイベントであるJJUG CCC 2018 Fallが開催され…

ScalaのコンパイラにFizzBuzzを解いてもらう

この記事はエムスリー Advent Calendar 2018 かつ Scala Advent Calendar 2018の18日目の記事です。 エンジニアリンググループの冨岡です。 今回はどうしても自力では解けなかったFizzBuzz問題を、Scalaコンパイラの力を借りて解いた話をします。 FizzBuzzと…

新ストレージ管理システム Stratis について調べてみた

この記事は エムスリー Advent Calendar 2018 17日目の記事です。 皆さんはじめまして!11月にエンジニアリンググループに入りました、SREの平岡です。今回はSRE・・・というよりインフラ技術に携わるエンジニアとして、OSプラットフォーム周辺での新しい技…

SLO設定/超過監視にまつわる活動の振り返り

※ この記事は SRE Advent Calendar 16日目の記事です。 皆さんこんにちは。エムスリーという会社でSREをしている高橋です。 早いもので、今年ももう終わりですね... ! そこで本記事ではエムスリーのSREチームがこの1年の間に実施してきたSLO設定及びSLO超過…

EmacsでWebサービスを開発して8ヶ月が経ちました

この記事はエムスリー Advent Calendar 2018 の16日目の記事です。 こんにちは、エンジニアリンググループ新卒1年目の青木です。クラウド電子カルテ「M3 DigiKar」の開発に携わっています。We are hiring!! 今回は私のチームが開発しているWebサービス「M3 D…

JJUG CCC 2018 Fall Kotlin Puzzler 解説

こんばんは。Androidエンジニアの星川 (id:oboenikui) です。 本日 (2018/12/15) のJJUG CCCにて、エムスリーはブースを出展しました。 そちらでKotlin Puzzlerを出題しましたので、問題の解説をいたします! ルームK ブースエリアにて、Kotlin Puzzlersを開…

Vue Reactivity: Present and Future

Hello again, faithful readers. I'm Nick from the Engineering Group, here to bring you another special English edition of the M3 Tech Blog! This article is Day 15 of the 2018 M3 Advent Calendar. Continuing with the theme of my last entry, I…

クリスマスに『ビジュアル』プログラミングを始めよう

この記事は エムスリー Advent Calendar 2018 14日目の記事です。 こんにちは、エムスリーエンジニアリングGでエンジニアをしてます、新卒一年目の三角です。 クリスマスまで毎日更新され続けるであろう弊社アドベントカレンダーは、内部の私から見ても大変…

コードレビューを支える『褒め文化』

コードレビュー、好きですか? エンジニアリンググループの山口です。 クラウド電子カルテ「エムスリーデジカル」を開発しています。 今回は、チームに根ざしている『褒め文化』についてお話しします。 ※この記事は、エムスリー Advent Calendar 2018 13日目…

18分59秒をめぐって日本標準時の歴史をひもとくことに

この記事は エムスリー Advent Calendar 2018 12日目の記事です。 こんにちは。エムスリー エンジニアリンググループの三浦です。基盤開発チームというところで各サービスチーム共用のシステムの開発保守に携わっており、そこで見つけた面白い動作を掘ってい…

Rubyistも読めない? 超難読Rubyコードの読み方

この記事は エムスリー Advent Calendar 2018 11日目の記事です。 エンジニアリンググループのowlです。好きなマスコットはGopherくん、好きな言語はRuby! なので今回もRubyについてお話します。 ところでRubyistのみなさんはRubyKaigi 2018に行きましたよ…

Sansan× M3 Tech Night ~レガシーシステムに立ち向かえ!~ を開催しました

エンジニアリングGでAskDoctorsやゲノム関連サービスの担当をしている愛宕(あたぎ)です。 エンジニアとして働き始めて以来、レガシーシステムと関わることの多い人生を送ってきました。レガシーシステムの難解なコードを読み解こうとした末「こういう意味だ…

社内輪読会でScala関数型デザイン&プログラミング第14章の練習問題を解いたので解説します

エンジニアリンググループの松原です。 社内で4月から続いているScala関数型デザイン&プログラミング輪読会で、14章を担当したので復習も兼ねてその練習問題について解説記事としてまとめます。 ちなみにこの輪読会ですが、14章に到達した現在も誰一人として…

業務未経験でエンジニアになった私がエムスリーで学んだ、やっておいた方が良い3つのこと

この記事はエムスリー Advent Calendar 2018 8日目の記事です。 こんにちは。エムスリー エンジニアリンググループの川俣です。 最近驚いたことは、勉強会*1でLTしてプロテインをもらったことです。 ※注 プログラミングの勉強会です。 私は、今年2月に6年務…