Getting over grids…

For a chance, something different like Table Layout can be tried to spice up UI development. Just adding some extra sugar wrapper layer over it, and easy UI layout definition is served. Ok, practise is always naturally different… For example, TableLayout does not answer question of aligning layout between widgets, like two composite widgets in…

Read more

New Friend?

Is this new friend for performance aware java programmer? Atomic values Atomic Values Concurrency Utilities More theory (from IBM): More flexible, scalable locking in JDK 5.0 Going Atomic Introduction to nonblocking algorithms Basically this whole thing is about avoiding syncronization and using volatile fields for doing it. Naturally assisted with our old-friend, ”Mr. Unsafe”. Cool,…

Read more

Qt Jambi

This looks quite interesting, much more interesting than some darn ugly SWT. Qt Jambi Technology Preview – Trolltech

Read more

Progress – No Progress – Eclipse Future

Well, what can be said, after reading this what are coming in Eclipse 3.3, it definitely feels that Eclipse reached it’s main functionality at 3.2. Now, it’s just adding more crap into pile, which will definitely mean that already heavy thingie starts to become even heavier, until it collapses under it’s own weight.

Read more

Diagnosing JVM

There is various hidden flags to tell for JVM, more or less usefull. JDK 6 diagnostic -XX options

Read more

Annotations – Part 2: Let’s Assert!

Ok, previously we get into conclusion that JDK 5.0 annotation feature can be used for implementing obfuscation safe reflection API usage. What other tricks it could perform. One interesting issue when developing large scale software is to ensure that API specifications are honored properly. Within java language context this means that API spec is strictly…

Read more

To synchronize, or to not

Reading Java VM specification gives interesting insights of the synchronized keyword usage. VM Specification: Threads and Locks For good fun, read chapter 8.11. I.e. … Because there is no synchronization, it is at the option of the implementation whether or not to store the assigned values back to main memory! … This means that if…

Read more

Obfuscation safe reflection

Q: How to ensure that code can be obfuscated, but reflection API benefits for action invoking could be used? A: In JDK 5.0 solution exists, just use annotations. So how to do such. 1) Define appropriate annotation [code lang=”java”] @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Call { int value(); } [/code] 2) Define reflection action to use…

Read more

High performance collections

If CPU and memory cycles are important, then higher performance collections can be considered: GNU Trove There is naturally Caveat Emptor included, i.e. incompatibility issues. However, if such collections are used inside some sub-system, then who would care?

Read more