[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

[ODB] ScanTool.net で実車データを取得する

フリーソフトScanTool.netを使って実車(2003 Honda Odessey)からデータを取ってみた。

0001

結果として取得できたデータは限られている。ソフトの機能としては読めるようになっているようだが、実車がそのデータをサポートしていないように見える。ScanTool.netのバージョンは1.13、著作は2006年とかなり古い。開発元のウェブサイトによれば、2009年で開発は終了した模様。ソースが公開されているので眺めてみたいと思う。

参考サイト

ScanTool.net, LLC – Downloads
https://www.scantool.net/downloads/diagnostic-software/

[OBD] ELM327 ODB/ODB-II インターフェースを購入する

自動車に搭載されているコンピュータ(ECU)には外部インタフェース(ODBコネクタ)が用意されていて、ここに診断機器を接続することで詳細な故障診断が可能になっている。このODBとRS232の変換ICを製造している会社がElm Electronicsで、そのICの製品名がELM327。このICを使ったパソコン接続用のODBアダプタが各社から販売されているので、個人的な興味で1つ買ってみた。

eBayで米国内のセラーを探して送料込み$10.29で購入。付属品はCD1枚のみ。USB-to-Serialドライバとフリーウェアのソフトが入っている。

IMG_5214

参考サイト

On-board diagnostics – Wikipedia, the free encyclopedia
https://en.wikipedia.org/wiki/On-board_diagnostics

ELM327 – Wikipedia, the free encyclopedia
https://en.wikipedia.org/wiki/ELM327

Elm Electronics – OBD ICs
http://www.elmelectronics.com/obdic.html

[インフラ] Gmailで時刻指定でメールを送信する

参考サイトで紹介しているChromeプラグインを見てみたけど、いずれも無料プランだと1ヶ月10通までの制限がある。Gmailのビジネスプラン (Google Apps for Work)が月額5ドルなので、プラグインに追加で5ドル以上払う気は起きない。というか、そこまで重要な用途に使うつもりも無いし。これまでChromeプラグイン作ったこと無いけど、自作するのは難しいのかな。

以下、紹介されていたサイトを覚え書きリンク。

Right Inbox for Gmail

無料プランだと1ヶ月に10通まで。無制限の有料プランは7.95ドル/月(年払いで25%割引あり)。

Schedule Emails to Send Later, Reminders, Recurring Emails
http://www.rightinbox.com/

Right Inbox for Gmail – Chrome ウェブストア
https://chrome.google.com/webstore/detail/right-inbox-for-gmail/mflnemhkomgploogccdmcloekbloobgb?utm_source=chrome-ntp-icon

Boomerang for Gmail

無料プランだと1ヶ月に10通まで。無制限の無料プランは4.99ドル/月。

Scheduled sending and email reminders | Boomerang for Gmail
http://www.boomeranggmail.com/

Boomerang for Gmail – Chrome ウェブストア
https://chrome.google.com/webstore/detail/boomerang-for-gmail/mdanidgdpmkimeiiojknlnekblgmpdll

Mail2Cloud for Chrome

無料プランだと1ヶ月に10通まで。有料プランは2.50ドル/月~

Mail2Cloud for Chrome | Revolutionizing Email – Chrome ウェブストア
https://chrome.google.com/webstore/detail/mail2cloud-for-chrome-rev/ijhapcklhkanndjbdnhichfmolhiaekg

参考サイト

Gmailで日時を指定してメールを送信する4つの方法 | マイナビニュース
http://news.mynavi.jp/articles/2014/12/24/gmail_sendlayer/

[VirtualBox] VBoxManage – コマンドラインインターフェース

VirtualBoxにはVBoxManageというコマンドラインインターフェースが同梱されている。GUIで可能な操作は全て実行できるのに加えて、コマンドラインインターフェースでしか実行できない機能もあるらしい。もしかして使う機会があるかも?と思って覚え書き。

Windowsだと以下のディレクトリに格納されている。

使い方は参考サイトを参照。

参考サイト

Chapter 8. VBoxManage
https://www.virtualbox.org/manual/ch08.html

VBoxManageコマンド | VirtualBox Mania
http://vboxmania.net/content/vboxmanage%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89