Simon Fell > Its just code > June 2007

Saturday, June 30, 2007

The Salesforce.com web app seems to work fine from the iPhone so far, it even does a good job of detecting the phone numbers on a contact page and converting them into clickable links to call, I'd figured this would require a couple of custom formula fields to generate a tel: link, but the automagical detection of phone numbers seems to be good enough that its not needed.

I got to see both ends of the buying spectrum yesterday, I queued up at the local AT&T store, expecting it to be a complete zoo at the Apple store, Got there just after 4PM and was about 60th in line. 6PM comes around the AT&T drone comes out and goes blah blah blah, got lots of phones, but if we run out, can take orders. The first 12 people go in, they have 12 salespeople, and they keep 12 customers in the store. The line is moving at an abysmally slow rate, the folks in front of my say they're forcing credit checks on everyone, despite having read the day before that it would be optional. 7PM comes around and there's still about 20 people in front of me before we get in. (so 12 salespeople managed to turn around a whopping 40 people in an hour!). Then the AT&T drone comes out and says they're running out of 8Gb phones. A few people have already quit and headed up the street to the main San Francisco Apple store, then a guy on a bike comes by, says the line at the Apple store has gone and they still have phones. I cut my looses and walk up to the store, walk straight in the front door, get in the queue at the counter, and walk out about 5 minutes later with an 8Gb iPhone, no mess, no fuss.

Activation went fine, although some 15 hours later, I'm still waiting for the number transfer to complete (moving from T-Mobile), I can use the phone and dial out, but incoming calls still goto the old phone. My only other problem is DHCP, It'll connect to my wireless network fine, but doesn't seem to like my Windows DHCP server, it claims to be connected but won't use the wi-fi for anything. I flipped the config to a static IP and its working great now. Will try and work out what's going on there later.

The initial sync is slick, and with SF3 in the mix, I had all my Salesforce.com managed contacts sync'd down on to the phone no trouble :)

The display is gorgeous, and the UI is very snappy, pretty much the exact opposite of every other phone I've had, the skateboarding dog works great.

Monday, June 25, 2007

I just posted a small update to SoqlXplorer that should fix the problem some people were seeing trying to run it on PowerPC based Macs. And if you're lucky enough to have it, it also fixes an issue running on the WWDC Leopard beta.

Sunday, June 24, 2007

For a long time now I've been working on a new build of SF3, trying to address the myriad of edge cases around contact sync, I got stuck in a loop one fix would cause another failure, fixing that would cause another problem and fixing that would lead back to the first problem. Adding other sync clients into the mix like Entourage further complicate things because they can change the truth database in ways that Address Book does not (or at least in ways that are not natural for Address Book). Finally, in prep'ing for the Sync Services Lab session at the WWDC, I got inspired as to how i might break the loop, and the good folks from Apple at the Sync Services lab confirm that it would work, and also took the time to discuss other approaches, and how some of the early choices i made might be complicating matters. (I should write up all the ins'n'outs of the data model mapping problems). So, now there's a new release of SF3 available that bares the fruits of those changes. This should address the various edge cases including those Entourage related edge cases, and now i can move on with some UI and other improvements (like the option to prompt you before applying the changes to Salesforce.com). That of course assumes I can keep away from playing with all the shiny new developer toys in the Leopard beta.

Saturday, June 23, 2007

Mail Act-On is a nifty plugin for Mail.app that allows you to trigger mail rules from the keyboard. As it can run real Mail.app rules, this means it can be used to run AppleScript. This makes it ideal for use with Maildrop. Normally the Maildrop actions are accessed via the system scripts menu, tucked away in the menu bar, and quite possibly no where near your mail window. With Mail Act-On you can now access those Maildrop scripts directly from the keyboard.

Once you've installed Mail Act-On, you'll need to create the 2 Act-On rules for "Add Email to Salesforce.com" and "Create Case in Salesforce.com", this just requires a new rule set to run AppleScript and selecting the Maildrop scripts installed at ~/Library/Scripts/Applications/Mail, thusly

Once you've setup the 2 rules, then hit the ` key to trigger Act-On, then hit 1 or 2 to run the Maildrop command, simple. (of course you can pick whatever key mappings you want)

If you use Maildrop a lot, its well worth checking out.

Wednesday, June 20, 2007

The Apex Code developer preview is going strong and I'd guess everyone is using the Eclipse plug-in to author their apex code packages and triggers. What you may not know, is that the plug does its work over the web services API, and if you look in the WSDL page in the Salesforce.com app, you'll see there's an extra WSDL called Apex WSDL, and this contains the operations to compile packages and triggers, run the unit tests, and execute anonymous blocks of apex code. So, if the eclipse plug-in doesn't float your boat, well, heck build your own. (This WSDL is part of the developer preview, so its definition and availability is still subject to change, but if you have an opinion, let us know).

I built a simple OSX command line tool called ApexCoder that uses this API to upload & compile apex code, its pretty easy to use, e.g.

# compile the package contained in the file tm.apex, read my username and password from the keychain.
./apexCoder -kc package tm.apex

# same as above, but with explicit username and password
./apexCoder foo@bar.com somePassword package tm.apex

# compile these 3 packages in one go
./apexCoder -kc package tm.apex accounts.apex quote.apex

# compile these 2 triggers
./apexCoder -kc trigger accounts.apex contacts.apex

# execute the block of apex code in anon.apex directly (execute Anonymous)
./apexCoder -kc execAnon anon.apex

# run the tests in these packages
./apexCoder -kc runTests accounts contacts

# store my credentials on the keychain (for later use with the -kc option)
./apexCoder foo@bar.com somePassword setkc

Of course, no one wants to mess around with command line tools directly, so being a big TextMate fan, I also put together a TextMate bundle so you can do all this directly from TextMate. (unzip the file, drop it in ~/Library/Application Support/TextMate/Bundles). The bundle requires you to use the keychain option, so the first thing you'll want to is goto Salesforce.com in the bundle menu and pick 'Set Login Credentials'. Once you've done that, the other options in there will all work. For compile package, compile trigger and execute anonymous these all operate on the current file. for runTests, select the package name in your source code and select run tests. The bundle includes a still rudimentary apex language grammar, so you get some syntax highlighting, although its far from finished. There's also probably a bunch of good templates and snippets that could be added as well.

Sunday, June 10, 2007

Am off to my first WWDC tomorrow, it'll be interested to compare and contrast the Steve RDF vs the Marc RDF :), must remember to take my keynote bingo card.

Wednesday, June 6, 2007

This (mindnumbly stupid move IMO, YMMV) doesn't seem very conducive to making this a success, perhaps everyone is hoping they'll of forgotten by the time it actually ships.

Monday, June 4, 2007

Downloading Visual Studio 2005 Service Pack 1 (update 4 of 6)...
27.50MB of 432.00 MB



Holly cow, is it a service pack, or a whole new dev environment???

Sunday, June 3, 2007


Anyone for a gibraltar ?
  • WRBC Champ Heather Perry went on to win the US Barista competition in Long Beach.
  • Ritual Coffee Roasters opened a second store, this one inside Flora Grubb Gardens, the entire place was packed out for the opening weekend, I took the opportunity to try out a couple of different coffee's brewed on their Clover, Wahoo!, San Francisco finally gets a Clover (2 in fact, there's one at the Valencia St store too).
  • While at the Ritual opening I picked up some of their Ethiopian Limu, which they used in the WRBC, I never got around to trying it as espresso, but it made an awesome french press, one of the best I've had in a long time.
  • Barefoot are now doing coffee tastings twice a month, here's your change to have a professional walk you though the ins and outs of coffee.
  • Blue Bottle are kicking some serious butt at the farmers market, one of the best gibraltar's you'll ever get, every tuesday and saturday.
  • Home-barista.com are running the Titan grinder project, weighing up the latest and greatest in conical grinders.