Social Application Sharing on the iPhone

While I don’t own an iPhone, I’ve been watching this phenomenon occur over and over again. People, iPhone owners and non-owners alike, often pick up other people’s iPhone and take a look at what applications are installed on them. I’ve been trying to keep an eye on when I do this and when people do it to each other. It happens across the board even from one iPhone user to another. It’s the social app sharing phenomenon.

The market dynamics of the app store (e.g. what is the top selling app and so on) changes so fast that people rely on other people to see what is hot and happening. And they do that by picking up their phones and unlocking them. The real-world social sharing is probably just as powerful of a discovery mechanism as the App Store.

This doesn’t happen with many other phones. Very rarely do people want to see my trusty Blackberry Curve and it never happens some candy bar phone. So, you iPhone users, watch this happen around you if you didn’t notice it before. It’s most bizarre.

184 Words

Switching to Entourage 2008

Last week I started an experiment to work almost primarly in Mac OS X and put my VMware Fusion Windows XP machine on suspend. Most of the programs that I would have used in Windows like Word, Excel and Powerpoint work fine in the OS X version. The biggest (and worst) stumbling block I’ve hit is Entourage. It doesn’t work like Outlook, and it doesn’t work like a OS X application. It’s not a hybrid either. It’s just awkward to use. Here’s my hit list of issues.

  • While drafting an email, hitting Alt-Delete does not delete a whole word. It just acts as backspace.
  • Pushing Apple-Delete kills the message without warning and doesn’t place it in the drafts or Trash.
  • The shortcut keys between Outlook and OS X are totally different. Apple-1,2,3 to switch between Mail, Calendar, Contacts, etc.
  • Apple-F loads the find menu, it doesn’t forward a message.
  • Calendar allows you to snap items to the 15 minute boundary. It’s really annoying when moving appointments between days. Nobody in their right mind schedules things on a corporate calendar at fifteen minute intervals.
  • On My Computer is hokey. When you send a message it ends up in the On My Computer outbox. That just feels wrong since it’s going to go through my corporate outbox.
  • Reply and Forward flags are not sync’ed to Exchange. Annoying.
  • If you have a contact in your address book, but they’re a corporate contact (e.g. came from your directory service) it always looks up the local contact first even if it’s an Exchange to Exchange message.
  • Using Calendar to schedule meetings is broken. It’s nearly impossible to schedule resources like meeting rooms using it.
  • Hitting reply to an email that came from Outlook, Entourage breaks the horizontal lines that Outlook uses as separators sometimes. Also, the horizontal lines that it uses are 75% width versus Outlook’s 100% width ones. Just odd.

This is a view of coming from a life time Outlook user. Native users of Entourage may not notice any of these things. But native Mac users will given a bunch of the OS X behaviors that it also breaks.

354 Words

When VMware Fusion Networking Fails

Every now and then my Windows XP virtual machine goes on the fritz and cannot access the network. I restart Fusion, restart Windows XP, try to reinstall Fusion, changing from NAT to bridged, and back again but nothing seems to work. I’ve run in to this problem twice in the last month, and it was driving me crazy. It would die for a few hours or days and just come back to working as if nothing had happened.

The intertubes were of no help until I stumbled upon a set of tools that ship with Fusion that basically restarts the networking stack (actually I think it’s supposed to restart the entire VM). If you can’t seem to get anything to work on your VM in VMware Fusion, give this shell script a go from the Terminal. If you have HardwareGrowler running, you’ll see it detatch and reattach all the VMware devices.

sudo /Library/Application Support/VMware Fusion/boot.sh --restart

160 Words

Getting Hip(er) to Web 2.0

I admit it — I’m a very Web 1.0 participant on the intertubes. I spent most of my time on web sites like Yahoo Mail, New York Times, and the like. I read digg and am an avid Facebook user, but I’ve avoided some of the “cooler” and more interesting Web 2.0 companies.

Thus, I decided last week to get hip(er) with the times and plunge in to the world of last.fm and del.icio.us. Recently I’ve become a fairly exclusive Mac user (one MacBook, one MacBook Pro with VMware, and a Windows Server 2k3) and a Firefox user (never use Safari, and I don’t use IE in Windows any more). The plugs in for del.icio.us in to Firefox and last.fm in to iTunes are awesome. They make the cloud experience seamless with my desktop experience.

A while back I switched from Meebo to Pidgin (and now Adium) since the web experience wasn’t yet as good as the desktop, and I think that’s a kernel of why I like these two Web 2.0 apps a lot: I can use the apps I know and like (Firefox & iTunes) but they add value in to the equation by leveraging social effect and the ability to roam information between computers. The latter is really important to me since I use one machine for work and another at home, I have the same bookmarks between them and my music is scrobbled on both systems. For the bookmarks case, I used to use FolderShare but the Mac client for it is unusable. I still do use FolderShare, but only in my VMware Windows XP machine and my server.

276 Words

YouConvertIt

While trying to convert some .3gp/.amr files that I recorded from my mobile phone, I struggled to find a way to convert the files to a regular more desktop format (such as .mp3). Enter YouConvertIt. The site is pretty cool. You upload a file, give it what you want the output format to be, and poof, it’ll email you the converted files. It’s a bit of a Swiss Army Knife and since it’s a web app you don’t need to install anything on your computer. Cool and useful site.

90 Words

Apple’s AirTunes

I bought a used AirPort Express today and I can’t believe it took me this long to figure this out. AirTunes is a pretty phenomenal concept, but getting the whole set up to run with my WRT54G was painful.

It was unable to run in client mode. I tried a couple of times to get it going through the automatic setup to have it only do AirTunes, but the yellow light kept blinking. In the end, I set up with in WDS mode, which also turned out to be difficult to use. The trick was making sure both the WRT54G and the AirPort Express had the same wireless channel, and when putting the WEP/WPA key in the AirPort Express to prefix it with a “$”. Who knew?

In any case, it’s up and running and amazing. I highly suggest also throwing Airfoil in the mix so you can route YouTube videos and sites like Pandora through AirTunes.

159 Words

Adobe’s Open Screen Project

I don’t write a lot about what I’m doing at Adobe and it’s mostly since I’m working on projects that are not released yet and are still under development. However, today we announced the Open Screen Project, a cross industry effort to bring Flash and Flash technologies to more screens.

A the basic level, the next release of our Flash player runtime for devices (e.g. mobile phones, mobile internet devices, televisions, etc, etc) will be free. On top of that, we’re dropping license restrictions on the SWF format (the file that Flash runs on).

Personally, I think this is really cool. It allows people in the creative community to know that Adobe is commited to putting our player and client technologies on devices across all the places where people will want a rich and expressive experience. It’ll help get on the path to have a consistent experience for developers and creative professionals regardless if they’re developing for a desktop/web site, a mobile phone, a Chumby, or whatever other device Flash might run on.

175 Words

PHP Annoys Me, Sorta

I’ve been learning (re)-learning PHP the last few weeks for fun and there’s a lot to the language and community that I’m loving. The PEAR libraries are by and large fantastic – there are hundreds of them, even on the most esoteric subjects (Image/Barcode?). However, there’s a ton about the language itself that is driving me bonkers. I’ll give a few examples. Now, before I get totally flamed, I know this is probably 80% me not knowing enough about the various language features to get around these issues, so bear that in mind.

Example 1 – Compound Statements are for the Weak

I have a class, that returns an associative array. I want to be able to access it like this:

$oldest_value =  $viz->find_oldest_newest()["oldest"];

This makes sense. $viz is an an instance of a class, find_oldest_newest is a function that returns an array, and [“oldest”] is the accessor in to that array.

Nope, sorry says PHP: Parse error: syntax error, unexpected ‘[‘. However, this works:

$tmp = $viz->find_oldest_newest();
$oldest_value = $tmp["oldest"];

Example 2 – DateTime is Crazy

Where do I begin. First of all, pretty much the entire C library exists with date(), time(), strtotime(), etc. That’s great, that’s good. They all work on standard Unix timestamps. It starts to get crazy when you throw in the DateTime. For a guy like me, you’re used to objects to deal with this kind of stuff (e.g. timezone offsetting), so I gravitated towards using the DateTime object.

First of all, the DateTime constructor doesn’t take a Unix timestamp directly as a value. You can blame ducktyping here, but this is what you have to do to get a DateTime from a Unix timestamp:

date_create("@" . $rawdate)

Second, the DateTime object has no default toString! I can’t explain how frustrating it is to always have to date_format something when I should have just been able to echo it directly. It leads me to a mess like this:

public static function format_date($rawdate, $format)
{
if(gettype($rawdate) == "integer")
return date_format(date_create("@" . $rawdate), $format);
elseif(gettype($rawdate) == "string")
return date_format(date_create("@" . strtotime($rawdate)), $format);
elseif(gettype($rawdate) == "object")
return date_format($rawdate, $format);
}

Example 3 – Types? What Types?

Go ahead, tell me what the difference should between gettype() and get_class(). Thought about it? Nothing was your answer? Exactly. Not in PHP. gettype() only works on primitives. For objects, it returns “object”. And get_class, it doesn’t really work on primitives. Now, I get it that PHP was originally not an object oriented language. But when in PHP4? PHP5? they started baking OO notions in the language, why not make it complete and make the primitive data types objects.

Example 4 – I, for one, accept our new String overlord

If you look at a couple of the examples above, half the default library functions return a string data type as their result (e.g. gettype()). When did strongly typing go out of fashion? I get ducktyping, it’s all good. I used to write a lot of VB (VARIANT, anyone?), but that isn’t an excuse to throw strongly typed constants out the windows.

What’s wrong with a static class like TypeCollection::String, TypeCollection::Integer, etc, etc. Maybe it’s there and I haven’t found it. Also riddled throughout the PHP libraries is the concept of an array as a data type. If you look at some of the date and time functions, they’ll unpack a timestamp in to an associative array whose keys are “minute” and “second”.

Okay, I’m done venting. PHP is acutally pretty cool. Like I said the PEAR libraries (Image/Graph, while still under development, is amazing) are phenomenal, and the availability of community resources is a big win for me. I just wish that some things of the language didn’t seem to, well, kludgey.

649 Words

What Happened to RedYawning

About three weeks ago, the c: drive failed on RedYawning, my server that basically runs and hosts all my life (including websites, photos, etc). Luckily, this was just the system drive and it did not have any data on it. I keep all my data on a RAID-1 mirror, the d: drive of the machine. I ordered a new drive from NewEgg, popped it in, reinstalled Windows (2003 Server this time), and spent about two hours reinstalling everything. It was really quite easy with Windows Server, just mostly fiddilng knobs and dials to have it look like it did on the old Windows Server 2000. The server is back in action now, and back to blogging business for me.

117 Words

Windows Live Calendar

Windows Live Calendar is live! This has been many, many, many months in the making, starting with an idea a long time ago (it first surfaced when we started talking about rebuilding Hotmail three years ago!), to coding in two continents, to finally hitting the Go button today and RTWing (Release to Web) our product. This is the second v1 product I’ve been able to participate in from start to ship and it’s as unique and as exciting watching the service go online as the first time.

To give you an idea of what happens when we go live, we have a lot of folks in a conference room with a Polycom conference system where people are dialed in to. There are projectors with logs of the production machines displayed, people marking things on the white boards to make sure that changes and fixes don’t get forgotten and the actual folks pushing the software to the servers. We try to have the day itself scheduled down to the half hour or fifteen minute mark, but we do make changes to on the fly.

We had our whole data center ready and prepped to go today, so our “go live” moment was a final decision that was made with all the key stakeholders which then resulted in us marking the service as In Service, and within seconds new users were pounding on it, creating accounts! Thus, Windows Live Calendar was born. It’s amazingly cool to watch a log file fly by with reports of new users being created.

It’s not easy to make that final “yes” call. From late last week we’d been working long hours in the home stretch (including a 3+ hour conference call on Sunday night!). Lots of time checking, double checking and triple checking that everything when we finally said yes would work — and by and large it did. Of course, when you’re bringing a new service online, stuff doesn’t work (and it didn’t all work), so having everybody in that conference room I mentioned earlier was key to making decisions on the fly.

Ship or go home – it’s everybody’s accomplishment getting us to where we are today, and I’m proud to have been a part of this team. Lots more to write about, but I’m exhausted from the last few days; expect to hear more soon.

394 Words