In which our protagonist codes up the simplest thing that could possibly work
Hey Protagonist, gimme a function calculating and returning N-th Fibonacci number.
Here you go:
def fib(n): if n == 0 or n == 1: return n return fib(n - 2) + fib(n - 1)
Hey, it crashes if I give it a non-natural number, that shouldn't happen. It should nicely report the error instead.
Okay, no problem, here's a modified version:
def fib(n . . .
How I accidentally quit Twitter and Facebook
At some point, a couple of months ago, I noticed that my Facebook feed devolved into 9GAG reposts and random things about people I sometimes knew, often not. Twitter wasn't any better — it was mostly flame wars about web development issue du jour.
This wasn't the case of me just not grooming the feeds. I heavily curated Twitter . . .
Ways of calling a piece of code incorrectly
Consider this Python function:
def factorial(n): """Returns n! (n factorial)""" result = 1 for i in range(2, n + 1): result *= i return result
Provided that this code is correct, what are kinds of errors (bugs) that can happen when this function is used?
First that come to mind are type errors. The factorial . . .
What Shellshock can teach us about emergent behaviour
Let's backtrack a bit: how is it possible that a bug in command-line shell is exploitable remotely? And why is it a problem if a shell, . . .
One person's account of a Kafkaesque process of purchasing a home
This is an old article from my Croatian blog. It would lose much in the translation, so it is reposted as-is. To spare you the effort of learning Croatian: it chronicles my adventures in trying to purchase and furnish an apartment, in a manner similar to Kafka's The Trial, except there's a happy end and I'm not a literary genius.
. . .
From the perspective of a C developer
For the past few weeks I've been looking into Go . It's a rather new language, backed by Google and it seems to have gained a fair amount (relative to its age) of adoption from developers.
These day I'm coding primarily in Python. Apparently, most people switching to Go are users of Python, Ruby, and similar languages. So, . . .
A second installment in a series of programming experiments
One of the defining properties in Python is its dynamic type system. This is both a blessing and a curse. The benefits are probably obvious to every Python programmer.
One downside is that it lets through a class of simple, but very easy to make, errors, that could be caught easily by the type system. In languages such as Python, these errors . . .