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.
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.