Should academics or professionals teach programmers?

One popular topic in Computer Science (among other disciplines) is whether professors are out-of-touch with “real world” programming. Those who argue for less academics in CS education claim that university degrees prepare students poorly for industrial roles. Plagued by an environment in which theory and research are preferred over practical skills for daily software development, these students enter the workforce ill-equipped to write professional software. Continue reading “Should academics or professionals teach programmers?”

Free markets: the economic and technical arguments for strong net neutrality

The modern anti-competition potential of the Internet Service Provider is nuclear. Far from merely an industry-siloed cartel, they control both the products and the means of discovery.

Today the FCC voted to overturn Obama-era policy that prevented Internet Service Providers from blocking or slowing access to certain web content. Chairman Ajit Pai, who spearheaded the successful campaign, argued that the repealed rules stifled competition and represented government interference in the otherwise free market. “The internet wasn’t broken in 2015. We weren’t living in a digital dystopia. To the contrary, the internet is perhaps the one thing in American society we can all agree has been a stunning success.” Continue reading “Free markets: the economic and technical arguments for strong net neutrality”

What is automation?


In August 2015, The Economist published an article entitled “Automation angst” in which they explored the dichotomy of feelings about automation – one side representing the thrill of cheaper production and the other warning of an impending existential crisis. When repetitive human labor is replaced, do the laborers feel better off?

Continue reading “What is automation?”

Preserving the integrity of private class variables when testing gets handsy

One classic theme in software development is protecting the integrity of your model classes. We lock up access to them by using things like private variables, the proxy pattern, and wrapper classes. Nobody gets to mess with our objects unless they do it our way.

But what about when testing needs to get its hands on restricted parts of our model classes? Imagine that you’ve got a GameBoard class with associated members pieces, bank, and deckCards. Here’s a sample UML to help you visualize:

Example UML for a board game.

Continue reading “Preserving the integrity of private class variables when testing gets handsy”