windows wsl(ubuntu)にGoogle Cloud SDK のインストール(雑記)
Googleのubuntuインストール手順通りにやると、エラーが出る。
ざっくり調べたけど無視して進めて問題なさそう。
無視した結果、後で問題になるかもしれないけど…とりあえず動いたので一応記事にしておく。
Google Cloud SDKインストール手順
Debian / Ubuntu 用のクイックスタート | Cloud SDK のドキュメント | Google Cloud Platform
Qiitaの記事
qiita.com
エラーについて
手順の以下のコマンドの実行結果でエラーが出る
コマンド
sudo apt-get update && sudo apt-get install google-cloud-sdk
エラー結果
grub-probe: error: failed to get canonical path of `rootfs'. grub-probe: error: failed to get canonical path of `rootfs'. grub-probe: error: failed to get canonical path of `rootfs'. /usr/sbin/grub-probe: error: failed to get canonical path of `rootfs'. dpkg: error processing package grub-pc (--configure): subprocess installed post-installation script returned error exit status 1 dmesg: read kernel buffer failed: Function not implemented E: Sub-process /usr/bin/dpkg returned an error code (1)
調査
MicrosoftのWSLリポジトリにissueとしてgrubのエラーがリポートされている。
aseering 氏のコメント(commented on 21 Apr 2017)
Relatedly, grub doesn't need to work, because WSL doesn't actually boot :-)
It would be nice if package installations didn't fail as a result of this.(WSLは実際には起動しないので、grubは動作する必要はありません:-)
この結果、パッケージのインストールが失敗しなかった場合は、いいでしょう。)
調査結果より判断
issueの内容とコメントを見る限りWSLではgrubは動作しなくて良いようだ。
今回はとりあえずGoogle Coud SDKにてエラーが出るが特に問題ないと判断した。
コメントにもあるがエラー表示が嫌な場合は、grub-pcをアンインストールする手もある。
>>|shellscript|
sudo apt -f remove grub-pc
|
今後作業にて不具合があったらここに追記する。
GoogleHomeアプリ「つくば市のゴミカレンダー」をリリースした
リリース!またつくば市が最強に一歩近づいたな😎
その他仕様
- 隠れ仕様的なのは特に仕込まず
- 悪意のある連続アクセス遮断処理をキツメに入れたらGoogle社のレビューで発動してしまいリジェクト😓
- GoogleHome全体で4種類の声質設定が有効化された
- リリース時に設定したfemale2ではちょっと気に障る声だったので、male1に変更。male1はイケボ。
- でもdefaultのGoogleHomeの声が一番落ち着くんだ…
振り返り
郵便番号周りの処理が若干めんどくさかった。
静的データのアクセス頻度と速度を考慮してデータを3か所に保存した・・・んだけど、作りが良くないかも。
良くある失敗例で、最初から処理速度とか考慮して設計すると構造がややこしくなるというアンチパターンになってしまったかも。
- node.js埋め込みのゴミカレンダーデータ
- 頻度高
- 郵便番号と匿名IDを管理するrealtime database
- 登録は1度だけ
- 匿名IDに紐づいたカレンダー番号を読み出す
- 郵便番号とゴミカレンダーデータの区分けを管理するfirestore
- 参照は初回に一度だけ
- 応答が若干遅い
埋め込みゴミカレンダーデータはrealtime databaseに統合しても良かったかも。
あとはnode.jsで簡単な状態遷移処理が構築できたので、次のGoogleHomeアプリからは作るのが楽になりそうだ。
Ryzen3 2200GとRyzen5 1400のベンチマーク比較
meltdownで嫌気が差しているので、格安自作PCの構成を検討している。
丁度2/13にRyzenの新しいAPUが発売された。
新シリーズではRyzen 3 2200Gが最も廉価だ。
同価格帯の旧版(Ryzen5 1400)との性能差を見てどちらを購入するか検討したい。
価格COMの参考価格
- Ryzen3 2200G BOX 13824円
- Ryzen5 1400 BOX 14972円
調査方法
PCWatchのベンチマーク結果を並べて性能比較する
参考元記事
- Ryzen5 2400G / Ryzen3 2200G
【レビュー】【本日発売】GPU内蔵になったRyzenの性能をベンチマーク - PC Watch
- Ryzen5 1400 / Ryzen3 1200
調査結果
ベンチマークは参考元記事から項目を抜粋している
凡例
- A:Ryzen5 2400G(GPU内蔵)
- B:Ryzen3 2200G(GPU内蔵)
- C:Ryzen5 1400+GPU( GeForce GTX 1080)
- D:Ryzen3 1200+GPU( GeForce GTX 1080)
- 1stスコアは太字
- 2ndスコアは斜体
ベンチマーク内容 | A | B | C | D | 備考 |
---|---|---|---|---|---|
CINEBENCH R15(Single) | 159 | 147 | 135 | 135 | |
CINEBENCH R15(All) | 833 | 585 | 698 | 483 | |
HandBrake(H.264) | 78 | 99 | 116 | 157 | 数値が低いほど良い |
TMPEGEnc(H.264) | 158 | 196 | 217 | 252 | 数値が低いほど良い |
PCMark10 | A | B | C | D |
---|---|---|---|---|
score | 3842 | 3577 | 6059 | 5711 |
Essentials | 8021 | 7817 | 7400 | 7002 |
Productivity | 6719 | 6555 | 6585 | 6538 |
DigitalContentCreation | 4181 | 3892 | 5984 | 5624 |
Gaming | 2614 | 2219 | 12495 | 11165 |
SandraPlatinum | A | B | C | D |
---|---|---|---|---|
Int | 161.00 | 145.00 | 131.33 | 116.51 |
Long | 160.24 | 141.00 | 133.20 | 115.37 |
Single-Float | 96.75 | 63.44 | 84.67 | 54 |
Double-Float | 82 | 53.51 | 70.78 | 44.62 |
SandraPlatinum(memory BW) | A | B | C | D |
---|---|---|---|---|
Integer B/F | 33.45 | 32 | 35.62 | 34.45 |
Float B/F | 33.51 | 33.18 | 35.85 | 35.29 |
3Dmark(TimeSpy) | A | B | C | D |
---|---|---|---|---|
score | 1231 | 1007 | 6261 | 5837 |
Graphics Score | 1103 | 899 | 7163 | 7158 |
CPU score | 3619 | 3186 | 3655 | 2857 |
所感
Discordでゲーム音声を配信する方法
ゲーム動画の配信時にゲームの音声が配信先で再生されないので困った。
調べた結果を雑にまとめる。*1
前提
- Discordでの配信音声はマイクからの入力音声のみ
- デスクトップ音声は配信されない
- デスクトップ音声をDiscordの入力音声に指定したい
- デスクトップ音声とマイク音声を同時に配信したい場合は音声を合成する必要がある
解決策
音声ミキサーソフトを使う
雑手順
ほとんど参考サイト通り
- Voicemeeter Bananaを起動
- 基本的にマイク1の設定して終わり
- スピーカーの設定(A1)は必要なかったようなあったような・・・
- 合成された音声はB1 = VoiceMeeter Output / B2 = VoiceMeeter Aux Outputとして出力される
- 操作画面は慣ないと分かりづらい🤒
操作画面は初見はなんのこっちゃとなったので、雑画像説明↓
うまくいけばこれでデスクトップ音声とマイク音声が再生される。
動作確認方法
配信しているPC環境のみだと、うまく配信できているか確認しづらい。
スマフォなどでチェックすると確認がとりやすいかもしれない。
- 友人に確認してもらう
- スマフォにDiscord入れて別垢できちんと配信されているか確認する
終わりに
Discordでクソゲーム配信楽しいね!
終わり。
*1:配信慣れてる人なら当たり前の内容だが
スマートスピーカーのペアレンタルコントロールについて(メモ書き)
まとまった情報が無く、記事にできなかった。
リンクとメモを記録として残す。
前提
米国ではCOPPAという13才未満のプライバシー情報の収集を禁止する法律がある。
スマートスピーカーは音声情報をサーバーに送信するため、法的に現状グレーのような立場にあると述べているサイトもある。そのためか、GoogleHome/Alexaでは13才以下の子供をターゲットにしたアプリ/スキルを禁止している。
日本国内法では、米国同等の法律が無い。近いものは青少年インターネット環境整備法だ。
COPPAに比べてスマートスピーカに影響を与えることは少なそうだ。
- スマートスピーカーとCOPPA
http://fortune.com/2017/10/24/amazon-echo-alexa-children-kids-privacy/
- COPPA本文
スマートスピーカー各社の対応
GoogleHome
- 日本ではまだ未対応だけど、海外は13歳未満の子供へのフィルタリング設定機能
https://support.google.com/families/answer/7521263?hl=en
また、Google社のActionsポリシーの文面からは、大人・子供がほとんど共通で使えるようなものにしたいと考えているようだ。
- Actions の考え方
https://developers.google.com/actions/policies/general-policies#user_experience
Amazon Alexa
(自分のSmartHacksQA回答文面より:https://smarthacks.jp/qa/50)
調べた限り、Echoでのペアレンタルコントロールは残念ながら今のところできないようです。
海外でも問題となっており、子供の使用をコントロールしきれないと感じるのでしたら、親は不便ですが使うのを控えるしかないのではないか、というのが回答です。
一応Echo側もフォローしますと、EchoスキルはAmazon公式の承認を元に公開が行われます。公序良俗に反するようなものや、ポルノなどは認可が下りないような仕組みになっております。また、Echoによる商品の購入や決済などはスマフォアプリから設定行うことで、悪戯による注文がされないようにできます。
米国では子供向けのスキルの認可を積極的に推進するなどしており、家族で利用しても問題ないように配慮して普及を進めている感じを受けます。これからの進化でペアレンタルコントロールも対応されるかもしれません。
- Amazonのスキル承認のポリシー
- 海外の議論
Line Clova
(未調査)
Firebase Functionsのcron起動(メモ書き)
GoogleによるとFirebase Functionsのcron起動には以下の2つの方法があるとのことだ。
- GAE+PubSub
- 外部サービス
twitterでアドバイスいただいたのと、たかだかcronでPubSub必要か?とも思ったので、今回は外部サービスを使うことにした。
Googleの動画内で紹介されていたcronサービスのcron-job.org*1を使ってみる。
cron-job.org - Kostenlose Cron-Jobs, von minütlich bis einmal im Jahr.
blog記事(PubSub実行)
手順
ほとんど動画通りに実施。
環境設定のアクセスキーを設定
Firebaseが知らない人から呼ばれまくると嫌なので、アクセスキーを設定する。
Firebaseはhttpsが標準なのでアクセスキーは盗まれない…と思う。
ただし、Firebase自身でアクセス制御する方式なので悪意攻撃されたらリソースは食う。
これについては、Apigeeというサービスでリバースプロキシを噛まして悪意対策はできそう。
(この記事では触れない)
1. 環境にアクセスキーの設定する
環境の設定 | Firebase
1.1 アクセスキー文字列はlinuxにて自動生成
qiita.com
pwgen -s 65 1
1.2 アクセスキーを書いたjsonファイルを用意
{ "key":"xxx", "id":"xxxx" }
1.2 アクセスキーをjsonファイルから設定
qiita.com
firebase functions:config:set service_account="$(cat config.json)"
2.Functionsの公開関数先頭にアクセスキー制御処理を追加
動画の参考ソース置き場
functions-samples/index.js at master · firebase/functions-samples · GitHub
抜粋内容
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase); const secureCompare = require('secure-compare'); exports.accountcleanup = functions.https.onRequest((req, res) => { const key = req.query.key; // Exit if the keys don't match if (!secureCompare(key, functions.config().service_account.key)) { console.log('The key provided in the request does not match the key set in the environment. Check that', key, 'matches the cron.key attribute in `firebase env:get`'); res.status(403).send('Security key does not match. Make sure your "key" URL query parameter matches the ' + 'cron.key environment variable.'); return; } //この下に通常処理を記載する
firebaseにdeployする
firebase deploy --only functions
うまくいけばwebapiのURLが生成されるのでコピーする
cron-job.orgでURLの呼び出し設定を行う
設定方法は以下のサイトが詳しい。
www.lancork.net
呼び出しURLには?key=xxxxxxをつけてパラメータを渡す。以下のような感じ。
その他
試しに数分後に起動する設定を行い、cron-job.orgにてsuccessと表示されたらcronが成功したということだ。
firebase側のconsoleからもlogや実行数が変化するので動作していることが確認できる。
GoogleHomeアプリ申請時のチェックポイント(リジェクト関連記事まとめ)
GoogleHomeアプリを公式申請した場合、審査にはある程度時間がかかる。
審査にかかる時間は短いと1日、長い場合1週間かかる(土日は休み)こともあるようだ。
先月自分が審査されていたときは、だいたい4営業日で結果が分かるという感じだった。
直近では、審査期間はもっと短くなったように思う。
審査期間が何日もかかる状態だと、開発者としてはやきもきして非常につらい。
ポカミスが原因のリジェクトはなるべく避けたいところだ。
事例を調べると自分も含めて、ちょっとした設定ミスが原因のリジェクトも多い。
何度もやらかしてGoogle社に迷惑をかけると申し訳ないので、自戒もかねてリジェクト関連の情報をまとめた。
公式情報
- Actions on Google Console App Informationについての説明
Assistant app directory | Actions on Google | Google Developers
- 公開時のチェックリスト
Distribute your Actions | Actions on Google | Google Developers
調査結果
良く失敗するポイント
Actions on GoogleのApp information設定ミスがほとんど
- Pronunciation (4件)
- Google Assistantが日本語で認識した言葉にする
- このサイトの説明が詳しい https://note.mu/torusnote/n/n99463e6c5e9d
- Sample Invocation (4件)
- Sample Invocationに入力した言葉でアプリを起動できるか確認できないとリジェクト
- シミュレーター等で呼び出してみて、ちゃんとアプリが呼び出せること
- Category (4件)
- カテゴリ設定は案外難しい。自分で選択しても、Google社の考えるカテゴリと異なる事例が多い
- すでに公式化されているアプリを見て、似ているアプリのカテゴリを参考に決めると間違いが少ない
- 時間に関わるものは、「Productivity」になることが多い
詳細
個別事例へのリンク
参考になりそうな順
- Actions on GoogleのApp information設定
- Pronunciation
- Privacy policy
- Category
- Actions on GoogleのApp information設定
- Pronunciation
- Sample Invocation
- サーバー
- サーバーダウン
- VUI
- ユーザーが何を回答すればいいか分からない
- Actions on GoogleのApp information設定
- Pronunciation
- Sample Invocation
- Category
- VUI
- 終了方法のガイド
- 処理内容 / ロジック
- 処理間違い
-
- Actions on GoogleのApp information設定
- Name
- Privacy policy
- Category
- VUI
- ユーザーが何を回答すればいいか分からない
- 処理内容 / ロジック
- 処理間違い
- Actions on GoogleのApp information設定
- Actions on GoogleのApp information設定
- Pronunciation
- Sample Invocation
- 処理内容 / ロジック
- 処理間違い
- Actions on GoogleのApp information設定
- Category
■Category incorrect
「Business and finance」は金融、経済とかのアプリに使います。
本アプリはアプリを起動した時刻を保存したり前回呼び出した時間と今の時間の差を教えてくれたりするアプリなので「Productivity」のほうが適切かと存じます。
https://assistant.google.com/services/a/uid/00000036250bb88d?hl=ja
拙作
- Actions on GoogleのApp information設定
- Sample Invocation
- 処理内容 / ロジック
- 処理間違い
■Sample triggers incorrectly structured
Sample Invocationsでは、<アプリ名、または、 Pronunciation + Trigger Phrase>を組み合わせた形で文言を作成し、
必ずその文言がアプリ起動することをご確認いただいてから、ご申請いただく必要があります。
ご申請いただきました以下のSample Invocationsではアプリ起動が確認できないため、承認致しかねます。
・「つくば市ゴミカレンダー」
・「つくば市ごみカレンダー」
該当箇所を削除いただくか、本アプリがGoogleアシスタントで起動できる文言にご修正いただけますでしょうか。
■Unable to complete action described
本アプリをテストしたところ、アプリを起動するとアプリが「このアプリは使用できません。終了します。」と反応して終了するのを確認しました。
ご確認してご修正をお願い頂けますでしょうか。
その他
カテゴリの日本語訳の表
- 日本語名はhttps://assistant.google.com/intl/ja_jp/のできることタブにある名称を参考にした
Category | 日本語名 | メモ |
---|---|---|
Art&lifestyle | アート&ライフスタイル | |
Business&finance | ビジネス&金融 | 金融、経済とかのアプリ |
Education&reference | 教養&知識 | 本や、教育、教育用ゲームなど |
Food&drink | フード&ドリンク | |
Games&fun | ゲーム&娯楽 | ゲームやダジャレなど |
Health&fitness | (日本語カテゴリなし) | |
Home control | スマートホーム | |
Kids&family | (日本語カテゴリなし) | 「Kids & family」の場合、現在USでのみ対応しており、日本での対応は未定 |
Local | 地域 | 地域固有の情報 |
Movies,photos&TV | 映画&写真&テレビ | |
Music&audio | 音楽&オーディオ | 「音楽サービス」などといった、実際に音楽に関わるサービス |
News&magazines | ニュース&雑誌 | |
Productivity | 仕事効率化 | 時間を測ったり、ちょっとしたツール |
Shopping | (日本語カテゴリなし) | |
Social&communication | ソーシャル&コミュニケーション | |
Sports | スポーツ | |
Travel&transportation | 旅行&交通機関 | |
Weather | 天気 |