【Surface Book 2】tomtoc ラップトップスリーブレビュー

tomtoc 360°保護 耐衝撃 ラップトップスリーブ 13.3インチ

先日より晴れてSurface Book 2(13.5インチ)ユーザになったわけだが、やっぱすごいキレイ。性能も画面(だって3,000×2,000だよ!)も、そして本体も

なのでやっぱりキレイな本体は大事にしまおうとケースが必要になるのは必然で、探し始めたのだが、程なくして気がついてしまった・・・。世の中は13.5インチのPCに対して冷たい
12インチ、13インチに続いて用意されているのが13.3インチなのである。そしてその次は14インチ。

なぜか?

そうアイツだ。世の中のケースはあいつらを基準に作られているのである。

で、いろいろAmazonレビューなどをあさりながら購入したのがこのtomtoc 360°保護 耐衝撃 ラップトップスリーブである。今回はそれの使用感レビュー

tomtoc 360°保護 耐衝撃 ラップトップスリーブ 13.3インチ
tomtoc 360°保護 耐衝撃 ラップトップスリーブ 13.3インチ
“【Surface Book 2】tomtoc ラップトップスリーブレビュー” の続きを読む

【Raspberry Pi】子供への通知はGoogle Homeさんに任せた

Google Home with Raspberry Pi

はじめに

毎朝、子供に「やれ準備は終わったか」だの「そろそろ出発の時間だぞ」など言ってるのが疲れるので、Google Homeさんにお願いすることにした。彼女ならスマートスピーカーの名の通り、スマートにお知らせしてくれることだろう。きっと。

先日、Raspberry Pi Zero Wも手に入れたし、node.js使って定刻通知をする仕組みを作ってみる。

用意したもの

  • Google Home
  • 彼女がいないと今回の話は始まらない。頑張ってくれたまへ。

  • Raspberry Pi Zero W
  • 主役その2。今回のシステムは常時稼働が条件なので、省エネ型のZeroをチョイスした。

実現方法

メッセージファイルはスプレッドシートを使うことにした。どこからでも手軽に書き換えられるし、夫婦で共有管理もできるので便利である。

  1. 特定の時間になったらスプレッドシートから該当メッセージを読み込む
  2. 取得したメッセージをGoogle Homeにしゃべらせる

これだけである。実に簡単だ。

[amazonjs asin=”B0746H9881″ locale=”JP” title=”Raspberry Pi Zero W Starter Kit”]
“【Raspberry Pi】子供への通知はGoogle Homeさんに任せた” の続きを読む

【Raspberry Pi】Raspberry Pi(ラズパイ)はじめてみた

はじめに

Raspberry Piってなんぞやっていうのはもう出尽くしたので(どうしても知りたい人はWikipedia読む)、なんで今さらってところだけ…

年度が代わり、子供も小学校に入ることだし、一緒になにかできることないかなぁと思ったのがきっかけ
その中で、自分も楽しめるやつがいいなってことで始めるのです。

(っていうのが建前で、これを口実に買い揃えられればいいじゃんってことすよ)

買ったもの

ラズパイ本体(Raspberry Pi3 Model B)

Raspberry Pi 3からWi-Fiが最初からついているのでそれを買う。Wi-Fi結構大事でサーバ用途として一度セットアップが終われば、コンセント1つで家中どこにでも設置できるのは大きい。

ホコリ対策でケースも必要になるだろうからセットになっているやつを買ってみた。
白と黒は難燃素材ってかいてあったんだけど、ここはコンピュータ感が欲しいのでクリアタイプを選ぶ

[amazonjs asin=”B01CSFZ4JG” locale=”JP” title=”Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Element14版, Clear)-Physical Computing Lab”]

“【Raspberry Pi】Raspberry Pi(ラズパイ)はじめてみた” の続きを読む

みんなどうしてる?ChromecastとFire TVでUSBがいっぱい問題

USB給電機器の増加に耐えられない…

我が家のテレビにはChromecastとFire TVがささっているんだけど、なんでかこういう系の機器ってmicro USBからの給電が必要なんだよね
でもテレビ付近のコンセントってテレビの電源はもちろん、ゲームやオーディオ機器の電源もあって、どんどんコンセントが埋まってっちゃうのよ
そこでさらにUSB給電が2箇所必要ってなると、いよいよコンセントが足りなくなってきてしまうわけだ

で、見つけたのがコレ
[amazonjs asin=”B0722NG2MR” locale=”JP” title=”UGREEN Micro USB二股ケーブル 2.4A出力対応 1本でAndriodスマホ?タブレットを2台同時に充電 Micro USB Y字ケーブル 高速データ通信 金メッキコネクタ 超耐久 2 in 1超便利 USBケーブル 0.5m”]

この商品の主な用途はスマホやタブレットなどmicro USBによる充電が必要な端末が2台同時に充電できるっていうのがウリ
つまるところ、これを使えば1つのコンセント(からのUSBメス)からChromecastとFire TVが同時に使えるようになるというすんぽー。

う~ん、この価格でコンセントも節約、USBケーブルでテレビ背面をごちゃごちゃにすることがない
よかった、よかった

注意

大体のテレビは大丈夫だと思うけど、このケーブルは最後の10cmくらいのところで分岐しているので、テレビ側のHDMI端子が離れすぎていると届かなくなるおそれがあるってこと。
でもまぁ、ChromecstもFire TVもUSBのプチ延長ケーブルが付属しているのでなんとかなるかな

Search Consoleでプロパティセットを利用している時のAPI設定について

複数のプロパティをまとめたセット使ってますか?

Googleの公式ブログで言われているプロパティセット
個人のブログでサブドメ毎にクエリ集計を行ってたり、httpsに移行したときにプロパティが分裂してしまったりした時、それらをまとめて検索アナリティクスで見られるようにするものだ。

(多分)一般的なプログラム

Search Console APIを使って検索クエリ等のデータを取得する際にはいろいろと下準備があるのだが、そこは割愛するが
実際に値を取得する部分だけみると、大体こんな感じのコードになると思う
[javascript highlight=”18″]
var params = {
searchType: "web",
startDate: date,
endDate: date,
dimensions: ["query"],
startRow: offset,
rowLimit: limit
}
var opt = {
"method" : "POST",
"payload" :JSON.stringify(params),
"contentType": "application/json",
"headers" : {
"Authorization": "Bearer " + accessToken
},
"muteHttpExceptions" : true
};
var res = UrlFetchApp.fetch("https://www.googleapis.com/webmasters/v3/sites/"+ encodeURIComponent(site_url) +"/searchAnalytics/query", opt);
[/javascript]
肝は最終行site_urlのところ。ここにサイトのURLを入れることになるのだが、プロパティセットの場合はそれがない
そこで検索アナリティクスの画面を開いた時のここを見て欲しい(アドレスバー赤枠内)

SearchConsoleプロパティセットのサイトURL

URLにはこんな感じでsiteUrlパラメータが設定されているが、ここからsc-set%3A(%3Aは:コロンのURLエンコード)を除いた部分がプロパティセットのsiteUrlとなる

実値を入れたプログラムイメージはこうなる
[javascript]
var res = UrlFetchApp.fetch("https://www.googleapis.com/webmasters/v3/sites/3AF_VIxxxxxxxxxxxxx/searchAnalytics/query", opt);
[/javascript]

これでプロパティセットのデータにアクセスできるようになったぞ

Google Apps Scriptで使えるファイルロガー

だって、コンソールを開かないと見られないし、なによりバッチが途中でコケた時とか、なんの記録も残らないんだぜ。

ってことで、ログのテッパン「ファイル(Google ドキュメント)ロガー」を作ってみた。

ソースコード

主目的は【ログを都度出力にすることにより、処理ダウンによるログの欠落をなくす(検知する)】である。
若干パフォーマンスは落ちるものの、この方式でイク!

gallberry/GALogger

“Google Apps Scriptで使えるファイルロガー” の続きを読む

Google Apps Scriptでタイムアウトを検知する

Google Apps Scriptの制限について

Gooogle Appsの各種サービスを利用する上で考えて置かなければならないのが利用制限である。下記のURLに詳細が記載されているとおり、利用時にはいろいろな制限がある。

Google Apps Script ダッシュボード

今回はこの中の実行時間6分の壁について考えてみようと思う。

そもそも実行制限を超えると何が起こるか?

答えは簡単「何も起こらない」である。処理の書き方にもよるけど急に止まる。ロールバック処理を入れようがない。途中でファイル出力とかしてたら書きっぱなしである。
そのためトリガーをセットしてバックグラウンドで実行している時、タイムアウトが発生した場合、なにもわからないのである。

こんなのいかがでしょうか?

5分の壁を超える方法は色々な人が教えてくれているようなので、本稿ではそもそもタイム・アウトしてしまった時の処理について考えてみた。

まぁ、簡単に言うとこれだけである。

  1. タイムアウト検知用の処理を作成
  2. メイン処理開始時に上記処理を10分後(値は任意)に起動するようにトリガーを作成
  3. メイン処理終了時に先のトリガーを削除

Class ScriptApp

サンプルコード

[javascript highlight=”18,22″]
/**
* タイムアウト通知処理
*/
function sendTimeout() {
// ここにタイムアウト時に通知を行う手段を記載する
// メールで通知やSlackに投稿なんぞいかがでしょう
}

/**
* メイン処理
*/
function main() {
// タイムアウト検知用トリガーをセット(10分後)
var triggerTimeout = ScriptApp.newTrigger(‘sendTimeout’).timeBased().after(10 * 60 * 1000).create();

// メインの処理を記載します

// タイムアウト検知用トリガーを削除
ScriptApp.deleteTrigger(triggerTimeout);
}
[/javascript]

注意

タイムアウトが発生した場合、検知用トリガーが残りっぱなしになるので、こればっかりは運用で削除するしかありませんな・・・