21/11/12

singalen: (Default)

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.

Luckily, it was enough to group the rect-s together with a g tag.

Originally published at code name. You can comment here or there.

singalen: (Default)

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!):

[#|2012-11-21T11:25:07.225+0200|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=100;_ThreadName=Thread-2;|11:25:07.225 [http-thread-pool-8080(2)] DEBUG c.mycompany.packages.SomeClass - Finally, some useful text!
|#]

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.

Originally published at code name. You can comment here or there.

Tags: