国民件保険料がやばい・・・

健康保険料、住民税は値上げしてもいいけど(理にかなってるなら)、所得税みたいにその場で納金できるようにすればいいのに。一年後とか無理な人もいれば苦しい人もいる。何より心が沈む。払っちまえば切り替えられる。強引な例えかもしれないが、投資している人が含み損で苦しんでいたけど、損切ったら気持ちが楽になった。こんな事ならもっと早くきればよかったのにっていう心理状態。重税で苦しめることが目的なの?と勘ぐってしまう。


技術メモ

C++興味あるので
C++で作るwebアプリケーション

色々な神ツールの紹介ハウツー
「ユカイ、ツーカイ、カイハツ環境!」最新記事一覧

ゲーム
【Unity】素人が7日間クソゲーを作り続けてわかったこと

■todo
時間がかかるもの、かからないものを並行してやる
・https
・sql,mysql
⇒sql実践リファレンス本
ちょっと使えるmysqlの小技5つ
・cms
・test
⇒junit,オブジェクトのシリアライズ化
・java persistence API
・websocket
・orm
・eclipse4系
・jenkins,chef
Chef、DevPps
・maven
Apache Maven(メイヴィン )
・ant
・Playのサーバ、サーブレットAPIを使用しない。ステートレス、ステートフル
・c
・タイプセーフとは,enum
TypeSafe enum,Java5.0 Tiger
・hishidama、ドットインストール
・パワポ。web上。簡単な絵。
・Scala
・ruby
・mybatis,ibatis
⇒ibatisはstruts本に少しある
・openId
・鍵。認証鍵とか
⇒題材はftps、github、sshあたり
TortoiseGitを使用するのにまずやるべきことは、SSH用の秘密鍵と公開鍵を生成することです。
・maven
githubの接続はsshかhttpsか。httpsは手軽さ、sshは鍵が必要。
techcore(Maven)
・SSL,SSH
・リフレクション
・javaのスレッドセーフ、マルチスレッド
⇒Util系クラスのstaticメソッド(引数オブジェクト)をマルチスレッドで使ったとき、引数がぶっ壊れないか?スレッドセーフか?SendMailUtil,ExcelUtil
・デザパタ
・grep,sed,awk
・クラス図、シーケンス図
⇒spring本を参考にする。p37
・HTML5,CSS3。長く使える、bootstrapのカスタマイズには必要。
・検索、自然言語処理
・hadoop,オープン系のkvs,Redis
・tomcat
・aws,google app engine(gae)
・ssl
SSLサーバ証明書ってなんですか?
・VirtualBox
・非同期(Akka)
・外部鯖。自由にカスタマイズ出来て、認証とかできるやつ。
・RFP
・github用語
⇒プッシュ、コミット、クローン、ブランチ、フェッチ、プル、チェックアウト、リポジトリ
mysql,・mysql冗長性、レプリケーション、(マスタ・スレーブ)
SlideShare MySqlAdminが見たDevsの常識、DBAは非常識
図解Mysqlの冗長構成
レプリケーション(techscore)

・会計

webサーバを作ってみよう
javaとscalaのフレームワークplayについて。まずは、環境構築~アプリの雛形作成まで。

ここを参考 にして、playをダウンロード、インストール、play frameworkプロジェクト雛形、アプリの作成、、ブラウザでアプリの確認「http://localhost:9000/」まではうまくいった。runコマンドでバンドルされているwebサーバとサーブレットコンテナが起動できるみたいだ。ここまではコマンドラインで実行。環境はwindows7,64bit、jdk1.7、play2.1.1。けど、eclipseのプロジェクトへの変換で問題発生。どうやら、play2.0と2.1のバージョンの違いらしい。「play eclipsfy」じゃなくて「play eclipse」でやったらうまくいった。

c:\play\application\firstProject>play eclipsify
[info] Loading project definition from C:\tec\play\application\firstProject\project
[info] Set current project to firstProject (in build file:/C:/tec/play/application/firstProject/)
[error] Not a valid command: eclipsify (similar: eclipse)
[error] Expected '/'
[error] Expected ':'
[error] Not a valid key: eclipsify
[error] eclipsify
[error] ^

c:\play\application\firstProject>play eclipse
[info] Loading project definition from C:\tec\play\application\firstProject\project
[info] Set current project to firstProject (in build file:/C:/tec/play/application/firstProject/)
[info] About to create Eclipse project files for your project(s).
[info] Successfully created Eclipse project files for project(s):
[info] firstProject

とりあえず、コマンドプロンプトでプロジェクトがあるディレクトリに移動してplayコマンドでplayのプロンプトに入って、runコマンドを実行すれば、サーバが起動してアプリの実行はできる。

続いてeclipseからプロジェクトのインポートについて。プロジェクトエクスプローラ右クリック⇒インポート⇒一般の既存プロジェクトをワークスペースへを選択し、上記で出力したディレクトリc「:\play\application\firstProject」を指定する。これでエラーなしでプロジェクトをインポートできた。jarファイルが結構多い。
ちなみに既存プロジェクトとしてインポートするには、play eclipseコマンドでプロジェクトを変換(なにか必要なファイルを読み込んでいるだけだろう)する必要がある。

やっぱり早い・・・かな?コマンドプロンプトからコンテナを起動させた状態にしておいて、eclipseプロジェクト上のapp\contensts\controllers\Application.javaにある「 return ok(index.render("Your new application is ready"));」の文字列を変更して、ブラウザで確認してみたらすぐに反映された。java agile・・・

■アプリの変更が反映されない時
・とりあえずrunコマンドでコンテナを再起動してみる。
・それでもだめなら、play cleanコマンドでごみを消す。そうしたら解決されるかも。
・eclipseでcontrollerからreturnするものをテンプレートファイルに応じて作られるindexクラスにする場合、テンプレートを作った時点では作成されないクラスな訳でeclipse上ではコンパイルエラーが出る場合がある。このテンプレートに応じて作られるクラスは実行時もしくは「play compile」コマンドを実行した時点で生成される。
サンプルアプリのテンプレートをよんでみよう
・あと、ここ を参考にしてControllerのApplication.javaからretrunするクラスをParentのListに変更した時、画面表示でCompilation errorが表示された。エラー箇所はApplication,javaの「return ok(index.render(parents));」の部分。で、eclipseをよく見たら、views.html.indexがimportされていない。Ctrl+Shift+Fで自動でやってくれないみたいだから手動でやらないとだめだ。使ってるeclipseのバージョンが3.7だったから、4系なら改善されているかも。これで問題なく実行できるようになったけど、import views.html.indexとreturn文のところでコンパイルエラーが出ている。play cleanをやったりcompileしたりしたけど直らない。テンプレートのインポートエラー解消方法 にtarget/scala-2.9.1/class_managedディレクトリをクラスフォルダに追加すると書いてあるけど、そもそもtarget/scala-2.9.1ディレクトリはあるけどclass_managedディレクトリはないし、ビルドパスでクラスフォルダーを追加しようとしてもtargetディレクトリがない。この問題はプロジェクトエクスプローラのtargetディレクトリを右クリックしてビルドパス⇒ビルドパスの除去を選択してf5でリフレッシュしたら解決した。ちなみにimportエラーがなくなったら、ビルドパスの除去の選択肢は表示されなくなった。



・playコマンドラインで使えるコマンド一覧は「help play」[help]などで見れる。

・eclipseでplayのapiを見れるようにするには、プロジェクトのビルドバスの構成を選択してライブラリタブでplay2_10.jarのjavadocロケーションを選択して編集ボタンを押し、javadocロケーションパスで「http://www.playframework.com/documentation/api/2.1.1/java/」を指定する。もしくはプロジェクト内のplay2_10.jarを右クリックプロパティ⇒javadocロケーションで同上のurlを指定する。

■Controllerについて
・Controllerのroutsファイルのuriの指定の仕方について
routsファイル(@it)
HTTP Routing(公式play documentation2.1)
・Controllerクラスはstaticメソッドであることと戻り値にplay.mvc.Resultを返す事。戻り値にはok,badrequestなどがあり、それぞれhttpレスポンスのステータスコードに対応する。
Controllerクラス(@it)
ResultクラスAPI

■複数アプリ起動
・playのアプリを複数起動させたい場合、色々方法はあるだろうけど、手っ取り早いのはポートを別でアプリを起動する事。playのプロンプト上でrunコマンドを実行すれば、ポートが9000で起動する。もう一つ起動したい場合、ポートを指定して「run 9001」を実行する。

■eclipseでデバッグ
play debugでplayコンソールを起動し、runでサーバ起動する。eclipseでファイルを右クリックしてデバッグ⇒デバッグ構成でデバッグ構成を開き、リモートjavaアプリケーションのapplicationを選択し、接続タブで接続プロパティのホストとポートを指定してデバッグを押す。あとはブレークポイントをつけて、ブラウザから画面を表示すればデバッグパースペクティブで開く。

■あとで
・play runとplay startの違い。
playの実行runコマンドでstartコマンドの話
・playのリダイレクトフォーワード
公式(javaActions)

■mysql
デフォルトdbのh2ではなくmysqlを使用する。Application.confに以下の記述を書く。

db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/test_db"
db.default.user=user_name
db.default.password=password_value

localhostはホスト名、test_dbはdb名、user_nameはユーザ名、password_valueはパスワード。

mysqlのjdbc.jarをどこか適当なディレクトリに置き(libとか作ってもいい)、ビルドパスのライブラリでこのjarを追加する。mysqlライブラリがないと当然だけど、evolutionの起動時にconfiguration errorが出る。
エラー箇所は「db.default.driver=com.mysql.jdbc.Driver」。うまくいけばddlの画面が表示され、runボタンを押す。mysqlのtest_dbにテーブルが出来ていればOK。ちなみにplay_evolutionsテーブルが自動でてきていた。





■参考
Java開発で泣かないためのPlay frameworkの基礎知識
Play frameworkのDB操作を楽にするEBeanの基礎知識
play framework (公式英語、v2.1)
play ドキュメント(日本語、v2.0)
play 2.0.1 java API Reference
APIは雛形プロジェクトからも見れた。topページからjava,scala両方のAPIのリンクがはってある。javaのurlはhttp://localhost:9000/@documentation/api/java/index.html
eclipseでのjavaサーブレットのjavadocの設定についてです。

デフォルトだと、servletのクラスやメソッドなどにフォーカスをあてると「この要素には添付されたソースも、添付された Javadoc もないため、Javadoc を検出できませんでした。」とホバーが表示される。

servletのjavadocの設定は、プロジェクトを右クリック⇒ビルドパスの構成⇒プロパティダイアログを開く。ライブラリタグでApache Tomact v7.0(各々で違う)を選択し、その中のservlet-api.jarのjavadocロケーションを選択し編集ボタンをクリックしjavadocダイアログを開く。後は、javadocロケーションにパスを入力する。ダウンロードしてもいいけろ、ネット上にあるurlをそのまま指定できる。指定できるURLを下に示す。

JavaTM Servlet 2.4 API 仕様(日本語)
Servlet 3.0 API - Apache Tomcat 7.0.41

ApacheTomcatのライブラリで使用されているjarはservlet-api.jar以外にもたくさんある。tomcat-*.jarやcatalina-*.jarやjsp-api.jarなどがある。こいつらのjavadocをeclipse上で見たいときはその都度設定してあげる必要がありそうだ。

あと、eclipseを再起動しないと反映されなかった。