Vincent Gable’s Blog

September 30, 2008

The Hollow Friends

Filed under: Quotes | , , , ,
― Vincent Gable on September 30, 2008

…there is actual precedent for creating value for people with technology. Think of word processors, databases, spreadsheets, web browsers, web publishing, search engines, email, etc. Social media is the first major computing revolution that as far as I can tell, has produced essentially nothing.

But the social media craze is perfectly fitting in a society where producing nothing has been in fashion for years. Mortgages without credit. Profit without product. Riches without risk. Oops.

Hank Williams

And here’s Marlon Brando reading The Hollow Men in Apocalypse Now.

September 29, 2008

Lovable Software

Filed under: Design,Programming | , , ,
― Vincent Gable on September 29, 2008

Money can’t buy you love, but love can bring you money. In software the only sustainable way to earn money is by first creating love, and then hoping that some folks want to demonstrate that love with their dollars.

…. Everything should be shareware to be tried and tested until its value is proven and the love-meter swings open the wallet. If I were to pass on some music or a piece of code I become a vector of word of mouth viral marketing, the best kind, the kind that money can’t buy.

Daniel James

OS Sounds

Filed under: Uncategorized | ,
― Vincent Gable on September 29, 2008

Here’s a case where Windows 98 “beats” out Mac OS X.

September 27, 2008

CFShow is NSLog for Core Foundation Types

Filed under: MacOSX,Programming,Tips | , , , ,
― Vincent Gable on September 27, 2008

CFShow(coreFoundationThingy) will print out a description of coreFoundationThingy to the console. Output looks something like:

{value = w:1186.000000 h:687.000000 type = kAXValueCGSizeType}

If NSLog() is printing something out as an NSCFType, try CFShow().

Apple Has Learned The Importance of Play. We Should Too

Filed under: Design,Quotes,Usability | , ,
― Vincent Gable on September 27, 2008

…joyful playful exploration is critical to learning. Rote learning and memorization is less effective.

I believe that a big part of the reason that Apple has been successful is that they figured out long ago that their products had to have the elements of joyful exploration that are the hallmarks of great toys

Hank Williams

The short article is worth reading.

September 26, 2008

Simple English

Filed under: Quotes,Usability | , , , ,
― Vincent Gable on September 26, 2008

There are 400 million native English speakers, but over a billion people who speak English as a second language. … At any given instant on this planet, most people who are speaking English are not native speakers.

Perhaps we should take a good look at common forms of incorrect grammar and see if they actually make our language easier to learn. Maybe we should give a loose leash to those who are trying to make English more accessible.

I am going to try to use simple language and limited slang in my writing. When one considers the population of the world, it seems rather rude to address only the native English speakers.

Aaron Hillegass

September 25, 2008

Simple Truths About Cross-Platform Apps

Filed under: Design,MacOSX,Programming,Quotes | , ,
― Vincent Gable on September 25, 2008

Scott Stevenson tells it like it is,

Even if Apple recommended cross-platform toolkits for Mac development, the basic premise of Mac software market would not change. Mac users bought the computer they did because they found the experience more appealing. Bringing an application across from Windows with minor tweaks simply won’t resonate with this sort of user.

And gives free advice,

Maybe the most important thing you will ever need to know about Mac development is this:

Mac users will generally favor an app with a better experience over the one with more features.

The full article.

September 24, 2008

I Lost My Phone And Need Ur Numbers!

Filed under: Design |
― Vincent Gable on September 24, 2008

Several times a year, I see some kind of mass-message sent out on Facebook by someone who lost their mobile phone. They want all their friends to reply with their phone numbers, so they can populate their new phone’s address book. This should not be allowed to happen. Your service-provider should automatically backup the address book on your phone for you, so that if you ever lose your phone, your contacts can be put on your new phone before it’s even active.

Blaming the “lusers” who lose their phones really is wrong headed. Even though you can sync your phone’s address book with your computer, it’s too much work for people, especially if they aren’t technophiles. (Hell I don’t do it, and I’ve got my own website.) And I would argue that it’s not even worth the effort! Losing a phone is an infrequent event, and and it’s just too easy to rebuild a social contact list. Even the most technophobic can just ask a few friends for the digits of their common friends. Obviously things like Facebook, email, and google make this process even easier. (And if all else fails, you can start calling the most-common numbers on your phone bill…)

Besides, ever since the dawn of personal computing, it’s been clear that people will not pro-activly take the time to backup their data, even if it’s single most important thing they could do. Engineers need to design around human fallibility, instead of believing they can “educate” people who’ve got better things to do.

What makes this all so bad to me is that the technology to automatically and invisibly safeguard a person’s address book has been here for decades. Whenever a contact is added to an address book, the phone could automatically send an SMS back to the service provider, telling them the name and number of the new contact. The contents of the message would be encrypted for security and privacy. On receipt, the tellco would add this tiny chunk of information to the database they already have on the customer.

And I’m sure the engineers who actually build mobile phones for a living have better ideas for doing this.

XML Parsing: You’re Doing it Wrong

Filed under: Cocoa,MacOSX,Objective-C,Programming,Quotes,Sample Code,Tips | ,
― Vincent Gable on September 24, 2008

There are lots of examples of people using text searching and regular expressions to find data in webpages. These examples are doing it wrong.

NSXMLDocument and an XPath query are your friends. They really make finding elements within a webpage, RSS feed or XML documents very easy.

Matt Gallagher

I haven’t used XPath before, but after seeing Matt’s example code, I am convinced he’s right, because I’ve seen the other side of things. (I’ll let you in on a dirty little secret — right now the worst bit of the code-base I’m working on parses XML.)

    NSError *error;
    NSXMLDocument *document =
        [[NSXMLDocument alloc] initWithData:responseData options:NSXMLDocumentTidyHTML error:&error];
    [document autorelease];
    
    // Deliberately ignore the error: with most HTML it will be filled with
    // numerous "tidy" warnings.
    
    NSXMLElement *rootNode = [document rootElement];
    
    NSString *xpathQueryString =
        @"//div[@id='newtothestore']/div[@class='modulecontent']/div[@class='list_content']/ul/li/a";
    NSArray *newItemsNodes = [rootNode nodesForXPath:xpathQueryString error:&error];
    if (error)
    {
        [[NSAlert alertWithError:error] runModal];
        return;
    }

(I added [document autorelease]; to the above code, because you should always immediately balance an alloc/init with autorelease, outside of your own init methods.)

September 21, 2008

The Graphing Calculator Story

Filed under: Programming | , ,
― Vincent Gable on September 21, 2008

Just read this. It’s easily the most amazing software development story I have ever heard. And yes, I used that software in school.

Older Posts »

Powered by WordPress