huruyosi’s blog

プログラミングとかインフラとかのメモです。

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

jacksonでjava.util.Dateをデシリアライズすると9時間ずれる

"sched_date": "2015-09-12"をデシリアライズしてjava.util.Date sched_dateにマッピングすると2015年9月12日 0時0分0.0秒を期待しているのですが、java.util.Date#.getTime()を行ってみると、9時間進んでいます。 日本で9時間のずれということはタイムゾー…

sbadminのサイドバーを縮小させる

メインコンテンツの表示領域を確保するために、左側に配置されているサイドバーの幅を狭めたいと思い探していると既に作成されている方がいらっしゃいました。 [SB Admin 2] BootstrapのAdmin Theme - 世界の一部 目的を達していたので、sbadmin2の現時点で…

spring boot で context-pathを設定する

素のservletで開発を行っている頃は当たり前の様に設定していたcontext-pathを spring boot MVC で設定します。 設定方法 application.yml 設定は application.yml に「server.contextPath」を設定します。 server: contextPath: /hogeApp コントローラー @R…

リリース用のパッケージを作成する時にJasperReportの.jrxmlをコンパイルする方法

課題 今はiReportで.jrxmlのデザインとコンパイルを行い出力された.jasperをソースの一部としてリポジトリにコミットしているが、時折、.jasperがコミットされないことがあるので、リリース用のパッケージを作成する時にコンパイルしパッケージに含めること…

D3.js の勉強を始める 3回目 - 終わり

写経一通り終わり 前回、前回と行ってきた D3.jsのチュートリアル が終わりました。 huruyosi.hatenablog.com huruyosi.hatenablog.com 次の目標は ギャラリーを参考にして基本的な円グラフを作成する。 13.棒グラフの作成 の結果 https://github.com/huruyo…

D3.js の勉強を始める 2回目

今回は チャプター7~10まで 前回の続きになり、チャプター7~10まで http://ja.d3js.info/alignedleft/tutorials/d3/ 今のとこは順調にいけている。ここまではD3.jsを使うための準備だったと思う。SVGを使っているとN88-BASICやX-BASICでワクワクしながらプ…

D3.js の勉強を始める

かっこいいグラフを作りたくて D3.jsの勉強を始めました。手ごろなチュートリアルがあるので写経を行っています。 写経の結果は github (https://github.com/huruyosiathatena/d3js_study)にあります。Spring bootのWebアプリに組み込む予定なので、Spring b…

GitHubからのcloneで「Problem with the SSL CA cert (path? access rights?)」

落ちは過去に行った設定が原因での自爆でした。環境は CentOS 7.1 です。 事象 $ git clone https://github.com/xxxx/a_repository.git ってやる実行と Cloning into 'a_repository'... fatal: unable to access 'https://github.com/xxxx/a_repository.git'…

アクセス数が少ないサイトで翌朝にアクセスすると java.net.SocketException: Broken pipe が発生する

事象 昨日は使えたのに、次の日になると調子java.net.SocketException: Broken pipeが発生していました。 スタックトレースは下の通りで、 MySQLサーバとの通信でエラーが起きています。 10:10:21.580 [http-nio-8080-exec-3] ERROR o.a.c.c.C.[.[.[.[dispat…

spring boot をjar で実行した時にjasper reportのサブレポートを指定する

前回の記事でTODOで残った件です。 huruyosi.hatenablog.com java.io.InputStream を使う ググってみるとサブレポートのsubreportExpressionのclassにjava.io.InputStreamを指定し、値に getClass().getResource("/path/to/my/report/in/a/jar/subreport.jas…

AbstractViewを継承してJasperReportでCSVファイルを作成する

CSVファイルをダウンロードする実装として、CSV形式でレンダリングするviewを実装します。 実装 コントローラー パラメータに応じてデータを検索します。検索結果はbeanのListに設定します。 org.springframework.web.servlet.view.AbstractViewの具象クラス…

Redmine 3.1.1.stable と eclipse 4.3を連携させる

環境 Redmine 3.1.1.stable Redmineのプラグイン https://github.com/joaopedrotaveira/redmine_mylyn_connector eclipse 4.3 (pleiades-e4.3-java_20140309) eclipseのプラグイン https://github.com/ljader/redmine-mylyn-plugin インストール Redmine Red…

mysql で 最大値を残して delete する

きっかけ Oracleでは delete from table_a where id < ( select max(id) from table_a ) とやるのだけど、MySQLでは ERROR 1093 (HY000): You can't specify target table 'table_a' for update in FROM clause となってしまう。ふと、Oracleの SQL*Plusでは…

MySQLのダンプファイルを圧縮しながら書き出す

100Gを超えるログテーブルをmysqldump でダンプする時に、名前つきパイプを使うことで圧縮しながらファイルに保存することができます。こうする事で、圧縮前のダンプファイルを保存するためのディスク領域を確保する必要がないので、ディスクの空き領域が少…

Jasper Reportのクロス集計で横軸が1ページを超えた時には改ページさせる

クロス集計(crosstab)を使った集計を行った結果が横軸が1ページの幅を超えた時に、縦方向に空きがあるとクロス集計が2行になって表示れます。 stackoverflow.com この場合には、 crosstabのプロパティ「Column Break Offset」を印刷範囲の横幅と同じにするこ…

spring boot その9 - spring security で Remember-Me認証を行う

実装したソースは https://github.com/huruyosiathatena/springboot/tree/b5e82c5b8e24f4a7508d7fd86ca6cc311fe43adf にあります。 Remember Me 認証 ログイン画面にある にある「Remember Me」にチェックをつけてログインすることで、次回アクセス時に認証…

spring boot その8 - spring security で 認可を行う

実装したソースは https://github.com/huruyosiathatena/springboot/tree/8ffe6e7ab202945b9399b1d34eb4462de223dcb1 にあります。 前回( http://huruyosi.hatenablog.com/entry/2015/08/08/003303 ) は認証を行ったので、今回は認可です。 認可の方法 コン…

spring boot その7 - spring security で 認証を行う

実装したソースは https://github.com/huruyosiathatena/springboot/tree/8bb72d41f62d28039f5c7d0ccda8f4036ecea8ca にあります。 ログインを実装する spring security を利用してログイン画面を作ります。今回は認証を行うだけで権限に基づいた制御は次回(…

Play framework 1.2.7 で “Request exceeds 8192 bytes”が発生した

事象 Play framework 1.2.7 で実装した RestAPIに c# で実装した RestClient から GET /path/to/api?var1=hoge&var2=huga~以下省略 といった要領でQueryStringのパラメータを大量に設定すると logs/application.log に Request exceeds 8192 bytes と出力さ…

spring boot その6 - hot deploy

実装したソースは https://github.com/huruyosiathatena/springboot/tree/bf14db6cee0c0eba88894932722a514053f49bbd にあります。 再起動せずにjavaのソースコードの変更を反映 小さな修正を行う都度にjavaを再起動するのは手間なので pom.xmlを編集してhot…

UltraMonkey-L7 の sslproxy に Logjam 対策を行う

Firefox ver39 で サイトにアクセスできなくなってしまった。 Firefox でアクセスすると SSL received a weak ephemeral Diffie-Hellman key in Server Key Exchange handshake message. (エラーコード: ssl_error_weak_server_ephemeral_dh_key) というエラ…

spring boot その5 - SB Admin2 を組み込む

実装したソースは https://github.com/huruyosiathatena/springboot/tree/4589c56c81f9907a55356d44704a3ff08235fe39 にあります。 レイアウトを SB Admin2 に変更 レイアウトでもう少し楽するために SB Admin2 を組み込みます。2015年8月2日時点でSB Admin2…

spring boot その4 - Thymeleaf の layout を利用して、 ページ固有の title、meta、 style、script タグを出力する

実装したソースは https://github.com/huruyosiathatena/springboot/tree/3cf89896ff8e272b437f988f1c39f2d4a988be0e にあります。 layoutを使って 主コンテンツ以外を出力する 一つ前の記事で Thymeleaf のlayoutを使いました。 spring boot その3 - テンプ…

spring boot その3 - テンプレートエンジンの Thymeleaf を組み込む

実装したソースは https://github.com/huruyosiathatena/springboot/tree/db743062dad8411906e959d00e3326c4249ca50f にあります。 view に Thymeleaf を使う Tthymeleaf を利用して、 前回( spring boot その2 - bootstrapを組み込んで静的なページを表示す…

spring boot その2 - bootstrapを組み込んで静的なページを表示する

実装したソースは https://github.com/huruyosiathatena/springboot/tree/7841b5ca6c45bbbe0ca326d9eb2e98ea9c79a511 にあります。 TODO 直す css を考えるのは得意ではないので Bootstrap にたよる これから先の画面レイアウトやデザインなどで悩むことが無…

spring boot その1 - プロジェクト作成

実装したソースは https://github.com/huruyosiathatena/springboot/tree/f885430ac57db879e58cf281c75bec85a6dedac1 にあります。 Hello world web アプリケーションを作成して hello world を目指します。 ほぼ、コピペです。 spring-boot - Spring Bootで…

spring bootを試していく

やっていくこと webの画面を作る twitter boot strapを組み込む テンプレートエンジンに Thymeleaf を組み込む spring-boot-starter-security を使って CSRF対策 Spring Data JPA でデータベースアクセス MySQLにアクセス Flayway を利用してマイグレーショ…

linkstationの管理画面にsshのportforwardで接続する

遠隔地の実家にある linkstationのことを考えると管理画面にアクセスする必要性が出てくるかもしれません。 ssh + rsyncでバックアップが行えるようになったので、同じ仕組みを使ってwebの管理画面にアクセスします。 $ ssh -t -L 8080:localhost:9999 ls220…

linkstationのバックアップ その5 rsyncに変更【決着】

方針変更 Amazon Glacierをつかったバックアップは、いざという時のリカバリーコストがかかり過ぎるので廃案になりました。 リンクステーションのバックアップ その四【断念】 - huruyosi’s blog 変わりに自宅から rsyncを行いバックアップします。 構成 rsy…

lucene の インデックスを確認する

前回の記事でインデックスを作成したものの、意図した通りに作成できているのかを確認することができません。 使うツール Luke (http://luke.googlecode.com/svn/)があります。しかし、4.xに対応していないので、対応したものが GitHub にあがっています。 t…