猫カフェ ときわ屋へ行ってきた。

会社の同僚に教えてもらった浜北に新しく出来た猫カフェに行ってきた。

手を消毒してから中に入るとすぐに猫が寄ってきてびっくり。

全部で10匹くらいいたきがする。

猫の写真を撮ろうとカメラを構えていたら黒猫がひざに乗ってきたりした。
他の猫カフェでは人に触られすぎたのか猫が全然寄ってこないとか聞いたけど
ここは全然違う。猫がかなり人懐っこい。

子猫も2匹いた。今の時期は子猫がいるらしい。

以下猫達の写真。

子猫の反応がすごくいい。

もっと読む 猫カフェ ときわ屋へ行ってきた。

Galaxy s ファームウェアアップデート完了

数ヶ月前にもアップデートを試すも失敗し、以後ずっと放置していました。

沢山の人がアップデートでつまずいているみたい。。

アップデートできない! むかつく!

docomo GALAXY S SC-02Bのソフトウェアアップデート

色々調べると自分の場合は64bit版Windowsだからっぽい↓↓↓

バックアップまではできても、直後に接続が切れて再接続…の無限ループだったんだが、
113に電話して聞いたら、64bitのWindows7だとファームウェアアップデートができないらしい。
そういう回答がすぐ出てくるのなら、HPでそう書いといてほしいよ。

docomo Galaxy S (SC-02B) part 70

家にある32bit Vistaで再挑戦したら時間はかかったけどできた。

アップデートがこんなに難しいとか・・・。

MySQL GROUP_CONCAT関数

いつも思い出せなくて困るやつ。

GROUP_CONCAT関数

この関数は、グループからの連結された非 NULL 値を伴うストリング結果を戻します。
非 NULL 値がない場合は NULL を戻します。

GROUP BY ( 集約 ) 関数

こことか

[mysql]group_concat 問い合わせ結果を配列化

GROUP_CONCAT関数の便利さは異常

1対多の関係を持つテーブルで主キーで検索した時に結果が複数行になることは

かなり頻繁にあります。そのとき「GROUP_CONCAT」関数を使うと複数行の結果のうち

特定の列の値をカンマ区切りで一つの列にまとめることができる。

例はここがわかりやすいかも。

MySQL 1対他のデータをGROUP_CONCATで取得

便利なのでメモ。

 

GDとImageMagickでリサイズ時の画質の比較

CodeIgniter1.7.3の画像操作クラス「image_lib」でgd2を使って画像をリサイズしてましたが、
なんか元画像と較べると色が少し変と言われてので調査。

qualityを100にしても少し色が違うと・・・。

少し調べると以下のようなサイトが・・・。

GDとImageMagickの画質比較(Asial blog)
GDとImageMagick比較(プログラミングを始める10の理由)

ImageMagickのほうが画質はいいんですね。

で、image_libではGD/GD2、NetPBM、および ImageMagickに対応しているようなので
ImageMagickに変更してみた。

※以下メモ。処理は少し省いています。ファイルアップロード部分とか。

$data = $this->CI->upload->data();

$this->CI->load->library('image_lib');
$config = array();
$config['image_library'] = 'imagemagick';
$config['library_path'] = '/usr/local/bin/convert';
$config['source_image'] = $data['full_path'];
$config['maintain_ratio'] = TRUE;
$config['quality'] = 100;
$config['master_dim'] = 'auto';
$config['new_image'] = $data['file_path'] . $data['raw_name'] . "-" . $size . $data['file_ext'];

$setting = $this->CI->config->item('resize');

if($data['image_width'] >= $data['image_height']) {
    $config['width'] = 400;
    $config['height'] = 240;
} else {
    $config['width'] = 240;
    $config['height'] = 400;
}

$this->CI->image_lib->initialize($config);
$this->CI->image_lib->resize();
$this->CI->image_lib->clear();

だいたい上記の用な感じでリサイズしたら元画像と比較しても遜色の無い
綺麗な画像ができました。

※ちなみに上がgd2下がimagemagickです。

わかりずらいけどimagemagickのほうが背景色がより白く元画像に近い。。

ブログだとおなじみ見えるかも。。

CodeIgniter xss_cleanの謎

ぺらたんからのタレコミ。

CodeIgniterの1.7.3や2系でxss_cleanの挙動が不思議らしい。

例えば「EPA&DHA」の文字列をxss_cleanにかけると「EPA&DHA;」となるらしい。

xss_cleanの該当箇所を抜き出して試してみた。

<?php
$str = 'EPA&DHA';

$hash = '901119URL5918AMP18930PROTECT8198';

$str = preg_replace('|\&([a-z\_0-9]+)\=([a-z\_0-9]+)|i', $hash."\\1=\\2", $str);
echo $str . "\n";

$str = preg_replace('#(&\#?[0-9a-z]{2,})([\x00-\x20])*;?#i', "\\1;\\2", $str);
echo $str . "\n";

$str = preg_replace('#(&\#x?)([0-9A-F]+);?#i',"\\1\\2;",$str);
echo $str . "\n";

$str = str_replace($hash, '&', $str);
echo $str . "\n";

$str = rawurldecode($str);
echo $str . "\n";

実行結果

$ php ci_xss_test.php
EPA&DHA
EPA&DHA;
EPA&DHA;
EPA&DHA;
EPA&DHA;
$str = preg_replace('#(&\#?[0-9a-z]{2,})([\x00-\x20])*;?#i', "\\1;\\2", $str);

ここが原因みたい。
&のあと2文字以上なら「;」挿し込む?
ちょっと意味が分かっていない・・・。

そもそもxss対策を全部自前でやってるのはどうなのかな?

ちょっとぐぐってみたら

CodeIgniterのGlobal XSS Filteringには要注意?

CodeIgniter XSS対策

とか出てきた。

あんまり使わないほうがいいのかなー。

 

 

30分で英語が話せる 読了。

30分で英語が話せる

30分で英語が話せる

posted with amazlet at 11.05.23
クリス 岡崎
ダイヤモンド社
売り上げランキング: 13

ここのサイトで見たのと、タイトルに釣られて購入。

1時間以内で読み終わる。

目次

【第1章】あなたの知っている「700語」で英語が話せる
【第2章】「6つの発音」を直すだけで英語が通じる
【第3章】文法で大切なのは「1つ」だけ
【第4章】楽しみながら英語を学ぶ方法
【第5章】最新の「700語」をチェックしよう

この本のコンセプトは↓これ

正しさも大事だけれど、正しい英語にこだわって、結局、話せないよりは、
ちょっとくらい正しくなくても、30分で英語が話せるようになっちゃったほうがいい!

文法的な正しさを求めない勇気を!!!!

勇気がもらえる1冊。

Hello! Can you help me?
Just few minutes.
I need to speak to English native speaker today,
as my homework from my English school.

「たった6つの発音で英語が話せる」音声

jQuery 日付入力用プラグイン 「date picker plug-in」

日付入力用のjQueryのプラグインを探していて以下のページにたどり着きました。

日付入力のためのjQueryプラグイン 10選

紹介されているなかで簡単そうだったのが↓こちら

date picker plug-in

date-picker

これを使ってみることに。

一番オーソドックスなサンプルを真似てみる。

simple datePicker

ソースコードを読んでみるも不要なものが多くまぎらわしいのでさっぱり版の
サンプルコードを作成。。

シンプル版

※日付のデータフォーマットはちょっと変えてる。

読込みの部分

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
        <script type="text/javascript" src="date.js"></script>
        <script type="text/javascript" src="jquery.datePicker.js"></script>
        <link rel="stylesheet" type="text/css" media="screen" href="datePicker.css">
        <link rel="stylesheet" type="text/css" media="screen" href="demo.css">

javascriipt部分

        <script type="text/javascript" charset="utf-8">
            Date.format = 'yyyy-mm-dd';
            $(function(){
                $('.date-pick').datePicker({autoFocusNextInput: true});
            });
        </script>

html部分

<input name="date1" id="date1" class="date-pick" />

date.jsがaタグを作ってくれてそこにカレンダーのアイコンがでてるみたい。
aタグとかにjsでclickイベントを仕掛けておくと競合する可能性があるので注意。

設定簡単なのでおすすめ。

jQuery スライダー jCarousel

スライダーをそのうちつける可能性があるので予習。

jCarousel

これがよさそう。

jCarousel

とりあえず自分の手持ちの写真で試してみる。

こんな感じ

画像がでかいとかは気にしない。
CSSの修正とかできてない・・・。

設置方法は
jCarousel内のDownloadで落としてきて解凍して読み込ませる。

HTMLはこんな感じ

        <div id="wrap">
            <h1>jCarousel</h1>

            <h3>サンプル</h3>

            <ul id="mycarousel" class="jcarousel-skin-tango">
                <li><img src="./photo/IMG_1116.JPG" width="75" alt="" /></li>
                <li><img src="./photo/IMG_1166.JPG" width="75"  alt="" /></li>
                <li><img src="./photo/IMG_1167.JPG" width="75"  alt="" /></li>
                <li><img src="./photo/IMG_1202.JPG" width="75"  alt="" /></li>
                <li><img src="./photo/IMG_1270.JPG" width="75"  alt="" /></li>
                <li><img src="./photo/IMG_1448.JPG" width="75"  alt="" /></li>
            </ul>

        </div>

実際に書くjsは以下

            jQuery(document).ready(function() {
                    jQuery('#mycarousel').jcarousel();
                });

jCarouselを見るとほかにもいろいろとサンプルがあるので実際の業務
に取り入れるかも。

CSSさえ素敵に調整できれば・・・。
いまだにCSSが苦手なのでちゃんと取り組まなければ。