top | item 39951422

Ask HN: What was an interesting project you started and finished over a weekend?

172 points| nishithfolly | 1 year ago

What have been those small, satisfying projects you started on a Friday evening, and by Sunday, you had something cool or useful (or both!) to show for your efforts?

Was it a simple app that solved a daily annoyance, some fun IoT experiment, or some non-tech hack that made your life easier?

238 comments

order
[+] ChicagoBoy11|1 year ago|reply
I'm Brazilian and when I moved back home for a bit the country had recently inaugurated a national exam for all high-schoolers. About maybe a year after, they'd publish an anonymized data set for researchers with a nice question-by-question breakdown of how every student performed. I worked at a school at the time, and one thing we wanted to know was how WE had performed in the questions so we could gauge if there were some things our students were consistently unprepared for.

They didn't provide that data, but it turns out with a little bit of grokking and staring at that 10gb text file, you could reverse engineer it so you could extract all the kids of a given school, and aggregate all of their answers. I produced a nice little report for our admins, with the questions of the text next to how we had performed in the aggregate and state averages, as well as averages of our "competitor schools."

The best part, though, is how I remember it being a bit "bullshit" that we, a private school, could afford to do this, but since the data was actually valuable to inform practice, surely the department of education should do that for every school! Whelp, over the weekend, I computed that info for every school in the dataset, and just stored a CSV for every school in an S3 instance (this was my ridiculous caching strategy lol). Spun up a frontend where you could select your school, and nicely visually go through every question, as well as print a pdf summary of the whole thing. On Monday morning tweeted at an ed journalist, and in a few days had a spread of me in the country's top newspaper, and people emailing about jobs "at my company."

This was the most rewarding project I've ever done, and I'm sad to say nothing has come close since. It cost me $0, produced a public good that I could see was being accessed from every state in the whole country, was technically interesting, and I saw it through from start to finish over the weekend!

[+] soneca|1 year ago|reply
Great work! Inspiring for me, as I am trying to build a better UI to consult the document “Base Nacional Comum Curricular” and help all schools to use it for their curriculum creation.

Is your site still up?

[+] elseleigh|1 year ago|reply
Not coding, but my daughter Aelyth and I are a musical duo. Our first album (https://sidesister.bandcamp.com) took four years to complete thanks to COVID lockdowns and living in different cities.

On Thursday evening we rendezvoused at an equidistant AirBnB to sketch out our second album. It's now Sunday morning, Aelyth's just caught the train home because she's working today, but we have a concept, a title and ten songs for the new album!

There are admittedly another seven song ideas we've not had time to explore, but we've accomplished much more, much more quickly, than either of us thought possible. We've also committed to an overall musical style, plus boundaries on arrangements and instruments with the intention of keeping the production phase as concise as possible.

[+] moralestapia|1 year ago|reply
This is beautiful! Wow, my dearest congratulations and admiration :)
[+] Apfel|1 year ago|reply
This is wonderful! You may be the first group to make me actually create a BandCamp login!
[+] remipch|1 year ago|reply
A minimalist MP3 player for my grandmother.

The whole user interface is a single physical button on her desk :

- ON : indefinitely play all MP3 files randomly

- OFF : stop playing

The longest task was to find her favourite pieces of music from my aunts and uncles.

https://github.com/remipch/radio_colette

[+] jononor|1 year ago|reply
Fantastic :D this is what personalized tech mean! Not some privacy invasive, data harvesting, adware service...
[+] _daver|1 year ago|reply
What did you do for the enclosure/button?
[+] leemailll|1 year ago|reply
iPod Shuffle without copy files

EDIT: wait, after take a look at the repo you do remake iPod Shuffle

[+] angrygoat|1 year ago|reply
We had a situation here in Australia where there wasn't an open source way to verify the outcome of Federal senate elections. The algorithm is slightly complicated, mostly because it's set up so that it's possible to count it manually as it was devised prior to computerisation of the voting system.

In 2013 this became important: in Western Australia, we had a very close senate election. There was one critical exclusion in the count where just 14 votes determined the outcome between two candidates. Obviously the accuracy of the counting software was key; it actually crashed when they were doing the count. They restarted it, but that shook the confidence of a couple of people I knew, and so I decided to write my own software to verify the count. I knocked it up in two all-nighters: https://github.com/grahame/dividebatur

Of course, I/we were fortunate that the electoral commission was forward-thinking enough to have published the data required to fully reproduce the count.

Some open government folks later on used the existence of my software to try and get the electoral commission to release their software system under Freedom of Information laws, so that it could be verified. I was quite amused when the commission alleged there was no way I'd done it in two nights. I had; but of course, what I had was a Python implementation of the count, not a fully-fledged electoral management system like they had.

Later on in 2017-18 we had a constitutional crisis[0], as various senators were found to hold foreign citizenship and thus be ineligible to hold office. Those ineligible senators were replaced by running a count-back of the vote, with them excluded. I happened to be the only person who had a system that could work out the results ahead of the electoral commission, so I had quite an exciting few weeks providing the media with predictions on who would take over the various seats that were lost.

Now there are better and more robust systems that have followed mine, but I must say I was quite happy with this two-day hack!

[0] https://en.wikipedia.org/wiki/2017%E2%80%9318_Australian_par...

[+] maaaaattttt|1 year ago|reply
A simple game I posted here before [1].

I think it’s rather hard to finish a project in under one weekend. And we tend to easily say “I did it over the weekend” but mean “I had something working after one weekend”. Especially if the weekend is not one where you spend 48 hours in front of the computer (counting Friday evening in). So, I was quite proud to get it finished in one weekend under normal conditions.

[1] https://reach-100.com

[+] fjcp|1 year ago|reply
I started and when a grasped the concept I immediately closed the page and walked away haha. I foresaw myself spending hours and hours trying to finish this game. It is like 2048 but harder.
[+] amuresan|1 year ago|reply
Great game! thanks for sharing
[+] alessandra140|1 year ago|reply
My parter and I made a fun erotic story generator called Smitten (https://smittenstories.com ) during the valentine's day weekend. It's a simple nextjs app that utilizes Mixtral to create kinky/erotic short stories based on your inputs on characters/setting/action, and you can be as explicit as you want to be.

It started as me joking about how something like this would make a cool nerdy valentine gift, which then got both of us excited to work on it together. We posted on reddit during V day, and so far 170k+ stories generated! We haven't monetized it - so far it has been supported by small donation from a few users who use it regularly.

[+] simonbarker87|1 year ago|reply
I needed to test the impact of a product we were developing on the air temperature distribution of a room (it really is warmer at the ceiling) so over the course of a weekend I strung up 27 OneWire temperature sensors in 9 strings of 3 from the ceiling of my living room and wrote a script running on an mBed microcontroller (like an Arduino) that would poll the OneWire bus every 30 seconds and send the responses back to my laptop which would then record the data in a CSV for me to graph once the test was done. This also required me to make a OneWire library from the OneWire spec as back then there was no public implementation for running on an mBed.

This test data formed the backbone of that company for the better part of a decade as it clearly showed when our product was running the temperature at the ceiling (across the whole room) reduced by 2degC and at the mid point of the room (head when sat in a sofa height) it rose by 2degC.

Our product acted as a destratifier and the test rig to prove it took me from Friday evening to Sunday night to make as I was working elsewhere at the time.

[+] anfractuosity|1 year ago|reply
That's a cool idea, I guess it was maybe ds18b20 you used?

I'm curious if a very low resolution thermal imager such as Grideye could act in a similar fashion if you scanned the room using servos (https://www.adafruit.com/product/3538 is an example of a breakout board). Not sure of the accuracy though of such sensors for measuring temperature.

Edit: Just noticed they have "an accuracy of +- 2.5°C" so not good enough I guess, whereas ds18b20 claims 0.5C.

[+] jawns|1 year ago|reply
It was called "Take Me Warmer." Basically, you entered in your ZIP code and a desired temperature, and it told you the closest ZIP whose forecasted high for the day was at least that temperature.

So, if you were in NYC in January and wanted to find out the closest location that was at least 72 degrees, it would spit out locations that met that criteria.

(There was also a companion app, "Take Me Cooler," that did the reverse.)

Required a one-time download of ZIP/coordinate data and daily downloads from a weather API. Figured out how to calculate the distances, and most of the rest was just stitching it all together.

[+] geofffox|1 year ago|reply
I'm a meteorologist. Feel like sharing?
[+] CharlieDigital|1 year ago|reply
Last year, my wife and I were planning a 12 day trip and I was struggling with Google Docs moving days around while we planned our final route.

Told her to give me 2 days and ended up making a small app to help us plan our trip; the first version was built over New Years weekend:

https://turas.app

Kept working on it and it was good enough to share to Reddit 6 days later [0]. Got a good number of users and still keep it maintained/updated. Also have some videos showing the progress and major features over the last year [1]. It's been fun; my go-to project to tinker on when I feel bored.

Tried to monetize it, but didn't really find a market so just keep it free for the users that are on the platform :) The folks that come back to it tend to be obsessive planners (like my spouse).

[0] https://www.reddit.com/r/TravelHacks/comments/105s90u/i_buil...

[1] https://www.youtube.com/@turasapp/videos

[+] another-dave|1 year ago|reply
Looks cool! Must try it out for our next trip coming up.

How did you land on the name Turas by the way? I was expecting an Irish connection as turas means 'trip' in Irish :)

[+] sunnybeetroot|1 year ago|reply
Nice! I personally use wanderlog and am a paying user (even though the free plan gives me everything I need), maybe you could take inspiration from their monetisation strategy?
[+] throaweyprimy|1 year ago|reply
This is cool. I’m not a super planner, but I’d use it.
[+] dagw|1 year ago|reply
A 15-minute-city analyser using OSM data. You gave it a list of everything you wanted to be close to (ie a school, restaurant, doctors office, food store etc.) and it would show you which parts of a given city had all those things with an N minute walk.
[+] bob88jg|1 year ago|reply
Fascist! How dare you suggest I shouldn't ever go further than 15 minutes to access necessary resources to live my life! It's my god given right to spend at least an hour in traffic to get to the doctors...

/s there is actually a whole movement of people in the UK that beleive the very idea of a 15 minute city is a conspiracy to limit their freedoms...

[+] ramesh1994|1 year ago|reply
Hey this sounds pretty cool! If this is public would you mind sharing a link?
[+] tmoertel|1 year ago|reply
Over four decades ago, when I was in my pre-teens, my family had a TRS-80 Model 1 (or was it a 3?), and I created a simple game for it in BASIC. In the game, a maze-like wall of blocks would be built as you watched, each block one of the system's super-chunky monochrome pixels. When the wall became almost, but not quite, impassable, you'd hit the space bar to halt the construction and begin the next phase of the game.

In this phase, you had to use cursor keys to move your character, again, a super chunky pixel, from the bottom of the screen, through the maze-like wall, to the top of the screen. If you reached the top, you won the game and were awarded a score equal to the number of blocks placed in the wall, minus your number of steps.

What made the game surprisingly fun was the tension you felt when the wall was being built. If you pressed the spacebar too soon, the wall would be too easy and your score would be low. But if you waited a little too long, the wall will be impassable and you'd lose. No points.

This dynamic was especially fun when multiple people played in sequence against one another, trying to get the high score.

Anyway, I remember that game took a weekend to write when I was a kid.

I also remember that my father, for some reason, really liked that game. He would comment for years after about how much he liked it and would like to play it again. But we no longer had that old TRS-80.

Fast forward to 2023. As a Christmas present for my dad, I recreated the game in a web browser. Again, it took about a weekend's worth of on and off work.

He was surprised and delighted by this gift. Over the next few weeks he'd send me the occasional email proclaiming his new high score.

Anyway, the whole thing runs client side, so if you want to experience 45 year old gaming, here you go:

https://blog.moertel.com/wall_of_denial/

Scores over 3200 are considered pretty good.

P.S. Although the laughably bad on-screen instructions don't say so, you can play the game on a phone. Move your character by clicking the top, left, bottom, or right of the game screen.

[+] actionfromafar|1 year ago|reply
Brilliant game dynamic, and it’s so elegant that the human must solve the maze. The computer never does anything “heavy”!
[+] robintw|1 year ago|reply
I wrote the British Placename Mapper (https://placenames.rtwilson.com/) last weekend, and it got a bit of traction on Twitter here in Britain over the last week.

It lets you search for parts of British place names, and will plot the places that match on an interactive map, so you can search for places that start with 'great' or end with 'burgh' or contain 'sea' (or you can use regexes for more complex stuff). People have found some cool patterns with it.

[+] _kush|1 year ago|reply
I sell apps for a living - I have a few iOS apps and a macOS app. Each of them uses a different way of billing (app store, revenuecat, lemonsqueezy etc), which makes it a PITA to check the total revenue (which I need to do everyday because I am so obsessed with it).

So, I recently converted my old phone into a 24/7 live sales dashboard[1] which consolidates the revenue from each service. It resembles a retro device inspired by the pip boy and was finished within a day!

[1] https://twitter.com/kushsolitary/status/1777306909344715158

[+] sunnybeetroot|1 year ago|reply
I have the same problem and wished there was a service to aggregate this
[+] dgritsko|1 year ago|reply
Was out to dinner with the family, and my kids were enthralled with the "word search" that was on the kid's menu. I thought it'd be cool to build a custom word search generator - given an arbitrary list of words, it'd spit out a grid containing them. The part that made it fun was trying to figure out a layout for an arbitrary list of words that would be as compact as reasonably possible. I was able to get something working in just a couple of hours, and my kids loved being able to do word searches with stuff that was relevant to them, like names of family members. Of course, there are tons of similar generators freely available online, but it was very satisfying to figure it out for myself and come up with something that the kids enjoyed.
[+] imadj|1 year ago|reply
I made HNRelevant, a web extension for HN (https://github.com/imdj/HNRelevant).

It shows related discussions for each submission page. Many times, I found myself intrigued by interesting discussions which left me hungry for more and I'd go down a rabbit hole, or maybe it was promising but didn't get enough attention and I'd need to check if there were any related discussions in the past about the same subject.

I found that even though HN is a news aggregator, many discussions on HN are timeless (just like this here).

I'm proud of it and find the experience and flow to be very enjoyable. It also helps me find great stories that I might not have stumbled across.

[+] webspinner|1 year ago|reply
I just installed HN relevant. It works pretty well!
[+] m4rc3lv|1 year ago|reply
This is cool, thank you very much for providing this for Firefox as a an add on
[+] rcarmo|1 year ago|reply
http://github.com/piku/piku was by far my best example of such a thing. I was fed up with how hard it was to deploy and iterate applications quickly, and the first version was done in a weekend.

In short, it's a minimal Heroku clone that started out as ~500 lines of Python run by a custom SSH config.

It has paid for itself several times over, and is still something I use daily (it runs all my little API endpoints, Node-RED instances, Python services, you name it.

[+] nl|1 year ago|reply
This looks great!
[+] joelhaasnoot|1 year ago|reply
Created the first version of an app that took large long PDFs of train driver/conductor schedules in my country and presented them in an nice way in an app. The previous sources were all hard to navigate and had ads. I spent a weekend parsing PDFs into SQLite, and shipped the app with a preloaded database. Then kept updating and tweaking and added some fun intersections of the data ("who else is operating this train").

8 years later my source of data stopped providing data because of data protection concerns and the company introduced their own app/functionality for the same. Never earned me a dime directly but did get me my next job - it was a great sample for the interview

[+] thiht|1 year ago|reply
I wanted to know the most used Go dependencies (not most starred or most downloaded, but most depended upon), so I made a scraper to get the go.mod from a few hundreds open source project on GitHub, and got the go.mod of each of their dependencies recursively. I stored this in a neo4j (first time I had the opportunity to use a graph database!) and got my answer (stretchr/testify is the most used dependency in the open source ecosystem by a large margin).

It’s not "finished" because I still have tons of ideas for improvements, and still want to make a blog post explaining how and why I did it, and show the results in an interactive page (and also share the database with everyone).

[+] coumbaya|1 year ago|reply
Interesting, but I do wonder what the result would be if you excluded _test.go ?
[+] maccard|1 year ago|reply
At work, most of our deployment pipelines are something along the lines of "get some credentials, call a remote API and wait for it to say it's done". Occasionally, they also have "download this large binary from S3 and upload it somewhere else". Because these are in our CI, they are blocking steps that consume our builder resources.

We use Buildkite, so I changed their agent to run as lambda function, and used their eventbridge integration to trigger the lambdas. We saved about 15% of our CI costs by not using our 32 core build machines to call ecs wait-services, and freed up said machines to be able to run more often.