Author Archives: Lou Franco

Amazon Kindle SDK (KDK): First looks

Last week, Amazon announced that they will be releasing an SDK for creating Kindle Apps. I know that three days before the big Apple Tablet/Slate/Canvas announcement, I’m supposed to be getting ready to tabletize my app, but the idea of developing for the Kindle is looking kind of interesting.

Given that the beta isn’t out yet — there isn’t a lot of information about the KDK yet. However, there have been some successful hacks of the Kindle and Amazon was forced by the GPL to publish their modifications, so we do know some things:

  1. The Kindle runs Linux
  2. Kindle GUI’s are written in Java
  3. There will be three models of apps, free, one-time purchase, and subscription. The first two will have a monthly bandwidth cap of 100KB/user.
  4. Advertising is listed as something you can’t do — perhaps they mean an app that only advertises, but even so, why not? Mobile advertising is large part of the app ecosystem, so I assume in-app advertising will be allowed.
  5. A generic reader is not allowed — again, does this mean a PDF reader wouldn’t be allowed? I can see Amazon not wanting the 3G being used to buy from other stores, but why not let me read content I get from other means (or from subscription apps).

The brevity of the developer guidelines is welcome, but I hope they elaborate on them in the near future.

InnovateHolyoke

InnovateHolyoke is the online hub for information about the High Performance Computing Center that is set to open up in Holyoke in 2011.

The GHPCC planned for Holyoke will not only provide an invaluable increase in the computing capacity that would bring all these benefits to the partnering institutions. It would also serve as a showcase of green energy use and green facilities design, be scalable to meet the needs of additional partners and computational demands, and serve as a catalyst for economic, educational, and workforce development in Holyoke and the region.MIT had developed plans in 2007 to locate a high performance computing center in Holyoke due to the region’s quality access to the internet, affordable land, and availability of low-cost and renewable energy. The impact of the global economic recession led MIT to suspend their plans and subsequently reach out to leaders at the University of Massachusetts to jointly address capacity needs for high performance computing.

This is an important development for the region and will help to establish a technology hub in Western MA. I have been appointed to the education/training subcommittee as a member of the Regional Employment Board and will hopefully have more to share as we start the work of the committee.

FounderCast

A couple of friends and members of the Western MA Developers Group have started a PodCast called FounderCast that’s worth a listen if you are interested in software entrepreneurship.

The format is a roundtable of technology three company founders (@dougmartin@cemerick, and @paulhake). In the first three episodes they have discussed the tools they use (development and sales), how they got their first customer, customer service and other topics. The pilot is unedited and rough, so don’t judge it on that one — by the third episode it got significantly better. You can also follow @foundercast on twitter.

Star Trek: Review from an ECM Perspective

Back in the eighties, David Letterman used to have a segment called Limited Perspective Movie Reviews, where movies would be reviewed by experts that only concentrated on a single aspect of the movie – for example, a dentist would review the teeth of the actors or a mortician would review Creepshow and only talk about how realistically the bodies decayed. In that spirit, I offer this short review of the usage of ECM in the new Star Trek movie.

Spoiler Alert: I have to give away some details of the movie in this review.

It’s a few hundred years in the future and information overload is still basically solved by serendipity. The entire plot hinges on Kirk seeing a similarity between some events from 25 years ago, a quick description of a distress signal from Vulcan, and an overheard conversation about an intercepted Klingon communication. 

There doesn’t seem to be much to tie them except a Romulan reference, which would be rare because, according to the original series, there were very few interactions with them. Any contact with Romulans was probably exceptional, so two within a day would be noteworthy, and Kirk had intimate knowledge of the older event.

But, why do they need to rely on luck? Shouldn’t their super-advanced computer systems alert them when there’s relevant information available? Kirk even mentions that the older event is well-chronicled in his “files” and that his captain knows all about it – so the problem is not capture, but something that we haven’t scratched the surface of yet – computer systems that notice connections and bring them to your attention. Even Wolfram Alpha doesn’t do anything with it’s computational model of all knowledge unless you ask it a question.

It seems that like today, they can collect data and search it, but that there isn’t any way for the system to analyze data as it is captured, make connections, and alert. Today, the closest I can come is with Google News Alerts and RSS feeds set up to search Twitter and other sources. But, I have to pick the keywords – I guess I could imagine some kind of Starfleet Twitter where someone is monitoring #romulan and sees the connection, but with so little traffic on the word, it doesn’t seem likely. But, it is its low traffic that makes it interesting this time – perhaps someone parked on Trending Topics would notice it.

So, I guess we’re stuck with that for at least another three hundred years – and being able to make those connections will still be a prized skill that makes one worthy of ridiculously quick promotions.

Static Code Analysis for iPhone Apps

Starting with Habits 1.1, I started incorporating static analysis into my build. In my previous experience with things like Lint and FXCop — I had found the signal to noise ratio to be too low to be useful. It’s hard to believe, but scan-build is 100% signal — every single issue it flagged was legitimate and needed to be fixed. Now, keeping Habits free from issues is easy, since I only have to deal with one or two at a time.

There were a couple of times I thought it was leading me in the wrong direction, but it was right so often that I just trusted it, and it was right about those too. I had a particularly interesting case with a custom table cell, where I wasn’t releasing properly, and causing a crash when I dealloced the window. Scan-build helped me make sure I found that before release.

Cocoa date functions are crazy

I thought Java was bad. Took me a while to figure this out and googling didn’t help, so I am just putting this out there for the next person who needs this.

To get the number of days in a month:

+ (NSInteger) getDaysInMonth:(NSDate*)date
{
    NSCalendar * cal = [NSCalendar currentCalendar];
    return [cal rangeOfUnit:NSDayCalendarUnit
        inUnit:NSMonthCalendarUnit forDate:date].length;
}

Reddit thread on iPhone Development

There’s a great thread by an iPhone developer on Reddit.

Yay! It took several months but as of today I was able to search for my app and I saw it listed inside the app store. Now you may be saying “so what”, but if you have ever looked into the steps that this takes, you know it’s something to celebrate.My app is a very simple game, but I think I’ve learned enough during this process to distill some important lessons that may help you if this is something you’ve been wanting to do…

I wrote a similar post when I finally finished my iPhone App.