Matthew McCullough

Open Source Architect, Ambient Ideas

Matthew McCullough is an energetic 12 year veteran of enterprise software development, open source education, and co-founder of Ambient Ideas, LLC, a Denver consultancy. Matthew currently is a member of the JCP, reviewer for technology publishers including O'Reilly, author of the DZone Maven RefCard, and President of the Denver Open Source Users Group. His experience includes successful J2EE, SOA, and Web Service implementations for real estate, financial management, and telecommunications firms, and several published open source libraries.

Matthew jumps at opportunities to evangelize and educate teams on the benefits of open source. His current interests are Cloud Computing, Maven, iPhone, Distributed Version Control, and OSS Tools.

Matthew resides in Denver with his beautiful wife and baby daughter, who all are active in nearly every outdoor activity Colorado offers.

Blog

Presenting at the Raleigh-Durham No Fluff Just Stuff Symposium

Posted Sunday, August 29, 2010

North Carolina This week, I made a four day journey to the very forested state of North Carolina. Joey knew a Coloradoan was coming and turned on the statewide AC to bring it down to a comfortable 72 degrees Fahrenheit when I landed. The food was great, more »

Rich Web Experience – Florida in December

Posted Monday, August 23, 2010

I’m excited to be presenting at the Rich Web Experience this December. It’ll be a great show, but the venue location simply adds to the magnetism. Who can resist beaches and Florida in Decembe more »

Git Bash Prompt

Posted Wednesday, August 18, 2010

I’ve recently been asked about my Bash prompt (derived from a conglomerate of similar OSS solutions) that shows off the current Git branch and the status in the prompt. Here is my version for both Mac and Unix. gist: 48058 Windows (Cygwin) Show Gi more »

Git at the Atlanta JUG

Posted Tuesday, August 17, 2010

Today, I’m excited to be presenting Git (my current favorite topic) to the Atlanta JUG (AJUG) on behalf of the No Fluff Just Stuff Symposium Series. Gunnar Hillert has been most welcoming, and Pratik Patel has been a great promoter of the talk. T more »

Encryption on the Java Virtual Machine (JVM): Necessary and Easy

Posted Saturday, August 14, 2010

The Bad News of Data Breaches The news keeps pouring in day after day and week after week of significant company-damaging data breaches. No wonder; Only 23% of companies surveyed in a recent poll indicated that data encryption was even a priority. We s more »

IBM Podcast: Andy Glover interviews Matthew McCullough about Git

Posted Thursday, August 12, 2010

Andy Glover recently interviewed me for his new series of IBM podcasts. I was able to share about 20 minutes of my experience with and passion for the Git version control system with his audience. It was an exciting opportunit more »

Presenting in Europe this Fall

Posted Monday, August 9, 2010

I’m excited to announce that I’m presenting several informative talks in Europe and Scandinavia this Fall. First up is JavaZone in Oslo, Norway. I can’t believe this classy and large of a show is put on by a user group (in a sports a more »

Presenting at No Fluff Just Stuff, Des Moines

Posted Friday, July 30, 2010

I love the NFJS stop in Des Moines. It competes for the title of “Friendliest” stop on the NFJS tour. It also has a plethora of smart, energetic folks looking to remain on the cutting edg more »

iPhone 4: Excessive nightly 3G Data Usage while on WiFi

Posted Wednesday, July 21, 2010

With my new iPhone 4, I thought “I’ll just switch to a 200MB data plan” since I mostly use WiFi and have rarely had a month of greater than 150MB data usage. What a mistake. With no apps running in the background, Push turned off and N more »
Read More Blog Entries »

Presentations

Git Going with Distributed Version Control

Many development shops have made the leap from RCS, Perforce, ClearCase, PVCS, CVS, BitKeeper or SourceSafe to the modern Subversion (SVN) version control system. But why not take the next massive stride in productivity and get on board with Git, a distri more »

Cloud Computing Boot Camp on the Google App Engine

Cloud this, cloud that. It's all we are hearing about these days. And whether buzz-worthy or not, you need to get in-the-know so that you can talk effectively about how this could fit into the application strategy on your next project. more »

Encryption on the JVM: Boot Camp

Does your application transmit customer information? Are there fields of sensitive customer data stored in your DB? Can your application be used on insecure networks? more »

Information Alchemy through Remarkable Presentations

Developers are looking for venues to present at these days for the education of the community and betterment of their career. The goal may be to present at a conference, user group, or just a private company. Learn the techniques of the best presenters i more »

Git Source Code Control Workshop

You've heard about Git, Mercurial, Bazaar and the Distributed Version Control System revolution. In this deeply hands on session, we'll load Git on participants laptops, build repositories and share out pieces of work. We'll explore the optimized agile more »

Git Advanced

Now that Git has been in the wild for several years, leading edge developers and projects are considering it their primary source code control tool of choice. Distributed version control systems have so much to offer, but are you using Git and its DVCS ca more »

iBeans: The Simplest Service Integrations You've Ever Implemented

No app is an island nowadays and your bleeding edge Java & JavaScript apps demand that you integrate with Facebook, Amazon, Gmail, Google Search, Twitter or S3 just to name a few. Make your next integration project a breeze by leveraging the successfu more »

Encryption on the JVM: Advanced Techniques

Now that you have the basics of encryption under your belt, we'll advance to talking about where it is sensible and performant to add this level of security to your application. Symmetric key and public key encryption have various levels of processing ov more »

iPad / iPhone Workshop

You're adept at Java. You've got a solid grasp of that ecosystem. But you keep hearing about iPhone this, iPad that. more »

Git Going with Distributed Version Control

close

Matthew McCullough By Matthew McCullough

Many development shops have made the leap from RCS, Perforce, ClearCase, PVCS, CVS, BitKeeper or SourceSafe to the modern Subversion (SVN) version control system. But why not take the next massive stride in productivity and get on board with Git, a distributed version control system (DVCS). Jump ahead of the masses staying on Subversion, and increase your team's productivity, debugging effectiveness, flexibility in cutting releases, and repository redundancy at $0 cost. Understand how distributed version control systems are game-changers and pick up the lingo that will become standard in the next few years.



In this talk, we discuss the team changes that liberate you from the central server, but still conform to the corporate expectation that there's a central master repository. You'll get a cheat sheet for Git, and a trail-map from someone who's actually experienced the Subversion to Git transition.

Lastly, we'll even expose how you can leverage 75% of Git's features against a Subversion repository without ever telling your bosses you are using it. Be forewarned that they may start to wonder why you are so much more effective in your checkins than other members of your team.

Prerequisite: Basic understanding of Subversion or similar version control system


Cloud Computing Boot Camp on the Google App Engine

close

Matthew McCullough By Matthew McCullough

Cloud this, cloud that. It's all we are hearing about these days. And whether buzz-worthy or not, you need to get in-the-know so that you can talk effectively about how this could fit into the application strategy on your next project. Leverage 100s of hours of research distilled into a 90 minute presentation. Get bootstrapped with what cloud computing is and isn't, who the players are in this space, what unique features each offers, and then how Google is completely changing the game.



We'll navigate through a some demos of building and deploying an app live to the Google App Engine, and talk about the excellent tooling that the framework provides. Lastly, we'll put a reality check on cloud computing, and GAE specifically, looking at pitfalls and gotchas. You'll walk away having a thorough knowledge of cloud computing basics and the ability to build a practice app for GAE.


Encryption on the JVM: Boot Camp

close

Matthew McCullough By Matthew McCullough

Does your application transmit customer information? Are there fields of sensitive customer data stored in your DB? Can your application be used on insecure networks? If so, you need a working knowledge of encryption and how to leverage Open Source APIs and libraries to make securing your data as easy as possible. Encryption is quickly becoming a developer's new frontier of responsibility in many data-centric applications.



In today's data-sensitive and news-sensationalizing world, don't become the next headline by an inadvertent release of private customer or company data. Secure your persisted, transmitted and in-memory data and learn the terminology you'll need to navigate the ecosystem of symmetric and public/private key encryption.


Information Alchemy through Remarkable Presentations

close

Matthew McCullough By Matthew McCullough

Developers are looking for venues to present at these days for the education of the community and betterment of their career. The goal may be to present at a conference, user group, or just a private company. Learn the techniques of the best presenters in the industry through a dissection of what it takes to efficiently construct an engaging talk that offers solid insights and is memorable for the audience.



This talk provides tips, techniques, examples, and references: In short, a complete boot camp for building presentations that will capture the hearts and minds of an audience. This talk is largely tool-agnostic and you can use these techniques in Apple Keynote, Microsoft PowerPoint, or OpenOffice Impress. Specific points covered include stock photos, mind maps, presentation techniques, topic selection and diagramming.


Git Source Code Control Workshop

close

Matthew McCullough By Matthew McCullough

You've heard about Git, Mercurial, Bazaar and the Distributed Version Control System revolution. In this deeply hands on session, we'll load Git on participants laptops, build repositories and share out pieces of work. We'll explore the optimized agile workflows that Git facilitates, building branches for each story card and merging with our team mates, even when a network isn't present. We'll clone an existing Subversion repository, work on it in a Git fashion, and push just the "good changes" back to Subversion, showcasing the incredibly polished interoperability of this radical source code control tool.



This will be a hands on session and requires attendees to bring a laptop (Windows, Linux, or Mac).


Git Advanced

close

Matthew McCullough By Matthew McCullough

Now that Git has been in the wild for several years, leading edge developers and projects are considering it their primary source code control tool of choice. Distributed version control systems have so much to offer, but are you using Git and its DVCS capabilities to their fullest? This talk assumes a working basic knowledge of Git and, quicly progressing from from there, explores some of the intermediate to advanced uses of this unique version control tool. We'll examine, in a hands on fashion, some of the workflows used by the Git masters in their daily coding routines.



We'll examine setting up tracking branches with the automatic options, as well as through manual editing of the .git/config file. Next, we'll add multiple remotes and perform a trial merge and rebase of a feature contribution by a team mate. Additionally, we 'll explore the ASCII-art visualizations for branch origins and merge status, repository maintenance, running automated test suites with bisect, submodules and searching for where a constant was introduced in history with git-grep. This talk will give you prowess in many of the more powerful commands Git has to offer and leave you with a greater mastery of the Git toolset.

Prerequisite: Git Going with Distributed Version Control, or similar Git working knowledge


iBeans: The Simplest Service Integrations You've Ever Implemented

close

Matthew McCullough By Matthew McCullough

No app is an island nowadays and your bleeding edge Java & JavaScript apps demand that you integrate with Facebook, Amazon, Gmail, Google Search, Twitter or S3 just to name a few. Make your next integration project a breeze by leveraging the successful work of others from the iBeans Central repository, or if necessary, simply author a new iBean and contribute it back for the benefit of all.

iBeans a new ultra-light service integration framework written in Java, but targeting both Java and JavaScript. It provides a centralized mechanism for community contributions of beans to the most commonly used services such as Twitter, Flickr, Gmail and more.



iBeans encourages the higher level programming at the level of integrating such web based services without worrying about the underlying protocols or communication mechanisms. Services are beautifully abstracted in the form of JavaBeans, with JavaScript capabilities added like a cherry on top of a confectionary masterpiece.

This talk wil demonstrate iBeans usage in a real world Java application and explore how easy it is to write and contribute a new bean to iBeans Central for the benefit of the community in true Open Source style.


Encryption on the JVM: Advanced Techniques

close

Matthew McCullough By Matthew McCullough

Now that you have the basics of encryption under your belt, we'll advance to talking about where it is sensible and performant to add this level of security to your application. Symmetric key and public key encryption have various levels of processing overhead, so you can't blindly just use the "best" encryption out there. What about password hashes? Did you know they are vulnerable with our "salt"?



We'll look at the performance metrics, security strength and weaknesses of various encryption algorithms. Given today's global economy, we'll also talk about what strength keys can and cannot be used across national borders. Lastly, we'll look at protocol-wrapping encryption techniques, such as VPNs, as a solution to abstracting away this difficult area of programming into a higher level service or device. We'll end with a brief peek at quantum and elliptic curve encryption.

Prerequisite: Encryption Bootcamp on the JVM


iPad / iPhone Workshop

close

Matthew McCullough By Matthew McCullough

You're adept at Java. You've got a solid grasp of that ecosystem. But you keep hearing about iPhone this, iPad that. It worries you just a bit that you haven't yet spent the time to explore this new frontier. Cure that with a nearly Java-free intense four hour boot camp on the iPad. During this session, you'll use your iPad device to get started coding on the XCode platform, learning the Objective-C language, testing, and deploying your apps.



No previous iPad ecosystem knowledge is assumed. Matthew McCullough and Ben Ellingson will take you from the ground up in this unique coding environment. With their hands on teaching style and one-on-one assistance, you'll explore what it takes to build and deploy an application for the iPhone and iPad devices. We'll start with a simple application that you'll code from line 1 to line 200, all the while testing it in the iPad simulator. Along the way, you'll also discover the Developer signup process and digital certificate setup required to push beta applications to the device. Finally, we will integrate an iPad app with data from a JSON web service.