Hugh Jass Message 🗣
Thursday, April 19, 2018 :: Tagged under: engineering projects culture works. ⏰ 3 minutes.
Hey! Thanks for reading! Just a reminder that I wrote this some years ago, and may have much more complicated feelings about this topic than I did when I wrote it. Happy to elaborate, feel free to reach out to me! 😄
The song for this post is 200%, by Akdong Musician.
Unbelievably, I followed through on a threat to do a project the other day. I present to you hughjassmessage.com.
What is it? A clone of bigassmessage.com, correctly dubbed "the most useful site on the Internet." I use(d) it all the time to to send links like these to my friends. It's a bit like Let Me Google That For You (example) in that it's a troll-ish and fun wrapper around messages you might want to send your friends.
Why clone it? Because I love it, while also having a few critiques:
It's backend isn't always up. Often (like, as I'm typing this) I'm unable to create new Big-Ass Messages.
Load time: according to its author, people have submitted tens of millions of messages! This is cool! But the underlying datastore is taking a bit longer to fetch them from the URL hashes, so when you load a message, you're greeted by a placeholder "BIG-ASS MESSAGE," which removes the initial shock (and therefore, fun!) of sending this to your friends.
Querystring option: like Let Me Google That For You, I felt like it would be handy to generate a link without having to make a call to a specific datastore. I might add proper short IDs like BAM does, but right now you can call it with either
q=<MESSAGE>in plaintext, or
Obscured URLs: if you ask someone to click a url called
bigassmessage.com, there's a bit less surprise in what they're getting. So while I have both hughjassmessage.com and hugeassmessage.com, generated URLs point to
hjm.wtf, so your friends won't see it coming until it hits them.
Behind the scenes
In a case of massive overkill, I used Phoenix for this, and am hosting it on a LightSail instance. It doesn't have a datastore yet, but I might put SQLite behind it and push backups to S3.
Dropwizard was a favorite for a while, but even it makes certain basic things hard, and I'm not feeling in a Java mood recently.
I find Elixir strange. That will pass, but its syntax is a bit sugary for my tastes. I'm finding tools like Distillery, Mix, and Hex delightful to use.
Let's Encrypt is such a blessing.
I avoided Docker. It's a small personal project, so it's a "pets, not cattle" model: if I lose the instance, I'd have to manually re-install Elixir, nginx, and the like. You don't need city food inspectors in your personal kitchen when cooking yourself dinner, and so your stuff probably doesn't need anything more than a pet server anyway 😛
Have fun! And ping me if you run into any bugs! 😄
Thanks for the read! Disagreed? Violent agreement!? Feel free to join my mailing list, drop me a line at , or leave a comment below! I'd love to hear from you 😄