22 Jun 2006

208 posts - 2 years - It's time to take a break!

I've been blogging since Thursday, June 10, 2004. When I first started, I didn't thought my motivation would last that long! But hey! 2 years now! 208 posts! That's a 8 posts per month average! (not bad)

But since few weeks, I'm overwhelm by things to do. So I decided to take a bloggin'break...

I still got some draft articles I want to finish publishing on my other blog about ruby, but once this is done it will be holiday time :)

May be in September I will start again ... who knows!

14 Jun 2006

[AndroidDemo] Most boring video ever!

Usually I like demo videos, but the AndroidDemo (eclipse plugin for AndroMDA) is the borest ever!

What went wrong:
  • Too long (should be 4 or 5 min not 11!!)
  • Don't show me eclipse feature, I don't care! (filtering options is not one of your plugin feature! And I already know what is the purpose of a wizard!)
  • Don't tell me this feature is not done yet, this message will not show up in the final version etc. ...
  • Believe in what your doing, that you're doing something great!
  • You're plugin doesn't seem enjoyable!
Technorati tags:

24 May 2006

(At last) I finished Extreme Programming Explained: Embrace Change, 2nd Edition


Boy! It's been a long time! I bought the book "Thursday, September 15, 2005"!

But I finally read it!

My conslusion is that I already knew most of it. But if you don't know XP that's the place to start, the rest of the internet is a copy/paste of the book...

The parts I liked the most was Kent Beck explaining why he changed is mind or adapted his way of thinking about some subjects.
For example: about how to deal with the rest of the company who is not extreme and why we (as programmers) don't have to force other people to use XP but adapt to there way of thinking.
An other example: why sometimes XP can fail because the rest of the company's values are secrecy, lack of communication, fear etc...


18 May 2006

Flickr (At Last)

I finaly decided to create a flickr account. I may post from time to time...
ps: I'm so Web 2.0 ;)

Technorati tags:

16 May 2006

Only hire the brightest engineers

Funny I read/viewed 2 articles saying the exact opposite but still they are both true!

Where Did All the Beautiful Code Go? by Google's Gregor Hohpe:
We hire only the brightest engineers in the industry, like which company would put on their charter, we hire only the dumbest engineers(...) but he had like a logic because I used to work for a company that made a very big statement about ?we only hire the brightest? and he had like a little chain of logic that actually invalidated or basically claimed that it?s really impossible, because if everybody only hires the brightest people, well, where do the other people go(...)

Alertbox Variability in User Performance:
Finally, programming demands the most of users and thus shows the highest variability. This table shows why the number one guideline for managing software development is to hire the best developers: Good developers are three times faster than slow ones and offer companies tremendous gain -- even when they require higher salaries. (The difference between the very best and very worst developers is typically about a factor twenty. Unfortunately, not everybody can hire only the top 1% of developers. But you can certainly endeavor to hire from the top 25%.)

Technorati tags:

5 May 2006

SOA (Surely Obscur Application) ?

I just wanted to point this little comment from Jason Carreira on TheServerSide:

I'm trying to figure out why SOA is the main topic of 4 separate articles on the main page? I mean, it's not even clear what it IS or why anyone should CARE about it!

We expose some services via XFire as SOAP web services, does that make us a SOA? We're not actually architecting anything differently, so what exactly is SOA?

Is TSS just completely marketing-driven technobabble now?

Oh, and with the invocation of RUP and SOA in the same comment, I got my buzzword bingo!!!

I do think the same but I always like the nice way he always put it ;)
Just like in an other post of mine about maven.

Technorati tags:

28 Apr 2006

Spring tests Life Cycle

I'm using AbstractTransactionalDataSourceSpringContextTests for test but I never remember the life cycle of those tests so I made an empty one with all methods printing there names:
getConfigLocations
setDataSource
setTransactionManager
onSetUpBeforeTransaction
onSetUpInTransaction
the real test
onTearDownInTransaction
endTransaction
onTearDownAfterTransaction

With log4j.category.com.company.test.LifeCycleSpringTest=DEBUG (my test):
getConfigLocations
16:34:11,662 INFO [LifeCycleSpringTest] Loading config for: classpath*:/**/beans.xml
setDataSource
setTransactionManager
onSetUpBeforeTransaction
16:34:13,880 INFO [LifeCycleSpringTest] Began transaction: transaction manager [org.springframework.orm.hibernate3.HibernateTransactionManager@1a1c42f]; defaultRollback true
onSetUpInTransaction
the real test
onTearDownInTransaction
16:34:13,880 INFO [LifeCycleSpringTest] Rolled back transaction after test execution
endTransaction
onTearDownAfterTransaction

With
log4j.category.com.company.test.LifeCycleSpringTest=DEBUG
log4j.category.org.springframework=DEBUG
log4j.category.org.hibernate=INFO
:
getConfigLocations
16:35:46,379 INFO [CollectionFactory] JDK 1.4+ collections available
16:35:46,394 INFO [CollectionFactory] Commons Collections 3.x available
16:35:46,410 INFO [XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\developpement\workspaces\egrc\SpringUnittest\bin\beans.xml]
16:35:46,597 INFO [ClassPathXmlApplicationContext] Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=14867177]: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [dataSource,sessionFactory,transactionManager,personDAO]; root of BeanFactory hierarchy
16:35:46,597 INFO [ClassPathXmlApplicationContext] 4 beans defined in application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=14867177]
16:35:46,613 INFO [ClassPathXmlApplicationContext] Unable to locate MessageSource with name 'messageSource': using default [org.springframework.context.support.DelegatingMessageSource@193a66f]
16:35:46,613 INFO [ClassPathXmlApplicationContext] Unable to locate ApplicationEventMulticaster with name 'applicationEventMulticaster': using default [org.springframework.context.event.SimpleApplicationEventMulticaster@be0e27]
16:35:46,613 INFO [DefaultListableBeanFactory] Pre-instantiating singletons in factory [org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [dataSource,sessionFactory,transactionManager,personDAO]; root of BeanFactory hierarchy]
16:35:46,691 INFO [Environment] Hibernate 3.0.5
16:35:46,707 INFO [Environment] hibernate.properties not found
16:35:46,707 INFO [Environment] using CGLIB reflection optimizer
16:35:46,707 INFO [Environment] using JDK 1.4 java.sql.Timestamp handling
16:35:46,785 INFO [Configuration] configuring from url: file:/C:/developpement/workspaces/egrc/SpringUnittest/bin/hibernate.cfg.xml
16:35:46,863 INFO [Configuration] Mapping resource: com/company/project/Person.hbm.xml
16:35:46,988 INFO [HbmBinder] Mapping class: com.company.project.Person -> Person
16:35:47,019 INFO [Configuration] Configured SessionFactory: sessionFactory
16:35:47,019 INFO [LocalSessionFactoryBean] Building new Hibernate SessionFactory
16:35:47,019 INFO [Configuration] processing extends queue
16:35:47,019 INFO [Configuration] processing collection mappings
16:35:47,019 INFO [Configuration] processing association property references
16:35:47,019 INFO [Configuration] processing foreign key constraints
16:35:47,097 INFO [ConnectionProviderFactory] Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
16:35:47,738 INFO [SettingsFactory] RDBMS: Oracle, version: Oracle Database 10g Release 10.1.0.2.0 - Production
16:35:47,738 INFO [SettingsFactory] JDBC driver: Oracle JDBC driver, version: 10.1.0.5.0
16:35:47,754 INFO [Dialect] Using dialect: org.hibernate.dialect.Oracle9Dialect
16:35:47,754 INFO [TransactionFactoryFactory] Using default transaction strategy (direct JDBC transactions)
16:35:47,769 INFO [TransactionManagerLookupFactory] No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
16:35:47,769 INFO [SettingsFactory] Automatic flush during beforeCompletion(): disabled
16:35:47,769 INFO [SettingsFactory] Automatic session close at end of transaction: disabled
16:35:47,769 INFO [SettingsFactory] JDBC batch size: 15
16:35:47,769 INFO [SettingsFactory] JDBC batch updates for versioned data: disabled
16:35:47,769 INFO [SettingsFactory] Scrollable result sets: enabled
16:35:47,769 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): disabled
16:35:47,769 INFO [SettingsFactory] Connection release mode: on_close
16:35:47,769 INFO [SettingsFactory] Default schema: BFRA_TEST
16:35:47,769 INFO [SettingsFactory] Default batch fetch size: 1
16:35:47,769 INFO [SettingsFactory] Generate SQL with comments: disabled
16:35:47,769 INFO [SettingsFactory] Order SQL updates by primary key: disabled
16:35:47,769 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
16:35:47,769 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
16:35:47,769 INFO [SettingsFactory] Query language substitutions: {}
16:35:47,769 INFO [SettingsFactory] Second-level cache: enabled
16:35:47,769 INFO [SettingsFactory] Query cache: disabled
16:35:47,769 INFO [SettingsFactory] Cache provider: org.hibernate.cache.HashtableCacheProvider
16:35:47,769 INFO [SettingsFactory] Optimize cache for minimal puts: disabled
16:35:47,769 INFO [SettingsFactory] Cache region prefix: hibernate.grc
16:35:47,769 INFO [SettingsFactory] Structured second-level cache entries: disabled
16:35:47,816 INFO [SettingsFactory] Echoing all SQL to stdout
16:35:47,816 INFO [SettingsFactory] Statistics: disabled
16:35:47,816 INFO [SettingsFactory] Deleted entity synthetic identifier rollback: disabled
16:35:47,816 INFO [SettingsFactory] Default entity-mode: pojo
16:35:47,941 INFO [SessionFactoryImpl] building session factory
16:35:48,238 INFO [SessionFactoryObjectFactory] Factory name: sessionFactory
16:35:48,238 INFO [NamingHelper] JNDI InitialContext properties:{}
16:35:48,254 INFO [Dialect] Using dialect: org.hibernate.dialect.Oracle9Dialect
16:35:48,254 INFO [Configuration] processing extends queue
16:35:48,254 INFO [Configuration] processing collection mappings
16:35:48,254 INFO [Configuration] processing association property references
16:35:48,254 INFO [Configuration] processing foreign key constraints
16:35:48,254 INFO [Configuration] processing extends queue
16:35:48,254 INFO [Configuration] processing collection mappings
16:35:48,254 INFO [Configuration] processing association property references
16:35:48,254 INFO [Configuration] processing foreign key constraints
16:35:48,254 INFO [SchemaExport] Running hbm2ddl schema export
16:35:48,254 INFO [SchemaExport] exporting generated schema to database
16:35:48,254 INFO [ConnectionProviderFactory] Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
16:35:48,363 INFO [SchemaExport] schema export complete
16:35:48,363 INFO [SessionFactoryImpl] Checking 0 named queries
16:35:48,410 INFO [HibernateTransactionManager] Using DataSource [org.apache.commons.dbcp.BasicDataSource@19fe451] of Hibernate SessionFactory for HibernateTransactionManager
setDataSource
setTransactionManager
onSetUpBeforeTransaction
16:35:48,472 INFO [JdbcTransactionObjectSupport] JDBC 3.0 Savepoint class is available
onSetUpInTransaction
the real test
onTearDownInTransaction
endTransaction
onTearDownAfterTransaction

My code:
package com.company.project.test;

import javax.sql.DataSource;

import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
import org.springframework.transaction.PlatformTransactionManager;

public class LifeCycleSpringTest extends AbstractTransactionalDataSourceSpringContextTests {

@Override
protected void deleteFromTables(String[] arg0) {
super.deleteFromTables(arg0);
System.out.println("deleteFromTables");
}

@Override
public void setDataSource(DataSource arg0) {
super.setDataSource(arg0);
System.out.println("setDataSource");
}

@Override
protected void endTransaction() {
super.endTransaction();
System.out.println("endTransaction");
}

@Override
protected void onSetUpBeforeTransaction() throws Exception {
super.onSetUpBeforeTransaction();
System.out.println("onSetUpBeforeTransaction");
}

@Override
protected void onSetUpInTransaction() throws Exception {
super.onSetUpInTransaction();
System.out.println("onSetUpInTransaction");
}

@Override
protected void onTearDownAfterTransaction() throws Exception {
super.onTearDownAfterTransaction();
System.out.println("onTearDownAfterTransaction");
}

@Override
protected void onTearDownInTransaction() throws Exception {
super.onTearDownInTransaction();
System.out.println("onTearDownInTransaction");
}

@Override
public void setDefaultRollback(boolean arg0) {
super.setDefaultRollback(arg0);
System.out.println("setDefaultRollback");
}

@Override
public void setTransactionManager(PlatformTransactionManager arg0) {
super.setTransactionManager(arg0);
System.out.println("setTransactionManager");
}

@Override
protected String[] getConfigLocations() {
System.out.println("getConfigLocations");
return new String[] { "classpath*:/**/beans.xml"};
}

public void testLifeCycle() {
System.out.println("the real test");
}
}


Technorati tags:

Citations

18 Apr 2006

Google Calendar is out!

The one that may replace Palm Desktop in my calandar application hear is out! check it out!

Is it better that 30boxes ? Well yes!

Because you can add your friends, french holidays or what ever other calendar you want! It is clearer and quicker...
But import of vCal event does't seems to work ;(

Technorati tags:

Ajaxwrite

Ajax Write application is trying to replace old school microsoft word. Utopia or reality ? We'll see...

Technorati tags: