Skip to main content

Posts

Eclipse + EGit - "The authenticity of host ... can't be established" challenge

Recently while writing new Android code I decided that it's the highest time to have a Git repository not only on my hard drive, but also safe in the Internet. After quick search and finding out that I have accounts at almost every popular service that provides Git hosting, I figured out that one that covers everything I need (wiki, bug tracking, code hosting, forums) is the good old sourceforge. I used it also with no problems few months ago on another mobile project, so I was hoping that pushing code there will be a piece of cake. But then when I tried to do it (after configuring the project on the sourceforge site), I got very interesting error: ssh://USER@git.code.sf.net:22: org.eclipse.jgit.transport.CredentialItem$YesNoType:The authenticity of host 'git.code.sf.net' can't be established. RSA key fingerprint is 86:7b:1b:12:85:35:8a:b7:98:b6:d2:97:5e:96:58:1d. Are you sure you want to continue connecting? In theory it's nothing bad, you press the "Y...

Force.com REST API getting token with curl

Force REST API usage with curl is really well documented, there are at least two official HowTO's, but both of the assume that you will get your OATH token with Java. Below I've described steps required to get the token and verify your token with curl. 1. Retrieve token curl -v -k https://DOMAIN.salesforce.com/services/oauth2/token -d "grant_type=password" -d "client_id=CONSUMER_KEY" -d "client_secret=CONSUMER_SECRET" -d "username=USERNAME" -d "password=USER_PASSWORDSECURITY_TOKEN" where: DOMAIN - is your salesforce domain (e.g. na9) CONSUMER_KEY, CONSUMER_SECRET - as taken from App Setup -> Develop -> Remote Access USERNAME, USER_PASSWORD, SECURITY_TOKEN - properties for the user that you want to connect with. Note that USER_PASSWORD and SECURITY_TOKEN are concatenated. Note that I used -k parameter in curl which results in the SSL certificate validation skipped (otherwise you need to add it or t...

Visualforce - COUNT() vs COUNT_DISTINCT()

Having COUNT_DISTINCT() is a great advantage in apex over standard Salesforce reporting capabilities. Still what you need to remember is that it doesn't return Integer (as COUNT() is doing), but List<AggregateResult> with count stored in the expr0 attribute of the first element of the list. So while the following code is valid: public String getObjectsForSelectedApplication() { return String.valueOf([SELECT COUNT() FROM MyObjects__c WHERE Application__c = :selectedApplication]); } The following code will return a list: public String get UniqueUsersForSelectedApplication() { return String.valueOf([SELECT COUNT_DISTINCT(User__c) FROM MyObjects__c WHERE Application__c = :selectedApplication]); } What you need to do is take the count from the list, for example with the following code: public String getUniqueUsersForSelectedApplication() { List&ltAggregateResult&gt result = [SELECT COUNT_DISTINCT(User...

Visualforce - actionSupport for hiding/showing elements of the page

While working on a Visualforce page that would automatically show/hide parts of its content I've stumbled upon problems with actionSupport. So the following code doesn't work (to be precise - the "details" pageBlock is not rerendered upon change in the select element): <apex:pageBlock> <apex:form> <apex:selectList value="{! selectedApplication}" size="1">  <apex:actionSupport event="onchange" reRender="details"/>  <apex:selectOptions value="{! availableApplications}"></apex:selectOptions>               </apex:selectList>  </apex:form>  </apex:pageBlock>  <apex:pageBlock id ="details" title="Details for {! selectedApplication}" rendered="{! NOT(ISNULL(selectedApplication))}">  </apex:pageBlock> After googling a bit I've stumbled upon posts suggesting that this happens if you try to rerender page...

Salesforce custom objects with date/time column import

I was struggling a bit recently with importing few thousand rows into custom object in SF with Import Custom Objects feature. Everything was fine except of data for Date/Time column where I was always getting "Invalid format" error even though I tried multiple formats (including the one that was provided in files that I exported from SF). I tried also some of the format mentioned in the Data Loader Guide ( http://na1.salesforce.com/help/doc/en/salesforce_data_loader.pdf ). In the end, I downloaded the Data Loader and the same file was imported in a few seconds without any challenges. Kinda weird, I mean - you would expect the Import Custom Objects to support the same date formats as the Data Loader, but well, good news is that it works at least in one product :-)

Great application for sharing your android screen on PC

For everyone who wants to do a remote demo of android app you may want to check the Droid@Screen application ( http://blog.ribomation.com/droid-at-screen/ ). This little app streams your android device screen onto PC (then you can share it via virtual room/webex/go2meetings). It works just out of the box (yes, that's the first Java app that I was able to run without using a command line - respect to the developer :)). Advantages - applications run smoothly and from what I was told look better than on the emulator. Challenges - frame rate is not too high. It's around 1 fps (yes, that's one frame per second, for applications that include video/transitioning effects/animations you should consider using emulator or a camera).

Podcasts for today

Three non-technical topics podcasts: 1. http://hbr.org/multimedia/audio  - Harvard Business Review - a lot of interesting interviews concentrated on soft skills, business, career, etc. 2.  http://philmckinney.com/killer-innovations  - very interesting (although not published as frequently as you may wish to) podcast about innovation and creativity in general, created by Phil McKinney whom I had chance to meet and talk to twice (and yea, in real life he is also an interesting person :)) 3.  http://www.twis.org/  - this week in science is apparently back!