Good morning, readers. These link posts are typically reserved for the weekend, but my weekend ended up busy as heck with, ok, more than a few hours of Diablo 4, but other stuff including the beginning of Christmas decorating. To say we've got a lot of decorations would be an understatement, so it's a multi-day process, but we've begun and hope to wrap before Thursday. As evidence, here's Frank, our year-round gargoyle because, why not:

A gargoyle with a Santa hat on - a Christmas light in front as well.

Here are some links that hopefully entertain you!

Photoshop on the Web #

This link is a bit old, but here's a look by Addy Osmani about how Photoshop was brought to the web. My assumption is that most people now know about, but if you don't, Addy does an awesome job talking about the effort required to make this happen. There's quite a bit to digest here, but the TLDR is... the web platform has truly moved forward in such an incredible way. Unfortunately, Apple's Safari continues to lag behind and can't be used for this application.

Alternatives to JSON #

For me, my history of working with APIs basically went from SOAP (ugh) to JSON, so JSON is been "just how data is done" for me for... probably nearly twenty years. However, JSON is definitely not the only way to transmit data. There's actually not one, but two alternatives: Protocal Buffers (protobuf) and Avro. If you would like a nice introduction to protobuf, check out this article: How LinkedIn Adopted Protocol Buffers to Reduce Latency by 60%. You should not, obviously, run out and change all your code. Like many things related to performance tweaking, you should first evaluate if it makes sense, but knowing you have options is always a good thing!

Advent of Code 2023! #

Happy happy, joy joy! I absolutely freaking love Advent of Code and recommend it every year. For folks who don't know what it is - Advent of Code presents a coding challenge every day from December 1st to the 25th. The challenges all have a central story and every day the challenge is split into two parts - with the second part typically being a modification from the first half. I typically share the following advice:

  • Give up. No, seriously. It's ok to give up. I "do" AoC until it becomes too much and don't even pretend like I'll finish it. If you do, great! But give yourself permission to just play with it until it stops being fun.
  • The last year or so I've used Python for my solutions, and it's a great way to practice new (to you) languages.
  • If you can't get something working, check their Reddit. There are always solutions posted and a great way to practice your language of choice is to take a solution in another language and rewrite it in the one you're using. It's not cheating, it's learning!
  • And remember, this is meant to be fun!

If you want, you can see my previous solutions, and follow along this year, at my AoC repo: Looks like last year I did 8 days and called it quits. I'm going to try for 10 this year, but we'll see what happens.