Welcome to another Tech Talk Tuesday! This week, we feature Raymond Hettinger, a core Python developer. I've seen a number of Hettinger's talks, and most of them are quite good. Hettinger has good technical knowledge, and he's also quite humorous, in a dry, clever, quirky way. I decided to cover this particular talk because Hettinger talks... Continue Reading →
The Deep Synergy Between Testability and Good Design (Michael Feathers)
Welcome to another Tech Talk Tuesday! This week we'll be discussing a video from Michael Feathers, where the video centers around the intrinsic link between testability and design. For those who are unfamiliar with that name, Michael Feathers is most famous for his excellent book "Working Effectively with Legacy Code". The book has been invaluable... Continue Reading →
Kent Beck fired from Facebook
Hello to all my non-existent fans! It has been a while since I've written anything on this blog, but I figured I'd start adding content again. In particular, I'd like to do what I'm going to dub "Tech Talk Tuesdays". I have a habit of watching famous (or semi-famous) techies talk about the software industry.... Continue Reading →
Pre-existing Conditions Nonsense
Politics has a dearth of engineering ability. This should come as no shock to anyone who realizes that the majority of politicians are lawyers. As a consequence of their lack of engineers, our politicians lack problem solving skills. The mathematician George Pólya once said that it is better to solve 1 problem 5 ways than it... Continue Reading →
Beer Pong Riddle
I'm sure many of you have played, or at least heard of, Beer Pong. For those of you who haven't, read this first. Remember the word problems you had to solve and that you hated? Well, I have one for you, except it's a bit more complex than anything you'd have to solve in elementary... Continue Reading →
Lesson from Haskell: Eliminating Null-Pointer Nonsense
We've all had a null-pointer exception. We go to do something with a value, and the thing is null, which causes the program to crash. We wanted something to be there...and it just wasn't! Why and how does that even happen? One of the most common ways to throw a null pointer exception is to... Continue Reading →
A great lesson in Positional Chess
Watch this youtube video first (it's only three minutes, and worth your time even if you're only remotely interested in chess). Mato Jelic is one of my favorite chess commentators. He typically does a really nice job of analyzing GM games. In this particular video, we see a fantastic lesson in positional chess. Positional chess,... Continue Reading →
Haskell: The Mathematician’s Language? Or a Leaky Abstraction?
I've been playing around with Haskell a bit. I have to admit, that although I was originally pretty frustrated with the language, I'm really beginning to like it. It's like a fine wine: it gets better with time, and it's an acquired taste. The coolest thing I've found so far is how infinite lists work,... Continue Reading →
The (potential) problem with London Style tests
First, it's important to understand the difference between a London style and Chicago (or Classic) style test. A Classic style test is all what we're used to. Let's say we need to test a function, say add() (of course we'd never write a function so silly, this is just an easy to understand example). We... Continue Reading →
Project Euler
I've been doing the Project Euler problems again. They are pretty fascinating. I've already solved the first 15 (in Python, of course). Solving the 16th problem would be hard in any language other than Python. The problem is to "find the sum of the digits in 2^1000". 2^1000 is an enormous number, much to big... Continue Reading →