<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hddqsb</id>
		<title>explain xkcd - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hddqsb"/>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php/Special:Contributions/Hddqsb"/>
		<updated>2026-04-16T04:25:48Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362389</id>
		<title>3038: Uncanceled Units</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362389"/>
				<updated>2025-01-17T01:40:32Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Undid revision 362344 by 172.70.100.12 and edited. Conversion to kJ/day is distracting; the joke is kWh/day =&amp;gt; kW, not kWh =&amp;gt; kJ (which is somewhat covered by next paragraph).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 3038&lt;br /&gt;
| date      = January 15, 2025&lt;br /&gt;
| title     = Uncanceled Units&lt;br /&gt;
| image     = uncanceled_units_2x.png&lt;br /&gt;
| imagesize = 323x355px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Speed limit c arcminutes^2 per steradian&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by THE HUBBLE PARAMETER, WHICH I HAD INCORRECTLY REFERRED TO AS THE PLANCK CONSTANT (PLS FORGIVE THIS BOT) - Please continue to explain the joke and possible interpretations. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
Another of [[Randall]]'s [[:Category:Pet Peeves|pet peeves]], this comic expresses disapproval of units that could be mathematically simplified.&lt;br /&gt;
&lt;br /&gt;
[[White Hat]] is presenting a refrigerator to [[Cueball]], saying it uses 3 kWh per day. This is a common and useful way to report power usage. But mathematically, the units can be simplified because there are two time units that cancel each other:&lt;br /&gt;
&lt;br /&gt;
: 3 kWh per day = 3 kW * 1 hour / 1 day = 3 kW * (1 hour / 24 hours) = 0.125 kW = 125 W&lt;br /&gt;
&lt;br /&gt;
This gives the (average) power usage in {{w|watts}} (a unit for the rate of energy transfer, equal to 1 {{w|joule}} per second).&lt;br /&gt;
&lt;br /&gt;
The reason people would use &amp;quot;kWh / day&amp;quot; without simplifying the unit is that kWh is a commonly used unit for energy, and it's often viewed as a base unit even though it's composite (1 kWh is the amount of energy consumed by one kilowatt of power usage over one hour, and is equal to 1 kJ/s * 1 h = 3600 kJ). It's the unit in which energy consumption is typically reported and in which bills are calculated, so it's more familiar to the average consumer, and giving the power usage in kWh / day makes it easier for the consumer to understand how much money it will cost them to run per day. Also, &amp;quot;per day&amp;quot; makes it clear that this is the ''average'' power usage rather than the maximum power usage (they are different because refrigerators cycle on and off throughout the day). But mathematically, &amp;quot;kWh / day&amp;quot; is inelegant, because it uses power (which is already a measure of energy per time) multiplied by a time unit then divided by another time unit.&lt;br /&gt;
&lt;br /&gt;
Cueball (probably representing Randall) sardonically wonders whether the refrigerator would fit in his kitchen, since the ceiling is only 50 gallons per square foot high. This is clearly an abnormal and unhelpful way of reporting height. This unit turns a normal measurement of height (feet and inches in the US; meters and centimeters most other places) into a weird collection of uncancelled units. Gallons can be transformed to cubic feet (1 US gal = 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;), which can be divided by the square feet, yielding a ceiling height of around 6 feet 8 inches, or 203.7 cm. (Using imperial gallons [1 UK gal ≈ 277.42 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;!--exactly equal to 4.54609 L--&amp;gt;], the height is roughly 8 feet, or approximately 244.7 cm.) This is intended to lampoon the use of both non-metric and uncancelled units by showing how odd things become if they're generally used.&lt;br /&gt;
&lt;br /&gt;
The exact ceiling height in feet, assuming the US gallon is used, can be calculated as:&lt;br /&gt;
&lt;br /&gt;
: 50 gallons per square foot = 50 gal * 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;/gal * (1/12 ft/in)&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; / 1 ft&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 6.68402777... ft&lt;br /&gt;
&lt;br /&gt;
''[[what if? (blog)|what if?]]'': [https://what-if.xkcd.com/11/ Droppings] also covers strange instances of unit cancellation, including a measure of volume per distance converted to area; similar to Cueball's measure of volume per area representing a distance (the height of his ceiling).&amp;lt;!-- This may not be relevant enough to keep --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common source of unit drama occurs between lay people who are looking for every day practicality and science/engineering types who are inclined towards formalized mathematical operations. For example U.S. customary units which support many divisibility rules (1 foot = 12 inches; 1 inch = 72 points = 1440 twips; 3 feet = 1 yard; 2 yards = 1 fathom; 22 yards = 1 chain; 10 chains = 1 furlong; 1 mile = 5280 feet; 1 league = 3 miles) versus metric units which prioritize base 10 scales. In this case, telling the average customer the energy use in joules per day or average consumption in watts would require them to perform more complicated conversions to get to the figure they actually care about — the actual cost per day. White Hat could just give this cost figure directly, but does not know what every customer pays for electricity (an explicit yearly cost estimate would be included on the government required energy efficiency label).&lt;br /&gt;
&lt;br /&gt;
In the title text, a speed limit is given as c arcminutes&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; per steradian, where c is presumably the speed of light in vacuum — 2.998×10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; m/s (meters per second) or 186282 mi/s (miles per second). A steradian (sr) is the SI unit for solid angle, subtended by a section of a sphere (like a radian is a unit of angle subtended by a section of a circle). A square arcminute is also a unit of solid angle, equivalent to a section of a sphere of 1/60 of a degree by 1/60 of a degree. There are ((1/60)*(π/180))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 8.462×10&amp;lt;sup&amp;gt;-8&amp;lt;/sup&amp;gt; sr in a square arcminute. Then multiplying by c gives a speed of 56.75 mph (probably 55 mph, based upon the {{w|National Maximum Speed Law|'traditional' US speed limit}}, before rounding errors in the reverse direction), or 91.33 km/h, showing that you can combine an outrageously high speed with two unnecessary units that cancel each other to form a normal road speed.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that, although some of these examples are ridiculous, there are cases where uncancelled units can be helpful to understanding the concept. For example, while the {{w|Hubble's law|Hubble Parameter}} can be expressed as 2.17132212×10&amp;lt;sup&amp;gt;-18&amp;lt;/sup&amp;gt; hertz, expressing it as 67 km/s/Mpc directly relates the quantity to how it is measured and its natural interpretation. Another example would be fuel efficiency in cars, where mi/gal and km/l technically simplify to 1/area, but expressing it in volume and distance allows easy estimations of range and travel cost, while mm&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; or in&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; would require significant unit conversions.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[White Hat and Cueball are standing to either side of a refrigerator. White Hat is lifting one hand up to touch the side of the fridge. The fridge has two compartments, with two doors that open to the top compartment and one bottom compartment, a drawer. The top left compartment has a tall handle on its right, the top right compartment has a tall handle on its left, and the bottom compartment has a long handle on its top. The top left compartment has an oval shape on the top and a paper attached, both with unreadable text. There is also a small square note in the top right corner and an oval shape on the side of the fridge above White Hat. These also have unreadable text.]&lt;br /&gt;
:White Hat: This fridge uses only 3 kWh per day!&lt;br /&gt;
:Cueball: But will it fit in my kitchen? The ceiling there is only 50 gallons per square foot.&lt;br /&gt;
&lt;br /&gt;
:[Caption below the panel:]&lt;br /&gt;
:Pet peeve: Uncanceled units&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Pet Peeves]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Math]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362382</id>
		<title>3038: Uncanceled Units</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362382"/>
				<updated>2025-01-17T01:06:34Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Undo revision 362344 by Regex user (talk). Joule is an SI unit. Further reducing to the 7 base SI units (using E=mc^2) is out of scope, and is always ridiculous. (And it doesn't cancel more.)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 3038&lt;br /&gt;
| date      = January 15, 2025&lt;br /&gt;
| title     = Uncanceled Units&lt;br /&gt;
| image     = uncanceled_units_2x.png&lt;br /&gt;
| imagesize = 323x355px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Speed limit c arcminutes^2 per steradian&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by THE HUBBLE PARAMETER, WHICH I HAD INCORRECTLY REFERRED TO AS THE PLANCK CONSTANT (PLS FORGIVE THIS BOT) - Please continue to explain the joke and possible interpretations. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
Another of [[Randall]]'s [[:Category:Pet Peeves|pet peeves]], this comic expresses disapproval of units that could be mathematically simplified.&lt;br /&gt;
&lt;br /&gt;
[[White Hat]] is presenting a refrigerator to [[Cueball]], saying it uses 3 kWh per day. This is a common and useful way to report power usage. But mathematically, the units can be simplified because there are two time units that cancel each other:&lt;br /&gt;
&lt;br /&gt;
: 3 kWh per day = 3 kW * 1 hour / 1 day = 3 kW * (1 hour / 24 hours) = 0.125 kW = 125 W&lt;br /&gt;
&lt;br /&gt;
This gives the average power usage in {{w|watts}} (a unit for the rate of energy transfer, equal to 1 {{w|joule}} per second). Alternatively, one could convert it to 3 kWh * 3600 kJ / kWh = 10800 kJ / day, as many refrigerators use very different amounts of power throughout a day.&lt;br /&gt;
&lt;br /&gt;
The reason people would use &amp;quot;kWh / day&amp;quot; without simplifying the unit is that kWh is a commonly used unit for energy, and it's often viewed as a base unit even though it's composite (1 kWh is the amount of energy consumed by one kilowatt of power usage over one hour, and is equal to 1 kJ/s * 1 h = 3600 kJ). It's the unit in which energy consumption is typically reported and in which bills are calculated, so it's more familiar to the average consumer than kJ and megajoule (MJ), and giving the power usage in kWh / day makes it easier for the consumer to understand how much money it will cost them to run per day. But mathematically, &amp;quot;kWh / day&amp;quot; is inelegant, because it uses power (which is already a measure of energy per time) multiplied by a time unit then divided by another time unit.&lt;br /&gt;
&lt;br /&gt;
Cueball (probably representing Randall) sardonically wonders whether the refrigerator would fit in his kitchen, since the ceiling is only 50 gallons per square foot high. This is clearly an abnormal and unhelpful way of reporting height. This unit turns a normal measurement of height (feet and inches in the US; meters and centimeters most other places) into a weird collection of uncancelled units. Gallons can be transformed to cubic feet (1 US gal = 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;), which can be divided by the square feet, yielding a ceiling height of around 6 feet 8 inches, or 203.7 cm. (Using imperial gallons [1 UK gal ≈ 277.42 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;!--exactly equal to 4.54609 L--&amp;gt;], the height is roughly 8 feet, or approximately 244.7 cm.) This is intended to lampoon the use of both non-metric and uncancelled units by showing how odd things become if they're generally used.&lt;br /&gt;
&lt;br /&gt;
The exact ceiling height in feet, assuming the US gallon is used, can be calculated as:&lt;br /&gt;
&lt;br /&gt;
: 50 gallons per square foot = 50 gal * 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;/gal * (1/12 ft/in)&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; / 1 ft&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 6.68402777... ft&lt;br /&gt;
&lt;br /&gt;
''[[what if? (blog)|what if?]]'': [https://what-if.xkcd.com/11/ Droppings] also covers strange instances of unit cancellation, including a measure of volume per distance converted to area; similar to Cueball's measure of volume per area representing a distance (the height of his ceiling).&amp;lt;!-- This may not be relevant enough to keep --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common source of unit drama occurs between lay people who are looking for every day practicality and science/engineering types who are inclined towards formalized mathematical operations. For example U.S. customary units which support many divisibility rules (1 foot = 12 inches; 1 inch = 72 points = 1440 twips; 3 feet = 1 yard; 2 yards = 1 fathom; 22 yards = 1 chain; 10 chains = 1 furlong; 1 mile = 5280 feet; 1 league = 3 miles) versus metric units which prioritize base 10 scales. In this case, telling the average customer the energy use in joules per day or average consumption in watts would require them to perform more complicated conversions to get to the figure they actually care about — the actual cost per day. White Hat could just give this cost figure directly, but does not know what every customer pays for electricity (an explicit yearly cost estimate would be included on the government required energy efficiency label).&lt;br /&gt;
&lt;br /&gt;
In the title text, a speed limit is given as c arcminutes&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; per steradian, where c is presumably the speed of light in vacuum — 2.998×10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; m/s (meters per second) or 186282 mi/s (miles per second). A steradian (sr) is the SI unit for solid angle, subtended by a section of a sphere (like a radian is a unit of angle subtended by a section of a circle). A square arcminute is also a unit of solid angle, equivalent to a section of a sphere of 1/60 of a degree by 1/60 of a degree. There are ((1/60)*(π/180))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 8.462×10&amp;lt;sup&amp;gt;-8&amp;lt;/sup&amp;gt; sr in a square arcminute. Then multiplying by c gives a speed of 56.75 mph (probably 55 mph, based upon the {{w|National Maximum Speed Law|'traditional' US speed limit}}, before rounding errors in the reverse direction), or 91.33 km/h, showing that you can combine an outrageously high speed with two unnecessary units that cancel each other to form a normal road speed.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that, although some of these examples are ridiculous, there are cases where uncancelled units can be helpful to understanding the concept. For example, while the {{w|Hubble's law|Hubble Parameter}} can be expressed as 2.17132212×10&amp;lt;sup&amp;gt;-18&amp;lt;/sup&amp;gt; hertz, expressing it as 67 km/s/Mpc directly relates the quantity to how it is measured and its natural interpretation. Another example would be fuel efficiency in cars, where mi/gal and km/l technically simplify to 1/area, but expressing it in volume and distance allows easy estimations of range and travel cost, while mm&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; or in&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; would require significant unit conversions.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[White Hat and Cueball are standing to either side of a refrigerator. White Hat is lifting one hand up to touch the side of the fridge. The fridge has two compartments, with two doors that open to the top compartment and one bottom compartment, a drawer. The top left compartment has a tall handle on its right, the top right compartment has a tall handle on its left, and the bottom compartment has a long handle on its top. The top left compartment has an oval shape on the top and a paper attached, both with unreadable text. There is also a small square note in the top right corner and an oval shape on the side of the fridge above White Hat. These also have unreadable text.]&lt;br /&gt;
:White Hat: This fridge uses only 3 kWh per day!&lt;br /&gt;
:Cueball: But will it fit in my kitchen? The ceiling there is only 50 gallons per square foot.&lt;br /&gt;
&lt;br /&gt;
:[Caption below the panel:]&lt;br /&gt;
:Pet peeve: Uncanceled units&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Pet Peeves]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Math]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362380</id>
		<title>3038: Uncanceled Units</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362380"/>
				<updated>2025-01-17T00:59:54Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: fix typos (properly this time)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 3038&lt;br /&gt;
| date      = January 15, 2025&lt;br /&gt;
| title     = Uncanceled Units&lt;br /&gt;
| image     = uncanceled_units_2x.png&lt;br /&gt;
| imagesize = 323x355px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Speed limit c arcminutes^2 per steradian&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by THE HUBBLE PARAMETER, WHICH I HAD INCORRECTLY REFERRED TO AS THE PLANCK CONSTANT (PLS FORGIVE THIS BOT) - Please continue to explain the joke and possible interpretations. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
Another of [[Randall]]'s [[:Category:Pet Peeves|pet peeves]], this comic expresses disapproval of units that could be mathematically simplified.&lt;br /&gt;
&lt;br /&gt;
[[White Hat]] is presenting a refrigerator to [[Cueball]], saying it uses 3 kWh per day. This is a common and useful way to report power usage. But mathematically, the units can be simplified because there are two time units that cancel each other:&lt;br /&gt;
&lt;br /&gt;
: 3 kWh per day = 3 kW * 1 hour / 1 day = 3 kW * (1 hour / 24 hours) = 0.125 kW = 125 W&lt;br /&gt;
&lt;br /&gt;
This gives the average power usage in {{w|watts}} (a unit for the rate of energy transfer, equal to 1 {{w|joule}} per second). Alternatively, one could convert it to 3 kWh * 3600 kJ / kWh = 10800 kJ / day, as many refrigerators use very different amounts of power throughout a day.&lt;br /&gt;
&lt;br /&gt;
The reason people would use &amp;quot;kWh / day&amp;quot; without simplifying the unit is that kWh is a commonly used unit for energy, and it's often viewed as a base unit even though it's composite (1 kWh is the amount of energy consumed by one kilowatt of power usage over one hour, and is equal to 1 kJ/s * 1 h = 3600 kJ). It's the unit in which energy consumption is typically reported and in which bills are calculated, so it's more familiar to the average consumer than kJ and megajoule (MJ), and giving the power usage in kWh / day makes it easier for the consumer to understand how much money it will cost them to run per day. But mathematically, &amp;quot;kWh / day&amp;quot; is inelegant, because it uses power (which is already a measure of energy per time) multiplied by a time unit then divided by another time unit. This gets increasingly ridiculous if you reduce all the way down to the seven base quantities, resulting in: mass times length squared over time squared, per time, times time, per time.&lt;br /&gt;
&lt;br /&gt;
Cueball (probably representing Randall) sardonically wonders whether the refrigerator would fit in his kitchen, since the ceiling is only 50 gallons per square foot high. This is clearly an abnormal and unhelpful way of reporting height. This unit turns a normal measurement of height (feet and inches in the US; meters and centimeters most other places) into a weird collection of uncancelled units. Gallons can be transformed to cubic feet (1 US gal = 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;), which can be divided by the square feet, yielding a ceiling height of around 6 feet 8 inches, or 203.7 cm. (Using imperial gallons [1 UK gal ≈ 277.42 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;!--exactly equal to 4.54609 L--&amp;gt;], the height is roughly 8 feet, or approximately 244.7 cm.) This is intended to lampoon the use of both non-metric and uncancelled units by showing how odd things become if they're generally used.&lt;br /&gt;
&lt;br /&gt;
The exact ceiling height in feet, assuming the US gallon is used, can be calculated as:&lt;br /&gt;
&lt;br /&gt;
: 50 gallons per square foot = 50 gal * 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;/gal * (1/12 ft/in)&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; / 1 ft&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 6.68402777... ft&lt;br /&gt;
&lt;br /&gt;
''[[what if? (blog)|what if?]]'': [https://what-if.xkcd.com/11/ Droppings] also covers strange instances of unit cancellation, including a measure of volume per distance converted to area; similar to Cueball's measure of volume per area representing a distance (the height of his ceiling).&amp;lt;!-- This may not be relevant enough to keep --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common source of unit drama occurs between lay people who are looking for every day practicality and science/engineering types who are inclined towards formalized mathematical operations. For example U.S. customary units which support many divisibility rules (1 foot = 12 inches; 1 inch = 72 points = 1440 twips; 3 feet = 1 yard; 2 yards = 1 fathom; 22 yards = 1 chain; 10 chains = 1 furlong; 1 mile = 5280 feet; 1 league = 3 miles) versus metric units which prioritize base 10 scales. In this case, telling the average customer the energy use in joules per day or average consumption in watts would require them to perform more complicated conversions to get to the figure they actually care about — the actual cost per day. White Hat could just give this cost figure directly, but does not know what every customer pays for electricity (an explicit yearly cost estimate would be included on the government required energy efficiency label).&lt;br /&gt;
&lt;br /&gt;
In the title text, a speed limit is given as c arcminutes&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; per steradian, where c is presumably the speed of light in vacuum — 2.998×10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; m/s (meters per second) or 186282 mi/s (miles per second). A steradian (sr) is the SI unit for solid angle, subtended by a section of a sphere (like a radian is a unit of angle subtended by a section of a circle). A square arcminute is also a unit of solid angle, equivalent to a section of a sphere of 1/60 of a degree by 1/60 of a degree. There are ((1/60)*(π/180))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 8.462×10&amp;lt;sup&amp;gt;-8&amp;lt;/sup&amp;gt; sr in a square arcminute. Then multiplying by c gives a speed of 56.75 mph (probably 55 mph, based upon the {{w|National Maximum Speed Law|'traditional' US speed limit}}, before rounding errors in the reverse direction), or 91.33 km/h, showing that you can combine an outrageously high speed with two unnecessary units that cancel each other to form a normal road speed.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that, although some of these examples are ridiculous, there are cases where uncancelled units can be helpful to understanding the concept. For example, while the {{w|Hubble's law|Hubble Parameter}} can be expressed as 2.17132212×10&amp;lt;sup&amp;gt;-18&amp;lt;/sup&amp;gt; hertz, expressing it as 67 km/s/Mpc directly relates the quantity to how it is measured and its natural interpretation. Another example would be fuel efficiency in cars, where mi/gal and km/l technically simplify to 1/area, but expressing it in volume and distance allows easy estimations of range and travel cost, while mm&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; or in&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; would require significant unit conversions.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[White Hat and Cueball are standing to either side of a refrigerator. White Hat is lifting one hand up to touch the side of the fridge. The fridge has two compartments, with two doors that open to the top compartment and one bottom compartment, a drawer. The top left compartment has a tall handle on its right, the top right compartment has a tall handle on its left, and the bottom compartment has a long handle on its top. The top left compartment has an oval shape on the top and a paper attached, both with unreadable text. There is also a small square note in the top right corner and an oval shape on the side of the fridge above White Hat. These also have unreadable text.]&lt;br /&gt;
:White Hat: This fridge uses only 3 kWh per day!&lt;br /&gt;
:Cueball: But will it fit in my kitchen? The ceiling there is only 50 gallons per square foot.&lt;br /&gt;
&lt;br /&gt;
:[Caption below the panel:]&lt;br /&gt;
:Pet peeve: Uncanceled units&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Pet Peeves]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Math]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362379</id>
		<title>3038: Uncanceled Units</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362379"/>
				<updated>2025-01-17T00:59:11Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Undo revision 362378 by Hddqsb (talk). I accidentally rolled back to an old version.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 3038&lt;br /&gt;
| date      = January 15, 2025&lt;br /&gt;
| title     = Uncanceled Units&lt;br /&gt;
| image     = uncanceled_units_2x.png&lt;br /&gt;
| imagesize = 323x355px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Speed limit c arcminutes^2 per steradian&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by THE HUBBLE PARAMETER, WHICH I HAD INCORRECTLY REFERRED TO AS THE PLANCK CONSTANT (PLS FORGIVE THIS BOT) - Please continue to explain the joke and possible interpretations. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
Another of [[Randall]]'s [[:Category:Pet Peeves|pet peeves]], this comic expresses disapproval of units that could be mathematically simplified.&lt;br /&gt;
&lt;br /&gt;
[[White Hat]] is presenting a refrigerator to [[Cueball]], saying it uses 3 kWh per day. This is a common and useful way to report power usage. But mathematically, the units can be simplified because there are two time units that cancel each other:&lt;br /&gt;
&lt;br /&gt;
: 3 kWh per day = 3 kW * 1 hour / 1 day = 3 kW * (1 hour / 24 hours) = 0.125 kW = 125 W&lt;br /&gt;
&lt;br /&gt;
This gives the average power usage in {{w|watts}} (a unit for the rate of energy transfer, equal to 1 {{w|joule}} per second). Alternatively, one could convert it to 3 kWh * 3600 kJ / kWh = 10800 kJ / day, as many refrigerators use very different amounts of power throughout a day.&lt;br /&gt;
&lt;br /&gt;
The reason people would use &amp;quot;kWh / day&amp;quot; without simplifying the unit is that kWh is a commonly used unit for energy, and it's often viewed as a base unit even though it's composite (1 kWh is the amount of energy consumed by one kilowatt of power usage over one hour, and is equal to 1 kJ/s * 1 h = 3600 kJ). It's the unit in which energy consumption is typically reported and in which bills are calculated, so it's more familiar to the average consumer than kJ and megajoule (MJ), and giving the power usage in kWh / day makes it easier for the consumer to understand how much money it will cost them to run per day. But mathematically, &amp;quot;kWh / day&amp;quot; is inelegant, because it uses power (which is already a measure of energy per time) multiplied by a time unit then divided by another time unit. This gets increasingly ridiculous if you reduce all the way down to the seven base quantities, resulting in: mass times length squared over time squared, per time, times time, per time.&lt;br /&gt;
&lt;br /&gt;
Cueball (probably representing Randall) sardonically wonders whether the refrigerator would fit in his kitchen, since the ceiling is only 50 gallons per square foot high. This is clearly an abnormal and unhelpful way of reporting height. This unit turns a normal measurement of height (feet and inches in the US; meters and centimeters most other places) into a weird collection of uncancelled units. Gallons can be transformed to cubic feet (1 US gal = 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;), which can be divided by the square feet, yielding a ceiling height of around 6 feet 8 inches, or 203.7 cm. (Using imperial gallons [1 UK gal ≈ 277.42 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;!--exactly equal to 4.54609 L--&amp;gt;], the height is roughly 8 feet, or approximately 244.7 cm.) This is intended to lampoon the use of both non-metric and uncancelled units by showing how odd things become if they're generally used.&lt;br /&gt;
&lt;br /&gt;
The exact ceiling height in feet, assuming the US gallon is used, can be calculated as:&lt;br /&gt;
&lt;br /&gt;
: 50 gallons per square foot = 50 gal * 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;/gal * (1/12 ft/in)&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; / 1 ft&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 6.68402777... ft&lt;br /&gt;
&lt;br /&gt;
''[[what if? (blog)|what if?]]'': [https://what-if.xkcd.com/11/ Droppings] also covers strange instances of unit cancellation, including a measure of volume per distance converted to area; similar to Cueball's measure of volume per area representing a distance (the height of his ceiling).&amp;lt;!-- This may not be relevant enough to keep --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common source of unit drama occurs between lay people who are looking for every day practicality and science/engineering types who are inclined towards formalized mathematical operations. For example U.S. customary units which support many divisibility rules (1 foot = 12 inches; 1 inch = 72 points = 1440 twips; 3 feet = 1 yard; 2 yards = 1 fathom; 22 yards = 1 chain; 10 chains = 1 furlong; 1 mile = 5280 feet; 1 league = 3 miles) versus metric units which prioritize base 10 scales. In this case, telling the average customer the energy use in joules per day or average consumption in watts would require them to perform more complicated conversions to get to the figure they actually care about — the actual cost per day. White Hat could just give this cost figure directly, but does not know what every customer pays for electricity (an explicit yearly cost estimate would be included on the government required energy efficiency label).&lt;br /&gt;
&lt;br /&gt;
In the title text, a speed limit is given as c arcminutes&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; per steradian, where c is presumably the speed of light in vacuum — 2.998×10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; m/s (meters per second) or 186282 mi/s (miles per second). A steradian (sr) is the SI unit for solid angle, subtended by a section of a sphere (like a radian is a unit of angle subtended by a section of a circle). A square arcminute is also a unit of solid angle, equivalent to a section of a sphere of 1/60 of a degree by 1/60 of a degree. There are ((1/60)*(π/180))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 8.462×10&amp;lt;sup&amp;gt;-8&amp;lt;/sup&amp;gt; sr in a square arcminute. Then multiplying by c gives a speed of 56.75 mph (probably 55 mph, based upon the {{w|National Maximum Speed Law|'traditional' US speed limit}}, before rounding errors in the reverse direction), or 91.33 km/h, showing that you can combine an outrageously high speed with two unnecessary units that cancel each other to form a normal road speed.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that, although some of these examples are ridiculous, there are cases where uncancelled units can be helpful to understanding the concept. For example, while the {{w|Hubble's law|Hubble Parameter}} can be expressed as 2.17132212×10&amp;lt;sup&amp;gt;-18&amp;lt;/sup&amp;gt; hertz, expressing it as 67 km/s/Mpc directly relates the quantity to how it is measured and its natural interpretation. Another example would be fuel efficiency in cars, where mi/gal and km/l technically simplify to 1/area, but expressing it in volume and distance allows easy estimations of range and travel cost, while mm&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; or in&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; would require significant unit conversions.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[White Hat and Cueball are standing to either side of a refrigerator. White hat is lifting on hand up to touch the side of the fridge. The fridge has two compartments, with two doors that open to the top compartment and one bottom compartment, a drawer. The top left compartment has a tall handle on its right, the top right compartment has a tall handle on its left, and the bottom compartment has a long handle on its top. The top left compartment has an oval shape on the top and a paper attached, both with unreadable text. There is also a small square note in the top right corner and an oval shape on the side of the fridge above White Hat. These also have unreadable text.]&lt;br /&gt;
:White Hat: This fridge uses only 3 kWh per day!&lt;br /&gt;
:Cueball: But will it fit in my kitchen? The ceiling there is only 50 gallons per square foot.&lt;br /&gt;
&lt;br /&gt;
:[Caption below the panel:]&lt;br /&gt;
:Pet peeve: Uncanceled units&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Pet Peeves]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Math]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362378</id>
		<title>3038: Uncanceled Units</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362378"/>
				<updated>2025-01-17T00:58:24Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: fix typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 3038&lt;br /&gt;
| date      = January 15, 2025&lt;br /&gt;
| title     = Uncanceled Units&lt;br /&gt;
| image     = uncanceled_units_2x.png&lt;br /&gt;
| imagesize = 323x355px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Speed limit c arcminutes^2 per steradian&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by THE HUBBLE PARAMETER, WHICH I HAD INCORRECTLY REFERRED TO AS THE PLANCK CONSTANT (PLS FORGIVE THIS BOT) - Please continue to explain the joke and possible interpretations. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
Another of [[Randall]]'s [[:Category:Pet Peeves|pet peeves]], this comic expresses disapproval of units that could be mathematically simplified.&lt;br /&gt;
&lt;br /&gt;
[[White Hat]] is presenting a refrigerator to [[Cueball]], saying it uses 3 kWh per day. This is a common and useful way to report power usage. But mathematically, the units can be simplified: 3 kWh per day = 3 kW * hour / day = 3 kW * (1 hour / 24 hour) = 0.125 kW = 125 W, giving the average power usage in {{w|watts}} (a unit for the rate of energy transfer, equal to 1 {{w|joule}} per second). Alternatively, one could convert it to 3 kWh * 3600 kJ / kWh = 10800 kJ / day, as many refrigerators use very different amounts of power throughout a day.&lt;br /&gt;
&lt;br /&gt;
The reason people would use &amp;quot;kWh / day&amp;quot; without simplifying the unit is that kWh is a commonly used unit for energy, and it's often viewed as a base unit even though it's composite (1 kWh is the amount of energy consumed by one kilowatt of power usage over one hour, and is equal to 1 kJ/s * 1 h = 3600 kJ). It's the unit in which energy consumption is typically reported and in which bills are calculated, so it's more familiar to the average consumer than kJ and megajoule (MJ), and giving the power usage in kWh / day makes it easier for the consumer to understand how much money it will cost them to run per day. But mathematically, &amp;quot;kWh / day&amp;quot; is inelegant, because it uses power (which is already a measure of energy per time) multiplied by a time unit then divided by another time unit. This gets increasingly ridiculous if you reduce all the way down to the seven base quantities, resulting in: mass times length squared over time squared, per time, times time, per time.&lt;br /&gt;
&lt;br /&gt;
Cueball (probably representing Randall) sardonically wonders whether the refrigerator would fit in his kitchen, since the ceiling is only 50 gallons per square foot high. This is clearly an abnormal and unhelpful way of reporting height. This unit turns a normal measurement of height (feet and inches in the US; meters and centimeters most other places) into a weird collection of uncancelled units. Gallons can be transformed to cubic feet (1 US gal ≈ 0.1337 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;), which can be divided by the square feet, yielding a ceiling height of around 6 feet 8 inches, or 203.7 cm. (Using imperial gallons [1 UK gal ≈ 0.1605 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;], the height is roughly 8 feet, or approximately 244.7 cm.) This is intended to lampoon the use of both non-metric and uncancelled units by showing how odd things become if they're generally used. &lt;br /&gt;
&lt;br /&gt;
''[[what if? (blog)|what if?]]'': [https://what-if.xkcd.com/11/ Droppings] also covers strange instances of unit cancellation, including a measure of volume per distance converted to area; similar to Cueball's measure of volume per area representing a distance (the height of his ceiling).&amp;lt;!-- This may not be relevant enough to keep --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common source of unit drama occurs between lay people who are looking for every day practicality and science/engineering types who are inclined towards formalized mathematical operations. For example U.S. customary units which support many divisibility rules (1 foot = 12 inches; 1 inch = 72 points = 1440 twips; 3 feet = 1 yard; 2 yards = 1 fathom; 22 yards = 1 chain; 10 chains = 1 furlong; 1 mile = 5280 feet; 1 league = 3 miles) versus metric units which prioritize base 10 scales. In this case, telling the average customer the energy use in joules per day or average consumption in watts would require them to perform more complicated conversions to get to the figure they actually care about — the actual cost per day. White Hat could just give this cost figure directly, but does not know what every customer pays for electricity (an explicit yearly cost estimate would be included on the government required energy efficiency label).&lt;br /&gt;
&lt;br /&gt;
In the title text, a speed limit is given as c arcminutes&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; per steradian, where c is presumably the speed of light in vacuum — 2.998×10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; m/s (meters per second) or 186282 mi/s (miles per second). A steradian (sr) is the SI unit for solid angle, subtended by a section of a sphere (like a radian is a unit of angle subtended by a section of a circle). A square arcminute is also a unit of solid angle, equivalent to a section of a sphere of 1/60 of a degree by 1/60 of a degree. There are ((1/60)*(π/180))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 8.462×10&amp;lt;sup&amp;gt;-8&amp;lt;/sup&amp;gt; sr in a square arcminute. Then multiplying by c gives a speed of 56.75 mph (probably 55 mph, based upon the {{w|National Maximum Speed Law|'traditional' US speed limit}}, before rounding errors in the reverse direction), or 91.33 km/h, showing that you can combine an outrageously high speed with two unnecessary units that cancel each other to form a normal road speed.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that, although some of these examples are ridiculous, there are cases where uncancelled units can be helpful to understanding the concept. For example, while the {{w|Hubble's law|Hubble Parameter}} can be expressed as 2.17132212×10&amp;lt;sup&amp;gt;-18&amp;lt;/sup&amp;gt; hertz, expressing it as 67 km/s/Mpc directly relates the quantity to how it is measured and its natural interpretation. Another example would be fuel efficiency in cars, where mi/gal and km/l technically simplify to 1/area, but expressing it in volume and distance allows easy estimations of range and travel cost, while mm&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; or in&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; would require significant unit conversions.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[White Hat and Cueball are standing to either side of a refrigerator. White Hat is lifting one hand up to touch the side of the fridge.&lt;br /&gt;
The fridge has two compartments, with two doors that open to the top compartment and one bottom compartment, a drawer. The top left compartment has a tall handle on its right, the top right compartment has a tall handle on its left, and the bottom compartment has a long handle on its top. The top left compartment has an oval shape on the top and a paper attached, both with unreadable text. There is also a small square note in the top right corner and an oval shape on the side of the fridge above White Hat. These also have unreadable text.]&lt;br /&gt;
:White Hat: This fridge uses only 3 kWh per day!&lt;br /&gt;
:Cueball: But will it fit in my kitchen? The ceiling there is only 50 gallons per square foot.&lt;br /&gt;
&lt;br /&gt;
:[Caption below the panel:]&lt;br /&gt;
:Pet peeve: Uncanceled units&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Pet Peeves]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Math]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362377</id>
		<title>3038: Uncanceled Units</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362377"/>
				<updated>2025-01-17T00:56:50Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Undo revision 362361 by Fephisto (talk). &amp;quot;Mathematically simplified&amp;quot; is perfectly clear, the &amp;quot;in other words&amp;quot; is just confusing (and uses uncommon acronyms).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 3038&lt;br /&gt;
| date      = January 15, 2025&lt;br /&gt;
| title     = Uncanceled Units&lt;br /&gt;
| image     = uncanceled_units_2x.png&lt;br /&gt;
| imagesize = 323x355px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Speed limit c arcminutes^2 per steradian&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by THE HUBBLE PARAMETER, WHICH I HAD INCORRECTLY REFERRED TO AS THE PLANCK CONSTANT (PLS FORGIVE THIS BOT) - Please continue to explain the joke and possible interpretations. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
Another of [[Randall]]'s [[:Category:Pet Peeves|pet peeves]], this comic expresses disapproval of units that could be mathematically simplified.&lt;br /&gt;
&lt;br /&gt;
[[White Hat]] is presenting a refrigerator to [[Cueball]], saying it uses 3 kWh per day. This is a common and useful way to report power usage. But mathematically, the units can be simplified because there are two time units that cancel each other:&lt;br /&gt;
&lt;br /&gt;
: 3 kWh per day = 3 kW * 1 hour / 1 day = 3 kW * (1 hour / 24 hours) = 0.125 kW = 125 W&lt;br /&gt;
&lt;br /&gt;
This gives the average power usage in {{w|watts}} (a unit for the rate of energy transfer, equal to 1 {{w|joule}} per second). Alternatively, one could convert it to 3 kWh * 3600 kJ / kWh = 10800 kJ / day, as many refrigerators use very different amounts of power throughout a day.&lt;br /&gt;
&lt;br /&gt;
The reason people would use &amp;quot;kWh / day&amp;quot; without simplifying the unit is that kWh is a commonly used unit for energy, and it's often viewed as a base unit even though it's composite (1 kWh is the amount of energy consumed by one kilowatt of power usage over one hour, and is equal to 1 kJ/s * 1 h = 3600 kJ). It's the unit in which energy consumption is typically reported and in which bills are calculated, so it's more familiar to the average consumer than kJ and megajoule (MJ), and giving the power usage in kWh / day makes it easier for the consumer to understand how much money it will cost them to run per day. But mathematically, &amp;quot;kWh / day&amp;quot; is inelegant, because it uses power (which is already a measure of energy per time) multiplied by a time unit then divided by another time unit. This gets increasingly ridiculous if you reduce all the way down to the seven base quantities, resulting in: mass times length squared over time squared, per time, times time, per time.&lt;br /&gt;
&lt;br /&gt;
Cueball (probably representing Randall) sardonically wonders whether the refrigerator would fit in his kitchen, since the ceiling is only 50 gallons per square foot high. This is clearly an abnormal and unhelpful way of reporting height. This unit turns a normal measurement of height (feet and inches in the US; meters and centimeters most other places) into a weird collection of uncancelled units. Gallons can be transformed to cubic feet (1 US gal = 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;), which can be divided by the square feet, yielding a ceiling height of around 6 feet 8 inches, or 203.7 cm. (Using imperial gallons [1 UK gal ≈ 277.42 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;!--exactly equal to 4.54609 L--&amp;gt;], the height is roughly 8 feet, or approximately 244.7 cm.) This is intended to lampoon the use of both non-metric and uncancelled units by showing how odd things become if they're generally used.&lt;br /&gt;
&lt;br /&gt;
The exact ceiling height in feet, assuming the US gallon is used, can be calculated as:&lt;br /&gt;
&lt;br /&gt;
: 50 gallons per square foot = 50 gal * 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;/gal * (1/12 ft/in)&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; / 1 ft&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 6.68402777... ft&lt;br /&gt;
&lt;br /&gt;
''[[what if? (blog)|what if?]]'': [https://what-if.xkcd.com/11/ Droppings] also covers strange instances of unit cancellation, including a measure of volume per distance converted to area; similar to Cueball's measure of volume per area representing a distance (the height of his ceiling).&amp;lt;!-- This may not be relevant enough to keep --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common source of unit drama occurs between lay people who are looking for every day practicality and science/engineering types who are inclined towards formalized mathematical operations. For example U.S. customary units which support many divisibility rules (1 foot = 12 inches; 1 inch = 72 points = 1440 twips; 3 feet = 1 yard; 2 yards = 1 fathom; 22 yards = 1 chain; 10 chains = 1 furlong; 1 mile = 5280 feet; 1 league = 3 miles) versus metric units which prioritize base 10 scales. In this case, telling the average customer the energy use in joules per day or average consumption in watts would require them to perform more complicated conversions to get to the figure they actually care about — the actual cost per day. White Hat could just give this cost figure directly, but does not know what every customer pays for electricity (an explicit yearly cost estimate would be included on the government required energy efficiency label).&lt;br /&gt;
&lt;br /&gt;
In the title text, a speed limit is given as c arcminutes&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; per steradian, where c is presumably the speed of light in vacuum — 2.998×10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; m/s (meters per second) or 186282 mi/s (miles per second). A steradian (sr) is the SI unit for solid angle, subtended by a section of a sphere (like a radian is a unit of angle subtended by a section of a circle). A square arcminute is also a unit of solid angle, equivalent to a section of a sphere of 1/60 of a degree by 1/60 of a degree. There are ((1/60)*(π/180))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 8.462×10&amp;lt;sup&amp;gt;-8&amp;lt;/sup&amp;gt; sr in a square arcminute. Then multiplying by c gives a speed of 56.75 mph (probably 55 mph, based upon the {{w|National Maximum Speed Law|'traditional' US speed limit}}, before rounding errors in the reverse direction), or 91.33 km/h, showing that you can combine an outrageously high speed with two unnecessary units that cancel each other to form a normal road speed.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that, although some of these examples are ridiculous, there are cases where uncancelled units can be helpful to understanding the concept. For example, while the {{w|Hubble's law|Hubble Parameter}} can be expressed as 2.17132212×10&amp;lt;sup&amp;gt;-18&amp;lt;/sup&amp;gt; hertz, expressing it as 67 km/s/Mpc directly relates the quantity to how it is measured and its natural interpretation. Another example would be fuel efficiency in cars, where mi/gal and km/l technically simplify to 1/area, but expressing it in volume and distance allows easy estimations of range and travel cost, while mm&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; or in&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; would require significant unit conversions.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[White Hat and Cueball are standing to either side of a refrigerator. White hat is lifting on hand up to touch the side of the fridge. The fridge has two compartments, with two doors that open to the top compartment and one bottom compartment, a drawer. The top left compartment has a tall handle on its right, the top right compartment has a tall handle on its left, and the bottom compartment has a long handle on its top. The top left compartment has an oval shape on the top and a paper attached, both with unreadable text. There is also a small square note in the top right corner and an oval shape on the side of the fridge above White Hat. These also have unreadable text.]&lt;br /&gt;
:White Hat: This fridge uses only 3 kWh per day!&lt;br /&gt;
:Cueball: But will it fit in my kitchen? The ceiling there is only 50 gallons per square foot.&lt;br /&gt;
&lt;br /&gt;
:[Caption below the panel:]&lt;br /&gt;
:Pet peeve: Uncanceled units&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Pet Peeves]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Math]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362376</id>
		<title>3038: Uncanceled Units</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362376"/>
				<updated>2025-01-17T00:54:21Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Undo revision 362363 by TheHYPO (talk) and clarify. The (main) joke is that kWh/day has two time units that cancel, not that W is a composite unit that includes a time unit (it's mentioned later).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 3038&lt;br /&gt;
| date      = January 15, 2025&lt;br /&gt;
| title     = Uncanceled Units&lt;br /&gt;
| image     = uncanceled_units_2x.png&lt;br /&gt;
| imagesize = 323x355px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Speed limit c arcminutes^2 per steradian&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by THE HUBBLE PARAMETER, WHICH I HAD INCORRECTLY REFERRED TO AS THE PLANCK CONSTANT (PLS FORGIVE THIS BOT) - Please continue to explain the joke and possible interpretations. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
Another of [[Randall]]'s [[:Category:Pet Peeves|pet peeves]], this comic expresses disapproval of units that could be mathematically simplified (in other words, the 'uncanceled' of the title refers to mathematical cancellation, not cancellation by a body, like how SI supplanted the CGS system with MKS).&lt;br /&gt;
&lt;br /&gt;
[[White Hat]] is presenting a refrigerator to [[Cueball]], saying it uses 3 kWh per day. This is a common and useful way to report power usage. But mathematically, the units can be simplified because there are two time units that cancel each other:&lt;br /&gt;
&lt;br /&gt;
: 3 kWh per day = 3 kW * 1 hour / 1 day = 3 kW * (1 hour / 24 hours) = 0.125 kW = 125 W&lt;br /&gt;
&lt;br /&gt;
This gives the average power usage in {{w|watts}} (a unit for the rate of energy transfer, equal to 1 {{w|joule}} per second). Alternatively, one could convert it to 3 kWh * 3600 kJ / kWh = 10800 kJ / day, as many refrigerators use very different amounts of power throughout a day.&lt;br /&gt;
&lt;br /&gt;
The reason people would use &amp;quot;kWh / day&amp;quot; without simplifying the unit is that kWh is a commonly used unit for energy, and it's often viewed as a base unit even though it's composite (1 kWh is the amount of energy consumed by one kilowatt of power usage over one hour, and is equal to 1 kJ/s * 1 h = 3600 kJ). It's the unit in which energy consumption is typically reported and in which bills are calculated, so it's more familiar to the average consumer than kJ and megajoule (MJ), and giving the power usage in kWh / day makes it easier for the consumer to understand how much money it will cost them to run per day. But mathematically, &amp;quot;kWh / day&amp;quot; is inelegant, because it uses power (which is already a measure of energy per time) multiplied by a time unit then divided by another time unit. This gets increasingly ridiculous if you reduce all the way down to the seven base quantities, resulting in: mass times length squared over time squared, per time, times time, per time.&lt;br /&gt;
&lt;br /&gt;
Cueball (probably representing Randall) sardonically wonders whether the refrigerator would fit in his kitchen, since the ceiling is only 50 gallons per square foot high. This is clearly an abnormal and unhelpful way of reporting height. This unit turns a normal measurement of height (feet and inches in the US; meters and centimeters most other places) into a weird collection of uncancelled units. Gallons can be transformed to cubic feet (1 US gal = 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;), which can be divided by the square feet, yielding a ceiling height of around 6 feet 8 inches, or 203.7 cm. (Using imperial gallons [1 UK gal ≈ 277.42 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;!--exactly equal to 4.54609 L--&amp;gt;], the height is roughly 8 feet, or approximately 244.7 cm.) This is intended to lampoon the use of both non-metric and uncancelled units by showing how odd things become if they're generally used.&lt;br /&gt;
&lt;br /&gt;
The exact ceiling height in feet, assuming the US gallon is used, can be calculated as:&lt;br /&gt;
&lt;br /&gt;
: 50 gallons per square foot = 50 gal * 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;/gal * (1/12 ft/in)&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; / 1 ft&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 6.68402777... ft&lt;br /&gt;
&lt;br /&gt;
''[[what if? (blog)|what if?]]'': [https://what-if.xkcd.com/11/ Droppings] also covers strange instances of unit cancellation, including a measure of volume per distance converted to area; similar to Cueball's measure of volume per area representing a distance (the height of his ceiling).&amp;lt;!-- This may not be relevant enough to keep --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common source of unit drama occurs between lay people who are looking for every day practicality and science/engineering types who are inclined towards formalized mathematical operations. For example U.S. customary units which support many divisibility rules (1 foot = 12 inches; 1 inch = 72 points = 1440 twips; 3 feet = 1 yard; 2 yards = 1 fathom; 22 yards = 1 chain; 10 chains = 1 furlong; 1 mile = 5280 feet; 1 league = 3 miles) versus metric units which prioritize base 10 scales. In this case, telling the average customer the energy use in joules per day or average consumption in watts would require them to perform more complicated conversions to get to the figure they actually care about — the actual cost per day. White Hat could just give this cost figure directly, but does not know what every customer pays for electricity (an explicit yearly cost estimate would be included on the government required energy efficiency label).&lt;br /&gt;
&lt;br /&gt;
In the title text, a speed limit is given as c arcminutes&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; per steradian, where c is presumably the speed of light in vacuum — 2.998×10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; m/s (meters per second) or 186282 mi/s (miles per second). A steradian (sr) is the SI unit for solid angle, subtended by a section of a sphere (like a radian is a unit of angle subtended by a section of a circle). A square arcminute is also a unit of solid angle, equivalent to a section of a sphere of 1/60 of a degree by 1/60 of a degree. There are ((1/60)*(π/180))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 8.462×10&amp;lt;sup&amp;gt;-8&amp;lt;/sup&amp;gt; sr in a square arcminute. Then multiplying by c gives a speed of 56.75 mph (probably 55 mph, based upon the {{w|National Maximum Speed Law|'traditional' US speed limit}}, before rounding errors in the reverse direction), or 91.33 km/h, showing that you can combine an outrageously high speed with two unnecessary units that cancel each other to form a normal road speed.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that, although some of these examples are ridiculous, there are cases where uncancelled units can be helpful to understanding the concept. For example, while the {{w|Hubble's law|Hubble Parameter}} can be expressed as 2.17132212×10&amp;lt;sup&amp;gt;-18&amp;lt;/sup&amp;gt; hertz, expressing it as 67 km/s/Mpc directly relates the quantity to how it is measured and its natural interpretation. Another example would be fuel efficiency in cars, where mi/gal and km/l technically simplify to 1/area, but expressing it in volume and distance allows easy estimations of range and travel cost, while mm&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; or in&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; would require significant unit conversions.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[White Hat and Cueball are standing to either side of a refrigerator. White hat is lifting on hand up to touch the side of the fridge. The fridge has two compartments, with two doors that open to the top compartment and one bottom compartment, a drawer. The top left compartment has a tall handle on its right, the top right compartment has a tall handle on its left, and the bottom compartment has a long handle on its top. The top left compartment has an oval shape on the top and a paper attached, both with unreadable text. There is also a small square note in the top right corner and an oval shape on the side of the fridge above White Hat. These also have unreadable text.]&lt;br /&gt;
:White Hat: This fridge uses only 3 kWh per day!&lt;br /&gt;
:Cueball: But will it fit in my kitchen? The ceiling there is only 50 gallons per square foot.&lt;br /&gt;
&lt;br /&gt;
:[Caption below the panel:]&lt;br /&gt;
:Pet peeve: Uncanceled units&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Pet Peeves]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Math]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362373</id>
		<title>3038: Uncanceled Units</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362373"/>
				<updated>2025-01-17T00:41:35Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Undo revision 362364 by TheHYPO (talk). The examples I found only report kWh/year, not W. And we have to be careful because a power rating might be for the maximum, while 125W is the average.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 3038&lt;br /&gt;
| date      = January 15, 2025&lt;br /&gt;
| title     = Uncanceled Units&lt;br /&gt;
| image     = uncanceled_units_2x.png&lt;br /&gt;
| imagesize = 323x355px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Speed limit c arcminutes^2 per steradian&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by THE HUBBLE PARAMETER, WHICH I HAD INCORRECTLY REFERRED TO AS THE PLANCK CONSTANT (PLS FORGIVE THIS BOT) - Please continue to explain the joke and possible interpretations. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
Another of [[Randall]]'s [[:Category:Pet Peeves|pet peeves]], this comic expresses disapproval of units that could be mathematically simplified (in other words, the 'uncanceled' of the title refers to mathematical cancellation, not cancellation by a body, like how SI supplanted the CGS system with MKS).&lt;br /&gt;
&lt;br /&gt;
[[White Hat]] is presenting a refrigerator to [[Cueball]], saying it uses 3 kWh per day. This is a common and useful way to report power usage. But mathematically, the units can be simplified because {{w|watts}} themselves are already a unit for the 'rate' of energy transfer with a time component, equal to 1 {{w|joule}} per second:&lt;br /&gt;
&lt;br /&gt;
: 3 kWh per day = 3 kW * 1 hour / 1 day = 3 kW * (1 hour / 24 hours) = 0.125 kW = 125 W&lt;br /&gt;
&lt;br /&gt;
Since Watts are already a measure of rate, we can also substitute as:&lt;br /&gt;
&lt;br /&gt;
: 0.125 kW = 0.125 kJ / 1 second&lt;br /&gt;
&lt;br /&gt;
And to get a daily rate, multiply by 86400 (60 seconds * 60 minutes * 24 hours) to get 10800 kJ of energy used per day.&lt;br /&gt;
&lt;br /&gt;
The reason people would use &amp;quot;kWh / day&amp;quot; without simplifying the unit is that kWh is a commonly used unit for energy, and it's often viewed as a base unit even though it's composite (1 kWh is the amount of energy consumed by one kilowatt of power usage over one hour, and is equal to 1 kJ/s * 1 h = 3600 kJ). It's the unit in which energy consumption is typically reported and in which bills are calculated, so it's more familiar to the average consumer than kJ and megajoule (MJ), and giving the power usage in kWh / day makes it easier for the consumer to understand how much money it will cost them to run per day. But mathematically, &amp;quot;kWh / day&amp;quot; is inelegant, because it uses power (which is already a measure of energy per time) multiplied by a time unit then divided by another time unit. This gets increasingly ridiculous if you reduce all the way down to the seven base quantities, resulting in: mass times length squared over time squared, per time, times time, per time.&lt;br /&gt;
&lt;br /&gt;
Cueball (probably representing Randall) sardonically wonders whether the refrigerator would fit in his kitchen, since the ceiling is only 50 gallons per square foot high. This is clearly an abnormal and unhelpful way of reporting height. This unit turns a normal measurement of height (feet and inches in the US; meters and centimeters most other places) into a weird collection of uncancelled units. Gallons can be transformed to cubic feet (1 US gal = 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;), which can be divided by the square feet, yielding a ceiling height of around 6 feet 8 inches, or 203.7 cm. (Using imperial gallons [1 UK gal ≈ 277.42 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&amp;lt;!--exactly equal to 4.54609 L--&amp;gt;], the height is roughly 8 feet, or approximately 244.7 cm.) This is intended to lampoon the use of both non-metric and uncancelled units by showing how odd things become if they're generally used.&lt;br /&gt;
&lt;br /&gt;
The exact ceiling height in feet, assuming the US gallon is used, can be calculated as:&lt;br /&gt;
&lt;br /&gt;
: 50 gallons per square foot = 50 gal * 231 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;/gal * (1/12 ft/in)&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; / 1 ft&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 6.68402777... ft&lt;br /&gt;
&lt;br /&gt;
''[[what if? (blog)|what if?]]'': [https://what-if.xkcd.com/11/ Droppings] also covers strange instances of unit cancellation, including a measure of volume per distance converted to area; similar to Cueball's measure of volume per area representing a distance (the height of his ceiling).&amp;lt;!-- This may not be relevant enough to keep --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common source of unit drama occurs between lay people who are looking for every day practicality and science/engineering types who are inclined towards formalized mathematical operations. For example U.S. customary units which support many divisibility rules (1 foot = 12 inches; 1 inch = 72 points = 1440 twips; 3 feet = 1 yard; 2 yards = 1 fathom; 22 yards = 1 chain; 10 chains = 1 furlong; 1 mile = 5280 feet; 1 league = 3 miles) versus metric units which prioritize base 10 scales. In this case, telling the average customer the energy use in joules per day or average consumption in watts would require them to perform more complicated conversions to get to the figure they actually care about — the actual cost per day. White Hat could just give this cost figure directly, but does not know what every customer pays for electricity (an explicit yearly cost estimate would be included on the government required energy efficiency label).&lt;br /&gt;
&lt;br /&gt;
In the title text, a speed limit is given as c arcminutes&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; per steradian, where c is presumably the speed of light in vacuum — 2.998×10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; m/s (meters per second) or 186282 mi/s (miles per second). A steradian (sr) is the SI unit for solid angle, subtended by a section of a sphere (like a radian is a unit of angle subtended by a section of a circle). A square arcminute is also a unit of solid angle, equivalent to a section of a sphere of 1/60 of a degree by 1/60 of a degree. There are ((1/60)*(π/180))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 8.462×10&amp;lt;sup&amp;gt;-8&amp;lt;/sup&amp;gt; sr in a square arcminute. Then multiplying by c gives a speed of 56.75 mph (probably 55 mph, based upon the {{w|National Maximum Speed Law|'traditional' US speed limit}}, before rounding errors in the reverse direction), or 91.33 km/h, showing that you can combine an outrageously high speed with two unnecessary units that cancel each other to form a normal road speed.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that, although some of these examples are ridiculous, there are cases where uncancelled units can be helpful to understanding the concept. For example, while the {{w|Hubble's law|Hubble Parameter}} can be expressed as 2.17132212×10&amp;lt;sup&amp;gt;-18&amp;lt;/sup&amp;gt; hertz, expressing it as 67 km/s/Mpc directly relates the quantity to how it is measured and its natural interpretation. Another example would be fuel efficiency in cars, where mi/gal and km/l technically simplify to 1/area, but expressing it in volume and distance allows easy estimations of range and travel cost, while mm&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; or in&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; would require significant unit conversions.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[White Hat and Cueball are standing to either side of a refrigerator. White hat is lifting on hand up to touch the side of the fridge. The fridge has two compartments, with two doors that open to the top compartment and one bottom compartment, a drawer. The top left compartment has a tall handle on its right, the top right compartment has a tall handle on its left, and the bottom compartment has a long handle on its top. The top left compartment has an oval shape on the top and a paper attached, both with unreadable text. There is also a small square note in the top right corner and an oval shape on the side of the fridge above White Hat. These also have unreadable text.]&lt;br /&gt;
:White Hat: This fridge uses only 3 kWh per day!&lt;br /&gt;
:Cueball: But will it fit in my kitchen? The ceiling there is only 50 gallons per square foot.&lt;br /&gt;
&lt;br /&gt;
:[Caption below the panel:]&lt;br /&gt;
:Pet peeve: Uncanceled units&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Pet Peeves]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Math]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362291</id>
		<title>3038: Uncanceled Units</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=3038:_Uncanceled_Units&amp;diff=362291"/>
				<updated>2025-01-16T04:29:26Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Rewrite and simplify main explanation. The joke is that &amp;quot;kW * h / day&amp;quot; has two time units that cancel. The the first long paragraph of the previous explanation completely missed this.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 3038&lt;br /&gt;
| date      = January 15, 2025&lt;br /&gt;
| title     = Uncanceled Units&lt;br /&gt;
| image     = uncanceled_units_2x.png&lt;br /&gt;
| imagesize = 323x355px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Speed limit c arcminutes^2 per steradian&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by THE HUBBLE PARAMETER, WHICH I HAD INCORRECTLY REFERRED TO AS THE PLANCK CONSTANT (PLS FORGIVE THIS BOT) - Please continue to explain the joke and possible interpretations. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
Another of [[Randall]]'s [[:Category:Pet Peeves|pet peeves]], this comic expresses disapproval of units that could be mathematically simplified.&lt;br /&gt;
&lt;br /&gt;
[[White Hat]] is presenting a refrigerator to [[Cueball]], saying it uses 3 kWh per day. This is a common and useful way to report power usage. But mathematically, the units can be simplified: 3 kWh per day = 3 kW * hour / day = 3 kW * (1 hour / 24 hour) = 0.124 kW = 124 W, giving the average power usage in {{w|watts}} (a unit for the rate of energy transfer, equal to 1 {{w|joule}} per second).&lt;br /&gt;
&lt;br /&gt;
The reason people would use &amp;quot;kWh / day&amp;quot; without simplifying the unit is that kWh is a commonly used unit for energy, and it's often viewed as a base unit even though it's composite (1 kWh is the amount of energy consumed by one kilowatt of power usage over one hour, and is equal to 1 kJ/s * 1 h = 3600 kJ). It's the unit in which energy consumption is typically reported and in which bills are calculated, so it's more familiar to the average consumer than kJ and megajoule (MJ), and giving the power usage in kWh / day makes it easier for the consumer to understand how much money it will cost them to run per day. But mathematically, &amp;quot;kWh / day&amp;quot; is inelegant, because it uses power (which is already a measure of energy per time) multiplied by a time unit then divided by another time unit.&lt;br /&gt;
&lt;br /&gt;
Cueball (probably representing Randall) sardonically wonders whether the refrigerator would fit in his kitchen, since the ceiling is only 50 gallons per square foot high. This is clearly an abnormal and unhelpful way of reporting height. This unit turns a normal measurement of height (feet and inches, in the US, meters and centimeters, most other places) into weird collection of uncancelled units. Gallons can be transformed to cubic feet (1 US gal ≈ 0.1337 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;), which can be divided by the square feet, yielding a ceiling height of around 203.7 cm, or around 6 feet 8 inches. (Using imperial gallons [1 UK gal ≈ 0.1605 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;], the height is approximately 244.7 cm, roughly 8 feet.) This is intended to lampoon the use of both non-metric and uncancelled units by showing how odd things become if they're generally used. &lt;br /&gt;
&lt;br /&gt;
''[[what if? (blog)|what if?]]'': [https://what-if.xkcd.com/11/ Droppings] also covers strange instances of unit cancellation, including a measure of volume per distance converted to area; similar to Cueball's measure of volume per area representing a distance (the height of his ceiling).&amp;lt;!-- This may not be relevant enough to keep --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common source of unit drama occurs between lay people who are looking for every day practicality and science/engineering types who are inclined towards formalized mathematical operations. For example U.S. customary units which support many divisibility rules (1 foot = 12 inches; 1 inch = 72 points = 1440 twips; 3 feet = 1 yard; 2 yards = 1 fathom; 22 yards = 1 chain; 10 chains = 1 furlong; 1 mile = 5280 feet; 1 league = 3 miles) versus metric units which prioritize base 10 scales. In this case telling the average customer the energy use in joules per day or average consumption in watts would require them to perform more complicated conversions to get to the figure they actually care about, the actual cost per day. White Hat could just give this cost figure directly, but does not know what every customer pays for electricity (an explicit yearly cost estimate would be included on the government required energy efficiency label).&lt;br /&gt;
&lt;br /&gt;
In the title text, a speed limit is given as c arcminutes&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; per steradian, where c is presumably the speed of light in vacuum, 2.998×10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; m/s (meters per second) or 186282 mi/s (miles per second). A steradian (sr) is the SI unit for solid angle, subtended by a section of a sphere, like a radian is a unit of angle subtended by a section of a circle. A square arcminute is also a unit of solid angle, equivalent to a section of a sphere of 1/60 of a degree by 1/60 of a degree. There are ((1/60)*(π/180))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 8.462×10&amp;lt;sup&amp;gt;-8&amp;lt;/sup&amp;gt; sr in a square arcminute. Then multiplying by c gives a speed of 56.75 mph (probably 55 mph, based upon the {{w|National Maximum Speed Law|'traditional' US speed limit}}, before rounding errors in the reverse direction), or 91.33 km/h, showing that you can combine an outrageously high speed with two unnecessary units that cancel each other to form a normal road speed.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that although some of these examples are ridiculous, uncancelled units can be helpful to better understand the concept, the {{w|Hubble's law|Hubble Parameter}} can be expressed as 2.17132212×10&amp;lt;sup&amp;gt;-18&amp;lt;/sup&amp;gt; hertz, 67 km/s/Mpc is directly related to how it is measured and gives a better understanding of what it means. Another example would be fuel efficiency in cars, as mi/gal and km/l technically simplify to 1/area, but by expressing it in volume and distance it allows easy estimations of range and travel cost, while mm&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; or in&amp;lt;sup&amp;gt;-2&amp;lt;/sup&amp;gt; would require significant unit conversions.{{cn}}&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
:[White Hat and Cueball are standing to either side of a refrigerator. The fridge has two top compartments and one bottom compartment. The top left compartment has a tall handle on its right, the top right compartment has a tall handle on its left, and the bottom compartment has a long handle on its top. The top left compartment has a paper attached to it with unreadable text, possibly an advertisement.]&lt;br /&gt;
:White Hat: This fridge uses only 3 kWh per day!&lt;br /&gt;
:Cueball: But will it fit in my kitchen? The ceiling there is only 50 gallons per square foot.&lt;br /&gt;
&lt;br /&gt;
:[Caption below the panel:]&lt;br /&gt;
:Pet peeve: Uncanceled units&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Math]]&lt;br /&gt;
[[Category:Pet Peeves]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:2848:_Breaker_Box&amp;diff=327559</id>
		<title>Talk:2848: Breaker Box</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:2848:_Breaker_Box&amp;diff=327559"/>
				<updated>2023-11-01T05:01:58Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: edited no friction section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~ and don't delete this text. New comments should be added at the bottom.--&amp;gt;&lt;br /&gt;
added transcript and got to change the name of the thing that created the explanation incomplete tag WOHOOOOoO [[User:Certified_nqh|Me]]&amp;lt;sup&amp;gt;&amp;amp;#91;[[285: Wikipedian Protester|''citation needed'']]&amp;amp;#93;[[Category:Pages using the &amp;quot;citation needed&amp;quot; template]]&amp;lt;/sup&amp;gt; 02:25, 31 October 2023 (UTC)&lt;br /&gt;
: can't help but notice the [[1590]] reference &amp;lt;span style=&amp;quot;font-family: 'Comic Sans MS'&amp;quot;&amp;gt;[[User:SomeoneIGuess|someone, i guess]]&amp;lt;sup&amp;gt;([[User talk:SomeoneIGuess|talk i guess]]&amp;amp;#124;[[Special:Contributions/SomeoneIGuess|le edit list]])&amp;lt;/sup&amp;gt;&amp;lt;/span&amp;gt;  02:43, 31 October 2023 (UTC)&lt;br /&gt;
Added explanation! Simple, but it'll do. How do I sign? [[Special:Contributions/172.69.34.159|172.69.34.159]] 03:42, 31 October 2023 (UTC)&lt;br /&gt;
: four tildes (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) &amp;lt;span style=&amp;quot;font-family: 'Comic Sans MS'&amp;quot;&amp;gt;[[User:SomeoneIGuess|someone, i guess]]&amp;lt;sup&amp;gt;([[User talk:SomeoneIGuess|talk i guess]]&amp;amp;#124;[[Special:Contributions/SomeoneIGuess|le edit list]])&amp;lt;/sup&amp;gt;&amp;lt;/span&amp;gt;  03:08, 31 October 2023 (UTC)&lt;br /&gt;
:: Thanks. I thought that I had tried it earlier and it hadn't worked, but I guess I was wrong. [[Special:Contributions/172.69.34.160|172.69.34.160]] 03:46, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
Just added headers, but not good enough with this stuff to add descriptions. go nuts &amp;lt;span style=&amp;quot;font-family: 'Comic Sans MS'&amp;quot;&amp;gt;[[User:SomeoneIGuess|someone, i guess]]&amp;lt;sup&amp;gt;([[User talk:SomeoneIGuess|talk i guess]]&amp;amp;#124;[[Special:Contributions/SomeoneIGuess|le edit list]])&amp;lt;/sup&amp;gt;&amp;lt;/span&amp;gt;  02:52, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
Got a good laugh out of this one. Does anyone have a guess as to whether the &amp;quot;bugs&amp;quot; at the bottom of the second column refers to computer bugs or insects? Also, some self-referential humor going on at the end there. I guess the breaker box which contains all breakers would indeed contain itself. [[User:Jrfarah|Jrfarah]] ([[User talk:Jrfarah|talk]]) 04:31, 31 October 2023 (UTC)&lt;br /&gt;
: I thought it was some sort of reference to [[2753]] &amp;lt;span style=&amp;quot;font-family: 'Comic Sans MS'&amp;quot;&amp;gt;[[User:SomeoneIGuess|someone, i guess]]&amp;lt;sup&amp;gt;([[User talk:SomeoneIGuess|talk i guess]]&amp;amp;#124;[[Special:Contributions/SomeoneIGuess|le edit list]])&amp;lt;/sup&amp;gt;&amp;lt;/span&amp;gt;  04:58, 31 October 2023 (UTC)&lt;br /&gt;
: It turns off the bunny. [[Special:Contributions/172.69.194.194|172.69.194.194]] 11:27, 31 October 2023 (UTC)&lt;br /&gt;
: Computer bugs switches actually exist. It's a feature in some emulators to either run an unofficial patched version or to stay true to the original system, for example to allow bug-exploit speedruns. [[User:Shirluban|Shirluban]] [[Special:Contributions/172.71.130.70|172.71.130.70]] 13:34, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
So... discussion about &amp;quot;Hot Water Heater&amp;quot; vs. &amp;quot;Regular Water Heater&amp;quot;... I was assuming this was a joke regarding the redundancy of the term &amp;quot;Hot Water Heater&amp;quot; since &amp;quot;Water Heater&amp;quot; is already making the water hot, so why would you need to heat water that's already hot? Similar to RAS Syndrome, I thought Randall was making fun of that, but the explanation has a different idea... which... kind of makes sense? But... I've never seen anything like what is being described. [[User:AdmiralMemo|Admiral Memo]] ([[User talk:AdmiralMemo|talk]]) 05:22, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
Regarding the &amp;quot;one surprise mystery outlet&amp;quot;, I don't think it's necessary to assume it was wired that way by mistake. When extending the wiring in an existing house, it's not always easy to wire up an extra breaker, or use the most logically labelled one, and there may not be a compelling safety reason to do so. For instance, in my parents house, the original sockets are all wired from the floor, and when an extra one was needed for a boiler control, it was easier to run a conduit ''down'' from the floor above; so that particular socket is on the [https://en.wikipedia.org/wiki/Ring_circuit ring] marked &amp;quot;Upstairs Sockets&amp;quot; on the consumer unit. - [[User:IMSoP|IMSoP]] ([[User talk:IMSoP|talk]]) 09:18, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
I read the &amp;quot;state/federal law&amp;quot; switches as ''required'' by said laws. i.e. respective building codes require a &amp;quot;foo switch&amp;quot; always to be installed, whether or not a foo is required, reasonable or even practicable. The switches may be left unlinked to anything that is serviced, or run to the household outlet/power-switch with the label plastered over it saying &amp;quot;don't use for anything but the quarter-inch hoojamaflip grinder&amp;quot; (or whatever it is, in the same sort of manner as &amp;quot;Refrigerator, do ''not'' unplug/turn off!&amp;quot; in a communal kitchen.... [[Special:Contributions/141.101.99.166|141.101.99.166]] 10:09, 31 October 2023 (UTC)&lt;br /&gt;
:Some laws contain &amp;quot;circuit breaker&amp;quot; provisions, where some action is triggered when a condition reaches a threshold. Maybe that's what state/federal law refers to. [[User:Barmar|Barmar]] ([[User talk:Barmar|talk]]) 14:25, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
...in a separate comment, I have a fuse/switch labelled &amp;quot;Do not turn on!&amp;quot; in my house. It was turned on when I moved in, and (barring actually any reason to mess with anything/’get a man in' for any other purpose) I've ''left'' it on. Ditto, for these last six or seven years I've remained ignorant of the purpose of various wall switches (floor-height, one in living room, one at top of stairs, another in a bedroom) that are unlabelled and off (though I ''have'' switched them on... no obvious difference to lighting, alarm system, any other system I can imagine they're wired up into and left it pending some future time when I actually have to do something like strip plaster back and discover which (if any?) run of cable leads from/to them. [[Special:Contributions/141.101.99.166|141.101.99.166]] 10:11, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
I believe that the cryptogram may be an attempt to pun on a &amp;quot;code breaker&amp;quot; as a reference to people who solve ciphers. [[User:Aberdasher|Aberdasher]] ([[User talk:Aberdasher|talk]]) 13:48, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
After reading &amp;quot;Regular Water Heater&amp;quot;, I assumed it was implying that the &amp;quot;Hot Water Heater&amp;quot; was somehow more physically attractive and thus &amp;quot;hotter&amp;quot;. --[[User:Galeindfal|Galeindfal]] ([[User talk:Galeindfal|talk]]) 14:41, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
Depending on interpretation, &amp;quot;North-facing appliances&amp;quot; could make sense. In my house, I have two main breakers, East and West, each covering (almost) everything in one side of the house. [[User:Ehusmark|EHusmark]] ([[User talk:Ehusmark|talk]]) 14:52, 31 October 2023 (UTC)&lt;br /&gt;
:And, contrary to the &amp;quot;how would the system know?&amp;quot;, regarding north-facingness, if you had a ring-main/set of sockets servicing one particular wall (to just one side), there'd be a good chance that anything plugged in there (at least bulky &amp;quot;white goods&amp;quot;, even if not smaller things that you might move and turn, like irons and fans) faces away from that particular wall. [[Special:Contributions/172.70.91.236|172.70.91.236]] 16:54, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
Definite {{w|Celestial Emporium of Benevolent Knowledge|Borges}} vibes from the &amp;quot;appliances that face north&amp;quot;, &amp;quot;appliances whose names begin with the letter 'F'&amp;quot;, &amp;quot;outlets in rooms that it's normal to eat pizza in&amp;quot; section. [[Special:Contributions/172.70.85.50|172.70.85.50]] 17:31, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
Amongst other things, there are problems under the &amp;quot;no friction&amp;quot; section. e.g. You might have a perpetual motion machine that would go forever, but without something else (e.g. the anullment of 3LoT) it couldn't also ''do external work''. And of course you can still hold something with zero friction, if you can sufficiently surround, support and/or impale the thing. [[Special:Contributions/172.70.90.230|172.70.90.230]] 19:24, 31 October 2023 (UTC)&lt;br /&gt;
: I agree. [[Special:Diff/327557|Edited]]. --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 05:01, 1 November 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
So.... em if you turn off causality, would the switch that turned off causality actually reliably turn off causality, given that causality has been disabled? (added something like this as a note about the title text). ([[User:Wowitschris|Wowitschris]] ([[User talk:Wowitschris|talk]]) 19:32, 31 October 2023 (UTC)&lt;br /&gt;
:Worse than that, if you ''need'' to have Causality turned off (for a 'legitimate' reason), there is now no way of preventing anything (including the Causality switch) to be actively toggled. Causaulity could become active again even without any intervention, as well as any number of other effects (of any spontaneous kind whatsoever) for which no cause is now required. [[Special:Contributions/172.69.195.103|172.69.195.103]] 19:53, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;A circuit breaker ...to... protect appliances.&amp;quot;  --- A pedant would say the breaker protects the wires. When the box is specced and installed, the appliances may not have arrived, and are sure subject to replacement. In both the US and GB Codes the breaker size relates to the wire diameter. If an appliance needs greater protection it should have its own fuse/breaker. Some do, though the trend is to appliances which will fail without flame, smoke, or loud noise.&lt;br /&gt;
:It's a chicken-and-egg. If you've got a high-current device to install (e.g. electric cooker) then you'll ...hopefully... make sure it has thick copper cables to its outlet, and also sit it behind a fuse/breaker that will take the power throughput. But you still want your breaker to 'break' if something shortcircuity goes on in the cooker. Even/especially if the supply cables are happily feeding the power to it, or its own local fusepoint, because they're not so tightly toleranced that you end up with a long 'heating element' passing through the kitchen wall as well as on your cooker's hobtop (or in its grill/oven compartment(s)).&lt;br /&gt;
:Overspec the wires, try to tightly spec the current limits on the switches as much as you can anticipate will not ever false-trip. (With the switch from incandescent to LED lighting, many a lighting circuit will now be much further from failure, than designed, but actual ground-faulting will still likely trigger the RCD/whatever.) The aim is to never get so far as a breaking more circuitry than an intrinsic fault has already broken. e.g. motors may burn out, if something jams them, but ideally not spark across to the casing that houses them if they don't suffer direct physical damage. [[Special:Contributions/172.69.195.103|172.69.195.103]] 21:29, 31 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Bathtub drain light&amp;quot; My bathtub drain is plastic pipe. If the lights are off in the bathroom, but on in the cellar, there's a &amp;quot;light in the drain&amp;quot;. No, I don't have a dedicated breaker but that's an idea.....&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Hallway floors&amp;quot; My last house was 1830, so all the electrics were hacked-on. We had a floor outlet in the hall. This used to be more common above a wireable cellar, it avoided snaking the wall.  [[User:PRR|PRR]] ([[User talk:PRR|talk]]) 20:14, 31 October 2023 (UTC)&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2848:_Breaker_Box&amp;diff=327558</id>
		<title>2848: Breaker Box</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2848:_Breaker_Box&amp;diff=327558"/>
				<updated>2023-11-01T04:59:08Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Table of the breakers labels */ there are ways to light a fire without friction; also remove extra line breaks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2848&lt;br /&gt;
| date      = October 30, 2023&lt;br /&gt;
| title     = Breaker Box&lt;br /&gt;
| image     = breaker_box_2x.png&lt;br /&gt;
| imagesize = 560x776px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Any electrician will warn you to first locate and flip the house's CAUSALITY circuit breaker before touching the CIRCUIT BREAKERS one.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a HIGH-PITCHED HUM GENERATOR THAT WAS LAST MENTIONED EXACTLY 1258 COMICS AGO - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
A {{w|distribution board}}, referred to as a &amp;quot;breaker box&amp;quot; here and also commonly referred to as a &amp;quot;fuse box&amp;quot;, &amp;quot;breaker panel&amp;quot;, &amp;quot;DB box&amp;quot;, and many other names, is a metal box attached to a wall inside a building, usually in some maintenance area, containing several {{w|circuit breakers}} that let power through to various parts of the building. A circuit breaker is an electrical switch, usually in the form of a small lever that can be used to manually isolate the electrical connections beyond it from the incoming power supply, but that will also physically trigger open if too much power is flowing through (often due to some grounding fault), to mitigate against dangerous short-circuits that can injure/damage people and appliances, in the most serious cases hopefully preventing fires and even risk of death.&lt;br /&gt;
&lt;br /&gt;
In most breaker boxes, each individual breaker is labeled to let the operator know what that specific breaker controls. A breaker will usually control something like the outlets or lights (perhaps all those in a certain room), or some large appliance which normally draws a large current all on its own.&lt;br /&gt;
&lt;br /&gt;
However, in houses that have been rewired multiple times (or are poorly wired), this can quickly become overcomplicated with seemingly random connections. Randall lives in Boston where much of the housing stock is from the late 1800s or early 1900s, and he is likely to live in a house with non-ideal wiring, which may have inspired this comic.&lt;br /&gt;
&lt;br /&gt;
The comic satirizes these complex wiring setups, with multiple breakers &amp;quot;controlling&amp;quot; arbitrary things, including some that – in the classic style of XKCD – may be impossible to hook a breaker up to, getting progressively more absurd to the point of disabling certain laws of physics.&lt;br /&gt;
&lt;br /&gt;
===Table of the breakers labels===&lt;br /&gt;
{|class = &amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label next to breaker !! Explanation !! Note&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|Left column of switches&lt;br /&gt;
|-&lt;br /&gt;
| Kitchen Lights || The lights in the kitchen. || rowspan=&amp;quot;3&amp;quot;| Standard items that could be separate&lt;br /&gt;
|-&lt;br /&gt;
| Living room lights || The lights in the living room.&lt;br /&gt;
|-&lt;br /&gt;
| Porch lights || The lights on the porch.&lt;br /&gt;
|-&lt;br /&gt;
| Bathroom lights and one surprise mystery outlet somewhere || The lights in the bathroom, but also a random outlet.&lt;br /&gt;
It is not uncommon for the power supply to a 'wet room' (usually just lighting, but perhaps also relevant appliances like a double-fused 'shaver supply' and/or electric shower unit) to be wired up independently to restrict the impact of short-circuits due to unexpected water seepage or allow specific isolation during later maintenance work.&lt;br /&gt;
&lt;br /&gt;
Having initially reserved an output from the box for such a limited use, it is possible that another electrician – while adding wiring – chooses to wire seemingly unrelated things into the same circuit because it seems more convenient/sensible to do so than to tap onto any other, or because all other circuits are close to overloading. This can mystify homeowners (and future installers) who aren't fully informed about this aspect of the wiring history.&lt;br /&gt;
| Standard, but 'kludged'&lt;br /&gt;
|-&lt;br /&gt;
| North-facing appliances || colspan=&amp;quot;2&amp;quot;|Peculiar and a bit complex to execute. Here's how it might have been set up:&lt;br /&gt;
# Install a breaker switch that is actually a mechanical switch to control a smart home automation instead of its normal function&lt;br /&gt;
# Replace relevant normal outlets with Wi-Fi-controlled smart outlets &lt;br /&gt;
# Use smart home software to create a custom group of all outlets that control all north-facing appliances&lt;br /&gt;
# Set up a software automation to selectively toggle this user-defined group of Wi-Fi-controlled smart outlets when triggered.&lt;br /&gt;
# Adding a matching appliance to the house would require editing the automation.&lt;br /&gt;
&lt;br /&gt;
Alternative explanations:&lt;br /&gt;
* The switch may be physically wired only to outlets installed on a southern wall in the property (or ''all'' southern walls, for each room that requires them), and you'd ensure that everything connected to these exclusively north-facing outlets also faces directly away from the wall(s).&lt;br /&gt;
* It switch could control appliances on the north-facing walls of the house. &lt;br /&gt;
&lt;br /&gt;
Note: &amp;quot;North-facing&amp;quot; has broad interpretation, as lax as northeast to northwest or as strict as {{w|Points of the compass#32-wind compass rose|north by east to north by west}}.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bathtub drain light || colspan=&amp;quot;2&amp;quot;|Bathtub drains typically do not have lights, but this breaker provides power to that and only that. Why it isn't already considered a &amp;quot;bathroom light&amp;quot; is unexplained (unless it's for the bit of the pipe that is ''external'' to that room).&lt;br /&gt;
Indeed, it is possible the reason the &amp;quot;bathroom light&amp;quot; breaker was able to take that additional random outlet connection was because this light had been miswired.&lt;br /&gt;
|-&lt;br /&gt;
| Appliances whose names contain the letter &amp;quot;F&amp;quot; || colspan=&amp;quot;2&amp;quot;|Another odd and amusing specification. &lt;br /&gt;
&lt;br /&gt;
To make it work, one might use the &amp;quot;North-facing appliances&amp;quot; setup, but using a different custom group of Wi-Fi-controlled smart outlets chosen to only control appliances with an &amp;quot;F' in their name.&lt;br /&gt;
&lt;br /&gt;
Some common household appliances that this switch might control:&lt;br /&gt;
* coffee maker&lt;br /&gt;
* refrigerator&lt;br /&gt;
* freezer&lt;br /&gt;
* fan&lt;br /&gt;
* air fryer&lt;br /&gt;
* food processor&lt;br /&gt;
* waffle iron&lt;br /&gt;
* fabric steamer&lt;br /&gt;
* fireplace (electric)&lt;br /&gt;
Note that only ''most'' of these are kitchen appliances, following the theme of &amp;quot;bathroom and one mystery outlet somewhere&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| {{w|Hot water heater}} || Usually just a heater that creates (and typically stores) hot water. But given that the next breaker controls the &amp;quot;Regular water heater&amp;quot;, this breaker might actually control a water heater that pointlessly heats water that is ''already'' hot. &lt;br /&gt;
This is probably a joke about the fact that the common phrase &amp;quot;hot water heater&amp;quot; is [[technically]] redundant or misleading:&lt;br /&gt;
* Redundant because the simpler term &amp;quot;water heater&amp;quot; is enough to describe a device that produces hot water.&lt;br /&gt;
* Misleading because it's not the purpose of residential water heaters to heat water that is ''already'' hot.&lt;br /&gt;
However, there is a specific situation in which this is ''not'' redundant or misleading: some languages have a separate, single word that describes &amp;quot;hot water&amp;quot; with the connotation that it's (near-)boiling or close to it. In that sort of household, this breaker would control the electric kettle or tabletop water boiler.&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Two &amp;quot;heaters&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Regular water heater || The heater for regular water. Together with the switch above, this presumes it's for a heater for heating water that is not yet hot (usually called a &amp;quot;hot water heater&amp;quot;, hence the joke). Alternatively, if we assume that a ''hot water heater'' is for ''making'' hot water, this heater must be making “regular water”, whatever temperature that may mean.&lt;br /&gt;
|-&lt;br /&gt;
| Outlets in rooms that it's normal to eat pizza in || colspan=&amp;quot;2&amp;quot;|This controls every outlet in rooms that it's normal to eat pizza in, such as the dining room and kitchen and – depending on the &amp;quot;normal&amp;quot; habits of the inhabitants – other rooms such as the bedroom, bathroom, or living room (if not already covered by the &amp;quot;living room lights&amp;quot; switch above) but presumably not closets and single-purpose rooms such as the laundry room.&lt;br /&gt;
|-&lt;br /&gt;
| High-pitched hum generator || colspan=&amp;quot;2&amp;quot;|Controls a high-pitched hum generator. This is a call-back to [[1590: The Source]], which was released just over 8 years before this comic.&lt;br /&gt;
|-&lt;br /&gt;
| The solution to the cryptogram below: || colspan=&amp;quot;2&amp;quot;|Likely a pun on &amp;quot;breaking&amp;quot; or solving a cryptogram, which is a puzzle where a sentence has been encoded using a cipher, usually simple, and the goal is to determine the cipher and recover the original sentence from the encoded one.&lt;br /&gt;
Another explanation is that this switch enables or disables the solution somehow, perhaps toggling its knowability or solvability.&lt;br /&gt;
|-&lt;br /&gt;
| Bugs || colspan=&amp;quot;2&amp;quot;|Several interpretations are possible:&lt;br /&gt;
* Disable all software bugs in the house*&lt;br /&gt;
* Disable all insect bugs in the house – as an efficient form of pest control – perhaps using ultrasonic emitters that drive away bugs (may be a reference to [[2753: Air Handler]]) – or perhaps the house contains noise machines that play sounds of insects or other ways of simulating insects.&lt;br /&gt;
* Disable power to all covert listening devices, which would be able to be switched off if wired into the house's electrical grid.&lt;br /&gt;
* Disable the whole global category of bugs (insects, arachnids, and other small arthropods), in which case we'd have no more pests and we'd reduce disease like malaria and {{w|Lyme disease}}. Food webs would also collapse, and our world would be overrun with waste.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Though it's unlikely that it's what Randall is referring to, computer bugs switches actually exist. It's a feature in some video game emulators to either run an unofficial patched version or to stay true to the original system, for example to allow bug-exploit speedruns of a video game.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|Right column of switches&lt;br /&gt;
|-&lt;br /&gt;
| A whirring fan you didn't realize was on until now || colspan=&amp;quot;2&amp;quot;|The AC in a building usually creates quiet white noise from fans, which people usually do not hear until they become aware that there is a sound. Other appliances, such as refrigerators or home servers, can have similar effects.&lt;br /&gt;
|-&lt;br /&gt;
| Dishwasher || colspan=&amp;quot;2&amp;quot;|Although dishwashers aren't typically high-load appliances that require a breaker to themselves (unlike, for example, the water heater), if the house wasn't originally built with a dishwasher in mind, it is likely new wiring had to be added during its installation, resulting in a breaker that exclusively controls the dishwasher.&lt;br /&gt;
&lt;br /&gt;
Though what &amp;quot;dishwasher&amp;quot; actually means may depend on what the &amp;quot;dishes&amp;quot; of the next switch might be, and thus what additional device may be required to ensure they remain clean. Even at the more trivial end of the interpretation (though not then explaining the following &amp;quot;dishes&amp;quot;), a busy restaurant might have an employee section equipped exclusively for the dishwashing role and separately supplied with power in a similar manner to that suggested for the bathroom.&lt;br /&gt;
|-&lt;br /&gt;
| Dishes || colspan=&amp;quot;2&amp;quot;|Traditionally, dishes cannot be turned off, as they do not normally require electricity. &amp;quot;Dishes&amp;quot; could be the label for a dishwasher on another house's breaker box, but this one already used that label. Another explanation, perhaps unusual in most contexts, is that this switch powers/controls two or more satellite dishes. Yet another explanation is that, since this is a ''breaker switch,'' tripping it simply breaks all dishes in the house.&lt;br /&gt;
|-&lt;br /&gt;
| Hallway lights || The lights in the hallway or hallways. || rowspan=&amp;quot;3&amp;quot;|&amp;quot;Hallway&amp;quot; regions&lt;br /&gt;
|-&lt;br /&gt;
| Hallway outlets || The outlets in the hallway or hallways. A common confusion when turning off breakers is separate wiring for outlets and lights in the same room. Though having the room go dark is a good mnemonic that it is unpowered, it is not a guarantee, and indeed, wiring them separately allows working on the outlets without having to do it in the dark.&lt;br /&gt;
|-&lt;br /&gt;
| Hallway floors || This breaker has several potential interpretations:&lt;br /&gt;
#A master switch for all floors (stories) in the building which include hallways, e.g. the guestroom areas in a hotel, whilst possibly excluding the lobby and service levels&lt;br /&gt;
#Outlets in the floor&lt;br /&gt;
#Electric underfloor heating (heated bathroom floors are a feature in some houses)&lt;br /&gt;
#Electrification of the floors -- not common outside of horror and heist movies.&lt;br /&gt;
#Disabling all floors entirely, so everything resting on the floors falls through.&lt;br /&gt;
|-&lt;br /&gt;
| Social media || colspan=&amp;quot;2&amp;quot;|This breaker also has several potential interpretations of &amp;quot;turning off social media&amp;quot;:&lt;br /&gt;
#'Digital detoxes', where someone says &amp;quot;I'm going to turn off my social media&amp;quot; and intends to deny themselves access to all their social media apps.&lt;br /&gt;
#A switch for a parent to turn off all social media entering the house to protect their kids and themselves, which references a type of specialized content filter available through Wi-Fi router settings, not traditionally a breaker box.&lt;br /&gt;
#A callback to [[908: The Cloud]]. Since most social media platforms are centralized services, it would be theoretically possible to hook up a switch to the main power supply of every server building at once, given some extremely long wires, a breaker capable of handling the abhorrently massive electric load, and agreement from every social media provider&amp;lt;sup&amp;gt;&amp;lt;i&amp;gt;([[1439|optional]])&amp;lt;/i&amp;gt;&amp;lt;/sup&amp;gt;.&lt;br /&gt;
#The theoretical desire by some to &amp;quot;turn off social media&amp;quot; for the world due to its harmful effects on society. As someone who lived before social media and saw its spread over two decades, Randall may be ruing the impacts of social media on civilization and channeling his desire to put the genie back in the bottle.&lt;br /&gt;
#A play on the phrase “breaking the internet”, meaning going viral on social media.&lt;br /&gt;
|-&lt;br /&gt;
| State law || Likely a pun on &amp;quot;State Law Breaker.&amp;quot;&lt;br /&gt;
Taken literally, it would either disable enforcement of State Law or nullify every single one, creating a state of martial law similar to the premise of the popular movie, &amp;quot;The Purge&amp;quot;. It's unclear if this refers to Randall's state of Massachusetts or State Law as a general concept.&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;|&amp;quot;Legal&amp;quot; items&lt;br /&gt;
|-&lt;br /&gt;
| Federal law || Likely a pun on &amp;quot;Federal Law Breaker,&amp;quot; though it could also be taken literally, as above. The ramifications of nullifying every US Federal law are immense. Disabling Federal Law while keeping State Law would theoretically fulfill the goals of the &amp;quot;States Rights&amp;quot; advocates, groups of conservatives across US history aiming to return Federal power to the States.&lt;br /&gt;
|-&lt;br /&gt;
| Second law of thermodynamics || The {{w|Second Law of Thermodynamics}}, in simple terms, states that the total entropy (or disorder) of an isolated system can only increase over time. It's a fundamental principle that dictates the direction of energy flow and the feasibility of many processes, and provides an arrow of time. In even simpler terms, you cannot take the heat from a cold place (not necessarily a chilly one like a winter day - just colder than the other place) and transfer it to make a different place hotter than the cold place, unless you use up some form of energy doing it - without expending energy, you can only take heat from the hotter place to warm up the colder place.&lt;br /&gt;
Turning off (or breaking) the second law of thermodynamics would have some pros and cons.&lt;br /&gt;
;GOOD STUFF&lt;br /&gt;
*'''Perpetual Motion Machines''': Machines that can do work indefinitely without an energy source would become possible, defying our current understanding of energy conservation.&lt;br /&gt;
*'''Reversibility of Processes''': Many natural processes that are irreversible under current laws could be reversed. For instance, melted ice could spontaneously turn back into a solid without energy removal.&lt;br /&gt;
*'''Recycling Energy''': We could theoretically use the same quantum of energy over and over again, leading to ultra-efficient systems and potentially solving many of the world's energy problems.&lt;br /&gt;
*'''Reversing Entropy-Driven Processes''': Things like mixing cream and coffee or ink in water could spontaneously unmix.&lt;br /&gt;
;BAD STUFF&lt;br /&gt;
*'''End Life as We Know It:''' All living organisms rely on the second law for crucial processes, including metabolism and reproduction. If the second law were negated, life, at least as we understand it, might not be possible.&lt;br /&gt;
*'''No Heat Engines:''' Engines rely on the flow of heat from hotter to colder bodies. Without the Second Law, our cars, power plants, refrigerators, and many other devices would not function.&lt;br /&gt;
*'''Breakdown of Molecular Processes:''' Molecules spontaneously move from areas of higher to lower concentration due to entropy. Without this, diffusion, osmosis, and many biochemical reactions wouldn't occur as they currently do.&lt;br /&gt;
*'''Loss of Directionality:''' One interpretation of the Second Law provides a directionality to time (the so-called &amp;quot;arrow of time&amp;quot;). Without it, causality and our understanding of past, present, and future could be fundamentally altered.&lt;br /&gt;
*'''Unpredictable Outcomes:''' Turning off the Second Law could result in a universe where outcomes are not probabilistically predictable. You couldn't rely on anything happening as it &amp;quot;should,&amp;quot; leading to chaos in every sense.&lt;br /&gt;
This law of physics was also explored in the What If? article [https://what-if.xkcd.com/145/ Fire From Moonlight].&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot;|&amp;quot;Physics&amp;quot; items&lt;br /&gt;
|-&lt;br /&gt;
| Friction || {{w|Friction}} is the resistive force that opposes the relative motion or tendency of such motion of two surfaces in contact. Turning it off has some upsides and downsides.&lt;br /&gt;
;UPSIDES&lt;br /&gt;
*'''Perpetual Motion Machines:''' Without friction, once an object starts moving, it would continue indefinitely unless acted upon by another force.&lt;br /&gt;
*'''Super-Efficient Transport:''' Cars, trains, and other vehicles would glide effortlessly once set into motion, leading to immense energy savings.&lt;br /&gt;
*'''Unique Sports:''' New sports and activities would emerge, where players glide or slide over surfaces without friction.&lt;br /&gt;
;DOWNSIDES&lt;br /&gt;
*'''Walking Would Be Impossible:''' We rely on friction between our feet and the ground to move. Without it, we would be unable to walk, run, or even stand.&lt;br /&gt;
*'''No Manual Dexterity:''' Holding, grabbing, or manipulating objects would be very difficult, because they would be perfectly slippery.&lt;br /&gt;
*'''Catastrophic Mechanical Failures:''' Many machines rely on friction to function. Brakes in cars, for instance, use friction to slow down and stop the vehicle. Without it, uncontrollable accidents would occur.&lt;br /&gt;
*'''No Sound:''' Friction between air molecules creates sound waves. Without friction, the world would be silent.&lt;br /&gt;
*'''Breathing Difficulties:''' Our respiratory system relies on frictional forces when the alveoli in our lungs exchange oxygen and carbon dioxide with the bloodstream.&lt;br /&gt;
*'''Hard to Light Fire:''' Lighting a fire by striking a match would no longer work, because it relies on friction. However, there are other methods for starting a fire that don't require friction.[https://www.quora.com/Is-it-possible-to-create-fire-without-friction]&lt;br /&gt;
*'''Collisions:''' Objects, once set in motion, would continue to move until they hit something, leading to a myriad of unpredictable and uncontrollable collisions.&lt;br /&gt;
Being in a frictionless environment (and a vacuum, as physicists love...) was the subject of [[669: Experiment]].&lt;br /&gt;
|-&lt;br /&gt;
| Gravity || {{w|Gravity}} is a natural force that attracts two bodies toward each other, proportional to their masses and inversely proportional to the square of the distance between their centers.&lt;br /&gt;
Turning off gravity would have some advantages and disadvantages.&lt;br /&gt;
;ADVANTAGES&lt;br /&gt;
* '''Flight''': Without gravity, every leap could turn into a flight. We could push off surfaces and float effortlessly through the air.&lt;br /&gt;
* '''No Weight Restrictions''': Large structures could be built without concern for weight-bearing loads. This would drastically change engineering and architectural designs.&lt;br /&gt;
* '''New Sports''': Zero-gravity sports and activities could become a reality on Earth. Imagine playing basketball or soccer without gravity!&lt;br /&gt;
;DISADVANTAGES&lt;br /&gt;
* '''Loss of Atmosphere and Oceans''': Without gravity, Earth's atmosphere would dissipate into space, and water from oceans, rivers, and lakes would float away, making life as we know it impossible.&lt;br /&gt;
* '''Unanchored Chaos''': Everything not fixed to the ground, including people, animals, vehicles, &amp;lt;!--trees, *ummm... anchored, surely!*--&amp;gt;and foundationless structures, could become airborne, causing massive destruction and chaos.&lt;br /&gt;
* '''Disruption of Celestial Order''': Earth would no longer orbit the Sun, the Moon would drift away rather quickly, and the structural integrity of the universe, including galaxies and solar systems, would be jeopardized.&lt;br /&gt;
* '''Everything Exploding''': Most celestial bodies, ranging from the moon to supermassive black holes, would explode from internal pressure and centripetal forces no longer fighting against gravity throwing everything into space.&lt;br /&gt;
* '''Aggregation Absence''': Stars, galaxies, and basically anything in space requires gravity to form. Without gravity, no stars, planets, or meteors would form ever again.&lt;br /&gt;
&lt;br /&gt;
Of course, if this switch is turned off, it may simply mean that objects within the house itself are no longer subject to gravity. This would be '''''far''''' less cataclysmic, and as a bonus, this would make it much, much easier to move around the house, get to higher areas, and move objects, but could prove to cause some problems once the breaker is turned back on, especially for the floor.&lt;br /&gt;
|-&lt;br /&gt;
| Circuit breakers || colspan=&amp;quot;2&amp;quot;|Possibly the &amp;quot;master&amp;quot; breaker, controlling the main circuit that supplies power to all other circuit breakers. However, given the other surreal things this breaker box controls, turning it off may possibly make it impossible to turn it on ever again as the switch will no longer function once switched off (i.e.: If this was turned off, it would presumably turn off the functionality of the circuit breaker itself, if it was wired to include itself). &lt;br /&gt;
&lt;br /&gt;
Moreover, if this circuit breaker disables all circuit breakers everywhere, it would result in global infrastructure collapse, halting essential services, including transportation, healthcare, and communication, and leading to widespread chaos.&lt;br /&gt;
&lt;br /&gt;
Note that it might be a perfectly valid label if it refers to multiple subsidiary 'boxes', cascaded off this particular one, each containing one or more additional breakers for convenience or safety. e.g. units dedicated to a shed, garage or workshop room which save the need to traipse all the way to this box's utility cupboard location in the event of an otherwise easily resolved power issue.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|Title text&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|The title text is about {{w|causality}} (not to be confused with {{w|casualty}}), and how to use this (unseen, located elsewhere) breaker along with the last shown switch that (de)powers the illustrated box.&lt;br /&gt;
&lt;br /&gt;
Causality, in its simplest form, is the process of cause and effect, meaning that everything that happens only happens because something caused it to happen - in other words, every event is an effect caused by another event. For example, a bag of chips can't just fall onto the floor for ''literally'' no reason - it has to be caused by some other event, such as someone smacking it or a gust of wind blowing it down. &lt;br /&gt;
&lt;br /&gt;
Turning off the circuit breaker using the CIRCUIT BREAKERS switch may lead to a loop, if the disabled breaker can no longer disable itself, leading to it turning back on, etc. Alternatively, turning off the CIRCUIT BREAKER switch might be a one-way street.&lt;br /&gt;
&lt;br /&gt;
Turning the CAUSALITY switch from OFF back to ON might be unlikely to do anything if the circuit breakers upstream of it have been fully deactivated. The separation of cause and effect would ostensibly take precedence over the current switch setting. Turning off CAUSALITY first would prevent either the loop or the permanent disabling of circuit breakers, but would also have many other side effects, including letting switches potentially serve power even if there is no power being served ''to them'', or even spontaneously switching (on or off) without any intervention or reason. &lt;br /&gt;
&lt;br /&gt;
The 'warning', from an electrician, could even be to locate the nominally ''off'' CAUSALITY switch in order to turn it ''on'', or else all other intended effects will possibly not end up being actually actioned. Either way, whether or not turning on/off causality would change the state of causality (at one stage or other being rendered ineffectual) is an exercise left for the reader. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
:[An open breaker box is shown. There are 26 labelled breakers, all of which are on, paired back to back in thirteen rows as a label, switch, switch and label.]&lt;br /&gt;
:Kitchen lights / A whirring fan you didn't realize was on until now&lt;br /&gt;
:Living room lights / Dishwasher&lt;br /&gt;
:Porch lights / Dishes&lt;br /&gt;
:Bathroom lights and one surprise mystery outlet somewhere / Hallway lights&lt;br /&gt;
:North-facing appliances / Hallway outlets&lt;br /&gt;
:Bathtub drain light / Hallway floors&lt;br /&gt;
:Appliances whose names contain the letter &amp;quot;F&amp;quot; / Social media&lt;br /&gt;
:Hot water heater / State law&lt;br /&gt;
:Regular water heater / Federal law&lt;br /&gt;
:Outlets in rooms that it's normal to eat pizza in / Second law of thermodynamics&lt;br /&gt;
:High-pitched hum generator / Friction&lt;br /&gt;
:The solution to the cryptogram below: [Additional squiggled words that are too small/indistinct to read.] / Gravity&lt;br /&gt;
:Bugs / Circuit breakers&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2848:_Breaker_Box&amp;diff=327557</id>
		<title>2848: Breaker Box</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2848:_Breaker_Box&amp;diff=327557"/>
				<updated>2023-11-01T04:58:12Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Table of the breakers labels */ no-friction allows perpetual motion but doesn't allow generating energy; and it's still possible to hold objects, just need to surround/support (credit: 172.70.90.230)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2848&lt;br /&gt;
| date      = October 30, 2023&lt;br /&gt;
| title     = Breaker Box&lt;br /&gt;
| image     = breaker_box_2x.png&lt;br /&gt;
| imagesize = 560x776px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Any electrician will warn you to first locate and flip the house's CAUSALITY circuit breaker before touching the CIRCUIT BREAKERS one.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a HIGH-PITCHED HUM GENERATOR THAT WAS LAST MENTIONED EXACTLY 1258 COMICS AGO - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
A {{w|distribution board}}, referred to as a &amp;quot;breaker box&amp;quot; here and also commonly referred to as a &amp;quot;fuse box&amp;quot;, &amp;quot;breaker panel&amp;quot;, &amp;quot;DB box&amp;quot;, and many other names, is a metal box attached to a wall inside a building, usually in some maintenance area, containing several {{w|circuit breakers}} that let power through to various parts of the building. A circuit breaker is an electrical switch, usually in the form of a small lever that can be used to manually isolate the electrical connections beyond it from the incoming power supply, but that will also physically trigger open if too much power is flowing through (often due to some grounding fault), to mitigate against dangerous short-circuits that can injure/damage people and appliances, in the most serious cases hopefully preventing fires and even risk of death.&lt;br /&gt;
&lt;br /&gt;
In most breaker boxes, each individual breaker is labeled to let the operator know what that specific breaker controls. A breaker will usually control something like the outlets or lights (perhaps all those in a certain room), or some large appliance which normally draws a large current all on its own.&lt;br /&gt;
&lt;br /&gt;
However, in houses that have been rewired multiple times (or are poorly wired), this can quickly become overcomplicated with seemingly random connections. Randall lives in Boston where much of the housing stock is from the late 1800s or early 1900s, and he is likely to live in a house with non-ideal wiring, which may have inspired this comic.&lt;br /&gt;
&lt;br /&gt;
The comic satirizes these complex wiring setups, with multiple breakers &amp;quot;controlling&amp;quot; arbitrary things, including some that – in the classic style of XKCD – may be impossible to hook a breaker up to, getting progressively more absurd to the point of disabling certain laws of physics.&lt;br /&gt;
&lt;br /&gt;
===Table of the breakers labels===&lt;br /&gt;
{|class = &amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label next to breaker !! Explanation !! Note&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|Left column of switches&lt;br /&gt;
|-&lt;br /&gt;
| Kitchen Lights || The lights in the kitchen. || rowspan=&amp;quot;3&amp;quot;| Standard items that could be separate&lt;br /&gt;
|-&lt;br /&gt;
| Living room lights || The lights in the living room.&lt;br /&gt;
|-&lt;br /&gt;
| Porch lights || The lights on the porch.&lt;br /&gt;
|-&lt;br /&gt;
| Bathroom lights and one surprise mystery outlet somewhere || The lights in the bathroom, but also a random outlet.&lt;br /&gt;
It is not uncommon for the power supply to a 'wet room' (usually just lighting, but perhaps also relevant appliances like a double-fused 'shaver supply' and/or electric shower unit) to be wired up independently to restrict the impact of short-circuits due to unexpected water seepage or allow specific isolation during later maintenance work.&lt;br /&gt;
&lt;br /&gt;
Having initially reserved an output from the box for such a limited use, it is possible that another electrician – while adding wiring – chooses to wire seemingly unrelated things into the same circuit because it seems more convenient/sensible to do so than to tap onto any other, or because all other circuits are close to overloading. This can mystify homeowners (and future installers) who aren't fully informed about this aspect of the wiring history.&lt;br /&gt;
| Standard, but 'kludged'&lt;br /&gt;
|-&lt;br /&gt;
| North-facing appliances || colspan=&amp;quot;2&amp;quot;|Peculiar and a bit complex to execute. Here's how it might have been set up:&lt;br /&gt;
# Install a breaker switch that is actually a mechanical switch to control a smart home automation instead of its normal function&lt;br /&gt;
# Replace relevant normal outlets with Wi-Fi-controlled smart outlets &lt;br /&gt;
# Use smart home software to create a custom group of all outlets that control all north-facing appliances&lt;br /&gt;
# Set up a software automation to selectively toggle this user-defined group of Wi-Fi-controlled smart outlets when triggered.&lt;br /&gt;
# Adding a matching appliance to the house would require editing the automation.&lt;br /&gt;
&lt;br /&gt;
Alternative explanations:&lt;br /&gt;
* The switch may be physically wired only to outlets installed on a southern wall in the property (or ''all'' southern walls, for each room that requires them), and you'd ensure that everything connected to these exclusively north-facing outlets also faces directly away from the wall(s).&lt;br /&gt;
* It switch could control appliances on the north-facing walls of the house. &lt;br /&gt;
&lt;br /&gt;
Note: &amp;quot;North-facing&amp;quot; has broad interpretation, as lax as northeast to northwest or as strict as {{w|Points of the compass#32-wind compass rose|north by east to north by west}}.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bathtub drain light || colspan=&amp;quot;2&amp;quot;|Bathtub drains typically do not have lights, but this breaker provides power to that and only that. Why it isn't already considered a &amp;quot;bathroom light&amp;quot; is unexplained (unless it's for the bit of the pipe that is ''external'' to that room).&lt;br /&gt;
Indeed, it is possible the reason the &amp;quot;bathroom light&amp;quot; breaker was able to take that additional random outlet connection was because this light had been miswired.&lt;br /&gt;
|-&lt;br /&gt;
| Appliances whose names contain the letter &amp;quot;F&amp;quot; || colspan=&amp;quot;2&amp;quot;|Another odd and amusing specification. &lt;br /&gt;
&lt;br /&gt;
To make it work, one might use the &amp;quot;North-facing appliances&amp;quot; setup, but using a different custom group of Wi-Fi-controlled smart outlets chosen to only control appliances with an &amp;quot;F' in their name.&lt;br /&gt;
&lt;br /&gt;
Some common household appliances that this switch might control:&lt;br /&gt;
* coffee maker&lt;br /&gt;
* refrigerator&lt;br /&gt;
* freezer&lt;br /&gt;
* fan&lt;br /&gt;
* air fryer&lt;br /&gt;
* food processor&lt;br /&gt;
* waffle iron&lt;br /&gt;
* fabric steamer&lt;br /&gt;
* fireplace (electric)&lt;br /&gt;
Note that only ''most'' of these are kitchen appliances, following the theme of &amp;quot;bathroom and one mystery outlet somewhere&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| {{w|Hot water heater}} || Usually just a heater that creates (and typically stores) hot water. But given that the next breaker controls the &amp;quot;Regular water heater&amp;quot;, this breaker might actually control a water heater that pointlessly heats water that is ''already'' hot. &lt;br /&gt;
This is probably a joke about the fact that the common phrase &amp;quot;hot water heater&amp;quot; is [[technically]] redundant or misleading:&lt;br /&gt;
* Redundant because the simpler term &amp;quot;water heater&amp;quot; is enough to describe a device that produces hot water.&lt;br /&gt;
* Misleading because it's not the purpose of residential water heaters to heat water that is ''already'' hot.&lt;br /&gt;
However, there is a specific situation in which this is ''not'' redundant or misleading: some languages have a separate, single word that describes &amp;quot;hot water&amp;quot; with the connotation that it's (near-)boiling or close to it. In that sort of household, this breaker would control the electric kettle or tabletop water boiler.&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|Two &amp;quot;heaters&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Regular water heater || The heater for regular water. Together with the switch above, this presumes it's for a heater for heating water that is not yet hot (usually called a &amp;quot;hot water heater&amp;quot;, hence the joke). Alternatively, if we assume that a ''hot water heater'' is for ''making'' hot water, this heater must be making “regular water”, whatever temperature that may mean.&lt;br /&gt;
|-&lt;br /&gt;
| Outlets in rooms that it's normal to eat pizza in || colspan=&amp;quot;2&amp;quot;|This controls every outlet in rooms that it's normal to eat pizza in, such as the dining room and kitchen and – depending on the &amp;quot;normal&amp;quot; habits of the inhabitants – other rooms such as the bedroom, bathroom, or living room (if not already covered by the &amp;quot;living room lights&amp;quot; switch above) but presumably not closets and single-purpose rooms such as the laundry room.&lt;br /&gt;
|-&lt;br /&gt;
| High-pitched hum generator || colspan=&amp;quot;2&amp;quot;|Controls a high-pitched hum generator. This is a call-back to [[1590: The Source]], which was released just over 8 years before this comic.&lt;br /&gt;
|-&lt;br /&gt;
| The solution to the cryptogram below: || colspan=&amp;quot;2&amp;quot;|Likely a pun on &amp;quot;breaking&amp;quot; or solving a cryptogram, which is a puzzle where a sentence has been encoded using a cipher, usually simple, and the goal is to determine the cipher and recover the original sentence from the encoded one.&lt;br /&gt;
Another explanation is that this switch enables or disables the solution somehow, perhaps toggling its knowability or solvability.&lt;br /&gt;
|-&lt;br /&gt;
| Bugs || colspan=&amp;quot;2&amp;quot;|Several interpretations are possible:&lt;br /&gt;
* Disable all software bugs in the house*&lt;br /&gt;
* Disable all insect bugs in the house – as an efficient form of pest control – perhaps using ultrasonic emitters that drive away bugs (may be a reference to [[2753: Air Handler]]) – or perhaps the house contains noise machines that play sounds of insects or other ways of simulating insects.&lt;br /&gt;
* Disable power to all covert listening devices, which would be able to be switched off if wired into the house's electrical grid.&lt;br /&gt;
* Disable the whole global category of bugs (insects, arachnids, and other small arthropods), in which case we'd have no more pests and we'd reduce disease like malaria and {{w|Lyme disease}}. Food webs would also collapse, and our world would be overrun with waste.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Though it's unlikely that it's what Randall is referring to, computer bugs switches actually exist. It's a feature in some video game emulators to either run an unofficial patched version or to stay true to the original system, for example to allow bug-exploit speedruns of a video game.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|Right column of switches&lt;br /&gt;
|-&lt;br /&gt;
| A whirring fan you didn't realize was on until now || colspan=&amp;quot;2&amp;quot;|The AC in a building usually creates quiet white noise from fans, which people usually do not hear until they become aware that there is a sound. Other appliances, such as refrigerators or home servers, can have similar effects.&lt;br /&gt;
|-&lt;br /&gt;
| Dishwasher || colspan=&amp;quot;2&amp;quot;|Although dishwashers aren't typically high-load appliances that require a breaker to themselves (unlike, for example, the water heater), if the house wasn't originally built with a dishwasher in mind, it is likely new wiring had to be added during its installation, resulting in a breaker that exclusively controls the dishwasher.&lt;br /&gt;
&lt;br /&gt;
Though what &amp;quot;dishwasher&amp;quot; actually means may depend on what the &amp;quot;dishes&amp;quot; of the next switch might be, and thus what additional device may be required to ensure they remain clean. Even at the more trivial end of the interpretation (though not then explaining the following &amp;quot;dishes&amp;quot;), a busy restaurant might have an employee section equipped exclusively for the dishwashing role and separately supplied with power in a similar manner to that suggested for the bathroom.&lt;br /&gt;
|-&lt;br /&gt;
| Dishes || colspan=&amp;quot;2&amp;quot;|Traditionally, dishes cannot be turned off, as they do not normally require electricity. &amp;quot;Dishes&amp;quot; could be the label for a dishwasher on another house's breaker box, but this one already used that label. Another explanation, perhaps unusual in most contexts, is that this switch powers/controls two or more satellite dishes. Yet another explanation is that, since this is a ''breaker switch,'' tripping it simply breaks all dishes in the house.&lt;br /&gt;
|-&lt;br /&gt;
| Hallway lights || The lights in the hallway or hallways. || rowspan=&amp;quot;3&amp;quot;|&amp;quot;Hallway&amp;quot; regions&lt;br /&gt;
|-&lt;br /&gt;
| Hallway outlets || The outlets in the hallway or hallways. A common confusion when turning off breakers is separate wiring for outlets and lights in the same room. Though having the room go dark is a good mnemonic that it is unpowered, it is not a guarantee, and indeed, wiring them separately allows working on the outlets without having to do it in the dark.&lt;br /&gt;
|-&lt;br /&gt;
| Hallway floors || This breaker has several potential interpretations:&lt;br /&gt;
#A master switch for all floors (stories) in the building which include hallways, e.g. the guestroom areas in a hotel, whilst possibly excluding the lobby and service levels&lt;br /&gt;
#Outlets in the floor&lt;br /&gt;
#Electric underfloor heating (heated bathroom floors are a feature in some houses)&lt;br /&gt;
#Electrification of the floors -- not common outside of horror and heist movies.&lt;br /&gt;
#Disabling all floors entirely, so everything resting on the floors falls through.&lt;br /&gt;
|-&lt;br /&gt;
| Social media || colspan=&amp;quot;2&amp;quot;|This breaker also has several potential interpretations of &amp;quot;turning off social media&amp;quot;:&lt;br /&gt;
#'Digital detoxes', where someone says &amp;quot;I'm going to turn off my social media&amp;quot; and intends to deny themselves access to all their social media apps.&lt;br /&gt;
#A switch for a parent to turn off all social media entering the house to protect their kids and themselves, which references a type of specialized content filter available through Wi-Fi router settings, not traditionally a breaker box.&lt;br /&gt;
#A callback to [[908: The Cloud]]. Since most social media platforms are centralized services, it would be theoretically possible to hook up a switch to the main power supply of every server building at once, given some extremely long wires, a breaker capable of handling the abhorrently massive electric load, and agreement from every social media provider&amp;lt;sup&amp;gt;&amp;lt;i&amp;gt;([[1439|optional]])&amp;lt;/i&amp;gt;&amp;lt;/sup&amp;gt;.&lt;br /&gt;
#The theoretical desire by some to &amp;quot;turn off social media&amp;quot; for the world due to its harmful effects on society. As someone who lived before social media and saw its spread over two decades, Randall may be ruing the impacts of social media on civilization and channeling his desire to put the genie back in the bottle.&lt;br /&gt;
#A play on the phrase “breaking the internet”, meaning going viral on social media.&lt;br /&gt;
|-&lt;br /&gt;
| State law || Likely a pun on &amp;quot;State Law Breaker.&amp;quot;&lt;br /&gt;
Taken literally, it would either disable enforcement of State Law or nullify every single one, creating a state of martial law similar to the premise of the popular movie, &amp;quot;The Purge&amp;quot;. It's unclear if this refers to Randall's state of Massachusetts or State Law as a general concept.&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot;|&amp;quot;Legal&amp;quot; items&lt;br /&gt;
|-&lt;br /&gt;
| Federal law || Likely a pun on &amp;quot;Federal Law Breaker,&amp;quot; though it could also be taken literally, as above. The ramifications of nullifying every US Federal law are immense. Disabling Federal Law while keeping State Law would theoretically fulfill the goals of the &amp;quot;States Rights&amp;quot; advocates, groups of conservatives across US history aiming to return Federal power to the States.&lt;br /&gt;
|-&lt;br /&gt;
| Second law of thermodynamics || The {{w|Second Law of Thermodynamics}}, in simple terms, states that the total entropy (or disorder) of an isolated system can only increase over time. It's a fundamental principle that dictates the direction of energy flow and the feasibility of many processes, and provides an arrow of time. In even simpler terms, you cannot take the heat from a cold place (not necessarily a chilly one like a winter day - just colder than the other place) and transfer it to make a different place hotter than the cold place, unless you use up some form of energy doing it - without expending energy, you can only take heat from the hotter place to warm up the colder place.&lt;br /&gt;
Turning off (or breaking) the second law of thermodynamics would have some pros and cons.&lt;br /&gt;
;GOOD STUFF&lt;br /&gt;
*'''Perpetual Motion Machines''': Machines that can do work indefinitely without an energy source would become possible, defying our current understanding of energy conservation.&lt;br /&gt;
*'''Reversibility of Processes''': Many natural processes that are irreversible under current laws could be reversed. For instance, melted ice could spontaneously turn back into a solid without energy removal.&lt;br /&gt;
*'''Recycling Energy''': We could theoretically use the same quantum of energy over and over again, leading to ultra-efficient systems and potentially solving many of the world's energy problems.&lt;br /&gt;
*'''Reversing Entropy-Driven Processes''': Things like mixing cream and coffee or ink in water could spontaneously unmix.&lt;br /&gt;
;BAD STUFF&lt;br /&gt;
*'''End Life as We Know It:''' All living organisms rely on the second law for crucial processes, including metabolism and reproduction. If the second law were negated, life, at least as we understand it, might not be possible.&lt;br /&gt;
*'''No Heat Engines:''' Engines rely on the flow of heat from hotter to colder bodies. Without the Second Law, our cars, power plants, refrigerators, and many other devices would not function.&lt;br /&gt;
*'''Breakdown of Molecular Processes:''' Molecules spontaneously move from areas of higher to lower concentration due to entropy. Without this, diffusion, osmosis, and many biochemical reactions wouldn't occur as they currently do.&lt;br /&gt;
*'''Loss of Directionality:''' One interpretation of the Second Law provides a directionality to time (the so-called &amp;quot;arrow of time&amp;quot;). Without it, causality and our understanding of past, present, and future could be fundamentally altered.&lt;br /&gt;
*'''Unpredictable Outcomes:''' Turning off the Second Law could result in a universe where outcomes are not probabilistically predictable. You couldn't rely on anything happening as it &amp;quot;should,&amp;quot; leading to chaos in every sense.&lt;br /&gt;
&amp;lt;br /&amp;gt;This law of physics was also explored in the What If? article [https://what-if.xkcd.com/145/ Fire From Moonlight].&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot;|&amp;quot;Physics&amp;quot; items&lt;br /&gt;
|-&lt;br /&gt;
| Friction || {{w|Friction}} is the resistive force that opposes the relative motion or tendency of such motion of two surfaces in contact. Turning it off has some upsides and downsides.&lt;br /&gt;
;UPSIDES&lt;br /&gt;
*'''Perpetual Motion Machines:''' Without friction, once an object starts moving, it would continue indefinitely unless acted upon by another force.&lt;br /&gt;
*'''Super-Efficient Transport:''' Cars, trains, and other vehicles would glide effortlessly once set into motion, leading to immense energy savings.&lt;br /&gt;
*'''Unique Sports:''' New sports and activities would emerge, where players glide or slide over surfaces without friction.&lt;br /&gt;
;DOWNSIDES&lt;br /&gt;
*'''Walking Would Be Impossible:''' We rely on friction between our feet and the ground to move. Without it, we would be unable to walk, run, or even stand.&lt;br /&gt;
*'''No Manual Dexterity:''' Holding, grabbing, or manipulating objects would be very difficult, because they would be perfectly slippery.&lt;br /&gt;
*'''Catastrophic Mechanical Failures:''' Many machines rely on friction to function. Brakes in cars, for instance, use friction to slow down and stop the vehicle. Without it, uncontrollable accidents would occur.&lt;br /&gt;
*'''No Sound:''' Friction between air molecules creates sound waves. Without friction, the world would be silent.&lt;br /&gt;
*'''Breathing Difficulties:''' Our respiratory system relies on frictional forces when the alveoli in our lungs exchange oxygen and carbon dioxide with the bloodstream.&lt;br /&gt;
*'''No Fire:''' Fire relies on friction for its creation, such as when striking a match. The absence of friction would mean no traditional methods of starting a fire.&lt;br /&gt;
*'''Collisions:''' Objects, once set in motion, would continue to move until they hit something, leading to a myriad of unpredictable and uncontrollable collisions.&lt;br /&gt;
&amp;lt;br /&amp;gt;Being in a frictionless environment (and a vacuum, as physicists love...) was the subject of [[669: Experiment]].&lt;br /&gt;
|-&lt;br /&gt;
| Gravity || {{w|Gravity}} is a natural force that attracts two bodies toward each other, proportional to their masses and inversely proportional to the square of the distance between their centers.&lt;br /&gt;
Turning off gravity would have some advantages and disadvantages.&lt;br /&gt;
;ADVANTAGES&lt;br /&gt;
* '''Flight''': Without gravity, every leap could turn into a flight. We could push off surfaces and float effortlessly through the air.&lt;br /&gt;
* '''No Weight Restrictions''': Large structures could be built without concern for weight-bearing loads. This would drastically change engineering and architectural designs.&lt;br /&gt;
* '''New Sports''': Zero-gravity sports and activities could become a reality on Earth. Imagine playing basketball or soccer without gravity!&lt;br /&gt;
;DISADVANTAGES&lt;br /&gt;
* '''Loss of Atmosphere and Oceans''': Without gravity, Earth's atmosphere would dissipate into space, and water from oceans, rivers, and lakes would float away, making life as we know it impossible.&lt;br /&gt;
* '''Unanchored Chaos''': Everything not fixed to the ground, including people, animals, vehicles, &amp;lt;!--trees, *ummm... anchored, surely!*--&amp;gt;and foundationless structures, could become airborne, causing massive destruction and chaos.&lt;br /&gt;
* '''Disruption of Celestial Order''': Earth would no longer orbit the Sun, the Moon would drift away rather quickly, and the structural integrity of the universe, including galaxies and solar systems, would be jeopardized.&lt;br /&gt;
* '''Everything Exploding''': Most celestial bodies, ranging from the moon to supermassive black holes, would explode from internal pressure and centripetal forces no longer fighting against gravity throwing everything into space.&lt;br /&gt;
* '''Aggregation Absence''': Stars, galaxies, and basically anything in space requires gravity to form. Without gravity, no stars, planets, or meteors would form ever again.&lt;br /&gt;
&lt;br /&gt;
Of course, if this switch is turned off, it may simply mean that objects within the house itself are no longer subject to gravity. This would be '''''far''''' less cataclysmic, and as a bonus, this would make it much, much easier to move around the house, get to higher areas, and move objects, but could prove to cause some problems once the breaker is turned back on, especially for the floor.&lt;br /&gt;
|-&lt;br /&gt;
| Circuit breakers || colspan=&amp;quot;2&amp;quot;|Possibly the &amp;quot;master&amp;quot; breaker, controlling the main circuit that supplies power to all other circuit breakers. However, given the other surreal things this breaker box controls, turning it off may possibly make it impossible to turn it on ever again as the switch will no longer function once switched off (i.e.: If this was turned off, it would presumably turn off the functionality of the circuit breaker itself, if it was wired to include itself). &lt;br /&gt;
&lt;br /&gt;
Moreover, if this circuit breaker disables all circuit breakers everywhere, it would result in global infrastructure collapse, halting essential services, including transportation, healthcare, and communication, and leading to widespread chaos.&lt;br /&gt;
&lt;br /&gt;
Note that it might be a perfectly valid label if it refers to multiple subsidiary 'boxes', cascaded off this particular one, each containing one or more additional breakers for convenience or safety. e.g. units dedicated to a shed, garage or workshop room which save the need to traipse all the way to this box's utility cupboard location in the event of an otherwise easily resolved power issue.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot;|Title text&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;|The title text is about {{w|causality}} (not to be confused with {{w|casualty}}), and how to use this (unseen, located elsewhere) breaker along with the last shown switch that (de)powers the illustrated box.&lt;br /&gt;
&lt;br /&gt;
Causality, in its simplest form, is the process of cause and effect, meaning that everything that happens only happens because something caused it to happen - in other words, every event is an effect caused by another event. For example, a bag of chips can't just fall onto the floor for ''literally'' no reason - it has to be caused by some other event, such as someone smacking it or a gust of wind blowing it down. &lt;br /&gt;
&lt;br /&gt;
Turning off the circuit breaker using the CIRCUIT BREAKERS switch may lead to a loop, if the disabled breaker can no longer disable itself, leading to it turning back on, etc. Alternatively, turning off the CIRCUIT BREAKER switch might be a one-way street.&lt;br /&gt;
&lt;br /&gt;
Turning the CAUSALITY switch from OFF back to ON might be unlikely to do anything if the circuit breakers upstream of it have been fully deactivated. The separation of cause and effect would ostensibly take precedence over the current switch setting. Turning off CAUSALITY first would prevent either the loop or the permanent disabling of circuit breakers, but would also have many other side effects, including letting switches potentially serve power even if there is no power being served ''to them'', or even spontaneously switching (on or off) without any intervention or reason. &lt;br /&gt;
&lt;br /&gt;
The 'warning', from an electrician, could even be to locate the nominally ''off'' CAUSALITY switch in order to turn it ''on'', or else all other intended effects will possibly not end up being actually actioned. Either way, whether or not turning on/off causality would change the state of causality (at one stage or other being rendered ineffectual) is an exercise left for the reader. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
:[An open breaker box is shown. There are 26 labelled breakers, all of which are on, paired back to back in thirteen rows as a label, switch, switch and label.]&lt;br /&gt;
:Kitchen lights / A whirring fan you didn't realize was on until now&lt;br /&gt;
:Living room lights / Dishwasher&lt;br /&gt;
:Porch lights / Dishes&lt;br /&gt;
:Bathroom lights and one surprise mystery outlet somewhere / Hallway lights&lt;br /&gt;
:North-facing appliances / Hallway outlets&lt;br /&gt;
:Bathtub drain light / Hallway floors&lt;br /&gt;
:Appliances whose names contain the letter &amp;quot;F&amp;quot; / Social media&lt;br /&gt;
:Hot water heater / State law&lt;br /&gt;
:Regular water heater / Federal law&lt;br /&gt;
:Outlets in rooms that it's normal to eat pizza in / Second law of thermodynamics&lt;br /&gt;
:High-pitched hum generator / Friction&lt;br /&gt;
:The solution to the cryptogram below: [Additional squiggled words that are too small/indistinct to read.] / Gravity&lt;br /&gt;
:Bugs / Circuit breakers&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:2828:_Exoplanet_Observation&amp;diff=323832</id>
		<title>Talk:2828: Exoplanet Observation</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:2828:_Exoplanet_Observation&amp;diff=323832"/>
				<updated>2023-09-15T14:29:40Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: The word &amp;quot;shadow&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~ and don't delete this text. New comments should be added at the bottom.--&amp;gt;&lt;br /&gt;
Probably, related to the recent Webb discovery of interesting gases in K2-18 b's atmosphere: https://www.nasa.gov/goddard/2023/webb-discovers-methane-carbon-dioxide-in-atmosphere-of-k2-18b [[User:Rps|Rps]] ([[User talk:Rps|talk]])&lt;br /&gt;
: Added! (Saw your comment after my edit). --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 15:43, 13 September 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
I am not finding a reference, but I think I read that Newton chose the word &amp;quot;spectrum&amp;quot; by analogy with the word &amp;quot;spectre&amp;quot; (which means ghost), since the rainbow colors were sort of &amp;quot;hiding&amp;quot; in the white light and were revealed by the prism. So it is not a coincidence that you can make puns like on this comic. [[User:Rps|Rps]] ([[User talk:Rps|talk]]) 17:59, 13 September 2023 (UTC)&lt;br /&gt;
:Well, it seems to be at least co-conceived as a description of an (after)image of some original source, but it doesn't easily get explained as to whether it went from the latin root (to look at/view) straight ''via'' the 'ghostly' spectre and on unto the split-rainbow thing. (Except Newton did believe invsome seriously weird stuff, back when science was a bit looser and chemistry was almost alchemy, so... maybe!) [[Special:Contributions/172.70.85.187|172.70.85.187]] 18:39, 13 September 2023 (UTC)&lt;br /&gt;
::First, in Newton's time, those stuff wasn't weird. Second, what do you mean by &amp;quot;almost&amp;quot;? -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 22:37, 13 September 2023 (UTC)&lt;br /&gt;
:::It always amuses me that I have to teach schoolchildren that Newton was a 'scientist', a word that didn't really exist in his lifetime. He considered himself a 'natural philosopher', which at the time was a posh way of saying 'wizard', as well as being an alchemist. 'Magic' wasn't taboo then, but was seen as an acceptable hobby for the idle rich. Interestingly, although modern chemistry arose out of alchemy (but isn't even nearly the same thing), the magical practice of natural philosophy still goes on today, completely unchanged except for its name... we call it 'physics' now. BTW, Newton decided that the 'spectrum' was composed of seven colours (and inserted 'indigo' to fudge the results accordingly) because 7 is the 'God-number' in Kabbalah.--[[Special:Contributions/172.71.242.221|172.71.242.221]] 05:10, 14 September 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
This explanation fails to take into account that if life were discovered through astronomy (as opposed to interstellar travel) on a planet that what is discovered would be &amp;quot;in the past.&amp;quot; Because of the distance which light travels from other other stellar systems to earth everything which is observed by astronomy is &amp;quot;in the past&amp;quot;. Thus the statement &amp;quot;past life&amp;quot; is exactly what astronomers are seeking to detect. [[User:Inquirer|Inquirer]] ([[User talk:Inquirer|talk]]) 20:32, 14 September 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hi [[User:ProphetZarquon|ProphetZarquon]], regarding &amp;quot;shadow&amp;quot; ([[Special:Diff/323794|Revision 323794]]), I didn't realise it had etymological connection, sorry for removing. I still think that the word &amp;quot;shadow&amp;quot; feels out of place if there is no explanation, but I think your edit summary would be great as part of the article. I couldn't find any reference for Latin &amp;quot;specter&amp;quot; meaning &amp;quot;shadow&amp;quot;, do you have one? --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 14:29, 15 September 2023 (UTC)&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2828:_Exoplanet_Observation&amp;diff=323787</id>
		<title>2828: Exoplanet Observation</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2828:_Exoplanet_Observation&amp;diff=323787"/>
				<updated>2023-09-14T12:00:27Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2828&lt;br /&gt;
| date      = September 13, 2023&lt;br /&gt;
| title     = Exoplanet Observation&lt;br /&gt;
| image     = exoplanet_observation_2x.png&lt;br /&gt;
| imagesize = 295x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = NASA prefers to say that their rovers are 'looking for signs of past life on Mars' and not 'ghost hunting.'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an ALIEN GHOST EXORCIST - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
In this comic, Cueball states that observations of light that passed through the atmosphere of a distant planet indicate that there are ghosts on that planet, because some of the light was absorbed in a way that is unique to ghosts. This is analogous to how gases or suspended particles absorb certain wavelengths, allowing scientists to identify properties of distant objects using telescopes. The pun is that in this comic &amp;quot;spectral analysis&amp;quot; refers to both {{w|Spectroscopy|the analysis of the light spectrum}} and the analysis of specters (ghosts).&lt;br /&gt;
&lt;br /&gt;
{{w|Spectroscopy|Spectral analysis}} is the study of the {{w|electromagnetic spectrum}} that results from the interaction between electromagnetic radiation (including visible light) and matter. In the study of {{w|exoplanet}}s and other distant objects in space, it refers to using the intensities of different frequencies of light (and other electromagnetic radiation) from stars which they occlude to infer data about their chemical composition. This is used to detect certain gases in the atmosphere, such as {{w|Oxygen#Allotropes|free oxygen}}, which might suggest generation by and for Earth-like life. On the day before this comic was published, {{w|NASA}} announced that spectral analysis of the exoplanet {{w|K2-18b}} showed abundance of {{w|methane}} and {{w|carbon dioxide}}, and shortage of {{w|ammonia}}, which are chemical footprints that support the hypothesis that it may have a life-supporting water ocean; and there was possible detection of {{w|dimethyl sulfide}}, which on {{w|Earth}} is only produced by life.[https://www.nasa.gov/goddard/2023/webb-discovers-methane-carbon-dioxide-in-atmosphere-of-k2-18b] If confirmed, these would be very interesting findings, although it may turn out to be less remarkable on closer study (as {{w|Life on Venus#Phosphine|with Venus}} for example).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Spectral&amp;quot; also has another meaning: relating to specters (ghosts). Hence &amp;quot;spectral analysis&amp;quot; could be interpreted as the analysis of ghosts. &amp;quot;Specter&amp;quot; and &amp;quot;spectrum&amp;quot; have the same etymological root, deriving from Latin &amp;quot;spectrum&amp;quot; meaning &amp;quot;appearance&amp;quot;, with a specter specifically referring to a visible ghost.&lt;br /&gt;
&lt;br /&gt;
The title text refers to the search for past life on Mars. It humorously conflates the practice of searching for signs of past life such as specific molecules or fossils (which NASA does actively search for), versus the disreputable practice of searching for ghosts, with this conflation framing both as an equally scientific indication of past life. In a very loose sense, real signs such as gases or fossils could be considered &amp;quot;ghosts&amp;quot; of past life.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
:: [Cueball is holding a stick and pointing at a slide with two ghosts and a planet]&lt;br /&gt;
:: Cueball: When the planet passed in front of its host star, some of the light was absorbed by ghosts, indicating that the planet is likely haunted.&lt;br /&gt;
&lt;br /&gt;
:: [Caption below the panel]&lt;br /&gt;
:: Exoplanet Spectral Analysis&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Astronomy]]&lt;br /&gt;
[[Category:Exoplanets]]&lt;br /&gt;
[[Category:Aliens]]&lt;br /&gt;
[[Category:Puns]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2828:_Exoplanet_Observation&amp;diff=323786</id>
		<title>2828: Exoplanet Observation</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2828:_Exoplanet_Observation&amp;diff=323786"/>
				<updated>2023-09-14T11:59:07Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Explanation */ move short explanation to top, various edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2828&lt;br /&gt;
| date      = September 13, 2023&lt;br /&gt;
| title     = Exoplanet Observation&lt;br /&gt;
| image     = exoplanet_observation_2x.png&lt;br /&gt;
| imagesize = 295x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = NASA prefers to say that their rovers are 'looking for signs of past life on Mars' and not 'ghost hunting.'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an ALIEN GHOST EXORCIST - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
In this comic, Cueball states that observations of light that passed through the atmosphere of a distant planet indicate that there are ghosts on that planet, because some of the light was absorbed in a way that is unique to ghosts. This is analogous to how gases or suspended particles absorb certain wavelengths, allowing scientists to identify properties of distant objects using telescopes. The pun is that in this comic &amp;quot;spectral analysis&amp;quot; refers to both {{w|Spectroscopy|the analysis of the light spectrum}} and the analysis of specters (ghosts).&lt;br /&gt;
&lt;br /&gt;
{{w|Spectroscopy|Spectral analysis}} is the study of the {{w|electromagnetic spectrum}} that results from the interaction between electromagnetic radiation (which includes visible light) and matter. In the study of {{w|exoplanet}}s and other distant objects in space, it refers to using the intensities of different frequencies of light (and other electromagnetic radiation) from stars which they occlude to infer data about their chemical composition. This is used to detect certain gases in the atmosphere, such as {{w|Oxygen#Allotropes|free oxygen}}, which might suggest generation by and for Earth-like life. On the day before this comic was published, {{w|NASA}} announced that spectral analysis of the exoplanet {{w|K2-18b}} showed abundance of {{w|methane}} and {{w|carbon dioxide}}, and shortage of {{w|ammonia}}, which are chemical footprints that support the hypothesis that it may have a life-supporting water ocean; and there was possible detection of {{w|dimethyl sulfide}}, which on {{w|Earth}} is only produced by life.[https://www.nasa.gov/goddard/2023/webb-discovers-methane-carbon-dioxide-in-atmosphere-of-k2-18b] If confirmed, these would be very interesting findings, although it may turn out to be less remarkable on closer study (as {{w|Life on Venus#Phosphine|with Venus}} for example).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Spectral&amp;quot; also has another meaning: relating to specters (ghosts). Hence &amp;quot;spectral analysis&amp;quot; could be interpreted as the analysis of ghosts. &amp;quot;Specter&amp;quot; and &amp;quot;spectrum&amp;quot; have the same etymological root, deriving from Latin &amp;quot;spectrum&amp;quot; meaning &amp;quot;appearance&amp;quot;, with a specter specifically referring to a visible ghost.&lt;br /&gt;
&lt;br /&gt;
The title text refers to the search for past life on Mars. It humorously conflates the practice of searching for signs of past life such as specific molecules or fossils (which NASA does actively search for), versus the disreputable practice of searching for ghosts, with this conflation framing both as an equally scientific indication of past life. In a very loose sense, real signs such as gases or fossils could be considered &amp;quot;ghosts&amp;quot; of past life.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
:: [Cueball is holding a stick and pointing at a slide with two ghosts and a planet]&lt;br /&gt;
:: Cueball: When the planet passed in front of its host star, some of the light was absorbed by ghosts, indicating that the planet is likely haunted.&lt;br /&gt;
&lt;br /&gt;
:: [Caption below the panel]&lt;br /&gt;
:: Exoplanet Spectral Analysis&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Astronomy]]&lt;br /&gt;
[[Category:Exoplanets]]&lt;br /&gt;
[[Category:Aliens]]&lt;br /&gt;
[[Category:Puns]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2828:_Exoplanet_Observation&amp;diff=323785</id>
		<title>2828: Exoplanet Observation</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2828:_Exoplanet_Observation&amp;diff=323785"/>
				<updated>2023-09-14T11:24:17Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Explanation */ move definition of &amp;quot;spectral analysis&amp;quot; to start, explicitly state pun, various other edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2828&lt;br /&gt;
| date      = September 13, 2023&lt;br /&gt;
| title     = Exoplanet Observation&lt;br /&gt;
| image     = exoplanet_observation_2x.png&lt;br /&gt;
| imagesize = 295x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = NASA prefers to say that their rovers are 'looking for signs of past life on Mars' and not 'ghost hunting.'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an ALIEN GHOST EXORCIST - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
{{w|Spectroscopy|Spectral analysis}} is the study of the {{w|electromagnetic spectrum}} that results from the interaction between electromagnetic radiation (which includes visible light) and matter. In the study of {{w|exoplanet}}s and other distant objects in space, it refers to using the intensities of different frequencies of light (and other electromagnetic radiation) from stars which they occlude to infer data about their chemical composition. This is used to detect certain gases in the atmosphere, such as {{w|Oxygen#Allotropes|free oxygen}}, which might suggest generation by and for Earth-like life. On the day before this comic was published, {{w|NASA}} announced that spectral analysis of the exoplanet {{w|K2-18b}} showed abundance of {{w|methane}} and {{w|carbon dioxide}}, and shortage of {{w|ammonia}}, which are chemical footprints that support the hypothesis that it may have a life-supporting water ocean; and there was possible detection of {{w|dimethyl sulfide}}, which on {{w|Earth}} is only produced by life.[https://www.nasa.gov/goddard/2023/webb-discovers-methane-carbon-dioxide-in-atmosphere-of-k2-18b] If confirmed, these would be very interesting findings, although it may turn out to be less remarkable on closer study (as {{w|Life on Venus#Phosphine|with Venus}} for example).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Spectral&amp;quot; also has another meaning: relating to specters (ghosts). &amp;quot;Specter&amp;quot; and &amp;quot;spectrum&amp;quot; have the same etymological root, deriving from Latin &amp;quot;spectrum&amp;quot; meaning &amp;quot;appearance&amp;quot;, with a specter specifically referring to a visible ghost. The pun in this comic is that &amp;quot;spectral analysis&amp;quot; refers to both the analysis of the light spectrum and to the analysis of specters.&lt;br /&gt;
&lt;br /&gt;
In this comic, Cueball states that the specific reductions in detected light are theorized to indicate the presence of ghosts/specters in the planet's atmosphere, similar to how gases or suspended particles absorb certain wavelengths. Like many atmospheric gases, ghosts/specters are frequently presumed to be invisible under most conditions.{{Citation needed}} However, if these specters have their own absorption spectrum distinguishing them from ordinary gases, the presence of such specters in an exoplanet's atmosphere could be considered evidence of (past) alien life.&lt;br /&gt;
&lt;br /&gt;
The title text refers to the search for past life on Mars. It humorously conflates the practice of searching for signs of past life such as specific molecules or fossils (which NASA does actively search for), versus the disreputable practice of searching for ghosts, with this conflation framing both as an equally scientific indication of past life. In a very loose sense, real signs such as gases or fossils could be considered &amp;quot;ghosts&amp;quot; of past life.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
:: [Cueball is holding a stick and pointing at a slide with two ghosts and a planet]&lt;br /&gt;
:: Cueball: When the planet passed in front of its host star, some of the light was absorbed by ghosts, indicating that the planet is likely haunted.&lt;br /&gt;
&lt;br /&gt;
:: [Caption below the panel]&lt;br /&gt;
:: Exoplanet Spectral Analysis&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Astronomy]]&lt;br /&gt;
[[Category:Exoplanets]]&lt;br /&gt;
[[Category:Aliens]]&lt;br /&gt;
[[Category:Puns]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2828:_Exoplanet_Observation&amp;diff=323756</id>
		<title>2828: Exoplanet Observation</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2828:_Exoplanet_Observation&amp;diff=323756"/>
				<updated>2023-09-13T16:19:15Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Transcript */ I'm fairly certain the slide is showing a planet, not a star (planet makes sense -- arrows indicate that the ghosts are on the planet, and the second ring is the atmosphere)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2828&lt;br /&gt;
| date      = September 13, 2023&lt;br /&gt;
| title     = Exoplanet Observation&lt;br /&gt;
| image     = exoplanet_observation_2x.png&lt;br /&gt;
| imagesize = 295x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = NASA prefers to say that their rovers are 'looking for signs of past life on Mars' and not 'ghost hunting.'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an ALIEN GHOST EXORCIST - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
Spectral analysis as used in the study of exoplanets and other distant objects in space refers to using the intensities of different frequencies of light (and other electromagnetic frequencies) from stars which they occlude to infer data about their chemical composition. This is used to detect certain gases in the atmosphere, such as oxygen, which might suggest life. On the day before this comic was published, NASA announced that spectral analysis of the exoplanet K2-18 b showed abundance of methane and carbon dioxide, and shortage of ammonia, supporting the hypothesis that it may have a water ocean; and there was possible detection of dimethyl sulfide, which on Earth is only produced by life.[https://www.nasa.gov/goddard/2023/webb-discovers-methane-carbon-dioxide-in-atmosphere-of-k2-18b]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Spectral&amp;quot; can also be used to refer to ghosts or &amp;quot;spectres&amp;quot;. Here it is suggested that the planet may have ghosts in its atmosphere due to the light that they absorb, similar to how gases may absorb certain wavelengths. Like many atmospheric gases, ghosts are typically invisible{{Citation needed}}, however they may have their own absorption spectrum distinguishing them from normal gases. The presence of ghosts in an exoplanet's atmosphere can also be considered evidence of (past) alien life.&lt;br /&gt;
&lt;br /&gt;
The title text refers to the search for past life on Mars. It draws similarities between looking for real signs such as specific molecules or fossils (which NASA is actually doing), and looking for fictional ghosts of dead creatures (which would also be an indication of past life). In a very loose sense, real signs such as gases or fossils could be considered &amp;quot;ghosts&amp;quot; of past life.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
:: [Cueball is holding a stick and pointing at a slide with two ghosts and a planet]&lt;br /&gt;
:: Cueball: When the planet passed in front of its host star, some of the light was absorbed by ghosts, indicating that the planet is likely haunted.&lt;br /&gt;
&lt;br /&gt;
:: [Caption below the panel]&lt;br /&gt;
:: Exoplanet Spectral Analysis&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Astronomy]]&lt;br /&gt;
[[Category:Exoplanets]]&lt;br /&gt;
[[Category:Aliens]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2828:_Exoplanet_Observation&amp;diff=323753</id>
		<title>2828: Exoplanet Observation</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2828:_Exoplanet_Observation&amp;diff=323753"/>
				<updated>2023-09-13T16:11:30Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Explanation */ rewrite explanation of title text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2828&lt;br /&gt;
| date      = September 13, 2023&lt;br /&gt;
| title     = Exoplanet Observation&lt;br /&gt;
| image     = exoplanet_observation_2x.png&lt;br /&gt;
| imagesize = 295x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = NASA prefers to say that their rovers are 'looking for signs of past life on Mars' and not 'ghost hunting.'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an ALIEN GHOST EXORCIST - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
Spectral analysis as used in the study of exoplanets and other distant objects in space refers to using the intensities of different frequencies of light (and other electromagnetic frequencies) from stars which they occlude to infer data about their chemical composition. This is used to detect certain gases in the atmosphere, such as oxygen, which might suggest life. On the day before this comic was published, NASA announced that spectral analysis of the exoplanet K2-18 b showed abundance of methane and carbon dioxide, and shortage of ammonia, supporting the hypothesis that it may have a water ocean; and there was possible detection of dimethyl sulfide, which on Earth is only produced by life.[https://www.nasa.gov/goddard/2023/webb-discovers-methane-carbon-dioxide-in-atmosphere-of-k2-18b]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Spectral&amp;quot; can also be used to refer to ghosts or &amp;quot;spectres&amp;quot;. Here it is suggested that the planet may have ghosts in its atmosphere due to the light that they absorb, similar to how gases may absorb certain wavelengths. Like many atmospheric gases, ghosts are typically invisible{{Citation needed}}, however they may have their own absorption spectrum distinguishing them from normal gases. The presence of ghosts in an exoplanet's atmosphere can also be considered evidence of (past) alien life.&lt;br /&gt;
&lt;br /&gt;
The title text refers to the search for past life on Mars. It draws similarities between looking for real signs such as specific molecules or fossils (which NASA is actually doing), and looking for fictional ghosts of dead creatures (which would also be an indication of past life). In a very loose sense, real signs such as gases or fossils could be considered &amp;quot;ghosts&amp;quot; of past life.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
:: [Cueball is holding a stick and pointing at a slide with two ghosts and a planet/star]&lt;br /&gt;
:: Cueball: When the planet passed in front of its host star, some of the light was absorbed by ghosts, indicating that the planet is likely haunted.&lt;br /&gt;
&lt;br /&gt;
:: [Caption below the panel]&lt;br /&gt;
:: Exoplanet Spectral Analysis&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Astronomy]]&lt;br /&gt;
[[Category:Aliens]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:2828:_Exoplanet_Observation&amp;diff=323752</id>
		<title>Talk:2828: Exoplanet Observation</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:2828:_Exoplanet_Observation&amp;diff=323752"/>
				<updated>2023-09-13T15:43:49Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~ and don't delete this text. New comments should be added at the bottom.--&amp;gt;&lt;br /&gt;
Probably, related to the recent Webb discovery of interesting gases in K2-18 b's atmosphere: https://www.nasa.gov/goddard/2023/webb-discovers-methane-carbon-dioxide-in-atmosphere-of-k2-18b [[User:Rps|Rps]] ([[User talk:Rps|talk]])&lt;br /&gt;
: Added! (Saw your comment after my edit). --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 15:43, 13 September 2023 (UTC)&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2828:_Exoplanet_Observation&amp;diff=323751</id>
		<title>2828: Exoplanet Observation</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2828:_Exoplanet_Observation&amp;diff=323751"/>
				<updated>2023-09-13T15:40:24Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Explanation */ add link to relevant event from the news (exoplanet K2-18 b)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2828&lt;br /&gt;
| date      = September 13, 2023&lt;br /&gt;
| title     = Exoplanet Observation&lt;br /&gt;
| image     = exoplanet_observation_2x.png&lt;br /&gt;
| imagesize = 295x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = NASA prefers to say that their rovers are 'looking for signs of past life on Mars' and not 'ghost hunting.'&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an ALIEN GHOST EXORCIST - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
Spectral analysis as used in the study of exoplanets and other distant objects in space refers to using the intensities of different frequencies of light (and other electromagnetic frequencies) from stars which they occlude to infer data about their chemical composition. This is used to detect certain gases in the atmosphere, such as oxygen, which might suggest life. On the day before this comic was published, NASA announced that spectral analysis of the exoplanet K2-18 b showed abundance of methane and carbon dioxide, and shortage of ammonia, supporting the hypothesis that it may have a water ocean; and there was possible detection of dimethyl sulfide, which on Earth is only produced by life.[https://www.nasa.gov/goddard/2023/webb-discovers-methane-carbon-dioxide-in-atmosphere-of-k2-18b]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Spectral&amp;quot; can also be used to refer to ghosts or &amp;quot;spectres&amp;quot;. Here it is suggested that the planet may have ghosts in its atmosphere due to the light that they absorb, similar to how gases may absorb certain wavelengths. Like many atmospheric gases, ghosts are typically invisible{{Citation needed}}, however they may have their own absorption spectrum distinguishing them from normal gases. The presence of ghosts in an exoplanet's atmosphere can also be considered evidence of (past) alien life.&lt;br /&gt;
&lt;br /&gt;
The title text refers to the search for life on Mars, which is done largely to investigate the origin of life. Ghosts may serve as signs of past life on Mars.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
:: [Cueball is holding a stick and pointing at a slide with two ghosts and a planet/star]&lt;br /&gt;
:: Cueball: When the planet passed in front of its host star, some of the light was absorbed by ghosts, indicating that the planet is likely haunted.&lt;br /&gt;
&lt;br /&gt;
:: [Caption below the panel]&lt;br /&gt;
:: Exoplanet Spectral Analysis&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Astronomy]]&lt;br /&gt;
[[Category:Aliens]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2822:_*@gmail.com&amp;diff=322928</id>
		<title>2822: *@gmail.com</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2822:_*@gmail.com&amp;diff=322928"/>
				<updated>2023-08-31T11:11:26Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: add trivia: comic number is the same as email RFC (credit: @Tobu on Hacker News: https://news.ycombinator.com/item?id=37334604)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2822&lt;br /&gt;
| date      = August 30, 2023&lt;br /&gt;
| title     = *@gmail.com&lt;br /&gt;
| image     = gmail_com_2x.png&lt;br /&gt;
| imagesize = 305x269px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Hi all, just replying to loop in *@outlook.com and *@yahoo.com.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by BOT@COMPUSERVE.NET - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
A wildcard symbol, such as the asterisk, is not generally usable via email servers, although email ''clients'' may sometimes implement such a function, internally, perhaps to support mailing-list functions (though more commonly this is done via named address-book 'groups'). That said, the asterisk character is a valid one for a mailbox, including group-boxes that might facilitate server-side distribution.&lt;br /&gt;
&lt;br /&gt;
The address *@gmail.com, as illustrated in the comic, is a proposed feature from Randall that would send an email to ''every'' Gmail user, without having each and every valid Gmail address at hand (manually typed in or via pre-populated email client address books). For obvious reasons, this is not actually a feature, but Randall suggests that if Google ever wanted to shut Gmail down, they could do either do it this way (possibly causing a service-ending overload of resources) ''or'' allow someone this one last boon (as a farewell gift, knowing that there would be relatively few additional repercussions to deal with).&lt;br /&gt;
&lt;br /&gt;
Reply-all is a sometimes useful feature of email that nonetheless commonly causes headaches and annoyances for both users and administrators. By allowing users to simply reply to everyone copied on the email, it encourages users to do this rather than think carefully about which people their response should be addressed to. This causes lots of users to receive irrelevant emails, and email servers to have to store a lot of unnecessary data. Randall's email is essentially designed to induce every Gmail user to email every other Gmail user, generating an unfathomable number of emails.&lt;br /&gt;
&lt;br /&gt;
The title text suggests the possibility of a similar iteration over two further well-known mail services with similarly large userbases, but this time attempting to expand the resulting lists within the mail body of the above email, which would make the broadcast message much, ''much'' larger than the simple broadcast 'spam' that the originally illustrated email would be. It's likely this would annoy a few more people then the original message did {{citation needed}}. This also alludes to a occurrence in email chains where a user replies to simply add another user into the chain, which doesn't add much information to the group.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
&lt;br /&gt;
:[A typical gmail UI] &lt;br /&gt;
:To: *@gmail.com (+expand)&lt;br /&gt;
:Cc: [Empty field]&lt;br /&gt;
:Bcc: [Empty field]&lt;br /&gt;
:Subj: New Friends&lt;br /&gt;
&lt;br /&gt;
:Hey all! Go ahead and introduce yourself!&lt;br /&gt;
&lt;br /&gt;
:[Caption:] If Google ever decides to shut down Gmail, they should let one user trigger a global reply-all apocalypse.&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
The number of this comic (2822) is the same as the number of [https://datatracker.ietf.org/doc/html/rfc2822 RFC 2822], which is the 2001 version of the email specification (it was replaced in 2008 by RFC 5322).&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Email]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2764:_Cosmological_Nostalgia_Content&amp;diff=310608</id>
		<title>2764: Cosmological Nostalgia Content</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2764:_Cosmological_Nostalgia_Content&amp;diff=310608"/>
				<updated>2023-04-18T09:54:52Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2764&lt;br /&gt;
| date      = April 17, 2023&lt;br /&gt;
| title     = Cosmological Nostalgia Content&lt;br /&gt;
| image     = cosmological_nostalgia_content_2x.png&lt;br /&gt;
| imagesize = 316x386px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Later renouncing clickbait, Einstein called his inclusion of cosmological content in general relativity the biggest blunder of his career.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|1=Created by a Z=90s KID - Needs more explanation of what the click bait in the title text refers to in the context of the Einstein blunder and why that belongs in this nostalgia comic. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
In cosmology Z is the symbol for {{w|Redshift|redshift}}, which is the phenomenon where photons travelling from an object that is moving away from the observer exhibits an increase in wavelength, resulting in its colour shifting towards the red end of the spectrum. Due to the accelerating expansion of the universe, objects that are further away from us are moving away from us at a faster velocity, resulting in higher redshift. As light has finite velocity, it takes a longer time for light from faraway objects to arrive at the observer.[https://en.wikipedia.org/wiki/Speed_of_light#Spaceflight_and_astronomy] So the light observed at the present must have been emitted by the faraway object further back in time. Megan is stating that only people that appear to the observer with high redshift (Z=10) will have existed sufficiently further back in the past to remember when the first stars were still forming. Megan also has a red tint (she is drawn in the colour [https://www.color-hex.com/color/462424 #462424], a very dark red; here is a comparison of #462424 and black: &amp;lt;span style=&amp;quot;background-color: #462424&amp;quot;&amp;gt;&amp;amp;emsp;&amp;lt;/span&amp;gt;&amp;amp;thinsp;&amp;lt;span style=&amp;quot;background-color: black&amp;quot;&amp;gt;&amp;amp;emsp;&amp;lt;/span&amp;gt;), indicating that she is one such Z=10 kid. This would mean that she was born around 500 million years after the universe was formed, or almost 13 billion years ago.&lt;br /&gt;
&lt;br /&gt;
White Hat, meanwhile, is referencing the fact that the universe has {{w|Scale factor (cosmology)|three eras}}: radiation dominated, matter dominated, and dark energy dominated. As the universe expands, the density of radiation and matter decreases due to their dilution, causing the universe, which first started off being dominated by radiation, to then become dominated by matter, then by dark energy (which does not dilute as the universe expands). Dark energy dominated era, which is when &amp;quot;dark energy started accelerating the universe's acceleration&amp;quot; started around 5 billion years ago while {{w|Evolution of bacteria|bacteria evolved around 3 billion years ago}}, meaning that they evolved closer to dark energy domination than to today.&lt;br /&gt;
&lt;br /&gt;
The title and title text play with the similarity in sound between 'content' and 'constant', segueing between web(page) content and cosmological constant.  &lt;br /&gt;
&lt;br /&gt;
The title text refers to Einstein's inclusion of the {{w|Cosmological constant|cosmological constant}} to his theory of general relativity in order to attain a static model of the universe, which he later removed, reportedly referring to it as his &amp;quot;biggest blunder&amp;quot;. Cosmological constant has, today, been generally accepted as a part of the current cosmological model, relating to the concept of dark energy.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Megan (with a red tint) holds both her arms out and up while she is talking to Cueball to the left of her. To the right of Megan White Hat is holding both arms out and down while he is talking to Ponytail to the right of him.]&lt;br /&gt;
:Megan: Only Z=10 kids remember watching the cool dark gas that suffused the universe being eaten away by expanding bubbles of plasma around the first stars!&lt;br /&gt;
:White Hat: Want to feel old? Bacteria evolved closer to when dark energy started accelerating the universe's expansion than to today!&lt;br /&gt;
&lt;br /&gt;
:[Caption below the panel]: &lt;br /&gt;
:Cosmological Nostalgia Content&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Megan]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Comics featuring real people]] &amp;lt;!-- Einstein --&amp;gt;&lt;br /&gt;
[[Category:Comics to make one feel old]]&lt;br /&gt;
[[Category:Comics with color]] &amp;lt;!-- Megan is red --&amp;gt;&lt;br /&gt;
[[Category:Astronomy]]&lt;br /&gt;
[[Category:Biology]] &amp;lt;!-- Evolution of Bacteria --&amp;gt;&lt;br /&gt;
[[Category:Clickbait]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2764:_Cosmological_Nostalgia_Content&amp;diff=310607</id>
		<title>2764: Cosmological Nostalgia Content</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2764:_Cosmological_Nostalgia_Content&amp;diff=310607"/>
				<updated>2023-04-18T09:52:22Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: an object moving away from the observer is not &amp;quot;further back in time&amp;quot; as such; they only *appear* younger because the *image* (light) seen by the observer was emitted further back in time; also clarify red tint&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2764&lt;br /&gt;
| date      = April 17, 2023&lt;br /&gt;
| title     = Cosmological Nostalgia Content&lt;br /&gt;
| image     = cosmological_nostalgia_content_2x.png&lt;br /&gt;
| imagesize = 316x386px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Later renouncing clickbait, Einstein called his inclusion of cosmological content in general relativity the biggest blunder of his career.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|1=Created by a Z=90s KID - Needs more explanation of what the click bait in the title text refers to in the context of the Einstein blunder and why that belongs in this nostalgia comic. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
In cosmology Z is the symbol for {{w|Redshift|redshift}}, which is the phenomenon where photons travelling from an object that is moving away from the observer exhibits an increase in wavelength, resulting in its colour shifting towards the red end of the spectrum. Due to the accelerating expansion of the universe, objects that are further away from us are moving away from us at a faster velocity, resulting in higher redshift. As light has finite velocity, it takes a longer time for light from faraway objects to arrive at the observer.[https://en.wikipedia.org/wiki/Speed_of_light#Spaceflight_and_astronomy] So the light observed at the present must have been emitted by the faraway object further back in time. Megan is stating that only people that appear to the observer with high redshift (Z=10) will have existed sufficiently further back in the past to remember when the first stars were still forming. Megan also has a red tint (she is drawn in the colour [https://www.color-hex.com/color/462424 #462424], which is a very dark red; here is a comparison of #462424 and black: &amp;lt;span style=&amp;quot;background-color: #462424&amp;quot;&amp;gt;&amp;amp;emsp;&amp;lt;/span&amp;gt;&amp;amp;thinsp;&amp;lt;span style=&amp;quot;background-color: black&amp;quot;&amp;gt;&amp;amp;emsp;&amp;lt;/span&amp;gt;), indicating that she is one such Z=10 kid. This would mean that she was born around 500 million years after the universe was formed, or almost 13 billion years ago.&lt;br /&gt;
&lt;br /&gt;
White Hat, meanwhile, is referencing the fact that the universe has {{w|Scale factor (cosmology)|three eras}}: radiation dominated, matter dominated, and dark energy dominated. As the universe expands, the density of radiation and matter decreases due to their dilution, causing the universe, which first started off being dominated by radiation, to then become dominated by matter, then by dark energy (which does not dilute as the universe expands). Dark energy dominated era, which is when &amp;quot;dark energy started accelerating the universe's acceleration&amp;quot; started around 5 billion years ago while {{w|Evolution of bacteria|bacteria evolved around 3 billion years ago}}, meaning that they evolved closer to dark energy domination than to today.&lt;br /&gt;
&lt;br /&gt;
The title and title text play with the similarity in sound between 'content' and 'constant', segueing between web(page) content and cosmological constant.  &lt;br /&gt;
&lt;br /&gt;
The title text refers to Einstein's inclusion of the {{w|Cosmological constant|cosmological constant}} to his theory of general relativity in order to attain a static model of the universe, which he later removed, reportedly referring to it as his &amp;quot;biggest blunder&amp;quot;. Cosmological constant has, today, been generally accepted as a part of the current cosmological model, relating to the concept of dark energy.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Megan (with a red tint) holds both her arms out and up while she is talking to Cueball to the left of her. To the right of Megan White Hat is holding both arms out and down while he is talking to Ponytail to the right of him.]&lt;br /&gt;
:Megan: Only Z=10 kids remember watching the cool dark gas that suffused the universe being eaten away by expanding bubbles of plasma around the first stars!&lt;br /&gt;
:White Hat: Want to feel old? Bacteria evolved closer to when dark energy started accelerating the universe's expansion than to today!&lt;br /&gt;
&lt;br /&gt;
:[Caption below the panel]: &lt;br /&gt;
:Cosmological Nostalgia Content&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Megan]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Comics featuring real people]] &amp;lt;!-- Einstein --&amp;gt;&lt;br /&gt;
[[Category:Comics to make one feel old]]&lt;br /&gt;
[[Category:Comics with color]] &amp;lt;!-- Megan is red --&amp;gt;&lt;br /&gt;
[[Category:Astronomy]]&lt;br /&gt;
[[Category:Biology]] &amp;lt;!-- Evolution of Bacteria --&amp;gt;&lt;br /&gt;
[[Category:Clickbait]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309967</id>
		<title>2757: Towed Message</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309967"/>
				<updated>2023-04-08T05:09:17Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Add reference to comic 1927: Tinder as pointed out by User:KingPenguin in the talk.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2757&lt;br /&gt;
| date      = March 31, 2023&lt;br /&gt;
| title     = Towed Message&lt;br /&gt;
| image     = towed_message_2x.png&lt;br /&gt;
| imagesize = 613x236px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = &amp;quot;Hi, what you do is fly over a designated zone and detach the--&amp;quot; &amp;quot;WE'RE SORRY, THE MOBILE CUSTOMER YOU ARE TRYING TO REACH IS OUT OF SERVICE&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an UNLANDABLE PLANE - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
In this comic, an {{w|Aerial_advertising#Banner_towing|aircraft is towing a banner}}. These aircraft do not take off or land with the banner in tow, but instead have a hook and release mechanism to [https://www.wgbh.org/news/local-news/2022/09/02/the-surprising-way-those-beach-plane-banners-get-airborne add and drop the banner in flight]. The banner ''could'' be interpreted as a recruitment ad by an aerial advertising company looking for additional pilots. But the humorous interpretation is that the banner is a distress signal – the pilot of the aircraft doesn't know how to land, and is hoping that someone will see the banner and give assistance. This makes the banner self-referential, because the presence of the banner (which makes landing difficult) is the very reason for displaying the banner. It is paradoxical, because printing and deploying the banner requires planning,{{Citation needed}} and if the pilot had anticipated that they would need assistance to land with a banner, they could have simply chosen not to deploy a banner in the first place.&lt;br /&gt;
&lt;br /&gt;
The title text features a caller who dials the &amp;quot;{{w|555 (telephone number)|555}}&amp;quot; phone number from the banner (see [[#Trivia|Trivia]]) and starts to explain the correct method for landing (detach the banner over a designated empty location then land the plane regularly), but the call is disconnected halfway through. Presumably the number is that of the pilot's cellphone. The call could have disconnected because the aircraft moved out of range of the {{w|cell site}} the phone was connected to and the phone failed to automatically connect to an adjacent cell; or possibly the cell network detected the call on {{w|Cellular_network#Frequency_reuse|multiple sites}} due to the phone's {{w|Mobile_phones_on_aircraft#Technical_discussion|altitude}} and disconnected it from the network; or the plane crashed and the phone was destroyed on impact.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A small propeller-driven high-wing airplane tows a banner from left to right. Around the plane and banner there are four small clouds, two above and two below. There are also five birds far in the background, three above and two below the banner. The text on the banner reads:]&lt;br /&gt;
:Do '''''you''''' know how to land a plane that's towing a banner? Call '''555-0127''' now!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
* Phone numbers beginning with &amp;quot;{{w|555 (telephone number)|555}}&amp;quot; are commonly used for {{w|fictitious telephone numbers}} in movies, TV shows, and other related media. The numbers 555-0100 through 555-0199 are specifically reserved for fictional use in North America, and are used to avoid inadvertently publishing someone's real phone number, which might get the owner of the number bombarded with unwanted calls from curious callers.&lt;br /&gt;
* Related concepts were shown in [[1897: Self Driving]] and [[1927: Tinder]].&lt;br /&gt;
* In a similar joke, a pilot used {{w|skywriting}} to write [https://laughingsquid.com/comedian-hires-pilot-to-skywrite-a-joke-over-los-angeles/ &amp;quot;How do I land?&amp;quot;] as a prank in 2013.&lt;br /&gt;
* Banner towing is generally safe for an experienced pilot, [https://www.aopa.org/news-and-media/all-news/2020/november/pilot/imperiled-pickup though not entirely without risk].&lt;br /&gt;
* The comic may have been inspired by a recent article in the Washington Post [https://www.washingtonpost.com/travel/2023/03/22/how-hard-is-it-land-plane/] on how a person who is not a pilot is unlikely to be able to land a plane.&lt;br /&gt;
* The aircraft in the illustration is similar to a {{w|Piper J-3 Cub}}, which is popular for towing banners due to its low operating cost and good performance at low {{w|airspeed}}.&lt;br /&gt;
* Aircraft communication is usually done using {{w|radio}}. The {{w|aircraft emergency frequency}} at 121.5 MHz is reserved for aircraft emergencies including pilots in distress and needing assistance.&lt;br /&gt;
* The emphasis on the word &amp;quot;you&amp;quot; in the banner is reminiscent of ads such as the well-known {{w|Uncle_Sam|US Army recruitment poster}}.&lt;br /&gt;
* This was the first year since 2017 that [[Randall]] missed the opportunity to release an [[:Category:April fools' comics|April fools' comics]] on April 1st (this comic was released on March 31st and the [[2758: My Favorite Things|next comic]] was released on April 3rd).&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Airplane banner]]&lt;br /&gt;
[[Category:Aviation]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309966</id>
		<title>2757: Towed Message</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309966"/>
				<updated>2023-04-08T05:04:12Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Undo revision 309909 by User:Kynde. Trivia already mentions 555 number. It's a strong meta-convention, interpreting it in-comic is unlikely. Add forward ref to 555 Trivia item and move to top. Move April's Fools to Trivia.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2757&lt;br /&gt;
| date      = March 31, 2023&lt;br /&gt;
| title     = Towed Message&lt;br /&gt;
| image     = towed_message_2x.png&lt;br /&gt;
| imagesize = 613x236px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = &amp;quot;Hi, what you do is fly over a designated zone and detach the--&amp;quot; &amp;quot;WE'RE SORRY, THE MOBILE CUSTOMER YOU ARE TRYING TO REACH IS OUT OF SERVICE&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an UNLANDABLE PLANE - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
In this comic, an {{w|Aerial_advertising#Banner_towing|aircraft is towing a banner}}. Notably, these aircraft do not take off or land with the banner in tow, but instead have a hook and release mechanism to [https://www.wgbh.org/news/local-news/2022/09/02/the-surprising-way-those-beach-plane-banners-get-airborne add and drop the banner in flight]. The banner ''could'' be interpreted as a recruitment ad by an aerial advertising company looking for additional pilots. But the humorous interpretation is that the banner is a distress signal – the pilot of the aircraft doesn't know how to land, and is hoping that someone will see the banner and give assistance. This makes the banner self-referential, because the presence of the banner (which makes landing difficult) is the very reason for displaying the banner. It is paradoxical, because printing and deploying the banner requires planning,{{Citation needed}} and if the pilot had anticipated that they would need assistance to land with a banner, they could have simply chosen not to deploy a banner in the first place.&lt;br /&gt;
&lt;br /&gt;
The title text features a caller who dials the &amp;quot;{{w|555 (telephone number)|555}}&amp;quot; phone number from the banner (see [[#Trivia|Trivia]]) and starts to explain the correct method for landing (detach the banner over a designated empty location then land the plane regularly), but the call is disconnected halfway through. Presumably the number is that of the pilot's cellphone. The call could have disconnected because the aircraft moved out of range of the {{w|cell site}} the phone was connected to and the phone failed to automatically connect to an adjacent cell; or possibly the cell network detected the call on {{w|Cellular_network#Frequency_reuse|multiple sites}} due to the phone's {{w|Mobile_phones_on_aircraft#Technical_discussion|altitude}} and disconnected it from the network; or the plane crashed and the phone was destroyed on impact.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A small prop-powered high-wing airplane tows a banner from left to right. Around the plane and banner there are four small clouds, two above and two below. There are also five birds far in the background, three above and two below the banner. The text on the banner reads:]&lt;br /&gt;
:Do '''''you''''' know how to land a plane that's towing a banner? Call '''555-0127''' now!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
* Phone numbers beginning with &amp;quot;{{w|555 (telephone number)|555}}&amp;quot; are commonly used for {{w|fictitious telephone numbers}} in movies, TV shows, and other related media. The numbers 555-0100 through 555-0199 are specifically reserved for fictional use in North America, and are used to avoid inadvertently publishing someone's real phone number, which might get the owner of the number bombarded with unwanted calls from curious callers.&lt;br /&gt;
* In a similar joke, a pilot used {{w|skywriting}} to write [https://laughingsquid.com/comedian-hires-pilot-to-skywrite-a-joke-over-los-angeles/ &amp;quot;How do I land?&amp;quot;] as a prank in 2013.&lt;br /&gt;
* A similar concept was shown in [[1897: Self Driving]].&lt;br /&gt;
* Banner towing is generally safe for an experienced pilot, [https://www.aopa.org/news-and-media/all-news/2020/november/pilot/imperiled-pickup though not entirely without risk].&lt;br /&gt;
* The comic may have been inspired by a recent article in the Washington Post [https://www.washingtonpost.com/travel/2023/03/22/how-hard-is-it-land-plane/] on how a person who is not a pilot is unlikely to be able to land a plane.&lt;br /&gt;
* The aircraft in the illustration is similar to a {{w|Piper J-3 Cub}}, which is popular for towing banners due to its low operating cost and good performance at low {{w|airspeed}}.&lt;br /&gt;
* Aircraft communication is usually done using {{w|radio}}. The {{w|aircraft emergency frequency}} at 121.5 MHz is reserved for aircraft emergencies including pilots in distress and needing assistance.&lt;br /&gt;
* The emphasis on the word &amp;quot;you&amp;quot; in the banner is reminiscent of ads such as the well-known {{w|Uncle_Sam|US Army recruitment poster}}.&lt;br /&gt;
* This was the first year since 2017 that [[Randall]] missed the opportunity to release an [[:Category:April fools' comics|April fools' comics]] on April 1st (this comic was released on March 31st and the [[2758: My Favorite Things|next comic]] was released on April 3rd).&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Airplane banner]]&lt;br /&gt;
[[Category:Aviation]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2760:_Paleontology_Museum&amp;diff=309965</id>
		<title>2760: Paleontology Museum</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2760:_Paleontology_Museum&amp;diff=309965"/>
				<updated>2023-04-08T04:46:53Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Explanation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2760&lt;br /&gt;
| date      = April 7, 2023&lt;br /&gt;
| title     = Paleontology Museum&lt;br /&gt;
| image     = paleontology_museum_2x.png&lt;br /&gt;
| imagesize = 485x155px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = Nowadays the only ones left that do anything are turtles.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a ROCK - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
In this comic, Cueball and Megan went to a {{w|paleontology}} museum and are looking at the {{w|Fossil#Permineralization|fossilized}} skeleton of a {{w|Stegosaurus}}.&lt;br /&gt;
Dinosaurs encompassed a wide variety of species that would be amazing to see alive today.  Cueball is remarking that the &amp;quot;bones&amp;quot; they are looking at [https://www.amnh.org/dinosaurs/dinosaur-bones are now actually rock] and used to be way cooler back when they were bones in the body of a dinosaur.&lt;br /&gt;
&lt;br /&gt;
The title text refers to {{w|turtles}}. Their hard shells make them seem like rocks that are able to move on their own.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
:[Cueball and Megan are in what is presumably a museum, and are viewing a stegosaurus skeleton.]&lt;br /&gt;
:Cueball: Wow.&lt;br /&gt;
:Cueball: Rocks used to be ''so cool.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Megan]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309726</id>
		<title>2757: Towed Message</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309726"/>
				<updated>2023-04-04T06:28:23Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Undo revision 309662 by User:Ɱ (555 number as reason for disconnect). Trivia already mentions 555 (merge explanations). It's a strong meta-convention, interpreting it in-comic is unlikely. Title text suggests number is valid.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2757&lt;br /&gt;
| date      = March 31, 2023&lt;br /&gt;
| title     = Towed Message&lt;br /&gt;
| image     = towed_message_2x.png&lt;br /&gt;
| imagesize = 613x236px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = &amp;quot;Hi, what you do is fly over a designated zone and detach the--&amp;quot; &amp;quot;WE'RE SORRY, THE MOBILE CUSTOMER YOU ARE TRYING TO REACH IS OUT OF SERVICE&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an UNLANDABLE PLANE - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
In this comic, an {{w|Aerial_advertising#Banner_towing|aircraft is towing a banner}}. Notably, these aircraft do not take off or land with the banner in tow, but instead have a hook and release mechanism to [https://www.wgbh.org/news/local-news/2022/09/02/the-surprising-way-those-beach-plane-banners-get-airborne add and drop the banner in flight]. The banner ''could'' be interpreted as a recruitment ad by an aerial advertising company looking for additional pilots. But the humorous interpretation is that the banner is a distress signal – the pilot of the aircraft doesn't know how to land, and is hoping that someone will see the banner and give assistance. This makes the banner self-referential, because the presence of the banner (which makes landing difficult) is the very reason for displaying the banner. It is paradoxical, because printing and deploying the banner requires planning,{{Citation needed}} and if the pilot had anticipated that they would need assistance to land with a banner, they could have simply chosen not to deploy a banner in the first place.&lt;br /&gt;
&lt;br /&gt;
The title text features a caller who dials the phone number from the banner and starts to explain the correct method for landing (detach the banner over a designated empty location then land the plane regularly), but the call is disconnected halfway through. Presumably the number is that of the pilot's cellphone. The call could have disconnected because the aircraft moved out of range of the {{w|cell site}} the phone was connected to and the phone failed to automatically connect to an adjacent cell; or possibly the cell network detected the call on {{w|Cellular_network#Frequency_reuse|multiple sites}} due to the phone's {{w|Mobile_phones_on_aircraft#Technical_discussion|altitude}} and disconnected it from the network; or the plane crashed and the phone was destroyed on impact. &lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
:[An airplane tows a banner. In the background, there are four small clouds and five birds]&lt;br /&gt;
&lt;br /&gt;
:[Text on the banner:] Do '''''you''''' know how to land a plane that's towing a banner? Call '''555-0127''' now!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
* In a similar joke, a pilot used {{w|skywriting}} to write [https://laughingsquid.com/comedian-hires-pilot-to-skywrite-a-joke-over-los-angeles/ &amp;quot;How do I land?&amp;quot;] as a prank in 2013.&lt;br /&gt;
* A similar concept was shown in [[1897: Self Driving]].&lt;br /&gt;
* Banner towing is generally safe for an experienced pilot, [https://www.aopa.org/news-and-media/all-news/2020/november/pilot/imperiled-pickup though not entirely without risk].&lt;br /&gt;
* The comic may have been inspired by a recent article in the Washington Post [https://www.washingtonpost.com/travel/2023/03/22/how-hard-is-it-land-plane/] on how a person who is not a pilot is unlikely to be able to land a plane.&lt;br /&gt;
* The aircraft in the illustration is similar to a {{w|Piper J-3 Cub}}, which is popular for towing banners due to its low operating cost and good performance at low {{w|airspeed}}.&lt;br /&gt;
* Aircraft communication is usually done using {{w|radio}}. The {{w|aircraft emergency frequency}} at 121.5 MHz is reserved for aircraft emergencies including pilots in distress and needing assistance.&lt;br /&gt;
* Phone numbers beginning with &amp;quot;{{w|555 (telephone number)|555}}&amp;quot; are commonly used for {{w|fictitious telephone numbers}} in movies, TV shows, and other related media. The numbers 555-0100 through 555-0199 are specifically reserved for fictional use in North America, and are used to avoid inadvertently publishing someone's real phone number, which might get the owner of the number bombarded with unwanted calls from curious callers.&lt;br /&gt;
* The emphasis on the word &amp;quot;you&amp;quot; in the banner is reminiscent of ads such as the well-known {{w|Uncle_Sam|US Army recruitment poster}}.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Airplane banner]]&lt;br /&gt;
[[Category:Aviation]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309623</id>
		<title>2757: Towed Message</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309623"/>
				<updated>2023-04-03T06:28:28Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Use visible quotes instead of italics for denoting word&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2757&lt;br /&gt;
| date      = March 31, 2023&lt;br /&gt;
| title     = Towed Message&lt;br /&gt;
| image     = towed_message_2x.png&lt;br /&gt;
| imagesize = 613x236px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = &amp;quot;Hi, what you do is fly over a designated zone and detach the--&amp;quot; &amp;quot;WE'RE SORRY, THE MOBILE CUSTOMER YOU ARE TRYING TO REACH IS OUT OF SERVICE&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an UNLANDABLE PLANE - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
In this comic, an {{w|Aerial_advertising#Banner_towing|aircraft is towing a banner}}. Notably, these aircraft do not take off or land with the banner in tow, but instead have a hook and release mechanism to [https://www.wgbh.org/news/local-news/2022/09/02/the-surprising-way-those-beach-plane-banners-get-airborne add and drop the banner in flight]. The banner ''could'' be interpreted as a recruitment ad by an aerial advertising company looking for additional pilots. But the humorous interpretation is that the banner is a distress signal – the pilot of the aircraft doesn't know how to land, and is hoping that someone will see the banner and give assistance. This makes the banner self-referential, because the presence of the banner (which makes landing difficult) is the very reason for displaying the banner. It is paradoxical, because printing and deploying the banner requires planning, and if the pilot had anticipated that they would need assistance to land with a banner, they could have simply chosen not to deploy a banner in the first place.&lt;br /&gt;
&lt;br /&gt;
The title text features a caller who dials the phone number from the banner and starts to explain the correct method for landing (detach the banner over a designated empty location then land the plane regularly), but the call is disconnected halfway through. Presumably the number is that of the pilot's cellphone. The call could have disconnected because the aircraft moved out of range of the {{w|cell site}} the phone was connected to and the phone failed to automatically connect to an adjacent cell; or possibly the cell network detected the call on {{w|Cellular_network#Frequency_reuse|multiple sites}} due to the phone's {{w|Mobile_phones_on_aircraft#Technical_discussion|altitude}} and disconnected it from the network; or the plane crashed and the phone was destroyed on impact.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
:[An airplane tows a banner. In the background, there are four small clouds and five birds]&lt;br /&gt;
&lt;br /&gt;
:[Text on the banner:] Do '''''you''''' know how to land a plane that's towing a banner? Call '''555-0127''' now!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
* In a similar joke, a pilot used {{w|skywriting}} to write [https://laughingsquid.com/comedian-hires-pilot-to-skywrite-a-joke-over-los-angeles/ &amp;quot;How do I land?&amp;quot;] as a prank in 2013.&lt;br /&gt;
* A similar concept was shown in [[1897: Self Driving]].&lt;br /&gt;
* Banner towing is generally safe for an experienced pilot, [https://www.aopa.org/news-and-media/all-news/2020/november/pilot/imperiled-pickup though not entirely without risk].&lt;br /&gt;
* The comic may have been inspired by a recent article in the Washington Post [https://www.washingtonpost.com/travel/2023/03/22/how-hard-is-it-land-plane/] on how a person who is not a pilot is unlikely to be able to land a plane.&lt;br /&gt;
* The aircraft in the illustration is similar to a {{w|Piper J-3 Cub}}, which is popular for towing banners due to its low operating cost and good performance at low {{w|airspeed}}.&lt;br /&gt;
* Aircraft communication is usually done using {{w|radio}}. The {{w|aircraft emergency frequency}} at 121.5 MHz is reserved for aircraft emergencies including pilots in distress and needing assistance.&lt;br /&gt;
* Phone numbers beginning with &amp;quot;{{w|555 (telephone number)|555}}&amp;quot; are commonly used for fictional phone numbers in movies etc.&lt;br /&gt;
* The emphasis on the word &amp;quot;you&amp;quot; in the banner is reminiscent of ads such as the well-known {{w|Uncle_Sam|US Army recruitment poster}}.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Airplane banner]]&lt;br /&gt;
[[Category:Aviation]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309622</id>
		<title>2757: Towed Message</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309622"/>
				<updated>2023-04-03T06:27:35Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Trivia */ move reference to Self Driving comic further up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2757&lt;br /&gt;
| date      = March 31, 2023&lt;br /&gt;
| title     = Towed Message&lt;br /&gt;
| image     = towed_message_2x.png&lt;br /&gt;
| imagesize = 613x236px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = &amp;quot;Hi, what you do is fly over a designated zone and detach the--&amp;quot; &amp;quot;WE'RE SORRY, THE MOBILE CUSTOMER YOU ARE TRYING TO REACH IS OUT OF SERVICE&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an UNLANDABLE PLANE - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
In this comic, an {{w|Aerial_advertising#Banner_towing|aircraft is towing a banner}}. Notably, these aircraft do not take off or land with the banner in tow, but instead have a hook and release mechanism to [https://www.wgbh.org/news/local-news/2022/09/02/the-surprising-way-those-beach-plane-banners-get-airborne add and drop the banner in flight]. The banner ''could'' be interpreted as a recruitment ad by an aerial advertising company looking for additional pilots. But the humorous interpretation is that the banner is a distress signal – the pilot of the aircraft doesn't know how to land, and is hoping that someone will see the banner and give assistance. This makes the banner self-referential, because the presence of the banner (which makes landing difficult) is the very reason for displaying the banner. It is paradoxical, because printing and deploying the banner requires planning, and if the pilot had anticipated that they would need assistance to land with a banner, they could have simply chosen not to deploy a banner in the first place.&lt;br /&gt;
&lt;br /&gt;
The title text features a caller who dials the phone number from the banner and starts to explain the correct method for landing (detach the banner over a designated empty location then land the plane regularly), but the call is disconnected halfway through. Presumably the number is that of the pilot's cellphone. The call could have disconnected because the aircraft moved out of range of the {{w|cell site}} the phone was connected to and the phone failed to automatically connect to an adjacent cell; or possibly the cell network detected the call on {{w|Cellular_network#Frequency_reuse|multiple sites}} due to the phone's {{w|Mobile_phones_on_aircraft#Technical_discussion|altitude}} and disconnected it from the network; or the plane crashed and the phone was destroyed on impact.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
:[An airplane tows a banner. In the background, there are four small clouds and five birds]&lt;br /&gt;
&lt;br /&gt;
:[Text on the banner:] Do '''''you''''' know how to land a plane that's towing a banner? Call '''555-0127''' now!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
* In a similar joke, a pilot used {{w|skywriting}} to write [https://laughingsquid.com/comedian-hires-pilot-to-skywrite-a-joke-over-los-angeles/ &amp;quot;How do I land?&amp;quot;] as a prank in 2013.&lt;br /&gt;
* A similar concept was shown in [[1897: Self Driving]].&lt;br /&gt;
* Banner towing is generally safe for an experienced pilot, [https://www.aopa.org/news-and-media/all-news/2020/november/pilot/imperiled-pickup though not entirely without risk].&lt;br /&gt;
* The comic may have been inspired by a recent article in the Washington Post [https://www.washingtonpost.com/travel/2023/03/22/how-hard-is-it-land-plane/] on how a person who is not a pilot is unlikely to be able to land a plane.&lt;br /&gt;
* The aircraft in the illustration is similar to a {{w|Piper J-3 Cub}}, which is popular for towing banners due to its low operating cost and good performance at low {{w|airspeed}}.&lt;br /&gt;
* Aircraft communication is usually done using {{w|radio}}. The {{w|aircraft emergency frequency}} at 121.5 MHz is reserved for aircraft emergencies including pilots in distress and needing assistance.&lt;br /&gt;
* Phone numbers beginning with &amp;quot;{{w|555 (telephone number)|555}}&amp;quot; are commonly used for fictional phone numbers in movies etc.&lt;br /&gt;
* The emphasis on the word ''you'' in the banner is reminiscent of ads such as the well-known {{w|Uncle_Sam|US Army recruitment poster}}.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Airplane banner]]&lt;br /&gt;
[[Category:Aviation]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309621</id>
		<title>2757: Towed Message</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309621"/>
				<updated>2023-04-03T06:26:27Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Move WaPo link to Trivia and edit (I don't think it is a likely inspiration)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2757&lt;br /&gt;
| date      = March 31, 2023&lt;br /&gt;
| title     = Towed Message&lt;br /&gt;
| image     = towed_message_2x.png&lt;br /&gt;
| imagesize = 613x236px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = &amp;quot;Hi, what you do is fly over a designated zone and detach the--&amp;quot; &amp;quot;WE'RE SORRY, THE MOBILE CUSTOMER YOU ARE TRYING TO REACH IS OUT OF SERVICE&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an UNLANDABLE PLANE - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
In this comic, an {{w|Aerial_advertising#Banner_towing|aircraft is towing a banner}}. Notably, these aircraft do not take off or land with the banner in tow, but instead have a hook and release mechanism to [https://www.wgbh.org/news/local-news/2022/09/02/the-surprising-way-those-beach-plane-banners-get-airborne add and drop the banner in flight]. The banner ''could'' be interpreted as a recruitment ad by an aerial advertising company looking for additional pilots. But the humorous interpretation is that the banner is a distress signal – the pilot of the aircraft doesn't know how to land, and is hoping that someone will see the banner and give assistance. This makes the banner self-referential, because the presence of the banner (which makes landing difficult) is the very reason for displaying the banner. It is paradoxical, because printing and deploying the banner requires planning, and if the pilot had anticipated that they would need assistance to land with a banner, they could have simply chosen not to deploy a banner in the first place.&lt;br /&gt;
&lt;br /&gt;
The title text features a caller who dials the phone number from the banner and starts to explain the correct method for landing (detach the banner over a designated empty location then land the plane regularly), but the call is disconnected halfway through. Presumably the number is that of the pilot's cellphone. The call could have disconnected because the aircraft moved out of range of the {{w|cell site}} the phone was connected to and the phone failed to automatically connect to an adjacent cell; or possibly the cell network detected the call on {{w|Cellular_network#Frequency_reuse|multiple sites}} due to the phone's {{w|Mobile_phones_on_aircraft#Technical_discussion|altitude}} and disconnected it from the network; or the plane crashed and the phone was destroyed on impact.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
:[An airplane tows a banner. In the background, there are four small clouds and five birds]&lt;br /&gt;
&lt;br /&gt;
:[Text on the banner:] Do '''''you''''' know how to land a plane that's towing a banner? Call '''555-0127''' now!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
* In a similar joke, a pilot used {{w|skywriting}} to write [https://laughingsquid.com/comedian-hires-pilot-to-skywrite-a-joke-over-los-angeles/ &amp;quot;How do I land?&amp;quot;] as a prank in 2013.&lt;br /&gt;
* Banner towing is generally safe for an experienced pilot, [https://www.aopa.org/news-and-media/all-news/2020/november/pilot/imperiled-pickup though not entirely without risk].&lt;br /&gt;
* The comic may have been inspired by a recent article in the Washington Post [https://www.washingtonpost.com/travel/2023/03/22/how-hard-is-it-land-plane/] on how a person who is not a pilot is unlikely to be able to land a plane.&lt;br /&gt;
* The aircraft in the illustration is similar to a {{w|Piper J-3 Cub}}, which is popular for towing banners due to its low operating cost and good performance at low {{w|airspeed}}.&lt;br /&gt;
* Aircraft communication is usually done using {{w|radio}}. The {{w|aircraft emergency frequency}} at 121.5 MHz is reserved for aircraft emergencies including pilots in distress and needing assistance.&lt;br /&gt;
* Phone numbers beginning with &amp;quot;{{w|555 (telephone number)|555}}&amp;quot; are commonly used for fictional phone numbers in movies etc.&lt;br /&gt;
* The emphasis on the word ''you'' in the banner is reminiscent of ads such as the well-known {{w|Uncle_Sam|US Army recruitment poster}}.&lt;br /&gt;
* A similar concept was shown in [[1897: Self Driving]].&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Airplane banner]]&lt;br /&gt;
[[Category:Aviation]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309620</id>
		<title>2757: Towed Message</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309620"/>
				<updated>2023-04-03T06:10:59Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Explanation */ reword User:Giggle's plane crash explanation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2757&lt;br /&gt;
| date      = March 31, 2023&lt;br /&gt;
| title     = Towed Message&lt;br /&gt;
| image     = towed_message_2x.png&lt;br /&gt;
| imagesize = 613x236px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = &amp;quot;Hi, what you do is fly over a designated zone and detach the--&amp;quot; &amp;quot;WE'RE SORRY, THE MOBILE CUSTOMER YOU ARE TRYING TO REACH IS OUT OF SERVICE&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an UNLANDABLE PLANE - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
In this comic, an {{w|Aerial_advertising#Banner_towing|aircraft is towing a banner}}. Notably, these aircraft do not take off or land with the banner in tow, but instead have a hook and release mechanism to [https://www.wgbh.org/news/local-news/2022/09/02/the-surprising-way-those-beach-plane-banners-get-airborne add and drop the banner in flight]. The banner ''could'' be interpreted as a recruitment ad by an aerial advertising company looking for additional pilots. But the humorous interpretation is that the banner is a distress signal – the pilot of the aircraft doesn't know how to land, and is hoping that someone will see the banner and give assistance. This makes the banner self-referential, because the presence of the banner (which makes landing difficult) is the very reason for displaying the banner. It is paradoxical, because printing and deploying the banner requires planning, and if the pilot had anticipated that they would need assistance to land with a banner, they could have simply chosen not to deploy a banner in the first place.&lt;br /&gt;
&lt;br /&gt;
The title text features a caller who dials the phone number from the banner and starts to explain the correct method for landing (detach the banner over a designated empty location then land the plane regularly), but the call is disconnected halfway through. Presumably the number is that of the pilot's cellphone. The call could have disconnected because the aircraft moved out of range of the {{w|cell site}} the phone was connected to and the phone failed to automatically connect to an adjacent cell; or possibly the cell network detected the call on {{w|Cellular_network#Frequency_reuse|multiple sites}} due to the phone's {{w|Mobile_phones_on_aircraft#Technical_discussion|altitude}} and disconnected it from the network; or the plane crashed and the phone was destroyed on impact.&lt;br /&gt;
&lt;br /&gt;
Perhaps the comic was inspired by a recent article in the Washington Post [https://www.washingtonpost.com/travel/2023/03/22/how-hard-is-it-land-plane/] on non-pilots being able to land planes.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
:[An airplane tows a banner. In the background, there are four small clouds and five birds]&lt;br /&gt;
&lt;br /&gt;
:[Text on the banner:] Do '''''you''''' know how to land a plane that's towing a banner? Call '''555-0127''' now!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
* In a similar joke, a pilot used {{w|skywriting}} to write [https://laughingsquid.com/comedian-hires-pilot-to-skywrite-a-joke-over-los-angeles/ &amp;quot;How do I land?&amp;quot;] as a prank in 2013.&lt;br /&gt;
* Banner towing is generally safe for an experienced pilot, [https://www.aopa.org/news-and-media/all-news/2020/november/pilot/imperiled-pickup though not entirely without risk].&lt;br /&gt;
* The aircraft in the illustration is similar to a {{w|Piper J-3 Cub}}, which is popular for towing banners due to its low operating cost and good performance at low {{w|airspeed}}.&lt;br /&gt;
* Aircraft communication is usually done using {{w|radio}}. The {{w|aircraft emergency frequency}} at 121.5 MHz is reserved for aircraft emergencies including pilots in distress and needing assistance.&lt;br /&gt;
* Phone numbers beginning with &amp;quot;{{w|555 (telephone number)|555}}&amp;quot; are commonly used for fictional phone numbers in movies etc.&lt;br /&gt;
* The emphasis on the word ''you'' in the banner is reminiscent of ads such as the well-known {{w|Uncle_Sam|US Army recruitment poster}}.&lt;br /&gt;
* A similar concept was shown in [[1897: Self Driving]].&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Airplane banner]]&lt;br /&gt;
[[Category:Aviation]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309581</id>
		<title>2757: Towed Message</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2757:_Towed_Message&amp;diff=309581"/>
				<updated>2023-04-01T13:39:26Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: rewrite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2757&lt;br /&gt;
| date      = March 31, 2023&lt;br /&gt;
| title     = Towed Message&lt;br /&gt;
| image     = towed_message_2x.png&lt;br /&gt;
| imagesize = 613x236px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = &amp;quot;Hi, what you do is fly over a designated zone and detach the--&amp;quot; &amp;quot;WE'RE SORRY, THE MOBILE CUSTOMER YOU ARE TRYING TO REACH IS OUT OF SERVICE&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by an UNLANDABLE PLANE - Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
In this comic, an {{w|Aerial_advertising#Banner_towing|aircraft is towing a banner}}. Notably, these aircraft do not take off or land with the banner in tow, but instead have a hook and release mechanism to [https://www.wgbh.org/news/local-news/2022/09/02/the-surprising-way-those-beach-plane-banners-get-airborne add and drop the banner in flight]. The banner ''could'' be interpreted as a recruitment ad by an aerial advertising company looking for additional pilots. But the humorous interpretation is that the banner is a distress signal – the pilot of the aircraft doesn't know how to land, and is hoping that someone will see the banner and give assistance. This makes the banner self-referential, because the presence of the banner (which makes landing difficult) is the very reason for displaying the banner. It is paradoxical, because printing and deploying the banner requires planning, and if the pilot had anticipated that he would need assistance to land with a banner he could have simply chosen not to deploy a banner in the first place.&lt;br /&gt;
&lt;br /&gt;
The title text features a caller who dials the phone number from the banner and starts to explain the correct method for landing (detach the banner over a designated empty location then land the plane regularly), but the call is disconnected halfway through. Presumably the number is that of the pilot's cellphone. The call could have disconnected because the aircraft moved out of range of the {{w|cell site}} the phone was connected to and the phone failed to automatically connect to an adjacent cell; or possibly the cell network detected the call on {{w|Cellular_network#Frequency_reuse|multiple sites}} due to the phone's {{w|Mobile_phones_on_aircraft#Technical_discussion|altitude}} and disconnected it from the network.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
:[An airplane tows a banner. In the background, there are four small clouds and five birds]&lt;br /&gt;
&lt;br /&gt;
:[Text on the banner:] Do '''''you''''' know how to land a plane that's towing a banner? Call '''555-0127''' now!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
* In a similar joke, a pilot used {{w|skywriting}} to write [https://laughingsquid.com/comedian-hires-pilot-to-skywrite-a-joke-over-los-angeles/ &amp;quot;How do I land?&amp;quot;] as a prank in 2013.&lt;br /&gt;
* Banner towing is generally safe for an experienced pilot, [https://www.aopa.org/news-and-media/all-news/2020/november/pilot/imperiled-pickup though not entirely without risk].&lt;br /&gt;
* The aircraft in the illustration is similar to a {{w|Piper J-3 Cub}}, which is popular for towing banners due to its low operating cost and good performance at low {{w|airspeed}}.&lt;br /&gt;
* Aircraft communication is usually done using {{w|radio}}. The {{w|aircraft emergency frequency}} at 121.5 MHz is reserved for aircraft emergencies including pilots in distress and needing assistance.&lt;br /&gt;
* Phone numbers beginning with &amp;quot;{{w|555 (telephone number)|555}}&amp;quot; are commonly used for fictional phone numbers in movies etc.&lt;br /&gt;
* The emphasis on the word ''you'' in the banner is reminiscent of ads such as the well-known {{w|Uncle_Sam|US Army recruitment poster}}.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Airplane banner]]&lt;br /&gt;
[[Category:Aviation]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=309580</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=309580"/>
				<updated>2023-04-01T11:36:43Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Move &amp;quot;Trivia&amp;quot; section to after &amp;quot;Transcript&amp;quot; for consistency with other pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly ({{w|String_(computer_science)#Length-prefixed|Pascal string}}). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be cut off.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it. &lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball). Some additional situations are described [[#Trivia|below]].&lt;br /&gt;
&lt;br /&gt;
The title text describes a password which is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password can ''never'' match such a stored password (which contains a null character).&lt;br /&gt;
** The password system accepts Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password become locked out of their account because they are no longer allowed to submit those characters.&lt;br /&gt;
** Passwords containing non-ASCII characters are in general problematic, because it might not be possible to type them on the keyboard used for logging in. For example, on Mac OS a logged-in user can change their password to one that contains emojis, but the keyboard on the login screen does not have good support for typing emojis.[https://medium.com/@hvost/why-you-should-not-use-emojis-in-your-passwords-b8db0607e169][https://apple.stackexchange.com/questions/202143/i-included-emoji-in-my-password-and-now-i-cant-log-in-to-my-account-on-yosemite].&lt;br /&gt;
** A business network may have multiple systems that connect to a central database of usernames and passwords. If the systems have different password handling rules, a user might find that some of the systems don't support their password (for example because the password contains a character which is forbidden on a particular system).&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* In C, a string is usually stored in a block of memory that is allocated to have a known size. The maximum size of string that can be stored in such a buffer is one character less than the buffer's size, since the last character is used for the null terminator. Language functions that operate on strings, such as those that return the length of a specified string or which compare two strings, look for the terminator as a marker. However, there is a risk in using this feature: if that terminator is somehow overwritten by some other value, a function which assumes that there is still a stopping point may go far beyond the intended region of memory before it happens to find an unrelated terminator or otherwise is forced to stop looking. This can have serious security implications, as well as the potential for bugs and crashes. Instead, safe programming uses versions of the string functions that include a specification of the maximum allowed length. For example, the &amp;lt;code&amp;gt;strlen()&amp;lt;/code&amp;gt; function takes a pointer to a string, counts the number of characters until it encounters a null terminator, and returns that number: the length of the string not including the terminator.  The &amp;lt;code&amp;gt;str'''n'''len()&amp;lt;/code&amp;gt; function takes a pointer to a string and a maximum length, and counts characters until it either finds a terminator or reaches the maximum.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299777</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299777"/>
				<updated>2022-11-24T13:06:23Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Trivia */ rewrite business network example added by @162.158.91.102. I found the original version hard to understand, I hope my interpretation is correct.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly ({{w|String_(computer_science)#Length-prefixed|Pascal string}}). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be cut off.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it. &lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball). Some additional situations are described [[#Trivia|below]].&lt;br /&gt;
&lt;br /&gt;
The title text describes a password which is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password can ''never'' match such a stored password (which contains a null character).&lt;br /&gt;
** The password system accepts Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password become locked out of their account because they are no longer allowed to submit those characters.&lt;br /&gt;
** Passwords containing non-ASCII characters are in general problematic, because it might not be possible to type them on the keyboard used for logging in. For example, on Mac OS a logged-in user can change their password to one that contains emojis, but the keyboard on the login screen does not have good support for typing emojis.[https://medium.com/@hvost/why-you-should-not-use-emojis-in-your-passwords-b8db0607e169][https://apple.stackexchange.com/questions/202143/i-included-emoji-in-my-password-and-now-i-cant-log-in-to-my-account-on-yosemite].&lt;br /&gt;
** A business network may have multiple systems that connect to a central database of usernames and passwords. If the systems have different password handling rules, a user might find that some of the systems don't support their password (for example because the password contains a character which is forbidden on a particular system).&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* In C, a string is usually stored in a block of memory that is allocated to have a known size. The maximum size of string that can be stored in such a buffer is one character less than the buffer's size, since the last character is used for the null terminator. Language functions that operate on strings, such as those that return the length of a specified string or which compare two strings, look for the terminator as a marker. However, there is a risk in using this feature: if that terminator is somehow overwritten by some other value, a function which assumes that there is still a stopping point may go far beyond the intended region of memory before it happens to find an unrelated terminator or otherwise is forced to stop looking. This can have serious security implications, as well as the potential for bugs and crashes. Instead, safe programming uses versions of the string functions that include a specification of the maximum allowed length. For example, the &amp;lt;code&amp;gt;strlen()&amp;lt;/code&amp;gt; function takes a pointer to a string, counts the number of characters until it encounters a null terminator, and returns that number: the length of the string not including the terminator.  The &amp;lt;code&amp;gt;str'''n'''len()&amp;lt;/code&amp;gt; function takes a pointer to a string and a maximum length, and counts characters until it either finds a terminator or reaches the maximum.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299774</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299774"/>
				<updated>2022-11-24T12:55:09Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Trivia */ rewrite emoji example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly ({{w|String_(computer_science)#Length-prefixed|Pascal string}}). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be cut off.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it. &lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball). Some additional situations are described [[#Trivia|below]].&lt;br /&gt;
&lt;br /&gt;
The title text describes a password which is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password can ''never'' match such a stored password (which contains a null character).&lt;br /&gt;
** The password system accepts Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password become locked out of their account because they are no longer allowed to submit those characters.&lt;br /&gt;
** Passwords containing non-ASCII characters are in general problematic, because it might not be possible to type them on the keyboard used for logging in. For example, on Mac OS a logged-in user can change their password to one that contains emojis, but the keyboard on the login screen does not have good support for typing emojis.[https://medium.com/@hvost/why-you-should-not-use-emojis-in-your-passwords-b8db0607e169][https://apple.stackexchange.com/questions/202143/i-included-emoji-in-my-password-and-now-i-cant-log-in-to-my-account-on-yosemite].&lt;br /&gt;
** If, in the context of a business network, multiple systems with different password handling were set by the same central program that allows characters that some systems allow, but others don't&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* In C, a string is usually stored in a block of memory that is allocated to have a known size. The maximum size of string that can be stored in such a buffer is one character less than the buffer's size, since the last character is used for the null terminator. Language functions that operate on strings, such as those that return the length of a specified string or which compare two strings, look for the terminator as a marker. However, there is a risk in using this feature: if that terminator is somehow overwritten by some other value, a function which assumes that there is still a stopping point may go far beyond the intended region of memory before it happens to find an unrelated terminator or otherwise is forced to stop looking. This can have serious security implications, as well as the potential for bugs and crashes. Instead, safe programming uses versions of the string functions that include a specification of the maximum allowed length. For example, the &amp;lt;code&amp;gt;strlen()&amp;lt;/code&amp;gt; function takes a pointer to a string, counts the number of characters until it encounters a null terminator, and returns that number: the length of the string not including the terminator.  The &amp;lt;code&amp;gt;str'''n'''len()&amp;lt;/code&amp;gt; function takes a pointer to a string and a maximum length, and counts characters until it either finds a terminator or reaches the maximum.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299773</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299773"/>
				<updated>2022-11-24T12:34:20Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Trivia */ edit Unicode/ASCII example (loosely based on the changes from Special:Diff/299765)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly ({{w|String_(computer_science)#Length-prefixed|Pascal string}}). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be cut off.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it. &lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball). Some additional situations are described [[#Trivia|below]].&lt;br /&gt;
&lt;br /&gt;
The title text describes a password which is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password can ''never'' match such a stored password (which contains a null character).&lt;br /&gt;
** The password system accepts Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password become locked out of their account because they are no longer allowed to submit those characters.&lt;br /&gt;
** The password system allows choosing a password with Unicode characters at first, but the user is later on unable to enter those characters. Users who included non-ASCII characters like é or ö in their password are thus locked out of their account because they are no longer allowed to submit those characters. This was an issue that an Apple programmer encountered when they [https://medium.com/@hvost/why-you-should-not-use-emojis-in-your-passwords-b8db0607e169 set emoji as their log-on password for their Mac], only to find that for security reasons Apple restricts the keyboard on the log-on screen to the default keyboard, which is unable to enter emoji.&lt;br /&gt;
** If, in the context of a business network, multiple systems with different password handling were set by the same central program that allows characters that some systems allow, but others don't&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* In C, a string is usually stored in a block of memory that is allocated to have a known size. The maximum size of string that can be stored in such a buffer is one character less than the buffer's size, since the last character is used for the null terminator. Language functions that operate on strings, such as those that return the length of a specified string or which compare two strings, look for the terminator as a marker. However, there is a risk in using this feature: if that terminator is somehow overwritten by some other value, a function which assumes that there is still a stopping point may go far beyond the intended region of memory before it happens to find an unrelated terminator or otherwise is forced to stop looking. This can have serious security implications, as well as the potential for bugs and crashes. Instead, safe programming uses versions of the string functions that include a specification of the maximum allowed length. For example, the &amp;lt;code&amp;gt;strlen()&amp;lt;/code&amp;gt; function takes a pointer to a string, counts the number of characters until it encounters a null terminator, and returns that number: the length of the string not including the terminator.  The &amp;lt;code&amp;gt;str'''n'''len()&amp;lt;/code&amp;gt; function takes a pointer to a string and a maximum length, and counts characters until it either finds a terminator or reaches the maximum.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299771</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299771"/>
				<updated>2022-11-24T11:54:11Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Trivia */ restore Unicode/ASCII example (it was tweaked to become a different example in Special:Diff/299765, but I think both should be kept) (currently has some duplication, will edit in a separate revision)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly ({{w|String_(computer_science)#Length-prefixed|Pascal string}}). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be cut off.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it. &lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball). Some additional situations are described [[#Trivia|below]].&lt;br /&gt;
&lt;br /&gt;
The title text describes a password which is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password can ''never'' match such a stored password (which contains a null character).&lt;br /&gt;
** The password system allows the input of Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password are locked out of their account because they are no longer allowed to submit those characters.&lt;br /&gt;
** The password system allows choosing a password with Unicode characters at first, but the user is later on unable to enter those characters. Users who included non-ASCII characters like é or ö in their password are thus locked out of their account because they are no longer allowed to submit those characters. This was an issue that an Apple programmer encountered when they [https://medium.com/@hvost/why-you-should-not-use-emojis-in-your-passwords-b8db0607e169 set emoji as their log-on password for their Mac], only to find that for security reasons Apple restricts the keyboard on the log-on screen to the default keyboard, which is unable to enter emoji.&lt;br /&gt;
** If, in the context of a business network, multiple systems with different password handling were set by the same central program that allows characters that some systems allow, but others don't&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* In C, a string is usually stored in a block of memory that is allocated to have a known size. The maximum size of string that can be stored in such a buffer is one character less than the buffer's size, since the last character is used for the null terminator. Language functions that operate on strings, such as those that return the length of a specified string or which compare two strings, look for the terminator as a marker. However, there is a risk in using this feature: if that terminator is somehow overwritten by some other value, a function which assumes that there is still a stopping point may go far beyond the intended region of memory before it happens to find an unrelated terminator or otherwise is forced to stop looking. This can have serious security implications, as well as the potential for bugs and crashes. Instead, safe programming uses versions of the string functions that include a specification of the maximum allowed length. For example, the &amp;lt;code&amp;gt;strlen()&amp;lt;/code&amp;gt; function takes a pointer to a string, counts the number of characters until it encounters a null terminator, and returns that number: the length of the string not including the terminator.  The &amp;lt;code&amp;gt;str'''n'''len()&amp;lt;/code&amp;gt; function takes a pointer to a string and a maximum length, and counts characters until it either finds a terminator or reaches the maximum.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299770</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299770"/>
				<updated>2022-11-24T11:49:35Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Explanation */ Mention that additional situations are described later. (I think it's best to have just 1 short &amp;amp; simple example in the explanation, and have the many others separate. The length-based example isn't perfect but it's simple.)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly ({{w|String_(computer_science)#Length-prefixed|Pascal string}}). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be cut off.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it. &lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball). Some additional situations are described [[#Trivia|below]].&lt;br /&gt;
&lt;br /&gt;
The title text describes a password which is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password can ''never'' match such a stored password (which contains a null character).&lt;br /&gt;
** The password system allows choosing a password with Unicode characters at first, but the user is later on unable to enter those characters. Users who included non-ASCII characters like é or ö in their password are thus locked out of their account because they are no longer allowed to submit those characters. This was an issue that an Apple programmer encountered when they [https://medium.com/@hvost/why-you-should-not-use-emojis-in-your-passwords-b8db0607e169 set emoji as their log-on password for their Mac], only to find that for security reasons Apple restricts the keyboard on the log-on screen to the default keyboard, which is unable to enter emoji.&lt;br /&gt;
** If, in the context of a business network, multiple systems with different password handling were set by the same central program that allows characters that some systems allow, but others don't&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* In C, a string is usually stored in a block of memory that is allocated to have a known size. The maximum size of string that can be stored in such a buffer is one character less than the buffer's size, since the last character is used for the null terminator. Language functions that operate on strings, such as those that return the length of a specified string or which compare two strings, look for the terminator as a marker. However, there is a risk in using this feature: if that terminator is somehow overwritten by some other value, a function which assumes that there is still a stopping point may go far beyond the intended region of memory before it happens to find an unrelated terminator or otherwise is forced to stop looking. This can have serious security implications, as well as the potential for bugs and crashes. Instead, safe programming uses versions of the string functions that include a specification of the maximum allowed length. For example, the &amp;lt;code&amp;gt;strlen()&amp;lt;/code&amp;gt; function takes a pointer to a string, counts the number of characters until it encounters a null terminator, and returns that number: the length of the string not including the terminator.  The &amp;lt;code&amp;gt;str'''n'''len()&amp;lt;/code&amp;gt; function takes a pointer to a string and a maximum length, and counts characters until it either finds a terminator or reaches the maximum.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299769</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299769"/>
				<updated>2022-11-24T11:43:51Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Undo revision 299657 by @Cwallenpoole (already mentioned in Trivia)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly ({{w|String_(computer_science)#Length-prefixed|Pascal string}}). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be cut off.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it. &lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball).&lt;br /&gt;
&lt;br /&gt;
The title text describes a password which is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password can ''never'' match such a stored password (which contains a null character).&lt;br /&gt;
** The password system allows choosing a password with Unicode characters at first, but the user is later on unable to enter those characters. Users who included non-ASCII characters like é or ö in their password are thus locked out of their account because they are no longer allowed to submit those characters. This was an issue that an Apple programmer encountered when they [https://medium.com/@hvost/why-you-should-not-use-emojis-in-your-passwords-b8db0607e169 set emoji as their log-on password for their Mac], only to find that for security reasons Apple restricts the keyboard on the log-on screen to the default keyboard, which is unable to enter emoji.&lt;br /&gt;
** If, in the context of a business network, multiple systems with different password handling were set by the same central program that allows characters that some systems allow, but others don't&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* In C, a string is usually stored in a block of memory that is allocated to have a known size. The maximum size of string that can be stored in such a buffer is one character less than the buffer's size, since the last character is used for the null terminator. Language functions that operate on strings, such as those that return the length of a specified string or which compare two strings, look for the terminator as a marker. However, there is a risk in using this feature: if that terminator is somehow overwritten by some other value, a function which assumes that there is still a stopping point may go far beyond the intended region of memory before it happens to find an unrelated terminator or otherwise is forced to stop looking. This can have serious security implications, as well as the potential for bugs and crashes. Instead, safe programming uses versions of the string functions that include a specification of the maximum allowed length. For example, the &amp;lt;code&amp;gt;strlen()&amp;lt;/code&amp;gt; function takes a pointer to a string, counts the number of characters until it encounters a null terminator, and returns that number: the length of the string not including the terminator.  The &amp;lt;code&amp;gt;str'''n'''len()&amp;lt;/code&amp;gt; function takes a pointer to a string and a maximum length, and counts characters until it either finds a terminator or reaches the maximum.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299656</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299656"/>
				<updated>2022-11-22T15:49:05Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Trivia */ in Unicode/ASCII scenario: &amp;quot;transmit&amp;quot; =&amp;gt; &amp;quot;submit&amp;quot; (I think &amp;quot;transmit&amp;quot; is too technical)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly ({{w|String_(computer_science)#Length-prefixed|Pascal string}}). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be truncated.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it. &lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball).&lt;br /&gt;
&lt;br /&gt;
The title text describes a password which is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password can ''never'' match such a stored password (which contains a null character).&lt;br /&gt;
** The password system allows the input of Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password are locked out of their account because they are no longer allowed to submit those characters.&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* In C, a string is usually stored in a block of memory that is allocated to have a known size. The maximum size of string that can be stored in such a buffer is one character less than the buffer's size, since the last character is used for the null terminator. Language functions that operate on strings, such as those that return the length of a specified string or which compare two strings, look for the terminator as a marker. However, there is a risk in using this feature: if that terminator is somehow overwritten by some other value, a function which assumes that there is still a stopping point may go far beyond the intended region of memory before it happens to find an unrelated terminator or otherwise is forced to stop looking. This can have serious security implications, as well as the potential for bugs and crashes. Instead, safe programming uses versions of the string functions that include a specification of the maximum allowed length. For example, the &amp;lt;code&amp;gt;strlen()&amp;lt;/code&amp;gt; function takes a pointer to a string, counts the number of characters until it encounters a null terminator, and returns that number: the length of the string not including the terminator.  The &amp;lt;code&amp;gt;str'''n'''len()&amp;lt;/code&amp;gt; function takes a pointer to a string and a maximum length, and counts characters until it either finds a terminator or reaches the maximum.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:2700:_Account_Problems&amp;diff=299643</id>
		<title>Talk:2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:2700:_Account_Problems&amp;diff=299643"/>
				<updated>2022-11-22T10:08:13Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: forgot to sign&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~ and don't delete this text. New comments should be added at the bottom.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What was going on with this page? [[User:Sarah the Pie(yes, the food)|Sarah the Pie(yes, the food)]] ([[User talk:Sarah the Pie(yes, the food)|talk]]) 00:58, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Vandalism. I mentioned it on the [[explain xkcd:Community portal/Admin requests|Admin requests]] page. It's getting reverted back to normal pretty quickly when it happens, but it will probably keep happening until an admin bans the person doing it, or the person doing it gets bored and stops on their own. [[User:Equites|Equites]] ([[User talk:Equites|talk]]) 01:05, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
are two nazis actually in an edit war or is it just one person astroturfing --[[Special:Contributions/162.158.63.100|162.158.63.100]] 01:18, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
I'm trying to combat it, but I'll only be able to keep this up for around another 20 minutes or so. [[User:InfoManiac|InfoManiac]] ([[User talk:InfoManiac|talk]]) 01:21, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Is TheusafBot ofline or something? Generally it handles this sort of stuff pretty well--[[User:Mapron01|Mapron01]] ([[User talk:Mapron01|talk]]) 01:44, 19 November 2022 (UTC)&lt;br /&gt;
::I'm pretty sure he is. [[User:Starstar|Starstar]] ([[User talk:Starstar|talk]]) 02:23, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
This reminds me of the time I used a character in my password that was the &amp;quot;stty kill&amp;quot; character for one workstation's default console terminal settings. I normally logged in via ssh, and occasionally logged in via xdm, but the time I tried logging in via the console, it really didn't like what was left of my password. [[Special:Contributions/162.158.62.180|162.158.62.180]] 01:25, 19 November 2022 (UTC)&lt;br /&gt;
:Ah, the good old days when ordinary printing characters were used for erase and kill. [[User:Barmar|Barmar]] ([[User talk:Barmar|talk]]) 01:43, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
Vandals are just looking for a fun time, generally. Solution: make it not a fun time for them. Revert their edits dryly, patiently, with no particular comment or anything. Eventually they will get bored and find something else to do. Or, perhaps they'll sit there vandalizing while we revert them, we dozens against probably just one vandal. But if you make your irritation clear, that's &amp;quot;fun&amp;quot; to them, and they'll keep at it with renewed vigour. [[Special:Contributions/108.162.216.239|108.162.216.239]] 01:37, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
I accidentally used a backspace character in a username one time. It caused all sorts of problems with my account.&lt;br /&gt;
&lt;br /&gt;
Also, I've never found the whole &amp;quot;The trolls will leave you alone if you don't move.&amp;quot; thing to be effective. But I've never found anything else to be effective at universally adjusting behavior either.&lt;br /&gt;
-Master Areth&lt;br /&gt;
&lt;br /&gt;
I wrote most of the current page after the first paragraph. It's a fairly sloppy first draft that could probably use some editing. Anyone who can should feel free to clean it up. Especially since the page is now protected (I'm not complaining; it was necessary) and so I can't edit it any more. [[User:Equites|Equites]] ([[User talk:Equites|talk]]) 05:57, 19 November 2022 (UTC)&lt;br /&gt;
:Hi [[User:Equites|Equites]], I [[Special:Diff/299457|rewrote]] the explanation, hope that's okay. I removed the references to the security aspect because I didn't think it was relevant. (Also pinging [[User:FrankHightower|FrankHightower]].) --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 07:59, 20 November 2022 (UTC)&lt;br /&gt;
::The first paragraph seems a bit superfluous - it's basically just a description of the comic, so isn't really adding anything to the explanation. Also, I think the bit about Pascal could come out of the second para - it doesn't appear to be relevant to what's going on in the comic, so it could just skip to the bit about null terminators.[[Special:Contributions/172.70.91.54|172.70.91.54]] 16:46, 21 November 2022 (UTC)&lt;br /&gt;
:::I removed the most superfluous part from the first paragraph, and pared down the explanation of Pascal strings ([[Special:Diff/299641|diff]]). I didn't remove the first paragraph entirely because I think it provides important context and details which are implicit in the comic. And I think it's important to at least mention Pascal strings because that sets the scene for the explanation of C strings (which ''don't'' explicitly store the length). --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 10:08, 22 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
Seems to be another Tech issue comic, its a tech issue with Cueball talking to Megan and the tech issue is extremely cursed. Should we add this one?[[Special:Contributions/162.158.22.98|162.158.22.98]] 06:00, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;since there is no sequence of keys he could type that would result in a null terminator&amp;quot; ... I can type a NULL (ASCII 00) just fine in my editor on Linux (ctrl-v ctrl-@, the latter I type as ctrl-shift-2). However, I am not quite sure how to phrase this in the explanation without sounding like &amp;quot;Áctually! ....&amp;quot;  [[User:henrikar|Henri]]&lt;br /&gt;
:I am amused that both in the main text and in this comment something has converted the &amp;quot;at sign&amp;quot; into [email protected].&lt;br /&gt;
&lt;br /&gt;
The title text is likely a reference to [https://www.reddit.com/r/ProgrammerHumor/comments/yqof9f/comment/ivrd9ur/ this reddit post]. [[User:Pb|Pb]] ([[User talk:Pb|talk]]) 07:06, 19 November 2022 (UTC)&lt;br /&gt;
: I don't think that's likely... --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 08:50, 20 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
The only thing is I'm pretty sure it's not terribly difficult to enter a null string character, you just have to know what it is. On a PC with a keyboard that has a number pad, you can press Alt-[Number] to enter special characters using their ASCII code (Alt-65 will get &amp;quot;A&amp;quot;, Alt-8 is backspace or delete, I forget which but I think BS, etc. MIGHT need leading zeroes to be 3 digits). The 0 to 31 codes - 32 is space, starting the normal characters - tend to have all the special characters, I think null string is 0? [[User:NiceGuy1|NiceGuy1]] ([[User talk:NiceGuy1|talk]]) 04:14, 20 November 2022 (UTC)&lt;br /&gt;
:It is. And (with caveats, depending upon other issues and circumstances) Alt-numpad0 would give me the null-char wherever it's practical and not blocked (intentionally or just because it isn't specifically catered for).[[Special:Contributions/172.71.178.206|172.71.178.206]] 15:25, 20 November 2022 (UTC)&lt;br /&gt;
::I know a sysadmin friend of mine had to help a user whose account name was &amp;quot;🦙&amp;quot; (The Llama unicode symbol) and he was on a computer where not all layers between the username field and the password authentication understood unicode. Examples like this will happen in real life. [[User:IIVQ|IIVQ]] ([[User talk:IIVQ|talk]]) 11:16, 21 November 2022 (UTC)&lt;br /&gt;
:::Were they Spanish, by any chance?[[Special:Contributions/172.70.90.173|172.70.90.173]] 16:49, 21 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
As Cueball is showing and handing over his laptop, I don't think the issue is about a website account (where he could probably do a password reset), but his local account on the laptop, of which he is now locked out, and hopes Poneytail can break into it? [[User:Ghen|ghen]] ([[User talk:Ghen|talk]]) 18:28, 19 November 2022 (UTC)&lt;br /&gt;
:Good point, updated to avoid referring to &amp;quot;website&amp;quot; specifically. (Another possibility is that it is the password for some installed application.) --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 07:17, 20 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters.&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
There are also cases where page or application is updated with the expectation that old user accounts will still be working, but updated page no longer accepts same characters (or number of characters) than the old one, locking some people out. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 01:35, 20 November 2022 (UTC)&lt;br /&gt;
:I know from experience that (at least one version of) Windows Server allows very long passwords and that the Windows Server installer will accept very long passwords when setting up the initial admin account, but that the installer silently truncates the password to a &amp;quot;normal&amp;quot; length when actually setting up said account. If you aren't aware of this (and you have a client that uses ridiculously long passwords), you can easily trick yourself into thinking you mistyped and locked yourself out, and have to reinstall. Once installed with a shorter password, it can be changed to whatever length you want.[[Special:Contributions/172.70.134.122|172.70.134.122]] 16:16, 21 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
Concerning the password described in the title text. If the characters are used in the order they appear in the Unicode Table the password starts with the Null String Terminator and therefor you will essentially end up with an empty password if C or a programming language is used handling strings the same way. [[User:Kimmerin|Kimmerin]] ([[User talk:Kimmerin|talk]]) 12:51, 21 November 2022 (UTC)&lt;br /&gt;
: Good point, added ([[Special:Permalink/299540|snapshot]]). --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 15:38, 21 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
I've actually had this problem long ago; I used the @ sign as part of my password, and it didn't let me log in anymore. Some systems in the good old days (I think it was an FTP server) used the @ character to separate username and password when authenticating. Also, I am still running into this problem sometimes with usernames (emails) allowing &amp;quot;+&amp;quot; in the address on registration, but not when logging in. [[User:Pbb|Pbb]] ([[User talk:Pbb|talk]])&lt;br /&gt;
:The @-sign is used to separate authentication and hostname information in an URL, e.g. http://user:passwd@server.example.com:port/... Within an FTP-session it was commonly used in FTP-proxy scenarios, i.e. you've connected to an internal FTP-proxy-server providing username and hostname as username in the form username@remoteserver.example.com (similar to the syntax used for scp/sftp) and the password as is. An @-sign in the password in the latter shouldn't have any effect and within the URL an @-character would get URL-encoded not having an effect, either. URL-encoding might be the reason for the last problem, you've described leading to a space in the stored value on the server side. [[User:Kimmerin|Kimmerin]] ([[User talk:Kimmerin|talk]]) 15:50, 21 November 2022 (UTC)&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:2700:_Account_Problems&amp;diff=299642</id>
		<title>Talk:2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:2700:_Account_Problems&amp;diff=299642"/>
				<updated>2022-11-22T10:06:44Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: reply to @172.70.91.54 re superfluous first para and Pascal strings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~ and don't delete this text. New comments should be added at the bottom.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What was going on with this page? [[User:Sarah the Pie(yes, the food)|Sarah the Pie(yes, the food)]] ([[User talk:Sarah the Pie(yes, the food)|talk]]) 00:58, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Vandalism. I mentioned it on the [[explain xkcd:Community portal/Admin requests|Admin requests]] page. It's getting reverted back to normal pretty quickly when it happens, but it will probably keep happening until an admin bans the person doing it, or the person doing it gets bored and stops on their own. [[User:Equites|Equites]] ([[User talk:Equites|talk]]) 01:05, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
are two nazis actually in an edit war or is it just one person astroturfing --[[Special:Contributions/162.158.63.100|162.158.63.100]] 01:18, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
I'm trying to combat it, but I'll only be able to keep this up for around another 20 minutes or so. [[User:InfoManiac|InfoManiac]] ([[User talk:InfoManiac|talk]]) 01:21, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Is TheusafBot ofline or something? Generally it handles this sort of stuff pretty well--[[User:Mapron01|Mapron01]] ([[User talk:Mapron01|talk]]) 01:44, 19 November 2022 (UTC)&lt;br /&gt;
::I'm pretty sure he is. [[User:Starstar|Starstar]] ([[User talk:Starstar|talk]]) 02:23, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
This reminds me of the time I used a character in my password that was the &amp;quot;stty kill&amp;quot; character for one workstation's default console terminal settings. I normally logged in via ssh, and occasionally logged in via xdm, but the time I tried logging in via the console, it really didn't like what was left of my password. [[Special:Contributions/162.158.62.180|162.158.62.180]] 01:25, 19 November 2022 (UTC)&lt;br /&gt;
:Ah, the good old days when ordinary printing characters were used for erase and kill. [[User:Barmar|Barmar]] ([[User talk:Barmar|talk]]) 01:43, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
Vandals are just looking for a fun time, generally. Solution: make it not a fun time for them. Revert their edits dryly, patiently, with no particular comment or anything. Eventually they will get bored and find something else to do. Or, perhaps they'll sit there vandalizing while we revert them, we dozens against probably just one vandal. But if you make your irritation clear, that's &amp;quot;fun&amp;quot; to them, and they'll keep at it with renewed vigour. [[Special:Contributions/108.162.216.239|108.162.216.239]] 01:37, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
I accidentally used a backspace character in a username one time. It caused all sorts of problems with my account.&lt;br /&gt;
&lt;br /&gt;
Also, I've never found the whole &amp;quot;The trolls will leave you alone if you don't move.&amp;quot; thing to be effective. But I've never found anything else to be effective at universally adjusting behavior either.&lt;br /&gt;
-Master Areth&lt;br /&gt;
&lt;br /&gt;
I wrote most of the current page after the first paragraph. It's a fairly sloppy first draft that could probably use some editing. Anyone who can should feel free to clean it up. Especially since the page is now protected (I'm not complaining; it was necessary) and so I can't edit it any more. [[User:Equites|Equites]] ([[User talk:Equites|talk]]) 05:57, 19 November 2022 (UTC)&lt;br /&gt;
:Hi [[User:Equites|Equites]], I [[Special:Diff/299457|rewrote]] the explanation, hope that's okay. I removed the references to the security aspect because I didn't think it was relevant. (Also pinging [[User:FrankHightower|FrankHightower]].) --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 07:59, 20 November 2022 (UTC)&lt;br /&gt;
::The first paragraph seems a bit superfluous - it's basically just a description of the comic, so isn't really adding anything to the explanation. Also, I think the bit about Pascal could come out of the second para - it doesn't appear to be relevant to what's going on in the comic, so it could just skip to the bit about null terminators.[[Special:Contributions/172.70.91.54|172.70.91.54]] 16:46, 21 November 2022 (UTC)&lt;br /&gt;
:::I removed the most superfluous part from the first paragraph, and pared down the explanation of Pascal strings ([[Special:Diff/299641|diff]]). I didn't remove the first paragraph entirely because I think it provides important context and details which are implicit in the comic. And I think it's important to at least mention Pascal strings because that sets the scene for the explanation of C strings (which ''don't'' explicitly store the length).&lt;br /&gt;
&lt;br /&gt;
Seems to be another Tech issue comic, its a tech issue with Cueball talking to Megan and the tech issue is extremely cursed. Should we add this one?[[Special:Contributions/162.158.22.98|162.158.22.98]] 06:00, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;since there is no sequence of keys he could type that would result in a null terminator&amp;quot; ... I can type a NULL (ASCII 00) just fine in my editor on Linux (ctrl-v ctrl-@, the latter I type as ctrl-shift-2). However, I am not quite sure how to phrase this in the explanation without sounding like &amp;quot;Áctually! ....&amp;quot;  [[User:henrikar|Henri]]&lt;br /&gt;
:I am amused that both in the main text and in this comment something has converted the &amp;quot;at sign&amp;quot; into [email protected].&lt;br /&gt;
&lt;br /&gt;
The title text is likely a reference to [https://www.reddit.com/r/ProgrammerHumor/comments/yqof9f/comment/ivrd9ur/ this reddit post]. [[User:Pb|Pb]] ([[User talk:Pb|talk]]) 07:06, 19 November 2022 (UTC)&lt;br /&gt;
: I don't think that's likely... --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 08:50, 20 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
The only thing is I'm pretty sure it's not terribly difficult to enter a null string character, you just have to know what it is. On a PC with a keyboard that has a number pad, you can press Alt-[Number] to enter special characters using their ASCII code (Alt-65 will get &amp;quot;A&amp;quot;, Alt-8 is backspace or delete, I forget which but I think BS, etc. MIGHT need leading zeroes to be 3 digits). The 0 to 31 codes - 32 is space, starting the normal characters - tend to have all the special characters, I think null string is 0? [[User:NiceGuy1|NiceGuy1]] ([[User talk:NiceGuy1|talk]]) 04:14, 20 November 2022 (UTC)&lt;br /&gt;
:It is. And (with caveats, depending upon other issues and circumstances) Alt-numpad0 would give me the null-char wherever it's practical and not blocked (intentionally or just because it isn't specifically catered for).[[Special:Contributions/172.71.178.206|172.71.178.206]] 15:25, 20 November 2022 (UTC)&lt;br /&gt;
::I know a sysadmin friend of mine had to help a user whose account name was &amp;quot;🦙&amp;quot; (The Llama unicode symbol) and he was on a computer where not all layers between the username field and the password authentication understood unicode. Examples like this will happen in real life. [[User:IIVQ|IIVQ]] ([[User talk:IIVQ|talk]]) 11:16, 21 November 2022 (UTC)&lt;br /&gt;
:::Were they Spanish, by any chance?[[Special:Contributions/172.70.90.173|172.70.90.173]] 16:49, 21 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
As Cueball is showing and handing over his laptop, I don't think the issue is about a website account (where he could probably do a password reset), but his local account on the laptop, of which he is now locked out, and hopes Poneytail can break into it? [[User:Ghen|ghen]] ([[User talk:Ghen|talk]]) 18:28, 19 November 2022 (UTC)&lt;br /&gt;
:Good point, updated to avoid referring to &amp;quot;website&amp;quot; specifically. (Another possibility is that it is the password for some installed application.) --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 07:17, 20 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters.&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
There are also cases where page or application is updated with the expectation that old user accounts will still be working, but updated page no longer accepts same characters (or number of characters) than the old one, locking some people out. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 01:35, 20 November 2022 (UTC)&lt;br /&gt;
:I know from experience that (at least one version of) Windows Server allows very long passwords and that the Windows Server installer will accept very long passwords when setting up the initial admin account, but that the installer silently truncates the password to a &amp;quot;normal&amp;quot; length when actually setting up said account. If you aren't aware of this (and you have a client that uses ridiculously long passwords), you can easily trick yourself into thinking you mistyped and locked yourself out, and have to reinstall. Once installed with a shorter password, it can be changed to whatever length you want.[[Special:Contributions/172.70.134.122|172.70.134.122]] 16:16, 21 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
Concerning the password described in the title text. If the characters are used in the order they appear in the Unicode Table the password starts with the Null String Terminator and therefor you will essentially end up with an empty password if C or a programming language is used handling strings the same way. [[User:Kimmerin|Kimmerin]] ([[User talk:Kimmerin|talk]]) 12:51, 21 November 2022 (UTC)&lt;br /&gt;
: Good point, added ([[Special:Permalink/299540|snapshot]]). --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 15:38, 21 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
I've actually had this problem long ago; I used the @ sign as part of my password, and it didn't let me log in anymore. Some systems in the good old days (I think it was an FTP server) used the @ character to separate username and password when authenticating. Also, I am still running into this problem sometimes with usernames (emails) allowing &amp;quot;+&amp;quot; in the address on registration, but not when logging in. [[User:Pbb|Pbb]] ([[User talk:Pbb|talk]])&lt;br /&gt;
:The @-sign is used to separate authentication and hostname information in an URL, e.g. http://user:passwd@server.example.com:port/... Within an FTP-session it was commonly used in FTP-proxy scenarios, i.e. you've connected to an internal FTP-proxy-server providing username and hostname as username in the form username@remoteserver.example.com (similar to the syntax used for scp/sftp) and the password as is. An @-sign in the password in the latter shouldn't have any effect and within the URL an @-character would get URL-encoded not having an effect, either. URL-encoding might be the reason for the last problem, you've described leading to a space in the stored value on the server side. [[User:Kimmerin|Kimmerin]] ([[User talk:Kimmerin|talk]]) 15:50, 21 November 2022 (UTC)&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299641</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299641"/>
				<updated>2022-11-22T09:59:56Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Explanation */ remove the most superfluous part from the first paragraph, and pare down explanation of Pascal strings (in response to discussion comments by @172.70.91.54)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly ({{w|String_(computer_science)#Length-prefixed|Pascal string}}). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be truncated.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it. &lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball).&lt;br /&gt;
&lt;br /&gt;
The title text describes a password which is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password doesn't match the stored password (which contains a null character).&lt;br /&gt;
** The password system allows the input of Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password are locked out of their account because they are no longer allowed to type those characters.&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* In C, a string is usually stored in a block of memory that is allocated to have a known size. The maximum size of string that can be stored in such a buffer is one character less than the buffer's size, since the last character is used for the null terminator. Language functions that operate on strings, such as those that return the length of a specified string or which compare two strings, look for the terminator as a marker. However, there is a risk in using this feature: if that terminator is somehow overwritten by some other value, a function which assumes that it's a stopping point may go far beyond the intended region of memory before it happens to find a terminator. This can have serious security implications, as well as the potential for bugs and crashes. Instead, safe programming uses versions of the string functions that include a specification of the maximum allowed length. For example, the &amp;lt;code&amp;gt;strlen()&amp;lt;/code&amp;gt; function takes a pointer to a string, counts the number of characters until it encounters a null terminator, and returns that number: the length of the string not including the terminator.  The &amp;lt;code&amp;gt;str'''n'''len()&amp;lt;/code&amp;gt; function takes a pointer to a string and a maximum length, and counts characters until it either finds a terminator or reaches the maximum.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299640</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299640"/>
				<updated>2022-11-22T09:53:20Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: &amp;quot;source string&amp;quot; =&amp;gt; &amp;quot;string&amp;quot; (I originally used &amp;quot;middle of the string&amp;quot; loosely to contrast with end of the string, but as @172.71.178.136 pointed out it's not accurate; I dislike &amp;quot;source&amp;quot; (not used elsewhere)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in. Ponytail responds in disbelief, and Cueball defends his actions by saying that the instructions said to use special characters.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly; this representation is often called a {{w|String_(computer_science)#Length-prefixed|Pascal string}} (after the programming language {{w|Pascal}}, which uses this representation). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be truncated.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it. &lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball).&lt;br /&gt;
&lt;br /&gt;
The title text describes a password which is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password doesn't match the stored password (which contains a null character).&lt;br /&gt;
** The password system allows the input of Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password are locked out of their account because they are no longer allowed to type those characters.&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* In C, a string is usually stored in a block of memory that is allocated to have a known size. The maximum size of string that can be stored in such a buffer is one character less than the buffer's size, since the last character is used for the null terminator. Language functions that operate on strings, such as those that return the length of a specified string or which compare two strings, look for the terminator as a marker. However, there is a risk in using this feature: if that terminator is somehow overwritten by some other value, a function which assumes that it's a stopping point may go far beyond the intended region of memory before it happens to find a terminator. This can have serious security implications, as well as the potential for bugs and crashes. Instead, safe programming uses versions of the string functions that include a specification of the maximum allowed length. For example, the &amp;lt;code&amp;gt;strlen()&amp;lt;/code&amp;gt; function takes a pointer to a string, counts the number of characters until it encounters a null terminator, and returns that number: the length of the string not including the terminator.  The &amp;lt;code&amp;gt;str'''n'''len()&amp;lt;/code&amp;gt; function takes a pointer to a string and a maximum length, and counts characters until it either finds a terminator or reaches the maximum.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299639</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299639"/>
				<updated>2022-11-22T09:45:07Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: Move @BunsenH's paragraph about C string functions to Trivia, because it is not directly relevant to the comic. (Also move the additional situations nearer the top, so they won't get obscured by the technical points.)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in. Ponytail responds in disbelief, and Cueball defends his actions by saying that the instructions said to use special characters.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly; this representation is often called a {{w|String_(computer_science)#Length-prefixed|Pascal string}} (after the programming language {{w|Pascal}}, which uses this representation). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the source string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be truncated.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it. &lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball).&lt;br /&gt;
&lt;br /&gt;
The title text describes a password which is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password doesn't match the stored password (which contains a null character).&lt;br /&gt;
** The password system allows the input of Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password are locked out of their account because they are no longer allowed to type those characters.&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* In C, a string is usually stored in a block of memory that is allocated to have a known size. The maximum size of string that can be stored in such a buffer is one character less than the buffer's size, since the last character is used for the null terminator. Language functions that operate on strings, such as those that return the length of a specified string or which compare two strings, look for the terminator as a marker. However, there is a risk in using this feature: if that terminator is somehow overwritten by some other value, a function which assumes that it's a stopping point may go far beyond the intended region of memory before it happens to find a terminator. This can have serious security implications, as well as the potential for bugs and crashes. Instead, safe programming uses versions of the string functions that include a specification of the maximum allowed length. For example, the &amp;lt;code&amp;gt;strlen()&amp;lt;/code&amp;gt; function takes a pointer to a string, counts the number of characters until it encounters a null terminator, and returns that number: the length of the string not including the terminator.  The &amp;lt;code&amp;gt;str'''n'''len()&amp;lt;/code&amp;gt; function takes a pointer to a string and a maximum length, and counts characters until it either finds a terminator or reaches the maximum.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299544</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299544"/>
				<updated>2022-11-21T15:49:30Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Explanation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in. Ponytail responds in disbelief, and Cueball defends his actions by saying that the instructions said to use special characters.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly; this representation is often called a {{w|String_(computer_science)#Length-prefixed|Pascal string}} (after the programming language {{w|Pascal}}, which uses this representation). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the middle of the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be truncated.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it.&lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball).&lt;br /&gt;
&lt;br /&gt;
The title text describes a password which is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password doesn't match the stored password (which contains a null character).&lt;br /&gt;
** The password system allows the input of Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password are locked out of their account because they are no longer allowed to type those characters.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299543</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299543"/>
				<updated>2022-11-21T15:47:07Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Explanation */ the title text *might* be referring to Cueball's situation (because as pointed out by Kimmerin, Unicode includes the null character); I don't think it's likely, but still&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in. Ponytail responds in disbelief, and Cueball defends his actions by saying that the instructions said to use special characters.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly; this representation is often called a {{w|String_(computer_science)#Length-prefixed|Pascal string}} (after the programming language {{w|Pascal}}, which uses this representation). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the middle of the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be truncated.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it.&lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball).&lt;br /&gt;
&lt;br /&gt;
The title text describes a situation where a person's password is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password doesn't match the stored password (which contains a null character).&lt;br /&gt;
** The password system allows the input of Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password are locked out of their account because they are no longer allowed to type those characters.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299542</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299542"/>
				<updated>2022-11-21T15:39:54Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Explanation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in. Ponytail responds in disbelief, and Cueball defends his actions by saying that the instructions said to use special characters.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly; this representation is often called a {{w|String_(computer_science)#Length-prefixed|Pascal string}} (after the programming language {{w|Pascal}}, which uses this representation). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the middle of the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be truncated.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it.&lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball).&lt;br /&gt;
&lt;br /&gt;
The title text describes a different situation, where a person's password is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing each Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password doesn't match the stored password (which contains a null character).&lt;br /&gt;
** The password system allows the input of Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password are locked out of their account because they are no longer allowed to type those characters.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=Talk:2700:_Account_Problems&amp;diff=299541</id>
		<title>Talk:2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=Talk:2700:_Account_Problems&amp;diff=299541"/>
				<updated>2022-11-21T15:38:28Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: notify User:Kimmerin that I added his point about title text and null character to the explanation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--Please sign your posts with ~~~~ and don't delete this text. New comments should be added at the bottom.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What was going on with this page? [[User:Sarah the Pie(yes, the food)|Sarah the Pie(yes, the food)]] ([[User talk:Sarah the Pie(yes, the food)|talk]]) 00:58, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Vandalism. I mentioned it on the [[explain xkcd:Community portal/Admin requests|Admin requests]] page. It's getting reverted back to normal pretty quickly when it happens, but it will probably keep happening until an admin bans the person doing it, or the person doing it gets bored and stops on their own. [[User:Equites|Equites]] ([[User talk:Equites|talk]]) 01:05, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
are two nazis actually in an edit war or is it just one person astroturfing --[[Special:Contributions/162.158.63.100|162.158.63.100]] 01:18, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
I'm trying to combat it, but I'll only be able to keep this up for around another 20 minutes or so. [[User:InfoManiac|InfoManiac]] ([[User talk:InfoManiac|talk]]) 01:21, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Is TheusafBot ofline or something? Generally it handles this sort of stuff pretty well--[[User:Mapron01|Mapron01]] ([[User talk:Mapron01|talk]]) 01:44, 19 November 2022 (UTC)&lt;br /&gt;
::I'm pretty sure he is. [[User:Starstar|Starstar]] ([[User talk:Starstar|talk]]) 02:23, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
This reminds me of the time I used a character in my password that was the &amp;quot;stty kill&amp;quot; character for one workstation's default console terminal settings. I normally logged in via ssh, and occasionally logged in via xdm, but the time I tried logging in via the console, it really didn't like what was left of my password. [[Special:Contributions/162.158.62.180|162.158.62.180]] 01:25, 19 November 2022 (UTC)&lt;br /&gt;
:Ah, the good old days when ordinary printing characters were used for erase and kill. [[User:Barmar|Barmar]] ([[User talk:Barmar|talk]]) 01:43, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
Vandals are just looking for a fun time, generally. Solution: make it not a fun time for them. Revert their edits dryly, patiently, with no particular comment or anything. Eventually they will get bored and find something else to do. Or, perhaps they'll sit there vandalizing while we revert them, we dozens against probably just one vandal. But if you make your irritation clear, that's &amp;quot;fun&amp;quot; to them, and they'll keep at it with renewed vigour. [[Special:Contributions/108.162.216.239|108.162.216.239]] 01:37, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
I accidentally used a backspace character in a username one time. It caused all sorts of problems with my account.&lt;br /&gt;
&lt;br /&gt;
Also, I've never found the whole &amp;quot;The trolls will leave you alone if you don't move.&amp;quot; thing to be effective. But I've never found anything else to be effective at universally adjusting behavior either.&lt;br /&gt;
-Master Areth&lt;br /&gt;
&lt;br /&gt;
I wrote most of the current page after the first paragraph. It's a fairly sloppy first draft that could probably use some editing. Anyone who can should feel free to clean it up. Especially since the page is now protected (I'm not complaining; it was necessary) and so I can't edit it any more. [[User:Equites|Equites]] ([[User talk:Equites|talk]]) 05:57, 19 November 2022 (UTC)&lt;br /&gt;
:Hi [[User:Equites|Equites]], I [[Special:Diff/299457|rewrote]] the explanation, hope that's okay. I removed the references to the security aspect because I didn't think it was relevant. (Also pinging [[User:FrankHightower|FrankHightower]].) --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 07:59, 20 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
Seems to be another Tech issue comic, its a tech issue with Cueball talking to Megan and the tech issue is extremely cursed. Should we add this one?[[Special:Contributions/162.158.22.98|162.158.22.98]] 06:00, 19 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;since there is no sequence of keys he could type that would result in a null terminator&amp;quot; ... I can type a NULL (ASCII 00) just fine in my editor on Linux (ctrl-v ctrl-@, the latter I type as ctrl-shift-2). However, I am not quite sure how to phrase this in the explanation without sounding like &amp;quot;Áctually! ....&amp;quot;  [[User:henrikar|Henri]]&lt;br /&gt;
:I am amused that both in the main text and in this comment something has converted the &amp;quot;at sign&amp;quot; into [email protected].&lt;br /&gt;
&lt;br /&gt;
The title text is likely a reference to [https://www.reddit.com/r/ProgrammerHumor/comments/yqof9f/comment/ivrd9ur/ this reddit post]. [[User:Pb|Pb]] ([[User talk:Pb|talk]]) 07:06, 19 November 2022 (UTC)&lt;br /&gt;
: I don't think that's likely... --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 08:50, 20 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
The only thing is I'm pretty sure it's not terribly difficult to enter a null string character, you just have to know what it is. On a PC with a keyboard that has a number pad, you can press Alt-[Number] to enter special characters using their ASCII code (Alt-65 will get &amp;quot;A&amp;quot;, Alt-8 is backspace or delete, I forget which but I think BS, etc. MIGHT need leading zeroes to be 3 digits). The 0 to 31 codes - 32 is space, starting the normal characters - tend to have all the special characters, I think null string is 0? [[User:NiceGuy1|NiceGuy1]] ([[User talk:NiceGuy1|talk]]) 04:14, 20 November 2022 (UTC)&lt;br /&gt;
:It is. And (with caveats, depending upon other issues and circumstances) Alt-numpad0 would give me the null-char wherever it's practical and not blocked (intentionally or just because it isn't specifically catered for).[[Special:Contributions/172.71.178.206|172.71.178.206]] 15:25, 20 November 2022 (UTC)&lt;br /&gt;
::I know a sysadmin friend of mine had to help a user whose account name was &amp;quot;🦙&amp;quot; (The Llama unicode symbol) and he was on a computer where not all layers between the username field and the password authentication understood unicode. Examples like this will happen in real life. [[User:IIVQ|IIVQ]] ([[User talk:IIVQ|talk]]) 11:16, 21 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
As Cueball is showing and handing over his laptop, I don't think the issue is about a website account (where he could probably do a password reset), but his local account on the laptop, of which he is now locked out, and hopes Poneytail can break into it? [[User:Ghen|ghen]] ([[User talk:Ghen|talk]]) 18:28, 19 November 2022 (UTC)&lt;br /&gt;
:Good point, updated to avoid referring to &amp;quot;website&amp;quot; specifically. (Another possibility is that it is the password for some installed application.) --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 07:17, 20 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters.&amp;quot;''&amp;lt;br&amp;gt;&lt;br /&gt;
There are also cases where page or application is updated with the expectation that old user accounts will still be working, but updated page no longer accepts same characters (or number of characters) than the old one, locking some people out. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 01:35, 20 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
Concerning the password described in the title text. If the characters are used in the order they appear in the Unicode Table the password starts with the Null String Terminator and therefor you will essentially end up with an empty password if C or a programming language is used handling strings the same way. [[User:Kimmerin|Kimmerin]] ([[User talk:Kimmerin|talk]]) 12:51, 21 November 2022 (UTC)&lt;br /&gt;
: Good point, added ([[Special:Permalink/299540|snapshot]]). --[[User:Hddqsb|Hddqsb]] ([[User talk:Hddqsb|talk]]) 15:38, 21 November 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
I've actually had this problem long ago; I used the @ sign as part of my password, and it didn't let me log in anymore. Some systems in the good old days (I think it was an FTP server) used the @ character to separate username and password when authenticating. Also, I am still running into this problem sometimes with usernames (emails) allowing &amp;quot;+&amp;quot; in the address on registration, but not when logging in. [[User:Pbb|Pbb]] ([[User talk:Pbb|talk]])&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299540</id>
		<title>2700: Account Problems</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2700:_Account_Problems&amp;diff=299540"/>
				<updated>2022-11-21T15:36:07Z</updated>
		
		<summary type="html">&lt;p&gt;Hddqsb: /* Explanation */ remove footnote saying UTF-8 encoding of null character is zero byte (probably too technical for most readers, easier to just gloss over it), convert other footnote to parenthetical, reword&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2700&lt;br /&gt;
| date      = November 18, 2022&lt;br /&gt;
| title     = Account Problems&lt;br /&gt;
| image     = account_problems_2x.png&lt;br /&gt;
| imagesize = 538x272px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = My password is just every Unicode codepoint concatenated into a single UTF-8 string.&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Created by a VISIBLE ZERO WIDTH SPACE. Please change this comment when editing this page. Do NOT delete this tag too soon.}}&lt;br /&gt;
&lt;br /&gt;
[[Cueball]] asks [[Ponytail]] to help him because he can't log in to his account. Having attempted to fix [[:Category:Cueball Computer Problems|Cueball's tech issues]] in the past, Ponytail replies with dread. Cueball promises that &amp;quot;It's a normal problem this time&amp;quot;, and Ponytail agrees to look at it. But then Cueball reveals that he has included a {{w|Null character|null string terminator character}} in his password when creating an account and now he can't log in. Ponytail responds in disbelief, and Cueball defends his actions by saying that the instructions said to use special characters.&lt;br /&gt;
&lt;br /&gt;
In computer systems, every {{w|Character (computing)|&amp;quot;character&amp;quot;}} (letter, digit, punctuation, etc.) is represented as an integer. For example the lowercase letter 'a' is represented as the number 97, and the digit '1' is represented as the number 49 (when using the {{w|ASCII}} character encoding or {{w|Unicode}} character encoding). A {{w|String (computer science)|&amp;quot;string&amp;quot;}} refers to a sequence of characters, and can be used to store arbitrary text (for example names, messages, passwords). Strings can be arbitrarily long, so some mechanism must be used to record their length. One approach is to store the length explicitly; this representation is often called a {{w|String_(computer_science)#Length-prefixed|Pascal string}} (after the programming language {{w|Pascal}}, which uses this representation). Another approach is to mark the end of the string using a specific character, usually the {{w|null character}} (which is represented as the number 0); such strings are called {{w|null-terminated string}}s, and are used by the {{w|C (programming language)|C programming language}}. Both approaches have advantages and disadvantages. A limitation of null-terminated strings is that they cannot be used to represent text containing embedded null characters. This is usually not a problem, because normal text never contains null characters. However, if somehow a null character were to end up in the middle of the string, it would cause problems: any code that uses that string would assume this null character marks the end of the string, so the string would effectively be truncated.&lt;br /&gt;
&lt;br /&gt;
Account registration systems often place requirements on passwords in an attempt to encourage users to pick stronger passwords. For example, they might ask that the password include at least one &amp;quot;special character&amp;quot; (such as &amp;lt;code&amp;gt;!@#$%^&amp;amp;*&amp;lt;/code&amp;gt;). Cueball misunderstood this requirement as referring to characters such as the null character (which is more accurately referred to as a {{w|ASCII#Control_characters|control character}}). Cueball managed to type the null character as part of his password somehow (on some systems it is possible to type the null character using {{w|Null_character#Representation|certain keyboard shortcuts}} such as &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;+&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Alt+0&amp;lt;/code&amp;gt; {{w|Alt_code|using the number pad}}), but the software running the registration system was poorly written and could not cope with this &amp;amp;ndash; it allowed him to create an account with that password, but then when he tried to log in with the same password the system didn't accept it.&lt;br /&gt;
&lt;br /&gt;
It's unclear how that particular situation might arise in real software, but here is a similar situation that can easily happen in practice: Suppose a website's registration form allows the user's new password to have up to 20 characters, but due to a programmer error the login page only accepts passwords with up to 18 characters. If the user picks a medium-length password (say with 12 characters), all is well. But if the user picks a password with 20 characters, they will be able to register but they won't be able to log in (which is what happened to Cueball).&lt;br /&gt;
&lt;br /&gt;
The title text describes a different situation, where a person's password is &amp;quot;just&amp;quot; every Unicode character concatenated into a single string. {{w|Unicode}} is a standard for representing characters from many writing systems, and it has 149,186 characters[https://en.wikipedia.org/wiki/Unicode#Versions] as at the time of this comic (with new characters being added over time). A password consisting of all of those characters would be extremely long; it would be impractical to type by hand, and would be too long for pretty much all account registration systems. (A &amp;quot;codepoint&amp;quot; is the number assigned to a character, and {{w|UTF-8}} is a common encoding system for representing a Unicode codepoint as a sequence of {{w|byte}}s.) Also, since Unicode includes the null character, the password would have the same issue as Cueball's password. Further, if the account registration system treats the null character as a string terminator (as in C), then the password would be equivalent to an empty password (assuming it contains the Unicode codepoints in order, starting with the null character).&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
&lt;br /&gt;
* User input containing unsafe characters has previously appeared in the famous comic [[327: Exploits of a Mom]].&lt;br /&gt;
&lt;br /&gt;
* There are several techniques that can be used to safely handle passwords and other user inputs that might contain unsafe characters such as the null character:&lt;br /&gt;
** Validate: Check whether the user input contains unsafe characters, and if it does display an error message to the user.&lt;br /&gt;
** Sanitize: Remove unsafe characters from the user input to prevent them from causing problems.&lt;br /&gt;
** Encode/quote/escape: Replace each unsafe character with an appropriate sequence of characters (depending on the context). For example, a null character can be included in a {{w|URL}} by encoding it as &amp;lt;code&amp;gt;%00&amp;lt;/code&amp;gt;. This technique is not very relevant to password handling, but is relevant for example when {{w|Cross-site_scripting#Non-persistent_(reflected)|including user input in generated web pages}} or [https://www.cloudflare.com/learning/security/threats/sql-injection/ passing user inputs to database queries].&lt;br /&gt;
** For the specific case of null characters: Use a string representation that supports null characters (e.g. Pascal strings), and be very careful not to pass such strings to functions that can't handle embedded null characters.&lt;br /&gt;
&lt;br /&gt;
* Failure to handle strings containing null characters correctly can result in security vulnerabilities. For example, including a null character in crafted input may allow a user to read or write files that they are not supposed to be able to access.[https://insecure.org/news/P55-07.txt][https://elixirforum.com/t/static-and-session-security-fixes-for-plug/3913]&lt;br /&gt;
&lt;br /&gt;
* Here are some additional situations where passwords with special characters might stop working:&lt;br /&gt;
** The registration form allows passwords to contain null characters, but the login form strips null characters (for example because it was written by a different developer/team, or because it has been updated over time). When Cueball tries to log in, the login form strips the null characters, so the resulting password doesn't match the stored password (which contains a null character).&lt;br /&gt;
** The password system allows the input of Unicode characters at first, but is later changed to only accept ASCII passwords. Users who included non-ASCII characters like é or ö in their password are locked out of their account because they are no longer allowed to type those characters.&lt;br /&gt;
&lt;br /&gt;
* The number of the xkcd comic is 2700. When interpreting this as two concatenated octal numbers \27 + \00 it represents both the {{w|End-of-Transmission-Block_character|ETB}} as well as the null character, both of these characters possibly leading to problems when processed in legacy systems (e.g. mainframe computers). When interpreting 2700 as hexadecimal 0x27 + 0x00 numbers it represents the ' character and the null character - a sequence that could lead to [[327: Exploits of a Mom|SQL injection]] when it is placed in unescaped form inside of a SQL command.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[Cueball carries an open laptop over to Ponytail, holding in in both hands. The screen shows a box filling the screen with some text on lines. Ponytail is sitting in an office chair with her laptop at her desk. She has turned her head away from the computer looking at Cueball's screen.]&lt;br /&gt;
:Cueball: Can you help me with my account?&lt;br /&gt;
:Ponytail: Oh no.&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds his laptop up in front of Ponytail who has turned the chair so she faces him, with her hands in her lap. Her table is not drawn.]&lt;br /&gt;
:Cueball: No no, I promise it's a normal problem this time.&lt;br /&gt;
:Ponytail: Okay. Fine. What is it?&lt;br /&gt;
&lt;br /&gt;
:[Cueball holds both hands out palm up towards Ponytail who is sitting with his laptop in her lap typing on it.]&lt;br /&gt;
:Cueball: I included a null string terminator as part of my password, and now I can't-&lt;br /&gt;
:Ponytail: '''''How?!'''''&lt;br /&gt;
:Cueball: They said to use special characters!&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Cueball Computer Problems]]&lt;/div&gt;</summary>
		<author><name>Hddqsb</name></author>	</entry>

	</feed>