What to do when your office becomes a nursery…

Attend a woodworking class and build a custom desk of course.

I think of it as a modern take on the bureau desks that I’m sure would be very familiar to many. But rather than the low backs and curved shutters it is built high and square in order to maximise the desk space when lowered and the size of monitor that can be stored behind.

It’s made of solid Tasmanian Blackwood. Is 1400mm high and 380/190mm deep. The desk surface is very solid, which was a chief concern.

It’s just had a single pass with 120grit sanding.

It needs another pass with 240grit, a wet and another 240 pass, then a final stain with a fairly neutral stain to preserve as much of the natural wood colour as possible.

There’s room for 2 thin bezel 27″ monitors arranged vertically once I get the correct monitor arms in place. The monitor in the pic is an older 27″ for scale.

Special thanks to Richard Crossland for making it all possible.

Richard Crosland’s School of Fine Woodwork 

Metaforce

 

Continuing with the Salesforce IDE’s is Metaforce.

Although an extension to the Chrome browser, once installed it sits apart and is difficult to tell that it is indeed a browser extension. What drew me to Metaforce originally was it’s ability to delete code from both sandbox and production, which it does better an easier than other products I’ve used. We had some awfully written code in our org produced by an external contractor and Metaforce was the only product that allowed me easily navigate the web of dependencies and permanently remove.

Metaforce also makes it very easy to switch between multiple orgs and deploy code and objects between orgs. It has saved me a great deal of time, I recommend you give it a try. It has become my new defacto IDE for Salesforce dev.

http://metaforce.org/

 

 

 

Cloud9 for Salesforce

 

Delightfully impressed with the Cloud9 for Salesforce IDE.

It’s a fully web-based IDE that, unlike a lot of web-based software it quick, responsive and powerful. It has pseudo intelisense / autofill behavior and saves it’s workspace automatically.

This makes it very easy to move from PC to PC while I work on Salesforce projects. I’ve been floating between my work PC, personal PC and my partner’s laptop flawlessly.

When I have a brainwave while watching TV I can just jump on the nearest PC and put the code down quickly, then move back onto other things.

If you’re doing any Salesforce dev and are interested in a new IDE then suggest you give it a look.

https://c9.io

 

Save

Save

DIY Salesforce Attachment Loader

Loader2

Problem…

I was recently tasked with uploading a large number of documents from our previous document management system (Stored as an SQL FileStream) into our new Salesforce org.

The Apex Dataloader should be able to do the trick. So I wrote a simple windows form app to export and save the files to a local file system with an accompanying metadata CSV. All good so far. After letting the program run overnight to export all our documents I began trying to use the Dataloader to import them into Salesforce.

And that’s where the problem’s began. The procedure was to go something like this.

  • Perform an upsert with the metadata CSV to create related custom object records.
  • Export the newly created objects with record Ids and document Id external keys.
  • Import the documents using the Ids above to attach them to the required records.

All went well until step 3 above….. “Java heap errors”. It appears I’m trying to do too much. I max out the memory allocation to the Java virtual machine used by the Dataloader and try again. Same again.

I trim out all but the first 50 records in my record set and try again. This time is appears to be working. Wait a few minutes and no errors, it looks like its going to upload. I walk away to get some coffee. Come back….more errors. Check the Salesforce org and no documents have been uploaded. Grumble…grumble. That said even if it had of worked I wouldn’t want to be uploading all our document through the above procedure

Solution…

I wrote my own app using c#.Net and the Salesforce SOAP API to do all the work for me.

The program retrieves all the required data from the previous SQL based system. Then performs upserts of new objects into the Salesforce org, returns a dictionary list of recordIds and attachment items. Finally it checks for duplicate files and then uploads the documents. Multi threading allows the progress to be logged to a form listbox and an accompanying log file. The upserts and duplicate detection allow the program to be run over the top of itself without creating additional unwanted records.

 

 

New Kitchen

I’m just posting this picture here as a convenient place to show it to people who ask me (or I am boasting too). Occasionally I will come back here and to admire and be thankful that the 2 weeks of blood, sweat, tears and inhaling concrete dust are over. Think I overdid it with the wood in hindsight, and the sink could probably have been bigger too.

Kitchen

Salesforce SOAP API

salesforce[1]

I’ve become increasingly familiar with the Salesforce SOAP API in recent days. I’m currently using it to upload summarised financial data to our Salesforce org. The detail of which is too cumbersome and Unwieldy to be kept on a multi-tenant cloud system like Salesforce.

The system from which I upload this data is itself an ASP.net website available publicly. So the control of this upload can be done from anywhere on the internet.

Creating less and less reasons to come into the office. At least it makes moving premises more easy.

I plan to start doing more lookups into the Salesforce data to centralise our business processes.

Graphing your Network

Netflow with Nfsen

NfSen

Here’s something I built a long time ago. Its a network graphing tool called NfSen. The system listens to data feeds sent from our Cisco routers and then processes the data and graphs it. The graphs and data are made available by an apache web server so can be viewed anywhere.

It enables us to see at a glance how our network is performing and if there is any unusual behavior occurring. With it we can see how much bandwidth our various connections are using and whether there are any capacity problems on any of our links. If any user has an infected desktop or is running a peer-to-peer sharing program they can be quickly and easily identified.

NfSen-filter

The additional filtering of the data available allows us to see almost any information that we wish about the performance of our network links. I find it hard to remember what life was like without it.

And the best thing about it, cost…$0.00

(P.S. Putting the graphs up on an LCD screen in the IT dept for management to WOW over is fun too!)