LLMs are confident. So much so that if you ask one to give you the recipe to immortality, it will probably take a stab at it, even though it knows as much about mortality as it does its own existence. Ask one to write a design spec and it’ll produce something that reads well, covers the obvious cases, and sounds authoritative. Ask it to implement code from that spec and it’ll write something that…
I’ve been responsible for the developer tooling for Outlook iOS for 6 years now. Back when I started, we had just a single Bash script that covered everything we though we needed at the time. Now, we have 30,000+ lines of Python code (including tests I have to admit) that depend directly on 50 Python packages. Most of these packages are ones you might expect such as requests, pylint, or black.…
It’s relatively easy to figure out that VS Code is a great editor for developing and debugging Azure Functions. You’ll have also no doubt figured out that for debugging HTTP trigger functions all you have to do is open a web browser or use cURL or similar to trigger the function and be able to debug it. What about timer triggers though?
Whatever language and package manager you use, be it Ruby Gems, CocoaPods, NPM, Cargo, etc. there’s a good chance that if you have a file specifying your dependencies (such as Gemfile, Podfile, package.json or Cargo.toml), there’s a corresponding .lock file. It’s not always clear what the purpose of these files are, and whether or not they should be checked in to your repo.
I recently started working on a Python wrapper to an API which returns JSON. There were a few existing implementations already, but none behaved quite like I wanted, so I set out to write my own. One of the big decisions you make when writing a wrapper around an API in Python is how do you return the data? Let’s say you have an API that returns:
Sometimes it feels like every second day there is a post on Hacker News or Reddit about great new git aliases that you totally need today, and if you don’t you’re the devil. To users who have just gotten to grips with git, these can seem like the coolest new thing to have. How do I know this? Because I fell for it when I was in that situation.
Almost 2 years ago I wrote a post calling out AgileBits on the fact that 1Password was leaking metadata. I pointed out that while they aren’t leaking passwords, there mere existence of accounts is enough to cause problems for many people. This flaw was with their older keychain format, and my main issue wasn’t with the flaw, but the fact that they weren’t encouraging people to move to the new…
Back in 2013, I took a course on “Software Architecture, Process, and Management”. One of the topics which came up was: How do you rate a development team? It’s not a simple challenge, and to get a full answer would take a considerable investigation and a lengthy report at the end. Thankfully, Joel Spolsky came up with a simple 12 question test to make this process relatively painless, named “The…
Fiddler as a tool has gotten more and more advanced over time. With it’s powerful scripting capabilities, there isn’t much you can’t do with it when dealing with HTTP requests. One of the problems with the scripting interface is the high barrier to entry. Fortunately, for a lot of things, there is an easier way. This post will focus on request response rules due to the fact that I’m often asked…