Planet Webservices

May 17, 2008

Afkham AzeezDefinition of Scalability

The ability of the of a system to continue to operate correctly even when it is scaled to a larger size. In the context of this project, the system should continue to operate correctly even when the system scales up or scales down. Sometimes this is also referred to as load balancing or simply as scalability.

This is also sometimes called "High Scalability"

Afkham AzeezDefinition of High Availability

A system that is designed for continuous operation in the event of a failure of one or more components. However, the system may display some degradation of service, but will continue to perform correctly.

The proportion of time during which the service is accessible with reasonable response times should be close to 100%.

Afkham AzeezGroup Membership Management Schemes

Static Membership
In this scheme, only a defined set of members can be in a group. The Group Membership Service(GMS) will detect members joining or leaving the group. External members cannot join the group. Each node may obtain the group member details from a central repository or configuration file.

Dynamic Membership
In this scheme, the membership is not predefined. Members can join a group by specifying the appropriate group name, and also can leave the group. The GMS will detect new members joining or leaving the group. The group membership information may be obtained from the GMS.

Hybrid Membership
This scheme is also called Well-Known Addressed(WKA) based membership. In this scheme, there is a set of well known members. We can consider these members as belonging to a static group. External members can join this group by notifying one of the well known members. These external members can then get the current group membership from this well known member. When new members join the group, the well known members will notify all other members. When members leave the group, the GMS can detect this event.

May 16, 2008

Steve LoughranSourceforge breaks everyone's release process

Anyone who had an automated SourceForge. release process is soon about to discover that it is broken.

Yesterday, their site status feed announced uploads was offline
(  2008-05-15 08:13:49 - SourceForge.net Web Site  )   As of 8:00AM Pacific on 2008-05-15, 
file release uploads have been disabled for a systems upgrade.
Today we get the follow up news
(  2008-05-16 04:17:52 - Download Servers ) As of 2008-05-15 at 08:00 Pacific 
the new File Release System upload interfaces were put into place, replacing the old FTP-based one. 
Web form, WebDAV, rsync over SSH and SFTP are the new supported methods

If you follow the documentation links you can see that they are right -with no notice other than a 24 hour outage, they've pulled the single existing way to upload artifacts, FTP.

The doc discusses how to mount WebDAV filesystems and use drag/drop or a command line to make releases, and what GUIs there are for SFTP, but there seems to be little thought to how to automate this. Why, for windows users they recommend cygwin, which is the worst of both worlds.

I'm clearly unhappy about this. Ant doesn't have an sftp task, and while I could add it, it would force us to release on 1.8.0 alpha releases. And my coverage in Ant in Action on how to automate the release to SourceForge in Ant is henceforth obsolete. Maybe we should move off SourceForge. If our tools can't talk to it, what choice do we have?

Steve LoughranXPSP3 -seems to work OK

I've upgraded my real+virtual XP boxes to SP3. What's it like? Faster, that's what. The GUI feels more responsive, and the laptop just seems happier. I should be able to get some more months out of the box before corporate IT gets hold of me and downgrades to vista on a widescreen notebook whose area is actually less than my current 1500x1050 laptop monitor.

Despite all the horror stories, it went fairly smoothly. The only troublespot was my own fault. Before SP3 installs, it copies files it is about to stamp on, and it couldn't copy outlook express. At some point in the past I must have got fed up with outlook express and MS messager, being uninstallable parts of the system, and sometimes starting up without my explicit consent (especially messenger). You can't even delete the file without System Protection Manager noticing, and correcting your mistake by putting it back. So I must have turned off the System Protection Manager service and fiddled with the protection of the exes so they werent readable by anyone. This certainly stopped outlook express from running, from msimn.exe from starting and telling me off for not logging in, but SP3 wouldn't back up the existing files, let alone install. I had to stop system protection manager, reset the permissions and then do an upgrade. And afterwards, make the files unreadable again.

No applications have broken, all seems well. What a service pack should be.

Afkham AzeezSetting up the HUAWEI E220 3G HSDPA USB MODEM on Linux

Ajith RanabahuFunny :)

In the light of the Debian - Openssl bug (which made me regenerate all my keys I use to login to known servers, including the Apache people server), I found the following to be interesting ;)



(image courtesy of http://xkcd.com/)

May 15, 2008

Deepal JayasingheWhat is a SOA Registry ?

SOA and Web services are becoming the most popular key words in nowadays software industry. As a results of that there are so many other technologies and components build around SOA. Among them ESB and Registry can be considered as top of the list. Different people have different definitions for them and there are a number of different implementations out there as well. It is a very hard questions to answer whether the ESB is more important or the Registry when it comes to SOA.

When we considering about SOA registry , which is of course not a new concepts. UDDI is one of the good example for a traditional way of dealing with SOA registry. I can not tell the exact reason but UDDI does not become that popular , that is why people try to find new alternatives for UDDI (based on SOAP , REST etc.. ). So if someone going to implement a new SOA registry then I think he has to address following items,


  • Service publishing

    • The implementations should be provide a way to publish services as well as service related metadata such as WSDL , XML Schema and etc..

  • Service discovery

    • The implementations should provide a way to discover the service. Say for a example I need to find GPS service , then from the registry I should be able to find out one or more end point addresses for that service. And invoke the service.

  • Federation

    • Different implementations should be able to communicate with each other and share , validate data and so on. This is also a key feature in SOA governors.


So no matter how and who is going to implement a SOA registry , they need to address above. IMO without having support for at least first two items of above we can not claim what we have is a SOA Registry.

In addition to those SOA governors is also key factor we need to consider when we implement SOA registry. Governors is more about management side of the services. Service lifecycle , different kind of policy , ensuring various standard like WS-I , and then validating artifact like WSDL , Schema and Policy is also part of SOA governors.

In any given registry we can find two stages deployment time as well as runtime. At the deployment we will be using the registry to store various artifacts , however at the run time we will use the registry to authenticate , authorize , ensuring policy etc...

Sam RubyMen in Suits

Geir Magnusson Jr: Given that fact that the statements contained in [link] are given by a Sun employee identifying himself in his job role, can I assume that Sun is interested in taking this discussion public? I think that is a really healthy approach. I think there is confusion about the basic facts and I think clarification will be useful for the community as a whole.

Simon Phipps: The lesson to be learned is that the best way to get Java everywhere was to work with the community rather than expect the community to work with Sun. Let’s hope that lesson sticks and spreads.

There is a discussion going on.  At the moment, it appears to be between Sun and the press.

It is the right discussion to be having.  Let’s just make sure that the right people have every opportunity to participate.

Afkham AzeezStatic cluster membership for Axis2 & WSO2 Products

I just added this feature to Axis2. Now all WSO2 products can be configured to use static membership. The most common method of membership management and membership discovery is multicast based schemes. However, it is not always possible to rely on multicasting. On Amazon EC2, multicast-based membership management is not possible since multicasting is dissallowed. Hence a static membership management scheme is necessary. In fact, this is the first step towards making WSO2 products scale on Amazon EC2.

Static membership is configured in the axis2.xml file. You need to locate the "cluster" XML element in this file. Next find the "membershipScheme" parameter and set it to "wka". wka stands for Well-Known Address.

<parameter name="membershipScheme">wka</parameter>

You need to define the values of the "tcpListenHost" and "tcpListenPort" entries. The listen host is the name or IP address of this member. (i.e. the member on which this axis2.xml file resides)


<parameter name="tcpListenHost">host0</parameter>
<parameter name="tcpListenPort">4000</parameter>


After the declaring the cluster level parameters, you can define the list of static members as follows:


<members>
<member>
<hostname>host1</hostname>
<port>4000</port>
</member>
<member>
<hostname>host2</hostname>
<port>4001</port>
</member>
</members>


host0, host1 & host2 are the machine names. That is it. Restart the nodes after configuring them as described above.

When members in this list join or leave the group, each node will automatically detect it. This is done using a periodic TCP ping.

May 14, 2008

Davanum Srinivas[Apache] Where did "Karma" come from?

First reference to karma on an apache mailing list:http://markmail.org/message/jrp2vtljf5ot3phf   Next clue, the following post points to CVS as a possible source: http://markmail.org/message/gieddyl4tmqupezt   Wading through the CVS archives, It looks like we have a person named dprice (Derek Price?) to blame at the very least for checking in a contribution into CVS: http://cvs.savannah.gnu.org/viewvc/cvs/ccvs/contrib/cvs_acls.in?annotate=1.1&hideattic=0http://cvs.savannah.gnu.org/viewvc/cvs/ccvs/contrib/cvs_acls.in?hideattic=0&view=log#rev1.1 [...]

Sam RubyBeta 1.1

B1.1 of Agile Web Development with Rails, 3rd Edition is out.  Unless you have an deep interest in the migration function, there isn’t much new content here — the primary focus on this update is addressing the errata and forum comments received to date.

This effort has turned out to be both harder and more rewarding than I would have ever anticipated.  Harder in that Rails has changed so much, there has been so much to learn (in terms of Rails 2.0, SQLite3, and also in terms of working with a different publisher, operating system, and toolset).  But I can’t begin to express how much I like the beta books program — the readers that this book has attracted so far have been great and their comments, questions, and feedback have been most appreciated.

Also, while this book has always had ample source code provided, I’m continuing to look for ways to both expand and automate.  Rerunning the code on rails edge, for example is now something I can repeatedly do in a matter of minutes.

May 13, 2008

Steve LoughranTired of Outlook

So the reason for having rich client applications is for a better off-line experience, right? Why then, does outlook suck? Why is it actually less responsive than gmail on firefox?

Why, when you have set 'empty deleted items on shutdown' does it try and delete the deleted items folder contents (a directory on the server), one by one, with some animation? Not only does this take so long on OS reboot (it's reboot tuesday) that the OS gets fed up and kills it, making the database corrupt, given that the mailbox is server hosted, surely a quick request to the server (rm, "inbox/deleted/*") could do the work. The client -that is meant to be a cache of the server- could do its cleanup in the background, some other time.

Steve LoughranUpgrading to Ubuntu 8.04, week 2

DNS is still hosed. Either the the network stack is dropping most of the DNS packets or Virgin Media are screwing up. Either hypothesis is currently valid. What is clear is that DNS takes 30s to respond. What is more interesting is what fails. Ivy, deserves special mention here. On a machine where DNS is playing up, sorting dependencies takes forever. The only way to get the build to work is to disable the network adapter. I've filed a bug.

OpenOffice is complaining a lot on start up. I'm not the only one. It looks like a recurrence of an old problem -bad migration of settings.

Power management? The SCSI driver wont go into ACPI D3 state, so no Hibernate for me. Same as before.

I have managed to roll back to FireFox 2, by removing my .mozilla directory. Before upgrading to Ubuntu 8.04, take a copy of the .mozilla directory if you ever want to roll back to firefox 2.

I can't say its been a seamless upgrade. The network is unusable; everything else on the LAN seems happy, DNS is just not working properly. I've turned off ipv6, disabled mDNS, edited resolv.conf, edited /etc/host.conf, edited /etc/nsswitch.conf. No use whatsoever. Next: ethernet packet sniffing time.

Sam RubyOpen Standards

Paul Fremantle: For me the core difference between Open Standards and Open Source is this: Open Standards enable companies to compete in a structured way, Open Source projects enable people or companies to collaborate in a structured way

I think Paul may be onto something.  It is rapidly becoming the case that this more than this is becoming the exemplar for open standards.  While it is popular to malign the JCP, it is worth noting that many (most?) JSRs have TCKs which actively promote the idea of multiple, independent, interoperable implementations.

Steve LoughranEverything has a URL, again

Steve LoughranActually, the test suite is the real spec, and most OSS projects have them

There's an Artima Article on Java TCKs that seems to have been got at by the JCP management

Why?

Because it argues in favour of a strong Test suite (the TCK) and that it needs to be kept a secret for the return on investment of the companies behind it. And it criticises lots of OSS projects -hibernate, Apache HTTPD- for not having a 'specification' or an independent TCK.

I disagree

  1. Unless the specification is a mathematically rigorous one, written in a formal language like Z, it is of limited value. It will get mis-interpreted by all the developers, including those of the test kit
  2. But its the test kit that is used to sign off 'compliance'.
  3. So really, the test kit is the formal, machine readable specification
  4. Admittedly, often one written procedurally, in languages like Junit+Java, rather than in a higher level declarative syntax (compare with Prolog's PLUnit). It also lacks the ability to enable proofs of correctness or temporal reasoning, which something like PolyML offers.
  5. All OSS projects I've been involved in have excellent test kits. Team Ant wrote AntUnit for its testing, the SmartFrog test framework can be used for functional testing of large distributed apps. Axis run their own tests alongside the TCK. As for Hadoop, they test on 500 nodes before every release.
  6. All these tests are run by machines, many times a day
  7. All the home-grown tests are public, open for maintenance with the cost-sharing benefits of OSS processes
  8. Try doing that with a committee-designed specification.

Paul FremantleEsper 2.1 ships - with Axiom support

Esper 2.1 has shipped. Esper is a cool project that looks for patterns in streams of events. You can use a SQL-like language (EPL) to create queries against groups of events.

Esper is very useful in electronic trading, fraud detection, RFID processing, etc.

You will notice that I get a bit of credit in the 2.1 release note. I should note that Sanka Samaranyake helped me out with this code.

Esper supports different "event" types, including JavaBean, Map and XML. The existing XML support was built on DOM.

I added support for Streaming XML events via Apache Axiom. Axiom is a tree view built on top of the StAX streaming XML pull parser, and it supports efficient XPath processing via Jaxen. What this means is that you can have an XPath expression at the start of an event, and the parser will execute it without parsing the complete event.

I was motivated to write this for two reasons. Firstly, Axiom is very simple to replace DOM with. So you can add streaming support to any DOM application very quickly. Secondly, Axiom is the message format that Apache Synapse uses, and as you might have seen from previous blog posts, I've been putting Synapse and Esper together for a while now.

Sanka did some performance tests with the pre-release code and it showed some significant performance benefits over the existing DOM parsing. And of course those benefits will be even more pronounced when using Esper and Synapse together - because there is now no need to convert the message to DOM. Look out for an updated Synapse/Esper mediator in the near future.

Finally - congratulations to Thomas and the team at Esper on the release.

Paul FremantleOpen Source versus Open Standards

There is an ongoing debate about Open Standards and Open Source at Artima. I have considerable experience in both activities. I ran the very first JCP group that was completely open - JSR110 Java APIs for WSDL. We had an open mailing list, an open source reference implementation and an open source TCK. Since then I've chaired the OASIS WSRX TC and also contribute to a number of Apache projects.

For me the core difference between Open Standards and Open Source is this:
  • Open Standards enable companies to compete in a structured way
  • Open Source projects enable people or companies to collaborate in a structured way
What do I mean?

Many open standards groups consist of companies who are in strong competition. The aim of the standard is fundamentally to allow them to agree enough conformance to open up the market and grow the potential business through standardization. So usually the result is the minimum agreement required to create the open environment for competition. In my experience, Open Standards groups are not always effective at creating new stuff - instead they excel at tightening up already created stuff.

Open source projects are usually run by like-minded people who want to share the effort of developing code and share the results. The result is usually much more creative and expansive than Open standards.

Of course there are exceptions. I believe for example that the Web and XML standards were built in a very collobarative way. And there are open source projects where the competition between contributors becomes an issue. However, the general landscape is defined by the objectives of the participants. If the fundamental objectives of the participants are open competition, then there will be those outcomes.

So how does this relate to the JCP discussion?

When companies compete, it is in all their best interests to strongly enforce conformance. However much it might be tempting to "get away" with not implementing a strong set of conformance tests, or not having to go through that testing, the fact remains that standards are worthless without conformance, and so the effort in creating them is wasted without conformance.

So its my assertion that creating a strong set of conformance tests is in the best interests of all parties in a standards body. And I believe the best way to create those is to do it as a collaborative effort. Effectively this is the chance for the participants to get creative about competition. Try to create a test case that proves your competitors system is non-conformant. Collaborate to break each other's systems!

Hence creating the test kit should be done as an open source project. And by that I mean open development as well as open publishing of the source. If you believe in my logic you will come to the conclusion that the JCP model is still in need of revision.

Jaliya EkanayakeUniversity of Moratuwa Tops the Google Summer of Code 2008

It is truly amazing. This year, it is a total of 24 awards for the University of Moratuwa, where I did my undergraduate studies, and it is the rank one in the world!!!

Ms. Vishaka Nanayakkara (Head of the department - Computer Science and Engineering Department) has sent the following email which has all the details. So instead of repeating, let me paste it here.

=============
Dear all,
It is with greatest pleasure I let you know that University of Moratuwa has
become the Global Top University with Highest Number of Awards as well as
the highest number of applications in this year's Google Summer of Code. I
am certain that you will be very proud of the achievements of our students.

The information about this can be found at
http://google-opensource.blogspot.com/2008/05/this-weeks-top-10s-universities-for.html

CSE students started with one award 3 years ago and have bagged 18 GSoC
awards this year. There is one ENTC student and another first year student
from the Faculty of Engineering. With a total of 24 awards for the entire
University, University of Moratuwa has become the First in the entire world.

CSE students undoubtedly had a tremendous influence on this from Dr Sanjiva
Weerawarana
. It was Sanjiva who first told them about this, it was his
guidance that led them to achieving the first award, it was his continuing
support (together with members of the FOSS community) which enabled them to
come this far. I think we at CSE owe him a lot for this great achievement.

I am certain that all of you as people who helped CSE come this far, members
of the CSE department industry consultative board, mentors, visiting
lecturers or well wishers of the department also have contributed in many
ways for the upbringing of our students and will be happy to share this
wonderful news with us.

Best regards,
Vishaka

=============

Deepal JayasingheWSO Registry and SOA

In the upcoming release of WSO2 registry we are going to have a number of SOA related features. I spent considerable amount of time and get the eclipse WSDL validator working out the eclipse as well. So we are going to have that in the next registry version. Among the some of the SOA features.

- WSDL validation
- Schema validation
- WSDL import (when there are imports , registry automatically import them into the registry and add as resources)
- Schema imports (same as WSDL imports)
-Extracting WSDL mata-data (such as targetnamespace , documentation and etc)

May 12, 2008

Ajith RanabahuMora at number one in GSoC

University of Moratuwa, (Mora in student lingo) my undergrad college, became the school with both the highest number of applicants and the highest number of acceptances in GSoC 2008. I myself was a mentor for GSoC twice (2005 and 2006 IIRC) and I should say GSoC has come a long way in becoming the premier opensource event of the year. I'm glad to see that we Sri Lankans are leading the way in Opensource :)

Sanjiva WeerawaranaGSoC: Univ. of Moratuwa, Sri Lanka on top of the world!

Wow; this is amazing: Apparently University of Moratuwa, Sri Lanka had the most number of Google Summer of Code applicants and accepted proposals this year!

That's awesome! I'm proud to be associated with Univ. of Moratuwa (I teach part time in the Computer Science and Engineering department) and a large percentage of our superb WSO2 engineering team are from there.

Congratulations to everyone at University of Moratuwa, especially to Ms. Vishaka Nanayakkara, Head of Computer Science and Engineering, for her tireless efforts to get students to participate in GSoC and other similar activities and to her incredible passion towards developing the program and the students. Not all applicants are from CSE of course but I believe a large percentage are.

Deepal JayasingheTop 10's: Universities for Google Summer of Code 2008

WOW it is nice to see that the university which I graduated (University of Moratuwa) is in the top of the list as well as the university I am planing to go for grad school (Georgia Tech) in the sixth place.

See more details Link

Sanjiva WeerawaranaMashing up tweets live using WSO2 Mashup Server

Tyrell Perera, one of the WSO2 mashuppers, felt challenged upon seeing http://twittervision.com/ to see how long it'd take for him to create a similar thing using the WSO2 Mashup Server, the only 100% open source mashup server in town.

Apparently after 5-6 hours he ended up with this! WOW. Not bad at all :).

Want to learn how to do stuff like that? Attend Jonathan's upcoming webinar on the mashup server. Of course you can just download the mashup server, take the code for Tyrell's mashup and go to town without waiting too!

May 11, 2008

Deepal JayasingheIn the Shadow of the Moon

While I was traveling to the USA , I got a chance to watch a very interesting documentary program. I would say that is the best documentary program I have ever watched. Which is none other than documentary on historical moon visits. If you get a chance try to watch the "In the Shadow of the Moon"

Useful links.
http://www.imdb.com/title/tt0925248/

Paul FremantleWhy open standards and interoperability are subtly different

I've been pondering on my experience in Open Standards - especially in the WSRM/WSRX world. In particular I've been thinking about the difference between an Open Standard and an Interoperable standard. It seems to me that there is a general assumption out there that these two things are the same. In an ideal world they would be, but I think there is a gap:
  • Independent implementations
  • Specification completeness
  • Testing
My own criteria for interoperability is that there are "tested independent implementations". This means that different groups have looked at the spec, worked through it and written code. And then they have taken these implementations and tried them against each other.

Let me give a simple example from the WSRM testing. In WSRM there is the option for a client to request an acknowledgement. An acknowledgement (ack) is designed to let the client know which messages have been received and which haven't. The ability to request acks is key to the working of the protocol. However, acks can also be sent by the server without a request. And we built in the option to allow the server to send a "nack" as well as an ack. For example, an ack might say "I have received messages 1-5 and 6-100", but the nack can specify: "I'm missing message 6 - send it now".

During the testing we came across the following situation: the client was asking for an acknowledgement and the server was sending a nack. The client needed to understand the whole sequence state (which the ack gives) but couldn't because it was only being told one data point (I don't have message 6). The result was a problem. Now, we could have simply said - this is a problem with the client - it needs to deal with it. However, the reality is that this - while legal behaviour of the spec - was not something the designers envisaged. The fact is that it is important for the client to be able to request a complete ack. So we solved this by improving the spec. If the server is initiating it can send a nack, but when responding it must always send the full ack.

Of course its possible we might have caught this just by reviewing the spec. But we didn't. The original team who wrote the spec didn't think of this. The WSRX committee that reviewed it didn't spot it. None of the 5 implementers of the spec spotted it. It was only at the interop testing that we noticed it. And it was only because we had independent implementations and interoperability testing that we ended up with a complete specification.

May 10, 2008

Ajith RanabahuUbuntu 8.04 - Second Impression

If you are wondering what the first impression is - its here
Anyway the second impression is slightly negative than the first ! I've had some unforeseen problems while upgrading my office computer (An HP DC7700 desktop). Here is the list.

1. The Kernel started messing up with the USB. I kept on getting the 'connect debounce failure' all over the place (the consoles and dmesg output flooded) . This is a known bug (See the bug report) and there seems to be no clue of what is really happening. I compiled the kernel without bluetooth support (since most ppl reported this problem with the bluetooth enabled. The DC7700 has some bluetooth hardware which I never use) but still the problem is there. For now I've unloaded the ehci and uhci modules (thus disabling the USB support) and waiting to find a cure !

2. The ATI graphics drivers were a mess. However I found this great piece of software called envy (apt-get/synaptic for envyNg) that solved my driver problem for good. fglrx started working for the first time (couldn't get it to work with Gutsy) and enabled compiz - works great. However it took a while for me to figure out that using aticonfig to generate the xorg.conf is not the right way to go !

3. I had a compiled version of FF3B4 and the Hardy upgrade did not change it. However it started grabbing too many resources too quickly and I had to change the symlink manually to point ot the FF3B5 that came with Hardy. Not sure why the installer did not change it automatically but it gave me a headache about a day later!

All these are not so big issues (except for the first one) and I still love Ubuntu :)

May 09, 2008

Tom JordahlNew blog on FlexBuilder 4 features

Scott Evans, a lead engineer on the FlexBulder team, has started a new blog - Getting and Setting that will be for public discussion of new FlexBuilder 4 IDE features. I am really excited by some of the "IDE Maturity" features that I've seen on the drawing boards for the next FlexBuilder. As an avid InteilliJ IDEA user for my Java development, my tumultuous affair with builder has been a tough ride. I am drooling over most of the improvements that I see coming.

He starts out with his lead post asking about how you use Actionscript "getters" and "setters". Do you use a special prefix for your class member variables? Do you create functions as a matter of course? Or only when you actually need them? Post a comment and let Scott know.

I also encourage you to check out Tim Buntel's $100 test posting asking for feedback on what feature you think are worth investing our resources in. He has recently posted an update on the results, which, I pointed out to Scott, valued the getter/setter generation very high on the list. Of course improving the MXML compiler speed was at the top of many folks lists.

Paul FremantleMore Cool - GeoTwittering

If you want to see how incredible our mashup platform is, take a look at this example. Basically, one of our engineers saw TwitterVision. Just 5 hours later and the same idea is running on our open mashup platform. Sign up and start creating your own mashups! Its also pretty compelling viewing too... for some reason I find twitter much more interesting on a map.

May 08, 2008

Apache TuscanyApache Tuscany JavaOne audience ask "can SOA be so easy?!"

I attended Tuscany SCA presentation at JavaOne yesterday. Tuscany committers, Jean-Sebastien and Mario Antollini, were presenting. They demo'd what Tuscany offers through Fruit and Vegetable demo and also demo'd the tools and that Tuscany provides.

Tuscany presentation resulted in many positive blogs. Take a look at this one that it asks "Can SOA Be So Easy!"

http://soa-talk.blogs.techtarget.com/2008/05/08/javaone-report-apache-tuscany-can-soa-be-this-easy/

Mario and Sebastien really got the point across. Yes, SOA can be this easy with SCA.

Sam RubyWord Of Mouth

danah boyd: I decided to go with a Scion xD because it was the right combination of small, cheap, quirky, practical, and dependable. I feel a little guilty because it’s painfully clear that Scion is targeted directly at people like me and I hate ending up fitting into a stereotype, but, well... it is nice to have an iPod jack built in standard and have a design aesthetic meant for hipster 20-30somethings.

danah deserves a commission.  No, I’m clearly not a hipster 20-30something, but there seems to be a transitive property in effect as teenage girls tend to be 20-30something wannabies.  In addition to the aspects that danah mentioned, gas mileage is not too bad.  I also feel that — for this demographic at least — the ability to control an iPod from the steering wheel is an vital safety feature.  We also went for the electronic stability control.

Anybody who happens to be by Fred Anderson Toyota should ask for Phil.

Steve LoughranVirus in a firefox language plugin: the perils of the community

If you use a computer, and worry about its security, you should subscribe to the SANS diary, which keeps you up to date with the networks big security issues.

Today the news is Mozilla Firefox bug ID 432406: Virus found in Vietnamese language pack

It looks like

  1. The person who builds the language pack's network was compromised with a win32 virus that patches advertisment JS into .xhtml files.
  2. The virus patched the help files for the language pack
  3. Which was upload in February
  4. This was before the virus scanners recognised the malware (always the problem), so the file passed the initial security checks
  5. And not found until May, when a rescan of the repository caught it

As it takes Mozilla more than a 1 week to scan the repository, they aren't in a position to detect malware that creeps in ahead of the signatures being updated.

This is pretty scary. It shows that you cant trust .xpi files, even from mozilla.org but I doubt most PC virus scanners look in them. It also shows that the security of OSS products is limited to its weakest link: the security of the computers of the people who make the contributions. Which means that you are pretty vulnerable, as a lot of machines are a mess out there, especially windows ones, where the default low-energy state is 0wned.

When you think that the whole OSS platform is based on an explicit trust of the repositories and the source, that's very scary.

The virus scanning process needs to be improved. A month? Someone needs to copy all the files up to HDFS and then run the scanner as a Hadoop Map/Reduce algorithm...make each signature scan a single map and stream the tasks past the files.

Srinath PereraInstalling custom packages for latex

This link, http://www.inf.ed.ac.uk/systems/tex/new-packages.html
explains how to install custom packages for latex. Basically if they are .dtx or .ins file, they should be processed using latex (latex file), and resulting .sty files need to be placed in ~/texmf (.bst,.bib->texmf/bibtex, font files->texmf/fonts, .sty,.cls,.tex->texmf/tex). Alternatively you can place .sty files in your working directory of latex source.

Also Short Math Guide for LATEX has almost everything you want to know about latex math typesetting.

May 07, 2008

Deepal JayasingheApache Axis2/C 1.4.0 Released

Apache Axis2/C Team is pleased to announce the release of Apache Axis2/C version 1.4.0

You can download this release from

http://ws.apache.org/axis2/c/download.cgi

Key Features
------------

1. Support for one-way messaging (In-Only) and request response messaging (In-Out)

2. Client APIs: Easy to use service client API and more advanced operation client API

3. Transports supported: HTTP
* Inbuilt HTTP server called simple axis server
* Apache2 httpd module called mod_axis2 for server side
* IIS module for server side
* Client transport with ability to enable SSL support
* Basic HTTP Authentication
* Digest HTTP Authentication
* libcurl based client transport

4. Transports supported: HTTPS
* HTTPS Transport implementation using OpenSSL

5. Transports supported: TCP
* for both client and server side

6. Transport proxy support (HTTP)
* Proxy Authentication (Basic/Digest)

7. Module architecture, mechanism to extend the SOAP processing model.

8. WS-Addressing support, both the submission (2004/08) and final (2005/08) versions,
implemented as a module.

9. MTOM/XOP support.

10. AXIOM, an XML object model optimized for SOAP 1.1/1.2 messages;
This has complete XML infoset support.

11. XML parser abstraction
* Libxml2 wrapper
* Guththila pull parser support

12. Both directory based and archive based deployment models for deploying
services and modules

13. Description hierarchy providing access to static data of
Axis2/C runtime (configuration, service groups, services, operations and messages)

14. Context hierarchy providing access to dynamic
Axis2/C runtime information (corresponding contexts to map to each level of
description hierarchy)

15. Message receiver abstraction
* Inbuilt raw XML message receiver

16. Code generation tool for stub and skeleton generation for a given
WSDL (based on Java tool)
* Axis Data Binding (ADB) support

17. REST support (more POX like) using HTTP POST, GET, HEAD, PUT and DELETE
* Support for RESTful Services

18. Comprehensive documentation
* Axis2/C Manual

19. WS-Policy implementation called Neethi/C, with WS-SecurityPolicy extension


Major Changes Since Last Release.
--------------------------------

1. Fixed library version numbering
2. Made Guththila as default XML parser
3. Many bug fixes.
4. Memory leak fixes

We welcome your early feedback on this implementation.

Thanks for your interest in Axis2/C

-- Apache Axis2/C Team --

May 06, 2008

Tom JordahlConflict bug in ColdFusion Extensions for Eclipse

If you are trying to use ColdFusion as the back end to a LiveCycle Data Services Data Management application, you should know about the extensions to Eclipse/FlexBuilder that ship with ColdFusion 8 (and 7.0.2). You can download them from the CF download page here.

One of the great features of these extensions is the ability to use the RDS Dataview window to generate CFCs and Actionscript classes from your database tables, saving you lots of tedious typing. To do this go to Window -> Show View -> Other... -> ColdFusion -> RDS Dataview. This will open the panel that allows you to browse your data sources via RDS. Right click on the panel and select "RDS Configuation" to open the settings dialog and configure your RDS server. For instance I have my local CF server configured as:
Description: localhost
Host Name: 127.0.0.1
Port Number: 8500

I am using the built in web server (port 8500) and the stand alone configuration, so there is no context root. You must have RDS turned on in your installation (see technote here for details) .

Once you have the panel open and have access to your ColdFusion data sources, you can open up a DSN, open the "Tables" folder and right-click on a table name. You can show the contents of the table or open up the Query Viewer (on Windows) and run an arbitrary query. At the bottom of the context menu you should see "ColdFusion Wizards". Select that and the sub menu is "Create CFC".

This gives you a dialog that allows you to create CFCs that correspond to this table in your database. Not only that, it will create either "Active Record" or "Bean/DAO" style CFCs that know how to create, read, update and delete (CRUD) themselves! This is pretty cool in an of itself, but if you are using LCDS to write a Data Management application, this wizard can also write the Assembler CFC (the component that has the required methods for LCDS) for you. This selection is named "LiveCycle Data Services Assembler CFC's". It will generate the Bean CFC (representing 1 row of data), the Data Access Object (DAO) CFC, which has read/write/update/delete methods and the Assembler CFC itself, which uses the Bean and the DAO CFCs to do its work.

Neat, huh?

You can even create the Actionscript class that is used in the Flex application to represent your data when it gets to the client.

This code will work right out of the gate if you have a simple single table application. You can use it as a jump start for more complex applications that have multiple assemblers and a more complex data dependencies.

Unfortunately, there is a bug in the generated code when it comes to conflict detection. As part of the "sync" method, there are private functions which perform the create, update and delete operations (named doCreate, doUpdate and doDelete respectively). If you examine the doUpdate and doDelete methods, you will see a cfcatch clause with type="conflict". This calls the ChangeObject's conflict() function. This function takes as its argument the server's version of the object we are trying to update or delete, so the client application will have all three versions of the data - old, new and the server version:

<!--- If there was a conflict, mark the change object.
Include the current version of the record --->
<cfcatch type="conflict">
<cfset variables.dao.read(id=new.getARTISTID()))>
</cfcatch>


The problem is that the code is using the DAO read() method to get the server's version of the object. If you take a look at the DAO code, the return type is defined to be this:
<cffunction name="read" output="false" access="public" returntype="src.com.ARTISTS[]">

This is an array, which is not what we want to put in the ChangeObject for LCDS. What we really want to put in this object is a single record and to do this, we have to unwrap the array returned by read():

<cfcatch type="conflict">
<cfset readresult = variables.dao.read(id=new.getARTISTID())>
<cfset serverversion = readResult[1]>
<cfset co.conflict(serverVersion)>
</cfcatch>

You may want to include some error checking code in here to verify that the call to read() has returned exactly one result (it should as in the case ARTISTID is the primary key in the table). You also may want to "var" the readResult and serverVersion variables at the top of the function to keep them local (yes, this is annoying, yes we need to fix that).

An alternative approach is to invoke the get() method on the Assembler itself, which will take care of unwrapping the array and throwing errors if there is a problem. In order to do this you would need to create a Struct that contained "ARTISTID" as the get() function takes a map of name/value pairs to support the possibility of multiple primary keys. So this fix would look like this:

<cfcatch type="conflict">
<cfset uid = {ARTISTID=new.getARTISTID()}>
<cfset serverVersion = read(uid)>
<cfset co.conflict(serverVersion)>
</cfcatch>


Notice the use of the new ColdFusion 8 structure initialization!

I can't believe we (specifically I) didn't notice this problem before, but as it turns out my conflict functions did not make use of the server version of the records in all of the applications I have written so I (and I guess our QA folks) didn't notice the problem until just recently. On the bright side, this should be an easy thing to fix (and hopefully we will fix it in future releases of the Eclipse extensions) and gives me an opportunity to talk about this really helpful feature of the Extensions.

Sam RubyVMWare Workstation, Hardy Heron, VMWare Tools

Norman Walsh: In case you haven’t found it yet, here’s a pointer to the instructions for building VMWare Tools under Ubuntu 8.04, “Hardy Heron”.

It turns out that IBM Ubuntu software layer (e.g. VPN software) does not yet work with Hardy Heron.  A few years ago, I would compiling and comparing notes with collegues, but now I’ve gotten complacent.  I mean, really, Hardy has been out for 11 days now, what’s the problem?

So, I decided to try VMWare Workstation (i.e., for Windows).  The above instructions (originally for VMWare Fusion) also work for VMWare Workstation.  Suspend/Resume work, but unless Ubuntu is separately suspended, it won’t re-synchronize with the hardware clock on resume, but the following in crontab for root addresses this:

0,10,20,30,40,50 * * * * /etc/init.d/hwclock.sh start  > /dev/null

The VM runs above the Wifi layer (i.e., appears to the VM as eth0), but below the VPN layer (drats!).

On a T61p, the display runs about as well as the native open source video driver (i.e., no compiz).  One idiosyncrasy I’ve found so far is that releasing the right mouse button often has the effect of selecting the first menu item.

Switching back and forth between operating systems is fast, and one can even share directories (e.g. C:\cygwin\home\rubys as /mnt/hgfs/rubys) and copy/paste between host and VM windows.

May 05, 2008

Steve LoughranGravity: Emergency Warning

This is an emergency warning to people engaged in outdoor activites. There is a fundamental force, "Gravity", which can cause pain and injury if applied incorrectly.

"Gravity" is a very weak force which attracts subatomic particles, those with "mass". While very weak, it does scale up and in large quantities, "planets" can exert quite a force on smaller objects. Normally it provides a valuable service, holding down an atmosphere, keeping property on the planets surface, and such like. It amplifies the effect of "friction", which for mountain biking can be used to transform pedalling into forward motion. "Gravity" is invaluable.

Gouged Knee

However, it has a downside. Because of the force it exerts on mass, any object with weight (such as a cylist and their bicycle) are unable to travel in straight object through space once friction fails, which it may do in wet and muddy conditions. Instead of continuing through 3-space in a vector consistent with their existing direction of travel, "gravity" alters the vector of the massed object, pulling it towards other objects with mass, such as rocks. While the direction of travel is altered, the overall momentum of the object is not affected, resulting in large amounts of kinetic energy being dispersed when the massing objects encounter each other. Some objects may disperse such energy by transforming it to heat and noise. Unfortunately, people appear to transform the energy into pain and damage to bodily parts.

To avoid such problems, consider avoiding cycling on low friction surfaces, such as on wet roots after a rain shower. If such activites are planned, consider body protection (knee pads) and practising safely ejecting from cleated pedals.

Afkham AzeezAxis2 1.4 Released

Just over 8 months since the 1.3 release, we are very proud to announce the release of Apache Axis2 version 1.4.

Downloads are available at:
~ http://ws.apache.org/axis2/download.cgi

The Maven2 main repository has the latest jars as well.

Apache Axis2 is a complete re-design and re-write of the widely used Apache Axis engine and is a more efficient, more
scalable, more modular and more XML-oriented Web services framework. It is carefully designed to support the easy
addition of plug-in "modules" that extend its functionality for features such as security and reliability.

Modules supporting WS-Security/Secure-Conversation (Apache Rampart), WS-Trust (Apache Rahas), WS-Reliable Messaging
(Apache Sandesha) and WS-Eventing (Apache Savan) will be available soon after the Apache Axis2 1.4 release. Please see
these projects' own sites for further information.

Major Changes Since 1.3:
- - Support for JAXWS and JSR 181 Annotations (See 7 samples in the binary distribution)
- - Experimental CORBA Support
- - Fixed tons of small and not-so-small bugs (See list in release-notes.html in the binary distribution)

Known Issues and Limitations in 1.4 Release:
- - Need to use wsimport/wsgen tools in JDK1.6 for JAXWS code generation.
- - Please see JIRA for the current status of bugs

We welcome any and all feedback at:
~ axis-user@ws.apache.org (please include "[axis2]" in the subject, please subscribe first)
~ axis-dev@ws.apache.org (please include "[axis2]" in the subject, please subscribe first)
~ http://issues.apache.org/jira/browse/AXIS2

Thank you for your interest in Apache Axis2!

The Axis2 Development Team

Afkham AzeezNanoWax

I just tried out NanoWax on my car today. The results were very satisfying. It gives a superb shine, and the best thing is, it does not leave white hazy residue. One of the major issues I've been having with other waxes is that you need to be make sure that the wax does not touch the plastic and rubber parts of the body. Otherwise, it leaves hard to remove white patches. No such problems with NanoWax.



It comes with a microfiber polishing cloth, which is an essential item for exterior detailing. It is a bit more expensive than the other waxes available in the market, but I would say that it is well worth the price. The microfiber cloth itself is worth about $5 :)

May 04, 2008

Glen DanielsMay Happenings

A few cool things have been going on recently I wanted to share with y'all.

As lots of folks have noted already, Gartner recognized WSO2 as one of five "cool" vendors to watch out for.  The "cool factor" in their report (which, as much of their content, is available for a fee) revolves around the Mashup Server and its lightweight JavaScript-based approach for composition - but I think the company has cool creds that go way beyond just that, not least of which is our commitment to open-source (the Apache license kind, with no dual-licensing gimmicks) and our awesome team both in Sri Lanka and elsewhere.  Thanks for the nod, Gartner!

JavaOne is fast approaching - and if you'll be there, I'm going to be leading a BOF (Birds-Of-a-Feather.. less like a regular presentation and more like a facilitated conversation) about REST and SOA.  It's Tuesday night, right after the Jersey BOF, and in the same room.  I'll be joined by Marc Hadley and Dan Diephouse to talk about how the two architectural styles differ - but also how they can be fruitfully used together.  Hope to see you there, and since it's late (9:30PM), we will definitely be heading over to the Thirsty Bear (or equivalent) afterwards for beers and continued conversation.

WSAS won a gold award from SearchSOA in the Data Services category!  Congratulations to Sumedha and the whole team for making Data Services not only solid but easy to use.

The open-source middleware world has definitely been on the upswing lately.  I think two factors are combining to make that happen.  First, open-source has been around long enough now with enough serious successes that people don't immediately balk when thinking about deploying it in production.  And second, the recent economic downturn has caused not only individuals but companies to tighten the purse strings and look to maximize value for the dollar (or euro or shekel) wherever they can.  "Free" is a good number for the software itself, and even when you factor in the cost of support contracts most open-source companies can come in well under the pricing of the larger commercial vendors.  And it's even more amazing when you combine that with the ability for your developers to go and read the code to a) check the quality, b) learn how things work, and c) extend the system in ways that can help your organization.

Well, I need to go pack to get on the plane to SF tomorrow.  Hope to see some of you there, and be on the lookout for a new release of the WSO2 Registry sometime soon!  We've been adding some cool new stuff which I'll cover as we get closer to the date.

Eran ChinthakaAnswers to Interesting Questions

Here are the answers to "Interesting Questions", I posted earlier.

1. Imagine you were standing on South pole. Whichever direction you chose to go, it will be north. Travel one mile north. Then go 1 mile east. You will be traveling in a circular path, centering the south pole. Then when you come back south 1 mile, you will be on the south pole once again. Your path will be like a pizza piece. Ok, we have one. What else?
Time to goto North pole ....... What ??? Yeah, you will get infinite points like this.
Stand 1+(1/(2*pi)) miles away from the north pole. Now travel 1 mile north (you will be traveling towards north pole). Then go 1 mile east (you will be going exactly one mile around the north pole). then when you go 1 mile south, you will come back to the same location you started. We selected the distance so that, when we go one mile east, you will be going in a circular path around the north pole and you will go exactly one time around north pole.

There will be infinite number of points like this, which will be on a circle with radius = 1 + (1/(2*pi)) miles and making north pole the center. So do we have more?? Yes !!

How about going around the north pole twice to make that 1 mile. So you will start 1 + 1/(2*2*pi) away from the pole. Like this you can start at any of 1 + 1/(2*n*pi) points from the pole, which will be again infinite combinations.
So you will have infinity * infinity points to fulfill this requirement.

2. This is again tricky :). This is how you do this. You switch on any of the three switches, for about 10 minutes. Then switch it off. Then switch on, one of the other two. Its the time to go to the room now.

If the light is on, then what you have set just now is the switch.
If the light is off, touch the light.
If it is hot, then the switch is what you switched on first. The bulb is hot as it was on for 10 minutes (that is the trick).
If it is not hot, then it is the switch which you never touched.

3. This is completely based on assumptions.
Assume you have 3 windows in an apartment and there are 20 houses in an apartment complex. Assume we have 3 apartment complexes in a block and there are about 200 blocks in your city.
Summing all these info together, we will have about

3 windows/house * 20 houses/complex * 3 apartment complexes/block * 200 blocks/city = 36000 windows/city.
Let's say you want to earn $20 per hour and you can clean 2 windows/hour. Then to clean all the windows you will charge (36000 windows/city) * ($20 per hour/ 2 windows/hour) = $36000 * 10

4. There are different ways of doing this. The one I think the best is to use a ship. Mark the water level on the body of the ship first. Then put boeing 747 of whatever object, that you want to weigh on the ship. Get the difference in water levels and use Archimedes' principles to get the weight.

Will post answers to the next two later.

Eran ChinthakaI think we need Axis2 "Lite Edition"

Last week I was desperate on a particular instrument on eBay and I was bidding like crazy. There were only one more person on this and I wanted to bid at the last 10 secs so that I could get it without increasing the price so much.

Since this was a trivial task, I searched for softwares to do this, and I saw couple of people earning money selling these software.

Interestingly eBay provides a Web services API, which anyone can use to write a tool like that. I wanted to write this as a light weight Swing application, but I wanted to use Axis2 for this. When I looked at Axis2 distro, I was not happy with it, coz we have lots of jars inside our distro which our code was dependingupon. If I am writing a software like eBay trader, which will run on some ones desktop, may it be a small webstart app or a swing app, it should be light weight.
To send bit of SOAP messages, I don't want to have 20 odd jars, especially if this app becomes a webstart app. So I think its the time to start thinking about Axis2 lite edition, which can be used at these sorts of cases. Yes, Axis2 can be for real pros, who needs real B2B stuff and yes Axis2 supports them without any trouble.
But wait .. it should be able to help me with these also. I think Axis2 should come as a lite edition, with max of 5 jars in total, which will help to do these sorts of apps. I think I proposed on minimal jar distro to Axis2 list, but I didn't see any movement towards that. Perhaps I think some one might tell me "thanks for volunteering". Yes I am willing to do that, but I didn't see any energy with others on this. People realize lots of flaws in software that they develop, when they become users of their own software. Sometimes it is a pain even for them to "eat their own dog food".

(BTW, I won that item, bidding at the last 5 secs. Fortunately the other person was not using any software for bidding :) )

Eran ChinthakaDependency Parsing vs NGrams

I did a project this time for my Natural Language Processing class, on using both dependency parsing and ngrams to build a language models.

The key idea that motivated me and my friend Ikhyun was that NGram model was having trouble (as we thought) with long dependencies and with sparse data. So we wanted to see a hybrid model, consisting of both dependency model and ngram model, would be any better than ngram model alone.

We build our two language models and tested with various kinds of data. Initially we were not impressed by the results as it was no improvements over ngram model.

Then we tested with bad sets of sentences. These sentences were created shuffling original sentences. But our hybrid model didn't perform very well compared to ngram model alone, as we expected. We tested our results with a special perplexity measure. Since it failed, we drew graphs to see how models performance with ngram model. Both approaches showed no or little improvement.

During the discussion with Professor Gasser, we came up with some interesting ideas for the failure.
1. We used English sentences for this experiment. Perhaps English might not be too rigid about word order and this might be one factor. So carrying out the same experiment with a language like Spanish might give us some better results. But the problem was neither me or Ikhyun speaks or understands Spanish :(

2. The sentences we used to train and test the system didn't have long dependencies within them. But we wanted to have a model which would perform well, irrespective of the nature of the sentences. Actually we identified that dependency model was capturing the same information that ngram model was capturing. When we graph our probability results from the experiment, this was so obvious to us. Even though these two models rely on two different concepts, these observations were really interesting.

3. The worst one. We used Stanford dependency parser for our experiment to get dependency outputs. Being a statistical parser, this was always trying to give the best possible output, irrespective of the nature of the input sentence. For example, this was treating both "I go to school" vs "I to go School" the same way. We were expecting this parser to output something wrong, but since it was outputting correct even for the wrong ones, we were having trouble with our model.

I think we learnt a lot from these experiences. Perhaps we should try to test our model with a different dependency parser and a different language.

Eran ChinthakaMoved to Ubuntu Hardy and Vista ...

This times I changed both my the OSs in my laptop.

From Microsoft camp, I moved in to Vista Business edition, and that seems to be great (at least for the time being). I think I am fine as I have 2GB of memory in it. I am happy about the stylish user interface and various desklets. I was having trouble installing Visual Studio 2008, but in the second time I was successful.

From the Ubuntu side, I was having trouble with my Feisty version, especially w.r.t. to my graphics. I couldn't watch a video full screen, open-office was always stuck, and no Compiz etc. But hardy seems to be great. It had got everything correct so far, except that Skype seems to be having some trouble working with my sounds and mic. I think Hardy seems to much stable than anything else so far, but I don't know what might go wrong.

I kinda like Vista a bit (there is a different reason for this ;) ), but I still like working with Ubuntu.

Afkham AzeezEC2 Instance Types Summarized

I've summarized the information on EC2 instance types



One EC2 Compute Unit (ECU) provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor. * Pricing is per instance-hour consumed for each instance type. A customer will select an instance type based on the computing power & storage required.

In addition to paying for the instance hours consumed, the customer will also have to pay for the bandwidth consumed.

Afkham AzeezElasticFox

Do not like the command line tooling provided by Amazon EC2? Do you prefer working with GUIs like me? Then ElasticFox is the answer. This is a Mozilla Firefox extension for interacting with Amazon EC2 (API version 2008-02-01)

You can read more about ElasticFox here

Here is the Firefox XPI
The only drawback is that this still does not support Firefox 3, so I've had to switch back to Firefox 2 :(

Afkham AzeezDSL - Damn Small It Is!

I just tried out DSL (Damn Small Linux) today. The entire OS plus many other useful utitlities, tools, X-windows, games and many more cool stuff are included within this distribution. The entire distribution is only 50.2 MB! Amazing isn't it? In fact, the initial goal was to conduct an experiment to see how many useful applications can be squeezed into a 50 MB live CD. It has come quite a long way since then.

DSL is based on Knoppix technology. Knoppix itself is a bootable live system on CD. However, Knoppix distributions are around 700MB.

I downloaded the bootable ISO image from http://www.damnsmalllinux.org/download.html

I created a VM Ware image and pointed the CD ROM to the DSL ISO file and booted the guest OS... and here is one of the beautiful screen shots



Sam RubyJust add scaling!

Ola Bini: I still haven’t found anyone who knows how you implement Scaling in a language, so I guess that LRM will never have it... Anyone who care to enlighten me, please send me a detailed email with an implementation of Scaling. I really feel the need to know how this thing works.

May 03, 2008

Sam RubyJob Posting

Henry Work: TechCrunch seeks two Rails programmers to join the company as interns this summer.

May 02, 2008

Deepal JayasingheApache Axis2 1.4 Released

Folks,

Just over 8 months since the 1.3 release, we are very proud to announce the release of Apache Axis2 version 1.4.

Downloads are available at:
~ http://ws.apache.org/axis2/download.cgi

The Maven2 main repository has the latest jars as well.

Apache Axis2 is a complete re-design and re-write of the widely used Apache Axis engine and is a more efficient, more
scalable, more modular and more XML-oriented Web services framework. It is carefully designed to support the easy
addition of plug-in "modules" that extend its functionality for features such as security and reliability.

Modules supporting WS-Security/Secure-Conversation (Apache Rampart), WS-Trust (Apache Rahas), WS-Reliable Messaging
(Apache Sandesha) and WS-Eventing (Apache Savan) will be available soon after the Apache Axis2 1.4 release. Please see
these projects' own sites for further information.

Major Changes Since 1.3:
- Support for JAXWS and JSR 181 Annotations (See 7 samples in the binary distribution)
- Experimental CORBA Support
- Fixed tons of small and not-so-small bugs (See list in release-notes.html in the binary distribution)

Known Issues and Limitations in 1.4 Release:
- Need to use wsimport/wsgen tools in JDK1.6 for JAXWS code generation.
- Please see JIRA for the current status of bugs

We welcome any and all feedback at:
~ axis-user@ws.apache.org (please include "[axis2]" in the subject, please subscribe first)
~ axis-dev@ws.apache.org (please include "[axis2]" in the subject, please subscribe first)
~ http://issues.apache.org/jira/browse/AXIS2

Thank you for your interest in Apache Axis2!

Apache SynapseMock Web services with Apache Synapse to develop and test Web services

Apache Synapse is not just for large scale enterprise integration work. The simplicity of the configuration, out-of-the-box feature set, extensible architecture, and the minimal footprint makes it a versatile and powerful tool that you can use for a variety of tasks.

This IBM developerWorks tutorial will explain how you can use Apache Synapse to create mock Web services. Apache Synapse is a multi use tool that every developer should have in his or her tool set whether be it for solving enterprise systems integration problems or personal tasks.

Srinath PereraFollowup:Reliable Failure Detection

Nice note from Azeez, Reliable Failure Detection. Couple of comments,
I think the reason these things are not really use in practice is,
  1. Infrastructure to support these things were not around for long time. e.g. to check process status, we need someway to contact the OS, and ask things .. either one can setup a host agent (that does something lile ps -ef), or you need OS instrumentation. There are security issues etc, but these can be addressed.
  2.  Until recently, incentive to do these things were not very high. But with data centers etc, things are changing. I think even now, people are trying hard to get simple management things working. They will get to this level of details soon.
However, detecting Byzantine (including planned mischief) is not possible using one failure detector. Only way out is voting, but even that work only for specific problems. For an example of a this kind of work can be found in Steward: Scaling Byzantine Fault-Tolerant Systems to Wide Area Networks Yair Amir et.al. (more detail). Resulting algorithms are complex and expensive.

Sanjiva WeerawaranaWSO2 - awards and coolness increasing!

WSO2 WSAS, our productized enterprise-ready version of Apache Axis2, recently won a Gold award from SearchSOA.com for its data services functionality!



As if that wasn't enough, Gartner is now reporting that we're officially cool! Yep, their report "Cool Vendors in Web Technologies, 2008" (pay/subscription) lists us as one of the cool 5. Their preferred product: WSO2 Mashup Server .. for its positioning of server-side JavaScript.



Very cool indeed!

May 01, 2008

Sanjiva WeerawaranaAzeez's blog .. WSAS and EC2 and more

Akham Azeez, the architect and product manager of WSO2 WSAS (our productized version of Apache Axis2), is blogging about various WSAS, Axis2 and other things. The most interesting thing will likely be his on-going work into making WSAS scale automatically on Amazon EC2. If you're interested in that type of stuff subscribe to Azeez's blog!

Sam RubyLicense-Free Spec

Mike Melanson: the previous restriction that anyone who looks at the spec technically isn’t allowed to create an independent SWF decoder (if documentation EULAs are to be believed) was a point of contention among many open source types.

I would agree that the ability to create a license-free, independent open source implementation is an important aspect of an open standard.

Ajith RanabahuMashup camp - videos

During the last mashup camp, Michael 'Max' Maximilien, my mentor for the last summer internship described the IBM sharable code platform. It was mostly me and Max and I can't believe we've come so far!



Also Jonathan Marsh from WSO2 gave his perspectives on the WSO2 mashup server. Pity that I never got a chance to work with him (I was already gone when he joined WSO2)

Apache SynapseLinux Magazine article on Apache Synapse

The April edition of Linux Magazine has an article about Apache Synapse. You need to sign up to read it. Its been out in print for a while, but now its up on the web. Check it out!

Sanjiva WeerawaranaJonathan's interview @ Mashup Camp

Jonathan was at the Mashup Camp a bit ago and was interviewed by TechWeb TV. Take a look; great way to understand how we think about the WSO2 Mashup Server!

Paul FremantleCool!

Its official - WSO2 is cool. Well - at least cool enough for Gartner. In their report "Cool Vendors in Web Technologies, 2008" (pay/subscription) they list WSO2 as one of 5 picks.

Obviously you will need to contact Gartner for the full information, but here is a little taster - talking about our Mashup Server:
"What is cool is the open-source aspect, the support for JavaScript-based mashups that can migrate from server to client, and support for lightweight but enterprise-oriented Web services."