Tuesday, 17 August 2010

Flex & Domino blog by Mark Barton

I recently found the blog of Mark Barton who has a complimentary agenda to Flexdomino.net.

Two postings are of particular interest:

Adobe Flex & Lotus Notes Presentation

Authenticated Multi File Uploads – A possible solution

Wednesday, 4 August 2010

Domino Access Services will not be included in Lotus Notes Domino 8.5.2

According to IBM the Domino Access Services (formerly named ISV APIs) will not be included in the 8.5.2 release because it is not complete against all of the market goals. Next steps for Domino Access Services for the post 8.5.2 time frame are currently under consideration.

So what does this mean? Well, it means that FlexDomino.net and Qkom.de with its product SoapGateQ is again alone in its efforts to provide some kind of access API to Domino. Of course our strategy is somewhat different in that SoapGateQ provides a web service based API rather then the RESTful services API IBM has been working on. As IBM dropped its API from the 8.5.2 release it is pretty futile to discuss the pro's and con's vs. SoapGateQ at this time.

Our goal is to have SoapGateQ (currently Beta 3) available by the time 8.5.2 goes gold and it will support all Domino 8 releases.

Tuesday, 3 August 2010

SoapGateQ and SoapUI

We completed SoapGateQ Beta 3 today and I thought a good way of showing what SoapGateQ does, is to demonstrate its use with SoapUI. To make it very short, SoapUI is a free utility to test web services. To avoid you needing to read the SoapGateQ wsdl file and create all the meaningful request messages, we simply share our SoapUI test project with you.

Here is what you need to do to test SoapGateQ with SoapUI:

Right click on Projects in the project pane and select Import Project or simply press CTRL + I

In the file select dialog select the project xml file you just downloaded and presumably saved on your Windows desktop and click Open

The SoapGateQ test project will appear in the project pane. Open for instance the DBCOLUMNX web service function and double click on the request message called Request dbColumnX Row

In the Request dialog click the green triangle top left corner to send the SOAP message to our Domino server and you will receive the result almost instantly

Feel free to send any of the available requests and change parameters to see what it has for an effect on the results.

Note: the web service function dbSendDocument will not send any email for obvious reasons.

Tuesday, 13 July 2010

How to session authenticate a Flash application with a Domino server...

For the last 12 month during the FlexGateQ! and SoapGateQ! development it became clear that the so far used session authentication is not satisfactory from a security point of view. This because we used a simple URL login passing on the username and password in clear text.

The URL had basically following format:


The problem with this method is that the request will be logged in clear text in the Domino logs and an  administrator could easily collect any user's credentials who authenticated a Flash session with Domino.

We finally found a much more secure method using an HTTP POST request, sending the posted content in an encoded form (similar to the standard Notes login form when clicking the submit button, just in an automated fashion).

Here is the Action Script code that does the trick:

function DominoLogin(
     rURL:String,          // root URL e.g. http://www.flexdomino.net
):void {

var loginURLRequester:URLRequest;
var loginURLLoader:URLLoader;
var loginVars:URLVariables;

// creating URL variables is similar to dynamically creating
// fields in a to be submitted form
loginVars = new URLVariables();
loginVars.redirectto = rURL + "/names.nsf/$about";
loginVars.username   = username;
loginVars.password   = password;

// the login attempt is on the public names and addressbook
// or names.nsf (simply as this database always exists)
loginURLRequester = new URLRequest(rURL + "/names.nsf?login");

// the URL request must be of type POST and the content type a urlencoded form
loginURLRequester.contentType = "application/x-www-form-urlencoded";
loginURLRequester.method = URLRequestMethod.POST;

 // we need to assign the variables (or sort of "create the fields on the form)
loginURLRequester.data  = loginVars;

 // we need to create the URL loader 
 // and add a fault and complete listener

loginURLLoader = new URLLoader();


// and finally we actually send the request

// at this point communication is complete
// however, the credentials might not have been
// correct. in which case Domino sends a login
// form. we still need to cater for this by 
// checking that the returned data is actually
// the URL set for the redirection 
// (the $about doc of the names.nsf)

function login_ok(event:Event):void
var tstr:String = event.target.data;

if (tstr.indexOf(".nsf/$about") == -1)
// redirect was not successful. could be a not handled login error
// run your error handling



// login OK, do whatever should follow a successful login

// if this listener function is called a communication 
// error occurred
function login_fault(event:FaultEvent):void

// run your error handling


Keep in mind that your Domino server has very likely a session time out configured and hence once your session is authenticated you need eventually to implement a session keep alive routine that is periodically accessing the server.

Monday, 31 May 2010

Finally I have time again to post some update on SoapGateQ! and FlexGateQ!

The last 4 weeks have been pretty tough. My main development machine's (HP Elitebook 2730p) hard disk simply died from one second to another. Gee am I lucky that my development environment runs in a VM which I back up frequently. So no real loss at this point. However, I couldn't find a replacement in Malta (at least not in store).

As I had to order anyway, I spoiled myself with an Intel 1.8" 160GB SSD. Pretty expensive piece of hardware, but I don't regret it a second. The speed is phenomenal, about 3 times as fast as a 5400ref HD and power consumption went down by 50%, increasing my battery life by 1.5 hours.

After it arrived from the States (2 weeks), it took me just another 2 weeks to get back to where I was. Unbelievable how much software tools one is using.

OK, that just for an explanation why it got a bit quiet on FlexDomino.net.

Meanwhile I finished of works on the last major module of SoapGateQ! and FlexGateQ! Today the dominoViewUtilities Classes have been completed. If you had a good look at the online demos on FlexDomino.net then for sure you tried out the Flex Viewer for Domino demo, which allows to view basically any Notes view in the Flash Player exactly (or almost exactly) as the view looks in the Notes Client.

So I took the code from this demo, streamlined it, improved it performance wise (by eliminating or optimising the item renderer used for the Advanced Data Grid and added the same sort of process workflow implemented for the dominoFormUtilities Class.

I will post new beta version with sample code on how to use the classes in the next few days.

Whilst I'm working hard on completing these libraries, our work-placement students putting the classes to the test. They have completed a project for European School of English, which is an Online Placement Test that students have to run online prior to their arrival in Malta. The test questions are actually maintained in a Notes database by the academics staff. The test results are also stored in the same Notes database and synch'ed back to ESE's operational databases (also Notes). Finally ESE is introducing coming week a Guided e-Learning System for adult students, and the personalised study plan is based too on the the results of the online placement test.

So this little Flex/Flash application which is utilising FlexGateQ! and SoapGateQ! has actually some pretty serious background and is a major factor for the success of the implementation of the Guided e-Learning System.

It needs a little work to modify the project in such a way that it can run outside the ESE context. As soon as I have a chance I will make the required changes and post it as a sample in the FlexDomino.net show case.

Saturday, 22 May 2010

Monday, 3 May 2010

Steve Jobs on Flash: Correcting the Lies...

Jesse Warden (Flex and Flash Developer - Jesse Warden dot Kizz-ohm) posted a very good rebuttal of a lot of Steve Jobs points in his recent "Thoughts on Flash"...


Adobe CEO Shantanu Narayen fires back at Apple CEO Steve Jobs

Adobe CEO Shantanu Narayen fires back at Apple CEO Steve Jobs who wrote letter, stating Adobe's Flash player was unfit for its mobile devices. WSJ's Alan Murray joins the News Hub from Adobe's headquarters with his exclusive interview with its chief executive.

Tuesday, 27 April 2010

Understand the usage of Soapgate Q!

A non developer test for Soapgate Q!
Not being a developer, the following test was helping me to understand what we have actually developed so far. This test was done with the Beta 1 version.

Soapgate Q! is the encapsulation of domino data via a webservice. It was developed for serving Flexgate Q!, the libraries that make it easy to develop in Flex for Domino. So understanding the basics of Soapgate Q! is a perfect start to fully understand the wrapper classes we created for Adobe Flex.
Soapgate Q! can be used with any system that can drive SOAP. If you need help for your system - just contact us.

To test it, create an open to anonymous access copy of the books demo db on my server (flexdemo.nsf). The same I applies to the Soapgate db is curently open to anonymous access (flex/soapgate.nsf).

I used a web tool for testing the Soapgate Q! web service...
Please use the IE7 or IE8 to see the results nicely formatted, Firefox and the others browsers display the returned XML unformatted (raw)

Enter the wsdl URL

We currently provide two versions of the web service:
(doc literal, used by FlexGate Q!)

here is the wrapped version.
(wrapped, for .Net and other development)

Enter the values for the parameters (if you are a Notes/Doomino developer you probably know the meaning of the parameters, otherwise please refer to the documentation available for downlaod) and invoke...


SRVNAME: flexdomino/flex2domino
DBNAME: flex/flexdemo.nsf
VIEWNAME: booksflat

This is the result:
< version="1.0" encoding="UTF-8">
- soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
- soapenv:Body>
- ns0:DBCOLUMNReturn xmlns:ns0="urn:DefaultNamespace">
ns0:DBCOLUMNReturn>Biographies & Memoirs/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Biographies & Memoirs/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Computer & Internet/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Computer & Internet/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Computer & Internet/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Computer & Internet/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Cooking, Food & Wine/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Cooking, Food & Wine/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Cooking, Food & Wine/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Mystery & Thriller/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Mystery & Thriller/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Mystery & Thriller/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Outdoooooors & Nature/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Outdoors & Nature/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Outdoors & Nature/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Outdoors & Nature/ns0:DBCOLUMNReturn>
ns0:DBCOLUMNReturn>Outdoors & Nature/ns0:DBCOLUMNReturn>

You can do this test also with your data in your environment - go to http://www.flexdomino.net and register for the download of SoapGateQ! Beta.

If you require assistance contact andreas.rosen@qkom.de

Wednesday, 21 April 2010

The Future of Flash - Update

By now probably everyone read about Apple's move to basically ban all applications from the apps store that have not been natively developed for the iPhone/iPad with the tools sanctioned by Apple. If not you can read more here on Mike Chambers blog.

One aspect that generally comes too short when discussing  Apple's apps store and the closure of the iPhone / iPad against installing native applications through other means is that companies who would like to integrate these devices into their corporate network and more important operations cannot (easily) do so.

For example, my current employer the European School of English in Malta is currently providing Blackberry devices to most of the management staff. We are planning to utilise the devices to access operational data through custom applications on our mobile devices. These custom applications will be (are currently) build with Flex/Flash Builder in anticipation of Flash running soon on Blackberry and other devices. The reasons for using Flash are:
In-house experience in Flex/Flash development
Open/Cross Platform of Flash.
Custom applications can easily be distributed.
Very best user experience is not so important.
Performance is NOT an issue or only with regards to the bandwidth required to get the data from the operational systems to the devices. The applications themselves are simple data grid/data form type applications. No CPU power is required as it is usually for games.

The latter is actually the point I want to make. Not all applications require top performance and hence even interpreted code will do fine, let alone cross compiled code.

In an organisation like ours, I have constantly to battle down the wishes of the top management to purchase (the more prestigious) iPhone because we cannot integrate them into our corporate requirements. Again the reasons are:
We do not have in-house Objective-C developers
We do not have in-house HTML5, CSS3 developers for web based applications
We do not want to sell or otherwise publish our development in Apple's apps store

And here is where I have poblems with Apple's closed platform policy versus Adobe's open platform policy.

It has nothing to do with open source. I couldn't care less whether the iPhone/iPad OS or the Flash platform is open source or not as long as it is open/cross platform. It also has nothing (or little) to do with the quality of software development as in our case we do not want to publish anything, we would if at all simply treat ourselves badly (hardly anything Apple would need to be worried about).

So what is consequence of Apple's last move? We won't have Apple devices at ESE. We might however add Android devices next to the existing Blackberries.

Who wins, who looses. Well, the way I see it, we do not loose anything by not including iPhones or iPads in our portfolio, except maybe for the loss in ego of some of the managers who would prefer to show off with an iPhone. No offence intended of course - just in case some of my Dear colleagues happen to read my comment ;-)

Monday, 19 April 2010

The Notes Client as we now it today is dead...no joke...

Having been at Lotusphere 2010 hearing first time about project Vulcan I immediately posted a rather ironic comment, not saying anything further to the subject as I was not sure if IBM is really serious about this. I thought (like others I talked to at LS) that this was just a kind of media buzzword covering the fact that nothing really new is to come and in one years time no one will hear about it any longer.

I particular felt that because project Vulcan would have a dramatic implication for the Notes Client. Well, looks like I was all wrong, in matter of fact IBM is very serious about it...

Read this blog discussion on BleedYellow.com:

Saving Notes: Why The Notes Client Must Die

And John D. Head comment to it:

If IBM Project Vulcan succeeds, the IBM Lotus Notes Client we know today is dead

Saturday, 10 April 2010

SoapGateQ! and FlexGateQ! Beta 2

In the next few days we will release SoapGateQ! and FlexGateQ! Release 1 Beta 2. We have added following sort of missing web service operations:

  • dbACL() - implements the NotesACL class
  • dbEffectiveRights() - implements the NotesDatabase.QueryAccess() method
  • dbUserRoles() - implements the Notes Formula function @UserRoles
In FlexGateQ! we also split the dominoDBUtilities class in two classes:

  • dominoWebService

    Core web service consumer class providing the "raw" web service operations, takes care of loading the SoapGateQ! wsdl file and authenticates the user against the Domino address book.

    The new class also provides a configurable session keep alive timer function.

  • dominoDBUtilities

    Provides now only the wrapper classes using the web service operations outsourced into the dominoWebService class.
This separation effectively improves the coding (code structure) and performance of multiple web service calls.

Tuesday, 6 April 2010

The future of Flash

Lately there have been discussion in many tech forums about the future of Flash because of the emerging HTML5 and Apple's denial to implement the Flash browser plugin on its mobile devices iPhone and iPad.

Many see Flash being killed in the long run by these developments. The FlexDomino.net team certainly does not. From time to time we will post links to interesting articles that will support our judgment. Today 2 articles about the development of Google Chrome and the impact it will have to the Flash Player's future.

Chrome share gain outpaces browser rivals & Google to build Flash into Chrome browser 

Thursday, 25 March 2010

Flash Builder 4 Released

Finally Adobe Flash Builder 4 is released.

After some trouble ordering the Flash Builder 4 upgrade I finally received the download links and license keys.

The installation looks much improved and is straight forward. Though I got a repeated installation notice saying something like "the PC is in a state of an outstanding planned reboot"  with the option to quit the installation and do the reboot or alternatively ignore the message and continue with the installation. I should have wrote the exact message down, but I guess I was too excited to think about it in that moment ;-)

After rebooting and again receiving that same message I chose to ignore it (which seemed to be fine).
I immediately started to import some of the Flex Builder 3 projects published on FlexDomino.net and with a few warning and confirmation screens the projects where imported without a problem.

On cleaning and rebuilding the projects a few warnings came up for each of the projects. All of them could be resolved quickly. I will explain migration steps on FlexDomino.net.

One thing we noticed is that the name spaces for the final release of  Flash Builder 4 have changed from the beta releases. As a result projects developed in Flash Builder 4 Beta (might) require some changes before they can be rebuild in the final release.

Wednesday, 24 March 2010

If there is one thing that will kill Adobe then it is...

...no, no, not the iPhone, iPad or Apple in general nor HTML 5 for that matter,

but simply Adobe Sales !

I just wasted 3 hours (!!!) in trying to purchase an upgrade to Flash Builder 4. Here is what happened:

I'm going on the Adobe website and go through the purchase procedure until the point comes to login with my Adobe account and I get a nice little error message on screen telling me that the account is registered in Malta and I would need to login with an account registered in the US.

I might have been able to just register a new account with an US address, but then again, my purchase history wouldn't move to the new account. Turns out that no Adobe Online Store works with a Malta account.

So I called Adobe Sales UK to make a purchase over the phone. Well I tried about half an hour before the damn phone system put me through to a person ... clearly located in India. After explaining my problem I'm passed to a sales person, this time located in the UK.

I explain the problem again and we start the procedure of a over the phone purchase with plenty of interruptions (waiting times to check out whatever). After providing my credit card details I explained I need the same company details on the invoice address which I had used with my previous purchase almost 2 years ago and which the sales person found in my account.

To my surprise the invoice I received via email 2 minutes later showed my personal address (the one linked to the credit card), however, with the companies VAT number. So by all means the invoice was completely wrong.

Calling the UK sales number again I get by chance and after further 15 minutes the sames sales person on the line. I explained the problem and he replied that there is nothing much to do about this, as the Adobe sales system does not allow entering a different invoice address then the card owners address.

You probably guessed that I got slightly impatient at this point and told them to just cancel the order if they can't provide a correct invoice. After all I need to get reimbursed. So the sales person forwarded the call to a customer support and I had to explain the situation all over again.

Arguments passed back and forward and after being put on hold for 5 minutes the customer support person pushed the call back to the sales person, who now explained that they could at least add the companies name below my name, but still with the wrong address.

Well, being somewhat a Flex/Flash evangelist I agreed to redo the order this way, otherwise I probably just would have sent them flying.

The moral of this story is, if you are not already living in an Adobe Country, you better migrate there as otherwise you are not welcome. Luckily for Adobe...Apple Stores are just as bad.

Almost back to normal...

We recovered the content and registered user accounts as of 2 days ago when the server hardware failed. Just two of the live demos don't function yet. By tomorrow we should have fixed these too.

We also managed to optimize the performance on the virtual machine running the web content management system to a point that there is no longer a performance loss. So really,...we are back to normal.

Tuesday, 23 March 2010

FlexDomino.net up again...

We managed to recover to an older backup of the FlexDomino.net website. We will work on the recovery of all missing information over the next days. If you can't login your account might have been lost. Either re-create it or wait until we are done with the full recovery.

The FlexDomino.net Team

Monday, 22 March 2010

FlexDomino.net down

Unfortunately the FlexDomino.net web and mail server broke down and we have been so far unable to replace the server hardware and recover from the last backups.

Because of this situation and the fact that the FlexDomino.net website was based on a no longer supported WebGui for Windows version, we decided to build up FlexDomino.net from scratch. This will obviously take a few days.

So for the time being traffic to FlexDomino.net will be re-routed to our blog.

We apologize for the inconvenience. If you need any help, our would like to download any of the sample projects please send an email to mwille64@gmail.com or contact me on skype: matthiaswille.

Friday, 26 February 2010

Invisible Flash...interesting usage of Flash in Notes/Domino web pages...

Just received this link to a posting on IBM's website for Lotus Notes Domino.

Wednesday, 17 February 2010

SoapGateQ! and FlexGateQ! Beta 1 (Build 2)

I just posted a new build of SoapGateQ! and FlexGateQ! including the first draft of the developer & installation manuals. Both can be found in the Downloads tab (you require an account to be able to login).

We have made some decision towards our licensing model:

We will provide a developer or community version for free. All we require will be the servers domain name to issue a free license key.

The license model for the production environment is not yet concluded, but it will be on a per server/domain basis.

The current download provides a 6 month key that can be used on any server / domain.

We will soon provide a developer registration platform of course based on a Flex front-end talking to our Domino server.

Friday, 22 January 2010

New REST API for Lotus Notes Domino

IBM announced a new REST API for Domino, which would be the first pretty complete interface to other platforms. We participated the session of Steve Nikopoulos (Future in IBM Lotus Domino APIs) and had some intense discussions in the labs with him to fully understand where IBM is heading to, and what impact this development has for our own web service based API (SoapGateQ).

First analysis let us believe that both solutions can be applied to different situations. Having said this, we investigate on how to include the REST API in our efforts to wrap these services in our FlexGateQ classes.

More to this subject will be posted soon.

Tuesday, 19 January 2010

SoapGateQ! and FlexGateQ! Beta are available now

Watch demo and download SoapGateQ! and FlexGateQ! Beta from here...

Interesting development regarding SoapGateQ!

I participated a rather lengthy session (1:45 minutes!) about Blackberry and iPhone application development. Subject of course how both devices can consume Domino REST services.

The obvious question that arose was, do these devices consume web services too? Well, for the Blackberry the answer is yes, it can consume RPC doc/literal type web services.

Bingo, this is exactly what SoapGateQ! is about. So we are investigating now how this exactly works and how we can implement the same wrapper classes developed for Flex (FlexGateQ!) for the Blackberry.

Stay tuned, as I'm a BB Storm owner and able to to test this out straight away, I may soon post some application samples for Blackberry consuming Domino data on FlexDomino.net.

I haven't investigated this for the iPhone yet. But will soon get an answer for this one too.

We are now officially Vulcan's...anything else would be illogic...

IBM announced in yesterdays Lotusphere opening session its new strategy for its Lotus software portfolio called "Vulcan".

See Ed Brill's blog entry.

And William Shattner's speech was refreshing and fun too.

   \\  //
Li \\// e long and prosper.

Thursday, 14 January 2010

Lotusphere we are coming...

Andreas and myself are in the last few hours of preparing or rather packing for Lotusphere. We are pretty excited. Our main projects SoapGateQ! and FlexGateQ! for Domino are going beta during Lotusphere. We are basically ready, but we won't make it to put the code online for download before we arrive in Orlando. But latest by Sunday download will be available.

If you attend Lotusphere you can meet us there.We created a community on Lotusphere Online

Sunday, 3 January 2010

Want to join FlexDomino.net in Malta...

...we have summer all year round, and the sea...
(Malta Times January 2, 2010)

Saturday, 2 January 2010

SOAPGateQ! & FlexGateQ! - Universal SOAP Gateway for Domino 2

This project is developing fast, not only in terms of its code stream. I just posted a little presentation (pdf) on FlexDomino.net explaining the direction we are taking with this development, the concepts which go far beyond the Flex / Domino world, and the code behind the demo I posted earlier.