「Win」カテゴリーアーカイブ

Snipping Tool の邪魔をする avpui.exe

マニュアルとかエビデンスの作成でSnipping Toolのウィンドウキャプチャをよく使っていたのですが、あるときから任意のウィンドウを選択できなくなりました。調べたところカスペルスキーインターネットセキュリティ関連のavpui.exeというプロセスの隠しウィンドウが全画面・最前面に張り付いた状態になっているため、他のウィンドウを選択できないようでした。プロテクションを一時停止してもavpuiはそのままなのでダメ。Windows起動時にカスペルスキーインターネットセキュリティを起動しない設定にして再起動すればavpuiも起動しなくなるのでウィンドウキャプチャが行えるようになりました。他にもっと簡単な回避方法があればいいのですが見つかりませんでした。ウィンドウ位置・サイズを変更するテストプログラムを作ってみたらうまく機能したので、似たような機能があるアプリ見つけてきてavpui.exeの全画面張り付きを一時回避するのが一番簡単な対応かもしれない。

Play Framework インストール,プロジェクト作成,実行,eclipseでデバッグ(Windows編)

Java,Scala言語用フレームワーク Play Framework について、インストールからeclipseとの連携までを記載。基本的に公式ページ(日本語訳あり)を見ながらやるのがよいと思うのでここでは軽く流す程度にしておきます。※注意:Rails勉強中に見つけて興味持った程度なので詳しくはありません。

Play Framework 公式ページ。
https://www.playframework.com/
Play Framework ダウンロードページ。
https://www.playframework.com/download
ドキュメント。(2.3.x系、日本語)インストール・開発方法など一通り解説あり。
https://www.playframework.com/documentation/ja/2.3.x/Home

1.activator ダウンロード&インストール

今回試したPlay Frameworkのバージョンは2.3.7(activator 1.2.12)です。古いバージョンはメインとなるコマンドがplayコマンドでしたが、最近のバージョン(2.3以降?)ではactivatorというより汎用的なコマンドに変わっています。ダウンロード&ZIP展開してどこか適当なディレクトリに配置します。その他 Play Framework を使うにはJDK6以上が必要とのことなのでなければダウンロード&インストールしておきます。

2.環境整備

java, javac, activator コマンドがコマンドプロンプトで実行できるようPATH環境変数を設定します。設定後コマンドプロンプトを起動して

$ java -version
$ javac -version
$ activator help

を実行してバージョン情報・ヘルプ等表示されればOKでしょう。

3.プロジェクト作成

Playプロジェクトを作成するには“activator new [プロジェクト名]”を実行します。

$ activator new myapp

初回実行時は必要なファイルをダウンロードするので多少時間がかかります。しばらくするとプロジェクトの元となるテンプレートをどれにするか選択を求める画面が表示されます。

Fetching the latest list of templates…

Browse the list of templates: http://typesafe.com/activator/templates
Choose from these featured templates or enter a template name:
1) minimal-akka-java-seed
2) minimal-akka-scala-seed
3) minimal-java
4) minimal-scala
5) play-java
6) play-scala
(hit tab to see a list of all templates)

ここではJavaベースプロジェクトを作成するので“5) play-java”を選択します。これでmyappディレクトリの中にJavaベースのPlayプロジェクトが作成されました。activatorコマンドのプロジェクト名の後ろにテンプレート名を直接指定することも可能。

$ activator new myapp play-java

テンプレート選択画面にリンクがありますがテンプレートリストはhttp://typesafe.com/activator/templatesを参照。

4.実行&ブラウザで確認

プロジェクトを作成するだけで実行に必要なファイル・設定などが一式作成されますのですぐに実行できます。プロジェクトディレクトリに入って“activator run”を実行します。

$ cd myapp
$ activator run

ここでも初回実行時に必要なファイルをダウンロードするので多少(かなり?)時間がかかります。以下のようなメッセージが表示されたらサーバ起動成功です。

— (Running the application, auto-reloading is enabled) —

[info] play – Listening for HTTP on /0:0:0:0:0:0:0:0:9000

(Server started, use Ctrl+D to stop and go back to the console…)

ブラウザで“http://localhost:9000”にアクセスするとmyappプロジェクトの画面が表示されます。サーバ終了はCtrl-Dです。サーバ起動時にbind関連エラーが表示されるときは既に同じポート(9000)を他のプログラムがLISTENしている可能性があります。netstatコマンド等で確認してそのプログラムを停止するか、以下のようにしてLISTENポートを他の番号にしてください。

$ activator “run 9001”

※ダブルクォーテーションは必須です。
詳しくはこのあたりが参考になると思います。

5.Javaソース編集&ブラウザアクセス

ブラウザでアクセスしたときにまだコンパイルされていないJavaソースファイルがあると自動的にコンパイルされます。つまりJavaソースファイル修正&ブラウザアクセスだけで修正が反映されるということです。プロジェクトディレクトリ内にあるapp/controllers/Application.javaの

return ok(index.render(“Your new application is ready.”));

return ok(index.render(“Hello, World!”));

に変更してブラウザでアクセスすると、自動的にコンパイルされて変更後の内容がブラウザに表示されます。

6.eclipseにプロジェクトをインポート

Playではプロジェクトをeclipseにインポートできるよう設定を調整する機能が付いています。プロジェクトディレクトリ内で下記コマンドを実行するとeclipseにインポートできるようになります。

$ activator eclipse

コマンド実行後”[info] Successfully created Eclipse project files for project(s):”といった文字列が表示されれば完了。eclipseを起動してプロジェクトをインポートすればeclipseで開発できるようになります。

7.eclipseでデバッグ実行

eclipseでデバッグ実行するやり方。まずactivatorコマンドに-jvm-debug引数を付けてJavaVMをデバッグできる状態で起動します。

$ activator -jvm-debug run

次にeclipseのプロジェクト名を右クリックして「デバッグ」-「デバッグの構成」を選択。「リモートJavaアプリケーション」を選択して「新規の起動構成アイコン」を押下。デバッグ実行したいプロジェクトを選択してポート番号を9999(-jvm-debugのデフォルトポート)に変更して、適用ボタン押下、デバッグボタンを押下します。エラーダイアログ等表示されなければデバッグ状態になっています。先ほど編集したapp/controllers/Application.javaのindex()メソッドのreturn文にブレークポイントを貼ってブラウザでアクセスすると、そのブレークポイントで停止するはずです。

デバッグ用ポート番号はデフォルトで9999です。変更したいときは-jvm-debugの次に指定します。

$ activator -jvm-debug 9991 run

HTTPサーバ用ポートとデバッグ用ポート両方変更したいときは以下のようにします。

$ activator -jvm-debug 9991 “run 9001”

Windows環境で Ruby とか Ruby on Rails をセットアップしたときに躓いた箇所の対策メモ

ようやく時間ができたので以前から興味あった Ruby とか Ruby on Rails いじって遊んでます。Ruby on Rails 4 アプリケーションプログラミングという本がよさげなのでこの本で勉強中(というか遊び中)なのですが、第1章 導入編 の Ruby や Ruby on Rails をインストール・セットアップしている箇所でいくつか躓いた・気になった点があったのでそれらについてメモっておきます。

1.Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

railsとかbundleコマンド使って何かしようとするとこのエラー(SSL証明書認証失敗?)が表示されて何もできなくなることがあります。対策がココにありました。同ページ中程の“Manual solution to SSL issue”に対応の仕方があります。簡単に説明すると、新しい証明書(AddTrustExternalCARoot-2048.pem)を入手して、RubyGems の証明書ディレクトリ(例えば、C:\Ruby21-x64\lib\ruby\2.1.0\rubygems\ssl_certs)に新しい証明書をコピーでOK。これで”certificate verify failed”のエラーは出なくなります。

この他に RubyGems のバージョンをアップグレードすれば解決するという話もありますが、Windows版RubyGemsの2.4系はバグ報告があって推奨していないらしいです。(RubyInstaller 同梱 RubyGems は 2.2.2)

あとは、Gemfile の source ‘https://rubygems.org’ を http にすればOKってのも見つけましたが…個人的にhttpsをhttpにすれば解決ってのはイヤな感じです。

2.No source of timezone data could be found. (TZInfo::DataSourceNotFound)

これは Windows 64bit 版 Ruby 固有らしいです。
Gemfile の
gem ‘tzinfo-data’, platforms: [:mingw, :mswin]

gem ‘tzinfo-data’, platforms: [:mingw, :mswin, :x64_mingw]
にして bundle update すればOK。

3.DL is deprecated, please use Fiddle が表示される件

例えば rails -v でバージョン情報を表示するときに”DL is deprecated, please use Fiddle”と表示されます。これについて『たのしいRuby 第4版』正誤表に少し解説があります。原因は Ruby Installer for Windows に添付されている readline ライブラリが DL という古いライブラリを使っているために表示される警告で、使用上は特に問題ないそうです。deprecated なので新しいバージョンではFiddleになって表示されなくなるかもしれませんね。(放置かもしれません)

ブラウザでJavaアプレットを動かすにはブラウザとJREのビットを合わせる

ブラウザでJavaアプレットを動かすにはブラウザとJREのビットを合わせる必要がある。例えばブラウザが32ビットアプリケーションなら32ビット版JREをインストールしておかなければならない。64ビット版JREではダメ。ちなみにその1、64ビット版OSのタスクマネージャーでイメージ名の後ろが *32 となっているのが32ビットアプリケーション。ちなみにその2、Oracleサイトで公開されているJREのうち Windows x86 とか i586 となってるやつが32ビット版ブラウザで動かせるJRE。

EFIシステムパーティションを削除する方法

Windowsでディスクパーティションを変更するときはコントロールパネルの「管理ツール」-「コンピューターの管理」-「記憶域」-「ディスクの管理」から行ないますが、このツールでは「EFIシステムパーティション」領域が削除できません。

EFIシステムパーティションを削除するときはコマンドプロンプトからDISKPARTコマンドを実行します。実行するとユーザーアカウント制御の後にDISKPART用コマンドプロンプトが表示されます。ここでディスクに対する操作を行ないます。

以下はディスクが4つ接続されたPCで4番目の外付けディスク(ディスク 3)の1番目のパーティションにあるEFIシステムパーティションを削除したときのログです。ちなみにOSはWindows7です。


Microsoft DiskPart バージョン 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
コンピューター: XXXXXXXXXX

DISKPART> list disk

ディスク 状態 サイズ 空き ダイナミック GPT
###
------------ ------------- ------- ------- --- ---
ディスク 0 オンライン 238 GB 0 B
ディスク 1 オンライン 238 GB 0 B
ディスク 2 オンライン 29 GB 0 B
ディスク 3 オンライン 93 GB 92 GB *

DISKPART> select disk 3

ディスク 3 が選択されました。

DISKPART> list partition

Partition ### Type Size Offset
------------- ------------------ ------- -------
Partition 1 システム 200 MB 20 KB

DISKPART> select partition 1

パーティション 1 が選択されました。

DISKPART> delete partition

仮想ディスク サービス エラー:
force protected パラメーターを設定しないと、保護されたパーティションは削除できません。

DISKPART> delete partition override

DiskPart は選択されたパーティションを正常に削除しました。

DISKPART> exit

多分「force protected パラメーターを設定しないと、保護されたパーティションは削除できません。」と言われるのでそのときは override パラメータを付ければ削除できます。

いうまでもありませんがディスクパーティション操作はシステム情報を変更する極めて重要な操作なので十分理解した上で実行しましょう。

勝手にATOKからMS-IMEに変わってしまう件

ATOKを使っているとたまに突然MS-IMEに変わってしまうことがあって悩みつつも放置していたのですが、調べたら原因がわかりました。キーボードレイアウトの切り替えCtrl+Shiftというキーアサインが割り当てられているのが原因のようです。試しにCtrl+Shiftを何回か押すと押す毎にATOK・MS-IMEに変わります。

以下、これのキーアサインを無効にする方法。(Win7の場合です。XPとかでもたぶん似たような感じ。)

1.「言語バー」右クリックで「設定」を選択して「テキストサービスと入力言語」を開く。
※コントロールパネルからは「地域と言語」-「キーボードと言語」-「キーボードの変更」ボタン押下で開けます。

2.「詳細なキー設定」タブの「入力言語ホットキー」で「入力言語を切り替える」を選択した状態で
「キーシーケンスの変更」ボタンを押します。

3.「キーボードレイアウトの切り替え」を「割り当てなし」に変更してOKボタン押下、「テキストサービスと入力言語」の「適用」ボタンを押して終了。

これでShift+Ctrlを押してもATOK・MS-IMEが切り替わらなくなります。

cygwinで改行コード変換

cygwinでテキストファイルの改行コードを変更するときは、unix2dos, unix2mac, dos2unix, mac2unix コマンドを使うと簡単にできます。-hオプション付けると詳細な使い方が表示されますが、ほとんどの場合は引数に変換対象ファイル名を指定すれば事足りると思います。

・元のファイルはUnix改行コード。(LF)
$ file sample.txt
sample.txt: ASCII text

・Windows,DOS改行コードに変換。(CRLF)
$ unix2dos sample.txt
unix2dos: converting file sample.txt to DOS format …
$ file sample.txt
sample.txt: ASCII text, with CRLF line terminators

・Mac改行コードに変換。(CR)
$ unix2mac sample.txt
unix2mac: converting file sample.txt to Mac format …
$ file sample.txt
sample.txt: ASCII text, with CR line terminators

Air Video Server インストールでJava関連エラーが出る件

Air Video Server を64bit版Windows7に入れたけどJava関連エラーが出て動かない。32bit版JREが必要な模様。Java7デフォルトだと、64bit版JREはC:\Program Files\Java\jre7に、32bit版JREはC:\Program Files (x86)\Java\jre7に入ると思うのですが、32bit版JREのほうにフォルダがなかったりjre7の下にbin,libといったフォルダおよびファイルがないならJRE入ってませんので別途インストールする必要があります。私の環境では32bit版JREが入ってなかったのですが入れたら Air Video Server 動きました。

PLEXTOR PX-256M5P 購入&移行作業

ThinkPad T420s のシステムドライブをmSATA接続のIntel SSD 310 Series SSDMAEMC080G2C1にしていたのですがさすがに80GBだときつくなってきたので、一般的なSATA接続2.5インチSSDに移行することにしました。現在データドライブとして使っているIntel SSD 320 Series SSDSA2CW300G3K5は3Gb/sなので思い切って6Gb/sの製品を購入することにしました。

購入したのはPlextor PX-256M5Pです。高さ7mm、6Gb/s、フォーマット後容量は最低でも200GBは欲しかったのでこの製品にしました。以前はデータ移行ツールとして Acronis True Image (OEM HD) が
付いていたのですが、2012年10月流通分から NTI SSD Solution Suite に変更されているそうです。(販売代理店リンクス社のページにこの件についてのお知らせがある)何となく不安だったので問い合わせたら以前付いていた Acronis True Image (OEM HD) を送ってくれましたのでそれを使ってデータ移行しました。

データ移行は簡単です。Acronis True Image をインストール&起動してコピー元・コピー先を指定、PCを再起動するとDOSみたいな画面でコピーが始まります。コピーが終了すると「何かキー押すとシャットダウンするよ」的なメッセージが表示されるのでキーを押して電源断。SSDの差し替えとかBIOS画面でドライブのBOOT順を調整してPX-256M5Pで起動!その後一旦OS側での調整用再起動が入ったかもしれませんがとりあえず無事移行作業完了。今現在移行してから10日ほど経ちますが特に問題なく動いてます。

HDDからSSDに変更したときのような劇的な速度アップは体感できませんが、確実に速くなってますね。
以下、コピー後システムドライブとして起動した状態でのベンチ。

蛇足ですが以下 ThinkPad T420s のセカンダリHDDベイに接続したときのベンチ結果です。(データなし)

速度については申し分ありません。難点はちょっと割高なところでしょうか?高さ9.5mmでいいのならPX-256M5Sのほうが安くていいかもしれません。mSATAに付けてた80GBはDドライブにしてiTunes用データ領域とかバックアップ領域として使う予定。