Saturday, April 28, 2007

AsyncObjects 0.1.0 finally out

After long time and some pain I have released an updated version of the the AsyncObjects framework.

The frameworks has been worked upon mostly in the context of the Sebyla project. It is a blatant rip off of ideas of E programming language. Initially, it was created just as prototype of some ideas for the Sebyla project back at 2002. And I have tried some new ideas in it form time to time. I have even ported the thing to Java 5, and I have learned in process how thin the layer of generics in Java is.

For some weird reason, nothing similar had appeared during five years of the framework life.

Then there was a project that might have used the framework. However it would have used the framework on Foundation Profile 1.1 runtime. So I partially took old version and and partially removed generics from new version and I have put into the separate project that is currently the home of the framework. Alas the project has been canceled just after the beginning. However I have done some work on the framework in context of that project. After that I have continued the work in my free time. However the framework was a low priority project for me, so the progress was glacially slow. There is a higher priority personal project.

Now there is yet another project that might use the framework. And it already has a dependency on Java 5. The framework might experience yet another flip, now to Java 5. If this project won't happen, I guess I would need to advertise it on some wider forums.

Tuesday, April 24, 2007

Ruby for text processing

In context of ETL project, I has ported a large Java class from old API to new API. I actually has done it twice to try two different implementation options. Since ported API had a very regular structure, I decided to try Ruby for this task. It worked pretty well. Ruby has a great text processing library. The method gsub!() that invokes a closure to perform text substitution when using regular expression has saved me a lot of efforts. This allows quite complex transformations just in the place where it is needed.

I'm not sure whether I saved efforts or I would have faster done it manually. I do not know Ruby very well after all. But surely, the process was more enjoyable.