I had always seen requests for it on various Swift posts. Someone will post a long lyric acronym, and someone else who isn’t in the know will be frustrated and lament a site like this not existing.

It’s pretty basic right now, but you can search any acronym thats between 4 and 50 letters long, and it will tell you the song and album of any match.

Behind the scenes, there are 30,000 files, split by the first 4 letters of the acronym, so when you do a search you’ll pull the file that matches the first 4. Eventually I’d like to make it so you can get more letters from a short acronym, but I had to start somewhere.

So… Wdyt? I’d love some feedback

You are viewing a single thread.
View all comments View context
2 points

Yeah I sincerely appreciate the feedback.

The 404 should just say the same message as “acronym not found”. It just means the first 4 letters didn’t match a file on the backend; I didn’t enumerate all the blank json for A-Z*4.

It was a really challenging project to process all the data. As with most large datasets, there are tons of pain points. Like 60% of the time spent was parsing out the song name from the janky first line of metadata. Some pain I dealt with over the project off the top of my head:

  • Song titles with special characters (Question…?)
  • Song titles that start with special characters (…Ready For It?)
  • song titles without capitalization (all of folklore/evermore albums)
  • Inconsistent apostrophes ' vs
  • Lyric words that start with special characters
  • The god damn ZWJ’s littered throughout everything
  • For some reason the Cyrillic “e” is used everywhere, which leads to some dupe lyrics
  • How to treat numbers (I decided the acronym should be the first letter of the number; search for “OTTF”)
  • The source (genius) littering random strings throughout “you might also like…”
permalink
report
parent
reply
1 point

The 404 should just say the same message as “acronym not found”. It just means the first 4 letters didn’t match a file on the backend; I didn’t enumerate all the blank json for A-Z*4.

Yeah, but it doesn’t translate to the site. That’s what I’m trying to say :) Your catch above doesn’t distinguish between 404 or anything else (5xxx) and displays An error occurred while processing your request. Please try again later for all eventualities. So, regardless whether the acronym wasn’t found or there was a genuine server error, the same error message is displayed.

It was a really challenging project to process all the data. As with most large datasets, there are tons of pain points. Like 60% of the time spent was parsing out the song name from the janky first line of metadata. Some pain I dealt with over the project off the top of my head:

I honestly have no idea what you had to drag it all out from, but it looks well implemented from the small amount I played around with it. I’ve never used Firebase, but it looks like you got it working so that’s a good job too.

It’s probably just my old man brain that saw you were doing this all with files and it felt odd. That’s not to say it’s wrong, it’s just different to what I would have done.

There’s a bunch of advantages to databases, like indexes and partial/fuzzy text matching - but I can certainly understand why you went this route if you needed to keep costs down and didn’t want to bother with any DB maintenance.

Well done :)

permalink
report
parent
reply
1 point

As a fellow old man, at least relative to this fanbase, I fully understand, and this is exactly the kind of feedback I was hoping to get. Thanks!

As a devops engineer, sometimes the most efficient server is the one that doesn’t exist; next best is the one that someone else pays for. If heroku free tier existed, I’d consider using that to handle queries server side and aggressively cache them in a CDN.

permalink
report
parent
reply

Taylor Swift

!taylorswift@poptalk.scrubbles.tech

Create post

General Taylor Swift discussion. Welcome all Swifties!

Bring your clown hats, your wild theories, and your hype, this community is for you.

Some basic guidelines:

  • Posts should be about Taylor Swift
  • Criticism of Taylor is fine, but open trolling or low effort posts like “Her music sux” will be removed.
  • Downvote trolling is actively monitored. Downvotes are enabled and welcome, but if all that you do is downvote, it will result in bans. Join the discourse, if you don’t like this community feel free to block it. Admins have the ability to see votes by user, and we use that ability here.
  • General “Don’t be a dick” rules apply, no trolling, no being a jerk
  • No NSFW. This is a fun Swiftie community. NSFW is banned here.
  • Use the “spoiler” tag generously when it comes to Tour spoilers. Pictures and outfits are fine, but streams/setlists should be marked. (Remember while the US tour is winding down, our global Swifties are just ramping up)
    • Add [Spoiler] to your title
    • Use the spoiler text for any spoilers in comments/description (the triangle with the exclamation point)

Community stats

  • 232

    Monthly active users

  • 231

    Posts

  • 938

    Comments