TL;DR - For newdepths.xyz I wanted to add a simpler way for users to log in, in that way they can avoid creating a new password just for this little site. I also wanted to implement all the parts of the flow to get a good feel for them and how they fit together. Of course there are a lot of libraries that handle this well, but I think that doing it manually with low stakes is a great way to learn how everything fits together.
TLDR - My general takeaways from working on two similar apps. One the OG server-returns-html way with FastAPI/HTMX and one with Next.js using the app router / RSC / SSR. These are my quick take aways from the point of view of working on them from the perspective of a “non-web-dev dev”.
Intro I am currently working on two somewhat similar web apps, one using FastAPI with HTMX and one using Next.
TL;DR: I’m working through the Cryptopals Cryptography Challenges, starting with knowing nothing about cryptography. These are my (not so) random notes and takeaways from them. They generally seem to follow a pattern of introducing a concept in cryptography (repeating key XOR, ECB mode, CBC mode, stream ciphers, etc) and then having you break it in some way(s). I’m hoping to turn my notes on some of these in to more detailed posts at some point, but for now, this mostly ‘stream of thought’ that I’m updating as I work through them.
TL;DR: Use the functions in the random module for modeling, simulations, games, sampling, etc. but use os.urandom, secrets, or random.SystemRandom for cryptographic applications. I know very little about cryptography and security, these are just my notes about stuff I recently learned.
It uses the Mersenne Twister algorithm, which is a pseudorandom number generator with a period of 2^19937-1. It is one of the most widely used PRNGs in the world, and suitable for many applications.
TL;DR: If you’re getting a weird looking Error: fatal: fetch-pack: invalid index-pack output error checking out a large repo on a GitHub Actions using a Windows Runner, try switching to use HTTPS instead of SSH for your clones (by providing a personal access token instead of an SSH key).
Summary I was recently working on getting CI setup for a project that has a pretty large repo with a few submodules and uses LFS for some large binaries.
Some tips for Working at a Smaller Company (mostly for devs) TL;DR - A small company can be a great place to learn, and it can be a lot easier to see the effects of the results of your work. At the same time, you likely won’t have access to the same structure, level of mentorship, clarity of career path / progression, or resources. In my experience you need to be the kind of person who (1) is happy with being more of a generalist, and (2) take responsibility for your own learning - eg fill in gaps were necessary, go deeper when needed, and lean on outside resources, friends, etc.
TL;DR: cleaned up a simple chatbot module that I wrote in Python, originally as a way to impersonate a friend in my Slack chat.
How it started I wrote a chatbot in python to impersonate one of my friends on Slack. It was a fun project, but originally I set it up a pretty hacky way. Here’s an example of what it looks like integrated into slack:
Ok so that’s a pretty goofy impersonation of a friend of mine (littered with inside jokes) - but it can actually be useful.