[Java]String のindexOfとcontainsの速度比較

str.indexOf(“target”) > -1
str.contains(“target”)
上記のどちらが速いかという話。

答え:containsは内部的にindexOfを呼んでおり速度は変わらないのでcontainsでいいよ。

むしろ、出現率を踏まえた処理を書く方が速くなりますよという話。

String lower_ua = userAgent.toLowerCase();
bool isIOS = (lower_ua.contains("iphone") || lower_ua.contains("ipad") || lower_ua.contains("ipod"));

String lower_ua = userAgent.toLowerCase();
bool isIOS = (lower_ua.contains("ip") && (lower_ua.contains("iphone") || lower_ua.contains("ipad") || lower_ua.contains("ipod"));

アホみたいなソースですが、
iOSの出現率が低く想定される場合は、先に”ip”という文字列で事前チェックすることで、分岐が減るって話です。
iOS以外で”ip”でかかるのは”Sleipnir”くらいなモノっていう事前調査は必要ですが。

[Java]カレントディレクトリが迷子になった時のソース

1
2
3
4
5
File file = new File("./");
System.out.println(file.getAbsolutePath());
for (String name : file.list()) {
 System.out.println(name);
}

java.io.FileNotFoundException: “filename” (指定されたファイルが見つかりません。)
等が発生した時のカレント取得用

Windowsタブレットでのhoverメニュー対応

WindowsタブレットでIEを使うと、タッチの扱いが半端で、
タッチしてもマウスのイベントが駆動します。
Chromeだとタッチイベントが起こるんですが、IEはダメです。
どういう概念で設計してんのか責任者に問いたい感じです。

ってことで、本題なんですが、
メニューなどで、マウスオーバーでサブメニューをピローンと出すことは多々あると思います。
そんな時はWindowsタブレットでは、メニューをタッチすると、
mouseenterが起こったと思いきやmouseoutが発生し、
一瞬にしてメニューが隠れます。(アホかっ)

解決策は、
aria-haspopup="true"
上記コードを親というか、トリガーとなる要素に属性として付与する事です。
すると、タッチ時にホバー継続動作のエミュレーションが行われ、
マウスオーバーで想定してた動作が行われます。
気持ち悪い事この上ない実装乙。

タッチ対応デバイスでホバーをシミュレートする方法 / MSDN

IEのバージョン違いのテストの決定版 modern.IE

modern.IEとは

modern.IEとはMicrosoft提供のVMイメージです。
OSのバージョンとIEのバージョンというマトリクスでVMイメージが提供されており、
簡単に切り替えて使えます。

お試しあれ。

modern.IE

現時点で提供されているVMイメージ

※VirtualBox用から抜粋

  • IE6 – XP
  • IE8 – XP
  • IE7 – Vista
  • IE8 – Win7
  • IE9 – Win7
  • IE10 – Win7
  • IE11 – WIN7
  • IE10 – Win8
  • IE11 – Win8.1

[CakePHP2] テーブルにカラム追加後、モデルのキャッシュを消しても正常動作しなかったので全力対応

rm tmp/cache/*/*

これでいけました。

ご利用は計画的に。

CentOS6.5にyumで入れたsamba4の初期設定など

小一時間前にインストールだけして設定方法の情報がねーなーってことで、
風呂に入ってきたわけですが(※いつも湯船で行うDLNAができない)、
なんの事はない、samba3と同じ設定でいけました。
バックアップされた設定ファイルの必要な部分だけをコピペでもと通りに。
Windowsファイルサーバー構築(Samba) @CentOSで自宅サーバー構築

ちなみに、新機能は(意識しては)一個も使ってないので悪しからず。