I recently started exploring the ancient philosophy of stoicism by reading William Irvine’s A Guide to the Good Life: The Ancient Art of Stoic Joy . After finishing the book, the plan was to start a series of articles that attempt to draw lines between the ideas and techniques of ancient stoicism to modern day programming and software engineering. For example, a decent argument can be made that…
As a follow-up to the previous article on intuitive iterative traversals for binary trees, we discuss the application of the intuitive stack based method to the task of creating iterators for binary trees. The iterator is an abstraction for making incremental traversals over data containers or data streams. At its core, the iterator pattern is implemented by two functions:
It has been said that a programmer is not worth their salt until they understand how compilers work. In the spirit of self improvement, I’m taking a small step down that path by making a foray into the world of compiler frontends: lexing and parsing.
Binary tree traversals are a staple of the technical interview process at many software companies, small and large. For anyone with an understanding of recursion, the family of traversal techniques are quite straightforward. A common twist on these concepts that show up more in technical interviews than undergraduate computer science problem sets is the rather artificial constraint that asks one…
I recently launched a small hobby website that aggregates documents and papers posted to a popular tech news website . Some of the feedback I received after the launch included suggestions to categorize the aggregated documents. It seemed like a nice, small exercise in document categorization, and I decided to take a shot using the data I had on hand, with the objective being to determine the…
In this article, let’s take a risk-oriented examination of the asset classes available to the everyday, retail investor. The goal is to provide a reasonably comprehensive overview of the different investment options available to the typical investor, along with the risks associated with each investment option. For example, you may think that your current net worth precludes you from investing in…
The recent tax reform bill that made its way through the legislative gauntlet of the US government brings with it a host of new changes, which will affect investors from all walks of life in big and small ways starting in 2018. One of the less covered but equally important changes is the extension of tax benefits for the 529 plan that many families use to save money for their children’s…
Programmers often bemoan the problems of the concept of null that exists in programming languages. Even C.A.R. Hoare, the inventor of the null reference, calls it a billion dollar mistake. Some detest its existence, and indicate that it’s useless. However, it occurred to me that null can actually be thought of as a global variable - one that is used across all applications and domains to indicate…
Update: the following tips may or may not be applicable for your county and state, depending on the process of property tax payments. Also, the general landscape of deductions have certainly changed since the original writing of this article, so be sure to check the latest regulations.
There’s an affliction that affects many millions of Americans in the workplace, and it’s time to bring that affliction to light. There’s perhaps nothing more benignly embarrassing than uttering one of these often misheard phrases during a work meeting, much less writing them down in a widely distributed email or memo. Perhaps it’s time to set things straight once and for all, and help bring our…