Day 4 at the Ranch – Zip Line Day!

Yo big nerds!  Today was the last full day of training at the Big Nerd Ranch.  We jpbZiplineonly have a half day tomorrow before starting the long drive home and consequently this will probably be my last post on the topic.

For anyone considering training for iOS, advanced iOS, Python, Ruby on Rails, OpenGL, or Android I cannot recommend this place enough!  The week has truly been amazing!  You would think after all of the hours clocked behind this computer listening to instruction on advanced iOS topics I would be tired but I am still full of energy and excitement from the week.

The people here have been great.  I have tried to meet and talk to as many fellow classmates and instructors as possible and the discussions have been fantastic.  We have a surgeon, folks from the two biggest computer companies in the world, independents and entrepreneurs, companies big and small, etc.  They hail from all over the world and have converged upon these small cabins in the middle of nowhere Georgia to share stories and learn from the masters in iOS development.

Today’s topics included mapping a live video capture stream onto an OpenGL texture map, many demos from our classmates and teachers, UIScrollBar magic, and deeper looks at Grand Central Dispatch and the NSOperationQueue.  We had another late night session tonight as well on Computer Vision.  My list of “cool” app ideas and enhancements to my current apps has been growing all week.  If only I could figure out a way to skip sleeping!

If you have read my previous posts this week you may remember my fascination in those zip lines here at our class location – Historic Banning Mills.  This afternoon we took a break from studying and several of us got to do this!  I have to admit for the last hour leading up to the departure I was feeling pretty uneasy and anxious as I didn’t know what to expect.  My nerves were getting the best of me.  Somehow I ended up being the last in our group to go down the first wire but WOW what a RUSH!  The wind and the height and the speed!!!  For our very first run we “flew” over the Snake Creek in the gorge far below.  I didn’t see it too well because I was clinging to the straps for my life but about part way thru I realized THIS IS REALLY FUN!!!

Next up we did a series of sky bridges that I actually found a bit more stressful than the high speed run.  We climbed from tree to tree across bridges of less and less material.  What the heck?  DId they run out of wood boards? Did they use IMG_1027-768x1024them all up building those massive towers?  🙂  Nope just part of the challenge.  Many times we were only walking on single cables but I have to admit it really was fun!  I even jumped up and down in the middle of one of them!

Anyway, thanks to the folks at the Big Nerd Ranch, the folks at Banning Mills and the Screaming Eagle Zip Line Tour for a truly memorable and incredible week!  I really hope I can come back for another class in the future – maybe OpenGL or some more advanced Mac development stuff…

Time to go pack up my stuff so we can leave tomorrow…

jpbZipline2

 

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!

 

Day 1 at the ranch

Day 1 –

So day one of our training is wrapping up.  Yeah there are a bunch of us still in the lab at 9:30pm after starting at 9am.  This is the very first time they have offered the advanced iOS class and consequently we have discovered several small problems with the materials but that is to be expected.  To compensate, we have not one but three excellent instructors here with us and I have to say despite the exhaustion of the long day I am learning a lot.

We took a short break around 3:30 to hike around outside.  The weather is such that I almost didn’t need a jacket which totally ROCKS since it is January.  The weather here really makes me want to move south.  In terms of ground covered, I didn’t really cover any new territory than what I saw by myself last night but it was great to get outside, enjoy the beautiful surroundings, and rest my mind.  Every time I go outside I am staring up at those zip-line cables.  I have yet to see anyone on them but man are they impressive.  Some of the stands are WAY up in the air and some are literally just a few boards wrapping a huge tree with no ladder or stairs.  It looks like it would be fun and terrifying.

IMG_1007-1024x768What about the food?  Anytime I travel anywhere I always panic about food since I have the gourmet palette of a 12 year old.  The folks that run the Banning Mills facility have been awesome for accommodating my crazy cheese-free, simple, diet.  Right off the bat, they had a salad prepared for me without cheese!  Woo-hoo!  The main course last night was some sort of stuffed chicken and mine came without the cheese sauce!  Again I was impressed but really didn’t care for it since it had the stuffing.  Today’s food however has been great starting with a very good breakfast with fresh fruit and bacon.  Lunch was chicken legs and corn on the cob both which were very good.  Dinner was something new (for me) called Souvlaki.  It was a pork loin with greek seasoning on skewers.  It was actually pretty good!  Dessert was apple crisp which I decided to try since I am being adventurous and it was good too!  All said, I am eating well and I am really thankful they have honored my strange requests.

So what did we cover today?  We started with Storyboards and in particular custom segues.  This gave me a chance to experiment with some Core Animation effects I had never seen yet.  We then moved into the core image framework and filtering.  The variety of options available in this API is impressive especially since it is new with iOS 5!  We did a nice lab with face detection.  We also applied various filters (like sepia) to any photo picked from the photo library.  I finished the lab early so was able to experiment with some other filter effects.  Note that filters can also be chained together which can give you a lot of power.

We continued with more Core Animation and then wrapped up with Core Motion and using the 3rd party Core Plot framework.  Both labs involved a lot of typing and debugging but ended up with sample apps that were quite awesome.  Yes that was a LOT of stuff to cover in one day but every part of it was cool and revealed something new that I hadn’t seen.

The lessons and labs are interspersed with some great productivity tips.  For example control->command->up and down arrow are shortcuts for flipping between your header and implementation files.  Simple tip, but I have probably used it 50 times since it came up this morning.  It is one of those conveniences that is etched in my mind now.

Though we have seen a few issues with the lab manual, they are kind of a blessing in disguise.  The best way to get deep knowledge of anything is to challenge yourself and wrestle with a problem.  These minor issues, when they have occurred,  have caused us to dig deeper.  Looking forward to another great day tomorrow!