Regina Obe: “People spend too much time learning a programming language and forget what a programming language is for”

Regina Obe
Regina Obe
Regina Obe (@reginaobe) is a co-principal of Paragon Corporation, a database consulting company based in Boston. She has over 15 years of professional experience in various programming languages and database systems, with special focus on spatial databases. She is a member of the PostGIS steering committee and the PostGIS core development team. Regina holds a BS degree in mechanical engineering from the Massachusetts Institute of Technology where she wanted to build terminator robots but decided that wasn’t the best thing to do for Humanity. She co-authored PostGIS in Action and PostgreSQL: Up and Running.

Q: Regina Obe – so where are you in the world and what do you do?

A: I’m located in Boston, Massachusetts, USA. I’m a database application web developer, Consultant, PostGIS  project and steering committee team member, and technical author on PostGIS and PostgreSQL related books.

Q: So in my prep work I found you have a degree from MIT in Mechanical engineering with a focus in Bioelectrics and Control systems? What’s that about? How did you end up in working in databases?

A: Hah you just had to ask a hard one. It’s a bit long.

Bioelectronics and control was an amalgamation of all my interests and influences at that point.

My favorite shows growing up were the 6 million dollar man and bionic woman. Like many geeks I loved tinkering with electronic and mechanical gadgets and got into programming at the wee age of 9. I was also very attached to graph paper and would plot out on graph what cells my for loops would hit.

My mother was a forensic pathologist; basically she tore dead people apart to discover how they died and what could have been done to save them. I spent a lot of time reading her books and dreaming about human augmentation and control.

When I came to MIT I had ambitions of getting a BS in Electric Engineering or Mech E., moving on to a PhD, getting my MD, and focussing on orthopaedic limb surgery. MIT’s Mechanical Engineering department had a course track that allowed you to fashion your own major. You had to take X amount of Mech E. and could take any other courses you wanted as long as you could convince your advisor it followed some sort of roadmap you set out for yourself. So that said — what else would I fashion if given the opportunity. At the time MIT did not have a biomedical engineering major.

So my course work included classes in bio-electrical engineering like electrical foundation of the heart where I built and programmed electrical models of hearts and killed and revived rabbits. Basic EE courses with breadboards, class in Scheme programming, electro physiology of the brain etc. On the Mech E. side, I took standard stuff like Fluid Mechanics, Dynamics, Systems Control and for my thesis, programming a simulation package that allowed you to simulate systems with some pre-configured blocks. Most of which I can’t remember.

I looked around at other people who were following my dream and realized I’m way too lazy and not smart enough for that kind of life. When I got out of college, there were few engineering jobs requiring my particular skill set. I got a job as a consultant focussing on business rules management and control. Business rules were managed as data that could become actionable. There I got introduced to the big wild world of databases, then SQL, cool languages like Smalltalk, and trying to translate what people say ambiguously into what they actually mean non-ambiguously.

I found that I really enjoyed programming and thinking about programs as the rules to transition data and reason about data. It’s all about data in the end.

Q: So you dive into databases and SQL and this thing called PostGIS comes along. You’re on the Project Steering committee and Development team for PostGIS. What is PostGIS and how much work is it being a developer and a member of the project steering committee?

A: Yes I’m on the PostGIS steering committee and development team.

PostGIS is a PostgreSQL extender for managing objects in space. It provides a large body of functions and new database types for storing and querying the spatial properties of objects like buildings, property, cities. You can ask questions like what’s the area, what’s the perimeter, how far is this thing from these other things, what things are nearest to this thing, and also allows you to morph things into other things. With the raster support you can ask what’s the concentration of this chemical over here or average concentration over an arbitrary area.

Some people think of PostGIS as a tool for managing geographic systems, but it’s Post GIS. Space has no boundaries except the imagined. Geographic systems are just the common use case.

Remember my fondness for graph paper? It all comes full circle; space in the database. I like to think of PostGIS as a tool for managing things on a huge piece of graph paper and now it can manage things on a 3D piece of graph paper and a spheroidal graph paper too 🙂 . PostGIS is always learning new tricks.

Being a PostGIS developer and member of PSC is a fair amount of work, some programming, but mostly keeping bots happy, lots of testing, and banging people over the head when you feel it’s time to release. I think it’s as much work as you want to put into it though and I happen to enjoy working with PostGIS so spend a fair amount of time on it.

Q: I love PostGIS. I spend a lot of time in QGIS/PostGIS these days and people are constantly asking – ‘HEY WHEN DO WE GET SOMETHING LIKE ROUTING WHERE I CAN DO TIME/DISTANCE MEASUREMENTS?”. You’ve been working on a piece of software called pgRouting which does?

A: This is a leading question to talk about our new book coming out by LocatePress –

Been working on is an over statement. My husband and I have been working writing the book pgRouting: a Practical Guide, publisher Locate Press. We hope to finish it this year. That’s probably biggest contribution we’d done for pgRouting aside from Windows stack builder packaging for pgRouting.

Most of the work for pgRouting is done by other contributors with GeoRepublic and iMapTools folks leading the direction.

My friend Vicky Vergara in particular has been doing a good chunk of work for recent versions of pgRouting 2.1-2.3 (including upgrading pgRoutingLayer for QGIS to support newest features and improving performance of osm2pgrouting) some neat things coming there. She’s been super busy with it. I greatly admire her dedication.

You’ll have to read our book to find out more.  Pre-released copies are available for purchase now and currently half off until it reaches feature completeness. We are about 70% there.

Q: With everything you are doing for work, what do you do for fun?  

A: Work is not fun, don’t tell me that? My goal in life is to achieve a state where I am always having fun and work is fun. I still have some unfun work I’d like to kill. Aside from work I sleep a lot. Like to go to restaurants. Never been big on hobbies unfortunately. Going to places causes me a bit of stress, so not much into travel I’m afraid.

Q: You’ve got a few books out and about. How hard is it to write a book for a technical audience? How hard is it to keep it up to date?

A: It’s much harder than you think and even harder to keep things up. Part of the issue with writing for technical audiences is you never know the right balance. I try to unlearn what I have learned so I can experience learning it again to write about it in a way that a new person coming to the topic can appreciate. I fail badly and always end up cramming too much. I’m an impatient learner.

I always thought 2nd and 3rd editions of books would be easier, but they have been so far just as hard if not harder than the first edition. We are also working on 3rd edition of PostgreSQL: Up and Running. Piece of cake right, what could have changed in 2 years. A fair amount from PostgreSQL 9.3 to 9.5. PostGIS in Action, 2nd edition was pretty much a rewrite. Might have been easier if we started from scratch on that one. So much changed between PostGIS 1.x and 2.x. That said I think we’ll try in future to maybe not write sequels and maybe tackle the subject at a different angle.

Leo wants to write SQL for Kids 🙂 .  He thinks it’s a shame children aren’t exposed to databases and set thinking in general at an early age.

Q: Leo wanting to do a SQL for kids brings up a good question. If you had a person come up and go “What should I learn?” what would you tell them? In the geo world we get beat over the head with Python. You are neck deep in databases. Programming language? Database? What makes the well rounded individual in your opinion?

A: You should first not learn anything. You should figure out what you want to program and then just do it and do it 3 times in 3 different languages and see which ones feel more natural to your objective. Think about how the language forced you to think about the problems in 3 different ways.

You might find you want to use all 3 languages at once in the same program, then use PostgreSQL (PL/Python, SQL, PL/JavaScript J ). That’s okay.

Forget about all the languages people are telling you you should know. I think people spend too much time learning to be good at using a programming language and forget what a programming language is for. It’s hard to survive with just one language these days (think HTML, JavaScript, SQL, Python, R – all different languages). A language is a way of expressing ideas succinctly in terms that an idiot-savantic computer can digest. First try to be stupid so you can talk to stupid machines and then appreciate those machines for their single-minded gifts.

The most amazing developers I’ve known have not thought of themselves as programmers.

They are very focused on a problem or tool they wanted to create, and I was always amazed how crappy their code was and yet could achieve amazing feats of productivity in their overall user-facing design. They had a vision of what they wanted for the finished product and never lost sight of that vision.

Q: Your PostgreSQL Up and Running book is published by O’Reilly. O’Reilly books always have some artwork on the front. Did you get to pick the animal on the front? For your PostGIS book you have a person on the front. Who is that?

A: We had a little say in the O’Reilly cover, but no say on the Manning cover. I have no idea who that woman is on PostGIS in Action. She’s a woman from Croatia. She looks very much like my sister is what I thought when I first saw it.

For O’Reilly they ran out of elephants because they just gave one to Hadoop. Can you believe it? Giving an elephant to Hadoop over PostgreSQL? So then they offered us an antelope. Leo was insulted, he wasn’t going to have some animal that people hunt on the cover of his book, besides antelopes look dumb and frail. I apologize to all the antelope lovers right now. Yes antelopes are cute cuddly and I’m sure loving. Just not the image we care to be remembered for. We wanted something more like an elephant and that is smart. So they offered us up an elephant shrew (aka sengi), which is a close relative of the elephant – . It’s a very fast small creature, that looks like it’s made of bits and pieces of a lot of creatures. They blaze trails and are very monogamous. What could be more perfect to exemplify the traits of a database like PostgreSQL that can do everything and is faithful in its execution, aside from having to explain “What is that rodent looking creature on your cover?”.

Q: Way back when GeoHipster started we more or less decided thanks to a poll that a geohipster does things differently, shuns the mainstream, and marches to their own beat. Are you a geohipster?

A: Yes. I definitely shun the mainstream.  When mainstream starts acting like me it’s a signal I need to become more creative.

Q: I always leave the last question for you. Anything you want to tell the readers of GeoHipster that I didn’t cover or just anything in particular?

A: When will PostGIS 2.3 be out? I hope before PostgreSQL 9.6 comes out (slated for September). I’m hoping PostgreSQL 9.6 will be a little late to buy us more time.

Also – Where is the Free and Open Source Software for Geospatial International conference (FOSS4G) going to be held in 2017? In Boston August 14th – 18th. Mark your calendars and bookmark the site.