Maybe, but there could be another way it got its name. For instance, there’s
I was a little suprised to see Portland, Maine listed as the obscure one. Here in the east I believe it is as well known as the one in Oregon, as it was the original Portland.
As of this posting, the OneBox thing isn’t working. And I don’t see any Title-Text on the strip. Looks like the xkcd page wasn’t updated correctly. Probably be fixed later.
You pasted it in as the page title with a hyperlink, instead of pasting the URL directly. This is a “helpful” feature of Edge and I believe Chrome.
But you’re right that the hover text isn’t working (yet).
If you go to
you don’t see the alt-text properly, but you do get what is probably the alt-text
I did the same thing I always do. But I figured out what the problem was: I included a space in front of the url. For some reason I didn’t think to check for that.
While “City” is optimistic, it got the name “Atlantic” from being just on the Atlantic flowing side of the Continental Divide.
I agree with Randall that “TV Shows where Robots Battle” is the most important.
Also on the XKCD site, the comic image is a link, to www.xkcd.com . Though I’m not sure why that link would be necessary or useful-- Presumably anyone reposting the comic on another site wouldn’t preserve the link.
I remember seeing a shirt in Vancouver that said something like “The other Vancouver, near the other Portland, in the other Clark County, in the other Washington.”
It looks normal, now. I’m guessing that he was experimenting with a new way to make the mouseover text show up, to be more compatible with mouseless mobile devices, and the experiment wasn’t entirely successful.
I looked at the page source before it was fixed, and it was just incorrectly coded HTML. The mouseover text was in an href tag instead of title.
Yes, that’s exactly what happened. There is a page (whose name I’ve forgotten) about the early growth of Wikipedia, and there was a very short period of time where the number of articles suddenly skyrocketed, precisely as you describe.
This is exactly what Derek Ramsey did in October 2002: https://en.wikipedia.org/wiki/Wikipedia:2002
This one is probably baffling to non-programmers, and probably to some newer programmers as well.
A linked list is way of storing data in which each entry in the list has a link to the next entry. Modern programming languages generally abstract the implementation so programmers don’t have to deal with traversing linked lists. But it’s still a (somewhat) common interview question to see if the person understands basic programming principles. I guess the joke is that linked lists belong in a museum because they are old and not something people need to worry about these days.
A singly linked list means each entry links to the following entry, but there is no link to the previous one. Therefore you can follow it only in one direction.
Fairly baffling to old programmers, too. I’ve spent part of the last few months trying to delete redundant linked-list implementations from our codebase, because for some reason people like to rewrite them all the time. It didn’t occur to me that a programmer at the level of doing a coding interview could possibly think that it’s not worth knowing how they’re implemented.
Then again, I expect people to name a handful of sorting algorithms, list the tradeoffs for each one, and be able to implement them. And that’s doubly true for fresh-out-of-college types.
Tangentially related:
I think it depends what kind of company you’re working for. It sounds like your company has a large body of ancient code to maintain, so you need new employees with that kind of old-fashioned, low-level knowledge.
A start-up company, or a company developing new applications from scratch, on the other hand, would be testing knowledge of the latest technologies and high-level languages.
That’s not to say that low-level knowledge can’t be useful in some rare situations even today, but for the most part testing a knowledge of linked lists and sorting algorithms is redundant. It would be like expecting an interviewee to know Morse code and semaphore.
Yes and no. On one hand, sure, we have a large body of old code to maintain. But it’s in a constant state of modernization, and we generally use a reasonably modern variant and style of C++. So while there are some old crufty corners of the codebase, there are other places that are shiny and new (not that old is necessarily bad–there’s code around that I wrote 20 years ago, and wouldn’t be improved by a rewrite).
The bigger problems are performance and environmental limits. Performance means we’re obligated to use C++ or another low-level language. Also, some of the common abstractions (like built-in sort routines) are not good enough. The environment also places limits; our code may have to run in places where it can’t dynamically allocate memory, for instance, or doesn’t support function pointers.
And this isn’t running on some crusty old machine, this is the absolute fastest hardware on the market for its application. It’s fast because people know the low level details inside and out and use the most productive tools they can while also maintaining full control over the implementation. Many times, that means implementing a well-known algorithm or data structure in a way that’s optimized for a certain platform.
Knowing this stuff at a low level has other benefits. I recently debugged a rare crash that only showed up in the field. Our sole bit of information was a crash dump that gave a call stack and a snapshot of the registers (no memory aside from the few adjacent instructions). The call stack pointed to a qsort routine that I wrote (yay!). But I knew that qsort was rock-solid, so it couldn’t have been me (I hoped). Well, since I knew that routine inside and out, I could recognize how it mapped to the assembly code, and was able to convincingly determine that another thread had written to the array while it was being sorted. Bad juju. I found the culprit thread and fixed the problem.
In some other universe, I just used some off-the-shelf sort routine buried in a library. It still crashed, but I had zero means of actually debugging it, not least because I didn’t even know what qsort was. So I spent a few weeks randomly messing with stuff until I thought I fixed it, though since I had no means of verifying it I probably didn’t fix anything. And one in a million end users still get a weird crash once in a while, though it doesn’t surprise them much since all their stuff is just a tiny bit flaky.
Anyway, rant over. Low-level code may be a smaller part of the industry but it’s as necessary as ever. It’s not like this stuff was just written 40 years ago and forgotten about. And performance still matters. When people get the idea that performance doesn’t matter, it’s because someone else already wrote the high performance code they’re depending on. Eloi and Morlocks.