Day 3 at the ranch – Development is exciting again! Bezier Curves, FFTs, Matrices oh my!

Time for my end of day ponderings for day 3 at the Big Nerd Ranch.

I thought about this a bit yesterday but today it really struck me.  This class and really the power that the iOS framework provides really taps into every major point of interest I have in software development and technology.  I have not gotten to think about some of the concepts we have discussed here since my days studying electrical engineering at UC or my time at ITI working with graphics modeling and Open Inventor.  For me, this week has truly been a wonderous trip down memory lane.  I feel like I am in the Land of Oz.  Thanks to the instructors – Jonathon Blocksom, Jonathon Saggau, and Michael Ward for that trip!

While we have covered the Cocoa frameworks in a broad, sweeping sense, the Jon’s and Mikey have added interesting historical viewpoints and perspectives.  Bezier curves and surface normals take me back to fond memories struggling with the challenges of writing CAD/CAM data translation software and 3D model viewers.  Those days were really the most challenging and fun in my career and while I still have fun today, I miss some of that excitement!  I left the engineering software realm  to go into corporate IT web development many years ago.  Now with my present focus on mobile development and the driving market forces of the day I find that I may be ready to go full circle.

How and why?  Demands for advancement in software development in the corporate IT field used to drudge along – typically held back by operations and security teams not wanting to move forward so as to protect things the way they are.  With so many people now owning iPhones, iPads, and Android devices consumer expectations towards technology and above all the user experience has totally changed.  This demand will drive us in the IT field to do better! The boring days of Windows and the status quo are thankfully over!  Note this is an opinion piece and certainly I am sure some of you have a different one.  Regardless, it is my belief that the opportunity to develop really cool, engaging, and challenging apps will now be forced upon every business entity or the consumers will simply move somewhere else.  So to the simple, boring, 1980s style web forms and ugly web pages of the 90s I bid you adieu.  To developers without passion, you are going to miss out on a lot of fun!

Today one Jonathan led us thru the power of OpenGL ES and GLKit.  Yes I know OpenGL has been around for years, but most developers have never had to worry about it.  Unless you are writing video games why would you care?  Again, I can see a lot of people caring about this a whole bunch as we are forced to develop solutions that become more engrossing and more 3D.  Good grief Dominoes Pizza even has a game now.  I have been looking forward to a business need to get back to 3D development and this is it!

FFTs?  What is that?  Fast Fourier Transforms are something I haven’t looked at since my Signals and Systems class at UC.  I use pitch shifting (just one of many uses for FFTs) quite a bit as a musician but never had the chance to work on incorporating that into a development project until yesterday.  Again, it was great to have this discussion appear in the class.  The possibility and capability afforded by today’s consumer grade hardware is truly astounding!

More than anything this week I have began to appreciate the parallels at the technical level between two of my favorite things – audio (MUSIC, MUSIC, MUSIC!) and video and the power that Apple’s collection of frameworks has given today’s developer to create new things using both.  The mathematics using linear algebra, modifications with filter chaining, and low level patterns for hardware acceleration are common to both.  I haven’t been this energized about development for many, many years!  It was pretty hard to get excited about SOAP and EJBs.  Yesterday I tweeted that I had spent more time in this computer lab than any other time since college and I have truly enjoyed every minute of it.

The one sad note for the day…  It rained so unfortunately no afternoon hike and thus no new pictures.

Day 2 at the Ranch

So day 2 of class content has wrapped up and I am moving onto my other work and taking a moment to update this.  Today’s class felt a lot less exhausting.  It could be because I slept better last night.  However I really think the content, meals, and surprises of the day kept us energized.

Today was pretty much fantastic all the way around!  Not only did we cover Core Audio which is a topic that I am extremely interested in due to my musical background, but this afternoon the founder and leader of the Big Nerd Ranch IMG_1011-1024x768dropped by as a special guest to teach Quartz.  Yes it was the chief – Aaron Hillegass.  In terms of classroom training I have to say this course really has been world class!

The food today was truly OUTSTANDING for every meal.  Breakfast was as good as yesterday with that same delicious bacon that I am already looking forward to having again tomorrow.  Lunch was PASTA!!!  If you know me, you know how much I love pasta (red sauce only of course)!  It was great!  Tonight’s dinner was also fantastic and the best meal yet.  It was flank steak, some of those excellent little red potatoes, and the best asparagus I have ever eaten.  While eating, I came to realize that I have probably had more vegetables this week than any other time in my life.  I have had salad for lunch and dinner every day and vegetables on the side.  I hope my wife is reading this and is proud of my well roundedness!  🙂  For dessert tonight we had a delicious cherry cobbler thing.  I’m usually not into cobbler but this was quite good.

IMG_1013-768x1024Today’s hike was quite a bit longer than yesterday which was quite cool as the weather was beautiful.  It was also led by Mr. H.  We walked past several more of the scary zip-line stands and today there were people on them.  I had no idea they could move that fast – up to 60 miles an hour.  YIKES!  Many of these lines cross the big stream and are several feet up.  Check out the pictures.  I was told on the hike that the folks here pride themselves on having one of the best zip courses in the world.  It is a truly a sight to behold.

 

So now more about the technical parts of the day.  Again we covered a lot.  This morning was quite a bit of very low level stuff from Core Audio.  We did some real time voice effects and then later some pitch modulation.  I have always wanted to look into audio processing on the iPhone but never gotten around to it.  There are many options for getting sound out of an iOS device and the option we looked at today was about as low level as it gets since we were recording and playing back plus modifying that stream in real time.  Consequently the amount of boiler plate looking code to do all of this was PDU (pretty damned ugly).

This afternoon we focused a lot of time on Quartz, Core Text, and printing (air print).  The exercises here were great but again required a lot of low level coding.  Aaron led this section and showed us the Objective-C APIs followed by the C ones.  The C ones are what we focused on as they appear to have the most power but man are some of the interface calls ugly!

For example, some of the core text function calls require a CFDictionaryRef.  Creating it is the ugliest thing I have seen yet in iOS development.

CFDictionaryRef attrs = CFDictionaryCreate(kCFAllocatorDefault,
                     (const void**)&keys,
                     (const void**)&values, 2,
                     &kCFTypeDictionaryKeyCallBacks,
                     &kCFTypeDictionaryValueCallBacks);

I love OO development – Objective-C, Python, Groovy, and Java and thought I had pretty much seen the last of C years ago when I was writing CAD/CAM software but today proved that I was wrong!  As you have now seen we had to mix C, C++, and Objective-C in today’s exercises.  Yes folks malloc and free still are still in heavy use even in 2012.  I would like to see Apple improve and simplify some of this stuff though.  I’ll be anxious to see what they announce at the next WWDC.

Anyway, day 2 rocked!