GAミント至上主義

Web Monomaniacal Developer.

Firestoreを使ったハムスター回転車メーターの設計を考える

前回の記事のとおり、Raspberry Pi + ホール素子 + 磁石でハムスター回転車を検知することまではできた。 そこからどうやってFirestoreに保存するかと考えると結構パターンができたのでメモ。 スマホで書いたので読みづらい。 uyamazak.hatenablog.com ハー…

LED8 子どもとユーザーテスト

LEDを消したり点けたりするだけのLED8ですが、1歳8ヶ月の子どもが一緒に遊んで楽しんでくれます。詳細は動画。LED8 - You can L-chika on your browserwww.youtube.com子供でも操作できるようにUIを考えたり、勉強になるのでおすすめです。Raspberry Pi3 Mod…

ハムスターホイールの回転をホールIC (SK8552G) とネオジム磁石とRaspberry Piで検知する

30歳も超えて中盤にさしかかってくると、ハムスターの回転車の回転をラズパイから検知したくなると思います。回転数さえプログラム側で検知できれば、あとはLinux & WEB系技術でいろいろできそうなので、まずはそこを試してみました。ちなみに我が家にはハム…

【解決】 Python3のfirebase_adminでCollectionをon_snapshot()してるとhread-ConsumeBidirectionalStream caught unexpected exception

下記記事でやっていた処理だけど、寝る前に実行して、朝起きるころ見るとエラーを吐いて止まっている。 まだ解決してないけど、メモ。 Raspberry PiでPython3を使ってFirestoreにクエリする - GAミント至上主義マシンはRaspberry Pi Zero WH。 OSは pi@raspb…

Raspberry PiでPython3を使ってFirestoreにクエリする

Raspberry PiでFirebaseのFirestoreを介して外部と通信するために、最初はNode.jsのライブラリでやろうとがんばってたけど、1日やっても下記エラーが出てダメそうなので、LED部分と同じくPythonでやる。 Node.jsでのエラー Node.jsはaptで入れて、nでv10を入…

家のRaspberry Pi へのSSH接続を楽にする設定

家のローカルネットワーク経由でSSH経由でラズパイに入ることが増えてきたので、手間を減らすためにいろいろ設定する。 特にラズパイに限ったことではない気がする。最終的には ssh piだけでログインできるようになる。使ったのはRaspberry Pi Zero WHRaspbe…

8つのLEDでLチカして2進数で256まで数えさせる【Raspberry Pi Zero WH】

前回、Raspberry Pi Zero WHで8つのLEDをチカチカさせたが、せっかく8つあるので2進数として扱い、みんな大好き8bitで256までカウントしてみようと思った。 uyamazak.hatenablog.com計算機科学の教材として2進数を体感する教材としても利用価値があるかもし…

Raspberry Pi Zero WHでLED8個をチカチカさせた(動画あり)

買ったあとすぐ入院したので放置していたRaspberry Pi Zero WHを活用すべく、LEDの点滅、通称Lチカさせる。8個でやった。 動画 Raspberry Pi Zero WHでLED8個チカチカ pic.twitter.com/VPqiG96d3E— uyamazak - (@uyamazak) 2019年6月22日 Raspberry Pi Zero…

転職して2週間後、盲腸で1ヶ月入院して復帰した話

3月からDMMに転職して2週後、いわゆる盲腸(虫垂炎)+腹膜炎で緊急手術&入院、食事再開後に腸閉塞、ついでに便秘のコンボで合計約1ヶ月入院していた。当初の予定は2週間だった。手術も入院も会社を一週間以上休むのもいろいろ初体験だった。 以下入院中にス…

【ポエム】怪物キメラシステムとその倒し方

長く続いているWEB系でよくありがち、どことは言えないいくつかの職場の知見を組み合わせた一般論のつもりポエム。 ビジネス的には儲かってる、いい感じシステムVer.1ができる とりあえず動いているので、言語やフレームワーク、OSのバージョンアップとかは…

退職エントリ(とんかつカレーBBSについて)

2019年2月で2年11ヶ月いたビズオーシャンを退職しました。分社化前のMJS時代を含めると6年半ぐらいいました。2019年3月からはDMM.com同人事業部にいます。有給消化中はFirebaseとVue.jsでBBS的なものを作ってました(チャットかBBSかはゆらぎあり)。自宅のP…

Headless Chromeを使ったPDF変換サーバーが落ちないようにした対策まとめ

yagish履歴書でも使っているPDF変換サーバーがまれによく下記のエラーを吐いて落ちてしまう問題が一段落ついたのでまとめる。 2019年1月スタートのアニメはまだ何を見ていいか分からない状態です。 Error: Protocol error (Page.printToPDF): The previous p…

Google Cloud Buildの完了をCloud Functionsで受け取る

GitHubへのPushからCloud Buildで自動ビルド&Container Registoryにアップロードまでができた続き。uyamazak.hatenablog.comCloud Pub/Subに projects/{project id}/topics/gcrというトピックが勝手にできていて、gcrはGoogle Cloud Registoryだと思うので…

WSL(Windows Subsystem for Linux)でDockerを動かす(使えない)

2019/1/21追記 Docker Desktop for Windowsは動いた(使えそう) docs.docker.com追記ここまで普段の開発はLinux上で行っているけど、WSLに関してはLinux信者として興味があり、以前Bash on Windowsを動かしてみたりはしてた。 でも日本語がダメだったり、普…

Firebaseでユーザー作成/削除時にFunctionsでなんかやる

今更ゾンビランドサガを見始めて宮野節を堪能してます。 yagish履歴書でユーザー側でのアカウント削除を実装するにあたり、退会率などをみるため、せめてログには残したいと思った。 おかげさまで退会率は1%以下で使用するユーザーはかなり限られるため最低…

Docker + Google Cloud Buildを使ってCIしようとしてる

これまでLinuxの開発サーバー上のシェルコマンドでDockerのビルドやイメージのプッシュ、GKEへのデプロイをしていたけど、先日のGitHub Actionsの発表など世の中CI/CDが当たり前になっているので、DockerとGCPでできる範囲でやってみる。 Cloud Buildについ…

Firebase Functionsのデプロイ時にHTTP Error: 400, The request has errorsで失敗する

Firebase FunctionsをデプロイするときにHTTP Error: 400が出て少しハマった。 ? functions: Finished running predeploy script. i functions: ensuring necessary APIs are enabled... ? functions: all necessary APIs are enabled i functions: preparin…

Dockerで動かしたHeadless ChromeでPDFにすると日本語が化ける問題

yagish履歴書でも使っている下記のPDF変換サーバーだけど、日本語の下記のような文字がPDFにすると全部□に化けてしまっていました。 〜◯◎■□◆◇❏★☆ユーザーが使いそうなのだけ上げたので他にもありそう。github.comもちろん日本語フォントはインストールされて…

Vue Router&Firebaseの認証付きページでログアウト後に任意のページに飛ばそうと思ったらハマった話

Vue RouterとFirebase Authenticationで認証が必要なページを作っていたが、ログアウト後に任意のページに飛ばそうと思ってもうまく行かなかった。 いろいろ試したけど、イベントリスナーonAuthStateChangedを多重登録しないよう事前にUnsubscribeしたら大丈…

Vue.jsからGTMを使ってGAのイベントを送る

ブログタイトルのGAはGoogle Analytics(以下GA)ではないですが、Google Tag Manager(以下GTM)でGAを読み込んでいる場合、独自イベントの送信がちょっと面倒です。下記のようなVueプラグインもあるけど、Vue.jsの環境はVue CLI 3で、GTMのタグはindex.htm…

GCP HTTPSロードバランサーにGoogleマネージドSSL証明書(β)を使う

βリリースされていることに今更気づきました。 GAEやFirebase HostingでもマネージドSSL証明書は追加されていたのでやっと来たという感じです。ドキュメントはまだ英語のみ? Creating and Using SSL Certificates | Load Balancing | Google Cloud これまで…

【解決】puppeteerを1.10にするとPDFの日本語が文字化けする問題

2018/11/13 追記 結論 Chromium 72.0.3606.0(Developer Build)を使ったところ直ったので、次のバージョン(1.11)では直るはず。 そのため1.10をスキップするだけで問題は解決しそう。追記ここまで yagish履歴書のHTML→PDF変換で使っているpuppeteerのバージ…

Vueのテンプレートのv-bind内でもJavaScriptのテンプレートリテラルが使えた

v-bind: (省略形は:)内で文字列を連結したいときはこれまで+でがんばってつっくけてたけど、テンプレートリテラルを使えることに気づいた。環境はVue CLI 3。developer.mozilla.orgbefore <img :src="img" :alt='format.title + "テンプレート" + index'>after <img :src="img" :alt='`${format.title}テンプレート ${index}`'></li>${}の分は増えるけど、クオーテーションを閉じたり、開いたり…

Firebase FunctionsでFirebase Authenticationの認証情報を使う

ユーザー側からFirebase Functionsの関数を実行する際、そのユーザーの認証情報を使って処理をしたい。 たとえば、決済とかで。最近はAmazon Primeビデオでエウレカセブンを見直してます。最初HTTPリクエストにトークンなどをつけて、firebase-adminを使って…

Vue CLI 3のindex.htmlでif文を使い本番環境とその他で出し分けする

Vue CLI 3でのindex.htmlはVueのテンプレートシンタックスは使えませんが、webpackのものは使えます。アニメのからくりサーカスでしろがねが林原めぐみでびっくりしましたが文句なしのクオリティでした。主に使うのは環境変数になると思いますが、下記のよう…

7行から始めるVue.jsプラグイン開発

Vue.jsでは、The Progressive JavaScript Frameworkを掲げる通り、コアは小さく、拡張しやすいように作られています。今期アニメではゴブリンスレイヤーとスライムでゴブリンの違いを楽しんでます。そのため独自の機能が必要になった場合、自分でプラグイン…

ぼくが考えた最強のFirebase Functionsのファイル構成を考えてる途中

まだ全然最強感がないけど、やり始めたら1日過ぎたのでまとめる。 % tree -L 2 -I node_modules functions functions ├── index.js # メインのやつ ├── package-lock.json ├── package.json ├── src │ ├── blog-rss-to-json.js # 呼び出すやつ │ ├── globals…

Puppeteerでエラー"The previous printing job hasn't finished at Promise "

yagish履歴書で使っているhcep-pdf-serverでエラーが出ていたので調査。 Error: Protocol error (Page.printToPDF): The previous printing job hasn't finished at Promise 現在はGKEで動かしていて、このような制御できないエラーが出た場合はプロセスを終…

Firebase Functionsで関数ごとにファイルを分割し高速化とメンテナンス性向上も目指す

Firebase Functionsでは、基本的にはindex.jsにすべての関数を書くことになるので、数が増えるといろいろつらくなってきますが、2018秋アニメはAmazonでSAO新作とゴブリンスレイヤーを見ています。ファイル分割については、ググればこんな感じのが見つかりま…

Firestoreのパス管理に悩む

FirestoreとFilestoreはぱっと見違いが分からないですが、Firestoreでアプリケーションを作っていてデータが増えてくるとドキュメントとコレクションのパスの管理に困ります。yagish履歴書では、ユーザーごとに/userdir/{ユーザーID}/というドキュメントを作…