Spinning ideas for an advanced Gigaspaces shell

Mon Oct 04 00:00:00 -0700 2010

Update 2011-05-28:

A colleague of mine did a create job getting a Gigaspaces Shell project started and working, thanks Jos :) Check it out on https://code.google.com/p/gash/

As the original GigaSpaces command-line scripts and maven OpenSpaces plugin are far to minimalistic to be usefull for real world use. I'm thinking of creating something to fill the gap!

So, spinning some ideas for an advanced GigaSpaces shell which is usable in real world situations. I’m thinking of features like:

  • Usable as interactive AND non-interactive shell

  • Platform independend; it should run on all common platforms (win32/64, linux, mac, solaris, etc.) without external dependencies to platform specific commands

  • Unified configuration and usage; configuration and usage of the shell must be the same on every platform and between interactive and non-interactive mode; there’s only one way to do something!

  • Option to go in a graphic Interactive shell, something Midnight Commander like so you can walk through a tree with all lookupgroups, gsa, gsc, gsm, lus, pu’s, etc. with the tree at the left side and detailed info of the selected item at the right

  • Support remote deployments

    eg. move defined files over ssh (with possible gateway in between) to GS server or one that can connect to a lookupgroup(s). And deploy the files to specified lookupgroup(s) with specific properties/sla when needed.

    Some requirements can be gathered from the example above (with some extra fantasy :)):

    • Deployable files must be definable

    • Definable files can come from all kind of resources, eg.:

      • Maven repo (configurable)
      • FTP?
      • HTTP(s)?
      • Local disc - ..?
  • Definable files should be deployed in order of definement, as there often are dependencies between PU’s. Undeploy should happen in reverse order.

  • All kind of settings must be definable per deployable file, eg.:

    • deployment properties
    • sla - …?
  • Ssh needs support for tunneling/gateway, where the gateway as possibly different login credentials as the final ssh login. Usage of Public-Private-keys must be possible.

  • Deployment config must be highly modular, eg.:

    • With a general config and possibility to override settings per deployment file
    • Possibility to create config groups and extend them
  • Statistics, all supported statistics by the GS Admin API must be usable

  • The interactive and non-interactive shell must be intuitive, eg.:

    • Has auto-completion support (eg. bash-like tab-tab auto-completion)
    • Has command history support (eg. bash-like up-down history)
    • Each command must have an usable and self-container help feature (eg. svn-like svn help {command} or svn {command} help)
  • Must be able to work with multiple hosts (something Capistrano/Fabric like functionality)

  • Must be configurable for multiple stages (eg. local, dev, integration, staging, preproduction, production)

  • Support for quering spaces

  • Show the full url’s that webapps are bound to

So for short:

All possible GS Admin API features must be usable

Interesting links:

Bike trip, Veenendaal Doorwerth, NL

Sat Jul 31 00:00:00 -0700 2010

Did a bike trip yesterday evening after work, I rented a bike and started hitting the paddles around 18:00, Friday after work.

The plan:

To see if it’s do-able to drive from Doorwerth to Veenendaal and back, on my bike, on a daily basis.


I’m currently living about 75Km from my work, driving about 3 hours per work-day to get to work and back home. Therefore I’m looking for a place to live closer to Veenendaal where my work is located. Looking for a while now, about 2 years, I finally found something I’m interested in. A maisonette apartment inĀ  Doorwerth. A small village only about 20km from Veenendaal lying in the middle of the woods. I love the outdoors, I love nature, so living almost in the woods is ideal for me. And the supermarket is only a minute or two walk away, what more could I ask for? :)

The trip

Back to the trip. So I started from work in Veenendaal. I had checked the route infront via Google Maps, but hadn’t printed it (on purpose). I had my GPS with me just in case. Paddling out of Veenendaal was easy, needed to follow the round-way around Veenendaal to get to the other side of it. Reached my first decision point; going over the highway in the direction of Ede or paddle into middle of nowhere between the meadows? I asked the first biker that came my way and told me to take the way between the meadows, “it’s a maze but just keep going that way” he pointed. And there I went, left, right, left, right, keeping turns to make sure I kept my directions. Finally drove into a village called Bennekom. At the stoplight I asked the nice lady for direction and she replied ”I’m going in that direction, you can drive with me for a while”, that was nice and easy. At the outerside of Bennekom I said thanks and goodbye to the lady and followed the route she had explained to me, well… the directions she gave were “just follow this road, after a while you’ll see road signs with directions to Doorwerth”. But hey, she was right :) Then the hard part of the trip came… I needed to climb some big hills, and we don’t have much of them in The Netherlands but it looked like I had them all at ones. It was exhausting! But I made it, pfff… I reached Doorwerth. Conclusion of this part of the trip; amazingly beautiful nature, but way to many hills to paddle every day by bike. It took me about 1 hour, according to Google Maps it’s about a 20,5Km trip that I drove.

Then the time came, I needed to get back to Veenendaal. I really didn’t wanted to go over those hills again, I wanted to find a better road. At the information road sign in Doorwerth I found a better one and there I went. While driving through Heelsum I found a supermarket. As I started this trip directly after work, I hadn’t eat yet, so I bought something to eat and drink that I could consume on the road. Out of Heelsum I drove into and out of Renkum following road signs Rhenen/Wageningen, the nature road. Out of Renkum a mighty view started to appear, a big steep forest hill at the right and open meadow at the left with a big river behind it. When I found a nice picnic bench I paused and consumed my food and drink while having an amazing view. Time went on so it was time to step on the paddles again and bike up the hill into Wageningen onto “de Nude” and onto a bicycle path between the meadows. Came across a nice skater girl, good time to ask for directions :D She explained “Just straight again and when you go over a small bridge, go over it and turn right. Follow that bicycle path and you’ll reach Veenendaal”, while explaining she hinted “btw. this is a very beautiful road to take, there is a faster one but this is the beautifulest one” so I went for beauty and took her advice. Many nice flat meadows later I reached Veenendaal and found my working place. Wow what a trip! My knees we crying for some relaxation but I did it. Conclusion; the trip that I took from Doorwerth to Veenendaal was much better and really do-able on a day-to-day basis, but it needs some practicing. I’ve no idea on timing because I took a lot of breaks in the this part of the trip. But it was already 20:30 when I reached my workplace. With the breaks that is a total of around 1,5 hour for a distance of about 26Km.

Total conclusion; I can really make this work. Taking the second part of the trip on a day-to-day basis is do-able, just need to buy a good bicycle. And I can always take the first part of the trip if I want some more excitement at the end of the workday.

Show route on Google Maps

Maven download sources of dependencies

Wed Jul 14 00:00:00 -0700 2010

With the following Maven command you can download all compiled and sources of dependencies of your Maven project:

mvn dependency:sources