Flex4.10

出てるのは割りと早めに知ってたのですが、
内容をあまり見てなかったので
リリースノートhttp://ftp.tsukuba.wide.ad.jp/software/apache/flex/4.10.0/RELEASE_NOTES

使う側の視点で言えば、やはりDataGridの改善でしょうか。
カラムロック、カラム入替(D&D)、マルチソート
あたりは、mxのDataGridで持ってただけにやっとって感じでしょうか。
私の場合、以前のFlexプロジェクトでは、
自力で実装(カラム入替)してしまった為、時既に遅し感は否めませんが。
あと気になるにはパフォーマンスですね。
せっかくsparkのDataGridでmxよりパフォーマンスが上がったのに
(特に横スクロール)
今回の改善でもそこらへんが維持されてるか気になるところです。

まぁ、今やフロントエンドのフレームワークとして
Flexが一番に押される事は、ほぼ無くなってきたでしょうから
バージョンアップしても厳しい状況は変わらないのかなと。
ただ、Flexを愛用した身としては、
Updateが行われてる事はうれしく思います。

axis2

今更感もありますが、ちょっと躓いたのでメモ。

servlet-api 3.0で実装してる環境で
axis2を追加したらsevlet-api 2.3が入ってきて
HttpServletRequest.getServletContext()
コンパイルエラー。

MavenでJarが被った場合、

<dependency>
	<groupId>org.apache.axis2</groupId>
	<artifactId>axis2-transport-local</artifactId>
	<version>1.6.2</version>
	<scope>runtime</scope>
	<exclusions>
		<exclusion>
		<groupId>javax.servlet</groupId>
		<artifactId>servlet-api</artifactId>
		</exclusion>
	</exclusions>
</dependency>

exclusion使います。

ただ、axis2-transport-localが
servlet-api 3.0でいいのかって気にはなるんですが、
servlet-api自体は、下位互換はとってるので、大丈夫?かな。

セミナー(Web✕Java)

9/9に行われた
Web✕Java - HTML5で進化したWeb標準を、Java技術でどう扱うのか? - : ATND
に行ってきました。

久しぶりのセミナー?勉強会?だったのですが、
やっぱ自分と同じ関心ごとの人達の話を聞くのはいいですね。

内容としては、HTML5どこいった状態だったのですが、
Scalaを多少なりともかじった自分としては、
久しぶりにScalaの話が聞けて、嬉しかったです。

Oracleエバンジェリストの方によるJavaEEの話もありましたが、
若干、脅しのような感じもあってちょっと?でした。
「Spring,Hibernate使わなくて大丈夫!JavaEEにあるから!」
OSSを完璧に面倒見れますか?標準技術使いましょう。」
ただ、じゃーなんでみんなOSS使ってるかって
やっぱ標準じゃ足りないって思ってるわけで。
あとOSSを使ってる事例が多くて、標準をちゃんと抑えずに
OSSを使っちゃってるパターンも多いのかなと。
前にS2JDBC(JdbcManager)を知ってるのに
JPAを知らない人いましたからね...
まぁでも、すごく分かるんです。標準の大事さは。

2時間ほどでしたが、いい刺激を受けました。
登壇して下さった方々、お疲れ様でした。

AWS VPC

会社の引越しに伴い、VPNの必要が出たのでVPCやります。

若干ハードル高いですが、ヨチヨチ歩きでいきます。

色々調べた結果、AWSではVPNサーバは自前で用意する必要があるので、
PublicSubnetにVPNサーバを置いて、
PrivateSubnetにセキュリティを確保したいサーバを置く構成がいいのではと。
ハードウェアVPNは、運用考えると楽だとは思うのですが、接続者が色んな場所にいるので(基本モバイルルータ)

VPC作成
ダッシュボードからウィザード使って作ります。「VPC with Public and Private Subnets」を選択。
フルデフォルトで作成。
NATインスタンスのKeyPair忘れずに。

NATインスタンス
NAT インスタンス - Amazon Virtual Private Cloud
プラス、UDP1194の解放

NATインスタンスのSource/Dest. Checkを無効に。(元々無効)

IPv4フォワーディングの有効化

$ sudo vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
$ sudo /sbin/sysctl -p

接続方式どうしようかと迷ったんですが、
クライアントもWindowsがほとんどなので、PPPTPが良かったんですが、
諸々の理由から心折れまして、OoenVPNにしました。
OpenVPNのインストールと設定。yumでサクッと。

証明書を作成
OpenVPNの設定(その1:認証用ファイルの生成) | Blog on fuketch.net
OpenVPNでもプラグインなどでユーザパスワード認証出来るらしいですが、
[OpenVPN TIPS] 証明書認証ではなく、ID/パスワード認証を使用する
OpenVPNが起動せず、うまく動作しませんでした。まぁ私の設定が悪い可能性が高いですが...

server.confはこんな感じ

port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key
dh dh2048.pem

#script-security 2
#client-cert-not-required
#username-as-common-name
#auth-user-pass-verify /etc/openvpn/auth.py via-file

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

push "route 10.0.1.0 255.255.255.0"

keepalive 10 120
persist-tun
persist-key
client-to-client
duplicate-cn
comp-lzo
status /etc/openvpn/openvpn.log

verb 3

管理者都合からだと鍵をたくさん用意するのが面倒なので、
同じ鍵で複数接続を許可するのが、duplicate-cnオプションらしいです。
これ指定しないと同じ鍵で接続した場合、
後の接続が優先されて、前の接続は切断されます。

実際は、あんまりサクサク進まなくて、手こずった感ありますが、
なんとかVPNで接続できて、Privateなインスタンスにアクセスする事が出来ました。
いいですね。
お疲れ様でした。

参考
Amazon VPCにVyattaを使ってVPN接続をしてみた - まめ畑
suz-lab.com - このウェブサイトは販売用です! -&nbspsuz-lab リソースおよび情報
複数のAmazon VPCのプライベートネットワークをOpenVPNを使って接続する | DevelopersIO

Team Calendars始めました

Confluenceをインストールしたばっかりですが、
Team Calendarsもインストールしてみました。

プラグイン扱いなので、さくっと入ると考えてたのですが、
「予期しないエラー...ログ見てね」
的なメッセージが出て、インストールに失敗します。

調べた所、
https://confluence.atlassian.com/display/CONFKB/Unable+to+Install+Calendar+plugin
ここを見て、確かにMySQLを使っているので、
Exceeds max allowed packet for MySQL - Atlassian Documentation
これ設定して、Confluence再起動したら、インストール出来ました。

うーん。JIRAもConfluenceもインストールは多少手こずったのですが、
ここでもですか...
オンデマンドが日本語対応してれば、オンデマンドのほうがやっぱいいな。
AWSにセットアップしてるので、
インスタンスの金額考えでも、10ユーザならオンデマンドのほうが安いですし。

Confluence始めました

JIRA使って、やはりConfluenceが欲しくなりました。
ここらへんredmineなら、基本は初めから揃ってるので、ん〜な感じですが、
JIRA気に入ってるので。

参考にしたインストールマニュアルは、コチラ
Confluence4.3のインストール(Linux)

AWS上にセットアップです。既にJIRAがインストールされています。

$ curl -LO http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-4.3.7-x32.bin
$ chmod +x atlassian-confluence-4.3.7-x32.bin
$ sudo ./atlassian-confluence-4.3.7-x32.bin

質問も基本デフォルトのままにしました。
既にJIRAがインストールされていて、nginxがフロントにいるので、
How to use NGINX to proxy requests for Confluence - Atlassian Documentation
を参考に、プロキシの設定を行います。
SSLにおける設定は、JIRAの場合と同じです。

設定が終わって、
example.com/confluence
にアクセスすると設定画面が開きます。

評価版ライセンスを生成して、
JIRAで使用している外部DB(MySQL)を使用したいので、
「Product Installation」を選択します。

さて外部DBですが、JIRAのデータベースを使う事も出来るようですが、
分けておいたほうが後々よさそうなので、同じMySQLにConfluence用のデータベースを作成します。
Database Setup For MySQL - Confluence 4.3 - Atlassian Documentation

データベースの設定、自分はかなり時間がかかりました。
nginxがタイムアウトしてしまいましたが、
プロセスを見てるとガリガリやってるので、終わるまで待ちました。
データベースの設定が終わったら、
「Empty Site」を選んで、JIRAとユーザを統合するので、
「Manage users and groups within JIRA」を選択します。

いやーハマりました。JIRAとの連携。
SSLで無ければ、そこまで躓かないような気がするのですが、
下手に色々ドキュメントを見たせいで、道を失ってしまいました。
SSLにおけるJIRAとConfluenceの連携は、ネット見てても
そこそこみんなハマってるっぽいのですが、
自分が解決出来た方法は、
■自前のkeystoreを使わない。
 元からあるので、どうしても使いたくなってしまいますが、
 自分の場合は、自前のkeystoreではどうにもうまく出来ませんでした。
 デフォルトのcacertsを使いました。
JIRA Does Not Start after Configuring SSL Due to Unspecified TrustStore or Keystore Path - Atlassian Documentation
Connecting to LDAP or JIRA or Other Services via SSL - Confluence 4.2 - Atlassian Documentation
■JIRAにもConfluenceの両方に設定
 JAVA_OPTSは、両方のsetenv.shに設定しました。

要はデフォルトのkeystoreに、自前のkeystoreを作った時と同じように
中間証明書やサーバ証明書をインポートして、起動時にそれを使うようにしました。
ルート証明書は、元々入ってる場合が多いと思います。

これでセットアップ完了。ログイン!
Not Permitted...
Solved: You are not permitted to perform this operation
うーん、ちょっとガッカリです。

日本語化は、V4.3.7なので、
Atlassian Translations - Atlassian Documentation
ここから日本語パックをダウンロードして、
プラグインとしてアップロードすればOKです。

なんとかセットアップ出来ました。
お疲れ様でした。