A place to share my thoughts, ideas, and experience in matters I deal with as part of my daily work.
Tuesday, December 8, 2009
Integrating Speech in RIA in less than 4 minutes
For those of you who are interested in seeing how the .NET text-to-speech (TTS) service can be integrated in a uniPaaS RIA, I have prepared this short demo clip.
In this clip you can see how utilizing TTS is achieved in less than 4 minutes.
Click play and enjoy.
(The movie is displayed using windows media player active-x. Make sure you confirm its execution if prompted by the browser)
The source of the RIA demo including the TTS sample is available for download from the RIA demo help menu.
Monday, November 16, 2009
Upgrading the RIA Demo to uniPaaS V1.8 SP1
When you run it again your client will get updated automatically and then continue to run the demo.
The source and resources files of the demo in its latest version are also available for download in the same place as before. That is under the Help pulldown menu.
The download screen keeps the link to the V1.8 version of the source files in case you wish to continue and use the previous release of uniPaaS V1.8.
Enjoy :-)
Wednesday, October 21, 2009
Smart Cats Know What is Best for Them
I know the "Downfall" bit I posted a few months ago was too sensitive for some people, so I hope this one will not stir too many negative emotions (or allergies…).
Sunday, October 11, 2009
Lotus and Salesforce.com Synchronization Clip is Ready
I am happy to inform you all that the clip demonstrating how easily one can synchronize Lotus Notes address book for any change made in the Salesforce.com contacts is finally ready and it is now available for all to watch.
You can view it on YouTube (Full screen view is recommended):
Or you can open the flash version of it on our web site.
Moving on to the next clip...
Thursday, October 1, 2009
More Got Excited about iBOLT
Three weeks ago I got very excited in experiencing the great ease of integrating an off-premise application such as Salesforce.com and on-premise applications like Lotus Notes and Domino Server using iBOLT.
It seems that it was not just me who got excited about iBOLT, and the way it enables organizations to easily integrate cloud applications with their on-premise applications. Nefos GmbH, a leading premier consulting partner of Salesforce.com located in Zurich, Switzerland, chose iBOLT for the very reason I got all excited about.
As a leading partner of Salesforce.com, and like any other integrator of SaaS applications, Nefos GmbH face the challenge of integrating the SaaS application with the exiting on premises applications that the organization already uses and wishes to continue and use. iBOLT truly gives them a great advantage in enabling such integrations with a high level of productivity, with great ease of use and with the confidence of robust delivery.
When you have iBOLT with which you can easily tame complex cloud applications, even the sky is no longer the limit.
PS. The clip I prepared showing how easily you can synchronize your Lotus Notes address book with Salesforce.com contacts is ready and will soon be available.
Tuesday, September 8, 2009
Re-excited about iBOLT while synchronizing Lotus Domino and Salesforce.com
I am working now on recording a live demo showing how easily Salesforce.com CRM application can be synchronized with Lotus Notes.
For the demo I chose to show how I synchronize my Lotus Domino Address book with the contacts created and updated in Salesforce.com.
For every new contact in Salesforce.com, iBOLT adds a new contact in my Lotus Domino Address book and whenever a contact is updated or deleted on Salesforce.com, iBOLT updates that contact or removes it from Lotus Domino.
Every time I get the opportunity to demo something in iBOLT I am struck with amazement. As a Magician developing with eDeveloper and uniPaaS, I am very much accustomed to high productivity. And still iBOLT amazes me by doing complex processes so simple.
Keeping my Lotus address book fully synchronized by any modification done to the Salesforce.com contacts is achieved by this one short and simple flow:
Stay tuned to see the final video.
Wednesday, July 15, 2009
Which is Rich in RIBA?
Enterprises already realize that the design of a rich business application deployed over the Internet (RIBA), must avoid the unsuitable user experience achieved by common browser-based designs.
Business application designers understand that their end-users are still accustomed to the fully managed, flowing, and familiar user experience that is provided by desktop applications.
Keeping a desktop-like user experience does not only reduces end-user frustration and increases the adaptation of a new application, but it also maintains and even increases the end-users' productivity and overall satisfaction.
UI Vs. UX
It is important to distinguish between rich User Interface (UI) and rich User Experience (UX), especially when it comes to business applications that are more of a B2B nature.
Rich UI caters more to the way the application looks like, while rich UX relates more to the way the application is used. Rich UI may offer a highly esthetic design utilizing the latest graphical design patterns and capabilities, including elaborated animations, newly shaped controls, embedded media, and so on.
However highly graphically designed UI may not yield the optimal UX and many cases it would only hinder the expected UX.
Focus on Rich UX
Rich UX caters first and foremost to the usability factors that will enable the end-user to complete each task in the most efficient and productive manner.
Rich UX is designed to be highly intuitive, by following common models of UI manipulation.
Rich UX top criteria suggest a highly workable application, with minimal effort in understanding the interface and its underlying functionality, optimal performance and end-user productivity, and eventually such that creates great end-user satisfaction.
This does not mean that the UX should be over esthetic or should necessarily employ complex rich UI elements. It means that when it comes to RIBA rich UI is just means to an end, but not the end itself.
Thursday, July 9, 2009
uniPaaS V1.8 RIA Demo - Project Source
You can find the project source files at Magic Software's knowledge base.
I recommend going over the document that accompanies the project source before you run it.
The project source includes all the new .NET integration sample programs that are demonstrated in the RIA demo new ".NET Integration" pulldown menu.
The project source also includes all the mobile demo programs.
Feel free to do anything you like with the project source. You can copy any part of it, combine it in your own RIA projects; you can freely distribute it, you can freely present it anywhere, you can share it with your friends, your spouse, your parents, your grandparents, your children, your children's children, your neighbors, and your mailman. You can share it with anyone.
Enjoy it.
Monday, June 22, 2009
New .NET Floating Clock in the RIA Demo
The RIA Demo now has another .NET integration example showing the integration of a .NET assembly that displays a .NET form.
The example is a simple one displaying a floating clock. From the uniPaaS form you can control the visibility of the clock'c form and its opacity.
The following images demonstrate two levels of opacity controlled from the uniPaaS demo window (the clock floats above the window's title):
You can also drag the clock display by pressing the mouse button on any of the digits and moving the mouse pointer anywhere on your desktop.
Wednesday, June 17, 2009
UniPaaSão Mobilizão
I know no Portuguese, but I love the way this language sounds and how many words have this cool long ending of "ão", like coração (Heart).
I very much liked the new post on YouTube featuring uniPaaS mobile RIA demo the way it was demonstrated to a large Brazilian audience by my esteemed colleague Helio Diamant.
I hardly understood anything Helio said but indeed a picture is worth a thousand words and more so a movie clip.
It was very encouraging to see how well the application performed considering the lame machine the server process runs on at Magic Software HQ building, on the other side of the globe.
Well done Helio :-)
Wednesday, June 10, 2009
Understanding the Richness of RIA
A Cool Presenter
I just finished viewing a presentation of Jamie Cool, a Program Manager at Microsoft Corporation, that took place in the Professional Developers Conference of October 2008 (PDF2008).
The title of the presentation is "Microsoft Silverlight: Building Business Focused Applications" so it was very interesting for me to examine how SIlverlight deals with the requirements of developing business applications.
I must say that I was quite surprised by the introduction of Jamie Cool to the nature of RIA when it comes to business application. That was of course after his introduction of himself talking about how cool is last name is which is indeed "Cool".
When I say 'Rich Experience'...
The interpretation of Richness part of RIA differs in different contexts of use. Many think that elaborated graphical elements & design capabilities, animation, and video & audio streaming constitute the required Richness of RIA.
This is true when it comes to commercial, social, or gaming related applications. But this is not the case when it comes to business applications.
Also Jamie Cool himself, a SIlverlight evangelist, could make the required distinction between the contexts of use, and here is his definition of Rich Internet Applications:
"If we're gonna be talking about business application, let's talk about what do they need. And what do they need that can make Silverlight a good platform for them. Well, you know, the first thing they need are 'Rich Experiences'. When I say 'Rich Experience' I don't mean, you know, buttons shaped like fishes, or things spinning around or the, you know, ultimate animation. What I really mean is "interactive UI". Odds are you're applications has a bunch of data in it. You need users to be able to manipulate that quickly without having to constant refreshes. Without having to do multiple clicks to accomplish a task. You need a very interactive compelling UI for that type of scenario." (Time mark 00:03:10)
You can hear this part yourself (excerpt taken from the above link
In this respect Jamie is right on the money in describing the Richness business applications require. However judging by the cumbersome development paradigm Silverlight offers compared to uniPaaS, I am not sure that Silverlight is a good platform for business applications, as Jamie suggests.
RIA Slide taken from Cool's presentation
That's 3GL for Ya
When you will get to Time mark 00:10:30 in the presentation, you can check out the complexity Silverlight presents to accomplish data display. As it was always the case, there is a kind of pride in 3GLs, such as ASP.NET and Silverlight, of the myriad options a programmer has and needs to pick from. The liberty of technological choices stands at the heart of all 3GL's complexity.
uniPaaS productivity approach suggests that you do not need to pick any technology to accomplish your data transmission. Just define the data you want to use, and it will be transmitted automatically for you. The most appropriate technology was already selected.
Dealing at the level of sockets, WCF Duplex, Direct HTTP requests, REST, XML structures is great technological fun, but organizations need their projects to be delivered on time and on budget. Deliver your project before schedule and then have a lot of fun time exploring technologies.
The great Distance between Just Displaying Data to Actually Doing Something
The code required to just display data on the browser is not trivial, also in Silverlight. The worst part of it is that the gap between the data display to data input, validation, server update, business rules employment, and elaborated data entry UI, is substantial. Take your time to go over this presentation to get a sense of how much script and code are required to produce the basic functions of a business application (Scrolling, Paging, Filtering) that are so trivial to accomplish in uniPaaS.
It is even more amazing to see that business application development principles that are integral part of uniPaaS ever since its predecessors, such as field validation settings, are presented on October 2008 as the future plans for Silverlight.
Client code and Server code – Unite !!!
Silverlight is indeed making progress in enabling the client code to hook and access the application server code. But still the paradigm suggests separated development of the two entities, which are on the one hand tightly coupled, not leaving room for future replacement of one of the tiers, and on the other still keeping the cumbersome development of the two separated code entities.
uniPaaS offering the required business application richness and a unitary development paradigm is definitely the right tool for the job.
Dressing up for the Occasion
Now, don't get me wrong, Silverlight is extra cool. With it you can produce really breathtaking UI. But as Jamie said, your business applications require a different kind of UI. Using Silverlight or Flash for your business applications is like wearing your best tuxedo or evening gown to the office – every day of the week. If you are going to work, just put on a normal suit, or in some parts of the world (like the one I am coming from) just put on your jeans and T-shirt and spend more time working than dressing up.
Now that we understand what sort of UI we need, then why invest valuable time in coding client module and server modules as Silvelight does. Why not do the same with less. Do the same with uniPaaS.
P.S. - Time for RIBA
I do believe that it is high time for a new IT acronym to be introduced – RIBA – Rich Internet Business Application.
Tuesday, June 2, 2009
uniPaaS RIA Vs. Adobe Flex – Doing The Same with Less
I know no Portuguese, but I love the way this language sounds and how many words have this cool long ending of "ão", like coração (Heart).
Browsing through competitors web sites and blogs in order to get better understanding of their offering I came upon a sample for flash based RIA and I was quite amazed with the amount of code and hassle one needs to go through to produce a very simple task in Flash compared to straight-forward manner of achieving the same functionality in uniPaaS RIA.
This introduction level example of Adobe perfectly illustrates the complexity imposed by the use of diverse technologies for implementing RIA, where the development is based on separated client and server side technologies. The Adobe flex example shows how even for the simplest task one needs to break the task requirement into 3 parts:
1. Client Side Logic
2. Server Side Logic
3. Client\Server Communication
Implementing the same example in uniPaaS RIA shows how the implementation is greatly simplified having a unitary technology and development paradigm.
Compared to the more than 50 lines of code required in Adobe Flex, uniPaaS RIA achieves the same with 6 lines of operations and 6 expression rules. And this is for the simplest task.
View the following online presentation to see all screens and code of both Adobe Flex and uniPaaS (It is recommended to view it in Full Screen mode).
You can also view the presentaion at Zoho
Why waste valuable time and effort where you can achieve the same result with much less work.
Wednesday, May 20, 2009
Lunch Time Usability
However there is one very annoying matter that I go through every time I log into the web site to order my lunch. It is just one simple checkbox that implements, not 1, not 2, but 3 usability mistakes.
The checkbox appears on the log-in page and it is intended to allow the user to set if the log in details should be kept for future access or not.
It starts well. On the log-in page the checkbox suggests to "Save Login Details".
If you choose to keep your login details you simply check it. Clear enough.
The next time you access the system the problems start.
Inconsistent Functionality
On a consecutive access you get to the same page and the checkbox changes its description and functionality to "Disable auto login". Imagine how many users, just like me, clicked the checkbox again, thinking their previous update did not stick and actually undoing their previous setting.
A better way to handle this matter is to simply keep the previous description and keep the checkbox checked. If one wishes not to keep one's details anymore one should simply uncheck the checkbox. This suits the basic mental model of undoing a previous setting – "I turn a switch on and later I can turn it off". In the current design "I turn a switch on and then I need to turn another switch on in order to turn the previous one off"…. Oh lord….
Redundant Walkthrough Page
The erroneous checkbox suggests "Auto Login" though no automatic log-in is done in this case. If I choose to keep my log-in details then why do I need to go through the login page every time I access the web site? Why not get logged-in automatically and be directed to the secured section already logged-in?
Implementing automatic log-in sequence would also eliminate this ridiculous "disable" checkbox.
Double Negative
My first blog entry related to the problematic double negative checkboxes. This "Disable Auto Login" checkbox is another example where the user needs to uncheck (a negative action) a negative action (disable).
What Should be done
Simply do what all other secured web sites do. Have a checkbox of "Remember me" and once checked the user is always directed into the secured part without going through the login page.
It is simple as that.
Until it this annoying checkbox is fixed, it would be better for me to avoid this checkbox by simply walking a few yards and get lunch myself – This would be a win-win situation. Maybe it would be better if the checkbox will kept as it is so I will get more time outside the office.
Tuesday, May 12, 2009
The unbelievable lightness of Mobile Development
The uniPaaS RIA technology managed to amaze me twice. Once, seeing how I can produce world-wide available application while developing in the same way I am used to in developing Client\Server applications. Twice , when I saw that with the same ease of development I can now produce very complex mobile applications.
Actually, in producing my first Mobile application, I did not do much development. I simply restructured the UI of the regular RIA demo and with not much additional effort I transformed the RIA demo into a Mobile RIA demo.
The small screens of the mobile device suggest a different approach for the application UI design. In my case, turning the big Order Entry screen to fit the mobile device ended up by just breaking the screen into parts and placing each part in a tab control.
All the logic I defined before was kept as is and it is now executed fully when running the program from the mobile device.
This video clip illustrates the Order Entry screens and Today's Orders screen on the mobile device.
The image below shows the order entered by the mobile device as it appears on the regular, stationary live RIA demo.
I expected our Mobile support to be such that will provide easy and rapid development, but I really did not expect it to be that easy and rapid. What a treat…
Tuesday, February 10, 2009
Why RIA? Because it is too Risky Otherwise
Rich Internet Application is a new possibility many organizations and software vendors which have not yet made the transition to RIA are now considering.
Most of them are considering RIA namely for the trivial reason of enabling a wider distribution of their application with minimal costs. For needs for wider availability of the application by keeping the application management centralized and lean, RIA is definitely the obvious path to choose.
On the other hand, organizations that do not foresee any need for wide availability of their application, as all end-users are accessing the application from one location, tend to dismiss the RIA opportunity. Unfortunately such organization are missing one major value that RIA offers the, and that is SECURITY.
In early 2008 a research conducted by the US Computer Emergency Response Team (Cert) estimated that almost 40 percent of IT security breaches are perpetrated by people inside the company ("The top 5 Internal Security Threats" at ZDNet.co.uk).
This is quite alarming piece of information. Organizations need to realize that any information system they deploy can be used maliciously by the system's end-users. But what that has to do with RIA?
When deploying an application in a form of a locally running full client, the client machine is setup in a way that enables the local application to have direct access to various resources including the Database, users files, and templates. Accessing the sensitive information contained in such resources is expected to be controlled by the application security means, and usually, properly designed application provide very good means to allow only authorized users to view and manipulate restricted information.
Unfortunately, the direct access to the application resources is made available not only to the application itself. It is there for any malware to directly access the sensitive resources and bypass the security measures that are incorporated in the application.
RIA suggests not only an easily distributed desktop application but also offers an intrinsically multi-tiered architecture by which all application resources are placed far away from the end-users' direct reach. In RIA, the end-user accesses the application platform server only. The server already behind a firewall accesses the application resources. Not only that the end-user cannot directly access the database of the application, the end-user cannot even tell what sort of database is being used by the application.The increased security is often a trivial matter in a RIA architecture, therefore many overlook it, but the fact is that RIA is much more than just an Internet based application.
RIA is a highly secured Internet based application.
Check out uniPaaS RIA solution and see how easy it is for you to continue and develop dekstop applications to be deployed as highly secured Rich Internet Applications.
Tuesday, January 20, 2009
Downfall of Code - REMOVED
The intention in creating that clip was for humoristic purposes only.
I sincerely apologize before those who viewed this clip and were offended by it.
This was not my intention.
I would also like to clarify, that just like any other past and future posts made in this blog, the creation and posting of this clip is of my own personal doing and in no way directed nor sponsored by Magic Software Enterprises.
Monday, January 5, 2009
Browser Free RIA – The Best Approach for Enterprise Applications
Unfortunately, when it comes to real business application, and also complex core business applications, the browser as a front-end facilitator is far from being adequate. The browser, as the name suggests, is intended primarily for browsing and for light data entry that is required for more accurate and pin-pointed browsing. When medium or heavy intricate date entry is required, the boundaries of the browser are becoming more noticeable.
Ajax is an example genuine browser-based UI. Ajax user interface (UI) is on the one hand free of any third-party software other than a browser but on the other hand it is completely dependent on the browser capabilities and usually is designed to meet the lowest common denominator of the various browsers currently available. A recent study done by Forrester Research Inc, titled "Ajax Disappoints Power Users Looking For Web 2.0-Style Business Apps" suggests that though Ajax based UI may serve and satisfy very-infrequent users or occasional users it fails to deliver the expected user experience (UX) for power-users who used the application very frequently.
The Forrester research focuses on the fact that Ajax is mainly script based pattern of development and is very much dependant on server side services. These two facts put together in a UI abundant with data entry and data display controls result in poor performance and consequently poor UX.
Though Ajax developers are able to produce quite nifty UI, it is, in most cases, an attempt to mimic the UX of desktop applications and together with the efforts required to clean-off irrelevant or unsuitable browser functionality (e.g. Backward, History) and replacing existing functionality with an appropriate one (e.g. context menus, pull-down menus) suggests a very complex and tedious application development and later on application maintenance.
Proper windows management in desktop applications
Now don’t get me wrong, I also use Google's Gmail and not just Microsoft Outlook. However I would prefer to use a true desktop UI much like Outlook which, like Gmail, is available from any new machine I might work from without needing to explicitly install and while keeping email folders on the server.
If, as an organization, I need my core business application to work over the Internet and to keep my end-users satisfied and productive with a rich and highly interactive UX I need mainly two things: A dedicated server and a dedicated UI. I do not necessarily need a browser.
Browser DisillusionmentWhen we started working on uniPaaS and its RIA technology, we noticed that many CIOs and CEO's were still very much fixated on the fact that RIA must be browser-based. Slowly but surely, as we have advanced our RIA technology, we saw how more and more decision makers become disillusioned and understand that a Browser cannot really be Jack-of-all-trade and that there are many challenges that simply do not suit a browser based implementation. Some have reached this disillusionment from a bad browser-based experience and some simply by objectively and sensibly analyzing the merits and faults of each alternative.
To address this growing need Magic Software developed its new RIA technology supported by Magic Software's latest application platform – uniPaaS.
If it looks like a desktop application, and feels like one…
uniPaaS RIA offers organizations and software vendors the ability to provide easy to use and easy to adopt UI that is implicitly installed over the internet and is fully served by a centralized internet server for the means of live data provisioning, data entry and live application updates. The benefits of uniPaaS approach to RIA are many. On the one hand the developers get to produce UI in a form very much similar to the way UI is produced for common Client\Server applications. On the other hand, the end-users get a UX they are familiar with and accustomed to. Together with the rapid application development uniPaaS offers and with the unitary approach for developing partitioned applications such as RIA (where much is to say about this matter separately), producing core business RIA is becoming a trivial task for any Magician.
A sample screen from Magic Software live RIA Demo
I invite you to try Magic Software live RIA demo to get the feel of the UX it has to offer. Most likely you will feel quite at home with a very intuitive and familiar UI –This is the exact intention.
Thursday, January 1, 2009
Double Negative in Checkboxes
Recently, I keep stumbling on annoying cases in which checkbox controls are designed to activate a negative operation. This is well illustrated in the example below:
Such cases are double negative and are very confusing, especially when the option to be marked is complex by itself.
[BTW, if the recipients I send my email to are working in the same building as I am, and they are running out of office, I guess I should be running out of office too, may be a cubical just caught fire… but I digress.]
Wouldn't it be simpler to have these checkboxes like this:
The problem with negative checkboxes goes beyond mere confusion, but also suggests a negative impression end-users get. Too many "don't do that" give the end-user the impression that the application they are using tends to do too many things which one better turn off.
It seems that such checkboxes where created with the notion that the feature of notifying the sender on "Out-of-Office" recipients is often regarded as a nuisance. Indeed, this way, this checkbox impart that feeling exactly: that this is probably an annoying and a redundant feature.
Here is another example:
"Do not ...." suggests a passive state. There is less sense in activating a passive state.
I must confess that there are a few cases which I am not yet sure if they should be treated as exceptions to the rule, or to be replaced by proper rephrasin of the option text. Two, very common, cases are "Ignore" and "Disable". On the one hand they are kind of a common instructions power-users are already accustomed to, though they suffer from the same problems as regular negative phrases. The Ignore options in this example:
Could have been easily phrased as:
(Yeah, I know I have spelling mistake. My "Ignore words in UPPERCASE" option was turned on…).