pdf.jsの使い方ページは大半が古い内容の様で、最新のpdf.jsだとサンプルスクリプトが動かない。
一番のポイントは「PDFJS」ってオブジェクト。これはver.2では「pdfjsLib」って名前になってる。
ここをポイントにしてググると、ちゃんとした情報を見つけやすい。
Raspberry Pi Zeroとカメラモジュールを入手したので、Node.jsで制御させてみた。
コマンドラン叩く系とかは面倒くさいのので敬遠してたが、「pi-camera」ってモジュール入れたら、簡単にできた。
npm install pi-camera
モジュールを入れたらサイトにあるサンプルスクリプトを参考に、JavaScriptファイルを作成して書いて実行。
const PiCamera = require('pi-camera'); const myCamera = new PiCamera({ mode: 'photo', output: `${ __dirname }/test.jpg`, width: 640, height: 480, nopreview: true, }); myCamera.snap() .then((result) => { // Your picture was captured }) .catch((error) => { // Handle your error });
撮影完了までに5秒くらいの待つけど、これは仕様らしいので、諦めるしか無いっぽい。
動画にも対応してる様なので、次は動画にチャレンジ。
Xcodeに入ってるiPhoneエミュレータみたいに、Androidエミュレータも単体起動させたかったので、色々調べた結果のメモ。
(2020.12.16修正)
/Users/ユーザー名/Library/Android/sdk/emulator/emulator -list-avds
/Users/ユーザー名/Library/Android/sdk/emulator/emulator -avd エミュレータイメージ名
雑多な動画処理でよく使うffmpegのメモ
■SNSやyoutubeに動画をアップする際、余計な生活音がはいっているので削除したい。
ffmpeg -i hoge.mp4 -vcodec copy -map 0:0 out.mp4
■容量の大きすぎる動画を適当にサイズ指定して圧縮する。
ffmpeg -i hoge.mp4 -bufsize 20000k -maxrate 25000k -acodec copy -aspect 16:9 -s 1280x720 out.mp4
■他の作業に与えない程度にCPUの使用割合を下げてエンコードする。
※別途「cpulimit」をインストールしておく。
cpulimit -l 400 -- ffmpeg -i hoge.mp4 out.mp4
Core i7クアッドコアの場合はフルで使って800なので、上記は約半分の値となる。
RM Mini 3(黒豆)を設定しようと「e-control」ってアプリ入れて普通に使おうとすると「正規品ではないため日本国内で利用できません」って出てきて、どうにもできない。
ネットで調べると、上記の2種類の方法があり、どちらでも黒豆の設定や制御は可能だった。
だが、せっかく対応した筈のGoole Home miniが認識してくれない。
どうも、ユーザー登録データがLinkJapan側に行っちゃう様で、Google homeのデバイス登録時に、IDとPWがちゃんと認証されないっぽい。
….という訳で、e-conrolの利用は諦めてIntelligent Home Center(IHC)ってアプリを入れてみたら、すべての問題がすんなり解決した。以下、その手順。
これで、Google homeから黒豆を操作する事ができた!
なお、Goole Homeはなぜかエアコンと照明だけしか認識してくれないので、テレビとかのリモコンも照明として設定しないと行けないので、ご注意を!
Node.js + express + ejsの環境で、下記みたいに書いてたが、ejsのテンプレートファイルが見つからないって、エラー(Error: Cannot find module ‘views/’)になる。
app.get("/", function(req, res) {
res.render('./views/temp.ejs', { title: 'SAMPLE'});
});
で、どうしたもんかと2日ばかり悩んだが、express.staticで、ルートのパスを指定すれば、動いた。
app.use(express.static('./views'));
app.get("/", function(req, res) {
res.render('temp.ejs', { title: 'SAMPLE'});
});
…ただ、これが正解かどうかは怪しいので、どなたか正解プリーズ!
Raspberry Pi 3 にgoogle-home-notifier入れようと思ったら微妙に手間取ったので、メモ。
$ npm init
$ npm install google-home-notifier
※「fatal error: dns_sd.h: そのようなファイルやディレクトリはありません」 ってエラーが出た場合は下記を実行してから、再度インストールする。
$ sudo apt-get install libavahi-compat-libdnssd-dev
Goome homeのアドレスをサクッと調べるために、「multicast-dns」も入れとく。
$ npm install multicast-dns
Google Home miniが事務所に来たので、色々な参考サイトを見ながら、Dialogflowで早速アプリを作ってみた。
が、実際の画面と参考サイトの説明にズレが出てたので、苦労した点をメモ。
'use strict';
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');
process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
function yourFunctionHandler(agent) {
//Actionで取得したパラメータを取得
let paramVal = agent.parameters['PARAMETER NAME'];
//ログにトレースする
console.log("PARAMETER NAME = " + paramVal);
//結果を喋らせる
agent.add(paramVal + 'です');
}
let intentMap = new Map();
//ファンクションをintentに登録する
intentMap.set('INTENT_NAME', yourFunctionHandler);
agent.handleRequest(intentMap);
});
モーダル表示で何かと便利なColorboxだが、iOSのSafariだと、ウィンドウがが縦センターじゃなく上の方に出る。どうも、表示時のアニメーションが原因らしい。
なので、’transition’を’none’にしてアニメーションを切ってみたら、ちゃんと出てきた。(デフォルト値は’elastic’)
$(".colorbox").colorbox({transition:"none"});