📁 ~/Download/tmp is where the fun's at

Replying to scammers, reverse engineering governmental websites, playing chess on a music device.

Fabio Barbero published on
6 min, 1164 words

Categories: Random

Where my side projects go: ~/Download/tmp

Yes. Most of my side projects reside in a folder named tmp, in the Downloads folder. Now you may think: this is a really, really bad idea. And you'd be right. The folder and path do not follow any logic, and could easily be deleted by accident.

And yet this folder contains a lot of projects I am proud of: finding out which restaurant name is the least original in Europe (it's "Taj Mahal" - and "la Dolce Vita" for Italian restaurants), code to stalk which flatmate is at home based on the devices connected to the wifi (barely used), discovering that the biggest advertisement company in Europe has a platform dedicated to censorship in Asia1, code that automatically replies to spam emails (a follow up on this blogpost), two draft startup/larger project ideas, ...

There's even code I used to find vulnerabilities on multiple platforms, that earned me free credits and a lifetime subscription!

So why do all my side projects end up there?

Every one of these projects begins with a silly idea. An idea so silly that it usually swims around in my mind for a bit until I actually decide to entertain it with some code. My first thought, based on experience, is always: "yeah, that's not gonna work", or "yeah I'm not going to spend time to do that".

For instance. I wake up one day and realise that the insanely cheap (12 EUR/year) public transport subscription is going to expire in a few months, on my 25th birthday. That's a bummer 2. So a monkey in my brain tells me "I paid for the whole transport network, so I should use the whole transport network". Okay, cool. And then the day goes on. A few days later, I wonder how you could solve this problem mathematically, and remember a slightly similar problem I tried to solve a few months before. The previous project was attempting to write code to build an itinerary and a playlist that would allow me to cycle through the streets of Montreal while listening to the songs from Anomalie's Metropole 1 and 2 albums named after them. This problem turned out to be insanely hard, and I had to let it go (this too, in the tmp folder). But writing some code that covers all the lines of a public transport system in the least amount of time seems slightly easier. And so I decided to start sketching out some code.

Now, this is likely to go nowhere. I don't want to pollute my nice, structured directories with code that will never be used again. And so I open up a random folder that I (should) clean up often (enough): ~/Downloads. Yes I know, it doesn't make much sense. But I'm used to downloading code in that folder, and running it from there. And to differentiate it, I place it, I put it in a temporary folder, named tmp.

Organising files is a hard task. Hierarchical folder organisation requires a clear idea of what the ultimate goal of the project is, which I often don't know. And so far, trying to organise a project from the start has stopped me from actually getting started more often than not.

The project I mentioned ended up developing into a fully functioning website where anyone can upload a GTFS file from a transport operator, and find a way to take all lines running fully on the browser. I went ahead and tested it for myself, and took all the trams of Brussels in one day!

What's in this folder?

A lot of stuff. Most of which are failed attempts! Some of it might be worth having its own blogpost. Or maybe not. Most of the time these projects lack a storytelling aspect for me to truly want to share them. During my trip with all trams in Brussels, I realised how pointless the project actually was, and was unable to give it some meaning or good storytelling, so I decided to scrap it. It was still a nice trip through Brussels tho!

If you're interested, you can find the code on my GitHub.

To give you a more complete list of projects:

  • Attempting to find .git files on multiple domain names
  • Finding compromising comments in research papers
  • a script to check whether camping spots have freed up on a website
  • extracting geojson data from an Interrail trip
  • using a Novation Mini Launchpad as a game console

A small (slightly unrelated) rant

Like many people, I have a love-hate relationship with technology. On the one hand, it's great. It allows you to retrieve information at an insane speed, which can be very useful for learning new skills, and can also be a fun little game. On the other hand, despite technology being generally developed to "allow humans to spend more time on the things they love", a large number of humans seem to instead spend a lot of time with technology, and not being too happy about it.

Having spent a big chunk of my life interacting with screens, I feel the desire to detach myself from them, and spend more time outside, moving my body, and building things in person with other humans and communities. I consciously pivoted most of my hobbies to be off-screen, and wish to do so more and more.

However, despite the idea of spending my whole life coding from 9 to 5 haunting me, coding can still be a lot of fun. When I want to. Or when I felt the pressure to be on my computer by peers and colleagues, and I really wanted to procrastinate.

In my ongoing process of more strongly defining my work ethic, and only working on things that fulfil me and align with my values, I have decided to give a little space to some of the projects I have worked on in the past. My hope is that these stories will amuse you, and inspire you to build whatever quirky projects you have in mind.

Conclusion

If you are like me and often overthink about how to properly structure and clean up before starting a project (which you should absolutely do at some point), try reminding yourself that fun projects should be fun.

And yes, one day I'll move the finished projects to a proper folder, and archive the unfinished ones. But for now, I do enjoy this little chaos. Given that my old laptop is also likely to die soon, I'm leaving cleaning up for when I'll get a new "fresh start".

1

I have contacted them, informing other potential vulnerabilities I found and asking for comment on that platform. I have never heard back.

2

yes, Belgium does offer insanely cheap public transport if you're under 25.