rrule.js簡易メモ

icalのrruleから該当日付を計算してくれるjavascriptライブラリ。 超便利、だが色々問題があったのでメモ。 ビルド環境:node + bower + webpack ※BowerWebpackPluginでbower取得したモジュールはパス書かなくてもいいようにしている。 mainのパスが違います…

Javaで年号を追加する

POIを使って年号(元号、和暦)付き日付をExcelに出そうとすると少し面倒なことになった。 年号関連のセル書式判定がイマイチな処理になる上、Excelのバージョンが変わると仕様が変わるかもしれない。 そんなわけでJava側で処理した方がいいという考えになった…

iCalのrruleを必要な分だけ抜き出して使う

システム上でスケジュール情報を登録・保持するようにしたいが、一から考えるのは面倒、特に繰り返し条件が。 なのでiCalのrruleの仕様をそのまま踏襲することにするが、日本語情報がほとんど無い。 一番参考になったのがここ。 CalDAV(iCalendar)のrrule(…

SourceTreeアップデート(しても大差なし)

SourceTreeダウングレードしたかったが、する時間などもちろん無く、その間にバージョンアップ通知が来たのでバージョンアップしてみる。現在は1.9.6.1。 ツリー表示は復活して見やすくはなったが、フォルダ内のファイル全選択ができないのでポチポチ選択し…

SourceTreeが1.8でヘタレになった

SourceTreeをバージョンアップ(1.7.0 → 1.8.3)したら、ファイルのツリー表示できなくなった。 おかげでフォルダ内全部の選択ができずに、1ファイルずつポチポチ選択しないといけない。 どうも新UIはバグが多く評判悪い様子。大きな変更するならバージョン番…

JPA的なもの(回顧)

Javaがまだ1.3とか1.4で、自分も駆け出しのペーペーだった頃、社内製品の開発に携わったことがあった。 そこで使われていた自作フレームワークにはO/Rマッピングや自動mergeなどの機能が実装されていた。 あの頃に比べれば、Javaのバージョンも上がりライブ…

Underscore.jsおさらい6(Utility、Chaining)

noConflict _.noConflict() underscoreは「_」がデフォルトだが、他のライブラリで使っていると衝突するので衝突防止。 var underscore = _.noConflict(); identity _.identity(value) 引数自身を返す。f(x) = xの処理。underscoreのiterateeデフォルト判定…

Underscore.jsおさらい5(Objects)

keys _.keys(object) keyの一覧が配列で返る。 _.keys({one: 1, two: 2, three: 3}); => ["one", "two", "three"] allKeys _.allKeys(object) prototypeも含めて全キーが返る。 function Stooge(name) { this.name = name; } Stooge.prototype.silly = true;…

Underscore.jsおさらい4(Functions)

bind _.bind(function, object, *arguments) 関数のオブジェクト束縛。関数を変数にして引き回せるJavaScriptならでは。 Javaな自分には最初理解できなんだ。 関数内のthisをオブジェクトに割り当てる。 今は標準でbindが実装されているが、実装が曖昧という…

Underscore.jsおさらい3(Arrays)

first _.first(array, [n]) 先頭の要素を返す。shiftと違い非破壊的。 nを指定すると先頭からn個分の要素を配列で返す。 initial _.initial(array, [n]) 最後の要素を除いた配列を返す。 nを指定すると後ろからn個分除いた残りを返す。 _.initial([5, 4, 3, …

Underscore.jsおさらい2(Collections)

※サンプルソースは本家ドキュメントから拝借。分かり辛いものだけ加筆・修正。 each _.each(list, iteratee, [context]) いわゆるforEach。 配列の場合はiterateeの引数に(element, index, list)が、オブジェクトの場合は(value, key, list)が使える。 _.eac…

Underscore.jsおさらい1(概要)

Underscoreのドキュメントを見直していたら、「これ使えてたわ」ということがあったので、機能一覧ぐらいは頭に叩き込むためにおさらいする。 参考 Underscore.js 遅すぎたUnderscore.js入門 - 全体像 - Qiita 全体概要 Underscoreはいわゆる便利系関数のJav…

Backbone.Validationが空文字を許してくれない

Backboneでvalidateを簡単にしてくれるプラグインBackbone.Validation。 GitHub - thedersen/backbone.validation: A validation plugin for Backbone.js that validates both your model as well as form input 正規表現で入力値をチェックできるpatternを…

まーしゃる

先のエントリーにあるメソッドmarshalの意味を調べる。 marshal:(名詞) 元帥 なんだそりゃ、と思ったが動詞だと「(人・軍隊を)整列させる、整頓する」という意味らしい。 だから元帥なのね。 戦いの意味合いを持っているなら、マーシャルアーツのマーシャル…

Jersey(MOXy)でJSONバインドをカスタマイズする

JSONをリクエストで投げてJersey(MOXy)でPOJOとして受ける際に、Integerのフィールドに空文字が来ると「0」に変換される。 0じゃなくてnullで受けたい、というように変換をカスタマイズした場合はXmlAdapterを継承したadapterを作る。 参考:JAXBのXmlAdapte…

BeanManagerを取得する on Weld, Tomcat

Weld 2.3.1 + Jersey2.22.1 Tomcat8 発端はEntityに登録者IDや更新者IDを埋め込みたかったが、Entityで@SessionScopedなBeanを@Injectできなかったから。 EntityListener使ってみたり紆余曲折あったが、時間が無いので経過は省くとして結局BeanManagerを取得…

backbone.validationメモ

参考:thedersen/backbone.validation · GitHub backbone 1.2.0 backbone.validation 0.11.5 backbone自体にvalidation機能はあるが、処理をいちいち書かないといけないし複雑化すると後から読むのも大変。 なのでbackbone.validationプラグインを使ってスッ…

ポート番号8888

「昨日アップされたソース取り込んで動かしたら変なサイトに飛ぶんだけど」 いやそんなの仕込んだ覚えないし。でも本当に「free-merchants.com」というサイトに飛ばされている。それに自分のローカル環境では起きない。 「chromeのプラグインが悪さしてんの…

JPQLのfetch その2

JOIN (≠JOIN FETCH) JPQLはJOIN FETCHではなくJOINだけでも書ける。 @NamedQuery(name="Find", query="SELECT DISTINCT t FROM Team t JOIN t.members m") SELECT DISTINCT t1.ID, t1.NAME FROM member t0, team t1 WHERE (t0.teamId = t1.ID) 1 Aチーム SEL…

JPQLのfetch その1

タイトルの通りだが勉強不足でハマったのでメモ。 Java8 + JPA2.1 + eclipselink2.6 テーブル team id name 1 Aチーム 2 MP member id name teamId 1 ハンニバル 1 2 フェイス 1 3 B.A. 1 4 マードック 1 101 リンチ 2 102 デッカー 2 103 フルブライト 2 En…

JDBCでINSERT後のシーケンス値を取得する

idカラムを作って自動採番するような場合。 JPAでINSERTすればidが入った状態でEntityが取れるけど、JDBCの場合にどうするか。 何故にJDBCかというと、バイナリデータを放り込むのにJPAではなくJDBCを使いたいから。 PostgreSQLのbyteaカラムに手動でデータ…

Javaのログ出力ライブラリメモ

知識がlog4jで止まっていたので調査。 Javaのログ出力: 道具と考え方 javaのロガーが多すぎて訳が解らないので整理してみました - 文系プログラマによるTIPSブログ ・・・迷路で遊ぶ暇は無いんだけどな、、、 とりあえず「SLF4J+Logback」でそんなに問題には…

JAX-RS 返却用クラスはデフォルトコンストラクタ必須

タイトルの通り。JAXBの仕様?らしい。 @GET @Produces(MediaType.APPLICATION_JSON) public User getIt() { return new User(1); } この場合、Userクラスが以下だとダメ。 public class User { public User(int id) {} } ちゃんとデフォルトコンストラクタ…

JSON・XMLを返すけどエラー時はステータスコードやメッセージを選びたい

JAX-RSで200とか404とか返すだけなら、メソッド戻り値にResponseを指定してResponseを操作すればいい。 @RequestScoped @Path("myresource") public class MyResource { @GET public Response getIt() { return Response.ok().build(); // 200が返る } } JSO…

DeltaSpike(Data)を諦める

DeltaSpikeもひと通り調べ終わり、実際にコーディングを進めていたがDeltaSpike Dataを使うのを諦めることにした。 理由は原因不明のOutOfMemoryError (heap space)が発生して、どうしても発生源が突き止められなかったから。 JAX-RSの1リクエストでReposito…

Jersey + CDIで@Contextが動かない

Jersey + CDIの構成で、ContainerRequestFilterの中でUriInfoを使おうとしてハマった。 構成は JAX-RS(Jersey) + JPA (on CDI) / on Tomcat - edgegram がベースでDeltaspikeを少々追加。 public class FormTypeFilter implements ContainerRequestFilter { …

PostgreSQLのbyteaカラムに手動でデータを入れる

初期データ用にbyteaデータを入れようと調べてみたが、psqlからのINSERTはできない? 仕方なくJDBCで放り込むことにした。(その時点で既に手動ではないが) Chapter 7. Storing Binary Data Class.forName("org.postgresql.Driver"); Connection con = Driver…

バッテリー上がり

車のバッテリーが上がったので交換した。 あまり動かさないのと、駐車場が家から自転車で5分強と少々距離があり、こまめにエンジンをかけに行けない。 停めているのが知り合いの所なので駐車場代無料なのは魅力。 近くに借りると軽く1.5万/月はするので、毎…

JAX-RS(Jersey)のFilter(RequestFilter)を使う

JAX-RSのフィルタを使うが、前回書いた通り認可処理でとりあえず使うだけなので、RequestFilterが中心。 参考 Chapter 10. Filters and Interceptors 環境 Java8 Tomcat8 Jersey2.22.1 とりあえずFilter使う ContainerRequestFilter リクエストフィルタはCon…

JAX-RS(Jersey) Filterを使う前に

システムの都合上、認証・認可で標準的手法(Basic, Form, Digest, etc...)が使えない。 そんなわけでフィルタを使ってゴニョゴニョすることになるが、実際に使う前に関連情報を整理。 参考 Chapter 10. Filters and Interceptors JAX-RS 2.0 ことはじめ - Pr…

Jerseyの設定2(web.xmlとかApplicationクラスとか)

前回の続きでServlet3.xで動かす場合の設定。 Chapter 4. Application Deployment and Runtime Environments Servlert3.x pom.xml 前回にも書いたが、Servlet2.xと3.xでは使用するモジュールが異なる。 <dependencies> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-</artifactid></dependency></dependencies>…

Jerseyの設定1(web.xmlとかApplicationクラスとか)

Jerseyの設定がバージョンによって違うが、webにある情報が色々混在していたりバージョンが不明だったりするので整理。 DeltaSpikeといいJerseyといい、結局は公式ドキュメントを読み込まないといけなくなる。英語力無いのが辛いところ。 Chapter 4. Applica…

DeltaSpike Data Module(使いそうなところだけ)まとめ4

Transactions ・・・DeltaSpike JPAも使うつもりだけど、完全に理解できていない。。。 特に指定せずに1トランザクション内で異なるRepositoryの更新ができるなら問題ないけど。。。 とりあえず 「the repository will figure out if a transaction is neede…

DeltaSpike Data Module(使いそうなところだけ)まとめ3

Query Annotations @QueryでJPQLが使える。 Queryアノテーション使う(Using Query Annotations) Repositoryに書く場合 public interface PersonRepository extends EntityRepository<Person, Long> { @Query("select count(p) from Person p where p.age > ?1") Long count</person,>…

DeltaSpike Data Module(使いそうなところだけ)まとめ2

Query Method Expressions メソッド名をちゃんと(分かりやすく)付ければコメントいらない。分かりやすいメソッド名でクエリを作ってしまおう。ということらしい。 メソッド式を使う(Using Method Expressions) @Entity public class Person { @Id @Generated…

DeltaSpike Data Module(使いそうなところだけ)まとめ1

DeltaSpike Data ModuleはRepositoryパターンを提供してくれるモジュール。 というのは昨日も書いた。実際に少し試してみる。 DeltaSpike 1.5.1 参考Data Module Project Setup 依存設定(Declare Data Module Dependencies) Maven前提。pomに「deltaspike-da…

DeltaSpike Data Moduleで複数EntityManagerを呼び分ける

DeltaSpike Data ModuleはRepositoryパターンを提供してくれるモジュール。 ・・・リポジトリ パターンは不勉強、とりあえす典型コード(boilerplate code)をすっきりさせてくれるらしい、と理解しておく。 DeltaSpike 1.5.1 参考 Data Module 本題 「複数のE…

複数のEntityManagerを切り替える(on CDI)

データベースが複数あるなどで、接続先を選びたい場合。 ついでにあやふやにしたままだったアノテーションも整理。 参考 JPA Module 環境 Java8SE Tomcat8 ※なので@PersistenceContextが使えません。使えるともう少し楽? Weld 2.3.1 単一EntityManager(変更…

JPAでデータソースからコネクションを取得

環境 Tomcat8 PostgreSQL9.4 データソース設定 参考 Apache Tomcat 8 (8.0.28) - JNDI Datasource HOW-TO JDBCドライバ配置 $CATALINA_HOME/lib にコピーしろって書いてあるけど、前エントリに書いたようにWEB-INF/libに置いている。 Resource設定 Contextに…

Tomcat JDBC Connection Pool

Tomcat7最新版ではデータソースのタイプが2種類提供されている。 Apache Commons DBCP 以前から使用されていたデータソース Tomcat JDBC Connection Pool Apache Tomcat 7 (7.0.65) - The Tomcat JDBC Connection Pool マルチコアに対応 高パフォーマンス シ…

JDBCのDataSource整理

アプリケーションサーバーでデータソースを構成する際、(javax.sql.)DataSource、XADataSource、ConnectionPoolDataSourceをtypeとして指定するが、違いがよく分からなかったので調べてみる。 DataSource たぶん最も基本的なやつ 普通に構成する分にはこれを…

Tomcatでは@PersistenceContextは使えない

前エントリではEntityManagerをわざわざFactoryから生成している。 JPAについて書いているブログなどでは、@PersistenceContextでEntityManagerを取ってくるサンプルがあるし、DeltaSpikeのData Moduleのページにも@PersistenceUnitでEntityManagerFactoryを…

JAX-RS(Jersey) + JPA (on CDI) / on Tomcat

Tomcat上でJAX-RX(Jersey)を使う環境で、CDIからJPAのEntityManagerを取得するようにする。開発環境はeclipseでMarvenプロジェクトを使用。 分かりやすいサンプルがあったので楽勝・・・ではなかった。。。 参考(というかほぼそのまま) JAX-RS(Jersey)とJPA…

サーバー構成で悩む

RESTful(的) on Javaな構成で組む予定のサーバー側構成に悩む。 前提 構成以前にフレームワークをどうするか(RESTfulにするかどうかも含め)悩み、Viewと手が分けれるRESTfulにして、流行り廃れに振り回されないJavaEEにするのがよいと判断。 最近はStruts + …

書き初め

主にIT系の調べ物をした際の外付け記憶領域用のブログです。 ブログ形式にしないと多分まとめて整理しないので。