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 などを削除していた。
セキュリティ上の対策だったらしい。
なのでこれを戻してあげれば、解決する。

2013年12月17日火曜日

ABPeoplePickerNavigationController を使った際の Crash

XCode 5 で iOS 7 向けのアプリを作成している。
ずいぶんと長い間 Xcodeにも触っていなかったが、昔と違い、情報も豊富で色々とサンプルも見つかるので、結構はかどる。
だが、やっぱりつまるところはあるもので、数日間対応に悩んでいた。

問題は、NavigationController を使っている場合で、遷移先で ABPeoplePickerNavigationController を使用してアドレス帳を表示すると、別な画面に戻った際に、Crashすること。アドレス帳からなにかを選択しなくても落ちる。
いろんなサイトでみつけたサンプル通りにやってみるが上手くいかず、独自に色々試しても上手くいかず。

たまたま、stackoverflow で検索してみると以下のページが見つかった。


ios - App crash on use of PeoplePicker, but not in same view - Stack Overflow
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {
    [self dismissViewControllerAnimated:YES completion:nil];
    CFRetain((__bridge CFTypeRef)(peoplePicker));
}

知ってみると、大したこと無く思えることだが、見つからなかったらまだまだ悩み続けていただろう。


2013年9月6日金曜日

"シェア" に記述があるサービス

シェア ―<共有>からビジネスを生みだす新戦略を読んだ。
大量のサービス名が記載されている。
ほぼ海外のサービスであり、今となっては、日本でも知名度が高くなっているところもあれば、全くというモノもある。
また、同様のサービスが日本で立ち上がっているジャンルもあれば、まだないモノもある。


例えば、時間銀行またはコミュニティ通貨と云ったサービスは、まだ無いのか知名度が上がっていないように思う。
一方で、ソーシャル・レンディングについてはそれなりに流行っているモノがある。
だだ記述があった向こうでの大手が日本版を立ち上げたわけではない。
風土として流行らせにくいのか、それとも、ただ遅れているのか。



2013年8月10日土曜日

チョコレート嚢胞も検査してもらう

たまたま受けた検診の結果、嫁がチョコレート嚢胞というものになっていたことが判明した。


紹介状をもらい診察を受けることに。診察後手術が必要かもということで、血圧測定・尿検査・血液検査(あわせて出血が止まるまでの時間を測定)・レントゲン・呼吸機能の検査(肺活量)。別な日にMRIをおこなう。その結果から手術の方法が決まるようだ。


軽い場合は、入院しなくて済むかも思っていたが、どうやら入院は確定のようで、手術の方法(というか容態)によって入院期間が長くなるかどうかといことになってしまった。


これまで、子宮頸癌?とかの検査をまめに受けてきたはずだが、いままでひっかからず、今回少し進んだ状態でみつかった。
よりひどくなる前に見つかって良かったのだが、なぜ今まで見つからなかったのか?


見つけてくれたところの医師によると、子宮がんの検診では子宮がんについてしかみないところもあり、見逃すこともあるとのこと。(伝聞なので正確ではないが)
まあ、たまには別なところで検査するのが良いようだ。


チョコレート膿腫 内膜症の知識・体験談サイト Happyになろう!【チョコレート嚢腫(のうほう)とは】

かなり詳しく書かれている。治療法から費用まで例がでている。体験談も参考になった。

Windowsアプリケーションに互換モードを組み込む

WindowsXPで稼働させていたアプリケーションをWindows7でも問題なく稼働させるには、互換モードの設定が必要だった。
ユーザ数が少ない場合は、各自に設定してもらえば良い。だが多い場合は面倒だ。
解決策としてはインストーラに互換モードを組み込むという方法が有る。

まず、Application Compatibility Toolkit(ACT)をインストールする。
インストールしたACTに含まれるCompatibilityAdministratorで互換性データベース(拡張子sdbのファイル)を作成する。

作成した sdbファイル を Installer へセットアップファイル(インストール後には削除される)として組み込む。これには例えば、Installer で 実行されるスクリプトに "SDBINST.exe -q -p <セットアップファイルのPath>\<作成したsdbファイル>" を実行するように記述する。

これにより、インストール時に 互換モード設定が組み込まれる。
sdbファイルがインストール済みかは、「プログラムの追加と削除」から確認可能。
なお、組み込まれた互換モードは、のショートカットやREGEDITからは確認できない。実際の動作でのみの確認となる。

この互換モードはアプリケーションのアンインストール時は除かれる。
(「プログラムの追加と削除」から互換設定のみ取り除くことも可能)

参考: Windowsの互換性テクノロジの仕組み(後編)