One of those good old texts to revisit from time to time: Who needs an architect? by Martin Fowler. If you are in the software industry, please, make yourself a tea and get 10 minutes of good reading. Will help you to understand what technical leadership means.
If we wish to count lines of code, we should not regard them as “lines produced” but as “lines spent”.— Edsger Dijkstra. Quoted on Are all patches create equal? by Jonathan Corbet.
As you may know, iCarto and Cartolab have hosted a gvSIG codesprint at the nice city of A Coruña. iCarto was kind enough to support my attendance to the event to work on gvsig, navtable & navtableforms. Find below some comments on my personal experience.
Some general impressions on the event
- It’s great to see codesprints are becoming usual in gvsig project. It’s still a new practice to be fully embraced for most members of the community but taking into account that the the first codesprint I proposed was almost 1 year ago, we have good rithm (this was the 4th codesprint!). It feels good to see such an amount of people and energy during the codesprint. It is encouraging and talks about their commitment to the project.
- This codesprint was the 2nd in number of participants after the one in Valencia! That confirms that Galicia matters 🙂 That was the good news. The bad ones: I’ve missed developers from England (do you know London is directly connected to A Coruña by flight?), Portugal (don’t you know that we speak the same language?!) and more people, shops and gvSIG members & collaborators from Spain, though. We should try harder to bring people to codesprints.
- That kind of events are great to grow relationships and trust. Also they are great to communicate diffuse information and transfer knowledge: we had some good conversations with Joaquín del Cierro (gvSIG development manager) about the technological background of the project, how some decissions are made and the direction of the development theses days.
NavTable and NavTableForms: what we have done
In the hacking side, I’m pretty happy with the results. Most of the time, Jorge López and me paired together to resolve the priority things on NavTable and NavTableForms. Here the results:
- Flavio Pompermaier had talked us about the differences between layer.getSource().getRecordset() and layer.getRecordset() methods. Roughly: the second returns the features directly from the source, which seems to reflect changes (schema modifications, add new registers, etc) in real time. I spent a time to reproduce the bugs he showed us but I couldn’t. The last work on listeners done by Javier Estévez and to be integrated in gvSIG 1.12 had solved it.
- Having some good conversations with Nacho regarding past conversations and improvements on NavTable UI. Some of the proposals will appear soon on your favorite mailinglist!
- Having some good conversations with Joaquín on metadata and filtering in gvSIG, which resulted on:
- metadata: the better way to integrate metadata into gvSIG sources is by doing your own custom mechanism, as we already have (for example: to associate to the data domain-values or validation). There is no such a thing of a broad standard on the matter (although there are some attempts).
- pre-filtering from datasource (definitionExpression in other GIS applications): I had asked that in the mailinglist (and even got a only-read solution). Lately, it appeared again in gvsig-international a thread talking about that. The short answer: it’s not possible to do it now.
- Refactoring to actions. I work on this during Friday morning. It was more difficult that I thought as our codebase is very coupled at some key part, which required an aditional work to do this. What I got is an initial prototype working (uploaded to a temporal branch on our repo) only with the moving actions (go-next, go-last, go-previous, go-first). Although still a prototype I think is very promising as a base to work on.
- Landing into trunk, the big rewriting done in NavTableForms. Jorge and I spent thursday morning reading code, updating the example for it to work with the new code and with integrating issues. It was easier that I thought, and we had the example working in less than 3 hours. I even write down our mini-guide to migrate the example, as it could be interesting for other people.
- Add support for reading domain values from a text file. One of the news on NavTableForms is that it’s able to read domain values from a database (say postgress). Jorge worked to add support for textfiles in a similar way than we do for alias.
- Adding support for multiple validation rules. Jorge worked and integrated this very nice feature.
- A new validation rule: mandatory field. I commited this to repo. By the way, It’s nice to see how easy is to add a new rule.
Summing up: as you may see, they were two intense days! A lot of work done and the hacktivation energy at full again. Looking forward to next one!
«No architects. Engineers works across the entire stack»
— TripAdvisor engineering team
TripAdvisor is one of the largest travel sites: 40M Visitors/Month, 200M Dynamic Page views/Day, … how do they make this possible? Here the answer. As I’m a culture/development process junkie, I’ve search how they work. Their approach: an extremely agile culture (as they put it: ) with a lot of code/design review and co-responsibility on your own work.
«One of the most important ways in which these efforts differ is where the risks lie.
For utility projects the biggest risk is some kind of catastrophic error – you don’t want the sewage pipe to break, or to miss payroll. So you need enough attention to make sure that doesn’t happen, but other than that you want costs to be as low as possible.
However with strategic projects, the biggest risk is not doing something before your competitors do. So you need to be able to react quickly. Cost is much less of an issue because the opportunity cost of not doing something is far greater than costs of software development itself.»
— Martin Fowler, on software as utility or as strategic assET
Free software communities have a system much better than elections: you can choose which leader you wish to follow and how much. If you want to be a leader, start leading, and see who wants to help.— Richard Stallman.
That’s my first post going to Planet OSGEO. Just want to say hello people! 🙂
Well, as for someone who is new in the community, I think it feels right to introduce myself. My name is Andrés Maneiro and I work as a GIS programmer for iCarto, a firm specialized in GIS based in A Coruña (see nice pictures here). As a training background I’ve got a Master on Free software at UJRC and a Master on Geographical Information Systems at UdG, one of the members of UNIGIS international network (well, still hard-studying to become an unigis graduate).
My day to day with FOSS4G involves hacking with desktop and web technologies. I am one of the core developers of NavTable (a gvSIG extension which has changed totally how we visualize and manage gis data! :D) and I’m the leader of NavTableForms (a library to easily build your own personalized survey forms for gvSIG). I usually send patches and collaborate with gvSIG development. Lately, I have been involved in projects related to European SDI for spanish administrations using the usual suspects at FOSS4G webstack and poking around the mailinglists and bugtrackers.
My community involvevement ranges from participating in the osgeo local group activities, collaborating with Engineering Withouth Borders (mainly in the past, though) or being part of the GHANDALF founders (a volunteer-based asociation to spread the use and word of free software in my region). Also in my free time, I have led a group of 12 people to translate in a collaborative way a book by Karl Fogel about how to manage free software projects (reflections on that, in spanish: I, II and III) and a study about Free Software GIS communities (article in spanish, slides) collaborating with Cartolab.
Wow, that’s a bit of a context, doesn’t it? 🙂 Well, from time to time, you can expect some post from me going to the planet osgeo (RSS feed of the tag). Some of them will be in english (RSS feed); others in spanish (RSS feed). Osgeoers, keep the conversation going!
The hardest thing [for a programmer] is to go to sleep at night when there are so many urgent things needing to be done.— Donald Knuth.