My boys are now programmers… Proud Dad

With summer coming (and now here) I wanted something to keep the boy’s brains working. Knowing it will take a lot to keep them from video games, the pool, and general tomfoolery I wanted to get them each a programming book that would engross them and keep them going well into the summer.

With Noah (having just finished 5th grade and a huge fan of Minecraft) the decision was easy. My favorite technical book publisher, the Pragmatic Bookshelf, had recently put out a book that teaches Java programming with a focus on Minecraft. I bought him, “Learn to Program with Minecraft Plugins: Create Flying Creepers and Flaming Cows in Java“. I knew he would love it and figured I’d enjoy reading it too. 😉

Deciding what to buy Zach was a tougher decision. Zach just finished 3rd grade and is much different than Noah. He’s not really into video games. He’s an unique / strange / awesome combination of bookworm and athlete. He absolutely loves reading and sports. Considering how much he likes reading, I wanted to get him something that would really be fun to read, and didn’t have to be read in front of a computer.

I decided on something from my second favorite tech book publisher, the people behind the Head First series. Their books do an amazing job of teaching all kinds of highly technical subjects (e.g., Java, C#, Physics, etc.). I got Zach a new edition of a book I read probably 10 years ago, Head First HTML and CSS.

So now having had their books for a couple days, Zach keeps showing me “websites” he’s built and Noah is becoming a cmd-line guru and learning Java. I’m proud of these boys and can’t wait to see what they’ve done by the end of the summer.

Noah and Zach showing off their new programming books
Noah and Zach showing off their new programming books
Noah the Java guy
Noah is busy at work learning Java and having fun!

Book Review: Murach’s Java Programming

I was contacted by the people at Murach Books inquiring if I would like to start reviewing their books. Being a geek, and an avid tech reader, of course I said yes. This will be my first review, and it’s my favorite language, so I was excited with what they sent….

Murach’s Java Programming 4th Edition

This book is great for people with some programming experience, that are new to Java. Murach goes from the basics of Java, starting with primitive datatypes, through the fundamentals of Object-Oriented programming, and into GUI programming (probably could have left this out). That was the first 17 chapters. This is no short book, definitely not a quick read.

Starting with chapter 18, the book moves past beginner-level topics. Murach gives a solid review of data access in Java. First with reading and writing from/to XML files. Then their is a chapter on database theory and working with the Derby database. From there you learn how to use JDBC to read and write to a database. The book wraps up by tackling Threading.

The only negative thing I can say about this book as I’m confused as to why the author chose to use the Netbeans IDE as his IDE of choice. Murach does a great job covering the ins and outs of working with Netbeans. Going as deep as how to use the debugger to step through code and fix bugs. I just feel that Eclipse / STS have such a massive share of the market the reader would be better served learning Eclipse alongside Java.

If you only plan to buy one book on Java SE, this is the book for you. Murach’s Java Programming covers it all.

How to install Java 7 on Mac OS X (Lion)

Mac users are still waiting for Oracle / Apple to produce a simple download for using Java SE 7 on Macs running OS X. Until they provide one, the only safe way to use the Java 7 JDK is to build it from source. Luckily, Oracle provides a good wiki page that documents the process (and Arun Gupta has a useful post that helped with some of the gaps).

Check the Prerequisites:

OS X 10.7, Xcode 4.1 (easiest, and possibly the only way to get this, is from the Mac App Store), and Java for Mac OS X 10.7 Update 1

or

OS X 10.6.8, Xcode 3.2.6 (download from Apple Developer Portal), and Java for Mac OS X 10.6 Update 6

Mercurial version control tool. I installed this easily with the use of the awesome Mac package installer Homebrew. Simply run: “brew install hg”. (I didn’t make a dime for that blatant Homebrew plug 😉 )

Simple Process:

  1. Follow the Oracle instructions to “Get the Code”
  2. Run the Build command (part of the command is hidden by the box on the screen and if you don’t look close you may miss when copying / pasting) 😉

For all practical purposes, that’s it. If you want to install JDK 7 in the “Apple recommended” location follow steps 3-5 on the Oracle wiki page.

Just for grins I’m pasting the output of my build command. Pretty nice for a “wimpy” Mac Book Air. 😉

>>>Finished making images @ Sat Dec 17 00:09:17 CST 2011 ...
########################################################################
##### Leaving jdk for target(s) sanity all docs images             #####
########################################################################
##### Build time 00:20:58 jdk for target(s) sanity all docs images #####
########################################################################

## Build times ##########
Target all_product_build
Start 2011-12-16 23:34:39
End   2011-12-17 00:09:17
00:02:45 corba
00:08:18 hotspot
00:00:52 jaxp
00:00:55 jaxws
00:20:58 jdk
00:00:49 langtools
00:34:38 TOTAL
#########################

erik@eriks-mba ~/dev/sdks/macosx-port
$ build/macosx-universal/j2sdk-image/1.7.0.jdk/Contents/Home/bin/java -version
openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.7.0-internal-erik_2011_12_16_23_34-b00)
OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode)

If you have any questions about these steps just leave a comment below or ping me on twitter (@erikweibust).

Dallas TechFest 2011 Recap…

Another year, another great Dallas TechFest event…

There were some great new speakers, Ken Sipe was my favorite with his Gradle talks.  The story on Gradle is one worth listening to, regardless, of how ingrained Ant or Maven are at your organization.  The best place to go if you’re new to Gradle is their website. The Gradle documentation is great.  Java “developer-types” can start with this Gradle tutorial geared to building Java projects.

There were also some great returning speakers, I especially liked Arun Gupta, with his Java EE Workshop.  A few years ago, I wouldn’t consider starting a new enterprise Java application without the Spring stack.  To be honest, in my mind, Spring == Enterprise Java.  However, after seeing Arun’s talks the last two years, Oracle and the Java EE 6 stack have rapidly closed the gap on SpringSource, and now just might have a story to tell in the enterprise development space.  I highly recommend you follow Arun on Twitter, or subscribe to his blog.  The content is outstanding and the current Java EE story is really impressive.

This was my first year as a presenter at TechFest, after having been involved as an organizer the past 4 years.  I gave a double session on The Grails Framework.  The attendees were great.  Lots of great participation and an all-around good time was had by all. Don’t forget to tell Tim that you want him to use the website we built next year.  😉

Grails Workshop - Dallas TechFest 2011
Lastly, I need to add there was numerous great speakers / sessions I didn’t get to see.  Craig Walls, author of Spring in Action (required reading for all Spring developers) and lead on Spring Socialgave two talks in the same slot I was speaking in so I unfortunately missed his talks.  Next year I need to make sure I’m not speaking when Craig is.I guess it’s now time to start getting ready for Dallas TechFest 2012…

Dallas TechFest 2009 Recap…

After close to 6 months of planning, Dallas TechFest 2009 is… “in the books.”  Planning and running an all-day tech conference with 40 presentations, 400+ (ok 401) attendees, X great sponsors, and Java and .NET developers is totally exhausting.  I took Saturday off to relax and now I’m back on my laptop writing this review.

First, let me say, that it wasn’t just Java and .NET.  That was just a joke because it’s always those two languages pitted against each other.  Dallas TechFest was 8 technology tracks: Java, .NET, Flex, ColdFustion, Ruby, and Silverlight, and in those tracks other technologies were mixed in.  Our great speakers present at user groups and conferences all over the country, they’ve also authored a number of books.

Anyhow, thanks to everyone that helped out.  Tim Rayburn did an awesome job heading things up, and Chris Koenig was the guy that kept things moving when we were being lazy and blowing off responsibilities, and Omar Villarreal did great with sponsors.  I was especially happy to see the returning sponsors.  And lastly, I gotta thank Jonathan Campos for all his work, that was a great after party.  I look forward to helping out again next year, given the chance.

Here are some relevant links covering the event:

Modular Java with OSGi and Spring

I was lucky enough to be asked to preform a technical review of “Modular Java: Creating Flexible Applications with OSGi and Spring“.  It’s Craig Walls‘ next book and it’s being published by the Pragmatic Programmers.

Craig does a great job of making the case for modular Java development with OSGi.  He covers why we need to start thinking about more than just how we design our methods / classes and focus more on how we design reusable Java modules.

First, Craig makes the case for modular design.  Then he talks about how OSGi enables us to write modular Java applications.  He covers both the Apache Felix and Eclipse Equinox OSGi containers.  Next you are writing and deploying a HelloWorld OSGi service.  And that’s all done in the first two chapters!

Craig spends the rest of the book covering modular Java and OSGi concepts through the development of an example project, Dude Where’s my JAR.  You also throughly learn an invaluable tool for OSGi development, Pax Construct. You learn about and writing and deploying OSGi bundles, then writing, deploying and consuming OSGi services.

Once you think you know everything about OSGi, and might be thinking that it’s a bit complicated, Craig brings in the Spring Framework.  He covers Spring Dynamic Modules for OSGi (Spring-DM) which is used to eliminate all of the OSGi-specific code in the example application.  You refactor the app away from depending on the OSGi API.  You change the services to POJOs and OSGi services then inject them into other beans.

My favorite thing about this book was that I didn’t have to read 1000 pages to understand the concepts and get up and running.  Like all the Pragmatic Programmer books, you are educated, and up and running in a few 100 pages.  Read this book if you want to quickly get up-to-speed on OSGi and Spring Dynamic Modules.

I’m giving a Java FX talk…

I have volunteered to give a talk on Java FX. Why? Hmm… Let me explain…

There is this great new Java user group that started here in Dallas back in January 2008. You can read the background on the group via these email announcements

Sidenote:

Derek, if you’re listening, it sure would be nice if I could just link to a website for the group…. websites are created with this cool new technology called html… html has given us another way to communicate meetings, groups, etc…. websites sometimes work better then email lists. 😉

… sorry about that sidenote… back to my post. So this great new user group is focusing on what you can do with JVM other then run standard Java code. Another cool thing about the group is that it’s members are kind of “learning as we go” and we are “teaching others what we learn.” The concept is that somebody volunteers for a meeting, even better if the topic they volunteer for is new to them, and then try to get the group up to speed on their specific topic.

So Derek came up with the 12 month schedule. We started with Groovy, then GORM, GSP, Grails, then into some months related to JRuby. All these meetings were quickly spoken for. Cool stuff that people wanted to learn. The meeting that people were ignoring, like the plague, was Java FX. I had been thinking about taking it, but kept saying to myself… why, I’ll never need to use this. Finally, yesterday, I couldn’t take it and just volunteered for it. I’m still not sure why.

What do I know about Java FX today? Not much. I know Sun tried to get people all excited about it last year at JavaONE. I know there was very little interest, and I still haven’t seen much interest. Still, Sun is pushing it, and there might just be something in there that is interesting. So come October, I’ll be doing a talk on Java FX.

Does anybody want to give me a heads-up before I head to Google and start digging? I know there will be info on Sun’s page, but I normally want to start with an unbiased opinion of a technology. I’ll let you know what I find.

Ant vs Maven Argument…

Nope, you aren’t getting one here. I’ve argued Ant over Maven dozens of times in my life. Most recently, last night. 🙂 But, I’m not gonna start the argument again.

That said, my friend Pete has a post on his blog trying to pull me offsides again. He was the cause, last night over a few beers after our monthly Java user group meeting, of my most recent, and last, argument over Ant or Maven.

It’s just not worth the fight. I personally love Ant. It’s crazy-flexible. It can do anything. It can do anything, the way I want it done. It doesn’t force me to do things the way I don’t want to. Ant is easy to use. There is no learning curve.

Maven makes my head hurt. To get a team of developers up to speed on Maven is miserable. Ask Pete on his blog about the time he tried to push Maven on a team last year at MMA. It was ugly. Maven is a technology that makes you change everything you do. Nothing about it feels natural. It actually hurts to use Maven.

That said, I wish I was using Maven today. 😉 Kill me for saying that. It’s a love – hate with Maven. I’m at a new company and our standard tool is Ant. I just left Countrywide where they use Maven. I was forced to learn it and use it. I hated it…. Now, I miss it. 🙁

Pete, I hate you. 🙂