Category Archives: Enterprise RIA

InDesign Development & Common Extensibility Platform (CEP) Technology

In September 2013, Adobe announced that they would be discontinuing the CS Extension Builder and would replace it with a new development framework based on HTML5 and JavaScript. CEP technology allows developers to build extensions that can run across all Adobe Creative Cloud (CC) platform. Clearly, this is a significant win for plug-in and extension developers as it cuts down on development time and resources. However, as plug-in developers move legacy plug-ins from CS 5.5/CS6 to CC and CC14, they must keep in mind several issues before the plug-ins can be ported to CEP extensions. Last quarter, we have helped our clients to adapt this change by integrating the latest web frameworks like AngularJS with extensions, thereby following a strict MVC driven approach as used to be the case with C++ plug-ins. We have structured the extension in a way that it can be extended to use with multiple apps. This, we have achieved by architecting app-specific implementations separately and creating a core services layer. As an example, one of our new extensions is running seamlessly in InDesign, PhotoShop, Illustrator and InCopy.

Tips For “Plug-ins to Xtension” Porting Projects
  • CS5 onwards model and ui separation needs to be done so that model plugins may safely work in background threads, and, the user interface for a set of features can be refactored easily at any time
  • CS6 onwards, significant UI changes need to be done using Adobe Express View Engine (EVE) to take advantage of localization friendly services
  • If any third-party libraries such as boost, xerces, curl, GSOAP etc. are used in the legacy plug-in projects, we need to check if the old libraries are compatible with the latest OS SDKs; and if obsolete we need to build those libraries using their source code and then dynamically link them with the plugin.
  • We need to make changes to code caused by the changes in the public API in SDK.
  • Our experience is that most legacy plug-ins neither have good engineering specs or documentation; nor good test suits for benchmarks. Porting projects must build their own benchmark test suites to avoid bug discovery late into the porting projects
  • As legacy plug-ins have evolved, users have extended their template and test documents through multiple versions. There are data model changes across plug-in SDKs that creates bugs with legacy documents. Some documents may need to be re-created when plug-ins are moved across to CC

We have in-depth knowledge and experience in helping customers move their plug-ins to extensions. We are supporting developers in US, Germany, Switzerland, Australia with their InDesign projects. Our customers trust us as we deliver high quality services with transparent business practices at cost-effective rates. If you are looking to port your plugins to CEP and/or looking for a team to support your xtensions, talk to us.

Flash v/s HTML5: It’s a war out there…is flash loosing out..?

Last week, Adobe released a preview of its HTML5 editor, “EDGE”. Early critics have pointed out the cumbersome UI and adobe lovers have pointed out the familiarity with flash development environment. It remains to be seen if Adobe will go on to dominate HTML5 tools given that for once they don’t control the HTMl5 standard (and may even be lagging behind on few counts) and till they acquired MacroMedia, they were indeed lagging behind even on website development tools (remember the Dreaweaver v/s GoLive no show) ?

However, one thing is certain – the impact of Apple refusing to support flash on its iPhone/iPAD devices has hurt the flash dominance of web rich media content.  Apple’s march towards global domination is led by necessities, apple has always been into developing product for its customers that supplies high intelligence at the cost of least power, and hence criticizing flash is a natural reaction.  What has not helped is adobe’s lack of aggressive evangelism of flash players on emergent android smart-phone and tablets. Instead, adobe may have tried to push away smart-phone OEMs with a licensing based business model for flash player which has further pushed users into adopting HTML5 as the lingua franca of mobile rich media.

One major concern in the apple camp is that they don’t believe that flash is open standard. In their own words – “just being widely available don’t make it open”. Apple believes that flash products are 100% proprietary and has been pushing for open web standards (w3c) in its products. Adobe counters by pointing out that most web users are missing on rich user experience since 75-90% websites do have flash content.  

Non availability of flash on iPAD has neither slowed down its adoption nor created any major frustration for its users. One major pitch for flash has been video streaming. However, with the modern h.264 streaming available via http streaming to iPhone/iPAD devices, usage of video has gone thru the roof even without flash support – just look at the traffic statistics from youtube, videmo, Netflix, facebook, abc, cbs, cnn, msnbc etc. This has further contributed to the growing feeling that flash is also “dispensable”.

Another significant reason for the rapid adoption of HTML5 v/s adaption of flash for mobile is that Flash was designed for PCs using mice, not touch screens using fingers. Most Flash websites need to be rewritten to support touch-based devices. If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript? Flash also drains more battery causing concerns from phone/tablet vendors.

So far, adobe has done promise, promise, promise but not deliver, deliver, deliver when it comes to Flash Player for the mobile.  With “EDGE” is adobe accepting a graceful “I am beaten” posture? Time will tell…

RIA to improve Software as a service for the software manufacturers

Increasing number of software manufacturers is shifting their “Software as a service” portfolio towards RIA. RIAs are offering more convenience, enhanced functionality and saving the resources. The main reasons why these manufacturers are making this shift is there is no install efforts, truly cross platform and new business models based on SaaS.

As of the earlier scenario, it was a quite complex job to distribute software within a company. It meant lots of efforts for installing and maintenance. In addition, it involved huge investments. However, things are changing and different now since business software practices are changing for good. Most of the business software manufacturers are developing business software as ERP, logistics, SCM and more and distributing them on internet leveraging the advantages of Software as a service models.

Though most people cannot relate Web 2.0 with business software as Web 2.0 is associated with virtual meeting points such as social community portals, Facebook, YouTube and others. However, the business software vendors are using both portals and platform to increase the usability of their software. The most important thing to be kept in mind is that Internet has become the largest communication platform and browser is regarded as the universal user interface. The most important advantage that SaaS can have from RIAs is distribution of the software. Earlier, any software needs to be installed on a local PC for each employee concerned. However, now things are changing as business software can be used within a browser. A few common examples can be Google Docs and spreadsheets.

What has made things possible and easier is application databases are available on browsers. Moreover, anyone authorized can perform data processing in real-time in little time. It is the RIA applications developed using technology such as AJAX, Flex and Java made this possible. These RIAs offer better functionality and more usability and moving the web applications to completely new horizons. Looking at its advantages, more business software manufacturers are integrating RIA based applications in their businesses and moving their products on internet. Most of the emerging RIA technologies offer desktop-like UIs with better response. Advanced business process applications are more benefited by these better UIs than those developed using plain HTML.

Furthermore, for operating these RIA-influenced SaaS, operating systems hold not much importance because these can be run on any end user device such as PDA or smart phones. However, it depends upon the RIA technology is use.

Let us recapitulate what we have discussed above.

Earlier, software is used to be installed either on the individual end user device or as an HTML application. But now, RIA based software can be installed on a centralized server. With your internet connection being perfect, you will not face any problem running these applications on your PC without encroaching extra space for software installation. It means lesser maintenance jobs too.

With earlier software applications, business software components need to be compatible with the end-user device concerned. However, with RIA based SaaS, there is no such issue. With every new version, only the capacity and performance of the server is most important thing. There is no need to upgrade hardware in your device.

With these applications being available on internet, businesses have easy access to any software after paying a regular fee to the vendors.

Indexing flash content

Search engines do not index Flash content, as they cannot extract usual content such as text and links from the Flash files.  Search results do not show much of the Flash content, which is quite frustrating for the web developers who work hard to get their Flash web pages indexed and ranked in the search results.  However, things now are changing as Adobe and Google are working together to get this hitch removed away.

Since Google is launching a “deep algorithm change”, it can seek pages, which earlier could not be tracked.  Moreover, Adobe is supplying the Flash reader technology that helps read Flash files and extract text and links from it.  It helps in better indexing and ranking.

Let us learn some details about how this works. In addition, there are some caveats that you should know because some developers think it as a kind of magic wand which frees them of any work that goes in ensuring that their Flash applications are search engine friendly.

Google can index Flash files

For some time, Google team was working on to improve how they crawl and index rich content. The team was looking for ways to crawl rich content like Flash and JavaScript. Though it was able to extract some links and text, it was not that useful. This new Adobe technology is less error prone and Google can crawl and access any version of Flash in different languages.

New development from Adobe   to collaborate search engines

Adobe has developed an optimized Flash player for search engines. It is collaborating with Google and Yahoo! However, Yahoo! is not supporting the technology as yet. It is planning to support searchable SWF.   It is working with Adobe to find the best solution.

Though Adobe’s new technology is not available for all search engines such as Microsoft’s Live Search or others, they are developing it to become available at broad level to make SWF content easily searchable.

Though earlier Google’s help documentation had that use Flash –only images sparingly or embed them in textual form, now Googlebot can extract textual content and links. It can better crawl and index the Flash content.

It started in 2008 when Google announced that, in collaboration with Adobe, it is developing a technology to improve the capability to Index Flash content.  The new algorithm from Google had made it possible to index all kinds of Flash files, Flash menu, buttons, banners, to self contained Flash websites.  Before this Flash indexing system came into being, developers and designer faced problem about presenting data via Flash content and they had to work hard to present their data.

How Google does this?  Google does it by creating a snippet for each website.  In addition, it also uses words present in the Flash files for indexing. Its indexing algorithm also has the ability to discover URL.


Google’s ability to read and index the Flash content include indexing of the textual content as displayed because Google can interact as a normal user. It can discover links within the Flash content and in addition, it can load external content and associate with parent file.

UI impact on ROI

UI or User Interface refers to the face of the machine or the product that user looks, touches or hear to. It is the medium of interaction between the user and the machine. For instance in a website, the UI is the display and layout of the webpage. UI of any product is directly related to its look and design. Keeping all other factors aside, we can say design of the UI has a direct impact on ROI. How? Let us have an insight on this issue.

Design is a term that does not have a set definition. It is difficult to quantify or describe it. The value of a design depends upon the views and thoughts of the onlooker or the user. In the same manner, the value of UI depends upon the users. Does it have any economic benefits? Certainly yes!

Let us talk about a website. The online success of a website depends upon the user interface design of the website. If a website meant for selling products, sells more products, obviously it has better ROI. An appealing interface definitely attracts more visitors and pushes increases sales of products. In addition, it also increases its reputation and market exposure.

A perfect UI depends upon the understanding of the user’s needs and expectations about a product. While designing the UI, the designer should keep in mind the objective, the target user and the website’s efficiency.

Since a website is the part of the advertisement campaign of a company, its User interface design is very vital to create a long lasting impression and it has direct impact on ROI. A better interface design of course increases the usability of the website and helps better navigation between the pages of the website. It is an agreed upon fact that the value of a website lies in its ability to interact and communicate with its users. Thus, more effectively, it lets users make sense of the content; the website attracts more visitors and hence more potential customers for the business.

User Interface is directly related to the usability factor, which means how effectively a user receives the most significant message from the website. A perfect UI have very high usability factor and that lets the user to reach the most important message in one click only.

Higher the usability factor, higher will be the return on investment. A better usability is beneficial to both, users and the company.

Users are benefited from usability because they will enjoy interacting with the website and they will be satisfied because they are not frustrated. It will help them achieve their goals quickly and efficiently. They will cultivate trust n the website. If users to your website or the product become satisfied due to better user experience, they will return and recommend your product to other users too.

Apart from users, providers also get various benefits from better UI. These benefits include reduced development time and costs, reduced support costs, reduced user errors, reduced training time and costs and hence better return on investments.

UI for RIA

RIA stands for Rich Internet Applications. RIAs have features and functionalities which are seen in the conventional desktop applications. While maintaining the advantages of web applications, RIAs make use of rich graphics and streaming media scenes.  The designing part of RIAs is very important that makes use of web infrastructure combined with client-side application to carry out the presentation.

A typical RIA is comprised of three layers; the presentation layer, business layer, and data layer. The presentation layer is the layer that contains UI and the presentation logic components.

RIAs can be simple or complex and their design and implementation varies accordingly. However, in the presentation layer, which contains UI, it is important to have good architectural design. Interfaces can be simple to overlay the back end the businesses services or can be complex that can perform most processes themselves and communicate back end information.

Let us talk about some general design considerations followed while designing for UI. These considerations will help you when designing RIA according to your requirements and perform efficiently when expected.

When designing a RIA, consider the audience. Consider designing RIA only when your vital audience makes use of browser that supports RIAs.

Consider the complexity of your UI requirements since RIA implementations work best only when they use single screen for all operations. They find it difficult to work with multipage UI. Though they can be extended to multiple screens, it requires extra code and screen flow consideration. With such screens, users should be able to navigate easily or can pause and return to a particular point easily and quickly, instead of starting the whole process over and again.

If there are multi-page UIs, you should use deep linking methods. In addition, you need to use carefully the Uniform Resource Locator (URL), the history list and the browser’s back and forward.

Since RIAs are meant for providing rich user experience in whatever way they can, there should be more sophistication and more user interactivity.

With the help of RIA, client and server computers can communicate without any irrelevant page refresh. Web applications can support different user interactivity with just single screen. Users can interact in real time as information can be seen on same page on which it was requested.

Improved user interface on RIAs not only increased convenience in the user interactivity but also made it more interesting. UI designers make use of animation, sounds and graphics for improving the user interface. There is large range of options available for the visual interface design. Designers can use more graphic elements as these graphic elements available in RIAs use less network bandwidth.

Using Rich Internet applications, designers and developers can now offer Web site users better User Interface and more functionality that is needed for application interfaces. It helps them create web applications that are more user-friendly. It also helps in increasing ROI. Users become more productive and hence dropout rates go down that result in increased number of completed transaction.

Difference between UI and UX

UI Vs UX is an ongoing debate that comes into scene whenever a new technology, new gadget or for that matter, anything new comes into the market.  UI stands for the User Interface  , which refers to the space where interaction between the machine and human takes place. And UX stands for User Experience which means feelings of the users about using a service, product or system.  Though UI and UX are two different things, they are related. For instance, when you see a new mobile phone in the market, you might be attracted by its looks, its model, its features on the very first glance. This attraction for this gadget is due to its UI. However, when you start using it for calling, chatting, emailing or whatever, you use it in real sense. At that time, you are having user experience or UX. UX can be either good or bad no matter how good is the UI of that mobile phone.

Before we start delving deep into this UI vs. UX debate, let us first get some peek into the terms UI and UX.

What is a user interface?

You might have heard User Interface or UI at times from computer salespersons to other tech persons. But, do you know what this tech jargon means?

Actually, User Interface  is quite simple to understand as it refers to the components and parts of the computer and software that  users see, hear to and touch. If we talk about computers, user interface includes all those parts of the computer or the machines that let us, humans, interact and communicate with it. For instance, now you are reading on this computer screen,  this screen is the part of user interface. Similarly, when you use your mobile phone, its screen is the part of user interface. In these cases, screen communicates with you by showing the message.

One thing to be noticed here is User interface is not just, what the machine shows you. In fact, it is a two way channel where both, the user and the machine, interact with each other.  To make use of the machine, users give  their  instructions  through user interface. It is called input. On the other hand, the machine or the computer gives the results in the form user asked for like on the screen or printer or whatever. This is known as the output. The input given and the output received, entirely depends upon the User Interface.

What means by User Experience

The success of a product, service or system, entirely depends upon the user experience.  In fact, the user interface is designed to give the best user experience.  What the term User experience means?   User experience includes all the aspects of the user’s interaction with the product or the machine. The best user experience ensures not only the ease of use but also the joy to use that particular product. The true user experience goes just beyond providing the checklist of features; it provides much more than what user expect for.

To provide best user experience, user interface design should be such that user need not pay much attention to. It should be easy to use and user need not keep fumbling for the buttons or keys to use that.

A user experience reflects the meaningful and valuable aspects of human  machine interaction. In addition, it also includes the user’s perception of the practical aspects such as utility, efficiency and the ease of use of the machine. However, User experience is subjective in nature and it is quite tedious to quantify it.  How well a user perceives a machine depends upon his or her feelings and thoughts about the system. At the same time, it is dynamic too as it changes with change of circumstances.

Difference between UI and UX

Now, let us talk difference between UI and UX.

Let us take an example of good user interface; the ubiquitous Google Home page which is the first page of Google search.  User only has to deal with one obvious search box and one button and is done. At the same time, a web page, where you cannot find a button to click on or find even after a thorough search, is the example of bad UI.   Without knowing how they work, we, user, will decide whether they are good or bad UIs. We will decide by their look  and layout; the interface.

However, when we talk about UX, it is much deeper than UI. User experience, apart from layout and display, involves certain more important aspects. User interface is only one part of the User experience.

While user interface is about the design, layout, pixel publishing, button placement or so, user experience is something holistic and creative. You can say User interface is just about the surfaces which let users interact with the system. On the contrary, User experience is “skin deep”.

Unlike User interface, you cannot just design User experience and move on. It needs to be continuously integrated into whatever we do. It is important to listen to the user’s demands  and feedback about the user experience to make it more enriching.

Most user experience designers agree that user experience is not even about technology. In fact, user experience designers make use of technology to help people make best use of resources around them.

The vital component of a User interface, which makes it a tool to good user experience, is its usability, functionality and ease to use. A user interface that looks good at first glance may not provide you even an iota of good user experience.


The most important thing to remember in this context is UX is a broader term involving everything from brand perception, usability, content, hardware, software and more. On the other hand, UI is just what you see on the screen, touch or hear to.

What is HTML5

Whenever a new technology comes into the market, it is often difficult for consumers to understand and use it to their advantage. HTML5 is still a new web technology that many people are still thinking what it is. Read this article to know, what is HTML5 and why you should use it?

Every web enthusiastic having even a bit of knowledge about making and working of websites would have heard about HTML or Hyper Text Markup Language. HTML is the backbone of every website and creates a framework for its construction. Since its introduction, HTML is evolving continuously with newer versions. HTML5 is the newest version of HTML 4.01 and XHTML 1.0. WHATWG (Web Hypertext Application Technology Working Group), formed by some experts from W3C (which originally created HTML), started working on new aspects of HTML and released HTML5.


HTML5 is developed to address the issues that are experienced in previous versions of HTML.   It is focused on the needs of web application developers. Since Internet has evolved extensively; increasing number of web applications are getting media heavy. This is the reason why older web technologies are no longer supporting newer needs and advanced applications. To accommodate the latest web needs to bring interactivity and functionality of multimedia to websites; HTML 4 is stretched and tweaked many times.  Furthermore, adding plugins like Flash, Silverlight and Java increase the costs.  Now with HTML5, users can take advantage of its new features to streamline the functionality without using heavy plugins. With HTML5, users can listen to songs embedded in a blog or watch a video without installing yet another plugin! It is really a big deal for the users with platforms that do not support things like Flash such as smartphones.

What Can HTML5 Do for you?

The media playback and offline storage are the most talked about features of HTML5.      Websites with HTML4 need plug-ins such as Flash or Silverlight to show videos or to play music. However, HTML5 allows the websites to embed directly the media using simple tags like “<video>” and “<audio>”!

Apart from this media functionality, another major addition is ability to store offline data for Web Applications. With HTML5, users can create files in Google Docs or they can draft e-mails even when they are not connected to internet.  When you come online next time, these changes will be automatically integrated. In addition, there are several other features   in HTML5 such as drag-and-drop.
Is it important to Learn HTML5?

Though HTML5 is the newest version of HTML, it attempts to stay backward compatible. Therefore, the thing is if you do not want to learn it just yet, you needn’t. However, if you are going to build complete webs application; you will definitely want to learn as it offers many new attributes and tags to help you.
A Few reasons why you should use HTML5

Presently, there is not much support for HTML5. But, there are many good reasons that convince you to invest in HTML5 today.

As you know HTML5 has evolved from HTML4 and XHTML1.0, it is the latest version of HTML. Though there are 28 new tags and some good techniques, you need not learn everything from scratch. Thus, without investing much time, you can acquire more functionality.

HTML will keep growing

Since the time of its introduction, HTML is constantly growing and will keep growing. To address the new needs, HTML5 will keep adding newer specifications and there will be never a time when you can say that now it is complete. Thus, there is no point in waiting for its final specifications to invest in. It is the time to switch over to future technology.

Most latest Browser support HTML5

Most browsers including Chrome, Firefox, Safari and Opera support HTML5 today. Though Internet explorer cannot recognize new tags, it can parse them if a JavaScript shiv is added t to the page you are using.  However, it will not let you use audio, or video. For that, you need to use traditional things like Flash.

HTML5 is in Trend

Most browser vendors are supporting the HTML5 standards. This support is growing to improve with passing time. Some web applications such as Google Chrome, Safari and Firefox 3.6 are using are already using some elements of HTML5.

Though Flash will be there, future of internet has great place for HTML5.

Flex vs JavaScript why flex is better

Flex Vs JavaScript; this is a debate brewing up for long. Though both the languages have their own pros and cons and each of them has its fan following, you can’t do away with the bias that pops up in any discussion related to them.

Flex and JavaScript are both the different ways to develop the Rich Interactive Applications or RIA. Though JavaScript and Flex Actionscript are based on ECMAScript, there are some differences which make one better than other is.  The latest version of JavaScript is dynamically typed language while ActionScript is statically typed one. However, both of these are made for application development.

What is Flex

Flex is a programming language developed by Adobe Technology. Meant for developers, this language offers more tools to develop rich internet applications.  Equipped with all the Flash features, this language is comprised of two languages MXML and Action Script respectively.  For developing Rich Internet applications, Adobe Flex makes used of Sun’s Java environment.  For Flex coding, MXML is used that is based on XML.  All the Flex codes are complied into SWF (ShockWave Flash) files, like Flash. These SWF files can be directly executed in browsers having Adobe Flash Player Plug-in installed.

What is JavaScript?

JavaScript is also a programming language used to make web pages interactive. Most browser support JavaScript and visitors to your website can run your JavaScript if they have browsers supporting JavaScript. JavaScript is an OOP based programming language having built-in objects and functions. It allows users to build their own objects and functions.

Flex Vs JavaScript

So which one is better; Flex or JavaScript?  We are talking from the point of view of developers. For them language is better if it provides required framework and UI toolkits. While developing a RIA, developers do not want to do everything from scratch otherwise; it will lead to lots of additional work.

Let us talk about JavaScript first. It does have libraries like jQuery that helps you manipulate the broken document object model for all browsers. Supporting JQuery, there are several other plug-in also. In addition, there are JQuery Mobile and jQuery UI, though they are at initial stages only. Then there are ExtJA, Sench Touch for mobile development.  There are a few application frameworks for JavaScript including Sproutcore, Knockout, Backbone.js and others. However, the choice of framework depends upon the kind of application you are developing.

When it comes to Flex, most developers agree, despite all its features, toolkits, JS library or framework, JavaScript  is nowhere close to Flex/AS3 features. Flex has been there for years and its componenets developed   have been considered mature. It offers variety of components to deal with different cases. It offers great styling and skinning options, good documentation, many examples, layout management and data binding.  Moreover, if offers many non-visual components and classes to help you build data-driven applications. Flex is definitely better than JavaScript.

Let us compare both web technologies with the help of a comparison table

Flex JavaScript
Flex framework helps in creating rich user interfaces, as it is component-oriented and event-driven. JavaScript is a programming language.
It is used mainly to build a stateful application that runs on client-side only. JavaScript is good for cross-browser portability
To run SWF files created by flex, clients must have flex framework installed. No such restriction exists for JavaScript
Debugging is very easy with flex as it has an inbuilt debugger and profiler within the Flex builder IDE. For JavaScript, debugger might not be useful as it involves many browsers.

Action Script in Flex is easy to learn as it includes components of java and JavaScript and has strong OOPs support.

JavaScript has different syntax and execution for different browsers.