タグ

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

  • データベース自作勉強会・輪実装会のススメ - エムスリーテックブログ

    先日、社内有志で開催していたDB自作 Database Design and Implementation の輪読会ならぬ輪実装会がついに完結を迎えました。 RDBMSをゼロから、毎週一人ずつ、1章分を実装してPullRequestを出しつつ資料も準備して発表をこなすという一見ハードな勉強会で、完走できるか不安もありつつスタートしましたが、やってみるとめちゃくちゃ楽しく最後まで完走できました。 記事ではみなさんに「うちでもやってみたい」と思ってもらえることを願って、読んだ推しポイントや、どのように勉強会を進めたかを紹介したいと思います。 感動で涙の出るコード Part1: おすすめポイント が良い みんなでワイワイやるのが良い 3ヶ月で完走できるのがいい 完走後のモチベーションアップが良い Part2: 輪実装会 募集 参加者 進め方・実装 期間 Part3: おれたちのDB実装

    データベース自作勉強会・輪実装会のススメ - エムスリーテックブログ
    bopperjp
    bopperjp 2024/10/01
  • ちょっとJavaのsynchronizedをGoに移植しようとしたはずが、なぜか1万文字の作文ができた - エムスリーテックブログ

    AI機械学習チームのブログリレーも9日目になりました。同チームの横@yokomotodです。 日はJavaGoを題材に並行プログラミングまわりの自由研究をしたお話をしてみたいと思います。 3部構成で、パート1では発端となった「排他制御」について、パート2では「メモリの可視化」について、それぞれJavaGoを比べてみました。 最後にパート3では、それらの動作を規定する「メモリモデル」について、わかりやすく解説されているリソースを紹介します。 長過ぎる! 3行で!! パート1: synchronized = 「排他制御」? Java synchronized vs Go sync.Mutex Goで再入可能なロック? 仮にGoで再入可能なロックを実装するなら? Javaが再入可能を選択した理由 パート2. sycnhronized = 「排他制御」+「メモリ可視性の保証」 Java

    ちょっとJavaのsynchronizedをGoに移植しようとしたはずが、なぜか1万文字の作文ができた - エムスリーテックブログ
    bopperjp
    bopperjp 2024/08/19
    「メモリモデル」って未だにちゃんと理解してない。
  • エムスリー、データ基盤チームはじめました - エムスリーテックブログ

    エンジニアリンググループ、データ基盤チームの鳥山(@to_lz1)です。 私は過去何度かデータ基盤に関連する記事を出していますが、データ基盤チームという肩書を付けるのは今回が初めてとなります。それもそのはず、エムスリーでは2023年4月に新たにデータ基盤チームを新設したからです*1。 エンジニアリンググループ紹介資料にシュッと追加された「データ基盤チーム」 そこでこの記事では、チーム創設の背景や立ち上げ期に行ったこと、そして今取り組んでいることについて紹介させて頂きます。 データ基盤のみならず、エムスリーエンジニアリンググループの雰囲気を知る一助になれば幸いです。ということで、この記事は 【データ基盤チーム ブログリレー1日目】です。 チーム創設の背景 データの品質担保 リアルタイムのデータ連携 より大規模・複雑なデータ活用 立ち上げ期にやったこと ミッションの策定 他チームとの連携強化

    エムスリー、データ基盤チームはじめました - エムスリーテックブログ
    bopperjp
    bopperjp 2024/03/27
  • メール配信システムを SaaS から新規社内システムへ移行した - エムスリーテックブログ

    この記事はエムスリーAdvent Calendar 2023の20日目の記事です。 エムスリーエンジニアリングG コンシューマチームの松原(@ma2ge)です。 今回はコンシューマチームで利用していたSaaSのメール配信システムを、新規に開発した社内システムに移行した経緯や設計時に意識したことなどについて紹介します。 最近使っているキーボードの様子 背景 今回移行する契機となったのはメールの配信数増加に伴うSaaSの利用料金増です。 特に定期的に送るメルマガ配信については、配信量も多く利用コストを押し上げる要因となっていました。 そのためメルマガ配信で大量に使用する部分についてのシステム移行検討が始まりました。 移行検討 SaaSから移行後のシステムについて試算すると、システムの開発や利用料といったコスト面では社内で構築したシステムの方が大幅にコストが下がることがわかりました。 しかしなが

    メール配信システムを SaaS から新規社内システムへ移行した - エムスリーテックブログ
    bopperjp
    bopperjp 2023/12/20
    ギー。。メールサーバとか触りたくもない。。
  • 9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか - エムスリーテックブログ

    私は日付時刻の処理が大好きです。 タイムゾーンの問題でデータ抽出が9時間分漏れていたとか、朝9時の始業前のログが昨日付けになってしまっていたなんていう問題が起こると喜んじゃうタイプ。 そんな私にとって、各プログラミング言語が標準で持っている日付時刻型クラスにはそれぞれ思うところがあり、今日はちょっとその品評会をしてみたいと思います。 エムスリーエンジニアリンググループ、Unit1(製薬企業向けプラットフォームチーム)三浦(@yuba@reax.work) [記事一覧 ]がお送りいたします、エムスリー Advent Calendar 2023の2日目です。 至高の日付時刻型を持つ言語、BigQuery SQL 不足はないが蛇足、Java 8 日付時刻で画竜点睛を欠いたC# C#よりややまし、Python 型は良い構成、なのに命名と処理関数で損しているPostgreSQL まとめ We ar

    9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか - エムスリーテックブログ
    bopperjp
    bopperjp 2023/12/02
  • 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 開発 - エムスリーテックブログ
  • Gmailのメール認証規制強化への対応って終わってますか? - エムスリーテックブログ

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

    Gmailのメール認証規制強化への対応って終わってますか? - エムスリーテックブログ
    bopperjp
    bopperjp 2023/10/24
  • エムスリーで活躍する人の型を観察してみた その1 - エムスリーテックブログ

    こんにちは、プロダクトマネージャーの髙田です。辛いものが好きです。 最近は、昼ごはんに台湾ラーメンべて、夜に二郎インスパイアで台湾まぜそば(辛口)をべました。 麺半分コール忘れて胃が爆発 入社からいつのまにか1年経過し、振り返りも込めてエムスリーで働く人を「観察」して学んだことを書こうと思います。 私は入社後半年ほど、インプット8:アウトプット2の時間の使い方をしていて、特に最初の3ヶ月は「エムスリーの型・勝ちパターン」のインプットを重点的に行っていました。 具体的には、 コミュニケーション・行動・思考法などをMTGSlack等から観察し 学んだことを週1で取締役CTOの山崎さんに報告 会話を通してさらに学びを深める&誤学習してないか確認 という手順で進めていきました。 この一連の経験が今でも役に立っていると感じる & 入社初期に「見習うべき型・勝ちパターン」のインプット期間があっ

    エムスリーで活躍する人の型を観察してみた その1 - エムスリーテックブログ
    bopperjp
    bopperjp 2023/10/03
    「『あたりまえ』を『あたりまえ』にやれる」時点で、そりゃ「リスペクト」できるわ。「『あたりまえ』を『あたりまえ』にやれない」とか「『あたりまえ』の齟齬が大きい」とかでディスリスペクトが発生するんよ
  • いいねとその通知機能をDynamoDBで設計したら思ったよりムズい - エムスリーテックブログ

    【Unit4 ブログリレー4日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 今回は、SNSではごく一般的ないいねとその通知機能をDynamoDBを利用して実装したら思ったより大変だったので、その詳細をご紹介します。 キャナルシティ劇場は、福岡県福岡市博多区の複合商業施設「キャナルシティ博多」のシアタービル最上階に位置する劇場。文には特に関係ありません。 m3ラウンジ m3ラウンジのいいねとその通知の要件 RDBで実装したらどうなるか いいね機能 通知機能 DynamoDBで実装する いいね機能 通知機能 いいねする いいねを取り消す 通知を表示する 未読の通知の取得 未読の通知数 未読の通知を既読にする テーブル設計むずい PKとSKに何を選ぶか LSIは途中から作れない DynamoDBをローカルで動かして設計する まとめ We are h

    いいねとその通知機能をDynamoDBで設計したら思ったよりムズい - エムスリーテックブログ
  • 抗がん剤の副作用をAIで予測する - エムスリーテックブログ

    こんにちは、AI機械学習チームの浮田 (id:uKita) です。 今年のMultinational Association of Supportive Care in Cancer (MASCC)という国際学会にて、私たちのチームがサポートしてきた研究開発がオーラル発表されたので、今回はその内容について紹介します。発表のアブストラクトはこちらです。 www.eventsforce.net 臨床AIの開発 今回の研究の背景 データセット 解析 データ量があまり多くないことへの対処 画像の前処理 結果 データ量と精度の関係 まとめ We're hiring! 臨床AIの開発 AI機械学習チームでは、臨床現場で活用できるAIの開発に取り組んでいます。これまで、間質性肺炎の診断AICOVID-19肺炎の重症化を予測するAIをはじめ、様々な疾患や症状を対象にモデルを開発してきました。これらの

    抗がん剤の副作用をAIで予測する - エムスリーテックブログ
    bopperjp
    bopperjp 2023/08/21
    m3 すげーなー。
  • エムスリー執行役員VPoE兼PdMの山崎が、エンジニア、QA、デザイナー、プロダクトマネージャーにお薦めする良書7選 - エムスリーテックブログ

    こんにちは。最近、お掃除職人きよきよ*1というYouTuberにハマってしまい掃除に明け暮れ、近所のドラッグストアでドメストとパイプフィッシュの原材料が同じことなどを知って、ふむふむと楽しんでいるエムスリー執行役員兼VPoE兼PdMの山崎です。薬剤を活用した掃除はDr. STONE*2気分で面白いですね。 ブログはエムスリー Advent Calendar 2021の25日目の記事です。 エムスリー Advent Calendar 2021の締めとして、今年も「VPoEとしてこの◯年間を振り返って」シリーズで2021年を締めくくろうかとも思ったのですが、先日fukabori.fmの第59回と第60回でしっかり語ったのと、流石に3年連続でやっていて4年目も同じネタだと皆さん飽き飽きするかなとも思ったので、日は新企画として「エムスリー執行役員VPoE兼PdMの山崎が、エンジニア、QA、デザ

    エムスリー執行役員VPoE兼PdMの山崎が、エンジニア、QA、デザイナー、プロダクトマネージャーにお薦めする良書7選 - エムスリーテックブログ
  • Bulk insertでも20時間以上かかっていたMySQLへのインサート処理を1時間以内にする - エムスリーテックブログ

    この記事はエムスリー Advent Calendar 2022の30日目の記事です。 前日は id:kijuky による チームメンバーのGoogleカレンダーの休暇予定一覧をスプレッドシート+GASで作った でした。 AI機械学習チームの北川(@kitagry)です。 今回はMySQLへのインサートを20倍以上高速化した話について書きます。 仕事をちゃんとしてるか見張る TL; DR はじめに 今回のテーブル バイナリログを無効化する 追試 LOAD DATA INFILE 追試 テーブルの正規化 インデックスを一時的に剥がす まとめ We are hiring!! TL; DR バイナリログをオフにする LOAD DATA INFILEを使う インデックスを一時的に消す はじめに AI機械学習チームではサイトトップからアプリに至るまで多くの推薦システムがあります。 そこでは推薦ロ

    Bulk insertでも20時間以上かかっていたMySQLへのインサート処理を1時間以内にする - エムスリーテックブログ
    bopperjp
    bopperjp 2022/12/31
  • エムスリーが誇る最強のプロダクトマネージャー育成環境:プロダクトマネージャー定例 - エムスリーテックブログ

    こんにちは、こんばんは。年末年始は12/24〜1/9まで17連休を取ってみた執行役員CTO兼VPoPの山崎です。この連休に向けてスノーピークのIGTを買おうと思ったのですが、3ユニットのノーマルと4ユニットのロングどちらを買うべきか、悩みに悩んで、結果ノーマルを2つ買えば6ユニット!ということに気がついて平穏を取り戻しました。もちろんリビングシェルロングProも調達しました。あとは年越しキャンプの予約を取るだけです(さっさと取らないと)。 ブログはエムスリー Advent Calendar 2022とプロダクトマネージャー Advent Calendar 2022の25日目の記事です。 双方の読者に届くようにダブルエントリーしてみました*1。 昨年は以下のとおり、エンジニア、QA、デザイナー、プロダクトマネージャーのためになりそうな良書を7冊選んでみました。未読の方がいれば是非読んでみて

    エムスリーが誇る最強のプロダクトマネージャー育成環境:プロダクトマネージャー定例 - エムスリーテックブログ
  • エムスリーのデータ基盤を支える設計パターン - エムスリーテックブログ

    こんにちは、エムスリー エンジニアリンググループ の鳥山 (@to_lz1)です。 ソフトウェアエンジニアとして 製薬企業向けプラットフォームチーム / 電子カルテチーム を兼任しています。 ソフトウェアエンジニアという肩書きではありますが、私は製薬企業向けプラットフォームチームで長らくデータ基盤の整備・改善といったいわゆる "データエンジニア" が行う業務にも取り組んできました。 日はその設計時に考えていること / 考えてきたことをデータ基盤の設計パターンという形でご紹介しようかと思います。多くの企業で必要性が認識されるようになって久しい "データ基盤" ですが、まだまだ確立された知見の少ない領域かと思います。少しでもデータエンジニアリングを行う方の業務の参考になれば幸いです。 データ基盤の全体像 収集部分の構成 RDBデータ ログデータ 活用部分の構成 データマートの実例 「データ基

    エムスリーのデータ基盤を支える設計パターン - エムスリーテックブログ
  • QAエンジニア採用のために、ペルソナを作成してみたお話 - エムスリーテックブログ

    こんにちは。エンジニアリンググループ クオリティアシュアランス(QA)の窪田です。あっという間に時間が過ぎてしまっていることに焦りを感じています。今年度から採用にも関わらせていただいており、様々な施策を実施中です。今回は、ひょんなことから採用のためのペルソナを作成し、社内展開したところ、ポジティブな声が多く上がったため、ペルソナ作成の過程とその結果の例をご紹介したいと思います。 背景 採用ペルソナ 組織目標の明確化 必要な人材の明確化 ペルソナの作成 名前 年齢 プロフィール 課題 達成したいこと 感情 代替手段 利用メディア スキル 関係者内でのすり合わせ QAペルソナの例 感想 We're hiring! 背景 今年度からデザイングループのGLに就任した古結から、デザイングループの紹介がありました。その中で知り合いにデザイナーがいたら紹介して欲しいといった話もあり、 資料 に、採用ペル

    QAエンジニア採用のために、ペルソナを作成してみたお話 - エムスリーテックブログ
    bopperjp
    bopperjp 2020/08/31
  • タイムゾーンを考慮した日時の扱いのベストプラクティス - エムスリーテックブログ

    こんにちは、server-side kotlinterraform を書くことが多い、エンジニアリングGの矢崎(id:Saiya)です。 タイムゾーンや日時の扱いについての話題がホットな昨今ですが、 そういった日時の扱いについて例えば以下のようなお話を受けることが少なからずありました: とりあえず日時は UTC からの時差情報付きで扱えばいいんでしょ? DB に保存するときもタイムゾーン情報付きで入れておけばいいんでしょ? こういったお話を振られた際に、思うところを一言でサッと説明できずもやもやする事もあり、 また web サービスにおいて日時・タイムゾーン・オフセットをどう扱うべきか?納得の行く説明をあまり見つけられなかったため、 筆者なりに考えをまとめてみました。 国家的祭典のために急にサマータイムが導入されるといった話に限らず、 クラウドサービスが UTC+0 の日時になってい

    タイムゾーンを考慮した日時の扱いのベストプラクティス - エムスリーテックブログ
    bopperjp
    bopperjp 2018/08/14
    DBの保存データで結局オフセットが消えるので、内部的にはUTC or Unix Time で扱って、APIの境界面でOffsetDatetimeにするのが良さそう。その場合、日時集計データとかどう扱ってんだろ?tzに依存するし。
  • 1