Projects

Builds, Artifact, and Release Management Projects

The build system artifacts below may be used individually, or in concert, in most cases. The benefits of these tools is that as a set they simplify Ant-based build management. The system employs several central concepts that permeate it, simplifying build management for release engineers and software developers alike:

NGINX Installer for Ivy RoundUp for Enterprises

NGINX Installer for Ivy RoundUp for Enterprises installs and configures NGINX for use as the web server hosting RoundUp repositories. The default port for NGINX in this configuration is 37373, and NGINX is installed to /usr/local/nginx. This configuration is not supported on Windows.

Ivy RoundUp for Enterprises

Ivy RoundUp for Enterprises is a metadata repository used to construct concrete Ivy repositories. This fork of the main project brings it to Github to productize its build system and resulting output, and notably this clean-room version eliminates all the non-portable nonsense whereby the Ant build file had called out to bash, awk, subversion, find, pipes, and the like; this version solely uses Ant syntax eliminating any and all references to subversion and versions derived therefrom. The result is a repository generator that can run on any platform, including Windows and Mac. Another useful result of all this work is the capability to generate secured Ivy repositories for corporate environments demanding on-premises solutions that provide third-party artifacts that have been verified safe and secure.

Build Bootstrap

Bootstrap is a project meant to be composed within other Ant-oriented projects and whose purpose is to solely bootstrap an environment suitable for running Build Flex builds. Put another way, bootstrap sets up an environment that allows you to download and install both source and tooling to be used as and within software build systems, namely through Ivy.

See the related build-flex project.

Build Flex

Flex is an Ant-oriented build-management solution that simplifies use of Ant for individual-contributors by providing boilerplate macro-definitions in Ant, and a structured pluggable build-system. The net result is local project files that are materially empty except for extended or overridden behavior. The build-system can support not only Java-based applications, but any kind of application. The build-system uses Ivy for both resolving external third-party libraries and for intra-module build ordering. This project depends upon the build-bootstrap project.

The Build Flex system allows engineers to optionally compose a multi-project workspace from project ordinarily not built together. For instance, given A->B, where ordinarily B is separately built and provides its jar files through the IVY repository, a developer may opt to place both A and B in a single build workspace and build both. No additional work than checking them out individually is required, and the Build Flex system automatically detects the build order between projects.

Build Sample

Sample is a demo illustrating the use and integration of the build-flex build-system. It demonstrates module ordering and resolving libraries. This project depends upon the build-flex project.

Java Projects

Java Common Utilities

Java Commons provides common Java utilities that were found to be useful over the years; some convenient wrappers are provided for Internationalization and Localization, for UUID and random number generation, for natural sorting of text, for NIO ByteBuffer based streams, for URN parsing, ISO-8601 date/time handling, and time zone handling.

Javadoc for Java Commons is available.

Jarfile for Java Commons is available. [MD5|SHA1]

Java Codecs Library

Java Codecs provides facilities to encode and decode data, both binary and text, using standards-based algorithms such as base16, base32, base32hex, base64, base64url, quoted-printable, percent-encoded, and url-encoded. As this is implemented using an SPI users may freely extend the library to support additional codecs by implementing the SPI interface and providing the additional classes in their own Jar file.

Javadoc for Java Codecs is available.

Jarfile for Java Codecs is available. [MD5|SHA1]

Curriculum Vitæ

Contact Information

Robert Buck

Gmail: buck.robert.j

Personal Information

Citizenship

United States

Employment Information

Iron Mountain, Inc.

Product Owner, Bedrock; 2010-present

VeriSign, Inc.

Software Architect, Mobile Messaging; 2005-2010

The MathWorks, Inc.

Principle Engineer, MATLAB Kernel; 2001-2005

In my tenure at MathWorks I architected and implemented several works:

Object Design, Inc.

Senior Sales Engineer, Senior Software Engineer, Manager Release Engineering, Manager Porting Group; 1998-2001

As a pre-sales Consultant and Java technical expert for northeast United States and the eastern half of Canada, I handled high-profile and strategic accounts (GM, Ford, Cisco, etc).

Certifications

Certified Scrum Product Owner; 2010

Education

Boston University

Independent studies, mathematics, computer science.

Northeastern University

Bachelor of Science, Mechanical Engineering, 3.8 GPA