Skip to content

Hibernate 3.5.0-Final released

01-Apr-10

Today, Hibernate 3.5.0 completes its development cycle and is announced as Final. I joined this party late in the day and I’m still working through some of the test results from earlier candidate releases. I’ve submitted a few patches and they’ve been accepted and some have even made it into this Final release.

Most notably, I extended the work started by Enrico Schenk in introducing additional Ingres dialects. There are now three possible dialects.

  • IngresDialect – for use with Ingres II 9.2
  • Ingres9Dialect – for use with Ingres II 9.3
  • Ingres10Dialect – for use with Ingres II 10.0 – at the moment this is a place holder and uses the 9.3 dialect

The Ingres9Dialect switches uses the ISO date/time types and functions for mapping to their Hibernate equivalents. This changes the behaviour from the IngresDialect which used ingresdate type and functions.

Further changes to Ingres9Dialect will include the introduction of auto-increment columns; a whole host of additions will be required for the Ingres10Dialect and not forgetting the inclusions from the Ingres GeoSpatial project.
A list of new features introduced into each release is published on the “Ingres New Features Per Release” page.

Eclipsecon 2010 – day4

01-Apr-10

Another session packed day kicked off by a rousing keynote from Robert C. Martin of Object Mentor Inc. entitled “Software Professionalism and the Art of Saying “No”. Robert touted a common sense approach to developing tests and software (and the order is important here). Being in the software industry for so long most/all of his generic quotes from management sounded very familiar and after each one Chris and I looked at each other and smiled.

The day continued with the same intensity as the preceding 3 days culminating in the closing session where the conference was wrapped up and the winners of prizes announced. Unexpectedly, I won a prize (looking like a real geek) for voter feedback; having been to many conferences I liked the system of soliciting feedback at Eclipsecon, making use of the +1, 0, -1 voting system.

This was my first ever Eclipsecon and the Eclipse Foundation Conference Committee organized a fantastic event in my opinion. Now I’ll have to try and get to Eclipse Summit Europe, just to see how they follow that.

EclipseCon 2010 – day3

29-Mar-10

Apologies for the late appearance of this and the next post, but the expansion of my mind during the conference caused it to short circuit. In addition I’ve been wondering how I could possibly describe the key note by Dr. Jeff Norris from NASA’s Jet Propulsion Laboratory and provide a glimpse of just how awe inspiring it was. Short of having recorded it, I don’t think any description could do it justice. The EclipseCon keynote presentation that seamlessly integrates Greek philosophy, Eclipse, Open Source and robots is described by Chris Aniszczyk’s in his blog and the title of the article by Ian Skerrett from Eclipse just sums it up.

Another day packed full of tutorials and presentations included a joint presentation “DTP in the real world” by Brian Fitzpatrick from RedHat a member of the Data Tools Platform (DTP) Project Management Committee (PMC) and Ruth Soliani from the Eldorado Research Institute. MOTODEV studio demonstrates how utilizing DTP enabled the rapid development the application which connects to Android emulators or devices to interact with application databases. If you are interested the Ingres Database Workbench (IDW) is submitted as source to the Eclipse DTP enablement code repository and whilst not included in the release stream is available for download and used either as an example of a DTP application or as the basis for extension. The presentation included special thanks to Jo Peel and Enrico Schenk for their contribution to this submission.

One of the last sessions of the day was the Panel: Future of Open Source. Whilst there was discussion of “community vs. venture backed dual licensing”, “commoditized vs. innovation” and the “place of open source in cloud computing”. The opinion of the panel was that open source are masters of distribution; as demonstrated by Google data is all powerful and communities should aggregate the crowd telemetry and use it to derive revenue. Open data, on-line privacy and security were highlighted important in the future.

EclipseCon 2010 – day2

24-Mar-10

This morning saw a keynote presentation from Jeet Kaul (formally of Sun) and Steve Harris of Oracle. With the new developments in the pipeline for Java SE and Java EE it seems that Oracle’s Java is set to be all pervasive in devices ranging from the mobile platform and beyond to desktop and server.

Demonstrations of simpler application deployment on Glassfish with Java modules or OSGi plug-ins together with annotated EJB integration showed how Java is loosing its ‘complex to use’ shackles. A quick JavaFX demonstration demonstrating video and audio support could mean the same deployment format for desktop to embedded devices and provide a replacement to Silverlight and Flash.

During my existence as a conference attendee I have never before experienced the lunch practice of rewarding with beer the filling of places at a table; that is until today. Thanks to Adrian Mos (the presenter on Mangrove SOA modelling framework that I attended) who diligently recruited people to sit at our table resulting in the awarding of beer served for lunch.

The Google presentations on Web toolkit and app engine were well attended, so well attended there wasn’t even standing room and I couldn’t get in. From the description of the atmosphere and odour in the room from a colleague I think I had a disappointing but lucky escape.

Now I’m slowly getting my head around some of the terms and the architectures the fog is slowly clearing.

EclipseCon 2010 – day1

23-Mar-10

It has been a busy opening day at EclipseCon 2010. I have been able to attend some lightning talks (~25 minutes) where a synopsis of a later presentation is given. Gives you an idea of the forthcoming content.

The first session of the day involved an introductory presentation on the e4rover challenge

– translation, control a remote vehicle in a Mars terrain simulation using the current version of Eclipse e4 with driving controls.

Followed by a three hour tutorial on “Working with OSGi” that developed “Toast” a sample fleet management application. Many of the presentations are highly technical and domain specific so finding presentations for a newbie like me is a challenge. Luckily, the lightning talks are 12.5 to 25 minutes of introduction to pitch for more detailed presentations later in the week.

What is striking is that some of the project proposals can have overlap with each other and compete for community attention. A point raised in the Eclipse Modelling Framework (EMF) panel discussion was the difficulty in picking a project for an application and being sure that a project is kept active.

A project proposal called Eclipse Scout is being an application framework and SDK that is being made open source by a Swiss Company BSI who have used it to create their own CRM application. I noted their intention to integrate with Jasperserver but the lack of Ingres on their database connectivity slide. I raised it with the presenter Matthias Zimmermann who said the only reason was lack of expertise in their engineering. An opportunity to get in on the ground floor I think.

Eclipse PHP Development Tools (PDT) was another lightning talk by the project lead Rob Ganor. I caught up with Rob and spoke to him about the latest developments in PTD. Incidentally, it’s moved on quite a way since the early syntax highlighting PHP editor. It now includes integration with xDebug or Zend debugger and path management. Adding the ability to provide code assist for the Ingres PHP driver would improve productivity and details on how to are on the wiki page.

The day ended with a short Eclipse Data Tools Platform (DTP) BoF meeting where we met with members of the project leadership. Brian Fitzpatrick informed us the Ingres Database Workbench had been submitted into DTP Enablement, so not part of the release stream but available from the source tree.

Useful or useless? Follow on post …

23-Feb-10

Way back in May last year I experimented with some IMA tables that showed data types and operators defined in the DBMS.  Further poking around and a table for a list of the function instances is available,

drop ima_dbms_fis;
\p\g
register table ima_dbms_fis (
        server varchar(64) not null not default is
                'SERVER',
        id integer4 not null not default is
                'exp.adf.adg.fi_id',
        complement integer4 not null not default is
                'exp.adf.adg.fi_cmplmnt',
        type varchar(20) not null not default is
                'exp.adf.adg.fi_type',
        flags integer4 not null not default is
                'exp.adf.adg.fi_flags',
        opid integer4 not null not default is
                'exp.adf.adg.fi_opid',
        args integer4 not null not default is
                'exp.adf.adg.fi_numargs',
        dtresult integer4 not null not default is
                'exp.adf.adg.fi_dtresult',
        dtarg1 integer4 not null not default is
                'exp.adf.adg.fi_dtarg1',
        dtarg2 integer4 not null not default is
                'exp.adf.adg.fi_dtarg2',
        dtarg3 integer4 not null not default is
                'exp.adf.adg.fi_dtarg3',
        dtarg4 integer4 not null not default is
                'exp.adf.adg.fi_dtarg4'
)
as import from 'tables'
with dbms = IMA,
structure = sortkeyed,
key = (server);
\p\g
grant all on ima_dbms_fis to ingres;
\p\g
grant select on ima_dbms_fis to public;
\p\g

Adding this table to ima_dbms_types and ima_dbms_operators adds the ability to retrieve the list of functions and their signatures.  The query makes use of an internal function iitypename which translates the numeric type code into a name.

select
    a.name,
    case when a.type='COMPARISON' then
        trim(iitypename(b.dtresult)) + ' = ( ' +
        trim(iitypename(b.dtarg1)) + ' ' +
        a.name + ' ' +
        trim(iitypename(b.dtarg2)) + ' )'
        when a.type='OPERATOR' then
        trim(iitypename(b.dtresult)) + ' = ( ' +
        trim(iitypename(b.dtarg1)) + ' ' +
        a.name + ' ' +
        trim(iitypename(b.dtarg2)) + ' )'
    else
        trim(iitypename(b.dtresult)) + ' = ' +
        a.name + '( ' +
            case when b.dtarg1 != '' then trim(iitypename(b.dtarg1)) else '' end +
            case when b.dtarg2 != '' then ', ' + trim(iitypename(b.dtarg2)) else '' end +
            case when b.dtarg3 != '' then ', ' + trim(iitypename(b.dtarg3)) else '' end +
            case when b.dtarg4 != '' then ', ' + trim(iitypename(b.dtarg4)) else '' end
        + ' )'
    end as signature
from
    ima_dbms_operators a,
    ima_dbms_fis b
where
    a.opid = b.opid
group by a.name, 2
order by a.name

Some sample output from this query:

|name                          |signature                       |
|soundex                       |char = soundex( text )          |
|soundex                       |char = soundex( varchar )       |
|sqrt                          |float = sqrt( float )           |
|squeeze                       |nvarchar = squeeze( nchar )     |
|squeeze                       |nvarchar = squeeze( nvarchar )  |
|squeeze                       |text = squeeze( c )             |

So in answer to my own question; yes, it is useful.  I’ll be trying this on an IngresGeospatial build when I get my hands on one.

Button clicks do nothing in Ingres Database Workbench, Eclipse and its derivatives

04-Feb-10

On some distributions of Linux when running Eclipse and applications derived from Eclipse the buttons on dialogs whilst accepting clicks do not seem to do anything.

After some minutes of frustration and even more minutes searching for an answer on Google I found this https://bugs.eclipse.org/bugs/show_bug.cgi?id=291257 Any way the temporary solution is to set the environment variable GDK_NATIVE_WINDOWS to 1 before invoking the Eclipse launcher.  For example, use a script that implements the following:

#!/bin/sh
export GDK_NATIVE_WINDOWS=1
/usr/local/Eclipse/eclipse/eclipse

Another workaround would be to try using the keyboard’s space bar to make a button selection, but this gets a bit tedious.

Alternatively wait patiently for the advent of 3.6.

Every journey begins with a single step

01-Dec-09

Have you ever had to create a development stack on a machine from scratch to develop on or to check out a new technology?

You have?  Then you must have suffered some of the same frustrations and annoyances of ensuring that the prerequisites and dependencies of each component are satisfied; ending up with downloading some huge quantity of software. The plethora of download, installation and configuration steps required just to get to the starting point can be enough to dissuade all but the most tenacious.
The helpful people at Exadel have taken those many steps to get to the starting point and created an Amazon Machine Image (AMI) called Cloud in a box that includes all the components to create Rich Internet Applications (RIA). With an Amazon Web Services (AWS) account you can launch an instance of the image and take your first step to being productive.  Read the blog post about it RIA on the Cloud with RichFaces and Ingres and register for a free account on the Exadel Web site for more detailed instructions.

Jira 4.0

13-Oct-09

Those nice people at Atlassian have another starter introductory offer http://www.atlassian.com/starter/.  Not being a person to look a gift horse in the mouth, and already using and evaluation of Jira 3.12 with Ingres I decided to put my hand in my pocket.

I’ve updated the scripts and the notes to get Jira working with Ingres and uploaded them to the the Jira issue [#JRA-6150].  As you’ll notice there were no plans to support Ingres a year ago. With the current happenings in the market I wonder if that has changed.

During my last foray into this arena I got to meet Sarat Pediredla who help me get Ingres working with Fixx.  With the release of Ingres 9.3 I’ll have to see if Sarat would consider including Ingres out-of-the-box.

Hello, Eclipse calling …

12-Oct-09

A follow on post on setting up the Eclipse Communications Framework (ECF).

If like me you have to work and communicate whilst connected to private systems, but from time-to-time need to collaborate with developers who are not privy to those systems then this article http://ecf1.osuosl.org/updateReleasedSiteInstructions.html may help.  It describes how to install a plug-in into the Eclipse IDE that enables it to use the Skype API as an instant messaging provider.

Using Galileo SR1 on Windows XP I found that selecting Skype directly from the Connection to Provider button did not establish after installation and choosing Skype from the dialog offered more success.  However, once Eclipse had been restarted all was again right with the world.