概ね開発の日々


オヤジニア

寝酒にピュアモルト

2015/01/22 14:44

Tomohiro Orikasa

  views 

寝酒にピュアモルト 1

昨日はアマゾンからの荷物が届くので、配送待ちついでに朝まで開発

Bootstrapでレスポンシブな表示に対応したが、画像のサムネイル自体は複数サイズを作成するようにしてある サーバサイドで幅を判断してimgタグのsrcの中を切り替えると、後のトラフィックとサーバ負荷増につながるので、ブラウザ側でネイティブに対応できないか考える html5.1のドラフトにあった、pictureタグとimgタグのsrcsetを使って試行錯誤してみようか

まずは pictureタグ を使ってみる

<picture>
    <source media="(max-width: 639px)" srcset="./img/picture_w640.jpg">
    <source media="(min-width: 640px) and (max-width: 767px)" srcset="./img/picture_w768.jpg">
    <source media="(min-width: 768px) and (max-width: 991px)" srcset="./img/picture_w992.jpg">
    <source media="(min-width: 992px)" srcset="./img/picture_w1200.jpg">
    <img class="img-responsive" src="./img/picture.jpg">
</picture>

もひとつ。imgタグのsrcset を使う方法

<img class="img-responsive"
    src="./img/picture.jpg"
    sizes="100vw"
    srcset="./img/picture_w640.jpg 640w,
            ./img/picture_w768.jpg 768w,
            ./img/picture_w992.jpg 992w,
            ./img/picture_w1200.jpg 1200w"
>

Chrome でデバッグ。ブラウザ幅を変更すると切り替わってにんまり 途中で Safari に変更。ん?切り替わらない。Firefoxもだめ…iOSは動いてる?(やや適当) Webkitで実装されたのがだいぶ前なので、てっきりSafariは動くと思ったが、やや時期尚早だったかw Chromeもよく見るとキャッシュが効かない。半日の作業が無駄に… せっかくなので、Nginxのキャッシュを使ったり、NodeJSのミドルウェアを入れてみたりして、バックエンド側でのキャッシュを試す いろいろ試しながらだったせいか、一時ファイルが変なところにできてる。再現しないので寝ぼけてたかな?もう、日が高い Nginx+NodeJS(Express)のキャッシュ使用の最適解っぽいものは見つかったが、色々細かな設定も必要なので、元に戻してしばし寝る…

起きる。もう午後w お客さんのサポートや庶務をこなしつつ、デバッグがてらスマホで画像をアップしてみるも、記事間の移動が面倒w 開発順序を入れ替えて、記事下の前後の記事へのリンクを追加することに すぐにできたが、後の記事は取れるのに、前の記事がどうにも取れずにハマる… フロントエンドからバックエンドまで順に追っかけた結果 SELECT * FROM [テーブル] WHERE [キー] < [値] ORDER BY [キー] DESC でデータが取れない。 正順(ASC)だと取れるデータが逆順(DESC)だと取れない。Mronngaのサイトで少し前のバグだった。CentOS6 標準の MySQL5.1 に Mroonga のモジュールを被せ、古いバージョンだったのが原因 MySQLを5.5に入れ替えて Mroonga を最新版にしようと思ったが、すこし時間がかかりそうだし、寝ておくか

起きる。お客さんのサポートとまた庶務。それにしても、経理処理になんでこんなに時間が食われるんだ?うーん… MySQLを入れ替える。こんな感じ

データベースのバックアップ

# mysqldump -u root -p [データベース名] > [ダンプファイルのパス]

MySQL5.1の削除

# yum remove mysql*

連なって、cronie cronie-anacron crontabs munin-node postfix sysstat yum-cron あたりのパッケージが消される。後で戻そう

MySQL5.5(SCL)のインストール

# yum install -y centos-release-SCL
# yum install -y http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
# yum makecache
# yum install -y mysql55-mysql-server
# yum install -y groonga-tokenizer-mecab

# /sbin/service mysql55-mysqld start
# chkconfig mysql55-mysqld on

つづいて、削除されたパッケージの再インストール

# yum install cronie cronie-anacron crontabs munin-node postfix sysstat yum-cron

mysql56u-common mysql56u-libs が入ったが気にしないw munin-node だけ、設定を戻しておく

# mv /etc/munin/munin-node.conf.rpmsave /etc/munin/munin-node.conf
# /etc/init.d/munin-node start

MySQLの再設定 まずはmy.cnfの変更

# vi /opt/rh/mysql55/root/etc/my.cnf

このあたりを追加しておく

[mysqld]
skip-character-set-client-handshake
character-set-server=utf8

[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8

ちゃんとチューニングしなくちゃな…

SCL版のMySQLだと設置ディレクトリが変わるのでパスを食わせないとコマンドが動かない /opt/rh/mysql55/enable にパス類の設定が書いてあるので、~/.bashrcに追記しておく

# vi ~/.bashrc

/opt/rh/mysql55/enable の内容

export PATH=/opt/rh/mysql55/root/usr/bin${PATH:+:${PATH}}
export LIBRARY_PATH=/opt/rh/mysql55/root/usr/lib64${LIBRARY_PATH:+:${LIBRARY_PATH}}
export LD_LIBRARY_PATH=/opt/rh/mysql55/root/usr/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export MANPATH=/opt/rh/mysql55/root/usr/share/man:${MANPATH}
export CPATH=/opt/rh/mysql55/root/usr/include${CPATH:+:${CPATH}}
# source ~/.bashrc

やっと、MySQLの初期設定

# /opt/rh/mysql55/root/usr/bin/mysql_secure_installation

こんな感じで回答

Change the root password? [Y/n] Y # ルートアカウントのパスワードを設定
Remove anonymous users? [Y/n] Y # anonymousアカウントを削除
Disallow root login remotely? [Y/n] Y # リモートからの使用を停止
Remove test database and access to it? [Y/n] Y # テスト用データベースを削除

ここで Mroonga(ストレージ版)をインストール

# yum install -y mysql55-mroonga

先にやっておくと、うまく動かなかったが、再起動を忘れたせいかもしれない

最後にデータベースの投入

# mysql -u root -p

mysql> CREATE DATABASE [データベース名];
mysql> quit;

# mysql -u root -p [データベース名] < [ダンプファイルのパス]

写真は一昨日打ち合わせでご来社された方からの高価ないただきもの。 香りが最高♪ 蔵が目に浮かぶよう(行ったことないけどねw)