As mentioned in last week’s Sunday Reboot, I’ve recovered a few of my old posts from the Wayback Machine—all from my time at the now shut-down Fixate.io (via their blog, Sweetcode). These are all freelance topics, so the style of writing is a bit different than normal (for me, at...
As mentioned in last week’s Sunday Reboot, I’ve recovered a few of my old posts from the Wayback Machine—all from my time at the now shut-down Fixate.io (via their blog, Sweetcode). These are all freelance topics, so the style of writing is a bit different than normal (for me, at...
As mentioned in this week’s Sunday Reboot, I’ve recovered a few of my old posts from the Wayback Machine—all from my time at the now shut-down Fixate.io (via their blog, Sweetcode). These are all freelance topics, so the style of writing is a bit different than normal (for me, at...
As mentioned in this week’s Sunday Reboot, I’ve recovered a few of my old posts from the Wayback Machine—all from my time at the now shut-down Fixate.io (via their blog, Sweetcode). These are all freelance topics, so the style of writing is a bit different than normal (for me, at...
As mentioned in this week’s Sunday Reboot, I’ve recovered a few of my old posts from the Wayback Machine—all from my time at the now shut-down Fixate.io (via their blog, Sweetcode). This is the first of those posts, which I believe was originally written for VictorOps but ultimately scrapped for...
In this blog post series, we’re diving into Mayhem’s top common weaknesses enumeration (CWE) finds. A Common Weakness Enumeration, or CWE for short, is a list of software and hardware patterns that can lead to vulnerabilities and other weaknesses. One such CWE that is both fairly common and possibly unexpected is the reachable...
Nobody ever said it’s easy to write clean code. Successful software development isn’t just about making software work; it’s about making sure it will continue to work. While hardly an exciting objective, code maintainability is one of the most important elements of any application.
Let’s face it, when it comes to endpoint management, automation is king. In our hyper-connected, ultra-virtualized, cloud-based world, there is no shortage of machines that we have access to and no limitation to the amount of infrastructure we can manage. But with new scale comes new challenges, and configuration management...
In 2001, the Department of Defense published MIL-HDBK-61A(SE), a 221-page military handbook offering guidance on the practice of configuration management to all military departments and agencies. While MIL-HDBK-61A(SE) is the government’s most recent contribution to the practice of configuration management, the Department of Defense itself has a long history of...
“If it ain’t broke, don’t fix it.”
“If I have seen further it is by standing on the shoulders of Giants.”
In 1983, Ken Thompson and Dennis Ritchie were awarded the ACM A.M. Turing Award “for their development of generic operating systems theory and specifically for the implementation of the UNIX operating system.” In his acceptance speech, aptly titled “Reflections on Trusting Trust,” Thompson presented a now infamous hypothetical design for...
It’s hard to remember a time before package managers. A time when software arrived on a set of floppy disks in the mail or a compact disc in the back of a catalog. A time when finding software online meant visiting a half-dozen shady websites that may or may not...
I first discovered my passion for computers on the day my dad brought home our first family computer nearly 20 years ago. While it would be a few more years before that passion turned into an obsession bordering on insanity, the desire to create things out of intangible bits and...
Just over a year after the launch of Microsoft Windows 98, Apple Computer released the next and final version of their “Classic” Mac OS operating system, Mac OS 9. In typical Apple fashion, the months leading up to the release of OS 9 were marked by increasing hype, aggressive marketing,...
In the summer of 1998, Microsoft released the next version of their flagship Windows operating system, Windows 98. While Windows 98 is often remembered as the operating system that defined desktop computing for the majority of users in the late 90s, it included a particularly unique feature that changed the...
As a developer, I’m a huge fan of continuous integration. For the uninitiated, continuous integration is a software engineering practice in which code changes are tested as soon as they are committed. This enables early problem detection. It also provides immediate feedback on code quality, allowing for issues to be...
Full stack deployments are a relatively new concept to me. At first, I was confused as to why you would redeploy the entire stack every time, rather than just the code. It seems silly, right? My brain was stuck a little in the past, as if you were rebuilding a...
Automated Continuous Integration (CI), at a high level, is a development process in which changes submitted to a central version control repository by developers are automatically built and run through a test suite. As builds and tests succeed or fail, the development team is then aware of the state of...
What exactly makes a “good” API? That is a question a lot of developers ask when designing their first API. While there are hundreds of resources online, all with differing opinions about what defines “good,” the majority of them share some similar themes. Logical endpoint naming conventions, clear error messaging,...
When starting a project, working as an individual developer provides a level of development freedom that can get quickly complicated when it is time to grow the team. Once you expand to multiple developers, it is critical to maintain a well-documented and structured development environment. In a poorly architected environment,...