Location via proxy:   
[Report a bug]   [Manage cookies]                
Welcome to nipafx.dev. On here, it's:

You. Me. Java.

Nice of you to stop by. I'm nipafx, but you can call me Nicolai 😉, a Java enthusiast with a passion for learning and sharing, online and offline. If you want to sharpen your Java skills, you've come to the right place.

Image with slug inside-java-newscast-89
JavaOne'25 Highlights - Inside Java Newscast #89#video#TODO
TODO
Image with slug implementing-gatherers
Implementing New Java Stream Operations#video#streams
Implementing a bunch of Gatherers to better understand the proposed addition to the stream API
Image with slug talk-java-action
Modern Java in Action#talk#java‑21 #virtual‑threads #pattern‑matching #records
Let's write a GitHub Crawler and let's throw in everything Java (23) has to offer
Image with slug talk-java-modules-irl
Java Modules in Real Life#talk#j_ms #migration
Advice on why, when, when not, and how to use Java modules in real life for your projects
Image with slug 26h-java
26 Hours of Java#event#conversation #community
On May 29th we'll throw a late birthday party for Java, which turned 26 a few days before. With a 26-hour live stream relay race! 🥳
Image with slug java-generics-wildcards
Java Generics III - Wildcards#video#generics
Second part of a short series on Java Generics - this one explains generics. ? extends Number - that kinda thing.
Image with slug java-generics-bounded-type-parameters
Java Generics II - Bounded Type Parameters#video#generics
Second part of a short series on Java generics - this one explains bounded type parameters. T extends Number - that kinda thing.
Image with slug build-modules
Java Modules Cheat Sheet#post#j_ms #java‑9 #java‑11
A cheat sheet for building and running Java modules from the command line with javac, jar, and java
Image with slug junit-pioneer-1-0-0
JUnit Pioneer 1.0#post#junit‑pioneer #junit‑5 #testing
Yesterday we released JUnit Pioneer 1.0 🥳 - here's a quick rundown of its features
Image with slug java-generics-basics
Java Generics I - The Basics#video#java‑basics #generics
First part of a short series on Java generics - this one explains the basics
Image with slug oliver-drotbohm-modularity
Modularity with Oliver Drotbohm#video#architecture #conversation #j_ms
Oliver and I discuss modularity in Java with a focus on the Java module system
Image with slug upgrade-from-java-8
How We Upgraded From Java 8 And Why You Can (And Should) Do It Too#video#community #migration
My two minutes of fame during the Oracle Code One 2019 keynote
Image with slug java-13-guide
Definitive Guide To Java 13#post#java‑13
A detailed guide to Java 13: text blocks, switch expressions with yield, ZGC, dynamic AppCDS archives
Image with slug java-modules-jpms-maturity-model
The JPMS Maturity Model#post#j_ms
Java's module system requires consistent support by libraries, frameworks, and tools. This maturity model classifies a project's support for the JPMS.
Image with slug immutable-collections-in-java
Immutable Collections In Java - Not Now, Not Ever#post#collections
The JDK contains immutable collections, but no type ImmutableCollection. Here's why that's so and why it won't change.
Image with slug caliz-wrapping-graal
Caliz II: Wrapping Graal AOT#video#performance #tools
Extending Caliz to create native images of Java "scripts" (single source files) with with Graal
Image with slug java-12-experiments
Java 12 Experiments (Live Stream)#video#java‑12
In my first live stream ever (yay!), we explored Java 12's API improvements
Image with slug talk-java-var
Fun With var#talk#anonymous‑classes #default‑methods #generics #lambda #java‑10 #var
A live-coding talk where I show off all you need to know about var in Java. And then some.
Image with slug java-12-switch-expression
First Contact with Switch Expressions in Java 12#video#java‑12 #switch
With Java 12, switch is no longer just a statement, but becomes an expression. Let's take a look!
Image with slug effective-java-builders
Use Builders... Cautiously - Effective Java, Item 2#video#book‑club #patterns
Why and how to avoid the builder pattern and how to make best use of it if you can't
Image with slug effective-java-static-factory-methods
Static Factory Methods - Effective Java, Item 1#video#book‑club #patterns
How to use static factory methods to overcome three shortcomings of constructors
Image with slug effective-java-kickoff
Kicking off a series on Effective Java, Third Edition#video#book‑club
Kick-off to
a YouTube series on Effective Java, Third Edition - let's find some angles Josh didn't cover
Image with slug var-java-10
First contact with var in Java 10#video#java‑10 #var
How to use var, where it works and where it doesn't (and why), and how it might impact readability
Image with slug impressions-javazone-2017
Impressions of JavaZone 2017#video#community
A few impressions of my stay at JavaZone 2017 to music from
WillRock
Image with slug junit-5-parameterized-tests-nighthacking
Parameterized Tests in JUnit 5#video#junit‑5
At JavaLand 2017, I spent 15 minutes exploring JUnit 5's (then) brand-new parameterized test feature in a NightHacking session
Image with slug spjcn-whats-taking-long
SPJCN II: What's Taking So Long?#post#java‑9 #project‑jigsaw
In the second issue of SitePoint’s Java Channel Newsletter (from September 23rd 2016) I wonder why Java 9 takes so long.
Image with slug spjcn-hello-world
SPJCN I: Hello World#post#community
In the first issue of SitePoint's Java Channel Newsletter (September 9th 2016) I babble about community and conferences.
Image with slug ultimate-guide-java-9
The Ultimate Guide To Java 9#post#java‑next #java‑9
Java 9 is coming! Besides Jigsaw it brings new language features and many new and improved APIs. Check out the ultimate guide.
Image with slug talk-comment-your-code
Comment Your &*☠# Code!#talk#agile #clean‑comments #documentation
A heartfelt rant / thoughtful talk arguing for more comments in code
Image with slug java-9-stream
Java 9 Additions To Stream#post#java‑9 #streams
Java 9 is coming! One of the many changes are new Stream methods: takeWhile, dropWhile, and ofNullable. For more fun with streams!
Image with slug jeeconf-2016
JEEConf 2016#post#community
My take on JEEConf 2016: showing the talks I liked the best, raving about the community, romanticizing Kiev, and giving some feedback. Summary: awesome!
Image with slug codefx-levels-up
CodeFX Leveled Up#post#meta
A lot of things are happening right now: I'm writing a book, I'll speak at conferences, you can hire me, and to top it off, I gave this blog a new look.
Image with slug doomed-code-review
A Doomed Code Review#post#code‑review #techniques
Code reviews should be brief, short, and focused. This is the story of how I fucked up on all those accounts and we still made it work.
Image with slug atom-on-gentoo
Building Atom On Gentoo#post#tools
See how to build Atom on Gentoo straight from the sources.
Image with slug goodbye-2015
Goodbye 2015!#post#turn‑of-the-year
2015 is over and I'm looking back.How did it go, which things worked out and which didn't. And how come I'm feeling so tired recently.
Image with slug jar-hell
JAR Hell#post#java‑basics
A list of the problems that make up JAR hell (classpath hell, dependency hell) and how they relate to development tools like Maven and OSGi.
Image with slug taxonomy-comments
A Taxonomy Of Comments#post#clean‑comments #documentation
A taxonomy of source code comments that enables further discussion about clean code and comments.
Image with slug java-stream-performance-your-ideas
Stream Performance - Your Ideas#post#java‑8 #performance #streams
Another post about stream performance - this one implements your ideas about how else to approach the topic.
Image with slug java-stream-performance
Stream Performance#post#java‑8 #performance #streams
A close look at stream performance. How do they compare to for and for-each loops oder arrays and lists. And what role plays boxing?
Image with slug interview-about-comments-on-dzone
Interview About Comments On DZone#post#clean‑comments #documentation
Matt Werner from DZone interviewed me about my stance on comments.
Image with slug project-jigsaw-on-infoq
All About Project Jigsaw On InfoQ#post#java‑next #java‑9 #project‑jigsaw
My posts about Project Jigsaw got polished and published on InfoQ.
Image with slug comment-your-fucking-code
Comment Your Fucking Code!#post#clean‑code #clean‑comments #documentation #rant
You think your code is so clean that it doesn't need comments? Then this rant is just for you!
Image with slug libfx-0-3-0
LibFX 0.3.0 Released#post#libfx
Release post for LibFX 0.3.0 including pointers to GitHub, feature descriptions, Maven coordinates and the Javadoc.
Image with slug crafted-design
Impulse: "Crafted Design"#post#architecture #impulse
Summary of the architecture described by Sandro Mancuso in his talk "Crafted Design", held at GeeCON2014.
Image with slug libfx-0-2-1
LibFX 0.2.1 Released#post#libfx
Release post for LibFX 0.2.1 including pointers to GitHub, feature descriptions, Maven coordinates and the Javadoc.
Image with slug test-collection-implementations-guava
Test Collection Implementations with Guava#post#collections #libraries #testing
Here's how to use Guava-Testlib to easily and thoroughly test your own Java collection implementations.
Image with slug android-emulator-haxm-thinkpad-t440p
Running Android Emulator With HAXM On Thinkpad T440p#post#tools
Quick guide to how to use the Android emulator with HAXM (based on VT-x) on a Thinkpad T440p.
Image with slug java-default-methods-guide
Everything You Need To Know About Default Methods#post#default‑methods #java‑8 #java‑basics
Covering literally everything there is to know about Java 8's default methods.
Image with slug hello-2015
Hello 2015!#post#turn‑of-the-year
I'm laying out my new year's resolutions for 2015.
Image with slug goodbye-2014
Goodbye 2014!#post#turn‑of-the-year
I'm taking a look at my open source contributions and blogging achievements in 2014.
Image with slug java-multiple-return-statements
Multiple Return Statements#post#clean‑code #java‑basics
An argument for using multiple return statements in a method (as opposed to adhering to the single return myth).
Image with slug libfx-0-2-0
LibFX 0.2.0 Released#post#javafx #libfx
Release post for LibFX 0.2.0 including and pointers to GitHub, Feature descriptions, Maven coordinates and the Javadoc.
Image with slug javafx-sources-in-eclipse
JavaFX Sources in Eclipse#post#tools #javafx
A quick step by step guide how to use the JavaFX sources in Eclipse by attaching them to the current JDK.
Image with slug serialize-java-optional
Serialize Optional#post#java‑8 #optional #serialization
A summary of why you can't serialize Optional and what can be done to deal with that limitation if necessary.
Image with slug java-concepts-serialization
Concepts of Serialization#post#java‑basics #serialization
A close look at serialization and a presentation of some key concepts of Java's serialization system.
Image with slug why-isnt-java-optional-serializable
Why Isn't Optional Serializable?#post#java‑next #java‑8 #optional #serialization #primitive‑classes
Discussing the reasons for not making Java 8's new type Optional serializable.
Image with slug intention-revealing-code-java-8-optional
Intention Revealing Code With Optional#post#clean‑code #java‑8 #optional
Write intention revealing code with Java 8's new type Optional and prevent most NPEs. This is not optional!
Image with slug architecture-lost-years
Impulse: "Architecture - The Lost Years"#post#architecture #impulse
Discussing the talk "Architecture - The Lost Years", which Robert C. Martin held on several occasions.
Image with slug codefx-up-and-running
CodeFX Up And Running#post#meta
Summer recess is officially over and shit got done! Finally, CodeFX is ready to take on the world.
Image with slug libfx-0-1-1
LibFX 0.1.1 Released#post#javafx #libfx
Release post for LibFX 0.1.1 including a description of Nestings and pointers to GitHub, Maven and the Javadoc.
Image with slug foobar
Foobar#post#meta #techniques #record‑args
A foobar post that may accidentally teach you about Foobar.