Simon Fell > Its just code > October 2006
I must of upset the mice gods, after my mighty mouse blues, I got a new Intellimouse Explorer, which works great (and with the software the left thumb button triggers a back in the browser, something i really missed from Windows), but it seems like it really doesn't like it when the Mac sleeps, when it wakes back up, the mouse is really eratic, and the only way to fix it is to unplug the mouse and plug it back in, which gets old really quick.
If you try it, let me know how you get on.
One clarification I added to the download page, this requires a Salesforce.com account with API access.
Apparently the problem with .NET remoting putting char 0 in a fault message from 4.5 years ago is still an issue. (and no, there's still no magic switch to allow PocketSOAP to parse stuff that looks like it might be XML, but isn't XML).
I continue to explore these, I'm fairly impressed so far, when it works, its really nice, to explore what you can do with it, I started rebuilding my blogging client in cocoa (the blogging client UI is largely a binding problem), so far its gone fairly well. My main problem came when I tried to use it in conjunction with NSUserDefaults, and my model has an object model defined by me, but these objects can't be stored in NSUserDefaults directly (it only supports primatives + arrays + dictionaries). I ened up putting some code in my controller to go between my objects and user defaults supportable stuff, there's probably an easier way to do it though, seems like it should be doable in a pretty generic maner through reflection and KVC.
My last remaining problem is in place editing of a single column table, e.g.
The table column is bound to an NSArrayController, the controller is bound to a NSUserDefaults property that contain an array of strings. The table correctly shows the list, but if you allow editing, you get errors when it tries to propogate the change. Other than this one issue, its going well, almost the entire UI for writing/editing posts and for managing weblog configuration and categories is wired up, and i've written remarkedly little code so far.
A minor release, you can now login to Sandbox edition (and any additional servers you want to configure), and the best part, it will now check for updates and download / install updates when it finds then (Sparkle rocks, although I couldn't get the dmg support working, it would always complain about not being able to uncompress the image, zip's work fine). See the SoqlXplorer home page for details.
Cocoa (via Interface Builder) supports some nifty data binding support, for example i was able to easily bind the list of items in a pop-up button to an array of strings that's stored in the user defaults. But I can seem to find the right magic set of options to correctly bind this list to a TableView in a preferences window so that i can edit/add/remove items from the list. Using NSArrayController seems to get me the closest, I bind the ContentArray in the Array Controller to the use defaults property that has my array. Then bind the column in the table to the ArrayController. This gets close, the existing list of values shows in the table column (yay!), but if i edit one of the values, then i see this error in the console, "Error setting value for key path of object myStringValue (from bound object <NSTableColumn) : [<NSCFString setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key ." Which i'm sure makes sense to someone, but not me. I also can't work out how to let you click in the list to create a new entry. It seems like this is the sort of plumbing that it's suposed to be making easy, but I can't get it to work, grrhhhh, I'm getting to the point where I'll skip the binding support and go 'old school' just so I can move onto something more interesting (like gettings Sparkle hooked up).
|We went to see Black Gold at the weekend at the Mill Valley Film Festival, it was only in a pretty small hall, but had a good turn out, and seemed to get a good response. There was a lady from Oxfam there at the end and there was a short but interesting Q&A session that covered fair trade certification, farming susidies and other issues. It made me just a sad and angry as the first time I saw it, if you haven't seen it yet, you've got to go see it, no its not optional, for the bay area folks you still have chance, its showing again this sunday as part of the Mill Valley Film Festival, and will be showing in November at the Roxie in San Franciso.
Dreamforce is over for another year, a hectic, fun packed few days, the highlights for me were
- Finally announcing the API 8.0 features, this is probably the most significant API version with the possible exception of the original release of the doc/literal SOAP API (back at API v2.5). There's a ton of good stuff in there including being able to query over relationships between objects, being able to resolve foreign keys using externalIds during upsert, having workflow trigger soap notifications, merge, undelete, and numerious additional improvements to SOQL, SOSL and metedata describes.
- Getting my hands on a copy of the new building applications book, it looks really good, and includes a sneak peak of Apex, congrat to all involved in putting it together.
- The Apex announcement, which seemed to go down really well, everyone I talked to at the conference was really excited about it. I'm looking forward to getting this into developers hands.
- Putting faces to the blogs, I got the chance to hang out and drink beer (and fail misserably at the trivia quiz!) with a bunch of the Salesforce bloggers, including Mark from Salesforcewatch, Scott from perspectives on Salesforce, fellow brit Gareth Davies from where's the upside amongst others.
- Getting asked coffee questions by multiple folks!
- Getting to be part of the dive into Apex session which was standing room only.
- My 3rd year at the Meet the developers session, a dreamforce tradition.
- The ADN@DNA party was a blast, arrgg pirate booty
See you next year!
In the A dozen ways to eject or unmount a recalcitrant CD tip of the day, I found what i was looking for, press and hold F12 to eject the CD if your keyboard doesn't have an eject key.
The VM disk image corruption I mentioned in the previous post doesn't seem to be anything to do with the mouse issues, I just got it again, it seems to be triggered by copying a lot of files over the network to the image. grhhhh, it looked really promising, the USB stuff seemed to work (at least with the first PocketPC i tried, a HP WM5.0 iPaq). Hopefully this is fixable, parallels would be way more convienient than dual booting with bootcamp.
Apple builds some really good looking hardware, but they can't design a keyboard or mouse for shit. The standard apple keyboard is an ergonomic nightmare, I'll take the vastly superior Micrsosoft Natural 4000 thank you very much. (but now i don't have a CD eject button, which is getting annyoying, will have to try and track down an eject button app or something).
My new Mac included a mighty mouse, which i've tried out a couple of times, I couldn't get on with it very well, I don't find the bar of soap shape to be very comfortable, sometimes it seems to mis-detect left vs right clicks as well. Most frustrating though, is that either the MM driver is flaky, or a I have a flaky mouse, when using the mighty mouse, clicking the mouse will regularly crash whatever app has focus (and i managed to have this happen this morning to my parallels VM, which seemed to result in a corrupt VM disk image, everytime i try and boot the VM, it gets so far then just powers off the VM, grrhhh, fortuantly I hadn't gotten very far in setting it up, so not too much work to repeat). The Mac is rock steady using a MS mouse instead of the mighty mouse, so i suspect a bad mouse, oh joy. (If only i could get the extra side button to do something)
Dreamforce starts tomorrow, there's tons of stuff going on, Its going to be an exciting week. I'll be hanging out in the developers lounge wednesday morning (before the meet the developers session, which i'll be at, as usual), and I'll be around at a number of the advanced ADN sessions, drop by and say hi, pick my brains over the new Web Services features. Finally, don't forget there's the ADN@DNA mashup party tuesday night, see you there.
I recently upgraded to a new Mac, in the process I used the Migration Assistant to move everything over from my "old" Mac, this is the first time I've seen this in action, I was seriously impressed with how well it works, just string a firewire cable between the 2 and boot the old mac into firewire drive mode by holding down T while it boots. Migration Assistant on the new Mac takes care of pulling everything over, your desktop, profile, applications, settings. It got almost everything, I've only found 2 things it missed, one was some customizations to the system httpd.conf file, and the second was the subversion command line client I'd installed. Everything else worked flawlessly including various apps that have serial number/license keys. Compared to the days of building a new Windows machine where you spend days re-installing all your apps from scratch it was an absolute breeze, I was up and running and back in action about an hour after first turning on the new Mac.
It looks like parallels supports USB devices, if that's works well with the set of pocketPC devices I've got, then I might end up moving entirely over to the Mac and ditching my main PC all togther, that'd be great, I've accumulated far too many PC's over the years, this'd be a good chance to clean house and dump a bunch of them.