Feb
25
Bad Habits are Dangerous – Always Code Defensively!
Filed Under Security, Software Development, Computers & Tech on February 25, 2014 | Leave a Comment
I sometimes take some stick for having a very defensive coding style. When ever I find myself making an assumption I throw in code to test it. “This function will only ever be called with a positive number”, OK, then add a test to throw an exception should a negative number be passed. You don’t want bad data ricocheting through your code because goodness knows what damage it will do! Similarly, my style is to always use explicit syntax, and, to avoid syntax shortcuts – sure, the ternary operator takes up less space on the screen, but there’s a price to pay for that terseness – it makes your code harder to read and hence to debug and maintain.
However, one of my very biggest bug-bears is the failure to brace control statements like conditionals and loops when they’re operating on a single line of code. This is the trap Apple fell into so spectacularly this week.
Feb
8
TTT Part 16 of n – Crossing the Streams
Filed Under System Administration, Computers & Tech on February 8, 2014 | 2 Comments
In the previous instalment we introduced the concepts of streams, and looked at how every process has references to three streams as part of their environment – STDIN
, STDOUT
& STDERR
. We went on to introduce the concept of operators that manipulate these streams, and we focused on the so-called ‘pipe’ operator which connects STDOUT
in one process to STDIN
in another, allowing commands to be chained together to perform more complex tasks. We mentioned the existence of operators for connecting streams to files, and the possibility of streams being merged together, but didn’t go into any detail. Well, that’s what we’ll be doing in this instalment.
Feb
2
TTT Part 15 of n – ‘Plumbing’
Filed Under Computers & Tech, System Administration on February 2, 2014 | 2 Comments
Right back in the very first instalment we described the Unix philosophy as being Lego-like, that is, having lots of simply commands that do one thing well, and then assembling them together to do something really powerful. So far, we’ve only been working with a single command at a time, but that changes with this instalment. We’ll be introducing the concept of streams, which can be used to connect commands and files together.