Skip to main content

Posts

Open Source projects and documentation

I am a strong supporter of Open Source since a long time. I understand that the Open Souce movement is important to promote the knowledge sharing in a very wide audience, that it has helped (and it's still helping) to speed up the progress of the IT world and that it brought benefits in terms of quality to the commercial products too. But there is a plea I'd like to do to all the Open Source project holders: please add some documentation to your project. A lot of Open Source projects still suffer of the following lacks: Missing or poor documentation. In the last months I found some potential helpful libraries or plugins (most part of them hosted on GitHub) for the projects I was working on, but no documentation at all or just a short description of the project and nothing else. I know I could browse the source code (I like to do so and add some contribution or send some feedback to help improving something if possible), but at the end I spent less time to implement a solutio...

Why use Camel for Enterprise Application Integration?

In modern  IT business applications don't live in isolation (most part of them at least). Different applications implemented with different technologies and using several different protocols, different data formats and different interfaces need to be connected in a single integrated solution. Today every IT company has to deal with this matter. A group of patterns (EIP) exists ( http://www.eaipatterns.com/toc.html ) to help implementing Enterprise Application Integration (EAI) following standards. In order to reach full EAI through this patterns, 3 ways are possible: Implement your own custom solution. Use a lightweight integration framework. Use an existing Enterprise Service Bus (ESB). I think in 2014 everyone dealing with EAI would discard the first way (do I need to explain why? I don't think so ;) Using an ESB could add complexity to you solution: the ESBs available in the market (commercial and Open Source) provide a lot of other features that you don't really ...

Execute a small ESB with Groovy

One year ago I published a post ( http://googlielmo.blogspot.ie/2013/02/apache-camel-rocks.html ) about Apache Camel ( http://camel.apache.org/ ). Now it's time to share some stuff done with this framework. Let's see how you can set and execute a small ESB in just 16 lines (I am serious) of Groovy code (one of the languages supported by Camel). First of all we need to import (through Grape) the Camel dependencies to compile and run the script: @Grab(group='org.apache.camel', module='camel-groovy', version='2.13.0') @Grab(group='org.apache.camel', module='camel-http', version='2.13.0') @Grab(group='org.apache.camel', module='camel-core', version='2.13.0') import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.language.groovy.GroovyRouteBuilder; In particular we need the Camel core and the Groovy and HTTP components. Then we extend the abstract class org.apache.camel.language.groovy....

How many hours do you really work in a day?

Please watch this interesting video I found on TED: http://www.ted.com/talks/jason_fried_why_work_doesn_t_happen_at_work The speaker, Jason Fried, explains very well some concepts people doing creative works (and IT is among them) know: you need long stretches of uninterrupted time to get something done . Like Jason says, work, like sleep, is phased-based and can be interrupted often (this has scientific basis, it's not just an opinion). Keeping this in mind it could be easier to find some ways to improve productivity in your company. I am open to the discussion. I ask readers to share their thoughts about this matter. Thanks.

JPPF: an Java Open Source solution for parallel processing

JPPF ( http://www.jppf.org/ ) is a Java framework which can help to implement and run a parallel Java program. It allows a Java application to run independent parts of it on different machines in parallel in order to dramatically reduce their processing time. It is useful to split a computing-intensive Java application into several mostly independent parts (which are typically called tasks). JPPF is Open Source and released under the Apache license 2.0. These are the main features of this framework: Allows a grid (a server, to which any number of execution nodes are attached.) to be up and running in minutes. Provides a simple programming model that abstracts the complexity of distributed and parallel processing . It's an highly scalable (from small to large networks) and distributed framework for the parallel execution of cpu intensive tasks. Provides seamless integration with the most popular J2EE application servers (IBM WebSphere, JBoss, WebLogic, etc.).   ...