astradele

Archive for March, 2008

Radical honesty

Posted by GJ on March 27, 2008

Reading around, I found an engaging article about an interesting view on deception that I somewhat agree with. It also had a very fetching name: Radical Honesty.

Mind you, my idea of honesty isn’t as “radical” as described in the article, especially with respect to the more vulgar levels of expressiveness. I do think I tend to be more frank than most, though.

The movement was founded by a sixty-six-year-old Virginia-based psychotherapist named Brad Blanton. He says everybody would be happier if we just stopped lying. Tell the truth, all the time. This would be radical enough — a world without fibs — but Blanton goes further. He says we should toss out the filters between our brains and our mouths. If you think it, say it. Confess to your boss your secret plans to start your own company. If you’re having fantasies about your wife’s sister, Blanton says to tell your wife and tell her sister. It’s the only path to authentic relationships. It’s the only way to smash through modernity’s soul-deadening alienation. Oversharing? No such thing.

And yet…maybe there’s something to it. Especially for me. I have a lying problem. Mine aren’t big lies. They aren’t lies like “I cannot recall that crucial meeting from two months ago, Senator.” Mine are little lies. White lies. Half-truths. The kind we all tell. But I tell dozens of them every day. “Yes, let’s definitely get together soon.” “I’d love to, but I have a touch of the stomach flu.” “No, we can’t buy a toy today — the toy store is closed.” It’s bad. Maybe a couple of weeks of truth-immersion therapy would do me good.

[Blanton says] “I advocate never lying in personal relationships. But if you have Anne Frank in your attic and a Nazi knocks on the door, lie….I lie to any government official.” (Blanton’s politics are just this side of Noam Chomsky’s.) “I lie to the IRS. I always take more deductions than are justified. I lie in golf. And in poker.”

Posted in everyday | No Comments »

Leap year workstation upgrades

Posted by GJ on March 25, 2008

Seeing as how my computer recently gave up the ghost, I needed a new workstation. My last full system upgrade took place because of a game - Final Fantasy XI - and I had hoped to time my second upgrade with another game - Starcraft II - but ’twas not to be.

My computer is old enough that replacing a defective part with a modern part entails replacing the part it was attached to, which leads to replacing yet more parts, and so forth. So I figured if I’m going to bother, I may as well go for a brand new system.

Amusingly, the cost of the new computer is 75% of the cost of the computer it replaces, and is far better in every measurable capacity. What a difference 3.5 years makes… and perhaps some smarter shopping habits: online, out-of-province, and (sigh) assemble-it-myself.

I didn’t shop around between vendors much. I’ve found Canada Computers to be consistently cheapest, or at most one or two percentage point away from it. NCIX provides an excellent, competitive selection, and out-of-province sales tax benefits.

I ended up going with NCIX, as they had the latest processor I wanted (Intel 3GHz at 45nm instead of 65nm). They also had several sales going on, coincidentally ending today. I wanted to order one of their preconfigured systems (it’s so much hassle to assemble!), but oddly it was much cheaper for me to order all the parts individually, due to sales and rebates.

Here’s the order:

  • Intel Xeon E3110 Dual Core Processor LGA775 3.0GHZ Wolfdale 1333FSB 6MB Retail
  • Corsair XMS2 DHX TWIN2X4096-6400C5DHX 4GB DDR2 2X2GB PC2-6400 DDR2-800 CL 5-5-5-18 240PIN Memory Kit
  • Gigabyte GA-P35-DS3L ATX LGA775 P35 1333FSB 1PCI-E16 3PCI-E1 3PCI SATA2 Sound GBLAN Motherboard
  • EVGA E-GEFORCE 8800GT 600MHZ 512MB 1.8GHZ DDR3 PCI-E Dual DVI-I HDTV Out Video Card
  • Antec Sonata III Black ATX 16IN Mid Tower Quiet Case 3X5.25 2X3.5 4X3.5IN 500W 120MM Fan
  • (two) Samsung 226BW 22IN Widescreen LCD Monitor Glossy Black Finish 1680X1050 3000:1 2MS VGA DVI-D HDCP
  • (two) Seagate Barracuda 7200.11 3.5IN 500GB SATA2 8.5MS 7200RPM 32MB Cache NCQ Hard Drive

Posted in techie | No Comments »

My computer hallucinated, then died. R.I.P.

Posted by GJ on March 25, 2008

My computer stays on all day, all the time. Deprived of rest for years, my computer started seeing … colours. I noticed some aberrant behaviour over several weeks, but I attributed it to the effects of the strange contortions I regularly ask of the computers I use.

Today, however, it finally threw up all over the monitors and stopped working. Repeated resuscitations attempts were met with increasingly shorter periods of liveliness, until finally even those efforts started to fail.

Sigh. At least I have the laptop to back me up.

Posted in everyday | No Comments »

Found a small bug in Pyblosxom’s session.py plugin

Posted by GJ on March 23, 2008

In trying to use the spamquestion plugin to reduce the amount of blog spam, I encountered what appears to be a small bug in the session.py plugin.

In session.py:152, the line self._cookie_path = base_url[base_url.find('/', base_url.find('://')+3):] does not handle the situation if the url has no trailing slash. In such a situation, it slices the string [-1:], which is not an error oddly enough. I guess I don’t understand Python well enough yet?.

session.py uses a cookie to store the session ID, and the malformed URL above would lead to an impossible cookie path being stored. This created a new session ID each time, which prevented spamquestion from remembering the spam question that was asked (and thus unable to correlate to the correct answer).

My fix is perhaps not “pythonic”, but putting a condition block around that line and creating an alternate for cases where there is no trailing slash works well enough.

Posted in techie | No Comments »

Interview question: why is Java’s package visibility different from .NET’s internal visibility?

Posted by GJ on March 16, 2008

I believe I’ve mentioned before I try not to ask memorization type questions; at the very least, I try to ask the question in such a way that the candidate demonstrates they understand more than the textbook definition, which I believe indicates that they’ve either 1) used it in the real world, or 2) actually thought about it in depth - both good signs.

I invented this question on the fly, but in retrospect I rather like it. I don’t know what the “real” answer is, but I certainly have my opinion, and it’s proven to be a very good discussion starter. It involves both Java and .NET, but it’s not really required to know both.

In Java, there are four levels of method/class visibility: public, protected, private, and default (package). In .NET, there are also four levels: public, protected, private, and internal.

Java’s package visibility allows artifacts to be “seen” from the same package (i.e. namespace in .NET parlance). .NET’s internal visibility allows methods to be “seen” if they are in the same assembly (roughly equivalent to a JAR file in Java).

It’s generally perceived that .NET “copied” a lot of features from Java (whether that’s an accurate depiction is irrelevant here). Why then, did the .NET designers choose to make their fourth visibility different from Java’s? What “problem” did they see?

Posted in techie | No Comments »

What if your spreadsheet could google?

Posted by GJ on March 6, 2008

I didn’t discover this feature of Google Spreadsheets on my own (http://www.readwriteweb.com/archives/googlelookup_wow.php for that), but I found it hard to imagine from the description what it did. It is more interesting to see than read about, so here’s a desktop video where I followed along with the instructions given by the link.

Demonstration of Google Lookup function in Google Docs spreadsheet on Vimeo.

Posted in techie | No Comments »

More interview stories

Posted by GJ on March 5, 2008

I don’t usually write about work life, trying to avoid any inappropriate remarks, but sanitized interview stories are probably OK.

I’m searching for a good .NET developer, and going through a lot of resumes, phone calls, and people. My tact for interviews these days is to have a few starting points ready, and follow the conversation naturally from there. I find it’s more instructive, and certainly more interesting for both parties.

However, being me, sometimes I end up doing unorthodox things on the spur of the moment. Here are a couple:

STORY #1

This candidate was very earnest, but very junior. “Wet around the ears” wouldn’t be much of a mischaracterization. The enthusiasm and earnestness during the phone interview won an in-person interview, though.

During the in-person interview, however, several basic mistakes were made. Considering the candidate’s apparent enthusiasm for software, though, I decided that perhaps checking for learning aptitude alone would be sufficient. So I fetched a laptop with Internet connectivity, and reiterated the questions, indicating that earlier answers were wrong. The earlier questions were of the kind easily found with a search engine, and the candidate acted quickly and made corrections.

Since I had given an aid, I felt compelled to ask a harder question, deriving from those topics. It was a harsh question, requiring mostly judgment and experience than textbook knowledge, but I wanted to see how the candidate fared. I ended up having to give a LOT of nudges for several minutes, but we eventually got there.

STORY #2

During the phone interview, this candidate came across as a confident, easy-going talker, with the technique of covering up ignorance by taking words from the questions and using them in the answer, with a little bit of filler. Why people do this, I’m not sure; do they think I would ask questions on topics I don’t know well?

At the end of the conversation, however, the candidate took the initiative to express that “Even though I didn’t kno- express, the answers in the way you wanted to hear, I learn fast. If I don’t know it now, give me a couple hours and I will.” Now, there’s a mix of high confidence and spin here, as the candidate deliberately changed the phrasing of the first part to suggest that it wasn’t that the answer was unknown, it was that it wasn’t communicated properly. Smiling with amusement and mischief as I processed this, I replied, “OK. A couple hours you said. Email me back with the answers to the questions I asked earlier?” I rattled off the 3 main question I had received unsatisfactory answers for and bid a good day.

Naturally, I did receive an email with the well researched answers, although it was five hours later. A ready explanation was also attached: it wasn’t that it took that long to research the answers, it was that confidential communication had to wait until the end of the work day. Assuredly, if there’s a followup in-person interview, some doozy questions on those topics will be asked!

Posted in everyday | No Comments »