openssl-1.1.1a TLS 1.3サポート / SMAIL TLS 1.3サポート予定

2018/09/11にOpenSSL 1.1.1がリリースされTLS v1.3がサポートされました。
最新バージョンは、2018/11/20 OpenSSL 1.1.1aで、1.02系はOpenSSL 1.0.2qとなります。

SMAIL v4.20は、OpenSSL 1.0.2系を使っていますので、TLSはv1.2までで、今回
OpenSSL 1.1.1aを使って、TLS v1.3でメール通信できるか試しました。(安定動作確認後、v4.21をリリースする予定です。)

1.OpenSSL 1.1.1aのコンパイル
  1) https://www.openssl.org/source/ より、openssl-1.1.1a.tar.gzをダウンロード
  2) コンパイル環境の実行(Visual Studio 10.0)
     C:workvcfreeopenssl-1.1.1a>”C:Program Files (x86)Microsoft Visual Studio 10.0VCbinvcvars32.bat”
     Setting environment for using Microsoft Visual Studio 2010 x86 tools.
  3) Configureの実行
     C:workvcfreeopenssl-1.1.1a>perl Configure VC-WIN32 no-asm enable-tls1_3 –prefix=C:workvcfreeopenssl-1.1.1a

     ※・64BITの時は、VC-WIN32の代わりにVC-WIN64A
    ・asemblerでコンパイル出来るときは、no-asmは外して下さい。SHA等の計算はが早くなる。
    ・tls1.3を使うので、enable-tls1_3

   Configuring OpenSSL version 1.1.1a (0x1010101fL) for VC-WIN32
   Using os-specific seed configuration
   Set up gcc environment – 3.4.5 (mingw-vista special r3)
   Creating configdata.pm
   Creating makefile

**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm –dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   ‘Troubleshooting’ section in the INSTALL file first)         ***
***                                                                ***
**********************************************************************
   C:workvcfreeopenssl-1.1.1a>

    ※OpenSSL 1.0.2系の時は、msディレクトリーが生成されてその配下に
   nt.makとかntdll.makが作られていましたが、必要なくなりました。
 
 4) makefileの書き換え
     smailは、マルチスレッド バージョンの静的なランタイムライブラリを使用するため
    コンパイルオプションを変更します。

   CNF_CFLAGS=/Gs0 /GF /Gy /MD
   =>
   CNF_CFLAGS=/Gs0 /GF /Gy /MT
   に変更

 5) コンパイル
     C:workvcfreeopenssl-1.1.1a>nmake
     libcrypto.def
     libssl.def
     libcrypto.lib
     libssl.lib
     libcrypto_static.lib
     libssl_static.lib
     が生成される。必要なのはlibcrypto.def,libssl.def,libcrypto_static.lib,libssl_static.lib

2.smailのコンパイル(ソースコードは非公開です。)変更点のみメモ

  1)リンクライブラリーの変更
   libeay32.lib;ssleay32.lib
   =>
   libcrypto_static.lib;libssl_static.lib

    2)追加で必要なライブラリー
   ws2_32.lib
 
     ※これをリンクしないと、
   __imp__freeaddrinfo
   __imp__getnameinfo
   __imp__getaddrinfo
   がunresolved external symbolとなります。

  これだけで、OK。

3.tls 1.3対応のメールサーバを用意

  tls 1.3対応のメールサーバがないと、tls 1.3で通信できるかどうか
  わからないので、tls 1.3対応のメールサーバを準備。
  https://qiita.com/ma3ki/items/3e40775e74bad58a06f3
  を参考に、www.picolix.jpにセットアップ。(他からは利用できません。)
  再記しておきます。
  
  1) openssl-1.1.1 のインストール
   # curl -O -L https://www.openssl.org/source/openssl-1.1.1.tar.gz
   # tar xvzf openssl-1.1.1.tar.gz
   # cd openssl-1.1.1
   # ./config –prefix=/usr/local/openssl-1.1.1 shared zlib
   # make
   # make install

   # echo /usr/local/openssl-1.1.1/lib >> /etc/ld.so.conf.d/openssl.conf
   # ldconfig

   2) postfix-3.3.1 のインストール
    # cp -p /usr/lib/systemd/system/postfix.service /var/tmp
    # yum remove -y postfix
    # curl -O http://www.ftp.saix.net/MTA/postfix/official/postfix-3.3.1.tar.gz
    # tar xvzf postfix-3.3.1.tar.gz
    # cd postfix-3.3.1
    # CCARGS=”-Wmissing-prototypes -Wformat -Wno-comment -fPIC
-DHAS_LDAP -DLDAP_DEPRECATED=1 -DHAS_PCRE -I/usr/include/pcre
-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL
-I/usr/include/sasl -DUSE_TLS -I/usr/local/openssl-1.1.1/include
-DDEF_CONFIG_DIR=”/etc/postfix””
# AUXLIBS=”-lldap -llber -lpcre -L/usr/lib64/mysql -lmysqlclient
-lm -L/usr/lib64/sasl2 -lsasl2 -L/usr/local/openssl-1.1.1/lib -lssl
-lcrypto  -pie -Wl,-z,relro,-z,now”
# make -f Makefile.init makefiles CCARGS=”${CCARGS}” AUXLIBS=”${AUXLIBS}”
# make
# make install
* インストール先は全てデフォルト

  3) SSL証明書の取得
     www.picolix.jp letsencryptで自動取得しているので割愛

 4) postfix に SSL/TLS関連設定を追加して起動

# cat <<_EOL_>> /etc/postfix/main.cf
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtp_tls_cert_file = /opt/dehydrated/certs/www.picolix.jp/fullchain.pem
smtp_tls_key_file  = /opt/dehydrated/certs/www.picolix.jp/privkey.pem
smtp_tls_loglevel = 1
smtp_tls_security_level = may
smtp_use_tls =yes
smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtpd_tls_ask_ccert = yes
smtpd_tls_cert_file = /opt/dehydrated/certs/www.picolix.jp/fullchain.pem
smtpd_tls_ciphers = high
smtpd_tls_key_file  = /opt/dehydrated/certs/www.picolix.jp/privkey.pem
smtpd_tls_loglevel = 1
smtpd_tls_mandatory_ciphers = high
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_session_cache
smtpd_use_tls = yes
tls_high_cipherlist  = EECDH+AESGCM
tls_preempt_cipherlist = yes
_EOL_

   Postfixは、中間証明書を設定する項目がないので、証明書と中間証明書の両方が含まれるfullchain.pem を指定します。

# cp -p /var/tmp/postfix.service /usr/lib/systemd/system/
# systemctl enable postfix
# systemctl start postfix
# postconf -e “alias_maps = hash:/etc/aliases”

4.smail動作確認
 SSL暗号化は、設定上SSLv2/v3を選択。(自動でsslv2,v3,tls 1,1.1,1.2,1.3が適応されます。TLSを選択した場合はtls1.0固定 このあたりは文言修正予定)

 サーバ側のログ
 ==
Dec 21 20:16:27 www postfix/smtpd[11397]: Anonymous TLS connection established from xx.xxx.xx[xx.xx.xx.xx]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 ==

  TLS 1.3で通信できていることを確認。
  当初tls 1.3用のclient_methodの関数がなくconnectionの方法を変えないといけないのかと思いましたが、勝手に tls 1.3が必要な時は、tls 1.3で通信できました。
(smail 近日バージョンアップ予定です。)

iPhone アプリ作成の開発環境

メイン機はDELLのノートPC Windows 10で、Mac Bookも持ってはいますがBootCampでwindows 7環境でずっと使っています。
メイン機でiPhone アプリ開発したいので、以前Vmware Playerで、Mac Xをインストールして動かしていたイメージがあったので、これをMac OS X-10.11 El Capitanにapp storeからUPDATEしてXcode 7.3をインストールしました。

昨日のフリーSIM化したSoftBank iPhone 5s 64G 実機でアプリを導入できるか試してみました。

————————————————–
DELL Inspiron 7537
 Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz
 4core MEM:16G

Vmware Player :仮想: Mac OS X-10.11 El Capitan
  CPU @ 1.9Ghz
  2cpu MEM:4G
  HDD 120G

————————————————–
  ※ituneでiPhone 5sも問題なく認識。
 

 
 ※とりあえず、Build & run まあこの辺は統合環境をいろいろ使ってるので雰囲気で行ける・・・
   APPLE IDでsign inの要求が来たので言いなりにセットアップ。(これは一度だけで良い)
  iPhone 5sにアプリがインストールされるがこのままではセキュリティー制限で動作せず。
 
 
 [設定] – [一般] – [プロファイルとデバイス管理]にデベロッパAPPのタグが出来ていたので、
 これをタップして、”信頼”設定すれば以後このデベロッパのアプリは動作可能。
 

後は、普通に動作します。
これで、iPhoneアプリも開発できます。ただapp storeに載せるにはApple Developer Programの登録料が毎年1万1800円するので、有料アプリ作らないとほぼ意味ない。
あと、Objective-C知りません、というかこの言語嫌いなんです。c,c++,c#,javaでいいじゃない。
なぜにわあわざObjective-C・・・。
画面のレイアウトとかオーバーレイとかプロセス間とかiPhone iOS全く知らないのでこのあたりを熟知する必要があります。

CrenaCam 0.9.5 Google PLAY「審査の結果、なりすましに関するポリシーに違反しているため」アプリリジェクト&異議申し立てで復活

CrenaCam 0.9.5「審査の結果、なりすましに関するポリシーに違反しているため」アプリリジェクト&異議申し立てで復活

経過メモ
【8/6 16:20】
 CrenaCam 0.9.4.1から0.9.5にUPDATEしてGoogle PLAY

 ※Nexus 5xおよび6pのイメージセンサーがreverse location取り付け位置による180度回転表示、画像保存問題に対応。


【8/6 17:26】
 「審査の結果、なりすましに関するポリシーに違反しているため」という内容のメールがgoogleから来て、アプリが削除されてしまった。 
 Google PLAY Developer Consoleにログインして確認してみると、削除になってるし、過去バージョンごとなかったことになってしまってる。
 自動判定で何かが誤認識されたんだと思いますが、面倒だけどメール中にあったGoogle のポリシー サポートチームのリンクがあったのでそこから異議申し立てを行った。(文章は日本語のみで英文は付けなかった。)

 ”オリジナルで誤認識と思われますので再確認をお願いします。”と一行だけ書いて、
 自分のホームページトップのCrenaCamのキャプチャー画像を付けて送信した。

【8/6 17:54】
 Google Play Teamから72時間以内にメールするから待てと、英文のテンプレ回答がきた。

【8/9 17:36】
 Google Playチーム(<=日本)から
 ”お客様の異議申し立てを承認し、結果としてアプリ「CrenaCam」(jp.picolix.camera.controll)を元に戻させていただきました。”
 Google PLAY Developer Consoleから再度[更新を送信] するように。
 とのメールが来た。
 ※リミット72時間の18分前!

【8/9 19:00】
  CrenaCam 0.9.5.1にバージョンアップして、再登録。
  ※画像保存時にプログレスを付けた。

【8/9 20:00】
  無事UPDATE完了しました。
 ※これって毎回、誤認アプリリジェクトが発生するリスクがあるのか・・・
  何回もやってたらアカウントBANもあり得る。

肝心のバージョンアップ内容は
================
・画面キャプチャーサイズが縮小されるバグ修正
・Nexus5x,6pで画面が180度回転するバグ修正
・画像保存時にプログレス表示
================
https://play.google.com/store/apps/details?id=jp.picolix.camera.controll

============================================================================
後日談、なぜか1日後に再リジェクトされた。
再「異議申し立て」して、 
再”お客様の異議申し立てを承認”
何回繰り返すのか・・・
このままだと今後も同様のことが繰り返されるはずなので
「アプリやストアの掲載情報で第三者の知的財産(ブランド名やロゴ、画像アセット、音声など)を使用する権限を有していることを証明する文書がある場合」
に対して、
Google Play アプリ審査チームに、
 第三者がcrenacamをレビューしてくれた内容をpdfにして送信した。
Google Play アプリ審査チームより
 「jp.picolix.camera.controll」に関する文書を受領いたしました。今後の参照用に提出させていただきます。”とのメールを頂いたので今後は大丈夫かと思います。
※これで以後再発した時は、個人のアプリなのでもう面倒なのでストアからリジェクトでいいです。
会社のアプリがこれだと深刻ですが・・

APPサーバにGoogleアカウントでログインする。

よくサイトで、twitterアカウントでログインとか、facebookアカウントでログインとかありますが、「Googleアカウントでログインする」を実装中です。
google cloud platform上で完結するアプリだと凄く簡単なのですが、APPサーバが別サイトの場合、google cloud platform上でGoogle App Engineを利用したAPPを作成して連携させないといけません。
今回は、google cloud platform上でgoogleアカウント認証サーバを作成して、googleアカウントログイン中なら、ID,ニックネーム,メールアドレスを呼び出し元に帰り、ログインしていなければgoogleのログイン画面が出てログイン後に、呼び出し元に帰るようにしました。

※APPサーバとgoogleアカウント認証サーバの連携には、ワンタイムパスワードを連携させて他から接続できないようにする予定。

作ってみて気が付いたのですが、普通にこれを設置してURL公開して知らないユーザが、もしgoogleアカウントログイン中でアクセスしたら、ID,ニックネーム,メールアドレスがサイトオーナーに知られてしまいます。
(但し、知られるのはこの3種類だけでパスワードとかは、知られませんのでそこは安心して下さい。)

尚、google cloud platformは無料ではありません。有料となりますが、インスタンスとかチューニングして、課金されないようにします。(弱小サイトなので無課金でいけるかと思います。)

=メモ=googleアカウント認証サーバ(そんなに大したものではありません)==
google cloud platformの使い方、Google APP Engine Launcherの使い方とかは他のサイトで。

—————————-
 =メモ=googleアカウント認証サーバ(そんなに大したものではありません)==
google cloud platformの使い方、Google APP Engine Launcherの使い方とかは他のサイトで。
—————————-

<?php
require_once ‘google/appengine/api/users/UserService.php’;

use googleappengineapiusersUser;
use googleappengineapiusersUserService;

$user = UserService::getCurrentUser();
$login = UserService::createLoginURL($_SERVER[‘REQUEST_URI’]);
if ($user == null) {
       ob_start();
       header(‘Location: ‘ . $login);
       ob_flush();
}else{
$op = $_POST[‘op’];
       $uri = $_SERVER[‘REQUEST_URI’];
$userid = $user->getUserID();
$nicknme = $user->getNickname();
$email = $user->getEmail();
$str = $userid . “t” . $nicknme . “t” . $email . “t” . $op . “t” . $uri;
$sstr = var_serialize($str);

       echo “<html><head></head>”;
       echo “<body onload=’document.returnlogin.submit();’>”;
       echo “<form name=’returnlogin’ method=’post’ action=’https://xxxxx.xxxx/login.php’>”;
       echo “<input type=’hidden’ name=’fg’ value='” . $sstr . “‘>”;
       echo “</form>”;
       echo “</body></html>”;

}

function var_serialize( $obj ){
        //データを暗号化します。受け取り側は複合化する。
}

?>

これだけです。
APPサーバ側は、googleアカウントでログインしたい時は、googleアカウント認証サーバを
formでsubmitとすればOKです。
既にログイン中の時は、https://xxxxx.xxxx/login.phpに戻って来ます。

ログインしていない時は、googleアカウントログイン画面が表示され、
ログイン後、
に必要情報を付加して戻って来る。

MacBook (13-inch, Aluminum, Late 2008)/Bootcamp3.3/Windows 7 64bitからWindows 10にUPGRADE

MacBook (13-inch, Aluminum, Late 2008)にWindows 7 64bitからWindows 10にUPGRADEしました。
(実施される方はくれぐれも自己責任でお願いします。)(この記事は、中級、上級者向けです。)

自宅のノートPCを順次、Windows 10にUPGRADEして快適に使用していますが、
今回、娘の使っているMacBook (13-inch, Aluminum, Late 2008) Bootcamp3.3/Windows 7 64bit
をWindows 10にUPGRADEしました。
娘がなぜこんなマニアな環境使っているかといいますと、すべて私のお古が娘や、奥さんに渡ってるからです。^^
Windows 10にUPGRADEする今日の今日まで、トラックパッドのクリックが動作していないことに気づきました。
まあ、ずっとUSBマウスを使って来たので、全然気にしてなかったそうですが。。

1) 内蔵2.5inch SATA HDD(250G)を丸ごと他の2.5inch SATA HDD(250G)に物理コピー
(失敗しても大丈夫なように)

MacBook (13-inch, Aluminum, Late 2008)のBootcamp3.3は、そもそもWindows 7 64bit
をサポートしていませんし、Windows 10も当然サポートしていません。
Bootcampのバージョンは3.3止まりです。

2) マイクロソフトのwindows 10アップグレードからおもむろに開始
3) とりあえず、windows 10にUPした。不具合は以下の事象発生
 ・FN+ファンクションキーが効かない
  (FN+SHIFT+F11のスクリーンショットとか効かない)
 ・画面の輝度調整が効かなくなった。
  (これは以前、windows 7にした時も発生。
    https://www.picolix.jp/blog/2014/09/mac-bootcampwindows7.html
 ・トラックパッドが効かなくなった。

 以上の事象で下記のbootcampバージョンを用意する。
 [Boot Camp Support Software 4.0.4033]
  https://support.apple.com/kb/DL1630?locale=ja_JP&viewlocale=ja_JP
 [Boot Camp サポートソフトウェア 5.1.5722]
  https://support.apple.com/kb/DL1836?viewlocale=ja_JP&locale=ja_JP

 【FN+ファンクションキーが効かない】
  Boot Camp Support Software 4.0.4033のZIPを解凍し、
  E:tempBootCampDriversApplex64AppleKeyboardInstaller64.exe
   を実行すると動作するようになった。
 【画面の輝度調整が効かなくなった。】
  E:tempBootCampDriversApplex64
  ドライバーの更新でBoot Camp 4の古いドライバーをインストールし直す。
   http://blog.ukixa.com/2015/10/macbook2008-windows-10.html

   1.ディスプレイアダプターのドライバーを一旦、「Microsoft 基本ディスプレイ アダプター」に変更する。
      2.コントロール パネルからプログラムのアンインストールでNVIDIA関連のパッケージを全てアンインストールする。
      3.pnputil.exe を使ってドライバー ストアからNVIDIA関連のパッケージを全て削除する。

         pnputil.exe -eでリストアップして、NVIDIA関連のinfをメモして、
      pnputil.exe -f -d oem??.inf
         で該当のNVIDIA関連を削除する。

      4.「C:Program FilesNVIDIA Corporation」フォルダーを削除する。
      5.wushowhide.diagcab を使ってNVIDIA関連のドライバーが自動更新されないように設定する。

    NVIDIA関連がリストアップされているので、チェックして適用する。

      6.ドライバーの更新でBoot Camp 4の古いドライバーをインストールしなおす。

  を参考に。
  私は以前は、NVIDIAから直接旧ドライバー拾って旧バージョンに戻して
  いましたがBootCamp4.0.4033を利用した方が手っ取り早いです。
 【トラックパッドが効かなくなった。】
  デバイスマネージャで、tuch padが2つ?になっているので削除。
    Boot Camp サポートソフトウェア 5.1.5722を解凍し、
  C:tempBootCampDriversAppleAppleMultiTouchTrackPadInstaller64.exe
  を実行。
  デバイスマネージャで、ハード更新すると、Apple MultitouchとApple Multitouch Mouse
  がインストールされて使えるようになります。
  (ただし、windows 7 の時と同様クリックが動ない。
   =>回避策をご存じの方がおられましたら教えてください。)
  とりあえず、不自由ないのでこれで後5年は使えるかな。

 UPGRADEされたwindows 10 proのプロダクトキーをProdukeyツールで調べてみると、
 自分のDell Inspiron 7537 ノートPCのwindows8.1からwindows 10 proにUPしたキーと同じになってる。
 TY4CG-Jxxxx-xxxxx-xxxxx-xxxxx
 ちなみに、もう一台のDELL Latitude E4200ノートPCは違うキーでした。
 QJNXR-Yxxxx-xxxxx-xxxx-xxxxx

Ingress 「Agent Stats」がデータアップ時サーバエラーで使えないので。。 tesseract-ocrのビルド

Ingress用のAndroidの「Agent Stats」ですが、Ingressのprofileのスクリーンショットを共有でサーバサイトに送信するとOCRで読み取ってくれて、実績を管理してくれるのですが、
人気なのかサーバ過負荷だと思いますが、エラーで全然認識してくれません。><

(本記事は、一般向けではありませんので、「Agent Stats」で検索して来られた方は、
お役に立ちません。すみません。アプリが完成すれば別ですが。)

そこで、自分で作ってみることにしました。「Agent Stats」はサーバサイドでOCRで読み取って
いますが、今回はAndroid端末側でOCR機能を入れて読み取れないかまず試してみました。

第一ステップ:Android端末の方でOCR認識して、データを文字列に置き換えてできるか。
まず、AndroidでOCRライブラリーを探したところ、
https://github.com/rmtheis/tess-two
があり、ネイティブコード(C/C++)で作られています。jniですので、Android NDKが必要になります。
NDKは、Windowsでは面倒くさいので、Linux(CentOS7)上でコンパイル環境を構築することにします。

【ndk-build環境の構築】CentOS7

1.Android NDKのインストール
 1) wget http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin
 2) chmod +x android-ndk-r10e-linux-x86_64.bin
 3) android-ndk-r10e-linux-x86_64.bin
 4) mv android-ndk-r10e /usr/local/
 5) echo ‘export PATH=$PATH:/usr/local/android-ndk-r10e’ >> .bashrc
 6) echo ‘export NDKROOT=/usr/local/android-ndk-r10e’ >> .bashrc

2.Android SDKのインストール
 1) wget http://dl.google.com/android/android-sdk_r24.2-linux.tgz
 2) tar zxvf android-sdk_r24.2-linux.tgz
 3) mv android-sdk-linux /usr/local/
 4) echo ‘export PATH=$PATH:/usr/local/android-sdk-linux/tools/’ >> .bashrc
 5) echo ‘export PATH=$PATH:/usr/local/android-sdk-linux/platforms’ >> .bashrc

3.その他必要モジュール
 ビルド時、/usr/local/android-sdk-linux/build-tools/22.0.1/aapt実行時に必要
 モジュールがなくエラーが出る場合は、必要なモジュールをインストールすること。
 私の環境では、以下3つが必要でした。

  1) yum install ld-linux.so.2
  2) yum install libz.so.1
  3) yum install libstdc++.so.6

【tesseract-ocrのビルド】 作者に感謝。

 1) git clone git://github.com/rmtheis/tess-two tess
 2) cd tess
 3) cd tess-two
 4) ndk-build
 5) android update project –path .
 6) ant release

 成功すると以下にオブジェクトが出来ます。
 ./bin/classes.jar
 ./libs/armeabi-v7a/liblept.so
                           /libtess.so
       /mips/liblept.so
               /libtess.so
       /x86/liblept.so
              /libtess.so

 以上をEclipsプロジェクトのlibsフォルダーにコピーすればもうOCR読み取り
 関数が使えます。

【OCR読み取りツール】EclipsはWindows上で開発しています。
  とりあえずこんな感じで、まずは文字が読めるかみました。

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;

Bitmap bitmap = BitmapFactory.decodeFile(“/sdcard/Pictures/ingress/profile_20150507_202910_0.png”, options);
bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);

Log.v(TAG, “– START”);

TessBaseAPI baseApi = new TessBaseAPI();
baseApi.setDebug(true);
baseApi.init(DATA_PATH, lang);
baseApi.setImage(bitmap);

String recognizedText = baseApi.getUTF8Text();

baseApi.end();

Log.v(TAG, “– END);

読み取り画像 テストアプリで読み取り後

すばらしい。読み取れてる!。読み取り時間は、ネイティブコードにしても8秒程度かかります。

(金色のグラディエーションが係ってるタグ欄は文字化けしているけどこれは読み取れなくともいいので)

使えることが分かったので、第二ステップ以降は時間のある時に作成します。
とりあえず、CSVにしてデータをメール転送ならさくっとできそうです。
OCR読み取りの作成部分は今後、仕事にも生かせそうです。

さくらVPSで借りているサーバをCentOS7に移行しました。

さくらVPS CentOS6.5のサーバを新たにCentOS 7をクリーンインストールして移行しました。
(6.5から7へUPGRADEもできますが、今後のことも考えてクリーンインストールします。)
LAMP関係は動いて当然なので気にしてないのですが、
・OSGrid opensimサーバ
・画像生成サーバ
の為に、1),2)が動作必須のアプリ&モジュールです。

1) opensim関連
  ○ mono

wget http://download.mono-project.com/repo/xamarin.gpg
rpm –import xamarin.gpg
yum-config-manager –add-repo http://download.mono-project.com/repo/centos/
   yum install mono
      でさくっと入った。(Mono JIT compiler version 3.10.0)
      以前は関連モジュールをコンパイルして入れていました。

 ○ opensim.exe
   CentOS 7 からは、DBは、MySQL→MariaDB へ変更。といっても
   旧データ、設定はそのまま使えて、問題なく動作。

2) 画像関連:
 ○ ImageMagick-perl-6.7.8.9-10.el7.x86_64
 ○ netpbm

   これも問題なくインストール&動作OK

3) VPN pptpd
  CentOS7,firewall-cmdで設定した情報があまりなかったが、なんとなく設定したら簡単に
動いた。(CentOS6.5よりも簡単設定)
 以下、設定メモ

 #yum install pptpd
  /etc/pptpd.conf
    localip 192.168.0.1
    remoteip 192.168.0.234-238,192.168.0.245

  /etc/rsyslog.conf
     *.=debug;
          news.none;mail.none     -/var/log/pptpd

  systemctl restart rsyslog.service

  /etc/ppp/options.pptpd
  #ms-dns 8.8.8.8
  ms-dns 210.224.163.4
  ms-dns 210.224.163.3

 /etc/ppp/chap-secrets
 # Secrets for authentication using CHAP
 # client        server  secret                  IP addresses
 username * password *

 ファイアウォール設定
 firewall-cmd –add-port=1723/tcp –permanent
 firewall-cmd –add-port=514/udp –permanent
 firewall-cmd –permanent –direct –add-rule ipv4 filter INPUT 0 -p 47 -j ACCEPT
 firewall-cmd –zone=public –add-masquerade –permanent
 firewall-cmd –reload

 firewall-cmdで–add-masqueradeを実行するとip_forwardの設定は不要。

 #systemctl start  pptpd.service
 #systemctl enable pptpd.service

4) mondorescue (ISOイメージまるごとバックアップ)

 これは動作しません。まだCentOS7用は出ておりません。
 無理やり、CentOS6用をインストールして使て見ましたがだめでした。
 CentOS 6用をインストールして使うと、grubが無いって怒られます。
 CentOS 7からgrubはgrub2になってる。
 

==以下自分用のコマンドメモです。CentOS7 Sakura == メモ
・RUN LEVEL 3に変更
ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target

・いらないサービスはやめる。
systemctl disable abrt-ccpp.service
systemctl disable abrt-oops.service
systemctl disable abrt-vmcore.service
systemctl disable abrt-xorg.service
systemctl disable abrtd.service
systemctl disable atd.service
systemctl disable dbus-org.freedesktop.nm-dispatcher.service
systemctl disable auditd.service
systemctl disable avahi-daemon.service
systemctl disable bluetooth.service
systemctl disable accounts-daemon.service
systemctl disable avahi-daemon.service
systemctl disable dbus-org.freedesktop.ModemManager1.service
systemctl disable dmraid-activation.service
systemctl disable display-manager.service
systemctl disable firstboot-graphical.service
systemctl disable fprintd.service
systemctl disable gdm.service
systemctl disable hypervkvpd.service
systemctl disable hypervvssd.service
systemctl disable irqbalance.service
systemctl disable iscsi.service
systemctl disable ksm.service
systemctl disable ksmtuned.service
systemctl disable libstoragemgmt.service
systemctl disable libvirtd.service
systemctl disable lvm2-monitor.service
systemctl disable mdmonitor.service
systemctl disable microcode.service
systemctl disable ModemManager.service
systemctl disable multipathd.service
systemctl disable nfs-lock.service
systemctl disable packagekit-offline-update.service
systemctl disable rngd.service
systemctl disable rpcbind.service
systemctl disable rtkit-daemon.service
systemctl disable smartd.service
systemctl disable spice-vdagentd.service
systemctl disable sysstat.service
systemctl disable systemd-readahead-collect.service
systemctl disable systemd-readahead-drop.service
systemctl disable systemd-readahead-replay.service
systemctl disable tuned.service
systemctl disable vmtoolsd.service
systemctl disable chronyd
 chronyd ==> ntpdの代わりらしい

systemctl list-unit-files | grep enable
cups.path                                   enabled
crond.service                               enabled
cups.service                                enabled
dbus-org.fedoraproject.FirewallD1.service   enabled
dbus-org.freedesktop.NetworkManager.service enabled
dbus-org.freedesktop.nm-dispatcher.service  enabled
firewalld.service                           enabled
getty@.service                              enabled
netcf-transaction.service                   enabled
NetworkManager-dispatcher.service           enabled
NetworkManager.service                      enabled
postfix.service                             enabled
rsyslog.service                             enabled
serial-getty@.service                       enabled
sshd.service                                enabled
cups.socket                                 enabled
dm-event.socket                             enabled
iscsid.socket                               enabled
iscsiuio.socket                             enabled
lvm2-lvmetad.socket                         enabled
default.target                              enabled
multi-user.target                           enabled
nfs.target                                  enabled
remote-fs.target                            enabled
reboot

[[リポジトリー]]
yum install -y epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
wget http://download.mono-project.com/repo/xamarin.gpg
rpm –import xamarin.gpg
yum-config-manager –add-repo http://download.mono-project.com/repo/centos/

vi /etc/yum.repos.d/CentOS-Base.repo
 [centosplus]
 name=CentOS-$releasever – Plus
 mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
 #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
 gpgcheck=1
 enabled=1

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
rpm -iUvh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

[[yum or make]]
yum install postgre*
yum install mariadb*
yum install php php-cli php-pdo php-mysql php-common php php-cgi php-devel php-gd php-mbstring php-pear php-xmlrpc php-xml php-gd php-pgsql php-json
yum install screen
yum install mono
yum install perl-DBD*
yum install vsftpd
yum install clamd
yum localinstall http://mirror.centos.org/centos/6/os/x86_64/Packages/nkf-2.0.8b-6.2.el6.x86_64.rpm
yum install ImageMagick-*
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
  http://www.mk-mode.com/octopress/2014/08/07/centos-7-0-installation-of-chrootkit/
  earching for Suckit rootkit… Warning: /sbin/init INFECTED => これは誤動作らしいのでOK
yum install pptpd
yum install ftp
yum remove cronie-anacron =>anacronは嫌い。
yum install cronie-noanacron =>いつものcronにする。
yum install libjpeg*
yum install hdparm

/etc/yum.conf
exclude=kernel* centos* mono*

yumでダウンロード
yumdownloader bash
yum install –downloadonly –downloaddir=/tmp bashでも可能

[[perlモジュール]]
cpan[1]> install Jcode
cpan[2]> install Expect
cpan[1]> install Time::HiRes
cpan[2]> install YAML
install Spreadsheet::ParseExcel
install Spreadsheet::XLSX
install Module::Install
install Module::Install::AuthorTests
install Module::Install::Repository
install Net::Twitter::Lite
install XML::RSS
install JSON::Any
install XML::Simple
install DateTime::Format::HTTP
install LWP::Protocol::https
install Config::Auto
install Net::OAuth

WWquitW-Shorten-3.06
 perl Build.PL
 perl Build
 perl Build install
WWW-Shorten-Bitly-1.17
WWW-Shorten-Google-0.01

[[セキュリティー]]
/etc/ssh/sshd_config
PermitRootLogin no
systemctl reload sshd.service

/etc/hosts.allow
pptpd : ALL

ALL : 127.0.0.1
sendmail : ALL

vsftpd : xxx.xxx.xxx.xxx
.
.
sshd : xxx.xxx.xxx.xxx
.
.
syslogd :  xxx.xxx.xxx.xxx

/etc/hosts.deny
ALL:ALL

/etc/sysconfig/selinux
SELINUX=disabled

[[ファイアーウォール]]
[root@www ~]# firewall-cmd –state
running
firewall-cmd –add-service=http –permanent
firewall-cmd –add-port=9000/udp –permanent
firewall-cmd –add-port=9001/udp –permanent
firewall-cmd –add-port=9002/udp –permanent
firewall-cmd –add-port=9003/udp –permanent
firewall-cmd –add-port=9000/tcp –permanent
firewall-cmd –add-port=9001/tcp –permanent
firewall-cmd –add-port=1723/tcp –permanent
firewall-cmd –add-port=514/udp –permanent
firewall-cmd –permanent –direct –add-rule ipv4 filter INPUT 0 -p 47 -j ACCEPT
firewall-cmd –zone=public –add-masquerade –permanent
firewall-cmd –permanent –direct –add-rule ipv4 filter INPUT 1 -s xxx.xxx.xxx.xxx/32 -j ACCEPT

firewall-cmd –reload
firewall-cmd –list-services
[root@www ~]# firewall-cmd –list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client http ssh
  ports: 9001/udp 1723/tcp 9003/udp 9002/udp 9000/udp 9001/tcp 9000/tcp 514/udp
  masquerade: yes
  forward-ports:
  icmp-blocks:
  rich rules:

GUI
# firewall-config

[[pptpd]]
/etc/pptpd.conf
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

/etc/rsyslog.conf

$ModLoad imudp
$UDPServerRun 514

 *.=debug;
      news.none;mail.none     -/var/log/pptpd
local1.*                                                /var/log/routerlog

/etc/sysconfig/rsyslog
SYSLOGD_OPTIONS=”-x -c 5″
#-xはDNS参照しない

/etc/ppp/options.pptpd
#ms-dns 8.8.8.8
ms-dns 210.224.163.4
ms-dns 210.224.163.3

/etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
username * ?????? *

systemctl start  pptpd.service
systemctl enable pptpd.service

systemctl stop rsyslog.service
systemctl start rsyslog.service

[root@www log]# netstat -an | grep -i udp | grep 514
udp        0      0 0.0.0.0:514             0.0.0.0:*
udp6       0      0 :::514                  :::*

[[FTP]]
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
#listen_ipv6=YES
listen=YES

systemctl start vsftpd.service
systemctl enable vsftpd.service

[[http]]

systemctl start httpd.service
systemctl enable httpd.service

apachectl -V
EVENTモードになってないこと。preforkモードで十分です。

::1 internal dummy connection ログ抑制
==
SetEnvIf User-Agent “internal dummy connection” nolog

<VirtualHost *:80>

  ServerName    www.picolix.jp

  ErrorLog      /virtual/lisa/log/error.log
  TransferLog   /virtual/lisa/log/transfer.log
  CustomLog     /virtual/lisa/log/www_access.log combined env=!nolog
==

[[mysql]]

旧サーバ:
mysqldump -ulisa -p?????????????? crenazumina > crenazuminadb-????????.txt
mysqldump -ulisa -p?????????????? lisa > lisadb-????????.txt
mysqldump -ulisa -p?????????????? mwiki > mwikidb-????????.txt
mysqldump -ulisa -p?????????????? opensim > opensimdb-????????.txt
mysqldump -ulisa -p?????????????? opensim073 > opensimdb073-????????.txt
mysqldump -ulisa -p?????????????? wordpress > wordpressdb-????????.txt

/etc/my.cnf.d/server.cnf
[mysqld]
character-set-server = utf8

systemctl start mariadb.service
systemctl enable mariadb.service

mysql -u root -p

set password for root@localhost=password(‘????????’);
CREATE DATABASE opensim DEFAULT CHARACTER SET utf8;
CREATE DATABASE crenazumina DEFAULT CHARACTER SET utf8;
CREATE DATABASE lisa DEFAULT CHARACTER SET ujis;
CREATE DATABASE opensim073 DEFAULT CHARACTER SET utf8;
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8;
CREATE DATABASE mwiki DEFAULT CHARACTER SET utf8;

CREATE USER ‘opensim’@’localhost’ identified by ‘????????’;
CREATE USER ‘lisa’@’localhost’ identified by ‘??????????????’;

SET PASSWORD FOR ‘opensim’@’www.picolix.jp’ = PASSWORD(‘????????’);
GRANT ALL ON *.* TO ‘lisa’@’localhost’;

mysql -u lisa -p?????????????? crenazumina < crenazuminadb-????????.txt
mysql -u lisa -p?????????????? lisa < lisadb-????????.txt
mysql -u lisa -p?????????????? opensim < opensimdb-????????.txt
mysql -u lisa -p?????????????? opensim073 < opensimdb073-????????.txt
mysql -u lisa -p?????????????? wordpress < wordpressdb-????????.txt
mysql -u lisa -p?????????????? mwiki <  mwikidb-????????.txt &

[[postgrtesql]]

旧サーバ:
pg_dump lisa -f pgdump????????.tgz -F c -Z 0 -v -U lisa
pg_dump lisa2 -f pgdump????????-lisa2.tgz -F c -Z 0 -v -U lisa

yum install postgresql postgresql-server postgresql-libs postgresql-devel postgresql-contribsu – postgres
initdb –encoding=EUC_JP –no-locale
c
systemctl enable postgresql.service

-bash-4.2$ createuser -s -d -r -P lisa
Enter password for new role:
Enter it again:??????????????

-bash-4.2$createdb lisa
-bash-4.2$createdb lisa2

-bash-4.2$ psql
psql (9.2.7)
Type “help” for help.

postgres=# du
                             List of roles
 Role name |                   Attributes                   | Member of
———–+————————————————+———–
 lisa      | Superuser, Create role, Create DB              | {}
 postgres  | Superuser, Create role, Create DB, Replication | {}

postgres=# l
                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges
———–+———-+———-+———+——-+———————–
 lisa      | postgres | EUC_JP   | C       | C     |
 postgres  | postgres | EUC_JP   | C       | C     |
 lisa2     | postgres | EUC_JP   | C       | C     |
 template0 | postgres | EUC_JP   | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | EUC_JP   | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres

postgres=# ALTER USER postgres encrypted password ‘??????????????’;
ALTER ROLE
postgres=# ALTER USER lisa encrypted password ‘??????????????’;
ALTER ROLE

/var/lib/pgsql/data/pg_hba.conf
local   all         lisa      md5

systemctl restart postgresql.service

[root@www data]# psql -d lisa -U lisa
Password for user lisa:
psql (9.2.7)

[root@www db]# pg_restore -d lisa -U lisa pgdump????????.tgz
Password:
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 508; 2612 16388 PROCEDURAL LANGUAGE plpgsql lisa
pg_restore: [archiver (db)] could not execute query: ERROR:  language “plpgsql” already exists
    Command was: CREATE PROCEDURAL LANGUAGE plpgsql;

[root@www db]# pg_restore -d lisa2 -U lisa pgdump????????-lisa2.tgz
Password:

-bash-4.2$ psql -U lisa
Password for user lisa:
psql (9.2.7)
Type “help” for help.

lisa=# l
                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges
———–+———-+———-+———+——-+———————–
 lisa      | postgres | EUC_JP   | C       | C     |
 postgres  | postgres | EUC_JP   | C       | C     |
 lisa2     | postgres | EUC_JP   | C       | C     |
 template0 | postgres | EUC_JP   | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | EUC_JP   | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
(5 rows)

lisa=# d
                         List of relations
 Schema |                  Name                  |   Type   | Owner
——–+—————————————-+———-+——-
 public | blog_url_conv_data                     | table    | lisa
 public | blog_url_conv_data_seq_seq             | sequence | lisa
 public | blog_url_conv_data_url-crenazumina_seq | sequence | lisa
 public | comsearch_release_seq                  | sequence | lisa
 public | dmoz_link_cnt                          | table    | lisa
 public | dmoz_link_robot                        | table    | lisa
 public | eki_data                               | table    | lisa
 public | nouki_mst                              | table    | lisa
 public | pazdora                                | table    | lisa
 public | pazdora_kskill_m                       | table    | lisa
 public | pazdora_skill_m                        | table    | lisa
 public | pazdora_type_m                         | table    | lisa
 public | secondlife_history                     | table    | lisa
 public | share_d                                | table    | lisa
 public | sozai_dmoz_art_m                       | table    | lisa
 public | syouhin_data                           | table    | lisa
 public | testnouse                              | table    | lisa
(17 rows)

-bash-4.2$ psql -U lisa
Password for user lisa:
psql (9.2.7)
Type “help” for help.

lisa=# c lisa2
You are now connected to database “lisa2” as user “lisa”.
lisa2=# l
                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges
———–+———-+———-+———+——-+———————–
 lisa      | postgres | EUC_JP   | C       | C     |
 postgres  | postgres | EUC_JP   | C       | C     |
 lisa2     | postgres | EUC_JP   | C       | C     |
 template0 | postgres | EUC_JP   | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | EUC_JP   | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
(5 rows)

lisa2=# d
        List of relations
 Schema |  Name   | Type  | Owner
——–+———+——-+——-
 public | share_d | table | lisa
 public | user_m  | table | lisa
(2 rows)

[[CRON]]
/etc/crontab
PERL5LIB=/root/perl5/lib/perl5:/home/shoichi/perl5/lib/perl5:
↑これがないと、perlスクリプトがエラーです。

/etc/cron.d/0hourly
全て#
/etc/cron.d/dailyjobs
全て#

systemctl stop crond.service
systemctl start crond.service
# run-parts
45 * * * * root run-parts /etc/cron.hourly
46 3 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
59 23 * * * root /virtual/lisa/cron/analog_rotate.sh > /dev/null 2>&1
2,12,22,32,42,52 * * * * root /virtual/lisa/cron/cron1.sh > /dev/null 2>&1

[[postfix]]
/etc/postfix/main.cf
mynetworks = 127.0.0.0/8 , xxx.xxx.xxx.xxx/32

systemctl stop postfix.service
systemctl start postfix.service

[root@www cron.daily]# pwd
/etc/cron.daily
[root@www cron.daily]# ln -s /virtual/lisa/cron/syschk.sh syschk.sh
[root@www cron.daily]# ln -s /virtual/lisa/cron/viurscheck-clama.sh viurscheck-clama.sh
dns-x86.tar.gz
cp dnstran /usr/bin/
cp analogurldecode/usr/bin/analogurldecode
analog-6.0.tar.gz 置き換える
cp analog /usr/bin/analog

[[シンボリックリンク]]
ln -s /bin/mono /usr/local/bin/mono
ln -s /bin/perl /usr/local/bin/perl
ln -s /usr/bin/convert /usr/local/bin/convert

[[メモ]]
GNOME 日本語フォルダーを英文字に
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a077changelang.html
teraterm
 設定‐その他の設定‐ANSIカラー以外全部外す
/usr/lib/systemd/system
/lib/systemd/system

[root@www cron.daily]# hdparm -t /dev/vda2
/dev/vda2:
 Timing buffered disk reads: 486 MB in  3.03 seconds = 160.40 MB/sec
[root@www23254ue backup]# hdparm -t /dev/vda2
/dev/vda2:
 Timing buffered disk reads:  10 MB in  3.58 seconds =   2.79 MB/sec
 Timing buffered disk reads: 124 MB in  3.01 seconds =  41.13 MB/sec

[[サービス]]
———————————-
[root@www ~]# cd /usr/lib/systemd/system
[root@www system]# cat opensim.service
[Unit]
Description=opensim Server
After=mariadb.target

[Service]
Type=notify
EnvironmentFile=/etc/opensim.env
ExecStart=/usr/bin/screen -S $PROGNAME -d -m $MONO $OSGRID/OpenSim.exe
ExecStop=/usr/bin/screen -S $PROGNAME -p 0 -X stuff $’quitn’ 1> /dev/null 2>&1

KillSignal=SIGCONT
PrivateTmp=true

[Install]
WantedBy=multi-user.target

—-
/etc/opensim.env
—-
PROGNAME=OpenSim
OSGRID=/projects/opensim
MONO=/usr/local/bin/mono
export MONO_THREADS_PER_CPU=125
export LANG=C
ulimit -s 262144

[[ネットワーク]]

nmtui
nmcli c d “System eth0” ; sudo nmcli c u “System eth0”
nmcli c d “ens33” ; sudo nmcli c u “ens33”

さくらのVPS 遅すぎ。

さくらのVPS(1G)を2台借りていますが、内1台がなんとなく以前から動作が遅かった。というか遅すぎでした。
今回、2台ともCentOS7をクリーンインストールしました。(CentOS6.5から7への移行でいろいろ面倒でしたが)
で、遅かった1台で、改めてhdparmで速度測定。
# hdparm -t /dev/vda2
/dev/vda2:
Timing buffered disk reads:   4 MB in  3.25 seconds =   1.23 MB/sec
使い物にならないぐらい激重に遅い。
もう一台は、
[root@www log]# hdparm -t /dev/vda2
/dev/vda2:
Timing buffered disk reads: 488 MB in  3.00 seconds = 162.41 MB/sec
で問題ありません。
ペナルティー制限が掛けられているのかと思い、さくらに問いあわせ致しましたが、「お各様の仮想サーバについて確認いたしましたところ、同居する他の仮想サーバにてやや負荷が高い状態が発生しておりましたため、その影響を受けた可能性がございます。」との回答。
ん~。。。これだと使えないじゃないですか!
15時間ぐらい、hdparm -t /dev/vda2を10秒置きに取ってみたグラフが↓
図1:

図2:さくらのVPSコントロールパネル:リソース情報:DISK I/O
図1:青はいいと思われる、www.picolix.jpの方で赤はだめなもう一つのVPSサーバ。
平均で4倍も違う。200MB/sec以上出ている時間帯もあるので、これは他の共有して
いるVPSが常に過負荷にあるのだと思います。(図2は、上位モニターから見た図で
同じ傾向です。当然ですが・・)
ようは、はずれのグループを引いている。。。諦めがつきました。
ということで、この1台のVPSは解約しようと思っています。ちょうど11月がサーバ更新時期ですので。もし借りるとしたら今後はGMOを試そうかと思っています。

Windows Azure Windows Server 2008の日本語化時のサービスプログラムのシステムロケールの挙動

Windows Server 2008R2 SP1複数言語ユーザー インターフェイス言語パック
http://www.microsoft.com/ja-jp/download/details.aspx?id=2634
 Windows言語設定変更
  地域と言語(display languag):
   形式、キーボードと言語
   管理 システムアカウント、システムロケール
  すべて日本語を選択
 
Windoすべて日本語を選択 Server 2008 R2 向け Internet Explorer 11 言語パック
http://www.microsoft.com/en-us/download/details.aspx?id=40904
  すべて日本語を選択

に設定したけど、サービスプログラムから起動したアプリは、システムロケールを日本としてくれない。

・ログインのコンソール画面から、crenahtml2jpg.exeを起動してWEB画面をキャプチャー:日本語キャプチャーされる。(正常)

【 タイトル:World of Tanks ? 無料オンラインゲーム】

・サービスプログラムからcrenahtml2jpg.exeを起動して、WEB画面をキャプチャー:英語圏からのようにキャプチャーされる。
WEBのタイトルも日本語が英語になってるので、英語圏からのアクセスとして認識されてしまってる。

【タイトル:World of Tanks ? Free Online Game】

たぶんアプリが、システムロケールを認識できてないと思われるが、解消方法は今のところ不明><。Azureでの運用はあきらめるか・・
逆に英語圏(US)から見た場合の日本のサイトということで使えるかも。

※サービスを「ログオン」-「アカウント」でいつもログインしている
  ユーザに設定したら、とりあえずOKとなった。(9/22追記)

MAC BootCampのwindows7でいつのまにか輝度変更できず。最高輝度になったままに。

MacBook (13-inch, Aluminum, Late 2008) BootCamp3.3のwindows7でいつのまにか輝度変更できず。
最高輝度になったままになってしまった。
F1,F2キーで輝度のバーはスライダーするものの画面は変わらず、BOOTCAMPのパネルの輝度調整でも同じで変化せず。
NVRAM/PRAM をリセット,SMCのリセットしてもだめ。
また、最高輝度の状態で長時間動かしていると画面が白っぽく霧がかかったようになり最後は真っ白になってしまう。
(何回かディスプレイの蓋を閉めて、開けると元にもどる。)
ディスプレイドライバーを古いバージョンに戻してみたら輝度調整できるようになり、画面が白くなる現象もなくなった。

コントロールパネルのデバイスドライバーでディスプレイの「ドライバーを元に戻す」としたら、
一つ前に戻ると思ったら削除状態と同じになってしまった。
=>仕方がないので、以前NVIDIAからダウンロードしてバックアップをとっておいた、
280.26-notebook-win7-winvista-64bit-international-whql.exe
をインストールしていたら正しく動作した。

バージョンダウン前のドライバー(このバージョンだと輝度調整できず、最高輝度のまま)
331.82-notebook-win7-winvista-64bit-international-whql.exe

バージョンを落とした。(このバージョンだと輝度調整OK)
280.26-notebook-win7-winvista-64bit-international-whql.exe