Simon Fell > Its just code > February 2006

Monday, February 27, 2006

The Western Regional Barista Competition is this weekend, March 4/5 in Petaluma, looks there's going to be strong turned out from the bay area, with people competing from Barefoot, Ritual and Cafe Organica.

Sunday, February 26, 2006

I've been using a pretty old version of MS Money for a while (Money 2002 OEM), it has its flaws, but is generally ok. I decided to "upgrade" to Money 2006 today, so far I've been pretty disappointed.

  • Many of the tools to download transactions from bank (e.g. E*Trade bank) require you to sign up for the service to access your money account on the web. I don't remotely understand (nor will the docs tell me) why these 2 features are intrinsically linked, I can't think of anything worse than having all my bank details uploaded to MSN and it being available from anywhere on the web, WTF should downloading transactions from E*Trade require that ?
  • I had a bunch of to-do's setup in M2002, but this feature seems to have completely gone in the "upgrade", so not only have I lost my notes/todo's, I no longer seem to be able to do these in Money any more.
  • The manage on line services is annoyingly context free, you can goto a page where it lists your accounts and for those that offer online setup there's a link, but you click the link, and if you're lucky it'll remember the name of the company and that it (it couldn't even manage that for Wells Fargo), it goes on to ask you about the company, the account type etc, all of which it already knows, dumb-ass
  • The auto reconcile feature could come in handy, not sure yet.
  • I got the premium version, but it appears that most of the premium specific features aren't in money at all, but free for one year deals with external services, and again some of which require you to sign up for the money on the web nonsense.
  • What's with all the advertisements ? most pages have a related links sections most of which seem to be adverts from various things, the investments home page even has externals adds on it, stock charts have multiple adds on them, I don't appreciate paying for the privilege of being advertised too, really sucky
  • The reports section seems unchanged, lots of reports, most of which don't quite tell you what you're really looking for

I haven't looked at everything yet, but so far, I haven't seen anything that is significantly better than the 4 year old version I was using, most of the new features require you to sign up for putting your money file on the web, and now its littered with annoying advertisements. If you have an existing version, save your money and don't bother "upgrading", its a waste of time & money.

The robbing bastartds at Wells Fargo want to change $3 a month for the privilege of letting MS Money download transactions, WTF!!, that makes no sense what so ever, I can manually login to the website and download transactions for free, but to let Money do it costs money, this is bizarre Another nail in the coffin for Wells Fargo as far as I'm concerned.

Tuesday, February 21, 2006

export.py, this is small yet complete sample that uses BeatBox to run queries and extract data from Salesforce.com into CSV files.

You can either specify just an object name, in which case it'll call describe to find out all the fields and build the SOQL to fetch everything, or you can pass in a complete soql statement yourself, e.g. export.py user@org.com password event or export.py user@org.com password "select id, subject from event"

Sunday, February 19, 2006

I've been tinkering with Python for a while, but have wanted to try my hand at something more complex that hello world with it, I ended up building Beatbox, a simple to use, minimal dependency library for accessing the Salesforce.com API. (Given the pace of the branding train at Salesforce, I've decided to stop trying to put force or sforce in any of my sforce API tools).

Rather than some thick data binding layer, most of the stuff you pass into the library is dictionaries, and most of the data you get back is in the form of a xmltramp representation of the relevant result part of the soap response (xmltramp rocks BTW) It includes all the usual sforce perf recommendations, HTTP/1.1 persistent connections, gzip compression on request/responses, batch operations, all of the 7.0 API is currently supported except for leadConvert. The login redirect and sessionId header handling is all done for you under the covers, there's still a few loose ends mainly around handling base64, and timezones on datetimes, but other than that you're good to go.

demo.py in the download has samples of calling all the methods, for example to login and then call describeGlobal and print out all the types available is simply

sf = beatbox._tPartnerNS
svc = beatbox.Client()
svc.login(username, password)
dg = svc.describeGlobal()
for t in dg[sf.types:]:
    print str(t)
making a call to query and printing the results,
sf = beatbox._tPartnerNS
svc = beatbox.Client()
svc.login(username, password)
qr = svc.query("select Id, Name from Account")
print "query size = " + str(qr[sf.size])
for rec in qr[sf.records:]:
    print str(rec[2]) + " : " + str(rec[3])
creating a new account
sf = beatbox._tPartnerNS
svc = beatbox.Client()
svc.login(username, password)
a = { 'type': 'Account',
    'Name': 'New Account',
    'Website': 'http://www.pocketsoap.com/' }
sr = svc.create(a)
if str(sr[sf.success]) == 'true':
    print "id " + str(sr[sf.id])

The download includes a copy of xmltramp (the only dependency) that has a minor bug fix in it, the beatbox.py library itself and the demo.py sample. I've only run it on python 2.4.2 on Windows so far, but I think it should be good for any 2.x python. Feedback welcome, especially from those more versed in Python than myself. I'm releasing the code under the GPL license, which matches the license for xmltramp.

Share and enjoy. beatbox_08.zip

Saturday, February 18, 2006

Growing thread on soapbuilders on the state of interop testing.

Benji, Nils and myself will be at the Bay.NET user group this thursday talking about the Salesforce.com web service API and the App Exchange, you also have the chance to win a PSP!, See you there

I've had this floating around on my machine for a couple of months, figured I should actually get around to posting a version of it. This is a simple .NET 2.0 winforms app that allows you to visually explorer the relationships in your salesforce.com schema.

Source and binaries are included in the download (I built it with Visual C# 2005 Express), and is released under a BSD license. the layout code could use some improvement on the views with lots of entities (not to overlap them), and the entity under inspection could be improved to show the details of the field types etc. I got frustrated with all the math needed to do the layout which is why I stopped working on it. I wonder if re-doing the UI portion in Avalon would make it any easier ?. One of the more interesting things it does is to use the async api provided by .NET to pre fetch the describes of the related objects in the background, so the UI should feel pretty snappy, it also takes advantage of the fact that .NET can support gzipped responses, so it turns that feature on as well.

Share and enjoy. sforceHerder.zip

Friday, February 17, 2006

I started looking at Python again, gurno.com has a python wordfile for ultraedit32

Thursday, February 16, 2006

The new system status page is up and running at http://trust.salesforce.com/, as well as current status, it includes the status over recent days, and really cool, some statistics such as page & api request (wow upto13 million/day) and average times.

Wednesday, February 1, 2006

Lexi, infamous author of the AppExchange Data Loader (nee Sforce Data Loader, nee LexiLoader), wrote up the details of how to get the best performance when trying to load lots and lots of data into Salesforce via the API. This is when you really need to know what your soap toolkit is and isn't doing when it comes to HTTP.