2010 Goals Revisited & 2011 Goals

2010’s done and here comes 2011. Last December I made a list (published on Jan. 28th). Here’s how I did:

  1. Take more pictures – DONE! I’ll be publishing a major year-long photography project in February.
  2. Start a recurring podcast series – DONE! Sorta. I tried, and I realized I need to leave it to the pros.
  3. Drink more water (to wart off kidney stones) – DONE! I cut out all sodas in 2010, drinking nothing but water and my admittedly lite-tea. Knock on wood, this year was healthy.
  4. Start planning and writing a book – FAIL. I keep coming back to it, and I keep thinking about it, but I haven’t hit the right idea where I want to take such a project.
  5. Blog more – DONE! I even started up another blog over at Justify.
  6. Actively join a new meetup that I don’t have to be in charge of (see: Refresh) – FAIL. In fact, this probably got worse. The problem? All the other meetups in town don’t interest me or aren’t useful to me in some way.
  7. Gather 50 new clients or achieve an annual net salary of $60,000 – whichever is first – FAIL. I didn’t make that much money, but I did make enough. I attracted dozens of new clients and in retrospect, I think this was the wrong goal. It’s about the quality of the clients and their projects, not the volume. Ironically, I did send out my 50th invoice of the year today.
  8. Go to a beach (Northern Indiana is fine – I like to keep my vacation dollars in Indiana) – FAIL. No one wanted to go with me and I’m not paying a thousand dollars for a trip.
  9. Read more books (iPad might help) – DONE! I spent a lot of time reading books from the library, blogging about them here and over at my web design blog. I even bought a Kindle because I enjoyed reading so much on my iPad, I had to assume a Kindle would be great just for reading. It is.

There was a 10th item that I redacted for personal reasons. I think I succeeded there too. I’m counting 6 successes and 4 failures.

So, what about 2011?

  1. Learn iPhone programming. I’ve already started and have been documenting it as part of my iOS Journey Series.
  2. Cook more meals from scratch.
  3. Start writing a book.
  4. Increase revenue this year by $10,000 over 2010.
  5. Really build a name for myself among the web community in Indiana.
  6. Find a good money manager and start investing.
  7. Learn to shoot.
  8. Go to a beach.
  9. Be more efficient and effective with every hour of the day.
  10. *** Personal goal here again that I’m keeping to myself.

iOS – View Controllers

Marching right along at a good clip this week is Chapter 7 in the Big Nerd Ranch Guide, titled View Controllers. This chapter focuses on putting together XIB (pronounced “Nib”) files programmatically, as opposed to using Interface Builder. Again, this sounds like the long way around to me, but I followed along.

Using View Controllers in the sample HypnoTime App, we switch from a screen with some filler circles to a screen that tells us what time it is when we push a button. Of particular interest to me here is the method by which we added items to the UITabBar, the black bar at the bottom of some applications. For instance, in the iPod app, “Playlists”, “Artists”, “Albums”, etc. appear here.

Again, it seemed less than elegant and somewhat counter-intuitive for the simple act of adding icons to a portion of the screen.

I’m getting antsy to just start cobbling crap together and seeing what works and what doesn’t for my own ideas for iOS apps. That’s how I managed to learn HTML all those years ago in the late 90’s. Unfortunately, this environment doesn’t bode well for that. Because this is such a new platform, a whole lot hasn’t been written that you can easily turn up in a Google search. And because everything is protected by Apple’s NDA’s, Apple’s about the only place you can go to see sample code, which you can’t copy and paste per their Terms of Service. It’s not a friendly environment for just hacking crap together and futzing with it until it resembles something useful.

That’s probably a feature and not a bug, but it’s somewhat irritating to a tinkerer like me. Plus, this isn’t visual enough to support that kind of development. When you’re starting at a blank screen with only a couple resources at your disposal for looking at code, you can’t just start clicking buttons — you actually have to know what to type. It’d be like opening Word and being told, “Write a novel in Chinese”. Technically, you could, but the interface is of absolutely no use to you if you didn’t know Chinese.

iOS – Subclassing UIView

Moving on to Chapter 6 in Joe Conway’s book, this chapter takes us further from previously using UIButton and UILabel to UIView. This is illustrated with the Hypnosister App, which draws concentric circles on the screen programmatically. I have a bittersweet taste towards creating artwork programatically, only because as a Photoshop wonk, I like having an excuse to use it. However, I get that it reduces file sizes and the like. It just seems like a lot of writing just to draw some circles:

– (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

CGRect wholeWindow = [window bounds];

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:wholeWindow];

[window addSubview:scrollView];

// Make your view twice as large as the window
CGRect reallyBigRect;

reallyBigRect.origin = CGPointZero;

reallyBigRect.size.width = wholeWindow.size.width * 2;

reallyBigRect.size.height = wholeWindow.size.height * 2;

[scrollView setContentSize:reallyBigRect.size];

// Center it in the scroll view
CGPoint offset;

offset.x = wholeWindow.size.width * 0.5;

offset.y = wholeWindow.size.height * 0.5;

[scrollView setContentOffset:offset];

// Enable zooming
[scrollView setMinimumZoomScale:0.5];

[scrollView setMaximumZoomScale:5];

[scrollView setDelegate:self];

// Create the view
view = [[HypnosisView alloc] initWithFrame:reallyBigRect];

[view setBackgroundColor:[UIColor clearColor]];

[scrollView addSubview:view];

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

[window makeKeyAndVisible];

return YES;

}

Again, I’m struggling to fully comprehend the idea behind classes, sub-classes and the act of “subclassing”. I keep trying to relate them back to CSS classes, and I’m not sure that’s an appropriate metaphor, which may be causing more confusion than it should.

iOS – MapKit and Text Input

I’m still working through Joe Conway’s iPhone Programming text and I’m up to Chapter 5. Using an app called Whereami, it guides us through the MapKit framework and how to input text into a field to gather a location name. That portion doesn’t actually work, but I suspect that’s coming up in later chapters.

For now, the app launches and since we’re using the simulator, it locks us into zooming at Apple’s Cupertino campus instead of actually locating where I really am here in Indianapolis.

Up to this point, I can say that I’ve learned things, but I don’t think it’s anything that the book necessarily wanted or intended at any point in time. I’ve learned about a few frameworks and I’m getting the hang of some of the syntax, but the more key items are still foggy to me.

The sheer number of classes, and all their sub and subsequent super classes vex me. They’re so darn many, it’s literally like learning a whole new set of words and the proper grammar along with it. I’ve not run across any resources so far that take the time initially to educate a person about how to efficiently learn them. Perhaps they assume that Apple’s documentation is the right way to do it and there’s just too many to begin with, so it’s a “type it and you’ll figure it out” approach. It doesn’t seem elegant, though.

Indy’s Transit Plan is Off the Rails

In this rendering, a light rail service would operate Downtown as part of a broader transit plan that also includes trains and buses. / HNTB rendering provided by Indy Connect

Look at that train. Sleek, fast, modern looking. I bet that thing reminds you of a bullet train from Japan that travels at over 100 MPH, huh? Who would have thought we’d have on of those right along Ohio Street!

“Local leaders”, that’s who.

Let me be clear: I’m no fan of a big mass transit system in Indianapolis. Why? “Local leaders”, that’s why:

That plan, like the first one, has a price tag of $2.4 billion. But unlike the first plan, the new plan is heavier on buses and extends rail lines from Noblesville through Indianapolis to Franklin.

Translation: the old plan was expensive and no one liked it enough to give us money. So, in order to get State Sen. Kenley on board to help give us the State’s money, this new plan is just as expensive but we’re extending trains to Noblesville to ensure he has some good karma from voters there.

…at last week’s meeting of the Indianapolis Regional Transportation Council, Carmel Mayor Jim Brainard said he didn’t understand why previous transit-planning efforts weren’t being considered.

Translation: Carmel doesn’t like that it’s not in line ahead of Fishers for magic buses and fairy trains, therefore, this new plan sucks.

This time, the private business sector is going to take the lead — not transit officials. It was businesspeople, after all, who came up with the regional transit plan in the first place as a tool for economic development.

Translation: “private business sector” refers to the Simons. Have you seen the map? Area malls sure are served well and that links to the old map! The new one didn’t change that part much. Guess no one bothered to make sure Wal-Marts and Marsh’s were covered as well as those malls. Not like they sell stuff that people need, like Nordstrom’s does.

I’m all for the private sector taking care of this, but by that, I mean they have to run it. Now we’ve got a bunch of private businesses trying to lobby government to build train tracks directly to and from their front door. I want the private sector to work with government to say, “Here’s what we want to do, we’ve got the money to pay for it and here’s how we’re going to make it work at no risk to you or taxpayers.” Rates will be higher that way, but it’ll still be cheaper than having a car.

Any transit plan in this city has to answer this question: How does Joe Hoosier get from his house at 10th and Arlington to his job at Troy and Harding by 9 am? If  he can drive there in 20 minutes and a bus can get him there in 30, it’ll be a success. If he has to take a bus that drops him off at his connection and he has to wait 15 minutes again because the other bus just left and it takes him 45 minutes to get there, it’s a failure.