12月 29

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

12月 25

Play Framework プロジェクトを activator eclipse でeclipse用に設定した後にconf/routesを書き換えても反映されなかったのですが、一度 activator clean を実行しないといけないらしい。

12月 22

Firefoxなどほかのブラウザには閉じたタブを元に戻せるメニューがありますがSafariではない模様。でもタブを閉じた直後にCommand+Zを押せば直前に閉じたタブを開くことができます。というかCommand+Zなので「タブを閉じるという操作の取り消し」なのでしょうね。

12月 22

Safari(Mac)でページソースを表示する方法。開発メニューがデフォルトではOFFなのでこれを表示させる必要がある。

  1. 「Safari」ー「環境設定」
  2. 「詳細」タブ選択
  3. 「メニューバーに“開発”メニューを表示」をチェック
  4. 「開発」ー「ページのソースを表示」

ショートカットは Option + Command + U なのだが、開発メニューが表示されてないとダメらしい。

12月 20

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”

12月 19

発売日は本日(12/19)なのだが、Amazonで予約してたら一昨日発送で昨日届いた。またーりプレイをまたーり視聴。内容は「スーパーマリオ ヨッシーアイランド 完全版」「スーパーチャイニーズ」「レッドアリーマーII」「たまゲー」「メトロクロス 完全版」「スペースハンター」「ファミリートレーナージョギングレース」「ファミリートレーナー ジョギングレースに生挑戦(お台場イベント)」「たまゲー in ASIA ディレクターズカット版」です。

12月 10

ようやく時間ができたので以前から興味あった 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になって表示されなくなるかもしれませんね。(放置かもしれません)

preload preload preload