Accurate Timing
In many tasks we need to do something at given intervals of time. The most obvious ways may not give you the best results. Time? Meh. The most basic tasks that don’t have what you might call CPU-scale time requirements can be handled with the usual language and...Exploring Dependent Types in Idris
When I’m not coding the "impossible" at Art+Logic, I take a lot of interest in new programming technologies and paradigms; even if they’re not yet viable for use in production, there can often be takeaways for improving your everyday code. My...Legacy Vulnerabilities AKA Software Senescence
Does your business still have an XT computer in the back office because it’s running that one version of some database software that your business depends on? Yeah, we know there is. Most modern software doesn’t work like that. If you aren’t keeping...Asynchronous Python – A Real World Example
Introduction We have a customer that developed a hardware device to make physical measurements. Some years ago we wrote a suite of software tools for the customer: a tablet application for configuring the hardware device, a django web server to receive uploaded XML...Spot the Vulnerability: Data Ranges and Untrusted Input
In 1997, a flaw was discovered in how Linux and Windows handled IP fragmentation, a Denial-of-Service vulnerability which allowed systems to be crashed remotely.