As an ArgoUML contributor I'm going to blog my activities here, so that they may draw interest by other developers or help other developers when doing tasks similar to what I've done. AND(!) the grand vision that makes an Argonaut what he is, TO THRIVE IN THE BIG DANGEROUS WORLD, TAKING THE Argo TO A GOOD SHORE ;-))

Sunday, April 29, 2007

Past and near future development activities in the C++ module

I didn't progressed much in the development of the C++ module during 2006. It was a fire fighting year in terms of my day to day job and I invested a lot of time and energy in getting the fire down and (IMHO) trying to get a rightfully deserved raise in salary. Alas, I'm now in a different job, but, lets talk about the progresses (humble, but, nevertheless some) in the C++ module...

The main problem I worked on was the fact that the C++ notation was gone by mid of the previous year. I think that in ArgoUML 0.22 it wasn't available. So, I worked on fixing it for ArgoUML 0.24 because I hate regressions!

Some minor bugs were found (4, 5, 6, 7, 4541), some of them were fixed (5, 6), there is a request for enumeration support (not yet done), etc.

Now, my main focus is in getting an old issue fixed and unify the handling of special TaggedValues in the generator and reveng modules into the UML profile for C++. This is turning out to be easier than I expected due to the improvements introduced during the last year into the model sub-system. I'll simply put the UML profile for C++ (UMLprof4C++) into the C++ module jar, load it into a separate model and use its services from the generator, reveng and ui modules.

Many hard coded values for TaggedValue names are going away, the code of generator and reveng modules will deal with similar problems by using common services and the users will have an easy way to import the full UMLprof4C++ Stereotypes from the C++ Settings. And I think that now that I have more energy to devote to ArgoUML this will be available for 0.26.

Improving the usability of htmled

I have to improve the usability of my htmled Python module! Currently I have to do something like this:

>>> from htmled import *
>>> hbf = HbFile(open("c:/luis/documentos/cadernos/programacao/ficheiro04.html"))
>>> pe = PostExtractor(hbf)
>>> from datetime import date
>>> posts = pe.getPosts(date(2006, 12, 1), date(2007, 5, 1))
>>> print posts[0]
### here a pretty print of post 0, easy to copy paste into Blogger will be available
>>> print posts[1]
### ditto for post 1

I'm not very put off by having the python shell as UI. It is comfortable for me and I like its feeling as much as other more normal persons like their GUI applications such as ArgoUML. But, there are some things which I could easily optimize such as not having to write the name of the Handbook File, just select which Handbook I want to make blog posts from. Another thing is to have the posts immediately available for selection with an easier way to specify.

In addition there is a nasty bug in the parser, which includes the original Handbook File footer into the last post. These are sufficient reasons for an additional iteration on htmled. I'll plan for it as soon as I finish some stuff in the ArgoUML C++ module I've been working on in the past weeks.

Thursday, April 26, 2007

Argonaut's life lost its images

My previous e-mail and static web hosting provider (zmail) was discontinued by its parent company Zsystems.It was a pitty because at the time it actually worked, they were ahead of Google in what concerns advanced functionality – 10 GB of space for shared services such as e-mail, static web hosting, XFTP (important in Portugal because the internet service providers have international traffic ceilings).It seamed to me that they even had some non-portuguese customers paying 12 euros per year.

It is a common lack of vision and courage over here not to invest in such a popular and front runner service.They probably were a bit scared when Google started to be a no-cost competitor, but, for a person like me their service offering isn't yet equaled by Google or by any other service provider...

Alas, now the Argonaut's life blog has no pictures. I'm considering my options for placement of this kind of content, but, I would like to improve my online presence a bit, like having a CV online as well as references to this blog.

So, if you were wondering why these pages have no carefully crafted diagrams from ArgoUML, here, you now know why!

Making icons for ArgoUML

This entry comes a lot after the fact, but, nevertheless, it contains important details on how to get good icons for the ArgoUML GUI.Thanks to Michiel van der Wulp for supporting me on this work with icons in specific and implementing the C++ Notation in general.By mid of 2006 I detected that the C++ notation wasn't working no more in the ArgoUML diagrams and created issue #2 in the C++ module issues DB.The whole Notation sub-system was refactored by Michiel and the C++ module had to adapt.So, to make a long story short, I needed to create an icon for the C++ notation as part of the work and what follows is a recipe on how to do it:

Note: these instructions are for Windows. If you're on Linux, you'll have to look elsewhere.

  1. Start from one of the icons stored in the Images directory of the source code.
  2. Using MS Paint, you'll draw the icon according to your artistic capabilities. For this you'll have easier time by using gigantic zoom like 800%.
  3. Then, use IrfanView to reduce the color depth to 4 colors and to set the transparent colour.

But, if you want to see the whole story of having Notation icons working from ArgoUML modules, you'll have to use the a different loading code than what is used in core argouml code. Please check the code in NotationModuleCpp.java.

I hope this tiny cookbook helps others and avoids core developers having to answer to trivial questions again. And once more, all credit besides writing this tutorial goes to Michiel, who helped me a lot while I was doing this.

Reader Shared items

Followers