Software Development
Hotsos 2010 – Presenters, Presentations, Presenting
Mar 11th
I never find it very easy to try to capture the atmosphere during a conference, the presenting part, the presentations or the discussions, for example, you could have with the presenters. Hotsos is such a cool and unique event were you have the opportunity, to listen but also to interact. The amount of people that attend isn’t that big, only a few hundreds, but they share all the same passion, the passion to improve on performance, mostly Oracle related. It has only two tracks and its not uncommon that people present and than go afterwards to a presentation to listen in what the other presenter has to say.
Due to the fact that it is manageable in terms of choice, located on a convenient location and well organized, you have the opportunity to pick just the thing you like and most of the time not miss out on “the other” presentation you would have liked to see. Besides that people stay in (overnight in the Hotel), so discussions about the technology, the method or an example during a presentation will be discussed in far more detail than you normally would do, from presenter to presenter or from presenter to the guy that attended and vice versa. The fact that all have the passion for performance or that they realize that performance is a beast with various angles to approach, bounds, and every point, every question is one to be heard and/or discussed. On equal terms. If you have seen my video impressions of Hotsos in 2009, you get a bit of what I am trying to say.
Anyway, not being a native speaker and with my new “flip” at hand (Ultra HD), I just show you how much fun and interesting stuff is going on, probably this will do more right to those presentations than me trying to explain what all those new ideas which were that popped into my head during this years Hotsos Symposium…although…sometimes technology helps and sometimes it just doesn’t…or is it a VMware thing Doug…?
My agenda is not that much different then the one from Doug. The moment it is mentioning RAC related stuff, then I probably would have been attending the other guy.
The Monday started great with a small introduction of Tom Kyte’s generally unknown other qualities…
…Enjoy…
Subversion – branching, merging and reintegration
Feb 25th
Subversion is a great source control system. One of the great features is it’s branching and merging support. Although many developers avoid it, branching is very powerful and useful and should not be something to be afraid off but something to be familiar with. And for the stable and controlled development is it almost a necessity to master it.
In general we can identify two types of branches: product and feature branches.
- The product branch is normally to support maintenance on a released version while development of the next version continues.
- A feature branch is normally a temporary branch to work on a (complex) change without interfering with the stability of the main development line (trunk) and in the end is incorporated back into the main line again.
Now, while you can work on isolation on the feature branch, there will come a time that you’ll have to integrate (merge) the changes with the trunk. And although subversion does provide extensive merge support, this might get messy with big changes. So it’s a real good idea to keep the feature branch in sync with the trunk and have the changes in the trunk regularly applied to the feature branch too. Actually, this is not so complicated as it might seem, especially when using modern tools like TortoiseSVN or IDE’s.
Automatic testing Oracle Service Bus using Hudson, maven and SoapUI
Feb 23rd
ASCII art as a DSL for unit testing
Feb 16th
Complicated tree structures are being used a lot within my current project. Tree nodes have elements behind them. An element is unique, but there can be multiple tree nodes for a single element. Tree nodes have different drag and drop behavior based on flags on both the tree nodes and the elements. Also tree nodes can inherit children from other tree nodes etc. This blog will be about how to unit test these trees or more exactly how to setup a unit test so that it is fun to create and easy to maintain.
Read the rest of this entry »
Agile software development, the principles. Principle 11: The best architectures, requirements, and designs emerge from self-organizing teams.
Dec 14th
Agile software development, the principles. Principle 10: Simplicity–the art of maximizing the amount of work not done–is essential
Aug 3rd
This is the tenth of 12 posts about the principles of agile software development. Purpose is to go back to the start of the agile manifesto (http://agilemanifesto.org/principles.html) and discuss the implementation of the 12 principles in real life software engineering. Goals of agility are to go deliver software of higher quality, faster, with a higher acceptance to end-users and able to follow the changing business requirements to strive for competitive advantage.
Report from presentation ‘JPA 2.0 – What’s new’
Jul 15th
The Java Specification Request 317 (JSR-317) aka JavaTM Persistence 2.0, (JPA 2.0) has finally reached the last stage, "Completion of Reference Implementation (RI) and Technology Compatibility Kit (TCK)", before it’s officially released. Therefore last week a KC was given with a presentation of the new functionality and differences compared to JPA 1.0 and some hands-on exercises. Read the rest of this entry »
ODTUG Kaleidoscope 2009
Jul 13th
Recently I presented for the fourth time at the annual ODTUG Kaleidoscope conference. It’s really a great conference that I recommend to every Oracle consultant. It features great presentations, discussion forums, hands-on labs on a broad range of subjects ranging from Oracle Forms to ADF, SOA, Apex, Essbase, PL/SQL, methodology etc. etc. But it’s not only the sesssions, but also the fun and discussions during breakfast, lunch, diner and other social activities and it’s very easy to meet the experts in the field. This makes the Kaleidoscope one of the most valuable conferences.
“Hotsos Revisited”, Revisited…
May 19th
Lucas already gave a very good in depth overview of the "Hotsos Revisited" session last night. It always amazes me how fast he can make a cool blog post that accurately points out the impressions we had of the evening. It started off with an idea we (Jeroen, Toon, Gerwin and me) had of sharing some of the ideas, atmosphere and presentation info we got from the Hotsos Symposium this year. It is not an easy task to present the presenters accordingly trying to achieve some of the energy that shared during their presentations at Hotsos, also, of course, we were not that deep into the material they presented / as the people we tried to do credit to.
I am indebted to Jeroen, Gerwin and Toon for making the time (their precious spare family time) too make it all happen. Even if it has to be all fun, you, as a presenter, don’t want to let the attendees, the audience, down by leaving them with the impression that such an evening was lost time. So it still takes a lot off effort to make it all work.
Upgrade JDeveloper 10g Subversion client
May 5th
JDeveloper provides a build-in Subversion client via one of its extensions. Although the functionality is limited (especially in 10g) it is essential for the handling of business components in relation to subversion, especially when it concerns refactoring and deletes. However, because of its limitations, most developers have installed another Subversion client; especially the TostoiseSVN is very popular. And this is where problems may arise.
The subversion client is available in different versions (1.3, 1.4, 1.5 and 1.6) and the structure of the local subversion administration files (the .svn directory) differs. This means that a lower version client does not recognize the working copy of a higher version client. It recognizes that the files are 'under subversion control' but does not understand how and it considers all files to be 'new'. Secondly, a higher version client automatically upgrades the working copy. Thirdly, TortoiseSVN offers automatic upgrades to the latest version. By the way, the client version does not necessary need to match the server and it is not possible to install multiple versions.
Concerning TortoiseSVN, it really is advisable to have at least the 1.5 client. Especially the merge functionality is way better and easier to use than before. However, the JDeveloper 10g extension still is a 1.4 client (Note that the first 10g version (10.1.3.0.x) is a 1.3 client). With this combination you'll encounter issues, that require close attention, much discipline and may easily result in build problems.
For example, when you delete in JDeveloper a business component (actually often more files), the delete is not administrated in the working copy and the file is marked as 'missing'. When you now do perform a subversion update, the file is back again
. So you must not forget to manually delete the file via TortoiseSVN. It's even worse with refactoring like renaming and moving.
To prevent these problems, it's best to install TortoiseSVN 1.4 and disable the update check. However, the upgrade to version 1.5 is almost obligatory, because (amongs others) of the much better merge support. A typical catch-22 situation.
Fortunately, JDeveloper extension uses the svnkit (version 1.1.1) it is quite easy to upgrade to a recent version manually:
1. Make sure to have TortoiseSVN 1.5 installed and disable the automatic update notification
2. Stop JDeveloper
3. Download the standalone svnkit 1.2.3 from http://svnkit.com/
4. Unzip it
5. Rename svnkit-javahl.jar to svnjavahl.jar
6. Copy (and replace) svnkit.jar and (the renamed) svnjavahl.jar to the JDeveloper subversion extension directory, [jdev install dir]\jdev\extensions\oracle.jdeveloper.subversion.10.1.3
7. Copy the licence files
8. Done, start JDeveloper
9. Check the tools -> preferences -> Versioning -> Subversion. It now shows the upgraded version
:

I've tested it with 10.1.3.3 and 10.1.3.4 and 10.1.3.5 and 11.1.1.1.0 and expect it to work with 10.1.3.1 and 2. With 10.1.3.0.x this does not work because it does not use the svnkit. I've tried hard, but didn't succeed.
Note, the latest version of 11g (11g PS1 or 11.1.1.2.0) includes a 1.6 client so you don't need to update it. The older 11g versions have an 1.5 client (although the very,very first one has an 1.4 client that includes some 1.5 functionalities).
As mentioned in the comments, the same trick seems to work for an upgrade to 1.6.
Since it is so easy to do, I wonder why Oracle does not provide updates for their subversion extension.


