<< February 2012 | Home | April 2012 >>

Instapaper - found the feed for Liked

I'm a giant fan of Instapaper and use it all the time to track stuff to read and actually read it when offline in a plane or whenever I have a few minutes. It's great. I like to share articles I like using twitter but I just found out there is a RSS feed to liked articles as well. My feed for liked articles is also available so feel free to track it if you're interested in what I like on Java, JavaScript, XPages or appdev in general. Feel free to follow the feed if you like.

The Java native2ascii tool (also important for you XPages geeks)

To prepare for our upcoming trip to Tokyo I've been working on a Japanese translation of our OnTime Group Calendar 2011 client for Notes based on Java plugins. The internationalization engine (i18n) was already in place so it was merely a matter of doing the translation (thanks to Google Translate and friends) and then adding language files to our API. In that process one becomes very thankful of UTF-8 and the fact that Java works natively in UTF-8.

Please note that the approach discussed in this post translates (excuse the pun) directly to making translation files for XPages as well.

Using the Japanese translation the GUI looks like the below screen shot (cropped of course).


(click the image for a large version)

The funny thing about most non-Latin languages is that even though you have the translations it's hard to impossible to write the characters yourself. And once you have the words getting them into the language files which are mere property files. Take the weekdays in Japanese as an example:
月曜日
火曜日
水曜日
木曜日
金曜日
土曜日
日曜日

Because we're running the OnTime Group Calendar out of Notes and because Notes is fully double-byte compatible we could actually just add the Japanese characters directly to the translation document. Instead however we opted to use the Java way that is the native2ascii tool.

The native2ascii tool is shipped with the JDK and lets you translate a file containing native characters to their UTF-8 equivalent escape sequences. So having my Japanese characters in japanese_source.txt and wanting to store the result in japanese_result.txt I simply ran the following command:

native2ascii -encoding UTF8 japanese_source.txt japanese_result.txt
The encoding parameter specifies the character encoding of the source file (here japanese_source.txt). The result is something like this:
\u6708\u66dc\u65e5
\u706b\u66dc\u65e5
\u6c34\u66dc\u65e5
\u6728\u66dc\u65e5
\u91d1\u66dc\u65e5
\u571f\u66dc\u65e5
\u65e5\u66dc\u65e5

Chose escape sequences go directly into the language property file and when read into a Java property file they are automatically translated into Japanese. Sweet!

Embedded Experiences demo - you want to see this!

As I wrote in my Lotusphere 2012 one-liners post after Lotusphere OpenSocial and Embedded Experiences is *the* technology to watch coming out of IBM Lotus. At Lotusphere 2012 Ryan Baxter and Stanton Sievers from IBM gave a Show'n'tell session (SHOW115) which I think really should be an eye opener to a lot of people as to why this embedded experiences "thing" is important. I've been bashing Ryan to make a recording of the session and it's finally here.

Video of demo: Embedded Experiences Demo - N/D Social Edition - Connections Next
Code from demo: Demo code

If you want more embedded experiences go watch the video from the Social App Throwdown from Lotusphere for inspiration as to what's possible.

Going to AusLUG

I'm happy to say that I once more will be joining the AusLUG crew downunder for the Australian Lotus Usergruoup on March 29-30 in Melbourne, Australia. I have been wanting to go all along but we had to make sure it was possible before I started getting my hopes up. So I'm very happy to say that everything has fallen into place and that I'll be on site for AusLUG 2012! So thrilled.

I'm even more thrilled to say that I'll be speaking as well. The first session is on Thursday at 2pm where I'll be giving my "Easy as Pie - Creating Widgets for IBM Connections" session to get you up to speed on developing widgets for IBM Connections. On Friday at 8.30am I'll be on stage again presenting my "Plug yourself in and your applications will never be the same! (An introduction to plugin development for Notes and Sametime)". I really hope to see you all for both sessions on topics I think are extremely important to you as a developer.

This year the OnTime team will consist of myself and my manager Jens overgaard Dinesen (@jensovergaard) as we will both be making the trip to Melbourne. On our way (because what isn't on ones way when going to Oz) we're stopping for two days in Tokyo to meet with IBM and potential partners for OnTime in Japan. We're very excited about this trip and hope everything will pan out. We will not be in until Thursday morning at 7am but will be there all of Thursday, Friday and Saturday and looking forward to meeting everyone there.

See ya!

From the drafts pile - Noticeable enhancements for Notes 8.5.3

Found a couple of posts in my drafts pile that I never got posted and that are really past their time. I though I would just post them to get them out there. Treat accordingly.

  • Live Text recognized in MIME emails
    Live Text strings are now recognized in MIME e-mails. This has been an anticipated enhancement for several releases, and is now available
  • Open a Web page widget in an external browser or named embedded browser
    When creating a Web page widget, you can specify that the widget open in an external browser or a named embedded browser.
  • Integrated Windows Authentication (IWA) for Eclipse-based clients, including Lotus Notes
    This code drop introduces Integrated Windows Authentication (IWA) for supplied and third-party Eclipse-based client applications, enabling SPNEGO authentication for integrated Notes application clients. This includes Notes and its embedded Eclipse-based features such as Widgets and Live Text, Feeds, Lotus Connections, and Composite Applications as well as embedded Sametime and embedded Symphony. It also includes adjunct products that are based on Eclipse but not embedded within Notes, such as IBM WebSphere Portal with SiteMinder and stand-alone Lotus Connections 3.0 with SiteMinder.

Creating a keystore for plugin signing the easy way

Previously when creating keystores for plugin signing I've used a lot of dark magic, crying at the moon and a custom tool I wrote called KeystoreUtil to convert between different formats. The other day I was doing a consulting gig on plugin signing and came up with an easier way just using iKeyman and the Java tooling. I created a presentation with the various commands and screenshots and put it on Slideshare.

Hope it will help someone.

BLUG 2012

I totally forgot to mention this...

I happy to say that I'm going back to BLUG again this year presenting on one of my favorite topics that is widget development for IBM Connections (Easy as Pie - Creating Widgets for IBM Connections). I'm presenting on Friday at 12.30. The overall conference agenda looks very good and I'm looking forward to going back to Antwerp to present, network, learn and talk about OnTime.

The OnTime crew will of course also be available to talk about OnTime Group Calendar and OnTime Meeting Manager and all the various interfaces.

I'll fly in on Wednesday afternoon and will probably be sampling the local brews that night - see you there.

Bookmark to IBM Connections bookmarks from iOS

Bookmarks (aka Dogear) in IBM Connections is great and IBM provides a nifty bookmarklet to allow easy bookmarking from your browser. I couldn't however make this bookmarklet work in Safari on iOS so I decided to look into it. And I'm happpy to say I got it to working with some inspiration from the Instapaper bookmarklet. The way it works for me now is that I have the bookmark bar visible on my iPhone and iPad and when I need to bookmark I use the bookmarklet which redirects to the IBM Connections bookmark page and back to the original page once done. Super easy and it works great.

Here is how to make it work.

  1. Open Safari and make a bookmark to a random page but be sure to place it in the bookmark bar (the bookmark bar can be made visible all the time in Safari options).
  2. Edit that bookmark and change the title to something that makes sense (I use "IV Dogear").
  3. Clear the location field and paste in the JavaScript code from below replacing the hostname (lc.intravision.dk) with a hostname applicable to you.
  4. Save the bookmark and start bookmarking.

javascript:function%20abcdefg()%7Bvar%20h='http://lc.intravision.dk/dogear';var%20d=document;var%20b=d.body;var%20e=encodeURIComponent;var%20u=h+'/bookmarklet/post?url='+e(location.href)+'&title='+e(d.title);location.href=u+'&inframe=true&ver=';%7D;abcdefg();void(0);