I am happy to announce release candidate for version 3.1 (code-named Eilinora) for Flamingo component suite.The goal of the project is to provide a small and cohesive set of powerful UI components with functionality similar to or superseding that of Vista Explorer and Office 2007, and this release closes many gaps towards realizing this goal.

The release notes have the detailed description of the new functionality. Noteable features include:

  • Improvements to SVG transcoder, allowing creating resizable icons. This is used in the new ribbon demoes to make significant performance improvements to the startup phase.
  • Contextual task groups on the ribbon component.
  • Dynamic content of in-ribbon galleries.
  • Decorating the ribbon under Substance plugin, putting the taskbar and contextual task group headers on the title pane.
  • Resizable icons based on .ICO format.
  • Command buttons supporting disabled mode, changing text and changing font.
  • Auto-repeat mode on command buttons.
  • Column-fill mode on command button panels.

See Flamingo test applications in action under the core look-and-feels and under Substance look-and-feel.

You’re more than welcome to take 3.1RC for a ride (along with the matching Substance plugin if your application is using Substance look-and-feel) and report any bugs at the project mailing lists, forums or issue tracker. The final release is scheduled on September 15 and only bugs will be fixed until that date.

I am extremely pleased today to announce the availability of release candidate for version 5.0 of Substance look-and-feel. The roadmap for this release has been published in April, and the library has undergone significant internal and external changes to address major performance issues and to ensure the long-term code health of the project.

The release notes for version 5.0 provide detailed information on the major application-facing changes in this version. Some of the applications that have used Substance-specific APIs and client properties or defined a custom skin will have to be modified when upgrading to version 5.0. This was absolutely mandatory to address the performance issues and ensure that the library stays maintainable in the long run. The code has grown a lot of unnecessary complications over the last few releases and had to be significantly refactored to bring it back to a clean and maintainable state.

Here is the list of big changes in Substance 5.0:

  • Moving to Java 6 as the minimum runtime requirement.
  • Addressing the performance issues. While the first announced drop was 20% faster than release 4.3, the release candidate is 3.5 times faster on static scenarios and 2.7 times faster on dynamic scenarios as measured by the LightBeam testbed.
  • New client property to allow using per-window skins.
  • Enhanced theming layer.
  • Removed 16 VM flags and left only 2.
  • Removed 15 client properties, consolidated 3 others into 2 and added 1 new.
  • Removed 54 API methods on the main class, pushing some functionality into the theming layer.
  • Consolidated theme pack, watermark pack and button shaper pack into the Extras pack that also provides additional skins.

Click on the button below to launch a signed WebStart application that shows the available Substance features.

The following sub-projects are also available as release candidates:

As promised, version 4.3 (the last version that can run on Java 5) is in long-term support mode. At the present moment this version has thirteen bug fixes backported to it from the main development trunk.

You are more than welcome to take Substance 5.0RC for a ride and report any problems in the project mailing lists, forums or issue tracker. The final release is scheduled for September 15. Only bugs will be fixed until that date.

Sample screenshots of Substance in action:

Here are some Swing links that you might have missed during the last week:

  • Jacek Furmankiewicz writes about release 0.2 of SwingBuilder project that allows declarative UI binding via a YAML file. The project aims to address many of Swing’s pain points, such as verbosity, event listeners, layout management, data binding, background long running tasks, internationalization and more.
  • Looks like the Eclipse Albireo project that promised easy embedding of Swing components in SWT applications is losing some steam. According to Gordon Hirsch‘s post on the dev mailing list, both active developers (Gordon himself and Bruno Haible) are being reassigned a th their jobs, making it problematic to devote much time to bringing Albireo to beta and release status. With no community participation in development, looks like the project is heading towards stagnation.
  • Geertjan Wielenga overviews four of the available Java desktop frameworks (missing a couple of others in the process), giving some general advice on choosing the right framework for your project. A sound collection of tips which can be extended to pretty much any other programming field.
  • Geertjan is playing with the Swing Explorer project (by Maxim Zakharenkov) and explores its NetBeans integration. A noteable feature is jumping from the painting stack trace back into the NB source editor for the matching method.
  • Jasper Potts continues his series on customizing Nimbus appearance. He has posted a useful program that lists all Nimbus-specific UIManager entries, along with the graphics representation of the matching values (painters, borders, insets, colors, fonts). It gives a great visual overview of the entries that can be customized, even if a few rows show weird visuals (such as RadioButtonMenuItem[Disabled+Selected].checkIconPainter).
  • Christopher Deckers has announced release 0.9.6 of DJ Native Swing project that aims to bring native components, such as web browser, Flash player, video player or HTML editor into Swing applications. This release provides better integration logic with foreign native components.
  • Having problems skinning custom Swing components under the Swing system look-and-feel? SWT 3.5 might have an answer for you. One of the items for SWT 3.5 is to “provide an API to draw operating system themed controls and parts of controls”. As i have shown with native text rasterization, you don’t need to wait for Swing to provide the missing functionality (although it is most certainly nice when they do so).
  • And finally, Christophe Le Besnerais has the second part of his quest to create a modern-looking UI application in Swing, talking about breadcrumb bar, glowing icons and custom-shaped frames.

Getting ready to have a baby

August 29th, 2008

This is all over the Russian web sites, so i thought to translate it to English. I am most definitely not the original author.


Before having a baby…

To get a feeling about the coming nights, go around the room from five till ten in the evening holding a bundle weighing 6 to 10 pounds. At ten put the bundle down, set the alarm clock to twelve and go to sleep. Wake up at midnight and walk around the room holding the bundle until one o’clock. Set the alarm clock to three. Since you’re not going to fall asleep, get up at two and drink something. Go to bed at 2:45. Get up at three with the alarm. Sing in the dark until four. Set the alarm clock to five. Get up and make breakfast. Repeat for five years. Look happy.

Remove all the pulp from a watermelon and make a small side hole the size of a ping-pong ball. Hang it on the ceiling with a rope and swing from side to side. Take a bowl of wet cereal and try to use a spoon to put the cereal in the swinging watermelon, jumping like a grass hopper. Continue until the bowl is half empty. Empty the rest on your lap. You’re ready to feed a one-year old baby.

To get ready for the first steps of a baby, put peanut butter on the sofa and all the window drapes. Take a fishstick, shove it behind the entertainment center and leave it there for a couple of months.

It seems much easier to dress little children than it really is. Buy a fishnet bag and an octopus. Try to put the octopus into the fishnet bag so that none of the tentacles is sticking out. You have the whole morning to complete the exercise.

Forget about sportcars and buy yourself a minivan. Buy a chocolate icecream cone and put it in the glovebox. Leave it there. Squeeze a bag of cookies over the back seats. Take a rake and scratch both sides of the car. Excellent! Do you like it?

Prepare to go outside, then wait for half an hour next to the bathroom. Go outside. Go back. Go outside. Go back once again. Go outside and take a stroll. Go back. Take a stroll once again. Go along the road very slowly for five minutes. Stop every ten seconds to stare at cigarette butts, disposed chewing gums, dirty pieces of paper and dead insects. Go back. Loudly scream that you’ve had enough and you can’t take it any longer. Make sure that the neighbours are out and staring at you. You’re ready to try and take a toddler for a walk.

Go to a grocery store and take a creature most similar to a preschooler. A grown up goat is an ideal fit. If you’re planning to have more than one kid, take more than one goat. Buy your usual groceries, keeping an eye on the goats. Pay for everything that the goats eat or break.

Just before having your own baby, find a married couple that already have kids and point out the faults in how they train the kids, how they lack any patience and how they let their kids go crazy. Give advice on better sleep habits, potty training, good table manners and just good behavior. Don’t forget to enjoy yourself – this is the last time you’re going to have answers to any of these questions.