End of Line blog
Thoughts on software development, by Adam Ruka
Home
About
Archive
RSS
All articles
2024
Running a single JMH benchmark with Gradle
September 21
Graal Truffle tutorial part 15 – exceptions
August 31
Jilt 1.6 supports Functional Builders
June 22
Graal Truffle tutorial part 14 – classes 3: inheritance, super
May 26
Jilt version 1.5 released!
March 25
Graal Truffle tutorial part 13 – classes 2: fields, this, constructors
February 29
New versions of Jilt released
January 28
2023
Graal Truffle tutorial part 12 – classes 1: methods, new
September 23
History and future of Infrastructure as Code
May 13
Graal Truffle tutorial part 11 – strings, static method calls
March 31
You don't need math for programming, you need formal reasoning
January 31
2022
Graal Truffle tutorial part 10 – arrays, read-only properties
December 27
Big Tech uses neither Agile nor Waterfall
October 31
Graal Truffle tutorial part 9 – performance benchmarking
September 30
Software engineer career levels
August 15
Graal Truffle tutorial part 8 – conditionals, loops, control flow
June 30
CDK tips, part 7 – CI/CD for CDK applications
May 31
Graal Truffle tutorial part 7 – function definitions
April 30
2021
My perspective on the CDK opinions from the "AWS FM" podcast
December 31
Graal Truffle tutorial part 6 – static function calls
November 15
CDK tips, part 6 – speeding up CDK application development
October 09
Graal Truffle tutorial part 5 – global variables
June 30
Implementing OneFlow on GitHub, BitBucket and GitLab
May 31
Graal Truffle tutorial part 4 – parsing, and the TruffleLanguage class
March 21
CDK tips, part 5 – have a Stack instance per deployed stack
February 10
Graal Truffle tutorial part 3 – specializations with Truffle DSL, TypeSystem
January 05
2020
CDK tips, part 4 – how to migrate from CloudFormation to CDK
December 01
Graal Truffle tutorial part 2 – introduction to specializations
November 16
CDK tips, part 3 – how to unblock cross-stack references
October 19
Graal Truffle tutorial part 1 – setup, Nodes, CallTarget
September 24
CDK tips, part 2 – how to contribute to the CDK
August 20
Graal Truffle tutorial part 0 – what is Truffle?
July 22
CDK tips, part 1 – how to use local CDK commands
June 22
Software project environments
May 31
Improve your tests with Specnaz
March 15
Why do Java static final fields have default values?
January 31
2019
Most important principle in software development: shorten the feedback loop
December 30
Specnaz 1.5 released!
November 30
Real-life Test-Driven Development: fixing a reported bug
October 30
Specnaz 1.4.1 released!
September 08
'End of Line' gets a new look!
August 24
Emoji – how do they work?
April 13
Spring best practices
January 13
2018
Evolving public APIs based on Type-Safe Builders
November 17
Migrating 'End of Line' blog from Rails to NodeJS and Metalsmith
September 16
Specnaz 1.4 released!
July 30
Jilt 1.1 released
May 06
Specnaz 1.3 released!
March 28
2017
Specnaz 1.2 released!
December 31
Specnaz 1.1 released!
July 31
The Type-Safe Builder pattern in Java, and the Jilt library
June 30
The expat's guide to moving to Spain
May 31
OneFlow – a Git branching model and workflow
April 30
Life update – job and location change (2nd edition)
March 31
Specnaz – my Java testing library
January 30
2016
'End of Line' blog 2016 year in review
December 30
Unit, acceptance or functional? Demystifying the test types – Part 4
November 30
Unit, acceptance or functional? Demystifying the test types – Part 3
August 31
Unit, acceptance or functional? Demystifying the test types – Part 2
August 01
Unit, acceptance or functional? Demystifying the test types – Part 1
July 21
Optimizing development with Docker
May 16
An Angular dev's first experiences with React
February 29
Recreating the code from the 'GOOS' book example project
January 31
Testing with Doubles, or why Mocks are Stupid – Part 4
January 16
2015
Testing with Doubles, or why Mocks are Stupid – Part 3
December 30
A blog article on blogging (celebrating one year of 'End of Line')
December 08
Testing with Doubles, or why Mocks are Stupid – Part 2
November 30
Testing with Doubles, or why Mocks are Stupid – Part 1
November 10
Bash initialization files
October 13
Life update – job and location change
September 26
ORM entities should be an implementation detail
August 03
Follow-up to 'GitFlow considered harmful'
June 20
GitFlow considered harmful
May 03
The philosophy behind Oxyjen
April 12
'No more loops' – benchmarking the new Java 8 Stream API
January 14
2014
My primer on Docker
December 13
Lessons from leading a conference workshop – Warsjawa 2014
November 07
I like checked exceptions
September 10
Introduction
September 09