Webサーバを作りながら学んでいる

初めに 少し素振りにScalaを書いている。 タイトル通りだが、以下の本を読みながら書いている。 Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門 まだまだ序盤だが なかなか丁寧に解説されているのと 実験ベースでゆっくり進んでいく。 最…

Byte BuddyのAdvice APIを触ってみる

はじめに 前回から色々と触ってきた Byte Buddyというライブラリですが、自分の頭の整理のために ここに簡単にまとめておく。 Byte Buddyはバイトコード操作用のライブラリがあり その中にAdviceというAPIが存在する。 このAPIでは、メソッドの先頭や最後に…

バイトコード操作でロギング処理を追加する

はじめに 前回はただフィールドを追加するだけのコードを書きました。 なんのひねりもありません。 progret.hatenadiary.com そして今回はメソッドの最初と最後にロギング処理を追加します。 今回は簡単化のため、標準出力に出力します。 今回の記事ではJava…

バイトコード操作でフィールドの追加をする

バイトコード操作を使って 本記事では、フィールドを追加してみます。 対象クラスをAfterのような形に操作してみます。 (テストではstaticな内部クラス) // Before class Some{} // After class Some{ private String foo; } Javassistでフィールドを追加…

ラムダ式、完全マスターした。

今日はここのところずっと調べていたラムダ式、およびメソッド参照について調べていましたので それをこの記事でまとめたいと思います。 まずはじめに。 ここに、テストコードを含む、ラムダ式およびその他のコードをあわせた、3種類のコードを用意した。 も…

MethodHandlesで遊ぶ

初めに 今回出てくるのはこの辺 MethodHandles (Java Platform SE 8) MethodType (Java Platform SE 8) MethodHandle (Java Platform SE 8) MethodHandles.Lookup (Java Platform SE 8) MethodHandleの朝はLookupオブジェクトを作ることから始まる。 Lookup …

無限にTODOアプリを作っていき

今回はReact+TypeScript+Spring Bootで書いてみる。 フロントエンド構成 TypeScript React Webpack Jest (一応入れたけど、習熟度が足りず画面のIFがガンガンぶっ壊れるから現状テスト書いてない) bulma (CSSフレームワーク, そういえばhack使ってみたかっ…

TypeScriptでモデルの型定義を良い感じに管理したい。

効率良くTypeScriptでドメインモデルの型定義を管理したい。 例えばここに、以下のようなツイッターのような投稿を模したモデルがあるとする。 type Post = { id: number, content: string }; ふむ。特筆すべきものはない。 ではこれをモジュールとして型だ…

curlでログインしてAPIを叩く

Spring Bootで作った認証で保護されているAPIを叩く。 ログインページに入って、セッションを確立する -c オプションでクッキーを保存する。 $ > curl -c my.cookie http://localhost:8080/login 以下みたいなクッキー(のファイル)ができるのでcatで確認 $…

Spring Security入門した

はじめに 今回の記事では以下の実装を行ったのでメモ書きとして残しておきます。 EclipseでのSpring Loadedを使ったHot Swap Thymeleaf3とSpring Securityによるフォーム認証 EclipseでのSpring Loadedを使ったHot Swap 公式に見にいくとIDEAしか書いてませ…

TypeScriptとjestでカバレッジを取る

前置き この記事は下記の記事を補足する形で書いていきます。 React + TypeScriptでjestを使ったテストをする - かずきのBlog@hatena この記事で行うのはTypeScriptのテストを行って、jestでカバレッジを取るまでです。 足回り まずはtsconfig.jsonです。と…

TypeScript環境でnycとtapeを使って、カバレッジを取るテスト環境を整える。

初めはavaを使おうと思ってたんです。 下記の説明を見たところコンパイルしてからやってね、みたいな形になっています。 github.com github.com avaはmagic-assertを使っており、jsに対してassertの表示を見やすくするための処理が入ってるはずです。 そのた…

アノテーションを体が欲している:NotNull:NotNull:NotNull

みんなだいすきアノテーション みんな大嫌いアノテーション あの手この手でアノテーション というわけでNotNullアノテーションが付けられたメソッドを バイトコード操作する話です。 NotNull制約をアノテーションだけで実現します。 似たような仕組みはCheck…

JavaFX入門した

やる気ない感じでJavaFXを軽く触ることにした。ごらんの有様だよ!!ドラッグ・アンド・ドロップしたファイル(.jar or .class)をデコンパイルします。 ドラッグ・アンド・ドロップしたファイルと同じディレクトリにdecompiledというフォルダを作成し そこに…

Spring Messaging でのWebSocketメモ

Spring MessagingでのSTOMPは以下の形で設定を行う。 これがなぜ動くのかを軽く探ってみたのでメモとして残しておく。 普通にSpringでWebsocketを使いたいならリファレンスのここ見ればよいかと。 なぜこのリファレンスにあるソースが動くのかを大まかに調べ…

Spring入門した。

遅まきながらSpringを入門した時のメモを書きます。 Spring Bootではありません。 経緯 WebScoketやりたい。 Spring使ってみよう。 Spring WebScoketあるじゃん使おう。 Spring Messagingの連携良さそう。 Stomp、SockJS?よく分かりません。(socket.ioがい…

新卒2年目のエンジニアの自分がやっている、心掛けていること

初めに こんばんは。初めましての方は初めましてかもしれません。少し新年明けて思うところがあったので書いてみます。 ネガティブな話はできるだけ避けて。まず、自分の素性を軽く説明しておきます。新卒で小さいSIerに就職しました。 今は現場に常駐して作…

Proxyの生成手法を素振りしてみる。

最初に さて、タイトルどおりなのですが 素振りするだけの記事だったりします。素振りしたライブラリはこちら Javassist cglib Byte Buddy Proxyと言えばjava.lang.reflect.Proxyですね。今回は次の2つのクラスについて、Proxyを作ってみます。 public stati…

Pluggable Annotation Processor APIでimport文を取る

APT、Pluggable Annotation Processorは皆さんお使いでしょうか。タイトルの通りですが、APTでimport文を取ってみます。gradleはとりあえずこんな感じです。 今回はAPTのProcessorを作るプロジェクトですがAPTを使います(グルグル目) 準備 apply plugin: '…

Vue.js 2.1 with TypeScript 2.1 on Payara Micro

この記事はPayara Advent Calendar 2016の21日目の記事です。この記事はPayara MicroといいつつPayara Microの話はあんまりありません。 Payara Microの細かい話は蓮沼さんが書いていらっしゃるので、そちらをご覧頂ければと思います。この記事には何ら説明…

Vue2.0 環境構築をする TypeScript + Webpack (with VSode)

Vue2.0触ろう触ろうと思って触ってなかったので触る。前にいじったPayara Microのリポジトリで動かしたいので前の記事の続きから書きます。 前提 - npmが入っていること 構成 - Vue 2.0 (2.1.3) - Webpack (1.13.3) - TypeScript (2.0.10) - ESLint (3.11.1)…

rails入れるまで(Windows)

入れる。 (コマンドの結果の幾つかはremでコメントアウトして出力に合わせて書いてます。)環境的には ・Windows10 64bit ・Ruby 2.3.1 (using rubyinstaller) Ruby入れる windows向けのバイナリを持ってくるために rubyinstallerをダウンロードRubyInstaller…

Payara MicroでJacksonを有効にする。そしてAsync Responseを使う

Javaで非同期処理書きたい。それだけです。 あと前回分かったMessageBodyWriterでMoxyが使われているのをJacksonに切り替えます。これが動かしたい。 @GET @Path("async") @Produces(MediaType.APPLICATION_JSON) public void asyncTest(@Suspended AsyncRes…

前回のブログの続き、Lombokで生成されたDTOがなぜデシリアライズできないのかを調べる

うまくJSONがデシリアライズできない、ということで 前回の記事に書いた。 Payara micro触る(楽しようとしたらハマった話) - 京都行きたい内部で取り込んでいるJacksonのバージョン的にもデシリアライズできるはずである。 なんでうまくデシリアライズでき…

Payara micro触る(楽しようとしたらハマった話)

buildはgradle 普段使ってるのはmavenなので よく分からんのでこの辺はコピペ (opengl氏の記事多め。ありがたや~)uberJarを作る方法はこちらから~。 qiita.com下記記事のソースを参考にしつつ書いていきます。 qiita.comとりあえず以下のようなソースを…

エゴグラム:161031

精神衛生ゴリゴリ削れて軒並み下がってるっぽい

エゴグラム:161026

とりあえずNP足りません

golang環境構築備忘録(windows)

アップデートしようと思い完全にいろいろ忘れてたので書く Downloads - The Go Programming Language ここからインストーラ形式をダウンロードインストール先は適当に(デフォルトから変更した場合は、GOROOTに指定する。) GOROOT/binにパスを通す。GOPATH…

JAX-RSのコードを書いた

中身としてはタイトル通りなのですが。 Java8, maven, lombokを使います。 Java8, maven ,lombok成分はあまりありません。非同期Responseでデータ返すところまでやってみます。 urlのマッピングとしてはこんな感じになってます。 (URLのマッピングは適当です…