The Isomorphic Blog

New Release Preview (Part III)

This is the third post about our upcoming release: SmartClient 11.1 | Smart GWT 6.1. Previous posts can be seen here:

  • Part I – Histogram chart, Selenium image load check, Grid support for auto-sizing to wrapped titles
  • Part II – Scrolling charts, Visual builder DataSource Validators, Ctrl-C / Ctrl-V


Here are a few more 11.1 | 6.1 features:

Audio Playback

Use the Sound class to load and play an audio sample. Click the control buttons to play, pause and reset the sample. The progress-bar indicates the current playback position of the sample.


Try the live sample here >

Audio Notifications

The Sound class can also add valuable user feedback to an interaction. For example, to draw attention to an error, or inform them that an task was completed successfully.



Try the live sample here >

Create any Shape – Keep Built-in Interactivity

With 11.1 | 6.1, you can directly use the underlying HTML5 <canvas> APIs to draw arbitrary shapes, but still use built-in interactivity features like drag and drop and built-in resize knobs.


Try the live sample here >

More Live 11.1 | 6.1 Samples

Several 11.1 | 6.1 BETA live samples are already available for you to play with. Try them out here.




That’s all for now, but much more coming soon!


*** Remember: Upgrades to 11.1 | 6.1 are FREE to those who have already purchased 11.0 | 6.0. ***

For those not yet on 11.0 | 6.0, upgrade discounts are available and are based on the date of your last license purchase. View our License FAQs for more details. If you would like to upgrade, please contact us.



The Isomorphic Team!

Our Experience with DevOps

These days, there are numerous conferences, news articles, training courses and discussions going on around DevOps. As I am sure you know, DevOps breaks down barriers between Development, Operations and QA, improving communication & collaboration, all with the goal of releasing higher quality products more frequently.


How we got started

We founded Isomorphic in 1998. Right from the start – probably due to the proximity and small size of our original teams, the need to move fast, and a limited budget – DevOps (although I don’t think it had a name yet) just sort of happened organically. Back then, tools were sorely lacking, so we just developed our own. We’ve been enhancing and adding to them ever since.

We’ve come a long way, baby

Fast forward to today, in Isomorphic we now have:

  • A system that runs tens of thousands of Selenium-based tests for every checkin to source control
    • It compares results to the previous run
    • Sends out notifications if there are any regressions or fixes
  • Various tools for viewing and analyzing such data (eg: what checkin broke this test?).
  • Built a huge range of diagnostics into our software platform.
    • Developers can go to a live site, log in to an Admin Console, and see client- and server-side logs
    • Toggle log levels up and down on the fly
    • Inspect live client or server-side state, and many other things.
  • Continuous deployment so that features can be rolled out quickly
  • Generally able to receive a bug report and turn around a fix in one day, with high confidence that the fix has not introduced any subtle regressions

But of course, we are not stopping here. The idea is to continuously improve.

You already have the tools you need

Many of the tools we use internally in Isomorphic are available in our platform today. For example, check out TestRunner. TestRunner is a key piece of implementing the Continuous Integration methodology. Continuous testing is applied so that regressions are caught immediately. This allows a product or application to be kept continuously at a very high level of quality, allowing for more frequent and predictable releases.

Learn more about TestRunner >

In fact, we have numerous customers that, through the adoption of our tools, are able to continuously and automatically test, analyze, diagnose and deploy the applications they’ve built on our platform.

Want to get started?

Are you trying to get started with DevOps? Do you want to accelerate process implementation? With our expertise in DevOps and with the tools we have developed, we can help you implement test suites and test analysis systems in your applications – just like those we successfully run in Isomorphic today. Contact us for more information.

Contact us for assistance with DevOps >



The Isomorphic Team

Next Release Preview (Part II)

A few weeks ago, we talked about a few features in the upcoming release, SmartClient 11.1 | Smart GWT 6.1. Here are a few more:


For When There’s Just Too Much Data … Meet the Scrolling Chart

Sometimes when you try to fit it all on one page, it just becomes unreadable. Labels have to be rotated by 90 degrees because they otherwise won’t fit, and the chart is so squashed up, it is hard to tell one bar from another. Kinda like this …


So in 11.1 | 6.1, we are providing more options …

Automatically Expand and Scroll to Show Content

As you can see, the chart below automatically expands horizontally to show content. This is enabled by the autoScrollData property. Automatic expansion can be driven either to fit per-facet-value bar thicknesses specified by defining a getMinClusterSize method for the chart, or by the requirement that all labels fit on the horizontal axis without overlapping

1. Bars All the Same Width

Here, all of the labels fit horizontally, and all the bars are the same size. Scroll horizontally to see more data.



2. Dynamic Bar Thickness

Instead of having all the bars the same width, let the width of each be driven by the length of the corresponding label. This means the labels will be readable, without taking up more horizontal space than is necessary – so less horizontal scrolling. Yay! :) Check it out …




Dashboard & Tools: Ctrl-C / Ctrl-V

The upcoming release will have built-in copy and paste with keyboard shortcut support, automatically enabled wherever selection is turned on.

View documentation and related APIs here >



Visual Builder DataSource Validators

With 11.1 | 6.1, powerful functionality is introduced to allow validators to be quickly and easily added to datasource fields in Visual Builder. This feature has a great degree of flexibility, allowing you to specify what type of validator will be applied and under what conditions … and even the error messages that will be displayed. See the simple steps below to set one up.

1. From within Visual Builder, choose to edit a datasource



2. Select the desired field:



3. Click the new Validators button



4. Select the desired validator type from the list

Choose from: ‘has related record’, ‘integer range’, ‘is one of’, ‘is unique’, ‘matches field’


… then enter the required values, including an appropriate error message.



5a. Specify when the validator should be applied:

Choose Always, or only under specific conditions:



5b. For more complex scenarios, use the Advanced option which allows nested conditions:



As you can see, very easy to use, but very powerful.



Thanks for reading out blog! Watch this space for more 11.1 | 6.1 features.


*** Remember: Upgrades to 11.1 | 6.1 are FREE to those who have already purchased 11.0 | 6.0. ***

For those not yet on 11.0 | 6.0, upgrade discounts are available and are based on the date of your last license purchase. View our License FAQs for more details. If you would like to upgrade, please contact us.



The Isomorphic Team!

Java Ecosystem Insights, Free Cloud Expo Pass … and One More Thing



Exec Insights on the State of the Java Ecosystem

Tom Smith from DZone recently interviewed Isomorphic CTO, Charles Kendrick, and several other execs, to get insights into the state of the Java ecosystem. Tom’s article was published in Dzone’s Guide to Modern Java. A few of the highlights were:

  • The open source community is driving more innovation than Oracle
  • Java continues to be prevalent in enterprise IT due to the breadth and depth of the ecosystem
  • Java will be prominent in enterprise development far beyond the short term

The entire article is well worth a read. Check it out here (page 42).


Get Your Free DevOps Conference Pass

Isomorphic will be talking about how to accelerate the agile development process at the DevOps Conference in Santa Clara, CA, November 1-3. We would love to see you there.

Want a FREE full conference pass? Just follow these steps:

  • Click here
  • Click “Continue” if you are a new user, or log-in if you have already created an account.
  • Once there, Register for Cloud Expo.  Fill out the basic business card questions and then enter isomorphicVIPgold in the Priority Code field to change the price to $0.
  • IMPORTANT: Remember to email to let us know you are coming!


New Skin Coming Soon – ‘Tahoe

We are working hard on a new skin for SmartClient. It’s flat, modern, beautiful, and everything you asked for in the UI survey. You’re gonna love it.

Watch this space for more details.



The Isomorphic Team.


Coming Soon: SmartClient 11.1 | Smart GWT 6.1


It’s time to start talking about our next release, SmartClient 11.1 | Smart GWT 6.1. It is gonna be a good one!

Here are just a few of the features:

#1: Selenium: Easy way to check if images/icons load successfully

You can now use “/imageLoaded” as a manually added suffix for locators that target Img components or other components that show icons (Buttons, Labels, etc) as a means of testing whether the image has been successfully loaded by the browser. For example:

  • //Button[ID=”cssButton”]/imageLoaded
  • //ImgButton[ID=”imgButton”]/imageLoaded
  • //Img[ID=”photo”]/imageLoaded

See our Using Selenium Guide for more info >

#2: grid support for auto-sizing to wrapped header titles

in 11.1 | 6.1, ListGrid fields can auto-fit to a multi-line title as well. See the example below.


  1. The first column auto-fits to its long title (“Flag Thumbnail”).
  2. The second column auto-fits to the data values, so there is extra space after the title.
  3. The user can also perform one time auto-fit of columns at runtime by double-clicking on any header or using the context-menu option.


#3 Histogram Chart

Histogram charts show a number of segments for each facet value on the x-axis, one for each legend facet value. However, unlike a column chart, in which each facet only has a length, in a histogram each segment has both a start (A – value property) and end value (B – defined via a metric).



You can see below that as the mouse moves across the various segments, the data values are shown in a hover, and that the segments can overlap each other. The stacking order can be changed through use of an additional metric.



APIs are also provided so that charts can set their data fill and line color. In the above chart, custom colors are applied via getDataColor(), using a map of the facetValueIds. Border color can also be applied using the new getDataLineColor() API.


Watch this space for more 11.1 | 6.1 features.


*** Remember: Upgrades to 11.1 | 6.1 are FREE to those who have already purchased 11.0 | 6.0. ***

For those not yet on 11.0 | 6.0, upgrade discounts are available and are based on the date of your last license purchase. View our License FAQs for more details. If you would like to upgrade, please contact us.


Thanks as always,

The Isomorphic Team!



It’s time to de-support some really old stuff


A couple of times a week I find myself installing updates to one browser or another. Admittedly, I do use FF, Safari, Opera and Chrome. That translates to hundreds of browser versions since SmartClient 8.3 | Smart GWT 3.1 was released in 2012.

With our SmartClient platform, we’re always pushing the boundaries of what web applications can do in the latest browsers. We also support users on older browsers and older versions of SmartClient, but this is a balancing act. We tend to port a lot more fixes to the most recent dot release than to prior releases of the same major version, as it benefits the most users. It therefore makes most sense to always be on our latest release.

SmartClient 8.3 | Smart GWT 3.1, of course, long ago lost official support for major new browser versions. At some point, the time comes where it no longer makes sense to make even more convoluted workarounds to support obsolete browsers, or continue to put effort into very old versions of our software from which most clients have upgraded. We have therefore decided to end-of-life SmartClient 8.3 | Smart GWT 3.1 and earlier releases.

But don’t worry, you have plenty of time:


The Best Time to Upgrade

If you are still on 8.3 | 3.1 or earlier, there is no better time than now to upgrade. In the four or so years since the release of SmartClient 8.3 | Smart GWT 3.1, our platform has become faster and much more capable.

Many benefits of the platform will be immediately apparent in your applications on upgrade. For example, the inline operator filters mentioned above will automatically appear in your grids!

Clicking the links below will give you details of each release since SmartClient 8.3 | Smart GWT 3.1. All of these features are available in our latest release (11|6). Now would be an excellent time to start your upgrade project. Contact us to upgrade.

SmartClient | Smart GWT Release Contents
11 | 6          10.1 | 5.1        10 | 5       9.1 | 4.1      9 | 4   


We Can Help

Our forums are a good source of info / support when upgrading. If you need assistance, Isomorphic Consulting can align with your needs: We can provide help and direction, upgrade your applications for you, or even perform Application Modernization to help you take advantage of the latest platform capabilities. Just contact us for more info and to discuss your needs.


The Isomorphic Team.

Grid Custom Columns Provide Developer AND End User Productivity

SmartClient’s Grid Custom Columns provide end users with built-in wizards to define:
1. Formula fields that can compute values using other fields
2. Summary fields that can combine other fields with intervening / surrounding text.

Empowering end users with Custom Columns frees-up developers from never ending one-off requests. It also makes end users more productive, getting them the data they need in the format they need it – without being placed in Development’s queue! Basically, everyone is happy!

Custom columns have all the power of regular columns, including sort, filter, export, reorder, resize, freeze / pin, group, export, hiliting, etc.

Want to learn more? Watch this video:

Want to try for yourself? Get hands on experience here.

Thanks for reading!

The Isomorphic Team

DevOps Patterns and Anti-patterns: How to do the Right Thing in the Real World.


In DevOps, what patterns lead to success? What are the anti-patterns that should be avoided? Charles Kendrick – CTO here at Isomorphic Software – recently participated in a DevOps power panel at the Cloud Expo in New York. The session was very well attended and incredibly well received. We thought we would share a few of the questions posed to the panel, along with some insights from their responses. Click here for a video of the full session.

Best Practices
Is there a place for best practices in DevOps?

We should not be using the term ‘best practice’. DevOps is a journey – not a destination. It is all about continuous improvement. If you think you know the best way of doing something then you stop trying to improve.


DevOps as a Job Title
Should there be a DevOps Manager role in every organization?

There should not be a DevOps Manager role. Of course, we can expect to see the role / skill appear on resumes and in Linkedin. However, the idea of having a single person dictate how DevOps should be done in an organization – except perhaps in a short, transitional position – works against building the necessary collaborative, trusting relationships that are required.

There could be a role such as a DevOps Facilitator, DevOps Guru, that helps build the necessary collaborative, consultative relationships. Regardless of how the philosophy is introduced, everyone has to be thinking this way.


Which Methodology?
There are many methodologies such as scrum, agile, kanban, etc. Do you pick one? Use them all together?

DevOps is a journey. Choose your own adventure. Choose your own path of what will work for your organization. Methodologies also do not have to be followed to the letter. They are just guidelines. You can pull from each like a tool box.

For example, some methodologies require the team to beat on a problem with everyone in the room. If you have distributed team, this will not really work for you. Some people also need time to think on their own, so being forced to work together in a room does not get the best out of them. When consensus is forced like this, smart voices often get pushed down.


DevOps “Wall of Confusion”
It has been said that there is a wall between Dev and Ops and that causes confusion. This would be an anti-pattern. Is the wall breaking down? Are we getting more collaboration, communication, integration? How do you help break it down?

Looking across organizations, things are improving but it is still a problem. Within an organization, the wall between dev and ops should be broken down very incrementally. Start with small steps. For example, give developers access to performance metrics instead of making them request it. The more dev minded ops people and more ops minded dev people will naturally start to communicate and work together.


Click here for a video of the full session.



P.S. We will be presenting in the DevOps Summit @ Cloud Expo in Santa Clara, CA from Tues Nov 1 – Thur Nov 3. If you would like a FULL CONFERENCE FREE PASS, email and I’ll hook you up.

Have you heard of Adaptive Filtering?

Adaptive filtering helps make your applications run lightening fast, not only on the desktop, but also on tablets and smartphones.

How does it do this? It automatically switches to client-side filtering when the dataset becomes small enough. In doing so, it eliminates up to 90% of the most costly types of server contact (searching through large datasets), dramatically improving responsiveness and scalability.

Want to learn more? Watch this video:

Want to try for yourself? Get hands on experience here.

Thanks for reading!

The Isomorphic Team

4 More Features that Sneaked into 11 |6

A few more features that we haven’t told you about made it into SmartClient 11 | Smart GWT 6, and they are actually pretty awesome … even if we do say so ourselves! :)

#1 Formula Fields

You can now declare that a form field should calculate it’s value automatically based on values in surrounding fields or other surrounding components.  You can define either a math formula or a textual format string for the calculated value.
The logic is smart about not clashing with end user changes: values that have been edited by an end user won’t be overwritten, *unless* the value is currently invalid according to your declared validators.
This makes it very easy to build forms that do things like:
1. Automatically calculate a default end date as later than the start date, but allow user overrides
2. Calculate a total price or discounted price
3. Show a nicely formatted shipping label based on an address

Formula Fields Example

Here is the code for an item order form. The generated form is directly beneath the code. As you can see, it couldn’t be easier:


Rel 11 Formula Fields Code


Example Form


View Formula Fields Documentation >                Visit the Formula Fields Live Hands-on Demo >



#2 Developer Console: Watch tab improvements

The Watch tab in the Developer Console gives you a view of the logical components in your application and their current state.  Like a supercharged version of browser tools for DOM inspection, the Watch tab lets you understand the structure of a complex application quickly, and easily troubleshoot issues with component sizing and placement.


New in 11|6, the Watch tab now allows you to hover over components in your application to see them highlighted in the component tree.


Here is a very short video to demonstrate. The application is on the left and the Developer Console on the right. See the components be highlighted in the Developer Console as they are moused over or clicked in the application.



The overall Watch Tab interface has also been streamlined, so that it now shows current mouse and focus targets and other statistics about your application up top, with other tools moved to a collapsed section at the bottom.




#3 Dynamic Criteria

When the search criteria for a grid or a drop-down list depend on values in other fields, the usual approach is to write a series of event handlers to keep the criteria up to date as the user makes changes.
New in 11 | 6, Dynamic Criteria allows you to simply declare, in the criteria itself, that a value should be drawn from a nearby form field or other input control, and a new search is performed automatically.

View Dynamic Criteria Documentation >


#4 Trace the Source of Logged Warnings

Sometimes you’ll see a warning in the Developer Console telling you that your application is doing something invalid, but it is hard to tell which part of your code is triggering the problem.

The new API Log.traceLogMessage() allows you to log a stack trace any time a particular log message appears in the log, so that you can rapidly find the source of the warning, no matter how complex your application.

View Log.traceLogMessage() Documentation >


Hope you enjoy  the new features! If you still haven’t upgraded to 11|6, you can find out how to do so here.



The Isomorphic Team

Page 1 of 912345»...Last »