GitHub 側に ブログを作った

はてなが https 対応する気配がないなと思い、エンジニアっぽく GitHub にブログを作りました。 chibat.github.io

OpenAPI Specification と Swagger Codegen に至るまで辿った道

OpenAPI Specification と Swagger Godegen に至るまで辿った道。CORBA, RMI, SOAP, Thrift, gRPC, REST, WADL, OpenAPI Specification などの話

ローカル開発環境で Gradle から モック SMTP サーバを起動する

小ネタです。 ローカル開発環境でメール送信のテストをしたいけど適当な SMTP サーバがない場合に、Gradle から モック SMTP サーバを起動する方法です。 build.gradle repositories {jcenter()} configurations {tools} dependencies {tools 'com.github.tn…

Spring Boot と Angular2 をタイプセーフに繋ぐ

フロントエンドの開発は、TypeScript や flow によりタイプセーフに行えるようになってきています。 そうなるとバックエンドとフロントエンドの通信もタイプセーフにしたくなってくるはずです。 Swagger を使えばそれが実現できそうです。 Swagger により An…

SpringFox の required の挙動を変える[Spring][Swagger]

SpringFox の required の挙動を変えたいと思い、試みました。 まずは、状況説明から。 RequestParam アノテーションだけ付けた場合 @GetMapping("/foo") public String foo(@RequestParam Integer id) { return "bar"; } 上記のような場合、id は必須になり…

Angular2 公式の Visual Studio Code エクステンション(Experimental Release)を使ってみた

Angular2 公式の VS Code エクステンションが開発されているようなので試してみました。 インストール 絶賛開発中ということで、Visual Studio Marketplace には公開されていません。 以下のURLから、最新の ngls.vsix をダウンロードします。 https://githu…

Gradle で git のリビジョン, ビルド日時 を プロパティファイルに入れ込む

Gradle で git のリビジョン, ビルド日時 を プロパティファイルに入れ込む方法です。 間違ってたら、ご指摘くださいmm build.gradle buildscript { repositories { jcenter() } dependencies { classpath 'org.eclipse.jgit:org.eclipse.jgit:4.5.0.20160…

Visual Studio Code + Vim extension の キーバインディングをカスタマイズする

最近、Visual Studio Code と Vim extension がいい感じになってきたなーと。 デフォルトのキーバインディングを変更したいと思い設定してみました。 英語化 キーバインディングの設定のその前に。。 VS Code は多言語対応もされており、日本語OSでは、メニ…

Java で smart cast っぽいことをやる

小ネタです。 Kotlin とかの smart cast, TypeScript とかの Type Guard のようなことを Java でできないかなと。 変数の型をチェックしたら、自動でキャストされているみたいなやつです。 普通に書くと if (pet instanceof Bird) { ((Bird)pet).fly(); } el…

Java で if 式っぽいことをやる

Java で if 式っぽいことができないかなーと思い考えてみました。 Java で if 式っぽい事をやってみた。これ、キャストなしで、できないかなー。 #教えて pic.twitter.com/EqUh8wes8F— トモフミ (@tomofummy) 2016年4月17日 キャストをなくすには、1個 stati…

初心にかえって Socket クラス で HTTP Hello, World

最近あまりブログ書くネタもなく。 4月1日ということで、初心にかえって Java の Socket クラスで HTTP Hello, World. import java.io.BufferedOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.ServerSocket; impo…

Google Play Music で新しい曲を聴く

たまには技術ネタじゃない記事を。 play.google.com Google Play Music で定額課金して音楽を聴いてます。 初期の特典として月額780円を課金しています。現在だと980円ですかね。 3,500万曲聴き放題です。 気に入っております。 Google Play Music のサービ…

REST API をタイプセーフに呼び出す(Spring Boot + Swagger Code Generator)

はじめに REST API をタイプセーフに呼び出したいのです。 その実現のため WADLとかを追いかけてたんですが、Swagger は完全にノーマークでした。 WADLは、実質終わっているような。 昨年(2015年11月)、Microsoft, Google, IBM などにより Open API Initiati…

React + TypeScript の Examples 作ったので誰かレビューしてw

React の Example 達を TypeScript で書き直してみるという試みをしていました。 コードは、以下です。 github.com github page で動作が確認できます。 React + TypeScript Examples TypeScript が、Version 1.6 で React の JSX に対応しました。どんなも…

TypeScript を Gradle からコンパイルする

サーバサイドは Java、クライアントサイドは TypeScript で書いてて、TypeScript のコンパイルも Gradle でやってました。 (こういうパターンは他の人はどうビルドしてるんでしょう?ちなみにJS系のビルドツールは使ったことがありません) で以前以下のエ…

Mithril 本の TypeScript のコードを いぢってみた

なんと Mithril 本が出ていました。凄い。 Mithril は、JavaScript のフレームワークです。 TypeScript のコードを見ていて型宣言に _mithril が使われていたのですが、アンスコで始まっているということはプライベート的な意味合いなので使わないほうが良い…

続・Java と TypeScript をタイプセーフにツナグ

前回のエントリの続きといった感じです。 自分は、今のところ Webアプリは、サーバサイド Java、クライアントサイド TypeScript で作りたいと思っています。 実際 TypeScript を利用していて、タイプセーフになってないと思う部分がありました。 サーバから…

Java と TypeScript をタイプセーフにツナグ

サーバサイドを Java、クライアントを TypeScript で作った場合、タイプセーフに通信できないかという試みです。 考えられる選択肢としましては、 Thrift とか、いっそサーバサイド Scala, クライアント Scala.js にするっていうのもあるとは思います。 今回…

Java8ベースの Webフレームワークを作ってみた - Java7 EOLを迎えて -

Java7 も本日、EOLを迎えました。 ということで、Java8ベースの Selva という Webフレームワークを作ってみました。 github bintray(jcenter) Overview まずは、最小の コード例 package io.github.chibat.selva.example; import io.github.chibat.selva.App…

Java の template engine の Rythm を試す

Java の template engine で Rythm っていうのがあるんです。 HTMLのテンプレートに限らず、色々な用途でも使えそうです。 Rythm Template Enginerythmengine.org 試してみました。 まずは、Java 。 mainメソッドを持った Model クラスです。 package app; i…

WADLを読み込んで REST Client になる TypeScript のソースコードを吐き出すツールを作ってみた

wadl2ts というWADLを読み込んで REST Client になる TypeScript のソースコードを吐き出すツールを作ってみました。 というか作り始めようとしました。簡単なサンプルレベルが動いたので記事にしようかと。ソースは github に上げています。 wadl2ts wadl2t…

Thrift で client: TypeScript, server: Java

「Thrift いいよー」みたいな話が聞こえてきて、調べてました。 なんか聞いたことあるなと思ったら、Hive の stack trace でよく見かけたわーと思い Hive でも利用されていることを知りました。 Thrift って何かというと wikipedia からの引用だと Apache Th…

WADL(Web Application Description Language)を利用した Web API の作成

最近、'API'っていうと、RESTでJSONをレスポンスするような事を指してる人が多いと思います。 しかし、呼び出し側のコードも提供せず、'API'を名乗るのは如何なものかと思うんですよね。 SOAPやRMIやCORBAとかは、APIといってもいいかもしれないけど。 REST…

bootstrap の tooltip を最前面に表示する

小ネタ。 bootstrap の tooltip が最前面に表示されず、tooltipの全体が表示されないことがありました。 HTMLの場合は、 <a href="#" data-toggle="tooltip" data-container="body" title="first tooltip"> hover over me </a> JSの場合は、 $('your element').tooltip({ container: 'body' }) こんな感じで、'body'を指定すると最前面に表示され…

bootstrap の popover でスタイルを指定する。

小ネタ。 bootstrap の popoverを使っていて、親要素のスタイルを引き継いでしまい、意図しない感じになる場合があった。 この場合、明示的にスタイルを指定する必要がある。 .popover-title { font-weight: normal; } .popover-content { font-weight: norm…

Spring の RestTemplate のプロキシ設定

Spring に RestTemplateという便利なRESTクライアントがあるんですが、呼び出すAPIサーバ毎にプロキシサーバを変えたいと思いまして。 システムプロパティいぢらずに済ませたい。ということでコードは、以下の感じです。 import java.net.InetSocketAddress;…

TypeScript と eclipse と Gradle と私

先日に引き続き、Gradle から TypeScript のコンパイルができないかなと考えていたところ、以下の2つのGradleプラグインがありました。 https://github.com/jzarnikov/gradle-typescript-plugin https://github.com/sothmann/typescript-gradle-plugin 試し…

gradle eclipse で、 TypeScript のプラグインを設定する

eclipse + Gradle で開発しているJava Web アプリに、TypeScriptを導入してみたいと思いまして、まずgradleでTypeScriptプラグインの設定ファイルを吐き出すよう試みました。 以下の2つのファイルを用意します(node.js, TypeScript, eclipeのTypeScriptプラ…

Nashorn(Java8のJavaScriptエンジン)でシェルスクリプト

Java SE 8 からバンドルされる JavaScript エンジンが Rhino から Nashorn に変わります。 そこで シェルスクリプトから Nashorn を試してみました。 準備 以下のように jdk に含まれる jjs のシンボリックリンクを作成しておきます。 ln -si /usr/local/jav…

Spring MVC でのレスポンスのキャッシュ制御 #spadc13

Spring Framework Advent Calendar 2013 - Adventar 9日目です。 [Spring Advent Calendar 2013 6日目] Spring MVC + Bean Validationでフォームの未入力フィールドをnullにする #spadc13 URL URL2013-12-05 09:28:32 via Tweet Button @making 自分が凄く欲…