View int-binary.groovy
[0,1,2,29,30,31,32]
.collect { [original: it, current: (2 as int) ** it as int, sum: (0..it).collect { (2 as int) ** it as int }.sum()] }
.collect { [original: it.original, current: it.current, chex: Integer.toHexString(it.current), sum: it.sum, shex: Integer.toHexString(it.sum)] }
.each { println it }
View sample.md

以下の図をご覧になって欲しい

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXEAAAEaCAIAAABo1vBqAAAAKXRFWHRjb3B5bGVmdABHZW5lcmF0ZWQgYnkgaHR0cDovL3BsYW50dW1sLmNvbREwORwAAAE6elRYdHBsYW50dW1sAAB4nH2QX2vCMBTF3wP9DvexDiqtrDrKGOK/DWmZWPV1xHqVgE0kuSkT9uF3qwymg70Ezv3dnJyToSNpydfHQChNaPeyQlihrEu0jaowEPdgiSfjFBl7vmU5ygZn1tTtUosC8csHHqLoz/VbDd2Xe5MbCc9f7NGOlD6sHdr/+MhQIIaod5dqYnGUmtZFDg1ap4yGpNuLkwEfYcFqghUkCST9LB1kcQrr1Rha3hHh6yIHZ7zlCjvlyKqtJzboiLlsJCy9JlVjBq0KV0UHyunPEKa6UdboGjWJ+aa4LsGbofJk6LLcf4xGiqD9I7SwKa6mm2vGjEMOuvFHL422SSreT2glcTUoz46wziBX2n+KCe6lPxK/Vpkd44zTz6InkUt98PLA2VCLseFM9sysFN9mgKH0wu3EigAAJCFJREFUeNrtnQ1YVGXax7lSc137sNbd9TWXNLF01dVWl8jMj9Q1AkFRFI1V19AyNcsi0dcEc9FSAnPNTNblS4EZvgcEQhAVxRxFLF1FthxNJyPqUtSMRfN9/+zjnp1mmOHDmTNnZv7/6764DofnnPPMc9/n99zPc545uP0fRVGU9eTGJqAoikyhKIpMoSiKTKEoiiJTKIoiUyiKckGmNFy6UlNaQbOiNVy+yiikXJcpuAdS3TxpVrRv9lQwCilXZ0pVTFRNaSrtDq0qOopMociURqbgfrh16yjtDu3r3alkCkWmkClWZkphdGx5eXllZWV1dbVer6+rq2NQUmQKre1MUUe8p9FoSkpKtFotsFJbW8ugpMiU/9qPDUeq01TFQSsyH52u6vCUmIZM/82kjycuPa1W4a9EiRFTkpat

View refactoring-catalogue.md

スプラウトメソッド

  • 概要
    • 新しい機能を実現するコードを新しいメソッドとして作成して、既存コードの中で呼び出す
  • 条件
    • 新しい機能を実現するコードを追加する必要があるが、既存部分が複雑なため安易にロジックの追加ができない状態

サンプル

View document.md

JSR305 の nullness annotations についてよく勘違いをしてしまうので、まとめてみました。

最初に

JSR305 はソフトウェアのバグを検出をサポートするためのアノテーション群の提供を求めるJSRです。 ここで提案されているアノテーションとfindbugsやIntelliJなどの静的解析ツールを用いることで、ソフトウェアの品質を高められます。

ここでは JSR305 のアノテーションとして JetBrains Annottions を事例として取り扱います。なお、同等の意味を持つ findbugs アノテーションでも同じことが 言えますので、そちらを利用している方は適宜読み替えてください。

View BloodType.java
public abstract class BloodType {
public static BloodType A = new BloodType(0, "A") {};
public static BloodType B = new BloodType(1, "B") {};
public static BloodType O = new BloodType(2, "O") {};
public static BloodType AB = new BloodType(3, "AB") {};
private final int ordinal;
private final String name;
private BloodType(final int ordinal, final String name) {
this.ordinal = ordinal;
View functor.groovy
interface _0<M> {}
interface _1<M, A> extends _0<M> {}
interface _2<M, A, B> extends _1<_1<M, A>, B> {}
interface Eq<A> extends _1<Eq.M, A> {
final class M {}
boolean eq(A x, A y)
}
View foo-bar.adoc

Foo

Bar

@startuml

[Bob] --> [Alice]
View Java8Compatibility.java
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import java.util.Optional;
import javax.inject.Provider;
import org.junit.Test;
import com.google.inject.AbstractModule;
View build.gradle.kts
// プラグイン関連
// プラグインの指定(1) - buildscript 使わない
plugins {
java
kotlin("jvm")
}
// プラグインの指定(2) - buildscript 使う
buildscript {
View msg-pack.groovy
@Grab(group='org.msgpack', module='jackson-dataformat-msgpack', version='0.8.13')
import groovy.transform.*
import com.fasterxml.jackson.databind.ObjectMapper
import org.msgpack.jackson.dataformat.MessagePackFactory
@Canonical
class DepartmentUserIds {
List<Long> users
}