2015年7月29日

MySQLのダンプをタイムスタンプ付きのファイル名で作る(ちょっと更新1)

 MySQLデータベースのダンプを作るときに毎回コマンドをコピペして作るのが面倒になったので一連のコマンド作りました。
とりあえずLinux版

ダンプしたファイルを圧縮する機能を入れてみました。

仕様
  • ダンプファイル名には、タイムスタンプをつける
  • ワンコマンドで実行できる
  • ファイルを圧縮する
  • ダンプフィアルを削除する

DB_TIMESTAMP=`date +%Y%m%d_%H%M%S`
DB_HOST=192.168.0.132
DB_USER=XXXXX_user
DB_PW=XXXXX_pw
DB_NAME=XXXXX_db
mysqldump -h $DB_HOST -u$DB_USER -p$DB_PW $DB_NAME > $DB_NAME\_$DB_TIMESTAMP.dump
tar cfvj $DB_NAME\_$DB_TIMESTAMP.tar.bz2 $DB_NAME\_$DB_TIMESTAMP.dump
rm $DB_NAME\_$DB_TIMESTAMP.dump

パスワードをコマンドラインに直接書いているので「セキュアでないよ」というメッセージは出ますがまぁ、OKです。

2015年7月28日

オレオレ証明書の取り扱い

 オレオレ証明書ってHTTPSのテストをするために使用するものだと思ってました。

不特定多数の人に対してのWebサービスでなければ(自分しか使わないとか、チームだけで使うとか)オレオレ証明書を発行して証明書をブラウザにインストール(表現あってる?)しておけば通常の証明書として使うことができるんですね。
 イマイチ自身がなかったから自分専用のWebサービスなのに証明書屋さんから証明書買ってやってましたよ。
 さらには、ワイルドカードのちょっと高いやつを。

 これでお客さんのサイト(社内システム)もオレオレ証明書で良いかな?なんて思っています。
いやいや、買ってもらうべきだすよ。


 このサイトを読んで自分にOKを出しました。
http://www.webtech.co.jp/blog/optpix_labs/server/1159/


と思いましたが、
startssl.com」という無料でSSL証明書を発行してくれるところがあるのでそっちをとって使うべきでしょうね。
ちゃんとブラウザでも対応されているようなので。


2015年7月26日

Windows10のリリースは?

Windows10のリリースは、2015/7/29となっていますが、MSDN サブスクリプションも同様なのだろうか?

今までだったら、ちょっとはやくリリースさていたような気がするのですが…。

2015年7月24日

AWSのELBとHTTPSとCakePHPでハマりました

 Webサイトを作るときには、HTTPSにしてセキュアにする必要があります。


なので、AWSでELBに証明書をインストールして以下のような構成にします。

リクエスト(HTTPS:443)

ELB(HTTPS:443→HTTP:80)

Webサーバ(HTTP:80)

ですが、httpsでアクセスしているにもかかわらず、Router::fullBaseUrl()を参照すると「http」が返却されて来てしまい困ったこととになります。
例えば送信メールにURLをつけるときに「http://ホスト名/~」となってしまいます。
他にもページ遷移がちゃんとできなくなってしまうような現象もあったような気がします。

確かに、Webサーバー内に入ってくるときは、HTTP:80なので間違いではないのかもしれません。


じゃあ、どうするか。


app/Config/bootstrap.phpに以下のロジックを書いておきます。
if(isset($_SERVER['HTTP_X_FORWARDED_PORT']) && 443 == $_SERVER['HTTP_X_FORWARDED_PORT']) {
    Router::fullBaseUrl('https://'.$_SERVER['HTTP_HOST']);
}
するとちゃんと、Router::fullBaseUrl()で「https://ホスト名」を返してくれます。

2015年7月10日

AWS CodeCommitがリリースされた

 やっとAWS CodeCommitがリリースされたようです。

今まで、サーバーを借りてそこでSubversionでソース管理していたけどこれでバックアップとかを余り気にせずにソース管理をすることができるかもです。

ですが、このサービスは、GitリポジトリのホスティングらしいのでGitの練習及び、Subversionのリポジトリの移行が必要…。

 頑張って練習しようっ。

https://aws.amazon.com/jp/codecommit/

2015年7月7日

真面目に検討しようと思う(VCSのブランチの運用ルール)

 当然のごとくVCS(Subversion)を使ってソースのバージョン管理をしているのですが、複数のテーマ(バグ対応、仕様変更等)を同時に対応しなければならないことが多々あります。

 一人でやっているのでソースのバージョンを緻密に管理していれば事故ることは殆どないのですが、それが3つ以上のテーマになると他のことに気が回らなくなってしまい壊していくことがあります。
 こんなとき、VCSのブランチの機能が有効だと思っています。  でも、通常は、一人が1テーマの対応をするはずなので開発環境はひとつ持っていれば良いと思うのですが、一人で複数のテーマを対応するする場合、複数のブランチができてしまい切り替えが大変そうな予感がしています。
 
 まぁ、そこは、いろんなテクニックがあるでしょうから使いながら調整でしょうかね?

-trunk
-branch
 -テーマ1のブランチ
 -テーマ2のブランチ
 -テーマ3のブランチ
-tags

 きっと上記のような構造になるんだと思うのですが、テーマ1のブランチを対応中は、そのソースの塊で開発環境へもっていくという必要があるんですようね。

例えば、テーマ1のブランチのディレクトリを開発環境下にシンボリックリンクでリンクを作成することで上手く行くのではないかと考えています。

テーマ1のブランチを対応中
開発環境(実行環境) ← ここは普遍
  テーマ1のブランチ ← シンボリックリンクで修正するソースを参照する

開発環境の共通的な部分は1つで済むのではないかと考えています。

2015年7月3日

JavaScriptで全角カタカナの配列をソートしたい(サクではない)


 JavaScriptのsortメソッドは、アルファベット順で並び替えるのに全角カタカナの場合はちゃんと並び替えてくれません。
そこで、sortメソッドに並び替えのルールを指定します。


例題)
ア~オのランダムにならんだ配列のカタカナを昇順に並び替えます。
カタカナをそのまま比較するとちゃんと並ばないので、encodeURIまたは、encodeURIComponentでエンコードして大小を比較します。
今回は、カタカナだけなのでどちらでも良いです。
var sorting = function(f, t) {

  var f1 = encodeURIComponent(f);
  var t1 = encodeURIComponent(t);

  if(f1 > t1) {
    return 1;
  }else if(f1 < t1) {
    return -1;
  }else {
    return 0;
  }

}


var ar = ["オ", "イ", "ア", "ウ", "エ"];

console.log(ar);   // ソート前

ar.sort(sorting);

console.log(ar);   // ソート後


// 結果(nodejsを使って実行したのですが、文字化けしています)
[ '・スI', '・スC', '・スA', '・スE', '・スG' ]
[ '・スA', '・スC', '・スE', '・スG', '・スI' ]
↓変換された文字を見てカタカナに置き換えるとちゃんとソートされています。
["オ", "イ", "ア", "ウ", "エ"]
["ア", "イ", "ウ", "エ", "オ"]

2015年7月2日

いつになくPCが遅いなと思ったら

 いつになくPCが遅いなと思ったら、使っていない仮想マシン起動していて1GBもメモリを無駄に掴んでたという…。
こんなミスも気にならないくらい程のメモリを積んだPCを早く購入したい。
一応Windows10がリリースされるタイミングでPCを買い換える予定。

 今でもの充分使えるのですが、6年経ってサクサク感を感じなくなってきたのでそろそろ退場してもらう予定。 あー、楽しみ。