sq 0.55.2

sq 0.55.2 adds a pretty significant feature: User Drivers. Or, as this feature was previously known: Declarative Data Driver Definitions. Essentially, User Drivers allows you to map document data (such as a custom XML file) onto relational data.

sq 0.51.0

After yet another hiatus, sq 0.51.0 is available. This release adds basic notification functionality (Slack, HipChat). This is useful for long-running jobs. Download here.

sq 0.50.3

Back in the saddle after some downtime… sq 0.50.3 is now available. Finally there’s conditional selects (basically, the SQL WHERE clause), and a number of other improvements. Read more and download here.

sq 0.32.1

sq 0.32.1 is out. There’s a bunch of additional output formats in this release: Excel, CSV, TSV, and XML. Read more and download here.

sq 0.30.0

sq 0.30.0 is done. The major new feature is the addition of the sq inspect command, which provides metadata about the datasource (schema, tables, cols, etc). Read more and download here.

sq 0.20.1

sq 0.20.1 is now available. There’s a bunch of bug fixes, but the big new feature is cross-datasource joins (you can join an Excel spreadsheet with a MySQL DB, etc.) Read more and download here.

sq 0.11.3

sq 0.11.3 is now available. This is a bug-fix release. Read more and download here.

go-lg logger

This is exactly what the world needs, another golang logging library. Nonetheless I’ve published go-lg, a logger intended primarily for dev/trace/debug. The key points:

techo testing lib

I’ve just released techo, an Echo-based alternative to Golang’s http.httptest. The genesis was trying to write automated tests for generated (swagger-codegen) code, and how tedious and unnecessarily verbose the standard http.httptest library was. If you see the same code repeated three or more times, write a library. I will stand by that maxim through the current Go fad of “always write your own” nonsense. The value of this library is that writing tests is much cleaner and expressive with techo. Here’s how you use it:

Swagger Codegen Core Team

In my role at HPE, I’ve been doing a lot of work with Swagger, in particular using the swagger-codegen tool to generate Go clients from our REST API’s swagger document. When I first started working with codegen, the Go generator was pretty minimal (and in beta), and since then I’ve pushed several PRs to the project. I’ll now be doing that in an official capacity: I’ve been invited to be part of the Swagger Codegen Core Team, specifically to look after the Go generator. She’s in safe hands lads!

go-github auth API

I’ve been working a lot with the GitHub API of late, for the Go-based client I’m building for HPE. One of the key elements for us (and for everybody else I assume) is the GitHub auth infrastructure. So far, the go-github lib has served us well, except that, for whatever reason, the entire auth API was not implemented. From my perspective, that would have been the first thing I implemented, but that was the situation. I opened a PR for it, which was recently merged (with some modifications… specifically about pointers, I’ll make another post about that some day). Anyhoo, the good news is, you can now use go-github to perform auth against their API. Credit to the go-github lib maintainers, they did respond very quickly and in a collegiate manner, that’s how a project should be run.

elastic_email module for Drupal

I recently put together a small Drupal module that interfaces with Elastic Email, a mail relay service. That is, instead of your website sending mail via its own SMTP server, outgoing email is directed through the Elastic Email service and out onto the internet. This module provides plug n’ play integration with the Elastic Email service.

Teradata Viewpoint Rewind

Believe me, this was not an easy thing to build, especially considering we’re supporting IE6. But I’m not shy about saying that this is one of the sweetest features I’ve ever seen built in-browser (and not using any Flash nonsense). It’s ahead of its time.

PHP static global caching

I’ve dug into a little PHP/Drupal work of late… not a huge fan of this ecosystem as it currently stands. It seems there’s a lot of simple things that should be done, that just aren’t done. This is my little contribution to that: a simple PHP global static caching library.

RMI Interruptus! Or how to interrupt RMI method calls

Once upon a time, I was working on the assignment for the SCJD certification. The project was a classic client-server application, with an RMI server, and a Swing-based GUI, which you could use to book hotel rooms or some such. One of the project requirements was to provide record locking, such that only one instance of the client could edit the hotel room entry at once. Fairly standard stuff. So, when the user clicks Edit Room in the client GUI, the client makes an RMI call to acquireLock, and when that method returns, the client can then call update, and so on. But if another client already has the lock, then the acquireLock method will block until the lock becomes available. In that case, my app shows a pleasant dialog like this:

JCP Expert Group for JSR-261: WS-Addressing

My years toiling away on web services seem to be paying off: I’ve been invited to be a member of the JCP Expert Group for JSR-261 (Web Services Addressing).

Committer at Apache Software Foundation

For the best part of the last year I’ve been an active contributor to some of the Apache Commons projects (specifically Collections and Lang). I’m now an official committer at the ASF, with write access to the VCS and what not. And feel free to hit me up at my shiny new vanity email address: neilotoole@apache.org

Front page of the WSJ

OK, so WSJ is Web Services Journal and not the Wall Street Journal, but still. This was a nice little surprise: even though I left Cape Clear a few months ago to move stateside, an article I submitted to Web Services Journal just got published in their print edition. Front page and all. The checkout guy at the Borders (an American bookstore) asked me why I was buying so many copies of the magazine, and then shook my hand and told me he’d “never met an author before”. My mother is very proud.

Return to Deutschland for JAX 2002 conference

Little bit of deja-vu. It feels like I was just in Germany speaking at a conference only recently… This time I was in Frankfurt, at JAX2002 (JAX being Java Apache XML). I gave a talk on Web Services and the WSDL Design View, seemed to go down fairly well, although one of the (German) attendees told me afterwards that he had a bit of trouble with the accent. The feeling was mutual mein Freund!

Visual Studio .NET launch conference

Another trip to Germany, this time for Microsoft’s Visual Studio .NET launch event, in Karlsruhe. I gave a joint talk with my buddy Darius (from Microsoft) on Java/.NET web services interoperability. It was a bit nerve-racking, we were on stage in front of probably close to a thousand geeks, and I could barely see the audience with the kleig lights pointed down at us. I’ll tell you this much, either the Microsoft events people have way too much money on their hands, or else they just plain love to have a good time. It was quite the show. And the .NET tools are pretty decent compared to what’s available in the Java world at the moment.