0xABADCAFE

surviving software

  • The following joke was posted to an internal Magenic list. I don't know who actually wrote it, and I'll give credit if someone points out the creator of the joke. It perfectly illustrates what I think developers (especially consultants) have to go through all the time when they're interviewing for the next gig.
  • Interviewer: So, you're a carpenter, are you?
  • Carpenter: That's right, that's what I do.
  • Interviewer: How long have you been doing it?
  • Carpenter: Ten years.
  • Interviewer: Great, that's good. Now, I have a few technical questions to ask you to see if you're a fit for our team. OK?
  • Carpenter: Sure, that'd be fine.
  • Interviewer: First of all, we're working in a subdivision building a lot of brown houses. Have you built a lot of brown houses before?
  • Carpenter: Well, I'm a carpenter, so I build houses, and people pretty much paint them the way they want.
  • Interviewer: Yes, I understand that, but can you give me an idea of how much experience you have with brown? Roughly.
  • Carpenter: Gosh, I really don't know. Once they're built I don't care what color they get painted. Maybe six months?
  • Interviewer: Six months? Well, we were looking for someone with a lot more brown experience, but let me ask you some more questions.
  • Carpenter: Well, OK, but paint is paint, you know.
  • Interviewer: Yes, well. What about walnut?
  • Carpenter: What about it?
  • Interviewer: Have you worked much with walnut?
  • Carpenter: Sure, walnut, pine, oak, mahogony -- you name it.
  • Interviewer: But how many years of walnut do you have?
  • Carpenter: Gosh, I really don't know -- was I supposed to be counting the walnut?
  • Interviewer: Well, estimate for me.
  • Carpenter: OK, I'd say I have a year and a half of walnut.
  • Interviewer: Would you say you're an entry level walnut guy or a walnut guru?
  • Carpenter: A walnut guru? What's a walnut guru? Sure, I've used walnut.
  • Interviewer: But you're not a walnut guru?
  • Carpenter: Well, I'm a carpenter, so I've worked with all kinds of wood, you know, and there are some differences, but I think if you're a good carpenter ...
  • Interviewer: Yes, yes, but we're using Walnut, is that OK?
  • Carpenter: Walnut is fine! Whatever you want. I'm a carpenter.
  • Interviewer: What about black walnut?
  • Carpenter: What about it?
  • Interviewer: Well we've had some walnut carpenters in here, but come to find out they weren't black walnut carpenters. Do you have black walnut experience?
  • Carpenter: Sure, a little. It'd be good to have more for my resume, I suppose.
  • Interviewer: OK. Hang on let me check off the box...
  • Carpenter: Go right ahead.
  • Interviewer: OK, one more thing for today. We're using Rock 5.1 to bang nails with. Have you used Rock 5.1?
  • Carpenter: [Turning white...] Well, I know a lot of carpenters are starting to use rocks to bang nails with since Craftsman bought a quarry, but you know, to be honest I've had more luck with my nailgun. Or a hammer, for that matter. I find I hit my fingers too much with the rock, and my other hand hurts because the rock is so big.
  • Interviewer: But other companies are using rocks. Are you saying rocks don't work?
  • Carpenter: No, I'm not saying rocks don't work, exactly, it's just that I think nail guns work better.
  • Interviewer: Well, our architects have all started using rocks, and they like it.
  • Carpenter: Well, sure they do, but I bang nails all day, and -- well, look, I need the work, so I'm definitely willing to use rocks if you want. I try to keep an open mind.
  • Interviewer: OK, well we have a few other candidates we're looking at, so we'll let you know.
  • Carpenter: Well, thanks for your time. I enjoyed meeting you.
  • NEXT DAY
  • Ring...
  • Interviewer: Hello?
  • Carpenter: Hello. Remember me, I'm the carpenter you interviewed for the black walnut job. Just wanted to touch base to see if you've made a decision.
  • Interviewer: Actually, we have. We liked your experience overall, but we decided to go with someone who has done a lot of work with brown.
  • Carpenter: Really, is that it? So I lost the job because I didn't have enough brown?
  • Interviewer: Well, it was partly that, but partly we got the other fellow a lot cheaper.
  • Carpenter: Really -- how much experience does he have?
  • Interviewer: Well, he's not really a carpenter, he's a car salesman -- but he's sold a lot of brown cars and he's worked with walnut interiors.
  • Carpenter: [click]

Object-oriented programming is the current cure-all — although it has been around for much more then ten years. At the core, there is little more to it then finally applying the good programming principles which we have been taught for more then twenty years. […] it turns out that you can do just as well with plain ANSI-C.
[…] I had fun discovering that ANSI-C is a full-scale object-oriented language.

Object-Oriented Programming With ANSI-C

http://www.cs.rit.edu/~ats/books/ooc.pdf


This is pretty convoluted…

int widths[] = { [0 … 9] = 1, [10 … 99] = 2, [100] = 3 };


It seems extraordinary that just about every C project ends up developing it’s own logging system.
While there are environments like embedded systems or operating system kernels that may justify customized logging technology (and there are open source projects aimed at those areas) there seems to be no a priori reason why most user level application and server software written in C cannot share a logging library.

If you’re happy and you know it, syntax error!

If you’re happy and you know it, syntax error!


  • Richard Stallman, Linus Torvalds, and Donald Knuth engage in a discussion on whose impact on computer science was the greatest.
  • Stallman: God told me I have programmed the best editor in the world!
  • Torvalds: Well, God told me that I have programmed the best operating system in the world!
  • Knuth: I never said any of that.

[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo *Click*


With Compiz back in Fedora 18 it’s fairly easy to get back a familiar Compiz + GNOME desktop you may have got used to.
You just need to install few packages and tweak few things.

Start by forcing Fallback Mode in GNOME.
System Settings -> Information -> Graphics -> Enable “Fallback Mode” switch

Next, install Compiz packages:
yum install compiz compiz-plugins-main compiz-plugins-extra emerald emerald-themes ccsm compiz-mate

Now, get use of that compiz-mate package you just installed. Edit /usr/share/gnome-session/sessions/gnome-fallback.session changing
DefaultProvider-windowmanager=metacity
to
DefaultProvider-windowmanager=compiz-mate-emerald

Just one thing more.
Start CCSM and in Decorator options enter emerald as decorator command.

Now log out and log back in. Enjoy.