Jun 30

My Thoughts on the iPhone so far

Tech 2 Comments »

I am having fun with the iPhone. I checked out the downtown Palo Alto store and ran into Dave Winer in a coffee shop across from the Apple Store. It was quite a spectacle there, with copious TV crews and Scoble was having the time of his life in front of as many cameras as he could get in front of ;)

The line went a long way down the street and I had no intention of hanging out there. Instead, I went over to the Stanford shopping mall store at ~8pm and there wasn’t a line at all. Five minutes later and I had the phone.

I am already on AT&T (Cingular) and there were some glitches in the initial setup. I was told that the store wasn’t responding… the activation took ~30 minutes (it had to send me an email after the fact) and such… but fairly painless.

The Good

It is a beautiful device. Finger-flicking around is responsive and enjoyable. I was synced quickly enough and on my way, and it didn’t take long to learn the system. Very nice indeed.

The Safari browser is a real pleasure to use. Even though the screen is small, I am quite shocked at how well you can browse “normal” web pages. Great job. Hopefully they will fix the view issues for developers.

Spanning Sync is my friend, and it means that I have a nice calendar on my phone. Thank you.

The Bad

I miss Gmail for Mobile. Accessing Gmail via POP3 is so painful:

  • I don’t want to manage my email in two places
  • I can’t tell Gmail to only throw back email in my inbox, so I get a ton of mail that I normally have archived
  • Labels gone. Organization gone.
  • Search.

I really need a rich Gmail client :/

The biggest issue is the lack of power user options. There really isn’t much here. There isn’t a place to change the server port for email. Where are email filters? “Mark all email as read”. Please. Why can’t my “notes” be saved online? I want my Safari bookmarks to use del.icio.us.

The Google Maps application is nice, and it is great that it uses addresses from your contacts, but I wish that it tied into my “Saved Locations” as well.

In general the phone is very “sync” centric, which means you spend time working out how you can get your data into the Mac apps so they can sync over. Since it is meant to be an internet device, I wish I could tell it to get data from web services too.

The keyboard is working out OK for me. I have fat fingered a few things, but the system is so far very smart and working those out too. It is very liberal.

So far I am happy with the iPhone and it will be fun to play with it more. There is much to be done though, and I am sure Apple isn’t going to rest here ;)

Jun 28

Google Gears Manifest Generator

Google, Tech 1 Comment »

One of the modules that makes up Google Gears is the LocalServer that allows you to capture web resources so they can be served up when a user is offline.

The ManagedResourceStore component allows you to declare which resources you want the LocalServer to capture for you. You use a simple JSON manifest file that you can maintain with any text editor.

However, if your application gets large (lots of resources) you may not want to manage it in this way, so I created an open source Ruby library that allows me to generate this file given some rules:

For example, this will generate the manifest as a json string, and create entries using the current directory and sucking in everything apart from files starting with a ‘.’.

json = Google::Gears::LocalServer::Manifest.new do |m|
m.version = 'MyNewVer'
m.add_entry({ :url => 'main.html', :src => 'foo.html' })
m.add_extra_info :to => 'main.html', :redirect => 'foo_redirect.html'
m.find_entries :in => '.', :ignore => Google::Gears::LocalServer::Manifest::LEADING_PERIOD
end

find_entries is the real meat here:

# Defaults to '.'
find_entries :ignore => Google::Gears::LocalServer::Manifest::LEADING_PERIOD

# Only capture HTML pages
find_entries :include => '\.html'

# Look in the resources subdirectory, but use the URL 'static'. This is useful if your directory on disk doesn't match your URLs
find_entries :in => 'resources', :root => 'static'

Once you have created the entries, you may want to add some metadata to a few of them. This is where add_extra_info comes in:

# Find the 'main.html' entry and add a redirect. You can also use a different :src or :ignore_query.
add_extra_info :to => 'main.html', :redirect => 'foo_redirect.html'

You can also create a manifest object (instead of using the block version) if you need to add a few things, get the output, add a few more, etc etc.

If you find yourself not wanting to manage your Manifest file, check out the project.

Jun 28

Rich functionality hurts perceived speed for the iPhone

Apple, Tech 1 Comment »

The iPhone has the fancy new Safari browser (which Nokia has had for awhile, but still) and the un-fancy painful EDGE network is going to kill it.

The internet piece will seem so painful as you will get used to using it via WiFi (which is great) and then when you use it on EDGE you will be crying. Minutes to download a page???? really?

At least on a Blackberry with a minimal system (although it drives me nuts that the browser is painful wrt CSS.. display:none. please!) the latency and download speed is painful, but the data is so small that it comes down in short order.

Jun 27

Google Gadget Ventures

Google, Tech No Comments »

Want to build a business around Google Gadgets? Google is looking to help with Google Gadget Ventures:

Google Gadget Ventures is a new Google pilot program dedicated to helping developers create richer, more useful Google Gadgets. Inspired by the success of iGoogle, which has been driven by the creation by 3rd-party developers of a broad range of gadgets, Gadget Ventures provides two types of funding:

  1. Grants of $5,000 to those who
Jun 27

Facebook’s chance to take over the social world

Tech 5 Comments »

I didn’t truly get Facebook. I would sit there listening to my sister-in-law who would be using it constantly and I would wonder why. Why would someone waste their time watching “walls”?

The only comparison I had was LinkedIn. I have played the game on LinkedIn, but what have I gotten? I feel like all I get…. is bugged.

“Here is a Job you don’t want”. “Can I use you to talk to FOO?” [especially from recruiters]. What value am I really getting here? It felt like LinkedIn was getting a bit of a surge, and seeing status changes could be useful. “Huh, he just moved to FooBar Inc huh. That is cool”.

Then Facebook announced their API play and I started to see more non-university-or-high-school folk joining it. I decided to join too, and now I can see why Mark Zuckerman is so bullish. Allegedly turning down Y! for a cool billion is a tough pill… but still.

Facebook is addictive. I see people… friends… on there constantly. They use it to set status (instead of Twitter, or using Twitter inside of Facebook thanks to the API). They use it to upload photos (ditto…). They use it as an email client for god sake. Why not just email each other? It appears that Facebook is their world, and why leave it?

Facebook is also incredibly viral. If you are at a Web 2.0-y startup and you haven’t written a Facebook application yet, you are missing out. If I started a cmopany tomorrow the first thing I would do is create a Facebook app that uses their API (as well as a Google Gadget, Mapplet, etc etc). What an incredible delivery mechanism!

The one KEY feature:

Bob Harris added the DionsNextCompany application

As soon as I saw the first of these in my stream I sat there and thought “wow”. Holy virality. No wonder new cool apps grow to a huge user base within Facebook.

Facebook really is a platform. If you have an idea that is AT ALL related to people, and people connecting to other people, then why wouldn’t you build something on top of Facebook?

LinkedIn is bleeding. Many LinkedIn users are signing up with Facebook, and are finding that it is a true platform. Reid has talked about how they are maybe kinda going to open up their platform in the same way, but he has to do it pronto, else it may be too late for LinkedIn to reach its potential.

I personally wish that there was a nice way that these islands could work together of course. Being “500+” on LinkedIn makes it really painful to think about starting again on Facebook.

Work is boring and a chore. Friends are interesting and fun. This is the stuff that makes you hit reload ;)

Bob Harris went from being “in an open relationship” to “it’s complicated”.

I think I finally get it….. and I think that we are going to see a WHOLE lot of Facebook apps in the near future, and businesses that are made by the platform itself.

Jun 25

Rhino on Rails

Tech 6 Comments »

Steve talked about his work with porting Rails to JavaScript at FooCamp.

Yowser. Part of me thinks it is cool as JavaScript isn’t a bad language as many think (not that it doesn’t have crazy warts), and JavaScript on client and server can be interesting.

Part of me thinks that it is crazy, and brings up the question on when something can be called “X on Rails”. How much do you have to port? Don’t you need Ruby-y thinks for a lot of it? Did you port ActiveFoo too? Or, did you just use some of the nice “features” of Rails (convention blah blah) and really you have done a totally different framework, and you would be better off calling it something else? :)

Jun 23

Developer / PM Ratio

Tech No Comments »

Dare talks about the PM to Developer ratio for Popfly, and in general.

1:1 seems pretty darn crazy to me. I am more used to the 1:5 range at the least. Of course, it does depend on who the PM is and what they do.

If they:

  • Call meetings
  • Ask you “when will you be done with that”
  • Little else….

Then one is all you need on a project (or zero?).

If they:

  • Get in deep on the project requirements
  • Actually write code (shock horror)
  • Write sample applications and tests
  • Make sure solid docs are in place

then they are very valuable indeed.

Jun 21

Base diving with Google Gears

Ajax, Google, Tech 1 Comment »

I have been having a really good time building some apps with Pamela Fox. We are now creating a series of howto articles, and the first one is out: Base diving with Google Gears which shows a simple application that lets you search Google Base, and keep the info offline.

Many more fun things are coming, including some games ;)

Jun 20

GData for Ruby 0.0.4 Released

Ruby, Tech 1 Comment »

Steve Jenson has joined me over at GData-Ruby, and has added support to create entries in blogger, and fixed a few bugs.

Thanks for the help Steve. Some others are working on adding services. Working with the Ruby library feels quite natural to me, and it is nice to not be writing millions of services and factories and ….

Jun 18

Browser User Agent Strings

Tech 13 Comments »

Is it me, or are browser user agents getting sillier and sillier and sillier:

Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A542a Safari/419.3

I know that they result from testing, but sheesh. Extrapolate this to 2020 and what will we have?