読者です 読者をやめる 読者になる 読者になる

MyBatis にて size というパラメータ名を使うとintとしてマッピングされてしまう

MyBatisのSQLへのパラメータ埋め込みで、sizeという名前を使うと、JavaTypeがintとなってしまうようです。 現象を確認したのは、mybatis-spring-boot-starterの1.3.0(MyBatis自体のバージョンは3.4.4)です。 問題となるコード sandbox-java/mybatis-size-map…

Redmineでニュースの参照可否を制御する(patch適用)

Redmine 3.3時点では、ニュースの参照に関する権限が無く、一部のユーザにニュースを見せないということが出来ません。 @onozaty Feature #7068 が採用されればRedmine 3.4.0でロールごとにニュースの参照が制限できるようになります。 https://t.co/fXkrc4U…

Spring Boot で WebSocket (STOMPではなく、TextWebSocketHandler)を試してみる

こないだSTOMP over WebSocketを試してみましたが、今度はSTOMPを使わずに、TextWebSocketHandlerを使ったWebSocketを試してみます。題材も同じくチャットです。 sandbox-spring-boot/spring-boot-websocket at master · onozaty/sandbox-spring-boot · GitH…

Spring Boot で STOMP Over WebSocket を試してみる

Spring BootでSTOMP Over WebSocketを使って、試しにチャットっぽいものを作ってみました。 sandbox-spring-boot/spring-boot-websocket-stomp at master · onozaty/sandbox-spring-boot · GitHub 同じルームに接続しているクライアントに、同じメッセージを…

POPSPRING 2017 (2017年3月25日@幕張メッセ)

POPSPRING 2017 幕張公演に、嫁さんと2人で参加してきました。フェスは初参加です。 GOLDチケットだったので、とても余裕もって見れました。最初は前の方にいたのですが、逆に人が密集していてみずらかったので、途中からちょっと後ろ目で見ていました。それ…

Lombokの@Builder(toBuilder = true)で、オブジェクトの複製を作成する

前回の記事の続きで。 @Builder(toBuilder = true)とすると、オブジェクトからBuilderを生成できます。 どういうときに使えるかというと、オブジェクトの複製を作成して、一部のプロパティのみ変えたいといった場合です。 package com.example.lombok; impor…

Lombokの@BuilderでBuilderを簡単に作成する

多数のプロパティを持つクラスを生成するときに、Builderが有用だと思っているのですが、普通に書くとそれなりにコード書く必要があります。そこでLombokの@Builderです。 package com.example.lombok; import lombok.Builder; import lombok.ToString; publ…

Lombokで生成されたメソッドに対してアノテーションを設定する

毎回調べているような気がするのでメモ。 Lombok+Jackson(Spring MVCやJerseyなどで使ってたり)を使っている場合に、@JsonIgnoreで一部のフィールドを対象外にしたい場合に、privateなフィールドに設定してもうまく動きません。 Lombokで生成したsetterまた…

Greasemonkeyでテキストエリアに入力補完を追加する

Redmineのtextile記法で、コードハイライトは<pre><code class="java"></code></pre>のような書き方をするのですが、これを入力するのが面倒になってきたので、Greasemonkeyを使ってテキストエリアで入力補完を行ってみました。 なお、Redmine 3.3 からは、ツールバーにコードハイライト用のボタン…

Spring Boot: Scheduledアノテーションを使用して、スケジュールされたタイミングでメソッドを実行する

Scheduledアノテーションを使うと、スケジュールされたタイミングでメソッドを実行することができます。 これで周期実行的なものは、簡単に実装できます。 Getting Started · Scheduling Tasks 34. Task Execution and Scheduling 実装方法 実行したいメソッ…

Redmine: リポジトリタブでデフォルト表示されるbranchを変更する(View customize plugin)

View customizeで『「リポジトリ」タブをクリック時にデフォルトで表示されるブランチをmasterではなく、ある特定のブランチに設定したい』といった問い合わせをいただいたので対応してみました。 onozaty/redmine-view-customize - GitHub 画面をJavaScript…

MyBatisのArrayTypeHandler使用時の注意点

MyBatisには、org.apache.ibatis.type.ArrayTypeHandlerがあって、java.sql.Arrayとのマッピングを行ってくれますが、パラメータ設定時と、結果取得時でマッピングが異なるので注意が必要です。 実際のコードを見たほうがわかりやすいので、現時点のコードを…

Spring Bootのspring-boot-starter-webでTomcatではなくJettyを使う

Spring Bootのspring-boot-starter-webのデフォルトだとTomcatがサーブレットコンテナとして組み込まれますが、設定を変えればJettyに切り替えられます。 70. Embedded servlet containers configurations { compile.exclude module: "spring-boot-starter-t…

Amazon Product Advertising APIを使ってISBNから書籍情報を取得する

ISBNから書籍の情報を取りたかったので、Amazon Product Advertising APIを使ってみました。 必要な情報 Amazon Product Advertising API を使うためには、下記の情報が必要になります。 アソシエイトタグ アクセスキー シークレットキー アソシエイトのアカ…

Spring BootでAssertJの3系を使う

Spring Boot(現在の最新の1.4系)はJava7もサポートしているため、spring-boot-starter-testで依存するAssertJは、Java8対応の3系ではなく、2系となっています。 upgrade assertj to 3.3.0 · Issue #5272 · spring-projects/spring-boot · GitHub 3系に変えた…

Spring Boot DevToolsを使って、コードを修正して確認といったサイクルを短くする

Spring Boot DevTools を使うことによって、コードを修正して確認といったサイクルを短くすることができます。 http://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html 使い方 build.gradleやpom.xmlで依存関係を追加する…

2016年の振り返り

すでに2017年を迎えてしまいましたが、、、2017年を迎えるにあたって、まずは2016年を振り返りたいと思います。 ダメだったこと Blogで毎週1エントリを目標にしていたけど、7月で途絶えてしまった 週に1度はGitHubにコミットすることを目標にしていたけど、3…

MyBatisのMapperはGroovyで書くことにした

MyBatisのMapperでSQL書くにあたって、複数行に渡るSQL書くのにヒアドキュメントが使いたくて、まずはKotlinを試しました。 ただ、ElicpseでKotlinを書こうとすると、importの自動補完が効かず、ちょっと面倒だったので、Groovyを試しました。(本当は、Kotli…

Spring BootでのDBアクセス方法(JDBC、JPA、MyBatis)について

Spring BootでのDBアクセス方法として、下記の3パターンを試してみました。 JDBC(spring-boot-starter-jdbc) JPA(spring-boot-starter-data-jpa) MyBatis(mybatis-spring-boot-starter) なお、それぞれの全体のコードは、下記に配置してあります。 https://g…

社内勉強会で「Spring Bootを触ってみた」というタイトルで発表しました

Spring Bootが楽しいので、社内勉強会で「Spring Bootを触ってみた」というタイトルでLTしてきました。 Spring Bootを触ってみた from onozaty www.slideshare.net 内容が薄くなってしまったので、もっと使い込んだら、もう少し長い時間でやりたいなぁと思っ…

Spring Boot がとても楽しい

Spring Boot を勉強し始めて、いろいろ楽しいので、いったんここにまとめてみます。 ここで書いている内容は、下記のリポジトリで試している内容になります。(今後もいろいろ試すので、リポジトリの内容はどんどん変わっていくかもしれません…) onozaty/spri…

Eclipseで「Class 'springfox.documentation.swagger.web.ClassOrApiAnnotationResourceGrouping' is marked deprecated」って警告が出る

下記の構成で Spring boot + Swagger のサンプルを作ってみたところ、 Eclipse 4.6.0 Spring Tool Suite(STS) 3.8.2 SpringFox 2.6.1 下記のような警告が出ました。 Class 'springfox.documentation.swagger.web.ClassOrApiAnnotationResourceGrouping' is m…

Redmine: チケットの説明欄を非表示にする(View customize plugin)

GoogleグループのRedmine Users (japanese)で、チケットの説明欄を非表示にするにはといった質問があったので、View customize pluginで対応してみました。 onozaty/redmine-view-customize - GitHub 画面をJavaScript/CSSで簡単にカスタマイズできるRedmine…

Redmine: 一部のカスタムフィールドを説明の下に移動する(View customize plugin)

@onozaty 色々とご相談ですみません。特定のカスタムフィールドを、説明欄の下に移動させるにはどうすればいいですか。JQueryのmanipulationを使えば出来そうな気がするのですが、上手くいってません。よろしくお願いします。— 松谷 秀久 (@mattani) Novembe…

Tomcat8をインストールするAnsibleのRoleを書きました

onozaty/ansible-tomcat: Install Tomcat Tomcat8をCentOS7にインストールするためのRoleを書きました。 最初はAnsible Galaxyにあがっているものを試してみようと思いましたが、やっていることが理解できない部分も多かったので、勉強もかねて自分で書いて…

Tomcat8で、デフォルトだとローカル以外からmanagerが表示できない

Tomcat8をインストールして、managerを見ようとしたところ、403 Access Denied となったので、画面に表示されていた通りtomcat-user.xmlにmanager-guiというロールでユーザを追加します。Tomcat6の時は、managerだったのが、Tomcat7以降で変わったようですね…

Redmine: コンテキストメニューからステータスを変えた際に、対象バージョンも変更する (View customize plugin)

How can I set default value when I change the status_id to refused in the issue list context menu? · Issue #4 · onozaty/redmine-view-customize-scripts · GitHub Issueとして、コンテキストメニューからステータスを却下(6)に変えたときに、対象バ…

Redmine: チェックボックスのカスタムフィールドを横並びで表示する (View customize plugin)

Redmine Users (japanese) - Google グループで、チェックボックスを横並びにしたいといった要望が出ていたので、View customize でやってみます。 onozaty/redmine-view-customize - GitHub 画面をJavaScript/CSSで簡単にカスタマイズできるRedmineプラグイ…

Redmine: チケット一覧のコンテキストメニューに、サーバにリクエストを送る項目を追加する (View customize plugin)

チケット一覧のコンテキストメニューに項目を追加して、その項目をクリックしたらサーバ側に選択しているチケットの番号を送って、サーバ側で処理させることができないかという質問をいただいたので、View customize pluginで試行錯誤してみました。 onozaty…

jQueryの関数をフックする

jQueryオブジェクトの各関数ですが、jQuery.fnに定義されています。 なので、jQueryオブジェクトの各関数をフックしたい場合には、jQuery.fnに定義されているものを差し替えます。 たとえば、showメソッドをフックして、他の処理を入れたい場合には下記のよ…

Java7、8で入った機能で知っておいた方がよさそうなもの

Java8でコードを書くことが増えたので、Java7と8の新機能で知っておいた方がよさそうなことを、いまさらながら書き出してみます。 重要度は、自分自身が使う頻度が多かったもので判断しているので、あまりあてにならないかもしれません…たとえば、Date and T…

JavaのparallelStream

JavaのparallelStreamについて思いつくままに。 Java8から入ったStream APIで、parallelStreamを使うと簡単に並列処理が書けますが、streamとparallelStreamを使い分けるという感覚じゃなくて、並列処理を書きたい場合にparallelStreamを使うといった形で使…

社内勉強会で「30歳過ぎてもエンジニアでいるためにやったこと」というタイトルで発表しました

30歳でアウトプットを意識するようになって、エンジニアとして大きく変われたと思っているので、それについて社内勉強会で発表してきました。 30歳過ぎてもエンジニアでいるためにやったこと from onozaty www.slideshare.net 10年間これがしっかりで…

同じ条件のStreamを繰り返し作るためのビルダーを書いてみた

同じ条件のStreamを繰り返し作るためのビルダーを書いてみました。まったく使いどころが見いだせませんが、、とりあえず書いたので晒しておきます。 onozaty/streamer Streamの中間処理の流れを定義しておいて、、 Streamer<String, Integer> streamer = Streamer.create(Stri</string,>…

Redmine: チェックボックスのカスタムフィールドを2列で表示する (View customize plugin)

Redmineの複数チェックボックスで、項目を2列に並べる方法無いでしょうか。cfの1列表示化により、広大な空白が出来て見映え悪過ぎ。— y503Unavai (@y503Unavailable) 2016年8月24日 チェックボックスを2列で表示したいとのことなので、ちょっと考えてみまし…

Redmine: チケット一覧の進捗率欄に値も表示する (View customize plugin)

Blogへのコメントで、チケット一覧の進捗率で数値も表示したいといったコメントをいただきました。 View customize pluginを使って以下の様なことをしようとしていますが、うまくいきません。宜しければアドバイス頂けないでしょうか? ・やりたいこと: Redm…

Justin Bieber - Purpose World Tour (2016年8月13日@幕張メッセ)

Justin Bieber(ジャスティン・ビーバー)のライブに嫁さんと2人で参加してきました。今回の日本公演は、幕張メッセの国際展示場1~3での2日間で、初日の8月13日に参戦です。 昨年末のアメリカン・ミュージック・アワードでのパフォーマンスを見てから、ライブ…

Redmine 3.3 で"+"ボタンを有効にしながら、「新しいチケット」タブも表示する (View customize plugin)

Redmine3.3で追加された"+"ボタンはとても良いと思うのですが、「新しいチケット」タブが消えるといったところは、それなりにインパクトが大きいようです。 Redmine 3.3 で導入された"+"ボタン - Enjoy*Study だったら両方有効にすれば、、、ということで…

Redmine 3.3 で導入された"+"ボタン

Redmine 3.3新機能紹介: 作成画面へ1クリックで移動できる+ボタンが追加 | Redmine.JP Blog Redmine 3.3 で"+"ボタンが追加されて、さまざまなオブジェクトの作成が、一か所にまとまりました。 個人的には、メニューに統一感が出るのと、ニュースやバージ…

Redmine: ステータスに応じて、カスタムフィールドの表示を切り替える (View customize plugin)

How can I define to show issue_custom_field_values_1 field, when the issue_status_id is 6( Refused) · Issue #2 · onozaty/redmine-view-customize-scripts ステータスが却下になったら、カスタムフィールドを表示したいといったIssueがあがっていたの…

AnsibleでテンプレートエンジンのJinja2を使う

AnsibleではテンプレートエンジンのJinja2が使えます。 Jinja2 filters — Ansible Documentation Template Designer Documentation — Jinja2 Documentation (2.8-dev) なので、for文やjoin、mapなど使えるので、結構柔軟な記述ができたります。 単に一部のプ…

Redmine 3.3.0 リリース

Redmine 3.3.0 がリリースされましたので、いつも通りAltasにboxをあげておきました。 下記ですぐにRedmine 3.3.0が試せます。 vagrant init onozaty/redmine-3.3 vagrant up Redmine 3.3.0のCHANGELOG 日本語訳 | Redmine.JP Blog いろいろ良さそうな機能が…

Redmine: チケット作成時に処理を行う (View customize plugin)

「チケット作成時に、カスタムフィールドの値を使って他の項目の値を変えたい」といった相談をいただいたので、View customizeで書いてみました。 onozaty/redmine-view-customize - GitHub 画面をJavaScript/CSSで簡単にカスタマイズできるRedmineプラグイ…

Arduino関連リンク

回路図 Fritzing Fritzing 電子回路設計ツール Fritzing | Make. リファレンス Arduino - Reference Arduino 日本語リファレンス

デスクトップPC(Lenovo H520s)のHDDをSSDに変更

自宅のデスクトップPCでストレスを感じることが多くなってきたので、HDDからSSDに移行することにしました。 対象のPCは、Lenovo の H520s という4年くらい前に購入したPCです。 SSDは、CrucialのTLCで480GBのものを購入しました。 Crucial [Micron製Crucial…

Redmine: チケット一覧のコンテキストメニューをクリック時に処理を挟み込む (View customize plugin)

チケット一覧のコンテキストメニューからステータスを変更しようとした際に、アラートを出したいといった質問があったので調べてみました。 単にイベント差し込めばいいよねと、簡単に考えていましたが、コンテキストメニューを表示しようとしたタイミングで…

第10回redmine.tokyo勉強会にてView customize pluginについて発表してきました

第9回のLTに引き続き、View customize pluginについて発表してきました。 View customize pluginを使いこなす from onozaty 今回の発表では、View cutomizeの設定方法に関するノウハウを詰め込みました。View customizeを使おうとしている方の役に立てばと思…

GitHubのリポジトリ名変更で、元リポジトリへのアクセスはリダイレクトされる

GitHubでリポジトリ名を変えた場合、元リポジトリに対してのアクセスもちゃんとリダイレクトして新リポジトリに方に飛ばしてくれます。 なので、公開済みのリポジトリの名前を変えてしまって、各種URLが変わってしまっても、とりあえずエラーとなることはあ…

Redmine: View customize plugin の v1.1.4 をリリースしました

View customize plugin の v1.1.4 をリリースしました。 onozaty/redmine-view-customize - GitHub 画面をJavaScript/CSSで簡単にカスタマイズできるRedmineプラグインを作成しました (Redmine view customize plugin) - Enjoy*Study リリース内容 バグ修正 …

Ansibleのdefault(omit)

default(omit) を使うと、未定義の場合にその項目自体の指定が無かったことにできます。 Jinja2 filters — Ansible Documentation - name: touch files with an optional mode file: dest={{item.path}} state=touch mode={{item.mode|default(omit)}} with_…