Salt Lake Software Symposium
July 17 - 18, 2009 - Salt Lake City, UT
View the event details here ».
Matthew McCullough
Head of Training, GitHub
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 VP of Training at 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 (Gradle), distributed version control (Git, GitHub), Continuous Integration (Jenkins, Travis) 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.
Presentations
Open Source Debugging Tools
Open Source is not just a suite of libraries you consume within your application, but now reaches into the space of tools to help you troubleshoot and improve your applications.
This session will quickly survey a wide range of tools across the Java, Networking, Filesystem, SOAP, REST, HTML, CSS and JavaScript realms. We'll look at applications such as VisualVM, which help you analyze your heap and garbage collection cycles of both local and remote applications. Performance and load testing tools such as JMeter will expose bottlenecks, threading, and scalability concerns of everything from Java modules to Web Apps (even ones that don't use any Java).
Learn how web service tools such as SOAPui and TCPMon allow you to inspect your SOAP and REST calls at the data structure level, and how Firefox Poster lets you test web services right from the browser. And when only a raw look will do, we can always fall back on the venerable TCPDump.
This tool-centric presentation will expose developers to approaches to inspect, debug, tune and troubleshoot Java desktop apps, language-neutral web apps, and framework-neutral web services using Open Source Tools.
Mastering Maven 2.0
Maven has been on the Java build tools scene for quite a number of years, but the adoption rate in enterprises is now going through the roof. Maven can seem daunting, but this presentation will equip existing Maven users with more efficient techniques and tools to overcome the biggest perceived Maven hurdles and build issues with ease.
We'll examine tools to help you find artifacts in central repositories, manage your corporation's internal Maven artifacts with a proxy tool such as Nexus, view and override dependency graphs, dependency management and multi-module best practices, create OS specific profiles, and leverage the latest Maven plugins for the top Java IDEs.
Topping it off, we will review migration paths from Ant, and why Maven just makes sense with your company's use of the ever growing web of open source libraries. This presentation will take beginning and mid-level Maven users up to a higher level of efficiency and mastery.
iPhone Objective-C with Java Web Services
iPhone development is all the rage both in the mobile entertainment, social networking, and productivity application spaces. As a Java developer, prepare yourself to be a participant in aspects of this new breed and platform of development. Hop on board with a quick start to iPhone application coding in Objective-C and integration with some of our favorite Java web service back-ends such as RESTful Grails.
We'll build out a graphical demo application on the iPhone that depends on and responds to data from a Java web service; then we'll deploy it live to the desktop simulator, and finally, a real iPhone. This presentation will make you conversant in iPhone development procedures and able to make smart decisions about your back end Java web services ability to serve data to iPhone native client apps.
Books
by Neal Ford, Matthew McCullough, and Nathaniel Schutta
-
Presentation Patterns is the first book on presentations that categorizes and organizes the building blocks (or patterns) that you’ll need to communicate effectively using presentation tools like Keynote and PowerPoint.
Patterns are like the lower-level steps found inside recipes; they are the techniques you must master to be considered a master chef or master presenter. You can use the patterns in this book to construct your own recipes for different contexts, such as business meetings, technical demonstrations, scientific expositions, and keynotes, just to name a few.
Although there are no such things as antirecipes, this book shows you lots of antipatterns—things you should avoid doing in presentations. Modern presentation tools often encourage ineffective presentation techniques, but this book shows you how to avoid them.
Each pattern is introduced with a memorable name, a definition, and a brief explanation of motivation. Readers learn where the pattern applies, the consequences of applying it, and how to apply it. The authors also identify critical antipatterns: clichés, fallacies, and design mistakes that cause presentations to disappoint. These problems are easy to avoid—once you know how.
Presentation Patterns will help you
- Plan what you’ll say, who you’ll say it to, how long you’ll talk, and where you’ll present
- Perfectly calibrate your presentation to your audience
- Use the storyteller’s “narrative arc” to full advantage
- Strengthen your credibility—and avoid mistakes that hurt it
- Hone your message before you ever touch presentation software
- Incorporate visuals that support your message instead of hindering it
- Create highly effective “infodecks” that work when you’re not able to deliver a talk in person
- Construct slides that really communicate and avoid “Ant Fonts,” “Floodmarks,” “Alienating Artifacts,” and other errors
- Master 13 powerful techniques for delivering your presentation with power, authority, and clarity
Whether you use this book as a handy reference or read it from start to finish, it will be a revelation: an entirely new language for systematically planning, creating, and delivering more powerful presentations. You’ll quickly find it indispensable—no matter what you’re presenting, who your audiences are, or what message you’re driving home.
-
Presentation Patterns is the first book on presentations that categorizes and organizes the building blocks (or patterns) that you’ll need to communicate effectively using presentation tools like Keynote and PowerPoint.
Patterns are like the lower-level steps found inside recipes; they are the techniques you must master to be considered a master chef or master presenter. You can use the patterns in this book to construct your own recipes for different contexts, such as business meetings, technical demonstrations, scientific expositions, and keynotes, just to name a few.
Although there are no such things as antirecipes, this book shows you lots of antipatterns—things you should avoid doing in presentations. Modern presentation tools often encourage ineffective presentation techniques, but this book shows you how to avoid them.
Each pattern is introduced with a memorable name, a definition, and a brief explanation of motivation. Readers learn where the pattern applies, the consequences of applying it, and how to apply it. The authors also identify critical antipatterns: clichés, fallacies, and design mistakes that cause presentations to disappoint. These problems are easy to avoid—once you know how.
Presentation Patterns will help you
- Plan what you’ll say, who you’ll say it to, how long you’ll talk, and where you’ll present
- Perfectly calibrate your presentation to your audience
- Use the storyteller’s “narrative arc” to full advantage
- Strengthen your credibility—and avoid mistakes that hurt it
- Hone your message before you ever touch presentation software
- Incorporate visuals that support your message instead of hindering it
- Create highly effective “infodecks” that work when you’re not able to deliver a talk in person
- Construct slides that really communicate and avoid “Ant Fonts,” “Floodmarks,” “Alienating Artifacts,” and other errors
- Master 13 powerful techniques for delivering your presentation with power, authority, and clarity
Whether you use this book as a handy reference or read it from start to finish, it will be a revelation: an entirely new language for systematically planning, creating, and delivering more powerful presentations. You’ll quickly find it indispensable—no matter what you’re presenting, who your audiences are, or what message you’re driving home.
-
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
