Archive for August, 2013

Inaugural Meeting of the Greater Philadelphia AWS User Group

We are pleased to announce the formation of the Greater Philadelphia Amazon Web Services User Group (GPAWSUG).    This user group is intended to be a collaborative community of AWS end-users sharing knowledge and real-world experience.  All are welcome, including, but not limited to devOps professionals, developers, DBA’s, big data wranglers, and IT executives.   The organizers will schedule bi-monthly presentations of interest to both AWS novices, and experts. Presentations both critical of, and favorable to, AWS products are welcome.

The group’s online home is found on Meetup.com.  Members will be given early access to event seating for future events, and can participate in the group’s online discussion forums and (at their option) mailing lists.  The group’s charter explains the grass-roots philosophy that guides the selection of presentation topics and the rules of engagement.  To summarize:  this is a private members-only group, the membership list is not to be used for marketing, and no product vendor presentations are allowed (excepting, on a limited basis, Amazon itself, as with the inaugural meeting).

Join the Group

Inaugural Meeting

The inaugural meeting of the group will be held on Thursday, September 19, 2013 from 5:45 PM to around 7:30 PM (EST) at Villanova University.  Sanjay Kotechas from Amazon Web Services will discuss how to integrate AWS’ data warehousing product, Redshift, into your solutions.

Light dinner fare (a sandwich bar) will be served.

You need not join the Meetup.com group to attend the meeting, but you must RSVP using EventBrite.

Register via EventBrite

Abstract

Amazon Redshift is a fast and powerful, fully managed, petabyte-scale data warehouse service in the cloud. With a few clicks in the AWS Management Console, customers can launch a Redshift cluster, starting with a few hundred gigabytes and scaling to a petabyte or more, for under $1,000 per terabyte per year. Continue Reading…

Clojure Closures In Java

As part of a team conversation this morning, I worked up a quick Java translation of some more-interesting-than-it-looks Clojure code. It’s a good example of how lexical closures map to objects.

The code we started out with was this:

(defn make-adder [x]
  (let [y x]
    (fn [z] (+ y z))))

(def add2 (make-adder 2))

(add2 4)

What this code does is define and return a new type of function that adds values to the constant x. In Java, it looks like this: Continue Reading…

Nicely Formatted Tabular Output in Java

Posted Aug 6 2013 by with 0 Comments

Occasionally, it’s useful to be able to print nicely formatted tables of data to a textual output stream. This is particularly the case when writing command line tools. To make the output of these tools more readable, any tables they write should have columns that line-up from row to row. The Unix tool ‘ls’ does this when it prints out long form directory listings. In this example, notice how the dates line up, even though the file size column varies in width.

drwxr-xr-x+ 1 mschaef Domain Users        0 Oct  3 09:20 docs
-rwxr-xr-x  1 mschaef Domain Users 29109013 Oct 10 13:38 file.zip
-rwxr-xr-x  1 mschaef Domain Users    77500 Oct 10 13:17 file2.zip

Continue Reading…

Announcing the Open Source Ernie Report Generator

ernie-small

KSM Technology Partners is pleased to announce the alpha release of Ernie, an open source asynchronous report generator based on the Eclipse BIRT framework.  You can find it on GitHub at https://github.com/ksmpartners/ernie.  There is also an Ernie support forum on Google Groups for the community to ask questions and offer feedback.

For developers, Ernie provides both Scala and Java APIs for:

  • building and maintaining a catalog of reusable BIRT report definitions;
  • running parameterized reports asynchronously to create jobs;
  • interrogating the status of enqueued jobs; and
  • accessing report results in PDF, CSV, or HTML format.

For integrators, Ernie provides a JEE .war implementation that can be deployed standalone, and controlled via a RESTful API. Continue Reading…