タグ

ブックマーク / www.m3tech.blog (95)

  • OOMしたCronJobのメモリ制限を「いい感じ」に増やし、不必要な課金・障害対応を減らす - エムスリーテックブログ

    初めまして、2024年3月後半にエムスリーのAI機械学習チームで10日間インターンに参加させていただいた東(@azuma_alvin)です。 もしタイトルが何かに似ていると感じた方がいれば、只者ではないと思われます。 洗練されたデザインでかっこいいと思ったエムスリーオフィスの受付の写真 この記事では、KubernetesCronJobでOOM(Out Of Memory)が発生した時に「いい感じ」にメモリ制限を増加させてくれるbroomの開発経緯とその実装についてお話しします。 また、インターン期間で感じたエムスリーという「ギーク集団」の中で開発する楽しさについてもお伝えできればと思います。 2週間でゼロ(nil)から開発したbroomは、OSSとしてGitHubで公開しているのでコントリビュートお待ちしております! github.com CronJobのOOMとは CronJobのO

    OOMしたCronJobのメモリ制限を「いい感じ」に増やし、不必要な課金・障害対応を減らす - エムスリーテックブログ
    honeybe
    honeybe 2024/04/12
  • 間質性肺炎を検出するAIを開発し、その有効性を検証した研究を論文化しました - エムスリーテックブログ

    こんにちは、AI機械学習チームの浮田です。最近、私が筆頭著者の論文が公開されたので、今回はその紹介をします。 発表した論文はこちらです: www.ncbi.nlm.nih.gov この論文では、 胸部X線 (レントゲン) から間質性肺炎を検出するAIの評価を行いました。 結果、このAIを使うことで医師の読影成績が統計的有意に改善しました。 このAIを使うことで間質性肺炎の見落としを減らすことができることが期待されます。 エンジニアリンググループで論文を書くのは珍しい機会でしたが、査読対応など大変な時も経て無事公開することができました。 図1. 今回開発・検証した医療AIの実際の画面。プレスリリースより転載 今回開発・検証した医療AIの概要 有効性を検証するための臨床試験 目的 データセット、実験設定 結果 評価方法の詳細 感想 We're hiring! 今回開発・検証した医療AIの概要

    間質性肺炎を検出するAIを開発し、その有効性を検証した研究を論文化しました - エムスリーテックブログ
    honeybe
    honeybe 2024/02/22
  • Goaのlinterを作った: Goalint - エムスリーテックブログ

    永山です。 記事では筆者の開発した、Go製のWebフレームワーク Goa (v3) 向けのlinterツール goalint を紹介します。 些細な間違いの検知を人間に頼ることはやめたい Goa とは モチベーション 既存のlinter goavl IBM OpenAPI Validator goalint 使用方法 goavlとのアプローチの違い 結果 We are hiring!! Goa とは goa.design Goaは、GoのDSLでHTTPやgRPCAPIの仕様を記述するというアプローチが特徴的なGo製のWebフレームワークです。 昨今ではWeb APIの仕様の記述に OpenAPI を使用することも少なくないかと思いますが、GoaはそれをGo上で行うようなものであるといえます。 // Goaで記述されたAPI仕様の例 (以下より, 一部改変) // https://gi

    Goaのlinterを作った: Goalint - エムスリーテックブログ
    honeybe
    honeybe 2024/01/31
  • 型を少し工夫して、より安全なコードへ - エムスリーテックブログ

    こんにちは、デジスマチームでエンジニアをやっている堀田です。 これまで、TypeScriptの型で色々試したことがあります。 2年前: TSの型で麻雀の点数計算 最近: 型で足し算 遊ぶことの方が多かったですが、先日M3 TechTalkで実用的かも?と思える話をしました。 そこでは、3つの場面を想定して、それぞれの場面でより安全なコードを書くための型定義を提案しました。 この記事では、その時の話をまとめて紹介します。 1. key? 2. ログ送信 Rest parameters with tuple types Function Overloadsでも実現可能 3. 画面遷移パス生成 まとめ We are hiring!! 1. key? 早速、1つ目の場面です。 ここでは、「パラメータを受け取って、その値によって生成か更新か挙動が変わる」以下のような関数を扱うことを考えます。 fun

    型を少し工夫して、より安全なコードへ - エムスリーテックブログ
    honeybe
    honeybe 2024/01/16
  • DMARCの対応って進んでますか? - エムスリーテックブログ

    こんにちは。エムスリーでSREやセキュリティに従事している山です。 以前に、「Gmailのメール認証規制強化への対応って終わってますか?」という記事を書かせていただいておりますが、そこでちょい出しだけしたDMARCについて書かせていただきたいと思います。 www.m3tech.blog Gmailへの対応を実施するだけならば、「とりあえずよくわかんないけど入れておけばOK」なのですが、そもそもDMARCは何のために存在していてどのように活用にするのかというところに触れていきたいと思います。 DMARCとは SPF/DKIM DMARC登場 DMARCで実施できるポリシー三種 ポリシーの強化 強化できるか DMARCレポート RUA/RUFの二種のレポート DMARCレポートの確認ツール どう判断するか メール転送 今後 まとめ We are hiring! DMARCとは DMARCの日

    DMARCの対応って進んでますか? - エムスリーテックブログ
    honeybe
    honeybe 2023/12/26
  • ギークでスマートな人達が活躍する組織を支える3つのポイント - エムスリーテックブログ

    長女と2人で水族館に行ったときの写真。帰路のバスで「2人でまた来たいねえ」と言われて泣きました。例のごとく文とは全く関係がありません。 はじめに こんにちは。最近、ダンダダンのアニメ化が発表され、嬉しい気持ちのエムスリー エンジニアリンググループ VPoE 河合(@vaaaaaanquish)です。 皆さんは『Hit Refresh』という書籍をご存知でしょうか。 現Microsoft CEOであるサティア・ナデラの自伝であり、OpenAIGitHubと現在"Hit"を続けているMicrosoftに成る過程において、会社を"Refresh"してきた物語が書かれています*1。 その中にあるサティア・ナデラのテクノロジー文化をリスペクトした一節が、私は大好きです。 テクノロジーは魅力的だが、 それ以上に魅力的なのがそれを設計した人達の深いこだわりだ。 実際にサティア・ナデラがMicroso

    ギークでスマートな人達が活躍する組織を支える3つのポイント - エムスリーテックブログ
    honeybe
    honeybe 2023/12/24
  • ノーコードツールの高度な処理をコードで実装!iOS・macOSのショートカットアプリで手軽に定形プロンプト - エムスリーテックブログ

    この記事はエムスリーAdvent Calendar 2023の23日目の記事です。 エンジニアの星川 (id:oboenikui) です。 突然ですが、弊社では毎日ダジャレが飛び交っています。 より良い仕事を目指しています #エンジニア採用川柳 pic.twitter.com/x5hik0KQOA— エムスリー エンジニア公式 (@m3_engineering) 2022年9月7日 ダジャレが飛び交うことの良し悪しはさておき、こんな会社の中なら思わず唸ってしまうような上手いダジャレを日常的に投稿できれば、社内で尊敬の眼差しを向けられること間違いなしです。 そこで今回は、「ChatGPTに上手いダジャレを作らせて、チャットに即座に投稿できる機能」を作っていきたいと思います。 ChatGPTダジャレを作らせる iOS, macOSのショートカットアプリ Cherriを使ってショートカットを実

    ノーコードツールの高度な処理をコードで実装!iOS・macOSのショートカットアプリで手軽に定形プロンプト - エムスリーテックブログ
    honeybe
    honeybe 2023/12/23
  • 世にも奇妙なQUERY関数 ~冬のスプレッドシート特別編~ - エムスリーテックブログ

    この記事はエムスリーAdvent Calendar 2023の17日目の記事です。 こんにちは、エムスリーエンジニアリンググループ/ BIR(Business Intelligence and Research) チーム の遠藤(@en_ken)です。 皆さんGoogleスプレッドシート使っていますか? エンジニアだとあまり使わない方もいるかも知れませんが、BigQueryとの連携が非常に容易なため、 データをビジネスサイドに見せたり分析したりする際には便利なツールです。 BigQueryをバックエンドと考えると、スプレッドシートは簡易なフロントエンドのフレームワークとも捉えられます。 ちょっとしたビューの変更はセルで行えるため、 BIRでは業務を整理する際のプロトタイピングとして、 あるいはビジネスサイドの要件でExcel的なインタフェースが好ましいときのアプリケーションの作成方法として

    世にも奇妙なQUERY関数 ~冬のスプレッドシート特別編~ - エムスリーテックブログ
    honeybe
    honeybe 2023/12/17
  • Axon Framework で簡単にEventSourcing+CQRSなアプリケーションを作る - エムスリーテックブログ

    この記事はエムスリーAdvent Calendar 2023の13日目の記事です。 こんにちは、製薬企業向けプラットフォームチームエンジニアの桑原です。 前回のJJUG CCC の登壇についてのブログで Axon Framework について軽く触れました。今回はAxon Frameworkがどのようなもので、どういった使い方をするかを紹介したいと思います。 背景:CommandとQueryに最適なモデルが異なる CommandとEvent追記型との相性は良かった QueryがEvent追記型との相性は良くなかった 苦肉の解決策 Axon Framework ざっくりアーキテクチャ Command EventからReadModelへのマッピング Query まとめ 参考記事 We are Hiring! 背景:CommandとQueryに最適なモデルが異なる 上述のリンクで紹介したメッセー

    Axon Framework で簡単にEventSourcing+CQRSなアプリケーションを作る - エムスリーテックブログ
    honeybe
    honeybe 2023/12/14
  • GKEでMLバッチ運用のコツ - エムスリーテックブログ

    この記事はエムスリーAdvent Calendar 2023とMLOps Advent Calendar 2023の12日目の記事です。 AI機械学習チームの北川です。 最近はのかまってアピールがすごすぎて、よく仕事の邪魔されます。 かまって欲しがる 現在AI機械学習チームではMLのバッチをGoogle Kubernetes Engine(GKE)上で運用しています。 現在数えてみたところ240個以上のバッチがGKE上で動いているようです。 AI機械学習チームでは2019年頃から約4年ほどGKE上でMLバッチを運用しています。 その間にコストの最適化や安定したバッチの運用などに力を入れてきました。 この記事では、主にスケールインとコスト最適化について説明しようと思います。 チームのMLについて全体を把握したい場合は以下の記事が詳しいです。 www.m3tech.blog GKEの

    GKEでMLバッチ運用のコツ - エムスリーテックブログ
    honeybe
    honeybe 2023/12/12
  • Looker APIを活用して確実なデプロイを実現させる - エムスリーテックブログ

    これはエムスリーAdvent Calendar 2023 の10日目の記事です。 こんにちは、エンジニアリンググループの石塚です。最近は年明けに控えている結婚式という大イベントに向けてダイエット中でスポーツジムへ通い、有酸素運動するのと並行して事制限をして追い込んでいる毎日です。2ヶ月ほどで6kg弱の減量を目標に地道に日々目標をスプレッドシートにまとめながら追い込んでます。(今の所良いペースです。) 今回は、弊社で利用しているLookerというBIツールを利用しているなかで発生したつらみの共有と対策について共有します。少しニッチな内容ですが、自分自身が調べているときに同事象で苦しんでいるようなブログ記事が見当たらなかったこともあり、ニッチな人を対象に有益な内容になれば幸いです。 11/6からの体重減少とランニング累計の記録をグラフにしました。 Lookerとは? デプロイに成功したのに想

    Looker APIを活用して確実なデプロイを実現させる - エムスリーテックブログ
    honeybe
    honeybe 2023/12/11
  • 年末だしRedashのクエリ棚卸しでもしましょう (調査用サンプルクエリ付き) - エムスリーテックブログ

    これはエムスリー Advent Calendar 2023の9日目の記事です。 前日の記事はSREチーム後藤の「共有会をより効果的にするために考えたあれやこれ」でした。 エムスリーエンジニアリンググループ データ基盤チームの木田です。 師走です。12月といえば年末に向けて大掃除の季節です。 古来日では12月に宮中で「煤払い」という行事を行う風習があったことが、今日年末の時期に大掃除をする由来とされているそうです。 私の自宅はまだ何も手をつけられていませんが、せめてBIツールの中だけでもということでRedashのクエリ棚卸しをした話*1をご紹介します。 エムスリーにおけるRedashの活用状況 長年の運用の結果起きた性能問題 問題の特定と発生原因 Workerの増設 クエリの棚卸しと改善 使われていない定期実行クエリの停止 サンプル1 直近参照なしかつ定期実行クエリ クエリの実行時間改善

    年末だしRedashのクエリ棚卸しでもしましょう (調査用サンプルクエリ付き) - エムスリーテックブログ
    honeybe
    honeybe 2023/12/10
  • kannonを実プロダクトに組み込んで3倍高速化を達成した話 - エムスリーテックブログ

    こんにちは!エムスリー Advent Calendar 2023 7日目担当の小栗 (@irungo_ic)です。私は東京大学 電子情報工学科で学生(B4)をしており、エムスリーには業務委託で参画しています。 今回はgokartの分散並列化ライブラリkannonをエムスリーの実プロダクトに組み込んだ取り組みについて紹介します。結果として、社内のとあるプロダクトのIntegration TestのJobを7時間30分から2時間20分に短縮するという、約3.2倍の高速化を達成できました!それまでに生じた苦労、kannonへの追加機能などについてお話しします。 kannonとは? kannonとは、M3が主体となって開発しているOSSのデータパイプラインライブラリgokartをk8s上で分散並列実行するためのライブラリです。私が今年3月に参加したAIチームでのインターンで開発したライブラリで、そ

    kannonを実プロダクトに組み込んで3倍高速化を達成した話 - エムスリーテックブログ
    honeybe
    honeybe 2023/12/07
    うぐぅ
  • スマートフォンアプリのA/Bテスト実装例 - エムスリーテックブログ

    これは エムスリー Advent Calendar 2023 の3日目の記事です。 前日は三浦さん(@yuba)による「9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか」でした。 こんにちは、エムスリーエンジニアリンググループ・マルチデバイスチームの藤原です。 マルチデバイスチームでは複数のスマートフォンアプリを開発しており、新機能の追加やレイアウト変更をする際はA/Bテストをすることもしばしばです。 今回は弊チームで採用しているA/Bテストの実装方法を2通り紹介します。 スマートフォンアプリのA/Bテスト Remote Configを用いた実装例 GraphQLを用いた実装例 GraphQLで実装してみてちょっとした感動があった We are hiring!! スマートフォンアプリのA/Bテスト A/Bテストとは、特定の要素を変更し

    スマートフォンアプリのA/Bテスト実装例 - エムスリーテックブログ
    honeybe
    honeybe 2023/12/03
  • 世界最速で Astro SSR を Amplify Hosting で動かしてみた - エムスリーテックブログ

    こんにちは。エムスリーエンジニアリンググループのコンシューマチームでアーキテクトをしている園田です。 日はコンシューマチームのブログリレー 1 日目です。 2023/11/20 (日時間だと日) に AWS の Amplify Hosting で Next.js/Nuxt.js 以外の SSR サポートが発表されました。 aws.amazon.com aws.amazon.com さっそく Astro の node アダプターを使った SSR な Web サイトを Amplify Hosting できるかやってみました。 現在公式でサポートされているのは Nuxt のみですが、以下のドキュメントに他の SSR フレームワークにも適用できるようにディレクトリ構成などの仕様が記載されています。 docs.aws.amazon.com このドキュメントを参考に Astro SSR を構築し

    世界最速で Astro SSR を Amplify Hosting で動かしてみた - エムスリーテックブログ
    honeybe
    honeybe 2023/11/23
  • AWS Lambda でも Rails で Web 開発 - エムスリーテックブログ

    日はコンシューマチームのブログリレー2日目です。 エムスリーエンジニアリングG コンシューマチームの松原(@ma2ge)です。 今回は以前筆者が M3 Tech Talk で話した AWS Lambda での Web アプリ開発に Rails を使う内容について、 若干内容を変えつつ Tech Blog の方でも紹介をしたいと思います。 最近使っているキーボードの様子 現在のチームで担当している主要なアプリは Rails で書かれていて、ほとんどがコンテナ化され Amazon ECS(ECS) と Fargate を使って運用されています。 そんな中今年の初めに AWS Lambda(Lambda) に適したプロジェクトが話にあがりました。ただ RailsLambda しかも Web アプリとなるとあまり採用事例を耳にしません。 とはいえ使い慣れている Rails をそのまま生かし

    AWS Lambda でも Rails で Web 開発 - エムスリーテックブログ
    honeybe
    honeybe 2023/11/23
  • 技術書典15の会場で感じた技術の共有空間 - エムスリーテックブログ

    共有空間とは エムスリーVPoEの河合(@vaaaaanquish)です。エムスリーエンジニアリンググループより有志のエンジニアが集まり、11/12に開催された『技術書典15 オフライン』に新刊を携えて参加しました。 会社や個人、技術分野、クラスタの垣根を超えて、技術で繋がり気付きを与えられ、より技術が好きになる空間だったなと感じた当に良い1日でした。 技術書典会場での出会い エムスリーテックブック5とエムスリーブース おわりに We're hiring !!! 技術書典会場での出会い 私自身は、過去にもエムスリーテックブックに寄稿しているのですが、オフラインでの技術書典は初めての参加でした。 会場では、実際に眼の前で詳しく話を聞きながら見誌を読むと、つい買ってしまうコミケ現象を感じました。 私は、機械学習関連のや企業vimから移行チャレンジしたいと常々思っていたVSCode関連

    技術書典15の会場で感じた技術の共有空間 - エムスリーテックブログ
    honeybe
    honeybe 2023/11/20
  • zeno.zsh を活用して Node.js パッケージマネージャの違いを吸収する - エムスリーテックブログ

    永山です。 神話の時代、天を衝く巨塔を築こうとした高慢な人類の Node.js パッケージマネージャは様々に引き裂かれたと言われています。 現代においてよく使用されているものだけでも npm, Yarn, pnpm などがあり、エムスリー社内でもプロジェクトによってどのパッケージマネージャが採用されているかはバラバラです。 それぞれのパッケージマネージャは異なるコマンドラインインタフェース (npm / yarn / pnpm) によって操作する必要があるため、作業するプロジェクトによって適切なコマンドを呼び分けなければなりません。めんどくさ。 記事では Zsh プラグインである zeno.zsh を用いてこれらパッケージマネージャの差異を吸収することで快適な開発体験を実現する方法、およびその過程で模索した zeno.zsh の設定ファイルの TypeScript 化の試みについて紹介し

    zeno.zsh を活用して Node.js パッケージマネージャの違いを吸収する - エムスリーテックブログ
    honeybe
    honeybe 2023/10/26
  • Gmailのメール認証規制強化への対応って終わってますか? - エムスリーテックブログ

    こんにちは。エムスリー・QLife(エムスリーのグループ会社)・エムスリーヘルスデザイン(エムスリーのグループ会社)でエンジニアとして各種作業に関わっている山です! 以前もメール送信の話を書かせていただいたことがありますが、今回もまたメールネタとなります。今回のお題はメールセキュリティです。 大量メール送信のための予備知識 - エムスリーテックブログ すでにご覧になった方もいるかと思いますが、次のようなニュースが流れています。 www.proofpoint.com この「GoogleYahooの新Eメール認証要件」ってつまりどういうことよ? というところを具体的にどのように進めているかについて書かせていただきたいと思います。 2023/12/18追記 : Googleからメール送信にTLSを使うことが追加要件として示されました。 TL;DR とりあえず何から始める? 何はともあれ実際に

    Gmailのメール認証規制強化への対応って終わってますか? - エムスリーテックブログ
    honeybe
    honeybe 2023/10/24
  • 超一流のプロダクトマネージャーへの道 - エムスリーテックブログ

    こんにちは。エンジニアリンググループ プロダクト支援チームでプロダクトマネージャーをしている中村です。 2019年5月にエムスリーに入社してから、早4年が経ちました(うち1年半の出産・育児のための休業期間を挟んでいます)。 ちなみにエムスリー入社前の経歴としては、大手メガベンチャーの事業企画からキャリアをスタートし、企画職、プロジェクトマネージャー等を経てプロダクトマネージャーを3年ほどやっていました。 私がエムスリーに入社してから半年後の2019年11月に、以下の記事を書いていました。 www.m3tech.blog 当時の記事に書いた通り、私がエムスリーへ入社を決めた理由は下記4点でした。 エムスリーは新規事業の立ち上げサイクルが速く、プロダクトマネージャーとして「製品を見つける」フェーズにチャレンジできる環境であること 尊敬できるプロダクトマネージャーだと感じたVPoE山崎の直轄チー

    超一流のプロダクトマネージャーへの道 - エムスリーテックブログ
    honeybe
    honeybe 2023/10/04