ImageMagickのインストール(Mac)と利用

メモです

インストール環境

% sw_vers
ProductName:	Mac OS X
ProductVersion:	10.15.5
BuildVersion:	19F101
% brew install imagemagick

Updating Homebrew...
はとても時間がかかりました.


epsへの画像変換

convert 変換対象画像 変換対象後画像

の順に記入します.epsへの変換の場合は,以下のような形が良い

convert p001_f.png eps2:p001_f.eps  


参考
mac にImageMagickをインストールし、convertコマンドで画像を縮小する。 - Qiita
ImageMagickでepsファイルを作成 - Qiita

Androidカメラを使用する

備忘録です。

Androidアプリを作るときに、既存のカメラアプリを起動させるプログラムはすぐに見つかったのですが、
カメラをアプリ内で利用するものが見つからず、友達が教えてくれたCamera2でいけました。

手順
・Android5以上のプロジェクト立ち上げ
・参考サイトのQiitaのページにあるプログラムをそのまま基本的には転用
 ->このままだとエミュレータ内に保存される
 f:id:harucharuru:20200526141604p:plain:h480
・保存場所を本体orSDに変更
 *今ここ


参考にしたサイト
Android の Camera2 API を使って 動画を撮影する - Qiita
android.hardware.camera2  |  Android Developers
Android MediaRecorderで録画する | TechBooster

他のサーバからcakePHPデータを移動したときにやること

cakephpで作ったデータを移動させるときに行うことメモです。

パーミッションの変更

$ cd www
$ chmod -R 777 lib/Cake/Cache/
$ cd app
$ chmod -R 777 tmp/

データベース連携

$ chmod 775 Console/cake
$ Console/cake bake

レイアウトが崩れたらやること

$ chmod -R 777 webroot/css/
$ rm tmp/cache/_admin.less.cache

php省略形許可

時々、

<?php ?>

<? ?><?= ?>

にしていて、エラーが出ることがあります。に直した方がいいのですが、サーバとして省略形を可能にする方法もあります。
管理者権限で

# vi /etc/php.ini 

211行目をコメントアウト
f:id:harucharuru:20200320105945p:plain
サーバ再起動

# systemctl restart httpd.service 

で可能です。

参考サイト
PHP省略タグについて - 新しい日記
もういい加減覚えよう。php.iniはどこにあるのか - Qiita

Alexaとお友達になりたい①食事管理アプリ作成

Google Homeの次はアレクサです。

準備

Amazon開発者ポータルにアクセス
f:id:harucharuru:20200309113045p:plain

Alexaを選択。Alexaスキルの開発を始めるをクリック。
f:id:harucharuru:20200309113111p:plain

アカウントを持っていたらログイン、持っていなかったらAmazon開発者ポータルへの登録し、ログイン。

スキル開発準備

機能やアプリケーションをスキルと言っています。そこで新しいスキルを作成していきます。
f:id:harucharuru:20200309113502p:plain

今回は食事管理アプリを自由に作成していきたいので
スキル名:食事管理
言語:日本語
スキルに追加するモデルを選択:カスタム
スキルのバックエンドリソースをホスティングする方法を選択:Alexahostを利用します。
f:id:harucharuru:20200309113717p:plain

スキルに追加するテンプレートを選択では、cake wallを選択しました。
今回、DBとの連携を行いたいと考えているので。。。
f:id:harucharuru:20200311203404p:plain

f:id:harucharuru:20200311203433p:plain
こんな感じの画面が出てきました。
f:id:harucharuru:20200311203735p:plain

スキル開発

呼び出し名の設定

呼び出し名の設定は、呼び出し名 で変更できます。変更後は必ず[モデルをビルド]を押しましょう。
f:id:harucharuru:20200311203953p:plain

Alexシミュレータでの現状確認

メニューバーのテストを選択し、開いたページから非公開を開発中にします。これで、シミュレータでの現状確認ができます。
f:id:harucharuru:20200311204150p:plain

このように出てくればOK
f:id:harucharuru:20200311204348p:plain

初めと終わり、どんなことができるか聞かれた時の文章を日本語に変更

現在、シミュレータでの動作でも確認できたように、アレクサは英語で返答するようになっています。
そこをコードエディタから日本語に変更していきます。
f:id:harucharuru:20200311204913p:plain

初め

スキルが始まった時に動作するのが、LaunchRequestHandlerです。
以下のように変更しました。
f:id:harucharuru:20200311205343p:plain

どんなことができるのか?

どんなことができるのか聞かれた時に動作するのが、HelpIntentHandlerです。以下のように変更しました。
f:id:harucharuru:20200311205429p:plain

最後

終わる時に時に動作するのが、CancelOrStopIntentHandlerです。以下のように変更しました。
f:id:harucharuru:20200311205554p:plain

聞き取れなかった時

聞き取れなかった時に動作するのが、CatchAllExceptionHandlerです。以下のように変更しました。
f:id:harucharuru:20200311205718p:plain

以上の変更を保存して、もう一度シミュレータで試してみます。
日本語になりました。
f:id:harucharuru:20200311210014p:plain

Google Homeとお友達になりたい②おうむ返し会話作成

前回からの続きです。

会話イメージ

どんな会話にするか、イメージします。G:Google、P:人間とすると、
P:OKGoogle、おうむ返しにつないで
G:こんにちは。何か話してくれれば、そのままお返しします。
P:こんにちは
G:こんにちは ですね。
P:東京のど真ん中
G:東京のど真ん中 ですね。
P:もう終わりです。
G:また何かあったらお話ししてください。

ひどい、面白みのないアプリですね。まず、テストなのでいいでしょう。

会話の作成

初めの文章を設定

アプリを開いた時に初めに言われる文章(今回でいうと「G:こんにちは。何か話してくれれば、そのままお返しします。」)を設定します。
intentを追加します。そして、responsesをクリック
f:id:harucharuru:20200308163310p:plain

そして、初めの文章を入力してSave
f:id:harucharuru:20200308163536p:plain

最後の文章を設定

最後の文章もついでに設定していきます。intent追加から・・・
どんな文章が来たら終わるかtraining phrasesに入力
f:id:harucharuru:20200308165820p:plain
そして、どんな文章を返すか入力
f:id:harucharuru:20200308163632p:plain

おうむ返し設定

聞き取る内容の設定

次におうむ返しする部分を作成していきます。intentを追加
training phrasesに、聞き取る内容を入れていきます。すると、パラメータが自動判別され表示されたりします。
f:id:harucharuru:20200308164130p:plain

今回聞き取った内容をパラメータ@sys.any(任意の単語というパラメータ)とし、パラメータ名をwordにします。
f:id:harucharuru:20200308164547p:plain

聞き取った内容への返答の設定

ここでは返答する文章を入れていきます。$パラメータ名 で聞き取った内容にして返答します。
f:id:harucharuru:20200308164711p:plain

確認

try it nowの部分で入力してみましょう。Diagnostic infoを見ると、詳しい内容が表示されます。
f:id:harucharuru:20200308165159p:plain


See how it works in Google Assistant. を選択すると、より詳しく見えます。こっちの方がいいかもしれません。
f:id:harucharuru:20200308165929p:plain

できました。

Google Homeとお友達になりたい①おうむ返しするアプリ作成

Google Homeとお友達になり、いろんなアプリケーションを作りたいと思い、書きます。
他人に向けてではなく、本当に個人的なメモですのでご了承ください。

アプリケーションを登録:Google Assistant にアクセス

Google Assistant  |  Google Developersにアクセスして、右上のGo to Actions Consoleを選択。
これでアプリケーションを登録していきます。
f:id:harucharuru:20200308144529p:plain

Newprojectを選択
f:id:harucharuru:20200308144626p:plain

同意確認を聞いてきますので、Yes/No判断して選択
f:id:harucharuru:20200308144705p:plain

プロジェクト名(今回はReturnWord)、使用する言語・場所を入力
f:id:harucharuru:20200308144812p:plain

どのカテゴリに当てはまるか選択します。今回は遊びなので、Games&funを選択しました
f:id:harucharuru:20200308144917p:plain

どの方式か聞いてきたので、会話型を選択
f:id:harucharuru:20200308145208p:plain


プロジェクトが作成されました。quicksetupのところを選択します。
f:id:harucharuru:20200308145253p:plain

ディスプレイ表示名とどの声で話しかけるか聞いてきます。
私は、おうむ返し、声は女性1にしました。(なんとなく)そして、Save
f:id:harucharuru:20200308145419p:plain

Action作成

Action作を選択。GetStartをクリック
f:id:harucharuru:20200308145500p:plain

作り方を聞いてきますので、今回はcustom intentにしました。で、Bild
f:id:harucharuru:20200308145601p:plain

Dialogflowアカウント認証・連携がありますので、許可します。
f:id:harucharuru:20200308145711p:plain

Please review your account settingsが開かれますので、選択してaccept
f:id:harucharuru:20200308145842p:plain

こんな画面が表示されたらログインします。
f:id:harucharuru:20200308145936p:plain

ログインされたら、言語を日本語にしてcreate
f:id:harucharuru:20200308150046p:plain

intentを追加する画面が出てきたらOKです。
f:id:harucharuru:20200308150152p:plain


長くなってしまったので、今回はここで終了。

cakephp SQLでデータをfindする方法

自分用メモです。

こんなSQLcakePHPで実行して、データを取りたいときは

SELECT Q.facility_id as qfid, S.facility_id as sfid  FROM questions Q, questioninstitutions S WHERE Q.id = S.question_id
$sql = 'SELECT Q.facility_id as qfid, S.facility_id as sfid  FROM questions Q, questioninstitutions S WHERE Q.id = S.question_id';
$query = $this->Question->query($sql);

つまり、

$query = $this->モデル->query('******SQLコマンド******');

で取得できます。


参考サイト
【CakePHP】直接SQL(クエリ)を実行する | POPOTOO
【CakePHP入門】テーブルを結合(JOIN)して検索する方法 | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト
[SQL] 9. ビュー 1 | TECHSCORE(テックスコア)
CakePHP2でModel->find()でjoinsを使ってみた · GitHub