Admixture map – genetic atlas of human admixture history
Celebrating 10 Years of PHP 5.0.0 – a good summary of what happened with PHP in the last 10 years, and where it’s all going. I can’t believe it’s been 10 years already!
marquee – An implementation of <marquee> using web components. All we need now is <blink> and we are back to the 90′s.
Time in China follows a single standard time of UTC+08:00, which is 8 hours ahead of Greenwich Mean Time. China geographically spans five time zones and there were five time zones in use during the Republic of China (1912–1949). Since 1949 all of China has only had a single standard time, but UTC+06:00 is also used unofficially in Xinjiang and Tibet.
Bootstrap/386 – a Twitter bootstrap theme to make webpages look like they are from the 1980s.
unix-history-repo – a git repository representing the Unix source code history
Have you ever shoved a
<marquee>tag? Pixar gets all the accolades today, but in the 90s this was a serious feat of computer animation. By combining these two tags, you were a trailblazer. A person capable of great innovation. A human being that all other human beings could aspire to.
You were a web developer in the 1990s.
There are more nostalgic examples of how we used to do things back in the day …
Apparently, heroin used to be a registered trademark.
Unlike the ales that constituted all the world’s beer before the middle of the nineteenth century, the lager yeasts discovered in Bavaria at that time required a different type of fermentation. Ales — produced through the addition of top-fermenting yeast — ferment rapidly, at warm temperatures. Lagers, contrarily, depend on a slow, cool fermentation, ideally at temperatures between 45–56 degrees Fahrenheit. And after fermentation is complete, they need to be stored and aged for several months, at even cooler temperatures.
This was an era before refrigeration, however, so Bavarian brewers dug out large underground cellars for stashing the barrels while the beer “lagered.” To ensure fuller protection from the sun, they then scattered gravel over the ground and planted leafy chestnut and linden trees, which, as they grew, would provide ample shade from the sun.
Someone did the math. Shade, gravel, beer — all just off the banks of Munich’s Isar River, which provided an additional source of cooling for the beer. Put some tables and chairs outside, and start the taps. Beer garden culture was born.
This is a good question albeit one with a boring answer. Different systems evolved different encodings for newlines in the same way they evolved different behavior for myriad other things: Each system had to standardize on something and interoperability in the days before email let alone the Internet was unimportant.
There are several ways to represent newlines. ASCII-based systems use some combination of carriage return and line feed. These derive from typewriters: A carriage return (CR) resets the typewriter carriage’s horizontal position to the far left and a line feed (LF) advances the paper one vertical line. For a typewriter, you need both, so some systems (DOS, Windows, Palm OS) adopted CR+LF as representation of a newline. Other systems, such as Unix, noted a computer didn’t have a carriage to return so a sole line feed was sufficient. Still others, such as Mac OS prior to OS X, adopted only a carriage return—arguably, this choice doesn’t make any sense, as a bare carriage return would swing the typewriter carriage back to the left but not advance the page. Still other systems used LF+CR, inverting the ASCII characters used in Windows.
Systems not based on ASCII, of course, did their own thing. IBM mainframes built around EBCDIC, for example, used a special newline character (NL). Perhaps oddest of all, VMS utilized a record-based filesystem where newlines were first-class citizens to the operating system. Each record was implicitly its own line and thus there were no explicit newline representation!
But none of this mattered, because these systems never had to interoperate with each other—or, if they did, they had to make so many other conversions that newline representation was the least of their worries.
Today, most Internet protocols recommend CR+LF but dictate compatibility with LF (CR and LF+CR are left out in the cold). Given the centrality of the Internet, the ubiquity of Unix, which heralds LF, the primacy of C and descendant languages, which (somewhat) map their newline to LF, and the fact we really only need one character to represent a newline, LF seems the clear standard going forward.