Subscribe: Carlos Sanchez's Weblog
Added By: Feedage Forager Feedage Grade B rated
Language: English
amazon  build test  build  cloud  eclipse iam  eclipse  iam  integration  maven  new  selenium  server  test cloud  test 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Carlos Sanchez's Weblog

Carlos Sanchez's Weblog

Carlos Sanchez weblog about Java at the End of the Universe

Last Build Date: Fri, 5 Oct 2012 09:26:09 -0400

Copyright: Copyright 2012

Moved the blog to

Sun, 10 Oct 2010 20:11:38 -0400

If you are reading this in your RSS reader, you NEED to update your RSS reader. Please use my feedburner RSS feed at that is automatically updated to the new location.

If you are reading it in your browser please go to

My new blog home is a hosted blog, at and the RSS is still at Feedburner'

I decided to move because JRoller doesn't seem to be maintained anymore, and Wordpress has a lot more features. For reference I just followed the migration instructions by theholyjava. Had to fix some code/pre tags and change SlideShare embedded presentations. Then I bought the subdomain mapping for $12/year to have it under a my personal domain.

Happy reading!

Eclipse IAM WTP support, now EARs too

Thu, 13 May 2010 09:56:47 -0400

I recently had some time to spend in Eclipse IAM, working on improving the WTP support.

Version 0.11.0 already had good support for WAR projects, including war overlays (which was a bit tricky to implement in Eclipse). Now the last builds of the coming 0.12.0 version have EAR support.

You can import your Maven EAR projects and Eclipse will recognize the Maven-generated application.xml and configure automatically the dependencies to the other WAR projects opened in the workspace, with no extra configuration from you. And from the usual WTP "Run in Server" wizard you can run the EAR project and all associated WAR files in your favorite application server.

You can install the development builds of 0.12 from until it's released, and check the installation instructions for requirements or if you have issues. For help and feedback, we have a newsgroup at Eclipse.

Eclipse IAM 0.11.0, Archiva 1.3, Continuum 1.3.5

Wed, 20 Jan 2010 15:33:59 -0500

This is definitely release week! After Archiva 1.3 and Continuum 1.3.5 beta, I've just pushed the new release of Eclipse IAM 0.11.0:

This new version includes most notably

P2 Update site is published at

Ganymede users (Eclipse 3.4) should make sure they have added all the update sites listed in the installation instructions. If P2 complains about missing dependencies, check the update sites again.

Adopters of the latest and greatest Eclipse Galileo can install from the update site as usual.

If upgrading from Q4E 0.8.1 or earlier, some extra steps must be followed

The list of changes is available on the eclipse wiki.

Note that this is not an official Eclipse IAM release to allow our users to enjoy the progress made until we complete the move to the foundation and clear all the IP issues involving the maven embedder.


Wed, 4 Nov 2009 19:09:51 -0500

continuum-ruby is a Ruby library to interact with Apache Continuum, using the XML-RPC interface and enabling access to the working copy directories. continuum-ruby is now available in the Continuum Sandbox.

More info on the Continuum XML-RPC interface:


continuum ="", 8080, "admin", "password", "/continuum")

# xml-rpc interface

xml_rpc =

ok, result = xml_rpc.build_project(1)
error = Continuum.parse_error(result) if !ok

# getting working copy files

working_copy =
test_results = working_copy.get(1, "target/surefire-reports", "emailable-report.html")

files = working_copy.dir(1, "target")
files.each do |file|
  file_content = working_copy.get(1, "target", file)

ApacheCON US 2009 Oakland

Wed, 28 Oct 2009 22:26:44 -0400

I'll be next week at ApacheCON in Oakland, celebrating the 10th anniversary of the ASF. Unfortunately I'm not speaking this time, but will be hanging around at the BarCamp Apache (Monday and Tuesday), Hackathon (Monday and Tuesday too), and Maven Meetup (Tuesday night), doing the usual socialization and Face-To-Face meetings. These are all free events that you can attend.

Brett Porter is having a Maven training course on Monday, November 2. You still have time to sign up, and plenty of other Apache folks will be around. Leave a comment or ping me if you want to meet at some point.

BTW there's an interesting new project proposal in the incubator, the Libcloud project, a client library for interacting with many of the popular cloud server providers. Will try to get more details next week too, but sounds promising.

Maven, Amazon EC2 and SpringSource Cloud Foundry

Wed, 19 Aug 2009 12:14:24 -0400

You may have heard about the just announced SpringSource Cloud Foundry and how it is based on the CloudTools project, that includes a Maven plugin to deploy Java EE applications to Amazon EC2, starting the images as part of the build process.

Some time ago I started another Maven plugin, the Amazon EC2 Maven plugin, which allows you to start and stop EC2 AMIs as part of your build process. Unlike CloudTools, it's a lower level plugin that can start any AMI, a very different goal.

My use case? starting Selenium Grid Remote Control images for different environments and browsers before the integration tests start, wait for the images to be online, run the integration tests, and shutdown the images. Check my previous Enterprise Build and Test in the Cloud entry for more details.

You could also have your AMIs with your webserver, db,... pre-installed, start it, deploy using the Maven Cargo plugin to any container of your choice, and shutdown the image at the end of the tests.

The plugin allows all the configuration options than the EC2 API does, because it's based on the Typica EC2 library. Start any number of images, associate elastic IPs, choose availability zones,...

Hope you find it useful.

Using Subversion Ruby bindings

Tue, 18 Aug 2009 10:46:22 -0400

I tried to do some subversion hacking from Ruby, very simple things like add/remove files, commits and so, and realized that there's no documentation at all out there, just blog posts here and there.

I finally got something working, including user authentication (that is not as easy as you would expect) and ignoring https certificates not signed by a trusted CA. Something like committing a file is not as simple as it would seem.

You have to make sure you have the latest version installed. In linux it means installing the subversion-ruby package. In OS X is more complicated, you need to remove the preinstalled subversion, install the newer one from Collabnet, and move some files around.

mv /Library/Ruby/Site/1.8/svn /Library/Ruby/Site/1.8/svn.bak
mv /Library/Ruby/Site/1.8/universal-darwin9.0/svn /Library/Ruby/Site/1.8/universal-darwin9.0/svn.bak
ln -s /opt/subversion/lib/svn-ruby/svn /Library/Ruby/Site/1.8/svn
ln -s /opt/subversion/lib/svn-ruby/universal-darwin/svn /Library/Ruby/Site/1.8/universal-darwin9.0/svn

Once you have it installed then you can call the svn libraries

  require "svn/core"
require "svn/client"
require "svn/wc"
require "svn/repos"

make_context("") do |ctx|
# checkout
ctx.checkout SVN_URL, "/tmp"

# Add a file and commit with a message
make_context("Adding a file") do |ctx|
ctx.add f
ctx.commit f

# from
def make_context(log)
ctx =

# Function for commit messages
ctx.set_log_msg_func do |items|
[true, log]

# don't fail on non CA signed ssl server

# username and password
ctx.add_simple_prompt_provider(0) do |cred, realm, username, may_save|
cred.username = "myusername"
cred.password = "mypassword"
cred.may_save = false
# setup_auth_baton(ctx.auth_baton)
return ctx unless block_given?
yield ctx

Playing with Ruby and Rails

Mon, 17 Aug 2009 06:00:00 -0400

I have been playing with Ruby and Rails for a good number of months already and fond it quite interesting. It's fairly easy to start new projects and get going, although it's also very easy to make mistakes if you don't know what's going on behind the scenes. For instance, it's very easy to have the N+1 SQL problem, or dependency mismatches between machines.

What I like:

  • Migrations
  • Different environments (dev, test, production), and predefined configurations for each, like log level
  • Real time development, change a file and see the changes immediately.
  • AJAX support, very easy to create partial updates and requests

What I don't like:

  • Dependency management, if you don't define versions it will take whatever is installed in the system (but probably I'm just spoiled by using Maven for so long)
  • Debugging, it ends being puts statements, although there's probably something helpful out there
  • The plugin ecosystem, it's a big mess with plugins and forks of plugins, and forks of forks,... It's too easy to fork, which makes users less likely to contribute the changes and just work on their version.
  • Scripting, mistakes like typos are very easy to do, and refactoring becomes a big PITA


JavaOne slides: Enterprise Build and Test in the Cloud

Thu, 2 Jul 2009 08:00:00 -0400

I have uploaded the slides from my talk Enterprise Build and Test in the Cloud at JavaOne in San Francisco.

You can check also the code, and an introduction in previous posts Enterprise build and Test in the Cloud with Selenium I and Enterprise build and Test in the Cloud with Selenium II.

Follow me on twitter

Photos: The Standard Hotel

Tue, 26 May 2009 08:00:00 -0400

The Standard Hotel, Downtown Los Angeles
Standard Hotel rooftop bar

Swimming pool Standard Hotel rooftop bar in Downtown Los Angeles
Standard Hotel rooftop bar

Standard Hotel rooftop bar in Downtown Los Angeles

In front the water beds, behind the U.S. Bank Tower. U.S. Bank Tower is the tallest building in the United States west of the Mississippi River. (1,018 ft/310 m)

JavaOne talk: Enterprise Build and Test in the Cloud

Wed, 20 May 2009 15:16:12 -0400

I'll be presenting Enterprise Build and Test in the Cloud at JavaOne in San Francisco, Wednesday June 3rd 11:05am Esplanade 301 and will be around the whole week.

You can check the slides from the previous talk at ApacheCON, the code, and an introduction in previous posts Enterprise build and Test in the Cloud with Selenium I and Enterprise build and Test in the Cloud with Selenium II.

Follow me on twitter

Enterprise Build and Test in the Cloud code available

Tue, 21 Apr 2009 15:39:12 -0400

The code accompanying the slides Enterprise Build and Test in the Cloud is available at the appfuse-selenium github page.

Provides a Selenium test environment for Maven projects, Appfuse as an example. Allows to run Selenium tests as part of the Maven build, either in an specific container and browser or launching the tests in parallel in several browsers at the same time.

For more information check my slides on Enterprise Build and Test in the Cloud and the blog entries Enterprise Build and Test in the Cloud with Selenium I and Enterprise Build and Test in the Cloud with Selenium II.

By default it's configured to launch 3 browsers in parallel, Internet Explorer, Firefox 2 and 3

Check src/test/resources/testng.xml for the configuration.

In the single browser option you could do

  • Testing in Jetty 6 and Firefox

    • mvn install

  • Testing in Internet Explorer

    • mvn install -Pjetty6x,iexplore

  • Testing with any browser

    • mvn install -Pjetty6x,otherbrowser -DbrowserPath=path/to/browser/executable

  • Start the server (no tests running, good for recording tests)

    • mvn package cargo:start

ApacheCON slides: "Enterprise Build and Test in the Cloud" and "Eclipse IAM, Maven integration for Eclipse"

Wed, 8 Apr 2009 18:39:26 -0400

Here you have the slides from my talks at ApacheCONEnterprise Build and Test in the Cloud Building and testing software can be a time and resource consuming task. Cloud computing / on demand services like Amazon EC2 allow a cost-effective way to scale applications, and applied to building and testing software can reduce the time needed to find and correct problems, meaning a reduction also in time and costs. Properly configuring your build tools (Maven, Ant,...), continuous integration servers (Continuum, Cruise Control,...), and testing tools (TestNG, Selenium,...) can allow you to run all the build/testing process in a cloud environment, simulating high load environments, distributing long running tests to reduce their execution time, using different environments for client or server applications,... and in the case of on-demand services like Amazon EC2, pay only for the time you use it. In this presentation we will introduce a development process and architecture using popular open source tools for the build and test process such as Apache Maven or Ant for building, Apache Continuum as continuous integration server, TestNG and Selenium for testing, and how to configure them to achieve the best results and performance in several typical use cases (long running testing processes, different client platforms,...) by using he Amazon Elastic Computing Cloud EC2, and therefore reducing time and costs compared to other solutions. Enterprise Build And Test In The CloudView more presentations from Carlos Sanchez. Download PDF Eclipse IAM, Maven integration for Eclipse Eclipse IAM (Eclipse Integration for Apache Maven), formerly "Q for Eclipse", is an Open Source project that integrates Apache Maven and the Eclipse IDE for faster, more agile, and more productive development. The plugin allows you to run Maven from the IDE, import existing Maven projects without intermediate steps, create new projects using Maven archetypes, synchronize dependency management, search artifact repositories for dependencies that are automatically downloaded, view a graph of dependencies and more! Join us to discover how to take advantage of all these features, as well as how they can help you to improve your development process. Eclipse IAM, Maven Integration For EclipseView more presentations from Carlos Sanchez. Download PDF[...]

Amsterdam - Stockholm - Tallinn - Helsinki and back

Tue, 31 Mar 2009 05:31:41 -0400

ApacheCon was a great time, and I enjoyed so much the first visit to Amsterdam. Now I'm taking some time off, writing from a sunny Stockholm right now, tomorrow Wednesday I'll be in Tallinn, Thursday in Helsinki, Friday and Saturday in Stockholm, and Sunday Amsterdam again before flying to Los Angeles.

Not so much blog writing lately, definitely easier just to twitter, follow me @csanchez. I will post the slides and more comments from ApacheCon soon.

Conference season: JavaOne

Mon, 2 Mar 2009 13:02:34 -0500

If last week I mentioned the two conferences I got talks accepted, ApacheCON and EclipseCON, now I just got the confirmation that my talk Enterprise build and test in the cloud was accepted for JavaOne, June 2-5 in San Francisco

You can read a little bit about what I'm going to talk about in my posts Enterprise build and Test in the Cloud with Selenium I and Enterprise build and Test in the Cloud with Selenium II, probably a 3rd part coming after ApacheCON.

Conference season starting: ApacheCON Europe and EclipseCON

Thu, 26 Feb 2009 23:08:27 -0500

The conference season is starting, ApacheCON EU will be held 23-27 March in Amsterdam, and EclipseCON on the same dates in Santa Clara, California.

I got talks accepted in both, and had to choose between Santa Clara and Amsterdam... and yes, I'm going to Amsterdam :D, but no worries, I was able to convince another of the Eclipse IAM committers, Mike Poindexter, to give my talk at EclipseCON.

There are other Maven related talks at ApacheCON, and we'll probably have a JUG.


Enterprise build and test in the cloud Friday 27th

Eclipse IAM, Maven integration for Eclipse, Thursday 26th

Apache Continuum - Build, Test, and Release, Friday 27th by Wendy Smoak

Managing Your Repositories With Archiva, Friday 27th by Maria Odea Ching


Eclipse IAM, Maven integration for Eclipse, Thursday 26th, by Mike Poindexter

If you are going there, say hi! It's a great opportunity to meet the people behind that open source stuff that you use everyday (image)

Using Lava Lamps for Continuous Integration build status notifications

Wed, 28 Jan 2009 08:00:00 -0500

Taking the idea of using Lava Lamps as notification tools for your Continuous Integration status, green lamp for success, red lamp for failure, the so called eXtreme Feedback Devices, and using as a guide the instructions in Pragmatic Automation, I have made some improvements to use remote notification, meaning that lamps don't need to be connected to the build server, and a more automated process, that will turn off the lamps out of business hours.

The code is in a new project, Continuous Lava, in case it's useful for somebody else. There are two parts, one for Apache Continuum and one for CruiseControl.

Actually, it is not necessary to use lava lamps but you can turn on and off any device you plug to the X10 power adapters. Imagine a loud siren, or my favorite, electric discharges to developer's chairs!!! (we'll leave this as an idea for future projects)

UPDATE: fixed the link to Pragmatic Automation

Enterprise build and Test in the Cloud with Selenium II

Mon, 26 Jan 2009 08:00:00 -0500

In my previous entry I introduced Selenium and a setup for running automated builds in the browser.

How can you achieve the multi-browser multi-environment testing? There is a subproject of Selenium called Selenium-Grid that works in a heterogeneous cluster of machines. Install a selenium hub in one server and start the selenium remote clients in the machines with the environments you want to test. For instance you can have a windows machine with IE 7 and Firefox 3, another one with IE 6, a linux machine with Firefox 2 and a OS X with Safari. There's no limit in the number of machines that you can attach to the hub, and the hub redirects the tests to the machine that fulfills the environment you request in your tests.

At this point you can have a very nice integration testing environment, with the continuous integration server deploying your app every day, and running the Selenium tests in several machines with different operating systems and browsers.

Now the bad news, you may have noticed already that having a bunch of machines dedicated to QA just to run once a day can be quite expensive. Another issue is that Selenium tests, as they run in the browser, are not particularly fast.

But it's a great use case for cloud computing. Using Amazon EC2 you can have machines with different environments (Linux, Windows, Solaris,...) and browsers (IE, Firefox,...) and pay just for the time they are running. Let's say you need 5 combinations of OS/browser and your tests take 2 hours in each of them. If you run the tests once a day you could end paying

5 machines * 30 days * 2 hours * 0.10 $/hour (approx) = 30$ month, results in 2 hours

compare it with the cost of 5 machines, power, space, hardware maintenance,...

Not only that, but you could parallelize your tests, using Selenium with TestNG for instance, and get the results faster. Particularly, using EC2, if you start twice as many machines to get the results in one hour instead of two, you would pay

10 machines * 30 days * 1 hours * 0.10 $/hour (approx) = 30$ month, results in 1 hour

exactly the same!

And if you need to really really get those results fast, you are not constrained by your hardware

100 machines * 1 day * 1 hours (the minimum charge is one hour) * 0.10 $/hour (approx) = 10$ day, but with results in 6 minutes

assuming that your tests are splitted and can be run properly in parallel.

You can see a demo of how does it work in our Maestro S+ page. Obviously you can set this environment up yourself, but if you need help we can assist you setting the environment up, creating an outsourced on-demand QA team, or subscribe to a fully hosted service where we will handle all your continuous integration and testing needs using open source, Apache licensed, software, with a continuous integration server, Apache Continuum, artifact repository, Apache Archiva, and a list of browsers and environments to test on that we'll maintain for you, and paying just for the time you need them.

Enterprise build and Test in the Cloud with Selenium I

Thu, 22 Jan 2009 08:00:00 -0500

I introduced Amazon Web Services and Cloud computing in previous posts (Amazon Web Services: an introduction, habemus Windows, tools), now let's get full advantage of them in a practical application.

For those not familiar with Selenium, it's a testing library that allows you to write integration tests to run in the browser, and when I say in the browser I mean it, you can tests how web applications behave when using different browsers: Internet Explorer, Firefox, Safari,... and we all know how painful cross-browser compatibility can be.

With Selenium you can write the tests in different languages: Java, Ruby, Groovy,... but, and this is a huge plus, you can also record them in Firefox using the Selenium IDE AddOn, and then run them with playback or export them to any of the languages supported.

Now follow me to this scenario. You have a team of developers writing a webapp. You can take anybody with a minimum experience (an user!) and tell them to use the site while SeleniumIDE records what they are doing. Then export the recording and add it to your integration builds to make sure it doesn't break in future developments. Imagine also what you could achieve with experienced QA people, that don't need to be developers at all nor know the internals of your app, and that can apply QA practices, trying to make your webapp break in any possible way. Sounds interesting? Keep reading

Let's say that the site needs to be supported in different browsers too, Internet Explorer, Firefox and Safari. With Selenium you can run the same tests previously recorded against any browser.

At this point you have a development practice where developers develop, and a QA team that can be just test experts, not developers, either inside or outside your company or department, recording and running tests using only the requirements. Not a bad thing to have, but let's make it better using automation.

Let's assume you already have a working automated build and continuous integration, I know for many people is a big assumption, but let's have hope (image) , and assume you are using Maven and Continuum, not necessary, but that's what I'm more familiar with. It is pretty easy to add Selenium testing to run as part of the build. With the Selenium Maven plugin you can start the Selenium server, launch the tests that will run the browser and execute the in-browser testing, and stop Selenium server at the end. When you have that running on Maven is straightforward to get it working in Continuum. For the gory technical details you can read my previous post Functional testing with Maven, Cargo and Selenium.

Will continue in my next entry...

Amazon Web Services: tools

Tue, 20 Jan 2009 14:06:59 -0500

Second entry in the series: Amazon Web Services: an introduction  Amazon provides some tools to interact with its Web Services, and many others exist provided by 3rd parties. Here is my selection S3 tools JetS3t JetS3t is a free, open-source Java toolkit and application suite for the Amazon Simple Storage Service (Amazon S3). The toolkit provides Java programmers with a powerful yet simple API for interacting with S3 and managing data stored there, while the applications allow anyone to easily manage and interact with their S3 accounts. JetS3t is composed by a java library to access S3, a command line tool to synchronize local folders to S3 (s3sync) and a GUI to upload/download files (cockpit) EC2 tools ElasticFox A graphical interface to Amazon EC2 web service as a Firefox addOn, provided by Amazon You can do pretty much everything with it, register instances, start/stop them, manage access keys, security groups, elastic ips, EBS volumes,... Amazon Management Console A web based interface to Amazon EC2 launched recently by Amazon. Same functionality as ElasticFox Amazon EC2 API tools The command line version, you won't need it if using ElasticFox, unless the command line is your thing Amazon EC2 AMI tools The Amazon EC2 AMI Tools are command-line utilities to help bundle an Amazon Machine Image (AMI), create an AMI from an existing machine or installed volume, and upload a bundled AMI to Amazon S3. Even using ElasticFox you'll need it in your running instances to create new images from them (only for *nix, Windows images are bundled from Elasticfox or other GUI) EC2 services Morph Morph AppSpace allows you to run webapps with no effort. You provide them with a war (for Java) or your Rails, Grails or PHP app and they'll run it for you in the cloud, with a DB (postgres or mysql) with warm backups, a webserver, continuosly monitored and a two machine cluster for load balancing and high availability, all from 1$ a day. There's a development version to try it for free. How it works for Java apps? You just need to access your database connection pool using JNDI. They will provide you the resource name to use. Morph AppCloud is another product that adds more flexibility, providing a web based cluster editor where you can design your cloud just by dragging and connecting the modules provided (ie. Jetty web server, mysql master, mysql slave, load balancer,...), then just click to run it. Disclaimer: I know the guys behind Morph and have done some work for them Rightscale It's a lower level service where you can interact with all the EC2 operations. You can create images, start/stop them, health montirs,... all through their web interface. You have a developer edition to try it for free CohesiveFT It's more of a provisioning system where you select components and create an image (Elastic Server) to run it in EC2, VMware, and other virtualization frameworks, and with a management web interface to start/stop the components, monitor the services running,...They have a list of components and templates, mostly open source projects, and you can add your own too.[...]

Madrid this Sunday 18th

Wed, 14 Jan 2009 10:27:08 -0500

If you are not in the Madrid area you can ignore this post (image)

Voy a andar entre mañana jueves y el domingo por Madrid de camino a Los Angeles, y voy a quedar con alguna persona que conozco por alli que trabaja en lo "nuestro", especialmente open source, para intercambiar experiencias.

Asi que si os quereis pasar o comentarselo a alguien interesado:

Domingo 18
20.30 en The Clover House (Metro Las Tablas)

Enviadme un mail o dejad un comentario por si hay cambio de planes.

Perdon por la noticia de ultima hora.

ACTUALIZACION: me he quedado sin avion asi que lo vamos a mover al domingo, mismo sitio, misma hora

Travel: Los Angeles - Madrid - Cairo

Mon, 15 Dec 2008 18:57:50 -0500

Very busy last weeks, and unfortunately had to postpone the blog entries about Amazon and other stuff we are working on (very cool if you have to ask me (image) ) but it will come, after well deserved vacations that are taking me from Los Angeles to Madrid to Egypt, three continents in two days, not a bad record. After that I will spend around a week in Madrid before going to Coruña for New Year.

Also I didn't find the time to blog about ApacheCON US in New Orleans, where I talked about Q4E and Eclipse IAM, Maven Integration for Eclipse. It was a blast, in a great place in downtown, walking distance from the french quarter, Bourbon street, Frenchmen,  and all the interesting places to see. We helped rebuild a fence for a house damaged during Katrina, and enjoyed Sunday walking around and taking pictures.

(image) (image) (image) (image) (image)

More New Orleans pictures

"Q4E and Eclipse IAM, Maven integration for Eclipse" slides from ApacheCon

Fri, 7 Nov 2008 17:00:25 -0500

I have uploaded the slides from my talk Q4E and Eclipse IAM, Maven integration for Eclipse at ApacheCon in New Orleans. You can download them from the session page. It's an introduction on the features, the roadmap, integration with other plugins,... Talk went well, few questions during the Q&A round but a lot more as I left the stage (image)

If you are interested in Maven, you can check too Brett Porter's talk More Apache Maven Best Practices.

The rest of ApacheCon is being great, a lot of networking as usual, attending a few talks to get introduced on some interesting technologies and drinks on the nearby, Bourbon street, walking distance (or crawling, depending on who are we talking about).

Amazon Web Services: habemus Windows

Tue, 4 Nov 2008 02:18:58 -0500

This is going to be a little bit out of order with my other posts about Amazon AWS, but it's worth doing it. Amazon has launched finally the ability to run Windows images in EC2. Microsoft Windows Server® 2003 actually, from 0.125$ per hour, compared to the 0.10$ for the unix/linux instances.

The instances are accessible through Windows Remote Desktop or the open source multiplatform rdesktop client. The first time you launch an image the password is generated, but you can change it for new images you make based on that one.

A nice feature that will save a lot of time is the ability of creating new Windows AMIs from the ElasticFox interface with a couple of clicks, without needing to mess with software installation in the image (more on image creation in next posts) which is way easier than the process for linux images.

You can also run Windows Server with SQL Server Standard, but watch out for the 1.10$ per hour, which makes 792$ per month that you can compare to the 6000$ processor license fee.

Previous entry: Amazon Web Services: an introduction

Next: Amazon Web Services: tools

The Oscar Academy Awards

Wed, 22 Oct 2008 08:00:00 -0400

Some pictures taken this year in the last Oscar Academy Awards in Hollywood. There was also an exhibition of Nascar cars and some drivers hanging around.

Amazon Web Services: an introduction

Mon, 20 Oct 2008 02:27:38 -0400

This post is an introduction to Amazon Web Services, as I'll be writing a series of posts in the following weeks elaborating on the stuff I've been working on this year. Amazon Web Services, AWS, is a platform for infrastructure services in the cloud at very competitive prices. AWS is revolutionizing the IT services in all sorts of companies. No more dealing with hardware, no need to have people available 24/7 to monitor servers, no more trips to the data center, no need for the developers to wait for days/weeks until IT can get you a specific server platform,... AWS is composed ofSimple Storage Service (S3)Elastic Compute Cloud (EC2) Elastic Block Storage (EBS) Simple Queue Service (SQS)SimpleDBS3 is a  like a virtually infinite storage service. You can store files and pay per storage and data transfer ($0.15 per GB-month) EC2 provides a way to have a virtual server running in a matter of minutes. It takes an AMI (Amazon Image) stored in S3 and starts it, giving you a public address where you can ssh to and you have your server ready. There are many publicly available images from Amazon and third parties, with several *nix flavors CentOS, Ubuntu, OpenSolaris... and Windows images coming this fall. There are also images with stacks already installed, mysql, apache, ruby on rails,... If you need you can customize your running server and later capture an image to launch as many instances of it as you want, and also considering that the image provided storage is not persistent, if your image is stopped or dies, everything changed in the server since you started it is lost. There are three types of servers, small, large, extra large,... with different amount of space, cpu, memory,... You pay per type of instance, time running and data transfer, starting at $0.10 per hour.EBS is an EC2 service that allows you to attach a virtual drive to EC2 instances, with high availability and high reliability, and size up to 1TB, providing persistent storage to the instance. The drive can be backed up to S3 too. You pay $0.15 per GB-month allocated. SQS is a simple and scalable message queue, paying for the number of messages and data transfer (1$ gives you up to 500.000 messages) SimpleDB is a web service for running queries on structured data in real time. Haven't tried it at all but seems suitable if you have a huge structured database and need it to scale.Now, why should you care about cloud computing and particularly about Amazon Web Services? well if you are in one of this cases you should definitely check it out:I need a server for a few hours only: with AWS you pay per hourI'm running a startup and dont have the cash up front to setup a huge infrastructure (and I don't know if the company will go under in few months): you don't have upfront costs, just pay for the time you use itI need huge storage space requirements: you can allocate TB of spaceI run a task that needs 24 hours to complete, but could be distributed in 24+ servers and take less than 1 hour: it will cost pretty much the same to have 1 server running 24 hours than having 24 servers running 1 hourI need to scale fast: you can add servers in a matter of minutes, storage space,...I need high availability and geographical distribution: Amazon provides availabilty zones, so far three for EC2 in the US East coast, and two for S3, US and Europe, most likely the possibilities will grow in the futureT[...]

Interview in JavaHispano

Mon, 20 Oct 2008 00:46:30 -0400

JavaHispano, the portal for the Spanish speaking Java community has published a podcast (in Spanish if you haven't figured out yet (image) ) where Abraham Otero interviews me, covering a little bit of my past, how I got involved with open source, the Apache Software Foundation, Eclipse, and other projects, how do they work, my personal view on the status of open source, the job market and a comparison of the USA vs Spain in many aspects for people working in the technology world.

Q4E and Eclipse IAM news and talks

Tue, 14 Oct 2008 15:28:57 -0400

Q4E, the Maven plugin for Eclipse, is in the process of moving to the Eclipse Foundation infrastructure as Eclipse IAM (Eclipse Integration for Apache Maven). We are going through the IP verification process, which is quite strict at Eclipse, so it takes some time to move the bits and pieces over. We are doing it slowly to prevent disruptions while the development still continues and to have a smooth transition. There will be some time while some things are still hosted at the Q4E site and some at IAM.

And in the next weeks the project will be present at two important conferences where Abel Muiño and myself will be talking about the project features, status, future direction,...

ApacheCon US, New Orleans, November 6th
Carlos Sanchez: Q4E and Eclipse IAM, Maven integration for Eclipse
"Q for Eclipse", now Eclipse IAM (Eclipse Integration for Apache Maven), is a new Open Source project that integrates Apache Maven and the Eclipse IDE for faster, more agile, and more productive development. The plugin allows you to run Maven from the IDE, import existing Maven projects without intermediate steps, create new projects using Maven archetypes, synchronize dependency management, search artifact repositories for dependencies that are automatically downloaded, view a graph of dependencies and more! Join us to discover how to take advantage of all these features, as well as how they can help you to improve your development process.

Eclipse Summit Europe, Ludwigsburg, Germany, November 20th
Abel Muiño: IAM new & noteworthy
Eclipse IAM (Integration for Apache Maven) is a new eclipse technology project in the eclipse incubator providing integration of maven in eclipse. In this talk we will review what features are already present on Eclipse IAM, what is on the roadmap and how users and adopters can configure and extend it.
Abel Muino is the project lead for Eclipse IAM (Integration of Apache Maven) and principal architect for Berggi Inc. For the past 5 years, he has worked as java developer and architect in Data Integration, Security and Services for Mobile Devices.

Rally Teresa Herrera

Mon, 22 Sep 2008 09:00:00 -0400

Pictures from the Rally Teresa Herrera in A Coruña. I drove a 1968 Peugeot 404 Coupé designed by Pininfarina, 100 horse power, not bad for the 60s. 1968 Peugeot 404 Coupé Pininfarina 1968 Peugeot 404 Coupé Pininfarina 1968 Peugeot 404 Coupé Pininfarina 1968 Peugeot 404 Coupé Pininfarina Los Cantones Rally Teresa Herrera 1968 Peugeot 404 Coupé Pininfarina Los Cantones Rally Teresa Herrera panorama Los Cantones Rally Teresa Herrera panorama Los Cantones Rally Teresa Herrera panorama Los Cantones Rally Teresa Herrera Los Cantones Rally Teresa Herrera panorama Los Cantones Rally Teresa Herrera Rally Teresa Herrera Rally Teresa Herrera Rally Teresa Herrera Monte San Pedro Bahia de Coruña panorama Torre de Hercules desde San Pedro Torre de Hercules desde San Pedro [...]

Travel: Coruña, Spain

Mon, 15 Sep 2008 09:00:00 -0400

Pictures from my hometown, A Coruña, last December, in the area around the Tower of Hercules, the oldest lighthouse still working in the world. The Tower of Hercules is an ancient Roman lighthouse located on a peninsula about 2.4 kilometers (1.5 miles) from the centre of the city of La Coruña, Galicia, in present-day north-western Spain. The very name of "Corunna" is said to be derived from the ancient columna, or column. It stands 55 metres (180 ft) high, and overlooks the North Atlantic coast of Spain. The lighthouse is almost 1900 years old and is the oldest Roman lighthouse still used as a lighthouse. The structure was rehabilitated in 1791.[1] The Tower of Hercules is a National Monument of Spain and since 27 April 2007[2] has been nominated as a UNESCO World Heritage Site. Me staring the waves crashing Stormy ocean Torre de Hercules Obelisco A Coruña en Navidad Waves crashing from Torre de Hercules Waves crashing from Torre de Hercules Panorama A Coruña desde Torre de Hercules Panorama A Coruña desde Torre de Hercules Panorama A Coruña desde Torre de Hercules Panorama A Coruña desde Torre de Hercules Panorama A Coruña desde Torre de Hercules Staring the waves crashing Waves crashing [...]

Geotagged live video from cell phone with Ipoki and Qik

Fri, 29 Aug 2008 08:00:00 -0400

What about streaming live video from your cell phone while you track your route (and not just a point) with the phone GPS? Now you can do it with Ipoki, a GPS based social network, and their new integration with Qik, live video streaming service from cell phones.

Ipoki lets you share your current location with others in real-time. Also, you can see where your friends are and track them on Google Maps and Google Earth. Ipoki lets you keep track of your routes and use it to geolocate photos in flickr automatically. Invite your friends to see where you are and find and follow them across the world. Feel free to sign up. It's free.

In this video you can see the Ipoki web page with the moving real time location in a map (meters and seconds precision!) and the live video feed from an user driving around recording the wonderful views of my city (image)

You can also tag online your Flickr pictures using you cell phone location recorded and the picture timestamp, avoiding carrying (and buying!) an extra GPS logger, and without installing extra software. Seems that I just need to upgrade my phone!

(object) (embed)

Saturday in Madrid, Coruña later

Tue, 22 Jul 2008 12:00:00 -0400

This Friday I leave for Madrid, I want to meet some people there so I'll spend some days around, until leaving to Coruña sometime next week. If you are around drop an email or leave a comment (image)

Travel: Allariz, Galicia

Mon, 21 Jul 2008 14:50:27 -0400

Allariz is a small town in the region of Galicia, northern Spain, with a strong medieval character.Reflections Panoramas [...]

Warszawa (Warsaw)

Mon, 7 Jul 2008 08:00:00 -0400

Warszawa is the capital of Poland. During the World War II it was razed to the ground by order of Hitler, around 85% of the buildings were destroyed. After the war the old town Starowka (see below) was reconstructed and now it's an UNESCO world heritage site. The Palace of Culture and Science, built by the soviets, is the tallest building in Poland.

(image) (image) (image) (image) (image) (image) (image) (image) (image) (image) (image)

Entrevistado por

Fri, 4 Jul 2008 03:00:00 -0400

Pedro Jareño de me ha hecho una entrevista en su parada en Los Angeles durante su vuelta al mundo, por si quieres saber alguna cosa más sobre mi (image)

minube es una web de viajes "social" con una comunidad de usuarios, muy a la web 2.0. Pedro está dando una vuelta al mundo y blogueando desde los lugares que visita para promocionar la página.

Upgrading Struts 2.0.x to 2.1.x

Wed, 2 Jul 2008 18:28:30 -0400

Now that Struts 2.1.2 is officially out you may want to upgrade. I've found the upgrading instructions at the Struts wiki to be extremely useful, and pretty much you'll need to read the whole thing.

Two things that I've contributed to the wiki:

Ensure no dependencies in the freemarker groupId are used as the latest version used by Struts is now under the org.freeemarker groupId and you'll get classpath conflicts if you added a freemarker dependency.

In the unit tests you may get a NullPointerException as ActionContext.getContext() does not create a context on demand, I think there are better alternatives to avoid the direct use of getContext, but this snippet will fix the problem.

ConfigurationManager configurationManager = new ConfigurationManager();
configurationManager.addContainerProvider(new XWorkConfigurationProvider());
Configuration config = configurationManager.getConfiguration();
Container container = config.getContainer();

ValueStack stack = container.getInstance(ValueStackFactory.class).createValueStack();
stack.getContext().put(ActionContext.CONTAINER, container);
ActionContext.setContext(new ActionContext(stack.getContext()));


Poznan, Poland

Wed, 2 Jul 2008 08:00:00 -0400

Poznan is one of the oldest cities in Poland, and the fifth in size. Poznan's cathedral is the oldest in the country, containing the tombs of the first Polish rulers.

(image) ` (image) (image) (image) (image)

New York, New York (3)

Mon, 30 Jun 2008 08:00:00 -0400

Last batch of pictures from New York, I promise . [...]

Functional testing with Maven, Cargo and Selenium

Wed, 25 Jun 2008 21:12:40 -0400

.code-keyword { color: #000091; background-color: inherit; } .code-object { color: #910091; background-color: inherit; } .code-quote { color: #009100; background-color: inherit; } .code-comment { color: #808080; background-color: inherit; } .code-xml .code-keyword { color: inherit; font-weight: bold; } .code-tag { color: #000091; background-color: inherit; } Setting up automated functional integration tests is not too hard if you have the right tools. It can take you a bit of time to setup but in the long run you'll benefit from reduced QA times, reduced risks, a more confident development team, the ability to do safe refactorings, and many more advantages.I'm going to explain how Maven, Selenium, Cargo and JBoss 4.2 can be setup to run automatically in a continuous integration server such as Continuum customizing the server configuration as needed and deploying any webapp automatically. Every time the webapp is changed the CI server will execute the tests against the latest version ensuring you are always in a safe state.The biggest difference with other tutorials I've found is that most of them cover just Jetty and are not updated to the latest versions of libraries and tools, so here it is my contribution.Architecture A new project is setup with dependencies to the war project to be tested. Also required a dependency to selenium java client.Cargo will download and install the application server (JBoss)We will copy any required configuration and libraries (ie. jdbc driver)Cargo will start the application serverThe Selenium server is startedSurefire executes the junit tests that interact with the selenium server and test the running appCargo will stop the app server We use profiles to enable different combination of browser/application server. By default cargo uses jetty. Config Profiles JBoss 4.2 and Firefox (default) -Pjboss42x,firefox JBoss 4.2 and Internet Explorer -Pjboss42x,iexplore Jetty and Firefox -Pfirefox Jetty and Internet Explorer -Piexplore The POM Dependencies com.acme mywebapp ${project.version} war mysql mysql-connector-java org.openqa.selenium.client-drivers selenium-java-client-driver 1.0-SNAPSHOT test Properties used in several places Ports, where to uncompress the application server,... ${project.[...]

New York, New York (2)

Tue, 24 Jun 2008 20:01:31 -0400

A lot more pictures from my trip to New York. [...]

New York, New York

Tue, 27 May 2008 13:29:49 -0400

Some pictures from last year' trip to New York From Empire State building Times Square Central Park [...]

Eclipse IAM passes creation review, Maven support at Eclipse Foundation soon

Thu, 22 May 2008 15:33:45 -0400

This week we have gone through the creation review for Eclipse IAM (Eclipse Integration for Apache Maven), and so we are starting with the paperwork at the Eclipse Foundation to create the project in the incubator and start moving the code from Q4E, the codebase will be donated to IAM as start point.

Development won't stop in the meantime and we don't expect any interruption for Q4E users.

Speaking at CommunityOne on Monday

Fri, 2 May 2008 18:55:12 -0400

Seems that I have been volunteered to do a lightening talk at CommunityOne on Monday at the Moscone as part of the Atlassian session.

Thanks to Cenqua' Pete for offering free drinks in exchange (he hasn't realized yet the mistake he has made) and entertainment like last year (hopefully with some differences in critical parts).

See you there.

JavaOne starts next Monday

Mon, 28 Apr 2008 22:05:55 -0400

If nothing goes wrong I'll be next week in San Francisco "attending" JavaOne. "Attending" means I'll just go to the RedMonk Unconference on Monday CommunityOne and networking at the evening parties (as usual)

I'll drive from LA to SF on Friday or Saturday and back the next weekend, hopefully doing some sightseeing, anyone around for a drink during the weekend ?

Q for Eclipse 0.6.0 released

Thu, 17 Apr 2008 12:52:44 -0400

A new release of Q4E is out, 0.6.0, with WTP support and the ability to do a exclude all/force version from the dependency analysis UI. I particularly like the exclude all because if you had to do it by hand you would go to each dependency and add the exclusions. This way you select the dependency you don't want and Q4E will add all necessary exclusions for you.

At last, the long awaited WTP support is present on a public release. Enhanced support for resource processing and fine-grained control of the incremental builds is also supported, along with dependency management features available right from your favorite dependency analysis view.

What's new

  • Welcome Mike Poindexter as a new q4e committer.
  • Web Tools Platform (WTP) support, see the demo video
  • Ability to choose which goals get executed during the incremental build.
  • Profile view displays the available and enabled profiles.
  • Files generated by maven are marked derived in eclipse.
  • Dependency management functions (Force Version and Exclude All) available from the dependency analysis view.

Installation instructions.


Teotihuacan, Mexico

Wed, 16 Apr 2008 08:00:00 -0400

Pictures from the Teotihuacan pyramids close to Mexico City. Really impressive.
Teotihuacán was, at its height in the first half of the 1st millennium CE, the largest pre-Columbian city in the Americas. The city during its existence was larger than any European city of the same era including Rome.

Mexico City

Tue, 15 Apr 2008 00:23:48 -0400


Pictures from EclipseCON

Thu, 27 Mar 2008 13:37:31 -0400

For those considering goign to next EclipseCON, this is the kind of people you'll find there (image)

would you buy anything from this guy?

McLovin from SuperBad (or not)

Fertilizacion cruzada

Love is in the air

Everybody wants a picture with Lynn

Spanish table

Slides from EclipseCON

Thu, 27 Mar 2008 12:51:40 -0400

You can get now my talk slides from the official EclipseCON page for Q4E, Maven integration for Eclipse and Maven, Eclipse and OSGi working together. Here are the direct links:

Update: fixed links

Q4E has WTP support, from today!

Wed, 19 Mar 2008 20:09:26 -0400

Abel has been rushing to get WTP support working just in time for my talk at EclipseCON. Nice job!

Check the screencast. You will need the development verson of Q4E 0.6.0 until it is released (using the update site at

The talk went well, not much to do it 10 min though. Will be posting the slides soon.