[PHP] 日本語テキストを合成する (GD)

日本語TrueTypeフォントを使ったテキスト合成のサンプル。

test_text

[PHP] 画像を縮小して合成する (GD)

画像ファイルを読み込んで縮小して合成するサンプル。

test_img

[PHP] PHPによるPNGの生成 (GD)

オフスクリーンで画像をレンダリングするニーズあり。

GDを使えば大抵のことはできそう。まずはマニュアルからサンプルをコピペして動かす。

参考サイト

PHP: PHP による PNG の生成 – Manual
http://php.net/manual/ja/image.examples-png.php

PHP: GD – Manual
http://php.net/manual/ja/book.image.php

Geekなぺーじ:PHP GDプログラミング
http://www.geekpage.jp/web/php-gd/

[WordPress] WP Security Audit Log – 操作履歴を記録するプラグイン

WordPressのセキュリティ強化を謳ったプラグインは山のようにある。実際にSecurityをキーワードにプラグインを検索したら3,843個もヒットした。だけどセキュリティと言っても広い。果たしてそのプラグインがどういったセキュリティをどのように強化してくれるのか。エンジニアの端くれとして押さえておく必要はある。

まず取っ掛かりとして、操作ログをきちんと取って閲覧できるようにしておきたい。それを見て、どんなセキュリティ強化が必要か考えよう。

というわけで、そういったプラグインを探したら以下がヒット。

WP Security Audit Log — WordPress Plugins
https://es.wordpress.org/plugins/wp-security-audit-log/

とりあえず入れてみた。いい感じ。

参考サイト

WP Security Audit Log – The No.1 WordPress User Monitoring Plugin
https://www.wpsecurityauditlog.com/

WP Security Audit Log – A Complete Audit Log Plugin For WordPress – Darknet – The Darkside
http://www.darknet.org.uk/2015/10/wp-security-audit-log-a-complete-audit-log-plugin-for-wordpress/

[Smarty] モバイルデバイスからのアクセスを識別する

バックエンドで識別処理を実装すればいいのだけど、事情によりSmartyテンプレート内で行いたい。

ユーザエージェントで識別するのが定石か。Smartyだと$_SERVER[‘HTTP_USER_AGENT’]を以下のように取得できる。識別処理を確実にするために全て小文字で取得しておく。

ユーザエージェント文字列に、部分文字列として以下が含まれるか調べる。

  • Android
  • webOS
  • iPhone
  • iPad
  • iPod
  • BlackBerry
  • IEMobile
  • Opera Mini

部分文字列を調べるには以下を使う。もっと効率の良い方法があるかもしれない。

参考: Smarty 文字列検索 | 私的雑録
http://php.o0o0.jp/article/smarty-regex

すると、判定処理は以下のように書ける。

[jQuery] Tagsort – タグによる絞込み表示プラグイン

フロントエンドだけでタグによる絞込み表示を行うjQueryプラグイン。この先使うことがありそうな気がするので覚え書き。

Tagsort jQuery Plugin – Will Haering
http://wch.io/projects/tagsort/

参考サイト

タグによるフィルタリング機能を実装できるjQueryプラグイン*ホームページを作る人のネタ帳
http://e0166.blog89.fc2.com/blog-entry-1289.html

[Apache] XAMPP環境でSoftEther VPN Serverとのポート443の競合を解決する

SoftEther VPN Serverをインストールした後、XAMPPコントロールパネルを起動したら以下メッセージ。

ポート443 (HTTPS) が競合しているらしい。

SoftEtherを停止すれば解決されるけど、そうするとオフィスの外のスタッフがVPN接続できなくなるので停められない。というわけで、XAMPP側に対策を施すことにする。XAMPPはローカルでのウェブアプリ開発に使っているけど、今の所HTTPSを使う予定は無いので無効化してしまおう。

https-ssl.conf

あるいは、HTTPSのポート番号を変える。適当なプライベートポート番号(49152–65535)を選べばいいだろう。

https-ssl.conf

ポート番号変更後のSSLアクセスは以下のようになる。

[Python] 2.x系と3.x系のどちらを使うべきか?

自分はこれからPythonを始めようというところで、過去の資産が一切無いので3.x系でいいかな。気になるのは、ライブラリの類がどこまで3.x対応されているかということ。

参考サイト

Python のバージョン毎の違いとその吸収方法について – CUBE SUGAR CONTAINER
http://blog.amedama.jp/entry/2015/09/06/204552

Python 2 と Python 3 のどちらを使って開発すべき? – モラトリアムこじらせた
http://nyagao.hateblo.jp/entry/2014/03/25/210415

[Vagrant] ネットワークカードが複数搭載されたPCでのパブリックネットワーク設定

有線と無線の両LANカードを搭載したPCのように、ネットワークカードが複数搭載されたPCでパブリックネットワークを設定する場合には、ブリッジされたインタフェースにどのネットワークインタフェースを使うか指定しないとならない。

都度手動で指定する

Vagrantfileにネットワークインタフェースを指定しないと、VM立ち上げ時に聞いてくる。

Vagrantfile

VM起動。

立ち上がったVM上でネットワークカードを確認。テストした環境にはDHCPサーバーがあるので、IPアドレス(192.168.1.16)は自動で振られている。

ネットワークインタフェースとパブリックIPアドレスを固定するには

Vagrantfileに記述すればネットワークインタフェースとパブリックIPアドレスを固定できる。すなわち、VM起動時にネットワークインタフェースを聞いてこなくなる。

そのためにはVirtualBoxが認識しているネットワークインタフェースの名称がわからなければならない。VirtualBox同梱のVBoxManageを使うと、認識されているネットワークインタフェースを一覧することができる。

ネットワークインターフェースの名前がわかったら、VagrantfileにIPアドレスと共に記述する。

Vagrantfile

これで設定は完了。あとはVMを立ち上げればよし。

参考サイト

Public Networks – Networking – Vagrant by HashiCorp
https://www.vagrantup.com/docs/networking/public_network.html