Sam Soffes

Here We Go Again

Posted on

If you've kept up with me at all the last couple of years, you already know what this post is about. April 5th will be my last day at Synthetic. It has been absolutely fantastic working here. I have had an amazing time with everyone. I got to be a part of some really great stuff in my time at Synthetic. Everyone I got the privilege of working with will definitely be missed.

I'll be dedicating all of my time now to some products I can't wait to show you. My goal is to stay on my own for as long as possible. Hopefully some of the products I'll be releasing will make enough money to pay my bills so I can continue to keep doing this.

When I run out of money, I'll figure something out. Contract work will probably be a temporary means of building back up my cash buffer (or cash cache if you will) so I can get back to my own stuff. (That said, I'm not looking for work.)

Continue reading →

Constantly Changing

Posted on

I recently installed gaug.es on my site (which is totally awesome). I noticed most of my traffic goes to blog posts that are decently old. At the time they were accurate and the stuff I mentioned was, at the time, the best practice.

It's funny how quickly things change in the software world. A blog post less can be super horrible advice less than a year later. That's why I never recommend a book to someone wanting to learn Rails. That stuff changes constantly. I still think Aaron's books on iOS programming or Mac programming are really fantastic. I learned with his book on Mac programming before iOS came out. (He has a book on Objective-C too. I haven't read it, but I'm sure it's fantastic.)

Objective-C doesn't change nearly as much as the Ruby world does. Recently we've gotten Objective-C 2.0 (plus the advancements in the Apple LLVM compiler) and ARC. Everything is always backwards compatible without making things too crufty. It's really amazing how well it's held up. More on all of this later though.

Continue reading →

Automatic Reference Counting

Posted on

Automatic Reference Counting (or ARC) is a new advancement in Objective-C with the LLVM compiler. There is a lot of debate in the community about its place. I've worked with people who completely despise it and people that think it's the best thing since sliced bread (which by the way, is pretty great). I have some thoughts on ARC too.

I tried it on a Mac app and an iOS app. At first it was really hard to let go of retain, release, and controlling the details of an objects lifetime. After awhile, it was really nice to not write dealloc and just release every ivar.

When I switched back to work on a non-ARC app, I realized how annoying it is to write memory management code. Now, we're switching all of our apps at work to be ARC. Here's are my two biggest reasons:

Continue reading →

On Managing Money

Posted on

I generally suck at managing money. My usual attitude to paying for anything is "I need this, so here is the money." When people ask me how much things cost, I never know. This is stupid.

I've kinda of brainwashed myself into thinking I don't have a choice except to pay for this. Doing pretty well as a software engineer in San Francisco makes this a possibility. I realize how stupid this is.

Anyway, I'm starting to hopefully break the habit.

Continue reading →

UITableViewCell Silly Magic

Posted on

Ever had a UITableViewCell's imageView not update when you set it's image in a callback or block? It's amazingly frustrating. I usually end up going over and over the code to make sure it sets it on the main thread, the image isn't nil, the image view is on the screen, etc, etc.

UITableViewCells don't update when you set the imageView's image. UITableViewCell's imageView is magical and stupid. If you don't have an image in the imageView, it will nil it out and remove it from the contentView. When you set the image, it will cache it and do some silliness so your updates don't work.

Make your own image view. Easy as that. Don't use the imageView property unless you want it to work exactly the way Apple uses it in Music.app for albums. For anything else, just make your own and add it to the contentView.

Continue reading →