Welcome to GeekCap! This is the preview release of the GeekCap web site, so let me show you around a bit. This page is used for announcements (like this) and shows you what is new (below).

GeekCap is arranged into "Campuses", or communities if you like. Each campus presents a collection of three things for its topic area:

  • Articles: just as the name suggests, articles educate you about some topic. Articles may be hosted here at GeekCap or might be links to other sites (I have over 400 articles up on InformIT.com and I'll point you to them rather than rewrite them!)
  • Courses: courses are comprised of online classes, usually 20-30 minutes in length. The standard format is an MP4 video file that contains a slide presentation narriated by one of our instructors. Some classes are free and some cost education units, but we'll get into that later. You are free to pick and choose the classes that you want to take, courses are just a categorical grouping for you. Courses are currently on hold, hopefully I'll get back to building these shortly.
  • Learning Tracks: if there is a topic that you're interested in learning, then these learning tracks may help you do so. The purpose of a learning track is to take a subject, like Spring RESTful Web Services, and summarize a list of articles, books, web resouces, classes, and so forth into a plan that you can follow to learn that topic. Learning tracks are likewise on hold.

Feel free to look around - I'd recommend starting by exploring a campus that interests you, such as the Java Campus (mine), and see the articles, courses, and learning tracks. I welcome your feedback at steve@geekcap.com.

Although I haven't been publishing much directly on GeekCap, I have been writing. My most recent articles have been:

  • InformIT.com: I recently completed a three-part series on HBase, but be sure to check out the previous three-part series on the Play Framework.
  • JavaWorld.com: I just completed an article on Java socket programming with NIO and NIO.2. Previous to that I had a three-part series on Spring: Spring Data, Spring Integration, and Spring Batch
  • VMTurbo: I have been writing a series entitled, "Devs are from Venus, Ops are from Mars". This is a weekly column, so check it out below

And you can find all of the articles in the Java campus (link above) in the articles section. Happy Reading!

Best Regards,

Steven Haines


Devs are from Venus, Ops are from Mars, Extending Continuous Integration (CI), Pt. I (external link)

This article builds upon the Continuous Integration foundation established in the past few articles to extend Continuous Integration to perform more robust tests so that we can have more confidence in our deployment, namely it introduces automated code performance and memory tests as well as scalability testing.

Socket programming for scalable systems (external link)

This article presents an overview of Java Socket programming using Java NIO and NIO.2

HBase Data Analysis with MapReduce (external link)

HBase supports two types of read access: table scans by row key and MapReduce jobs. Table scans enable you to retrieve the exact subset of rows you are looking for, and MapReduce jobs enable you to perform analysis across a greater set of data. This article reviews HBase’s support for MapReduce and demonstrates how to create a MapReduce job to analyze 10,000 records in a table.

Devs are from Venus, Ops are from Mars: Introduction to Continuous Integration (CI), Pt. II (external link)

This article follows my introduction to Continuous Integration, looking at the functionality provided by a Continuous Integration server, what the CI process flow looks like and the business value that CI provides.

Devs are from Venus, Ops are from Mars: Introduction to Continuous Integration (CI), Pt. I (external link)

This article is a continuation of a series of articles about Test-Driven Development (TDD) and Continuous Integration (CI). The past couple articles introduced you to test-driven development and the notion of developing a comprehensive test suite for your application. The primary benefit to using the test-driven development approach is that you can deploy an application with the confidence that it is well tested and will behave as you expect it to. Furthermore, technologies like mocking frameworks make it possible to test aberrant conditions such as network and file system exceptions that might otherwise go unnoticed and take your application down in production. Finally, you can integrate the execution of your test suite into your build process and then quantify how exhaustive your test suite is by measuring your “test coverage”. In addition to introducing test-driven development and its benefits, the last article suggested that you require test coverage reports from your development teams so that you know how well tested the application is before you deploy it to the environment you’re tasked with managing. This article introduces Continuous Integration, describes its motivations, and reviews the benefits that a technical organization can derive from it.


We haven't added any courses yet, but keep your eyes open, they will be coming soon!

Learning Tracks

We haven't added any learn tracks yet, but keep your eyes open, they will be coming soon!