hatenob

プログラムって分からないことだらけ

2014-01-01から1年間の記事一覧

Wildfly 8でメソッドの実行時間を取るインタセプターを作る

メソッドの実行時間を取りたいなぁというとき、メソッドの最初と最後でSystem.currentTimeMillis()してその差をログに出す、なんてことをよくやるわけですが(プロファイラ使えばそもそもそんなことやらなくていいんでしょうが)、直接メソッド内に処理を書…

Wildfly 8でEJBとJAX-WSを同じインタフェースで呼ぶ

JAX-RSのServiceを、同じ「Service」として例えばJSFのManagedBeanから、EJBでもJAX-WSでも呼べるようにしてみた。 それ自体は別に難しいことではなかったです。 Serviceクラス // for JAX-RS @Path("todo") // for JAX-WS @WebService // for EJB @Stateles…

Wildfly 8とHibernate OGMでMongoDBにJPA

前回からの続き的内容。 RESTの受け口が作れたので、今度はそれを永続化するところに挑戦。永続化と言えばDBなので、MySQLとかでもいんだけれども、せっかくなのでMongoDBに永続化することにしてみます。 Javaなので、APIは当然JPAです!って、MongoDBとかっ…

JAX-RS on Wildfly 8 でhello的なもの

前回AngularJS使ってみてて、サーバ側はRESTインタフェースで構えようと思ったらJAX-RSの使い方とかよく知らないのにはたと気づいたので、Wildfly8.2でJAX-RSのhello world的なものを試してみました。 いやほんと、今更ながらそんなレベルです。 Java Javaの…

AngularJSを触ってみた

js

前回のBootstrapに続き、モダンなUIフレームワークをいじるシリーズで、クライアントMVCのためのJavascriptフレームワーク、AngularJSを触ってみました。 こちらも下記のチュートリアルに従って写経しただけです。 すぐできる AngularJSAngularJSの使い方を…

Bootstrapを触ってみた

最近めっきりUI関連の技術に疎くなってしまったところ、ちょいと動かして試せそうな記事があったので触ってみた。 Bootstrapという、レスポンシブWebデザインなライブラリとのこと。 特になんてことはなく、サンプルとして記事に書かれている内容を写経した…

ServerUnitというのを作ってみた

作ろうと思った経緯 昨今、DevOpsの旗印のもと様々なツールが登場しておりますが、その1つにserverspecというサーバ状態をテストするためのツールがあります。 Serverspec - Home僕の中で、このテストツールはインフラテストにプログラムコードを持ち込んだ…

Androidでjarをライブラリとして使用する

ちょっとAndroidのアプリを書いておりまして少しだけはまりました。とある機能をPCでもAndroidでも使えるように、ライブラリとしてjarでパッケージングをしました。 PCではちゃんと動きました。Androidで使うには、単にlibsの下にそのjarを置けばいい、はず…

CentOS 7でDockerを動かす

RHEL7リリースから1ヶ月遅れくらいでCentOS7がリリースされました。 CentOS7のインストール ミラーサイトからnetinstallのISO落としてきて、VMWare Player上にインストールしました。ごちゃごちゃと入れたくないしISOでかいのが嫌で、6まではminimalを使って…

一人Web開発~最終夜 まとめ

感想、思いのほか時間がかかった。 初めてやるようなことはなかったのだけれど、ちょっとしたことにはまったり、あとは単純に時間がとれなかったり。はまったりするとなかなかまとまった時間がないと厳しいなぁ。 基本形は今回作れたので、あとはこれを太ら…

一人Web開発~第15夜 ログ管理

前回も書いたけれど、ログは主に調査、解析用のバックアップと、監査用のバックアップの2つがあり、前者は1週間~1ヶ月、後者は1年以上とかになる。昨今のビッグデータ活用により前者も何年とか蓄積するケースもあるけれど、その場合は生ログではなく、それ…

一人Web開発~第14夜 MariaDBバックアップ

バックアップを取る時に、その目的は大体2つ。 障害復旧用 調査、解析、監査等の保存用 障害復旧の場合は、物理障害対策であれば1世代前まであれば十分で、論理障害対策であれば最大何世代前まで戻したいかによります。 調査、解析、監査用であればそれぞれ…

一人Web開発~第13夜 Zabbix導入

前回、「次はインフラのITを」と言っていたのですが、気が変わった(というか、パパッとできるインフラITのネタが思い浮かばなかった)ので、次の工程であるZabbixの導入に進みたいと思います。 今回初めて触ったので、ちょっと変なところではまりました。 Z…

一人Web開発~第12夜 Integration Test

Integration Test(以下、IT)は日本語にすると結合テストなんだけれども、何と何を結合するのかでだいぶんテストの内容が変わってきます。 今回は大きくこの2つをITとして取り扱うことにします。 アプリケーションを画面から実行するテスト。だいたい1つの…

一人Web開発~第11夜 Jenkins導入

CIできるようにJenkinsを導入します。 CIといってもまだIntegration Test(IT)のコード書いてないので、まずはこれまでに書いたテストを順に実行できるようにします。 今のところの対象は下の2つ。 serverspecのテスト util、ejb、webのJUnitテスト(順番は…

一人Web開発~第10夜 JSF

画面はJSFで書きます。JavaEE7のJSF2.2では、よりHTMLに近い書き方ができるようになったとか。HTML5との親和性とかそういったことなんでしょうかねぇ。 画面 先に画面を作ります。単純に、名前とパスワードを入力してそれを登録し、登録完了したら完了画面に…

一人Web開発~第9夜 EJB

EJBを書きます。正しくは、EJB+JPAです。 サービスとして独立した形を目指して、ロジックとデータアクセス部分をひとまとまりに切り出すことにしました。 画面はアプリケーションごとに、ロジックは共通に、というのは古くからあるパターンなんだろうけど、…

一人Web開発~第8夜 共通ライブラリ

ようやくプログラミングに入ります。 Eclipseを使いますが、細かい設定についてはここでは触れません。 Mavenが使えるようになっていれば最低限ことは足りると思います。 ターゲットはWildflyに固定していることもあり、面倒なのでJBoss Toolsを入れてしまう…

一人Web開発~第7夜 Nexusの導入

アプリケーションを作る、前に、ライブラリ管理できる仕組みを整えておくことにします。 ライブラリ管理にはMavenを使用し、Mavenリポジトリを管理するために、Sonatype NexusのOSS版を使用します。 Nexusは、Mavenリポジトリのホストと、セントラルリポジト…

一人Web開発~第6夜 MariaDBの導入

アプリケーション実行環境の最後、データストアとあるRDBMSとしてMariaDBをインストールする。せっかくなので、まだ安定はしてないけれど、10.0を入れることにします。 MariaDBのインストール MariadDBのレシピは今のところとても少ない。 # Install package…

一人Web開発~第5夜 Wildfly導入

JavaEE7実行環境であるWildflyをインストールします。 ApacheとMySQLとの連携に必要な設定も施します。テンプレートも含めるとコード量がそこそこあるので、実物はGithubのほうで参照ください。 https://github.com/nobrooklyn/oneman/tree/master/platform …

一人Web開発~第4夜 Apache導入

今回、Webサーバ兼ロードバランサとしてApacheを選択しました。後段にWildflyを使うので、それとの連携を考えた時に尤もらしい選択肢と言えると思います。 パラメータ関連のチューニングはとりあえず後回しにして、インストールを進めます。 httpdのインスト…

一人Web開発~第3夜(2) サーバ共通設定のテスト

サーバ共通設定としてcookbooks/commonで導入した内容のテストを書きます。 テスト対象はタイムゾーンの設定とNTPの設定の2つです。 テストを書く タイムゾーンのテストはこんな感じ。 # spec/localhost/timezone_spec.rb require 'spec_helper' describe fi…

一人Web開発~第3夜(1) serverspec導入

サーバもプログラムと同じく、設定したらテストすべしというのが最近の流れ。テスト駆動開発の立場からすると「いやいや、設定したらテストではなく、テストを書いてから設定をするのだよ」と言われそうですが、「まず、動く」のが見たいタイプなのでとりあ…

一人Web開発~第2夜(2) サーバ共通設定

ひとまず簡易的に実行環境を整える作業に入ります。 プラットフォームの環境設定は手で行わず、原則Chefを使って実施します。元のChefリポジトリのcommonクックブックを見直します。 Chefクックブック 以前Oracle12cインストール時に使ったもののうち、時刻…

一人Web開発~第2夜(1) 環境準備

ものごとを始めるための準備を始めます。 とりあえずローカルにGitリポジトリをクローンするところから。作業環境はCentOS 6.5(不定期にyum -y updateで最新化してます)です。 とりあえず作業は全部rootで行います。 最低限必要なSWの準備 OSのインストール…

一人Web開発~第1夜 はじめに

断片的で細々とした知識はあるのだけれど、果たして自分一人でWebシステムを作れるだけの能力があるのかというと甚だ疑問なので、試しに取り組んでみたいと思います。 家庭内で、いわゆる「自分の時間」を使ってちょっとずつやっていこうと思うので、いつ終…

WebSocketの簡単なプログラム

JavaEE7で採用されたWebSocketの簡単なプログラムを書いてみました。 chanko/chanko-web at master · nobrooklyn/chanko · GitHub参考にしたのはコチラです。 WebSockets tutorial on Wildfly 8 - WebSockets - JBoss application server tutorials 環境 Wil…