タグ

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

  • ちょっと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万文字の作文ができた - エムスリーテックブログ
  • レビュー依頼の優先度について考えていたら、レビュー依頼をスコアリングしてソートするツールができた - エムスリーテックブログ

    こちらはAI機械学習チームブログリレー8日目の記事です。前回のブログは高田さんの「AI機械学習チームで学んだ開発技法で趣味の通知系ツールを量産した」でした! www.m3tech.blog エムスリーエンジニアリンググループ AI機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。 「レビュー依頼の優先度」といえば自分の作業とレビューのどちらを優先するかという意味での「優先度」の印象ですが、今回は複数あるレビュー依頼の中で、どのレビューから見ていくかという意味での「優先度」の話をします。 レビューの優先度を考えていく中で、「これは自動化したら面白いのではないか」と思い立ち、レビューの優先度をスコアリングするツールを作ったので、その経緯を簡単に紹介していきます。 レビューの優先度の再考 先に見るべきレビュー依頼の観点 急ぎ系のマージリクエスト メンションされてか

    レビュー依頼の優先度について考えていたら、レビュー依頼をスコアリングしてソートするツールができた - エムスリーテックブログ
  • メール配信システムを SaaS から新規社内システムへ移行した - エムスリーテックブログ

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

    メール配信システムを SaaS から新規社内システムへ移行した - エムスリーテックブログ
  • Enumとてもつらい、でも負けない - エムスリーテックブログ

    列挙型、JavaでいうならEnum型、使っていますか。使わないわけにいきませんよね。 でも、Enumを使っていたせいで辛い目にあったことありませんか。ないですか。それならきっともうすぐに辛い目にあうと思います。 Enumはすべてのプログラマに等しく辛みを与えてくれるからです。そんな辛みについて、ちょっと一緒に直視してみましょう。 エムスリーエンジニアリンググループ、Unit1(製薬企業向けプラットフォームチーム)三浦(@yuba@reax.work) [記事一覧 ]がお送りいたします、エムスリー Advent Calendar 2023の6日目です。 アプリケーションプログラミング上の辛み 1. 既存のif文が偶発的に意図しない方に倒れる 2. switch文に至っては「どちらでもない」で処理不発に アプリケーションプログラミング上の対策 1. 分岐条件をEnumに持たせる 2. swi

    Enumとてもつらい、でも負けない - エムスリーテックブログ
  • 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のメール認証規制強化への対応って終わってますか? - エムスリーテックブログ
  • PostgreSQL チューニングよもやま話 - エムスリーテックブログ

    【Unit4 ブログリレー3日目】 こんにちは,エムスリーエンジニアリンググループの榎田です.数学テレビゲームが好きです. 今回は,Unit4 で運用している "Docpedia" というサービスで実施した SQL チューニングの実例を2つご紹介します.普段の私が意識していなかった, RDBMS の内部機構に関する話が登場して面白かったので,今回の記事を書きました. なお,稿で扱う議論はすべて PostgreSQL 11.x 以上を対象としており,特にその他の RDBMS で同様の動作をするかは確認していません.定性的な挙動に共通するものはあるかもしれませんが,ここで述べた話はそのままは通らないであろうことをお断りさせてください*1. プロダクトについて index なしで意外と耐えたが,耐えきれなかった話 実際の SQL とテーブル定義 原因の分析 対応策 SELECT DISTIN

    PostgreSQL チューニングよもやま話 - エムスリーテックブログ
  • postfixによる大量メール送信にまつわる問題と対処 - エムスリーテックブログ

    【SREチーム ブログリレー2回目】 お疲れ様です。エンジニアリンググループ、コアSREの山です。 前回ブログリレー1回目の記事で大量メール送信のために基設定について書かせていただきました。 www.m3tech.blog 今回はそれを受けて構築したサーバで実際に発生したいくつかの問題、その問題への対処といったものを書かせてください。 エムスリーのメール送信で発生した問題とその対策 特定のメールサーバからの突然のメール拒否 メールの翌日までの滞留 TLS問題 メールがどうしても迷惑メール扱いされるという苦情 postfixのメール処理とステータス メールログの監視 まとめ We are Hiring! エムスリーのメール送信で発生した問題とその対策 実際にここ一年あたりの間に発生した問題とその問題への対応を記述していきたいと思います。postfixを利用して送信していますので設定はpo

    postfixによる大量メール送信にまつわる問題と対処 - エムスリーテックブログ
  • エンジニアリングの時間を生み出すドキュメンテーション術 - エムスリーテックブログ

    【データ基盤チーム ブログリレー 3日目】 こんにちは、エンジニアリンググループの石塚です。 趣味は筋トレです。好きなトレーニングはレッグカールです。今年2023年の1月に第一子が爆誕し、毎日子供の笑顔に癒されております。一方であまり言い訳にはしたくはないですが、事実自分自身の自由に使える時間は少なくなったなと感じております。そんな中でもトレーニングの時間は作りたいので、24時間ジムに契約してと娘が寝ている早朝の時間にウホウホトレーニングをしている今日この頃であります。時間のありがたみをとても感じるようになりました。 これは仕事でも同様かと思います。有限な時間の中でタスクを取捨選択して価値ある成果を上げていく事が仕事では求められます。ドキュメンテーションはその価値ある成果につながる時間を増やす一助になるかもしれません。 この記事では、ドキュメンテーションの必要性について言語化します。改め

    エンジニアリングの時間を生み出すドキュメンテーション術 - エムスリーテックブログ
  • 「小さいアプリケーションの作り直しだし,すぐ終わるだろ〜」 - エムスリーテックブログ

    ……と思っていたら5ヶ月かかりました. 【基盤開発チーム ブログリレー3日目】 「ほんとうにすぐ終わると思ったのかね」 こんにちは,エムスリーエンジニアリングGの榎田です.趣味数学テレビゲームです.最近はタクティクスオウガ リボーンを遊んでいます.システィーナをバーサーカーで運用しているのが弊ユニオンの個人的なイチオシポイントです. 閑話休題,ソフトウェア開発において「技術的負債」はつきものです.我々は無限の開発時間が取れるわけでも,神授の智慧を持っているわけでもないので,作ったものは何かしらの要因で負債を抱え,抱えた負債は(多くの場合,知らず知らずのうちに)増えます.負債だらけになってしまったソフトウェアの保守管理は大変ですし,負債になりにくいソフトウェアを作るのも難しいです.ではどうして負債を抱えてしまうのか.負債を返すことの何が大変なのか.負債リスクを予見するのはなぜ難しいのか.

    「小さいアプリケーションの作り直しだし,すぐ終わるだろ〜」 - エムスリーテックブログ
  • 大量メール送信のための予備知識 - エムスリーテックブログ

    【SREチーム ブログリレー1回目】 お疲れ様です。エンジニアリンググループ、コアSREの山です。 他の情報伝達手段が現れた今は「メール」は以前よりも比重は落ちたかもしれませんが、まだまだ多くの人に情報を一気に伝えるための重要なツールです。 エムスリーでは自社サーバを利用してメールの大量送信を実施していますが、メール送信を実施するにあたって気にすべき基的な事項についてシェアさせてください。 大量メール送信に関連する基的な設定 基的な設定(SPFと逆引き) DKIM IPの追加削除 バウンスメール処理 金で解決 まとめ We are Hiring! 大量メール送信に関連する基的な設定 メール送信自体はそれほど難しいものではありません。 エムスリーではpostfixを利用していますが、設定はほとんどオリジナルでもメール送信自体は可能です。せいぜいドメイン名を登録するくらいでもいけます

    大量メール送信のための予備知識 - エムスリーテックブログ
  • 令和最新版エンジニアのリーダーシップ論 - エムスリーテックブログ

    エムスリーエンジニアリンググループ製薬企業向けプラットフォームチーム(「Unit1」)の三浦 (@yuba)です。乗り物大好き男の子ですので好きなテレビ番組は銀河鉄道999とナイトライダーです。 さて「フラットな組織」だとよく言われるエムスリー、特にわがエンジニアリンググループなのですが、そのフラットってどういう感じなんでしょう? 上意下達の体制でない中では、人々はどう組織としての目標を共有して一緒に動いているんでしょう? この疑問への、(管理職でない)一般エンジニアとして5年半やってきた私なりに得た答えをご紹介したいというのが今回のお題になります。これは エムスリー Advent Calendar 2022 の5日目の記事です。前日は id:hsasakawa による グローバルサービスの開発における技術的な意思決定 - エムスリーテックブログ でした。 そしていきなり最初に結論から言っ

    令和最新版エンジニアのリーダーシップ論 - エムスリーテックブログ
  • 不具合分析会を1年やったら品質だけでなくチームの能力も向上した - エムスリーテックブログ

    こんにちは、エンジニアリンググループの福林(@fukubaya)です。 僕が所属するチームでは、約1年前から不具合分析の取り組みを始めました。 その結果、品質の向上とさらにはチームのエンジニア全体の能力向上につながったので詳細をご紹介します。 チームの概要 まず、チームの概要を簡単に。 僕達のチームでは、ニュースや独自作成の記事配信、専門的な意見交換のための掲示板、医師向けのクイズ、などのサービスを担当しています。 主にPCやスマートフォンサイトのフロントからバックエンドまでを担当しますが、場合によってはスマホアプリの開発も引き受けます。 サービスが多岐に渡りますし、ユーザに一番近いサービスでもあるので、大小含めて多数の開発を並行して実施してます。 弊社では、使用する言語やフレームワークなどは、全社で特に指定はなく、チームの裁量でサービスの課題に合わせて選択するのもあって、 扱う言語も多い

    不具合分析会を1年やったら品質だけでなくチームの能力も向上した - エムスリーテックブログ
  • AWS・オンプレと GCP を VPN で相互接続する際の勘所 - エムスリーテックブログ

    こんにちは。エムスリー CTO の矢崎 @Saiya です。 弊社ではクラウド環境の利用や移行を推奨しており、AWS, GCP のマルチクラウドやオンプレミス環境との相互通信を安全に行うために今回 AWSGCPVPN で相互接続しました。 しかし、AWSGCPVPN で接続する方法は調べると見つけられるのですが、例えば以下の点についてまとめて説明している資料がないため苦労しました: GCP の HA VPNでのセットアップ方法 Classic VPN と HA VPN *1 はかなり仕様が異なるのですが、Classic 前提の情報が多く惑わされやすいです 複数の VPC での推奨構成とその実現方法 GCPAWSVPN の IPSec のパラメーター調整の仕方 そこで、稿では AWSGCP にある複数の VPCVPN で相互に接続する構成の全

    AWS・オンプレと GCP を VPN で相互接続する際の勘所 - エムスリーテックブログ
  • Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ

    砲撃する自走砲(PzH2000自走榴弾砲)。自走砲は戦車によく似ていますが、戦車ではありません。*編とは関係ありません。 こんにちは、エムスリー基盤開発チーム小です。 Pythonのパッケージ管理周りでは、 「setup.pyでrequirements.txtを読み込むのが普通なんですよね?」 「pipenv があれば venv はオワコンなんですね?」 「pyenvは要らないんですよね!?」 「Python歴史が古い分、Rubyなどに比べてカオス」 みたいな混乱をよく目にします。 実際、複数のツールがあって(一見)複雑です。また「なぜこうした状況にあるのか」がドキュメント化されているわけでもありません。 なので、私なりに整理してみることにしました。 ※「追伸」を追加しました。この記事では汎用プログラミング言語としてPythonを使うケース(Webアプリとか、CLIツールとか、ライブ

    Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ
  • エンジニア新人研修、始めました。 - エムスリーテックブログ

    こんにちは、エンジニアリングGの池田(@progrhyme)です。 エムスリーではこれまでエンジニアの集団研修を実施しておりませんでしたが、昨年度に続き新卒採用のエンジニアが若干名入社したことをきっかけに、新人研修を企画して実施しました。 手探りではありましたが、最終的に5〜7月にかけて12の講義を実施し、のべ250以上の受講数*1を達成することができました。 記事では、その内容の一部を紹介し、簡単に振り返ってみます。 コンセプト 最初の企画段階で、新卒エンジニアメンター陣とミーティングを行った際に、以下のような大まかな方針が決まりました。 新卒入社者だけでなく、中途入社者でも希望者は誰でも参加できるようにする。 以下のようなコンテンツを用意する: Webエンジニアとして幅広い人に必要な基礎知識 → 「Webエンジニア基礎編」 エムスリーエンジニアとして必要な社内知識 → 「エムスリー

    エンジニア新人研修、始めました。 - エムスリーテックブログ
  • 1