Douglas Purdy

Archive for the ‘Apple’ Category

Bento

with 2 comments

As you may know, my vision is all about giving people the power to create, access and share their data as they will.

Although I work at Microsoft, I love to see other companies making progress on technologies that I believe soundly support this vision.

Recently, I have been using a product by FileMaker (owned by Apple) called Bento.

There is both a Mac and iPhone version.  You can sync your “database” (called a library in Bent0) between your Mac and iPhone.  You can also share your libraries with any Mac on your local subnet – like iTunes – via Bonjour.

I could nitpick features I want and lament what I consider a powerful platform play Apple could execute on, but in general I have nothing but praise, great praise, for this product.

If you own an iPhone or a Mac, I really encourage you to check it out. 

Great work Bento team!

Written by douglasp

January 17th, 2010 at 5:06 am

Google Reader to Twitter (rdr2twt), Part II

without comments

Prereading: Google Reader to Twitter (rdr2twt)

In the interest of doing a simple comp for some other work I am doing, I decided to move this mere trifle to Google App Engine.

It took around 100 LOCs of Python code.

Observations:

  1. The local SDK environment (dev fabric in Azure-speak) is straightforward, did what is was supposed to do, and mostly stayed out of the way.
  2. Using whatever Python libraries I wanted was reasonable, although I had some issues with paths around the GData client (which I wanted to use for the Reader feed).  I ended up using ElementTree and urlfetch directly, not a big deal.
  3. I didn’t like the fact the the SDK environment didn’t run cron jobs, but I did like two things.  First, it told me that the configuration was right and when the job would have right.  Second, cron just does supports HTTP GET, so it makes trivial to test.
  4. The online management environment is quite nice.  I like the analytics a great deal for example.
  5. TextMate is hands down the best text editor on the Mac.  This is not a GAE observation, but I want to the Intellipad team to read this and get motivated by the fact that I am using a different text editor.

I am thinking about adding more to see how this scales with application complexity. Two ideas are to make rdr2twt a public service (needs UI, etc.) or to use this as a prototype of some Infobus ideas that I have.  Still thinking on it.

That said, this has to compete with the siren call of the iPhone.  I am getting a lot of pressure to use the basis of LocoFoto as launching point for a couple of different apps.

Written by douglasp

April 16th, 2009 at 4:41 am

Locofoto 1.1

without comments

Locofoto 1.1 was released last week.

It only took ~5 days to get the minor version updated.

In this release, there is a Locofoto settings panel in the Settings app that let’s you control how may photos to view in the table.

In addition, startup performance is improved.

What is really interesting to see is the number of photos from all over the world that are being uploaded.

Had to delete some of them, but they certainly interesting…

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=305227469&mt=8

Written by douglasp

March 4th, 2009 at 8:19 am

LocoFoto (the iPhone app) is released

with 5 comments

Seven days after submitting to Apple, the application is now approved and available for download on the AppStore.

For context, this was an idea SNinja had and I decided to write the app as a little experiment to iPhone development in a “real” way.  My goal was chiefly learning and to provide something that maybe my friends and family would like to mess around this — but who knows.  You can read more on the journey from Coding, Stabilizing, End Game and Releasing.

So what does the application do?

LocoFoto detects your current location and shows you pictures taken previously at the same location.

LocoFoto uses a number of photo services including Flickr and LocoFoto’s own photo service to provide a wide range of location- specific photos.

LocoFoto lets you to take geo-tagged pictures using the iPhone’s camera and add them to the list of photos at your current location.

iPod Touch users can upload pictures from their photo library, adding them to the photos for the current location.

LocoFoto automatically updates the photo list as you change location providing an exciting way to explore new locations and see familiar places in a different light.

Screenshots?

screenshot1screenshot2screenshot3

If you have an iPhone or iPod Touch, you can download the app from http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=305227469

Version 1.1 is already submitted to the store (I want to see how long an update takes — and I have a fix to increase startup perf), so you may see a little update badge soon.

Written by douglasp

February 19th, 2009 at 7:26 am

iPhone application submitted to AppStore

with one comment

On 2009/02/11 I submitted my iPhone applicaton to the AppStore via iTunes Connect.

It is still “In Review”.

Continuing my lessons learned…

XCode has a very severe bug (or feature — eye of the beholder) with code signing of iPhone applications.  This was by far the most painful part of the entire process.  As I said before, I would have happily jumped into a Sarlacc Pit to end my suffering.  Getting the app signed with the final provisioning profile merely reconfirmed my earlier findings.

That said, I found a workaround that seems to fix any such issues without fail.  You open up the project file and manually replace the UUIDs for provisioning profile you want to use.

Other than that, the uploading process was straightforward — provide the application metadata, a few icons, the binary and then wait.

And wait.

And wait.

Perfection has its price…

Written by douglasp

February 17th, 2009 at 5:35 am

Done with the iPhone application

with 2 comments

I am declaring the iPhone application that I am writing “done”.

It has actually been done for about a week, but I have been waiting on licensing/legal issue to clear before I post the application to Apple to see if they will approved it.

I hope to clear that hurdle this weekend or early next week.

I have no idea how long it is going to take for Apple to review and approved it, but I am excited to see how people like it.

I will be perfectly happy if just my friends and family enjoy the application, but who knows, there could be a hit here.

I did learn a couple of things in the “beta” period:

  • As far as I can tell, the iPhone has no mechanism to tell you if you can connect to the network (is a 3G or Wifi connection available?).  There are ways to determine if you can connect to a given address if you are already connected to the network.  I mistakingly thought these APIs would “do the right thing”, but I was getting the wrong result when the application was run on an iPhone without push email turned on or just after airplane mode was turned off.  The workaround is simple, see if you can connect to a well-known address and catch the exception.  I would love to learn of a cleaner way to do this, so if you know, please share.
  • The Settings.bundle is a wonderful feature to declaratively build a “control” that integrates with the Settings application in a first class way.  I used this feature to create the equivalent of the Calculator Construction Set for SNinja to help me tune the application.

Written by douglasp

February 7th, 2009 at 7:16 am

OmniFocus for the iPhone

without comments

I purchased the iPhone version of OmniFocus today.  It is the most expensive application that I have purchased for the iPhone ($19.99 if I recall correctly).

Thus far, it appears worth the cost, but time will tell.  I continually challenge the processes that I use to run my life, always finding them wanting in some regard eventually.  If I am still using this in 90 days, I will deem it a “fair trade“.

The application follows a variant of GTD which I have never tried before, although I have listened the audiobook.  The GTD system seems effective in theory, I just never had an opportunity (or the desire frankly) to put it unto action.  I no longer have any excuse.

One of the nice things about the OmniFocus is a fully functional Mac OS X version that it can sync with iPhone version over Bonjour.  Both versions of the application support WebDAV, so I am considering setting up my Apache server to serve as the sync point between them.

Speaking of WebDAV, this is the first app that I have seen have first class support for this protocol in some time.  I had assumed developers would be moving to APP or something else.

Written by douglasp

February 5th, 2009 at 7:16 am

Posted in Apple, Software Review

iPhone SDK 2.2.1 is out

without comments

Written by douglasp

January 28th, 2009 at 4:15 am

How do you know you are writting a real iPhone app?

without comments

#if TARGET_IPHONE_SIMULATOR
//do something
#else
//do the same thing as above, but different
#endif

Written by douglasp

January 28th, 2009 at 3:27 am

The iPhoto application enters beta

with one comment

The iPhone application that I am writing entered Beta today.

Our Beta is going to be small, based on the Ad Hoc distribution limitation of 100 users.

I hope we can get it on the App Store in February sometime.

A couple of things that I have learning writing this app:

Cons:  Mainly nits

  1. XML support on the iPhone could use some help.  It has a SAX-like API that I had to wrap.
  2. I do not like the split between @property and @synthesize.  I think would be so much clear to combine them.  I know why they are not, but from a productivity standpoint one construct would have made me happier.
  3. I really, really wanted anonymous delegates/methods.

Pros: Outweighed the cons significantly

  1. UIViewControllers are incredible productivity tools on the iPhone.  I don’t believe we have anything close to this in the .Net Framework, but I could be wrong.
  2. UIImagePickerController rocks, although there seems to be a bug where you have to be careful with number that you allocate, so it is better to just cache one.
  3. CLLocationManager rocks, although  it seems to some times pass in my previous location, even after I have travelled a long distance since the last time it was enabled.
  4. I love Objective-C and Cocoa more each day (modulo the language nits above)

Written by douglasp

January 27th, 2009 at 4:58 am