Simon Fell > Its just code > February 2006

Monday, February 27, 2006

WRBC

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.

< 8:54 PM PST # > tags : Coffee

Sunday, February 26, 2006

Money 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.

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.

< 8:48 PM PST # > tags : Technology
WF - WTF

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.

< 6:51 PM PST # >

Tuesday, February 21, 2006

export.py - a BeatBox sample

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"

< 8:52 PM PST # > tags : Salesforce.com Web Services

Sunday, February 19, 2006

Beatbox

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

< 5:56 PM PST # >

Saturday, February 18, 2006

Interop

Growing thread on soapbuilders on the state of interop testing.

< 2:06 PM PST # > tags : Web Services
Bay.NET user group talk

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

< 11:59 AM PST # > tags : Salesforce.com
SforceHerder

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

< 11:17 AM PST # > tags : Salesforce.com

Friday, February 17, 2006

python

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

< 9:22 AM PST # > tags : Technology [playing The Chemical Brothers - Morning Lemon (from Singles 93-03 [UK] Disc 2)]

Thursday, February 16, 2006

salesforce.com status page

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.

< 8:37 AM PST # > tags : Salesforce.com

Wednesday, February 01, 2006

Everything you wanted to know about loading lots of data into Salesforce but were afaid to ask

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.

< 7:22 PM PST # > tags : Salesforce.com