interesting

Howly cow, or whatever. It’s hard to impress to impress me, but this framework raised my interest. Vaadin I will be pushing to use this framework, since it has clear advantages over some plain GWT approaches. Need to build some more prototypes for testing framework.

Read more

Optimized Strings – Who knows, possibly

JVM seems to include few new intesting optimization options -XX:+UseCompressedStrings -XX:+OptimizeStringConcat -XX:+UseStringCache Why these sounds interesting. Well, simply because strings are among the biggest memory consumers, and string manipulations like concat tends to be relatively slow. Update: OptimizeStringConcat is in JDK 1.6.0_18 References: The Virtual Machinist: -XX:+UseCompressedStrings explained Google Groups: Description of -XX:+OptimizeStringConcat ? Stackoverflow:…

Read more

Premature Optimization: Chapter ”Class is the root of all evil”

It’s interesting question of how different constructs perform in code. And in java world and very often encountered construct is discussion about what should be used as param (or return value) in API methods. From API maintainability, extensibility, clearness etc. point of view, answer is 101% clear. Using interfaces make APIs more generic, by leaving…

Read more

Analyzing thread time usage

Without any testing, just seeing that it compiles, following code snippet should allow embedding periodic thread time usage analysis into application. [code lang=”java”] import java.util.HashMap; import java.util.IdentityHashMap; import java.util.Iterator; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; /** * Thread time usage analyzer */ final class Analyzer extends Thread { /** * Accuraracy of measurement; coarse timing is enough,…

Read more

Analyzing Byte Cote

So lets see how we can test for ”param is valid type”. Bar [code lang=”java”] public class Bar { } [/code] Test [code lang=”java”] public class Test { private static final Class CLS = Bar.class; public static void test1(Object a) { if (a instanceof Bar) { int x = 0; } } public static void…

Read more

Hidden cost of initialization

Trick question: What is difference between these: Sample Code 1 [code lang=”java”] class FooBar { private int x = 0; [/code] Sample Code 2 [code lang=”java”] class FooBar { private int x; [/code] Q: What is difference? I.e. aren’t those pieces of code by definition exactly same, thus it doesn’t matter what you write. A:…

Read more

Real UML

My interest (after trying lots of different tools, Objecteering, ArgoUML, BoUML) into real UML tools was arised with this one: UMLet UMLet allow nice user friendly concept of editing properties of elements direcly as plain text, instead of clumsy dialogs like every other tools what I’d tried so far. However, appetite grows, and this sounds…

Read more

Duh, Don’t, now keep going on…

Seemingly there is eeny-weeny little things what could be optimized in Log4J. Re: Proposed synchronization changes log4j-dev Re: log4j multithreading performance Proposed synchronization changes By quickly looking, changes make sense, only one detail strikes me as potential problem: new logic is causing re-allocation of StringBuffer iin PatternLayout, everytime when formatting of layout is done (==…

Read more

Driving java with handbreak on

Do you driver your car with handbreak on? Doesn’t it feel a bit cumbersome? Well, concurrent programming with java can easily turn into equivalent situation, simply due to fact that some synchronization is required between threads. And sad fact is that there isn’t actually clear workaround for this since correctness of program requires usage of…

Read more

There is no magic bullets

ORM mapping sounds easy and neat way of managing DB persistency in java. However, in reality it’s not dance with roses. Primarily problem comes from the fact that ORM attempts to hide details, which in reality are crusical for performant and scalable application. People are still writing straight JDBC Code? The Vietnam of Computer Science

Read more