{"id":234,"date":"2012-01-31T22:12:24","date_gmt":"2012-02-01T03:12:24","guid":{"rendered":"http:\/\/www.blackfrogguitars.com\/?p=234"},"modified":"2015-01-04T00:19:25","modified_gmt":"2015-01-04T00:19:25","slug":"day-2-at-the-ranch","status":"publish","type":"post","link":"https:\/\/blackfrogguitars.com\/?p=234","title":{"rendered":"Day 2 at the Ranch"},"content":{"rendered":"

So day 2 of class content has wrapped up and I am moving onto my other work and taking a moment to update this. \u00a0Today’s class felt a lot less exhausting. \u00a0It could be because I slept better last night. \u00a0However I really think the content, meals, and surprises of the day kept us energized.<\/p>\n

Today was pretty much fantastic all the way around! \u00a0Not 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-1024x768\"<\/a>dropped by as a special guest to teach Quartz. \u00a0Yes it was the chief – Aaron Hillegass. \u00a0In terms of classroom training I have to say this course really has been world class!<\/p>\n

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

\"IMG_1013-768x1024\"<\/a>Today’s hike was quite a bit longer than yesterday which was quite cool as the weather was beautiful. \u00a0It was also led by Mr. H. \u00a0We walked past several more of the scary zip-line stands and today there were people on them. \u00a0I had no idea they could move that fast – up to 60 miles an hour. \u00a0YIKES! \u00a0Many of these lines cross the big stream and are several feet up. \u00a0Check out the pictures. \u00a0I was told on the hike that the folks here pride themselves on having one of the best zip courses in the world. \u00a0It is a truly a sight to behold.<\/p>\n

 <\/p>\n

So now more about the technical parts of the day. \u00a0Again we covered a lot. \u00a0This morning was quite a bit of very low level stuff from Core Audio. \u00a0We did some real time voice effects and then later some pitch modulation. \u00a0I have always wanted to look into audio processing on the iPhone but never gotten around to it. \u00a0There 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. \u00a0Consequently the amount of boiler plate looking code to do all of this was PDU (pretty damned ugly).<\/p>\n

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

For example, some of the core text function calls require a CFDictionaryRef. \u00a0Creating it is the ugliest thing I have seen yet in iOS development.<\/p>\n

CFDictionaryRef attrs = CFDictionaryCreate(kCFAllocatorDefault,\r\n                    \u00a0(const void**)&keys,\r\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 (const void**)&values, 2,\r\n\u00a0                    &kCFTypeDictionaryKeyCallBacks,\r\n\u00a0                    &kCFTypeDictionaryValueCallBacks);<\/pre>\n

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! \u00a0As you have now seen we had to mix C, C++, and Objective-C in today’s exercises. \u00a0Yes folks malloc and free still are still in heavy use even in 2012. \u00a0I would like to see Apple improve and simplify some of this stuff though. \u00a0I’ll be anxious to see what they announce at the next WWDC.<\/p>\n

Anyway, day 2 rocked!<\/p>\n

 <\/p>\n","protected":false},"excerpt":{"rendered":"

So day 2 of class content has wrapped up and I am moving onto my other work and taking a moment to update this. \u00a0Today’s class felt a lot less exhausting. \u00a0It could be because I slept better last night. \u00a0However I really think the content, meals, and surprises of the day kept us energized. … Continue reading Day 2 at the Ranch<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,6],"tags":[13,15,34,38,52,55,58,120,127,138,141,146,186,187],"class_list":["post-234","post","type-post","status-publish","format-standard","hentry","category-development","category-ios","tag-advanced-ios-training","tag-air-print","tag-big-nerd-ranch","tag-c","tag-core-audio","tag-core-text","tag-development-2","tag-ios","tag-objective-c","tag-programming","tag-quartz","tag-screaming-eagle-adventure-park-zip-line-tour","tag-zip-line-tour","tag-zip-lining"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blackfrogguitars.com\/index.php?rest_route=\/wp\/v2\/posts\/234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blackfrogguitars.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blackfrogguitars.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blackfrogguitars.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blackfrogguitars.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=234"}],"version-history":[{"count":2,"href":"https:\/\/blackfrogguitars.com\/index.php?rest_route=\/wp\/v2\/posts\/234\/revisions"}],"predecessor-version":[{"id":362,"href":"https:\/\/blackfrogguitars.com\/index.php?rest_route=\/wp\/v2\/posts\/234\/revisions\/362"}],"wp:attachment":[{"href":"https:\/\/blackfrogguitars.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blackfrogguitars.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blackfrogguitars.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}