Quantcast

«

»

Feb 26 2009

Get your nerd on, with Castles of Air

I apologize for the self-promotion, but I know we have a big audience and I’d like to drum up an initial following for my newest blog.

Castles of Air is about the art and science of software development. While this is admittedly a very specialized interest, I know we are blessed by a high proportion of nerds and smart people among our fans. I’ve been a developer for about a decade and a half now, because I’ve always felt that writing programs is an enjoyable hobby which also, luckily, is often worth good money. I also believe that working with computers is an excellent introduction to rigorous logic and everybody should learn at least the basics as an important part of their education.

You know my strong feelings about science, and I approach programming from a scientific background as well. I expect to be writing several posts about how to approach debugging as a science, making hypotheses about where the problems might lie and testing those to prove them true or false. And of course, I think of the mind as a great big virtual reality machine for modeling the world.

If all that doesn’t sound like it could possibly hold the slightest bit of interest for you, just get back to the regularly scheduled programming and forget I wasted your time. But if you are interested, please check out my new blog, bookmark it, follow it, save the RSS feed, or whatever you want to do.

18 comments

Skip to comment form

  1. 1
    MuseSusan

    Sounds great–I’ll definitely be checking it out! But “blessed“???

  2. 2
    Martin

    You think gods have a monopoly on blessing people? Come on!

  3. 3
    Zurahn

    RSS’d to my Google Reader. As much as I like the topic of how wrong religions are, my main area of interest will always be in computers, particularly programming.

  4. 4
    Kazim

    See, yeah, that’s why I said “blessed by nerds” and not “blessed with nerds.” Nothing supernatural going on at all.Besides, “bless” is a perfectly respectable programming term. ;)

  5. 5
    Jason

    Another programmer here. Subscribed!

  6. 6
    maddogdelta

    @KazimI noticed you link to the greatest source of Nerd humor in the universe…I’m referring to “The Daily WTF”.In a previous job I had many samples I could have sent them… Since I was fixing all of them. One line of code looked like this:// we were coding in VB…Sorry..Var = 100 * Var /100With a comment associated which said:”I don’t know what the original coder was trying to do here, but I’m leaving it in so I can show people how dumb the guy was”

  7. 7
    Gav

    I’ll make sure to check that out Kazim.Var = 100 * Var /100“I don’t know what the original coder was trying to do here, but I’m leaving it in so I can show people how dumb the guy was”He’s not dumb, he’s brilliant! You see the code changes the ‘Var’ slightly, due to the floating point operation /100 * 100. Hence ‘Var’ != ‘MyOriginalVar’. Unless the original value was 0, in which case it will stay the same. So simply check for ‘Var’ != ‘MyOriginalVar’ which is equivalent to checking ‘Var’ == 0. In fact this is better since you aren’t hard coding zero!/I kid.

  8. 8
    John Stabler

    I’m a professional .NET developer. I would love your blog if it wasn’t for the fact that the background / contrast hurts my eyes after a bottle of wine.By the way, I’m not an alcoholic, I’m in the UK and it is 22:30 right now and the rugby has just finished.I don’t know if you are familiar with rugby. It is like american football; except harder, without padding and helmets, and it’s not bad form if you punch, gouge, stamp etc and the referee doesn’t see. Closer to ice-hockey I guess.

  9. 9
    Kazim

    I changed the template. Just for you, Angry Atheist. I hope you’re satisfied now.

  10. 10
    Johnboy

    Can we get wider text columns here too?

  11. 11
    ls

    well, one problem I see with the creative-0 example. 100, like any integer value will in most programming languages be treated as an integral type. If the variable in expressionvar = 100 * var / 100;is a floating point type, implicit conversion will take place according to the rules of the language. I’m too tired to think through any edge cases that may give unintended results here, except to say there may be unintended results in some cases ;).So one has to be careful when doing more arcane things that rely on the more arcane rules of the language you’re using.This goes back to programming and debugging – part of the art and craft of debugging is artful/craftful programming.I’m slightly below average in the craft of programming and far below average in the art. This is why I come home tired at the end of the day rather than energized (I’m a programmer/debugger of sorts by profession as well).I’ll monitor your blog tho I’ll often be too tired to post to it hah! But still, it sounds like a great idea…

  12. 12
    ls

    Actually, I think I’m wrong in my prior post. I’m likely thinking of coercion in the other direction, such as the definitionint x = 2.2;in some languages. Also compares and expressions involving mixed types – you have to be intimately familiar with the conversion conventions of the language you’re using. Oh well, that’s why I don’t program for fun anymore, especially on my own at home when tired ;)Point is, just use 0 when you need 0 instead of a more clever 0 (yall can tell I’m a QA puke).Rather like my preference that theists say “I don’t know” rather than “god did it, I believe”….Sorry about the intrusion folks. Back to the regular program…LS

  13. 13
    Voldemort13

    @Kazim I am going to check it out. Who knows maybe I will learn something. I am still an undergrad but debugging was something that I had the most trouble with in my last assignment so It can’t hurt. Just curious do your colleagues know about The Atheist Community.

  14. 14
    Kazim

    Voldemort:Actually, I ALMOST made a similar reply to Gav, but realized I would have been wrong. The mistake is that you are assuming that “100 * Var / 100″ will be an integer.While it’s true that “100″ is an int literal, if Var is declared as a floating point value, then “100″ will probably be converted to a float before doing the operations, which will result in a final value which is also float.I thought this might be illegal, but I tried it in Java and it works the way I said. I don’t know how Visual Basic would interpret it.Voldemort: My colleagues have no idea I’m an atheist, and given the company culture, I prefer it stay that way as long as possible.

  15. 15
    John Stabler

    Kazim,Yes, that template is much easier on a drunk/hungover mind. I will therefore be checking it out on a regular basis!Sorry to hear your work is full of god-lovers. So much for the intelligence of the IT industry. Where I work it is completely the opposite. Although I wouldn’t describe all of my fellow workers as strident atheists, they certainly consider theism to be ridiculous.

  16. 16
    Kazim

    Yeah, I brought up my job environment on the show before. It’s an odd little private company run by a very rich old guy with his own management style. Strict dress code, strict working hours (8-5, DON’T BE LATER THAN 8), and official handbook policy says that employees must adhere to “high Christian principles.”

  17. 17
    ls

    My job before last was doing QA for a SW development product, I was in charge of the C/C++ compiler – talk about truckloads of debugging… I had to know the rules governing implicit conversions permissible between types. C isn’t so bad, but C++ is absolutely out of sight bewildering. Most of my job was deciphering bug reports containing code like the var example…. These days my dev. efforts are all in C# and Nant, tho sometimes I still have to do some C++.So I’ve forgotten most of the rules and don’t want to ever remember them again ;)LS

  18. 18
    maddogdelta

    @AllNow I wish I had actually submitted a WTF, because I can’t remember the exact details of the line of code! I think it was a floating point value, though.However, in the database design, tables would have a primary key, and another field called “linkRelID”…used to link that record to a record in another table. Other tables used text fields for the purpose of linking (and those had numerical primary keys, also), and all sorts of other things which individually wouldn’t have been a big deal, but in a 500,000 line program, it became pretty awful to maintain.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>