EclipseCon 2009 is next week, and on Tuesday, March 24, i will be presenting a session called “On The Shoulders of Giants: Harnessing the Power of Eclipse Enterprise Ecosystem“. Here is the abstract:


Code reuse in large projects is not just a trendy buzzword. If you can build upon solid, evolving and well tested foundations that are developed and maintained by committed teams, you have much less code to test, integrate and support. The Eclipse Ecosystem is a prime example of an extremely rich foundation for building enterprise grade applications, and this talk is going to show the diverse, yet interoperable technologies that allow businesses to concentrate on their specific requirements without reinventing the plumbing layers.

A part of a larger client-facing offering, Amdocs Smart Client Designer is an advanced visual designer that allows seamless collaboration between designers and developers in creating complex business form-based applications for Support Call Centers in the telecommunication industry. Harnessing the power of such technologies as JDT, GEF, EMF, JEM and VE has allowed us to dramatically reduce the effort to build the basic blocks of the tool (such as persistence, code generation and java syntax tree manipulations). In addition, core platform features such as task and job managers, builders, natures, markers and many more are enabling user-centric asynchronous business flows in a clean, simple and maintainable way.

Building on top of a vibrant and evolving ecosystem has been a pleasant experience, further strengthened by a recent migration to Java 6, Eclipse 3.4 and the latest version of the dependent plugins. In addition, we are going to talk about the “Eclipse way” of designing the flows, where the existing core features guide the design process to facilitate familiar flows and simpler implementation.

If you are developing a large Eclipse-based offering, or considering Eclipse as the vehicle for your next enterprise-grade tool, come to our session to hear about our experiences in this area.


It’s not too late to register (with 10% off by following the links at the official conference blog). See you next Tuesday at 13:30 in room 206.

Why i do open source

January 26th, 2009

The explosion of open-source phenomenon in the last decade has spanned hundreds of thousands of projects, millions of people and uncounted hours being poured into what some see as ideology, and some see as an integral part of building one’s career. Each participant in the open-source ranks has his own unique reasons for doing so, and mine can be simplified to only four words – the freedom to learn.

Nobody is perfect, and everybody makes mistakes. Harnessing the collective power of community participants with diverse background, experience and coding approach, together with not being afraid to make mistakes and learn from them is a unique aspect of open-source. We are extremely lucky to live in the nascent age of broadband Internet access which allows building truly global communities. All you need to do is to be truly open to two-way and completely transparent communication, to see that the criticism on your code is not a personal attack against you but rather a momentous chance to improve your coding skills, and to always be willing to learn from the best in your field of interest.

Even in the times when the opportunities to learn and grow are almost infinite, you can easily get stuck in your comfort zone. Recognize and nourish your inner curiosity, and constantly seek tangential knowledge that might not seem readily applicable to what you are currently doing. As the old saying goes, the more you know, the more you realize that you don’t know anything. It is going to be a self-feeding cycle of continuous improvement of your domain and general knowledge.

Finally, open-source offers a unique opportunity to exercise significant degree of control over your projects. With less stricter development processes, you can employ more freedom in moving your projects forward even when it comes at the expense of breaking backwards compatibility and making some of your users unhappy. Be truly committed to maintaining transparent communication channels and always ready to explain every single decision. A bad decision can always be reverted – and you will have plenty to learn in the process.  An unpopular yet right decision will stand the test of time and might prove a source of knowledge and inspiration to those that come after you.

Curiosity, community and control are my answer to the question why i do open source. Combined together, they provide a unique and ever changing blend of intellectual satisfaction from the ever expanding sea of knowledge that is waiting at your fingertips. Open your mind and be free to learn.


Andres and Alex – you are next. I would love to read about why are you doing open-source; and feel free to spread the meme :)

Ice Age

January 5th, 2009

This has not been an easy decision to make, but unfortunately the reality sometimes interferes with our best intentions. I regrettably can no longer find time to continue maintaining Flamingo documentation and Swing Links of the Week trail on this blog.

About half a year ago our family has grown, and i have created an Amazon wishlist to allow the users of my projects to express their thanks and support the ongoing efforts being put into them. While i am thankful for the few gifts that i have received via this program (and one weird conversation about relative merits of one of the items on the list), this has not proven to be as sustainable as i hoped it to be.

Something has to go, and while documentation is still high on my list of priorities, i need to be realistic. The quasi-guiltware approach did not work, and Flamingo does not have (yet) enough users to justify the initial upfront investment in writing paid documentation (a-la JFreeChart). So, if you want to use Flamingo components (ribbon and friends), you will have to dig into the code.

The same goes for Swing Links of the Week. After more than a year of running this weekly trail, it is time to stop. You can find most of the links at DZone, JavaBlogs and java.net forums. You’ll just have to spend a little bit more time doing so :)

Pushing Pixels: the best of 2008

December 30th, 2008

The year is coming to an end, and it’s time to review what has happened on this blog over the last twelve months. I’ll start with the list of top ten most read posts, continue with the my own top ten favorites, and finish with the list of eleven interviews that i have conducted over this year.

Let’s start with the top ten most read posts published in 2008 as measured by Google Analytics:

  1. Translucent and shaped windows in core Java talks about the new AWTUtilities class in 6u10 and support for modern top-level windows effects. Published in February, has around 13,800 reads.
  2. Party Of One: Surviving A Hobby Open-Source Project talks about the specifics of one-man open-source projects and how to maintain a long-term level of commitment. It is the first of five part series on the subject. Published in May, has around 10,000 reads. The entire series has around 16,700 reads.
  3. Swing, RIA and JavaFX – interview with Amy Fowler. Amy delves deep into the reasons behind the work on JavaFX, and where Swing fits into the future of client side Java. Published in May, has around 8,100 reads.
  4. Sun setting down on the core Swing contains my thoughts on the demise of the core Swing as the primary Java desktop toolkit developed and promoted by Sun. Published in November, has around 7,200 reads.
  5. Swing applications and Mac OS X menu bar shows how Swing application under non-Apple look-and-feel can place their menus on the system menu bar. Published in July, has around 3,600 reads
  6. More tricks with translucent Swing windows follows up with the different effects achievable with the new translucent window support. Published in March, has around 3,300 reads.
  7. Java on the Desktop, the past, the present and the future – interview with Richard Bair. Richard provides his point of view on where the desktop Java is heading. Published in December, has around 3,300 reads.
  8. Trust is hard to build and easy to destroy is a followup to the state of core Swing and addresses the lack of transparency that Sun has shown towards the desktop community. Published in November, has around 3,200 reads.
  9. Native video codecs and Flash content with JMC shows how to use JMC to play back video files in Swing. Published in July, has around 2,900 reads.
  10. Soft clipping and per-pixel translucency for Swing windows is yet another entry that explores the translucent effects on top-level windows in Swing with 6u10+. Published in March, has around 2,900 reads. All together, the three articles on the subject have around 20,000 total reads.

While these have been the readers’ favorites, a few entries that didn’t enjoy a wider readership are worth highlighting. These are my personal favorites that were published in 2008:

  1. Trust is hard to build and easy to destroy is the only entry from the “most popular” list that is going to appear here. Addressing the lack of transparency that Sun has shown towards the desktop community makes it the most important posting of the year in my eyes.
  2. 20 design blogs for UI developers aims to collect links for those readers that wish to learn from the best minds on the other side of the fence that still divides developers and designers.
  3. Is this the future of the enterprise applications? has been the driving force behind most of the design decisions and pixel pushing made in Substance and Flamingo over the last year, as evidenced here, here and here.
  4. Problem solving and innovation tries to warn against pursuing solutions just for the sake of innovation. If you are the only talking about how innovative your product is, you’re not solving your users’ problems.
  5. Java on the desktop talks about my favorite Swing application of the year – Woopra desktop client.
  6. Matching desktop fonts and native font rasterization talks about two major problems with the core Swing look-and-feels that significantly hamper usability of Swing applications.
  7. Native text rendering in Swing applications – ready, steady, go! has predated the native font rasterization in 6u10 by a few months and has shown how SWT can be leveraged to address the specific Swing deficiency in pre-6u10 VMs.
  8. Stricter checks on EDT violations in Substance is by far the most controversial decision that i have made in Substance 5.0+. It highlights yet another weakness of core Swing, and the number of Substance queries (going well into dozens) just highlights how low is the level of the subject awareness in the general developer community.
  9. From Photoshop to code – conclusion is the last in the six-piece series on using Substance skinning APIs to implement a rich custom UI mocked in Photoshop.
  10. Effective Java2D is a collection of tips from my work on bringing Substance performance in version 5.0 to be on par with other active core and third-party look-and-feels.

Finally, this year has seen a number of interviews with the people from Sun, as well as the Java desktop community.

  1. Alexey Utkin – this is where it all started. It is rather unfortunate that JDICPlus has not made it through the end of the year.
  2. Amy Fowler – should be quite an interesting read in a couple of years as well, just to see how Amy’s predictions have played out.
  3. Mikael Grev from MigLayout and MigCalendar.
  4. David Qiao from JIDE.
  5. Chet Haase just after his move to Adobe.
  6. Andres Almiray and his many Groovy UI projects.
  7. Don DeCoteau from Sage.
  8. Richar Bair from JavaFX and SwingLabs.
  9. Sam Berlin from LimeWire.
  10. Alex Ruiz from FEST.
  11. Elie El Khoury from Woopra.

This year has also seen the number of RSS subscribers grow from 500 to around 1,400. If you still have not subscribed, click on the icon below to stay tuned in 2009! Happy New Year!