2015年2月7日土曜日

CodeIgniterのActiveRecordのWHERE句の確認(補足)

先のエントリー
http://blog.wakisaka-tsuyoshi.com/2015/01/codeigniteractiverecordwhere.html
where句の中身”すべて”が取得できると思っていたのですが違っていました。

$this->db->like() でセットした条件は、

$this->db->ar_like
に格納されていました。

2015年1月31日土曜日

CodeIgniterのActiveRecordのWHERE句の確認

Confirmation of the WHERE clause of ActiveRecord of CodeIgniter

$this->db->where(); で指定した中身は、
$where = $this->db->ar_where;
で取り出せます。

CodeIgniter でサブクエリ

Subquery in CodeIgniter
ActiveRecord で EXISTS を使用するとき、

$this->db->where("EXISTS (SELECT * FROM hoge WHERE name = '"
. $this->db->escape($name)
. "' AND fuga.hoge_id = hoge.id)",
NULL,
FALSE);

第3引数にFALSE を指定するのがポイント!
そうしないと、EXISTS という文字列自体がエスケープされてしまいます。

2014年10月30日木曜日

CodeIgniter ライセンスが!!!


CodeIgniterのライセンスがMITに!!!

http://pneskin2.nekoget.com/press/?p=1384

2014年10月29日水曜日

非同期通信の待ち合わせ

Meeting of asynchronous communication.


非同期処理の完了を待って次の処理をするようなとき、コールバック地獄にならない便利なjQueryの標準モジュールDeferredです。

いろいろなところで紹介されています。
http://techblog.yahoo.co.jp/programming/jquery-deferred/
http://qiita.com/yuku_t/items/1b8ce6bba133a7eaeb23
http://api.jquery.com/category/deferred-object/

 例えば、非同期でデータを取得してビューにセットするのだけれども、読み込みが完了する前にレンダリング処理されてしまうようなときです。
 特に、非同期読み込む処理が複数のとき、それらの完了を待って描画とするとき、とても便利です。

$.when(
  // 非同期で読み込む処理1
  // 非同期で読み込む処理2
).done(function() {
  // 読み込んだ情報をビューへセット
};


2014年10月17日金曜日

Shellshock Cygwin

Shellshock Cygwin

確認してみました。
バージョンは、4.1.10(4)となっています。

$ env x='() { :;}; echo vulnerable'  bash -c "echo this is a test"


あー脆弱です。。。



https://www.cygwin.com/

こちらのサイトからダウンロード・インストールします。
そして確認です。

バージョンは、4.1.17(9)となっています。



収束したのかな。
こちらを注視です。
https://www.ipa.go.jp/security/ciadr/vul/20140926-bash.html

2014年9月7日日曜日

最近のデータのみクラウドバックアップ

I will Cloud backup only recent data.

ローカルバックアップもおこなっているのだけれども、念の為クラウドを利用したバックアップもおこないたいというとき、最近のデータのみクラウドと同期しておいていざという時に備える方法。

Windowsの場合です。



この例では、Dropboxを利用しています。

まず、クラウドストレージサービスのクライアントアプリをインストールしてクラウドと同期するフォルダを作成しておきます。

この同期フォルダに対して、定期的にクラウドと同期したいファイルをコピー/削除します。
これをバッチファイルとタスクスケジューラで構成します。

同期する対象を、フォルダ名や、直近○○日以内などで指定します。
また、過去60日より古いファイルは削除します。

コピーには、Fastcopy を利用します。差分コピーできます。
http://ipmsg.org/tools/fastcopy.html

いかは、直近90日以内のファイルをDropboxと同期、90日より古いファイルをDropboxから削除するという例です。


●バックアップするバッチファイルはこんな感じ
:: cloud backup test by fastcopy :: copy echo off :: コマンド SET CMD_NAME=c:\tool\fastcopy211\fastcopy.exe :: バックアップ元 SET SRC_DIR=e:\backup :: バックアップ先 SET BACK_DIR=c:\z\DropBox\backupCloud\recent :: バックアップポイント SET BACKUP_POINT=-90D  90日以内をコピー %CMD_NAME% /cmd=diff /bufsize=512 /log /logfile=cplog.txt /from_date=%BACKUP_POINT% /auto_close /force_close /open_window %SRC_DIR% /to=%BACK_DIR% :END
●古いファイルを削除するバッチファイルはこんな感じ
:: delete echo off :: バックアップ先 SET BACK_DIR=c:\DropBox\backupCloud\recent :: 90日以前を削除 forfiles /p %BACK_DIR% /s /c "cmd /c if @isdir==FALSE del /s @path" /D -90 >bkdellog.txt :END

※削除したファイルをログ(bkdellog.txt)に出力しています。

あとは、このバッチファイルをタスクスケジューラに登録して完了です。

拡張するとすれば、コピー/削除の結果をメールでお知らせ、とかでしょうか。


※コピー/削除の処理をおこないます。自己責任でお試し下さいませ。