Pirika Developers Blog

https://devblog.pirika.org/

Pirika Developers Blog

フィード

記事のアイキャッチ画像
AppSheet+スプレッドシート+Google Cloud Storageを連携して、画像付きで撮影データを閲覧できるようにした話
Pirika Developers Blog
こんにちは、ピリカ開発チームの九鬼です。 AppSheetを使うと、スプレッドシートをデータベース代わりにしたアプリをノーコードで作成できます。AppSheetでは画像を表示することもできるのですが、設定すればGoogle Cloud Storage(GCS)上にある画像も参照することができます。 そこで、スプレッドシート+GCSに毎日データを追加し、AppSheetアプリでデータを見られる仕組みを構築してみました。 背景 タカノメにおいて、1日あたり数万を超える地点の撮影データが蓄積されています。データの閲覧用ページはあるものの、統計的な結果を見るためにカスタマイズしていました。その関係で、…
4ヶ月前
記事のアイキャッチ画像
TerraformとCloud RunとCloud Load BalancingでCI/CDを突き詰めた
Pirika Developers Blog
こんにちは。 ピリカ開発チームの伊藤です。 ピリカでは6月1日より、ピリカサポーターズクラブを開始しました。 まだご覧になっていない方はこちらをご覧ください。 corp.pirika.org ピリカサポーターズクラブをはじめるにあたって新しいシステムを構築しました。 ピリカの開発チームのリソースは潤沢ではない中、全く新しいシステムを作るのはとても大きなチャレンジです。 社内からも「開発のリソースが潤沢でないならSNSピリカに注力すべき」という意見はありましたが、開発チームでは単に新しいシステムを作るだけではなく、この開発を「SNSピリカの開発を今後少ないリソースで効率的に進めるために必要な基盤…
9ヶ月前
記事のアイキャッチ画像
ごみ検出処理をCloud Batchに移行した話
Pirika Developers Blog
こんにちは、ピリカ開発チームの九鬼です。 2022年にGCPでCloud Batchのプレビューがリリースされ、2023年4月には東京リージョンがサポートされました。ピリカではタカノメでごみ検出処理をCloud Runで行ってきましたが、この度Cloud Batchに移行しました。その中で得た知見を共有いたします。
10ヶ月前
記事のアイキャッチ画像
SSH接続・CUI操作のLinux(Debian)にgoogle-drive-ocamlfuseをつかってGoogleDriveをマウントする
Pirika Developers Blog
SSH接続・CUI操作のLinux(Debian)にgoogle-drive-ocamlfuseをつかってGoogleDriveをマウントする方法
1年前
記事のアイキャッチ画像
CVATをGKE上で動かして見た話
Pirika Developers Blog
こんにちは、ピリカ開発チームの九鬼です。 ピリカでは撮影したごみの画像に対してアノテーションし、その結果を基に解析・研究を進めることがあります。 その中でGCP上の自社サービスと連携できるアノテーションツールが必要になり、CVATをGKEに構築しました。
1年前
記事のアイキャッチ画像
Looker Studio(旧Data Studio)を使って、GISデータを任意ポリゴン・ライン等で可視化する
Pirika Developers Blog
Looker Studio(旧Data Studio)では、BigQueryを使ってGISデータを可視化することができます。本記事では、そのためのセットアップ方法について紹介します。
1年前
記事のアイキャッチ画像
ReactでGISデータを宣言的に可視化する
Pirika Developers Blog
GISデータをGoogle Mapで可視化するにあたって、Reactと連携しながら使いたいことがあります。 一方で、Google MapのMaps JavaScript APIでオーバーレイは命令的に実行する必要があり、差分表示などもケアしようとするとそれなりのコードを書く必要がでてきます。 @react-google-maps/apiライブラリでは、Rectangle, Circle, HeatmapLayerなどオーバレイ用のコンポーネントが提供されており、これらを使うことで宣言的に可視化を行うことができます。本記事では、具体例を交えながら使い方を紹介します。
1年前
記事のアイキャッチ画像
Cloud Build Pub/Subトリガーで別プロジェクトのトピックをサブスクライブする
Pirika Developers Blog
こんにちは。 ピリカ開発チームの伊藤です。 Cloud Buildでは、リポジトリの更新以外にCloud Pub/Subへのメッセージをトリガーにしてビルドを開始することができます。 今回、複数プロジェクト間でPub/Subトリガーをサブスクライブする設定をしてみましたので、設定するにあたってつまづいたポイントなどを共有したいと思います。 何をしたかったのか
1年前
記事のアイキャッチ画像
DroidKaigi2022の参加レポート
Pirika Developers Blog
10/05(水)〜10/07(金)に開催されたAndroidアプリ開発者のためのカンファレンス DroidKaigi 2022 にオフライン参加させていただきました。
2年前
記事のアイキャッチ画像
Xcode14 & Mac M1環境下でgrpcioが突然インストールできなくなったので対処した話
Pirika Developers Blog
こんにちは、ピリカ開発チームの九鬼です。 Google Cloud Platform(GCP)サービスをPythonなどから触るとき、grpcioライブラリがついて回ります。grpcioはc++で組まれている関係で、CPUアーキテクチャなどの環境によってビルドできたりビルドできなかったりが起こりやすいです。ある日、grpcioライブラリがインストールできない状態になり、調査の上解決したので忘備録を共有します。
2年前
記事のアイキャッチ画像
AppScriptを使ってBigQueryの出力結果を定期的にGoogleスプレッドシートに保存する方法
Pirika Developers Blog
こんにちはピリカの冨田です。 今回は、BigQueryの出力結果をAppScriptを使って定期的にGoogleスプレッドシートに保存する方法です。
2年前
記事のアイキャッチ画像
Google DriveからGoogle Cloud Storageにファイルをコピーする(Python編)
Pirika Developers Blog
こんにちは。 ピリカ開発チームの九鬼です。 以前、Google DriveからGoogle Cloud Storageにファイルをコピーする方法[^1]を本ブログで紹介しました。当該記事はNode.js向けの内容だったのですが、Python向けに対応できたのでその方法を紹介いたします。
2年前
記事のアイキャッチ画像
Cloud Storage for Firebaseで、bucketごとにセキュリティルールを割り当てる
Pirika Developers Blog
こんにちは、ピリカ開発チームの九鬼です。 Firebaseを使ったサービスに関して、サービスによっては複数bucketを使いたい場合があります。デフォルトだと単一bucketしかセキュリティルールを割り当てられないのですが、.firebasercおよびfirebase.jsonの設定により対応できました。ここにその方法を記載します。
2年前
記事のアイキャッチ画像
GCP Workflows使って調査結果のcsvデータ作成+調査結果のヒートマップhtmlのビルドを行う仕組みを作った話
Pirika Developers Blog
こんにちは、ピリカ開発チームの九鬼です。 弊社が提供しているタカノメサービスについて、GCP Workflowsを用いることで調査結果の出力フローを自動化することができました。本稿では、構築したワークフローの概要を紹介いたします。
2年前
記事のアイキャッチ画像
Cloud Runにおいて、動画中の物体検出フローを安定化させるまでに試行錯誤した話
Pirika Developers Blog
こんにちは、ピリカ開発チームの九鬼です。 弊社が開発しているタカノメ自動車版では、クラウド上にて撮影動画中のごみを検知しています(下図例)。 本機能を安定化するにあたり、開発環境において試行錯誤した経緯を共有いたします。
2年前
記事のアイキャッチ画像
Sign in with Apple: 2022年6月のアカウント削除機能に対する要件の適応に対応した話(リフレッシュトークンの取得とトークンの無効化)
Pirika Developers Blog
こんにちは、開発チームの冨田です。 今日はSign in with Appleにおける、サーバー側でのリフレッシュトークンの取得と、トークンの無効化処理について書きます。 これは2022年6月から適応される新しいガイドラインにて、アカウント削除機能に対する要件が新しく定義され、それに対応するためのものです。
2年前
記事のアイキャッチ画像
Microsoft IntuneからiPhoneおよびiPadにアプリ専用の設定を配信する
Pirika Developers Blog
こんにちは、ピリカ開発チームの九鬼です。 モバイル端末管理ツールの一種であるMicrosoft Intuneから、iPhoneにアプリ専用の設定値を配信することがありました。備忘録として、Intune側での設定方法とiOSアプリでの読み出し方を記載します。
2年前
記事のアイキャッチ画像
JetBrains MonoをVisual Studio Codeで使用する
Pirika Developers Blog
こんにちは、ピリカ開発の冨田です。 今日はJetBrainsがオープンソースとして配布しているフォントJetBrainsMonoをVisualStudioCode(VSCode)で利用する方法を書きます。
2年前
記事のアイキャッチ画像
Firestoreでドキュメントの有効期限付けつつ、特定のフィールド値を持つドキュメントのみをクエリできるようにする
Pirika Developers Blog
こんにちは、ピリカ開発チームの九鬼です。 Firestoreについて、ドキュメントに有効期限を付けつつ、フィールドが特定値を持つドキュメントのみ取得できるようにしたいことがあります。 セキュリティルールと複合クエリを使って実現できたので、その方法をまとめました。
2年前
記事のアイキャッチ画像
Go言語製Let's Encryptクライアントlegoをライブラリとして使う
Pirika Developers Blog
こんにちは。 ピリカ開発部の伊藤です。 ピリカではほとんどのサービスでGCPやAWSが発行するHTTPS証明書を使っていますが、見える化ページと呼ばれる、自治体や企業など、一定の範囲内でのごみ拾い活動を集約しているサービスで使っているワイルドカード証明書はLet's Encryptで発行しています。 Let's Encryptで証明書発行するためのクライアントとしては標準のcertbotの他にもいろいろなものがあります。 個人的に、legoを気に入って使っています。お気に入りポイントはこんな感じです。 Go言語で作られていて、Pythonの言語環境に依存せずに使える いろいろなDNSサービスに…
2年前
記事のアイキャッチ画像
自分らしく、使ってて楽しいターミナルのカスタマイズ
Pirika Developers Blog
こんにちは、ピリカの豊川です。 入社してそろそろ半年が経ちますので、以前から書こうと思ってたブログ記事を書いてみます。 これは、Macのデフォルトのプロンプトでターミナル操作した時のスクショです。特に難しいことはしてませんが、なんとなく何をやってるのかわかりにくく思いませんか? いくつか問題点を上げてみます。 文字の色が一色で、直感的に読みづらい 改行がなく、プロンプト、入力、出力がどこにあるか把握しづらい カレンとディレクトリを知るのにいちいちpwdする必要がある 一方で、私の普段使ってるターミナルはこんな感じです。 文字の色にルールがあり、色から直感的に意味が分かりやすい プロンプト内に改…
2年前
記事のアイキャッチ画像
gspread(およびgspread_dataframe)の利用方法について
Pirika Developers Blog
pythonからスプレッドシートを触るとき、gspread/gspread_dataframeなどのライブラリを利用することができます。 これらライブラリについて内部実装を見ながら、どのような使い方をするかまとめました。
2年前
記事のアイキャッチ画像
Pipenvでの基本的な環境構築
Pirika Developers Blog
こんにちは。ピリカ開発部の冨田です。 ピリカではPythonパッケージの管理にPipenvを利用しています。 今回は、Pipenvで環境構築を行うときに、よく使用するコマンドをまとめました。 公式ドキュメント
2年前
記事のアイキャッチ画像
Xcode 13で作ったプロジェクトでbitriseでのCIビルドに対応する
Pirika Developers Blog
こんにちは、ピリカ開発チームの九鬼です。 最近、新規のiOSアプリをxcode13を使って開発しました。Xcode 13でbitriseのCIビルドについて設定方法が見つからなかったので、備忘録として展開します。
2年前
記事のアイキャッチ画像
iPadOSの審査ではEthernet接続が使われている
Pirika Developers Blog
こんにちは、ピリカの伊藤です。 先日、iOSアプリを審査に出したところ「iPadOSで起動時に通信エラーで進めない」とリジェクトされました。 これまでこのようなリジェクトを受けたことはなく、特にサーバーも問題なく動作していました。 では、なぜ審査落ちになったのでしょう。審査落ちのメッセージに添付されていたスクリーンショットを確認したところ、通信インジケーターが出ていませんでした。通常、ここにはWi-FiやCellularのアイコンが表示されているはずです。 一応この点について指摘してみましたが「このデバイスは正しくインターネットに接続している。詳しくは教えられない。」という回答があったのみでし…
2年前
記事のアイキャッチ画像
Macでビデオ会議(画面共有)中に手元のiPhoneの画面を共有する方法
Pirika Developers Blog
こんにちは、ピリカの冨田です。 今日は、Macの画面に、手元のiPhoneの画面をリアルタイムで表示する方法をご紹介します。 PCでビデオ会議中に、相手にiPhoneの画面共有をしたいことはありませんか? 例えば、アプリの操作方法を相手にリアルタイムでお伝えしたい時などです。 この方法を使えば、ビデオ会議などで、Macから自分の画面を共有している時に、手元のiPhoneの画面を共有することができます。 手元のiPhoneの画面をMacの画面に表示する
2年前
記事のアイキャッチ画像
Mac(M1 CPU)で、互換性のあるpyenv+pipenvの環境を作る
Pirika Developers Blog
こんにちは、ピリカ開発チームの九鬼です。 SNSピリカやタカノメのサービスでは、バックエンドで度々Pythonを使用しています。その中でいくつかPythonスクリプトがあり、バージョンが3.7系列や3.9系列などが含まれます。 しかしながら、Mac(M1 CPU)からarm64ベースのアーキテクチャになったこともあり、一部Pythonバージョンや一部ライブラリがインストールできないことが多々あります。 そこで、複数のPythonバージョンで仮想環境を切り分けられるよう、pyenv + pipenvの環境を整えました。
2年前
記事のアイキャッチ画像
GAE/Pythonでサービスアカウントキーファイルを使わないようにした
Pirika Developers Blog
こんにちは。ピリカ開発チームの伊藤です。 GCPの各種サーバーレスサービスにアクセスするには、認証情報が必要となります。App EngineやCloud Functions上で動作している場合は、GCPの各種ライブラリを使っていれば特に何もしなくても認証が通った状態となり、FirestoreやCloud Storageなどを扱うことができるようになっています。 しかし、ローカルでの動作確認を行う場合など、GCP外で動く場合には認証情報を渡す必要があります。 これまで、ローカルでの認証のためには「サービスアカウントキー」というJSONファイルを取得することが多かったのですが、サービスアカウントキ…
2年前
記事のアイキャッチ画像
Androidアプリ Realmでモデルパラメータを追加するとき、過去バージョン全てに渡ってパラメータ有無を考慮する必要があった話
Pirika Developers Blog
SNSピリカのAndroidアプリについて、段階公開していたv5.4.13, v5.4.14リリースで起動クラッシュが発生する問題がありました。v5.4.13でRealmのバージョンアップおよびRealm操作周りの役割分離を行っており、そのなかでのマイグレーション処理の不備が原因でした。本稿ではその経緯を共有いたします。
2年前
記事のアイキャッチ画像
GoogleAppEngineでCloud SchedulerからのHTTPリクエストのみを受け付ける
Pirika Developers Blog
こんにちは、ピリカの開発の冨田です。 ピリカのごみ拾いSNS「ピリカ」は、Google Cloud Platformを利用しています。 その中で、定期実行させたい処理を、Cloud Scheduler→AppEngineで行っています。 Cloud SchedulerからApp Engineに対してHTTPリクエストを送るのですが、その際にApp Engine側ではCloud Schedulerからのリクエストのみを受け取るようにしました。 Cloud SchedulerからApp EngineにHTTPリクエストを送る
2年前