Skip to main content

MariaDBでPostgreSQLのGENERATE_SERIESを使う

やり方は簡単、MariaDB10.0以降で下記のSQLを実行して
「Sequence」というストレージエンジンをインストールするだけ。

INSTALL SONAME "ha_sequence";

これだけでGENERATE_SERIESと同じ動きします。

このような感じで指定した範囲でデータを取得できます。

MariaDB [test]> SELECT seq FROM seq_0_to_10;
+-----+
| seq |
+-----+
|   0 |
|   1 |
|   2 |
|   3 |
|   4 |
|   5 |
|   6 |
|   7 |
|   8 |
|   9 |
|  10 |
+-----+
11 rows in set (0.00 sec)

ちゃんとステップも使えます。

MariaDB [test]> SELECT seq FROM seq_0_to_10_step_2;
+-----+
| seq |
+-----+
|   0 |
|   2 |
|   4 |
|   6 |
|   8 |
|  10 |
+-----+
6 rows in set (0.00 sec)

今まで、ユーザー定義変数を使ったりして面倒だった日付、時間の一覧も簡単に出力できます。

MariaDB [test]> SELECT ('2015-04-01' + INTERVAL seq DAY) AS day FROM seq_0_to_10;
+------------+
| day	     |
+------------+
| 2015-04-01 |
| 2015-04-02 |
| 2015-04-03 |
| 2015-04-04 |
| 2015-04-05 |
| 2015-04-06 |
| 2015-04-07 |
| 2015-04-08 |
| 2015-04-09 |
| 2015-04-10 |
| 2015-04-11 |
+------------+
11 rows in set (0.00 sec)

MariaDB [test]> SELECT (CAST('00:00:00' AS time) + INTERVAL 30*seq MINUTE) AS day FROM seq_0_to_10;
+----------+
| day	   |
+----------+
| 00:00:00 |
| 00:30:00 |
| 01:00:00 |
| 01:30:00 |
| 02:00:00 |
| 02:30:00 |
| 03:00:00 |
| 03:30:00 |
| 04:00:00 |
| 04:30:00 |
| 05:00:00 |
+----------+
11 rows in set (0.00 sec)

今まで知らなかったけどめっちゃ便利だわー

Source: Sequence – MariaDB Knowledge Base

CodeIgniter 3 Query Builder

公式のマニュアルはここです。

つぎは誰もが必ず使うであろうDB関連の説明。
DBの中でもQuery Builderの新機能を書いていこうと思います。

CI2ではActive Recordってなってたと思うのですがCI3からQuery Builderに名前が変わりました。
基本的にはコードは変わってはいないのですが、新機能で以前はできなかったより複雑なSQLを発行できるようになっています。

続きを読む

CodeIgniter 3 Session Library

公式のマニュアルはここです。

おそらく一番変わったのではないかと思うセッションライブラリの変更点です。
基本的には下位互換があるので2系から3系にアップグレードしてもほぼそのまま動くと思います。

ストレージドライバ

  • files (default; file-system based)
  • database
  • redis
  • memcached

新たにredisとmemcachedが追加されてます。
自分はDBで事足りてますが、環境によってはとても嬉しい追加ではないでしょうか。

続きを読む

Come Back to CodeIgniter

EllisLabがCodeIgniterの新しいオーナーを探しているってあたりからしばらく情報見ていなかったのですが
いつの間にか新しいオーナーからライセンスまで変わっていてちょっとびっくりです。

日本ユーザー会もライセンス論争から長い間更新されていませんでしたが、いつの間にか更新されていました。

CodeIgniterの新しいオーナーが、 EllisLab からBritish Columbia Institute of Technology(ブリティッシュ・コロンビア工科大学)に変わりました。
これに伴い、CodeIgniterのライセンスがEllisLabの独自ライセンスからMITライセンスに変更されました。MITライセンスが適用されるのは3.0-dev以降です。
Source: 日本CodeIgniterユーザ会

ライセンスもMITに変わって長い間続いていたライセンス論争もこれで終わりですね。

公式サイトに行くとCodeIgniter3RC3が出ていて、リリース記事によると大きな変更がない限り次のリリースが正式なリリースになるようです。

次の記事で目についた変更点などをピックアップしていきたいと思います。

オーダーメイドのバレエ衣装 nidle.st

オーダーメイドのバレエ衣装 nidle.st
https://www.nidle.net/

久しぶりに個人で作らせていただいたサイトのご紹介。
紹介文らしい、紹介文も書けないのでサイトの簡単な説明と、サイトの技術的な部分を書いていこうと思います。

nidle.stとは

バレエ衣装の衣装をオーダーメイドで作ってくれるサイトです。
もともとはクライアント様の娘さんのために作っていたみたいです。
衣装のクオリティーはとても高く、初めて見た時には大変驚かされました。

続きを読む

Googleウェブマスターツールでハマった

まさかこんなことでハマるとは。。。
昨日のサーバ強化したので、今日アクセス解析などの情報を見なおしていると
Googleウェブマスターツールで今年の10月20日辺りからサイトにエラーが発生していて、
robots.txtやsitemap.xmlが読み込まれていませんでした。

20141215_01

その辺りといえば、SSL3.0の脆弱性「POODLE」があった時期なのでSSL関連だろうと思いサーバへ。
もともとこのサーバは構築当初からSSL3.0は無効で構築してあって、許可してあるプロトコルはTLSv1、TLSv1.1、TLSv1.2のみでした。
「POODLE」が起きた際に、今後別の脆弱性が起きた時に面倒なので、TLSv1.2のみ変更していました。

プロトコルを1つずつ許可していって、「Fetch as Google」でしらべて行きましたが、どうやってもつながらない!!
試しにSSL3.0も許可してみたところ、これでも接続できない。
これは、どうもおかしいということで、コマンド実行。

# TLSv1.2
openssl s_client -connect www.lalcs.com:443 -tls1_2
# TLSv1.1
openssl s_client -connect www.lalcs.com:443 -tls1_1
# TLSv1
openssl s_client -connect www.lalcs.com:443 -tls1

TLSv1.2つながる。
TLSv1.1、TLSv1がつながらない。

ここで、変更時に「ciphers」を書き換えたのを思い出して、制限を緩和したところ無事に接続出来ました。

20141215_02

その後またプロトコルを1つずつ許可していったところ、
どうやらGoogleBotはTLSv1以下で通信処理をしているらしくそれ以降のプロトコルではサイトを読み取ることができませんでした。

フルSSLを推奨しているGoogleなのでそれぐらいは対応していて欲しかったです。。

サーバ強化

ここ最近、Webサーバの負荷がどんどん大きくなっているので、サーバの強化を行いました。
今まではフロントにNginx、バックエンドにApacheでしたが、それをやめてNginxのみで全部を行うようにして
今までApacheに割いていたリソースをすべてNginxへ割り当てを変更しました。

レスポンスは以前の半分の時間になっているのでかなり軽くなったと思います。
また、一部プログラムをサブドメインに移したり、海外でSSL取ったりもしたので後日記事にしたいと思います。

ブログのメンテナンス

しばらくサボってたのでブログをすべてを更新。
新機能など追加されてて、ちょっと慣れるまで使いずらいかもなぁー
メンテナンスして気がついたのですがメールアドレスなど古いままでした・・・

新しいプラグインとか調べてて、わかったのですがWordPressって改行するときEnterじゃないんですね。
どうやらEnterは行間を空けるときに使うらしく、通常の改行のときはShift+Enterらしいです。
このブログやり始めてもうすぐ2年になりますが、いままで全部Enterで改行してましたorz

今度からは気をつけよう・・・