Static Table Cells in iOS

February 28, 2012 Leave a comment

I have been fiddling with iOS lately, and I was working on a project which used a TableView with static cells.  The project uses Core Data and a Master-Detail View Controller, and when you create such a project in XCode, it populates the project with a bunch of code to do the Core Data interaction, which in my case was completely useless.  As I started to rip it out, my app started crashing with this error:

*** Terminating app due to uncaught exception 'NSUnknownKeyException',
 reason: '[<MasterViewController 0x725ea00> setValue:forUndefinedKey:]: this 
class is not key value coding-compliant for the key staticDataSource.'

After much searching, I found out that this error indicates that something in the NIB/Storyboard has an outlet called “staticDataSource” in the MasterViewController class. I looked through all of the outlets in my storyboard, and found nothing.  I grepped every file in the project for “staticDataSource” and found nothing.  I randomly tried adding a property to MasterViewController called staticDataSource (I made it an NSSet), and the app stopped crashing, but didn’t show my static cells.  Finally, in a random effort, I changed MasterViewController back into a UITableViewController subclass (I had changed it to a UIViewController), and everything worked perfectly.  So apparently, despite what you may read, static table views do in fact need a data source, and making your controller a subclass of UITableViewController automatically provides you with the needed property.

Categories: Uncategorized

Excellent Mac Apps

September 13, 2011 Leave a comment

There are quite a few apps I use regularly that I find really useful.  Here’s a list:

  • 1password – this one is huge.  It’s expensive, but worth it.  It keeps track of all of your passwords and allows you to stop using the same password on a bunch of web sites.
  • Adium – obvious, but worth mentioning
  • Dropbox
  • Evernote – free and great for keeping track of notes from meetings, etc.  Also an iPhone app with very good sync functionality
  • Meerkat – SSH tunneling.  Works great, but is a bit pricey.
  • Mental Case – great flash card app with iPhone support.  The syncing is a little clunky, though.
  • Reeder – RSS reader
  • Wunderlist – To do lists.  Also an iPhone app, but the syncing seems a little buggy right now.
  • DBVisualizer – Database client.  Works on pretty much every database.
Anyway, I would recommend all of the apps in this list.  They are all critical to my productivity.  The ones that are not free are worth the money, in my opinion.
Categories: Uncategorized

How to trust a certificate in Java on Mac OS X

June 30, 2011 Leave a comment

Yesterday, Apple released an update to Java for OS X.  I had trusted a self-signed cert with my old java installation, and it stopped working with the update, so I had to figure out how to add it again.  It’s not very hard, but kind of tricky to figure out, so here you have it.

First, export the cert using a web browser or whatever.  I used firefox, because it is easy, and I couldn’t figure out how to do it in chrome.  You should end up with a simple PEM encoded file.  Then here’s how you import it:

$ cd /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security
$ sudo cp cacerts cacerts.orig
$ sudo keytool -importcert -file your_cert_file_here -keystore cacerts

you’ll be prompted to trust it, then you are done.

Categories: Uncategorized

Nerd bucket list

June 3, 2011 Leave a comment

I’ve been doing pretty much straight Java programming for the last 4 years and it has not escaped my attention that Java seems to be falling out of favor in the programming community.  Anyway, I’m currently spending some time branching out and learning a few other languages/frameworks/etc.  I’ve also been going on a tour of the various nerd meetings in Phoenix, seeing what the user communities are up to and which are most vibrant.  I made a semi-prioritized list of things I want to learn, which is based on stuff I’ve read online, what’s cool locally, and personal preference, so here it is:

  1. ruby/rails
  2. iphone/objective c
  3. scala
  4. javascript (already familiar, but become a master)
  5. node.js
  6. haskell
  7. groovy/grails
  8. python
Categories: Uncategorized

Java and overcomplication

May 9, 2011 Leave a comment


When I first started working with Java to do real work, the servlet spec was pretty immature, and I was coming from a world of cgi-lib.pl and PHP.  Things were quite simple.  You wrote a class that had a method that received GET and POSTs, called some simple methods to get the decoded query string parameters, and printed out the results.  It was easy to learn, but the code was not pretty or well organized.  Calls to the database were simple, ugly, and prone to connection leaks.  They were easy to write, however.

Fast forward to 10 years later, and in order to write a “clean” Java web app, you need to be using an MVC framework, persistence APIs, etc. This involves pulling in a complicated tree of JAR dependencies, composing complicated XML configuration, and implementing highly abstracted interfaces which require quite a bit of thinking to get your head around.  I can’t help but think if I were just getting into Java right now, I’d be intimidated almost to the point of giving up.

Java is still pretty solidly established in the “enterprise” space, so I don’t see it disappearing anytime soon. If you want to look to the future, however, it is probably wise to take a look at what the smaller companies and startups are doing.  They have the benefit of starting fresh and being able to use the technologies that most effectively support their goals, without having to port existing stuff/retrain staff.  Java is present in those environments, but other technologies seem to be far more well represented.  I wonder how much this has to do with the Java community’s progression over the last several years to the point where it is highly complicated and difficult to learn.

Categories: Uncategorized

SVN suck of the day

April 26, 2011 Leave a comment

What is this all about?

alwold:classes alwold$ mkdir -p udirect/apis/context
alwold:classes alwold$ mv udirect-hibernateContext.xml udirect/apis/context/
alwold:classes alwold$ svn status
~       udirect
alwold:classes alwold$ svn add udirect/
svn: warning: 'udirect' is already under version control
alwold:classes alwold$ svn status
~       udirect
alwold:classes alwold$ svn up udirect/
D    udirect
D    udirect
Updated to revision 56109.
alwold:classes alwold$ ls
log4j.properties	udirect
alwold:classes alwold$ svn status
?       udirect
alwold:classes alwold$ svn add udirect/
A         udirect
A         udirect/apis
A         udirect/apis/context
A         udirect/apis/context/udirect-hibernateContext.xml
alwold:classes alwold$
Categories: Uncategorized

Subversion is a steaming pile of garbage

November 4, 2010 2 comments

Allow me to demonstrate:

alwold:model alwold$ svn status
alwold:model alwold$ svn up
At revision 52583.
alwold:model alwold$ ls
alwold:model alwold$ svn up Address.java
A    Address.java
Updated to revision 52583.
alwold:model alwold$ svn up
At revision 52583.
alwold:model alwold$ ls
Address.java
alwold:model alwold$ svn up Phone.java
A    Phone.java
Updated to revision 52583.
alwold:model alwold$ ls
Address.java    Phone.java
alwold:model alwold$ svn status
alwold:model alwold$ svn diff
alwold:model alwold$ svn up Person.java
A    Person.java
Updated to revision 52583.

See?  I can’t believe this stuff.  Bush league.

Categories: Uncategorized
Follow

Get every new post delivered to your Inbox.