Difference between revisions of "1695: Code Quality 2"

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
(Explanation: Grammar fixes)
(Explanation: better link)
Line 16: Line 16:
 
She then continues to describe poetically the total mess of a code she encounters, using references to recipes created by corporate lawyers or the transcript of a couple arguing at IKEA.
 
She then continues to describe poetically the total mess of a code she encounters, using references to recipes created by corporate lawyers or the transcript of a couple arguing at IKEA.
  
The second panel makes a reference to "OCR" ({{w|Optical Character Recognition}}), a technique for recognizing text in a picture using software. In this case she is referring to a picture of a {{w|Scrabble}} game, which is a popular word-making game in which players have a pseudo-randomized set of letters and must arrange them on a grid to form interlocking words. OCR software is notoriously imperfect at the time of writing, and the criss-crossing semi-random words on a Scrabble board fed through an OCR program would likely produce dubious results, certainly not fit for current code standards. This is further compounded by Ponytail's suggestion that Cueball made rampant use of JavaScript reserved words in his declarations, which is [http://www.javascripter.net/faq/reserved.htm strictly forbidden] by the language. Scrabble's point system is based on the value of individual letters, combined with certain modifier squares on the game board which can boost points. "Triple points" is the highest class of modifier available in the game (though it can be for triple points on a specific letter, or the entire word) and is highly-sought-after by players.
+
The second panel makes a reference to "OCR" ({{w|Optical Character Recognition}}), a technique for recognizing text in a picture using software. In this case she is referring to a picture of a {{w|Scrabble}} game, which is a popular word-making game in which players have a pseudo-randomized set of letters and must arrange them on a grid to form interlocking words. OCR software is notoriously imperfect at the time of writing, and the criss-crossing semi-random words on a Scrabble board fed through an OCR program would likely produce dubious results, certainly not fit for current code standards. This is further compounded by Ponytail's suggestion that Cueball made rampant use of JavaScript reserved words in his declarations, which is [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords strictly forbidden] by the language. Scrabble's point system is based on the value of individual letters, combined with certain modifier squares on the game board which can boost points. "Triple points" is the highest class of modifier available in the game (though it can be for triple points on a specific letter, or the entire word) and is highly-sought-after by players.
  
 
The third panel continues Ponytail's rant, this time referencing naval weather forecasts, avian interference and indentation. A weather forecast is a complex, multidimensional array of data used in predicting or assessing the atmospheric conditions of a geographical area over a set time. One such example of a "naval weather forecast" [https://www.fnmoc.navy.mil/wxmap_cgi/cgi-bin/wxmap_DOD_area.cgi?area=efs_nvg_nlant&set=EFS may be this one], which would generally be unreadable to an untrained individual. Transcribing it would be a long and typing-intensive process which could result in an even more unreadable product, further complicated by a {{w|woodpecker}} (a bird noted for its rapid successive pecking motions) "hammering" (pecking) the Shift key on the keyboard, which would result in many letters being randomly capitalized. Indentation is the practice of shifting a section of text further from the starting margin, which in coding is typically used to organize functions and statements, but if done "randomly" would only serve to scramble the code hierarchy.
 
The third panel continues Ponytail's rant, this time referencing naval weather forecasts, avian interference and indentation. A weather forecast is a complex, multidimensional array of data used in predicting or assessing the atmospheric conditions of a geographical area over a set time. One such example of a "naval weather forecast" [https://www.fnmoc.navy.mil/wxmap_cgi/cgi-bin/wxmap_DOD_area.cgi?area=efs_nvg_nlant&set=EFS may be this one], which would generally be unreadable to an untrained individual. Transcribing it would be a long and typing-intensive process which could result in an even more unreadable product, further complicated by a {{w|woodpecker}} (a bird noted for its rapid successive pecking motions) "hammering" (pecking) the Shift key on the keyboard, which would result in many letters being randomly capitalized. Indentation is the practice of shifting a section of text further from the starting margin, which in coding is typically used to organize functions and statements, but if done "randomly" would only serve to scramble the code hierarchy.

Revision as of 18:35, 17 June 2016

Code Quality 2
It's like you tried to define a formal grammar based on fragments of a raw database dump from the QuickBooks file of a company that's about to collapse in an accounting scandal.
Title text: It's like you tried to define a formal grammar based on fragments of a raw database dump from the QuickBooks file of a company that's about to collapse in an accounting scandal.

Explanation

Ambox notice.png This explanation may be incomplete or incorrect: first edits
If you can address this issue, please edit the page! Thanks.



The comic is a continuation of 1513: Code Quality, in which we see Ponytail being introduced to the source code Cueball has written, and where he is warning her that he is self-taught so his code probably won't be written the way she is used to. She then continues to describe poetically the total mess of a code she encounters, using references to recipes created by corporate lawyers or the transcript of a couple arguing at IKEA.

The second panel makes a reference to "OCR" (Optical Character Recognition), a technique for recognizing text in a picture using software. In this case she is referring to a picture of a Scrabble game, which is a popular word-making game in which players have a pseudo-randomized set of letters and must arrange them on a grid to form interlocking words. OCR software is notoriously imperfect at the time of writing, and the criss-crossing semi-random words on a Scrabble board fed through an OCR program would likely produce dubious results, certainly not fit for current code standards. This is further compounded by Ponytail's suggestion that Cueball made rampant use of JavaScript reserved words in his declarations, which is strictly forbidden by the language. Scrabble's point system is based on the value of individual letters, combined with certain modifier squares on the game board which can boost points. "Triple points" is the highest class of modifier available in the game (though it can be for triple points on a specific letter, or the entire word) and is highly-sought-after by players.

The third panel continues Ponytail's rant, this time referencing naval weather forecasts, avian interference and indentation. A weather forecast is a complex, multidimensional array of data used in predicting or assessing the atmospheric conditions of a geographical area over a set time. One such example of a "naval weather forecast" may be this one, which would generally be unreadable to an untrained individual. Transcribing it would be a long and typing-intensive process which could result in an even more unreadable product, further complicated by a woodpecker (a bird noted for its rapid successive pecking motions) "hammering" (pecking) the Shift key on the keyboard, which would result in many letters being randomly capitalized. Indentation is the practice of shifting a section of text further from the starting margin, which in coding is typically used to organize functions and statements, but if done "randomly" would only serve to scramble the code hierarchy.

The fourth panel references famous poet E. E. Cummings and user name suggestions. E. E. Cummings was noted for his "unusual" style of poetry which combined words and phrases in ways that were atypical for English speech, resulting in constructs that might easily confuse someone who doesn't natively speak the language. Websites that offer membership often also require that users create a pseudonym (known as a "username") for use in tracking/authenticating their actions on the site, as well as identifying them to the site's community. Many of these sites also require usernames be unique. On popular sites, many common words, phrases and names have already been reserved by users, so when signing up for them many people run into situations where the name they want has already been taken. On many sites where this happens, the site may suggest alternate usernames, usually based on the one that was entered to begin with. For example, if the username "Hedgeclipper" is already reserved, the site may recommend "Hedgeclipper1234" or "H3dg3clipp3r" instead, depending on the algorithm behind the suggestions. An E. E. Cummings poem written entirely out of these semi-random suggestions would make the resulting poem even more "unusual" than his work is already considered.

The last panel's metaphor involves Markov chaining, chat-bots (presumably), bus schedules and potential gross vehicular negligence. Applied Markov chaining is a process used in many computer algorithms that try to simulate real-world concepts such as speech simulation and decisions-making. Its inherent randomness also makes it a candidate for unpredictable things such as stock market analysis and speech recognition. Bus schedules are often complicated and full of notation, and are notorious for confusing people who are not used to reading them. Chat-bots using applied Markov chains to recognize and respond to speech/text rely on the input being clear and well-organized in plain language. "Feeding" bus schedules to such a bot would likely result in the returns being complete gibberish and unreadable. The issue is further complicated when Ponytail suggests that the schedules are from a city where "the buses crash constantly", which would be horrifying if it happened so regularly that the schedules actually took crashes into account. Even more horrifying would be the further unpredictability of the output of the chat-bot from such unpredictable input.

Cueball finally comments that "...it runs fine for now" which indicates he knows the code has problems but it reluctant to fix them because it's more-or-less serving its function. Ponytail quips back that "So does a burning bus", which is technically true, but the "for now" part implies that disaster and injury could result at any moment, as would likely happen on a burning bus.

Transcript

Side view of Ponytail sitting at a computer in all five panels.

First panel, tall vertical.
Ponytail: Ugh, I hate reading your code.
Offscreen: I know, I know.

Second panel is wider, shows her in an office chair.
Ponytail: It's like you ran OCR on a photo of a Scrabble board from a game where Javascript reserved words counted for triple points.

Third panel zooms in and shows just her head.
Ponytail: It looks like someone transcribed a naval weather forecast while woodpeckers hammered their shift keys, then randomly indented it.

Fourth panel, similar to second, though slightly narrower.
Ponytail: It's like an e e cummings poem written using only the usernames a website suggests when the one you want is taken.

Fifth panel zooms in, shows her head and the screen.
Ponytail: This looks like the output of a Markov bot that's been fed bus timetables from a city where the buses crash constantly.
Offscreen: Whatever, it runs fine for now.
Ponytail: So does a burning bus.


comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!

Discussion

Edward Estin Cummings was a poet (pseudonym e e cummings) who used capitalization, punctuation, and line breaks in unconventional ways. When a new user creates an account that duplicates an existing user name, many websites will suggest a user name with the user's first name followed by a string of digits. The Dining Logician (talk) 14:42, 17 June 2016 (UTC)

I really love these ones :) I hope there will be a part 3. Can we please make a contest for these?162.158.83.246 15:22, 17 June 2016 (UTC)

Yes please! How about:

"It's as if you used a kaleidoscope while following a style-guide written in Rongorongo & applied a pseudo-random number generator to the Unicode table for all your regular expressions. Also, you're not supposed to use line-breaks to draw letters using pipe symbols when defining your variables." (A nice example of the Reverse Boustrophedon format used in Rongorongo) 162.158.68.137 22:05, 17 June 2016 (UTC)

My brother made up this one: "It's as if you ran a sponge through a punch-card reader." --172.69.42.50 00:10, 12 March 2021 (UTC)

I know Ponytail is female but I keep reading her voice as TJ Miller's character from the movie Deadpool.--R0hrshach (talk) 15:45, 17 June 2016 (UTC)

Are you also a fan of Dr. Mrs. The Monarch, from Venture Bros? 162.158.68.137 22:05, 17 June 2016 (UTC)

"This is further compounded by Ponytail's suggestion that Cueball made rampant use of JavaScript reserved words in his declarations, which is strictly forbidden by the language." I don't think Ponytail made any such suggestion. I think all Ponytail is suggesting is that reserved words occur more often than they would in an ordinary scrabble game. A "house rule" giving triple points for using particular words would explain their high frequency.

Of course in pretty much any program reserved words do occur with high frequency, it's hard to write without them. There is also heavy overlap in the list of reserved words in different languages, so that the program might not be in javascript. A typical C program uses lots of javascript reserved words.--108.162.218.59 16:12, 17 June 2016 (UTC)

I agree, and as "the program runs fine for now" it appears to be at the very least a syntactically correct program. --141.101.104.76 21:17, 17 June 2016 (UTC)
I also agree that it's highly speculative to assume that Cueball's use of reserved words is necessarily erroneous; However, that may be the funnier interpretation, as it indicates an even higher level of improper usage. 162.158.68.137 22:05, 17 June 2016 (UTC)
I interpreted it quite differently: that he uses variable names very similar to reserved words. For example, "stririg" or "strlng" for a string. 173.245.52.70 11:12, 19 June 2016 (UTC)

Do we really need the "funny bus crash" photos in the transcript?141.101.98.123 20:01, 17 June 2016 (UTC)

"Funny" bus crash is redundant, in my antisocial opinion. 162.158.68.137 22:05, 17 June 2016 (UTC)
No we do not need them. Feel free to delete them. They are though not in the transcript (where they would for sure not belong). The transcript shoudl genreally have no links. They are in the explanation above the transcript as is also the case with the crash photos. --Kynde (talk) 14:43, 18 June 2016 (UTC)

"It works fine for now" is the reason we still have such a hard time figuring out genetics.172.68.35.83 05:57, 18 June 2016 (UTC)

Somehow the "OCR on the photo of a Scrabble board" line reminded me of 1685: Patch. Tepples (talk) 22:43, 18 June 2016 (UTC)

Much shorter insult, courtesy StackOverflow: "The garbage collector is broken". "What? Impossible!" "Surely. Your program is still there." 162.158.201.84 08:37, 20 June 2016 (UTC)

"Navy weather forecast"

The link given in the explanation to a navy weather forecast is to a graphical weather forecast product. This doesn't make sense, since Randall was clearly referring to a textual weather forecast product. I believe the type of weather forecast Randall intended to reference is an aviation weather forecast, which is textual, not graphical, and is indecipherable to a lay person (pilots must learn how to read them during their training). An example of such a forecast is the blue text on this page explaining how to decode themSaxTeacher (talk) 14:14, 21 June 2016 (UTC)

In the 1st panel her hands are on desk but others are on the drawer underneath :) 108.162.245.50 20:36, 14 November 2016 (UTC)

That's easily explained away as she is also hunched over in panel 1 trying to read his code. Holding onto the desk like that would make sense as she would not currently be using her hands to type and correct things (not that it's possible to correct Cueball's code). 108.162.241.118 (talk) (please sign your comments with ~~~~)

Cummings example

I wish we could copy over the "Buffalo Bill's" quote box from E. E. Cummings, but sadly we don't have Template:quote box or <poem> available on this wiki... Maplestrip (talk) 15:31, 25 March 2024 (UTC)

Would {{Quote}} (Template:Quote) be useful to you? Or just use the "space-starting line" format
Buffalo Bill's
defunct
        who used to
        ride a watersmooth-silver
                                  stallion
and break onetwothreefourfive pigeonsjustlikethat
                                                  Jesus 
he was a handsome man
                      and what i want to know is
how do you like your blueeyed boy
Mister Death
There's various possible treatments. With perhaps some additional arguments to it all, if you want it 'side-aligned'/text-flow-past/whatever, which might also be a template option, or possible through direct xhtml-type markup. Not sure how much you want to exactly emulate it what's over there... 162.158.74.119 23:35, 25 March 2024 (UTC)
Something like this..?
Using float
In a table
Or a different div-style block
If you don't need tables
    to do    weird stuff...
172.70.85.77 17:11, 27 March 2024 (UTC)
I think a side-aligned little box would be nicer, as then it wouldn't completely break up the explanation. I simply wouldn't want the example of a E.E. Cummings poem to be taking up more space than the two paragraphs in the same section already do. But the exact styling can be anything, of course. Maplestrip (talk) 14:01, 27 March 2024 (UTC)