こちらの記事は カケハシ Advent Calendar 2022 の16日目の記事になります。 はじめに こんにちは、おくすり連絡帳 Pocket Musubi というサービスを開発している宮里です。 サービスの運用をしていると、開発当初とはサービスとして重要視すべきことや技術トレンドも変化していき、より適したライブラリやフレームワークへのリプレイスを行うことがある思います。 おくすり連絡帳でも、デザイン大幅刷新のタイミングに合わせて、フロントエンドのフレームワークを Angular から React(Next.js) へのリプレイスをしよう!という話が挙がりました。すべての機能を新しいデザ…
こんにちは。Musubi AI 在庫管理の開発チームで機械学習エンジニアをしている保坂です。 こちらの記事はカケハシ Advent Calendar 2022 の 15 日目の記事になります。 今日はMusubi AI在庫管理の需要予測や発注おすすめ作成といったデータサイエンスロジックの開発において活用している、 型ヒントの恩恵を受けやすくするための簡単なpandas拡張についてご紹介したいと思います。 Pythonはバージョン3.5より型ヒントがサポートされるようになり、静的型付け言語と同等とまでは行かないまでも、同様の恩恵が受けられるようになってきましたね。 Pythonにおける型ヒントの…
こちらの記事は、カケハシ Advent Calendar 2022 の14日目の記事になります。 はじめに こんにちは!KAKEHASHIでおくすり連絡帳 Pocket Musubi というサービスを開発している星川です。チーム内では主にFlutterを利用したスマートフォンアプリ開発を担当しています。 Flutter開発に関わるのは初めてなので、初心に帰って新鮮な気持ちで取り組んでいます。特にレイアウトやUIコンポーネントはFlutter独自の組み心地があり、改めてiOSやAndroidのデザインやUIに興味を持ちました。 ということで今回の記事では、iOS / Android 双方のデザイ…
こちらの記事はカケハシ Advent Calendar 2022 の 13 日目の記事になります。 https://adventar.org/calendars/7444 こんにちは。Musubi AI 在庫管理のフロントエンド開発を担当している鳥海です。 上記プロダクトのフロントエンドチームでは、私がチームにジョインした時(2022/9/1)と同時期から MSW が導入され、開発で用いるようになりました。 今回は、この MSW (とその周辺パッケージ)がすごく便利で感激したので、簡単にご紹介したいと思います。 この記事で紹介するもの この記事では、下記項目についての説明をしていきたいと思いま…
こちらの記事は カケハシ Advent Calendar 2022 の 12日目の記事になります。 https://adventar.org/calendars/7444 Poetry と Streamlit で Web アプリ開発 はじめに はじめまして。Musubi の開発チームでフロントエンドを主に担当しております、井上です。どうぞよろしくお願い致します。 Musubi の開発ではフロントエンドのフレームワークとして Angular を、バックエンドのフレームワークとして Pyramid を採用しております。 ( もちろん、これら以外にも採用しているライブラリはありますし、CI や Ia…
こちらの記事は カケハシ Advent Calendar 2022 の11日目の記事になります。 今年10月からAI在庫管理の機械学習エンジニアをやっております中野です。 今回は新型ウイルス感染者数予測を例に取ってProphetの性質について見ていきます。 そもそも新型ウイルス感染者数予測のようなタスクに時系列予測モデルで立ち向かうのは無理ゲーなのですが、我々エンジニアには何とか予測値を捻り出さないといけない状況もままあるでしょう。 環境の変化が激しい系列ではProphetはどの程度使い物になるのでしょうか。 この記事で扱う内容 Prophetの数理的な性質 この記事で扱わない内容 感染者数予…
本記事は カケハシ Advent Calendar 2022 10 日目の記事です。 Musubi 開発チームの加藤です。1 年ぶり ですね。 今回は「私の開発環境 2022 冬」をお送りしようと思ったのですが、今年はリポジトリをたくさんセットアップしたので、 「リポジトリを作成したら最初にすること」をお送りします1。 はじめに プロジェクトなり個人開発なりでリポジトリを作成する際、組織や開発者の中で共通して使用するツールやその設定ファイルがあると思います。 2022 年を通じて自分の中である程度型ができてきたので、それをご紹介しようと思います。 前提 Python で実装したコードを Ser…
こんにちは! こちらの記事は カケハシ Advent Calendar 2022 の9日目の記事になります。 2022/10/17からカケハシにJoinした兼平です。 Musubi AI在庫管理を開発しているチームで開発ディレクター(スクラムマスター)として、 ビジネスと開発が協働して医薬業界に最大の価値を出していくために色々やっていきます。 これを書いてるのは入社2ヶ月弱のタイミングなのですが、 私がなぜ転職をしようとしたのか、なぜカケハシを選んだのか、実際に入ってどう感じたのかをシェアさせていただこうと思います。 なぜ転職しようとしたのか 筋トレ、してますか? シェアと言いながらいきなり質…
こちらの記事は カケハシ Advent Calendar 2022 の 8 日目の記事になります。 こんにちは。Musubi AI 在庫管理のフロントエンドの開発を担当している大村です。 私は普段の開発で Visual Studio Code (以下 VSCode) を使っています。 VSCode は非常に高機能なエディタで、開発に役立つ多くの機能が提供されており、その中には Git 関連の機能も含まれています。 私自身、以前は Git の CLI ツールを使っていましたが、VSCode の Git 機能を知るうちに利便性を感じることが増え、VSCode 上で操作することが多くなりました。 今…
こちらの記事は カケハシ Advent Calendar 2022 の 7日目の記事になります。 https://adventar.org/calendars/7444 この記事のモチベーション カケハシでAI在庫管理というプロダクトのバックエンド開発をやっている金子です。 代数的データ構造というデータ構造について聞いたことはありますでしょうか。 私ははあります。が、それが何なのか、なぜ「代数的」と呼ばれるのか良く分かっていません。 そこで、この記事では代数的データ構造のことを良くわかっていない私が、代数的データ構造のことを知らない人に向けて、代数的データ構造について説明してみる、という無謀な…
こちらの記事は カケハシ Advent Calendar 2022 の 2 日目の記事になります。 https://adventar.org/calendars/7444 はじめに こんにちは、おくすり連絡帳 Pocket Musubiというサービスを開発している石井です。 私は主にアプリケーションのサーバーレスなインフラとバックエンドを開発をしております。サーバレスとなると必然的に Lambda を利用することがほとんどです。 そこで Lambda の開発を簡単にしてくれる AWS Lambda Powertools for Python (以下:Lambda Powertools)というラ…
AWSで使ってみたいサービスといえば? もちろんGround Station 🛰️ですが、AWSのサービスで過小評価されているものを一つ選ぶとしたら、AWS ConfigのAdvanced Queryが候補に挙がります。 AWSリソースを設定から検索するなら、クエリで検索できるAdvanced Queryが便利です。 ユースケース: バージョンが古いLambda Runtimeを特定する 画面上でサンプルクエリが提供されています。便利! サンプルをNode.js 12以下を検索するクエリに加工してみました。前方一致が利用可能です。 SELECT accountID, resourceId, c…
こんにちは、株式会社カケハシでおくすり連絡帳 Pocket Musubiの開発を担当している渡辺です。 プランニングポーカーをご存知でしょうか? アジャイル開発における規模の見積もり手法の1つです。やり方は、それぞれメンバーが数字のカードを持ち、対象のタスク(もしくはユーザーストーリー)に対して、自分が考えた規模の数字カードを出し合います。一致すればその数字、一致しない場合は、なぜその差分が生じたのかを議論します。 弊社では、見積もりするタスクのゴールを定義し、知見のある人や担当する予定の人にHowの部分を説明いただきます。そこで議論をした後、自分が思うタスクのポイントを出します。ポイントはフ…
KAKEHASHI でバックエンドエンジニアをしている横田です。 今回は、一般的にクローラーを使って作成するであろう、データカタログのテーブルを Spark だけで実現する方法について紹介できればと思います。 背景・目的 MusubiInsight のプロダクトでは、薬剤師さんや薬局のマネージャーさん向けに業務実績データの可視化を行っています 可視化するデータは、夜間にバッチ処理で計算しています データ量としては数十 ~ 数百 GB あるので、集計処理基盤として AWS Glue の Spark Job を使っています Spark Job の結果を AWS Glue の Hive メタストア互…
はじめに こんにちは、LINE上で動くおくすり連絡帳 Pocket Musubi というサービスを開発している種岡です 早いもので入社してから3年が経ちました 会社の成長と共に取り扱うサービスも増え、今では12以上の開発グループが存在しています 誰がどのチームなのかを把握するのが非常に難しい、また、どのチームがどのサービスを担当するのか把握できないという声が寄せられ、チーム間のコミュニケーションの障害になっているという課題感が浮かび上がりました この課題に対して、チーム毎のポータルページを社内Wikiで作成するという運動が始まりました そこで、チームポータルページを社内WikiではなくAmpl…
本番サービスイン後、不思議な条件で起きるエラーが出てきませんか?調べても調べてもわからない...時間が過ぎるばかりですが、突然ハッと思いつきます。 💡あっ!タイムアウトだ! 見聞きする限り、ほぼ確実にこのパターンが発生しています。信頼性を上げ、不毛な障害対応を減らし、ユーザーに届ける価値を下げたくないなら、タイムアウトの設定を必修科目にしましょう 堅牢なアプリやサービスか診断するときには、タイムアウトとリトライについて確認すると良いでしょう。 タイムアウトを設定するメリット ユーザー体験の向上(の可能性) 終わりが見えずただ待つのは辛い...無駄に待っている可能性があります 無駄なリソースの節…
こんにちは。 カケハシでMusibi Insightのバックエンドエンジニアをしている高田です。 Musubi Insightとは、薬局の経営改善に役立つさまざまなデータを可視化しているプロダクトであり、そのデータはAirflowとAWS Glueを利用した日次の夜間バッチ処理によって生成されています。 バッチ処理に使っている技術や仕組み等は、以下の記事で紹介させていただいています。 そんなバッチ処理を、パフォーマンス改善や新たな機能追加のための準備としてリファクタリング行なうことがあります。 ただ、バッチ処理のリファクタリングはテストがしづらかったり、思いもよらぬ形で後続の処理に影響を与えて…
こんにちは、株式会社カケハシでおくすり連絡帳 Pocket Musubiの開発を担当している渡辺です。 RxJS RxJSはリアクティブプログラミングのライブラリです。 リアクティブプログラミングって何かと言いますと、 データを受け取るたびに反応(リアクション)をするプログラムです。 たとえば、 of(1, 2, 3).subscribe({ next: (value) => console.log(value), }); とすると、1, 2, 3の順番にデータを受け取り、受け取ったデータごとにnextが反応します。 このデータの流れをStreamと呼びます。 Streamを購読(subscr…
初めまして、カケハシのデータ基盤チームでデータエンジニアしている大木と申します。 この度カケハシでは、全社的なデータ活用基盤のプラットフォームとしてDatabricksを採用し、2022/07より本格導入することとなりました。 当記事では、カケハシがDatabricksを採用するに至った技術選定の背景について紹介させていただきます。 ※カケハシのデータ基盤の組成のお話はこちらの記事で詳しく紹介されておりますので良ければご覧ください。 カケハシのデータ基盤アーキテクチャと課題 まずカケハシのデータ基盤のアーキテクチャと抱えている課題について紹介します。 Databricks導入に伴い現在は一部変…
こんにちは、カケハシでMusubi Insightのバックエンドエンジニアをしている末松です。 夜間などに動くバッチ処理を開発・メンテしているエンジニアの方ならきっと共感していただけると思うのですが、夜間バッチって心配になりますよね。 朝早起きして結果を確認したり、夜更かししてリアルタイムで張り込みをしたり... 数名いる Musubi Insight のバックエンドエンジニア陣も同様で、バッチ処理に何かしらの変更を加えた夜は結果が気になってしまいあまり熟睡できなかった、ということもしばしば。 この記事では、そんなエンジニア陣の救世主となったバッチ処理のE2Eテスト(※)環境を作ったお話になり…