Decorators in Python
15th April, 2024Python’s documentation isn’t entirely clear on what a decorator is or how it works, so here are the details.
Read More >Python’s documentation isn’t entirely clear on what a decorator is or how it works, so here are the details.
Read More >Many languages have the ability to let you create generators: a function that can be called multiple times, picking up where it left off and returning a different value each time. Unfortunately C++ does not give you this functionality, however that doesn’t mean that we can’t implement it ourselves.
Read More >According to the oft-repeated advice of Donald Knuth, “premature optimisation is the root of all evil.” In my opinion this is poor advice. Let me tell you why.
Read More >If you wish to process a very large number of rows from a database then it may be prohibitively expensive to load them all into memory first. Laravel’s chunk()
function may look like the solution however this performs a query for each chunk and is therefore extremely slow.
The ideal solution is to disable query buffering and thereby only ever have a single row in memory at once. Note that this option is specific to the MySQL PDO driver.
Read More >The ability to provide a mock implementation of functionality is essential to unit testing, however the method for doing so with Jest and TypeScript is not well documented. This tutorial aims to elucidate the method for mocking a JavaScript library that is loaded into your TypeScript project. This is demonstrated with the ws
WebSocket library but applies equally to any library, including built-in NodeJS modules.
The OpenTelemetry C++ implementation ships with several exporters for outputting your recorded traces: ostream, HTTP, gRPC, and more. It does not, however, provide a null implementation.
A null exporter is useful in test environments, where you just want to discard instrumentation data. The simple class below provides an implementation of a null span exporter.
Read More >Impersonation is a useful tool: it allows an administrator to view the website as if they were logged in as another user, but without having to know their password. The Laravel documentation implies that you can do this using Auth::loginUsingId()
, but you will find that this doesn’t work.
Docker’s internal logs can sometimes become corrupted, causing docker logs <container>
to fail. Docker has no ‘clear’ command, so you must clear the log manually.
Redis++ is the recommended C++ binding for connecting to a Redis server from a C++ application, however its build script is not entirely friendly towards CMake. It relies upon hiredis, but the make script expects it to already be compiled on the system.
Read More >Upon updating Visual Studio Code, I found that several of my plugins no longer worked. The “Window” page in the “Output” tab showed the error “spdlog.node: _ZSt28__throw_bad_array_new_lengthv: symbol not found”. After some debugging I found out that this is due to a mismatch in the C standard library functions. The solution was to upgrade to Alpine 3.17.