Skip to main content

Posts

Agile project management

Here is an article (in french about a project management approach). I just read a few words about it but it seems to be interesting. My opinion is that a project manager has to be a "real" member of his team and not upon it. When I was team leader, I tried to be like that : a "real" member. In fact, this project was good and work was efficient. It was a "real" team.

http://www.valtech-mag.com/mag/fr/1.html

Managing text encoding in Java properties files

Something interesting when you write a software is to translate it. Java has this feature embedded. You simply have to write properties files and use a resource bundle to extract texts in your program. Consult ResourceBundle class javadoc for more information about how to proceed.

Something else very ineresting in about properties file encoding. Java specification supposes this sort of files to be written in ISO-8859-1. Oops! What about translating my software into japaneese? No problem, you cas use "unicode" codes in your files.

For exemple, to translate é, replace it by \u00E9 in your properties file. You can consult www.encoding.org for more informations aboiut encodings.

Thus, if you want to retreive characters codes, I propose you think excellent web page (in french) :
http://hapax.qc.ca/conversion.fr.html

Calendar OGNL expression for Luntbuild

Wow, that's my first message with year that I started with Luntbuild. I looked for an ognl expression to preform build only in a specific time range.

So, after reading the documentation and surfing on forums, I found the class OGNLHelper on Luntbuild CVS repository. Bingo!

Here is a exemple of a expression that returns true in a specific time range :
(system.getHour() in {0,1,2,3,4,5,6})

In this example, build will be done betwenn midnight and 6:00am.

How to force decimal separator char upon java region code?

Java application could be run on any compliant platform. And that's great. But, when you provide it to your customer, you don't know the region code of his server. For exemple, you don't know if is configured to work in english or french.

By the way, let's take the previous example. In franch, decimal separator char is ',' (comma). In english, it is '.' (dot). When prensenting data to end user, you probably want to ensure that the decimal separator char is the right. So, you can for it usiing DecimalFormat.

Let's see it in the following code :

public class AfficheurDecimal {

public AfficheurDecimal() {
testerReste(100);
testerReste(0);
testerReste(12354.12854);
}

private void testerReste(double reste) {
if (reste != 0) {
DecimalFormat formatEntier = new DecimalFormat("0.00");
DecimalFormatSymbols symbols = formatEntier.getDecimalFormatSymbols();
symbols.setDecimalSeparator(',');
formatEntier.setDecimalFormatSymbols(symbols);
String msg = "Il…

Multibase application could be like in the song : it's just an illusion

Today, my friend and excellent architect Marc Godin told me something very interesting that sumarize an illusion that java introduced with its virtual machine. He said :

"L'adhérence a la base de donnée est à acter comme celle à la JVM"

Sorry, it's in french. BTW, the text tells that you had to choose your database as you chose you JVM.

Why primitive types are unprecises? the unacceptable explaination...

Another excellent article by Brian Goetz on numerical java data type storing. It's just a question of IEEE 754. So, don't expect to work with primitive types in Java for finacial applications. Such a pity! My old Casio FX-7000 is more powerfull than my computer.

Financial programs represents a major part of softwares all over the world. If you want my opinion, its unacceptable to have to work with wrapped types!!!

James Goslin, any solution? You're welcome if you have one.

http://www-128.ibm.com/developerworks/java/library/j-jtp0114/

Open ESB

Great news,

I just learnt that Sun launched an open source ESB project with a tool suite for NetBeans. This fact of having developped graphical tools to design processes and mappings is a very (VERY) important point in my point of view. Something tells me that, if the product is well done, the situation will be harder for webMethods in several months.

I will publish my Violet UML Editor as quickly as possible to investigate on it.

http://www.netbeans.org/kb/55/bpel_gsg_project.html

http://open-esb.dev.java.net/

Searching files on unix

Want to find files and perform massives operations on them, here are tws sample commands for unix platforms :

find -name "[filename]"

find -name "[filename]" -exec [command] '{}' \;

where [filename] and [command] should be replaced by real values. [command] is another unix command to execute on each file found. The file found is represented by '{}' in the command to execute. \; indicates to end of the command.

Ex : find -name "*.tmp" -exec rm '{}' \; -> deletes all tmp files.

Hibernate 3 and Oracle 9i cursors : how does it work?

Here is a post I found on the hibernate forum. It explains why cursors opened are not released on session.close() :

OK. Here's the result of this thread:

For the environment, JDK1.4.2_01, Oracle 9i server, oracle 9i jdbc driver (ojdbc14.jar) and oci connection to the database (not thin driver);

There's no problem with hibernate's prep stmt cache nor with Oracle Jdbc driver with regard to cursors remaining open after Session.close().

Every Session.iterate() and Session.load() calls cause a prep stmt to be created on the server side. And after you close the session with Session.close(), hibernate explicitly calls appropriate driver methods to close the resultsets and prepared statements.

However, after you close the session, you won't see the cursors de-allocated (or closed) on the server side. While it seems to be a bug, it actually is not. The driver maintains a list of prep statements and open cursors in its memory and as soon as you re-use the same connection by opening …

Java primitive types

Just to remember... nothing more :

byteShort numerical from -128 to +1271 byteshortShort numerical from -32768 to +327672 bytesintNumerical from -2 147 483 648 to +2 147 483 6474 byteslongLong numerical from -263 to +263 -18 bytesfloatDecimal from -1.4 * 10-45 to +3.4 * 10384 bytesdoubleLong decimal from 4.9 * 10-324 to +1.7 * 103088 bytescharUnicode character (65536 possible characters)2 bytesbooleanBoolean (true or false)1 byte