ejsでテンプレートのパスが通らない件

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'});
});

…ただ、これが正解かどうかは怪しいので、どなたか正解プリーズ!

ラズパイ3にgoogle-home-notifierを入れるメモ

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
参考サイト:
Raspberry PiからGoogle Homeを喋らせる
Google Homeの名前とIPアドレスを検出する方法

DialogflowでGoogle Home用アプリを作ってみた結果報告

Google Home miniが事務所に来たので、色々な参考サイトを見ながら、Dialogflowで早速アプリを作ってみた。
が、実際の画面と参考サイトの説明にズレが出てたので、苦労した点をメモ。

●intents作成画面に、「User Says」って項目が無い!
「Training phrases」って項目に変更になった模様。
●Integrations画面に「Google Assistant」のon/offボタンがない
デフォルトでon状態になってて、切り替え不要になった模様。
●intents作成画面の「FulfilIntent」項目に、「Use webhook」ってチェックボックスが無い!
“Enable webhook call for this intent”って表記に変更になった模様。
●FulfilIntentのinline Editorにサンプルスクリプト入れても、エラーで動かない!
インスタンスの作成方法やパラメータの取得方法が、かなり変わってる模様。
とりあえず、シンプルなテンプレソースはこんな感じ。(オレンジの部分は、良くわからんのでそのまま使う。)

'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); });

Monacaデバッカーがコケる件

Android版のMonacaデバッカーを7.0.2にアップデートしたら、プロジェクトの再生で急にコケる様になった。

●端末が縦固定に設定されてる。
●プロジェクトがLandscape(横)設定にしてる。

この組み合わせの場合に発生するっぽい。
ちなみに、アプリにしたらこの問題は発生しない。

ついでに、ダッシューボードにログインする度にアカウントの言語設定がリセットされちゃうのも、地味に困る

オンラインショップの運用を開始

日常のWebサイト制作とは別に、会社としてオンラインショップの運営を開始しました。

国内外のインテリア・キッチン・雑貨や珍しいグッズをお取り扱いしています。

Zacca-Park(ザッカーパーク)

商品は随時追加していきます。現在の取扱商品は「zacca-park商品リスト」となっています。

iOSのSafariでColorboxの表示がセンターに来ない件

モーダル表示で何かと便利なColorboxだが、iOSのSafariだと、ウィンドウがが縦センターじゃなく上の方に出る。どうも、表示時のアニメーションが原因らしい。

なので、’transition’を’none’にしてアニメーションを切ってみたら、ちゃんと出てきた。(デフォルト値は’elastic’)

$(".colorbox").colorbox({transition:"none"});

WordPressのログイン中にサイトのツールバーを非表示にする

WordPressログイン中にサイトを見ると、headerの上部に隙間が空くなど、ツールバーが邪魔になると時があります。
ユーザーの管理画面で「ユーザー」-「ツールバーを表示する」のチェックを外すと非表示にできますが、手っ取り早い方法としてテーマの関数に追加します。


add_filter( 'show_admin_bar', '__return_false' );

WordPressのデータベースのバックアップ

WordPressのアップグレードや、テーマの大幅な更新を行う前にバックアップを行うことが大事です。

プラグインで行う

BackWPupをインストールして「新規ジョブを追加」。
バックアップするテーブルを全部選択されていることを確認しておきます。
バックアップしたデータはローカルフォルダ他クラウドにも保存出来ますが、とりあえずイレギュラーで容量も少ないので、今回は「メールでバックアップを送信」にしておきます。

コマンドラインで行う

複数案件を管理しているとプラグインでいちいち設定するのも面倒なので通常はコマンドラインで行います。

指定のデータベースをバックアップ

$ mysqldump -u root -p DB名 > dump_YYMMDD_DB名.sql

戻す場合は

$ mysql -u root DB名 < dump_YYMMDD_DB名.sql

WordPressのアップグレードやプラグインのインストールを管理画面から行う

WordPressに深刻な脆弱性が報告されましたため、注意喚起情報が回っています。
「改ざん被害情報が多数寄せられております。」との事なので、改めてアップグレードの方法を見直しておきます。

wp-config.phpに追記

define('FS_METHOD', 'direct’);

※ ABSPATHの記述よりも上の行に追加すること。

wordpressフォルダのグループをapache実行ユーザーへ(オーナは変えなくて良い)

パーミッションを775へ

以上で管理面からの更新、プラグイン・テーマのインストール・更新を行えます。

OSX El Capitan へアップグレードで XtraFinder が動かない

OSX El Capitan はOSをよりセキュアに利用出来るようになる事と引き換えに、システムに深く関わるツールは動作に制限が出るようです。
XtraFinderもその一つのようで、アップグレードしただけでは起動すらできません。

オフィシャルサポートページを参考にシステムの設定を変更すると起動は可能(制限有り)

https://www.trankynam.com/xtrafinder/sip.html

1. Boot to Recovery OS by restarting your machine and holding down the Command and R keys at startup.
Command+R キーを押しながらMacを起動して、リカバリーモードにする。

2. Launch Terminal from the Utilities menu.
「ユーティリティー」メニューから「ターミナル」を起動する。

3. Enter the following command: csrutil enable –without debug
Reboot your computer.
セキュリティの一部を変更(若干不安)し、再起動。

# csrutil enable --without debug
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.

これで XtraFinderが動作します。
この状態で、タブ切り替えのショートカットやウインドウの背景を暗くする等の機能は使えますが、カラム表示でフォルダを先頭に並び替える機能が設定画面に出てきません。
仕方がないので Finder の「表示オプション」で表示順序を種類に変更します。