Matthew McCullough
Open Source Architect, Ambient Ideas
Matthew McCullough is an energetic 15 year veteran of enterprise software development, open source education, and co-founder of Ambient Ideas, LLC, a Denver consultancy. Matthew currently is a trainer for GitHub.com, author of the Git Master Class series for O'Reilly, speaker at over 30 national and international conferences, author of three of the top 10 DZone RefCards, and President of the Denver Open Source Users Group. His current topics of research center around project automation: build tools (Maven, Leiningen, Gradle), distributed version control (Git), Continuous Integration (Hudson) and Quality Metrics (Sonar). Matthew resides in Denver, Colorado with his beautiful wife and two young daughters, who are active in nearly every outdoor activity Colorado has to offer.
Video
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 fantamore »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 sessimore »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 changingmore »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 asmore »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 GitHmore »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 pagemore »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 innovatmore »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 downlmore »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 more »Presentations
Information Alchemy and Technical Influence
Technical influence is highly desirable. It is the vehicle by which you can take what you've learned about at NFJS and be given the chance to implement it back at your organization. One way this can be accomplished is through delivery of excellent technicmore »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 camore »Git Workshop (Bring A Laptop)
Git is a version control system you may have been hearing a bit about lately. But simply hearing more about it may not be enough to convince you of its value. Getting hands on experience is what really counts.more »Applying Git: 10 Power Tips
Git is a powerful content tracker and has gained acceptance by many forward leaning consultants and teams over the past several years. Those developers know that it offers the usual commit, branch, merge and tag in a distributed environment, and yet, onlymore »Developer Productivity Power Ups on Mac OSX
You're a talented coder and you apply many agile practices to your daily workflow. Still, you are looking for that next boost to better keep track of information, manage your open applications, make working with the terminal more productive, recall informmore »Thinking In Git
Git is an innovative version control system that is taking the development world by storm. With that innovation comes new opportunities to leverage Git for more agile and productive workflows. This presentation steps up a level of abstraction from Git synmore »Economic Games in Software Projects
The full title of this talk reveals its grand aims: Game Theory and Software Development: Explaining Brinksmanship, Irrationality, and Other Selfish Sins Once in a while, a topic, seemingly orthogonal to software development, presents a great opportunitymore »Gradle Workshop (Bring a Laptop)
Gradle. Another build tool? Come on!more »Sonar Code Metrics Workshop (Bring a Laptop)
You're serious about improving the quality of your code base, but with 10,000 lines of code, where do you start and how do you ensure the greatest ROI for the re-work your team members will perform? Sonar is an open source tool that brings together the bmore »Jenkins Continuous Integration (Bring a Laptop)
The team dynamics and agile process revolution of the last several years has taught us that continuous integration (CI) is a necessary part of a healthy agile team. Jenkins (formerly Hudson) is the idea and footprint leader in the CI space. A recent survemore »Adam Smith Builds an Application
Economics, psychology, game theory, and marketing; those fields of study imply a distinct lack of semicolons and curly braces. However, even the venerable Adam Smith, were he alive today, would recognize the applicability of those seemingly tangential commore »Build Lifecycle Craftsmanship Tools
You've heard a bit about Git, Maven 3, Gradle, Jenkins, and Sonar, but are you putting them to use? Are you maximizing what they can offer in terms of standardized project models, faster incremental compiles, automated commit-triggered builds, and rapid more »Gradle Pre-conference Workshop (Bring a Laptop)
Gradle. Another build tool? Come on!more »Matthew's NFJS Schedule
Books
Jenkins: The Definitive Guide
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
Building and Testing with Gradle
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



