Next week, we are going to relicense our open source projects React, Jest, Flow, and Immutable.js under the MIT license. We're relicensing these projects because React is the foundation of a broad ecosystem of open source software for the web, and we don't want to hold back forward progress for nontechnical reasons.
This decision comes after several weeks of disappointment and uncertainty for our community. Although we still believe our BSD + Patents license provides some benefits to users of our projects, we acknowledge that we failed to decisively convince this community.
In the wake of uncertainty about our license, we know that many teams went through the process of selecting an alternative library to React. We're sorry for the churn. We don't expect to win these teams back by making this change, but we do want to leave the door open. Friendly cooperation and competition in this space pushes us all forward, and we want to participate fully.
This shift naturally raises questions about the rest of Facebook's open source projects. Many of our popular projects will keep the BSD + Patents license for now. We're evaluating those projects' licenses too, but each project is different and alternative licensing options will depend on a variety of factors.
We'll include the license updates with React 16's release next week. We've been working on React 16 for over a year, and we've completely rewritten its internals in order to unlock powerful features that will benefit everyone building user interfaces at scale. We'll share more soon about how we rewrote React, and we hope that our work will inspire developers everywhere, whether they use React or not. We're looking forward to putting this license discussion behind us and getting back to what we care about most: shipping great products.
In 1938 the head of the British Secret Intelligence Service quietly bought up a sixty acre estate fifty miles from London. Located at the junction of railways running up from London to parts north and from Oxford in the west to Cambridge in the east, it was an ideal site for an organization that needed to be out of view, yet within easy reach of the most important centers of British knowledge and power. The estate, known as Bletchley Park, became the center of Britainâs code-breaking effort during World War II. It is perhaps the only place in the world that is famous for cryptography.
Tunny
In the summer of 1941, work was already well underway at Bletchley on cracking the famous Enigma cipher machine, used by both the German Army and Navy. If you have seen a movie about British code-breaking, it was about Enigma, but we will have little to say about it here. Thatâs because, shortly after the invasion of the Soviet Union, Bletchley picked up on a new kind of encrypted traffic.
It did not take long for the cryptanalysts to discern the general nature of the machine used to send this traffic, which they dubbed âTunny.â
Unlike Engima, which required hand transcription of messages, Tunny was attached directly to a teletypewriter. The teletypewriter converted each character typed by the operator into a stream of âdots and crossesâ (equivalent to Morse dots and dashes) in the standard Baudot code, with five symbols per character. This was the unencrypted message text. The Tunny machine simultaneously used twelve wheels to generate its own parallel stream of dots and crosses: the key. It then âaddedâ the key to the message, producing the encrypted cipher text which went out over the air. Â This addition was done with modulo-2 arithmetic (i.e. wrapping 2 back around to 0), reading the dot as 0 and the cross as 1:
0 + 0 = 0 Â
0 + 1 = 1
1 + 1 = 0
Another Tunny on the receiverâs side, with the same settings, generated the same key and added it to the cipher text to extract the original message, which was printed onto paper tape at the receiverâs teletypewriter.1
The work of understanding Tunny was made much easier by the fact that in the early months of its use, senders transmitted the wheel settings to be used before sending the message. Later the Germans issued codebooks with pre-defined wheel settings  â the sender would send only the code, which the recipient could use to look up the proper wheel setting in the book. Eventually they began changing the codebooks daily, forcing Bletchley to start all over with cracking the wheel settings for the codes each morning.
Intriguingly, the cryptanalysts also discerned the function of Tunny, based on the location of the sending and receiving stations. It connected the nerve centers of the German High Command to army and army group commanders at the various European war fronts, from occupied France to the Russian steppes. It was a seductive problem: to break into Tunny promised direct access to the intentions and capabilities of the enemy at the highest level.
Then, through a combination of German operator error, cleverness, and sheer bloody-minded determination, a young mathematician named William Tutte went well beyond these basic inferences about Tunny. Without having ever seen the machine itself, he determined its complete internal structure. He deduced the possible positions of each wheel (a different prime number for each), and exactly how the arrangement of wheels generated the key. Armed with this information, Bletchley built replica Tunnys that could be used to decode a message â once they worked out the proper wheel setting.
The 12 key wheels of the Lorenz SZ cipher machine, known as âTunnyâ to the British
Heath Robinson
By the end of 1942, Tutte had continued his attack on Tunny, by devising a strategy for doing just that. It was based on the concept of a delta: the modulo-2 sum between one signal (dot or cross, 0 or 1) in a message stream and the next. He realized that due to a stutter in the motion of the wheels of the Tunny, there was a correlation between the delta of the cipher text and the delta of the key text2: they would tend to change together. So if you could compare cipher text against the key text generated at various wheel settings, you could compute the delta of each and count the number of matches. A match rate significantly higher than 50% would indicate a potential candidate for the real key of the message. It was a nice idea in theory, but was impossible to carry out in practice, requiring 2,400 passes through each message to test the various possible settings.
Tutte brought his problem to another mathematician, Max Newman, who oversaw a section at Bletchley, known simply as the Newmanry. Newman was at first glance an improbable figure to lead a sensitive British intelligence organization, given that his father was German-born. However he probably seemed a rather unlikely spy for Hitler, given that his family was also Jewish. So alarmed was he at the progress of Hitlerâs domination of Europe that he evacuated his family to safety in New York shortly after the collapse of France in 1940, and for a time considered moving to Princeton himself.
Max Newman
It just so happened that Newman had an idea for tackling the calculations required by Tutteâs method â by building a machine. Using machines for cryptanalysis was nothing new to Bletchley. That was, after all, how Enigma was being cracked. But Newman had a particular, electronic device in mind for the Tunny machine. He had taught at Cambridge before the war (Alan Turing had been a student of his), and knew about the electronic counters Charles Eryl Wynn-Williams had built for counting particles at the Cavendish. Here was Newmanâs idea: If one could synchronize two loops of tape, spinning at high speed â one with the key and one with the enciphered message â and read each element into a processing unit that computed the deltas, an electronic counter could accumulate the results. By reading off the final count at the end of each run, one could decide if the key was a promising one or not.
It so happened that a group of engineers with suitable expertise was readily available. Among them, Wynn-Williams himself. Turing had recruited Wynn-Williams from the radar lab in Malvern, to help build a new rotor for the Enigma decoding machine that would use electronics to register the rotations. Assisting him with that and another related Enigma project were three engineers from the Post Office Research Station at Dollis Hill: William Chandler, Sidney Broadhurst, and Tommy Flowers. (Recall that the British Post Office was a high-tech operation, responsible for telegraphy and telephony, as well as paper mail). Both projects had gone bust and now the men were at loose ends. Newman scooped them up. He assigned Flowers to lead the team building the âcombining unitâ, which would compute the deltas and pass the result on to the counter, which was the responsibility of Wynn-Williams.
Along with the engineers to build them, Newman tasked the Womenâs Royal Naval Service, or Wrens, to operate his message processing machines. While the government trusted only men with high-level, executive positions, women performed much of the operational work at Bletchley, from message transcription to setting up decoding runs. They naturally transitioned from performing clerical work themselves to the tending of the machines that automated that work. The Wrens facetiously dubbed their charge âHeath Robinsonâ, the British equivalent to Rube Goldberg.
The Heath Robinsonâs very similar successor, Old Robinson
Indeed, the Heath Robinson, though sound in concept, suffered from serious practical problems. Most notably, the need to keep the two tapes â cipher text and key text â in perfect sync. Any stretching or slippage in either tape would ruin an entire run. In order to minimize the risk of error, the machine processed no more than 2,000 characters per second, though the belts could have been run faster. Flowers, though he reluctantly went along with the Heath Robinson project, believed there was a better way: a machine built almost entirely from electronic components.
Colossus
Thomas Flowers had served as an engineer in the Post Office research division since 1930, where he was initially set the problem of investigating mis-dialed and failed connections in the new automatic exchanges. This led him to ruminate on how to build an altogether better telephone system, and by 1935 he had become a missionary for replacing the electro-mechanical components of that system, such as relays, with electronics. This cause would define his entire career thereafter.
Tommy Flowers, ca. 1940s
Most engineers dismissed electronic components as too balky and unreliable for use on a large scale, but Flowers showed that if kept running continuously and at well below their rated power, tubes actually had remarkable longevity. He proved out his ideas by replacing all the terminals for establishing connection tones in a 1,000 line switch with tubes; three or four thousand in total. This installation went into live service in 1939. In the same period, he also experimented with replacing the relay-based registers for storing telephone numbers with electronic switches.
Flowers believed that the Heath Robinson that he had been recruited to help build was seriously flawed, and that he could do much better by using many more tubes and fewer mechanical parts. In February 1943, he brought his alternative design to Newman. In an imaginative leap, Flowers disposed with the key text tape altogether, completely eliminating the synchronization problem. Instead his machine would generate the key text on the fly. It would simulate a Tunny electronically, iterating through wheel settings and trying each against the cipher text and recording possible matches. He estimated that this approach would entail the use of about 1,500 tubes.Â
Newman, and the rest of the Bletchley leadership, cast a skeptical eye on this proposal. Like most of Flowersâ contemporaries, they doubted whether electronics could be made to work on such a scale. They further doubted whether, even were it made to work, such a machine could be built in time to be useful to the war effort.
Flowersâ boss at Dollis Hill nonetheless authorized him to assemble a team to build his electronic monster â though Flowers may have given a misleading impression of just how much backing he had from Bletchley.3 In addition to Flowers, Sidney Broadhurst and William Chandler played a major part in the design work, and the effort as a whole required fully fifty people, half of Dollis Hillâs resources. The team drew on precedents from telephone machinery: counters, branching logic, equipment for routing and translating signals, and âroutinersâ for putting equipment through a series of pre-programmed tests. Broadhurst was a master of these electro-mechanical circuits, while Flowers and Chandler were the electronics experts, who understood how to translate concepts from the world of relays into the world of valves. By early 1944, the team had delivered a working model to Bletchley.4 The giant machine acquired the code name Colossus, and quickly proved that it could outshine the Heath Robinson, reliably processing 5,000 characters per second.
Newman and the rest of the command chain at Bletchley were not slow to realize their earlier mistake in dismissing Flowersâ ambitions. In February 1944, they requested twelve more Colossoi to be in operation by June 1 â the intended date for the invasion of France, though of course Flowers knew nothing of that. Flowers flatly declared this to be impossible, but with heroic efforts his team managed to deliver a second machine by May 31, with a new team member, Allan Coombs, making many of the design improvements.
This revised design, known as the Mark II, expanded on the success of the first. In addition to the tape feed, it consisted of 2,400 tubes, 12 rotary switches, 800 relays and an electric typewriter.
A Colossus Mark II
It was configurable and flexible enough to perform a variety of tasks within its milieu. After installation, each team of Wrens customized their Colossus to suit the particular problems they needed to solve. A plugboard, modeled on a telephone operatorâs patch panel, established the settings for the electronic rings which simulated the wheels of the Tunny machine. More broadly, a series of switches allowed operators to set up any number of different function units to compute over the two data streams: the external tape and the internal signals generated by the rings. By combining a variety of different logic gates, Colossus could compute arbitrary Boolean functions on that data, i.e. functions that output a 0 or 1. Every output of 1 incremented Colossusâ counter. A separate control unit made branching decisions based on the state of the counter, e.g. stop and print the output if the counter is greater than 1000.
The switch panel for configuring a Colossus
Let us not imagine, however, that Colossus was a programmable, general-purpose computer in the modern sense. It could logically combine two data streams â one on tape, one generated from ring counters â and count the number of 1s encountered, and that was all. Much of the âprogrammingâ of Colossus was actually carried out on paper, with operators executing decision trees prepared by analysts; e.g. âif the output was less than X, set up configuration B and do Y, otherwise do Zâ.5
A high-level block diagram of Colossus
Nonetheless, for the task it was asked to do, Colossus was quite capable. Unlike the Atanasoff-Berry Computer, Colossus was extraordinarily fast â able to process 25,000 characters per second, each of which might require several Boolean operations. (The Mark II Â quintupled the speed of the Mark I by simultaneously reading and processing five different sections of tape.) It avoided coupling the entire system to slow electro-mechanical input and output devices by using photoelectric cells (derived from anti-aircraft proximity fuses) to read the input tapes and using a register to buffer output to the teletypewriter. The leader of a team that rebuilt Colossus in the 1990s showed that, in its wheelhouse, it would still easily outperform a 1995-era Pentium processor.6
This powerful text-processing engine became the centerpiece of the Tunny code-breaking effort.7 Another ten Mark IIâs were built before the end of the war, the panels churned out one per month by workers at the Post Office factory in Birmingham who had no idea what they were building, then assembled at Bletchley. One exasperated official at the Ministry of Supply, on receiving yet another requests for thousands of specialized valves, wondered whether the Post Office folks were âshooting them at the Jerries.â8 Not until well into the 1950s would another electronic computer be produced in this fashion: as an industrial product, rather than a one-off research project. At Flowersâ instruction, in order to preserve the valves, each Colossus remained on night and day, until the end of the war. Glowing quietly in the dark, warming the damp British winter, they waited patiently for instructions, until they day came when they were no longer needed.
A Curtain of Silence
An understandable enthusiasm for the intriguing drama of Bletchley has sometimes led to a wanton exaggeration of its military achievements. To imply, as does the movie The Imitation Game, that British civilization would have been extinguished if not for Alan Turing, is a monstrous absurdity. Colossus, specifically, seems to have had no real effect on the course of the the struggle for Europe. Its most widely touted achievement was to prove that the deception plan around the 1944 Normandy landing had worked. The Tunny traffic revealed that the allies had succeeded in convincing Hitler and his High Command that the true blow would land farther east, at the Pas de Calais. Reassuring information, but reducing the cortisol levels of allied commanders probably did not help to win the war.
The technological achievement represented by Colossus itself, on the other hand, is incontrovertible. But the world would not soon learn of it. Churchill ordered all the Colossoi in existence at the end of the war to be dismantled, taking the secret of their construction with them to the scrapyard. Â Two machines somehow survived this death sentence, remaining in use within the British intelligence apparatus until about 1960.9 Still the British government did not lift the curtain of silence around the activities at Bletchley. Not until the 1970s would its existence become public knowledge.
The decision to suppress all discussion of the activities at Bletchley Park indefinitely was on the part of the British government a mild excess of caution. But it was a personal tragedy for Flowers. Denied all the honors and prestige that would be due to the inventor of the Colossus, he suffered frustration and disappointment, stymied repeatedly in his ongoing effort to replace relays with electronics in the British telephone system. Had he been able to pull the historic achievement of Colossus from his back pocket, he might well have had the influence necessary to carry his vision forward. By the time his achievements became known in full, Flowers had long since retired, and could no longer influence anything.Â
The few, scattered enthusiasts for electronic computing might have suffered a similar setback from the secrecy around Colossus, lacking any evidence to prove its viability to the skeptics. Electro-mechanical computing might have continued to dominate for some time. But there was, in fact, another project that would pave the way for electronic computingâs rise to dominance. Though also the result of a secret military effort, it was not kept hidden after the war, but instead revealed to the world with great fanfare, as ENIAC.
Further Reading
Jack Copeland, ed. Colossus: The Secrets of Bletchley Parkâs Codebreaking Computers (2006)
Thomas H. Flowers, âThe Design of Colossus,â Annals of the History of Computing, July 1983
A few weeks ago, a friend sent me a link to the Great 78 Project, "a community project for the preservation, research, and discovery of 78 rpm records." The project is supported by the Internet Archive, George Blood, and the Archive of Contemporary Music. Its purpose, first and foremost, is to convert old recordings into digital audio to preserve those historic performances for future listeners. Currently it's working to digitize the 200,000 or so 78 rpm records it has collected, and it's actively looking for contributions to add to its collection.
I think this is an exciting project that should be of interest to anyone who enjoys exploring musicâand especially those involved in the open community. In this article, I'll look at a few things you may want to know about the project.
What is a 78 rpm record and why digitize it?
The Wikipedia article on the gramophone record provides a good introduction to this type of media. First things first for younger readers: An audio record generally can be defined as a flat, circular medium with a spiral groove cut into it to modulate an audio signal. A pickup device (e.g., a needle or stylus) "reads" the modulated music from the groove and passes that signal on for amplification; however, 78 rpm records are a specific type of record whose music was recorded, and therefore meant to be played back, by turning the record at 78 revolutions per minute (rpm).
A 1936 spring-motor-driven 78 rpm acoustic gramophone. Zecas, CC BY-SA 3.0, via Wikimedia Commons.
Beginning in the 1800s, the earliest 78s were recorded and played back acoustically, often with a hand crank to spin the record and a horn to amplify the sound. By the 1920s, record cutting and playback were generally handled by electronics. To create a record, sound was converted to an electronic format that drove the cutting amplifier and cutting head. At the playback end, a stylus scanned the groove and its motion was converted back into electrical form, amplified, and played back over a loudspeaker.
In a broad form, the vinyl LP records sold today are not all that different from these 78s; however, there are specific differences worth noting:
The 78s turn faster than the 331/3 or 45 rpm vinyl LP records that later became the most common format.
Given their standard diameter of 10 inches, 78s typically had less than four minutes of music on each side of the record. This is about the same amount of music as a 7-inch 45 rpm single and about one-fourth as much as a 12-inch 331/3 rpm album.
Early 78s were almost universally made of shellac, a kind of natural resin, and pulverized rock. This mixture meant that 78s were typically fairly abrasive and therefore somewhat noisy. Later 78s had less mineral content and are therefore quieter.
The groove in the 78 rpm record is typically quite a bit wider than that on 331/3Â or 45 rpm vinyl records, requiring a broader profile for the pickup device.
The 78 rpm record is typically monaural (i.e., it contains only one channel of music).
Vinyl records have a number of advantages over 78sânotably, they contain more music, have less background noise, and provide pickup devices a much longer lifetime. Generalizing and saying that vinyl records sound better than 78s is probably fair because the recording and playback chain are typically more accurate. A major disadvantage of 78 rpm records is that they are fragile and can crumble into dust.
The 78s that still exist present music that was recorded long agoâin some cases more than a century. The songs on them are mostly unknown today, and few of the artists who recorded on 78s are still alive. Moreover, music on 78s reflects the style that music was recorded and played at the time and is engineered differently from modern recordings.
Is it legal to digitize this stuff and make it available?
The business of copying music from one medium to another is complex because of different laws that govern the process. The United States has both state and federal copyright laws that control the copying and enjoyment of reproduced music. Other countries have similar laws.Â
In many countries (but not, for example, the United Kingdom), an individual can make a copy of a purchased work for private, individual use without violating copyright law; however, the Great 78 Project is not only copying these old records, but making them available in digital format to interested listeners. Are they not breaking the law?
"This collection has been made available for use in research, teaching, and private study only. Copyrights that may exist in these materials have not been transferred to the Internet Archive. The Internet Archive does not advise as to the copyright status of items in our collections."
I am not a copyright expert, but it seems to me that, depending where they live, an individual may be breaking local copyright law by listening to or downloading the tracks available on this site. Therefore learning more about copyright laws in your jurisdiction before use is a good idea.
How can an individual use these digital copies?
More than 30,000 digitized songs are available to browse, select, and listen on the project's Listen page. I immediately spotted "House of the Rising Sun" performed by Josh White and his Guitar, which dates to 1942. I'm pretty sure this was the first blues number I learned to play on the guitar, back in... hmm... maybe it was 1965? Of course I had to give this a listen.
Wow, what a great performance! Aside from that, the site offers a scan of the label, a nice bio of Josh White, technical details on the transfer (this would be a good moment to thank George Blood for doing this work), as well as the option to download the track in various formats, including 24-bit FLAC. (Yay!)
Yes, it's noisy; yes, the frequency range is limited. And yes, this is a raw recordingâwe hear Josh without today's usual engineering and post-production work. No, Josh didn't record this in New Orleans and then have Lady Gaga do overdubs in New York.
What's with the different versions?
There are nine versions of this song on the site, and one is recommended by the engineer who made the transfers. This is typical of the recordings available in this archive. Each version was transfered with a different stylus and different equalization parameters. Huh? Well, reading closely we see that they tried four different stylii, each of a different size and shape. Also, the electrical signal generated by the stylus and cartridge was digitized without adjustment and to adjust for the way cartridge response varies with frequency and velocity.
It seems that such standards were somewhat loose back in the day, which requires some effort on the listener's part to find the right combination to generate a good playback.
Can you help?
The Great 78 Project is a wonderful effort to preserve early recordings that will otherwise eventually disappear as people run out of space to store the original material, means to play it back, and interest in the complexities of listening to these recordings.
If you have a box of 78s stored in your home, think about getting in touch with the Great 78 Project to see whether they would like to acquire this material.
This week, Mozilla enabled support for FIDO U2F (Universal 2nd Factor) security keys in the pre-beta release of Firefox, Firefox Nightly. Firefox is the second largest internet browser by user base. In the near future, 80% of the worldâs desktop users, including Chrome and Opera users, will benefit from the open authentication standard and YubiKey support out of the box.
When GitHub made support for U2F in 2015, the open source community voted U2F as the most wanted feature in Firefox. We are delighted to now see it happening. Yubico has helped with U2F integration for Firefox and for other platforms and browsers that have or are in the process of making support, as it is critical for taking the YubiKey and U2F unphishable authentication to the global masses.
In todayâs world, software installation brings with it not only added complexity for the user, but also the potential risk of malware. Chrome has already enabled millions of websites and services to deploy FIDO U2F seamlessly, mainly through Google and Facebook social login, to help mitigate that. Now with native support for FIDO U2F security keys in Firefox, millions more will benefit from strong, hardware-based two-factor authentication without the need to download or install client software.
Thanks Mozilla for working on increasing security and usability for internet users!
No one has more fun at a Chance the Rapper show than Chance himself. But a close second, at stage left, is Matt Maxeyâwho, along with his company, DEAFinitely Dope, is translating the magic of Chance shows for deaf concertgoers. Ashley Fetters hung out with Maxey at Lollapalooza to find out how this hip-hop fan became âthe deaf Kanye West.â
Like any second language, American Sign Language gets a little easier to communicate in when you're drunk. Or, more accurately, when you're a little drunkâas any undergrad minoring in Spanish or Italian or Mandarin can attest, get a certain number of drinks in you and the fluency bell curve nosedives right back down.
Which is why, two hours before he does sign-language interpretation for Chance the Rapper's headlining Lollapalooza show in Chicago's Grant Park, 29-year-old Matt Maxey has capped off his last recycled soft-drink bottle of the day, stashed it in his backpack, and switched to water before he heads backstage.
"I'm probably at about a six-and-a-half now," he says, laughing. Earlier in the day, out among the sunburned Lolla revelers, "I was probably at about a nine."
Maxey's certainly not the first Lollapalooza performer whose pre-show regimen consists of cognac and Jazz-flavor Black & Milds; we've all seen those leaked celebrity tour riders. And after all, the Atlanta-born Maxey is a bit of a celebrity himself. Even before he started attracting attention signing at Chance the Rapper's shows in July, deaf and hard-of-hearing hip-hop fans had already begun referring to him as "the deaf Kanye West."
Later on in this unseasonably mild August night, on Lolla's towering Grant Park stage, Chance the Rapper will pause during his anti-record-label anthem "No Problem" and let the audience finish his signature line: "Countin' Benjis while we meetin', make 'em shake my other hand." At that precise moment, though, Maxey's hands will be signing the phrases "counting money" and "meeting," then miming a left-handed handshake followed by an emphatic middle finger. Maxey's ASL interpretation is an explosive, code-switching mishmash of textbook American Sign Language, pantomime, and makeshift signs he's cobbled together for slang words native to hip-hop ("molly," for example, combines gestures for "pill" and "sex"); the way he signs is as worldly and wry and improvisational as he is.
And there's a reason for that: Although he's had profound hearing loss his whole life ("Whatever hearing is still left right before you're completely deaf, that's severely profound hearing loss," he explains) and is now one of the most visible people in his profession, Maxey didn't learn sign language until he was 18.
Matt Maxey was outfitted with hearing aids at the age of two, after his occupational-therapist grandmother noticed his hearing seemed off. Maxey learned to speak with the help of speech therapists, and at school, his teachers simply spoke into a microphone that transmitted directly into his two hearing aids. ("What they didn't know is that I was turning mine off," he says with a laugh.) So Maxey didn't begin learning to sign until he enrolled at Washington, D.C.'s, Gallaudet University, the world's only university for the deaf and hard-of-hearing.
Which wasn't a positive experience at first. "I never really knew about deaf culture," Maxey says. "All I knew was talking. I never signed. And they would always get mad at me; I could talk and they couldn't. It became kind of a hostile environment." Growing up in Atlanta, Maxey was exposed from an early age to hip-hop. So at night in his dorm room, Maxey practiced his sign language along with the lyrics of his favorite musiciansâlike J. Cole and Kendrick Lamarâand in 2010, at the urging of a friend, he uploaded to YouTube a video of himself signing along to Lil Jon & the East Side Boyz's "One Night Stand."
("One-night stand," for what it's worth, comes out to something more like "one-night fuck" in sign language. "Signing 'stand' doesn't make sense. You're not standing up," Maxey explains, then chuckles. "Well, you may be standing up.")
Maxey later dropped out of Gallaudet. Over the next few years, he worked as a pizza-delivery driver, a mobile-car detailer, and a UPS unloader in Jacksonville, Florida, and attended a few classes at a community college. But his sink-or-swim immersion in deaf culture continued out of necessity: Around 2013, his hearing aids stopped working, and he remembers with a laugh that at the time he was too broke to fix them. He kept making videos, though, learning new song lyrics by turning the volume all the way up in his earbudsâand last summer, his ASL video for DMX's "How's It Goin' Down" went viral after it surfaced on Reddit.
Around the same time, Maxey reached out to Kelly Kurdiâa Houston-based hearing sign-language interpreter who'd also released some music-translation videos on YouTubeâto ask if she'd like to do a music video together. Several videos and one new friendship later, Kurdi and Maxey founded DEAFinitely Dope, a performance group dedicated to helping deaf and hard-of-hearing fans enjoy live shows. The Starkey Hearing Foundation contacted Maxey shortly afterward and outfitted him with Bluetooth-enabled hearing aids that connect to his iPhone and iPad and can play music right into his ear like an earbud.
"What's amazing about Matt is he's not only bilingual, he's bicultural," says Kurdi, 35. "At first he felt too deaf to be hearing and too hearing to be deaf. But now it's a huge benefit; he's able to, for example, talk to Chance, and there's no lull in the conversation. He's able to talk about different hip-hop artists. He's able to talk about whatever basketball game. And then he can go into the deaf culture, and he can connect with all of them and sign."
Maxey moved to Houston, and the team expanded to include a videographer, a manager, and Amber Galloway Gallego, another hearing ASL interpreter. Earlier this summer, they hosted an ASL hip-hop camp for adults and kids, then booked their first festival gig at Bonnarooâwhere their work alongside D.R.A.M. caught the eye of Chance the Rapper.
Maxeyâs passion and his obvious love of music are the first things Chance remembers noticing at that Bonnaroo show. âHe conveyed so much emotion through signing,â Chance writes in an e-mail. âIt was incredible to watch.â
And then a lot happened, very quickly. "He called the Access Department, the Sign Language Department, and he was like, 'Yo, I want to meet that dude interpreter you have,'" Maxey remembers. "Because I'm the only black young guy interpreter over there, they knew it was me. It was early in the morning when I heard, and I thought, 'Okay, y'all playing. It's too early in the morning. I just woke up. You know I had a good night last night. Don't tell me this first thing in the morning.'"
Chance invited Maxey and DEAFinitely Dope to join him onstage for two shows in Miami and Tampaâwhere Maxey's friends from the Florida deaf community turned up in force. Then DEAFinitely Dope tagged along to Wisconsin and Delaware for shows before becoming the official ASL interpreters of the rest of Chance the Rapper's 2017 tour. At every show he can, Chance gives away free tickets to deaf and hard-of-hearing fans.
âIt's a great feeling to know we're including people who are often left out when it comes to live shows,â Chance writes. âWhich is also why we're advocating for more artists to link up with DEAFinitely Dope and figure out how to bring music ASL interpreters into their spaces.â
These days, Chance himself sometimes busts out the ASL sign for "blessing" onstage when he performs "Blessings," and has been known to offer a sign-language "thank you" to his deaf and hard-of-hearing fans. "Every time we see him, he asks for a few signs," Kurdi says.
Chanceâs other favorite sign heâs learned from the DEAFinitely Dope team is âmiracle.â Meanwhile, Kurdi says, Chance's manager, Pat, loves to sign "too much sauce."
"He'll learn funny lines like that," Kurdi remarks. "He's always like, 'I'm Pat. I've got too much sauce.'"
There's a line in Chance the Rapper's "Favorite Song" that Maxey still puzzles over sometimes, and it goes like this: "Dang dang dang, skeet skeet skeet / She do that thing for three retweets." It's not the "dang" or the "skeet" that presents the issue (yes, "skeet" is what you think it is in sign language); it's the retweets. Sometimes, Maxey simply fingerspells "RT." Other times, he makes a tiny beak with his fingers and then signs "phone"â"Twitter."
"It depends on the audience," Maxey says. "If their English is strong, I spell. If their ASL is strong, I sign: Bird on phone. Social media."
Itâs challenging in 2017 to be a good sign-language interpreter of hip-hop music, and it's only partly because the genre finds itself in a lyrically experimental phase lately. A few months back, for example, a video of a sign-language interpreter at a Waka Flocka show went viral. According to Maxey, this particular interpreter abbreviates too much, boiling down the sentiment "I go hard in the paint" to something more like "I'm great."
"To me, 'going hard in the paint' is like, I'm driving down the lane, about to slam-dunk it," Maxey says. "If it were me interpreting, I'd be like, 'He's driving,' or 'He's going into the paint.'"
Maxey ran into a similar problem trying to sign through Migos's "T-Shirt." "I got to 'neck water faucet' and was like, What the fuck does that mean?" Maxey says. Eventually, it dawned on him: "Water is like diamond. He's got so many diamonds on his neck, he's running like a faucet."
Other translators, though, get too literal, Maxey says; he's seen interpreters use the "campfire" ASL sign when, say, a pair of sneakers is fire, or you're smoking fire next to your window at night to relax. But come to think of it, Chance's songs have a few potential landmines themselves: In Chance's "Smoke Break," "you wouldn't say you're smoking a bowl," Maxey says, with his hands out cupping the air in front of him. "No. You're smoking a bowl," Maxey repeats, this time with one hand holding an imaginary pipe and the other cocked at a lighterly angle above it.
And then, of course, sometimes a rapper says the N-word, and the cross-cultural can of worms springs open. When he can, Maxey skips it to avoid controversy: "If it makes sense in context, sometimes I just replace it with 'homie,'" Maxey says. "Even I never really get used to seeing that word signed." But when there's no reasonably clean substitution, all three interpreters sign the ASL term for that particular slur onstage, and it's usually Kurdi and Gallego, who are white, who catch flak on social media for using it.
Which is why Maxeyâwho, as a deaf black man, is a demographic rarity among ASL interpretersâis such a crucial figure. "A lot of interpreters want to interpret hip-hop music, but they don't know the culture. They don't know the slang," Kurdi explains. "Matt wants to change the game for interpreters."
Sometimes, though, ASL interpretation is hard just for plain old technical reasons. For example, Maxey says, "I love listening to the music, but I would hate to interpret Busta Rhymes."
How come? "Fast as fuck," he laughs.
The deaf and hard-of-hearing access section of Lollapalooza's Grant Park stage is stationed right between the performers and the general-admission audience, at the forefront of the crowdâthe logic being, presumably, that this way deaf concertgoers have a better view of the ASL interpreter, plus most of the people standing flush in front of the megastage are already deaf. So as Matt Maxey dutifully sobers up before he performs for the largest crowd of his career, he also provides mesmerizing up-close entertainment for the immobilized front row of regular-admission festival-goers. Girls in lace bralettes wave him over to teach them how to sign "Hi, my name is" and "Nice to meet you," while guys in Anthony Rizzo jerseys with the sleeves cut off reach across a low metal fence to bump shoulders in a bro-hug.
But it's the folks starting to gather inside the Deaf/HOH access zone who are really Maxey's people. These are the fans he and Kurdi have texted with over the past few days, helping them make sure they've gotten the accommodations they need from the festival, and it's these people who ensure that every morning Maxey wakes up to an avalanche of social-media push notifications on his phone, sometimes a hundred strong. "Can I visit them? Can I come perform for them? They have a deaf brother. They have a deaf sister. They feel inspired. They just learned sign language. They want to learn more," Maxey says.
Patrick Petty, a fan who came to see Maxey and DEAFinitely Dope perform at Chance's Lolla show, says his deaf sister, Annie, "looks at Matt like I look at Jay-Z." A lifelong hip-hop fan and a new friend of Maxey's, Petty says he and his sister can finally lose their shit over music together thanks to Maxey and the videos they watch of him on Instagram, and though she couldn't make it to Lolla, he can't wait to bring her to a show. "We're gonna cry tears of joy over this shit," he says.
Chance himself recognizes thereâs an opportunityâa need, evenâto connect with people like Annie. âOne of the most important things I can do on tour is give access to all people, to all fans,â Chance writes. âNo one should feel excluded from my show. So it was a blessing to meet Matt and DEAFinitely Dope, to help welcome the deaf community.â
Eventually, a tall young woman in a baseball cap and a Deaf/HOH Access wristband engages Maxey in what looks unmistakably like some lively sign-language banter. They exchange phones for a moment and then exchange them back.
Then, all at once, Maxey has to be backstage; for the next two hours, he and Kurdi and Gallego make the communication gap between Chance and the 50 or so deaf fans gathered in the Deaf/HOH section feel ever smaller. The fans sway and sign to each other, and occasionally sign Chance the Rapper's "sign name"âtwo fingers and a thumb on the right hand, raised up toward the right temple. After the show, the three interpreters pose for a photo with all the deaf fans; Maxey puts the official setlist between his teeth, and everyone throws up the "I love you" sign.
"I think a lot of hearing people don't appreciate how much we get out of music," Kurdi says. "We listen to a song, it takes us back to childhood or it puts us in a good mood or it makes us want to party or it makes us connect. That's why there's, say, a graduation songâwe all recognize it and we all connect to it.
"Deaf people miss out on all that, and they shouldn't have to," she says. "So to have an artist say, 'I want interpreters on my show, at every show, and I want deaf people to come in and join us for free' has been just so amazing. To feel like someone cares about them, for one, and for two, to hire a company that is owned by a deaf person? There's a million others out there that are owned by hearing people."
It's important work Maxey does in the deaf community. But for the most part, it's also a pretty good time. The next time Maxey gets in touch, it's the following afternoon. After the show, he was whisked away to an afterparty in downtown Chicago with Chance and co., and didn't get to sleep until five in the morning. He debriefs me on this last part and adds a flourish in a language we both speak fluently: a smiley-face emoji with sunglasses on.
A team of researchers from HRL Laboratories have devised a method that finally allows for the 3D printing of high-strength metals and alloys. These materials, commonly used in heavy-duty industrial parts, can now be manufactured faster and cheaper than ever before.
Working with Metal
For the longest time, metal-based manufacturing has been difficult and costly. High-strength aluminum alloys are difficult materials to work with for additive manufacturing, also known as 3D printing. Now, researchers from HRL Laboratories have developed a new method that allowed them to 3D print high-strength aluminum and weld previously unweldable material.
âWeâre using a 70-year-old nucleation theory to solve a 100-year-old problem with a 21st century machine,â Hunter Martin, a PhD student at the University of California, Santa Barbara and engineer at HRLâs Sensors and Materials Laboratory, said in a press release.
The HRL researchers came up with a method theyâve called nanofunctionalization, where nano-functionalized powders are fed to a 3D printer. This is applied in thin layers which are heated by a laser to solidify into a three-dimensional object. During melting and solidification, the structures produced using this method donât crack and are able to maintain their full alloy strength, thanks to the nanoparticles acting as nucleation sites for the intended alloy microstructure.
âOur first goal was figuring out how to eliminate the hot cracking altogether. We sought to control microstructure and the solution should be something that naturally happens with the way this material solidifies,â Martin said.
Finer and Stronger Structures
High-strength alloys like aluminum â including types like Al7075 and Al6061 â are currently used in engineering aircraft and automobile parts, like in airplane fuselages. However, current methods are largely expensive and are unable to allow finer manipulation of these materials.Click to View Full Infographic
Now, with this HRLâs new nanofunctionalization technique thatâs easily scalable, itâs possible to 3D print these high-strength alloys in all shapes and sizes. This allows faster, cheaper, and more detailed manufacturing using high-strength materials. Furthermore, because melting and solidification in 3D printing is akin to welding, their technique makes it possible to weld previously unweldable alloys.
To determine which particles had the properties they needed, the HRL team asked help from Citrine Informatics. âThe point of using informatics software was to do a selective approach to the nucleation theory we knew to find the materials with the exact properties we needed,â HRLâs Brennan Yahata explained. âOnce we told them what to look for, their big data analysis narrowed the field of available materials from hundreds of thousands to a select few. We went from a haystack to a handful of possible needles.â
On a foggy Monday morning in May 2016, 14 Amsterdam officials, engineers and civil servants gathered nervously at Alexanderplein â a busy intersection near the city centre with three tramlines â where many people were walking, driving, and, as in any Dutch city, riding bicycles. With a flip of a switch, the traffic controls were shut off for all transport modes, in all directions.
This live pilot project came about as a result of the rapid growth in cycling in some Amsterdam neighbourhoods. Nearly 70% of all city centre trips are by bicycle, and more space is needed on the bike networks. Traffic designers are deviating from standard design manuals to accommodate this need. Among the tactics being used are the removal of protective barriers, altering light phases, reducing vehicular speed limits and designating entire corridors as âbicycle streetsâ. Designers have created their own toolbox of solutions for other Dutch cities to use.
Alexanderplein, a busy intersection near Amsterdamâs centre and a popular commuter route. Officials decided to shut off traffic lights as a pilot, hoping to improve traffic flow. Photograph: Meredith Glaser
But switching off traffic lights for all modes on a busy intersection for days on end steps up a level of disruption. Even in Amsterdam, the pilot sparked debate among engineers and politicians.
âIt took eight months to plan this intervention,â says Amsterdamâs former bicycle program manager, Iris van der Horst. âWe had to get all the stakeholders on board, including the police and public transit authority. Everyone was nervous and wanted to be sure safety was not compromised.â
The pilot is part of a larger mobility strategy across the city to make more room for cyclists and pedestrians. That means limiting access and space for private vehicles.
âAmsterdamâs public space is limited,â says the vice mayor for traffic, Pieter Litjens, who ultimately approved the pilot. âWe need to be thoughtful and strategic about who and what uses that space.â
The city measured the impact of the intervention through a technical study, evaluating safety, conflict, and traffic flow. In additional, the Urban Cycling Institute studied the impact on human behaviour, perceptions, and experiences.
In the weeks before the lights were shut off, we intercepted about 200 cyclists on their morning and evening commutes. A majority of them disliked the intersection and made complaints: âitâs chaoticâ; âmessyâ; âno one obeys the lightsâ; âthe lights are all green at the same timeâ.
Before the pilot, cyclists complained about the âmessyâ intersection and long waits, but also displayed behavioural signs of inattention. Photograph: Meredith Glaser
When asked whether the traffic lights were necessary, about a third said âabsolutely yesâ, only 5% said âabsolutely notâ, and the majority was undecided. It was clearly a question they had never thought about.
In the behavioural analysis, cyclists at the stop line glared at the signal, almost willing it to turn green. Bodies were focused forward; heads and eyes motionless; posture slouched. Most cyclists appeared expressionless. Stopping at this light seemed to be a moment to zone out, check their phone, adjust their bell or pedals. Very little interaction took place, either among cyclists or between other transport modes, for example with car drivers.
When the lights were turned off, about 150 cyclists were interviewed. We found that not only did fewer people dislike this intersection, but about 60% said the traffic situation had improved.
All respondents complained less about infrastructure and spoke more about human interaction. âPeople pay more attention,â said one man. âItâs amazing that it regulates itself,â said a young woman. âItâs a bit scary, but you never have to stop and nobody is grumpy,â said a teenager. But no one could really explain more about why or how.
Behaviour was noticeably different. Most cyclists slowed down as they approached the intersection, and communicated to other cyclists and motorists using eyes, gestures, expressions, and voices. A lot more negotiation was taking place â but not without friction. In one incident, a mother carrying her child on a front seat slowly entered the intersection. When she was halfway across, a car approached from the right. Traffic signs indicate priority for the car driver but instead, the mother made eye contact with the driver, both smiled, and the car driver yielded.
Findings indicated an increase in interaction among users. A mother on a bicycle smiles at a car driver as she crosses the intersection. In the background, cyclists use gestures to ânegotiate in motionâ. Photograph: Meredith Glaser
The new setup forced people to engage with their surroundings. They had to change the behavioural rituals they had fallen into in order to adapt. Instead of relying on traffic lights, they now relied on their own abilities and the cues of others. This adaptation takes time and is a complex cognitive process: brain neurons work overtime, senses are heightened and multiple levels of information have to be unravelled.
Once new rituals are formed, instantaneous decisions are made unconsciously again, using the bodyâs movement to power and guide a machine. This tacit process occurs so fast it is difficult to explain in words â again, confirmed in our interviews.
Such interaction and ânegotiation in motionâ may sound stressful, as some respondents noted, but what kind of stress is it? Cycling stresses our muscles, and thatâs good for our health. What if this type of stress is good for flexing our minds?
Over time, cyclists become more skilful in solving this puzzle on the fly. In less than two weeks, such evolution was already observed on Alexanderplein. It was so successful that the pilot was extended and a few months later the lights were completely removed.
Now, a redesign of Alexanderplein is drafted and the idea is being replicated throughout the city, supported by policymakers. âThis pilot showed that less regulation can lead to responsible and alert road users,â said Litjens.
Indeed, delay was reduced and safety unaffected. But arguably more importantly, we showed that people became more aware of other people, adapting decision-making processes in sophisticated ways. It shows that a human-centred design of intersections can be a tool to increase interaction, cohesion, and in turn even social capital. Other research has also made this connection.
The story of Alexanderplein also reminds us that cycling needs constant attention. It reminds us that even the Dutch are nowhere near finished. And it reminds us that a cycling city can never be perfect. Because after all, we are only human.
âąMeredith Glaser is a researcher at the Urban Cycling Institute (University of Amsterdam), studying knowledge and policy transfer of Dutch cycling practices to other parts of the world. Find her on Twitter @dutch_ish.
Image caption
Piero della Francesca is believed to have painted the fresco in 1467-68, in what is now the Civic Museum
A chance discovery has brought to light the little-known story of how a British Army officer risked a court martial in wartime Italy to save a painting the author Aldous Huxley once described as "the greatest picture in the world".
I opened a dead man's suitcase in Cape Town and was transported from today's Africa, via World War II Italy, to Renaissance Tuscany.
Inside I found a story of high art, bravery and love, all the more powerful because it is a story not widely known.
I was on Long Street, a boisterous city-centre shopping artery, exploring the upper floors of Clarke's, a venerable bookshop staffed by bibliophiles who lovingly tend roof-high displays of new titles.
Climb up the stairs at the back and you enter a booky world almost extinct in today's era of online, search-engine rigour.
Here second-hand works await discovery, all meticulously catalogued, some preciously protected in glass-fronted cabinets.
Staff walk to and fro across creaking floorboards and up half sets-of-stairs linking a maze of attics, all crowded with books.
Graham Greene was my research target, more specifically his links with Tony Clarke, founder in 1956 of what is arguably Africa's finest bookshop.
Clarke died in the 1980s but his effervescent successor, Henrietta Dax, allowed me to look through his remaining papers, higgledy-piggledy in a brown leather case.
Image caption
After WWII Tony Clarke founded what is arguably Africa's finest bookshop
Of Greene I found nothing but, as so often with research, the letters, notebooks, diaries and photographs drew me off down another thrillingly unexpected by-way.
The records were of a man who came of age in WWII.
There were doodled maps of El Alamein and photographs of Clarke as a young subaltern sitting smartly to attention in the Middle East in 1942 alongside fellow members of the Royal Horse Artillery.
The RHA is one of the army's smartest units - its gunners fire the ceremonial salutes in Hyde Park - and Clarke belonged to its oldest battery, the Chestnut Troop.
Its fighting tradition is proud, no more so than against Rommel's Afrika Korps and later on the long Allied slog up Italy.
The snapshots of Clarke's campaign are framed in black and white: here lean, sun-tanned Tommies lark about on a Mediterranean beach, there stones ring the grave of a fellow officer, a chum, on an Italian hillside.
A reconnaissance photograph of Monte Cassino shocked me.
Clarke was not involved in the fight to dislodge the Germans from its hilltop monastery but in his diary he describes how shocked he was as he drove underneath ancient walls hideously disfigured by bombardment.
It may have influenced what Clarke went on to do.
As the Allied advance continued, his unit took up a firing position near the town of Sansepolcro.
Unlike other famous Tuscan towns that are perched on hilltops, it lies down in a valley. I went there myself in the 90s and found its location memorably unmemorable.
It was standard then for allied artillery to soften up towns before ground troops went in, and Clarke was the officer responsible for Sansepolcro. His guns dug themselves into their firing pits, his gunners prepared their ammunition stocks.
But then some faint bell rang in his mind, a bell belonging to an age far from the madness of war.
Clarke - English, gay, art-loving - remembered an essay by Aldous Huxley. The author had not been shy with his superlatives, saying he had discovered what he called the world's "best picture".
Image caption
Clarke's was established in 1956
In fulsome terms, the essay described the incredible power of The Resurrection, a fresco masterpiece by the Renaissance maestro Piero della Francesca.
"We need no imagination to help us figure forth its beauty,'' Huxley wrote. "It stands there before us in entire and actual splendour, the greatest picture in the world."
Clarke may not have remembered every detail of the essay but, just as his guns started firing, he remembered one key fact.
The Resurrection was located in Sansepolcro.
I can only imagine the risk he then took by withholding his order to fire.
He later said his commanding officer had come on the radio urging him to get on with it so he had to stall for time, peering at the town through binoculars and assuring his commander that he could see no German targets to go after.
Image caption
Members of the Royal Horse Artillery on manoeuvres in Egypt in 1936
It was a brave action. Had Allied infantry been ambushed as they advanced on Sansepolcro, his court martial would have been brutal.
But, for the love of art, he kept the guns silent. The Germans fled and the town was liberated the following day without any damage to the 500-year-old work of art.
As I left his shop, I thought of Clarke. Nowadays such an act would be spread across newspapers and picked over by script-writers.
But all that remains today is a Sansepolcro suburban street named in his honour, a few references in travelogues written long after the war and a suitcase of memories at the foot of Africa.
 How to listen to From Our Own Correspondent:
BBC Radio 4: A 30-minute programme on Saturdays, 1130.
Second 30-minute programme on Thursdays, 1100 (some weeks only).
University of Houston researchers have reported a development in stretchable electronics that can serve as artificial skin for a robotic hand and biomedical devices (credit: University of Houston)
A team of researchers from the University of Houston has reported a development in stretchable electronics that can serve as an artificial skin, allowing a robotic hand to sense the difference between hot and cold, and also offering advantages for a wide range of biomedical devices.
The work, reported in the open-access journal Science Advances, describes a new mechanism for producing stretchable electronics, a process that relies upon readily available materials and could be scaled up for commercial production.
Cunjiang Yu, Bill D. Cook Assistant Professor of mechanical engineering and lead author of the paper, said the work is the first to create a semiconductor in a rubber composite format, designed to allow the electronic components to retain functionality even after the material is stretched by 50 percent.
He noted that traditional semiconductors are brittle and using them in otherwise stretchable materials has required a complicated system of mechanical accommodations. Thatâs both more complex and less stable than the new discovery, as well as more expensive, he said. âOur strategy has advantages for simple fabrication, scalable manufacturing, high-density integration, large strain tolerance, and low cost,â he said.
Photograph of a robotic hand with intrinsically stretchable rubbery sensors (credit: Hae-Jin Kim et al./Science Advances)
The team used the skin to demonstrate that a robotic hand could sense the temperature of hot and iced water in a cup. The skin also was able to interpret computer signals sent to the hand and reproduce the signals as American Sign Language.
Uses of the stretchable skin include soft wearable electronics such as health monitors, medical implants, and human-machine interfaces.
The stretchable composite semiconductor was prepared by using a silicon-based polymer known as polydimethylsiloxane (PDMS) and tiny nanowires to create a solution that was then hardened into a material that used the nanowires to transport electric current.
Abstract of Rubbery electronics and sensors from intrinsically stretchable elastomeric composites of semiconductors and conductors
A general strategy to impart mechanical stretchability to stretchable electronics involves engineering materials into special architectures to accommodate or eliminate the mechanical strain in nonstretchable electronic materials while stretched. We introduce an all solutionâprocessed type of electronics and sensors that are rubbery and intrinsically stretchable as an outcome from all the elastomeric materials in percolated composite formats with P3HT-NFs [poly(3-hexylthiophene-2,5-diyl) nanofibrils] and AuNP-AgNW (Au nanoparticles with conformally coated silver nanowires) in PDMS (polydimethylsiloxane). The fabricated thin-film transistors retain their electrical performances by more than 55% upon 50% stretching and exhibit one of the highest P3HT-based field-effect mobilities of 1.4 cm2/Vâs, owing to crystallinity improvement. Rubbery sensors, which include strain, pressure, and temperature sensors, show reliable sensing capabilities and are exploited as smart skins that enable gesture translation for sign language alphabet and haptic sensing for robotics to illustrate one of the applications of the sensors.
Many logging tools, like Splunk, provide great features but are optimized for large-scale deployments. Â They require installing and configuring servers before they can be effectively used. Â There is still a need for a robust log file analyzer for the terminal.
In the 2009 movie Star Trek, Captain Kirk and Sulu plummeted down toward the planet Vulcan without a parachute. âBeam us up, beam us up!â Kirk shouted in desperation. Then at the last second, after a tense scene of Chekov running top speed to the transporter room, their lives were saved moments before they hit the doomed planetâs rocky surface.
Enlarge/ Is Trek's transporter a bit like Futurama's suicide booth?
20th Century Fox
But can beaming out save someoneâs life? Some would argue that having oneâs âmolecules scrambled," as Dr. McCoy would put it, is actually the surest way to die. Sure, after youâve been taken apart by the transporter, youâre put back together somewhere else, good as new. But is it still you on the other side, or is it a copy? If the latter, does that mean the transporter is a suicide box?
These issues have received a lot of attention lately given Trekâs 50th Anniversary last year and the series' impending return to TV. Not to mention, in the real world scientists have found recent success in quantum teleporting a particleâs information farther than before (which isnât the same thing, but still). So while it seems like Trek's transporter conundrum has never had a satisfying resolution, we thought weâd take a renewed crack at it.
To be clear, our purpose isnât to get into the nitty-gritty of the science of the transporter. After all, if we could figure out exactly how a transporter works, we could build one. Instead weâll touch on it only when the science becomes relevant, butâas was the case in our discussion of time travel in Trekâweâll focus mostly on the transporterâs effects. And those effects have some interesting consequences. After reviewing the evidence, in fact, there might even be some hope that transport isnât a death sentence and that âbeam me up, Scottyâ were not Kirkâs famous last words. (Kirk never said those exact words on the show, of course, but you get the idea).
Enlarge/ The transporter from Star Trek's original pilot episode, "The Cage."
CBS/Paramount
Establishing a lock
Trek has always depicted characters who are hesitant to use the transporter, from Dr. McCoy to the entire crew of Enterprise. "Youâre always on the side of, 'those guys are just silly, you gotta trust the future!'" said Jordan Hoffman, a film critic and host of Engage: The Official Star Trek Podcast. "We trust the warp engines and all the other high tech of Star Trek, so why wouldnât [we] trust the transporter?"
Hoffman points out the first work to express real doubt about the continuity of personhood was the novel Spock Must Die by James Blish, which "played coy" about whether it's really you on the other end of the transporter. To address the questions this raised, a good place to start is by looking at what the transporter actually does.
According to the Star Trek: The Next Generation Technical Manual, when a person steps onto the transporter pad, the computer uses âmolecular imaging scannersâ to scan his or her body, before the person is converted into a âsubatomically debonded matter stream.â In other words, a crew member is taken apart piece by piece, breaking apart the bonds between individual atoms. Then, particles are streamed into a âpattern buffer," where they remain briefly before being sent to their destination.
CBS/Pocket Books
This sounds an awful lot like death. In fact, itâs even more death-y than conventional death where, after the bodyâs processes have stopped, the body slowly decomposes. The effect is the sameâthe pieces of you come apartâthe transporterâs just a lot more efficient at it.
Once the matter stream arrives at its destination, the person is somehow ârematerializedâ or put back together. While the transporter tends to use the personâs atoms to reconstruct a human, it really doesnât have to. The machine could use totally different atoms, and the effect would be exactly the same.
In fact, in the Deep Space Nine episode âOur Man Bashir," Captain Sisko and a few other officers are nearly lost during a transporter accident. They beam out from their sabotaged runabout at the last second, but the transporter malfunctions and their patterns must be sent into the stationâs computer somehow to save them. Their physical bodies are saved as holographic characters in Dr. Bashirâs holosuite program. Later in the episode, theyâre reconstituted using the patterns stored in the holodeckâalmost certainly with entirely new atoms.
That sounds an awful lot like a copy, like a new person. If the transporter is just scanning your data and creating an identical copy somewhere else, then by any reasonable definition, the original person is dead. By analogy, consider a car model. Many cars are produced by the same manufacturer, all from the same design. Thereâs no way to tell these cars apart, but theyâre not the same car.
If thatâs the case and the transporter is really a suicide-and-copy machine, then Star Trekâs bright and optimistic future might not be the rosy place we always thought it was. Of course, thereâs more to the story than that. For one thing, some might argue this is just semantics. Whatâs the difference between it being âyouâ and ânot-youâ if youâve passed through the "subatomically debonded" transporter either way?
This particular technicality opens a philosophical can of âgagh,â which is beyond the scope of this article to fully address and may even be partially subjective (and thus fundamentally unresolvable). For one thing, our bodies grow and change over the course of our lives. Cells multiply, die, and are replaced. Even the brain is no exception.
âThere is plenty of change in the brain during development, though birth of new neurons seem to be pretty much restricted to being produced in the dentate gyrus after birth,â Patricia Churchland, neuro-philosopher with the University of California, San Diego, told Ars. Â âBut there is pruning back (especially in early adolescence), as well as massive sprouting of the neurons you are born with.â
This makes a person a bit like a paintbrush whose head and whose handle will both be replaced at different times. Is it still the same brush? While the brain is a bit more complex than that, there certainly is quite a bit of overhauling going on across a personâs life, according to Churchland,
âThe brain grows about [five times] from birth to adolescence. It makes about a million synapses per second in the first two years after birth," she said. "In early development, a child can lose a whole hemisphere without being changed into a new person. Later in development, lesions can have a greater effect on personality, mobility and cognition, depending on the location of the lesion.â
But at least in everyday language, we still consider ourselves to be the same person from birth to death. And whether or not thatâs a valid standard by which to consider oneself the same person, for our purposes, weâll use this standard of everyday language. So, the question weâre really asking is, âIs a transported person still the same person, to the extent that weâre the same people throughout our lives?â This gives us a clearer criterion on which to assess the question of the transporter.
Thereâs another, more famous version of the paintbrush example: a thought experiment known as the Ship of Theseus. Theseus wants to keep his ship in tip-top shape, so whenever a board rots, he replaces it with a new one and keeps doing so until none of the original planks remain. Is it still the same ship? By our standards, it clearly is. The pieces have been replaced, but there was a continuity in the shipâs structure between them.
If, however, we destroy the ship but mail its blueprints somewhere else and then build a new, identical ship, itâs not the same ship. Itâs a separate ship built from the same blueprints. It doesnât even matter whether you use the same planks or not. So where does the transporter fit in, again?
On Woodward Avenue in Highland Park, Michigan, a historical marker stands in front of a derelict industrial building. It reads, âHere at his Highland Park Plant, Henry Ford in 1913 began the mass production of automobiles on a moving assembly line...Mass production soon moved from here to all phases of American industry and set the pattern of abundance for 20th Century living.â
In the 21st century, however, that âpattern of abundanceâ is absent in Highland Park, a three-square-mile city nestled in the middle of the much-larger Detroit that has become one of the most economically depressed places in America. The list of difficulties it faces is uniquely long and dire.
The city, which reached its peak population of nearly 53,000 in the 1930s, is home to just over 10,000 residents today. Its industrial base eroded with the departure of Ford and later Chrysler. Highland Parkâs last high school closed in 2015, and the system is under emergency financial management. Like Detroit, many Highland Park residents have endured water shutoffs, but with far less media attention. In 2011, DTE Energy repossessed around 1,400 residential street lights, literally removing them from the ground because of a $4 million unpaid bill.
Two people wait for the bus next to the historic Highland Park Ford Plant on Woodward Avenue in Highland Park, Michigan. Credit: Ali Lapetina
The city itself was under emergency financial management for nine years beginning in 2000â the longest duration of any city in Michiganâand a city administrator, reporting to the stateâs Treasury Department, now oversees its finances. But after all these years, the budget is still perilously uncertain due to a $26 million lawsuit filed by the city of Detroit, which claims that Highland Park hasnât paid its water bills (while, ironically, under emergency financial management) after closing its treatment plant and switching over to Detroitâs water system.
Crime, blight, and poverty are all entangled in this mess, both cause and consequence of a gutted school system, absence of streetlights, and an inability to provide anything beyond the most basic services.
âWeâre providing good services as best we can,â Mayor Hubert Yopp says, âbut at this point, because of our minimal budget, we canât afford the equipment we need to do a better job.â
Highland Parkâs government, in other words, seems to barely exist. When the lawsuit filed by the city of Detroit was first announced, there was talk that the city of Highland Park might dissolve entirely. And until the court case is resolved, there isnât much the mayor can actively do. He does have people training block club presidents in grant writing and rebates for things like home repairs. He also had the Tax Increment Financing Authority Board of Directors create a long-term plan for the city.
A view into where the old Highland Park Community High School stood before it was demolished, off Woodward Avenue in Highland Park. Credit: Ali Lapetina
But Highland Park residents have problems that need to be addressed immediately. Though they understand the state of their cash-strapped city, theyâre impatient. So theyâre providing for themselves and community what the city cannot, by dreaming up impossibly ambitious projects.
They just wish the city would dream alongside them.
No one exemplifies this attitude more than Shamayim Harris. From the porch of her house on Avalon Street, you can see construction crews renovating the interiors of shipping containers on an adjacent lot, and adding geothermal heating and cooling systems to a house halfway down the block. About a decade ago, the block was full of blightânow, thereâs life.
Harris, a 51-year-old Highland Park native and a reserve officer with the Highland Park Police Department, is an imposing-looking African American woman with broad-shoulders and an angular jaw. Sheâs known by everyone as âMama Shuâ and either hugs or waves to anyone who passes by her house.
Sheâs also the âmamaâ of the blockâHarris owns 29 properties on Avalon Street, which sheâs in the process of converting into the holistic and sustainable Avalon Village. âThe whole thing, everything, is connected together and here to uplift, serve, and cater to the community,â Harris says.
Shamayim Harris on her porch in Highland Park. Credit: Ali Lapetina
The initial shipping containers will become the Goddess Marketplace, a pop-up retail space for women entrepreneurs to sell their goods. The house under renovation will become the Homework House, an after-school center for children, where theyâll have access to a meal, tutors, a computer lab, and showers. Harris calls it âa home before they get home.â
There will also be basketball courts, a park, a wellness center, a greenhouse, and a vegetarian cafe.
For years Harris had been eyeing the blighted Avalon Street, wanting to fix it up somehow, but not having the means to do it. In 2007, her two-year-old son Jakobi was killed in an automobile hit and run. The tragedy seemed to unleash something in her, and ever since, sheâs pursued Avalon Village with an unrelenting zeal.
Six months after her sonâs death, one of the houses went up for sale for $3,000 and she bought it with some meager savings, a tax income check, and a loan from a friend. For a time, Harris and her daughter slept on a mattress on the floor in the unfurnished house that didnât have heat or running water.
Mama Shuâs house on Avalon Street in Highland Park. Credit: Ali Lapetina
Even during the darkest days, Harris says, âDoubt never crept in...After my son died, I was like, âIâm doing this. Nothing can hold me back.â I wasnât afraid of anything because that was the worst fear I ever had.â
Just last year Harris started getting attention from donors and national media outlets. The Big Sun Foundation gave her a $100,000 grant. A successful crowdfunding campaign raised $243,690. She was even a guest on The Ellen DeGeneres Show where she was gifted a Cocoon9 home valued at $100,000 slated to be the villageâs âcity hall.â
Mayor Yoppâwho is serving his second non-consecutive term after losing re-election in 2012, but winning in 2016âsays heâs âproud of what sheâs doing.â And on the whole, Harris feels supported by the city. But sheâs still a little bitter about one incident.
In 2014, Harris erected a solar-powered street light in Avalon Villageâs Jakobi Ra Parkâthe first residential street light installed by the Highland Park-based Soulardarity. Though she had been cleaning up the lot for eight years, she didnât actually own it when the light was installed. The city tabled her request to purchase the lot for a year before selling it to her, but also fined her $1,000.
âIt just seemed backwards to me,â Harris says. âThis whole city doesnât have lights, and we figured out how to get one and got in trouble for it.â
A similar ambivalence about the mayor and his government was expressed by many Highland Park residents, who feel the city is taking some positive steps, but, as with Avalon Villageâs solar-powered street light, missing easy wins along the way.
In appearance and background, Jackson Koeppel couldnât be more different than Mama Shu. Koeppel, who grew up in Manhattan, is a bony white man in his mid-20s. His father wrote history books and his mother was a music publicist.
âI come from a high degree of class privilege,â Koeppel admits.
But heâs as dedicated to Highland Park as anyone. After dropping out of college, he protested mountaintop removal in West Virginia, and eventually came to Highland Park through a Green Economy Leadership Training program. He soon fell in love with the ingenuity and resilience of its people.
After extensive conversations with residents, in 2012 he founded Soulardarity. The democratic, membership-based nonprofit has installed six street lights so far, which can come with a suite of functions like brightening as the day fades and a mesh network router that both connects to other lights and provides internet. The lights are also not connected to the power grid and remain on during outagesâa feature which matters to residents who had their lights taken away.
McGregor Public Library, a permanently closed library off Woodward Avenue in Highland Park. Credit: Ali Lapetina
But Koeppel and Soulardarity made an important realization in the five years from when they installed their first street light to today: Itâs incredibly difficult to scale a membership model. They need a city-wide contract to build the lights to illuminate all of Highland Park.
Thatâs why Soulardarity made a proposal to install 1,000 of them, which would make Highland Park the first U.S. city completely lit with solar lights. Citing a feasibility study his organization did with the Cooperation Group, Koeppel claims solar lights will save the city millions of dollars in the long term from reduced energy and maintenance bills. But because the city would have to rebuild its light infrastructure anyway, the difference in upfront cost would be negligibleâ$5.8 million versus $5.7 million.
Mayor Yopp says the cityâs lights were repossessed because they had to drastically reduce their monthly lighting bills from about $90,000 to $15,000. Given the uncertainty with the water lawsuit, he adds, âThe current budget cannot afford [Koeppelâs] prices.â
Mayor Hubert Yopp in his office. Credit: Ali Lapetina
But because theyâre a green energy nonprofit, Koeppel says itâs possible to reduce the upfront price tag through rebates and grants, and wants to work with the city to raise those funds. But to secure money from funders, his organization needs some form of verbal or written support from the city. It hasnât come.
âWhat I hear our members saying is that they get itâthey understand the cityâs capacity is strapped,â Koeppel says. âBut thatâs not good enough. We want to work with the city in problem solvingâŠWe feel they can create support structures and encourage innovation instead of saying, âWe donât have time for that right now.ââ
On Buena Vista, a street so potholed itâs nearly gravel, a successful crowdfunding campaign raised more than $10,000 for another Soulardarity street light on the site of a former elementary school. Itâs one of the first steps, after cleaning up dozens of tires and a veritable forest of trees and weeds, in transforming the abandoned Thompson Elementary School into Parker Village, another mini-city rooted in technology and renewable energy.
Juan Shannon, founder of Parker Village, was moved after seeing Midtown Detroitâs Green Garage, a business incubator that incorporates green building design into practically every feature. But unlike with Avalon Village, you have to close your eyes to see the finished product at Parker Village.
The intersection of Buena Vista Street and Second Ave in Highland Park.
Shannonâs plan calls for an aquaponics garden and garden cafe in the playground, an electric vehicle charging station, a state-of-the-art event center, STEAM lab, coworking space, and offices for his entertainment company, Modern Tribe.
The elementary school was never secured after closing and scrappers gutted the building. But thatâs not a problem for Shannon, who would have to redo all the plumbing and electrical because of his plans to build solar panels on the roof, radiant floors inside to disperse heat, and a recycled-water plumbing system that pipes it back into the irrigation.
Though heâll eventually need to put millions of dollars into the building, given the progress Harris has made with her village, whoâs to say Shannon canât eventually do the same with his. And heâs not waiting on the city for financial support.
âHighland Park is going through its own problems,â Shannon says, âso weâre not really pulling on them to help us get started. But theyâve been supportive, come to a couple of chats and events Iâve had on ground.â
Aaronâs Jewelry and Loan, a pawn shop off of Woodward Avenue in Highland Park. Credit: Ali Lapetina
Robert Onnes, however, has some real beef with the city.
The middle-aged New Zealander first took up metal sculpting in 2005 after a career in electrical engineering. He sold some large sculptures and didnât need the 10-year window he gave himself to be a successful artist, but felt hampered by the lack of affordable studio space in his country.
âI lived in a country with phenomenally expensive real-estate, like San Francisco,â he says. âMoving to a city at opposite end of the spectrum made sense to me.â
So Robert and his wife moved to Detroit in 2012 after reading about its arts scene in the Economist.
âYou only get one life, you gotta make it work,â Onnes says. âYou donât want to be sitting on your deathbed thinking, âI should have done that.ââ
While looking for a small personal studio, he ended up buying a 23,000-square-foot former stamping plant in Highland Park on Midland Street, which can be located by its hand-drawn sign off Hamilton Street. Now 333 Midland, itâs a gallery and studio space for 20 artists of various mediums.
Onnes says at first relations were fine with the city. For a time, he had to personally go to city hall and remind them to send water bills. âWe had a lot of freedom up until we came to their notice,â Onnes says. âWe pretended they werenât there and that worked fine for us.â
Then earlier this year, he got a letter saying 333 Midland wasnât up to code and it would have to cease operations immediately. He took care of the minor matters the fire marshall requested, like installing exit signs and extra fire extinguishers. But he still canât get a clear answer from the building inspector about what else needs to be taken care of. This past July, Highland Park reinstated its Building Department for the first time in 15 years.
Onnes thinks Highland Park is missing out on a huge opportunity, citing a recent report from Detroit Future City, a strategic planning organization, which proposes ways to adaptively reuse the cityâs substantial vacant industrial buildings. The arts features heavily in its recommendations. Again, it seems to be a case of the city getting in its own way.
âHighland Park is incredibly rich in people with big ideas, huge commitment, and the creativity to make these ideas happen,â Koeppel says.
They just need the city to come along for the ride.
This feature is part of Splinterâs project to recruit local, embedded reporters, essayists, and photographers across the country. Read more here.Â
When the skull of the child was first discovered, it raised more questions than answers. Although it was nearly 50,000 years old, unearthed deep within the SidrĂłn limestone caves of Asturias, Spain, it could easily be mistaken for that of a modern-day youth. The archaeologists who later examined it wanted to know: What was the story of this young Neanderthal? And how similar was he to todayâs young Homo sapiens?
As the skeletonâs additional bones began coming to light one by one, the picture came into focus. âWhen the first remains of the juvenile skeleton started to appear,â says Luis Rios, a paleontologist at Madridâs Museo Nacional de Ciencias Naturales and a coauthor on a just-published study in the journal Science, âwe realized that it was a very interesting skeleton.â
The reason the skeleton was so compelling to researchers was twofold. First, as a child skeleton, the specimen offered a window into how Neanderthals grew and developed into adults, which researchers could then compare against modern Homo sapiens. Second, the unusually pristine condition of the jawbone and teeth made it possible to draw a precise estimate of the juvenileâs age at the time of death.
âDental development is very important in human evolution and in primates,â said Antonio Rosas, the museumâs chair of paleoanthropology and lead author on the study, during a press conference on Wednesday. âAnd also in establishing the chronological ageâthat is, the age of the individual in years or days and months, or in an absolute time.â
Through an analysis of naturally occurring markings on the juvenileâs first left upper molar, Rosas and his coauthors concluded that the child had almost certainly died between the ages of 7.61 and 7.78 years. While DNA testing was inconclusive, canine tooth size and general bone robustness indicate that he was also male. Further findings, Rosas says, suggest that humans may not be as distinct from Neanderthals as we often tell ourselvesâwith two key exceptions.
Antonio Rosas inside the El SidrĂłn cave complex.
(Joan Costa-CSIC Communication)
It was over 23 years ago that a band of spelunkers in northern Spain chanced upon a cache of Neanderthal skeletons, 13 in all, in a part of the SidrĂłn cave complex now known as the GalerĂa del Osario: the Tunnel of Bones. Comprising several adult males, several adolescent males, several adult females and several infants, the 49,000-year-old collection whetted the appetites of evolutionary scientists worldwide. By now, 2,500 distinct bones have been unearthed in the regionâan incredible windfall for the international scientific community.
As more and more of the childâs skeleton was unearthed, the fullness of the skeleton became apparent to Rosas and his team. Ultimately, Rios says, âwe were able to approach bone maturation besides dental maturation. The initial motivation for the work was the study of growth and maturation, but we kept adding more and more pieces, until the excavation finished and we had a very complete Neanderthal skeleton.â
The team performed a full examination of the skeleton in order to contrast the stages of growth in the Neanderthal child with the equivalent stages of growth in Homo sapiens. What they found was that the Neanderthal was nearly indistinguishable from Homo sapiens in the degree to which its bones had developed. From hands to knees, says Rosas, âthe general pattern of growth is very similar to that of modern humans.â
However, his team did observe two important points of divergenceâwhich could lend insight into how Neanderthals developed and aged. The first was in the spinal column. CT scans of the Neanderthalâs spine revealed that certain vertebrae in the boyâs backbone had not yet fused; those of a modern human child would have fused by age 5 or 6.
Second, inspection of the craniumâwhich houses the brainâimplied that brain development in Neanderthals may have been a slightly more protracted process than in Homo sapiens. The endocranial volume of the specimen was about 87.5 percent of the average adult Neanderthalâs, the team reports. By contrast, for a modern 7-year-old human, the brain is typically 95 percent of the way to its adult size.
While the findings are intriguing, results that rely on a single specimen should be taken with a very large grain of salt, says University of Zurich paleoanthropologist Christoph Zollikofer. Comparing this Neanderthalâs brain size against the adult average for the whole of the Neanderthal speciesâas opposed to its own adult brain size, which we can never know since it died as a juvenileâis bound to result in shaky conclusions.
It could well be the case that this specimen âis just a normal kid with normal [Homo sapiens-like] brain growth,â Zollikofer says.
Rosas acknowledges the limitations inherent in this kind of study. âItâs a problem that pervades the fossil record, that sometimes conclusions rely on few individuals,â he says. Nevertheless, he maintains that such work is essential to the slow but steady progress of evolutionary research. In future years, he says, âwe will try to incorporate other fossils, and later juvenile stages,â to help round out the picture.
For now, Rosas views this research as one more step along the path toward a fuller understanding of humanityâs rich evolutionary history. âWe thought that our way of growing was unique to our species,â he says. Turns out, we Homo sapiens may be a lot closer to our past than any of us bargained for.
A few years ago, we saw the rise of software-defined radios with the HackRF One and the extraordinarily popular RTL-SDR USB TV tuner dongle. Itâs been a few years, and technology is on a never-ending upwards crawl to smaller, cheaper, and more powerful widgets. Now, some of that innovation is making it to the world of software-defined radio. The LimeSDR Mini is out, and itâs the cheapest and most capable software defined radio yet. Itâs available through a Crowd Supply campaign, with units shipping around the beginning of next year.
The specs for the LimeSDR mini are quite good, even when compared to kilobuck units from Ettus Research. The frequency range for the LimeSDR Mini is 10 MHz â 3.5 GHz, bandwidth is 30.72 MHz, with a 12-bit sample depth and 30.72 MSPS sample rate. The interface is USB 3.0 (the connector is male, and soldered to the board, but USB extension cables exist), and the LimeSDR is full duplex. That last bit is huge â the RTL-SDR canât transmit at all, and even the HackRF is only half duplex. This enormous capability is thanks to the field programmable RF transceiver found in all of the LimeSDR boards. We first saw these a year or so ago, and now these boards are heading into the hands of hackers. Someoneâs even building a femtocell out of a Lime board.
The major selling point for the LimeSDR is, of course, the price. The âearly birdâ rewards for the Crowd Supply campaign disappeared quickly at $99, but there are still plenty available at $139. This is very inexpensive and very fun â on the Crowd Supply page, you can see a demo of a LimeSDR mini set up as an LTE base station, streaming video between two mobile phones. These are the golden days of hobbyist SDR.
I've been building crappy hobby games on and off for my whole coding life. One of my very first apps was a Visual Basic game - I was in primary school, around grade 3 or 4 - where you had to click on a picture of a schoolteacher as she moved around the screen. As I was teaching myself to code properly, I built a few half-finishedroguelikes in Python. Most recently, in some of the downtime of my dev job, I built a tetris-like game and an asteroids clone with javascript and Matter.js. So after a couple of weekends playing around with socket.io, when I'd finished the tutorial and built a janky little app with what I'd learned, it was a natural step to try and build a game with it. Should be easy, right?
Before I started, I made a deliberate choice not to read up on writing netcode for online games. I suspected (rightly, as it turned out) that there were some rakes in the grass here that I ought to encounter as a learning experience. I had a few rough ideas about how an online game might work, and some examples: agar.io, slither.io, and TagPro. I knew how to get socket.io to pass messages really quickly between a Node.js server and a clientside script. Enough to get going with!
Step One: boxes in space
My first question: what was the simplest MVP I could build in the "websocket-based online game" space? Forget realistic physics with Matter.js, forget player death, scoring, and anything else game-like. I started with a simpler goal. I wanted to have a little colourful box on a screen that each client could move around with arrow keys. Here's as far as I got. Here's a rough outline about how this app functioned.
(1) There's a Node.js server and a bunch of clients that talk to it via socket.io
(2) When a client connects, it registers a player on the server with a unique ID (same as the socket's unique ID)
(3) All of the game logic and game state lives on the server, which ticks every 3
0ms. Each tick does two things: first, move all the players around based on their current velocity; second, emit the full game state to each client as a big js object of players and coordinates
(4) The server listens to 'up' 'down' 'left' and 'right' events, which are emitted by each client
(5) The client does only two things: listen for key events on the page so they can be emitted to the server, and
listen for game state messages from the server so it can re-draw the canvas with the players' new positions
I was pretty optimistic about my progress thus far. The app worked! When I had my local server running, I could open a bunch of different tabs and move all the little boxes around. My only reservations - besides the fact that there was no game there yet - were the lack of any max room size/matchmaking logic server-side, and the fact that the server didn't stop ticking when all the players disconnected. I decided I'd fix these issues on the way to turning my MVP into an actual game.
Step Two: scary snakes
As far as I was concerned, I'd validated my initial assumptions about how easy it would be to build a simple game with Node.js and websockets. Just pop a game engine up on the server, get the clients to emit events and listen for game state updates, and draw the game state locally with HTML5 Canvas. Just as easy as building a single-player game, except that one chunk of the code had to live on a server. I had not yet tried running any of this code in production.
My "actual game" idea was multiplayer Snake: each client would control a snake that could move in four directions at a constant speed. Running into your own tail or another snake would reset your length to zero, and eating a colourful dot would increase your length by one. Sounds fun, right? It would be kind of like slither.io, except more true to the simpler, four-direction classic snake game.
So I got coding. Instead of a coordinate pair, I gave each player in my global players object an array of coordinate pairs: the squares in a snake body. Moving the snakes simply involved adding one square in the right direction and removing the oldest square. I implemented player collision by checking if the square I was about to place had the same coordinates of any other square in the game. As an intermediate step, I left out the snake food and simply increased the length of each snake by one every hundred or so ticks. And after fixing a few annoying bugs, it worked!
Finally I had something I could show to other people. I'd just pop it on Heroku, link it to my friends and Hacker News, and bask in the admiration. Right? Of course not. After cleaning up the inevitable deployment hiccups - Object.values wasn't supported in Heroku's default node version, and I'd hardcoded the express port rather than relying on the env var Heroku sets - I was horrified by how laggy my game was. What had been a smooth framerate running locally was unplayably choppy in production. What was wrong?
I tried speeding up the server tick rate to 15ms or 20ms. I tried slowing it down to 80ms. Apart from making the gameplay uncomfortably fast or uncomfortably slow, this didn't affect the lag at all. The websocket messages were just not flowing smoothly enough from the server to the client. While the server was ticking away at 30ms, the gaps between the game update messages oscillated between 5ms and 1000ms. I had just learned a very important lesson about making online games: for acceptable performance, you must run the game on the client-side as well as the server-side.
Step Three: client-side snakes
At least this problem had an easy fix. I extracted my game code into a module and served it on the client-side as well as on my Node.js server. (Okay, I just copy-pasted the game code into my client.js. But I did end up extracting it later.) I ran both instances of the game at the same tickrate, and made my client replace its own global game state object with the server's whenever the server emitted a game state update. This was more or less a success. When I deployed the code and fired up a client, my snake moved a lot more smoothly. There was the occasional jitter at the head of the snake as my client synced up with the server, but at least it felt like I was playing an actual game.
However, as soon as I started inputting commands, the problems began to appear. If I made a couple of quick turns, my whole snake would sometimes jerk sideways by a block or two - my server-side code had turned me a couple of ticks later than my client-side code did. And sometimes my snake would appear to dodge an obstacle before snapping back to hit the obstacle and lose all its length, as the server decided that I had not dodged in time after all. I linked the game to my brother. "Why is it so laggy?" he asked. Why, indeed.
I made an abortive stab at a hail-mary solution: as well as syncing up the client-side state with the server state on update, I would also emit updates to the server and have it sync up with the client. This two-way syncing was of course a total disaster. While the game was marginally less laggy as a single player, having two or more snakes led to even more snapping and teleportation as each client pulled the server apart between them. Unplayable. Here's the final version of my snake game, before I abandoned it.
Step Four: if you can't win, cheat
At this point I was feeling like I'd stepped on enough rakes and it was about time to go to the experts. I read a couple of articles about calculating velocity deltas, interpolating frames, and other very clever ways of predicting the next game state. As I read, it began to seem a lot less like a fun hobby project and a lot more like work. As a last try, I played a few games of slither.io and TagPro in order to have a peek at their code and network communications. And I noticed something interesting. Those games had a similar physics-y feel to them, as if you were moving a heavy object on ice. Top speed was reasonably fast - especially in TagPro - but acceleration was slow. Very different from my snake game, where you could change your direction ninety degrees with a single keypress.
For the first time, I began to suspect that this might be strategic. In a fast-acceleration game, a few hundred ms gap between the server and the client will cause your character to teleport large distances around the screen. But in a slow-acceleration game, the same hundred ms gap might cause your character to teleport a couple of pixels. The few seconds it takes to convince your character to change direction gives the server and client lots of time to agree on where your character should be.
I decided to return to my original idea: single blocks moving around the screen. This time, I copied the slow-acceleration style of successful online games. And at long last, I had something that was playable! If you were watching closely, you would still notice that changing direction was a bit slower than it should be. But the teleportation was totally gone.
I mitigated the slight lag by copying another trick from slither.io. That game has slow acceleration, but your snake's eyes will immediately rotate to point the direction you're going as soon as you hit a key. This trick of giving the player instant feedback - even if the actual character movement is delayed - makes a surprising psychological difference. By painting a black bar at the direction of the most recent keypress, I made my game feel much less laggy.
Wrap-up
So where's my game at now? It still looks ugly, but it's a functional vaguely-pirate themed game where you sail around collecting doubloons before everyone else can. Here's the repo and here's the game. The biggest remaining problem is the framerate, which is painfully low. The next step is probably some kind of interpolation on the client-side to smooth the game out. What did I learn?
(1) Extract your game code into a module. Run it client-side and server-side at the same time and the same tickrate
(2) Make your server-side game state the single source of truth that your clients all update to. Broadcast game state updates every tick
(3) Pick your game mechanics carefully to accommodate laggy updates. Slow acceleration is your friend
(4) Give the player some kind of immediate client-side feedback when they press a key
There are various ways to use parallel processing in UNIX:
piping An often under appreciated idea in the unix pipe model
is that the components of the pipe run in parallel.
This is a key advantage leveraged when combining
simple commands that do "one thing well"
split -n, xargs -P, parallel Note programs that are invoked in parallel by these,
need to output atomically for each item processed,
which the GNU coreutils are careful to do for factor and sha*sum, etc.
Generally commands that use stdio for output can be wrapped
with the `stdbuf -oL` command to avoid intermixing lines from parallel invocations
implicit threading This goes against the unix model somewhat and definitely
adds internal complexity to those tools. The advantages can
be less data copying overhead, and simpler usage, though
its use needs to be carefully considered. A disadvantage
is that one loses the ability to easily distribute commands
to separate systems. Examples are
GNU sort(1) and turbo-linecount
The examples below will compare the above methods for implementing multi-processing,
for the function of counting lines in a file.
First of all let's generate some test data.
We use both long and short lines to compare the
overhead of the various methods compared to the
core cost of the function being performed:
$ seq 100000000 > lines.txt # 100M lines
$ yes $(yes longline | head -n9) | head -n10000000 > ~/long-lines.txt # 10M lines
We'll also define the add() { paste -d+ -s | bc; } helper function to add a list of numbers.
Note the following runs were done against cached files, and thus not I/O bound.
Therefore we limit the number of processes in parallel to $(nproc), though
you would generally benefit to raising that
if your jobs are waiting on network or disk etc.
wc -l
We'll use this command to count lines for most methods,
so here is the base non multi-processing performance for comparison:
$ time wc -l lines.txt
real 0m0.559s
user 0m0.399s
sys 0m0.157s
$ time wc -l long-lines.txt
real 0m0.263s
user 0m0.102s
sys 0m0.158s
Note the distro version (v8.25) not being compiled with --march
makes a significant difference, but only for the short line case.
We'll not use the distro version in the following tests.
$ time fedora-25-wc -l lines.txt
real 0m1.039s
user 0m0.900s
sys 0m0.134s
turbo-linecount
turbo-linecount
is an example of multi-threaded processing of a file.
time tlc lines.txt
real 0m0.536s # third fastest
user 0m1.906s # but a lot less efficient
sys 0m0.100s
time tlc long-lines.txt
real 0m0.146s # second fastest
user 0m0.336s # though less efficient
sys 0m0.110s
split -n
Note using -n alone is not enough to parallelize.
For example this will run serially with each chunk,
because since --filter may write files, the -n pertains to
the number of files to split into rather than the number to process in parallel.
$ time split -n$(nproc) --filter='wc -l' lines.txt | add
real 0m0.743s
user 0m0.495s
sys 0m0.702s
$ time split -n$(nproc) --filter='wc -l' long-lines.txt | add
real 0m0.540s
user 0m0.155s
sys 0m0.693s
You can either run multiple invocations of split in parallel
on separate portions of the file like:
$ time for i in $(seq $(nproc)); do
split -n$i/$(nproc) lines.txt | wc -l&
done | add
real 0m0.432s # second fastest
$ time for i in $(seq $(nproc)); do
split -n$i/$(nproc) long-lines.txt | wc -l&
done | add
real 0m0.266s # third fastest
Or split can do parallel mode using round robin on each line,
but that's huge overhead in this case.
(Note also the -u option significant with -nr):
$ time split -nr/$(nproc) --filter='wc -l' lines.txt | add
real 0m4.773s
user 0m5.678s
sys 0m1.464s
$ time split -nr/$(nproc) --filter='wc -l' long-lines.txt | add
real 0m1.121s # significantly less overhead for longer lines
user 0m0.927s
sys 0m1.339s
Round robin would only be useful when the processing per item is significant.
parallel
Parallel isn't well suited to processing a large single file,
rather focusing on distributing multiple files to commands.
It can't efficiently split to light weight processing
if reading sequentially from pipe:
$ time parallel --will-cite --block=200M --pipe 'wc -l' < lines.txt | add
real 0m1.863s
user 0m1.192s
sys 0m2.542s
We can use parallel(1) to drive split similarly to the for loop construct above
but it's a little awkward and slower, but does demonstrate the flexibility
of the parallel(1) tool.
$ time parallel --will-cite --plus 'split -n{%}/{##} {1} | wc -l' \
::: $(yes lines.txt | head -n$(nproc)) | add
real 0m0.656s
user 0m0.949s
sys 0m0.944s
xargs -P
Like parallel, xargs is designed to distribute separate files to commands,
and with the -P option can do so in parallel.
If you have a large file then it may be beneficial to presplit it,
which could also help with I/O bottlenecks if the pieces were
placed on separate devices:
split -d -n l/$(nproc) lines.txt l.
Those pieces can then be processed in parallel like:
$ time find -maxdepth 1 -name 'l.*' |
xargs -P$(nproc) -n1 wc -l | cut -f1 -d' ' | add
real 0m0.267s # fastest
user 0m0.760s
sys 0m0.262s
$ time find -maxdepth 1 -name 'll.*' |
xargs -P$(nproc) -n1 wc -l | cut -f1 -d' ' | add
real 0m0.131s # fastest
user 0m0.251s
sys 0m0.233s
If your file sizes are unrelated to the number of processors
then you will probably want to adjust -n1 to batch together
more files to reduce the number of processes run in total.
Note you should always specify -n with -P to avoid xargs
accumulating too many input items, thus impacting the parallelism
of the processes it runs.
')
//-->
Holiday time is in full swing. When you want to brag about your final destination, be careful of what you post on Facebook and Instagram. Leave your boarding passes (and other barcodes) for yourself (and get a shredder).
I've known Petr Måra for few years now, he's a nice guy. He's a speaker, trainer, video blogger, and deploys iOS & macOS wherever possible. And also loves to travel. He and his wife went to Hong Kong to celebrate her birthday in May 2016 but Petr didn't say for how long they'd enjoy the city. And of course I had to know. It was this moment when I'd noticed that there's a booking reference YJVFKG and some other barcode on boarding passes posted by Petr on Instagram before their departure. You better not publish your booking reference or any other codes or barcodes from your boarding passes or any tickets in general.
Detail of the picture Petr MĂĄra has posted
The flight from London takes almost 12 hours, so just for five days? To find Petr's departure from Hong Kong, it was enough to go to British Airways website and enter the booking reference in the right input field. After submitting the reference code I learned, among other things, that Petr had all the required data correctly filled in. No wonder, he was already in Hong Kong. And then there was this red button View or change details. You know, you see a red button, you have to click it. So I did.
Airline login page
All data is complete
The airlines wanted to verify that it was mePetr trying to change the details. I could enter his passport number but I didn't have it (yet), or date of birth. Petr has his birthday on his Facebook profile, it's published in Business Register or Trade Register of the Czech Republic, too. Your birthday is fairly public information, it's also reflected in tax id or VAT number of tradesmen and freelancers in here, it's not a secret.
Petr's details
Finally, here's the passport number! And I can even change it. Cool, I can make Petr's wife birthday celebration in Hong Kong a bit longer. Just enter the passport number of an internationally wanted criminal or something.
I didn't change a thing and reported everything to Petr. I also apologized because I blocked him from accessing the booking page for 24 hours when I tried to guess his wife's birthday. I googled the date later, of course. Huge thanks to Petr for being nice to me! Guessing from his next picture of boarding passes published five months later, he learned a lesson that day â no reference numbers or barcodes fully visible.
You'll find a lot of boarding pass pictures on both Facebook and Instagram. Some travelers try to be smart and blur their names and other details but leave the bar codes just like that. For example this young lady called Anna.
Random barcode from Instagram
Anna's full name is Anna FerenÄĂĄkovĂĄ, and she was travelling from Prague to Belgrade, Serbia in April 2017. You'll learn it after scanning the barcode from the photo. Barcodes can also be found on âforgottenâ boarding passes in aircraft or other locations.
Scanned bar code
With more and more people using âsmartâ devices, barcodes from boarding passes can also be found in photos of hands wearing watches. Below is a so called Aztec code from a boarding pass displayed on someone's iWatch. This code contains the same information (or similar) as the old school paper boarding pass. But with a smart watch, you don't need to print your boarding pass, all you have to do is dislocate your hand while trying to scan the code from the app at the gate. The future is here.
Aztec code on a smart watch
This hand (and watch) belongs to Stephen Fenech, en route from San Francisco to New York. We know that because again, we have scanned the Aztec code. We can confirm that by reading this article about the pitfalls of using boarding passes with âsmartâ watch, which â with your wrist â just don't fit into some of the scanners. There's yet another important thing encoded in the Aztec code: a frequent-flyer number. Mr. Fenech's American Airlines frequent flyer account number is 4708760.
Scanned Aztec code
When searching for boarding passes on Facebook, I found a picture of an Aztec code taken by a man who wished to remain anonymous. He's well known in certain circles, has about 120,000 followers on Twitter, and founded something in Europe and in the United States too. The code in the picture contained his United Airlines frequent flyer number. This airline treats such numbers as a super secret access codes. If they print a frequent flyer number on an official correspondence they print only last 3 digits and the rest is masked, like a password. There was a full number in the Aztec code, of course, so I was thinking of using it to try and hijack that person's account. Because why not, right, it shouldn't be that easy.
So I went to the United Airlines website, selected Forgot password, and entered the name and the number from the scanned Aztec code. What followed were two security questions that were answered within a few seconds: âthe first major city that you visitedâ was the city where this person was born, and âyour favorite cold-weather activityâ in the Alpine country was not golf. The system correctly recognized that me was, in fact, him and then I could set up a new password for his account. Update August 25: this happened in June 2016, United has since added an additional step in which they require the customer to click a link which was emailed to them to change their password. Seems that nowadays, I'd be able to just trigger such email.
Creating a new password
I did not set a new password, I wasn't there to cause anyone any trouble. I sent a message to that person, just like I sent one to Petr Måra. He had deleted the picture with the Aztec code from Facebook (it's still on Twitter, though), but he didn't believe I could hijack the account. He thought the website would send a new password to him.
After a brief explanation, he understood. Oh shit, you're right. You could have just changed the password. This is crazy. Yeah, it is. Just because he's uploaded his boarding pass I could steal his account. Maybe there might be a stored payment card for future purchases, or I could make him get stuck somewhere.
Users often publish data that they don't know what they mean. Because at first sight, it's not possible to see what's the data, or what the data is for. Someone might find the data useful for something. In the worst case, it's possible to steal an account. Just be careful with the data you upload or publish. When you're not exactly sure what data is the in the picture or screenshot you want to upload to Facebook, you can just hide the data with a black rectangle or any other favorite shape (just blurring them might not be enough), or maybe just don't publish the data at all. When creating answers for security questions you have to lie. You can ârememberâ your answers in a password manager, just like your passwords. And don't leave your boarding passes in the aircraft.
This article is based on my talk (in Czech) from a conference organized by CZ domain registry.
That is, the compiled program executes ârm -rf /â even though the original program never calls EraseAll!
Clang is allowed to do this â the function pointer Do is initialized to 0 as it is a static variable, and calling 0 invokes undefined behavior â but it may seem strange that the compiler chooses to generate this code. It does, however, follow naturally from how compilers analyze programs...
Eliminating function pointers can give big performance improvements â especially for C++ as virtual functions are generated as function pointers and changing these to direct calls enable optimizations such as inlining. It is in general hard to track the possible pointer values through the code, but it is easy in this program â Do is static and its address is not taken, so the compiler can trivially see all writes to it and determines that Do must have either the value 0 or the value EraseAll (as NeverCalled may have been called from, for example, a global constructor in another file before main is run). The compiler can remove 0 from the set of possible values when processing the call to Do as it would invoke undefined behavior, so the only possible value is EraseAll and the compiler changes
return Do();
to
return EraseAll();
Iâm not too happy with taking advantage of undefined behavior in order to eliminate possible pointer values as this has a tendency to affect unrelated code, but there may be good reasons for clang/LLVM doing this (for example, it may be common that devirtualization is prevented as the set of possible pointer values contain a 0 because the compiler finds a spurious pure virtual function).
Update: I wrote a follow-up post discussing a slightly more complex case.
In April 2016, the mattress startup Casper sued three popular mattress review sites, claiming they drove business to Casper competitors without proper disclosure that these mattress brands paid sales commissions to the sites.
The schemes, in Casperâs view, amounted to false advertising and deceptive practices because the sites promoted their reviews as unbiased but did not conspicuously disclose the relationships with the specific mattress makers they were recommending.
In the booming world of online mattress sales, these reviews sites had accumulated massive power â often turning up high in Google search results for general queries like âmattress reviewsâ or brand-specific ones like âCasper reviews.â And without many showrooms to allow customers to try out these mattresses, online reviews carried even more weight.
As a result of that power, Casper at times engaged with the sites. In 2015, Casper CEO Philip Krim had a months-long email conversation with one of the siteâs founders, sounding like he was ready for Casper to play ball.
âCurrently you actively endorse a competing product on our review page,â Krim wrote in one email, which was made public in court filings. âWhat can we do to not have you endorse another product as superior to ours?â
In an email to Recode last year, Krim characterized the conversation as an âeffort to figure out how to urge these sites to stop steering away consumers specifically looking for Casper to the copycats,â whom Krim alleged âwere paying larger affiliate fees and provided more lucrative compensation structures.â
Casper claimed the practices cost it millions of dollars in potential sales.
In the end, all three reviews companies settled with Casper. But a bizarre thing happened after the settlement with a popular site called Sleepopolis: Casper provided a loan to another mattress reviews company to acquire the site from its previous owners.
A Casper spokesperson says Sleepopolis is run independently of Casper â meaning both as a business and as an editorial entity. It is now owned by a company called JAKK Media that specializes in search engine optimization and operates other reviews sites like MattressClarity.com and SlumberSage.com. A disclosure appears on many of Sleepopolisâ pages.
But the relationship has not been lost on Casperâs competitors or competing review sites, who have been gossiping about it since it was announced earlier this summer.
They wonder what happens if the operators of Sleepopolis default on the Casper loan, giving the mattress company control of the site. Perhaps more importantly, they question why a company of Casperâs stature in the industry â the startup is believed to be the biggest of the so-called âbed-in-a-boxâ startups, recently raising a $170 million investment led by Target and with its products in Target stores â would risk the perception of impropriety. I have yet to get an answer.
A review on Sleepopolis from 2016 called Casper âan above average ... mattress, but itâs not above average enough. There are simply too many other mattresses available that I find offer better support, comfort, and feel for about the same price (some even less).â
The review linked to four other mattress brands that the previous Sleepopolis owner recommended at the time over Casper. His site appeared to have had commission relationships with at least three of them at the time, but not Casper.
That review appears to be gone. In its place, thereâs a new detailed Casper review on Sleepopolis that is marked as being updated this September. A link to it appears on the first page of Google search results for âCasper reviews.â
The review ends on this note:
âOverall my experience with Casper was very positive â the comfort of the mattress definitely stands out from the pack in my mind. With their generous sleep-trial, if the Casper mattress intrigues you, I say go for it!â
The writer then provides a link to Casperâs website â along with a discount code.