Bifurcated Rivets: From FB

Trumpet - no future

Bifurcated Rivets: From FB

Buttons

Bifurcated Rivets: From FB

Riot

Bifurcated Rivets: From FB

Useful

Bifurcated Rivets: From FB

Wow

search.cpan.org: Travel-Status-DE-IRIS-1.10

Interface to IRIS based web departure monitors.

Hackaday: Tiny Pipe Organ Needs Tiny Church

There are a lot of unusual listings on eBay. If you’re wondering why someone would have a need for shredded cash, or a switchblade comb, or some “unicorn meat” (whatever that is), we’re honestly wondering the same thing. Sometimes, though, a listing that most people would consider bizarre finds its way to the workbench of someone with a little imagination. That was the case when [tinkartank] found three pipe organ pipes on eBay, bought them, and then built his own drivers.

The pipes have pitches of C, D, and F# (which make, as far we can tell, a C add9 flat5 no3 chord). [tinkartank] started by firing up the CNC machine and creating an enclosure to mount the pipes to. He added a church-like embellishment to the front window, and then started working on the controls for the pipes. Each pipe has its own fan, each salvaged from a hot air gun. The three are controlled with an Arduino. [tinkartank] notes that the fan noise is audible over the pipes, but there does seem to be an adequate amount of air going to each pipe.

This project is a good start towards a fully functional organ, provided [tinkartank] gets lucky enough to find the rest of the pipes from the organ. He’s already dreaming about building a full-sized organ of sorts, but in the meantime it might be interesting to use his existing pipes to build something from Myst.


Filed under: musical hacks

IEEE Job Site RSS jobs: Faculty Positions

Ontario, Canada York University Sat, 01 Oct 2016 04:00:00 -0700

Recent additions: distributed-closure 0.3.3.0

Added by MathieuBoespflug, Sat Oct 1 10:17:53 UTC 2016.

Serializable closures for distributed programming.

search.cpan.org: MIME-Detect-0.06

MIME file type identification

Recent additions: phaser 0.1.0.0

Added by quick_dudley, Sat Oct 1 10:13:15 UTC 2016.

Incremental multiple pass parser library.

search.cpan.org: App-AcmeCpanauthors-0.002

Unofficial CLI for Acme::CPANAuthors

Slashdot: Implication of Sabotage Adds Intrigue To SpaceX Investigation

An anonymous reader quotes a report from The Washington Post: The long-running feud between Elon Musk's space company and its fierce competitor United Launch Alliance took a bizarre twist this month when a SpaceX employee visited its facilities at Cape Canaveral, Fla., and asked for access to the roof of one of ULA's buildings. About two weeks earlier, one of SpaceX's rockets blew up on a launchpad while it was awaiting an engine test. As part of the investigation, SpaceX officials had come across something suspicious they wanted to check out, according to three industry officials with knowledge of the episode. SpaceX had still images from video that appeared to show an odd shadow, then a white spot on the roof of a nearby building belonging to ULA, a joint venture between Lockheed Martin and Boeing. The SpaceX representative explained to the ULA officials on site that it was trying to run down all possible leads in what was a cordial, not accusatory, encounter, according to the industry sources, who spoke on the condition of anonymity because of the ongoing investigation. The building, which had been used to refurbish rocket motors known as the SMARF, is just more than a mile away from the launchpad and has a clear line of sight to it. A representative from ULA ultimately denied the SpaceX employee access to the roof and instead called Air Force investigators, who inspected the roof and didn't find anything connecting it to the rocket explosion, the officials said. This week, ten members of Congress sent a four-page letter to several government agencies about the SpaceX explosion, raising the question as to whether or not SpaceX should be leading the investigation. Elon Musk said the investigation into what went wrong is the company's "absolute top priority." He added, "We've eliminated all of the obvious possibilities for what occurred there. So what remains are the less probable answers." SpaceX aims to resume flights in November.

Read more of this story at Slashdot.

search.cpan.org: App-linespeed-0.001

Calculate how fast input lines are coming in

search.cpan.org: App-genlines-0.003

Produce lines with a specified speed range

Tea Masters: Le coeur au centre du thé

Dans un magasin de thé de Suzhou, Chine
Dans mon dernier article, j'ai critiqué le thé 'haut de gamme' en Chine et je n'ai pas changé d'avis. Mais je me rappelle du conseil de Bourion, le mythique prof de management à l'Institut Commercial de Nancy: pour être certain d'avoir l'esprit clair, non biaisé, il faut toujours être capable de trouver des points positifs et négatifs aux personnes, produits, systèmes que l'on évalue. La perfection n'existe pas dans le réel. Si on ne voit plus que du négatif ou du positif concernant un homme politique, un produit ou une entreprise, c'est qu'on se laisse trop influencer par ses préjugés...

Aussi, j'ai envie de partager mon expérience de ma visite dans une petite boutique de thé de Suzhou. J'y étais allé pour voir ce qu'on y propose et mieux comprendre le marché local. J'ai annoncé d'emblée que je ne comptais pas acheter de thé, mais, face à ma curiosité, on me proposa un BiLuoChun printanier (sortir du congélateur) bien poilu (= beaucoup de bourgeons)! On m'en mit une bonne dose dans le verre et on arrêta pas de réinfuser ces feuilles avec l'eau bouillante contenue dans la bouteille thermos verte. (C'est la méthode courante d'infusion du thé vert en Chine Populaire). Après mes premières gorgées, je remarquai que l'eau provenait du robinet et avait une odeur chlorée. Le patron confirma et fut assez impressionné par ma remarque. La discussion s'engagea pendant plus d'une demi-heure sur le thé sans aucune pression d'achat (à part celle de me faire goûter un autre thé, ce que je refusai car le rapport qualité/prix de ce BiLuoChun ne me paraissait pas convaincant et je ne voulais pas abuser de sa générosité). Le patron n'arrêtait pas de remplir mon verre d'eau chaude et moi d'étancher ma soif!
Il y a 2 choses que j'aime particulièrement dans le business du thé:
- bien qu'on décrie (souvent à juste raison) ses exagérations et fausses informations, il est particulièrement honnête à la base! En effet, avant d'acheter une grande quantité, la plupart des acheteurs ont l'occasion de goûter à l'infusion des feuilles. C'est même très souvent gratuit si vous achetez quelques kg. La transparence du produit est alors totale puisque l'acheteur peut le consommer pour se faire sa propre opinion sans tenir compte des étiquettes, de l'âge des théiers, de la renommée du terroir... L'achat se fait donc en complète connaissance du produit (par expérience). Et si l'on ne veut/peut pas acheter de grande quantité d'un même thé, on a, avec Internet, un vaste choix de détaillants prêts à vendre des feuilles en petites quantité, à des prix de plus en plus compétitifs. A chacun de se faire son opinion en qui il peut avoir confiance pour sélectionner de bonnes feuilles.
- tous les vendeurs de thés ont une obligation de faire de la marge pour gagner leur vie, mais la plupart des indépendants font ce métier par passion pour le thé. Et quand ils rencontrent un autre passionné (professionnel ou amateur) qui comprend le langage et la culture du thé, alors une porte fraternelle s'ouvre bien grand. Ceux qui suivent ce blog se souviennent probablement de belles rencontres que j'ai faites avec d'autres amoureux/ses du thé et dont de nombreux professionnels (ou bien des amateurs qui sont ensuite devenus professionnels!) Quand la joie du bon thé est partagée, une satisfaction profonde s'ensuit. C'est tellement universel qu'on peut partager ce sentiment avec des personnes de toutes nationalités. Notre bonheur, c'est la connection par le thé.
Voilà pourquoi j'ai essayé de former un grand coeur avec mon Chaxi. Ambiance automnale avec un Oolong torréfié. Jarre qinghua ancienne avec le caractère chinois du double bonheur. Bonheur du thé qui s'y bonifie et du lien fraternel qu'il crée. Le coeur est au centre du thé.
Hung Shui Oolong de Yong Lung du printemps 2014
(Note: les liens avec les autres blogs ont disparu par enchantement de la colonne de droite. La semaine prochaine, je vais devoir les remettre un à un dans mon système et j'espère n'oublier personne...)

Hackaday: When LEGO Flies

Building your own drone is a common enough pursuit among Hackaday readers. There are quite a few LEGO enthusiasts around, too. A company named Flybrix wants to marry those two pursuits and is offering a kit that allows you to build your drone out of LEGO bricks.

The company isn’t affiliated with LEGO. The kits look like they have some pretty common motors and control hardware. There are a few custom pieces, but the real key appears to be a LEGO compatible mount for the motors. You can see a video about the kit, below.

Naturally, this being Hackaday, we couldn’t help but notice you could by the parts cheaper than the kits (the motor arms are $10 for 8 and you can get a set of replacement bricks for $16. It would be pretty easy to use these as a basis for building your own drone without all of their parts. What’s more, if you have a 3D Printer, you could surely print your own motor mounts and get in on the action. There are plenty of LEGO-compatible bricks on Thingiverse, for example, that could be quickly modified.

Flybrix isn’t the only game in town. We’ve seen similar kits from Brick Drones, and a few on Instructables as well (including one with a GoPro camera).

Since we usually have to rebuild our drones, there’s a certain appeal to having one made out of LEGO bricks. We’ve seen moving LEGO creations before, but can’t recall one that flies. If you are looking for your own control system, maybe you can use a Pi Zero.


Filed under: drone hacks, toy hacks

Electronics-Lab: Measuring the speed of light with electronics

The speed of light in vacuum is a well-known universal constant and is considered to be the nature’s ultimate speed limit. No matter, energy, and information can travel faster than this speed. The speed of light has always been a topic of great interest and significance throughout history. In the course of measuring the speed of light, scientists have explored numerous ingenious approaches from analyzing the motion of heavenly bodies to artificial quantitative measurements in the laboratory. Michael Gallant describes a very simple approach of measuring this physical constant using an infrared LED, a photodiode circuit, and an oscilloscope. The premise of this method is to allow an infrared beam to travel different distances and then compute the time delay (Δt) between them using the oscilloscope. By measuring the difference in the distances (Δd), the speed of light can be calculated as the ratio of Δd and Δt.

IR Light source
IR Light source

The following diagram describes the setup he used. A Vishay 870 nm IR LED (TSFF5210) generates an IR pulse beam that splits into two beams (L1a and L0) through a beamsplitter (BS). L0 is directly focused onto the photodiode (Pd) using a lens. The L1a beam gets reflected off a mirror, travels along the path L1b, and then focused using a different lens onto the same photodiode. You can see the net path difference between the two beams before they hit the photodiode is (L1a+L1b – L0). If the original IR pulse is kept adequately short, the two optical pulses detected by the photodiode will not overlap in time. An oscilloscope of sufficient bandwidth can therefore reveal the time difference between the two pulses. The photodetector used in this setup was Vishay BPV10 high speed Si pin type with a bandwidth of 200 MHz. The photodiode signal is amplified using an AD8001 Opamp based preamplifier circuit with a gain of 35 (31 dB) and BW of 50 MHz.

Experimental setup for measuring the speed of light
Experimental setup for measuring the speed of light

Michael measured the path difference of the two beams to be 1851 cm and the difference in the time of flight to be 62 nanoseconds from the oscilloscope. This results in the measured speed of light to be 298548387 m/s, which is remarkably accurate for such a simple setup.

Time difference between the arrival of the two pulses can be seen on the oscilloscope
Time difference between the arrival of the two pulses can be seen on the oscilloscope

Find more about this project.

The post Measuring the speed of light with electronics appeared first on Electronics-Lab.

Slashdot: Rosetta's 12-Year Mission Ends With Landing On Comet

sciencehabit writes: It was an unusual grand finale. The crowded European Space Agency (ESA) operations center in Darmstadt, Germany, waited in silence and then the signal from the descending Rosetta mission simply stopped at 1.19 pm local time showing that the spacecraft had, presumably, landed on comet 67P/Churyumov-Gerasimenko some 40 minutes earlier, due to the time the signal takes to reach Earth. Mission controllers hugged each other; there was gentle applause from onlookers; and that was it. There were no last minute crises. Seven of Rosetta's instruments kept gathering data until the end. Holger Sierks, principal investigator of the 12-year mission's main camera, showed the gathered staff, officials, and journalists Rosetta's final picture: a rough gravelly surface with a few larger rocks covering an area 10 meters across. Earlier, it had snapped the interior of deep pits on the comet (shown above, from an altitude of 5.8 kilometers) that may show the building blocks it is made of. "It's very crude raw data but this will keep us busy," Sierks said. It is hoped that this last close-up data grab will help to clarify the many scientific questions raised by Rosetta.

Read more of this story at Slashdot.

All Content: Masterminds

Thumb_masterminds-2016-2

If smart dumb comedies hold a place in your heart, you'll like "Masterminds." The main characters are masterminds only in their own heads, and the thoughts that tumble out of their mouths are as nonsensical as they are sincere. The stupider the thought, the harder the joke lands. "The Jerk," "Napoleon Dynamite," "Dumb and Dumber," "Anchorman" and other films all worked this vein. There's a whole glorious wing of smart-dumb that sends up crime pictures; the subgenre's peak practitioners are probably Joel and Ethan Coen, whose filmography is packed with dunderheaded crooks who can barely tie their shoes, yet fancy themselves geniuses.

The Coens' early masterpiece "Raizing Arizona"—the first of many botched kidnapping flicks by the Coens—looms over "Masterminds," a polished bit of silliness about a band of small-time South Carolina crooks who somehow pulled off the biggest cash heist in American history: the inside-job robbery of an armored car filled with $17 million in Loomis Fargo money. I didn't know any of the details of the actual case going in and was startled to learn that aside from the film's goofy finale—which I won't describe in detail because it's terrific—a lot of the events that you'd assume were invented are drawn straight from life.

Of course all of those real details have been exaggerated and made grotesque or ludicrous, in manner of most "Saturday Night Live"-style, semi-improvised comedies; and many more incidents have been invented or embellished, the better to enable costars Zach Galifianakis, Kristen Wiig, Kate McKinnon, Jason Sudeikis, Owen Wilson and Leslie Jones to don wigs and facial appliances and trot out accents. In the end this is a film about dopes falling down, running into things, walking or running strangely, making sincere or "menacing" speeches that come out as word salad, and indulging in tender, even heartfelt exchanges that could have just as easily popped out of the mouths of Stan Laurel and Oliver Hardy.

The film's crackpot-innocent sensibility is encapsulated by a scene where Wiig's character Kelly Campbell, a former security company employee who was fired for incompetence, tries to convince an ex-coworker, Galfianakis' David Scott Ghantt, that she'll join him in Rio if he uses his keys to open a vault and steal cash from the company. David sheepishly replies that not only has he never traveled outside the country, he's only been to the airport a few times. "It's a magical place," Kelly says, referring to Rio. "Yeah," David says, "all those planes landin' and takin' off and such." 

David is sweet on Kelly, so he lets her entice him into meeting with the alleged mastermind of the heist, her friend Steve Chambers (Wilson), a pea-brain who dubs himself Geppetto because he's "the guy pulling the strings." David sheepishly corrects him: he's thinking of another character from "Pinocchio," Stromboli; Geppetto is actually the guy who built Pinocchio.  You can tell by the way Steve tenses the back of his shoulders and neck that he hates being corrected. You can't see his face, though, because they're in a diner, and Steve is sitting one booth away with his back turned so David can't identify him.

"Masterminds" was written by Chris Bowman, Hubbell Palmer and Emily Spivey and directed by "Napoleon Dynamite" and "Gentlemen Broncos" filmmaker Jared Hess,  American cinema's second most distinguished practitioner of smart-stupid comedy after the Coens. This film is much bigger, broader and lighter than his usual and lacks his characteristic molasses-slow buildups and a certain spiritual quality; but visually and tonally it's in his wheelhouse. Most of the time in these kinds of films the notes of sweetness, naivete and regret feel forced, or else they don't mesh with the sorts of whopping sight gags that Hess stages here, including a mercifully brief explosion of diarrhea, a Buster Keaton-styled car chase through a Mexican town, and an extended scene of David loading the armored car with purloined money, making a series of stupid mistakes that jeopardize the operation 

Here, though, you believe the sweetness, because Hess and his cast sell it with poker faces. Kelly is a femme fatale of sorts, but because she doesn't grasp the full extent of the damage she's inflicted on David's life, you don't hate her; you just wait for the inevitable moment when she feels bad and tries to set things right. David, likewise, can't stay a schlub forever, even though he never realizes that his bangs, mustache and beard make him look like a Muppet. (He thinks everyone else looks ridiculous, at one point describing Steve as "Ric Flair's little boy.") You know he'll stand up and fight back at some point, and that when it does, it feels like an earned redemption rather than a plot obligation. Sudeikis' character, a hitman hired to kill David to stop him from spilling the beans to Jones' FBI agent, has an even stranger, bizarrely moving arc, one that I wouldn't dream of revealing here.

The film is probably too long and sometimes too pleased with itself, and the structure and pacing are frustrating; not bad, just frustrating, because they prevent "Masterminds" from becoming truly excellent instead of consistently amusing and occasionally inspired. And it needed a lot more of McKinnon, whose scene-stealing turn as David's jilted fiance captures a particular type of mirthless optimist with spooky accuracy. (She's always announcing deep feelings through a set jaw, dead doll eyes flashing.)

Still, there's something inspiring about so many talented physical comics throwing themselves into roles that have moments of true emotion as well as countless opportunities to yammer, pratfall, bellow in rage, and beat each other up with whatever objects happen to be within reach. And throughout, the movie keeps serving you little grace notes that are probably unnecessary from a plot standpoint but make the whole experience richer, such as the way Kelly soothes David on the phone by singing him tuneless "American Idol"-styled vocal runs, or the slow-motion shot of David strutting in a caballero outfit while clutching an elephant pinata, or the way Sudekis' assassin leaves a pile of cash for a friend and places a tiny black sombrero on top of it like a paperweight. Another of David's blithering declarations of love for Kelly should've been the movie's tagline: "Bonnie needs his Clyde."


Recent additions: pptable 0.1.0.1

Added by gdevanla, Sat Oct 1 05:06:09 UTC 2016.

Pretty Print containers in a tabular format

Hackaday: Hackaday Prize Entry: Crowdsourced Tactile Interfaces

Your microwave, your TV, and almost the entire inventory of Best Buy have one thing in common: they all uses membrane switches for user interaction, and that means these devices are inaccessible for the blind. This project for the Hackaday Prize is going to change that by building a crowdsourced effort to design Braille keypads for thousands of appliances.

There are two aspects of this project that are exceptionally interesting, the least of which is how to make Braille keypads for a microwave. This is done with a 3D printer using a flexible or semi-flexible filament. These keypads are designed to overlay the membrane keypad on consumer electronic devices, and the initial testing reveals these keypads are robust and useful enough for blind users.

A 3D printed overlay for a microwave is simple, though. The big question is how these overlays are designed. For this, the project suggests a crowdsourced effort of hundreds of designers turning photographs of keypads into Braille overlays. The process begins with a few pictures of a keypad with a reference object – for example, a dollar bill. These photographs are scaled to the correct dimensions, a few outlines are made, and the buttons with Braille text are designed. It’s a brilliant use of people who have just enough experience in Photoshop to be useful, and since this is a crowdsourced effort, work isn’t duplicated. The keypad overlays for one specific make and model of microwave can be printed over and over again, bootstrapping an effort to make membrane keypads useful for all blind people.


Filed under: The Hackaday Prize

Explosm.net: Comic for 2016.10.01

New Cyanide and Happiness Comic

Recent additions: psi 0.1.1.0

Added by fractalcat, Sat Oct 1 04:55:06 UTC 2016.

Yet another custom Prelude.

Disquiet: Sonic Freeze Frame

“Cascade V.1” by the (apparently?) anonymous Northampton, Massachusetts–based musician who goes by PrettyRobots+HungryGhosts, is a slow, tinkling drone that gains layers of quietly anxious activity as it proceeds until, true to its name, it explodes in a vibrantly refracting hall of mirrors stutter. Her piece is room tone and glass clicks, mood setting and light glitch, until it goes all sonic freeze frame. It’s grand.

Track originally posted at soundcloud.com/prettyrobotshungryghosts. More at prettyrobots–hungryghosts.tumblr.com.

MetaFilter: Just like a hairy black potato with wings

Let's close out Happy Fun September with the heretofore unknown parts of the creation story.

Slashdot: Feds Go After Mylan For Scamming Medicaid Out of Millions On EpiPen Pricing

An anonymous reader quotes a report from Ars Technica: Over the nine or so years that Mylan, Inc. has been selling -- and hiking the price -- of EpiPens, the drug company has been misclassifying the life-saving device and stiffing Medicaid out of full rebate payments, federal regulators told Ars. Under the Medicaid Drug Rebate Program, drug manufacturers, such as Mylan, can get their products covered by Medicaid if they agree to offer rebates to the government to offset costs. With a brand-name drug such as the EpiPen, which currently has no generic versions and has patent protection, Mylan was supposed to classify the drug as a "single source," or brand name drug. That would mean Mylan is required to offer Medicaid a rebate of 23.1 percent of the costs, plus an "inflation rebate" any time Mylan raises the price of the brand-name drug at a rate higher than inflation. Mylan has opted for such price increases -- a lot. Since Mylan bought the rights to EpiPen in 2007, it has raised the price on 15 separate occasions, bringing the current list price to $608 for a two-pack up from about $50 a pen in 2007. That's an increase of more than 500 percent, which easily beats inflation. But instead of classifying EpiPen as a "single source" drug, Mylan told regulators that it's a "non-innovator multiple source," or generic drug. Under that classification, Mylan is only required to offer a rebate of 13 percent and no inflation rebates. It's unclear how much money Mylan has skipped out on paying in total to state and federal governments. But according to the state health department of Minnesota, as reported by CNBC, the misclassification cost that state $4.3 million this year alone.

Read more of this story at Slashdot.

Recent additions: canteven-http 0.1.1.2

Added by taphu, Sat Oct 1 03:25:41 UTC 2016.

Utilities for HTTP programming.

Penny Arcade: News Post: We Need A Back-End Developer/SysAdmin

Tycho: Here’s what you know: Critical Apache CDN Management MySQL Varnish Web development experience E-commerce experience Knowledge of PHP, jQuery, Javascript, HTML Important, but you could learn it here Expression Engine experience Shopify experience Bonus Computer science background Familiarity with CSS Developing sites for mobile UX design A cool hacker name like “Isolde” or “Matrix” Here’s who you are: When you encounter a new challenge, it’s exciting.  You can always think of something that could be a little, or even a lot better, and work to…

MetaFilter: Oh, those Russians.

The story of The Red Shoes, by way of '70s disco phenom Boney M. And also sarcastic animators.

All Content: 13th

Thumb_13-2016-2

"Neither slavery nor involuntary servitude, except as a punishment for crime whereof the party shall have been duly convicted, shall exist within the United States, or any place subject to their jurisdiction." –Thirteenth Amendment of the United States Constitution

When the 13th amendment was ratified in 1865, its drafters left themselves a large, very exploitable loophole in the guise of an easily missed clause in its definition. That clause, which converts slavery from a legal business model to an equally legal method of punishment for criminals, is the subject of the Netflix documentary “13th.” Premiering tonight at the New York Film Festival, “13th” is the first documentary to open the festival in its 54 year history. Director Ava DuVernay’s takes an unflinching, well-informed and thoroughly researched look at the American system of incarceration, specifically how the prison industrial complex affects people of color. Her analysis could not be more timely nor more infuriating. The film builds its case piece by shattering piece, inspiring levels of shock and outrage that stun the viewer, leaving one shaken and disturbed before closing out on a visual note of hope designed to keep us on the hook as advocates for change.

“13th” begins with an alarming statistic: One out of four African-American males will serve prison time at one point or another in their lives. Our journey begins from there, with a slew of familiar and occasionally surprising talking heads filling the frame and providing information. DuVernay not only interviews liberal scholars and activists for the cause like Angela Davis, Henry Louis Gates and Van Jones, she also devotes screen time to conservatives such as Newt Gingrich and Grover Norquist. Each interviewee is shot in a location that evokes an industrial setting, which visually supports the theme of prison as a factory churning out the free labor that the 13th Amendment supposedly dismantled when it abolished slavery.

We’re told that, after the Civil War, the economy of the former Confederate States of America was decimated. Their primary source of income, slaves, were no longer obligated to line Southerners’ pockets with their blood, sweat and tears. Unless, of course, they were criminals. “Except as punishment for a crime whereof the party shall have been duly convicted” reads the loophole in the law. In the first iteration of a “Southern strategy,” hundreds of newly emancipated slaves were re-enlisted into free, legal servitude courtesy of minor or trumped-up charges. The duly convicted part may have been questionable, but by no means did it need to be justifiably proven.

So begins a cycle that DuVernay examines in each of its evolving iterations; when one method of subservience-based terror falls out of favor, another takes its place. The list feels endless and includes lynching, Jim Crow, Nixon’s presidential campaign, Reagan’s War on Drugs, Bill Clinton’s Three Strikes and mandatory sentencing laws and the current cash-for-prisoners model that generates millions for private bail and incarceration firms.

That last item is a major point of discussion in “13th”, with an onscreen graphic keeping tally of the number of prisoners in the system as the years pass. Starting in the 1940’s, the curve of the prisoner count graph begins rising slowly though steeply. A meteoric rise began during the Civil Rights movement and continued into the current day. As this statistic rises, so does the level of decimation of families of color. The stronger the protest for rights, the harder the system fights back against it with means of incarceration. Profit becomes the major by-product of this cycle, with an organization called ALEC providing a scary, sinister influence on building laws that make its corporate members richer.

Several times throughout “13th” there is a shock cut to the word CRIMINAL, which stands alone against a black background and is centered on the huge movie screen. It serves as a reminder that far too often, people of color are seen as simply that, regardless of who they are. Starting with D.W. Griffith’s “The Birth of a Nation”, DuVernay traces the myth of the scary Black felon with supernatural levels of strength and deviant sexual potency, a myth designed to terrify the majority into believing that only White people were truly human and deserving of proper treatment. This dehumanization allowed for the acceptance of laws and ideas that had more than a hint of bias. We see higher sentences given for crack vs. cocaine possession and plea bargains accepted by innocent people too terrified to go to trial. We also learn that a troubling percentage of people remain in jail because they’re too poor to post their own bail. And regardless of your color, if you’re a felon, you can no longer vote to change the laws that may have unfairly prosecuted you. You lose a primary right all Americans have.

“13th” covers a lot of ground as it works its way to the current days of Black Lives Matter and the terrifying videos of the endless list of African-Americans being shot by police or folks who supposedly “stood their ground.” On her journey to this point, DuVernay doesn’t let either political party off the hook, nor does she ignore the fact that many people of color bought into the “law and order” philosophies that led to the current situation. We see Hillary Clinton talking about “super-predators” and Donald Trump’s full-page ad advocating the death penalty for the Central Park Five (who, as a reminder, were all innocent). We also see people like African-American congressman Charlie Rangel, who originally was on board with the tough on crime laws President Clinton signed into law.

By the time we get to the montage of the deaths of Philando Castile, Tamir Rice, Eric Garner and others (not to mention the huge, screen-covering graphic of names of African-Americans shot by law enforcement), “13th” has already proven its thesis on how such events can not only occur, but can also seem sadly like “business as usual.” It’s a devastating finale to the film, one that follows an onscreen discussion about whether or not the destruction of Black bodies should be run ad nauseum on cable news programs. DuVernay opts to show the footage, with an onscreen disclaimer that it’s being shown with permission by the families of the victims, something she did not need to seek but did so out of respect.

Between the lines, “13th” boldly asks the question if African-Americans were actually ever truly “free” in this country. We are freer, as this generation has it a lot easier than our ancestors who were enslaved, but the question of being as completely “free” as our White compatriots hangs in the air. If not, will the day come when all things will be equal? The final takeaway of “13th” is that change must come not from politicians, but from the hearts and minds of the American people.

Despite the heavy subject matter, DuVernay ends the film with joyful scenes of children and adults of color enjoying themselves in a variety of activities. It reminds us, as she said in her Q&A with NYFF director Kent Jones, that “Black trauma is not our entire lives. There is also Black joy.” That inspiring message, and all the important, educational information provided by this excellent documentary, make “13th” a must-see.


Disquiet: What Sound Looks Like


I flew a kite for the first time in decades if not ages, for the first time perhaps since before my own age hit double digits. The kite was a gift my child, still early on in single digits, had received, and we took it down to the ocean — a straight shot by bus from our home — to see how well it took to the wind. There is a dragon on the kite, a not particularly friendly looking dragon. The higher the kite flew, the more the dragon’s eyes seemed to shine with the sun. If you can hear your kite, that’s not a particularly good sign. When the kite lingers a couple dozen feet above the beach, the tails flutter perceptibly, much like a flag fighting to stay erect in a storm. If you hear your kite, it is proximate to ground, perhaps heading rapidly in that direction. The goal is to not hear your kite. The higher the kite goes, the quieter the flutter, until at some point the kite makes no sound at all. It ascends into silence. I had it in the air for almost 45 minutes straight, learning to tug this way and that to keep it afloat when the elements challenged its flight plan. At some point I recognized that I could pluck the string and watch the waveform travel up to the heavens, up to the kite, which would jiggle a bit in response. The slender tether made me think of Ellen Fullman’s Long String Instrument, which places the performer, generally Fullman herself, in a field of resonant strings, like a Lilliputian caught in a luthier’s workshop. I wondered how my long string might come to make sound, rather than recede from sound. As it hung in the air, I took mental notes about attaching something, maybe a bell, maybe a wind chime. Those experiments are for the next trip to the beach.

An ongoing series cross-posted from instagram.com/dsqt.

Penny Arcade: News Post: Success And Its Opposite

Tycho: This is exactly how I play these games, in general.  I’m not, you know, proud of it, that’s just the pattern.  But Horizon might break me out of it, just because it doesn’t have the same segmented arc at all.  It’s not race/menu/race/menu.  It’s an open world game where your body is a car, and what they’ve got me doing in there is far, far more varied than I was expecting.  I also wasn’t aware of developer Playground Games’ pedigree - take a look at the Wikipedia page, which is essentially a spreadsheet of every racing…

ScreenAnarchy: Hey Australia! Win Tickets to See OPERATION MEKONG in Cinemas!

Operation Mekong is the latest action film by Hong Kong director Dante Lam (Beast Stalker, The Stool Pigeon, Unbeatable), who has said that it is his biggest film to date. It stars Eddie Peng and Zhang Hanyu.    Thanks to Magnum Films, we have FIVE double passes for the film to give away to our readers.    For a chance to win, all you have to do is to follow these two steps:   1) Like the Magnum Film Facebook page, and   2) Email your name and postal address to me at: hugo[at]screenanarchy.com   Operation Mekong will open in Australian cinemas on October 6 and this competition will close at 3pm on October 4. Good luck!...

[Read the whole post on screenanarchy.com...]

Hackaday: Making an Espresso Pot In the Machine Shop

[This Old Tony] was cleaning up his metal shop after his yearly flirtation with woodworking when he found himself hankering for a nice coffee. He was, however, completely without a coffee making apparatus. We imagine there was a hasty round of consulting with his inanimate friends [Optimus Prime] and [Stefan Gotteswinter Brush] before he decided the only logical option was to make his own.

So, he brought out two chunks of aluminum from somewhere in his shop, modeled up his plan in SolidWorks, and got to work.  It was designed to be a moka style espresso pot sized around both the size of stock he had, and three purchased parts: the gasket, funnel, and filter. The base and top were cut on a combination of lathe and mill. He had some good tips on working with deep thin walled parts. He also used his CNC to cut out some parts, like the lid and handle. The spout was interesting, as it was made by building up a glob of metal using a welder and then shaped afterward.

As usual the video is of [This Old Tony]’s exceptional quality. After quite a lot of work he rinsed out most of the metal chips and WD40, packed it with coffee, and put it on the stove. Success! It wasn’t long before the black stuff was bubbling into the top chamber ready for consumption.


Filed under: home hacks, tool hacks

MetaFilter: The water reached higher than the Sears Tower

Lituya Bay is a narrow fjord on the southeast coast of Alaska. In the early 1950s, a geologist found evidence that seemed to indicate tsunamis had occurred there in the past, but of seemingly impossible size. Then in 1958, an earthquake showed what a mega-tsunami was really like....

Slashdot: Print-On-Demand Bone Could Quickly Mend Major Injuries

sciencehabit quotes a report from Science Magazine: If you shatter a bone in the future, a 3D printer and some special ink could be your best medicine. Researchers have created what they call "hyperelastic bone" that can be manufactured on demand and works almost as well as the real thing, at least in monkeys and rats. Though not ready to be implanted in humans, bioengineers are optimistic that the material could be a much-needed leap forward in quickly mending injuries ranging from bones wracked by cancer to broken skulls. Researchers at Northwestern University, Evanston, in Illinois are working on a hyperelastic bone, which is a type of scaffold made up of hydroxyapatite, a naturally occurring mineral that exists in our bones and teeth, and a biocompatible polymer called polycaprolactone, and a solvent. Hydroxyapatite provides strength and offers chemical cues to stem cells to create bone. The polycaprolactone polymer adds flexibility, and the solvent sticks the 3D-printed layers together as it evaporates during printing. The mixture is blended into an ink that is dispensed by the printer, layer by layer, into exact shapes matching the bone that needs to be replaced. The idea is, a patient would come in with a nasty broken bone -- say, a shattered jaw -- and instead of going through painful autograft surgeries or waiting for a custom scaffold to be manufactured, he or she could be x-rayed and a 3D-printed hyperelastic bone scaffold could be printed that same day.

Read more of this story at Slashdot.

Slashdot: New California Law Allows Test of Autonomous Shuttle With No Driver

If you live in California, you may soon start to see self-driving cars on the road with no operators to be seen. California Governor Jerry Brown signed into law on Thursday a bill that allows a self-driving vehicle with no operator inside to test on a public road. Currently, companies are legally able to test self-driving cars in California as long as the operators are located inside the vehicles when they are being tested. Fortune reports: The bill introduced by Democratic Assemblywoman Susan Bonilla allows testing in Contra Costa County northeast of San Francisco of the first full-autonomous vehicle without a steering wheel, brakes, accelerator or operator. New legislation was necessary because although driverless vehicles can be tested on private land like the office park, the shuttle will cross a public road on its loop through the campus. The new law means that two cube-like Easymile shuttles that travel no faster than 25 mph (40 kph) will be tested for a period of up to six months before being deployed and used by people. In an interview with Reuters in March, Bonilla said the "natural tension" between regulators concerned about safety and lawmakers trying to encourage innovation in their state necessitated a new bill. "They're risk averse and we're saying we need to open the door here and take steps (to innovate)," Bonilla said, calling the driverless shuttle project "a very wise first out-of-the-gate opportunity" to show how the technology could work safely.

Read more of this story at Slashdot.

MetaFilter: Start to move slowly, very slowly

Enigma - MCMXC a.D.. I don't know what the producers of this album were thinking, but obviously one should never put this album on during sex.

Bonus remixes: Sadeness Part I (Violent US Mix), Mea Culpa Part II (Fading Shades Mix)

ScreenAnarchy: Fantastic Fest 2016: All The Awards

Fantastic Fest is all wrapped up and the Shiner hangover is just now setting in. That hangover may be a few days later than normal due to the lack of the customary boozy awards show, but we can now share all the winners. And while not every film can win a prize (though it's certainly close), every film programmed at the Austin genre spectacular is a winner just based on inclusion. Here are the movies the esteemed jurors chose to single out: "NEXT WAVE" FEATURES Best Picture:  ZOOLOGY directed by Ivan I. Tverdovsky Best Director: Julia Ducournau for RAW Special Mention for Fantastic Spirit: THE LURE FANTASTIC FEATURES Best Picture: COLOSSAL directed by Nacho Vigalondo Best Director: Amat Escalante for THE UNTAMED HORROR FEATURES Best Picture:...

[Read the whole post on screenanarchy.com...]

Instructables: exploring - featured: Magical Creature Costumes

Who doesn't want to get lost in a fairy tale? Dress up this halloween as your favorite magical creature, be it an elf, fairy, dragon, mermaid, or other character of your own imagining! How to be an Elf The Queen's Round Metal Hat Elf Ears, custom-made in silicone rubber How to Apply...
By: Natalina

Continue Reading »

ScreenAnarchy: Fantastic Fest 2016 Review: SAFE NEIGHBORHOOD is the Right Kind of Twisted

Let's not beat around the bush. Home Alone was pretty obviously the inspiration for Chris Peckover's sophomore feature Safe Neighborhood. There's nothing wrong with that. We all know that both John Hughes and Chris Columbus are filmmakers well worth emulating. But let's just say, there is a lot more than mere emulation going on in Peckover's ode. Instead we get a very dark and twisted thriller-comedy that is also a hell of a lot of fun. While Kevin McCallister was obviously all by himself in that film, Safe Neighborhood's protagonist Luke (Levi Miller) has a bit more company. This is in the form of his babysitter Ashley, played by Olivia DeJonge (who you may remember from Shyamalan's The Visit). Despite the teenage chasm worth of...

[Read the whole post on screenanarchy.com...]

Hackaday: DIY Watt-Balance Redefines Your Kilograms From Scratch

national_prototype_kilogram_k20_replica
The definition of the kilogram is still a chunk of metal.

Machined from a chunk of a virtually indestructible platinum-iridium alloy, the international prototype kilogram (IPK) was built to last for an eternity. And yet, being the last remaining, physical artifact in a club of fundamental SI units, the current definition of the kilogram has worn out. Most certainly the watt-balance will take its place, and redefine the kilogram with a true, physical phenomenon. [Grady] just built his own watt-balance from scratch, and he provides you with a decent portion of scientific background on the matter.

A watt-balance doesn’t look or operate much different from a regular balance, only instead of weighing an unknown mass against a calibrated counterweight, a watt-balance employs a calibrated electromagnetic counterforce. That force is produced by an electromagnetic actuator. [Grady] scratch-built his watt-balance from wood, however, even though he carefully turned and wound his own coils for the electromagnets, he cannot be quite sure about the exact amount of force his actuators exercise per ampere of consumed current. Before a watt-balance weighs redefined kilograms, the contraption needs to be calibrated.

Turning the spools Winding the coils The shadow sensor

Thanks to algebra and physics, this can be done by measuring the voltage the electromagnetic actuator itself generates when its permanent magnetic core is moved at a given velocity by an external force. Therefore, the watt-balance features a second, electromagnetic actuator with optical position feedback (practically a servo), to slightly rock the balance back and forth. [Grady] realized the optical feedback by installing a shadow sensor, made from a line laser and a photodiode, to the arm of the balance. An Arduino Uno polls the sensors, samples the induced voltage and sends the measurement data to [Grady’s] host software. After being calibrated in this velocity mode, the balance is operated in its weighing mode, where the gravitational force of the mass in question and the electromagnetic force exercised by the actuator are brought to an equilibrium by simply adjusting the current through the electromagnet’s coil.

We’re glad to see these mighty instruments being built from wood or even LEGO. Enjoy the video below, where [Grady] walks you through the engineering behind his watt-balance.


Filed under: misc hacks

Instructables: exploring - featured: Huge Addressable RGB LED (ceiling) Panel

Hello! Welcome to my instructable on how to make a HUGE adressable led panel, and when I say huge I mean really big. The panel is just over 2.5 x 1 meters large which, in other term, is 8' 4" x 3' 4". The panel was built over multiple days, but if you really wanted to get it done it is doable to bui...
By: akolk1

Continue Reading »

MetaFilter: "When it comes to left feet, I've got ZERO!"

Josh Sundquist is a Paralympian, a bestselling author and motivational speaker. He lost his left leg to Ewing's sarcoma at age nine and later became a Paralympic ski racer. He also has basketball skills: Scorpion Shot, Alley Oop, Trampoline Shot, Toe Flick.

He has rap ambitions, too. And he finally found his sole mate.

JoshSundquist.com
Vine
YouTube
Instagram

(previously)

h/t MeFi's Own Miss Cellania

Instructables: exploring - featured: Raspberry Pi and Arduino LCD

This is a beginning project for those who want to learn more about the basics of raspberry Pi. You do not need to have any experience with the Raspberry Pi or Arduino, but it would help if you had some past programming experience to understand the code that you will be copying.Here you will connect ...
By: x3MasterofElectronics

Continue Reading »

All Content: "Life Itself" Now Streaming for Free Until October 7th

Thumb_life-itself-streaming

Coming off our recent Emmy win, Kartemquin Films has generously made "Life Itself," Steve James' wonderful documentary about my husband, available to stream for free until Friday, October 7th. Here is a sampling of what some critics have written about the film...

“‘Life Itself’ is a work of deftness and delicacy, by turns a film about illness and death, about writing, about cinema and, finally, and very movingly a film about love. Ebert was, by his own and others’ accounts, transformed by meeting and marrying Chaz when he was 50. She was an African-American civil rights lawyer more interested, as he put it, in who he was than in what he did. He became part of her extended family, and as we watch him in home videos from the good days before his troubles started, it is like watching a man blossoming before our eyes." - Geoffrey O'Brien, The New York Times

“There’s an overwhelming sense that Ebert’s fixation on death is simply an extension of his zeal for life in all its complexity, which ‘Life Itself’ embodies from its title on down. Death is a part of life—one that informs everything we do, on some level or another—and watching Ebert characterize whatever time he has left as ‘money in the bank,’ from what viewers know is his deathbed, is life-affirming and heartbreaking in equal measure." - Genevieve Koski, The Dissolve

“Ebert brought the joy and wonder of the movies to every impassioned review he wrote. He was a complicated person; there have been many attempts to sum up his essence succinctly. I have tried myself and failed. But if he was any one thing, I think that he was joyful. James’s documentary captures all of this in the starkest and yet loveliest light. Ebert wanted to be represented in full. He knew that there was something worth putting on the screen when he let James film the painful process of a nurse inserting his feeding tube into his throat each day, or the moments of exhausted frustration when he couldn’t summit a three-step staircase.” - Frances Dodds, DuJour

“For dyed-in-the-wool Ebert fans—those weaned on his thoughtful populism and impassioned advocacy—the august-years footage may be no more affecting than the carefully selected samples of his work, such as an eloquent (and thematically relevant) excerpt from his ‘Tree of Life’ review. Therein lies the happy ending of Ebert’s movie, the uplifting denouement of his third act: The man lives through his words, writ large across the web and accessible at the click of a mouse.” - A.A. Dowd, The A.V. Club

To stream "Life Itself" for free, click here. The film is available for purchase on DVD and Blu-ray, and the soundtrack composed by Joshua Abrams is available digitally at his site

Open Culture: Hear a Playlist of the 336 Songs Mentioned in Bruce Springsteen’s New Memoir, Born to Run

1024px-brucespringsteen2003

Image by Michele Lucon, via Wikimedia Commons

FYI: Earlier this week, Bruce Springsteen released his highly-anticipated memoir, Born to Run. It comes accompanied by a companion album, Chapter and Verse. And now a Spotify playlist that features every single song referenced in the pages of the book–his own or others’. There’s lots of Springsteen–most of his discography, in fact–but also great tracks from Aretha Franklin, Van Morrison, Cream, Lou Reed, Bob Dylan and more. If you need Spotify’s free software, download it here. Then settle in and enjoy 22 hours of music. You can start streaming the music below:

For anyone interested, the novelist Richard Ford has a review of Born to Run (the autobiography) in The New York Times. Ford’s Bascombe trilogy appears on Springsteen’s List of His 20 Favorite Books.

Looking for free, professionally-read audio books from Audible.com? Here’s a great, no-strings-attached deal. If you start a 30 day free trial with Audible.com, you can download two free audio books of your choice. Get more details on the offer here.

Follow Open Culture on Facebook and Twitter and share intelligent media with your friends. Or better yet, sign up for our daily email and get a daily dose of Open Culture in your inbox. And if you want to make sure that our posts definitely appear in your Facebook newsfeed, just follow these simple steps.

Related Content:

Bruce Springsteen Plays East Berlin in 1988: I’m Not Here For Any Government. I’ve Come to Play Rock

Heat Mapping the Rise of Bruce Springsteen: How the Boss Went Viral in a Pre-Internet Era

Springsteen’s Favorite Books & Reading List

Hear a Playlist of the 336 Songs Mentioned in Bruce Springsteen’s New Memoir, Born to Run is a post from: Open Culture. Follow us on Facebook, Twitter, and Google Plus, or get our Daily Email. And don't miss our big collections of Free Online Courses, Free Online Movies, Free eBooksFree Audio Books, Free Foreign Language Lessons, and MOOCs.

Instructables: exploring - featured: Aluminum mushroom in my garden :)

I’ve made some joke (funny) video about an aluminum mushroom which I found in my garden. I didn’t plan to do such a video but when I saw that it (in fact the scrap) looked like a mushroom I decided to make it. So, that's just my installation. The most important I wanted to show was that we can use e...
By: DuralM

Continue Reading »

ScreenAnarchy: Catch A Glimpse Of Soweto's Extreme Music Scene With Documentary Short BLACK BLACK METAL

There are a whole host of assumptions about what sort of music, fashion and other cultural accoutrements black people like here in North America, and really all around the world. 'Urban' is the usual code word, and 'urban' in the music scene means hip hop and r&b. And while white kids may like to borrow 'urban' culture from time to time the cultural assumption is very much that those things belong to, and come from, the black community while rock and country belong to the whites. And that's especially the case with metal and punk. But South African director Wim Steytler has discovered that's not entirely the case within his home country and with his new documentary short Black Black Metal he charts the rise...

[Read the whole post on screenanarchy.com...]

Open Culture: A Complete List of the 533 Movies & TV Shows Watched on the International Space Station

nasa-movies

Image courtesy of NASA

To keep some measure of sanity, the astronauts living aboard the International Space Station (ISS), some 220 miles above our planet Earth, make a point of unwinding. According to NASA, the astronauts get weekends off. And, “on any given day, crew members can watch movies, play music, read books, play cards and talk to their families.” Earlier this year, PaleoFuture gave us a further glimpse into what astronaut downtime looks like, when its editor, Matt Novak, printed a Complete List of Movies and TV Shows On Board the International Space Station. Acquired through a Freedom of Information request, the list is a catalogue of every film and TV show in the ISS media library. As Matt notes, there are many classics (e.g. Alfred Hitchcock’s North by Northwest), “plenty of space-themed and dystopian sci-fi movies” (2001: A Space Odyssey, Alien and Blade Runner), and a helpful serving of comedy (Airplane). Below, you can find the first 100 items on the list. Get the complete list–all 533 movies and TV shows–at Paleofuture.

  1. 1941
  2. 12 Monkeys
  3. 12 Years a Slave
  4. 2 Fast 2 Furious
  5. 20,000 Leagues Under the Sea
  6. 2001: A Space Odyssey
  7. 21 Jump Street
  8. 24 (Seasons 1-8)
  9. 48 Hours
  10. 8 Mile
  11. A Christmas Carol
  12. A Christmas Story
  13. A Knights Tale
  14. A Man and a Woman
  15. A Night at the Opera
  16. A Night at the Roxbury
  17. A Perfect Murder
  18. A Prairie Home Companion
  19. A Room with a View
  20. Absolutely Fabulous (Series 1-3)
  21. Air Force One
  22. Airplane
  23. Alias Season 1
  24. Alien
  25. Alien 3
  26. Alien Resurrection
  27. Aliens
  28. All Good Things
  29. Along Came Polly
  30. Always
  31. American Gangster
  32. American Sniper
  33. American Wedding
  34. An American in Paris
  35. An Article of Hope
  36. Analyze This
  37. Anchorman
  38. Anchorman 2
  39. Animal House (1978)
  40. Argo
  41. Armageddon
  42. Around the World in 80 Days (1956)
  43. Around the World in 80 Days (2004)
  44. Arrow Season 1
  45. Arsenic and Old Lace
  46. As Good as it Gets
  47. Austin Powers International Man of Mystery
  48. Austin Powers The Spy Who Shagged Me
  49. Australia
  50. Avatar
  51. Baby Mama
  52. Back to Bataan
  53. Back to the Future
  54. Back to the Future Part II
  55. Back to the Future Part III
  56. Backdraft
  57. Band of Brothers Season 1
  58. Bataan
  59. Batman Forever
  60. Batman Returns
  61. Battle for the Planet of the Apes
  62. Battle of Britain
  63. Battleship
  64. Beneath the Planet of the Apes
  65. Ben-Hur
  66. Better Call Saul Season 1
  67. Beverly Hills Cop II
  68. Beverly Hills Cop III
  69. Big Bang Theory (Seasons 1-8)
  70. Big Eyes
  71. Big Jake
  72. Billy Jack
  73. Birdman, or the Unexpected Virtue of Ignorance
  74. Black Hawk Down
  75. Black Mask
  76. Black Swan
  77. Blade Runner
  78. Blazing Saddles Blended
  79. Blue Planet Frozen Seas
  80. Blue Planet Ocean World
  81. Blues Brothers
  82. Bob Newhart Button-Down Concert
  83. Body of Lies
  84. Braveheart
  85. Breaking Bad Seasons 1-6
  86. Bridesmaids
  87. Bull Durham
  88. Caddyshack
  89. Cahill United States Marshal
  90. Captain America: The First Avenger
  91. Captain America: The Winter Soldier Captain Phillips
  92. Casablanca
  93. Cast Away
  94. Catch-22
  95. Celtic Woman Songs from the Heart
  96. Chance Are
  97. Chariots of Fire
  98. Charlie St Cloud
  99. Children of Men
  100. Chisum

Find the complete list of 533 films and TV shows here.

Follow Open Culture on Facebook and Twitter and share intelligent media with your friends. Or better yet, sign up for our daily email and get a daily dose of Open Culture in your inbox. And if you want to make sure that our posts definitely appear in your Facebook newsfeed, just follow these simple steps.

Related Content:

Astronaut Chris Hadfield Sings David Bowie’s “Space Oddity” On Board the International Space Station

Everything You Wanted to Know About Going to the Bathroom in Space But Were Afraid to Ask

If Astronauts Cry in Space, Will Their Tears Fall?

William Shatner Puts in a Long Distance Call to Astronaut Aboard the International Space Station

A Complete List of the 533 Movies & TV Shows Watched on the International Space Station is a post from: Open Culture. Follow us on Facebook, Twitter, and Google Plus, or get our Daily Email. And don't miss our big collections of Free Online Courses, Free Online Movies, Free eBooksFree Audio Books, Free Foreign Language Lessons, and MOOCs.

CreativeApplications.Net: Strelka Institute announced the enrolment campaign for the postgraduate education programme

tnn-banner-site-enStrelka Institute for architecture, media and design launched the enrollment campaign for the postgraduate education program. The theme of the 7th academic year at Strelka is The New Normal.

ScreenAnarchy: Review: MISS PEREGRINE'S HOME FOR PECULIAR CHILDREN is Better Burton

Even as Tim Burton's latest phantasmic studio sprawl tends toward momentum of the inert variety, it proves all the more that the filmmaker is indeed moving through time. Not quite 60 years old, Burton is still too young to qualify as an old man. Yet, Miss Peregrine's Home for Peculiar Children finds itself often in the realm of what's been labeled "old man cinema" - that outwardly laconic pace that defines tail-end work by prominent directors. Kagemusha by Akira Kurosawa, Buddy Buddy by Billy Wilder. This isn't that, but like the older Spielberg and Scorsese of today, we're officially now seeing hints of it. Burton’s emerging aged sensibilities are no less imaginative and transportive than his work was at his fevered, newfangled best all those...

[Read the whole post on screenanarchy.com...]

Colossal: Buildings Shaped Like Letters of the Alphabet Made with Photographic Collage by Lola Dupre

letters-1

As part of a personal project exploring typography, artist Lola Dupre (previously) imagined a series of unusual structures shaped like letters of the alphabet. The artist utilized her well-known collage technique that incorporates existing photographs that are cut into tiny pieces, often in duplicate, to make each building. Dupre recently started an Instagram account where you can see some of her latest completed works. (via Soft Shock)

letters-2

letters-3

letters-4

letters-5

Electronics-Lab: Inductive Proximity Switch Using TCA505

inductive-proximity-switch-using-tca505

This circuit is used to design an inductive proximity switch. The resonant circuit of the LC oscillator is implemented with an open half-pot ferrite and capacitance in parallel (pin LC) and if a metallic target is moved close to the open side of half pot ferrite, energy is drawn from resonant circuit and the amplitude of the oscillation is reduced accordingly. This change in amplitude is transmitted to a threshold switch by means of demodulator and triggers the outputs.

Inductive Proximity Switch Using TCA505 [Link]

The post Inductive Proximity Switch Using TCA505 appeared first on Electronics-Lab.

BOOOOOOOM!: Photographer Spotlight: Kari Medig

kari-medig-dbc-2628

We’re joining forces with our friends at Destination BC to spotlight some of our favourite photographers living and working in British Columbia, aka the beautiful province we’re lucky to call home. First up is Kari Medig! See more images and our interview with Kari below!

BOOOOOOOM!: Best of Kickstarter: Lecture in Progress by It’s Nice That’s Will Hudson

lectureinprogress

Our friend Will Hudson (founder and director of It’s Nice That) is launching an educational resource to help the next generation of creatives find a job after graduation!

Demystifying the practical day-to-day workings of the creative world, Lecture in Progress will offer the kind of advice and industry insight you can’t find anywhere else. Covering everything from the range of jobs that exist, to how much you can expect to be paid, to an inside look at how projects comes together and the studios in which they happen! Check out the video and links below for more information.

All Content: Do Not Resist

Thumb_do-not-resist-2016

Concord, New Hampshire, is not known as a hotbed of terrorist violence; it has endured just two murders in the last 16 years. And yet here we are in a city council meeting, watching councilmembers weigh in on whether to accept a gift of a BearCat armored vehicle. This is but one of the many surreal images in Craig Atkinson's "Do Not Resist," a furious and often terrifying documentary about the militarization of US police. 

The council eventually says yes to the monstrosity, just as seemingly every municipality in the United States eventually says yes to gifts of all-terrain vehicles, tanks, rocket launchers, flamethrowers, mines and the like, even when the community has almost nothing in the way of serious crime. This trend began in earnest in the 1970s, when municipal police departments responded to civil unrest and increasingly violent street crime by creating police tactical units, schooled in urban warfare tactics and armed with automatic rifles. Militarization escalated after the attacks of 9/11. Fear of terrorism led to the creation of the Department of Homeland Security and an unprecedented buildup by police departments nationwide—not just in major cities, which suffer serious crime and actual terrorism on occasion, but in smaller towns as well, where there's generally not much going on except Barney Fife fantasies of machismo.  

Atkinson's film explores this build up of weaponry, but it also shows how police rhetoric has been pumped up on rhetorical steroids. In seminars and tactical rehearsals, we hear civilians referred to as "the enemy." And in one of the film's most appalling scenes, from a Senate committee meeting in 2014, the Deputy Undersecretary of Acquisition for the Defense Department is asked to explain why the military is giving bayonets to local police in the United States. Bayonets are for war. 

The illogical endpoint of all of this is scenes like the ones that occurred in Ferguson, Missouri. This tragedy is folded into the narrative as an example of how legitimate civilian protest is treated as enemy activity by police, who then roll out their latest toys and look for excuses to use them. Instead of nurturing a sense that the police are connected to the communities they are supposed to protect and serve, the rhetoric and weapons instill the idea of the forces in opposition, one side a threat and the other the answer to the threat. This is a fascist mentality, the opposite of democratic ideals. 

A major downside of this documentary is the tone, which is alarmist to the point of evoking a horror film. I realize that provoking outrage is a big part of the point of a work like this, but you still have to wonder how many people who've bought into the new mentality of American police might be persuaded to share the filmmaker's point of view, and actually sit through more than five minutes, when it comes at them as hard as this one does. At the risk of complaining about a film that might've been rather than praising the one that's in front of me, I have to wonder if a calmer, more reflective tone might have benefited the project in the long run. Anyone who already agrees with the movie's arguments likely won't have any problem with its methods, but a larger opportunity to open minds might've been lost somewhere. Still, this is an important film that marshals an impressive array of facts and builds them into a story that needs to be told. 

Planet Lisp: Quicklisp news: September 2016 Quicklisp dist update now available

New projects:
  • 3d-matrices — A utility library implementing 2x2, 3x3, 4x4, and NxN matrix functionality. — Artistic
  • a-cl-logger — A logger that sends to multiple destinations in multiple formats. Based on arnesi logger — BSD
  • alexa — A lexical analyzer generator — BSD 3-clause (See LICENSE.txt)
  • beast — Basic Entity/Aspect/System Toolkit — MIT/X11
  • cl-ascii-art — Ascii Art generating routines. — GPLv3
  • cl-bootstrap — Twitter Bootstrap widget library for Common Lisp — MIT
  • cl-cuda — Cl-cuda is a library to use NVIDIA CUDA in Common Lisp programs. — LLGPL
  • cl-kanren — A minikanren implementation — BSD
  • easy-audio — A pack of audio decoders for FLAC, WavPack and other formats — 2-clause BSD
  • fxml — Fork of CXML. — LLGPL
  • infix-math — An extensible infix syntax for math in Common Lisp. — MIT
  • mgl-mat — MAT is library for working with multi-dimensional arrays which supports efficient interfacing to foreign and CUDA code. BLAS and CUBLAS bindings are available. — MIT
  • parachute — An extensible and cross-compatible testing framework. — Artistic
  • scalpl — market maker + APIs to several Bitcoin exchanges — public domain
  • trivial-mmap — A library providing an easy-to-use API for working with memory-mapped files. — Public Domain
  • utility-arguments — Utility to handle command-line arguments. — ICS
Updated projects3d-vectorsacclimationarchitecture.service-providerarray-utilsarrow-macrosbknr-datastorecarriercaveman2-widgetscellschanlchirpcl-anacl-bloomcl-coroutinecl-freeimagecl-gamepadcl-glfw3cl-inotifycl-interpolcl-ixfcl-lexcl-monitorscl-mpg123cl-mtgnetcl-neovimcl-oclapicl-openglcl-out123cl-packcl-rabbitclackclfswmclipclobbercloser-mopclssclxcodexcoleslawcolleencroatoancrypto-shortcutsdeedsdeferreddexadordissectdocumentation-utilsesrapfare-scriptsfile-typesflareforform-fiddlegbbopengendlgenevahu.dwim.bluezhu.dwim.sdlhumblerinferior-shellinlined-generic-functionkenzolacklakelambda-fiddlelasslegitlisp-invocationlquerymaxpcmcclimmitomito-authmodularizemodularize-hooksmodularize-interfacesmore-conditionsmpcpathname-utilspgloaderpipingplumpplump-bundleplump-sexppostmodernptesterpurlqlotqt-libsqtoolsqtools-uiqueen.lispquriracerrandom-stateratifyredirect-streamrtg-mathrutilsserapeumsha3simple-inferiorssimple-taskssnoozesoftdrinksouthspinneretstaplestatic-vectorsstumpwmswap-bytestriviatrivial-argumentstrivial-benchmarktrivial-indenttrivial-main-threadtrivial-mimestrivial-rfc-1123trivial-thumbnailubiquitousutilities.binary-dumputilities.print-itemsverboseweblocksweblocks-prototype-jswith-cached-reader-conditionalswoozenekindarl.

Removed projects: agm, ax.tga, cl-ecs, cl-marklogic, com.informatimago.

To get this update, use (ql:update-dist "quicklisp").

Enjoy!

Open Culture: Chris Rock Creates a List of His 13 Favorite Standup Comedy Specials

We know Ellen DeGeneres as the superstar host of her own talk show and the voice of cuddly, forgetful fish Dory. No doubt many of her younger fans have no idea she was a standup comic, before The Ellen DeGeneres Show, before even the 90s sitcom Ellen, which mostly gets mentioned for the “coming out” episode that supposedly ended her career almost two decades ago. But even if all the TV and movie stardom had never come her way, comedians like Chris Rock might still remember Ellen as one of their favorite standup comics.

Rock adds DeGeneres to his list of “Favorite Standup Specials” for her 2003 HBO performance Here and Now, which you can see in part above. “Most comics just talk about what they see,” he writes, “This is the first time I heard somebody talk about what they felt.” Ellen works clean, and in that respect she’s in a minority on Rock’s list (she’s also the only woman). Even the comedian Rock compares to Andy Griffith— “Blue Collar” comic Ron White—gets a raunchy asterisk next to that reference. And indeed, he’s both down home and dirty. So what connects the comedians on Rock’s list?

Aside from the fact that they’re all big names, not much, it seems. In choosing these 13 specials, Rock seems drawn not to a particular genre or brand of humor, but to the skillful, moving performance of comedy: dirty, clean, political, topical, observational—it’s all good as long as it’s funny. A good comic can make ‘em laugh by riffing on the mundane annoyances of daily life, or by telling uncomfortable truths with a smile like Dave Chappelle, above, whose special Killin’ Them Softly also appears on Rock’s list of favorites.

Like Rock, Chappelle knows his comedy history, and fans of The Chappelle Show know too—at least when it comes to the legendary Paul Mooney, a comedian’s comedian and onetime writer for Richard Pryor. Mooney’s special Jesus is Black. So Was Cleopatra. Know Your History makes the list for “more edge than anything you are ever going to see.” And his onetime boss Pryor gets top billing for the “perfect” Live in Concert 1979—“what every comic is striving for,” says Rock, “and we all fall very short.”

Speaking of truth-tellers, the great George Carlin makes the list for his special Jammin’ in New York. Carlin spared no one, and comedians love him for it, even if few people have the courage or the wit to do what he did. Rock has come close, with routines that make people laugh as they squirm in their seats. His delivery is all his own, but we can see Carlin’s bristling social critique in his act as much as Richard Pryor’s riffs on race and sex.

Other big names on the list include Steve Harvey, Eddie Murphy, the-once-beloved Bill Cosby, George Lopez (“the Mexican Richard Pryor and Bill Cosby at the same time”), and even Andrew Dice Clay for his The Day the Laughter Died, “a comedy album only a comedian could love.”

But it isn’t solely about laughter or candor for Rock; as he noted in his Ellen pick, it’s also about feeling, and in the case of one special, Billy Crystal’s one-man-show 700 Sundays, the comedy sits side-by-side with pathos. Drawn from a bittersweet autobiography of the same title, Crystal’s show premiered in 2004 and was revived in 2013 and filmed by HBO (trailer above). “Brilliant, touching and f*cking funny,” says Rock, “First time in my life I cried at a comedy show.”

Rounding out the list is Sam Kinison, whose unforgettably unhinged role in Rodney Dangerfield’s Back to School brought thousands of curious new fans to his classic album Louder than Hell. “The last original comic,” says Rock. “Most comics are derivatives of Pryor, Cosby, or Seinfeld. Sam reminded you of Billy Graham.” I’d say he was more Jimmy Swaggart, if Jimmy Swaggart screamed obscenities at starving children. See Rock’s full list below.

  1. Richard Pryor Live In Concert 1979
  2. Paul Mooney: Jesus Is Black. So Was Cleopatra
  3. Dave Chappelle: Killin’ Them Softly
  4. Eddie Murphy: Delirious
  5. Bill Cosby: Himself
  6. George Carlin: Jammin’ in New York
  7. George Lopez: America’s Mexican
  8. Steve Harvey: One Man
  9. Billy Crystal: 700 Sundays
  10. Andrew Dice Clay: The Day the Laughter Died
  11. Ron White: They Call Me Tater Salad
  12. Ellen DeGeneres: Here and Now
  13. Sam Kinison: Louder Than Hell

via Austin Kleon

Related Content:

Hear 30 of the Greatest Standup Comedy Albums: A Playlist Chosen by Open Culture Readers

Steve Martin & Robin Williams Riff on Math, Physics, Einstein & Picasso in a Heady Comedy Routine (2002)

Bill Hicks’ 12 Principles of Comedy

Josh Jones is a writer and musician based in Durham, NC. Follow him at @jdmagness

Chris Rock Creates a List of His 13 Favorite Standup Comedy Specials is a post from: Open Culture. Follow us on Facebook, Twitter, and Google Plus, or get our Daily Email. And don't miss our big collections of Free Online Courses, Free Online Movies, Free eBooksFree Audio Books, Free Foreign Language Lessons, and MOOCs.

Planet Haskell: Well-Typed.Com: Hackage reliability via mirroring

TL;DR: Hackage now has multiple secure mirrors which can be used fully automatically by clients such as cabal.

In the last several years, as a community, we’ve come to greatly rely on services like Hackage and Stackage being available 24/7. There is always enormous frustration when either of these services goes down.

I think as a community we’ve also been raising our expectations. We’re all used to services like Google which appear to be completely reliable. Of course these are developed and operated by huge teams of professionals, whereas our community services are developed, maintained and operated by comparatively tiny teams on shoestring budgets.

A path to greater reliability

Nevertheless, reliability is important to us all, and so there has been a fair bit of effort put in over the last few years to improve reliability. I’ll talk primarily about Hackage since that is what I am familiar with.

Firstly, a couple years ago Hackage and haskell.org were moved from super-cheap VM hosting (where our machines tended to go down several times a year) to actually rather good quality hosting provided by Rackspace. Thanks to Rackspace for donating that, and the haskell.org infrastructure team for getting that organised and implemented. That in itself has made a huge difference: we’ve had far fewer incidents of downtime since then.

Obviously even with good quality hosting we’re still only one step away from unscheduled downtime, because the architecture is too centralised.

There were two approaches that people proposed. One was classic mirroring: spread things out over multiple mirrors for redundancy. The other proposal was to adjust the Hackage architecture somewhat so that while the main active Hackage server runs on some host, the the core Hackage archive would be placed on an ultra-reliable 3rd party service like AWS S3, so that this would stay available even if the main server was unavailable.

The approach we decided to take was the classic mirroring one. In some ways this is the harder path, but I think ultimately it gives the best results. This approach also tied in with the new security architecture (The Update Framework – TUF) that we were implementing. The TUF design includes mirrors and works in such a way that mirrors do not need to be trusted. If we (or rather end users) do not have to trust the operators of all the mirrors then this makes a mirroring approach much more secure and much easier to deploy.

Where we are today

The new system has been in beta for some time and we’re just short of flipping the switch for end users. The new Hackage security system in place on the server side, while on the client side, the latest release of cabal-install can be configured to use it, and the development version uses it by default.

There is lots to say about the security system, but that has (1, 2, 3) and will be covered elsewhere. This post is about mirroring.

For mirrors, we currently have two official public mirrors, and a third in the works. One mirror is operated by FP Complete and the other by Herbert Valerio Riedel. For now, Herbert and I manage the list of mirrors and we will be accepting contributions of further public mirrors. It is also possible to run private mirrors.

Once you are using a release of cabal-install that uses the new system then no further configuration is required to make use of the mirrors (or indeed the security). The list of public mirrors is published by the Hackage server (along with the security metadata) and cabal-install (and other clients using hackage-security) will automatically make use of them.

Reliability in the new system

Both of the initial mirrors are individually using rather reliable hosting. One is on AWS S3 and one on DreamHost S3. Indeed the weak point in the system is no longer the hosting. It is other factors like reliability of the hosts running the agents that do the mirroring, and the ever present possibility of human error.

The fact that the mirrors are hosted and operated independently is the key to improved reliability. We want to reduce the correlation of failures.

Failures in hosting can be mitigated by using multiple providers. Even AWS S3 goes down occasionally. Failures in the machines driving the mirroring are mitigated by using a normal decentralised pull design (rather than pushing out from the centre) and hosting the mirroring agents separately. Failures due to misconfiguration and other human errors are mitigated by having different mirrors operated independently by different people.

So all these failures can and will happen, but if they are not correlated and we have enough mirrors then the system overall can be quite reliable.

There is of course still the possibility that the upstream server goes down. It is annoying not to be able to upload new packages, but it is far more important that people be able to download packages. The mirrors mean there should be no interruption in the download service, and it gives the upstream server operators the breathing space to fix things.

Saturday Morning Breakfast Cereal: Saturday Morning Breakfast Cereal - Getting High



Hovertext:
To generalize, I am high on eukaryotes.

New comic!
Today's News:

Just a reminder that BAH West tickets are going fast! As of last night we'd already sold 1/4th of tickets, so we're now expecting to sell out a bit early. Buy soon to lock in a spot! It's going to be a great night!

PS: Guess who are keynote is?!

Penny Arcade: Comic: Success And Its Opposite

New Comic: Success And Its Opposite

Quiet Earth: Post-Apocalyptic ANTIDOTE Gets October Release

Originally titled Viscera, Craig and Pete DiFolco's post-apocalyptic thriller won acclaim at the 2014 Screamfest Horror Film Festival. Terror Films stepped up to give the film a small release that year under the new title, Antidote. And now, finally, the film is all queued up for a wide re-release on October 21st, 2016.


Synopsis:
Antidote takes place in a plague-ridden, post-apocalyptic world. Here, a man and woman face unimaginable horrors. When he suddenly becomes infected, they have to contend with the fact that the only possible cure slowly drives him mad.


Antidote will see release across all major digital platforms including Amazon Instant, YouTube, Xbox Live, VUDU, Sony PlayStation, Vimeo On Demand and Google Play. Also, the film is set t [Continued ...]

All Content: Miss Peregrine's Home for Peculiar Children

Thumb_miss-peregrine-home-for-peculiar-children-2016

Walking back to the car after a recent screening of “Miss Peregrine’s Home for Peculiar Children,” my movie-savvy, nearly-seven-year-old son took my hand and asked me sweetly: “Mommy, what was that about?”

Um … er … well …

The short answer (which probably wasn’t terribly helpful to him) was: It’s “X-Men” meets “Groundhog Day.” The real answer, which required a lot of stumbling and bumbling and twists and turns, was far more lengthy (and probably not terribly helpful, either). Because even though I’d just seen the exact same movie my son had, I wasn’t sure I completely understood it, either.

The latest adventure from Tim Burton would seem tailor-made for his tastes but it’s a convoluted slog, dense in mythology and explanatory dialogue but woefully lacking in thrills. It’s been a matter of diminishing returns with Burton for the past several years now between “Alice in Wonderland,” “Dark Shadows” and “Big Eyes” (although the animated “Frankenweenie” found the director in peak retro form). “Miss Peregrine’s Home for Peculiar Children” allows him to show only brief glimmers of the gleefully twisted greatness of his early work such as “Pee-wee’s Big Adventure” and “Beetlejuice.” The characters here are supposed to be delightful—or at least interesting—simply because they’re superficially odd, and it just isn’t enough anymore. Too often, it feels like we’ve seen this movie before—and seen it done better.

Although the film (based on the novel by Ransom Riggs) is populated by an assortment of peculiars, as they’re known—kids born with unusual abilities that make it difficult for them to live in the outside world—precious few of them feel like actual human beings whose lonely plight might carry some emotional resonance. There’s Emma (Ella Purnell), the pretty blonde who has to wear lead shoes so she doesn’t fly away. There’s Olive (Lauren McCrostie), the redhead who has to wear gloves so she doesn’t accidentally set things on fire. There’s the girl with a ravenous maw hidden on the back of her head. The invisible boy who likes to play tricks. The girl who can make things grow super fast. The boy who can project images through his eyeball. The creepy, masked twins. They flit in and out, do the thing they do, and ta da! Then they’re gone without leaving much impact.

Their leader is the stylish and formidable Miss Alma LeFay Peregrine, played by Eva Green, who nearly saves the day simply by showing up with that vampy, riveting screen presence of hers. With a shocking swoop of midnight-blue hair and an array of gorgeous gowns from frequent Burton costume designer Colleen Atwood, she has the ability to manipulate time (and turn into a bird, which seems unrelated). But that isn’t enough. She also has to be extra quirky by smoking a pipe.

And the seemingly regular kid who stumbles upon all these freaks and geeks is the incredibly boring Jake, played by “Hugo” star Asa Butterfield. He’s our wide-eyed conduit, so of course he has to function as the straight man in such a wildly fanciful world. But there’s just nothing to him, and the young British actor’s American accent seems to flatten him further.

You may have noticed I haven’t tried to describe the plot yet. Yes, I am procrastinating. 

Shy, teenage Jake lives in a bland tract house in suburban Florida (on the same street as Edward Scissorhands, possibly). He dreams of being an explorer, he says, but he would seem to lack the requisite get-up-and-go. All his life, he’s heard his beloved grandfather (Terence Stamp, who departs far too quickly) tell him outlandish stories about his own youth on an island off the coast of Wales, where he grew up at an orphanage for misfits with magical powers.

After Grandpa dies under mysterious circumstances, Jake convinces his parents (Chris O’Dowd and a frustratingly underused Kim Dickens), with the help of his grief counselor (Allison Janney), that he should visit the island and try to find this mysterious home in hopes of achieving closure. Dad tags along to take photographs of birds and drink beer at the pub full of crotchety locals. (Cinematographer Bruno Delbonnel, whose work includes the Coen brothers’ luscious “Inside Llewyn Davis,” does make the foggy Welsh setting look severe and dramatic.)

When Jake finally does find the stately, gothic home his grandfather had told him about, he discovers it’s in ruins, the result of a bombing decades earlier during World War II. But once he steps inside and begins investigating, the inhabitants dare to pop their heads out and the place comes colorfully to life. Seems they’re stuck in a time loop, doomed to repeat the same day in September 1943 right up until the moment the Nazi bomb fell on them. The time-conscious Miss Peregrine explains that she winds the clock back 24 hours at the end of each night, just before the moment of destruction, allowing everyone to relive that day all over again.

Doesn’t that sound fun? Are you still paying attention?

Anyway, for some reason, all the kids want Jake to stick around, ostensibly because they haven’t seen a fresh face in about 70 years, and his will do. But they’re all in danger, you see, because just as there are good mutants in the “X-Men” world, there are also bad ones. Here, they’re the peculiars who use their powers to take over other time loops, or something. And they way the stay alive is by eating people’s eyeballs, or something. Their leader is the courtly yet menacing Mr. Barron, whom Samuel L. Jackson plays with the kind of scenery chewing he could do in his sleep. But what they want is never clear, so they’re never truly frightening.

The supposedly epic collision between good and evil results in exactly one exciting action set piece. It involves stop-motion animated skeletons battling an army of long-limbed, eye-gouging mercenary giants at a boardwalk amusement park, and it’s the only scene that vividly recalls the kind of artistry and absurd humor that long have been Burton’s trademarks. And the peculiar who makes it all happen has the most useful—and the most ethically intriguing—ability of all. Enoch (Finlay MacMillan) can bring things back to life—a person, a creepy doll—by inserting a beating heart into it. Unfortunately, though, he ends up being just another cog in the particularly dull machinery.

Planet Lisp: Zach Beane: Corman Lisp updates

Artem Boldarev has made some nice updates to Corman Lisp, fixing the Windows 64-bit FFI issue Roger Corman described as “difficult” when Corman Lisp was released under the MIT license. There are a number of other fixes, too, so go check it out if you have any interest in Corman Lisp.

Better Embedded System SW: Toyota Unintended Acceleration Case Study Talk Update

My Toyota UA talk from a couple years ago has gotten a lot of views, but watching the video was a bit of a pain because of the proprietary streaming format it was in.

I was finally able to convert the files to .mp4.  So now it's a lot more accessible, especially from mobile devices:
Please see my original posting with more details about various other ways to view and download the materials.

Open Culture: How the Coen Brothers Storyboarded Blood Simple Down to a Tee (1984)

Seldom, in the films of the Joel and Ethan Coen, do characters’ schemes go according to plan. You can watch it happen all across their filmography: the baby theft in Raising Arizona, the own-wife kidnapping and ransom in Fargo, the casino-vault tunnel heist in The Ladykillers, the Communist conversion of a screen idol in Hail, Caesar! But they’ve earned their enormous cinematic reputation not just for their themes, but for the precision with which they construct movies around them; it sometimes seems that the more dissolute the characters and ultimately disastrous the plot they fall into, the more carefully-made the picture.

This pattern began in 1984 with their first feature, the Texas neo-noir Blood Simple. Despite its relatively small-scale production (especially by the standards of their period piece-heavy recent work), it showcases every element their fans love: the sense of place, the sharp dialogue, the fascination with “low” life, the dark humor, the attention to detail. No wonder, then, that it has now arrived in the Criterion Collection, in an edition which includes supplementary materials like the comparison between the storyboard and finished scene above, featuring commentary from the Coens Joel and Ethan both, as well as director of photography Barry Sonnenfeld and actor Frances McDormand.

“There are directors who are completely comfortable extemporizing on the set, and others who are not,” say Joel and Ethan, trading off observations. “Some directors want to throw everything up in the air and just see where it lands; that’s really how they work, fundamentally, and get great results. We’re kind of the… other end of the spectrum. We’re more comfortable if we have a plan, even if we stray quite a distance from that plan while we’re shooting.” They seem not to have strayed at all in the particular scene in this video, but their filmography boasts more than enough vitality to rule out the possibility of complete, control-freakish rigidity. All of it shows us how the best-laid plans of mice and men go awry — but only because the Coen Brothers lay even better plans first.

via No Film School

Related Content:

How the Coen Brothers Put Their Remarkable Stamp on the “Shot Reverse Shot,” the Fundamental Cinematic Technique

Watch the Coen Brothers’ TV Commercials: Swiss Cigarettes, Gap Jeans, Taxes & Clean Coal

Tuileries: A Short, Slightly Twisted Film by Joel and Ethan Coen

World Cinema: Joel and Ethan Coen’s Playful Homage to Cinema History

Based in Seoul, Colin Marshall writes and broadcasts on cities and culture. He’s at work on a book about Los Angeles, A Los Angeles Primer, the video series The City in Cinema, the crowdfunded journalism project Where Is the City of the Future?, and the Los Angeles Review of Books’ Korea Blog. Follow him on Twitter at @colinmarshall or on Facebook.

How the Coen Brothers Storyboarded Blood Simple Down to a Tee (1984) is a post from: Open Culture. Follow us on Facebook, Twitter, and Google Plus, or get our Daily Email. And don't miss our big collections of Free Online Courses, Free Online Movies, Free eBooksFree Audio Books, Free Foreign Language Lessons, and MOOCs.

Bad Science: Sarepta: anecdote, data, surrogate outcomes, and the FDA

BOOOOOOOM!: Photographer Spotlight: Vincent van de Wijngaard

vincent-van-de-wijngaard36

A selection of photos by Vincent van de Wijngaard. More images below.

BOOOOOOOM!: Collection of 80 High-Res Textless Movie Posters

textless-movieposters30

Not sure how this exists??? Someone has uploaded a collection of 80 high-resolution film posters stripped of any text. Can’t tell if they have next-level Photoshop skills or some other kind of voodoo that made this possible. In any case, thank you, Internet. Have a look at them all here. I included a bunch of my favourites below (there’s a common thread to the ones I picked).

*Edit – just discovered that the link I posted was actually a repost and this was originally posted by Reddit user Join_You_In_The_Sun, so I’ve updated the link in the post.

Blog – free electrons: Free Electrons at the X.org Developer Conference 2016

The X.org Foundation hosts every year around september the X.org Developer Conference, which, unlike its name states, is not limited to X.org developers, but gathers all the Linux graphics stack developers, including X.org, Mesa, wayland, and other graphics stacks like ChromeOS, Android or Tizen.

This year’s edition was held last week in the University of Haaga-Helia, in Helsinki. At Free Electrons, we’ve had more and more developments on the graphic stack recently through the work we do on Atmel and NextThing Co’s C.H.I.P., so it made sense to attend.

XDC 2016 conference

There’s been a lot of very interesting talks during those three days, as can be seen in the conference schedule, but we especially liked a few of those:

DRM HWComposer – SlidesVideo

The opening talk was made by two Google engineers from the ChromeOS team, Sean Paul and Zach Reizner. They talked about the work they did on the drm_hwcomposer they wrote for the Pixel C, on Android.

The hwcomposer is one of the HAL in Android that interfaces between Surface Flinger, the display manager, and the underlying display driver. It aims at providing hardware composition features, so that Android can leverage the capacities of the display engine to perform compositions (through planes and sprites), without having to use the CPU or the GPU to do this work.

The drm_hwcomposer started out as yet another hwcomposer library implementation for the tegra-drm driver in Linux. While they implemented it, it turned into some generic enough implementation that should be useful for all the DRM drivers out there, and they even introduced some particularly nice features, to split the final screen content into several planes based on the actual displayed content rather than on windows like it’s usually done.

Their work also helped to point out a few flaws in the hwcomposer API, that will eventually be fixed in a new revision of that API.

ARC++ SlidesVideo

The next talk was once again from a ChromeOS engineer, David Reveman, who came to show his work on ARC++, the component in ChromeOS that allows to run Android applications. He was obviously mostly talking about the display side.

In order to achieve that, he had to implement an hwcomposer that would just act as a proxy between SurfaceFlinger and Wayland that is used on the ChromeOS side. The GL rendering is still direct though, and each Android application will talk directly to the GPU, as usual. Only the composition will be forwarded to the ChromeOS side.

In order to minimize that composition process, whenever possible, ARC++ tries to back each application with an overlay so that the composition would happen directly in hardware.

This also led to some interesting challenges, especially since some of the assumptions of both systems are in contradiction. For example, any application can be resized in ChromeOS, while it’s not really a thing in Android where all the applications run full screen.

HDR Displays in Linux – SlidesVideo

The next talk we found interesting was Andy Ritger from nVidia explaining how the HDR displays were supposed to be handled in Linux.

He first started by explaining what HDR is exactly. While the HDR is just about having a wider range of luminance than on a regular display, you often also get a wider gamut with HDR capable displays. This means that on those screens you can display a wider range of colors, and with a better range and precision in their intensity. And
while the applications have been able to generate HDR content for more than 10 years, the rest of the display stack wasn’t really ready, meaning that you had convert the HDR colors to colors that your monitor was able to display, using a technique called tone mapping.

He then explained than the standard, non-HDR colorspace, sRGB, is not a linear colorspace. This means than by doubling the encoded luminance of a color, you will not get a color twice brighter on your display. This was meant this way because the human eye is much more sensitive to the various shades of colors when they are dark than when they are bright. Which essentially means that the darker the color is, the more precision you want to get.

However, the luminance “resolution” on the HDR display is so good that you actually don’t need that anymore, and you can have a linear colorspace, which is in our case SCRGB.

But drawing blindly in all your applications in SCRGB is obviously not a good solution either. You have to make sure that your screen supports it (which is exposed through its EDIDs), but also that you actually tell your screeen to switch to it (through the infoframes). And that requires some support in the kernel drivers.

The Anatomy of a Vulkan Driver – SlidesVideo

This talk by Jason Ekstrand was some kind of a war story of the bring up Intel did of a Vulkan implementation on their GPU.

He first started by saying that it was actually a not so long project, especially when you consider that they wrote it from scratch, since it took roughly 3 full-time engineers 8 months to come up with a fully compliant and open source stack.

He then explained why Vulkan was needed. While OpenGL did amazingly well to cope with the hardware evolutions, it was still designed over 20 years ago, This proved to have some core characteristics that are not really relevant any more, and are holding the application developers back. For example, he mentioned that at its core, OpenGL is based on a singleton-based state machine, that obviously doesn’t scale well anymore on our SMP systems. He also mentioned that it was too abstracted, and people just wanted a lower level API, or that you might want to render things off screen without X or any context.

This was fixed in Vulkan by effectively removing the state machine, which allows it to scale, push things like the error checking or the synchronization directly to the applications, making the implementation much simpler and less layered which also simplifies the development and debugging.

He then went on to discuss how we could share the code that was still shared between the two implementations, like implementing OpenGL on top of Vulkan (which was discarded), having some kind of lighter intermediate language in Mesa to replace Gallium or just sharing through a library the common bits and making both the OpenGL and Vulkan libraries use that.

Motivating preemptive GPU scheduling for real-time systems – SlidesVideo

The last talk that we want to mention is the talk on preemptive scheduling by Roy Spliet, from the University of Cambridge.

More and more industries, and especially the automotive industry, offload some computations to the GPU for example to implement computer vision. This is then used in a car to implement the autonomous driving to make the car recognize signs or stay in its lane. And obviously, this kind of computations are supposed to be handled in a real time
system, since you probably don’t want your shiny user interface for the heating to make your car crash in the car before it because its rendering was taking too long.

He first started to explain what real time means, and what the usual metrics are, which should to no surprise to people used to “CPU based” real time systems: latency, deadline, execution time, and so on.

He then showed a bunch of benchmarks he used to test his preemptive scheduler, in a workload that was basically running OpenArena while running some computations, on various nouveau based platforms (both desktop-grade GPUs, and embedded SoCs).

This led to some expected conclusions, like the fact that a preemptive scheduler is indeed adding some overhead, but is on average worth it, while some have been quite interesting. He was for example observing some worst case latencies that were quite rare (0.3%), but were actually interferences from the display engine filling up its empty FIFOs, and creating some contention on the memory bus.

Conclusion

Overall, this has been a great experience. The organisation was flawless, and the one-track-only format allows you to meet easily both the speakers and attendees. The content was also highly technical, as you might expect, which made us learn a lot and led us to think about some interesting developments we could do on our various projects in the future, such as NextThing Co’s CHIP.

Open Culture: When an Octopus Caused the Great Staten Island Ferry Disaster (November 22, 1963)

Where were you on November 22, 1963?

I had yet to be born, but am given to understand that the events of that day helped shape a generation.

Documentarian Melanie Juliano knows this too, though she’s still a few months shy of the legal drinking age. The 2014 recipient of the New Jersey Filmmakers of Tomorrow Festival’s James Gandolfini Best of Fest Award uses primary sources and archival footage to bring an immediacy to this dark day in American history, the day a giant octopus—“a giant fuckin’ octopus” in the words of maritime expert Joey Fazzino—took down the Cornelius G. Kolff and all 400 hundred souls aboard.

What did you think I was talking about, the Kennedy assassination?

octopus-boat

Image via the Facebook page of the Staten Island Ferry Octopus Disaster Memorial Museum

Those who would question this tragedy’s authenticity need look no further than a recently dedicated bronze memorial in Lower Manhattan’s Battery Park. To require more proof than that is unseemly, nay, cruel. If an estimated 90% of tourists stumbling across the site are willing to believe that a giant octopus laid waste to a Manhattan-bound Staten Island ferry several hours before John F. Kennedy was shot, who are you to question?

The memorial’s artist, Joe Reginella, of the Staten Island-based Super Fun Company, is finding it hard to disengage from a disaster of this magnitude. Instead the craftsman, whose previous work includes a JAWS tribute infant crib, lingers nearby, noting visitors’ reactions and handing out literature for the (non-existent) Staten Island Ferry Disaster Memorial Museum.

(New York 1 reports that an actual museum across the street from the address listed on Reginella’s brochures is not amused, though attendance is up.)

A Staten Island Octopus Disaster website is there for the edification of those unable to visit in person. Spend time contemplating this horrific event and you may come away inspired to learn more about the General Slocum disaster of 1904, a real life New York City ferry boat tragedy, that time has virtually erased from the public consciousness.

(The memorial for that one is located in an out of the way section of Tompkins Square Park.)

H/T to reader Scott Hermes/via Colossal

Related Content:

The Dancer on the Staten Island Ferry

“Moon Hoax Not”: Short Film Explains Why It Was Impossible to Fake the Moon Landing

Ayun Halliday is an author, illustrator, theater maker and Chief Primatologist of the East Village Inky zine.  Her play Zamboni Godot is opening in New York City in March 2017. Follow her @AyunHalliday.

When an Octopus Caused the Great Staten Island Ferry Disaster (November 22, 1963) is a post from: Open Culture. Follow us on Facebook, Twitter, and Google Plus, or get our Daily Email. And don't miss our big collections of Free Online Courses, Free Online Movies, Free eBooksFree Audio Books, Free Foreign Language Lessons, and MOOCs.

Electronics-Lab: LTC3623 – Switching regulator doubles as Class-D audio amplifier

20160822150557_ltc3623-2

Clemens Valens @ elektormagazine.com discuss about LTC3623 switching regulator which can be used as Class-D Audio Amplifier.

Sure thing, Elektor has published several designs of adjustable power supplies based on switching regulators, so we know that doing this properly in a reproducible way and without making things overly complex requires some serious head scratching. The anxiety may be reduced vastly though by a new adjustable synchronous buck regulator which uses a single resistor to set its output voltage anywhere between 0 and 14.5 volts. Using the device is very simple; you can even use it as an audio amplifier.

LTC3623 – Switching regulator doubles as Class-D audio amplifier – [Link]

The post LTC3623 – Switching regulator doubles as Class-D audio amplifier appeared first on Electronics-Lab.

s mazuk: I think I want to do more frequent and completely mundane posting, and each post has a queue delay...

I think I want to do more frequent and completely mundane posting, and each post has a queue delay of a year. that way, I can avoid being embarrassed about my thoughts. those aren’t mine anymore, they’re from some fool that was in this angle around the sun 365 days ago. not me. I got a whole year on them.

Electronics-Lab: Chronio – Low power Arduino based (smart)watch

chronio

Max.K @ hackaday.io designed his own impressive watch based on Atmega328p with Arduino bootloader, Maxim DS3231 (<2min per year deviation),  96×96 pixel Sharp Memory LCD (LS013B4DN04) and it’s powered by a CR2025 160mAh coin cell battery.

Chronio is an Arduino-based 3D-printed Watch. By not including fancy Wifi and BLE connectivity, it gets several months of run time out of a 160mAh button cell. The display is an always-on 96×96 pixel Sharp Memory LCD. If telling the time is not enough, you can play a simplified version of Flappy Bird on it.

Chronio – Low power Arduino based (smart)watch – [Link]

The post Chronio – Low power Arduino based (smart)watch appeared first on Electronics-Lab.

Electronics-Lab: 16×32 RGB Matrix Panel Driver Arduino Shield

rgbshield3-580x387

Raj @ embedded-lab.com has revised his RGB Matrix Display Shield to an improved version.

The shield now also carries the DS1307 RTC chip on board along with a CR1220 coin cell battery holder on the back. It is applicable for driving popular 16×32 RGB matrix panels with HUB75 (8×2 IDC) connectors. Row and column driver circuits are already built on the back side of these matrix panel. The data and control signal pins for driving rows and columns are accessible through the HUB75 connector. It requires 12 digital I/O pins of Arduino Uno for full color control.

16×32 RGB Matrix Panel Driver Arduino Shield – [Link]

The post 16×32 RGB Matrix Panel Driver Arduino Shield appeared first on Electronics-Lab.

Penny Arcade: News Post: More Thornwatch Art

Gabe: The big bad monster in the Thornwatch print and play is the Swamp Choir. I thought I’d share some of the progress pics I took while I was drawing it. Rodney said he was looking for a monster with multiple heads. So I went to work on the art side of it. I did a few different sketched but this is the one I really liked. I cooked up this crazy four headed turtle and sent it over to Tycho. He came back with the name Swamp Choir and went to work on the lore while I started inking. As I was inking Tycho kept sending me info about this thing. How the different heads sing songs to lure…

Explosm.net: Comic for 2016.09.30

New Cyanide and Happiness Comic

Ideas from CBC Radio (Highlights): Soft Vengeance: Albie Sachs on loving your enemy into defeat

Albie Sachs -- longtime freedom fighter and judge on South Africa's Constitutional Court – in conversation with Paul Kennedy about his remarkable life, and what he's learned about building a society.

OCaml Planet: Topkg

OCaml Planet: Asetmap, Bos, Hmap and Webbrowser

Disquiet: Disquiet Junto Project 0248: Galactic Tick

galactictickdotcom

Each Thursday in the Disquiet Junto group, a new compositional challenge is set before the group’s members, who then have just over four days to upload a track in response to the assignment. Membership in the Junto is open: just join and participate. A SoundCloud account is helpful but not required. There’s no pressure to do every project. It’s weekly so that you know it’s there, every Thursday through Monday, when you have the time.

Tracks will be added to this playlist for the duration of the project:

This project was posted in the afternoon, California time, on Thursday, September 29, 2016, with a deadline of 11:59pm wherever you are on Monday, October 3, 2016.

These are the instructions that went out to the group’s email list (at tinyletter.com/disquiet-junto):

Disquiet Junto Project 0248: Galactic Tick
Celebrate the new celestial holiday in music.

Project Steps:

Step 1: Read up on the Galactic Tick, a new proposed holiday exploring, as described by Popular Mechanics, “how people’s perceptions would change if they really realized the one fixed point in their celestial understanding, the mighty sun, was also in flux.”

http://www.popularmechanics.com/space/deep-space/news/a22492/galactic-tick-day-september-29/

http://galactictick.com/

Step 2: Devise a short piece of music in celebration of the Galactic Tick. Perhaps you’ll explore the distance of 225 million years, which is how often the Earth fully circles the center of the Milky Way. Perhaps you’ll find cosmic meaning in 1/129,600,000, which is the “centi-arcsecond” employed by the Galactic Tick planners to make the period of time more human-comprehensible. Perhaps you’ll find meaning in 633.7, which is the number of days between celebrations of the Galactic Tick here on Earth, or 1.74, which is the number of years.

Five More Important Steps When Your Track Is Done:

Step 1: Per the instructions below, be sure to include the project tag “disquiet0248” (no spaces) in the name of your track. If you’re posting on SoundCloud in particular, this is essential to my locating the tracks and creating a playlist of them.

Step 2: Upload your track. It is helpful but not essential that you use SoundCloud to host your track.

Step 3: In the following discussion thread at llllllll.co please consider posting your track. (Assuming you post it on SoundCloud, a search for the tag will help me construct the playlist.)

http://llllllll.co/t/music-for-the-galactic-tick-disquiet-junto-project-0248/4744

Step 4: Annotate your track with a brief explanation of your approach and process.

Step 5: Then listen to and comment on tracks uploaded by your fellow Disquiet Junto participants.

Deadline: This project was posted in the afternoon, California time, on Thursday, September 29, 2016, with a deadline of 11:59pm wherever you are on Monday, October 3, 2016.

Length: The length is up to you. One minute and 44 seconds seems like a good length (that’s roughly 1.74 minutes).

Title/Tag: When posting your track, please include “disquiet0248” in the title of the track, and where applicable (on SoundCloud, for example) as a tag.

Upload: When participating in this project, post one finished track with the project tag, and be sure to include a description of your process in planning, composing, and recording it. This description is an essential element of the communicative process inherent in the Disquiet Junto. Photos, video, and lists of equipment are always appreciated.

Download: It is preferable that your track is set as downloadable, and that it allows for attributed remixing (i.e., a Creative Commons license permitting non-commercial sharing with attribution).

Linking: When posting the track online, please be sure to include this information:

More on this 248th weekly Disquiet Junto project — “Celebrate the new celestial holiday in music” — at:

http://disquiet.com/0248/

More on the Disquiet Junto at:

http://disquiet.com/junto/

Subscribe to project announcements here:

http://tinyletter.com/disquiet-junto/

Project discussion takes place on llllllll.co:

http://llllllll.co/t/music-for-the-galactic-tick-disquiet-junto-project-0248/4744

There’s also on a Junto Slack. Send your email address to twitter.com/disquiet for Slack inclusion.

The image associated with this project is borrowed from the website galactictick.com

OCaml Planet: Odig 0.0.1

CreativeApplications.Net: Deltu by Alexia Léchot – iPad as a ‘mirror interface’ between humans and robots

tumblr_o8e90argu81v8klwqo1_1280Created by Alexia Léchot at ECAL, Deltu is a delta robot with a personality that interacts with humans using two iPads. Created using arm technology normally found in 3d printers, Deltu uses three different applications on the iPad Alexia built for it, using symmetry as an interpretation, a mirror and a reflexion of our own image.

BOOOOOOOM!: Watch: “The Junction: A-Trak & Nick Catchdubs”

Here’s episode #3 of our animated series for Red Bull Music Academy, and it’s a peek into the pop culture-filled minds of Fool’s Gold co-founders A-Trak and Nick Catchdubs. Hopefully you’ll find it to be an enjoyable mix of the absurd and the profound (would love to see these two start their own podcast).

The visuals here are a collaborative effort from animator Brandon Blommaert and illustrator Josh Holinaty. The sound design and original music were created by Luigi Allemano.

Make sure you hit full screen on the episode above or watch it nice and big over on Booooooom TV.

Stay tuned for the rest of the episodes! If you missed the first two, watch Episode #1: Chilly Gonzales and Peaches, and watch Episode #2: Kaytranada and River Tiber.

Colossal: Artist Leon Tarasewicz Covers the Poland National Gallery’s Great Hall Staircase in Splatter Paint

colored-floor-01

The Great Hall during the exhibition “Polish Painting of the 21st Century,” Leon Tarasewicz, 2006, photo: Sebastian Madejski. All images via We Are Museums

colored-floor-02

colored-floor-03

Back in 2006, Warsaw’s National Gallery of Art, Zachęta, held a group exhibition titled “Polish Painting of the 21st Century.” Painter Leon Tarasewicz contributed a site-specific work to the 60-artist exhibition, redoing the museum’s Great Hall in a bath of red, yellow, blue, and green splatter paint. The work splattered the stairs and crept up the surrounding walls, creating a dramatic entrance for anyone entering the exhibition. (via ArchAtlas which was inexplicably deleted by Tumblr last week?)

Jesse Moynihan: End of Adv Time Production

A few days ago I had coffee with my former AT board partner Ako Castuera and she dropped the deets that Adventure Time production would end with Season 9. Even though I’ve been off the show since July 2015, this news came as a weird relief for me. I told Ako this and she laughed […]

Colossal: New Lace Street Art Created with Ceramic, Textile, and Spray Paint by NeSpoon

_nespoon-warsaw_03

Polish artist NeSpoon (previously here and here) focuses on lace motifs that cover the walls, streets, and public parks found in urban environments. The lace works are either painted directly onto the surface or formed from clay, each handmade by herself or the traditional folk artists with whom she works.

“In lace there is an aesthetic code which is deeply embedded in every culture,” says NeSpoon. “In every lace we find symmetry, and some kind of order and harmony. Isn’t that what we all seek for instinctively?”

Recently NeSpoon has created work in Wroclaw, Auckland, Pont-l’Abbé, and Warsaw. You can see more of her public murals and installations on Behance.

_nespoon-limerick_08

lace-1

_nespoon-france_07

_nespoon-france_04

_nespoon-auckland_05

_nespoon-auckland_06

_nespoon-pont-labbe-france_09

_nespoon-pont-labbe-france_10

_nespoon-estarreja_02

_nespoon_wroclaw_01

Colossal: A Macro Timelapse Highlights the Micro Movements of Spectacularly Colored Coral

Interested in documenting one of the oldest animals on Earth, Barcelona-based production company myLapse set to capture the minimal movements of brightly colored coral, recording actions rarely seen by the human eye. The short film took nearly 25,000 individual images of the marine invertebrates to compose, and photography of species, such as the Acanthophyllia, Trachyphyllia, Heteropsammia cochlea, Physogyra, took over a year.

The production team hopes the film attracts attention to the Great Barrier Reef, encouraging watchers to take a deeper interest in one of the natural wonders of the world that is being rapidly bleached due to climate change. You can see more up-close images of the coral species featured in this film on Flickr. (via Sploid)

coralcolors_06

coralcolors_05

coralcolors_04

coralcolors_03

coralcolors_02

coralcolors_01

Quiet Earth: GOOD TIDINGS To Come from XLrator, Blue Fox Partnership

XLrator Media and Blue Fox Entertainment have entered into a distribution agreement to jointly distribute 15 films a year across all North American platforms, including a number of co-acquisitions.

The first film under the new XLrator Media-BFE distribution agreement will be the holiday-themed thriller Good Tidings, to be released on December 6th, followed in 2017 by the supernatural thrillers Dark Signal and A Demon Within. All of the films will be released on XLrator Media’s acclaimed “MACABRE” genre label.

The two companies began their relationship earlier this year when XLrator Media acquired the North American distribution rights from BFE to the international horror festival hit The Windmill, which opens in theaters October 28th and [Continued ...]

Daniel Lemire's blog: Can Swift code call C code without overhead?

Swift is the latest hot new language from Apple. It is becoming the standard programming language on Apple systems.

I complained in a previous post that Swift 3.0 has only about half of Java’s speed in tests that I care about. That’s not great for high-performance programming.

But we do have a language that produces very fast code: the C language.

Many languages like Objective-C, C++, Python and Go allow you to call C code with relative ease. C++ and Objective-C can call C code with no overhead. Go makes it very easy, but the performance overhead is huge. So it is almost never a good idea to call C from Go for performance. Python also suffers from a significant overhead when calling C code, but since native Python is not so fast, it is often a practical idea to rewrite performance-sensitive code in C and call it from Python. Java makes it hard to call C code, so it is usually not even considered.

What about Swift? We know, as per Apple’s requirements, that Swift must interact constantly with legacy Objective-C code. So we know that it must be good. How good is it?

To put it to the test, I decided to call from Swift a simple Fibonacci recurrence function :

void fibo(int * x, int * y) {
  int c = * y;
  *y = *x + *y;
  *x = c;
}

(Note: this function can overflow and that is undefined behavior in C.)

How does it fare against pure Swift code?

let c = j;
j = i &+ j;
i = c;

To be clear, this is a really extreme case. You should never rewrite such a tiny piece of code in C for performance. I am intentionally pushing the limits.

I wrote a test that calls these functions 3.2 billion times. The pure Swift takes 9.6 seconds on a Haswell processor… or about 3 nanosecond per call. The C function takes a bit over 13 seconds or about 4 nanoseconds per iteration. Ok. But what if I rewrote the whole thing into one C function, called only once? Then it runs in 11 seconds (it is slower than pure Swift code).

The numbers I have suggest that calling C from Swift is effectively free.

In these tests, I do not pass to Swift any optimization flag. The way you build a swift program is by typing “swift build” which is nice and elegant. To optimize the binary, you can type “swift build --configuration release“. Nice! But benchmark code is part of your tests. Sadly, swift seems to insist on only testing “debug” code for some reason. Typing “swift test --configuration release” fails since the test option does not have a configuration flag. (Calling swift test -Xswiftc -O gives me linking errors.)

I rewrote the code using a pure C program, without any Swift. Sure enough, the program runs in about 11 seconds without any optimization flag. This confirms my theory that Swift is testing the code with all optimizations turned off. What if I turn on all C optimizations? Then I go down to 1.7 seconds (or about half a nanosecond per iteration).

So while calling C from Swift is very cheap, insuring that Swift properly optimizes the code might be trickier.

It seems odd that, by default, Swift runs benchmarks in debug mode. It is not helping programmers who care about performance.

Anyhow, a good way around this problem is to simply build binaries in release mode and measure how long it takes them to run. It is crude, but it gets the job done in this case:

$ swift build --configuration release
$ time ./.build/release/LittleSwiftTest
3221225470

real       0m2.030s
user       0m2.028s
sys        0m0.000s
$ time ./.build/release/LittleCOverheadTest
3221225470

real       0m1.778s
user       0m1.776s
sys        0m0.000s

$ clang -Ofast -o purec  code/purec.c
$ time ./purec
3221225470

real       0m1.747s
user       0m1.744s
sys        0m0.000s

So there is no difference between a straight C program, and a Swift program that calls billions of times a C function. They are both just as fast.

The pure Swift program is slightly slower in this case, however. It suggests that using C for performance-sensitive code could be beneficial in a Swift project.

So I have solid evidence that calling C functions from Swift is very cheap. That is very good news. It means that if for whatever reason, Swift is not fast enough for your needs, you stand a very good chance of being able to rely on C instead.

My Swift source code is available (works under Linux and Mac).

Credit: Thanks to Stephen Canon for helping me realize that I could lower the call overhead by calling directly the C function instead of wrapping it first in a tiny Swift function.

Saturday Morning Breakfast Cereal: Saturday Morning Breakfast Cereal - Invasive Species



Hovertext:
I knew I should've gotten hamsters instead.

New comic!
Today's News:

My geeks tell me we've already sold 20% of BAHFest tickets in just a few days. These are definitely going to sell out. So, if you want tickets, please book soon!

CreativeApplications.Net: Scribb by Mylène Dreyer – Pen-Paper-Mouse Interface

mid_diplomes-2-copyCreated by Mylène Dreyer at ECAL, Scribb is a computer game in which the physical area scanned by the mouse is an integral part of the interaction. The player must draw black areas, detected by the mouse, to be able to evolve in the game, simultaneously managing the position of the mouse and the surface on which it is placed.

Planet Haskell: Neil Mitchell: Full-time Haskell jobs in London, at Barclays

Summary: I'm hiring 9 Haskell programmers. Email neil.d.mitchell AT barclays.com to apply.

I work for Barclays, in London, working on a brand new Haskell project. We're looking for nine additional Haskell programmers to come and join the team.

What we offer

A permanent job, writing Haskell, using all the tools you know and love – GHC/Cabal/Stack etc. In the first two weeks in my role I've already written parsers with attoparsec, both Haskell and HTML generators and am currently generating a binding to C with lots of Storable/Ptr stuff. Since it's a new project you will have the chance to help shape the project.

The project itself is to write a risk engine – something that lets the bank calculate the value of the trades it has made, and how things like changes in the market change their value. Risk engines are important to banks and include lots of varied tasks – talking to other systems, overall structuring, actual computation, streaming values, map/reduce.

We'll be following modern but lightweight development principles – including nightly builds, no check-ins to master which break the tests (enforced automatically) and good test coverage.

These positions have attractive salary levels.

What we require

We're looking for the best functional programmers out there, with a strong bias towards Haskell. We have a range of seniorities available to suit even the most experienced candidates. We don't have anything at the very junior end; instead we're looking for candidates that are already fluent and productive. That said, a number of very good Haskell programmers think of themselves as beginners even after many years, so if you're not sure, please get in touch.

We do not require any finance knowledge.

The role is in London, Canary Wharf, and physical presence in the office on a regular basis is required – permanent remote working is not an option.

How to apply

To apply, email neil.d.mitchell AT barclays.com with a copy of your CV. If you have any questions, email me.

The best way to assess technical ability is to look at code people have written. If you have any packages on Hackage or things on GitHub, please point me at the best projects. If your best code is not publicly available, please describe the Haskell projects you've been involved in.

OCaml Planet: Full Time: Software Developer (Functional Programming) at Jane Street in New York, NY; London, UK; Hong Kong

Software Developer

Jane Street is a proprietary quantitative trading firm, focusing primarily on trading equities and equity derivatives. We use innovative technology, a scientific approach, and a deep understanding of markets to stay successful in our highly competitive field. We operate around the clock and around the globe, employing over 400 people in offices in New York, London and Hong Kong.

The markets in which we trade change rapidly, but our intellectual approach changes faster still. Every day, we have new problems to solve and new theories to test. Our entrepreneurial culture is driven by our talented team of traders and programmers. At Jane Street, we don't come to work wanting to leave. We come to work excited to test new theories, have thought-provoking discussions, and maybe sneak in a game of ping-pong or two. Keeping our culture casual and our employees happy is of paramount importance to us.

We are looking to hire great software developers with an interest in functional programming. OCaml, a statically typed functional programming language with similarities to Haskell, Scheme, Erlang, F# and SML, is our language of choice. We've got the largest team of OCaml developers in any industrial setting, and probably the world's largest OCaml codebase. We use OCaml for running our entire business, supporting everything from research to systems administration to trading systems. If you're interested in seeing how functional programming plays out in the real world, there's no better place.

The atmosphere is informal and intellectual. There is a focus on education, and people learn about software and trading, both through formal classes and on the job. The work is challenging, and you get to see the practical impact of your efforts in quick and dramatic terms. Jane Street is also small enough that people have the freedom to get involved in many different areas of the business. Compensation is highly competitive, and there's a lot of room for growth.

You can learn more about Jane Street and our technology from our main site, janestreet.com. You can also look at a a talk given at CMU about why Jane Street uses functional programming (http://ocaml.janestreet.com/?q=node/61), and our programming blog (http://ocaml.janestreet.com).

We also have extensive benefits, including:

  • 90% book reimbursement for work-related books
  • 90% tuition reimbursement for continuing education
  • Excellent, zero-premium medical and dental insurance
  • Free lunch delivered daily from a selection of restaurants
  • Catered breakfasts and fresh brewed Peet's coffee
  • An on-site, private gym in New York with towel service
  • Kitchens fully stocked with a variety of snack choices
  • Full company 401(k) match up to 6% of salary, vests immediately
  • Three weeks of paid vacation for new hires in the US
  • 16 weeks fully paid maternity/paternity leave for primary caregivers, plus additional unpaid leave

More information at http://janestreet.com/culture/benefits/

Planet Haskell: Don Stewart (dons): Haskell dev roles with Strats @ Standard Chartered

The Strats team at Standard Chartered is growing. We have 10 more open roles currently, in a range of areas:

  • Haskell dev for hedging effectiveness analytics, and build hedging services.
  • Haskell devs for derivatives pricing services. Generic roles using Haskell.
  • Web-experienced Haskell devs for frontends to analytics services written in Haskell. PureScript and or data viz, user interfaces skills desirable
  • Haskell dev for trading algorithms and strategy development.
  • Dev/ops role to extend our continuous integration infrastructure (Haskell+git)
  • Contract analysis and manipulation in Haskell for trade formats (FpML + Haskell).
  • Haskell dev for low latency (< 100 microsecond) components in soft real-time non-linear pricing charges service.

You would join an existing team of 25 Haskell developers in Singapore or London. Generally our roles involve directly working with traders to automate their work and improve their efficiency. We use Haskell for all tasks. Either GHC Haskell or our own (“Mu”) implementation, and this is a rare chance to join a large, experienced Haskell dev team.

We offer permanent or contractor positions, at Director and Associate Director level, with very competitive compensation. Demonstrated experience in typed FP (Haskell, OCaml, F# etc) is required or other typed FP.

All roles require some physical presence in either Singapore or London, and we offer flexiblity with these constraints (with work from home available). No financial background is required or assumed.

More info about our development process is in the 2012 PADL keynote, and a 2013 HaskellCast interview.

If this sounds exciting to you, please send your PDF resume to me – donald.stewart <at> sc.com


Tagged: jobs

s mazuk: "All I can say is, it took me about ten years to learn how to write a story I knew was something like..."

“All I can say is, it took me about ten years to learn how to write a story I knew was something like what I wanted to write. In the sixty years since then I’ve learned how to do some more of what I’d like to do. But never all.”

- Ursula K. Le Guin, October 18th, 2015, Gollancz Festival (via ellenkushner)

Disquiet: Greg Davis & Keith Fullerton Whitman Live in 2002

Greg Davis and Keith Fullerton Whitman have posted a half-hour set from 2002, recorded on WVUM in Miami, Florida, during a spring tour from March and April of that year. It’s an early document for both. Davis released his first album, Arbor, in 2002, on the Carpark Records label. And while Whitman had been since the late 1990s making recordings (generally self-released), 2002 would also see the release of his breakthrough, Playthroughs, on Kranky.

According to the brief note on Davis’ SoundCloud account, “the live set was recently unearthed.” The two are heard “trading off playing live tracks.” These veer between gentle folktronic material from Davis (ruminative field recordings, guitar above a pixelated beat), and more frenetic, often IDM-flavored material from Hrvatski (rubbery breakbeats, scattered metric logicistics). The tag team approach is emblematic of their camaraderie.

I was fortunate to have seen them play when they hit New Orleans later that month at a show at the Mermaid Lounge. The full tour itinerary is archived at the microsound discussion list. It started at Bard College mid-way through March and ended in Montreal at La Sala Rossa toward the end of April. The microsound-list announcement humorously depicts the tour as a trio, splitting Whitman between his given name and his Hrvatski moniker. Here’s part of the announcement:

hello microsound listers. i’m going on tour starting tomorrow, will most likely end up in a town near you some time over the next few weeks. if you’re in the area come and say hello… -k

starting very soon: spring tour.

featuring:
hrvatski (planet-mu, reckankreuzungsklankewerkzeuge).
greg davis (carpark, autumn).
keith fullerton whitman (kranky, apartment b).

hrvatski will be performing material from his forthcoming album swarm & dither (planet-mu).
greg davis will be performing material from his recently released debut album arbor (carpark).

keith fullerton whitman will be performing material from his forthcoming debut album playthroughs (kranky) on select dates.
greg davis and keith fullerton whitman will be performing material together as a duo on select dates (as they see fit).

If you want something to read while listening to the performances, I interviewed Davis later that year (“Woodshedding”), and Whitman in mid-2001 (“Army of One”).

Track originally posted at soundcloud.com/greg-davis.

Planet Haskell: Well-Typed.Com: Sharing, Space Leaks, and Conduit and friends

TL;DR: Sharing conduit values leads to space leaks. Make sure to disable the full laziness optimization in the module with your top-level calls to runConduit or ($$) (skip to the end of the conclusion for some details on how to do this). Similar considerations apply to other streaming libraries and indeed any Haskell code that uses lazy data structures to drive computation.

Motivation

We use large lazy data structures in Haskell all the time to drive our programs. For example, consider

main1 :: IO ()
main1 = forM_ [1..5] $ \_ -> mapM_ print [1 .. 1000000]

It’s quite remarkable that this works and that this program runs in constant memory. But this stands on a delicate cusp. Consider the following minor variation on the above code:

ni_mapM_ :: (a -> IO b) -> [a] -> IO ()
{-# NOINLINE ni_mapM_ #-}
ni_mapM_ = mapM_

main2 :: IO ()
main2 = forM_ [1..5] $ \_ -> ni_mapM_ print [1 .. 1000000]

This program runs, but unlike main1, it has a maximum residency of 27 MB; in other words, this program suffers from a space leak. As it turns out, main1 was running in constant memory because the optimizer was able to eliminate the list altogether (due to the fold/build rewrite rule), but it is unable to do so in main2.

But why is main2 leaking? In fact, we can recover constant space behaviour by recompiling the code with -fno-full-laziness. The full laziness transformation is effectively turning main2 into

longList :: [Integer]
longList = [1 .. 1000000]

main3 :: IO ()
main3 = forM_ [1..5] $ \_ -> ni_mapM_ print longList

The first iteration of the forM_ loop constructs the list, which is then retained to be used by the next iterations. Hence, the large list is retained for the duration of the program, which is the beforementioned space leak.

The full laziness optimization is taking away our ability to control when data structures are not shared. That ability is crucial when we have actions driven by large lazy data structures. One particularly important example of such lazy structures that drive computation are conduits or pipes. For example, consider the following conduit code:

import qualified Data.Conduit as C

countConduit :: Int -> C.Sink Char IO ()
countConduit cnt = do
    mi <- C.await
    case mi of
      Nothing -> liftIO (print cnt)
      Just _  -> countConduit $! cnt + 1

getConduit :: Int -> C.Source IO Char
getConduit 0 = return ()
getConduit n = do
    ch <- liftIO getChar
    C.yield ch
    getConduit (n - 1)

Here countConduit is a sink that counts the characters it receives from upstream, and getConduit n is a conduit that reads n characters from the console and passes them downstream. Suppose we connect these two conduits and run them inside an exception handler that retries when an error occurs:

retry :: IO a -> IO a
retry io = catch io (\(_ :: SomeException) -> retry io)
main :: IO ()
main = retry $ C.runConduit $ getConduit 1000000 C.=$= countConduit 0

we again end up with a large space leak, this time of type Pipe and ->Pipe (conduit’s internal type):

Although the values that stream through the conduit come from IO, the conduit itself is fully constructed and retained in memory. In this blog post we examine what exactly is being retained here, and why. We will also suggest a simple workaround: it usually suffices to avoid sharing at the very top-level calls to runConduit or ($$). Note that these problems are not specific to the conduit library, but apply equally to all other similar libraries.

We will not assume any knowledge of conduit but start from first principles; however, if you have never used any of these libraries before this blog post is probably not the best starting point; you might for example first want to watch my presentation Lazy I/O and Alternatives in Haskell.

Lists

Before we look at the more complicated case, let’s first consider another program using just lists:

main :: IO ()
main = retry $ ni_mapM_ print [1..1000000]

This program suffers from a space leak for similar reasons to the example with lists we saw in the introduction, but it’s worth spelling out the details here: where exactly is the list being maintained?

Recall that the IO monad is effectively a state monad over a token RealWorld state (if that doesn’t make any sense to you, you might want to read ezyang’s article Unraveling the mystery of the IO monad first). Hence, ni_mapM_ (just a wrapper around mapM_) is really a function of three arguments: the action to execute for every element of the list, the list itself, and the world token. That means that

ni_mapM_ print [1..1000000]

is a partial application, and hence we are constructing a PAP object. Such a PAP object is an runtime representation of a partial application of a function; it records the function we want to execute (ni_mapM_), as well as the arguments we have already provided. It is this PAP object that we give to retry, and which retry retains until the action completes because it might need it in the exception handler. The long list in turn is being retained because there is a reference from the PAP object to the list (as one of the arguments that we provided).

Full laziness does not make a difference in this example; whether or not that [1 .. 10000000] expression gets floated out makes no difference.

Reminder: Conduits/Pipes

Just to make sure we don’t get lost in the details, let’s define a simple conduit-like or pipe-like data structure:

data Pipe i o m r =
    Yield o (Pipe i o m r)
  | Await (Either r i -> Pipe i o m r)
  | Effect (m (Pipe i o m r))
  | Done r

A pipe or a conduit is a free monad which provides three actions:

  1. Yield a value downstream
  2. Await a value from upstream
  3. Execute an effect in the underlying monad.

The argument to Await is passed an Either; we give it a Left value if upstream terminated, or a Right value if upstream yielded a value.1

This definition is not quite the same as the one used in real streaming libraries and ignores various difficulties (in particular exception safely, as well as other features such as leftovers); however, it will suffice for the sake of this blog post. We will use the terms “conduit” and “pipe” interchangeably in the remainder of this article.

Sources

The various Pipe constructors differ in their memory behaviour and the kinds of space leaks that they can create. We therefore consider them one by one. We will start with sources, because their memory behaviour is relatively straightforward.

A source is a pipe that only ever yields values downstream.2 For example, here is a source that yields the values [n, n-1 .. 1]:

yieldFrom :: Int -> Pipe i Int m ()
yieldFrom 0 = Done ()
yieldFrom n = Yield n $ yieldFrom (n - 1)

We could “run” such a pipe as follows:

printYields :: Show o => Pipe i o m () -> IO ()
printYields (Yield o k) = print o >> printYields k
printYields (Done ())   = return ()

If we then run the following program:

main :: IO ()
main = retry $ printYields (yieldFrom 1000000)

we get a space leak. This space leak is very similar to the space leak we discussed in section Lists above, with Done () playing the role of the empty list and Yield playing the role of (:).

Sinks

A sink is a conduit that only ever awaits values from upstream; it never yields anything downstream.2 The memory behaviour of sinks is considerably more subtle than the memory behaviour of sources and we will examine it in detail. As a reminder, the constructor for Await is

data Pipe i o m r = Await (Either r i -> Pipe i o m r) | ...

As an example of a sink, consider this pipe that counts the number of characters it receives:

countChars :: Int -> Pipe Char o m Int
countChars cnt =
    Await $ \mi -> case mi of
      Left  _ -> Done cnt
      Right _ -> countChars $! cnt + 1

We could “run” such a sink by feeding it a bunch of characters; say, 1000000 of them:

feed :: Char -> Pipe Char o m Int -> IO ()
feed ch = feedFrom 10000000
  where
    feedFrom :: Int -> Pipe Char o m Int -> IO ()
    feedFrom _ (Done r)  = print r
    feedFrom 0 (Await k) = feedFrom 0     $ k (Left 0)
    feedFrom n (Await k) = feedFrom (n-1) $ k (Right ch)

If we run this as follows and compile with optimizations enabled, we once again end up with a space leak:

main :: IO ()
main = retry $ feed 'A' (countChars 0)

We can recover constant space behaviour again by disabling full laziness; however, the effect of full laziness on this example is a lot more subtle than the example we described in the introduction.

Full laziness

Let’s take a brief moment to describe what full laziness is, exactly. Full laziness is one of the optimizations that ghc applies by default when optimizations are enabled; it is described in the paper “Let-floating: moving bindings to give faster programs”. The idea is simple; if we have something like

f = \x y -> let e = .. -- expensive computation involving x but not y
            in ..

full laziness floats the let binding out over the lambda to get

f = \x = let e = .. in \y -> ..

This potentially avoids unnecessarily recomputing e for different values of y. Full laziness is a useful transformation; for example, it turns something like

f x y = ..
  where
    go = .. -- some local function

into

f x y   = ..
f_go .. = ..

which avoids allocating a function closure every time f is called. It is also quite a notorious optimization, because it can create unexpected CAFs (constant applicative forms; top-level definitions of values); for example, if you write

nthPrime :: Int -> Int
nthPrime n = allPrimes !! n
  where
    allPrimes :: [Int]
    allPrimes = ..

you might expect nthPrime to recompute allPrimes every time it is invoked; but full laziness might move that allPrimes definition to the top-level, resulting in a large space leak (the full list of primes would be retained for the lifetime of the program). This goes back to the point we made in the introduction: full laziness is taking away our ability to control when values are not shared.

Full laziness versus sinks

Back to the sink example. What exactly is full laziness doing here? Is it constructing a CAF we weren’t expecting? Actually, no; it’s more subtle than that. Our definition of countChars was

countChars :: Int -> Pipe Char o m Int
countChars cnt =
    Await $ \mi -> case mi of
      Left  _ -> Done cnt
      Right _ -> countChars $! cnt + 1

Full laziness is turning this into something more akin to

countChars' :: Int -> Pipe Char o m Int
countChars' cnt =
    let k = countChars' $! cnt + 1
    in Await $ \mi -> case mi of
                        Left  _ -> Done cnt
                        Right _ -> k

Note how the computation of countChars' $! cnt + 1 has been floated over the lambda; ghc can do that, since this expression does not depend on mi. So in memory the countChars 0 expression from our main function (retained, if you recall, because of the surrounding retry wrapper), develops something like this. It starts of as a simple thunk:

Then when feed matches on it, it gets reduced to weak head normal form, exposing the top-most Await constructor:

The body of the await is a function closure pointing to the function inside countChars (\mi -> case mi ..), which has countChars $! (cnt + 1) as an unevaluated thunk in its environment. Evaluating it one step further yields

So where for a source the data structure in memory was a straightforward “list” consisting of Yield nodes, for a sink the situation is more subtle: we build up a chain of Await constructors, each of which points to a function closure which in its environment has a reference to the next Await constructor. This wouldn’t matter of course if the garbage collector could clean up after us; but if the conduit itself is shared, then this results in a space leak.

Without full laziness, incidentally, evaluating countChars 0 yields

and the chain stops there; the only thing in the function closure now is cnt. Since we don’t allocate the next Yield constructor before running the function, we never construct a chain of Yield constructors and hence we have no space leak.

Depending on values

It is tempting to think that if the conduit varies its behaviour depending on the values it receives from upstream the same chain of Await constructors cannot be constructed and we avoid a space leak. For example, consider this variation on countChars which only counts spaces:

countSpaces :: Int -> Pipe Char o m Int
countSpaces cnt =
    Await $ \mi ->
      case mi of
        Left  _   -> Done cnt
        Right ' ' -> countSpaces $! cnt + 1
        Right _   -> countSpaces $! cnt

If we substitute this conduit for countChars in the previous program, do we fare any better? Alas, the memory behaviour of this conduit, when shared, is in fact far, far worse.

The reason is that both the countSpaces $! cnt + 1 and the expression countSpaces $! cnt can both be floated out by the full laziness optimization. Hence, now every Await constructor will have a function closure in its payload with two thunks, one for each alternative way to execute the conduit. What’s more, both of these thunks will are retained as long as we retain a reference to the top-level conduit.

We can neatly illustrate this using the following program:

main :: IO ()
main = do
    let count = countSpaces 0
    feed ' ' count
    feed ' ' count
    feed ' ' count
    feed 'A' count
    feed 'A' count
    feed 'A' count

The first feed ' ' explores a path through the conduit where every character is a space; so this constructs (and retains) one long chain of Await constructors. The next two calls to feed ' ' however walk over the exact same path, and hence memory usage does not increase for a while. But then we explore a different path, in which every character is a non-space, and hence memory behaviour will go up again. Then during the second call to feed 'A' memory usage is stable again, until we start executing the last feed 'A', at which point the garbage collector can finally start cleaning things up:

What’s worse, there is an infinite number of paths through this conduit. Every different combination of space and non-space characters will explore a different path, leading to combinatorial explosion and terrifying memory usage.

Effects

The precise situation for effects depends on the underlying monad, but let’s explore one common case: IO. As we will see, for the case of IO the memory behaviour of Effect is actually similar to the memory behaviour of Await. Recall that the Effect constructor is defined as

data Pipe i o m r = Effect (m (Pipe i o m r)) | ...

Consider this simple pipe that prints the numbers [n, n-1 .. 1]:

printFrom :: Int -> Pipe i o IO ()
printFrom 0 = Done ()
printFrom n = Effect $ print n >> return (printFrom (n - 1))

We might run such a pipe using3:

runPipe :: Show r => Pipe i o IO r -> IO ()
runPipe (Done r)   = print r
runPipe (Effect k) = runPipe =<< k

In order to understand the memory behaviour of Effect, we need to understand how the underlying monad behaves. For the case of IO, IO actions are state transformers over a token RealWorld state. This means that the Effect constructor actually looks rather similar to the Await constructor. Both have a function as payload; Await a function that receives an upstream value, and Effect a function that receives a RealWorld token. To illustrate what printFrom might look like with full laziness, we can rewrite it as

printFrom :: Int -> Pipe i o IO ()
printFrom n =
    let k = printFrom (n - 1)
    in case n of
         0 -> Done ()
         _ -> Effect $ IO $ \st -> unIO (print n >> return k) st

If we visualize the heap (using ghc-vis), we can see that it does indeed look very similar to the picture for Await:

Increasing sharing

If we cannot guarantee that our conduits are not shared, then perhaps we should try to increase sharing instead. If we can avoid allocating these chains of pipes, but instead have pipes refer back to themselves, perhaps we can avoid these space leaks.

In theory, this is possible. For example, when using the conduit library, we could try to take advantage of monad transformers and rewrite our feed source and our count sink as:

feed :: Source IO Char
feed = evalStateC 1000000 go
  where
    go :: Source (StateT Int IO) Char
    go = do
      st <- get
      if st == 0
        then return ()
        else do put $! (st - 1) ; yield 'A' ; go

count :: Sink Char IO Int
count = evalStateC 0 go
  where
    go :: Sink Char (StateT Int IO) Int
    go = do
        mi <- await
        case mi of
          Nothing -> get
          Just _  -> modify' (+1) >> go

In both definitions go refers back to itself directly, with no arguments; hence, it ought to be self-referential, without any long chain of sources or sinks ever being constructed. This works; the following program runs in constant space:

main :: IO ()
main = retry $ print =<< (feed $$ count)

However, this kind of code is extremely brittle. For example, consider the following minor variation on count:

count :: Sink Char IO Int
count = evalStateC 0 go
  where
    go :: Sink Char (StateT Int IO) Int
    go = withValue $ \_ -> modify' (+1) >> go

    withValue :: (i -> Sink i (StateT Int IO) Int)
              -> Sink i (StateT Int IO) Int
    withValue k = do
      mch <- await
      case mch of
        Nothing -> get
        Just ch -> k ch

This seems like a straight-forward variation, but this code in fact suffers from a space leak again4. The optimized core version of this variation of count looks something like this:

count :: ConduitM Char Void (StateT Int IO) Int
count = ConduitM $ \k ->
    let countRec = modify' (+ 1) >> count
    in unConduitM await $ \mch ->
         case mch of
           Nothing -> unConduitM get      k
           Just _  -> unConduitM countRec k

In the conduit library, ConduitM is a codensity transformation of an internal Pipe datatype; the latter corresponds more or less to the Pipe datastructure we’ve been describing here. But we can ignore these details: the important point here is that this has the same typical shape that we’ve been studying above, with an allocation inside a lambda but before an await.

We can fix it by writing our code as

count :: Sink Char IO Int
count = evalStateC 0 go
  where
    go :: Sink Char (StateT Int IO) Int
    go = withValue goWithValue

    goWithValue :: Char -> Sink Char (StateT Int IO) Int
    goWithValue _ = modify' (+1) >> go

    withValue :: (i -> Sink i (StateT Int IO) Int)
              -> Sink i (StateT Int IO) Int
    withValue k = do
      mch <- await
      case mch of
        Nothing -> get
        Just ch -> k ch

Ironically, it would seem that full laziness here could have helped us by floating out that modify' (+1) >> go expression for us. The reason that it didn’t is probably related to the exact way the k continuation is threaded through in the compiled code (I simplified a bit above). Whatever the reason, tracking down problems like these is difficult and incredibly time consuming; I’ve spent many many hours studying the output of -ddump-simpl and comparing before and after pictures. Not a particularly productive way to spend my time, and this kind of low-level thinking is not what I want to do when writing application level Haskell code!

Composed pipes

Normally we construct pipes by composing components together. Composition of pipes can be defined as

(=$=) :: Monad m => Pipe a b m r -> Pipe b c m r -> Pipe a c m r
{-# NOINLINE (=$=) #-}
_         =$= Done   r   = Done r
u         =$= Effect   d = Effect $ (u =$=) <$> d
u         =$= Yield  o d = Yield o (u =$= d)
Yield o u =$= Await    d = u =$= d (Right o)
Await   u =$= Await    d = Await $ \ma -> u ma =$= Await d
Effect  u =$= Await    d = Effect $ (=$= Await d) <$> u
Done  r   =$= Await    d = Done r =$= d (Left r)

The downstream pipe “is in charge”; the upstream pipe only plays a role when downstream awaits. This mirrors Haskell’s lazy “demand-driven” evaluation model.

Typically we only run self-contained pipes that don’t have any Awaits or Yields left (after composition), so we are only left with Effects. The good news is that if the pipe components don’t consist of long chains, then their composition won’t either; at every Effect point we wait for either upstream or downstream to complete its effect; only once that is done do we receive the next part of the pipeline and hence no chains can be constructed.

On the other hand, of course composition doesn’t get rid of these space leaks either. As an example, we can define a pipe equivalent to the getConduit from the introduction

getN :: Int -> Pipe i Char IO Int
getN 0 = Done 0
getN n = Effect $ do
           ch <- getChar
           return $ Yield ch (getN (n - 1))

and then compose getN and countChars to get a runnable program:

main :: IO ()
main = retry $ runPipe $ getN 1000000 =$= countChars 0

This program suffers from the same space leaks as before because the individual pipelines component are kept in memory. As in the sink example, memory behaviour would be much worse still if there was different paths through the conduit network.

Conclusions

At Well-Typed we’ve been developing an application for a client to do streaming data processing. We’ve been using the conduit library to do this, with great success. However, occassionally space leaks arise that difficult to fix, and even harder to track down; of course, we’re not the first to suffer from these problems; for example, see ghc ticket 9520.

In this blog post we described how such space leaks arise. Similar space leaks can arise with any kind of code that uses large lazy data structures to drive computation, including other streaming libraries such as pipes or streaming, but the problem is not restricted to streaming libraries.

The conduit library tries to avoid these intermediate data structures by means of fusion rules; naturally, when this is successful the problem is avoided. We can increase the likelihood of this happening by using combinators such as folds etc., but in general the intermediate pipe data structures are difficult to avoid.

The core of the problem is that in the presence of the full laziness optimization we have no control over when values are not shared. While it is possible in theory to write code in such a way that the lazy data structures are self-referential and hence keeping them in memory does not cause a space leak, in practice the resulting code is too brittle and writing code like this is just too difficult. Just to provide one more example, in our application we had some code that looked like this:

go x@(C y _) = case y of
         Constr1 -> doSomethingWith x >> go
         Constr2 -> doSomethingWith x >> go
         Constr3 -> doSomethingWith x >> go
         Constr4 -> doSomethingWith x >> go
         Constr5 -> doSomethingWith x >> go

This worked and ran in constant space. But after adding a single additional clause to this pattern match, suddenly we reintroduced a space leak again:

go x@(C y _) = case y of
         Constr1 -> doSomethingWith x >> go
         Constr2 -> doSomethingWith x >> go
         Constr3 -> doSomethingWith x >> go
         Constr4 -> doSomethingWith x >> go
         Constr5 -> doSomethingWith x >> go
         Constr6 -> doSomethingWith x >> go

This was true even when that additional clause was never used; it had nothing to do with the change in the runtime behaviour of the code. Instead, when we added the additional clause some limit got exceeded in ghc’s bowels and suddenly something got allocated that wasn’t getting allocated before.

Full laziness can be disabled using -fno-full-laziness, but sadly this throws out the baby with the bathwater. In many cases, full laziness is a useful optimization. In particular, there is probably never any point allocation a thunk for something that is entirely static. We saw one such example above; it’s unexpected that when we write

go = withValue $ \_ -> modify' (+1) >> go

we get memory allocations corresponding to the modify' (+1) >> go expression.

Fortunately, there is a simple workaround. Any internal sharing in the conduit is (usually) fine, as long as we don’t retain the conduit from one run to the next. So it’s the argument to the top-level calls to runConduit or ($$) that we need to worry about (or the equivalent “run” functions from other libraries). This leads to the following recommendation:

Conduit code typically looks like

runMyConduit :: Some -> Args -> IO r
runMyConduit some args =
    runConduit $ stage1 some
             =$= stage2 args
             ...
             =$= stageN

You should put all top-level calls to runConduit into a module of their own, and disable full laziness in that module by declaring

{-# OPTIONS_GHC -fno-full-laziness #-}

at the top of the file. This means the computation of the conduit (stage1 =$= stage2 .. =$= stageN) won’t get floated to the top and the conduit will be recomputed on every invocation of runMyConduit (note that this relies on runMyConduit to have some arguments; if it doesn’t, you should add a dummy one).

It is not necessary to disable full laziness anywhere else. In particular, the conduit stages themselves (stage1 etc.) can be defined in modules where full laziness is enabled as usual.

There is a recent proposal for adding a pragma to ghc that might make it possible to disable full laziness on specific expressions, but for now the above is a reasonable workaround.

Addendum 1: ghc’s “state hack”

Let’s go back to the section about sinks; if you recall, we considered this example:

countChars :: Int -> Pipe Char o m Int
countChars cnt =
    let k = countChars $! cnt + 1
    in Await $ \mi -> case mi of
                        Left  _ -> Done cnt
                        Right _ -> k

feedFrom :: Int -> Pipe Char o m Int -> IO ()
feedFrom n (Done r)  = print r
feedFrom 0 (Await k) = feedFrom 0 $ k (Left 0)
feedFrom n (Await k) = feedFrom (n - 1) $ k (Right 'A')

main :: IO ()
main = retry $ feedFrom 10000000 (countChars 0)

We explained how countChars 0 results in a chain of Await constructors and function closures. However, you might be wondering, why would this be retained at all? After all, feedFrom is just an ordinary function, albeit one that computes an IO action. Why shouldn’t the whole expression

feedFrom 10000000 (countChars 0)

just be reduced to a single print 10000000 action, leaving no trace of the pipe at all? Indeed, this is precisely what happens when we disable ghc’s “state hack”; if we compile this program with -fno-state-hack it runs in constant space.

So what is the state hack? You can think of it as the opposite of the full laziness transformation; where full laziness transforms

     \x -> \y -> let e = <expensive> in ..    
~~>  \x -> let e = <expensive> in \y -> ..

the state hack does the opposite

     \x -> let e = <expensive> in \y -> ..
~~>  \x -> \y -> let e = <expensive> in ..    

though only for arguments y of type State# <token>. In general this is not sound, of course, as it might duplicate work; hence, the name “state hack”. Joachim Breitner’s StackOverflow answer explains why this optimization is necessary; my own blog post Understanding the RealWorld provides more background.

Let’s leave aside the question of why this optimization exists, and consider the effect on the code above. If you ask ghc to dump the optimized core (-ddump-stg), and translate the result back to readable Haskell, you will realize that it boils down to a single line change. With the state hack disabled the last line of feedFrom is effectively:

feedFrom n (Await k) = IO $
    unIO (feedFrom (n - 1) (k (Right 'A')))

where IO and unIO just wrap and unwrap the IO monad. But when the state hack is enabled (the default), this turns into

feedFrom n (Await k) = IO $ \w ->
    unIO (feedFrom (n - 1) (k (Right 'A'))) w

Note how this floats the recursive call to feedFrom into the lambda. This means that

feedFrom 10000000 (countChars 0)

no longer reduces to a single print statement (after an expensive computation); instead, it reduces immediately to a function closure, waiting for its world argument. It’s this function closure that retains the Await/function chain and hence causes the space leak.

Addendum 2: Interaction with cost-centres (SCC)

A final cautionary tale. Suppose we are studying a space leak, and so we are compiling our code with profiling enabled. At some point we add some cost centres, or use -fprof-auto perhaps, and suddenly find that the space leak disappeared! What gives?

Consider one last time the sink example. We can make the space leak disappear by adding a single cost centre:

feed :: Char -> Pipe Char o m Int -> IO ()
feed ch = feedFrom 10000000
  where
    feedFrom :: Int -> Pipe Char o m Int -> IO ()
    feedFrom n p = {-# SCC "feedFrom" #-}
      case (n, p) of
        (_, Done r)  -> print r
        (0, Await k) -> feedFrom 0     $ k (Left 0)
        (_, Await k) -> feedFrom (n-1) $ k (Right ch)

Adding this cost centre effectively has the same result as specifying -fno-state-hack; with the cost centre present, the state hack can no longer float the computations into the lambda.

Footnotes

  1. The ability to detect upstream termination is one of the characteristics that sets conduit apart from the pipes package, in which this is impossible (or at least hard to do). Personally, I consider this an essential feature. Note that the definition of Pipe in conduit takes an additional type argument to avoid insisting that the type of the upstream return value matches the type of the downstream return value. For simplicity I’ve omitted this additional type argument here.

  2. Sinks and sources can also execute effects, of course; since we are interested in the memory behaviour of the indvidual constructors, we treat effects separately.

  3. runPipe is (close to) the actual runPipe we would normally use; we connect pipes that await or yield into a single self contained pipe that does neither.

  4. For these simple examples actually the optimizer can work its magic and the space leak doesn’t appear, unless evalStateC is declared NOINLINE. Again, for larger examples problems arise whether it’s inlined or not.

Embedded in Academia: Advanced Compilers Weeks 3-5

This continues a previous post.

We went through the lattice theory and introduction to dataflow analysis parts of SPA. I consider this extremely good and important material, but I’m afraid that the students looked pretty bored. It may be the case that this material is best approached by first looking at practical aspects and only later going into the theory.

One part of SPA that I’m not super happy with is the material about combining lattices (section 4.3). This is a useful and practical topic but the use cases aren’t really discussed. In class we went through some examples, for example this function that cannot be optimized by either constant propagation or dead code elimination alone, but can be optimized by their reduced product: conditional constant propagation. Which, as you can see, is implemented by both LLVM and GCC. Also, this example cannot be optimized by either sign analysis or parity analysis, but can be optimized using their reduced product.

We didn’t go into them, but I pointed the class to the foundational papers for dataflow analysis and abstract interpretation.

I gave an assignment to implement subtract and bitwise-and transfer functions for the interval abstract domain for signed 5-bit integers. The bitwidth is small so I can rapidly do exhausive testing of students’ code. Their subtract had to be correct and maximally precise — about half of the class accomplished this. Their bitwise-and had to be correct and more precise than always returning top, and about half of the class accomplished this as well (a maximally precise bitwise-and operator for intervals is not at all easy — try it!). Since not everyone got the code right, I had them fix bugs (if any) and resubmit their code for this week. I hope everyone will get it right this time! Also I will give prizes to students whose bitwise-and operator is on the Pareto frontier (out of all submitted solutions) for throughput vs precision and code size vs precision. Here are the results with the Pareto frontier in blue and the minimum and maximum precision in red (narrower intervals are better).

Impressively, student k implemented an optimally precise bitwise-and transfer function! Student c’s transfer function returned an answer other than top only for intervals of width 1. Mine (labeled JOHN) looked at the number of leading zeroes in both operands.

We looked at the LLVM implementation of the bitwise domain (“known bits”, they call it) which lives in ValueTracking.cpp. This analysis doesn’t have a real fixpoint computation, it rather simply walks up the dataflow graph in a recursive fashion, which is a bit confusing since it is a forward dataflow analysis that looks at nodes in the backward direction. The traversal stops at depth 6, and isn’t cached, so the code is really very easy to understand.

We started to look at how LLVM works, I went partway through some lecture notes by David Chisnall. We didn’t focus on the LLVM implementation yet, but rather looked at the design, with a bit of focus on SSA, which is worth spending some time on since it forms the foundation for most modern compilers. I had the students read the first couple of chapters of this drafty SSA book.

Something I’d appreciate feedback on is what (besides SSA) have been the major developments in ahead-of-time compiler technology over the last 25 years or so. Loop optimizations and vectorization have seen major advances of course, as have verified compilers. In this class I want to steer clear of PL-level innovations.

Finally, former Utah undergrad and current Googler Chad Brubaker visited the class and gave a guest lecture on UBSan in production Android: very cool stuff! Hopefully this motivated the class to care about using static analysis to remove integer overflow checks, since they will be doing assignments on that very topic in the future.

Penny Arcade: News Post: Want to work on PAX?

Tycho: There are a couple opportunities to PAX it up with our partner ReedPOP.  Here are two jobs in Norwalk, Connecticut, which you should absolutely check out: PAX Content Manager PAX Content Coordinator What is the difference between a Content Manager and a Content Coordinator?  Good question; it’s all in the links.  This next job is not in Norwalk, CT.  In fact it is very far away from there, because it is for PAX Aus (which is fast approaching and you should buy tickets!): PAX Aus Sales Manager (Sydney) Let’s make some shows. (CW)TB

Ideas from CBC Radio (Highlights): Changing the System

Artists are visionary, and their work often anticipates tectonic shifts in the future social landscape. But what relationship does art have with social change? What obligations, if any, do artists have to foster social justice? An AGO Creative Minds event

Planet Haskell: Michael Snoyman: Respect

As I'm sure many people in the Haskell community have seen, Simon PJ put out an email entitled "Respect". If you haven't read it yet, I think you should. As is usually the case, Simon shows by example what we should strive for.

I put out a Tweet referring to a Gist I wrote two weeks back. At the time, I did not put the content on this blog, as I didn't want to make a bad situation worse. However, especially given Simon's comments, now seems like a good time to put out this message in the same medium (this blog) that the original inflammatory messaging came out in:

A few weeks back I wrote a blog post (and a second clarifying post) on what I called the Evil Cabal. There is no sense in repeating the content here, or even referencing it. The title is the main point.

It was a mistake, and an offensive one, to use insulting terms like evil in that blog post. What I said is true: I have taken to using that term when discussing privately some of the situation that has occured. I now see that that was the original problem: while the term started as a joke and a pun, it set up a bad precedent for conversation. I should not have used it privately, and definitely should not have publicized it.

To those active members in projects I maligned, I apologize. I should not have brought the discourse to that level.

Quiet Earth: Fantastic Fest 2016: SCIENCE FICTION, VOL. 1 THE OSIRIS CHILD Review

If you ask a modern filmmaker to name some of the inspirations for their latest science fiction opus, chances are high he or she won't mention the likes of Circuitry Man, Space Truckers, Slipstream, or Fortress. Chances are also high that if you have any affinity whatsoever for 80's and 90's sci-fi B-movies you will, while watching the latest film from director Shane Abbess, flash back to at least one of these or a host of other hovering-just-below-the-radar flicks, the kind that once dominated the shelves of rental stores.


Science Fiction Vol.1: The Osiris Child takes place in a future where mankind has begun colonizing the galaxy, establishing corporate/military bases on each newly terraformed planet. Lt. Kane Sommerville (Daniel MacPherson), demot [Continued ...]

Colossal: This Solemn Forest Chapel in Japan Imitates Two Hands Clasped in Prayer

sayamaforestchapel_01

Located in a forest just beyond a nondenominational cemetery sits the Sayama Forest Chapel, a three-year-old building designed by Hiroshi Nakamura & NAP (previously). From a bird’s eye view the chapel appears to form both a star and two hands pressed together in prayer, which is a traditional Japanese structural form called “Gassho-zukuri.”

“For those who are in deep grief and inconsolable, how can architecture nurture them? With this in mind, I designed buildings that gently surround them and support their intentions,” explained Nakamura to Yellowtrace.

The building was also built in a way to promote growth around its exterior, with walls tilted inward to leave room for the forest to grow around its shape. The chapel’s floor and patterns of its slate also lean toward the forest, subtly asking visitors to concentrate their mind on the surrounding elements of nature.

The chapel was named as a winner in the religious buildings and memorials category in this year’s Architizer A+Awards, an awards program that celebrates the year’s best in architecture and products. (via Yellowtrace)

sayamaforestchapel_02

sayamaforestchapel_03

sayamaforestchapel_06

sayamaforestchapel_04

sayamaforestchapel_05

sayamaforestchapel_07

sayamaforestchapel_08

Quiet Earth: Fantastic Fest 2016: THE CREW is One of the Best Crime Movies of the Modern Era [Review]

Guns. Drugs. Passports. All common currency on the black market. Getting any of those in your hands is going to require the services of a professional like Yanis- a slender, laconic man of exemplary discipline who plays the game wisely and launders his money through legal fronts. Keeping a low profile means making sure no attention gets drawn to his operation- which proves to be difficult when in the company of a pillhead and a fast-and-loose little brother.

One careless misstep gets them in deep with the wrong people and they have to use their exceptional skills to dig their way back out. It’s a showdown of opposite camps of criminals- finesse and restraint versus chaotic brutality. Every decision they make takes them farther down a path of increasingly ruthless peril.

Easily [Continued ...]

Quiet Earth: Fantastic Fest 2016: MISS PEREGRINE'S HOME FOR PECULIAR CHILDREN Review

A remote, gorgeous mansion that offers safe haven to children with special powers. A kindly guardian who protects these children, not only from the outside world but from hostile adults with nefarious intentions and their own blend of special powers. A young man who seeks out this collection of beautiful freaks in the hopes of learning more about his own past. Sound familiar? "Tim Burton's X Men" aka Miss Peregrine's Home for Peculiar Children puts the ole Burtonesque spin on a different superhero formula (the first being Batman, of course), and if it sounds like I'm bein [Continued ...]

OUR VALUED CUSTOMERS: Fall is here! (From the OVC Archive!)


Daniel Lemire's blog: Sorting already sorted arrays is much faster?

If you are reading a random textbook on computer science, it is probably going to tell you all about how good sorting algorithms take linearithmic time. To arrive at this result, they count the number of operations. That’s a good model to teach computer science, but working programmers need more sophisticated models of software performance.

On modern superscalar processors, we expect in-memory sorting to limited by how far ahead the processor can predict where the data will go. Though moving the data in memory is not free, it is a small cost if it can be done predictably.

We know that sorting “already sorted data” can be done in an easy-to-predict manner (just do nothing). So it should be fast. But how much faster is it that sorting randomly shuffled data?

I decided to run an experiment.

I use arrays containing one million distinct 32-bit integers, and I report the time in CPU cycles per value on a Haswell processor. I wrote my code in C++.

function sorted data shuffled data sorted in reverse
std::sort 38 200 30

For comparison, it takes roughly n log(n) comparisons to sort an array of size n in the worst case with a good algorithm. In my experiment, log(n) is about 20.

The numbers bear out our analysis. Sorting an already-sorted array takes a fraction of the time needed to sort a shuffled array. One could object that the reason sorting already-sorted arrays is fast is because we do not have to move the data so much. So I also included initial arrays that were sorted in reverse. Interestingly, std::sort is even faster with reversed arrays! This is clear evidence for our thesis.

(The C++ source code is available. My software includes timsort results if you are interested.)

Saturday Morning Breakfast Cereal: Saturday Morning Breakfast Cereal - A New Debate Format



Hovertext:
Networks: I am prepared to direct this pilot at a moment's notice.

New comic!
Today's News:

BOOK REVIEWS!

 

I had to stop the experiment for a bit because I wasn't getting much reading done while finishing up a project. But, I'm back on track, and I'm going to try to run weekly book reviews from here on out.

 

For transparency: If you click the links below, for the next 24 hours, if you buy something on amazon, SMBC gets a small payment. So, basically, if one of the books below looks tempting, we'd appreciate if you clicked the link before buying.

 

This is a new thing we're doing, so if you have any thoughts on how it can be improved, please let us know.

 

 

Aug 17 - Shocked (Casarett)

 

A quick bit of history and science on the topic of bringing humans back from the brink of death. It’s a quick read, with a lot of dorky humor injected. It’s not bad, and there are a lot of neat stories and weird science, but it kind of felt like it was Not Quite Mary Roach. Still, fun if you’re interested in the topic.

 

Verdict: 3/5

 

Aug 20 - Red Notice (Browder)

 

An INSANE memoir about Browder’s life in high finance, going on adventures making crazy deals as the Soviet Union collapses and breaks apart. Making deals required him to go to strange places and repeatedly risk being assassinated. He sounds like he’s totally nuts, but it’s a hell of a story.

 

Verdict: 4/5

 

Aug 25 - The Conundrum (Owen)

 

An interesting book. It starts with the economic observation that efficiency (which theoretically is good for the environment) often leads to increased consumption (which is probably bad for the environment). Owen suggests that if efficiency tends to lead us to consume more, the only way to save the environment is to reduce our lifestyles.

 

I don’t buy everything he’s saying, but I think it’s a very interesting argument that’s worth confronting.

 

Verdict: 3.5/5

 

Aug 27 - Woe to Live On (Woodrell)

 

A great novel about a group of Confederate soldiers, written with a lot of realism and depth. An interesting feature of this book is that it’s stylistically very 19th century, but it yet contains the violence and sex that tend to be elided in actual books from that period.

 

Verdict: 5/5

 

Sept 1 - How Everything Became War and the Military Became Everything (Brooks)

 

This was a pretty excellent book. It’s a sort of combination of a memoir of Rosa Brooks’ time in the Pentagon, along with the history and psychology of how (according to her) our relationship to war has changed for the worse in recent times.

 

Verdict: 3.5/5

 

Sept 3 - White Trash (Isenberg)

 

A good historiography of poor whites in the history of the United States, and how they tend to be viewed by cultural elites. I felt like it got a bit less compelling as we got to modern times, but maybe that’s just because I’m more familiar with life now than life 300 years ago.

 

Verdict: 3/5

 

Sept 5 - Eye in the Sky (Dick)

 

Like a lot of these early Philip K Dick novels, I feel like it’s a cool idea and a well-developed world, but the execution is really hokey.

 

The plot is about a bunch of people who get zapped by a high energy beam, who then somehow start serially inhabiting each other’s consciousnesses. Each such universe contains the strange biases of its consciousness. It’s fun, but it’s really just 1950s pulp stuff, despite the clever premise.

 

Verdict: 2/5

 

Sept 6 - Messy (Harford)

 

A fun little book on how interesting ideas often come from what Harford refers to as “messy” situations, in the broad sense of (supposedly) non-ideal creative environments. It contains a lot of fun stories ranging from musicians to scientists.

 

Verdict: This book is written by an author I have met personally, and I’ve decided my policy on such reviews is that I won’t list a number verdict.

 

Sept 7 - The Man Who Japed (Dick)

 

A dystopia story about a sort of puritanical world, only the puritanical culture stems from something like suburban American cultural norms circa 1950. It’s all right. Dick has so many stories about controlling prudish middle-aged women that I’m starting to wonder if the character isn’t based on someone real.

 

Verdict: 2.5

 

Sept 9 - The Broken Bubble (Dick)

 

Now this is something interesting! It’s Philip K Dick, but not science fiction, and it wasn’t published until after his death. Early on in his career, Dick wrote literary fiction, and I would say this is the best one I’ve read so far. It’s not perfect, but it’s pretty good. It’s a story about two couples - one very young and accidentally pregnant, and one divorced because they were unable to conceive. The dynamics are really interesting, but it lacks the subtlety and depth that Dick would later develop. I found myself wishing he had come back to this novel later in life.

 

Verdict: 3/5

 

Sept 14 - The End of the Cold War (Service)

 

A very enjoyable and in depth history of the last six years of the USSR. The only part that was slightly odd was that now and then he seemed to really fanboy over Ronald Reagan. I certainly don’t mind reading history books from people with political views (because the alternative doesn’t exist), but it felt out of place in such a long meticulous work of history. Still, quite good!

 

3.5/5

Bad Science: The Cancer Drugs Fund is producing dangerous, bad data: randomise everyone, everywhere!

CreativeApplications.Net: Ugly Dynamics – About controlling simulations / Ugly Film

534891171Ugly Dynamics is a personal exploration/documentation by Nikita Diakur exploring the effects and control of simulated dynamics in computer software, specifically in the work produced by his studio Ugly Films.

Tea Masters: Thoughts on China and tea

Shanghai skyline by night
There are many things that can I could criticize about China, and my first criticism would be that it's not possible to write and publish a blog post like this one as long as you are behind the "big firewall"! But let me start with some positive words about what I saw. The development of the cities (Shanghai, Suzhou) I visited is more than impressive. In the matter of a generation, 30 years, the country has gone from third world to first world. The ride across Shanghai took an hour and there were only recent, big buildings along the way! It's one thing to read about the economic rise of China, it's another to actually see how modern and affluent the country and many of its people have become.
Old town of Luzhi, near Suzhou
A lot has been destroyed and rebuilt anew. However, I was pleasantly surprised that some ancient parts of town have been well preserved and restored. This was the case in the old streets of Luzhi and in the Humble Administrator Garden of Suzhou. Beautiful places!
Old street/canal in Luzhi
I haven't spent a lot of time in China (3 short stays in 3 different provinces in the last 3 years), so I give you these impressions without pretending to be an expert on China's rapid development.
Humble Admninistrator Garden
That's why I would like to also give you the perspective of my Taiwanese brother in law who has spent the last 15 years as an engineer in the booming construction industry. His major criticism is the lack of quality in all this development. Fake products abound: cheap USB sticks that only work for a couple of days (!), fake luggage, sold in an official shop (!), that rips after 2 months (it's when he wanted to use the warranty that Samsonite realized that the bag he bought in their shop was a fake), recent buildings that collapse a few weeks after inspectors declared them safe... Appearances are everything. Quality is always low compared to our standards. The house we stayed in is 15 years old only, but requires a lot of maintenance every year, because it's original quality is so poor. That's one reason why buyers systematically prefer to build a new house rather than renovating the old.
Humble Admninistrator Garden
This low quality in all their products makes sense for a country where the majority of people still have low incomes. The problem is that this low quality has become a way of doing business there. Even high prices don't mean better quality, only better packaging. It must look expensive is more important than quality and value.

2003 wild Yiwu puerh
All my Taiwanese tea friends strongly dislike going to China, but often their jobs don't give a choice. The teas they are bringing back and share are getting more and more expensive and their packaging is now much nicer that what we're used to in Taiwan. However, the teas are usually very disappointing.

In our most recent class, Teaparker let us taste a young raw puerh he received from a rich Chinese connection from a luxurious tea room filled with (real) antiques and overseeing a beautiful lake. The cake looked nice with lots of rather big tips and a strong flowery scent. Did I mention it's supposedly made from leaves from a single tree?
When we brewed this puerh, nobody in the class liked it. The taste wasn't smooth or pure at all. I felt a shrinking of my throat, the natural reaction of the body when it rejects something. The smell was still very strong and reminded me of scented jasmine tea. After everybody expressed his tasting opinion, Teaparker confirmed that this puerh was indeed a highly priced and deceptive puerh: the buds were not old arbor and the leaves had been artificially scented! It's a good example of how price and quality don't necessarily increase in parallel in China. 
Back at home, I'm brewing one of my favorite puerh: the wild raw spring 2003 Yiwu cake. Its taste is sweet, smooth and pure. The dry scents are faint, but they become alive in the brew. The aftertaste is very long and harmonious. It's naturally simple and delicious. It's getting more expensive with time, but here we have a rise that is justified by its improvement in taste. That's a solid foundation for real growth. Tea teaches you to disregard packaging, stories and price. What counts is the intrinsic quality of the taste and scents.
Always be cautious in China and when drinking tea!

New Humanist Blog: Book review: Anger and Forgiveness

As the century rages on, we clearly need reminding that anger is no good.

explodingdog: topherchris: Everybody okay?

topherchris:

Everybody okay?

Disquiet: The Drone as Amber

Bryan Hilyard’s “Asleep in Amber” is a gentle drone. To say it’s a drone is to say it subsists on waveforms. To say it subsists on waveforms is to say that it pulses. The pace at which it pulses provides an internal contrast to the sounds themselves, which are gentle, hazy, soft, true to the slumber made explicit by the track’s title. The pace of the pulse, in contrast, is fairly quick, the main waveform moving more like water pushing at a pier as the tides shift than like a ripple on an otherwise still pond. It’s insistent for much of the track’s first third, at which point it dives. The pulse remains, but it’s deep, shadowed by the dense shimmer that Hilyard takes artful pains to accumulate. There seem to be voices in the mix, though they’re never remotely intelligible. They’re trapped even deeper down than is the pulse — like the title says, “Asleep in Amber.”

Track originally posted at soundcloud.com/hilyard. More from Hilyard, who is based in Mariaville, Maine, at hilyard.bandcamp.com and twitter.com/hilyardmusic. (Track found via a repost by soundcloud.com/themonkbythesea, aka Ivan Ujevic of Zagreb.)

Explosm.net: Comic for 2016.09.28

New Cyanide and Happiness Comic

Ideas from CBC Radio (Highlights): Darkwave - Underwater languages at the brink of extinction

Whales are threatened by us. Their language eroding through noise and climate change. Carrie Haber explores how marine scientists around the world are thinking about our evolutionary courtship with these magnificent mammals in the sea.

CreativeApplications.Net: F3 [Form From Function] – Playful and powerful 3D design using signed distance functions

f3_coverCreated by Reza Ali, F3, [Form From Function], is a playful and powerful 3D design app that enables you to live code 3D form, rapidly iterate on its design, and export for 3D printing, rendering and animation. F3 uses signed distance functions (SDFs) to build forms – designing 3D forms using 2D image cross sections.

OCaml Planet: The fixpoint combinator

Consider the following recursive definition of the factorial function. \[ FAC = \lambda n.\;IF \left(=\;n\;0\right)\;1\;\left(*\;n\;\left(FAC\;\left(-\;n\;1\right)\right)\right) \nonumber \] The definition relies on the ability to name a $\lambda$-abstraction and then to refer to this name inside the $\lambda$-abstraction itself. No such facility is provided by the $\lambda$-calculus. $\beta$-abstraction is applying $\beta$-reduction backwards to introduce new $\lambda$-abstractions, thus $+\;4\;1\leftarrow \left(\lambda x.\;+\;x\;1\right)\; 4$. By $\beta$-abstraction on $FAC$, its definition can be written \[ FAC = \left(\lambda fac.\;\left(\lambda n.\;IF\left(=\;n\;0\right)\;1\;\left(*\;n\;\left(fac\;\left(-\;n\;1\right)\right)\right)\right)\right) FAC \nonumber \] This definition has taken the form $FAC = g\;FAC$ where $g = \left(\lambda fac.\;\left(\lambda n.\;IF\left(=\;n\;0\right)\;1\;\left(*\;n\;\left(fac\;\left(-\;n\;1\right)\right)\right)\right)\right)$ is without recursion. We see also that $FAC$ is a fixed point ("fixpoint") of $g$. It is clear this fixed point can only depend on $g$ so supposing there were a function $Y$ which takes a function and delivers a fixpoint of the function as the result, we'd have $FAC = Y\;g = g\;(Y\;g)$. Under the assumption such a function exists, in order to build confidence this definition of $FAC$ works, we will try to compute $FAC\;1$. Recall \[ \begin{eqnarray} &FAC& = Y\;g \nonumber \\ &g& = \lambda fac.\;\left(\lambda n.\;IF\left(=\;n\;0\right)\;1\;\left(*\;n\;\left(fac\;\left(-\;n\;1\right)\right)\right)\right) \nonumber \end{eqnarray} \] So, \[ \begin{eqnarray} FAC\;1 &\rightarrow& (Y\;g)\; 1 \nonumber \\ &\rightarrow& (g\;(Y\;g))\;1 \nonumber \\ &\rightarrow& (\left(\lambda fac.\;\left(\lambda n.\;IF\left(=\;n\;0\right)\;1\;\left(*\;n\;\left(fac\;\left(-\;n\;1\right)\right)\right)\right)\right) (Y\;g))\; 1 \nonumber \\ &\rightarrow& \left(\lambda n.\;IF\left(=\;n\;0\right)\;1\;\left(*\;n\;\left(\left(Y\;g\right)\;\left(-\;n\;1\right)\right)\right)\right)\; 1 \nonumber \\ &\rightarrow& *\;1\;\left(\left(Y\;g\right)\;0\right) \nonumber \\ &\rightarrow& *\;1\;\left(\left(g\;\left(Y\;g\right)\right)\;0\right) \nonumber \\ &\rightarrow& *\;1\;\left(\left(\left(\lambda fac.\;\left(\lambda n.\;IF\left(=\;n\;0\right)\;1\;\left(*\;n\;\left(fac\;\left(-\;n\;1\right)\right)\right)\right)\right)\;\left(Y\;g\right)\right)\;0\right) \nonumber \\ &\rightarrow& *\;1\;\left(\left(\lambda n.\;IF\left(=\;n\;0\right)\;1\;\left(*\;n\;\left(\left(Y\;g\right)\;\left(-\;n\;1\right)\right)\right)\right)\;0\right) \nonumber \\ &\rightarrow& *\;1\;1 \nonumber \\ &=& 1 \nonumber \end{eqnarray} \]

The $Y$ combinator of the $\lambda$-calculus is defined as the $\lambda$-term $Y = \lambda f.\;\left(\lambda x.\;f\;\left(x\;x\right)\right)\left(\lambda x.\;f\;\left(x\;x\right)\right)$. $\beta$ reduction of this term applied to an arbitrary function $g$ proceeds like this: \[ \begin{eqnarray} Y\;g &\rightarrow& \left(\lambda f.\;\left(\lambda x.\;f\;\left(x\;x\right)\right) \left(\lambda x.\;f\;\left(x\;x\right)\right)\right)\;g \nonumber \\ &\rightarrow& \left(\lambda x.\;g\;\left(x\;x\right)\right) \left(\lambda x.\;g\;\left(x\;x\right)\right) \nonumber \\ &\rightarrow& g\;\left(\left(\lambda x.\;g\;\left(x\;x\right)\right)\;\left(\lambda x.\;g\;\left(x\;x\right)\right)\right) \nonumber \\ &=& g\;\left(Y\;g\right) \end{eqnarray} \] The application of this term has produced a fixpoint of $g$. That is, we are satisfied that this term will serve as a definition for $Y$ having the property we need and call it the "fixpoint combinator".

In the untyped $\lambda$-calculus, $Y$ can be defined and that is sufficient for expressing all the functions that can be computed without having to add a special construction to get recursive functions. In typed $\lambda$-calculus, $Y$ cannot be defined as the term $\lambda x.\;f\;(x\;x)$ does not have a finite type. Thus, when implementing recursion in a functional programming language it is usual to implement $Y$ as a built-in function with the reduction rule $Y\;g \rightarrow g\;(Y\;g)$ or, in a strict language, $(Y\; g)\;x \rightarrow (g\;(Y\;g))\;x$ to avoid infinite recursion.

For an OCaml like language, the idea then is to introduce a built-in constant $\mathbf{Y}$ and to denote the function defined by $\mathbf{let\;rec}\;f\;x = e$ as $\mathbf{Y}(\mathbf{fun}\;f\;x \rightarrow e)$. Intuitivly, $\mathbf{Y}$ is a fixpoint operator that associates a functional $F$ of type $\left(\alpha \rightarrow \beta\right) \rightarrow \alpha \rightarrow \beta$ with a fixpoint of type $\alpha \rightarrow \beta$, that is, a value having the property $\mathbf{Y}\;F = F\;\left(\mathbf{Y}\;F\right)$. The relevant deduction rules involving this constant are: \[ \begin{equation} \frac{\vdash f\;(Y\;f)\;x \Rightarrow v} {\vdash (Y\;f)\;x \Rightarrow v} \tag{App-rec} \end{equation} \] \[ \begin{equation} \frac{\vdash e_{2}\left[Y(\mathbf{fun}\;f\;x \rightarrow e_{1})/f\right] \Rightarrow v} {\vdash \mathbf{let\;rec}\;f\;x=e_{1}\;\mathbf{in}\;e_{2} \Rightarrow v} \nonumber \tag {Let-rec} \end{equation} \]


References:
[1] The Implementation of Functional Programming Languages,Simon Peyton Jones, 1987.
[2] The Functional Approach to Programming, Guy Cousineau, Michel Mauny, 1998.

Saturday Morning Breakfast Cereal: Saturday Morning Breakfast Cereal - Motivation



Hovertext:
Terribly sorry. The fourth wall is being reconstructed tonight and should be ready to go tomorrow morning.

New comic!
Today's News:

Tickets are on sale for BAHFest West! This is our third year doing this, and tickets have sold out the previous two times. To guarantee a spot, please buy soon!

 

things magazine: Steam library

Everything is Broken / fix it yourself with the Piper Raspberry Pi Computer Kit / Line Wobbler, a ‘one-dimensional dungeon crawler game with a unique wobble controller made out of a door-stopper spring and a several meter long ultrabright LED … Continue reading

OCaml Weekly News: OCaml Weekly News, 27 Sep 2016

  1. bindings for xz compression and decompression ?
  2. BuckleScript on Windows
  3. Encoding "links" with the type system
  4. otags reloaded 4.03.1 for OCaml 4.03
  5. opkg v0.0.1 - Documentation access improvements
  6. Other OCaml News

Explosm.net: Comic for 2016.09.27

New Cyanide and Happiness Comic

Ideas from CBC Radio (Highlights): Designing Life: The Brave New World of Gene Editing

CRISPR is a revolutionary new development in gene editing. It has the potential to eliminate genetically transmitted diseases. But it could also be used to wage biological warfare or for eugenics. A panel discussion hosted by McGill University.

The Geomblog: Axiomatic perspective on fairness, and the power of discussion

Sorelle Friedler, Carlos Scheidegger and I just posted a new paper on the arxiv where we try to lay out a framework for talking about fairness in a more precise way. 

The blog post I link to says more about the paper itself. But I wanted to comment here on the tortuous process that led to this paper. In some form or another, we've been thinking about this problem for two years: how do we "mathematize" discussions of fairness and bias? 

It's been a long and difficult slog, more than any other topic in "CS meets X" that I've ever bumped into. The problem here is that the words are extremely slippery, and refract completely different meanings in different contexts. So coming up with notions that aren't overly complicated, and yet appear to capture the different ways in which people think about fairness was excruciatingly difficult. 

We had a basic framework in mind a while ago, but then we started "testing" it in the wild, on papers, and on people. The more conversations we had, the more we refined and adapted our ideas, to the point where the paper we have today owes deep debts to many people that we spoke with and who provided nontrivial conceptual challenges that we had to address. 

I still have no idea whether what we've written is any good. Time will tell. But it feels good to finally put out something, however half-baked. Because now hopefully the community can engage with it. 

new shelton wet/dry: Every day, the same, again

Canadian Mint employee accused of smuggling $180K of gold in his rectum Sperm delivery by mail? There’s an app for that Riding Roller Coasters Can Help Dislodge Kidney Stones MIT Researchers developed a device that uses radio waves to detect whether someone is happy, sad, angry or excited. Why do more men than women commit suicide? The [...]

churchturing.org / 2016-10-01T11:55:52