Week 3 - bouba$ whoami
What if the about page had its own entire blog post? 🤔
My skills, interests, and first ever open source contribution
All About Me - Extended Cut DLC
Let’s set the scene. Almost all of us have been there before: in a new classroom or classroom-adjacent environment, when an instructor makes some statement similar to “Let’s go around the room and say our names and something we’re interested in!”. Dread. I shudder and instantly forget every single thing I have ever enjoyed in my entire life. Eventually I am next in the queue, and proceed to rattle off some basic, easy answer, eager to be away from attention.
Jokes aside, it is difficult sometimes to talk about my skills and interests on the spot. Though this blog post serves a much better purpose than those icebreakers we tolerated ( Icebreaker? More like Icebreakmeoutofhere ), in some ways it reminds me of them. Alas, being able to explain what useful skills I have and what I enjoy are essential life skills. Fortunately for you, dear reader, I have had a week to reflect on myself and consider these things (of which I used the weekend to actually think about it).
But before I get self-centered, a few words about a personal sponsor and outlet for some of my interests:
<shamelessplug>
Check out Hunter Open Source Club on Facebook! They run events and workshops for Hunter students to help gain exposure to tech, web development, coding, and CS at Hunter in general, using open source tools and philosophy wherever possible.
</shamelessplug>
bouba$ cat ~/.boubacar_skillz
(“What do I bring to the FOSS table?”)
-
Attention to Detail
- I’m not saying I read the entire terms and conditions every time I download software or anything like that, but most of the time I pay pretty close attention to the finer details of projects. I inspect webpages that are interesting, proofread my writing way too many times, and always try to find the most obscure edge cases for code. A good example of this is in last week’s post, where I noticed a difference between the tutorial for an add on and the video showing how to test it. This is very helpful when searching for bugs, and even more helpful when finding root causes for those bugs. Though I don’t always catch typos before sending things out, I definitely always at least catch them right after.
-
Perseverance
- If it wasn’t for this skill I honestly may have switched my major/career a while ago. In the face of the same exact error message for the 50th time, I will keep on pushing, trying new approaches, stepping back for perspective, searching, reading, and
googlingduckduckgoing. I tend to stick with problems until they are solved, and solved for all cases (or as many as feasible). In terms of open source contributions, this will help when getting stuck on bugs or errors while trying to contribute code. Persevering through issues also ensures that I am thorough when explaining problems, or suggesting solutions or workarounds.
- If it wasn’t for this skill I honestly may have switched my major/career a while ago. In the face of the same exact error message for the 50th time, I will keep on pushing, trying new approaches, stepping back for perspective, searching, reading, and
-
Pattern Recognition
- I think I can pretty quickly pick up on patterns in a codebase, such as styling and code/file organization, which means fewer trips to a
CONTRIBUTING.mdfile while working on a project if I forget certain style standards. I can look for inconsistencies in code or documentation and use them to make contributions, helping keep projects organized and uniform.
- I think I can pretty quickly pick up on patterns in a codebase, such as styling and code/file organization, which means fewer trips to a
-
Programming && Web Development Experience
- My previous experience with web development will help me greatly when it comes to Javascript based FOSS projects. I am fortunate enough to have worked with the React framework, Express server, Node.js, many other JavaScript frameworks/libraries, and several databases in the past, so I am familiar with the full stack ecosystem. I am also familiar with Python, C++, and bash (in that order), which would come in handy when dealing with other types of tools outside of web.
bouba$ cat ~/.boubacar_interests
(“Which FOSS tables am I bringing it to?”)
- Tech
- Web Development Libraries and Tools - I’m not going to be doing any less web development anytime soon, so any new/cool projects related to it would be useful and interesting to me.
- Algorithms/Math - I like to mess around with different algorithmic problems from time to time in Python/C++ and I find some domains of math very intriguing, especially Discrete Mathematics.
- Esoteric Programming Languages - Reading and learning about them is fun because they’re so interesting, always hilarious, and sometimes just insane.
- Academic
- Linguistics - Spoken languages are just as cool as programming languages!
- Sociological Data - I’m very interested in analyzing social interactions and relationships, and specifically looking at data and projects related to social inequalities.
- Arabic Language - The morphology of the Arabic Language amazes me, and I also like learning about Arab culture.
- Art
- Poetry / Spoken Word - I have immense respect for people who can craft words in beautiful ways, and hope to some day maybe create poetry worth performing.
- Origami - I don’t fold as much as I used to in middle school, but when I do, it is always as calming as I remember. For me, creating an origami object is almost like running a program and being the compiler instead of the developer (or sometimes both).
- Education - At my previous internship I worked on a team dedicated to creating accessible educational features for students, and accessible education has been crucial from the very beginning of my journey in tech. Projects that aim to make education easier and more available to all students can always catch my attention.
- Memes - This blog just wouldn’t be true to me if I didn’t include this. They’re popular, they’re funny, and their evolution over time says a lot about how we humans interact, both online and off.
Above all, I enjoy trying to solve problems. Anything I learn in the process of doing that is fascinating to me.
Brb, I’m realizing I should probably edit my about page.
bouba$ ./weekly_activity
From the East Side of Manhattan to ~Home to London and Back Again: Journey to my first real merged pull request
export OSM="OpenStreetMap"
TLDR - Here’s a roadmap of my weekend adventure through OpenStreetMap:
Made some OSM edits ⟶ learned about the development behind the OSM platform ⟶ found the openstreetmap-website repo ⟶ discovered a ‘good-first-issue’! ⟶ spent 5 hours trying to install and run the project ⟶ made a pull request fixing a documentation typo that got merged
Prologue
The story of my first contribution truly begins almost 5 years ago. User Malachy Overlord of Books created a note about an incorrect building identification at 68th Street and Park Avenue on OpenStreetMap.org. And there the unresolved note persisted, collecting virtual dust. Several years later, our hero (me) visits OpenStreetMap during the last ten minutes of Open Source lecture at Hunter College in search of possible places to look into for edits. In a fateful moment, I enabled the Map Notes layer. Voila! Literally one avenue away from my current location is a point with a note I could easily verify. A quick walk right when class was over was all it took to know that the place was indeed not a ‘School for the Deaf’. A few web searches and cross-reference checks with Google/Apple Maps later, and I’ve made my first edit: adding the Council on Foreign Relations.
An Edit and a Dream
Something that sticks out to me right away (after celebrating), is the fact that changesets on the OSM site don’t really show exactly which tags were edited for a node (ex. changing the name, adding a phone number). Riding the high of my first few edits, and with an open source mindset on my side, I set out to see if it would be possible to change that by adding the feature. I envisioned it similar to diffs when comparing changes on Github, but instead showing changes made from the previous changeset to the current one at a point or way…
I got completely sidetracked and ended up working on some entirely different things. However, I may still come back to that idea at some point in the future when I’m more comfortable with the inner workings of OSM changesets.
Down the Rabbit Hole
First of all, I started my search in the wrong place: the iD map editor repository. The editor and the website are actually independent, but interlinking projects. The developer page in the OSM Wiki helped clear up exactly how the different libraries in the OpenStreetMap Project work together. Viewing and commenting on changesets is handled in “The Rails Port”, the web application powering the actual website and API.
While rummaging around in the repository for the web app trying to understand the flow of data, I looked at the issues and found a good-first-issue tag. Finally, I came across what would be my main coding focus for the next few days: Issue 1689. It wasn’t too daunting, but neither was it a trivial chore. Very clear in scope, with a little wiggle room in terms of implementation. Not too hot (no one had taken it up or commented very recently), but not too cold (there was still interest in the feature as of 3 months ago). A true Goldilocks issue. Nevermind the fact that my experience with Ruby was minimal and restricted to one spinoff code challenge for an accelerator program over 2 years ago.
The feature requested in the issue itself was simply to make emails in object tags on the OSM site show up as links, so when clicked on they would directly open up a mail program. The hard part turned out to be trying to install dependencies and get the website to run locally on my laptop. I will definitely be doubling back to file some installation related issues and try to improve the install documentation, mostly for macOS.
At the end, the only edit I actually made this week was editing a typo in the repo’s install instructions. Such is the power of a single ‘)’. I’m working on a pull request regarding the email issue though, so stay tuned!! Both of the maintainers are London/UK based so there’s a bit of a code lag involved.
In the following weeks we’ll hopefully go even deeper into the open source rabbit hole. ![]()
bouba$ ps
PID TTY TIME CMD
13337 pts/0 00:00:00 bash
69420 pts/0 00:00:00 ps
bouba$ kill -9 13337