Matthew McCullough
Open Source Architect, Ambient Ideas
Blog
Git and GitHub Support in JetBrains YouTrack
Posted Tuesday, November 22, 2011
I recently had the chance to get a demo of JetBrains products’ Git integration and to meet some of the JetBrains development team in person at Øredev in Malmö, Sweden. I love seeing things integrate better with the GitHub API. It really is fantastmore »Git at the NHJUG
Posted Saturday, July 23, 2011
NHJUG I had the wonderful opportunity of being sponsored by No Fluff, Just Stuff Symposiums to speak at the New Hampshire JUG in Portsmouth on Tuesday. It was a lively crowd of 20 or so persons hosted by the excellent Ted Pennings, Matt Merrill, NHJUG, more »OSCON gets Git
Posted Wednesday, June 1, 2011
I’m honored to have been accepted to co-present a Git workshop with Tim Berglund at OSCON 2011. It’ll be my first time at OSCON, and being the open source advocate that I am, I’m nothing short of thrilled to sit and attend a few sessiomore »Git hits the Road: Sweden, Poland, Germany, Austria, and Switzerland
Posted Sunday, May 8, 2011
In the whirlwind last five weeks, I’ve taken Git on the road to five countries for Git and GitHub workshops and presentations. It has been a blast to bring a tool that I’m so excited about to folks that at first are skeptical about changing more »Game Theory & Software Development
Posted Monday, April 18, 2011
This Summer I’ll be debuting a new talk at NFJS (and offering it a bit later at other conferences) that weaves together the combination of Game Theory and Software Development. Some of you have been asking for a preview of the resources I used as more »Viewing Branch Tracking Info in Git
Posted Tuesday, March 8, 2011
Many students and colleagues have asked me how to view the branch tracking information in Git. There are a minimum of three answers, each giving more verbose information. I’ve demonstrated each in the following gist at GitHumore »Git at Canoo in Basel, Switzerland
Posted Tuesday, March 8, 2011
Ben Franklin Octocat and I are pleased to announce that I’ll be giving one and possibly even two days of Git training at the Canoo offices in Basel, Switzerland in May. There is some room for public registrants, so take a quick look at the page more »Git & GitHub everywhere: JFokus and around Stockholm, Sweden
Posted Tuesday, February 15, 2011
Mattias Karlsson, the ever-professional helmsman for the JFokus conference, had an at-length discussion with me about Git and his conference at the grand Devoxx show in Antwerp, Belgium this past November. We arrived at a plan to bring Git, the innovatimore »O’Reilly Git Master Class Videos Launched
Posted Tuesday, February 15, 2011
Five Hours of Complete Git Training via Video I have the privilege of announcing that the videos that Tim Berglund and I recorded in a Denver film studio just a brief while ago are now for sale at the O’Reilly online store. These 5 hours of downlomore »Git Filter-Branch Examples
Posted Friday, December 31, 2010
Have you ever looked at the powerful git filter-branch command? It offers, amongst many features, the ability to maintain history while re-writing the tree to a subset of its past self. A common use case is to prune out a large and unnecessary folder omore »Presentations
iPad/iPhone Seminar - Part I
You're adept at Java. You've got a solid grasp of that ecosystem. But you keep hearing about iPhone this, iPad that.more »Cryptography 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 »Hadoop Workshop
Moore's law has finally hit the wall and CPU speeds have actually decreased in the last few years. The industry is reacting with hardware with an ever-growing number of cores and software that can leverage "grids" of distributed, often commodity, computinmore »iPad/iPhone Seminar - Part II
Workshop part II will focus on debugging. First, we will revisit deployment to iPad / iPhone devices, cover common application debugging techniques, writing unit tests, and debugging tools. We will also include time for you to ask questions and work thrmore »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 »iPad/iPhone Seminar - Part III
Workshop part III will focus on design. The iPad isn't simply a large iPhone. The technology is pretty much the same, but a quick look at some of the new apps and you will see how cool this new device and software platform is.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 successfumore »Migrating to Maven 3.0
Explore what's new on the cutting edge release of Maven, version 3.0. We'll explore the performance improvements, features that make debugging Maven issues easier, and changes to POMs that may require modifications to your build, but will result in more more »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 UberConf-supplied 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.
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. Cryptography 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 cryptography.
Moore's law has finally hit the wall and CPU speeds have actually decreased in the last few years. The industry is reacting with hardware with an ever-growing number of cores and software that can leverage "grids" of distributed, often commodity, computing resources. But how is a traditional Java developer supposed to easily take advantage of this revolution? The answer is the Apache Hadoop family of projects. Hadoop is a suite of Open Source APIs at the forefront of this grid computing revolution and is considered the absolute gold standard for the divide-and-conquer model of distributed problem crunching. The well-travelled Apache Hadoop framework is curently being leveraged in production by prominent names such as Yahoo, IBM, Amazon, Adobe, AOL, Facebook and Hulu just to name a few.
In this session, you'll start by learning the vocabulary unique to the distributed computing space. Next, we'll discover how to shape a problem and processing to fit the Hadoop MapReduce framework. We'll then examine the incredible auto-replicating, redundant and self-healing HDFS filesystem. Finally, we'll fire up several Hadoop nodes and watch our calculation process get devoured live by our Hadoop grid. At this talk's conclusion, you'll feel equipped to take on any massive data set and processing your employer can throw at you with absolute ease.
Workshop part II will focus on debugging. First, we will revisit deployment to iPad / iPhone devices, cover common application debugging techniques, writing unit tests, and debugging tools. We will also include time for you to ask questions and work through any issues you are having.
You'll will walk away with a complete understanding of the iPad ecosystem, including the coding, testing, deployment and web mashup processes. You'll be equipped to participate and even initiate your team's next iPad enabled application design and coding efforts.
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).
Workshop part III will focus on design. The iPad isn't simply a large iPhone. The technology is pretty much the same, but a quick look at some of the new apps and you will see how cool this new device and software platform is. In this session, we will talk about Apple's Human Interface Guidelines and what's new on the iPad platform. We will also provide more time for you to ask questions and work through any issues you may be having.
This session will provide a better understanding of how you should design your iPad apps. We will also point you to the resources which will help you design great apps.
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.
Explore what's new on the cutting edge release of Maven, version 3.0. We'll explore the performance improvements, features that make debugging Maven issues easier, and changes to POMs that may require modifications to your build, but will result in more determinate build outputs.
Maven 3.0 has undergone major refactorings, and correspondingly, a battery of backwards compatibility tests to ensure a smooth transition from Maven 2.0. These refactorings prepare Maven for the next several years of development, including the separation of the POM file language from from the POM in-memory processor, which is already leading to Groovy, Ruby and YAML based POM file parsers.
Books
by John Ferguson Smart
-
Streamline software development with Jenkins, the popular Java-based open source tool that has revolutionized the way teams think about Continuous Integration (CI). This complete guide shows you how to automate your build, integration, release, and deployment processes with Jenkins—and demonstrates how CI can save you time, money, and many headaches.
Ideal for developers, software architects, and project managers, Jenkins: The Definitive Guide is both a CI tutorial and a comprehensive Jenkins reference. Through its wealth of best practices and real-world tips, you'll discover how easy it is to set up a CI service with Jenkins.
- Learn how to install, configure, and secure your Jenkins server
- Organize and monitor general-purpose build jobs
- Integrate automated tests to verify builds, and set up code quality reporting
- Establish effective team notification strategies and techniques
- Configure build pipelines, parameterized jobs, matrix builds, and other advanced jobs
- Manage a farm of Jenkins servers to run distributed builds
- Implement automated deployment and continuous delivery
-
Streamline software development with Jenkins, the popular Java-based open source tool that has revolutionized the way teams think about Continuous Integration (CI). This complete guide shows you how to automate your build, integration, release, and deployment processes with Jenkins—and demonstrates how CI can save you time, money, and many headaches.
Ideal for developers, software architects, and project managers, Jenkins: The Definitive Guide is both a CI tutorial and a comprehensive Jenkins reference. Through its wealth of best practices and real-world tips, you'll discover how easy it is to set up a CI service with Jenkins.
- Learn how to install, configure, and secure your Jenkins server
- Organize and monitor general-purpose build jobs
- Integrate automated tests to verify builds, and set up code quality reporting
- Establish effective team notification strategies and techniques
- Configure build pipelines, parameterized jobs, matrix builds, and other advanced jobs
- Manage a farm of Jenkins servers to run distributed builds
- Implement automated deployment and continuous delivery
by Tim Berglund and Matthew McCullough
-
Build and test software written in Java and many other languages with Gradle, the open source project automation tool that’s getting a lot of attention. This concise introduction provides numerous code examples to help you explore Gradle, both as a build tool and as a complete solution for automating the compilation, test, and release process of simple and enterprise-level applications.
Discover how Gradle improves on the best ideas of Ant, Maven, and other build tools, with standards for developers who want them and lots of flexibility for those who prefer less structure.
- Use Gradle with Groovy, Clojure, Scala, and languages beyond the JVM, such as Flex and C
- Get started building a simple Java program using Gradle's command line tooling and a small build script
- Learn how to configure and construct tasks, Gradle's fundamental unit of build activity
- Take advantage of Gradle's integration with Ant
- Use Gradle to integrate with or transition from Maven, and to build software more cleanly
- Perform application unit and integration tests using JUnit, TestNG, Spock, and Geb
-
Build and test software written in Java and many other languages with Gradle, the open source project automation tool that’s getting a lot of attention. This concise introduction provides numerous code examples to help you explore Gradle, both as a build tool and as a complete solution for automating the compilation, test, and release process of simple and enterprise-level applications.
Discover how Gradle improves on the best ideas of Ant, Maven, and other build tools, with standards for developers who want them and lots of flexibility for those who prefer less structure.
- Use Gradle with Groovy, Clojure, Scala, and languages beyond the JVM, such as Flex and C
- Get started building a simple Java program using Gradle's command line tooling and a small build script
- Learn how to configure and construct tasks, Gradle's fundamental unit of build activity
- Take advantage of Gradle's integration with Ant
- Use Gradle to integrate with or transition from Maven, and to build software more cleanly
- Perform application unit and integration tests using JUnit, TestNG, Spock, and Geb



