Eclipse本体のバージョンアップ方法

以前の記事で簡単なものは対応できますが、
プラグイン等が多いと対応が難しいので書き直し。
Eclipse本体のアップデート 3.6→3.7へ(4.3までのリンクを追記)

まず、事前にまるっとバックアップを取ってください。

基本的なやり方は、上げたいバージョンを追加
Install/Update – Available Software
4.4.x releases http://download.eclipse.org/eclipse/updates/4.4

で、4.3(kepler)から4.4(luna)にあげることを例にとると、
http://xxx/xxx/xxx/kaplerを
http://xxx/xxx/xxx/lunaに変えたものを追加
http://xxx/xxx/xxx/4.3を
http://xxx/xxx/xxx/4.4に変えたものを追加
アップデート完了まで、今までのものを削除とOFFにしないことが重要

で、アップデートをかけると、たいていはうまくいく。

[Java] こんなコードは嫌だ

常に更新予定

糞コード関連

  • 同じ処理を複数の箇所に書く
  • 継承の概念がなく、同じ処理が複数のクラスに存在する。
  • 参照渡しでデータを詰めてるUtilクラスのvoidメソッド
  • 無駄にpublic
  • データが定義ファイルに外だしされているのに、コメントが具体的になってる
  • 特例の処理なのにコメント一つない

ソース管理関連

  • 使わなくなった処理がコメントアウトされてる⇒削除しなさい
  • 処理変更の時に異なる名称でファイルを作り直して、元のファイルは消さない。

[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”くらいなモノっていう事前調査は必要ですが。

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
1 2 3 4 12