Older blog entries for apenwarr (starting at number 114)

21 Mar 2006 (updated 21 Mar 2006 at 03:21 UTC) »
Envelope Stuffing Day

My poem... they... they didn't... and now... hundreds of people... oh dear.

I promise I will never joke about marketing ever again. Um, unless I forget. Again.

Leadership and Motivation

Why would two software developers risk annoying their respective supervisors by skipping their normal daily (civilized) work and volunteer instead to spend hours stuffing envelopes for my advertising campaign? And after getting caught and dragged back to programming, why did they come back, unbidden, after hours to finish the job?

Some days, I actually like human nature.

(Thanks also to dwiseman, who volunteered for the same reasons, but has a cover-up excuse: she works for me.)

Happiness Compromises

pphaneuf talks about being happy and how it's more important for him to make himself happy than to dilute all his energy trying to make everyone else happy... and yet, how he just wouldn't be happy if everyone else was unhappy, and other people being happy leads back to him being happy.

This is a classic compromise situation. The correct solution is not simply to sacrifice your own happiness for others' happiness, or vice versa, or to alternate randomly between them, but to find a way for one to lead to the other.

That's not actually very hard to do, in concept, at least. You have to find the root cause of the unhappiness and then fix it. Looking at it from such a high level automatically handles confusing issues like "Should I have some temporary unhappiness now for greater happiness later?" or "Should I be a little less unhappy now so that this person can be happy now so I can be happy later?" The underlying strategy - solving the root cause - can guide all your specific actions.

15 Mar 2006 (updated 18 Mar 2006 at 21:04 UTC) »
Marketing vs. My Sanity

Dear Mr./Ms. Personsname, [...]

Nitix is a serious product.

That's why I wrote this poem:

    Nitix for Sage Accpac ERP
    Is not only a novelty.
    It never loses any data;
    Our newest disks can now do SATA.

    And idb is patent pending.
    Your database will need no mending.
    Make more money, save more time!
    Only Nitix sells with rhyme!

[...]

Sincerely,
etc.

Final score: Marketing:1, My sanity:0

Split Brain Compromises

I've written several posts now about non-compromise solutions to problems. A non-compromise solution is definitely the best one. But suppose you can't find a non-compromise solution, or you have found one, but it's too hard or will take too long to implement?

Here's one example that's very hard to solve in a fully non-compromise way.

Introversion/Extroversion

People who are introverted find social interaction tiring. People who are extroverted find social interaction energizing. And for sitting by yourself, the situation is exactly reversed. That's the simplest, most informative way of explaining the two personality types that I've ever heard. It avoids the faulty assumption that, say, introverts can't deal well with people. Not true. They can, they just quickly get tired of it. Conversely, some people are extroverted and annoying.

Here's the problem: it seems that introversion/extroversion is hardwired into your personality, and introverts are better at some things while extroverts are better at other things, and virtually nobody is energized both by being alone and by socializing.

Some problems require sitting and thinking. Some problems require socializing. If you're trying to improve yourself to be the very best at solving any particular kind of problem, you will have to choose at some point: are you an introvert or an extrovert? From there, you can choose the things you will and will not be great at.

But the hardest problems require a little bit of each. A compromise solution like this might entirely prevent you from being able to solve such problems.

What can you do about it? I see two possibilities: first, if you're an introvert, you can find one or more extroverts to work with. The compromise here: now you have to trust people before they've earned it, because you don't have the skills yourself. I've recently become intimately familiar with the results of this compromise.

Second, you can develop a split personality and switch between the two. Hey, humans are flexible. This compromise can have fairly obvious sanity-related consequences, but might be plausible in the short term to prepare for a switch (safely, this time) to solution 1.

Texas = Meat

And how!

Fry's = Crack

Once upon a time, noise cancelling headphones were prohibitively expensive. Now you can get cheap ones with decent noise cancellation. Unfortunately, the reason they're cheap is that the non-noise sound quality is crap.

They were fun to buy, though. And because of Fry's's (??) liberal return policy, they should also be fun to return.

4 Mar 2006 (updated 6 Mar 2006 at 03:15 UTC) »
I don't like to requote quotes, but...

You'll never see all the places, or read all the books, but fortunately, they're not all recommended.
-- The Unix Fortune Program

VSS vs. SVN

pphaneuf mentioned a team at Microsoft that switched from Visual Sourcesafe to Subversion as if this said something bad about VSS.

Well, it does, but it only says good things about the judgement of Microsoft's developers in general. In fact, the smartest teams at Microsoft have never used VSS at all. Last I heard, many projects were using a modified version of Perforce. At the time my spies last reported, several teams didn't even use Visual Studio, preferring vi and make instead. But that was a few years ago now.

So there's your gossip for today.

Bi-directional QoS

Guspaz asks why routers only do one-way QoS (that is, in the upload direction).

The simple answer is that while yes, you can fiddle with TCP sliding windows to adjust the receive rate, it's very complicated to do so accurately. The way to make TCP slow down is literally to drop packets, not just to delay them; delay is a latency thing, not a bandwidth thing, and a server noticing a high latency should put *more* packets in flight at once, not less. But you'd have to drop outgoing ACKs, not incoming packets, to reduce the bandwidth, and that's just complicated.

Incidentally, Linux's QoS stuff can do it, but it has a fatal complexity: you have to tell it what your link bandwidth is, and most users just don't know. mag will remember how annoying it is to calculate that correctly. (BTW: no, we still don't.)

Conversely, outgoing QoS (as it's normally defined) is easy. You just take all the packets currently sitting in the queue, and sort them in priority order. Got a new packet and the queue is full? Throw out the lowest-priority one. No real "bandwidth management" is needed, the algorithms are trivial, and it doesn't matter what your actual bandwidth count is.

Social Commentary

"Look, you can dress a monkey in a suit, but he'll still be a --"

"Oh, hey, handsome! Nice suit!"

Symbolism

The cubicle I selected for my self in our Toronto office has a big tree growing out of it. It's the only one that does. If you look up over the cubicle walls as you're walking through the office, it looks like a weird oasis of green in a sea of... well, cubicles.

I can't take any credit at all for this. I didn't choose the cubicle because it had a plant. In fact, it was was so piled with random junk before I moved in that I didn't actually discover the tree until after I had removed the random junk.

Still, I like my tree.

105 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!