RDBMS経験者が、Firestoreを使うときに知っておくべきこと
一昔前は、データの保存といえば MySQL や PostgreSQL といったRDBMS(Relational DataBase Management System)を使うことがメインでしたが、最近は Firestore を利用することも増えてきました。 データを保存するという役割は同じですが、RDBとは使い方・設計思想が大きく異るかと思います。 この記事では、RDBとは異なるFirestoreの制約を確認していきます。 集計関数が無い RDBでは、インデックスやデータ量には依存しますが、数百・数千レコー...
Try Playwright
Playwright とは、Microsoft が中心に開発をしている web のテストや自動化のフレームワークです。2020 年にリリースされ、テスト自動化のフレームワークとしては後発で、npm のトレンドでは Cypress や Puppeteer と比べると、ダウンロード数はまだまだ少ないですが、Github の Star 数は Cypress にも匹敵している人気のフレームワークです。 言語は JavaScript、TypeScript、Python、Java、.NET に対応しているので、web...
Docker on Lima
こんにちは、モンスターラボで BackEnd の TechLead をしています、国平です。 今日は、いよいよ有料化が迫った Docker Desktop についてモンスターラボで検討されている代替案の一つをご紹介します。 Docker Desktop の有料化に伴う対応について、モンスターラボが世界中のグループ、パートナー、そしてお客様と一緒に働いていることもあり、一律 Docker Desktop を有料利用するという判断が行えないプロジェクトもあります。 そのため、モンスターラボではこの問題に対応す...
コンピュータビジョンとディープラーニングを用いたレシート認識
この技術ブログでは、コンピュータビジョンとディープラーニングによるレシートの認識と認識結果の改善方法を紹介します。 さらに、コンピュータビジョンを使って半自動で学習データを作成した様子も紹介します。 以下のに興味がある方は、ぜひご覧ください。 ディープラーニング - インスタンスのセグメンテーション コンピュータビジョン - 輪郭形成、アフィン変換、ホモグラフィー変換、薄板スプライン変換 半自動でのデータ作成 これは何なの? AI関連技術の使い勝手や利便性の向上により、私たちの日常生活の中でAIの普及...
Monstarhacks 2021を開催しました
先日12月10日(金)から12日(日)の3日間で、「Monstarhacks2021」と題して、モンスターラボグループ全体で参加できるグローバルなハッカソンを行いました。 海外拠点の拠点内でハッカソンを行うことはありましたが、グローバルの規模で行うことは初めての試みでした。 ハッカソンとは ハッカソンとは、定められた短期間の間に異なるスキルを持った人々が数人(3~5人)でチームを組み共同でプロジェクトを行う、ソーシャルかつイノベーションに焦点を当てたイベントです。 多くの場合決められたテーマがあり、そのテ...
ペンテスト(侵入テスト) What? Why? When?
謎のハッカーが情報を盗み出すデータ流出事件をニュースで見たことがあると思います。お金をもらわなければ機密情報を公開すると脅すものです。しかし、悪意のある人が行う前に、セキュリティをプロアクティブにテストする方法があることをご存知ですか? 本ブログではどのように自身を守るか、ペンテストとはなんなのか、なぜ行うかとタイミングについて詳しくご紹介します。 ペネトレーションテストとは? ペネトレーションテスト(侵入テスト)とは、訓練を受けた専門家チームがシステムの弱点を見つけようとするものです。 ハッカー、企業ネ...
Kotlin async/await
今回は、Androidの非同期処理をKotlin Coroutineで簡単に行えるasync/awaitについて紹介します。 async/awaitがよく使われるケースは、例えば、詳細情報を取得するAPIと付加情報を取得するAPIを、Coroutineで処理した内容が終わったタイミングで待ち合わせて、詳細ページを作成します。 まず、asyncとはCoroutineを起動する関数の一つです。 基本的にlaunchと同じ。違いは、値を返すかになります。 値は、Deferred型です。Deferred型とは、返...
Firebase Dynamic Links + Flutter
この記事はFlutterでDynamic Linkを使用する方法のステップバイステップガイドです。 Dynamic Linksとは何ですか? Dynamic Linksは、アプリの特定の画面に連携するスマートURLです。一般的にはディープリンクとして知られて、外部のウェブサイト/アプリで簡単に使用できます。 どうしてFirebase Dynamic Links? どうしてFirebaseですか? 自分自身で実装することはできませんか?ディープリンクような実装を開発する為、別のサービスに依存する必要があり...
Nuxt3 beta arrived 🎉
Vue.js のフレームワークである Nuxt.js の v3 が、2021/10/12 にパブリックベータ版に移行しました 🎉 Monstarlab でのプロジェクトの多くは React.js で開発されることが多いですが、個人的には一番初めに触れた Web Frontend JavaScript フレームワークが Vue.js だったこともあり、Nuxt.js も v1 リリース直後から使っていました。 そんな思い入れがあるフレームワークで、社内でも Vue/Nuxt が好きと公言していますが、最近...