Feb 08

Here is the list of Web Application Frameworks in use today. RIA and AJAX are new terms for a technology in use for many years. Given the hype for these terms, it is difficult to differentiate between products. They vary substantially in their technical foundation and their suitability for specific requirements. Careful product evaluation is essential and making a decision is a complex, non-trivial task.

Of all these frameworks, Adobe has the total solution that is reliable, scalable and offers robust server and client side applications for creative design, media services, web and RIA development, middleware and workflow, enterprise reporting, document sharing, and collaboration to mobile.

Adobe Flex/Flash ActionScript

JavaScript
Further information: JavaScript library

Server-side

ASP.NET

ColdFusion

Java

JavaScript (server-side)

Perl

PHP

Python

Ruby

Other languages/Multiple languages

Web 2.0 and RIA Tags @ RIApedia

Del.icio.com - Flex Resources

Nov 26

A client asked me: Do you work much on weekends? Not wanting to disappoint, I spend Monday writing them a fun reply.
(Personally I try not to work on weekends but there are times when its unavoidable)

comic11.jpg

  1. Programmers tend to under estimate development time-frames. There are often too many variables to consider, even in the best of requirements specifications and design documents.
  2. We also under estimate house-keeping time, often underestimating things like code-commenting, help file generation, going through team changes, etc. The time for these ‘non-programming’ activities can be as much as a third of the total project time, which is often reclaimed on weekends.
  3. We have to learn a bunch of things about your company and its technologies and how we are to integrate with your systems, up front – but we don’t plan time or money for these tasks and end up making up for lost time.
  4. We usually run into a number of unexpected issues such as having to upgrade to a new SDK, or something equally time consuming. Upgrading the software project with the new SDK can take up many extra unplanned hours.
  5. Our development machines are so bloated with development kits and various other useful oddities that they regularly need unexpected maintenance and or repair. Everyone knows how time consuming that can be!
  6. There is always a sense of extreme urgency to get the job done. We know we under quoted, we know the competition is doing something equally impressive, we know about points 1 to 6, even though we hardly account for them.
  7. Its agony to be torn away from something highly creative and engaging. Software development is to programmers what music is to musicians.
  8. Virtual sexual gratification on weekends appeals to (some of) us. This is what we call a break from work.
  9. Keeping up with technology developments is a full time job in itself; a year long project will have a year’s worth of new stuff to learn and implement, which can add an additional month to the project time line – but the project is still expected on the old time line.
  10. Updating client’s servers often takes place on weekends when everyone else is relaxing at the pool.
  11. Sometimes servers go down during the weekend and we have to respond to complaints without delay.
  12. Programming requires so much focus that quieter weekends without interruptions can be very productive. Well at least the phone rings less, but the wife/partner/lover/kid complains more – we can never win this battle.
  13. Programmers don’t really have a fixed schedule. We can work all weekend and take off Monday if we like.
  14. Customers often call up on a Friday with a bug or technical issue to be resolved by Monday. Well if we don’t resolve it immediately we may have to work on Monday.
  15. We hate working on Mondays.
  16. A pretty geeky bunch, we find our computers a great source of entertainment on weekends – better than most crap on TV – we can even take breaks without leaving our computers.
  17. Everything a programmer needs, apart from food, water, and going to the toilet, is available online; dating, shopping; porn; blogging, you name it – we made it.
  18. We have a secret love affair with our machines (but would never admit it).
  19. Choose a platform – the company providing it has hundreds of engineers working on it full time – how can one programmer using that platform possibly keep up with [just] using it? The moment we learn their new feature they have another one.
  20. We also work really late into the night on weekdays/ends – when it’s quiet and we can concentrate. Maths, geometry and logic require quite focused attention. If we get an idea on a weekend, nothing will stop us from implementing it right away.
  21. Too many other tasks like keeping our blogs up to date, maintaining client accounts, meetings, trade shows, et al, take up so much time that we are forced to use our weekends to catch up.
  22. A programmer will encourage everyone else in the house to cure their own boredom via their Internet connection – especially on weekends.
  23. We don’t really like sun tanning or physical sports which are usually weekend activities.
  24. Secretly we think other programmers are better than us and we know they are working on weekends.
  25. If we didn’t program on weekends we would miss out on about 20 cups of coffee and then wonder why we feel so lazy. We may even feel like we need a weekend off – shudder the thought.
  26. As creatures of habit we are rather addicted to what we do. Every programmer knows that when they run into a problem nothing else seems to matter more than fixing it – whether the house is burning down or not is rather irrelevant.
  27. We have so much outboard gear like iPods, phones, TV Games, etc that it takes the whole weekend to sync it all with our laptops.
  28. We are great sharers of knowledge and spend time in forums and the like asking each other questions and giving our answers. Every programmer knows there is no error whose resolutions cannot be searched for on Google. Why? Because we typed it in to a forum somewhere on a weekend.
  29. We think programming is a lot of fun and gives us a sense of accomplishment and achievement, in equal quantities provided on weekends to sporty macho types.
  30. Usually people have high expectations for weekends. We are never let down.
  31. 52 weekends equals around 832 hours @ $100/hr, or more, that’s a lot of money to throw away.
  32. Sometimes programmers are able to charge more for weekend work – but it’s not generally a motivator.
  33. We are more intrigued by programming than drinking, drugs, swinging, and barbecues. Try proving us wrong.
  34. We often say “Just finishing this last line honey, I won’t be long”. Gee Monday, [and the belting] comes so soon.
  35. Programmers don’t really consider what they do to be ‘working’ – but rather having fun. That’s what weekends are for right?
  36. Since we don’t have to commute and talk nonsense to indifferent colleagues every day we are less tired than you on weekends so we can work more.
  37. We don’t have to see the upsets that have taken place in news and sport on TV which keeps us on even keel and great mood. You on the other hand need to recuperate.
  38. Most people sit around on the couch on weekends with the newspaper or a book. So do we, but ours is online.
  39. Many programmers are single and don’t have a social life except online. Many non programmers have this issue too, but at least we can self medicate.
  40. When my wife/child/friend asks me a question (on the weekend) I rush to find the answer online and am puzzled that they don’t know how to do it themselves.
  41. MS Word froze unexpectedly (or rather expectedly) and I hadn’t saved the first 40 answers.
  42. Everything always seems to be due on a Monday. If it were due on a Friday we’d probably still work on the weekends though.
  43. Stupid people suck so much time out of a schedule during the week there is no remedy but for the weekend catch-up.
  44. Working on weekends is a side effect of poor planning, or maybe not.
  45. There are perfectly nice people out there in the blogosphere many of whom pop in for a quick chat while (we are) working on the weekends. That’s a kind of weekend activity isn’t it? But for us lucky programmers it’s kind of like socializing while working.
  46. Everyone who knows us, family and friends, look to us for solutions to their own computer problems, usually on weekends.
  47. Sometimes the people we are supposed to spend time with are so boring we cannot help but think of our tasks at hand and get back to them – especially on weekends.
  48. Many programmers hide behind their computers in a sort of surreal world that does not confront the human realties of life in quite the same way – i.e. it’s a less painful world to live in.
  49. Many programmers are rather dysfunctional in non-programmers terms of life – but at our computers we excel and are motivated, encouraged by our own successes to meet new challenges, besides.
  50. Often we use programming on weekends as an excuse not to have to be with you or do something we don’t want. But you would never know that because we always work on weekends, don’t we?
  51. We don’t see programming as work necessarily, rather to us its more like composing music - wouldn’t everyone give up their day jobs and weekends to play beautiful music?
  52. All of us weekend programmers are fucking idiots because weekends are for relaxing and for fun and food and sex and going out and seeing friends and going for a swim and a million more interesting things than programming.

Coincidently I finished this silly write up during the week (Monday PM, AEST).
After all, I can catch up this coming weekend and I don’t really like working on Mondays.

    comic2.jpg

    UPDATE - 03/12:

    Since this post is getting around 3000 visits a day I thought I would share a little treasure with you. I just read the most amazing book: “The Book of Lilith” by Robert G. Brown. In fact, I loved this book so much that I contacted Robert and offered to spread the word. So I spent the weekend making a cool little RIA (Flash application) of the Preface to the book. Robert is an independent author and in my humble opinion his book deserves to be a best seller. Please support Robert by spreading the word, and hey, take the weekend off with a spectacular read this Christmas. [Flash Version here | Text-only version here]

    UPDATE - 04/12:

    Robert G. Brown (mentioned in yesterday’s update above) left a comment. Thanks for stopping by.

     

Nov 23

I just proved that ClearBI (from Farata Systems), an amazing new web-based report generation tool, that delivers reports to Adobe® Flash Player, is fully compatible with MYOB – out of the box. So now, I can confidently say “ClearBI makes it easy to create and share dynamic MYOB reports and charts on the web. Users can simply log in via their favourite web browser to browse, create, modify and share any MYOB accounting data, within 15 minutes of installing ClearBI.”

The Report UI is presented in Adobe® Flash® Player, which delivers an immersing experience (its Flash®!) and superior functionality (client side RIA) and speed (via AMF binary data transfer), to any web browser. Users never have to refresh their browser while working with report creation, viewing, modification, et al, as its all viewed in Flash®.

To set it up you need ClearBI and a J2EE Application Server, which is typically a PC (or Server) running Apache® Tomcat® and Adobe® LiveCycle® Data Services. (there are free licenses, trials or otherwise, for all the software you need. see respective links)

To make it work you create an ODBC Data Source (DSN) for your MYOB data file (using MYOB-ODBC Driver) and then configure ClearBI via the familiar dialogue box. ClearBI then automatically produces the Adobe® Flash® files (.swf) and places them on your J2EE Server ready for immediate use. Users can log in and create new derivative reports and charts literally out of the box.

15 Minutes to MYOB Reports and Charts in your Web Browser:
Adobe Flex developers can set up ClearBI to work with MYOB by following this routine:

This assumes you have the system requirements in place - see J2EE requirements below

  1. Crate a new ODBC Data source using MYOB-ODBC drivers.
  2. Configure the Sun JDBC-ODBC Driver in Eclipse > Preferences > Farata > Datasource <New Database Type> as follows:Name: Sun
    Description: Sun
    Driver classname: sun.jdbc.odbc.JdbcOdbcDriver
    Default URL: jdbc:odbc:{MYOB data source name};UID={me};PWD={secret}

  3. Create a new Java project in Adobe Flex®.
  4. Invoke Clear Data Builder on the new Java Project.
  5. Add the standard project configuration settings as described in the ClearBI documentation
  6. In Clear Data Builder > Configure Build, add Database Profiles for the report Meta-Data and for the MYOB data file: Create Datasource 1:
    name: jdbc/clearbi
    Database: MySQL5
    ConnectionURL: jdbc:mysql://locahost:3306/clearbi
    User: {me}
    Password: {secret}

    Create Datasource 2:
    name: jdbc/myob
    Database: Sun
    ConnectionURL: jdbc:odbc:myob (where myob is your MYOB-ODBC DSN name)
    User: Administrator
    Password: {blank }

  1. Create new Java Class assemblers with simple SQL statements, a method and a destination for all of the MYOB tables you want to query e.g. Sales, Accounts, etc (see ClearBI Documenation for examples)(note: you can ‘discover’ the MYOB ‘table name’ easily by using a desktop application such as MS Access® to connect to the MYOB DSN and create an MS Access® database from the MYOB database. Then simply identify all the MYOB ‘table names’ and their corresponding Indexes (Key Columns).

Here is my example MYOBAccounts.java (class) - It’s just a simple ClearBI RAD assembler statement for my MYOB Accounts table.

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

package com.st.project;
import java.util.List;

/**
*
@daoflex:webservice pool=jdbc/myob
*/

public abstract class MYOBAccounts {
/**

*
@daoflex:sql
*
sql=:: select * from Accounts
*
::
*
transferType=MYOBAccountsDTO[]
*
keyColumns=AccountID
*
updateTable=Accounts
*/

public abstract List getMYOBAccounts();
}

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

 

7. Create a new Flex® Project in Eclipse and link it to your Java Project (see ClearBI documentation for how to do this).
8. Select Build All in Clear Data Builder menu.

 

That’s it! Now you can preview and edit all your MYOB reports in ClearBI, create charts, beautify the reports, and then publish them as Templates to your J2EE Server. Users can log in using their web browser and create derivative works from those templates and publish them down the line.

ClearBI MYOB Reporting

MYOB Accounts table shown above in Adobe® Flash Player

Here are the Development and J2EE Server System Requirements:

Next week I will be developing a standard UI reporting interface for MYOB using ClearBI that will hopefully include a bunch of standard reports and charts for any standard MYOB install. ®

Nov 08

ClearBI 1.1 has been released and now supports Column, Bar, Pie, Area, and Line charts.

An additional button was added to the ClearBI tool bar that loads the chart creation and edit panel.

Chart creation is very easy for end users. Simply choose a chart type and then drag and drop the x/y fields. Users can further create advanced formulas as needed. Once charts have been created they can be saved with reports or report templates for futher development and or modification but authorized end users.

With ClearBI any organisation, large or small, may have significant web based database reporting capabilities within less than an hour - literally. All a developer needs is a data source and a few minutes later, magnificent reports may be distributed, and reworked, by anyone authorised, with a Flash-enabled web browser.

ClearBI - Web Based Reporting with Charts

ClearBI Chart Editor with Advanced Formulas

ClearBI - Web Based Reporting with Charts

ClearBI Chart Example.

ClearBI is a clear choice for serious business intelligence RIA Reporting, made even better with the new graphing and charting capabilities.

Nov 08

Sponsored by AJAXWorld Magazine, SYS-CON.TV Show hosted leading technologists and rich internet application experts. You can view this illuminating broadcast here.

Oct 30

MyFlex.org has integrated ClearBI with Amazon Web Services to create an on-line demonstration of the unique and far reaching capabilities of the ClearBI (RAD) RIA Reporting Solution. The demo allows you to initialize the service,  send and XML request, send a Javascript request and view and edit the reports.

Oct 23

Adobe is providing an opportunity to connect with the local developer community, whilst refreshing your knowledge on the latest from Adobe at Adobe Refresh 2007. I will be attending the Sydney event and happy to answer your questions about ClearBI RIA Reporting Solution.

Adobe Refresh 07

Sydney: 30 October, Sydney Convention Centre
Melbourne: 31 October, Telstra Dome

Don’t miss your chance to experience:

  • AIR Demo’s: Buzzword, eBay, AOL, Snippage to name a few
  • Sneak Peaks: including Flash 10 & Astro
  • New Products: including Thermo, FlexBuilder 3, Hydra, Share, AMP
  • New Product Integration: Flash+DW/AIR, SPRY/DW/CF
  • New Developer Resources: Adobe Developer Connection, xd.adobe.com, Developer Centre, Flex Interface Guide
  • RIA Demo’s

There will be a ton of stuff being discussed and demonstrated – you don’t want to miss this.

Register here for Sydney and Melbourne

Sep 25

The AJAX Revolution Rolls On - at AJAXWorld 2007 West

Starting today, the Santa Clara Convention Center becomes the global focal-point for Rich Internet Applications and rich-web development at the fourth successive sellout AJAXWorld Conference & Expo, with three content-heavy days in the biggest AJAX, RIA, and Web 2.0 Conference & Expo in the world.

Those down under can watch the entire event live.

Sep 21

I have two main gripes when it comes to database reporting tools: They are way overpriced, and end users are unable to manipulate reports for a particular analytical goal, which requires heavy dependence on the IT department’s availability to create derivative published works.

Even the grandiose of enterprise reporting, ‘Business Objects - Crystal Reports’, provides end users with only a basic set of web tools that hardly make a mark compared say with the functionality of MS Excel. Adoption costs are so extraordinarily high, even big companies can’t make sense of it. Smaller companies may never achieve sufficient ROI and are forced to lay low in the isolated realm of cutting data to Excel.

Having worked as a Business Analyst, Internet Strategist and Developer for many years I can assimilate my experience relating to the subject of Enterprise Reporting in one simple sentence: “Even today the people who need vital business decision making information are unable to get to it quickly, easily, and on their own.”

Along comes Farata Systems with ClearBI (Clear Business Intelligence), a RIA Reporting Application where ‘Report Templates’, composed by IT or end users, using Adobe Flex or Flash player, can be fully manipulated, and saved as new versions (by authorised personal).

Targeted at end-users, ClearBI enables clients to eliminate the dependency on IT when it comes to any report modification, ranging from simple formatting changes and adding/removing columns to introducing grouping, sophisticated formula-based columns, and being able to persist the changes, optionally saving it as new report or report template.

Targeted at IT personnel, it automates creation of the “canned” report layouts for the end-users, who can then run them in Flash player, PDF print and Excel export these reports, with or without the ability to persist the changes.

ClearBI combines with Farata’s Clear Data Builder, a Rapid Application Development tool, allowing production of complex database reports within minutes, rather than hours or days. A few simple gestures and configurations, and Flex developers can create base template reports for stand-alone use, or as custom containers within larger Flex applications. Publishing is a simple upload of the html wrapper and swf file. After that, end users can begin making their own variations and incantations with all manner of sophisticated beautification and complex literal and boolean expressions for aggregating and highlighting information.

Reports can stored in the database in XML format as meta-data structures. Data can be persisted using a Master/Detail Flash-based-form. Indeed there is no limit to the functionality placed in the user’s hands, as application developers may simply combine ClearBI reporting into their own pre-existing or new RIA’s.

There are two versions of ClearBI:

ClearBI Developer Edition allows software developers to visually create and customize reports in Eclipse IDE. The report layouts are captured in MXML and can be compiled and integrated into any Flex application. The end users will be able to work with reports (sorting, filtering, grouping, export to Microsoft Excel, et al.), but won’t be able to save the customized report.

ClearBI Server Edition delivers all the functionality of the Developer Edition to the end user; it allows the end users to create reports from the universe of the data fields without need to install any software other than Flash Player. The end users can create, customize and save reports in the centralized database server without any help from the IT department.

Developer License is around - US$799 per developer. This license is the best fit for the organizations that need a tool to create canned reports to be viewed by the end-users. These reports are read-only and can be viewed independently or integrated into other Web applications. Production support is not included but is available on a yearly subscription or hourly rate basis.

ClearBI Server Edition OEM is around US$999 per server (up to 2 CPU). The end users can customize and save their reports. The number of the end users is not limited. This license is a good fit for small businesses. Production support is not included but is available on a yearly subscription or hourly rate basis.

There is also a ClearBI Server Edition Enterprise and you’ll need to contact Farata or myself for a quote.

Rich Internet Applications Australia was appointed by Farata Systems to represent ClearBI in Australia and New Zealand as of August 2007.

Sep 15

We all know RIA applications can present users with a great experience and provide superior usability. Significantly, one of RIA’s main goal is to improve usability by offering seamless state changes on the client, which requires preloading of the core application, as well as initial images and data. But once this is done all manner of data filtering, animations, and screen changes can be performed without call backs to the server for new pages thereby drastically speeding up interactivity, improving productivity and enhancing end-user experience.

There is evidence suggesting users dislike silly flash introduction animations to web sites, or worse, poorly designed totally Flash’ed web sites that take forever to load. It appears users do not expect a totally Flash’ed web site, rather, a nicely placed Flash ad and the optional animation demo, where appropriate.
When they arrive at a web site and see ….L.O.A.D.I.N.G…. …. … horrified and panic struck, they aim for the back button.

Has Flash (or Adobe) inadvertently created a problem (perceived or otherwise) for serious RIA web developers in that users arriving at these arguably ‘much more dynamic and brilliant’ web sites, turn back, because in their mind they think they’re going to get a Flash animation - or something equally vulgar or useless.

Is the loading issue really the issue? Ironically, well designed RIAs may cause some marginal delay, but the benefits of not re-requesting data from the server every time a user clicks poses a radical gain in usability, efficiency and experience. It also reduces the payload on the web server as far fewer requests are being made.

I recently converted my web site www.klikhir.com into a totally RIA web site.
From a usability point of view I hope it presents the user with a great experience, and is very user friendly. But I have put up a notice in the Flex/Flash preloader to indicate to the user that the wait is worthwhile. I have also removed any ideas that unsophisticated users may have upon arrival that they are loading a Flash application.

Flex provides an incredible opportunity to create the types of application you’ve seen in Tom Cruise’s Minority Report movie - far beyond what’s possible with HTML or AJAX. I just wonder whether users will give RIA’s a chance or whether they are destined for corporate use only rather than the general web surfing public.

I will be monitoring klikhir’s traffic performance over the coming months more closely to see whether its up or down. If you see regular web pages again in a 3 months time, you’ll know the RIA failed.

What do you think about Rich Internet Applications - does the potential gain in usability outweigh the negative perceptions that it’s, ‘god-forbid’, Flash, and that it takes ‘forever’ to load? Are visitors panic struck by totally Flash’ed web sites and more eager to escape? Is it worth the wait when the application is useful (how would the user know up front)? Would the user prefer the same functionality in HTML/AJAX? And given the option, which option would they end up using more?

I look forward to your thoughts on this highly relevant subject (relevant because RIA’s have advanced and matured - i.e. Flash has grown up)

Maybe its just something you love or hate.

(footnote: Flash apps that have been loaded once before are much quicker at reloading than html pages are.)