<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>slhernandez.com</title>
 <link href="http://slhernandez.github.com/atom.xml" rel="self"/>
 <link href="http://www.slhernandez.com/"/>
 <updated>2012-05-19T16:14:33-07:00</updated>
 <id>http://www.slhernandez.com/</id>
 <author>
   <name>slhernandez.com</name>
   <email>slhernandez@gmail.com</email>
 </author>
 
 
 <entry>
   <title>Steve Jobs on building a company</title>
   <link href="http://www.slhernandez.com/2012/04/28/Steve-Jobs-building-a-company/"/>
   <updated>2012-04-28T00:00:00-07:00</updated>
   <id>http://slhernandez.com/2012/04/28/Steve-Jobs-building-a-company</id>
   <content type="html">&lt;p&gt;When Steve Job&amp;#8217;s &lt;a href='http://authors.simonandschuster.com/Walter-Isaacson/697650'&gt;biography by Walter Isaacson&lt;/a&gt; came out last year, there was one passage that really resonated with me. In the last chapter, the book concludes with some comments from Steve.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I hate it when people call themselves &amp;#8220;entrepreneurs&amp;#8221; when what they&amp;#8217;re really trying to do is launch a startup and then sell or go public, so they can cash in and move on. They&amp;#8217;re unwilling to do the work it takes to build a real company, which is the hardest work in business. That&amp;#8217;s how you really make a contribution and add to the legacy of those who went before. You build a company that will still stand for something a generation or two from now. That&amp;#8217;s what Walt Disney did, and Hewlet and Packard, and the people who built Intel. They created a company to last, not just to make money. That&amp;#8217;s what I want Apple to be.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This one passage has stuck with me ever since reading Steve&amp;#8217;s biography. And it&amp;#8217;s what makes Apple such a remarkable company. I would love to be part of company where everyone is devoted to making the best possible products. A company filled with craftsman that care and love what they build. When I come across any new startup I always judge it&amp;#8217;s founders and their goals to those final words. Does this company truely want to build great products that improve peoples lives, or are they looking for a quick way to cash out and move on to the next thing.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Personal Website Redesign</title>
   <link href="http://www.slhernandez.com/2012/03/31/site-redesign/"/>
   <updated>2012-03-31T00:00:00-07:00</updated>
   <id>http://slhernandez.com/2012/03/31/site-redesign</id>
   <content type="html">&lt;p&gt;It&amp;#8217;s been a long time since I wrote a blog post on my personal website. But since I have no readers, I think that&amp;#8217;s ok. I want to start posting again. Not that I really ever had a blog that was continually updated throughout the year. If you look at my archive, I have a whopping five blog posts. All created two years ago. That&amp;#8217;s pretty lame. But that is going to change. I want to start to chronicle my journey at this phase of my career as a web developer. Quite a bit has happened already this year and I want to use this platform to keep track of it all. So where to begin?&lt;/p&gt;

&lt;h3 id='typography'&gt;Typography&lt;/h3&gt;

&lt;p&gt;&lt;a href='http://blog.typekit.com/2011/07/05/omnes-pro-darden-studio-join-typekit/'&gt;&lt;img src='/images/omnes_pro.png' alt='Omnes Pro' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let&amp;#8217;s start with the redesign of my personal webpage. I decided to abandon the original theme I adopted a couple of years ago. That theme was someone else&amp;#8217;s design. I wanted something to call my own. So the first thing I turned my attention to was typography. I believe that just the right type can dramatically change the whole look of a site for the better. Any site that has great design has a specific font type as its center piece. The two fonts that are displayed on my website is &lt;a href='https://typekit.com/fonts/omnes-pro'&gt;Omnes Pro&lt;/a&gt; and &lt;a href='http://typekit.com/fonts/museo-slab'&gt;Museo Slab&lt;/a&gt;. Both of which are being served from &lt;a href='http://www.typekit.com'&gt;Typekit&lt;/a&gt;. I didn&amp;#8217;t run into these two fonts by accident. Nor did my great design experience and taste help me decide to select these fonts. &lt;em&gt;I am joking about my great design experience&lt;/em&gt;. Well known graphic designer &lt;a href='http://jasonsantamaria.com/about/'&gt;Jason Santa Maria&lt;/a&gt; wrote a blog post on these two fonts on typekit&amp;#8217;s blog. I thought this sans serif would be perfect for my new website. I admired the simplicity of the rounded letters and thought it made my website a little more friendly and approachable to the reader. Omnes Pro will stick around only for a little awhile. I plan to replace it soon. This website will be used for experimenting with different designs as I gain more experience in the trade.&lt;/p&gt;

&lt;h3 id='responsive_web_design'&gt;Responsive Web Design&lt;/h3&gt;

&lt;p&gt;As part of the new redesign, I wanted to make my website responsive. If you are not sure what I mean, try resizing your browsing. You will notice that this page will respond by alternating it&amp;#8217;s layout with different browser width sizes. I learned all about responsive web design through Ethan Marcotte&amp;#8217;s excellent book called &lt;a href='http://www.abookapart.com/products/responsive-web-design'&gt;Responsive Web Design&lt;/a&gt;. This small gem of a book gives you all the instruction you need to start creating responsive websites. I highly recommend the book.&lt;/p&gt;

&lt;p&gt;The colors on the site are bland and that is somewhat intentional. I don&amp;#8217;t want anything to distract from the font type that is displayed on the page. I also don&amp;#8217;t want colors to be distracting and take away any of the content of the page. Let&amp;#8217;s see if this layout and color template grows on me. I am already thinking of more redesigns. There might be a version 2.0 coming in the near future. I am still not happy with the results of this particular design. But I am sure this blog will remain simple and bare.&lt;/p&gt;

&lt;p&gt;I don&amp;#8217;t consider myself to be a web designer. Not yet at least. I don&amp;#8217;t have the training/schooling or background of a designer. I am a programmer that likes to create things with code. I am just in the transistion of including design into my own toolset as a front-end developer.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>World Wide Developer Conference 2010</title>
   <link href="http://www.slhernandez.com/2010/06/07/WWDC-2010/"/>
   <updated>2010-06-07T00:00:00-07:00</updated>
   <id>http://slhernandez.com/2010/06/07/WWDC-2010</id>
   <content type="html">&lt;div class='post_images'&gt;
	&lt;a href='/images/posts/wwdc-2.jpg' id='post_image'&gt;&lt;img src='/images/posts/wwdc-2-thumb.jpg' /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;This is my second year attending WWDC and I feel very lucky to have the resources to attend this year. Just automatically draft $75 dollars from each paycheck and you to can attend WWDC. I have always paid my own way to the event. This year&amp;#8217;s conference was jammed pack with great information for iPhone/iPad developers. WWDC is under NDA, so I am not allowed to disclose any technical information about the conference. I am not even permitted to reveal any of the sessions I&amp;#8217;ve attended the past week. So most of this blog post will cover my observations on travel, keynote, lines, and evening plans.&lt;/p&gt;
&lt;h4&gt;Pre-WWDC Pilgrimage&lt;/h4&gt;
&lt;p&gt;My day started out very early on Sunday to catch the first JetBlue flight out of Austin, TX to San Francisco. The flight had many attendees on board and just about everywhere you looked, an iPad was pulled out for entertainment. I was fortunate to have two friends attend WWDC this year. So I wasn&amp;#8217;t traveling alone on this trip. The first thing planned upon arrival was the Pre-WWDC Pilgrimage that was organized by &lt;a href='http://iphonedevelopment.blogspot.com/'&gt;Jeff LaMarche&lt;/a&gt;. Jeff did a fantastic job of organizing two large buses to transport over 150 geeks to visit the Mothership. The trip was a blast. I met a quite of few fellow iPhone/Mac developers and thoroughly enjoyed talking about all things iPhone, SDK, and Objective-C tips/tricks. The main purpose of the pilgrimage was to purchase Apple swag at the company store. I picked up a few items for me, my wife, and friends. We all then had a bite to eat afterwards and returned to San Francisco. Sunday night concluded with a meetup of friends and other iPhone devs from the Austin area at a bar called the Cheiftan. Great times were had by all. &lt;div class='post_images'&gt;
	&lt;a href='/images/posts/wwdc-1.jpg' id='post_image'&gt;&lt;img src='/images/posts/wwdc-1-thumb.jpg' /&gt;&lt;/a&gt;
&lt;/div&gt; &lt;h4&gt;Keynote&lt;/h4&gt;&lt;/p&gt;

&lt;p&gt;I decided to get in line early in order to get a good seat for the keynote. I woke up at approximately 4:20 AM and jumped in line at around 5:00 AM. By that time, there were already over a 500 attendees ahead of me in line. There were more geeks crazier than me. I couldn&amp;#8217;t fathom staying in line for the whole night. I met one gentlemen from Paris, France who was experiencing his first SteveNote. We spent the next hour discussing work, projects and possible keynote announcements. The line didn&amp;#8217;t start moving until 7:30 AM or so. I spent the next two and a half hours outside Moscone West discussing our passion for software with other developers from around the world. There were over 5200 attendees from 52 different countries. It was a diverse mix of people waiting in line for the main event. Around 7:30 AM, the line then moved forward moving all of us inside, crammed in like sardines on the second floor of Moscone West. I am not complaining. I much rather wait inside with free breakfast and juice available. I managed to get a decent seat for the keynote address considering that press, VIPs, and Apple employees were given the best seats already. I manage to find a seat right smack in the middle of room with a big screen monitors to my left and right.&lt;/p&gt;

&lt;p&gt;I got trapped by Steve Job&amp;#8217;s Reality Distortion field during the keynote. It&amp;#8217;s hard not to given the environment and surroundings. You have to experience the keynote first hand to understand. The air is electric with excitement and anticipation. Very much like the start of a rock concert. I am always surprised at the number of press that attend and the cameras that go off when Steve jumps on stage. It&amp;#8217;s literally like watching the Super Bowl with tons of camera flashes that go off in the background. Nothing Apple announced during the keynote surprised me. Everyone was expecting a brand new iPhone. What impressed me the most was the new Retina Display that now allows the iPhone 4 to boast a resolution at 326 ppi display. The current iPhone 3GS screen resolution is 480 x 320. With Retina Display, the new iPhone 4 has a resolution of 960 x 640. I am looking forward to seeing crisp and clear text that John Gruber described on his &lt;a href='http://daringfireball.net/2010/06/iphone_4'&gt;recent post&lt;/a&gt; on the new device. I am also pleased to hear that Apple&amp;#8217;s own A4 chip will make it&amp;#8217;s debut with iPhone 4. No doubt, power consumption will be improved with an additional 2 more hours of talk time on 3G. I will certainly be placing my pre-order with the Apple Online Store on Tuesday morning (June 15).&lt;/p&gt;
&lt;div class='post_images'&gt;
	&lt;a href='/images/posts/wwdc-3.jpg' id='post_image'&gt;&lt;img src='/images/posts/wwdc-3-thumb.jpg' /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;h4&gt; ADAs and Stump the Experts &lt;/h4&gt;
&lt;p&gt;The Apple Design Awards were great to watch. You are just blown away by the winners. They push the envelope and the potential of the iPhone and iPad. All apps were well deserving. &lt;a href='http://firemint.com/'&gt;Firemint&lt;/a&gt; took home two ADAs for Flight Control (iPad) and Real Racing (iPhone/iPod Touch). Both apps are fantastic and fun to play. This year&amp;#8217;s winners set the bar really high for everyone in the room. There was no controversy at all on whether an app was more deserving than the rest. All apps that won this year&amp;#8217;s ADAs are all well deserved. The highlight of the evening and one of my favorite sessions at WWDC is &lt;a href='http://en.wikipedia.org/wiki/Stump_the_Experts'&gt;Stump the Experts&lt;/a&gt;. The most notable memorable moment was when fellow attendee, &lt;a href='http://en.wikipedia.org/wiki/Bill_Atkinson'&gt;Bill Atkinson&lt;/a&gt;, told his story of HyperCard. The audience gave Bill a well deserved standing ovation for is work on the original Macintosh. It&amp;#8217;s great fun to see this game show get played out as members of the audience dual against some of the brightest engineers from Apple. I always come out of the session shaking my head and asking myself, &amp;#8220;how on earth did they come up with that answer?&amp;#8221;. Maybe I&amp;#8217;ll find the courage next year to submit my own question for the panel of experts.&lt;/p&gt;
&lt;h4&gt;Inspiration and Ideas&lt;/h4&gt;
&lt;p&gt;Attending this year&amp;#8217;s WWDC opened a whole new box of ideas for me. The new features that have been introduced with iOS 4 opens up so many potential app ideas. I can&amp;#8217;t wait to see what developers will come out with in the next few months. Especially with the announcement of the new three-axis gyro sensor. It was really inspiring to meet and talk with some of the developers of your favorite apps (Mac or iOS device). Some of these well known developers are very gracious with their time and answer any question you may have. This was my second WWDC conference for me and it will certainly won&amp;#8217;t be my last. I plan on attending next year and hopefully by then, I&amp;#8217;ll have a couple of great apps to show off and talk about.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Cocoa Books Part 2: Big Nerd Ranch's iPhone Programming</title>
   <link href="http://www.slhernandez.com/2010/05/27/iPhone-Programming-Book/"/>
   <updated>2010-05-27T00:00:00-07:00</updated>
   <id>http://slhernandez.com/2010/05/27/iPhone-Programming-Book</id>
   <content type="html">&lt;p&gt;This is a brief review of the second cocoa book I&amp;#8217;ve read the past month. This particular book was focused on Cocoa Touch for the iPhone OS as compared to my &lt;a href='http://slhernandez.com/2010/05/27/Cocoa-Books.html'&gt;first review&lt;/a&gt; of &lt;a href='http://www.amazon.com/Cocoa-Objective-C-Running-Foundations-programming/dp/0596804792'&gt;Cocoa and Objective-C: Up and Running&lt;/a&gt; which primarily covered cocoa apps for Mac OS X.&lt;/p&gt;
&lt;h4&gt;iPhone Programming by Joe Conway and Aaron Hillegass&lt;/h4&gt;&lt;div class='post_images'&gt;
	&lt;a href='http://www.amazon.com/iPhone-Programming-Ranch-Guide-Guides/dp/0321706242' id='cocoa_book'&gt;&lt;img src='/images/posts/iPhoneProgramming.jpg' /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Very first thing I noticed were the number of chapters that are included in this book. Overall, there are 28 chapters that span 381 pages. I thought this was great since most of the chapters would be small enough for me to complete in several hours (including exercises). I love that each chapter focused on key concepts of Objective-C and Cocoa frameworks. I approached this book with the goal of reading one chapter a day as suggested by the authors. The authors of the book also indicated that the material is based on their iPhone Development Bootcamp course. So I treated each chapter as an individual class. Again, I decided to start from the beginning with chapter 1 and work my way through the entire book.&lt;/p&gt;

&lt;p&gt;The first few chapters cover the creation of a simple iPhone application and some core concepts of the Objective-C language. The chapter on Objective-C basics deals with the fundamentals of creating a class, initializing an object, setting up accessors and class methods. Great stuff and no doubt essential topics that are required when creating an iPhone app. One of my favorite chapters is the one devoted to Memory Management (chapter 3). This chapter does a fantastic job of describing manual reference counting and utilizing retain counts. The way they describe the dangers of releasing an object too early if a new owner of that object never retained it was straight forward. In fact, there is a simple example using this concept of passing a grocery list to your friend. This example shows you two ways of shooting yourself in the foot if you mis-handle your retain counts. You can either create a memory leak or deallocate an object prematurely. The authors do a good job of laying out the details of how easily it would be to make these errors. These are two common mistakes made by beginning iPhone Programmers. Then there is a nice transition from their description of how easy it is to create memory leaks to a nice discussion on how to avoid them using autorelease. This chapter alone is worth the price of the book. Memory management made absolute sense to me upon finishing this chapter.&lt;/p&gt;

&lt;p&gt;Upon finishing the basics, the book dives right into iPhone development with chapter 4 (Delegation and Core Location). I love that the authors decided to use an actual framework (CoreLocation.framework) to teach you the basics of delegation. Choosing the CoreLocation.framework to demonstrate the use of protocols and showing how the stock AppDelegate conforms to the CLLocationManagerDelegate was a great idea. This example shows the reader how they can incorporate great iPhone SDK features into their own applications. This sort of content keeps the reader engaged and eager to get to the next chapter. Using an actual framework instead of some contrived code sample to demonstrate this important topic gives the reader some real world context. If you decide to go a step further and display your location on a map, you apply the same exact concepts when adding the MapKit framework. Select an object to conform to the protocol, look up the protocol in the reference guide, figure out which delegate methods to implement, create an instance of the delegate, inform the delegate of the object that implements the delegate methods. The authors describe these steps in an easy and seamless fashion. It&amp;#8217;s very easy to follow along. This is such an important concept for beginners to understand and the authors did a wonderful job of explaining it. An iPhone app is one large delegate. You need to grasp the concepts of protocols and delegates if you plan to make any meaningful progress when developing your iPhone app.&lt;/p&gt;

&lt;p&gt;UIView, ViewControllers and UITableViewControllers are presented each with their own chapters. It was pointed out that the Tab Bar (UITabBarController) is a subclass of UIViewController. Something I never realized before nor questioned. The book also covers how to create custom ViewControllers programmatically and with Interface Builder. Upon completing some of these core chapters involving ViewControllers, UINavigationControllers and UITableViewControllers the reader is left with some great boiler plate code that can be used in future projects. There is really only one correct way to draw table view cells. I am only talking about blank table view cells. Filling those cells with content is going to involve your own custom code. Each of the examples ultimately provide a great starter kit for your own custom iPhone project. There is great chapter devoted to sub-classing the UITableViewCell. It provides some great instructions on how to drop custom view objects on top of the contentView. It&amp;#8217;s a recipe on how to develop your very own cell layout that I am going to find useful for my own apps.&lt;/p&gt;

&lt;p&gt;When starting out with my first iPhone project I would often times run into this very common road block for newbies. How does one share their model data between multiple view controllers? Chapter 12 (UINavigationController) lays out a great technique that is commonly used by experience iPhone developers. The authors expressed that you should &amp;#8220;have all data in the root view controller and only pass subsets of that data to the next UIViewController&amp;#8221;. The solution to this problem is really simple and easy to implement. Just pass a property that has been previously set by the model instance. Don&amp;#8217;t attempt to load the whole data model for the view controller that needs the data. Feed it only a subset of the data using properties. I am happy the author went over this technique in detail. This piece of advice will certainly be utilized in future iPhone projects.&lt;/p&gt;

&lt;p&gt;The most important chapters that I found in the book are the ones that covered persistent storage. The book covers three main ways to save your data via archiving, SQLite, and Core Data. The book offered a rule of thumb when determining which set of &amp;#8220;Persistent Mechanisms&amp;#8221; to store your data. &amp;#8220;If you are dealing with a small amount of data, say, less than a thousand rows, archiving is all you need.&amp;#8221; I thought this was a great piece of advise. Why convolute your project with Core Data when ultimately you will only save less than 100 items/rows of data. Keep your app simple and go for the easiest persistent storage solution. There is a great table at the end of chapter 27 that summarizes the pros and cons of archiving, SQLite, and Core Data. Very useful when determining which solution is best for your project. I don&amp;#8217;t want to go into great detail on the contents of each chapter. But I&amp;#8217;ll be visiting the SQLite chapter quite often to make sure that I am correctly setting up my query correctly to fetch specific rows of data. The chapter on Core Data was very easy to follow and read. The object diagrams that depict the relationships between entities and their attributes was key to understanding how one would layout their entities within the data model in Xcode.&lt;/p&gt;

&lt;p&gt;This is one of the best iPhone Programming books in the market. It&amp;#8217;s on equal footing with &lt;a href='http://www.amazon.com/Beginning-iPhone-Development-Exploring-SDK/dp/1430224592'&gt;Beginning iPhone 3 Development&lt;/a&gt; by Jeff LaMarche and Dave Mark. I highly recommend both books.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Cocoa Books Part 1</title>
   <link href="http://www.slhernandez.com/2010/05/27/Cocoa-Books/"/>
   <updated>2010-05-27T00:00:00-07:00</updated>
   <id>http://slhernandez.com/2010/05/27/Cocoa-Books</id>
   <content type="html">&lt;p&gt;This blog has been pretty quiet the pass month. I haven&amp;#8217;t posted anything since my &lt;a href='http://slhernandez.com/2010/04/11/my-very-own-ipad-opinion.html'&gt;iPad Review&lt;/a&gt;. I thought it was time to provide a status update with my progress &lt;a href='http://slhernandez.com/2010/04/03/finding-my-identity-as-a-coder.html'&gt;learning Objective-C and Cocoa&lt;/a&gt;. I have spent the past month reading two books devoted to iPhone Programming and Cocoa. For this post I&amp;#8217;ll express my thoughts on Scott Stevenson&amp;#8217;s &amp;#8220;Cocoa and Objective-C: Up and Running&amp;#8221;. The second part of this post will be devoted to &lt;a href='http://www.bignerdranch.com/book/iphone_programming_the_big_nerd_ranch_guide'&gt;iPhone Programming by Joe Conway and Aaron Hillegass&lt;/a&gt;. That blog post should be available in the next couple of days.&lt;/p&gt;
&lt;div class='post_images'&gt;
	&lt;a href='http://www.amazon.com/Cocoa-Objective-C-Running-Foundations-programming/dp/0596804792' id='cocoa_book'&gt;&lt;img src='/images/posts/cocoa_up_and_run.jpg' /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;h4&gt;Cocoa and Objective-C: Up and Running&lt;/h4&gt;
&lt;p&gt;The first book I decided to tackle was &lt;a href='http://cocoabook.com/'&gt;Cocoa and Objective-C: Up and Running&lt;/a&gt; because it was written by Scott Stevenson. A well known and respected Cocoa Developer. I have seen a couple of his CocoaHeads videos from the past and seen him host CocoaHeads WWDC08 in person. I was very impressed with his knowledge and quite fond of his cocoa tutorial site &lt;a href='http://cocoadevcentral.com/'&gt;Cocoa Dev Central&lt;/a&gt;. So I wasn&amp;#8217;t disappointed with his explanations of some of the most fundamental Objective-C topics. I decided to start from the beginning of the book even though I already have some experience with Objective-C and have already submitted a small iPhone &lt;a href='http://slhernandez.com/projects/url_shortener.html'&gt;utility app&lt;/a&gt; to the App Store. I thought it couldn&amp;#8217;t hurt to review some basic C programming topics and Objective-C fundamentals. Chapters 2 thru 6 are very easy to digest for the experienced programmer. It was a nice primer for some advanced Objective-C concepts and sort of got me back into the mind set of a Cocoa programmer. In fact, exploring some of the key concepts of C was like going back in time 10 years ago. I remember trying to make some sense of some problem sets from my Operating Systems class in college while also trying to get a handle of the C programming language. Every homework assignment was to be written in C using vi on a &lt;a href='http://en.wikipedia.org/wiki/Ultra_5'&gt;Sun Ultra 10 Workstation&lt;/a&gt;. Professor Williams was very particular on where our homework assignments were to be completed. It has been a while since I learned pointers, dynamic memory and structs. But it was good preparation for re-learning memory management in Objective-C.&lt;/p&gt;

&lt;p&gt;Chapter 6 was devoted to reference counting and the lifecycle of an instance variable. I loved that Stevenson shows his readers how to construct accessor methods (getters/setters) manually. For instance, he explains on why you need to autorelease the old object then retain the new one within the setter. Then he shows you how that can be done under the covers by using the @property directive. He even shows you how to use @property declarations to automatically generate instance values for &amp;#8220;64-Bit Objective-C&amp;#8221;. One thing I wish he didn&amp;#8217;t do was utilize that pattern for the rest of the book. I prefer to manually declare my instance variables within the interface even though it&amp;#8217;s consider redundant. Another concept that I thought was explained exceptionally well was Categories for Private Methods. I remember seeing some Apple sample code with an @interface directive being declared from within the implementation file and not the header. This confused the hell out of me. Now I understand that Objective-C has no formal way of creating private methods in a class. Place the category declaration in the implementation file if you care to use private methods. Chapter 7 of the book was solely devoted to Cocoa&amp;#8217;s foundation classes. In my opinion, this chapter was dry and very difficult to read through since it read more like a reference book. It&amp;#8217;s a very long chapter and the key gem was the explanation of Toll-Free Bridging. Again, I remember looking through sample code and seeing the exchange of NSString and CFStringRef without realizing exactly what benefit this provided a Cocoa programmer. Overall, Stevensons explanations of some of the fundamental Objective-C concepts caused me to have a quite of few ah-ha moments. It made me giddy that I was finally getting the hang of this language.&lt;/p&gt;

&lt;p&gt;The most interesting and fun chapters of the book was 8 (Basic Controls) and 9 (Designing Applications Using MVC). In fact, I read Chapter 9 twice to make sure that I had full understanding of the concepts that were presented. Chapter 8 covered the majority of the built-in controls in AppKit. This chapter did a fine job on explaining Action/Target connections that are involved with Interface Builder and Xcode. And did a pretty good job of explaining the Responder Chain which can be a tricky concept to understand. My main gripe with this chapter was the length. It would have been better served if the chapter was broken up in pieces. My preference with programming books is to consume concepts in small parts. I try to devote myself to read one chapter per day (if manageable). Overall, I believe it took me 3 evenings to cover the concepts explained in &amp;#8220;Basic Controls&amp;#8221;. The same could be said about Chapter 9. There isn&amp;#8217;t as much text to read in chapter 9. But there is a whole lot of source code to cover. Typing all the code in that chapter took me a while. Then trying to get the sample project to look, act and feel like how it was described in the book force me the read the chapter twice. There were a lot of small details that I missed when constructing the gallery application with Interface Builder. You have to be really alert to catch the small details that explain how to setup the UI with Interface Builder&amp;#8217;s inspector. It&amp;#8217;s very easy to skip a sentence and to miss a detail that should of been set within the attributes setting. I can&amp;#8217;t forget to mention the way Stevenson laid out the gallery application. The reader was now able to view first-hand how an experience Cocoa developer compose their project structure. For instance, Stevenson expressed that simple cocoa projects can be constructed using the default application delegate class. All of your controls can be dropped in that one delegate class if you are writing a small app. But larger and complicated applications may be better served with separate window controllers that may or may not have their own XIB files. The same emphasis is also placed on View controllers. Creating building blocks through the utilization of sectioned view controllers and window controllers provide code portability, and ease of use in regards to code maintenance.&lt;/p&gt;

&lt;p&gt;Overall, the book was fun to read with the lone exception of Chapter 7. But you really can&amp;#8217;t get around the dry explanation of all the Foundation classes. There really is one way to describe an NSArray.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>iPad Review (just my opinion)</title>
   <link href="http://www.slhernandez.com/2010/04/11/my-very-own-ipad-opinion/"/>
   <updated>2010-04-11T00:00:00-07:00</updated>
   <id>http://slhernandez.com/2010/04/11/my-very-own-ipad-opinion</id>
   <content type="html">&lt;p&gt;There are plenty of reviews that go over the pros and cons of Apple&amp;#8217;s new &amp;#8220;magical and revolutionary&amp;#8221; product. In fact, two of my favorites reviews are by John Gruber of &lt;a href='http://daringfireball.net/2010/04/the_ipad'&gt;Daring Fireball&lt;/a&gt; and &lt;a href='http://arstechnica.com/apple/reviews/2010/04/ipad-review.ars'&gt;Ars Technica&lt;/a&gt;. There is no shortage of iPad musing on the blogosphere. But this won&amp;#8217;t deter me from expressing my own quick thoughts on the device. Including my personal top 5 favorite iPad apps. And really, who&amp;#8217;s reading this blog anyway?&lt;/p&gt;

&lt;p&gt;Just like every other early adopter of Apple technology, I received my iPad (16GB) on the day it officially released. When I placed my order with the Apple Online Store, I didn&amp;#8217;t realize that the release date for the iPad was Saturday, April 3rd. I normally have all my packages, especially new gadgets, shipped to the office. And like any other hardcore geek, I spent all of Saturday morning and part of the afternoon at the office waiting for my iPad to be delivered. As sad as it may seem, I didn&amp;#8217;t mind waiting at the office for the chance to get my hands on the most over-hyped computer ever known in our industry.&lt;/p&gt;
&lt;h4&gt;Portability&lt;/h4&gt;
&lt;p&gt;The iPad is slim but unexpectedly heavy. I have to agree with other reviewers when they say that it&amp;#8217;s difficult to hold with one hand. I own a Amazon Kindle and 10.2 ounces is easier to handle with one hand than the iPad&amp;#8217;s 1.5 pounds. The Kindle feels like it was made for reading because it&amp;#8217;s so easy to handle. The iPad makes leisure reading awkward. I have to use both hands when reading a book or just lay the device on a flat table or surface. Already it feels a little constrained. The ease of handling the Kindle has spoiled me.&lt;/p&gt;
&lt;h4&gt;Consumption&lt;/h4&gt;
&lt;p&gt;I consume my fair share of blogs, tweets,and articles when browsing the internet. The iPad was created for consumers like me. What it does best is allow me to focus on one thing at a time when consuming media. Whether it&amp;#8217;s browsing the web with Safari, watching Movies or reading a book, I can focus on the task at hand. That&amp;#8217;s what I love most about the iPad. It blocks outside distraction from other apps. I would also like to mention that the glossy LED-Backlit IPS display is fantastic. I have alway been a fan of glossy screens. So I have a bias towards this type of screen. I think the resolution is just about perfect for reading. And I can&amp;#8217;t get over just how great photos look on this device. Case in point is the new New York Times app &amp;#8220;Editor&amp;#8217;s Choice&amp;#8221;. When that particular app is loaded, you can&amp;#8217;t help but notice how crisp the photos look on their pages.&lt;/p&gt;
&lt;h4&gt;Creating Content&lt;/h4&gt;
&lt;p&gt;One of the biggest complaints made against the iPad is how difficult it is to create content. This includes creating documents, spreadsheets, email and notes. My experience with the virtual keyboard has been clumsy, even when in landscape mode. I don&amp;#8217;t have very big fingers. It&amp;#8217;s really easy to hit other keys on the virtual keyboard due to it&amp;#8217;s sensitivity. Sometimes it feels like I am not even touching the screen and a letter will pop out of nowhere. I like to rest my finger tips on the actual keys and you can&amp;#8217;t do that with the iPad&amp;#8217;s keyboard. This has caused me to look down at the keyboard while typing. This alone cuts my typing speed from 60 wpm to 25 wpm. Also, syncing files to your Pages, Numbers, and Keynote applications is a multi-step process that includes iTunes. It&amp;#8217;s not difficult to get documents on your iPad, but I feel there is a lot of room for improvement in this area. At least allow the iWork suite to sync to my MobileMe disk and discover my documents.&lt;/p&gt;

&lt;p&gt;Overall, the iPad will do a decent job of allowing you to edit forms on web pages, compose email, and edit existing documents. If you need to type a 10 page proposal for work, the virtual keyboard won&amp;#8217;t cut it. You need to break out your bluetooth physical keyboard.&lt;/p&gt;
&lt;h4&gt;App Selection&lt;/h4&gt;
&lt;p&gt;Right at launch, there were already over a 1,000 iPad specific apps available. The majority of those apps didn&amp;#8217;t even have a physical device for testing. But most of those apps I downloaded function pretty well. Some of the apps I purchased did have some bugs. Hopefully most of the kinks will eventually get ironed out in future releases. I reminded myself that developers only had 60 days to complete and submit their apps. No small task. There was a headliner app for each of the major categories. For example, the news category had some stellar apps that include, New York Times, Instapaper, NPR and USA Today. For a news junkie like myself, this was total bliss. Each of those apps are well done and provided a reading experience I never encountered before. NPR&amp;#8217;s iPad app totally blows away it&amp;#8217;s own website. I am actually surprised at the quality and design of the app. Then under the Books category there were two gems, &amp;#8220;The Elements&amp;#8221; and &amp;#8220;Kindle&amp;#8221;. The Elements app is by far my favorite app. The experience is something out of a Harry Potter book with small animations that demonstrate&amp;#8217;s each element on the periodic table. I imagined this is how future text books will look like if they used the iPad as teaching tool. I was also pleasantly surprised to see 1Password available. 1Password had become one of my most used and valuable tools on both my Mac and iPhone. There was no shortage of selection of quality apps for the iPad launch. I never once considered installing any of my iPhone apps to my iPad.&lt;/p&gt;
&lt;h4&gt;Favorite iPad Apps (So far...)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;NetNewsWire&lt;/strong&gt; (Easy choice since I am always reading blogs)&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;The Elements&lt;/strong&gt;&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;GoodReader&lt;/strong&gt; (PDF Viewer)&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Kindle&lt;/strong&gt; (Too much invested in the Kindle eco-system)&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;NPR&lt;/strong&gt; (Great source for news. Waiting for the release of &amp;#8216;This American Life&amp;#8217; App.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Final Thoughts&lt;/h4&gt;
&lt;p&gt;The iPad hasn&amp;#8217;t changed my lifestyle. I am not a road warrior or in need of a portable computer for my daily computer needs. My 15&amp;#8217; Macbook Pro handles all my computational tasks very well. My iPad serves nothing more than a convenient portable computer when sitting on my couch, front porch or bed. It will serve me well when reading books, browsing the web, watching television shows and writing email. When I do travel, I don&amp;#8217;t plan on taking my laptop. The iPad will be the only portable computer accompanying me.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Finding my identity as a coder (side-projects)</title>
   <link href="http://www.slhernandez.com/2010/04/03/finding-my-identity-as-a-coder/"/>
   <updated>2010-04-03T00:00:00-07:00</updated>
   <id>http://slhernandez.com/2010/04/03/finding-my-identity-as-a-coder</id>
   <content type="html">&lt;p&gt;Sometimes I find myself looking for a fun coding project to devote my time to outside of work. It&amp;#8217;s my attempt to break away from my comfort zone and find something new to learn. But lately, it has been tough trying to choose which framework or language to adopt for a new project. I am also having trouble finishing coding projects.&lt;/p&gt;

&lt;p&gt;These are exciting times for a programmer. For example, with the explosion of mobile apps for Andriod, Windows Phone 7, iPhone and iPad, choosing a platform can polarize any developer. Not to mention the popular web Frameworks/APIs such as App Engine, Rails, Django, and Facebook. Granted, there is a large pool of programmers who devote their free time to a wide range of open source projects, but there comes a time when every programmer will ask themselves the follow questions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What framework or technologies should I learn?&lt;/li&gt;

&lt;li&gt;Will the language or framework that I adopt define me as a programmer?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These questions currently fall outside the scope of my day job. At work, I spend most of my time on this web stack: C#, Python, JavaScript, Monorail, and of course HTML/CSS. I work with these technologies everyday and I am excluding them from these questions. The questions proposed above are geared towards which languages or frameworks I should learn for &lt;a href='http://al3x.net/2008/02/17/on-side-projects.html'&gt;side-projects&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;These questions have been on my mind for the past year. I typically try to learn any cool technology that grabs my interest. But I never really create and finish a project that’s worth while. Why? Because something else will catch my eye and I end up abandoning the project. This can be frustrating, because I only have so much free time (outside of work). This is how it usually starts out for me: I finish reading the great online book &lt;a href='http://www.djangobook.com/'&gt;The Django Book&lt;/a&gt;. Then I get inspired to create a small web app using my new found knowledge. Halfway through my exercise, I get wind of a new book (beta) by John Resig called &lt;a href='http://jsninja.com/'&gt;Secrets of the JavaScript Ninja&lt;/a&gt;. I download the PDF from the publisher and spend the next few days reading and trying out all the examples. I end up loosing steam on my newly started project and abandon it. I repeat this scenario every month and end up becoming an &lt;a href='http://www.43folders.com/2009/10/22/who-you-are'&gt;advanced beginner&lt;/a&gt; in what I just learned. Other technologies that have piqued my interest and fallen to the same fate this past year include Google App Engine, ASP.NET MVC, Cocoa Touch and Objective-C. I begin to dive into the fundamentals of each technology, but not enough to create anything substantial. The amount of money I spend on programming books alone is absurd. My only wish is to actually finish a project that I started. Then rollout some actual code via &lt;a href='http://github.com/slhernandez'&gt;GitHub&lt;/a&gt; for others to use and consume.&lt;/p&gt;

&lt;p&gt;It would be alright if I was content on just being a consumer of frameworks and languages. I don&amp;#8217;t see any problem with picking up a new language by just reading a tutorial or the latest O&amp;#8217;Reilly book. But to really learn and develop expertise, you need to actually produce code. And a great way of doing that is by starting a new project and code like your angry. That&amp;#8217;s the only way to learn a new language and see the full potential behind an existing framework.&lt;/p&gt;

&lt;p&gt;To rectify this problem I have of abandoning projects mid-way through development and to start creating real shipping software, I decided to start this blog to keep me honest. This is my journal that will document my journey of learning new languages with some actual code that&amp;#8217;s usable. To begin, I decided to take Objective-C seriously and really try to learn the language rather than being stuck as an advanced beginner. The plan is to post several tutorials or articles devoted to Objective-C and Cocoa with some code that will be available from my &lt;a href='http://github.com/slhernandez/iphone-urlshortener'&gt;GitHub account&lt;/a&gt;. I have no idea if this will actually help me produce anything substantial. But it&amp;#8217;s something different.&lt;/p&gt;

&lt;p&gt;Along with posting items on Objective-C and Cocoa, this blog will cover these topics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;My thoughts on random programming languages.&lt;/li&gt;

&lt;li&gt;Opinions on technology in general&lt;/li&gt;

&lt;li&gt;Progress on current projects/products&lt;/li&gt;

&lt;li&gt;The occasional book review (Software related only)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Will this ultimately classify me as an Objective-C/Cocoa developer or iPhone/Mac developer? I don&amp;#8217;t think so. But it&amp;#8217;s the journey that counts. Right? To my two readers consuming this blog, enjoy!&lt;/p&gt;</content>
 </entry>
 
 
</feed>
