pythonの真偽値と条件分岐

こんにちは、ピリカの冨田です。

pythonで、Noneかどうか、空文字列かどうか、空配列かどうか、空辞書かどうかの判定とその時の処理の書き分けで迷いがちの冨田です。

それらを正しく書き分けるためには、何がNoneで何がTrue/Falseで、それらがどうやってやif文や比較演算子で処理されるのかをちゃんと理解する必要があると思っています。

そこで、ここでは、python3の真偽判定とその時の条件分岐について書こうと思います。

続きを読む

リモートワークで固定IPするために: L2TP/IPsec VPNを設定する

ピリカでは開発環境へのアクセスを保護するための一環としてIP制限をしていますが、ピリカという会社は元々リモートで仕事をしている人が多く、またオフィスのIPアドレスは動的IPの時代が続いていました。

そこで、各自のIPアドレスを固定化するためにVPNやプロキシサーバーを構築していますが、その認証の管理をできるだけGoogle Workspaceの権限を元にやりたいと考えました。

この記事では、前回実装したRADIUSサーバーを使って、L2TP/IPsec VPNを設定し、VPNを使えるようにします。

続きを読む

ローカルでPub/Sub, Cloud Functionsを同時に動かしながら動作確認する

こんにちは、ピリカ開発チームの九鬼です。

SNSピリカのサービスでは App EngineからPub/SubにメッセージをPublish → サブスクリプションフィルタで絞り込み → Cloud FunctionsからCloud Tasks経由で再度App Engineに戻して処理するケースがあります。

f:id:pirika-inc:20211015162905p:plain
SNSピリカサービス GCPサービス間連携例

ローカル環境で開発するとき、Pub/SubからCloud FunctionsをPushサブスクリプション経由で呼び出したいことがあります。

その際のやり方について、備忘録として掲載します。

続きを読む

DooD(Docker outside of Docker)で、Docker Composeで一部コンテナを逐次アップデートする

こんにちは、ピリカ開発チームの九鬼です。

Docker Composeで複数コンテナからなるサービスを動かしている最中に、一部コンテナをアップデートしたいことがあります*1

そこで、本記事ではその方法を紹介します(もし、さらに良い方法がありましたらぜひ伺いたいです)。

*1:例えば深層学習において、あるメンバーはTensorFlowで解析するサービス、あるメンバーはPyTorchで解析するサービスを作る、という構成が挙げられます

続きを読む

リモートワークで固定IPするために: VPNの認証のためにRADIUSサーバーをつくる

こんにちは。 ピリカ開発チームの伊藤です。

ピリカでは開発環境へのアクセスを保護するための一環としてIP制限をしていますが、ピリカという会社は元々リモートで仕事をしている人が多く、またオフィスのIPアドレスは動的IPの時代が続いていました。

そこで、各自のIPアドレスを固定化するためにVPNやプロキシサーバーを構築していますが、その認証の管理をできるだけGoogle Workspaceの権限を元にやりたいと考えました。

この記事では、VPNやプロキシの認証をするための前段として、Google Workspaceの情報と連動した独自の認証基盤をどのように作ったかを紹介します。

続きを読む

TensorFlow 2.xでObject Detection APIを使うにはTensorFlowバージョンを揃える必要がある話

こんにちは、ピリカ開発チームの九鬼(niccari)です。

機械学習周りで物体検出したいとき、TensorFlowとともにObject Detection APIを利用することがあります。

Object Detection API側のアップデートで新規Docker環境が動かなくなったことがありました。

続きを読む

BigQueryのデータを定期的にGooleスプレッドシートに出力する方法

こんにちは、ピリカ開発の冨田です。

今日は、BigQueryのデータを定期的にGooleスプレッドシートに出力する方法について書きたいと思います。

今回使用するツールはOWOX BI BIgQuery Reportsという無料のアドオンツールです。

というのも、GoogleのConnectedSheetを使用すれば、同様のことは可能なのですが、使用できる条件が、合わなかったので他の方法を探しました。

続きを読む