Monthly Archives: August 2014

Work Note: That compiled?

I just ran across something that had me stumped for a while, I just couldn’t see it, and I would have thought the compiler would have choked on it. It didn’t, it built, and ran, and produced interesting results.

Confession time: I’m not using auto layout, yet. Why? I haven’t had the time to commit to it. Yes, I’m aware it would probably save me time in the long run. I will learn it, of course, just not today.

Anywho, back to the story.

I hade some code that looked like this, I must have been distracted mid-thought, and did a build. This code built.

self.thingView.frame = frame;

AHHHHHH!Anyone see a problem there? No assignment, no closing “;”. The code built and ran! The outcome was my view moving into strange positions during rotation for no apparent reason. Wow.

I finally had to do a diff to find it, I just couldn’t see it.

Words to live by

Jared Sinclair: “Focus on a difficult problem that matters to a significant number of normal people. Don’t worry about being the prettiest or the most featured. Get your hands dirty and find out what the rest of the world is struggling with.”

Will write C/C++ for foodThese words apply to any software indie, not just someone developing an iOS Application. I’m convinced now, more that ever, that services are the way to go. Create something people are willing to pay for and give them access to it from the desktop and mobile (iOS and Android), and possibly other platforms. Guys like Rob Walling have been spreading the gospel of the micropreneur for years.

A perfect example of this in the iOS world is the work Justin Williams is doing with Glassboard. He’s following the micropreneur playbook, even if he doesn’t realize it. He’s found a nice niche market, he’s asking people to pay for the service (the nerve!) He also has a blog, where he runs ads, and has just recently changed his podcast from advertiser supported to listener supported. All very smart ways to earn a living. These ideas all run counter to the Silicon Valley idea of blowing large sums of money in hopes of an “exit.” These guys are actually running businesses, bravo.

If anyone thinks this is easy, they’d be wrong. It’s not easy. It requires long hours and sleepless nights to get things off the ground, then it requires constant supervision to make sure it doesn’t fall apart. Oh, and even if you do all of that, it can still fall apart. Hey, it’s a business. Some people have the midas touch when it comes to business and many of us do not. The majority of us will fail.

Something else in another of Jared’s posts that really struck accord: “My marriage and mental health suffered a lot because of that punchcard. I worked on Unread seven days a week, at almost any hour of the day. I think the quality and polish of Version 1.0 is due to all that extra effort, but it was physically and emotionally taxing. It’s not a sustainable way to live, and I don’t recommend it.”

This reminds me of something I read on a CompuServ (I believe?) forum circa 1988-89, back before the internet. My manager would check the forums on occasion for tips and tricks for Clipper developers (wow, what an awesome dBase compiler.) If memory serves it was in one of those forums we found a quote that sticks with me to this day. An indie developer of C extensions to Clipper said something like:

“Being a self-employed software developer is great. I can work any hours I want to work. Any 80 hours in the week I want to work.

Food for thought if you’re thinking of going indie. I don’t mean that to discourage you. I only say that because it’s going to take a lot of work. Be prepared to do more than have a great idea. Be prepared to put in the time to make it work. Oh, yes, one more thing. After you develop this great application you have to market it. I think that’s where most of us will fail. Marketing. I’d imagine that is more important than actually developing a great service, or application.

Work Note: When to share?

I do freelance work. As a freelance developer I’ve had times where I need to write code I know others could use. I use plenty of open source software, so I figure I should try to contribute something back.

That said, I’m working on a project right now that needs to parse RSS feeds. I know there are some existing RSS parsers available for Objective-C, but I’m going to write my own for a few simple reasons.

  1. I need it for this project
  2. I can reuse it later
  3. I’d like to give back
  4. I wanted to do something block based
  5. I wanted to publish it using CocoaPods

This exercise is primarily about two things; Sharing and self learning.Duct Tape, fixer of all things!

If I’m the only person that ever uses it, at least I’ve learned something new (packaging with CocoaPods) and I have something I can use again.

Update (6PM): I’ve published what I’ve completed. Some warnings. This code is very much as is. I’ve only tried it with well behaving RSS 2.0 feeds. The code definitely stands on the backs of giants. It depends on TouchXML to do all the hard work, all this code does is create RSS objects. Do not expect much.

I still need to add CocoaPods support and it could use a bunch of unit tests. I’ve done a few, but I can go a whole lot deeper.

Anywho, lots to do.