Tuesday, August 5, 2014

Skeleton code for Batchable/Schedulable classes

I wish Force.com IDE had a quick option to generate a skeleton class for Batchable classes.  It has one for test classes, so why not this one?  For now I just paste in my own skeleton code to save typing the same stuff every time.
global class BatchableSample implements Database.Batchable, Schedulable { global Database.Querylocator start(Database.BatchableContext context) { // TO-DO: construct the actual query return Database.getQuerylocator([Select Id From Account Where CreatedDate = TODAY]); } global void execute(Database.BatchableContext context, List scope) { } global void finish(Database.BatchableContext context) { }

// schedulable global void execute(SchedulableContext context) { } }

Friday, August 1, 2014

Salesforce connected apps settings are not copied to sandbox

So for me this was learned first in practice, then confirmed by Salesforce knowledge base article 194090.  When a sandbox is created/refreshed, custom connected apps configured in production will be not be copied, even though they're part of the configuration/metadata.  This is true for full sandboxes as well.  The standard connected apps (Salesforce1, Chatter Desktop, etc.) will obviously still be there.

The KB article also pointed out that you can't reuse the same API name when you recreate the apps.  It's probably the result of this known issue.

These oddities combined with the still confusing UX with connected apps - create in one place (Create > Apps) and edit in another (Manage Apps > Connected Apps) made Connected Apps still feel like a beta feature.

Sunday, July 27, 2014

Ubuntu 10.04 static DNS server

Had to do a reverse drop-in replacement for a Ubuntu computer - reverse in the sense that I'm not dropping in any part - instead I got an identically configured computer and just dropped in the hard drive.  Pretty much everything just worked, except the network settings.  Ubuntu by default added a new interface (I'm using wired connection) since it saw a new MAC.  So I had to apply the static config from the old interface to the new one.  Again most of it just worked, but DNS didn't - I added the server address to the IPv4 config via Network Manager (editing resolve.conf actually gave the same result), but it still couldn't resolve names.  I tried networkng restart, which also did nothing.  So I just used the Network-manager applet to disconnect then reconnect, and DNS started working.  I wonder if there's a command line way to apply static DNS info?

Monday, July 21, 2014

Box Sync client update moves sync location (without really telling you)

So this is Box Sync v4.0.5101 for Windows.  Once the update was installed (acted just like previous updates), it started the location change right away pretty much silently.  The first sign of it was I no longer had the "My Box Files" symlink (under Favorites in your Explorer window).  It had a vague message on the app window but who really checks that?  Once it's "done", it also popped up a message saying so.  Again, without context you don't quite grasp what that means.  The worst part is that the move was incomplete, probably because I had various things opened in applications.  So I ended up having a bunch of folders that exist at both the old location (users/username/Documents/My Box Files) and the new location (users/username/Box Sync), and I had to manually move things over.

It's bad enough we can't choose the sync folder location - what if you want to store things out of the system partition?  Now what's the point of moving the folder up one level?  If anyone is like me, who uses Box extensively for protecting and sharing all kinds of files, you have a lot dependencies on the location: apps need to know where its stuff are, binaries need to have its path set, etc.  With the relocation plenty of headache to reset everything, let alone the hassle of reestablishing the habit of saving new things to the new location.

Box is overall a good product for cloud based storage/backup, but this sync folder location issue is definitely a drag on usability.  This recent change of location just made it even worse.

Monday, June 30, 2014

Getting Started with Node.js on Heroku ...

... is not easy on Windows.  This Guide is a good one.  The steps are clear with right amount of details.  I just couldn't get through it on Windows 7.  First I couldn't verify my app with foreman.  I got "Bad file descriptor".  After tinkering with Foreman versions a bit to no avail, I decided to go ahead deploy it, thinking maybe it's just foreman.  That didn't go either.  I just kept getting "Permission denied (publickey)" with git push, even after checking and rechecking I have the keys and they're added to Heroku (key addition notification from it as proof).

So I did anyone reasonable would do under such circumstances.  I switched to Linux.  I was able to have the app running on a dyno within 20 minutes on a Precise (12.04.4), including the time needed to set up a build environment and make the Heroku client - it's a VM I don't usually use to build stuff.  What can I say?  Next year I'm building a Ubuntu laptop (or getting a Mac).

UPDATE: I had a chance to ask Jay Hurst from Salesforce about the troubles on Windows.  He mentioned that the problem with foreman may be related to the fact that the utility is looking for a particular kind of shell.  He suggested trying the bash installed by Git on Windows.  For the key troubles?  "You could have key problems on any platform. "  :-)

Thursday, June 19, 2014

Why did Eclipse push 4.4.0RC3 to installations?

Don't fix it if it ain't broken.

I should have thought about that when I saw an Eclipse update (turns out to be 4.4.0RC3) coming up when looking for a Force.com IDE upgrade.  But I didn't.  I went ahead with the installation.  That's probably the old system admin version of me - always get the latest version!

Eclipse wouldn't launch, complaining about JVM 1.7 as required.  Fine, I installed Java 7.  It launched then, but I was greeted with a blank package explorer (after upgrading the workspace).  Looks like the new version doesn't work with Force.com v29.

My mistake for trusting it aside, why would Eclipse push out a RC version?  In the past I never had issues with Eclipse updates.

So stick with your original Luna - it worked fine for me.  Just be prepared to reject any update they might put out there.

Monday, June 2, 2014

How to register a custom domain for Sites

Just noticed (thanks to Jason and Kara!) that since Winter '14 the setup needed to register a custom domain to use with Force.com Sites has changed.  Here's the instructions on the setup page (will show the actual org Id):

A new or renamed domain will be permitted if any of the following criteria is true. Note that 00d7************** is your organization's unique API identifier in lower-case characters.

  • Your domain name is a CNAME record that points to [domain].00d7**************.live.siteforce.com.
    • As an example, if you are adding www.example.com, it must be a CNAME record that points to www.example.com.00d7**************.live.siteforce.com.Note that your domain will need to be a CNAME record for Salesforce to serve your domain.
  • Your domain name has a TXT record that equals 00d7************** with no punctuation.
  • Your domain name is a subdomain of an another domain in your organization.


There's a recipe in the Force.com Cookbook that really needs to be updated, but I couldn't even add a comment to suggest that (errored out each time I tried)...