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

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…

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

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

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プラグイ…

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…

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 日本語リファレンス

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

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

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_…

Vagrant+Ansibleで環境を配布する(Windows)

Vagrantで必要なものがインストール済みのboxを配布するにはAtlasを使うと楽ですが、外部に公開されることになるので、ものによっては適さない場合があります。 Discover Vagrant Boxes | Atlas by HashiCorp イントラネット内の共有フォルダなどにboxをおい…

Redmine: カスタムフィールドを連動させる(親の値に応じて、子を絞り込む) (View customize plugin)

カスタムフィールドを連動させられないかといった質問があったので、View customize pluginでやってみました。 onozaty/redmine-view-customize - GitHub 画面をJavaScript/CSSで簡単にカスタマイズできるRedmineプラグインを作成しました (Redmine view cus…

Redmine: プロジェクト一覧からの各プロジェクトのリンク押下時のリンク先を変える(View customize plugin)

プロジェクト一覧の各プロジェクトのリンクを押下時のリンク先は、プロジェクトの概要ページとなっていますが、ここを変更したいといった要望があったので、View customize pluginでやってみます。 onozaty/redmine-view-customize - GitHub 画面をJavaScrip…

GitのGUIクライアントSourceTreeがおすすめ

今までGUIのクライアントは使ってなかったのですが、最近SourceTreeを使い始めました。Gitの導入コストを下げるのに、GUIのものを使うのはどうかなぁと試してみたのがきっかけです。 Free Mercurial and Git client for Mac and WindowsMercurial and Git cl…

Vagrantのboxを共有する

インターネットでの共有 Vagrantの開発元でもあるHashiCorpがAtlasというサービスを提供しています。 Discover Vagrant Boxes | Atlas by HashiCorp これを使うと、Vagrantのboxをアップロードし、共有することができます。コストもかからないし、バージョン…

Ansibleで複数行を追加する(blockinfile)

lineinfile Ansibleでファイルに行を追記したり置換したりした場合、lineinfileを使うことが多いと思いますが、複数行追加したい場合だと、ちょっとやりずらいところがあります。 下記のように書くと、テキスト内に指定した行の内容がなければ末尾に追加され…

Easy Ganttを試してみた

以前見かけて試せてなかった Easy Gantt を試してみました。 Easy Ganntは、Easy Software Ltd. が提供するガントチャートのPluginで、有償版と無償版があります。 Redmine Gantt Plugin - Easy Redmine Easy Software Ltd. は、Easy Redmine として、いろい…

Redmine未読ニュース通知プラグインを試してみた

Redmineのニュースを使って、手軽に周知事項を流せないかなぁと思ったのですが、既読管理ができないため、自分が未読の情報があるのか判断しずらいです。 そこで、既読管理ができるプラグインを探したところ、ちょうど良さそうなものが見つかりました。 【Re…

CentOS7にIRCサーバ(ngIRCd) をインストールする

CentOS 7 で IRCサーバ立てようとして、今まで使ったことのあった ircd-hybrid を入れようとしたところ、yumのリポジトリから無くなってました。(たしか6の時はあったかと) ソースから入れるのも面倒なので、他にないのかなぁとさがしていたら、 ngIRCd があ…

Redmineのチケット一覧を右クリックで表示されるコンテキストメニューを調整する(View customize plugin)

redmine のチケット一覧とかに出るポップアップメニューのサブメニューが出る位置がもうちょっと賢くならないかなぁ。項目が多いのが良くないんだけど、上の方の選択メニューが選べない。または出す項目を絞りたい。どうせバージョンとステータスぐらいしか…

Redmineのカスタムフィールド:ユーザで、自分自身を選択しやすくする(View customize plugin)

担当者のプルダウンだと、「<<自分>>」といった選択肢が先頭に表示されて、自分自身の選択がしやすくなっているのですが、カスタムフィールドで書式をユーザとしたときは、同じくユーザを選択するプルダウンでも、そういった選択肢が出てきません。 ちょっと…

XML Explorer - 軽量なXMLビューア

大きなXMLファイルでも問題なく表示できそうなXMLビューアということで、下記を見つけました。 XML Explorer - Home XML Explorer is an extremely fast, lightweight XML file viewer. It can handle extremely large XML files. It has been tested on fil…