The best way to learn a platform is to use a platform Wow what a week it's been. First week back from vacation and I'm diving right into a sprint of stuff that needs to be delivered to the customer. My task for the week has been develop a connectivity layer between Salesforce and Dropbox using OAuth. This ...

Currency conversion in Apex While waiting for my flight in the lounge tonight I was playing around with currencies in Salesforce because - why not... Conversion between configured currencies are supported in SOQL and Salesforce but only between the configured corporate currency and ...

Salesforce week 25-27 and finishing this weekly thing... Wow!! A half year has gone by. Half a year... Where did the time go? Over the last weeks I've gradually noticed that my view on being with Salesforce has shifted from being "something new" to being "how things are". On feeling at home in the organisation ...

Salesforce Lightning Component API change As we get closer to Summer 17 we start using difference versions across production instances and sandboxes. This of course also leads to opportunities for differences in API's... I just found one such difference as I'd been developing some Lightning ...

Recent Responses

Re: The best way to learn a platform is to use a platformAs far as dev platforms go, I've been working with Polymer now for almost 2 years. And their tagline is "Use the Platform". Meaning, use the browser platform to do what it can do and does best whenever possible. That too goes to what you're ...

Re: Salesforce Lightning Components and image dependenciesOf course the Salesforce Lightning Design System is Salesforce agnostic but it's funny that the SLDS website only mention the SVG approach. I'll have to look into using the lightning:icon tag instead of the SVG custom component as that would definitely ...

"Jason Fried has a radical theory of working: that the office isn't a good place to do it. At TEDxMidwest, he lays out the main problems (call them the M&Ms) and offers three suggestions to make work work."

"Jason Fried thinks deeply about collaboration, productivity and the nature of work. He's the co-founder of 37signals, makers of Basecamp and other web-based collaboration tools, and co-author of "Rework.""

Just got word today that Amazon Web Services (AWS) is now offering a Marketplace (aws.amazon.com/marketplace) where ready made Amazon Machine Instaces (AMI's) can be easily purchased. Besides featuring instances from many top software vendors it also features AMI's for OpenSource solutions such as Tomcat, JBoss, MongoDb etc. There are currently 7 IBM AMI's available.

I'm a big proponent of Amazon Web Services (AWS) so it came as no surprise when Amazon today announced its latest addition to the AWS family - AWS CloudSearch.

"Amazon CloudSearch adds search capabilities for your website or application without the administrative burdens of operating and scaling a search platform. Amazon CloudSearch seamlessly scales as the amount of searchable data increases or as the query rate changes, and developers can change search parameters, fine tune search relevance and apply new settings at any time without having to upload the data again."

Create and configure a Search Domain. This is a data container and a related set of services. It exists within a particular Availability Zone of a single AWS Region (initially US East).

Upload your documents. Documents can be uploaded as JSON or XML that conforms to our Search Document Format (SDF). Uploaded documents will typically be searchable within seconds. You can, if you'd like, send data over an HTTPS connection to protect it while it is transit.

In my current project I needed to place an authenticated web services request from Lotus Domino to an Oracle SOA endpoint. Turned out to be extremely easy using the Lotus Domino web services consumer feature as I just used the setCredentials(String, String) method which then adds the necessary Authorization header to the HTTP call. Below is an example.

I'm back in the office after two weeks away for going to Tokyo, AusLUG in Melbourne, Australia, and then Easter vacation. While the latter is of no particular interest to anyone (I think) my trip might be. Let us get the most obvious thing out of the way first - we did a lot of flying. Besides having been in Antwerp, Belgium, on the Thursday/Friday for BLUG before going on this trip we went Copenhagen-Singapore-Tokyo-Singapore-Melbourne-Singapore-Frankfurt-Copenhagen in 8 days! The trip earned us about 27000 air miles and with the circurmference of the Earth being 24900 miles we actually went around the World and then some.

The trip started out in Tokyo where we had 2 days (Monday and Tuesday) of meetings with potential OnTime partners and with IBM. Great meetings and very good to meet local partners and learn about Japanese culture and language. Nothing is simple in Japan let alone the calendar. In Japan they actually have four (4) calendars that they use those being the international (the one we use in most of the World), the Imperial (based on the Japanese emperors), the Buddhist calendar and the 6 day Japanese calendar. The latter is not used in business but it does mean that a calendar product will need to support all if not most of them. At least at the UI layer. Besides business we had some time although not a lot for a look at Tokyo and to sample the local cuisine. While we unfortunately didn't get to try Kobe steak (top of the list for next time) we did have local sushi (a must) and sampled sashimi with raw chicken and raw liver. Many thanks to the IBM'ers we met and to Atsushi Sato (@acchan777) for taking us out to dinner on the Monday.

On Wednesday we flew on to Melbourne via Singapore and landed early Thursday morning (7am). After a cab ride (through what can best be characterized as chaotic traffic) and a quick shower we were on scene at AusLUG to catch the last 30 minutes of the keynote. Not bad planning.

The event was excellent both from a technical, business and personal perspective. It's always good to go to interesting sessions, learn new stuff and meet up with the friends I got at the inaugural AusLUG in Sydney. I spoke at two sessions - one on Thursday at 2pm and one on Friday morning at 8.30am where I slept through 3 alarms only to wake at the calendar reminder I set for 30 minutes before I should present! Let me just say that I didn't shower before the the session but I made it (we stayed only 5-10 minutes away on foot) so all was good. Lesson learned? Set multiple timers - and go easy (easier) on the drinks the night before. :-) The night before was a very fun one as we went drinking after the AusLUG dinner. Great night out.

After the conference on Friday night we went to see "footy" at the MCG as part of the speaker/sponsor thank-you-event together with approx. 79000 other nice people. And boy was it excellent fun! Lets just say that if I'm invited to go see footy in the future I'll go anytime! Great event and a great conclusion to our trip.

Saturday we went for a stroll about the city, chilled at the apartment, watched some footy on the telly and had some bieeerh (think that's how the native spell beer) before we headed to the airport for our 1am fligth back home. What a trip - many memories and many good oppportunities to persue in the Japanese market.

I was among the people who was fortunate enough be be sent a review copy of the new "XPages Portable Command Guide" book that has just been published. While this review has been a long time in the making I wanted to get it out there never the less. You should first read the review Tim Tripcony wrote ("XPages Portable Command Guide is a book every Domino administrator should read") as it is spot on and very good and accurate. The thing about XPages that many developers and administrators forget - or simply doesn't know - is that it is running on a completely rewritten HTTP stack on the Domino server. It was even refactored recently to be based on OSGi technology to make it even better and more easily extensible. The XPages runtime is more like a traditional J2EE server (like Websphere Application Server) than a traditional Domino server. This means that the runtime is very configurable but out of the box it is configured to be a jack of all trades. You can change it though and you probably should if you run business critical applications of it.

For me the most important part of the book is the part about the xsp.properties file that is the main configuration file for the XPages runtime. The file is central to how an XPages application function and it's crucial that it is configured and tuned correctly for the needs of the application. While having to do this kind of configuration by hand is prone to errors and that IBM really should provide better tooling for it doesn't change its central role for XPages. It is therefore very important that you as a developer or administrator know how to edit it. For the developer you need to be able to configure the application so it functions at peak efficiency and as an administrator you need to know enough to throttle your developers to not configuration the applications to as to note starve one another for resources.

The important part about XPages is that where many of the settings for traditional Domino web applications are server settings many, if not all, of the xsp.properties settings can be thought as of deployment settings as well as server settings. As Tim writes - "There are plenty of settings that can be defined in this file that only the developer should care about, but many of them you don't want the developer to decide. Trust me, if you leave it to me, I'm typically going to max out the RAM consumption in an attempt to provide lightning fast response times. But it's your server. You should be overriding me on that decision... as long as it's still in keeping with the end users' business needs, of course."

So if you do any work with XPages I therefore highly recommend you get a copy of this book. Get it as an e-book though as it's a reference and IMHO a paper copy doesn't make any sense. Most of the API calls you can also find good documentation on online but the xsp.properties part is lacking online and it's critical to know about and understand if you want to get the maximum from the XPages runtime.