Skip to content

The Agnostic Coder

Transcending the art of coding

Archive

Category: Agnostic coding

I’ve just found this  interesting interview with Bjarne Stroustrup about the invention of C++ at artlung.com (The Invention of C++ – Nice bit of net lore). It’s a weird interview in that I can’t make up my mind if it’s real or fake. I’m leaning towards fake, but a small part of me really wants it to be true :)

Please go and read this: Microsoft’s Charney suggests ‘Net tax to clean computers | ITworld. This kind of s**t really f***s me off! Microsoft want to charge everyone for cleaning up a mess that they should be paying for and frankly being sued for, in my opinion. M$ should have taken security more seriously starting with Windows 95. Most of the bot nets are compromised MS Windows machines, and why? Because the default security is f***ed. Unbelievable! Programmers, and the companies they work for while producing this s**t code should be held responsible for the mess they create. If this was the automobile industry, or the construction industry, they’d have been sued out of existence by now. When will the courts and governments realise that bad coding and poor coding practices are making this world worse, and punish those who make the software?!

There’s a fascinating discussion going on at Paul Chiusano’s blog about the Actor model, and functional programming in general. Definiately worth a read. Prettt-tty, pretty, pretty good!: Actors are not a good concurrency model.

Should developers  (or the companies they work for) be responsible for the code they produce? In this article, Security Experts: Developers Responsible for Programming Problems – CSO Online – Security and Risk, some people seem to think so. I agree with them. What do you think?

Reddit user “mprorock” gives a great summary of  why you shouldn’t judge other people and their code in Why I am hesitant to judge another’s code…. Very much worth a quick read.

Have recently changed jobs (well, Sept ‘09) and having the amazing opportunity to work remotely, from home, I find my day split into more productive chunks than the usual 8am to 5pm game that I used to do. I’m still up at the same time in the morning, due to having 2 hyper active kids, but I’m not rushing to get ready and leave the house, instead I can take time for a proper breakfast, help get the kids ready for school, and even do the school run. I then start around 9:30am work until 11:45, puck up child 2 from nursery, and have lunch with him and the wife. Start work again about 1pm, work until 3pm, when it’s time for school pickup for child 1. Start work again around 3:30, and work until 5:30, have a family dinner, and help put the kids to bed, then do some more work after they’re asleep.
This routine has helped increase my productivity, and helped my mental focus a great deal. Instead of being burned out by lunch time and barely able to stay awake during the after noon without several cups of coffee, I can get so much more work done in the same amount time without feeling tired, or drained. Even the evening coding sessions are much more productive than I’d expect them to be.

There is one downside. I’m not always focused on work. Don’t get me wrong, I get my work done, but if I’m having a lazy day with not much on, then it’s way too tempting to skive off and play games, or catch up on my RSS feeds instead of doing those things after I’ve finished work for the day. It can take a lot of effort to ignore the time sinks and get on with work, ut when I do I’m so focused that I need my alarms to remind me to do the school run or have dinner with the family.

It also helps that the company that I work for have a very relaxed attitude about my working hours. That’s something that I’ve found hard to come by in previous jobs. If I feel the need I can work weekends instead of in the week. I can work at 4am if I want to. As long  as the work is done, it doesn’t matter when time of day it is. Of course having kids means I’m much too tired to work at 4am, as I’m up in the early hours with them. But the opportunity is there to be taken. This freedom (and there’s many more perks I can’t mention at the moment) helps my creativity by keeping me focused in short bursts, helps my home life by making me more relaxed and able to help out with 2 boisterous kids, and although financially it’s not the highest paying job around (and this will sound corny) I do feel much richer for having this job, especially compared to the final years of my previous one.

If you get the change I’d highly recommend working from home. Of course, it’s not for everyone, but you really need to experience it to appreciate the difference it can make.

Shawn Herman makes a very valid and in depth argument about the “shallow bugs” argument, (originally mentioned by Eric S. Raymond, but given the title Linus’s Law) in Thinking About Security : Microsoft’s Many Eyeballs and the Security Development Lifecycle. There’s more to bug catching that just lots of code review. Code review catches syntactic and semantic bugs (another layer above the compiler/interpreter), but doesn’t necessarily catch the process related bugs. What else can be done to make software more predictable and trustworthy? Functional languages help to a certain degree to be sure, being based on mathematics, without side effects. However that only takes us so far. I propose a new layer on top of existing languages. I’ve already mentioned this in a previous post on higher level abstractions. I still think something can, and must, be done at this higher level to reduce the amount of frequency of bugs to zero. It’s possible, I’m sure of it.

A guy names Kostas Michalopoulos has created a small new scripting language, based on C, that can be embedded into other programs. And it’s called ‘minimal‘. Nice. That’s the kind of stuff I like to see, someone using their brains. Yes it’s been done before, but this guy is setting out to do it himself. And doing a nice job I think. But from the reddit page where he posted the information he’s getting a bit of bashing from some people. Quite unnecessary in my opinion. Kostas has kindly made all the source available (via a git repos), and he’s still getting a bashing, simply because it’s been done before. Well I say good luck to Kostas and thanks for sharing! :D

Why all programmers should blog « JoergM.com. Totally agree. Yes it’s a fairly useless post, on my part, but I’m just pointing out that I agree with something that someone else said, and said 500% better than I would have explained it without rambling  on for a long time. Like now! :)

Is it harder to code web apps, taking into account multiple browsers, browser versions, and plugins, Javascript on or off, etc, or is it harder to c ode for games, with different CPU architectures, graphics cards, OSes, etc? Well turns out it’s games. Found an excellent article on the low level troubles of building games on the Intel software site, although it’s (quite unsurprisingly) more about all the different Intel architectures and subtleties therein. Excellent read though. But put aside 30 minutes or so to read it, and even more to digest.