Archive for the 'Intalio' Category

Please post to the newsgroup

Lately I have had a lot of private emails from people asking for help both on the Eclipse and Intalio sides.

Here is the answer I come up with now:

Hi, as an Eclipse committer I cannot reply to conversations in private, as they include IP that might lead to litigation (for example if next month Intalio comes up with the system you describe, and I helped you with that, your company could sue).

If you wish to talk to me privately, there needs to be an agreement between our companies, you can contact sales@intalio.com to that regard.

Depending wether this is Eclipse or Intalio:

In the mean time, please post to the forum: http://bpms.intalio.com/forums.html and I will reply there, as well as the community.

In the mean time, you can post to the newsgroup, to stp-dev@eclipse.org or stp-user@eclipse.org. (and I’ll reply the best I can).
You can also ask on #eclipse-stp on irc.freenode.net.

So if you are tempted to talk to me privately, please tell me why, or you will get something like this email.

Question to the Eclipse community: how do you guys handle emails like this ? is there a guideline for committers posted somewhere ? (I didn’t really look, it might be just around the corner).

Eclipsepedia and BPMN samples

This week we have made good progress in creating samples and getting real on extension documentation.

In my opinion though, the font used for the source code is too small. I opened a bug regarding this issue, please voice your opinion there!

PS: I have added some guidelines to format source code to the help page. I hope this helps someone. :)

Get more, get BPMN 0.8!

Tonight with the release of STP M5, the BPMN modeler will come bundled with a pile of improvements.(see last week post to get the overview).

  • Better group support
    We have now a good support of groups. They add activities when resizing or moving, and activities update their groups when resizing and moving, or being created.
    There seems that there are a few glitches on the popupbar edit policy, which tends to show at the center of the pool when Ctrl+Space is hit on top of a group.
    Groups look and feel
  • Icons everywhere
    Hugues added icons for the multiple events and the signal events. We have a very fancy collection of icons now. They do not all reflect the BPMN 1.1 style, we are working on that.
  • Complex gateway palette item
    Just added, still hot from the compiler.
    Support for complex gateways
  • Throwing and catching shapes
    In BPMN 1.1, the throwing or catching property is dictated by the messages on the event, or is user selected.
    Shapes filling depending on their messages
    We added an action for the user to select that one, in case the event has no messages.
    Select throwing or catching shape action
  • We have worked on adding support for TODO, XXX and FIXME tasks on text annotations.

    Meaning you can take a text annotation, and write “TODO buy milk” in its label.
    Automagically, a task marker will show on save and you will see the task in the Tasks view. The task supports the “Go To” action through the GMF goodness.
    BPMN support for task annotations

  • Message connections between pools
    We have added a little menu item for the end connection menu, so that you can connect to the underlying pool.
    Pool messages don’t look good yet though: we have a specific framework to create anchors that was very specific to activities,
    and we won’t have cycles to work on that just now.
  • Pool message handles
    Grab a pool handle and drag all you can, those handles will enable you to connect to an other pool or activity with a messaging edge.
  • Sequence edges and messaging edges support associations with artifacts
    This seems to be a very stable new feature.
    Associations on edges

Graphical goodies for the BPMN modeler

We have worked hard on the BPMN modeler and have a few things to show off.

Some semantic changes

  • Associations can target sequence and messaging edges.
  • At the semantic level only. We are actively working on making it possible to connect them in the diagram.

  • Pools hold messaging edges.
  • We haven’t worked on making it possible in the editor as well, but the semantic model accepts those now.

Support for BPMN 1.1

We are heading for basic support of BPMN 1.1. You can deactivate it in the BPMN Diagrams preference page.

  • Signal events
  • They really don’t look good yet, and we are looking for help on that
    Signal events.

  • The look and feel of shapes is BPMN 1.1 compliant
  • Multiple event and event-based gateway a la BPMN 1.1 sauce
    Throwing and catching events are not drawn in the same way

  • Routing of sequence edges with gateways has drastically improved.
  • Nice looking diagram

    More

    • We have added the link and multiple events to the palette.
    • We miss images for those items right now, as well as the ones for the signal event. Working on that bit.

    • Only one connection handle shows at a time in the diagram.
    • We wanted to have only one connection handle showing at a time. That way when you mouse over the shapes, they don’t animate all at the same time.

    • Terminate events are better centered
    • Better centered terminate end events

    • Improvements over lanes
    • Lanes
      Lanes can now have a background color, and they resize in a better way that they used to.

    • We have fixed a pesky bug when using the BPMN modeler in a different editing domain.

    We hope you enjoy those improvements, will be inspired by them and will give us a hand at the next Eclipse bug day!

    Intalio|BPMS 5.1 is out

    I’m very happy to announce that we made a new release of Intalio|BPMS.

    We have fixed bugs in this release, introduced a new tool named “Insert space” (it deserves a separate blog post that should come soon).

    Overall the modeling experience is now even smoother.

    We also upgraded Designer and Server to support java 6.

    You can get all this new stuff for free right now on our community web site.

    Happy holidays!

    Funnel 0.1

    I worked some more on Funnel over the week-end to turn it into something usable. You can get it here.

    The results look (In My Not So Humble Opinion) very good:

    • Funnel supports caching. It will register the feed if you ask it to, and will ping it back in case you update something. The data is stored in the database, maybe we can expose it if needed.
    • Funnel updates asynchronously. You run a script to update the feed data, and another one to generate the feed file
    • I made a nice website, that should be updated with more and more examples and documentation.

    I still miss for now the background job that will trigger the update and generation scripts. It may be done using cron, which is fine for Unix-land.
    I will probably add a rake task to force an update, and a script to run an update thread in background.

    The admin interface is yet to be done. Once it is, I’ll shoot for 1.0. Stay tuned!

    Push your feeds into Funnel

    I have continued my experiment with the RSS libs a bit, and have built a first prototype that I call Funnel.

    Funnel takes the feeds declared in the feeds table.

    In a separate thread, it runs a script that looks at the feed, and if there is a new item or an item that looks like it is updated, it runs a filter on it.

    The filter is completely extensible, so that I can add antispam measures later like I did here.

    Once the item is accepted, it is picked up by the feed when building it using Builder.

    I fund this project with Micropledge. Micropledge is a really cool website to get your open source projects funded. Check it out!

    At this point, I achieved my primary goal but have new issues I need to deal with.

    • I want to record the feed optionally. I want to make it possible for the user to record completely the items in the items table, so that he does not have to bother about them.
    • I use Rails. While this gives a nice frame to my application, it is clearly overkill for some uses of Funnel. I think I should make it available in different little gems, and the core gem would provide pretty much as simple as Svn2Rss is.
    • The feed is not cached. It is currently recreated every time someone asks for it. Like Svn2Rss, I need to create an asynchronous way to output it.

    If I have those core components working, I can easily create an administration interface and a UI to show my feed.

    If you are interested into this project, you can fund it and/or join the mailing list:

    Google Groups

    Subscribe to Funnel Atom and RSS merger
    Email:
    Visit this group

    Scala syntax extension

    Follow up with yesterday:
    you can get my Scala syntax gem extension here, and read below for the instructions on how to install it.

    First here is the result:

    
    /**
     so much fun
    */
    class Auction(seller: Actor, minBid: Int, closing: Date) extends Actor {
      val StringForFun = "hello"
      val timeToShutdown = 36000000 // msec
      val bidIncrement = 10
      def act() {
        var maxBid = minBid - bidIncrement
        var maxBidder: Actor = null
        var running = true
        while (running) {
          receiveWithin ((closing.getTime() - new Date().getTime())) {
            case Offer(bid, client) =>
              if (bid >= maxBid + bidIncrement) {
                if (maxBid >= minBid) maxBidder ! BeatenOffer(bid)
                maxBid = bid; maxBidder = client; client ! BestOffer
              } else {
                client ! BeatenOffer(maxBid)
              }
            case Inquire(client) =>
              client ! Status(maxBid, closing)
            case TIMEOUT =>
              if (maxBid >= minBid) {
                val reply = AuctionConcluded(seller, maxBidder)
                maxBidder ! reply; seller ! reply
              } else {
                seller ! AuctionFailed
              }
              receiveWithin(timeToShutdown) {
                case Offer(_, client) => client ! AuctionOver
                case TIMEOUT => running = false
              }
          }
        }
      }
    }
    

    You will need to add those CSS elements to display things correctly:

    pre {
    	background: #000000 repeat-x;
    	color: #00FF00;
    	font-family: arial, 'lucida console', sans-serif;
    	line-height: 160%;
    	font-size: 120%;
    }
    
    code {
    	color: #00EE00;
    	font-style: bold;
    	font-family: arial, 'lucida console', sans-serif;
    }	
    
    .comment { color: #333; font-style: italic; }
    .keyword { color: #eff; font-weight: bold; }
    .punct { color: #444; font-weight: bold; }
    .symbol { color: #0bb; }
    .string { color: #6b4; }
    .ident { color: #00b; }
    .constant { color: #66f; }
    .regex { color: #a82; }
    .number { color: #a33; }
    .expr { color: #227; }
    

    Then on your machine, you will need ruby and rubygems installed, and install redcloth and syntax:

    gem install syntax
    gem install redcloth
    

    Put your sample into a text file in the same folder as run.rb, then run:

    ruby run.rb myscala.txt > output.html
    

    That’s about it. It’d be great to develop the same things for Java and CSS. In the mean time, enjoy!

    5.0

    I started working for Intalio more than a year ago.

    At the time I was a young software engineer with some skills regarding the Eclipse platform.
    I grabbed a seat, and stayed there learning how to code with a team, parsing XML, understanding BPEL, hacking WSDL and groking Ruby.

    Working for Intalio is fun. I personally feel like I am constantly rewarding myself. Every feature we bring in is a new skill, a new technology we master.
    There is no forbidden path to achievement, we always take the shortest one, and that means slashing into code, rewriting, beautifying, migrating fearlessly.

    In a small structure like this one, one thing continues to astonish me: we don’t discuss objectives. We all know where we fit and bend together to make it work.

    For the last year we have been running a marathon, rewriting most of the Designer. I am proud of announcing to you that it is available for everyone and for free out there.

    Ismael thanks all the persons that made it possible, and I’d like to thank them too, not only the team today, but the team I did not have the chance to know two or three years ago.

    After this release, nothing has changed. We are still focused on the product and delivering the best experience to our customers.
    We already started digging and have some finds for 5.1.

    More on all this very soon.

    Subversion commits

    I did some hacking this week-end, and the result is called svn2rss.

    It’s a simple lib to parse a subversion log and create a RSS 2.0 feed out of it.

    Quick snippet to show you how it works:

    # the module to include in your script.
    self.include Svn2rss
    
    # parse the svn log
    entries = parseSvnLog("http://myfeed.com/rss")
    # create your own feed
    feed = createRSSFeed(entries,
            "http://myfeed.com/rss",
            "My very own title",
            "My description of the feed",
            "en",
            "managingEditor@myfeed.com",
            "webmaster@myfeed.com")
    # Well, as you can see the API is clearly not optimized.
    # Still working on that particular point, so expect your API to break often till 1.0.
    

    The implementation is coming with some complete examples:
    -create a WEBrick server that will serve your feed.
    -create a file to hold your changes and send it through FTP to a server.

    You can check out a live instance of svn2rss here, and below is a snippet generated with Feed2JS.

    0.1 is out, so installing it is just a matter of muttering the magic works:

    sudo gem install svn2rss
    

    I hope you like it. It cuts the deal for me. It certainly isn’t a replacement for some great tools like Fisheye, but it helps showcasing my works. More on that very soon.