Category Archives: Uncategorized

Oracle Tools 1.1.0 Released!

After some significant research and development we’ve finally released Oracle Tools 1.1.0.   While a seemingly minor update (without breaking anything), it contains some nice improvements over Oracle Tools 1.0.0.

While the Issue Tracker (JIRA)  and Change History outline all of the low-level details, in a nutshell we made the following improvements:

  1. Orphan Process Protection: We introduced the ability to ensure that spawned processes, including Java applications, can be prevented from becoming orphaned, should a starting (ie: parent) process terminate unexpectedly.   While most people seem to run Oracle Tools with in the context of Continuous Integration Systems (which typically prevent “orphan processes”), we found systems using Oracle Tools in a standalone mode may create orphan processes when they terminate carelessly.  Not anymore!  “Orphan Protection” is turned on by-default.   If you really want to “orphan” newly created applications, just turn if off with a call to the NativeJavaApplicationBuilder.setOrphanProtection(false) method.
  2. Remote Runnable and Callable Execution: Having the ability to communicate between the starting and client applications allowed us to introduce the ability to request the execution of arbitrary Java Callables (or Runnables) for Java-based Applications (including Oracle Coherence).   Essentially this means that you can do things like this:Future<T> future = someApplication.submit(Callable<T>); in your tests.Note: This works for both container-based, local and soon-to-be-released “remote” applications.
  3. Introduced the new Eventually class:  With the advent of remote execution we decided to refactor (and deprecate) the DeferredAssert class to make things easier to use.  eg:  Say you want to assert that a remote application eventually reaches a certain state, you can now do this:Eventually.assertThat(application, Callable<T>, Matcher<T>);This will attempt to execute the specified Callable against the provided Application, hoping to eventually have the result “match” the specified Hamcrest/JUnit Matcher.   How it retries / backs-off in order to “eventually” match is covered by the Ensured class.
  4. New Documentation for Oracle Tools for Coherence:  While we also added a bunch of new features for the Oracle Tools for Coherence module, we also added new tutorial-based documentation.   It’s all covered here.

Comments, suggestions, feedback and defect reports are always welcome!

Project Page:  https://java.net/projects/oracletools/
Issue Tracking: https://java.net/jira/browse/ORACLETOOLS
Forums: https://java.net/projects/oracletools/forums

Advertisements

Where’s my Eclipse IDE gone? (into the Trash)

After using and I guess supporting the Eclipse IDE now for almost 10 years, it’s finally failed badly enough that I’ve dragged into the Trash.  Why?  The last straw was simply the irritating and annoying unstable editor scrolling performance on a variety of platforms.  It’s no longer worth it.

eg: Working on my notebook 11″ screen is fine.  Working on a 24″ screen is slow.  Working on a 30″ screen – scrolling just doesn’t work.   Of course the caveat here is that I’ve got white-space highlighting and line numbers turned on.  If I turn these features off it works fine.  However, I need and use these features everyday – hence it’s no longer a solution.

I tried a bunch of releases, patches, hacks, work-arounds and searched the code base.  However  there comes a point in time that trying to resolve the problem is far more painful than switching IDEs.

So I’ve switched.  I switched to JetBrains IntelliJ 11 (and 12).   It wasn’t easy and wasn’t exactly fun (after nearly 10 years on Eclipse there’s a lot of short-cuts to remember), but it’s worth it in terms of productivity.  (While I could use the Eclipse key-mappings, I have no intention on going back so I’m gradually learning the native IntelliJ ones).

Luckily all of my favorite plugins are supported, especially JIndent that I which I use routinely across around six different projects.

So… So long Eclipse.  You were once a great platform.  Now you’re slow, large and cumbersome (compared to other platforms out there).

PS: Buying a personal license of IntelliJ is so worth it!

Coherence Incubator 11 (coming to an open-source repository near you soon…)

As mentioned at the past few Oracle Coherence Special Interest Group (SIG) and Customer Advisory Board (CAB) meetings, we’ve been busily working away at opening up (open sourcing) the entire Oracle Coherence Incubator for the Coherence Community.   I’m very pleased to say that this work is now “almost” complete!

Note: I say “almost” complete simply because we’ve not yet made an official release from the source repositories, but as far as openness goes, the work is now done.

If you’ve been looking at or using the Oracle Coherence Incubator in the past, a lot of things are about to change organizationally.

1. All source code and documentation is now officially licensed under CDDL.

2. The entire project has been “Mavenized”.  ie: easy to build, release etc from source.

3. All source code and documentation is now publicly available on GitHub.  ie: easy to access for everyone.

4. The project is now officially hosted at java.net.  ie: it’s like Glassfish and other open-source Java projects.

5. The issue tracking system is also publicly available (also on java.net).

6. The project documentation is now part of the project source (as a maven site).

7. You can now officially contribute to the Incubator!  Instructions on “how” are in the project documentation

8. Releases will be available on http://maven.java.net (and Maven Central).  Snapshots are already available on http://maven.java.net.

While these are major structural changes to the project, the source packaging and classes remain the same.   ie:  Coherence Incubator 11 is simply Coherence Incubator 10, but cleaned up with a new home and licensing model.

Here are the important new links:

Coherence Incubator Project: http://cohinc.java.net

Coherence Community Source Code: https://github.com/coherence-community

Latest Documentation: http://coherence-community.github.com/coherence-incubator/11.0.1-SNAPSHOT/

What about Coherence Incubator 10?

Ultimately the plan is to retire Coherence Incubator 10 and encourage everyone to move over to Coherence Incubator 11.   There are a lot of advantages to this (like being able to easily build stuff yourself).

Technically they are the same (if they aren’t that’s a defect – which we can track openly!).  We’ve gone to great lengths to keep them in sync so that everyone that’s been using Coherence Incubator 10 should be able to simply swap the jars (updating the versions) and carry on.

Once we’ve made an official release of Coherence Incubator 11, we plan to retire Coherence Incubator 10.  The site and downloads will still be available.  We’re not taking that away.   However all new work and defect fixes will only occur in Coherence Incubator 11 (unless there’s some monumental pressure – and I mean monumental).

Currently Coherence Incubator 11 contains a rollup of all changes to Coherence Incubator 10.  ie: in terms of source code they are the same (or very close).

So if you’re using Coherence Incubator 10, take a look at Coherence Incubator 11.  Grab the snapshots from maven.java.net or build it yourself from GitHub.

What’s next?

There’s still a bit of documentation to move over from Coherence Incubator 10 site and into Coherence Incubator 11.  We’re hoping to have this completed in the next week or so.  After this we’ll start the process of making an official release.  Once this is complete, we’ll announce retirement plan for Coherence Incubator 10.

As you can guess by the time this has taken, this has been a massive effort.  While it may seem like it was a simple project restructuring  – eg: getting source, documentation ready, this has involved a tremendous amount of organizational and community consultation.  I’m happy to say we’re through this now.   I look forward to putting out some new releases with new functionality pretty soon.

OSX Lion Upgrade (Part 1)

Upgrading from OSX Snow Leopard to OSX Lion has so far been somewhat of a disappointment, especially when compared to previous upgrades. Actually I’m glad it only cost $29, as any more and i would have probably returned it. The upgrade process itself was fairly smooth and seamless (apart from one complete hang/lockup requiring a reboot).  It’s the post upgrade, i.e.: adoption, that’s caused the most, or be they “slight” frustrations.

A quick summary of the upgrade.
1. Upgraded Macbook 5.1 (first uni-body aluminum macbook released) from 4GB to 8GB ram.
2. Installed new Crucial M4 256GB Solid State Drive.
3. Performed Clean Install of Lion (via USB stick) – takes about 1 hr (probably would have been less if it didn’t hang half way through)
4. Install everything and migrate from old 256DB SATA drive to new install.

Elements of Frustration.
1. Random Mouse Pointer Jumping / Acceleration.
It seems OSX Lion is plagued with these problems. Don’t underestimate how annoying these are.  Seriously, your Mouse Pointer will simply disappear and randomly jump around the screen real-estate.  If you have multiple screens you’ll have to look to find it!

So far there are no fixes.  If tried everything I’ve found.   (this is on a regular Mighty Mouse).

2. Performance is Poor.
Out of the box it’s remarkably slow. Well, it appears to be remarkably slow. While there are some beautiful GUI transitions between windows, applications loading, spaces etc, these chew a lot of CPU. Basically add one second at a minimum to all window opening/application loading interactions (on my machine anyway). Luckily there are some solutions.

Open a terminal and execute these commands:

defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool NO
defaults write com.apple.Mail DisableReplyAnimations -bool YES

These will disable the animations for windows (which use to be an option in Snow Leopard, but is now gone).

3. Auto Repeat (when holding down a key) Doesn’t Work.
Yup. Amazing, but here’s how to turn it on (again using a terminal)

defaults write -g ApplePressAndHoldEnabled -bool false

4. Eclipse Margin Warnings Aren’t Displayed
There is a defect in Eclipse (all versions I can tell) that prevents the compiler error/warnings some being displayed in the right-hand scroll-bar area. This is fixed by turning on the “hide scroll bar” option.

Apple > System Preferences > General > Show Scroll Bars: Select "When Scrolling" Option.

Any other option seems to break Eclipse. Trust me, without this fix you’ll be searching for compiler errors by scrolling through each document by hand (or having to click through the Errors Panel).

5. Adium crashes intermittently
Not a biggy, but Adium randomly seems to crash if you change networks.  Have you upgrade to the “beta” as all other versions are not supported on Lion.  Funny, seems like is a “beta” too 😦

Bottom line: Unless you’re willing to invest some time ironing these things out, I avoid the upgrade. I’m certainly not upgrading my other Mac’s.  If I had time I’d probably roll back, but I’m determined to move forward.

On the Positive Side: There are some very nice features, like the new Mail.app which I’ve become addicted to pretty quickly.

London Coherence SIG: Spring Edition: 10th June 2010

Save this date:  10th of June 2010 (Thursday)

That’s right.  It’s time for another London Coherence SIG.  While it’s probably a bit late to be called the “Spring Edition”, unless London starts to warm up quickly it probably should be the “Winter Edition” again.

This SIG promises to be larger than ever, in size and content!

1. We’re moving to a new premises (the Sun/Oracle Offices on King William Street) to allow for significantly larger turn out (nearly double the capacity).  Hopefully we can avoid having waiting lists from now on!

2. We’re going to be running tutorials/master classes/workshops in the mornings.  The usual SIG presentations will kick off at around 2pm.

3. We’ve got some great speakers lined up, including Gene Gleyzer and Patrick Peralta from the Coherence Engineering team in the United States.

4. We’ve also got a bunch of new announcements around the Incubator.

More details to come next week… including the full schedule and place the register.

Have a great weekend.

This never gets old…

Has the process of developing and delivering software really changed?

(click the image for full size version)

thesoftwaredevelopmentprocess

The long story about BT (British Telecom) customer service

I’ve been with BT (British Telecom) for years.  Eight years in fact.  And while most people tell me they a). are incompetent (google also has some interesting stories) and b). essentially cost 2x everyone else, my internet service has actually been “up” for nearly eight of those years (that I can tell) so I’ve been (perhaps stupidly) happy to pay a premium.  While there have been occasions when things have gone horribly wrong (like the last time they erroneously cancelled an order and disconnected me) I think the final straw has arrived.

[NOTE: I’ve never in my life – that I can remember – written a letter of complaint to or about company.  Sure I may bitch a little, but that’s about it.  Just want to put this all in context 😉  It’s taken a lot of crap from BT to get me to this stage]

Let me explain.  Apparently sometime in June, while I was away on vacation and my house was completely empty, someone called BT and told them I was “moving”.  From what I can tell and they can tell me, all that the person had to provide was my phone number and address (which I guess is available on some system somewhere and probably on the Internet), then suddenly, a few weeks later all my phone lines and broadband/internet access was cancelled.  No notice.  No SMS.  No emails.  No letters. No correspondence of any kind. Just disconnected.

While immensely frustrating (given the effort it sometimes take to get connections), the fact that it seems anyone can basically disconnect anyone’s BT phone in the UK without identification, confirmation or correspondence is frightening. Worse, for those using Sky, Virgin et al that also depend on BT landlines, they too can be disconnected, almost overnight.

Obviously there’s something wrong with the process for disconnecting and/or moving house, and sure, mistakes do happen, but the customer service (until I found someone in the UK that took the time to look into it thoroughly) was horrible. Not just horrible, humiliatingly disgusting.

After 4 hours on the phone (international calls in the middle of the night because I was in Australia), going through a variety of call centers (mostly in non-English speaking countries), they successfully determined that it was in fact all my fault, the reasons being.

1. The account was not paid – even though it was on “direct payment from my bank account”.  Pretty weird as they eventually had to admit that last paper and internet statement from the previous 10 days showed £0.00 balance owing (and the account has never been negative!)

2. It was definitely me who told them that I wanted to move – but then they couldn’t confirm my new address to me… funny since I apparently requested it!

3. My internet connection and phone was actually fine – even though when I/they called my phone it said it was disconnected!

4. I’d given my account number and/or permission for someone to cancel my account – errr. no.

5. My bank had made a mistake. Err… no again.

In short… there was no coherent story as to what happened and no one could tell me why.  The stories (and excuses) actually seemed to get more and more convoluted with each new person I spoke with – and more frustrating. Ultimately it soon became clear that they themselves where confused as well.

Lastly I was told it was because of “other”, and no one knew what “other” meant as a reason for disconnection.

The Proposed Solution: Sign up for another 18 month contract, with a new phone number (as that is their current sales deal) – “it could take a few weeks to reconnect” – and I had to pay reconnection charges. Once that was reconnected they could then reconnect my internet “in a few weeks/10 working days”.  Right… someone, somewhere screwed up and I have to pay… errr… no way.

What amused me the most was that while “every phone conversation was recorded”, when I asked them to compare my voice to the caller that requested my disconnection their response was “it is going to take a while”. How long was a while?  Well… “several months”.  Of course “I could wait if I liked, or have a new connection/contract started immediately”.

After being disconnected three times and starting the conversation from scratch with each of the 8 or so people I talked with, I finally managed to find someone in the UK that could get things reconnected in a few days – probably won’t have the same phone number, but I could be reconnected.

To my friends that have told me time and time again that have switched from BT… I now completely agree with you – the BT customer service was simply beyond belief (until I found that one person… and spent over a $100 on phone calls).

If it was only possible to use a non-BT provider where I live (without also requiring a BT account), I too would switch.

[update: 10th July] After another hour on the phone, three separate calls and being hung up on twice, it looks to be finally resolved.  Hopefully I’ll have a new phone number (yes… my old one is gone), on a new contract (I have to work out compensation for this in a separate process) in two may be three working days.  They waived my reconnection fee (how nice of them).

Of course I had to go through the whole process of explaining once again that the disconnection was made in error, that my account was completely in order (Another system said I owed £0.00 and needed to pay that amount immediately before they could continue to do anything) and that I wasn’t moving house.  And… although it took two people three attempts to make the new connection order, it should be all good now.

It seems the secret was to “keep trying” until I could find someone that could understand English, comprehend what had happened and had the authority to get things fixed.  Shame it took nearly 6 hours and 11 people.  Being hung up on twice by off-shore call centers was pretty unfriendly and very annoying, but it was worth it.  For some reason when I now call I only get UK-based operators.

Not a great way to end a holiday.

[update: 14th July] Awesome! My home line now works.  Amazing!  New phone number of course (my old one is gone forever – now to notify everyone 😦 ), but at least I have a phone that works now.  Unfortunately my Internet Connection doesn’t work.  Doh.  They said it would, but again, that was another department. So… another 45 minutes on the phone.  Oops… yet another mistake!  Apparently it “has to be a new connection – could take 5 days”.  Damn it… “but because of the errors, it should on tomorrow”.

[update 15th July] No Internet Connection 😦  I’ll wait until tomorrow.  No need to work at home today anyway.

[update 16th July] Awesome! Internet is back.  Now to undo all of the new contracts I had to say “yes to” in order to get things running again.  No choice but to go through the official complains procedure.  Apparently this may take 12 weeks.

[update 23rd July] Received final bill for my previous phone number.  £14 credit!  I guess the “story” that my account was out of order was incorrect!