Thoughts on Stack Overflow podcast 33

I submitted a question to the Stack Overflow podcast, hosted by Jeff Atwood and Joel Spolsky, and it’s answered! Hear about it at podcast 33. I’m at around the 49m50s mark. I sound only marginally better than the Tech65 podcast I was in… So some thoughts about the discussion in the podcast…

24 by 7 on call

For a period of time in my programming career, I was to be available, 24 by 7, to attend to some rare disaster in the unlikely event that critical programs failed spectacularly. Usually it’s a program malfunction or data problem. When I first received my pager (yes, it’s a long time ago…), I was apprehensive. I placed it on a stool and moved the stool beside my bed, just in case I couldn’t hear the beeps when I was asleep.

After a while though, it turned out that the crises were critical, but not that critical. I could still attend to them the next day. The staff on shift duty would page me, and all they really needed was for me to tell them that the error was duly noted, and that I’ll attend to it the next day.

And being the dedicated fella that I am (was?), during one such fine day, when it was a public holiday, when my home country was celebrating her birthday, I returned to the office to attend to one such error after receiving such a page. *bows floridly*

Killer triggers

I agree with Joel Spolsky on this. Triggers should never have been invented. I’m maintaining an application that relied heavily on triggers to do business logic. I’d be firing some innocuous insert statement, and many other tables get updated.

This gets very irritating when you’re testing out code, and you need some data in that first table. It gets worse when you factor in foreign keys and so on… It’s a nightmare…

The only reasonable use for triggers is for logging an audit trail. Even then, I believe SQL Server has in-built capabilities to do that, so you don’t need to create an actual table to store the audit logs. Too bad I’m using Sybase…

That favourite word

It’s just an observation. Alright, I get a little irritated about it. I find it pathological that Jeff Atwood has a pathological fondness for the word “pathological”. There. Although, in his defense, he didn’t use the word in the last couple of podcasts. Some of his blog posts on the other hand…

There was a period of time, when the programming sites I visited had a fad of using the word “egregious”. It means bad, like what-in-tarnation-were-you-thinking bad. Usually used in the context of WTF-like code. Perhaps the programmers felt a need to exert their linguistic capabilities…

If you watch travel documentaries, you might have come across Samantha Brown. I love her Passport to Europe series. She too, has her favourite word. It’s “quintessential”. As in “This is the quintessential town”. I started watching out for when she uses the word.

I’m starting to do that for Jeff and “pathological” too. You know, that’s pathological of me… let me go find something better to do. At least I listen to the podcasts in a safe environment. Jeff nearly killed someone who was driving.

Guest on podcast about Windows 7

Recently, the Tech65 team invited me to talk about Windows 7 on their podcast. I thank them for letting me join in. It was a fun experience.

I’m saying it right now; I’m not an expert on Windows 7. I follow the developers’ blog. I read Raymond Chen’s blog. That’s about the extent of my knowledge on Windows development (7 or not).

The reason I’m invited to the podcast recording was I saw a Windows 7 demo, presented at a PHP Meetup (thanks Michael for inviting me!) at Microsoft Singapore. And that I follow the Windows 7 developers’ blog. And that I watched a video of a Windows 7 demo at the PDC.

If you haven’t already clicked on that link to the podcast, here it is again:
Tech65 podcast – Windows 7

I was just listening to myself in the podcast and I found that I spoke too softly, compared to the rest of the team. 1 minute in and I couldn’t bear to listen anymore… I was terrible! I was nervous! I need more practice… In the meantime, I’ll stick to writing stuff here…

There were 3 Tech65 members at the podcast. We were recording at Geek Terminal, a cafe geared for uh, geeks. There were power sockets practically everywhere, to make it easy to power up laptops, notebooks, netbooks, Mac books and what-not. I was the only one without any fancy gadgets. Does a mobile phone count?

Anyway, it was a short discussion on Windows 7 (about 10 minutes or so. I didn’t count. Too embarrassed to find out where my part ended. Luckily, show notes are provided). Then the team moved on to other technological and gadget news. There were 2 other pieces of information I wanted to share, but the opportunity didn’t present itself. I even had accompanying funny lines to go along with the tidbits.

The first one is that in Windows 7, you can drag a document to the extreme left and the document automatically resizes to fill the left half of the screen. Then you hold onto another document and move it to the right and that document fills the right half of the screen. It’s to make it easy to do comparison of document content. Plus dragging windows around is fun, because I like to move it, move it!

The second was about quick focusing of windows. Suppose you have 5 windows open on the desktop. There’s one particular window you want to work on, and you want the other 4 windows to be minimised. All you have to do is grab hold of the title bar of that window, and Shake shake, shake shake, shake it! and the other 4 windows shimmy to the taskbar. Want them back? Shake shake, shake shake, shake it! again.

*Cue tumbling ball of dried roots in barren wasteland. Cue squawking crows.*

You know, it’s a good thing I didn’t try to crack jokes at the podcast. I would have failed miserably… If you have anything to say regarding the Windows 7 information I gave (perhaps I was blatantly wrong and I don’t know about it), please send in comments here, or do so at the Tech65 post.

Response to Stack Overflow podcast 15

The recent Stack Overflow podcast is fantastic! Check it out here. Their fantasticness might have to do with Jeff and Joel answering listener questions more than directionless rambling. Some of the questions were interesting, and I want to add to their answers.

The one on time management

Like Jeff, I don’t really have a system. Like Joel, I got halfway through Getting Things Done and I decided the whole system is still too complex and I could have actually done something already. The concept of transferring tasks from your brain onto something, like paper (have a look at Todoodlist) or a PDA or a computer, is great though. I use my mobile phone to keep track of personal tasks, and the Outlook calendars and tasks to keep track of office work.

That said, my “system” if you want to call it that, is to keep people from annoying me.

Given similar levels of urgency, first do that task which has the most number of people irritating you.

It’s served me well so far.

The one on code review

I’ve never had a code review of my code. It’s not that I’m that good (it helped though), or I’m a pompous buffoon (I’m not). It’s that the people I’ve worked with, don’t care about code quality but more about whether the software worked. When the software failed, or was slow, then the code was checked.

The other reason is the small team I’m currently working in. There’s no one else available to check my code. My team leader trusts that I do my job and I’m grateful for that. The downside is, I don’t have anyone to talk to in my team. I’m the .NET guy! Or the front-end guy.

This is getting depressing. Moving on…

The one on interviews

I don’t know what it’s like in America, where the geographical context of Jeff and Joel’s conversation is. What I do know is, there was only one interview where I had to read and explain some code. It was something to do with string concatenation optimisation in Java. I believe it was an actual production issue, and the interviewers wanted to get a free answer from the interviewees.

Just go prepared. Read up on the company, prepare some questions of your own and revise some of the basic programming stuff. It might look bad if you asked for access to Google so you can find out the parameter signature of a basic function.

[Update] Joel also mentioned something about suits. If you’re not used to wearing office wear, and the company you’re interviewing for requires you to wear suits, well guess what? Practise wearing suits. My current job only required me to wear a long sleeved shirt, pants and (leather) shoes. And belts help too. Don’t you read fashion magazines? *smile* I remember squirming in that alien outfit for my first few interviews because I’m not used to wearing them… Don’t be like me.

I’ve heard of the puzzle questions in Microsoft and Google interviews. I’ve actually had one too. The puzzle had something to do with a cube.

The ones on managerial role and outsourcing

I’m linking them together because my answer is related to both: Offshoring. Occasionally, I’m in charge of a developer stationed in China. I had to write out instructions, program specifications, design layout and database table structures.

The only code reviews ever done was on the code of our Chinese colleagues. We’re (as in the Singapore team) supposed to be training them.

As I understand it, outsourcing means you delegate tasks to another company, usually in another country. Offshoring means you delegate tasks to another part of the mother company in another country.

Oh, you might want to read about my first outsourcing episode.

And that’s all from me. If you hadn’t done so, go listen to the podcast.

Podcast: Why programmers write stupid code

Need I tell you, again, how my first recording failed abysmally? Probably not. And here I am, doing another audio recording. Plus the fact that I got a new headset and I want to play with it.

To be honest, I learned a few things. I speak quite fast normally, and when my speech gets into recorded form, my words just slurred together. I just think faster than I can write or speak.

Be clear. That was main goal this time. So I spoke slower and slightly louder. I did some post production work and here it is:

Download mp3 [~ 2:40 minutes ~ 1.22 MB]

Noticed that I haven’t said anything about the subject at hand. Well, here’s a synopsis of the recording.

  • Murder on the Orient Express by Agatha Christie
  • Courting danger in racing simulations
  • Why programmers write stupid code

You’ll have to listen to the recording to find out how all 3 points fit together. For the impatient ones out there who just wants to know the final answer, here’s a hint: First word of first four paragraphs.

Podcast: Fairy tale recital

This is my very first podcast. Woohoo! Seriously, I didn’t know what to talk about, so given my interest in stories of all kinds, I decide to tell a story instead. Here it is:

Download mp3 [~ 3 minutes ~ 1.5 MB]

I recited a fairly well known fairy tale, and it’s only the beginning of the tale. If you know the name of the story, or even better, where the story was from, tell me about it!

You might have to turn up the volume a bit. For some reason, my headset microphone doesn’t capture my voice in a loud enough volume, so the resulting recording sounds soft. In my attempts to ramp up the volume, I cupped the microphone close to my mouth, so there’ll be a lot of “wind” sounds. You know, when you huff and puff (and you blow the house down). And no, “Three Little Pigs” isn’t the name of the story.

I’m going to see if I can get a better microphone. Any suggestions?

In case you’re wondering, I got the intro and outro music from Sound Rangers. Excellent online music store, and quite easy to navigate. I’m also using the Audio Player plugin.

[EDIT: Not using the audio player plugin anymore.]

If you have problems reading this in an RSS reader, please view the post itself for the mp3’s.

Remember to tell me the name of the story. Or submit your comments to this post.