Difference between revisions of "Main Page"

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
(New here?: Thinning this thing down a bit.)
(This part definitely looks like it changed while I was away)
(43 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
__NOTOC__{{DISPLAYTITLE:explain xkcd}}
 
__NOTOC__{{DISPLAYTITLE:explain xkcd}}
 
<center>
 
<center>
<font size=5px>''Welcome to the '''explain [[xkcd]]''' wiki!''</font>
+
<font size=5px>''Welcome to the '''explain [[xkcd]]''' wiki!''</font><br>
 
+
We have an explanation for all [[:Category:All comics|'''{{#expr:{{PAGESINCAT:All comics|R}}-1}}''' xkcd comics]],
We have an explanation for all [[:Category:Comics|'''{{#expr:{{PAGESINCAT:Comics|R}}-9}}''' xkcd comics]],
+
<!-- Note: the -1 in the calculation above is to discount "comic" 404,
<!-- Note: the -9 in the calculation above is to discount subcategories (there are 8 of them as of 2013-02-27),
+
     which is not really a comic, even though we've categorised it so. -->
     as well as [[List of all comics]], which is obviously not a comic page. -->
+
and only {{PAGESINCAT:Incomplete explanations|R}}
and only {{PAGESINCAT:Incomplete articles|R}}
+
({{#expr: {{PAGESINCAT:Incomplete explanations|R}} / {{LATESTCOMIC}} * 100 round 0}}%) [[:Category:Incomplete explanations|are incomplete]]. Help us finish them!
({{#expr: {{PAGESINCAT:Incomplete articles|R}} / {{LATESTCOMIC}} * 100 round 0}}%) [[:Category:Incomplete articles|are incomplete]]. Help us finish them!
 
 
</center>
 
</center>
 
== Latest comic ==
 
== Latest comic ==
Line 13: Line 12:
 
<span style="float:right;">[[{{LATESTCOMIC}}|'''Go to this comic explanation''']]</span>
 
<span style="float:right;">[[{{LATESTCOMIC}}|'''Go to this comic explanation''']]</span>
 
<br clear="right">
 
<br clear="right">
{{:{{LATESTCOMIC}}}}
+
{{:{{LATESTCOMIC}}}}</div>
{{#ifexist:Talk:{{LATESTCOMIC}}|<h2>Discussion</h2>
 
{{Talk:{{LATESTCOMIC}}}}
 
}}</div>
 
  
 
<small>''Is this out of date? {{Purge|Clicking here will fix that}}.''</small>
 
<small>''Is this out of date? {{Purge|Clicking here will fix that}}.''</small>
  
 
== New here? ==
 
== New here? ==
<div style="float:right; margin: 0 0 1em 1em">{{Special:ContributionScores/10/7/nosort,notools}}<div style="font-size:0.85em; width:25em; font-style:italic">[[Special:ContributionScores|Lots of people]] contribute to make this wiki a success. Many of the recent contributors, listed above, have just joined. You can do it too! Create your account [[Special:UserLogin/signup|here]].</div></div>
+
<div style="float:right; margin: 0 0 1em 1em">{{Special:ContributionScores/10/7/nosort,notools}}<div style="font-size:0.85em; width:25em; font-style:italic">[[Special:ContributionScores|Lots of people]] contribute to make this wiki a success. Many of the recent contributors, listed above, have [http://www.explainxkcd.com/wiki/index.php?title=Special%3AContributions&contribs=newbie just joined]. You can do it too! Create your account [[Special:UserLogin/signup|here]].</div></div>
  
You can read a brief introduction about this wiki at [[explain xkcd]]. Feel free to sign up for an account and contribute to the wiki! We need explanations for comics, characters, themes, memes and everything in between. If it is referenced in an [[xkcd]] web comic, it should be here.
+
You can read a brief introduction about this wiki at [[explain xkcd]]. Feel free to [[Special:UserLogin/signup|sign up for an account]] and contribute to the wiki! We need explanations for [[:Category:Incomplete explanations|comics]], [[:Category:Characters|characters]], [[:Category:Comics by topic|themes]] and [[:Category:Meta|everything in between]]. If it is referenced in an [[xkcd]] web comic, it should be here.
  
*If you're new to wikis like this, take a look at these help pages describing [[mw:Help:Navigation|how to navigate]] the wiki, and [[mw:Help:Editing pages|how to edit]] pages.
+
* If you're new to wiki editing, see the [[explain xkcd:Editor FAQ]] for a specific guidance to this Wiki and the more general help on [[mw:Help:Editing pages|how to edit wiki pages]]. There's also a handy {{w|Help:Cheatsheet|wikicode cheatsheet}}.
  
*Discussion about various parts of the wiki is going on at [[Explain XKCD:Community portal]]. Share your 2¢!
+
* Discussion about the wiki itself happens at the [[explain xkcd:Community portal|Community portal]].
  
*[[List of all comics]] contains a table of most recent xkcd comics and links to the rest, and the corresponding explanations. There are incomplete explanations listed [[:Category:Incomplete articles|here]]. Feel free to help out by expanding them!
+
* You can browse the comics from [[List of all comics]] or by navigating the category tree at [[:Category:Comics]].
  
*If see that a new comic hasn't yet been explained yet, you can create it: '''[[Help:How to add a new comic explanation|Here's how]]'''.
+
* There are incomplete explanations listed [[:Category:Incomplete explanations|here]]. Feel free to help out by expanding them!
  
 
== Rules ==
 
== Rules ==
Don't be a jerk. There are a lot of comics that don't have set in stone explanations; feel free to put multiple interpretations in the wiki page for each comic.
+
 
 +
Don't be a jerk.
 +
 
 +
There are a lot of comics that don't have set-in-stone explanations; feel free to put multiple interpretations in the wiki page for each comic.
  
 
If you want to talk about a specific comic, use its discussion page.
 
If you want to talk about a specific comic, use its discussion page.
  
Please only submit material directly related to —and helping everyone better understand— xkcd... and of course ''only'' submit material that can legally be posted (and freely edited).  Off-topic or other inappropriate content is subject to removal or modification at admin discretion, and users who repeatedly post such content will be blocked.
+
Please only submit material directly related to (and helping everyone better understand) xkcd... and of course ''only'' submit material that can legally be posted (and freely edited).  Off-topic or other inappropriate content is subject to removal or modification at admin discretion, and users who repeatedly post such content will be blocked.
  
 
If you need assistance from an [[explain xkcd:Administrators|admin]], post a message to the [[explain xkcd:Community portal/Admin requests|Admin requests]] board.
 
If you need assistance from an [[explain xkcd:Administrators|admin]], post a message to the [[explain xkcd:Community portal/Admin requests|Admin requests]] board.
  
 
[[Category:Root category]]
 
[[Category:Root category]]

Revision as of 05:04, 4 May 2022

Welcome to the explain xkcd wiki!
We have an explanation for all 2934 xkcd comics, and only 6 (0%) are incomplete. Help us finish them!

Latest comic

Go to this comic explanation

Bloom Filter
Sometimes, you can tell Bloom filters are the wrong tool for the job, but when they're the right one you can never be sure.
Title text: Sometimes, you can tell Bloom filters are the wrong tool for the job, but when they're the right one you can never be sure.

Explanation

Ambox notice.png This explanation may be incomplete or incorrect: PROBABLY CREATED - Please change this comment when editing this page. Do NOT delete this tag too soon.

The comic is about a data structure called a Bloom filter. Software engineers use Bloom filters to check if something is in a set or estimate how many things are in that set, using limited memory. One example: the Chrome web browser used to store a Bloom filter of URLs that were known to be malicious[1], based on a database that was too large to store locally. Chrome used that Bloom filter to confirm that it didn’t need to warn the user that they were visiting a malicious page. Only in the rare cases that the Bloom filter said the URL might be malicious, Chrome would send the URL to an external service to confirm it was known to be malicious. The developers didn’t want the browser to send every URL to the external service because that would leak the user’s entire browsing history to the service and would add an unnecessary network delay whenever a web page was loaded.

Here's how it works:

  1. Adding items: When you add an item, it gets hashed (a way of transforming it into numbers) by several hash functions. These hash functions mark certain spots in a big array of bits (think of it as a row of lights that can be on or off).
  2. Checking items: To check if an item is in the set, you hash it with the same functions and see if all the corresponding spots are lit up. If they are, the item might be in the set, but there's a chance of a false positive (the Bloom filter could mistakenly say the item is there when it’s not). If any spot is not lit up, the item is definitely not in the set.
  3. False positives: The larger the array compared to the number of items, the lower the chance of false positives. For example, 10 bits per item gives about a 1% false positive rate.
  4. Counting items: By analysing the activated bits, with appropriate calculations, you can derive an estimate of how many individual items are 'stored' for confirmation within the array. This estimate's accuracy will depend upon several factors, but more array-bits (making themselves potentially available to 'remember' each item) will be one of the most important ones when it comes to narrowing down the likelihood.

In the comic, Cueball has a 1-bit Bloom filter, which is almost useless. When empty, it correctly says nothing is in the set. But as soon as one item is added, the bit is set to 1, and now it falsely says every possible item is in the set. Its size estimate also becomes "between 1 and infinity," which isn’t helpful.

Having multiple hash functions is pointless for a 1-bit filter since they all end up pointing to the same single bit.

The title text carries the characteristics of the Bloom filter into the decision making process for choosing a Bloom filter over other candidate data structures. In an analogous way (according to the text), you can be sure when they are not the best approach, but only conclude that they are with a limited degree of probability.

Transcript

Ambox notice.png This transcript is incomplete. Please help editing it! Thanks.
[Ponytail holds out her hand to Cueball, who is holding a paper with a 1 on it.]
Ponytail: Does your set contai-
Cueball: Yeah, probably.
[Caption below the panel:]
One-Bit Bloom Filter


Is this out of date? Clicking here will fix that.

New here?

Last 7 days (Top 10)

Lots of people contribute to make this wiki a success. Many of the recent contributors, listed above, have just joined. You can do it too! Create your account here.

You can read a brief introduction about this wiki at explain xkcd. Feel free to sign up for an account and contribute to the wiki! We need explanations for comics, characters, themes and everything in between. If it is referenced in an xkcd web comic, it should be here.

  • There are incomplete explanations listed here. Feel free to help out by expanding them!

Rules

Don't be a jerk.

There are a lot of comics that don't have set-in-stone explanations; feel free to put multiple interpretations in the wiki page for each comic.

If you want to talk about a specific comic, use its discussion page.

Please only submit material directly related to (and helping everyone better understand) xkcd... and of course only submit material that can legally be posted (and freely edited). Off-topic or other inappropriate content is subject to removal or modification at admin discretion, and users who repeatedly post such content will be blocked.

If you need assistance from an admin, post a message to the Admin requests board.
  1. Chromium Issue 10896048: Transition safe browsing from bloom filter to prefix set. (Closed) – https://chromiumcodereview.appspot.com/10896048/