Stephane’s thoughts corner…
Stephane Bailliez's thoughts on everything

March 8, 2009

Corporate Ipsum

Filed under: Business — stephane @ 10:44 pm

If you happen to have a mac (which I suppose would mean it’s new since it doesn’t last long ;-) ), and you like me are both fascinated, amused, and revolted by the emptyness of business-speak that some high-ranked individuals with absolutely no insights feel like gratifying us while sharing their vision and analysis… then you may have just have the ultimate guilt with Corporate Ipsum.

Globally maximize granular “outside the box” thinking vis-a-vis quality niches. Proactively formulate 24/7 results whereas 2.0 catalysts for change. Professionally implement 24/365 niches rather than client-focused users.

Competently engineer high-payoff “outside the box” thinking through cross functional benefits. Proactively transition intermandated processes through open-source niches. Progressively engage maintainable innovation and extensible interfaces.

You too you can rapidiously leverage existing resource-leveling processes.

Discovered while looking at the demo of the jQuery Pagination plugin

MongoDB : schema-free document-oriented datastore

Filed under: OpenSource,Software — stephane @ 1:36 am

My estimed friend and former colleague and manager Geir released recently through his company 10gen a schema-free document-oriented datastore called mongodb.

I’m fairly impressed with the velocity at which they were able to release it as well as the apparent quality of the documentation for a product just out of the door.

This is on my todo list to check among other things as I can see a couple of use cases that could fit well this.

mysql jdbc driver 5.1.7 – avoid

Filed under: OpenSource,Software — stephane @ 12:36 am

If you happen to use java and mysql do yourself a favor and don’t take the 5.1.7 jdbc driver.

I recently opened bug 42970 following a quick profiling to find the reason why 100 test calls of a 3.5KB-long sql query increased from 4.5s to 50s by upgrading the driver from 5.1.6 to 5.1.7.

There is a subtle piece of code in 5.1.7 which tries to find the string ‘ ON DUPLICATE KEY UPDATE ‘ in every statement in a very peculiar way

In my case, as can be seen from the call tree below, 4 PreparedStatement, means 4 calls to containsOnDuplicateKeyInString() and generates more than 12M calls to String.charAt() , 9M calls to Characters.toUpperCase, 4.5M calls to Characters.toLowercase().

  99,9% - 386 s - 4 inv. com.mysql.jdbc.JDBC4PreparedStatement.
    99,9% - 386 s - 4 inv. com.mysql.jdbc.PreparedStatement. (line: 47)
      99,9% - 386 s - 4 inv. com.mysql.jdbc.PreparedStatement$ParseInfo. (line:635)
        99,9% - 386 s - 4 inv. com.mysql.jdbc.PreparedStatement.containsOnDuplicateKeyInString (line: 202)
          99,9% - 386 s - 4 inv. com.mysql.jdbc.StringUtils.indexOfIgnoreCaseRespectMarker(line: 5193)
            99,7% - 386 s - 3 002 inv. com.mysql.jdbc.StringUtils.indexOfIgnoreCase (line:1023)
              18,0% - 69 578 ms - 9 530 899 inv. java.lang.String.charAt (line: 946)
              10,3% - 40 015 ms - 5 506 413 inv. java.lang.Character.toUpperCase (line:946)
              7,4% - 28 716 ms - 4 024 486 inv. java.lang.Character.toLowerCase (line:946)
              6,4% - 24 725 ms - 3 420 156 inv. java.lang.Character.toUpperCase (line:963)
              6,2% - 23 975 ms - 3 420 156 inv. java.lang.String.charAt (line: 963)
              0,8% - 3 228 ms - 450 342 inv. java.lang.Character.toLowerCase (line: 974)
              0,8% - 2 932 ms - 450 342 inv. java.lang.String.charAt (line: 974)

5.1.6 works fine (at least for what we do)…

Powered by WordPress