Code Camp Schedule Posted

The next SoCal Code Camp is coming up fast. It’s the weekend of October 15 & 16 on the campus of USC. I will be giving two presentations. One talk is entitled “Groovy and Groovy++, In Case You’re Curious” and the other is an encore of my “Simplicity Appreciation 101” talk from the January Code Camp (at Cal State Fullerton). (Full descriptions below.)
Both of my presentations are on Sunday the 16th in room GFS-107.

  • 12:30-1:30 – Groovy and Groovy++, In Case You’re Curious
  • 3:00-4:00 – Simplicity Appreciation 101

For the complete Code Camp schedule, see http://www.socalcodecamp.com/schedule.aspx

Groovy and Groovy++, In Case You’re Curious

The Pragmatic Programmer, chapter one, advises us to learn a new language every year, if for no other reason than to compare it to the language(s) we use daily in order to keep our skills sharp. So, how about a whirlwind tour of Groovy? Groovy is the dynamic-language counterpart to Java (and syntactically similar to C#) that is much more succinct than Java, so it can greatly enhance productivity.
Groovy also plays nice with regular Java, mixing and matching at will, thus leveraging the vast world of existing Java libraries. In fact, it’s not unusual for a Java team to adopt Groovy slowly, using it at first for just one or two tasks, such as unit testing, or such as scripting certain malleable functions like data transformations.
In this session, there will be enough time to cover in detail the 20% of Groovy’s features that account for 80% of the productivity boost, and then just enough time to give a taste of what the remaining features are and can do. Finally, time and interest permitting, I could either cover a bit of Grails, the web-development framework based on Groovy (i.e. “Groovy on Rails” a la Ruby on Rails); or, I could talk a bit about Groovy++, which is a newer, more declarative (less dynamic) version of Groovy that is gaining popularity.

Simplicity Appreciation 101

Complexity is insidious. It creeps in and takes hold and doesn’t let go. Time and again, we see major undertakings fail due to overwhelming complexity. That’s why proponents of Agile methodologies all tout the virtues of simplicity. “Do the simplest thing that works.” “YAGNI.” “KISS it!”
Can simplicity be dissected and described? In many ways, simplicity is ethereal and personal, gleaming only in the eye of the beholder. But, yes, it can be broken down and viewed with an objective eye. In this presentation, we’ll explore dozens of examples of simplicity from the realms of software development, business enterprises, and life, in general. We’ll look at specific cases of simplifications as well as tools and techniques recommended for achieving simplicity.
Our starting point will be ten observations about simplicity by an MIT professor named John Maeda. In his book, “The Laws of Simplicity,” he describes how simplicity relates to size, time, context, emotions, trust, and more. These revelations alone provide a solid foundation for making better decisions to achieve simplicity, but, time permitting, we’ll also consider the nuanced wisdom of Einstein, Pascal, Churchill, and others.