Ex-USSR has got a great school of engineers. Russia is the 3rd software outsourcing country (market) in the world.
Russian (let’s use the name, though I’m Ukrainian, for instance) engineers are very educated and think out of the box.

We got OOP gurus, Java buddhas, UI Picassos, Haskell Lamas, agile addicts and tech team management professionals. Even some good business analysts.

This leads them nowhere. Most of them don’t have a decent area to apply their superior skills.More…

By default, Glassfish does an ugly thing: takes an application’s stdout/stderr and wraps it into its own log with INFO level for stdout and WARN level for stderr.
Other logging facility normally log to stdout.
In the end, a log entry looks pretty stupidly (and it’s damn multiline!):

One can replace a Glassfish logging server-wide.
There’s a logging.properties file in the root of Glassfish domain, it has a “handlers” property that one can swap for Logback’s handler.
Of course, this requires adding Logback JUL bridge to Glassfish classpath.

Had a hard time rendering a QR-code to SVG. Drawing simple rect-s didn’t work well, visible gaps appeared between bars.

I looked for a SVG QR renderer, but apparently neither zxing nor other libraries have a gapless algorithm. There is an online renderer by Kerem Erkan that uses path tag, but the author is apparently not intending to publish the code.

The closest algorithm that CAN be used to render a QR code as a whole path is marching squares, with a usable implementation here. Still there’s a lot to be done in order to render a whole path, mostly hole detection.

Grails doesn’t reload scaffolding on-the-fly if you change local templates. But you can open a Groovy console inside application and run in it:org.codehaus.groovy.grails.scaffolding.view.
ScaffoldingViewResolver.scaffoldedViews.clear()

In order to change default g:fieldValue formatting for, say, BigDecimal, have a CustomEditorRegistrar in your resources.groovy, and register custom PropertyEditor:registry.registerCustomEditor(BigDecimal.class, 'myProperty',
new OurBigDecimalEditor(BigDecimal.class))

It hasn’t even been a ten years that DB2, one of the most, er, expensive DBMSes, got a feature needed by every other application – dataset paging.

Before, you had to use window functionsrownumber() and fetch first 40 rows only. When used by Hibernate, this resulted ugliness like:

select * from (
select inner2_.*, rownumber() over(order by order of inner2_) as rownumber_
from (
select ...
fetch first 40 rows only
) as inner2_
) as inner1_
where rownumber_ > 20
order by rownumber_

Since this summer version – DB2 9.7.2 – you can just append LIMIT and OFFSET: More…