Saturday, May 25, 2013

CloudJee from Pramati: Java apps in the cloud

CloudJee | Mission Critical Java Apps in the cloud

CloudJee is a Java cloud apps company/product from Pramati, an Indian software  company.

http://www.cloudjee.com/customers

http://pramati.com/about

http://m.prnewswire.com/news-releases/announcing-cloudjee-the-proven-cloud-platform-for-building-mission-critical-java-saas-applications-208471431.html

I remember Pramati from the early days of Java and J(2)EE. They were the first and maybe the only Indian company to create a J2EE (Java 2 Enterprise Edition - now called JEE) application server. Interesting to see that they have been existing all this while, and have come out with CloudJee.

CloudJee/Pramati also recently acquired WaveMaker, a tool for building Java apps, from VMware, and have integrated it into CloudJee.

http://gigaom.com/2013/05/01/vmware-garage-sale-continues-as-it-offloads-wavemaker-to-pramati/

- Vasudev Ram
dancingbison.com

Friday, May 24, 2013

Test post - ignore.

By Vasudev Ram

Ignore.
- Vasudev Ram - Dancing Bison Enterprises



Inside Google X

Inside Google's Secret Lab - Businessweek

Interesting stuff.

Wednesday, May 22, 2013

Zato, an open source ESB in Python

Zato | home page

Zato is an ESB (Enterprise Service Bus) which is written in Python. It is free and open source (LGPL).

http://en.m.wikipedia.org/wiki/Enterprise_service_bus

Tibco was one of the first ESB products and Mule is an open source one.

According to the Zato site:

It supports HTTP, JSON, SOAP, Redis, JMS WebSphere MQ, ZeroMQ, FTP, SQL.

It has a web admin GUI, a CLI and an API.

Documentation and commercial support are available.

I got to know about Zato recently from the main  developer, Dariusz Suchojad, who had earlier written to me  regarding my blog post about PyMQI:

PyMQI, Python interface to IBM WebSphereMQ (formerly IBM MQSeries):

http://jugad2.blogspot.com/2013/02/pymqi-python-interface-to-ibm.html

Dariusz was a maintainer of PyMQI and also a developer on Spring Python, which is sort of a port of the Java Spring framework to Python.

Zato docs (quite detailed):

https://zato.io/docs/index.html

Part 1 of a basic Zato tutorial:

https://zato.io/docs/tutorial/01.html

I took a look at the tutorial. Broadly, it shows how to install Zato, create a simple Zato service in Python, that talks to PostgreSQL and Redis, and deploy it. Two servers get created, behind a load-balancer, and the service gets hot-deployed to the servers. Then curl is used to access the service. (This tutorial does not create a real client; curl is used to simulate one.)

Zato looks interesting and powerful (and somewhat complex, but that is to be expected for a product like an ESB).

I will check it out more and then report on my findings.

- Vasudev Ram
dancingbison.com

Tuesday, May 21, 2013

A partial crossword solver in Python

A Cryptic Crossword Clue Solver ←

Saw this via Twitter.

It is a partial crossword solver, because it only helps solve a particular category of crossword clues - those in which the clue (which is usually a sentence or phrase) contains both a "definition" of the answer as well a hint of some kind that leads to the same answer. This solver tries to compute the answer using both the definition and the hint, and checks whether the results match. Ingenious.

I found it interesting because this is a somewhat difficult problem, and yet the author managed to create a solution (involving NLTK and parsing) that works in many, if not all cases.

Also, long ago, in college days, I had written another kind of partial crossword solver (in BASIC); it was much simpler, using a brute force method - what it did was help solve the kind of crossword clues in which the answer is a permutation of a substring of the characters comprising the clue sentence or phrase. The program would generate and display on the screen, all possible permutations of all possible substrings of the sentence, that were of the same length as the answer. Then you had to view those permutations and guess whether any of them was the right answer, based on the clue.

I wrote the permutation-generation code by hand, but saw recently that the Python itertools module has methods to generate permutations (as well as combinations) from sequences:

http://docs.python.org/2/library/itertools.html

http://en.m.wikipedia.org/wiki/Permutation

http://en.wikipedia.org/wiki/Crossword

- Vasudev Ram
dancingbison.com