JUnit Pioneer Presentation Slides
Recently I've been using JUnit Pioneer, which is an extension library for JUnit Jupiter (JUnit 5). It contains a lot of useful annotations that are really easy to use in tests, for example to generate...
View ArticleUnit Testing Presentation Slides
We have several interns this summer, and each Friday we're doing a short presentation on a different software development topic. On June 28, I gave a short presentation on (unit) testing. This...
View ArticleSDKMAN! Presentation Slides
I’ve been using SDKMAN! for a while now to make it really easy to install and manage multiple versions of various SDKs like Java, Kotlin, Groovy, and so on. I recently gave a mini-talk on SDKMAN! and...
View ArticleJUnit 5 Presentation Slides
I just gave a short presentation on JUnit 5 at my company, Fortitude Technologies. JUnit 5 adds a bunch of useful features for developer testing such as parameterized tests, a more flexible extension...
View ArticleProcess API Improvements in JDK9
Over the past year, several microservices I have worked on responded to specific events and then executed native OS processes, for example launching custom C++ applications, Python scripts, etc. In...
View ArticleAWS Lambda Presentation Slides
A few months ago I gave a short presentation to my company on AWS Lambda, which is basically a "serverless" framework that lets you deploy and run code in Amazon's cloud without managing, provisioning,...
View ArticleTesting HTTP Clients Using Spark, Revisited
In a previous post I described the very small sparkjava-testing library I created to make it really simple to test HTTP client code using the Spark micro-framework. It is basically one simple JUnit 4...
View ArticleTesting HTTP Clients Using the Spark Micro Framework
Testing HTTP client code can be a hassle. Your tests either need to run against a live HTTP server, or you somehow need to figure out how to send mock requests which is generally not easy in most...
View ArticleTowards More Functional Java - Digging into Nested Data Structures
In the last post we saw an example that used a generator combined with a filter to find the first available port in a specific range. It returned an Optional to model the case when no open ports are...
View ArticleTowards More Functional Java using Generators and Filters
Last time we saw how to use lambdas as predicates, and specifically how to use them with the Java 8 Collection#removeIf method in order to remove elements from a map based on the predicate. In this...
View ArticleTowards More Functional Java using Lambdas as Predicates
Previously I showed an example that transformed a map of query parameters into a SOLR search string. The pre-Java 8 code used a traditional for loop with a conditional and used a StringBuilder to...
View ArticleTowards more functional Java using Streams and Lambdas
In the last post I showed how the Java 7 try-with-resources feature reduces boilerplate code, but probably more importantly how it removes errors related to unclosed resources, thereby eliminating an...
View ArticleReduce Java boilerplate using try-with-resources
Java 8 has been out for a while, and Java 7 has been out even longer. But even so, many people still unfortunately are not taking advantage of some of the new features, many of which make reading and...
View ArticleSlides for RESTful Web Services with Jersey presentation
While teaching a course on web development which included Ruby on Rails and Java segments, we used Jersey to expose a simple web services which the Rails application consumed. I put together a...
View ArticleSlides for httpie presentation
I've used cURL for a long time but I can never seem to remember all the various flags and settings. Recently I came across httpie which is a simple command line tool for accessing HTTP resources. Here...
View ArticleBuilding a Distributed Lock Revisited: Using Curator's InterProcessMutex
Last summer I wrote a series of blogs introducing Apache ZooKeeper, which is a distributed coordination service used in many open source projects like Hadoop, HBase, and Storm to manage clusters of...
View ArticleHandling Big Data with HBase Part 6: Wrap-up
This is the sixth and final blog in an introduction to Apache HBase. In the fifth part, we learned the basics of schema design in HBase and several techniques you can use to make scanning and filtering...
View ArticleHandling Big Data with HBase Part 5: Data Modeling (or, Life without SQL)
This is the fifth of a series of blogs introducing Apache HBase. In the fourth part, we saw the basics of using the Java API to interact with HBase to create tables, retrieve data by row key, and do...
View ArticleHandling Big Data with HBase Part 4: The Java API
This is the fourth of an introductory series of blogs on Apache HBase. In the third part, we saw a high level view of HBase architecture . In this part, we'll use the HBase Java API to create tables,...
View ArticleHandling Big Data with HBase Part 3: Architecture Overview
This is the third blog in a series of introductory blogs on Apache HBase. In the second part, we saw how to interact with HBase via the shell. In this part, we'll look at the HBase architecture from a...
View Article