In my teenage years, I was diagnosed with bipolar disorder during a stint in a psychiatric hospital. The medication I was put on caused me to almost immediately feel like I lost myself. It was harder to think. It was harder to be creative. Unlike a lot of the other kids, I wasn’t much for athletics, so my identity wasn’t tied to things like being a football player or whatever. But a big portion of my identity at the time was definitely centered on my ability to think quickly and laterally.
I spent a fair bit of time this evening trying to get NixOS installed in a VM on my ESXi server, and this note just captures the silly problem Adam and I had.
When setting up a new VM in ESXi, you get prompted fairly early on for what type of guest OS the VM is going to be. Historically, all of my VMs were just Ubuntu, so I had only ever used Ubuntu (64-bit) as my selection here.
Untyped Python sucks. I’ve been writing Python for something like 10 years now, and looking back I can’t believe how bad the developer experience was compared to how it can be with appropriate type hinting. I noticed this recently while trying to work on a slack bot using the Slack Bolt SDK, which uses a decorator syntax to wrap functions to handle events, but what each event passes to the wrapped function is… well, it lacks some definition in the documentation.
I’ve found myself repeating this phrase a lot. When I am supposed to go to the gym but don’t feel like it. I don’t want to, but that’s why I will. When I have a task at work that I’m dreading? I don’t want to, but that’s why I will. When it’s time to stop playing video games so I can get literally anything done on my to do list. I don’t want to, but that’s why I will.
I’ve been having a lot of conversations recently about Django ModelForm and Django Rest Framework (DRF) ModelSerializer, and to a lesser extent, DRF ModelViewSet. I think, perhaps maybe a little too zealously, that they are bad patterns and have no place in any reasonably large software project.
Now, I absolutely understand the appeal of them. It makes it much easier to write code quickly, and lots of times, our views are pretty tightly coupled to individual models in our database.
Through the course of my day job, I’ve come to learn a fair bit about the United States Social Security Number (SSN). There are numerous sources out there that each provide small bits of information, but I wanted to take this opportunity to write my own post about what I’ve learned. With any luck, this post will be a useful resource for someone else seeking to better understand Social Security Numbers.
What is a hash? How do I decide which hashing algorithm to use? Where can I find 2500 words to read about password hashing?
These are all questions I’ve received while working as a security engineer, most often from software developers. There are tons of resources out there that resolve each of these questions, but I wanted to write up my own resource that I could refer back to or refer others to when this question inevitably comes up again.
I used to love web development. I mean, I wasn’t necessarily great at it. But I loved it. I even managed to pay my rent through my senior year of college mostly from subcontract work where I’d take some lowest-bidder web design from a guy and turn it into a responsive bootstrap site for his small business customers. It wasn’t great, but I was to the point where I was able to crank out the whole site in about 4 hours (remember, small businesses, so they tended to have simple sites).
Calling this a privacy policy might be a stretch, and a lawyer might have a hernia if they saw it. But I felt it important to share with you what information is collected about you and how it is used.
TL;DR I don’t want it, you don’t want me to have it, life is good.
What is collected? This site does not currently make use of any analytics tracking services. If, at a future time, I do desire to introduce analytics, I will opt for a self-hosted option such as Matomo or Plausible in order to avoid tracking you across the web.