Amazon Echo をリクエストしてみた。

今日のAmazonの記者発表会で、Amazon Echoのスキルの開発環境が日本語対応するらしく、開発用にリクエストしてみました。

まだ発表はありませんが、人気の高いスキルを開発した人に現金で報酬を支払うプログラムを実施している。ですので、なにか日本独自のスキルやローカライズした地方に関するすきる、沖縄なところだと観光に関するスキルでのらぐじゅありーなロングステイに対応とかいろいろなにかマネタイズを探ってみたい。

「Amazon Echo」の開発環境が日本語版「Alexa」に対応。スキルの開発が可能に
https://robotstart.info/2017/11/08/alexa-dev.html

Cakephp3で検索プラグイン(friendsofcake/search)を使ってみた。

GitHubで’cakephp search’で検索 Starの多い順に並べてCakePHP3でつかそうなものからピックアップしました。で以下を採用。

friendsofcake/search
https://github.com/FriendsOfCake/search

ドキュメントのルートに行ってcomposerでインストール

$ composer require friendsofcake/search

cakeコマンドでプラグイン追加

$ ./bin/cake plugin load Search

いちおう、config/bootstrap.phpの最後あたりを確認して準備OK

Plugin::load('Search');

モデル(Table)

initializeに addBehavior()と、検索条件を追加

    public function initialize(array $config)
    {
        parent::initialize($config);
        $this->addBehavior('Search.Search');
        $this->searchManager()
            ->like('name',[
                'before' => true,
                'after' => true
            ]);

コントローラー

initializeで読み込みと使うアクション指定(ココではindex)

    public function initialize()
    {
        parent::initialize();
        $this->loadComponent('Search.Prg', [
            'actions' => ['index']
        ]);
    }

モデルのfind()で ’search’ としてリクエストを渡してあげる。
containとかは普通につなげてOK

    public function index()
    {
        
        $query = $this->Products
            ->find('search',['search'=>$this->request->query])
            ->contain(['Suppliers', 'ProductStatuses', 'Components']);
        $this->set('products', $this->paginate($query));
    }

ビュー(検索フォーム)

<?php
echo $this->Form->create(null, ['valueSources' => 'query']);
echo $this->Form->input('name');
echo $this->Form->button('検索', ['type' => 'submit']);
echo $this->Form->end();
?>

検索の様子

検索の様子

詳しくは

friendsofcake/search
https://github.com/FriendsOfCake/search

PHPStormの環境設定を保存

FileめにゅーのExport Settingsから保存可能

settings20171014.jar

WordPressのデータベースを本番環境用にしたりシェルスクリプトで自動にしたい。

WordPressのデータベースを本番環境用にしたりシェルスクリプトで自動にしたい。

いつも開発環境から本番環境へのデータベースの移動が面倒なのでできるだけ自動化したい。
よくmysqldumpでバックアップをとっているのでついでに本番、ステージングも作ってしまいたい。
とか、面倒なこととか3回あることは自動化を徹底したい。 (環境Macです。)


バックアップをとりつつプレビュー環境用のSQLも書き出す。(backup.sh)

#/bin/sh
script_dir=$(cd $(dirname ${BASH_SOURCE:-$0}); pwd)
filename=$script_dir"/_backup/backup-local."`date "+%Y%m%d_%H%M%S"`
db="データベース名"
from="localhost"
to="staging.example.com"
mysqldump -uroot -proot $db > $filename".sql";
mysqldump -uroot -proot $db | sed -e "s/$from/$to/g" > $filename"-preview.sql"
echo $filename

テーマディレクトリを開く(open.sh)

#! /bin/sh
script_dir=$(cd $(dirname ${BASH_SOURCE:-$0}); pwd)
open $script_dir/html/app/wp/wp-content/themes/original

WordPress環境ごとにデータベース情報などを切り分ける

WordPress環境ごとにデータベース情報などを切り分ける

本体の機能としてありそうだけど、肥大化すると消えそうだし痒いところはコード・プラグイン書いてーなスタンスなのかな?

とりあえず wp-configにかいておく。

define('ENV_PRODUCTION','env_production');
define('ENV_STAGING','env_staging');
define('ENV_PREVIEW','env_preview');
define('ENV_LOCAL','env_local');

switch (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : '') {
    case 'example.com':
        define('ENV',ENV_PRODUCTION);
        define('DB_NAME', 'xxx');
        define('DB_USER', 'xxx');
        define('DB_PASSWORD', 'xxx');
        define('DB_HOST', 'xxx');
        break;

    case 'staging.example.com':
        define('ENV',ENV_STAGING);
        define('DB_NAME', 'xxx');
        define('DB_USER', 'xxx');
        define('DB_PASSWORD', 'xxx');
        define('DB_HOST', 'xxx');
        break;

    case 'preview.example.com':
        define('ENV',ENV_STAGING);
        define('DB_NAME', 'xxx');
        define('DB_USER', 'xxx');
        define('DB_PASSWORD', 'xxx');
        define('DB_HOST', 'xxx');
        break;

    default:
        define('ENV',ENV_LOCAL);
        define('DB_NAME', 'example');
        define('DB_USER', 'root');
        define('DB_PASSWORD', 'root');
        define('DB_HOST', 'localhost');
        break;

}

シーケンス図をHTMLで作れるmermaidがめちゃ便利。

シーケンス図をHTMLで作れるmermaidがめちゃ便利。

これはいい、簡単にUMLの図などをwebでかける。(マークダウンみたいにルールにそって文字を打てば、JSでSVGにしてくれる)

!!ドキュメントもテキストベースでGit管理してシステム上のヘルプページみたいなのにそのまま入れちゃえばドッヂファイルとか買わなくていい(かな?)

以下のようなシーケンス図が簡単な文法でかけます。

シーケンス図

シーケンス図

ソースはgithubから。yarnとかnpmとか直接DL
https://github.com/knsv/mermaid

$ yarn add mermaid
or 
$ npm install mermaid

など、

利用ほうほうもかんたんで。

HTML
クラス名をmermaidにして。中は記法にもとづいて書く。

<div class="mermaid">
sequenceDiagram
    太郎->>花子: おはよう
    花子-->>太郎: こんにちは!!
</div>

JS
以下をコピペ。

<script src="./mermaid.js"></script>
  <script>
    mermaid.initialize({startOnLoad: true, theme: 'forest'});
</script>

で簡単。


PHPの配列の連結は+プラス演算子で簡単、pushも[] = で簡単

PHPの配列の連結は+プラス演算子で簡単、pushも[] = で簡単

いまさらながらpushは、

$arr1 = [1,2,3];
$arr1[] = 4;  //[1,2,3,4]

なのは知っていたのですが。extendみたいな事が+でできる、
すこしややこしいのは左辺が優先し右に上書きされる。
A + B の時。
A を >> Bにかぶせる感じ。

$arr1 = ['name'=>'hoge'];
$arr2 = ['age'=>40,'name'=>'yamaaaaa'];
debug($arr1 + $arr2); // ['name' => 'hoge', 'age' => (int) 40]
debug($arr2 + $arr1); // ['age' => (int) 40,'name' => 'yamaaaaa']

cakephpのcontain()内でのクロージャに use()を使って引数を渡す。

cakephpのcontain()内でのクロージャに use()を使って引数を渡す。

js感覚でvarスコープの変数を渡そうとすると渡せない。
use ($supplier_id)で渡す。

$supplier_id = 2;//これを渡したい。
$query = $this->Products->find();
    $query
        ->contain([
            'Suppliers' => function($q) use ($supplier_id){
                return $q->where(['Suppliers.id'=>$supplier_id]);
            }
        ]);

MacのターミナルでGoogle翻訳で翻訳

MacのターミナルでGoogle翻訳で翻訳

soimort/translate-shell ていうのがあるみたい。
https://github.com/soimort/translate-shell/

Dependencies(依存)するので、GNU Awk (gawk) 4.0 or laterに属するMacでは、gawkが必要と
brewでインスコ

$ brew install gawk

その後、ダイレクトにダウンロードした。(ほかgithubにインストール方法はいろいろ)
で、パスの通っている/usr/local/bin/に置くバージョンみながら確認。

$ wget git.io/trans
$ chmod +x ./trans
$ mv ./trans /usr/local/bin/trans
$ trans -version
Translate Shell       0.9.6.4-release

platform              Darwin
gawk (GNU Awk)        4.1.4
fribidi (GNU FriBidi) [NOT INSTALLED]
audio player          [NOT INSTALLED]
terminal pager        less
terminal type         xterm-256color
user locale           ja_JP.UTF-8 (Japanese)
home language         ja
source language       auto
target language       ja
translation engine    google
proxy                 [NONE]
user-agent            Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/602.1 (KHTML, like Gecko) Version/8.0 Safari/602.1 Epiphany/3.18.2
theme                 default
init file             [NONE]

Report bugs to:       https://github.com/soimort/translate-shell/issues

試す

% trans ja:en 眠いzzz
眠いzzz
(Nemui zzz)

Sleepy zzz

「眠いzzz」の翻訳
[ 日本語 -> English ]

眠いzzz
    Sleepy zzz

試す。

% trans ja:en 'まだ翻訳で消耗してるの?'
まだ翻訳で消耗してるの?
(Mada hon'yaku de shōmō shi teru no?)

Are you still consuming in translation?

「まだ翻訳で消耗してるの?」の翻訳
[ 日本語 -> English ]

まだ翻訳で消耗してるの?
    Are you still consuming in translation?, Are you still consumed in the translation?

試す。(オートコレクトがデフォで効いてるらしい。)

% trans ja:en 起きんわ                 
Showing translation for:  (use -no-auto to disable autocorrect)
沖縄
(Okinawa)

Okinawa

「沖縄」の翻訳
[ 日本語 -> English ]

沖縄
    Okinawa

いちおういつものdashのスニペットに登録


様子

様子

いつでも ターミナルで、 trane; とタイプしたら翻訳可能で超便利。

Linux(CentOS)ディレクトリ構造メモ

Linux(CentOS)ディレクトリ構造メモ

メモ。

/ ルート
/bin 一般ユーザ、管理者用コマンド
/dev デバイスファイル
/etc システム管理、ソフト設定ファイル
/lib /bin,/sbinに置かれたPGが利用するLibrary
/modules カーネルモジュールが配置
/media CD/DVDなどのデータ
/opt Linuxインストール後追加のpkg
/proc カーネルプロセスが保持する情報
/root ルートのホーム
/sbin システム管理者が利用するコマンド
/tmp アプリケーションやユーザが利用する一時ファイル
/var システム運用中にサイズが変化するファイル配置
/log ログファイル
/boot システム起動時関連
/usr ユーザが共有するもの
/bin 一般ユーザー、管理者用コマンド
/lib 各種コマンドが利用するLibrary
/local Linuxインストール後の追加でインストールしたpkgこれ以下には、bin,sbin,libなどが配置
/sbin システム管理者のみ実行できるコマンド
/home ユーザのホームディレクトリ

Page 15 of 46

Powered by WordPress & Theme by Anders Norén