Interview with a developer: Tatiana Al-Chueyr of the inVesalius project
One of the best benefits on working to opensource projects is that you get acquainted with many nice people around the globe. Through the Transifex.com experience I got together with Tatiana Al-Chueyr of the inVesalius project. After one month of using the transifex.net service I considered it to be a good opportunity for a not so short interview.
Hi Tatiana, would you like to tell us some things about yourself?
Well, I’m a 25 years old Brazilian girl who loves programming. As my parents are professors, we always had computers at home… so by the time I gave my first steps, I had already felt in love with the computing world. In 2002 I begun the computing engineer course at Unicamp (Brazilian university), where I learned how to think like a machine, how to develop software and what free (open) software was… Regarding my favorite programming language, I love to speak Python and
have great interest in Assembly. When I’m not programming I like to read, scuba dive, travel and rock climb.
What is actually the inVesalius project?
InVesalius is an image processing software dedicated to DICOM images (“.dcm” / “.DCM” extension) produced by imaging equipment (CT, MRI). It is fully compliant with the DICOM standard for image communication and image file formats. InVesalius is able to read 2D images and build 3D models of the region of interest.
InVesalius has been designed for navigation and visualization of multidimensional images: 2D viewer and 3D viewer and also for rapid prototyping anatomical structures. The 3D Viewer offers all modern rendering modes: Multiplanar reconstruction (MPR), Surface Rendering, Volume Rendering and Maximum Intensity Projection (MIP). Surfaces created by InVesalius can be exported to OBJ, STL or other 3D files supported by Blender or other software. It is completely written in Python. Also, we only use free software tools in its development, including VTK (Visualization Toolkit), wxPython, GDCM (Grassroots DICOM), ITK (Insight Toolkit), NumPy, PIL (Python Imaging Library).
From which trench(es) are you supporting inVesalius project?
My connection to InVesalius..? Despite being the maintainer, team leader and a core developer… I’d say it is like a son to me… For some years my husband was very jealous… but now he’s got used to it, and is even considering learn how to program in Python 😉 Also, I’m the creator of InVesalius 3.
How did you get involved with invesalius project? I mean it seems quite huge and it obviously needed a lot of work to get to where it stands now.
During the begin of my college, I was pretty disappointed for not developing a user-end software. We’d learned how to code using Pascal, C, Assembly, Lisp, Prolog, Java…. We’d learned how algorithms worked and how to compute their complexity.. I new what a np-complex problem was and could solve several interesting problems related to networks and OS… But what about “real” applications? Those that “normal” people, who don’t have a cue on what a compiler is, work dailly..? My dream had always been to leave this world a little better than what I found, and I really couldn’t figure how… gcc and emacs weren’t that inspiring… (vim has chaged my life since – joking)
It was love in first sight when I read about InVesalius project and that it was being developed nearby. At first I was pretty insecure, about being “rejected”, as InVesalius seemed much more mature than I, due to my computing abilities.I entered InVesalius project during July 2004, after attending an interview. I was very excited by the project. At that time InVesalius 1 was being concluded and InVesalius 2 was starting to be developed. At that time there were around 5 developers.
In January 2007 all the other developers left the project, and I was the only left and had a large responsibility – by that time we had more than 1500 users from over 10 countries, even though InVesalius 1 was only available in Portuguese. Also, InVesalius 2 had been a promise for years – but it was utterly unstable (there had been no planning at all), but users claimed its release. And last, but not the least, all support was done by email and phone, there were no forums or FAQs. There was not enough money to hire new developers, only a trainee…
For several months from then on I’d sleep 5 hours / day. I had the luck of hiring an excellent trainee – Paulo Henrique Junqueira Amorim, during February 2007, with whom I shared responsabilities. During November 2007 we managed to open source InVesalius through a partnership with Brazilian Public Software Portal, an initiaive of Ministry of Planning, and minimally organized and internationalized the software so InVesalius 2 could be released. InVesalius 2 has never been more than a Beta version.
During September 2000, another excellent programmer joined the team – Thiago Franco de Moraes. I was confident we had a great team, and so we decided building InVesalius 3 from sketch, planning most of the project so it could be a better application. On January 2010 we released InVesalius 3 and started community-work, so it could be a better tool and attend each time more people. We’re already having great feedback and help from community. We’re starting to learn to work in a bazaar project, and not in a cathedral anymore.
Wow this is an amazing story, a story that should be told, about how opensource can actually promote software, and in fact that’s something transifex.net tries to achieve. But speaking of the devil how did you find out about transifex?
During 2007 we internationalized InVesalius 2 using GNU gettext. It became a problem because the translation to Portuguese/Spanish/English was all up to me and I had a lot of more important work to do – including coding. Most InVesalius users are physicians and odontologists, and found those PO files really weird… There was a huge gap between developers and potential translators.
None of the available tools for PO manipulation was adequate. Our translators broke PO format using normal text edition tools. PoEdit, on the other hand, didn’t have a user-friendly interface (not for our translators) and required all keywords were translated, otherwise, it erased the untranslated keywords. We didn’t want this behaviour… The idea was to keep all keywords, so other people could contribute. Also, desktop software didn’t stimulate collaboration.
Rosetta from Lauchpad seemed a good solution, but we didn’t want to have another repository – source code was already available at Brazilian Public Software Portal. At that time it was not open-source… Pootle wasn’t user-friendly. During may 2009 Thiago (one of InVesalius developers) googled and found Transifex. By that time it didn’t allow users to edit PO files using lotte. It seemed a promising project, but it didn’t have what we needed. Two weeks before we released InVesalius 3.0.0 Beta 1 ( 27th January 2010), Thiago read about Transifex again and saw it allowed PO edition… So it was time we used it. 🙂 With Transifex (Nikos Korkakakis) excellent assistance we added InVesalius project on txn and on the day before its release a French who we have never heard about, called Frédéric Lopez, posted a 100% translation to InVesalius. It was fantastic!
This leads us to another interesting question; What impressed you most about txn? Whats the ugliest thing in txn?
In Portuguese, as in English, we often use the metaphor “that’s Greek to me”, in order to mean something is really hard to understand… Well, that doesn’t apply at all to Transifex 😉 What most impressed me about txn is its user-friendly user interface and its features to edit PO without even knowing what a PO file is.
Before using it, there was a huge gap between translators and we developers._ Now everything is flowing better_…! Also, in contrast to Rosetta, txn allows you to use any repository, not only launchpad, and that is really great.
I wouldn’t say there is anything ugly in txn. It is a great and really promising tool, you have an excellent team, and I’m sure new features will soon be added to improve the translation process. If I had to request you one feature, it would be to make more intuitive for someone to join a translation team (eg: on the first page of the project, have a button very visible “translate”, redirecting to languages he/she could help, and automatically send user request to maintainer). I might be missing something, but currently the work flow is a bit long: http://svn.softwarepublico.gov.br/trac/invesalius/wiki/InVesalius/Translating
You spoke about feature requests. Do you have a wishlist for features added to txn ?
- a better “be a translator” work flow (explained previously)
- txn internationalized, so I can help to translate it to pt_BR 😉
- on po edit, more key-words listing options – e.g. list first untranslated or fuzzy
- a better treatment when an error occurs after editing PO through txn (already reported by email : show to translator the exact error on the generated po file and allow him/she to fix it)
- update translations on real time, enabling multiple translators to see each other work (similar to GoogleDocs)
- add translator name /email to PO file
- add translator name/email to the commit message
What do you think about the improvements done in txn after the day you started using it? I mean some of the wish-list items are either in the queue to be pushed to mainline, (like lotte) or the dashboard for better synchronization among translators while others are in the design phase.
Transifex is a very active project, and we see the improvements daily. The translation team was an excellent idea, and the review tool under devel is very promising. We hope to see more of such features coming to live soon
Which of the existing feature do you thing is the greatest in txn?
the PO file translator-friendly edition and collaborative online translation.
So speaking of collaboration, did transifex improved your collaboration mechanisms for i18n so far?
A lot! Never before would I imagine InVesalius 3 would be translated so soon to French and start being translated to Greek. In spite of being a PO powerful edition tool, txn gave visibility to the project. We are redirecting all our potential translators to use Transifex for translating InVesalius.
Have you seen an increase of users using your project/translating your project after you started using tx?
Yes. txn brought more visibility to the project, inviting more and as InVesalius is able to speak more languages, more people are interested on using it.
So whats your feeling with txn? Would you suggest it to others?
I’m suspicious, as it is developed using Python… 😉 I’m suggesting it to everyone I know.
In fact, I’ve even talked to Brazilian Ministry of Planning so we can have a better integration between the Public Sofware Portal and Transifex, so all available open source projects (40) and subscribed members (50.000) can use it. They are really interested…
Would you discourage people using txn for some reason? What that reason would be?
No way 😉