iPhone Bootcamp Day 3
Today is Day 3 of the iPhone bootcamp at Big Nerd Ranch, taught by Joe Conway.See here for a list of each day's blog entries.MediaToday we started off learning how to play audio and video files by...
View ArticleiPhone Bootcamp Day 4
Today is Day 4 of the iPhone bootcamp at Big Nerd Ranch, taught by Joe Conway. Unfortunately that means we are closer to the end than to the beginning.See here for a list of each day's blog...
View ArticleiPhone Bootcamp Day 5
Today is Day 5 — the final day — of the iPhone bootcamp at Big Nerd Ranch, taught by Joe Conway. The last day of Big Nerd Ranch bootcamps are half-days so you have breakfast, have class until lunch,...
View ArticleiPhone Bootcamp Summary
So, after having actually written a blog entry covering each day of the iPhone bootcamp at Big Nerd Ranch, I thought a more broad summary would be in order. (That, and I'm sitting in the airport...
View ArticleGroovy + Spring = Groovier Spring
If you're into Groovy and Spring, check out my two-part series on IBM developerWorks on using Groovy together with Spring's dynamic language support for potentially more flexible (and interesting)...
View ArticleMissing aop 'target' packages in Spring 3.0.0.M1 zip file
Today I was mucking around with the Spring 3.0.0.M1 source release I downloaded as a ZIP file. I wanted to simply get the sample PetClinic up and running and be able to load Spring as a project in...
View ArticleRunning VisualVM on a 32-bit Macbook Pro
If you want/need to run VisualVM on a 32-bit Macbook Pro you'll need to do a couple of things. First, download and install Soy Latte, using these instructions - this gets you a Java 6 JDK/JRE on your...
View ArticleThinking Matters
Aside from the fact that Oracle's Java Problem contains all kinds of factual and other errors (see the comments on the post) this sentence caught my eye in particular when referring to Java being...
View ArticleGroovification
Last week I tweeted about groovification, which is defined thusly:groovification. noun. the process of converting java source code into groovy source code (usually done to make development more fun)On...
View ArticleSorting Collections in Hibernate Using SQL in @OrderBy
When you have collections of associated objects in domain objects, you generally want to specify some kind of default sort order. For example, suppose I have domain objects Timeline and Event: .code {...
View ArticleSeveral Must Have Firebug-Related Firefox Extensions
Last week while doing the usual (web development stuff) I discovered a few Firefox extensions I didn't even know I was missing until I found them by accident. The "accident" happened while adding...
View ArticleCan Java Be Saved?
Java and EvolutionThe Java language has been around for a pretty long time, and in my view is now a stagnant language. I don't consider it dead because I believe it will be around for probably decades...
View ArticleHibernate Performance Tuning Part 1 Article Published
I've just published an article in the November 2009 NFJS Magazine on Hibernate Performance Tuning. Here's the abstract:Many developers treat Hibernate like a "black box" and assume it will simply "Do...
View ArticleMaking Cobertura Reports Show Groovy Code with Maven
A recent project started out life as an all-Java project that used Maven as the build tool. Initially we used Atlassian Clover to measure unit test coverage. Clover is a great product for Java code,...
View ArticleHibernate Performance Tuning Part 2 Article Published
I've just published the second article of a two-part series in the December 2009 NFJS Magazine on Hibernate Performance Tuning. Here's the abstract:Tuning performance in Hibernate applications is all...
View ArticleMissing the each_line method in FakeFS version 0.2.1? Add it!
Recently we have been using the excellent FakeFS (fake filesystem) gem in some specs to test code that reads and writes files on the filesystem. We are using the latest release version of this gem...
View ArticleRack Lightning Talk
I gave a short lightning talk on Rack tonight at the NovaRUG. It's on slideshare here. Rack is really cool because it makes creating modular functionality really easy. For example, if you want to have...
View ArticleDatabase-Backed Refreshable Beans with Groovy and Spring 3
In 2009 I published a two-part series of articles on IBM developerWorks entitled GroovierSpring. The articles showed how Spring supports implementing beans in Groovy whose behavior can be changed at...
View ArticleIntroducing RJava
You’ve no doubt heard about JRuby, which lets you run Ruby code on the JVM. This is nice, but wouldn’t it be nicer if you could write Java code on a Ruby VM? This would let you take advantage of the...
View ArticleCoffeeScript Slides
Today is the Near Infinity Spring Conference. We have one conference in the fall and one in the spring for all our developers as well as invited guests. Today I gave a presentation on CoffeeScript and...
View ArticleWhat's in JDK 7 Lightning Talk Slides
Yesterday at the Near Infinity 2011 Spring Conference I gave a talk on CoffeeScript (see here) and a very short lightning talk on what exactly is in JDK 7. You can find the slides for the JDK 7 talk...
View ArticleHadoop Presentation at NOVA/DC Java Users Group
Last Thursday (on Cinco de Mayo) I gave a presentation on Hadoop and Hive at the Nova/DC Java Users Group. As several people asked about getting the slides, I've shared them here on Slideshare. I also...
View ArticleDistributed Coordination With ZooKeeper Part 1: Introduction
This is the first in a series of blogs that introduce Apache ZooKeeper. This blog provides an introduction to ZooKeeper and its core concepts and use cases. In later blogs you will test drive...
View ArticleDistributed Coordination With ZooKeeper Part 2: Test Drive
This is the second in a series of blogs that introduce Apache ZooKeeper. In the first blog, you got an introduction to ZooKeeper and its core concepts. In this blog, you'll take a brief test drive of...
View ArticleDistributed Coordination With ZooKeeper Part 3: Group Membership Example
This is the third in a series of blogs that introduce Apache ZooKeeper. In the second blog, you took a test drive of ZooKeeper using its command-line shell. In this blog, we'll re-implement the group...
View ArticleDistributed Coordination With ZooKeeper Part 4: Architecture from 30,000 Feet
This is the fourth in a series of blogs that introduce Apache ZooKeeper. In the third blog, you implemented a group membership example using the ZooKeeper Java API. In this blog, we'll get an overview...
View ArticleDistributed Coordination With ZooKeeper Part 5: Building a Distributed Lock
This is the fifth in a series of blogs that introduce Apache ZooKeeper. In the fourth blog, you saw a high-level view of ZooKeeper's architecture and data consistency guarantees. In this blog, we'll...
View ArticleDistributed Coordination With ZooKeeper Part 6: Wrapping Up
This is the sixth (and last) in a series of blogs that introduce Apache ZooKeeper. In the fifth blog, we implemented a distributed lock, dealing with the issues of partial failure due to connection...
View ArticleHandling Big Data with HBase Part 1: Introduction
This is the first in a series of blogs that will introduce Apache HBase. This blog provides a brief introduction to HBase. In later blogs you will see how the the HBase shell can be used for quick and...
View ArticleHandling Big Data with HBase Part 2: First Steps
This is the second in a series of blogs that introduce Apache HBase. In the first blog, we introduced HBase at a high level. In this part, we'll see how to interact with HBase via its command line...
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 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 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 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 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 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 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 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 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 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 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 - 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 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 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 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 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 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 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 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 ArticleJUnit 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 Article