My name is bot, geobot

It all starts with an impulsion

The title I have chosen is recycled. It was the title of a talk I gave in a Meetup in Zürich in June 2017. The audience was made up predominantly of web designers and coders with 10+ years experience.

I described to them how as a geologist who had just finished my first coding bootcamp, I had deployed a Telegram chatbot that could teach them about minerals! To reach this point, I’d taken my first steps in geocomputing: using open-source libraries (scrape-it and TelegramBots), and deploying my code under an MIT open-source license, I’d written a Java Create-Read-Update-Delete (CRUD) application that had really bad architecture but that worked for months (sadly no more!).

So why was this geocomputing ?

Beyond the realisation that I had created something new, I told these professional web designers, fullstack specialists and UI/UX pros just how similar we were:

  • Using open-source code is like reading published papers, it is essentialy ‘standing on the shoulders of giants’ to quote Newton (and others) before me: every time you run an import statement at the top of your Javascript, Java or Python code, you are doing just that.

  • Programmers, like geoscientists, need to learn something new each and everyday of our professional lives. This is because both evolve in a community which is constantly pushing the boundaries of knowledge. And while none of us can even hope to keep up with the rate at which knowledge evolves, to stay current we must keep learning.

  • In both fields, we handle uncertainty, change and large volumes of data and we therefore have to observe, discuss, report and interpret all the time.

So in short, whether you’re looking at an outcrop or a section of code, chances are your data are incomplete, you and your neighbour have different opinions about the best way to tackle the problem (and chances are both approaches can work), you’re going to have to make some interpretations and decisions and you’ll have to tell someone about them. And in both cases, your actions are going to have an impact.

The two important lessons I learned from my Telegram bot are:

  1. Programming is as much part of my toolkit as my hammer and my compass clinometer, and

  2. I can not only run import commands (here read: ‘run Excel or any other software’), but I can write and create my own code and run export

And now the sky is the limit

And to reach it, here are some closing ideas.

Don’t code alone. I mean this in different ways: don’t code only for your present self, but rather code for your future self. Don’t code by yourself, but rather discuss your ideas and code snippets with others. Don’t keep your code closed-source, but rather give it away with an open source license (for example using MIT or Creative Commons licenses).

Don’t limit yourself to one language. I’m a noob coder, and aim always to remain so because when I no longer am, I want to learn something new. I started with Java, Javascript, HTML and CSS, then came Python and R, and who knows where next. My point here is that you don’t use an Estwing E3-20PC hammer to try to get a sample from a fresh gneiss (unless you want to buy a new hammer). And likewise, different programming languages are better suited for different tasks.

Be curious. I guess you wouldn’t be a geoscientist if you weren’t curious, but the same is true in geocomputing, the list of resources out there that we can use to study the Earth is almost limitless, so yes: the sky is the limit, but don’t forget to look down.

References

IonicaBizau / scrape-it, A Node.js scraper for humans.

rubenlagus / TelegramBots, Java library to create bots using Telegram Bots.