エムスリーテックブログ

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

2023-01-01から1年間の記事一覧

AWS Lambda でも Rails で Web 開発

本日はコンシューマチームのブログリレー2日目です。 エムスリーエンジニアリングG コンシューマチームの松原(@ma2ge)です。 今回は以前筆者が M3 Tech Talk で話した AWS Lambda での Web アプリ開発に Rails を使う内容について、 若干内容を変えつつ Tech…

世界最速で Astro SSR を Amplify Hosting で動かしてみた

こんにちは。エムスリーエンジニアリンググループのコンシューマチームでアーキテクトをしている園田です。 本日はコンシューマチームのブログリレー 1 日目です。 2023/11/20 (日本時間だと本日) に AWS の Amplify Hosting で Next.js/Nuxt.js 以外の SSR …

JJUG CCC 2023 Fall で初登壇しました

希望する登壇者がもらえたNinja Tシャツ こんにちは、製薬企業向けプラットフォームチームエンジニアの桑原です。 JJUG CCC が2023-11-11にオフラインで開催され、エムスリーはロゴスポンサーとして参加しました。 ccc2023fall.java-users.jp JJUG CCC はコ…

技術書典15の会場で感じた技術の共有空間

共有空間とは エムスリーVPoEの河合(@vaaaaanquish)です。エムスリーエンジニアリンググループより有志のエンジニアが集まり、11/12に開催された『技術書典15 オフライン』に新刊を携えて参加しました。 会社や個人、技術分野、クラスタの垣根を超えて、技術…

Flutter Kaigi 2023でFlutterのライフサイクルについて発表してきた

11/10に国内最大のFlutterカンファレンスであるFlutter Kaigi 2023が開催されました エムスリーはSilverスポンサーとして参加し、私 荒谷(@_a_akira)がMaster of Flutter lifecycleという発表してきたので参加レポートを、また立花と小林(@bakobox)がセッ…

エムスリーが技術書典15で新刊を出します!

今回エムスリーでは有志で新刊を携えて参戦します。今回も多様な分野・技術について弊社スタッフが執筆いたしました。エムスリーのギークな面がふんだんに詰まった一冊となります。

Designship 2023 レポート&ノベルティ制作秘話

【Designship 2023 レポート&ノベルティ制作秘話】 お久しぶりです、エムスリーデザイングループBXデザイナーの花井です。 9月30日・10月1日に渋谷ヒカリエでDesignship 2023が行われました。 M3はゴールドスポンサーとして参加させていただきました!

zeno.zsh を活用して Node.js パッケージマネージャの違いを吸収する

永山です。 神話の時代、天を衝く巨塔を築こうとした高慢な人類の Node.js パッケージマネージャは様々に引き裂かれたと言われています。 現代においてよく使用されているものだけでも npm, Yarn, pnpm などがあり、エムスリー社内でもプロジェクトによって…

Gmailのメール認証規制強化への対応って終わってますか?

こんにちは。エムスリー・QLife(エムスリーのグループ会社)・エムスリーヘルスデザイン(エムスリーのグループ会社)でエンジニアとして各種作業に関わっている山本です! 以前もメール送信の話を書かせていただいたことがありますが、今回もまたメールネタと…

超一流のプロダクトマネージャーへの道

こんにちは。エンジニアリンググループ プロダクト支援チームでプロダクトマネージャーをしている中村です。 2019年5月にエムスリーに入社してから、早4年が経ちました(うち1年半の出産・育児のための休業期間を挟んでいます)。 ちなみにエムスリー入社前…

エムスリーで活躍する人の型を観察してみた その1

こんにちは、プロダクトマネージャーの髙田です。辛いものが好きです。 最近は、昼ごはんに台湾ラーメンを食べて、夜に二郎インスパイアで台湾まぜそば(辛口)を食べました。 麺半分コール忘れて胃が爆発 入社からいつのまにか1年経過し、振り返りも込めて…

Elastic Cloudのデプロイメント管理をTerraform移行する

エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。検索とGoが好きです。 今回はElasticsearchのバージョンをアップグレードする際に、Elastic Cloudのデプロイメント管理をTerraformに移行する…

TypeScript でメソッドチェーンしたら推論される引数が増えていくやつ

こんにちは、エムスリーエンジニアリンググループ Unit5 (Consumer) チームの園田です。 今回は大きな実装ではなく、TypeScript のちょっとしたテクニックを Next の API ルートを題材に書いてみます。 想定読者は TypeScript 初心者の方です。TypeScript 強…

エムスリー、まだまだインターンやってます(というか常にやってますw)。

こんにちは、エムスリー人事の我如古(がねこ)です。 ばんくしさんことVPoE河合さん(@vaaaaanquish)より、2023年夏のインターン開始宣言をして早いもので2ヶ月がたちました。今年の夏は暑い夏でしたね。皆さんはアツい夏のインターン体験ができたでしょうか…

iOSDC Japan 2023・DroidKaigi 2023 参加レポート

こんにちは、マルチデバイスチームの小林(@bakobox)とデジスマチームの荒谷(@_a_akira)です。 エムスリーは、iOSDC Japan 2023はゴールドスポンサー、DroidKaigi 2023ではサポーターとして協賛させていただきました。 小林はiOSDC・DroidKaigi両方、荒谷はDr…

テーブルを一個追加するたびにGRANT文書かないといけないの、やめられます

WebシステムがPostgreSQLにアクセスするときのDBロールはどうしていますか? postgres みたいな全能ロールをそのまま使う⋯⋯ でも動くシステムにはできるんですが、仮にアプリサーバ側の脆弱性を突かれたときに即DBの全権限まで危険にさらされる構成はインタ…

DICOMを使いこなして医療画像を扱う

こんにちは、AI・機械学習チームの浮田 (id:uKita) です。今回は、医療画像においてスタンダードとなっているDICOMという規格について紹介します。 私たちのチームでは臨床現場で活用できるAIの開発に取り組んでおり、様々な医療画像を扱っています。中でもX…

ひな形からコードを書くときのコミット流儀

ひな形ファイルを微変更してコード追加したというフィーチャーブランチは、変更部分はわずかなのにレビュアーには変更部分の確認がしづらく辛いもの。それをレビューしやすくするコミットの小技

goのLambdaはコンテナイメージでよくない?

【Unit4 ブログリレー8日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 今日の記事は、タイトルのとおりgoのLambdaはコンテナイメージで管理するのがオススメって話です。 城島高原パーク(きじまこうげんパーク)は、大分…

DB をクラウド移行したらレコードが見えなくなった話

【Unit4 ブログリレー7日目】 こんにちは、エムスリーエンジニアリンググループの堺澤です。 エムスリーではクラウド移行(=脱オンプレ)の活動が盛んに行われています。 www.m3tech.blog www.m3tech.blog 今回は私が担当していたサービスで DB をクラウド…

goquを駆使してgoでSQL構築も構造体マッピングもRDBテストもやる

【Unit4 ブログリレー6日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 最近まで開発していたm3ラウンジでは、goからRDBを利用していました。 m3ラウンジでは、SQLの組みやすさやテストのしやすさの観点で検討した結果、go…

Spring Boot + Flyway で複数の DB に接続したい!!!

【Unit4 ブログリレー5日目】 こんにちは。Unit4 Eng の西川です。JavaScript が好きですが、今回は JavaScript ではなく、最近やった Spring Boot + Flyway を利用しているシステムから別の DB への接続を増やした時の話をしたいと思います。 非常に可愛い…

いいねとその通知機能をDynamoDBで設計したら思ったよりムズい

【Unit4 ブログリレー4日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 今回は、SNSではごく一般的ないいねとその通知機能をDynamoDBを利用して実装したら思ったより大変だったので、その詳細をご紹介します。 キャナルシ…

PostgreSQL チューニングよもやま話

あるプロダクトで実施した PostgreSQL チューニングの実例を2つご紹介します.Bitmap Index,実行計画における統計情報の重要性,DISTINCT 句の挙動,メモリとディスクの関係などに触れます.

editorconfig-checkerを導入してコードレビュー時の摩擦を軽減する

【Unit4 ブログリレー 2日目】 永山です。 2023年に至ってもエディタに関する話題がプログラマ間のグルーミングツールとして機能していることからも判る通り、世には多様なエディタが存在し、またそれらを使用するプログラマが存在します。 言うまでもなく各…

ViteとVitestで開発のリズムを上げる

【Unit4 ブログリレー 1日目】 Viteは"ヴィート"と読みます♫ もう覚えましたね♫*1 こんにちは、エムスリーエンジニアリンググループの山田(@Satoki_1226)です。 本日より、Unit4でもブログリレーを行うこととなりました。Unit4は医療系ポータルサイト m3.com…

抗がん剤の副作用をAIで予測する

こんにちは、AI・機械学習チームの浮田 (id:uKita) です。 今年のMultinational Association of Supportive Care in Cancer (MASCC)という国際学会にて、私たちのチームがサポートしてきた研究開発がオーラル発表されたので、今回はその内容について紹介しま…

gokartの分散並列化ライブラリkannonの中身

こんにちは!AI・機械学習チームの小栗です。普段は東京大学電子情報工学科で学生をしており、エムスリーには業務委託で参画しています。 今回はkannonというライブラリについて紹介します。kannonはgokartという機械学習向けパイプラインライブラリを分散並…

今日から使えるgokart小技集

img{ display: inline-block; box-sizing: border-box; border: solid 1px #333; } こんにちは! エムスリーエンジニアリンググループ AI・機械学習チームの氏家です。 AI・機械学習チームでは多くのMLプロダクトを開発・運用していますが、そのうちのほとん…

ファイル競合を防ぐロック技術 in gokart

こんにちは、AI・機械学習チームの池嶋です。 複数のjobを並列して実施していると、同じファイルを同時に操作する可能性があります。 このときに同時編集をするとファイルが破損したり変更が消滅したりする、データの競合問題が発生することがあります。 こ…