Nathan Woodrow is a QGIS developer, blogger, father, and reborn Warhammer 40K lover. He has been an active developer and member of the QGIS project for the last five years. His QGIS/GIS blog at nathanw.net showcases some of the upcoming features in QGIS, as well as offers tips and tricks for developers and users. Previous to moving into the private sector, he worked as a GIS officer in local government for seven years. His bio pic is also a lie, as he has cut off all of his hair but has no good photos. 🙂
Nathan was interviewed for GeoHipster by Randal Hale.
Q: Nathan, how is life in the Land Down Under? I believe you are on the Gold Coast, Australia?
A: Good, thanks, and no shortage of Vegemite that is for sure; so delicious! — but let’s not talk about the current government, OK? Yes, I currently live on the Gold Coast. I have been living here with my wife and two children for almost three years. I was born and raised in Warwick, a town about 150km south-west of Brisbane, where it gets nice and cold in winter and bloody hot in summer — mind you I have become a bit softer in my tolerance of the cold since moving to the coast.
My GIS career started in the local council in Warwick fresh out of high school, not even knowing what GIS was, and after starting with Digital Mapping Solutions (DMS) I moved to the Gold Coast to be closer to the airports for travel accessibility. Also so we’d have family around, as that’s where my wife is from originally.
Q: You are one of the developers on QGIS. How many of you are there out there working on this project?
Lots. Spread all around the world. There are 32 developers with direct commit rights to the code base, including myself. However, if you don’t just count core contributors, which you shouldn’t because that is what open source is all about, we have a large number of other contributors. “Contributors” includes people who just commit fixes and/or features but never come back, it also includes people who hang around the project regularly but just don’t have direct commit rights.
There are also people working on the docs, website, managing the tickets that come in, all jobs that make the cogs in the wheel that is QGIS turn. It’s a very friendly project to work on, which I think has helped in our success in being a large community of project maintainers and users.
Q: I ran into you on Twitter several years ago (@madmanwoo) with some wayward question on how QGIS works. How did you get involved in the QGIS project? Was the local council in Warwick using it?
A: In fact if my Twitter search didn’t fail me, it was Bill Dollins (@billdollins) who introduced you to me in a tweet when talking about me moving from MapInfo to QGIS. (https://twitter.com/madmanwoo/status/135338467524743168)
My first involvement with the project, from a contribution point of view, was when I added expression-based labels (http://nathanw.net/2011/10/27/expression-based-labeling/). I had started to use QGIS at council for data entry, but expression labels were something that MapInfo had that I really missed in QGIS; without it I was never going to be able to use QGIS more in my day job. After opening a ticket and sitting on it for a while, I sat down over a weekend, hacked in an expression-based label to see how it would work, and was pretty impressed at the speed and how easy it was to get going. It still took me about two months to add the UI and finally get it added to the core project. After that I was added as a core contributor and here we are now.
I was the first one at council to use QGIS in a full production setup. The first version I used was 1.7, but at that stage it just wasn’t ready for full time usage. After 1.8 I pretty much stopped using MapInfo and started using QGIS for all my tasks. Readers of my blog would have seen the progression. It didn’t take long for the bug to bite and for me to promote QGIS to other councils, and anyone else that would listen. It wasn’t our “official” desktop GIS, however I started to move other people onto it for all their mapping tasks. I was quite happy when I managed to get an older foreman using it to update our kerb and footpath assets, including splitting and joining.
Q: There’s been some discussion on when QGIS 3.0 comes out. With every release the software grows. In your opinion, what’s the next big hurdle for QGIS as a desktop software?
A: For the me the biggest thing is the user experience of the whole package as one thing. QGIS is getting very large in code, usage, and function. At times things can go into the application without full thought on how the overall workflow fits together, which can leave the user confused when moving through to get their work done. To do this correctly you really need to design full workflows around a user story and not just a single feature for a single use case, which can leave a function hanging on the side and not really fitting in. I will also add that I am fully guilty of doing the single function style of developing myself — it’s much easier.
Of course this is a complicated process, because QGIS has a massive user base with very different use cases, but I think as we evolve we need to address some of the workflow issues within the application. This is not to say we are not already doing it, or getting better. Every release adds new custom controls that are used throughout the application for consistency. Things like data-defined buttons, layer combo box, etc., are all generic controls that we can reuse to help the flow and feel of the application. Consistency is almost always the key.
I guess that also raises the question does QGIS have a future in a world that is moving “all the things” to the web? My answer is of course yes it does, but I’m also biased.
Q: In order to do all of this you have to know something about programming. Are you more programmer or GIS person?
A: I consider myself more of a programmer these days, although my imposter syndrome is quite strong at times as there are some super smart people, and reading past GeoHipster interviews does help that feeling. My current job and involvement in QGIS still keeps me in the GIS space, which I very much like, just more on the programming side and less on the map-making and data entry work. GIS is still great though, and I enjoy it when I can. The people in the GIS circles are excellent, and the problems in this space are fun to work on, but I guess just out of natural evolution of my current work I have landed more on the development style of things.
Personally I believe good programming knowledge helps you in GIS every day, even if you are just better at scripting things — you have just saved yourself some money and time where someone else couldn’t.
Q: How did you get started in programming, and what was the first programming language you learned?
A: My first programming language was Borland Delphi in the programming course at high school. If I remember right the first thing we wrote was a fake cash register application, after that I did a small bit of game programming making a Pokemon shooting game that lasted on the school network years after I left. Pokemon + sniper rifle = awesome fun!1! (don’t judge me I know you think it’s awesome)
Once at council, the other GIS guy and myself took the intro MapBasic course, the scripting language that comes with MapInfo. The plan was to cut down some of the tasks we had to do every week but took ages to do. After plain MapBasic I “progressed” into using VBA with Access and embedding MapInfo maps into Access forms for custom applications — you can almost hear the screams from here but hey at least they worked for the tasks. Once I saw that you could also use MapInfo in .NET, I started to use VB.NET for everything, moving onto C# after that — because who really uses VB.NET any more. Once I picked up QGIS, my only path there was C++ so I left C# and MapInfo for Qt/C++ and QGIS. After using QGIS for a long while, I started to really like writing Python, and now that is my go-to language for most things these days.
Q: With everything you did, you also developed Roam. What is Roam? I see it starting to pop up everywhere.
A: It’s nice to see you are starting to see it used by others. I think unless you hit critical mass with a project, it can be hard to see who is really using your stuff.
Roam is a Python-based QGIS application that is mainly focused around easy tablet-based data collection. Roam, which used to be called QMap, started as a plugin I developed while working for my old council to aid in our data collection process. The first version was very very primitive. It ran as a plugin in QGIS and had pretty poor UI, but it worked quite well for our needs.
After starting with DMS we invested a lot of time in making it a lot better and released it under a new name as most of the code was redone. Roam was the first project using QGIS and Python outside of a plugin that I had done, so there was a lot of learning involved in how to do it, but I am quite happy with what it has become and the number of users — there was even a Roam workshop at the recent QGIS conference. It’s also GPL, just like QGIS, which makes me quite happy as it gives people a good (bias warning) data collection application for Windows.
Q: Have you ever eaten kangaroo? If not, what’s the most random thing you’ve eaten in Australia?
I’ll pass on kangaroo, some tell me it’s good others tell me it’s bad so I will just stick to what I know 🙂
Not very many out there, but I do like my typical Aussie Vegemite and Milo in the mornings though. Tend to have more Milo in a glass than milk, and Vegemite nice and thick on toast.
Q: What is Milo?
A: THE BEST THING EVER!!
This was full about a week ago.
My son also loves it, so that isn’t all just me 🙂
However I did just read this on Wikipedia:
Milo contains some theobromine, a xanthine alkaloid similar to caffeine which is present in the cocoa used in the product; thus, like chocolate, it can become mildly addictive if consumed in quantities of more than 15 heaped teaspoons per day
That might explain it. *eats spoon of Milo*.
Q: I always leave the last question wide open for the interviewee — now’s your chance to tell the entire world what you wish to tell them.
A: I see a lot of people in GeoHipster interviews giving out good GIS advice. I’m not sure I have anything like that I can give out. However, I will try to offer something a bit more general which has helped me recently.
Outside of family and friends, hobbies are the most important things you can have in life, especially if you are a programmer. Having non-development hobbies is super important to your health. After my daughter died two years ago I realised I didn’t have any hobbies outside of programming, and it drove me into a massive hole. My answer to the question “what do you do in your free time?” was “programming”; after Eloise died it turned into “nothing”, as I had lost interest in anything programming-related because that is all I had and burnt myself out on it. Bit boring I know, but the moral of the story is: For your own mental health get something that you can do when the normal thing you do gives you the shits and you need a time out.
Some lighter general advice is to get involved in your local open source project. It’s not always a rose garden, but it’s normally a lot of a fun to be involved in a project that other people put their love into. Luckily there is a lot of great GIS open source stuff coming out to get involved in.