2014年6月7日土曜日

Select2で半角・全角カナ

WebアプリケーションのセレクトボックスにSelect2を使っている。
日本語化も出来たりとかなり便利だ。
ただ、あまりない要望だろうが、検索で半角カナ・全角カナ両方に掛かって欲しい時がある。
どうにかならないものか。
ソースを追いかけたところ、select2_locale_ja.js のように拡張して matcher を変更すればどうにかなりそうだ。

(function ($) {
  "use strict";
  $.extend($.fn.select2.defaults, {
    // … 省略
    // 半角カナ・全角カナ両方にマッチ
    matcher: function(term, text) {
      term = toKanaZenkaku(term);
      text = toKanaZenkaku(text);
      return window.Select2.util.stripDiacritics(''+text).toUpperCase().indexOf(
      window.Select2.util.stripDiacritics(''+term).toUpperCase()) >= 0;
    }
  });
})(jQuery);

なお、半角カナ全角カナの変換には以下を利用させて頂いた。
半角カナを全角カナに変換するJavaScript


2014年5月24日土曜日

Weblogic Server 8.1から12cへ

XPサポート切れの話から、WindowsServer2003のサポート切れも問題にしているところもあるようだ。
参考: サポート終了迫る! Windows Server 2003からの乗り換え案内:Windows Server 2012 R2で行こう! - @IT

それもあってWindowsServer2003で動かしているWeblogicServer8.1もどうにかしようという話があがった。
引き続きWeblogicを使うのであれば12cとなる。
8.1で動かしているWebアプリケーションは、そもそも十数年前、Weblogic5.xだかの時に作成した物。

<動かしているWebアプリケーションの構成>
Java 1.4
Servlet 2.3 (web.xml DOCTYPE で確認) … J2EE1.3
JSP 1.2
EJB 1.1 (ejb-jar.xml DOCTYPE で確認) … J2EE1.2
<最新(14.5時点)>
Java 1.7
Servlet 3 … JavaEE6
JSP 2.2
EJB 3.1

8.1にした時はそんな苦労も無く移行出来たが今回はどうだろうか。
Weblogicが昔の仕様を切り捨てていなければ動くのだろうが。

実際に12cをインストールし試してみると、問題なく動作した。
サーバの設定なども8.1より簡単になった。
8.1で設定したことがあれば容易に環境構築できるだろう。

参考: Oracle Blogs 日本語のまとめ: [WLS] Oracle WebLogic Server 12c Launch Q&A




2014年4月17日木曜日

PostgreSQL8.2から9.3への移行

稼働中のシステムの検証機を用意することになった。
システムは数年前に開発されたWebのシステム。
全く同じ環境にすれば良いのだが、都合によりそうも行かず。
Windows2003からWindows7とOSから違う。
Windows7で動くことを条件にすると、APサーバなどメジャーバージョンから変わってしまった。


苦労したのが、PostgreSQL8.2から9.3の移行である。
ダンプからのリストアは問題なかったが、システムを動かすと所々でエラーが発生する。
8.2と9.3で色々と扱いが違うようだ。
システムはパッケージで導入し改修はできない。
以下のサイト参考にして(というか切り貼りして)対応した



-- 演算子||追加
CREATE FUNCTION textint4cat(text, int4) RETURNS text
   AS 'SELECT $1 || $2::pg_catalog.text' LANGUAGE sql IMMUTABLE STRICT;
CREATE OPERATOR || (PROCEDURE = textint4cat, LEFTARG = text, RIGHTARG = int4);

-- CASTの追加
CREATE CAST (int4 AS text) WITH INOUT AS IMPLICIT;
CREATE CAST (numeric AS character) WITH INOUT AS IMPLICIT;
CREATE CAST (timestamp without time zone AS text) WITH INOUT AS IMPLICIT;
CREATE CAST (character varying AS numeric) WITH INOUT AS IMPLICIT;
CREATE CAST (timestamp without time zone AS character varying) WITH INOUT AS IMPLICIT;
CREATE CAST (character varying AS timestamp without time zone) WITH INOUT AS IMPLICIT;
CREATE CAST (timestamp with time zone AS text) WITH INOUT AS IMPLICIT;

さらに postgresql.conf の standard_conforming_strings = off へ


これでどうにか動くようになった。

2014年3月8日土曜日

怪しいツールバー

保守しているWebアプリケーションが正常に動作しないとの話をうけた。
聞くと、別段問題が無いソフト(例えば7zipやPrimoPDFなど)をインストールしてからの事象だと言う。

どうやらダウンロード元がSoftonicだと発生するようだ。
例えば 7zip ならば SoftonicDownloader_for_7zip という物がダウンロードされ、それを経由してインストールすると、7Zipのほかに、buenoseach toolbar だとか Free Games 115 だとかもインストールされる。
インストーラで注意すればインストールはされないのだが、気にしないで進めてしまうのだろう。
その結果、不要なツールバーもインストールされてしまう。

今回の不具合の原因は Free Games 115 であった。
ブラウザのツールバーに組み込まれ、Free Games 115 から呼び出される JavaScript により、グローバル変数$のJQueryオブジェクトが上書きされてしまったことによって不具合が発生していた。

Free Games 115 のJavaScriptが何をしているか、とりあえず Fiddler で確認した。

どうやら何処かに何かを送っているようだ。URLをブラウザから叩いてみると近所の国の様。
ソースもチラ見したが、良くわからないが良いものではないだろう。
自分はまずインストールしない。

2014年2月3日月曜日

WIndows 7 リモートデスクトップで画面になにもない

Windows 7 へ XP からリモートデスクトップでログイン後、画面が何も無い状態に。
壁紙が単色ならばその色で、もしくは真っ黒、アイコンも無く。タスクバーも無い。
Alt+Ctl+End からログオフ可能。
タスクマネージャ起動せず。
再起動しても解決せず。
別なユーザでは通常に表示される。


状況として、新規にユーザを作成し、リモートデスクトップで初ログインを試みる。
その際、初回ログインにおいてログインやデスクトップの構築に時間がかかる場合に発生する。
その後は、リモートでなく直接ログインしても、画面にも無い状態のまま。
同じ様にリモートデスクトップで初ログイン、しても事象が起きる場合と起きない場合がある。


"コンピュータの管理"からユーザの"所属するグループ"を確認。

  • ビルトインAdministrator: Administratorsのみ…リモートデスクトップ問題なし
  • 該当ユーザ: Administratorsのみ…問題あり
  • 別なユーザ1: AdministratorsとUsersのみ…問題なし
  • 別なユーザ2: Remote DeskTopUsersとUsersのみ…問題なし

該当ユーザにUsersも追加したところ解決。




原因は、後日判明した。
Windows XPのころからの慣習で、PCセットアップ時に、Interactive User などを削除していた。
セキュリティ上の対策だったらしい。
なのでこれを戻してあげれば、解決する。