投稿者: admin Page 15 of 47

Apple HomePodのページのPodが立ち上がる所の動きが面白い

Apple HomePodのページのPodが立ち上がる所の動きが面白い

Apple HomePodのページ(PC版)ですが、スクロールするとPodが立ち上がって来るところがおもしろい。

Apple HomePod
https://www.apple.com/homepod/

と中をのぞいてみたら。canvasタグがいっぱいでした。

Devツールでチェック

うーん、videoタグをスクロールに合わせてコマを進める( canvasにvideoを置いてから)とか考えていたのですが、ちがったベタでした。

こんどvideoでできるかためしてみたい。

nginxで2回に1回ほどNot found エラーがでるけど再読込するとでなくなる。

nginx,php-fpm,WordPress,qTranslateXプラグインの組み合わせで発生。
不思議だったのは、大丈夫な場合とNGな場合がありました。

ログ

/var/log/nginx/error.log

を見てみると。

index.php" is forbidden (13: Permission denied)

のようなPermissionエラーが連発している。
ファイル自体は 644のパーミッション、オーナーを試しに nginxの実行ユーザー/グループ(nginx.nginx)にしてもだめ、親フォルダを755にしたら解決。

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

Page 15 of 47

Powered by WordPress & Theme by Anders Norén