2018年9月26日水曜日

bloggerに出戻り

BloggerからWordPressに移行して2年位使ったけど、アップデートばっかりで面倒くせぇ。そんなんで結局、Bloggerに出戻り。

アフェリエイトもやらないし、備忘録や下らない投稿だし、なんだかんだGoogleサービスに囲まれてるから一元管理できるしね。

移行方法は調べて試したけど、ちょっと古いのか変換が出来てないのか。表示できた記事、表示できない記事があって、結局移行する記事を絞って手作業にした。

参考)


2018年9月24日月曜日

【備忘録】既存システムのユーザ管理をFirebaseに変更

既存システムの拡張性を考え、ユーザ管理をFirebaseに変更することにした。
・独自でユーザを管理するよりGoogleだから安心(感)。
・FaceBookやTwitter連携が簡単にできる。
・Android/iOSアプリ開発に於いてもユーザ認証が簡単にできる。

今回はユーザ管理を認証(メールアドレス/パスワード)をFirebaseに任せることにした。その他のユーザ情報やサービス固有の情報は既存システムで管理する。Firebaseと既存システムのキーとしてはFirebaseで取得できるuidを使用する。

var user = firebase.auth().currentUser;
uid = user.uid;

修正としては
・ユーザ登録(Firebase登録後、既存システムに登録しメール送信)
・ログイン認証(Firebase認証後、既存システムのユーザ情報を取得)
・ログアウト(Firebaseログアウト後、既存システムのSessionを破棄)
・パスワード変更(Firebaseでパスワード変更、既存システムでメール送信)
・パスワードリセット(Firebaseでパスワードリセット)

悩んだ事
・メールアドレスをユーザ情報に持たせるかどうか?(結局持たせた)。
既存システムでメール送信を行うので、一々Firebaseから取得したくない。またメールアドレスは認証IDだから変更されないので既存システムで持っても変更は考える必要がないから。



2018年9月23日日曜日

【備忘録】FirebaseのFacebook認証 androidのchrome

ちょっと、Firebaseに手お出したんですがFacebookの認証にはまりました。
PC版は問題ないのですが、AndroidのChromeだとFacebookアプリが起動されWebページに返ってきません。結局理由は解らないので、以下を参考にFacebook ログイン JavaScript SDKを使ってとりあえず出来た。

やっぱりVersionとかあるからFacebookのSDKを使った方が安全です。
https://firebase.google.com/docs/auth/web/facebook-login?hl=ja(手動でログインフローを処理する)
https://developers.facebook.com/docs/facebook-login/web
https://qiita.com/qantasmz/items/3b3d4fc61a10fc385f9d

Facebookにログインは出来たんだけど、Facebookのログアウトとサービスのログアウトの分けが難しかった。

Facebookをログアウトしたら、サービスもログアウト。
サービスをログアウトしたら、Facebookはログインのまま。

【備忘録】Android ChromeのJavascriptをデバッグする方法

Thanks.
https://webbibouroku.com/Blog/Article/sp-chrome-inspect

FacebookのOauth認証で、androidのchromeで行うとFacebookアプリが起動されPC版とは違う動きに、どうにもならず助かりました。
ちょっと、USBドライバのインストールに手こずりましたが結局スマホのベンダーが出してるドライバをインストールすれば良いだけだったみたい。

chrome://inspect/

【備忘録】CakePHP2で言語切り替え


今まで、日本語サイトばっかりだったから、国際化対応って初めてなんです。
CakePHP2は国際化の仕組みを持っているようですが、今回は言語によって入力フィールドやデザインも変えたいので結局独自方式ですることにしました。CakePHP2の国際化

1.先ずは言語を取得しないとね
言語の取得はパラメータで取得しSessionに入れるだけ。言語パラメータがなかったらデフォルトをセットする。

2.切り替え対象は、HTMLとメールテンプレートなのでViewフォルダにja,enフォルダを作る。
View/Controller/ja
View/Controller/en

3.renderで表示
$this->render($this->name . '/' . lang . '/' . $this->action)
HTMLとメールテンプレートは、これで良いけど。入力エラーやメール件名をどうしようかな?

これは、CakePHP2の国際化を使った方が良さそう。でも結局、今持ってるメッセージ配列を言語で分けるように変更。
'MessageID' => array('ja' =>'テスト', 'en' =>'TEST')

【備忘録】International Telephone Input 国際電話対応入力フィールド

プライベートでは絶対使わない国際電話。今回訳あって国際電話対応の入力フィールドが必要で調べたら、
https://intl-tel-input.com

便利なものを発見。
こんな感じで、国際電話番号が取得できる。

<link rel="stylesheet" href="path/to/intlTelInput.css" />
<input type="tel" id="phone" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="path/to/intlTelInput.js"></script> <script>   $("#phone").intlTelInput();   var $phone = $("#phone").intlTelInput("getNumber"); //国際電話番号を取得 </script>

【備忘録】AWS CodeCommitとSourceTree

GitHubを使いたいので調べてみたら、AWSでCodeCommitがあったので決定。
でもAWS初心者なのでGitHubに辿り着くまでが手間取った。

【AWS】
・AWSアカウントの作成
・CodeCommitを申し込み
・IMAユーザを作成する
・IMAユーザへCodeCommitへのFull Access権限を与える
・IMAユーザのgit認証情報を作成する

【CodeCommit】
・IMAユーザでログインし直す
・リポジトリを作成する
・空ブランチを作成する

【SourceTree】
・空ブランチをCronする。この時、git認証情報が聞かれる。
・空ブランチにソースを登録して、Commit=>Pushする。(masterの出来上がり)
後は、作業ブランチを作成し作業するだけ。
やっと出来たよ。

【備忘録】CakePHP2 Modelを使用した登録

Thanks.
http://ultrah.zura.org/?p=4243

idをPrimaryKeyではなく別の意味で使っていると、単純にこれだけだと登録されずに更新になる。
$this->Model->create();
$this->Model->save();
Model中に
public $primaryKey = ‘no’;
or
public $primaryKeyArray = array(‘id’, ‘no’);
でPrimaryKeyを変更すれば大丈夫。

【備忘録】CakePHP2 PHPUnitインストール

Thanks.
https://qiita.com/t_kamata/items/59bda5df9d9949bcef25

・composer.json作成後、インストール
composer install
なんだ、このエラー?ext-domを要求してるから調べるとphp-xmlが必要らいしい。
phpunit/phpunit 3.7.10 requires ext-dom * -> the requested PHP extension dom is missing from your system.

・php-xmlのインストール
yum install --enablerepo=remi,remi-php56 php-xml

・app/Config/bootstrap.php
require_once APP . DS . 'Vendor' . DS . 'PHPUnit' . DS . 'autoload.php';
//CakePlugin::load('DebugKit');
CakePlugin::loadAll();

・動作確認
https://192.168.0.10/test.php

【備忘録】CakePHP2 CookieとSession

Thanks.
https://jmatsuzaki.com/archives/16583

'Session' => [
'defaults' => 'php',
'cookie' => 'cookie_name', // 任意の文字列
'timeout' => 259200, // 180days
'cookieTimeout' => 259200, // 180days
'autoRegenerate' => false, // 自動でセッションを再生成するのをやめる
'checkAgent' => false, // trueにすると毎回セッションが切れることがある
'ini' => array(
'session.cookie_lifetime' => 15552000, //180days
'session.gc_divisor' => 15552000,
'session.gc_maxlifetime' => 15552000, //180days
),
'use_cookies' => 1, // SessionをCookieにも保存する
'cookie_lifetime' => 15552000 //180days
],

【備忘録】CakePHP2 CakeMail SMTP-AUTH

EmailConfigにusername,passwordが入ってるとSMTP-AUTHになっちゃうのか。
username,passwordをコメントアウトしたらSMTPか。

public $smtp = array(
'transport' =&gt; 'Smtp',
'from' =&gt; array('info@gomyjet.com' =&gt; 'info'),
'host' =&gt; '127.0.0.1',
'port' =&gt; 1025,
'timeout' =&gt; 30,
// 'username' =&gt; 'info',
// 'password' =&gt; 'passwd',
'log' =&gt; true,
'charset' =&gt; 'utf-8',
'headerCharset' =&gt; 'utf-8',
);

ようやくメール送信で来たよ。

埋め込みタグの著作権

埋め込み機能は、「転載」とは異なり、コンテンツは投稿者(権利を持っている人)に固定されます。 投稿者がコンテンツを削除・変更すると、即座に反映されるのが特徴です。 埋め込み機能はいわば「公式の機能」ですので、サービスを利用する上で「同意したもの」とされます。
Instagramで気をつけたい「著作権」について
埋め込みタグはコンテンツの権利は投稿者で、コピーして転載と違うから著作権の侵害には当たらないんだ。キューレーションサイトもやってるもんね。

バイトオーダ

最近はあまりバイトオーダを気にしないが、CPUが異なる機種同士で通信などする場合はとても大切です。 バイトオーダとは、メモリの低いアドレスに最下位ビットを含むバイトを格納するか、最上位ビットを含むバイトを格納するかのこと。前者をリトルエディアンと言い、後者をビッグエンディアンと言う。 IntelのCPUはリトルインディアン。最近は殆どがIntelのCPUだからリトルインディアン。

以下はリトルインディアンです。たとえば、「1234567890」と書かれたテキストファイルをダンプ表示すると、 並びが「1234567890」ではなく、「2143658709」と並んでいます。

[vagrant@localhost ~]$ cat text
1234567890

[vagrant@localhost ~]$ od -x text
0000000 3231 3433 3635 3837 3039 000a 0000013

これは、ワード(2Byte)表示だから「12」では最下位ビットを含むバイトは「2」。メモリの低いアドレスは0番地。 よって、メモリの0番地に「2」、1番地に「1」が格納され「21」と表示されます。これがビッグエンディアンなら、メモリの0番地に「1」、1番地に「2」が格納され「12」と表示されます。 のようにCPUによってバイトオーダが異なります。1種類にCPUで閉じれば問題ないことですが、異なるCPU間で通信する場合は、ネットワークバイトオーダがあります。ネットワークバイトオーダはビッグエンディアンです。 c言語でTCP/IP通信(ソケット通信)する場合は、ネットワークバイトオーダに変換して通信を行います。

寂しい、安室ちゃん引退

僕がファンクラブに入った最初で最後(恐らく)のアーティスト。 僕は出産後、復帰してからのファンです。なんでか分からないけどファンになっちゃった。 当時は出産後復帰しても出産前のようには難しいね。なんて話をしてたけど、復帰後のライブDVDを借りてみたりしてたら、こっちが元気をもらって、ファンクラブに入会してライブには毎年参戦。 寂しいけど、安室ちゃんには幸せになってほしい。