https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&user=162.158.255.163&feedformat=atomexplain xkcd - User contributions [en]2024-03-28T08:44:38ZUser contributionsMediaWiki 1.30.0https://www.explainxkcd.com/wiki/index.php?title=Talk:1671:_Arcane_Bullshit&diff=118622Talk:1671: Arcane Bullshit2016-04-24T18:27:35Z<p>162.158.255.163: </p>
<hr />
<div><!--Please sign your posts with ~~~~--><br />
So, as someone who's taken like one course on Python ever, I'd like to offer my perspective on what I think your average "dumb person" wants to know. It's not the details of how programming in the 40's worked - all that does is reinforce the fact that it's "Arcane Bullshit", which is pretty obvious because every language is pretty close to arcane bullshit. It's more about why it's funny (or possible) to get break more things with a better understanding of code. The current explanation provides about two sentences on that - which helps ("okay, so you wouldn't even try if you're not familiar"), but I still feel like I'm missing something. Is it a programmer trope that people try to fix things and blow things up (like in XKCD 349)? [[Special:Contributions/162.158.255.163|162.158.255.163]] 18:27, 24 April 2016 (UTC)<br />
<br />
I was obsessively refreshing XKCD and the new comic popped up. Then I did the same on ExplainXKCD to make an explanation. Here's my first rough-draft attempt. [[User:Papayaman1000|Papayaman1000]] ([[User talk:Papayaman1000|talk]]) 13:34, 22 April 2016 (UTC)<br />
<br />
Your explanation confuses OOP with [https://en.wikipedia.org/wiki/Structured_programming structured programming].<br />
[[User:Svorkoetter|Svorkoetter]] ([[User talk:Svorkoetter|talk]]) 15:03, 22 April 2016 (UTC)<br />
<br />
Developing a kernel is not the same as compiling a kernel. You would, for example, rebuild a Linux kernel after you've added a module, or changed some parameters. Also, the purpose of object-oriented programming is not to solve the problem of spaghetti code. (That problem was solved by structured programming.) It's to enforce principles of abstraction, information hiding and modularity.<br />
[[User:Krishnanp|Krishnanp]] ([[User talk:Krishnanp|talk]]) 15:20, 22 April 2016 (UTC)<br />
<br />
I modified the explanation on OOP to include Structured & Procedural language code and briefly described the 80's era of low level languages.<br />
[[User:Digital_Night|Digital_Night]] ([[User talk:Digital_Night|talk]]) 15:41, 22 April 2016 (UTC)<br />
<br />
OK, I rewrote the kernel compiling explanation to explain why someone would recompile a 80's era kernel. Modular kernels sure are nice!<br />
[[User:Digital night|Digital night]] ([[User talk:Digital night|talk]]) 15:50, 22 April 2016 (UTC)<br />
<br />
Could this be a reference to the large amount of open-source projects using C (an arcane bull* language from the 70s/80s that need 10000 lines ./configure scripts to work) ? [[Special:Contributions/108.162.219.79|108.162.219.79]] 16:38, 22 April 2016 (UTC)<br />
<br />
T.M.I. [[Special:Contributions/162.158.222.231|162.158.222.231]] 18:54, 22 April 2016 (UTC)<br />
<br />
<br />
I think this comic refers to keeping or fixing 30 over year old programs and their "bs" factor. At which the most extreme will be something like gentoo where you have to compile everything first before doing anything productive. (Sorry gentoo users didnt meant to start a flame war) {{unsigned ip|103.31.5.240}}<br />
<br />
:While installing applications on gentoo takes longer because it's being compiled, it's the time of the COMPUTER. You can do something else while it's compiling. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 14:16, 23 April 2016 (UTC)<br />
<br />
I'm afraid the explanation misses the point completely ... Rather than excursion to programming techniques and languages, the sociology behind that should be focused on. Programmers were considered mages (hence "arcane", or do I get the meaning of it wrong, not being native speaker?), and don't forget also that 80's were the time when the GNU project started. The title text then may refer to changing standards in (released) software quality - I remember my ZX Spectrum crashing because of overheating, but not because of software problems. And its system was written in assembler that is kinda badmouthed by the current version of the explanation, in favour of sophisticated languages. Then, with DOS, a problem emerged from time to time, but not a big deal. Then, with Windows 95, the system crashed daily ... Nowadays, programmers just throw their bullshit code on users, and break "everyone else's computer", also thanks to Internet etc. It has very little to do with programming language choice and jumps/gotos. - [[Special:Contributions/141.101.95.123|141.101.95.123]] 06:58, 23 April 2016 (UTC)<br />
<br />
:Agree, the "breaking everyone else's computer" is definitely about low code quality. It's true than programming with "goto" is harder, but maybe that was the reason only people who known how to program was doing it. Nowadays, everyone thinks he can program, but based on number of bugs it's obviously not true. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 14:16, 23 April 2016 (UTC)<br />
<br />
The current explanation completely misses the point and honestly should be taken down -- no offense to the original writer. Arcane BS here means "wizard-like stuff" in the sense of what programmers do which is different from what users would do. Where regular users just buy a computer and never open it, the arcane programmer might just actually open the computer and start swapping parts in and out, with or without a precise grasp on what s/he's doing. Same goes on the software part where a user might just run Windows in the 80s since it comes off-the-shelf and one never modifies it, whereas the arcane programmer might go through the effort of installing a UNIX-like system such as Minix and recompile the kernel to adjust parameters, add new modules, all of which involve complicated command lines that look like insane arcane magic to normal users. This is what is called "hacking" in the sense of the original meaning of the work "[http://www.catb.org/jargon/html/H/hacker.html hacker]" as you can find in [http://www.catb.org/jargon/ The Jargon File] and that work "hacking" really meant tinkering -- the word "cracker" was coined after misuse of the former by the media. <br />
<br />
It was tinkering for the sole purpose of tinkering, which is why the comics says this accomplishes nothing. It is however an excellent way to learn how computers really work, something, again, that normal end-users don't care for, thus the "arcane" aspect.<br />
<br />
Also note that in the 80's there was no Linux (the project started in 1991) and no GNU (the project started in the mid 80s with the manifesto but GNU had no kernel at first till it got combined with Linux to form the now-ubiquitous GNU/Linux.)<br />
<br />
The tag line is easily explained: nowaday hacking (tinkering) on Linux is a common thing; the arcane hacking happens at the secops level. [[User:Ralfoide|Ralfoide]] ([[User talk:Ralfoide|talk]]) 17:02, 23 April 2016 (UTC)<br />
<br />
The bullshit is a reference to the whole stack of all software. Back in the 1980's, it was still possible for completely new software architectures to be started. GNU, NT, BSD, X-Windows, NeXTSTEP, C++, all started in the 1980's, all still dominant in some way. And it is all bullshit. Slow, insecure, badly architected, and we can't fix it without breaking everything. Heck, Windows 10 is still releasing security updates for kernel vulnerabilities in its font renderer, and Linux is bloating from its multitude of new features and its No Breaking Applications rule. X-Windows has a whole lot of vestigial functionality that nobody uses anymore, and lacks functionality that its own maintainers want to use, but its successor Wayland is taking a long time to come into use.<br />
<br />
BeOS showed what you could do for performance if you ignored backwards compatibility with backwards architectures, but it was too little, too late, and not designed for a networked world. Also, BeOS and its poorly funded open-source imitator Haiku are written in C++, and not C++14, at that.<br />
<br />
Which brings me to the programming languages. C++ is deliberately obtuse so it can be compatible with programs written for previous versions of C++, even those written as if C++ were C with classes. C is known for having no type safety, no memory safety, no thread safety; so C++ also lacks those unless somebody imposes strict discipline on the programmer. Java, JavaScript, C#, PHP, Python, Perl, were all written as alternatives, rejecting some aspect of C++, but they all use the same ideas of modularity and execution as C++, and they are all implemented in some combination of C, C++, and assembly(!). To be fair, though, until a major organization made it a priority (Mozilla Rust or Google Go), there just has been no high-performance alternative to C++.<br />
<br />
Since we all have limited time and money to deal with bullshit, we just keep using it. Decade [[Special:Contributions/162.158.255.69|162.158.255.69]] 21:46, 23 April 2016 (UTC)</div>162.158.255.163https://www.explainxkcd.com/wiki/index.php?title=1068:_Swiftkey&diff=1160261068: Swiftkey2016-04-01T02:26:04Z<p>162.158.255.163: correction/addition</p>
<hr />
<div>{{comic<br />
| number = 1068<br />
| date = June 13, 2012<br />
| title = Swiftkey<br />
| image = Swiftkey.png<br />
| titletext = Although the Markov chain-style text model is still rudimentary; it recently gave me "Massachusetts Institute of America". Although I have to admit it sounds prestigious.<br />
}}<br />
<br />
==Explanation==<br />
[[Cueball]] has installed {{w|SwiftKey}} on his smartphone and brags about this to [[Megan]]. SwiftKey is a product that is installable on {{w|iOS}}/{{w|Android (operating system)|Android}}-based phones and tablets.<br />
<br />
Cueball explains that if you type space bar on the keyboard it auto completes the word you are currently typing founded on its best guess, and then if you continue to press space it will add new words using this guessing process based on the previous word(s) and what it believes is the most likely words you would use in a sentence containing the previous word(s).<br />
<br />
Megan asks what happens if you begin a new message by just using space to automatically create a text. Cueball's best guess it begins with the word SwiftKey has found to be the typical starting word and then continues as normal from that.<br />
<br />
Megan then realizes that in this way it builds up his "typical" sentence and she tries this over the next eight small frames: ''I am so sorry- that's never happened before.''<br />
<br />
"I'm so sorry– that's never happened before." is a typical excuse for a mishap, usually when [http://tvtropes.org/pmwiki/pmwiki.php/Main/TheLoinsSleepTonight one fails to obtain an erection when it is needed]. Such a phrase being quoted by an algorithm implies that such mishaps are common, and therefore "I'm so sorry– that's never happened before." is a lie. Also Swiftkey might be saying "I'm so sorry– that's never happened before." because the software doesn't know what to do. <br />
<br />
SwiftKey have noticed their inclusion in xkcd and have created a blog post for other users to comment with their default phrase when they hit the "central prediction key". The results are [http://www.swiftkey.net/swiftkey-on-xkcd pretty funny]. In addition, reddit users have a similar model creating [https://www.reddit.com/r/SubredditSimulator /r/subredditsimulator], which is populated by bots generating submissions and comments based on the language of their subreddits.<br />
<br />
In the title text, a {{w|Markov chain}} refers to a system that transitions between a countable number of states, based only on the current state and none of the previous ones that led up to it. SwiftKey follows this property since it provides outputs based only on the most recently entered word or words, not the whole sentence.<br />
<br />
"Massachusetts Institute of America" is a nonexistent organization. The name appears to have formed by combining "{{w|Massachusetts Institute of Technology}}" and either "[Field] Institute of America" (e.g. Mining) or "United States of America". This illustrates the memoryless property of a Markov chain; after generating "Massachusetts Institute of", SwiftKey may have attempted to predict the next word using only the last "of" or "Institute of". Since it was not considering the word "Massachusetts" at all, the word "America" was viewed as the most likely follow-up.<br />
<br />
==Transcript==<br />
:[Cueball shows off phone to Megan.]<br />
:Cueball: Have you tried SwiftKey? It's got the first decent language model I've seen. It learns from your SMS/Email archives what words you use together most often.<br />
<br />
:Cueball: Spacebar inserts its best guess. So if I type "The Empi" and hit space three times, it types "The Empire Strikes Back".<br />
:Megan: What if you mash space in a blank message?<br />
<br />
:Cueball: I guess it fills in your most likely first word, then the word that usually follows it...<br />
:Megan: So it builds up your "typical" sentence. Cool! Let's see yours!<br />
:Cueball: Uh—<br />
<br />
:SwiftKey: I<br />
:SwiftKey: Am<br />
:SwiftKey: So<br />
:SwiftKey: Sorry—<br />
:SwiftKey: That's<br />
:SwiftKey: Never<br />
:SwiftKey: Happened<br />
:SwiftKey: Before.<br />
<br />
{{comic discussion}}<br />
[[Category:Comics featuring Cueball]]<br />
[[Category:Comics featuring Megan]]<br />
[[Category:Language]]</div>162.158.255.163