# It sort of sorts...

• So we use a product here at work called "Code Reviewer" by Smart Bear
Software.  The UI for this product appears to have been created by
a bunch of blind monkeys typing on an infinite number of
keyboards.  They don't believe in menus, so everything is a
button.  But the real fun starts when you try to view a list of
outstanding code reviews.  The list is a normal Windoze-style
list, with a series of columns containing dates, owners, descriptions,
IDs, etc.  As is usual for this type of list, you can click on the
headers to sort the list by different columns.

Now let's try to sort by "Time in State":

Not only does it not sort chronologically, which is almost excusable,
but it doesn't even sort numerically - it is sorting a human-readable
time interval field alphabetically!

• OK, so the picture insertion worked about as well as I expected.
here's a text excerpt representation of the "before" and "after" that I
was trying to do graphically:

Before:

Time in State

3 weeks

3 hours

10 days

11 days

20 days

31 minutes

After:

Time in State

10 days

11 days

20 days

3 hours

3 weeks

31 minutes

• It's actually a much more complicated algorithm than you might think:

The list is sorted in increasing order of importance. At the very bottom of the list is the most important code reviews, the ones submitted within the last hour. Up higher in the list you have the people who have been waiting the longest for a response, which is why you see it go from "31 minutes" to "3 weeks". If you don't have to deal with it immediately, then it can wait 3 weeks.

The rest of the list is the people who don't need a response yet because they haven't been waiting long enough.

That "3 hours" item mixed in the middle randomly so you deal with some of them in a timely manner, thereby giving the illusion that you do it with all of them. As long as you take care of at one every so often...

This software is AWESOME.

• @Manni said:

It's actually a much more complicated algorithm than you might think:

The list is sorted in increasing order of importance. At the very bottom of the list is the most important code reviews, the ones submitted within the last hour. Up higher in the list you have the people who have been waiting the longest for a response, which is why you see it go from "31 minutes" to "3 weeks". If you don't have to deal with it immediately, then it can wait 3 weeks.

The rest of the list is the people who don't need a response yet because they haven't been waiting long enough.

That "3 hours" item mixed in the middle randomly so you deal with some of them in a timely manner, thereby giving the illusion that you do it with all of them. As long as you take care of at one every so often...

Are you sure that is how it is sorting?  From the example given, it seems to be sorting on  the string value of the field (3 weeks, 31 minutes) rather than the underlying "date" ie. number of seconds since Jan 1, 1970 (in unix) or some floating point number (in excel and vb.)  However, that's just from the example .

• @triso said:

@Manni said:

It's actually a much more complicated algorithm than you might think:

The list is sorted in increasing order of importance. At the very bottom of the list is the most important code reviews, the ones submitted within the last hour. Up higher in the list you have the people who have been waiting the longest for a response, which is why you see it go from "31 minutes" to "3 weeks". If you don't have to deal with it immediately, then it can wait 3 weeks.

The rest of the list is the people who don't need a response yet because they haven't been waiting long enough.

That "3 hours" item mixed in the middle randomly so you deal with some of them in a timely manner, thereby giving the illusion that you do it with all of them. As long as you take care of at one every so often...

Are you sure that is how it is sorting?  From the example given, it seems to be sorting on  the string value of the field (3 weeks, 31 minutes) rather than the underlying "date" ie. number of seconds since Jan 1, 1970 (in unix) or some floating point number (in excel and vb.)  However, that's just from the example .

I believe that Manni is being sarcastic

• @Enric Naval said:

@triso said:
@Manni said:

It's actually a much more complicated algorithm than you might think:

The list is sorted in increasing order of importance. At the very bottom of the list is the most important code reviews, the ones submitted within the last hour. Up higher in the list you have the people who have been waiting the longest for a response, which is why you see it go from "31 minutes" to "3 weeks". If you don't have to deal with it immediately, then it can wait 3 weeks.

The rest of the list is the people who don't need a response yet because they haven't been waiting long enough.

That "3 hours" item mixed in the middle randomly so you deal with some of them in a timely manner, thereby giving the illusion that you do it with all of them. As long as you take care of at one every so often...

Are you sure that is how it is sorting?  From the example given, it seems to be sorting on  the string value of the field (3 weeks, 31 minutes) rather than the underlying "date" ie. number of seconds since Jan 1, 1970 (in unix) or some floating point number (in excel and vb.)  However, that's just from the example .

I believe that Manni is being sarcastic

Not so obviously, triso was, too.

I hope.

Maybe.

•     @sas said:

Not so obviously, triso was, too.

I hope.

Maybe.

Sorry, I am blind to sarcasm that is over one sentence long--a quick
comeback is all I know.  I fell for the "uppercase lowercase space
in VB" thing this spring.  I made a fool of myself in front of all
the volks at work.  I was finally convinced that it was a gag when
someone showed me that the only hits for "uppercase space" were here on
thedailywtf.com.

• @stevekj said:

I believe that everyone has. It's a rite of passage of sorts to posting here. ^.~

The routine is probably:
End Function

Or some BS like that. (Hey, if windows explorer can do it why shouldn't we! Assuming they ever even tested for sanity.)

• @triso said:

Sorry, I am blind to sarcasm that is over one sentence long--a quick
comeback is all I know.  I fell for the "uppercase lowercase space
in VB" thing this spring.  I made a fool of myself in front of all
the volks at work.  I was finally convinced that it was a gag when
someone showed me that the only hits for "uppercase space" were here on
thedailywtf.com.

This is the upprcase space:

This is the lower case space:

See?

• @dhromed said:

@triso said:
Sorry, I
am blind to sarcasm that is over one sentence long--a quick
comeback is all I know.  I fell for the "uppercase lowercase space
in VB" thing this spring.  I made a fool of myself in front of all
the volks at work.  I was finally convinced that it was a gag when
someone showed me that the only hits for "uppercase space" were here on
thedailywtf.com.

This is the upprcase space:

This is the lower case space:

See?

Oooh, I totally see the difference, now.

• Splendid!

Now let me show you our fine selection of invisible apples. They look great!

• @dhromed said:

Splendid!  Now let me show you our fine selection of invisible apples. They look great!

<FONT face="Courier New" size=2>"appels"</FONT>

• @dhromed said:

Splendid!

Now let me show you our fine selection of invisible apples. They look great!

They sure do. I want  the absent one, right there. It looks so tasty.

• I have Hens teeth.

(not in my head, dont be so stupid. they are on my right big toe.)

@stevekj said:

I believe that everyone has. It's a rite of passage of sorts to posting here. ^.~

I knew that.  That was my own attempt at sarcasm, but everyone's sarcasm detectors seem to be broken today.

The routine is probably:
End Function

Yeah, that's what I'm guessing.  I'm not too surprised that they
actually coded it this way, at least for a first attempt; what's a bit
more of a WTF is that it got past their excuse for QC that way.

• @stevekj said:

And speaking of broken... I give up.

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.