Goals for 2021

by Jyan Zárate on Monday February 22, 2021 at 12:54 AM

There's stuff I haven't done yet. Additionally, some of this stuff will bring me joy once completed (I hope).

Django. I've always used Flask. I mean, the only thing I use Flask for nowadays is my personal site, but when I first started programming server side stuff (throwback to jwitter) I used Flask. I've later had the opportunity to look through a Django codebase but honestly it didn't click. I wasn't assigned to work on it so I put it off. I know it's very widely used, but I've always been turned off by it's seemingly opinionated structure. So this year, I want to create something using Django.

Build something with yjs. yjs is really cool. Basically, it's supposed to allow you to create a state object, and then you can mutate this object. They call this object a document actually. So the magic is that you can track the mutations to this document as a vector of changes. This means that if my document is a todo list (it could also be a literal text document) then if I upload my copy to a server, go offline, download the copy with another device, make changes and upload it, then reconnect with the original device, I only need to download the changes (although this requires more round-trips to actually compute the changes). Additionally other people could also have a copy of my document, and they could too make changes, even if some of them go offline and reconnect later. It can merge the changes. This library comes with support for multiple communication protocols, so you could have all clients that are accessing the same document transmit changes to each other through a websocket server acting as a proxy. Or any other method that it supports. In short, think of Google Docs with its collaborative editing & offline support. But you can apply this to any of your apps where it might make sense.

Ruby on Rails. The last time I touched this stack (well, language + library) was when I was in the codecademy / treehouse tutorials stage. It's still used by _some_ people, so I think it'd be nice to write a simple app in it just to see how that ecosystem works.

Disclaimer: I will probably edit this list at some point. But only to add things as I come up with them. Not to shorten it.

Previous: A lesson from Baemin: Just ship it

Back to Index.

Feedback can be directed towards weblog@jcharante.com

Page generated on Wednesday March 03, 2021 at 02:04 PM