Friday, December 31, 2010

2010 in review

It is that time of year, when Christmas has passed (did you get the things you wished for?) and the New Year is upon us. A time for reflection and appreciating the things we have achieved.

As I look back I tried to come up with a picture to put in this post that would reflect the leading theme in my year. It should be apparent that my life at Red Hat has settled down and I am fully focused on JBoss with a favouritism for jBPM. This has kept me busy professionally this year and taken me to four different countries in Europe, three major conferences and countless customer / partner workshops.

This year saw the continuation of my Subject Matter Expert (SME) role for JBoss jBPM and JBoss BRMS being expanded out into the JBoss SOA-P product. Much of this role had me on the move with a short review here:
I guess the biggest project that has started rolling is the future of jBPM, with planning and work being done to create jBPM5. This led me to think about it, think some more and then start a project on jBPM migration strategies. This I wrote about a bit too and expect this project to keep me busy into the new year.

On the cycling front I made some great rides this year in several countries which I list here but you can follow on twitter which are tagged with #ericscycling:
  • spent some time on vacation in Zeeland, watching Giro 2010 pass by!
  • several rides in the Veluwe, killing myself on the Postbank
  • several summer Limburg rides; climbing and in the hills
  • several rides from home to Uden for family visits
  • again rode the Oude Holleweg and Van Randwijckweg in Beek
  • weekend ride in Trier, Germany with the killing valley hills there (thanks ErikP)
Being healthy and happy, I wish you and yours all the best in 2011!

Friday, December 24, 2010

jBPM Migration Tool project - update on the research phase

We have been seeing activity on the forums and we have been approached collectively by community practitioners of JBoss jBPM. Time for us to put out an update of what is going on in this project.

We have kicked off the project in the beginning of November 2010 by setting up the development environment, meeting several times over coffee / beer and getting the preliminary roadmap sorted out.

It was ambitiously setup to try and push out simple use cases as fast as possible and we arbitrarily chose to use XSLT for the tooling to convert jPDL 3.2 to BPMN2. As we dug deeper into the technology we started to find other ways of doing this and wanted to be sure that we chose the best migration strategy as possible. Maurice de Chateau puts it nicely,

"Well, to tell you the truth we're still in the process of looking for the simplest possible approach. So by no means have we completely ditched the XSLT approach - but we're certainly exploring alternative paths. Automatic generation of (intermediate) deliverables has our absolute preference (just call us lazy), so mechanisms like JAXB and frameworks like Smooks are well worth trying out - as far as we are concerned.

Downside to this search for an approach is that our original planning (delivering the first use cases this year) is most likely going to be abandoned, yet I strongly feel that's in the best interest of the solution we're ultimately going to deliver. Nevertheless we're still very much committed to delivering a sound and practically usable product as soon as possible."

So the first target will be to get conversion tooling working for jPDL 3.2 to BPMN2, followed by the rest of the targeted versions as stated in the project wiki.

With this in mind, you will see that we have misses the current milestones and will be 'refactoring' this part of the project real soon. Keep in mind also that we are both doing this in our own time outside of the normal working day, so watch the project timeline and here for more news as we move along.

Feel free to jump in an contact us if you wish to contribute or have use cases (process definitions) you would like to contribute to the set we have already acquired. Thanks for the interest and stay tuned for jBPM Migration Tool action coming in 2011.

Thursday, December 23, 2010

Firefox tip - how to turn off the Downloads Complete popup

Figure 1: about:config
I was getting real tired of the pop-ups in Firefox telling me that the file download just completed. To turn these off just us the about:config page as shown in figure 1 to set the highlighted variable in figure 1 to false. You can toggle this setting by just clicking on the line.

The less interruptions, the less context switching, the easier it is to concentrate on the code you are working on! ;-)

Wednesday, December 22, 2010

jBPM Migration Strategies - getting your BPM ducks in a row

I have submitted the following talk to codemotion, on 5th of March, 2011 in Rome, Italy. I hope to make some more noise on the coming jBPM Migration Tool project.

Abstract
With the upcoming release of JBoss jBPM5 there is a need to get your existing jBPM projects ready for the future. The future is BPMN2 and jBPM5 will be the first JBoss implementation to support this standard. We will discuss the need for jBPM migration strategies to help position your projects for the future. We finish with a dive into the details of the jBPM Migration Tool project,  providing you with the tooling to migrate your existing jBPM processes to BPMN2.

Fingers crossed and hope to see you there!

jBPM best practices - bringing your business processes to a good end

Fig. 1: Single end state
I wanted to put down some of the best practices for developing your business processes with JBoss jBPM. This is one of the simple tips that will make your business processes more flexible when creating monitoring reports for your manager.

The basic mistake that I often see is that business processes are created with a single end state, which is used from all points when wanting to reach completion.

Fig. 2: Multi end states
This provides no information as to the conditions that led the process to this end state. Figure 1 shows that we can end this business process from the first, second or third node. The problem is we only know that it has ended, but can not easily quantify which paths resulted in the completion of the business process.

Figure 2 shows the same business process implemented using a best practice of defining individual end states which can be easily mined for BAM or management reporting. Here we see that the business process catches the completion paths first, second and third via their respective end states.

I hope this jBPM best practice is of some use to you. Happy processing!

Monday, December 20, 2010

JBoss Developer Studio - remove Spring support and live Spring free

I am not a Spring developer, so why should I put up with it in my Eclipse IDE of choice? A friend of mine pointed me to the stuff that needs to be drop-kicked-without-backspin:

# We just want to remove all the plugin and feature stuff that is
# related to Spring.
#
$ cd ~/jbdevstudio/studio/eclipse/plugins

$ ls -l | grep spring

# This displays about 90 jar files related to Spring tooling, just 
# dump them as follows.
#
$ rm com.springsource*

$ rm org.jboss.tools.vpe.spring*

$ rm org.springframework*

# Now we need to remove the features directories related to 
# Spring.
#
$ cd ../features

$ ls -l | grep spring

# This displays about 7 directories containing Spring tooling, just 
# dump them as follows.
#
$ rm -rf org.springframework*

That was all there was to it. Now fire up your streamlined IDE and enjoy a Spring fee existence!

Tuesday, November 23, 2010

Devoxx 2010, Antwerp, Belgium - an impression

Another great week at Devoxx in Antwerp, Belgium from November 15 - 19th. I was there this year for both the University Sessions (day 1 and 2) and the Conference part which is from Wednesday to Friday.

Red Hat JBoss had a large booth, lots of core developers which you can see in the pictures. I attended some great sessions, saw a good film at the cinema that was the hosing location, talked lots of Java with the various JBoss developers, customers, partners and even with a few interesting people I happened to bump into on the conference floor.

Spent some extra time with Koen Aers and Kris Verleanen talking both jBPM5 and our jBPM Migration Tool project. Also got some pointers from our JBossTools Max Anderson to ensure we can easily integrate our project into his work. These are some really sharp and smart guys!

Enjoy the impression slideshow:

Thursday, November 11, 2010

JFall 2010 - rocking jBPM tasks with In2Flow

The Dutch Java User Group (NLJUG) held its annual JFall conference at the new location in Nijkerk on 03 November 2010. I have always been a fan of the Fall session over the Spring versions they used to hold, but since this year we had no choice with cancellation of the Spring version I was again back for more Java immersion. I was also invited to speak with Arnoud Wolfard for a session on jBPM task management interfaces based on In2Flow from the SNS Bank.

 As always JFall functions for me as one of the primary events of the year to network with everyone I know within the IT business in the Netherlands. From companies I have worked at, to people I have met through my current job, to service integrators and old mates from my university days, they are all there in force. It was even better in the new location as the sphere was more conducive to chatting in the various corners the venue provided. The stands were also spread nicely throughout the venues many halls, rooms and buildings as you can see from the on-line photo gallery.

I personally visited a few sessions, including:
  • What's new in Hibernate: a JPA 2 perspective (Emmanuel Bernard)
  • Modern Concurrency: STM, Actors & Transactors (Peter Veentjer)
  • In2Flow – solving your BPM human task problems! (of course...)
  • Activiti: the definitive BPMN 2.0 engine (Tijs Rademakers & Andy Verberne)
All were of interest and the quality of the speakers was high as one has come to expect from the NLJUG conferences.

The main attraction for me was of course our session that was given solely by Arnoud Wolfard. As you can see from the various photos, it was a large crowd that interacted throughout the entire session with questions and comments. It was very clear that jBPM is active and of great interest to the Dutch Java Users and Arnoud Wolfard discussed the lessons learned by the SNS Bank in dealing with task interaction interfaces in a structured manner for their JBoss jBPM business process implementations. He even managed to finish up the session with Q&A running it right down to the last available minute, well done Arnoud!

As a really nice bonus I participated in the Tweet wall (post a tweet via post-its on a board) contest and won a signed copy of 'Agile SW Development' which you just can't beat for finishing up your visit to JFall 2010 with a positive note. Thanks to all the organizers for another great conference and I will be back next year!

Friday, November 5, 2010

Upgrade Fedora 13 to Fedora 14 howto

A few simple steps to upgrade:

# As root you would like to have a clean start to the
# upgrade, so get an update out of the way.
#
$ yum update rpm

$ yum -y update

$ yum clean all

# Should a new kernel install/update require it,
# reboot before continuing with the rest.
#
# Then install the preupgrade package.
#
$ yum install preupgrade

# For console upgrade, use:
#
$ preupgrade-cli "Fedora 14 (Laughlin)"

# If you like gui's to upgrade, use this.
#
$ preupgrade

This is exactly the same process as I previously described with Fedora 12 to Fedora 13 upgrade.

=============== Update ===================
There was a hitch on my laptop, due to my boot partition is smaller than the Fedora 14 required 250 MB. I have been upgrading since Fedora 10 so have a 200 MB boot partition. First ensure you are using a cabled connection (no wifi) and then try this:

# run preupgrade as normal, when it complains about not enough space just 
# continue, it will install the stage2 installer after the first reboot.
# When it asks to reboot, do that. It should continue to finish the installation
# when it restarts.

Tuesday, October 26, 2010

jBPM migration strategies (part II) - process definition layer

It has been awhile since this series of articles on jBPM migration strategies was launced with an Introduction. The reason for this was that there was a flurry of activity that included the jBPM5 Request For Comments, jBPM5 Roadmap, and finally the initial jBPM5 Alpha code release. It did not feel right to base these thoughts and ideas on assumptions or trying to guess what would be the final output of these activities. Now that jBPM5 has a real target, real direction and some code to base a migration strategy on, it is time to complete the rest of the articles on jBPM migration strategies.

Background
While the Introduction article laid out several areas of interest that require attention when we position and existing jBPM project for future migration, the process initialization layer, the process definition layer, the process implementation layer, the process interaction layer, and general best practices.
    This article will cover some suggestions to help you position jBPM 3.2.x projects for migration to the coming next generation of jBPM, one that moves you to BPMN. It will also detail the status of jBPM and what will be the focus of a migration project will be explained, validating why we will be focusing on only jBPM 3.2.x initially.

    Status of jBPM
    When we are looking at the products produced by Red Hat that support enterprises we are talking about jBPM 3.2.x. This will be the initial focus of our migration efforts. It is what is supported for the coming years and where most implementations are based on that I have encountered.
    The newest member of the jBPM family is jBPM 5 which will provide tooling to model processes in BPMN. The current jBPM 3.2.x models the process definition layer in jPDL 3 which we will need to map to BPMN. This tooling we will provide for you in the jBPM Migration Tool project. In this project you will find the outline of our plans which eventually will include more than just the process definition layer.

    Processes designed for migration
    When we are looking to migrate a process definition from jPDL 3 to BPMN it would be a good idea to think about how you are defining your processes. The tooling to be provided will map nodes, states, and sub-process node types, but you need to be aware that custom node extensions will not be taken into account. A good strategy would be to ensure that your process steps are designed to do one thing only. A single handler to be pointed to from your nodes and states for example. The more exotic you get with your process designs, the larger the chance that a straight forward conversion will not be possible. Try to keep your process work in the actual nodes and not in the transitions. The more visible it all is in your process definitions (images), the better.

    Keep in mind, these are just guidelines and suggestions. All test cases you can provide to the jBPM migration tool project will be welcome and applied to the tooling to meet your needs.

    jBPM migration tool project
    Maurice de Chateau and myself have started working on the migration tooling we think is needed to take us into the jBPM future. We see a need for two separate parts to achieve our goals:
    • process definition migration
    • mapping API functionality (matrix)
    The first item will be our initial development goal. We are currently evaluating a few possible solutions, but we plan to provide tooling to migrate jPDL 3 to BPMN through the following steps:
    1. take input jPDL 3 file, validate against jPDL XSD
    2. transform jPDL 3 to BPMN
    3. take BPMN file, validate against BPMN XSD
    4. test it against jBPM5 process engine (can is parse this?)
    This tooling will be command line interface (CLI) only, to easily allow for integration into the JBossTools project. We envision developers being able to right click in their IDE and 'convert.' The tooling to migrate jPDL 4 to BPMN will be looked at later or left to the jBPM community as an exercise based on our initial solution.

    We would also like to provide mapping of jBPM 3.2.x API methods to jBPM 5 API methods, but this is something that will need to stabilize in the coming releases. Think along the lines of scanning a code base or project, provide suggested mappings and provide a list of non-mappable calls or calls needing human intervention. More on this in the process implementation layer article to be covered in the near future.

    The tooling will be implemented based on use cases, so you should be able to follow along as the tool evolves. We hope to have you out there supply use cases that won't work for you so we can improve the tooling for all. Let us know if you want to help!

    Wednesday, October 20, 2010

    HowTo deploy jBPM processes in JBoss Developer Studio 4 (sneak preview)

    I was playing with the new 4.0.0.M2 early release of JBoss Developer Studio and noticed something that really confused me for a few days. When opening my process definitions in the jBPM perspective I was used to having a Deployment tab where I could not only select the files from the project to be included in the archive, but also test my server connection and deploy via a button. Now this was gone (see image)!

    Well, after searching the JBoss Jira a bit I could not find anything on the JBoss Developer Studio reporting this bug so I filed one. Silly me, it was already mentioned on the IDE project. I also was give a link to the JBoss Tools what's new page that shows they have come up with something new. There is now a jBPM Menu that appears when you are dealing with a process definition file (I circled the menu in red in image at bottom of this post).

    Amazing how you can stare at a screen and just not see the obvious? Happy jBPM'in! ;-)

    Thursday, October 14, 2010

    JUDCon 2010 impression

    I drove to Berlin, Germany from my home country of Holland, which looked on paper to be about 6 hours drive. Reality was a cold shower when I ran into constant construction and it took over 7 hours (each way). This was the only downside for me on the entire JUDCon experience!

    Below you will find a small selection of picture to give you an impression of JUDCon and the two days. Some of it is not directly conference material, but it helps round out the feel of hanging out in Berlin for two days.


    The location was fantastic, the food great and getting to hang out with all of the JBoss core developer rock stars was again worth the trip. Day one was two tracks that did not pertain to my area of direct interest so I spent most of this day with the jBPM team discussion our presentations for day two and previewing/reviewing the recent jBPM5 first code drop. I did not stay for the evening hack sessions as I had other appointments in town and wanted to see a bit of the city.

    Day two was more my cup of tea with a BPM track and my session kicking off in the morning right behind the core team jBPM5 opening session. The rest of the day was spent following the various BPM session with some really interesting discussions in between as people approached me with jBPM migration tool questions/suggestions.

    I look forward to the next JUDCon and hope I am allowed to attend again. Maybe next year we can demo the jBPM migration tool project in its entirety? See you there!

    JBoss World 2011: jBPM migration tooling - no one is left behind

    The JBoss World 2011 event has opened with the call for papers. From our jBPM migration tool project we have submitted a talk:

    jBPM migration tooling - no one is left behind
     This session will outline the status of our jBPM migration tooling project (as found in the projects repository jBPM SVN). We will take a look at the background of jBPM 3 process projects and how we plan to help you migrate to jBPM5.

    We will start by providing you with a plan for positioning your existing Enterprise jBPM projects for the eventual move towards jBPM5. This will cover the architectural layers involved, a look at the tooling being created for this and steps you can take to ensure a smooth transition moving into your jBPM future.

    Finally we will demo the existing tooling on an actual existing enterprise jBPM project. This will provide you with a real life scenario to take home as an example for your own BPM projects.

    The presenters have over 6 years of combined enterprise jBPM experience and have completed award winning BPM projects in the Netherlands. They initiated the jBPM migration tooling project to assist the community with their migration concerns.

    Monday, October 11, 2010

    Open Source BPM - Survival in the Financial Crisis

    The previously scheduled talk did not happen so it has been rescheduled for this week Wednesday, you can see the abstract and register at the NGI site.

    This talk is based on the award winning chapter from BPM Excellence in Practice 2010. I will post the slides here after the talk.

    Friday, October 8, 2010

    JUDCon 2010 Berlin - Get your BPM ducks in a row slides

    Presented today this talk at JUDCon, got great response, enjoy the presentation:

    Wednesday, September 22, 2010

    JUDCon 2010 Berlin: Get your BPM ducks in a row - preparing for migration to jBPM5 (Accepted)

    As previously posted, I submitted a session to JUDCon 2010 in Berlin and it has been accepted. I will be following Kris and Koen with their talk about the future of jBPM5:

    Kris Verlaenen & Koen Aers - jBPM5: Are your business processes ready for the future?

    Business Process Management (BPM) technology offers you to possibility to better manage and streamline your business processes. jBPM5 continues its vision in this area by offering an open-source, lightweight, embeddable process engine for executing business processes. Combined with the necessary services and tooling, this allows not only developers but also business users to manage your processes more efficiently throughout their entire life cycle. A lot is happening in the BPM area as well, with the introduction of the BPMN 2.0 standard, the increasing interest in more dynamic and adaptive processes, integration with business rules and event processing, etc. This presentation will show you how jBPM5 tackles these challenges and give you an overview of the most important features.

    I will have to adjust my story as I no longer need to talk too much about the jBPM future (they got that covered), but will focus most of my talk on preparing your jBPM processes for future migration to jBPM5.

    Eric D. Schabell - Get your BPM ducks in a row - preparing for migration to jBPM5

    With the recent shift to unify the projects DroolsFlow and jBPM4.x into jBPM5, we are all wondering what the impact could be to our existing BPM projects. What is new in jBPM5? What does one need to be aware of? What does one need to prepare in advance for a move to this new platform? All these questions and more will be discussed in this session.

    First, we will take a look at what has happened historically within jBPM to get us where we are now, with jBPM3.x and jBPM4.x versions. We will discuss DroolsFlow in relation to the path towards jBPM5. Next we will take a look at the Request for Comments (RFC) that was put into the community and resulting architecture for the future of BPM within JBoss Middleware. This leads to a closer look at the resulting jBPM5 road map and how this will relate to the JBoss Enterprise BPM products moving towards the future.

    Finally we will provide a plan for positioning your existing Enterprise jBPM projects for the eventual move towards jBPM5. This will cover the architectural layers involved, a look at the tooling being created for this and steps you can take to ensure a smooth transition moving into your jBPM future.


    I am really excited to be a part of the first ever EMEA version of JUDCon, see you there?

    Tuesday, September 21, 2010

    Using Ant task to deploy jBPM process to running JBoss server

    This question pops up quite a bit in development shops that don't happen to be using Maven (they are still out there) for whatever reason. They are looking to deploy their JBoss jBPM process definitions straight from their projects into a running JBoss server for testing.


    Note that this is facilitated also in the tooling provided by JBoss. In your project you can use the tab marked 'Deployment' when viewing your process definition to directly deploy it into the server (see included image). This might be too many point and clicks for some of you so the Ant task will give you an alternative.

    There is a task definition to deploy your process to the server, then using this you can deploy an set of process definitions by pointing to a directory or you can specify the process files directly. See below for first the directory deployment example and then the specific file deployment example (from the JBoss examples orchestration 4 project):   

    Deploy process definitions from a directory
    
      Deploy the process definition
        
          
          
            
          
          

    Deploy process definitions from individual files
    
      Deploy the process definition
        
          
          
    
    Thee is a bit of complexity here with regards to the jBPM console login and password being passed via variables, but hopefully the XML is clear enough. Finally, don't forget when deploying processed one file at a time, that you first deploy all sub-processes before a process archive that needs them! ;-)
    A final note, this was made available from jBPM v3.2.2 onwards.

    Saturday, September 18, 2010

    Syncing iPod Touch with iTunes broken after upgrade to Snow Leppard (osX 10.6)

    I upgraded my macbook osX from 10.4.x to 10.6.x this last week, it was just time. I also came into a nice iPod Touch, so expected to sync it just fine with my iTunes as I had been doing with a smaller iPod Nano I have.


    After the upgrade though, I plugged in the iPod Touch and nothing happens. I did the remove and install iTunes (including upgrading to version 10) as the support suggests online, but to no avail. It appears I needed to remove much more of my setting that were scattered around my system from the original iPod Nano. Here is all I had to do:

    1. Quit iTunes.
    2. In the Finder, choose Go > Applications.
    3. Locate iTunes and then drag it to the Trash.
    4. Choose Go > Utilities. If Utilities is not available under Go, then choose Go > Go to Folder, type in /Applications/Utilities/, and then click Go.
    5. Open Activity Monitor.
    6. In the process list locate and select iTunes Helper. Click Quit Process. When asked if you really want to quit the process, click Quit. 
    7. Quit Activity Monitor.
    8. Open System Preferences (choose Apple > System Preferences).
    9. Choose View > Accounts and then click Login Items.
    10. Look for the iTunesHelper entry and select it, then click the "-" button to remove it from the list.
    11.  
    12. Quit System Preferences.
    13. From the Finder, choose Go > Go to Folder
    14. Enter (without quotes) "/System/Library/Extensions" and then click Go.
    15. Locate the file "AppleMobileDevice.kext" and drag it to the Trash.
    16. Choose Go > Go to Folder.
    17. Enter (without quotes) "/Library/Receipts/" and then click Go.
    18. Locate the file "AppleMobileDeviceSupport.pkg" and drag it to the trash.  Note: This file may not be present in Mac OS X v10.6 or later; skip to the next step if this is the case.
    19. Remove any other file ending with ".pkg" that has iTunes in the title (such as "iTunesX.pkg").
    20. Restart your Mac.
    21. Empty the Trash. This should fully remove iTunes.
    Now you have done the basics, but there was more needed for the old iPod Nano settings:
    1. In the Finder, choose Go > Go to Folder and type in ~/Library/ and click Go.
    2. Locate the iTunes folder and then drag it to the Trash.
    3. Choose Go > Go to Folder and type in ~/Library/Preferences/ and click Go.
    4. Locate the preference files that have names beginning with com.apple.iTunes and move them to the Trash.
      File Names should be:
      • com.apple.iTunes.eq.plist
      • com.apple.iTunes.plist
      • com.apple.iTunesHelper.plist
    5. Choose Go > Go to Folder and type in /Library and click Go.
    6. Locate the iTunes folder, and then move it to the Trash.
    7. Choose Go > Go to Folder and type in ~/Library/Preferences/ByHost/ and click Go.
    8. Locate the preference files that have names beginning with com.apple.iTunes and move them to the Trash.
    9. Empty the Trash. This should fully remove the files and folders associated with iTunes.
    Now go get the newest iTunes and install it. This took care of all my problems, just plugged in the iPod Touch and it sorted itself out just fine!

    Thursday, September 16, 2010

    Scanning multiple documents/images into single PDF with Linux

    This is just a great tip if you need to scan in multiple pages and create a single PDF file while using a single page scanning (flat bed scanner) with you brand of Linux.

    Just fire up the scanner (assume it is all configured and works fine with for example SANE) and then open an Open Office Writer document. Then select Insert->Picture->Scan->{Select Source|Request} to scan the single page into your .odt document.

    When all finished adding in the pages, you can then export the document as a PDF via File menu!

    jBPM 3.x does not work in JBoss cluster using transactions?

    I often hear this from different sources in my JBoss travels, that jBPM 3.x does not play well in a cluster. With this post I hope to document the solution a bit better for those of you out there searching for the answers to your clustering jBPM problems.

    First off, have no fear! Your problems are self induced. This is most often caused by deploying jBPM within a cluster using the provided JMS implementation (messaging queues configuration).  In the on-line documentation you will find the following is stated in section 10.2:

    "jBPM can be configured to use a JMS provider or its built-in asynchronous messaging system. The built-in messaging system is quite limited in functionality, but allows this feature to be supported on
    environments where JMS is unavailable."


    If you are trying to use async messages with the JobExecutor and then it replicates this queue without a proper JMS implementation. You then get jobs starting all over your cluster. I suggest trying a real JMS messaging implementation like JBoss Messaging as provided in the JBoss Enterprise Application Platform.

    Just read a bit further in the documentation and you will find how and where to configure this properly:

    "The graph execution mechanism uses the interfaces MessageServiceFactory and MessageService to send messages. This is to make the asynchronous messaging service configurable (also in jbpm.cfg.xml)."

    I hope this helps out in your jBPM projects

    Thursday, September 9, 2010

    How Google approaches a Red Hat employee (a missed opportunity)

    I was approached by an internal Google recruiter (for the 4th time now in the last 5 years and for the 2nd time by this same recruiter). I have continually said no to them as it always meant a move away from my home, with small children I did not see the benefits in doing that at the time. I have never truly interviewed with them beyond the initial email and one inquiry that was via the phone. Since 2009 I have been working for one of the best companies I have ever been involved with and have no reason really to want to move on, but there it was on July 31:
    Hi Eric,

    We exchanged emails back in March about roles at Google. I am with the in-house staffing team. I am just following up with you to see if you are still happy where you are. 
    If anything changes, please let me know. I would be interested in speaking with you.

    Have a nice weekend!
    Regards,
    XXXXXXXXXXXX
    GOOGLE
    xxx-xxx-xxxx Google Voice
    xxxxxxxx@google.com

    I got to thinking that if there is someone that just keeps being so persistent that they must really be serious about this. Maybe time for me to listen to what they have to say? My reply on Aug 4:

    Maybe it is time I listened to your offer? My biggest question is what would you have in mind for me? I imagine you have looked at my CV / experience online and have some ideas? I would like to hear them first.

    That got me a call and a discussion on what Google has to offer and what Engineers are to Google. It boiled down to filling in a questionnaire on my preferences and  two interviews and then coming on-site somewhere where they thought I might fit in. I assumed it was for a serious position, but turns out that Google has but one way to interview, treating everyone like they just came out of school. Case in point, the questionnaire was not too unusual:

    Hi Eric,

    Thanks for your reply.  We are excited that you are interested in our career opportunities. I thought your profile was a good match for Google because we look for Java and Linux experts who are involved in the open source community and like to mentor others. We also look for people who went to good schools and have experience working for solid companies like XXXXXXX.

    Please let me know if you have 15 minutes to talk between 10am and 4pm any week day this week or next. I have included some information about our hiring process and a questionnaire. If you are interested in exploring Google, please reply with your resume when you have a chance

    Because technologies, our business needs, and our employee's interests are always changing, rather than targeting people who are purely specialists, we want to hire engineers who have the versatility to move between new and interesting projects throughout their career here.

    While we don't initially target candidates for specific projects, we do want to ask them about their project preferences and their skills.  Our goal is to have a win/win situation where we can identify a project that both fits Google's needs, and is also of interest to the Noogler -- because they will be the most productive in these circumstances. 
    So having said that, we would love to have you interview with us if you are interested.  If you do consider interviewing with us, please email a copy of your latest resume and fill out the following information and I will set you up for a phone interview with an engineer right away provided your skills and location preferences match our open positions.
    To better understand your background, please share the following about yourself...(short answers are fine)

    1) Languages:
    Please select the language(s) with which you are MOST proficient (no more than 3 please) in order of preference.

    • C
    • C++
    • Assembly x86
    • C#
    • GWT
    • HTML
    • HTML5
    • Java
    • JavaScript
    • Objective-C
    • Perl
    • PHP
    • Python
    • Shell
    • SQL
    • None of the above

    2) Technical Skills:
    Please identify your TOP areas of development expertise (no more than 3-5 please) in order of preference. It is to your advantage to only select your strongest areas, and to avoid the urge to list "everything".  Also indicate if you would like to continue working in this area of expertise.

    • Advanced Algorithms
    • Audio/video
    • Billing/payment testing
    • Compilers and software tools (linkers, debuggers, IDEs,   etc.)
    • Computer Vision
    • Concurrency, multi-threading, synchronization
    • Database internals
    • Distributed systems
    • Embedded software and real-time systems
    • Front End
    • Graphics and imaging
    • Information retrieval and data mining
    • Internationalization
    • Load and performance testing
    • Mac and iPhone development
    • Machine learning and AI
    • Natural language processing
    • Networking (TCP/IP and OSI stack)
    • Object-oriented analysis and design
    • Operating systems
    • Production Systems
    • QA
    • Security and cryptography
    • Test automation
    • Unix/Linux Internals
    • UI design and implementation (specify if you do this more on the design art side, or the software side)
    • Web applications and multi-tiered systems
    • Windows development
    • Wireless applications


    -Give a very brief description of what you currently work on and whether or not it is front end of back end technologies?
    -What kind of position are you looking for? Role interests?
    -Are there any particular projects or areas that you would enjoy working on while at Google?
    -Are you open to working outside your expertise area?
    -What percentage of the time are you coding and in what language?
    -Have you ever interviewed with Google before? When?
    -Do you know any professional acquaintances at Google? Who?
    -Do you have any time constraints (offers expected, vacations planned, upcoming releases, etc.)?
    -Are you interviewing with other companies? (If yes, at what step of the process are you?)
    -What motivated your job search at this time?
    -We consider our general engineering candidates for both development and Test Engineering or Site Reliability Engineering (keeping google.com up and running 24/7). Are you open to that?
    -Are you eligible to work in the U.S.?
    -What are your location preferences? Will you be willing to relocate?
    -Confirm current location where you are living.

    Additionally, please let me know the following:

    1-Five to six time ranges and dates within the next 3 weeks when you would be available for a technical phone interview. (between the hours of 10am and 4pm California time, Mon-Fri)

    2-The best number for the engineer to reach you.

    I look forward to hearing from you.

    Regards,

    XXXXXXXXX
    GOOGLE
    xxx-xxx-xxxx Google Voice
    xxxxxxxxx@google.com

    The interviews where another matter. I feel like they just want you all to 'dance' and that it used to be the way to blink out and be something special in the job market. Everyone wants to work at Google right? Not really when I have been working long enough to have a career, work hard to cultivate my working image, publishing, teaching, mentoring and open source activities.
    I thought I would see what the first interview was like and take it from there. This is for me when a company lets you see how their internal processes work, what the P&O office is like, basically how on the ball everyone is. The first one went like this:
    Call from California, from 1900 - 1941 hrs local time with the following 4 questions asked by a Google engineer originally from Israel on Aug 16:
    1. Tell me about one thing you have engineered / done?
    2. What were the engineering challenges?
    3. Puzzle question: showed me an image on a Google Docs document that included line segments, needed to write a function (try coding Java without hitting CMD+Spacebar, my reflex move to fill out code snippets, had the interviewer laughing at me!) to determine longest line formed by segments that aligned.
    4. Explain to me what happens when you request an image in your browser how it gets there (the entire process)?
     At the end we chatted a bit where I tried to find out what they wanted me for and why. The interviewer was pretty evasive and it should have been a hint as to what was happening. I was getting a general SW engineering interview process like I had just left school.
    Unaware, I get a reply from the recruiter that all went well and that foreign candidates have to interview twice, so on Aug 25 the second interview. This one was a bit different, lots of talking from the interviewer about how his Google experience goes and how it all is structured. It was a nice start but then it took a turn towards more puzzles. He only wanted to ask one question, was almost apologetic and stated that they might need to rethink the process for more experienced people. Anyway, the quiz question:
    1. Given input of a number N, write a function (verbally on the phone) to return an array that splits N into combinations of 1's and 2's. 
    I was not too thrilled about this after working all day. I stated this and he agreed that he would talk to the recruiter and see what the deal is. He was interviewing me for a basic SW Engineer post and they just seemed to be like those evening cold callers trying to sell something. They have a script in front of them and that is how it is going to go, no matter what. I thanked him and broke off the interview. Thanks for the coffee...

    On Sep 3 an email from the recruiter:

    Eric,

    Thanks for interviewing with XXXX. There seemed to be some confusion. We had discussed a Software Developer role on the phone and XXXXX indicated you were not happy interviewing for that position. I was not clear on this. Our Architects are integrated in to our development groups and they do a lot of coding. Did you have something else in mind?

    Regards,

    XXXXXXXXXXXX
    GOOGLE
    xxx-xxx-xxxx Google Voice
    xxxxxxx@google.com

    My reply was as honest has I could be, on Sep 6:

    Not really confusion on your part, but more puzzlement on my part that I would have to go through several of these interviews that feel more suited for someone who just left school (puzzles, etc). I am not up for that kind of interview process I guess. Feels a bit demeaning. I feel that I have reached a point in my career that I don't need to 'dance' for anyone. This is what it has now started to feel like.

    If you have some position in mind for me, put me in touch with those in Google who like what they see in me. If not, I am declining the existing process.

    The reply rather missed the essence (note the part that I 'showed interest in Google' while I seem to remember being approached by Google. On Sep 7:
     
    I'm sorry that you did not like the interview process. The interviews are very CS fundamentals based and they do require some brushing up for most candidates. 

    Thank you for interviewing and for your interest in Google.  We carefully reviewed your background and experience, and though we do not have a position that is a strong match with your qualifications at this time, we will be keeping your resume active in our system.  We will continue to use our database to match your profile with new opportunities and will reach out to you if we find an opening for which you may be qualified.

    Thanks again for your interest in Google's careers and unique culture; we hope you will remain enthusiastic about our company.

    I don't think they are interested in me so much, more like a developer fresh from school would be the good fit. Maybe too many Google employees are leaving to join Facebook?

    It seems to me to prove that they only have one way to interview. Either you dance, or you are not invited to the ball. It's a shame really...

    Thursday, September 2, 2010

    Financial Crisis Front Lines - SNS Bank in BPM Excellence in Practice 2010

    "Congratulations again on your important chapter being published in the BPM Excellence in Practice 2010: Successful Process Implementation. This note is to let you know that we approved the book’s Proof this morning and expect to receive our bulk books from the printers in about three weeks."

    I got this in an email today which signals the final publishing of our winning chapter of our jBPM experiences at SNS Bank. They are offering a discount if you pre-order:

    Through a special arrangement with the publisher, we offer our visitors 30% pre-launch discount on BPM Excellence in Practice 2010. Please read our award-winning case study found in Section 1. 

    1. Click on ORDER FORM at http://store.futstrat.com/servlet/Detail?no=83
    2. Add the book to your shopping cart, update the quantity of books and click “checkout.”
    3. In the Promo Code Box on checkout put EIP-30 and confirm the order.Your order will be confirmed and your books will ship as soon as we receive them.
    I hope you enjoy the chapter as much as we enjoyed implementing and reporting it!

    Tuesday, August 31, 2010

    JFall 2010: In2Flow – solving your BPM human task problems!

    Together with another jBPM enthusiast, we submitted this session to the JFall 2010 call for papers:

    Abstract
     SNS Bank is a leading provider of on-line internet banking products within the Dutch financial market. The last three years she has been converting her activities from a traditional branch offices to an on-line experience. This transition has involved extensive business process implementations to put both internal service processes, external service processes as well as product selling channels online.

    An important part of their processes has always been connected to human tasks, as the financial world often requires human validation / intervention at crucial points in the various processes. To facilitate BPM human tasks SNS Bank has implemented various jBPM GUI solutions. These solutions have led to some important lessons when interacting with jBPM that we will present.


    These lessons have led to the In2Flow application provides this session with a great example of how to interact in your jBPM processes using human tasks. This implementation will be discussed and includes SEAM, JBoss Cache, Rich Faces, JBoss WS and all of the best practices to modularize your human task development in future projects.


    The lead developer of the In2Flow application will detail the architecture and cover the most important points that you need to be aware of to develop a scalable, flexible, extensible jBPM human task solution for your next jBPM project. This will include an overview of the management information and empirical data that is collected on the human tasks processed within In2Flow, based on four months in a production environment.

    Monday, August 30, 2010

    First ever EMEA version of JUDCON 2010 in Berlin: Get your BPM ducks in a row - preparing for migration to jBPM5

    I would really like to attend this first every EMEA version of the JBoss Developers Conference (JUDCON 2010) in Berlin on 7-8 October. Therefore, I have thrown my best pitch at the Call for Papers and we will see what happens:

    (Workflow and BPM track)

    Title:
    Get your BPM ducks in a row - preparing for migration to jBPM5
     Abstract:
    With the recent shift to unify the projects  DroolsFlow and jBPM4.x into jBPM5, we are all wondering what the impact could be to our existing BPM projects. What is new in jBPM5? What does  one need to be aware of? What does one need to prepare in advance for a  move to this new platform? All these questions and more will be  discussed in this session.

    First, we will take a look at what has happened historically within jBPM  to get us where we are now, with jBPM3.x and jBPM4.x versions. We will  discuss DroolsFlow in relation to the path towards jBPM5. Next we will  take a look at the Request for Comments (RFC) that was put into the  community and resulting architecture for the future of BPM within JBoss  Middleware. This leads to a closer look at the resulting jBPM5 road map  and how this will relate to the JBoss Enterprise BPM products moving  towards the future.

    Finally we will provide a plan for positioning your existing Enterprise  jBPM projects for the eventual move towards jBPM5. This will cover the  architectural layers involved, a look at the tooling being created for  this and steps you can take to ensure a smooth transition moving into  your jBPM future.

    Sunday, August 29, 2010

    Fedora 13 - udevd SYSFS{} and BUS warnings on boot (fix included)

    During boot of my Fedora 13 I only happened to notice these warnings when I hit the ESC key during boot to remove the graphical front (you can find them in the /var/log/boot.log):
    Starting udev: udevd[525]: BUS= will be removed in a future udev version, please use SUBSYSTEM= to match the event device, or SUBSYSTEMS= to match a parent device, in /etc/udev/rules.d/48-UMTS.rules:1
    udevd[525]: SYSFS{}= will be removed in a future udev version, please use ATTR{}= to match the event device, or ATTRS{}= to match a parent device, in /etc/udev/rules.d/48-UMTS.rules:1
    udevd[525]: BUS= will be removed in a future udev version, please use SUBSYSTEM= to match the event device, or SUBSYSTEMS= to match a parent device, in /etc/udev/rules.d/48-UMTS.rules:2
    udevd[525]: SYSFS{}= will be removed in a future udev version, please use ATTR{}= to match the event device, or ATTRS{}= to match a parent device, in /etc/udev/rules.d/48-UMTS.rules:2
    udevd[525]: NAME="%k" is superfluous and breaks kernel supplied names, please remove it from /etc/udev/rules.d/60-kqemu.rules:1
    udevd[525]: BUS= will be removed in a future udev version, please use SUBSYSTEM= to match the event device, or SUBSYSTEMS= to match a parent device, in /etc/udev/rules.d/85-pcscd_egate.rules:3
    udevd[525]: SYSFS{}= will be removed in a future udev version, please use ATTR{}= to match the event device, or ATTRS{}= to match a parent device, in /etc/udev/rules.d/85-pcscd_egate.rules:3
    udevd[525]: BUS= will be removed in a future udev version, please use SUBSYSTEM= to match the event device, or SUBSYSTEMS= to match a parent device, in /etc/udev/rules.d/85-pcscd_egate.rules:5
    udevd[525]: SYSFS{}= will be removed in a future udev version, please use ATTR{}= to match the event device, or ATTRS{}= to match a parent device, in /etc/udev/rules.d/99-huawei-e220.rules:2
    udevd[525]: SYSFS{}= will be removed in a future udev version, please use ATTR{}= to match the event device, or ATTRS{}= to match a parent device, in /etc/udev/rules.d/99-novatel-ovation.rules:2
    udevd[525]: SYSFS{}= will be removed in a future udev version, please use ATTR{}= to match the event device, or ATTRS{}= to match a parent device, in /etc/udev/rules.d/99-option-icon.rules:2
    
    These are just warnings but if you want to clean them up just edit the offending files and replace the text as described (I used ATTRS{} and SUBSYSTEMS{} for all my changes) in the warning messages. It is not often that the solutions are provided right in the logs, eh! ;-)

    Wednesday, August 25, 2010

    JFall 2010: Real life jBPM - automating your travel experience, the open source way!

    Together with a fellow jBPM enthusiast, submitted the following paper to the JFall 2010 call for papers:

    Abstract

    The Schiphol Group has developed a product called Service Dropoff for a large Dutch airline which automates the baggage check-in process. By removing the middle man, you are able to check-in for your vacation trip without having to wait in the long lines we all find at airport check-in desks.


    This session will start with the background story on how the Service Dropoff project came into being. This will shed light onto the very first automated baggage check-in system in the entire world and how this came to be.


    We  will then take a look at the Service Dropoff project as it was first developed and deployed in 2004. The results of this will be shown in the market via a video made at the time for marketing purposes which runs through actual traveller usage of the automated baggage check-in machine. This project provided many insights into the impact that various solution choices had and we will discuss these as they translate to a future wish list of improvements.


    Next we will highlight the Service Dropoff version 2.0 project, which is currently going into production at Schiphol Airport. The projects goals will be outlined, along with a closer look at the technical details of the implementation. This will provide various insights into what was improved and why. The new Service Dropoff project addresses the best practices and issues we have encountered based on actual usage by travellers going through Schiphol Airport.


    After this session, you will be ready for your first automated vacation where you can test drive our jBPM solution while checking in for your next flight!

    Follow up article on Oracle and Open Solaris in Computable.nl

    I was asked to provide comments on the following (Dutch only I am afraid) for a follow up article:
    http://www.computable.nl/artikel/ict_topics/besturingssystemen/3470324/1277048/oracle-stopt-met-open-solaris.html
    I submitted my thoughts on the subject and it was pushed out in the following article:
    http://www.computable.nl/artikel/ict_topics/open_source/3475270/1277105/stopzetten-opensolaris-kost-oracle-klanten.html


    Update 31 Aug 2010:



    A second article has appeared with more details from my comments included:

    http://www.computable.nl/artikel/ict_topics/open_source/3475167/1277105/oracle-laat-sun-doodbloeden.html 

    Friday, July 30, 2010

    JBoss BRMS Decision Table Double Quotes Errors (Open Office)

    When using JBoss BRMS to manage your rules you might consider using Decision Tables. It is quite common to generate your decision tables in XLS files (spreadsheets) and this will be default on most Linux machines result in an Open Office spreadsheet. When you put a CONDITION field with for example:

    setValue("$param");
    

    You would expect the quotes to be converted properly, but Open Office morphs these and you will see the following when trying to create add you decision table to your KnowledgeBuilder:

    KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
    DecisionTableConfiguration config = KnowledgeBuilderFactory.newDecisionTableConfiguration();
    config.setInputType(DecisionTableInputType.XLS);
    kbuilder.add(ResourceFactory.newClassPathResource("MyDemoDecisionTable.xls"), ResourceType.DTABLE, config);
    
    // Exception you can expect is like this:
    //
    [8,29]: [ERR 101] Line 18:11 no viable alternative at input ''
    

    To avoid this just cut&paste your quotes from the command line for example I type this in a console and then just select the line to paste into my Open Office field:
    $ "$param"
    

    Hope it saves you some headaches and time...

    Wednesday, July 21, 2010

    JFall 2010 - What does your jBPM future hold?

    I like the NLJUG sessions and could not pass when the call for papers was made and I have submitted the following paper to JFall 2010:

    Abstract
     With the recent shift to unify the projects DroolsFlow and jBPM4.x into jBPM5, we are all wondering what the impact could be to our existing BPM projects. What is new in jBPM5? What does one need to be aware of? What does one need to prepare in advance for a move to this new platform? All these questions and more will be discussed in this session.

    First, we will take a look at what has happened historically within jBPM to get us where we are now, with jBPM3.x and jBPM4.x versions. We will discuss DroolsFlow in relation to the path towards jBPM5. Next we will take a look at the Request for Comments (RFC) that was put into the community and resulting architecture for the future of BPM within JBoss Middleware. This leads to a closer look at the resulting jBPM5 road map and how this will relate to the JBoss Enterprise BPM products moving towards the future.

    Finally we will provide a plan for positioning your existing Enterprise jBPM projects for the eventual move towards jBPM5. This will cover the architectural layers involved, a look at the tooling being created for this and steps you can take to ensure a smooth transition moving into your jBPM future.


    See you there on 3 November 2010?

    Friday, June 25, 2010

    Nokia e71 hard reset and lock code

    Finally got tired of my Nokia e71 rebooting 3x per day on me so I hard reset it and needed to have the original factory lock code to get back in. Here are the steps needed to do this:

    # hard reset done from the main home screen.
    #
    *#7370#
    
    # the lock code for getting back into it.
    #
    12345
    

    This will only reset the internal part of your e71, an external memory card will remain the same so you can better move you internal phone data to the memory card or back it up to another machine.

    Wednesday, June 23, 2010

    Enterprise jBPM v3.2.5-SP5 running on JBoss EAP v5 howto

    This article will provide you with the pointers and tips needed to extract the jBPM framework from the latest JBoss SOA Platform product and get it running on the latest JBoss EAP v5 product. Why would you want to do this? Well for one thing, imagine you want to slim down your JBoss SOA Platform to remove the unused services (such as Rules or the ESB components) and just run the included JBoss EAP, then this is the guide for you.

    # This guide assumes you have installed JBoss SOA-P v5 and JBoss EAP v5.
    # You will want to copy the jBPM component to your JBoss EAP installation
    # as follows for a Linux machine (unix commands). 
    # 
    $ cp -ruv $JBOSS_SOA_HOME/jbpm-jpdl/deploy/server/default/deploy/jbpm \
    $JBOSS_EAP_HOME/jboss-as/server/default/deploy
    
    # Now we need to edit some of the configuration details to sort out the
    # missing queues and security issues for logging into jBPM console.
    #
    # First we need to replace the existing queue definitions in 
    # jboss-as/server/default/deploy/jbpm/jbpm-mq-service.xml with:
    #
    
     
        jboss.messaging:service=ServerPeer
        jboss.messaging:service=PostOffice
      
    
     
        jboss.messaging:service=ServerPeer
        jboss.messaging:service=PostOffice
      
    
    # now we setup $JBOSS_EAP_HOME/jboss-as/server/default/conf/login-config.xml
    #
     
          
             
                java:/JbpmDS
                
                
                 SELECT PASSWORD_ FROM JBPM_ID_USER WHERE NAME_=?
    
                
                
                 SELECT g.NAME_ ,'Roles'
                 FROM JBPM_ID_USER u,
                      JBPM_ID_MEMBERSHIP m,
                      JBPM_ID_GROUP g
                 WHERE g.TYPE_='security-role'
                   AND m.GROUP_ = g.ID_
                   AND m.USER_ = u.ID_
                   AND u.NAME_=?
    
                
             
          
       
    
    # but now the hsqldb is not being created properly, so add this too by copying
    # $JBOSS_SOA_HOME/jbpm-jpdl/deploy/docs/examples/jbpm/hibernate.cfg.hsqldb.xml
    # to 
    # $JBOSS_HOME/jboss-as/server/default/deploy/jbpm/jbpm-service.sar/hibernate.cfg.xml
    # and modify changing the following:
    #
    java:JbpmDS
    
    # and uncomment:
    #
    create
    
    # to adjust the jbpm-console authorization to use the JBoss JMX auths adjust
    # the file jbpm/jsf-console.war/WEB-INF/jboss-web.xml
    #
    java:/jaas/jmx-console
    jbpm-console
    
    # adjust jbpm/jsf-console.war/WEB-INF/web.xml to add JMX credential roles:
    #
      
      
        
          Secure Area
          /app/*
          GET
          POST
        
        
          user
          admin
          JBossAdmin
        
      
    

    Now startup the server and enjoy your jBPM within your JBoss EAP!

    Friday, June 11, 2010

    Open Source BPM - survival in the Financial Crisis

    I will be giving a talk at the Dutch NGI group (http://www.ngi.nl), you can sign up on the registration page.

    It will cover the work I did on real life enterprise jBPM projects, see you there?

    Sunday, May 30, 2010

    Upgrade Fedora 12 to Fedora 13 howto

    A few simple steps to upgrade:

    # As root you would like to have a clean start to the
    # upgrade, so get an update out of the way.
    #
    $ yum update rpm
    
    $ yum -y update
    
    $ yum clean all
    
    # Should a new kernel install/update require it,
    # reboot before continuing with the rest.
    #
    # Then install the preupgrade package.
    #
    $ yum install preupgrade
    
    # For console upgrade, use:
    #
    $ preupgrade-cli "Fedora 13 (Goddard)"
    
    # If you like gui's to upgrade, use this.
    #
    $ preupgrade
    

    This is exactly the same process as I previously described with Fedora 11 to Fedora 12 upgrade.

    =============== Update ===================
    There was a hitch on my laptop, some friends have asked about how to install when your boot partition is smaller than the Fedora 13 required 250 MB. I have been upgrading since Fedora 10 so have like 200 MB boot partition. Just try this:


    # run preupgrade as normal, when it complains about not enough space just 
    # continue, it will install the stage2 installer after the first reboot.
    # When it asks to reboot, do that. It should continue to finish the installation
    # when it restarts.
    

    This solution is also to be found on the Fedora Project Wiki.

    Monday, May 17, 2010

    Open Source Expert Panel - Geen open source kennis? Nee, bedankt!

    I just submitted the following Dutch language article for the opinion section Open Source for the on-line Computable.nl.

    Ik gooi het maar direct op tafel. Als ik een ontwikkelaar zoek, dan is aantoonbare affiniteit met en kennis van open source een absolute must. Ik ben er heilig van overtuigd dat de kwaliteiten van dit type ontwikkelaars veel beter zijn dan van hun closed source tegenhangers. Dat is niet enkel een gevoel maar een simpele kwestie van het opsommen van de feiten.

    Een opensourceontwikkelaar is iemand die meewerkt aan opensourceoplossingen en de ontwikkelingen volgt. Ik ervaar dat zij - in vergelijking tot hun closed source concullega’s - een grotere passie hebben voor wat zij doen. Dit zie je bijvoorbeeld terug in de hoeveelheid vrije tijd die ze spenderen aan opensourceprojecten. Ze werken in een gemeenschap van ontwikkelaars waarbij hun communicatie, contributies, codes en sociaal gedrag online worden gedocumenteerd. Al deze gegevens zijn over het algemeen te achterhalen via een simpele online zoekopdracht. Bovendien zijn opensourceontwikkelaars zeer flexibel in de omgang met problemen. Als er iets mis is met een opensourceproduct bestaat er altijd de mogelijkheid het verder uit te zoeken, tot aan de broncode aan toe. Het zal je niet verbazen dat het uitzoeken alleen al vaak leidt tot een oplossing. Die oplossing kan vervolgens weer worden teruggegeven aan het desbetreffende project. Die flexibiliteit is overigens ook terug te vinden in hun omgang met veranderingen. Opensourceontwikkelaars beschikken vaak over diverse mogelijkheden die hen kunnen helpen bij het oplossen van problemen, zoals een stuk tooling, product of framework. Deze nieuwe technologieën worden dan eigenhandig gemaakt en toegepast in hun werk.
    Hieruit blijkt maar eens te meer hoe zij zelfsturend te werk gaan met betrekking tot educatie en het bijhouden van kennis. Een opensourceontwikkelaar leest graag, offert graag tijd op om dingen uit te zoeken en bezoekt conferenties en congressen om zijn kennis op te vijzelen en up-to-date te houden. Over het algemeen is het dan ook veel kosteneffectiever om dit type ontwikkelaars aan het werk te houden, hun kennis bij te spijkeren en ze tevreden te houden zodat zij voor je blijven werken dan het bij closedsourceontwikkelaars het geval is.

    Closedsourceontwikkelaars leunen namelijk op hun certificaten. Dat is op zich niet zo verwonderlijk. Immers, hoe kan ik weten wat iemand zijn capaciteiten zijn en wat hij kan zonder zijn lijst met certificeringen in te zien? Het is namelijk niet mogelijk op een andere manier terug te vinden hoe zij coderen, hoe zij communiceren in een ontwikkelgemeenschap of hoe zij omgaan met veranderingen. Een persoonlijk interview is in dergelijke gevallen dan ook van groot belang. Een closedsourceontwikkelaar richt zich namelijk vaak op een enkele omgeving, met een beperkte verzameling tools waarmee zij kunnen werken. Veranderingen in deze verzameling worden niet als normaal ervaren waardoor zij van nature geen flexibele manier van werken en handelen hebben. Problemen in de tooling of producten worden regelmatig bij de leverancier neergelegd in plaats van dat ze het zelf uitzoeken. Kortom, er bestaat een compleet andere houding qua educatie en het bijhouden van kennis. Deze is namelijk vooral gericht op het bijhouden van certificering op de door hun gekozen tooling en producten. Dat betekent dat het vaak een duurdere aangelegenheid is om deze ontwikkelaars aan het werk te houden, op te leiden en ze de gewenste certificeringen te laten behalen.

    Natuurlijk is het beeld dat hierboven wordt sterk gechargeerd. Maar ga het voor u zelf eens na: Met welk type ontwikkelaar wilt u samenwerken aan uw volgende project? Dan zult u zien dat ik er toch niet zover naast zit.

    Tuesday, May 4, 2010

    EMEA Partner Summit in Valencia, Spain - JBoss event to remeber for 2010

    It all started on Sunday, 02 May 2010 with a group from the Netherlands flying out to Valencia, Spain for the EMEA Partner Summit. Weather was great, very warm and sunny but was soon to change into rain.

    We checked in, attended our meeting to get things sorted out for the Kickoff at 1900 hours. The Summit was opened by Jim Whitehurst himself welcoming the 450+ partners and Red Hat personnel.

    After the opening keynotes we migrated into the venue hall and mingled with our partners while enjoying the Spanish food and drinks.

    The second day was my active day to present two presentations on JBoss SOA-P and BRMS. I was also able to attend a few sessions on JBoss ON CLI usage (tech session) and JBoss SOE (tech session). The rest of the day involved talking with various partners and developers about all things JBoss (BPM, BRMS and SOA-P mostly). My sessions went pretty well, even had a partner in the front recording everything on a hand held video recorder. He mentioned it would be on YouTube sometime soon.

    In the evening the partners were put into a bus sorted by their region, so I was off with the Benelux partners to the beach for some traditional Spanish food, Paella!

    The evening ended in a beach club with about 100 of the partners enjoying the company of all the Red Hatters!

    The third day is a full agenda of sessions, round tables and speeches from partners and Red Hatters. There are both infrastructure and middleware in a abundance! The evening will be concluded with a party at an old convent here in Valencia.

    Follow all the active news on my twitter account @ericschabell and sort on the tag #emeapartnersummit, there are more pictures and running commentary until the Summit concludes Wednesday afternoon.

    The atmosphere has been really great and I am really enjoying the chance to interact with partners. This is a different engagement than with customers as we are both trying to accomplish the same things. Very open and easy hum of activity in the sessions and exhibition hall, I would be very happy to come back next year!

    Friday, April 23, 2010

    jBPM 5 RFC - nobody gets left behind

    I have posted my thoughts and evaluation of the jBPM 5 RFC posted last week, see the jbpm-dev list (may take a bit to appear).

    I think the theme should be 'Nobody gets left behind' when working towards the jBPM future.

    ======================================
    UPDATE: (seems to be something wrong with mailinglists, not posted yet so adding here)

    Posted 23 April 2010:
    ============
    I have been watching the replies and seeing what the jBPM core
    community developers would be saying before responding with my own
    thoughts on this topic.

    My background with jBPM is not well documented here in the forums or
    mailing lists. I have been using jBPM in an enterprise environment
    over the last three years or so as both a developer and lead
    developer. It started on the jBPM v3.1.x community versions and later
    migrated to the current supported jBPM v3.2.x. I also have had
    personal meetings with Tom, Joram and Koen discussing jBPM 3 and jBPM
    4, be that development questions, use cases from customers or just my
    experiences deploying enterprise solutions into production
    environments. One award winning case was published
    (http://www.schabell.org/2009/11/2009-silver-winner-for-europe-financial.html)
    on the implementations we did with jBPM v3.

    Looking at the various sections presented by Kris in the design
    overview https://community.jboss.org/wiki/jBPM5RequestforComments, I
    will run through each section and give my thoughts:

    Architecture:
    =========
    This picture is clear and concise, providing a pretty good idea of
    what the overview is. I miss JBoss Rules / BRMS as a block in the
    Connections side. I feel that Rules is just as important as JBoss ESB
    and you need to provide this to push your own products. On a side
    note, the roadmap needs to come ASAP to provide clarity where the
    focus is. You will see below in my evaluation, there is a focus needed
    on the core functionality to make something that can make it into a
    product.

    Core process engine:
    ===============
    When I look at this component I see many of the existing jBPM 4 branch
    as being a strong candidate to be leveraged along with whatever the
    Drools project has completed. Would be great if they could/would
    compliment each other. I am very happy to see the PVM being the
    leading theoretical foundations for the BPM suite. Three items are of
    some note:

    1) process instance migration is mentioned as if it is about stateless
    processes. I do not see how you can manage this at all. If you show me
    a process you think you can migrate, I bet I can break it.

    2) process instance migration could and should be a target for moving
    from one version of jBPM to the next.

    3) jPDLv3 -> BPMN2 process definition conversion tooling is a must and
    I was pushing this before the split, with project space already setup:
    http://anonsvn.jboss.org/repos/jbpm/projects/migration_tool (current
    leads are more than happy to have someone to help on this conversion
    tool, great place to get your feet wet in open source!)

    Finally, this part of the project should have about all the attention
    available to ensure a speedy delivery. This is what is needed to offer
    customers a path into the future of BPM.

    Human Tasks:
    ===========
    Following a standard makes lots of sense. I do see this as a bit of an
    external project when related to the console and form editor. First
    order of business is having them available.

    Process repository:
    ==============
    I would assume that this component could also leverage the efforts of
    ModeShape project maybe? Keep work to a minimum by conforming to what
    they recognize as an artefact. Seems also to fall into the category of
    nice to have but not yet essential to initial releases.

    BPM Console:
    ==========
    Looks like this can and should leverage the jBPM 4.x work, the GWT
    console project, along with whatever Drools project can / has to
    offer. This is nice to have stuff.

    Eclipse-based process tooling:
    ======================
    To leverage jBPM 4.x existing tooling and Drools project tooling. The
    extra bits mentioned are again fine for later releases.

    Web-based process tooling:
    ====================
    Is Oryx / Signavio one team? I was under the impression that Drools
    went one way and jBPM project another... who will win now and what are
    the criteria to be judged?

    Simulation:
    ========
    Very advanced feature that is nice to have (would make Product sales
    easy to visualize and demo's very slick) but nothing to focus on in
    the initial releases I would think. This could be an apart
    sub-project.

    BAM / BI:
    ======
    This is a very interesting one, how to provide without dictating what
    a person is to get/use/have in the BAM/BI area. It should be about
    facilitating and ease of customization. Also an apart sub-project and
    not important for the initial releases.

    Usability:
    =======
    Strange mix of stuff here; Domain-specific processes (what for? why?
    let's get normal process engine out there first?), install scripts
    (already there?), continuous integration (leverage existing setups?),
    documentation (has always been outstanding, should not slip), OSGI
    (what for?).

    Integration:
    ========
    Every item mentioned here in this section needs to have a block in the
    architecture overview picture. Very good to leverage and use our own
    projects. Make that the easiest path.

    Final thoughts, I see many panic reactions on the lists/forums with
    regards to jBPM 4. Looking at this overview Kris provides, I expect
    much of the jBPM 4 will function as some sort of base line for further
    development. DroolsFlow will play a role and if more projects are
    leveraged then this overview of a BPM suite on functionality is
    achievable. I think the first steps need to be to ensure that
    customers are taken from jBPM3 to jBPM5. plan this from the beginning.
    Rule #1: nobody gets left behind.