Sprint 6 – That’s a Weird Looking Patronus

Sprint 6 – That’s a Weird Looking Patronus

March 29th, 2020

Ok… so I should preface this with a few caveats…

  1. I wasn’t expecting a global pandemic to completely change the way we have to work overnight
  2. I haven’t slept very well at all for the last 2 weeks leaving me only just enough brain power to do my day job properly
  3. I definitely underestimated how much free time I would have.

With those things in mind, you might be left un-surprised that from the 18 tickets I pulled in, I was only able to achieve 5 and some odds and sods.

Sorry… I’ll be better next sprint! I promise!

  1. Precursor
  2. Sprint 1 – The Foundations
  3. Sprint 2 – The ummm Foundations?
  4. Sprint 2 – Nerd Ramble
  5. Sprint 3 – Cooking with matches!
  6. Sprint 4 – Now We’re Cooking With Gas!
  7. Sprint 5 – Robot Uprising
  8. This Is Not the Sprint You’re Looking For
  9. Sprint 6 – That’s a Weird Looking Patronus
  10. Sprint 7 – Corona Stole My Title
  11. Sprint 8 – Adventure Time!
  12. Sprint 9 – Now In Technicolor
  13. Sprint 10 – Refinement
  14. Sprint 11 – Motion In The Ocean
  15. Alpha Release 1.0.3
  16. Sprint 12 – No Rest For The Wicked
  17. Alpha Release 1.0.4
  18. Sprint 13 – I Need a Break
  19. Alpha Release 1.0.5
  20. Sprint 14 – Just James Things
  21. Sprint 15 – Wearing My Heart On My Sleeve
  22. Alpha Release 1.0.6
  23. Sprint 16 – Warm Up
  24. Alpha Release 1.0.7
  25. Sprint 17 – Coffee’s back on the menu!
  26. Alpha Release 1.0.8
  27. Sprint 18 – We’re on fire!
  28. Sprint 19 – Slowly fast
  29. Sprint 20 – Let’s get Nerdy
  30. Alpha Release 1.0.9
  31. Sprint 21 – We’re back!
  32. Alpha Release 1.1.0
  33. Sprint 22 – You Look Cute Today
  34. Alpha Release 1.1.1
  35. Sprint 23 – Sausage Smuggler
  36. A SoSa Retrospective
  37. Sprint 25 – I am SoSa and don’t call me Shirley
  38. Sprint 26 – The best laid schemes of mice and men
  39. Sprint 27 – Vogue, Strike a Pose
  40. Sprint 28 – a New Hope
  41. I Couldn’t Think Of a Title
  42. Guess who’s back, Back again!
  43. Demolition Man
  44. Squid James
  46. We Didn’t Choose This Life, We’re Just Living In It
  47. Let’s go!

Alright, alright James. Enough excuses! What did you achieve then?

You see that table of contents right above this text? Yeh! That one!

Fun fact, up until this sprint, I had to do that completely manually every single post which as you can imagine is a time sink in itself!

Well! That’s all folks! I hope you enjoyed this update ❤️


Alright fine! There’s more!

Issues are down from 1800... Just because I caused them doesn't make them my fault!
Issues are down from 1800… Just because I caused them doesn’t make them my fault!

Last post, you might remember those 1,800 issues I created last time by migrating old content to the new domain. 

Well! I fixed 1,400 of them!

The issues that are left over, like the URLs are going to be a little harder to fix.

Most of issues left over are a little more difficult to resolve
Most of issues left over are a little more difficult to resolve

If I change them, they won’t be ranked any more. If I redirect them to a cleaner, smaller URL… then the old one still exists and I still have the issue.

I’m going to play with a few, make some small test changes and see if it has a positive impact without having a negative impact elsewhere.

Description lengths have been sorted now too and that should reflect in the next sprint.

Does anyone actually know what these mean?
Does anyone actually know what these mean?

Total Links grew from 79,405 to  87,448, 
% total links, external + follow shrunk from 89% to 78%
External, followed links shrunk from 70,291 to 67,880
Internal, followed links grew from 9096 to 19,550

I’m sure these numbers mean something and I should spend time understanding them but right now I have zero clue as to their relevance. I hope you like them though! 👏👏

More impressions than you can shake a mucky stick at!
More impressions than you can shake a mucky stick at!

Search Impressions is up by like 600! However CTR and Average position have dropped. That makes sense because over double the amount of content is showing up in searches but aren’t always relevant to the keywords people are searching for.

Equally… people are searching for some weird things…

My Barbarian name would be Bragg Ironballs
My Barbarian name would be Bragg Ironballs

Corona Night!

With everyone suddenly being isolated I’m trying to find a way to keep the community entertained. 

Thankfully, the community is helping with that too!

Last week, Ricosantigao, did a movie night and watched Twelve Monkeys and then on Wednesday night Omikone ran a drunken Harry potter studios tour. 

Taxidermy Patronus
Taxidermy Patronus

Where we watched some guy with a Go-pro on his head walk around Harry potter studios with his kids and laughed at how silly everything was.

Then Saturday mid-day, a bunch of us watched Time Team together??? 

After 1000 years of chilling in the dirt, imagine your surprise to be suddenly be disturbed by a bunch of perky British archaeologists with only 3 days to learn your secrets
Time Team is a British show following a group of perky British archaeologists who have only 3 days to desecrate ancient British ruins.

I donno… Life is weird right now ok? Bear with us!

This week

Buckle up kids, this Wednesday at 7pm UK time we’re boarding the magic Sosa bus to visit the aquarium

Pack your lunches, return your consent forms and get ready to experience the wonderful world beneath the waves! 

We’ll be looking at a range of exhibits and live cams and there will be a competition for the best shark drawing!*

*winner gets bragging rights and a name colour change to blue if they so desire.

Game Night

It wouldn’t be SoSa without game night right?

Next SoSa game night we will be playing Teeworlds!

Sunday 5th April 1900-2100 GMT / 1200-1400 PT / 1500-1700 ET

We’ve played before, it’s a bit ridiculous… here’s a long play from a previous game night https://www.youtube.com/watch?v=HuoYHJJpdb4

Teeworlds is a game that gives you a lot of freedom and plenty of gameplay mechanics to use or abuse. With a full focus on multiplayer games you will never be bored.

The game is completely free and runs on most machines, so just grab a ticket to join in! 🙂

Tickets here: https://www.eventbrite.co.uk/e/sosa-plays-teeworlds-tickets-100789251364

Registration / Login / Forgot Password

My main focus this week has been building out our registration, login, social login and forgot password system.

Hopefully I don’t need to tell you why these are important to SoSa, but just in case… these are what allow you to register, login and when you’ve forgotten your password, reset it!

This is what a login screen looks like
This is what a login screen looks like

Most of the work I’ve done up until now has been in NodeJS, React Native and using Javascript, but for the authentication framework I wanted to use PHP. 

  • PHP performs better (consistently), 
  • It’s easier to deploy, 
  • The ecosystem is more mature, 
  • Provides a lot of the functionality I need out of the box or as a core module
    secure hashing, session management, memory cache integration, database integration
  • By using a lightweight framework (Ubiquity) I can avoid security issues like the ones the Node ecosystem has fallen victim to in previous years where developers will often include modules for mundane tasks that then become compromised.

It’s not perfect, but considering the above and having worked with PHP for almost 20 years, I’m confident that I can make a secure, scalable and performant authentication service using it.

This sprint, I’ve built a backend API that supports registration, forgotten password, username + password login and imgur login!

I don't have anything sarcastic to say about this screen. It's a database, a base for your data.
I don’t have anything sarcastic to say about this screen. It’s a database, a base for your data.

Some nerd facts

  • We hash your password using Blowfish and every password has a completely unique and random salt to mitigate certain types of attacks.
  • E-mails in this database are also hashed, the only time we’ll store your e-mail is if you say we can for marketing / notifications and that’ll be in a seperate system.

    By hashing them, it protects your privacy but means you can still use the password reset functionality like a normal human / robot.
  • I am hoping we will never actually have to transmit or store your password either, i’m just trying to find a low collision, fast, client side hashing algorithm to achieve this.
  • Password reset generates a 254 character token, which expires in 15 minutes.

    If you then provide the token you get given a “transient” token which when used in conjunction with your new password and the reset token will allow you to reset your password.

    This is designed to help mitigate replay attacks. From a user perspective this will all happen seamlessly. 

That’s all folks!