Bifurcated Rivets: From FB


Bifurcated Rivets: From FB


Bifurcated Rivets: From FB


Bifurcated Rivets: From FB


Bifurcated Rivets: From FB


Slashdot: Facebook Now 'Vulnerable' To Government Regulators, Analysts Warn

Citing new warnings from several analysts, Fortune reports that Facebook's business model now faces threats from "a growing array of bi-partisan criticism and fresh regulatory issues." Analysts are now flagging an opinion piece in The New York Times, by Rhode Island Rep. David Cicilline, a Democrat who's chairman of the House Subcommittee on Antitrust, Commercial and Administrative Law. Cicilline wrote about the company's "pattern of misconduct" and called for "an investigation into whether Facebook's conduct has violated antitrust laws." "Investors should pay attention to the fact that there are people sitting in some very relevant seats that are attacking Facebook in ways that we have not seen in our almost two decade history of covering internet companies," Stifel's Scott Devitt wrote in a note. Recent issues may be transient, Devitt said, and Facebook shares may prove cheap relative to the company's earnings power, but "something feels very different to us this time." He flagged Cicilline's item as "further evidence that this may be more than a passing fad." He rates Facebook shares hold. Beacon Policy Advisors said in a note that "the potential action that regulators at the FTC could take against Facebook is far more significant" than rhetoric from Congress about reining the company in, whether via forced separation of Instagram or WhatsApp or by taxing companies that collect user data. A "substantial financial penalty," along with other remedies, may be part of a settlement with the FTC in the coming weeks regarding user data provided to Cambridge Analytica, they said.

Read more of this story at Slashdot.

MetaFilter: Good Cocktails Sans Alcohol

NPR's Kristen Hartke explores the world of zero-proof spirits - companies like Seedlip, Stryyk, and Ceder's that make non-alcoholic but still flavourful spirits.

Slashdot: 'Your AirPods Will Die Soon' -- The Shrinking Charge Capacities of Lithium-Ion Batteries

Some of the same podcasters who first extolled AirPods are now complaining about them, reports the Atlantic: The battery can no longer hold a charge, they say, rendering them functionally useless. Apple bloggers agree: "AirPods are starting to show their age for early adopters," Zac Hall, an editor at 9to5Mac, wrote in a post in January, detailing how he frequently hears a low-battery warning in his AirPods now. Earlier this month, Apple Insider tested a pair of AirPods purchased in 2016 against a pair from 2018, and found that the older pair died after two hours and 16 minutes. "That's less than half the stated battery life for a new pair," the writer William Gallagher concluded. Desmond Hughes, who is 35 and lives in Newport News, Virginia, has noticed a similar thing about his own set: At first, their charge lasted five hours, but now they sometimes last only half an hour. He frequently listens to one while charging the other -- not optimal conditions for expensive headphones. He's now gearing up to plunk down more money on another pair.... The lithium-ion batteries that power AirPods are everywhere. One industry report forecast that sales would grow to $109.72 billion by 2026, from $36.2 billion in 2018. They charge faster, last longer, and pack more power into a small space than other types of batteries do. But they die faster, too, often after just a few years, because every time you charge them, they degrade a little. They can also catch fire or explode if they become damaged, so technology companies make them difficult, if not impossible, for consumers to replace themselves. The result: A lot of barely chargeable AirPods and wireless mice and Bluetooth speakers are ending up in the trash as consumers go through products -- even expensive ones -- faster than ever.... Of the 3.4 million tons of electronic waste generated in America in 2012 -- an 80 percent increase from 2000 -- just 29 percent was recycled. The article notes that Wednesday Apple announced a new generation of AirPods -- but "did not say whether the devices would have longer lives." They also report that Apple "does allow consumers to pay for what it calls a 'battery replacement' for AirPods, but each 'replaced' AirPod is $49."

Read more of this story at Slashdot.

Slashdot: How The FBI Easily Retrieved Michael Cohen's Data From Both Apple and Google

Court documents unsealed Tuesday showed just how much information America's FBI was able to gather on Donald Trump's lawyer Michael Cohen -- from both Google and Apple products. An anonymous reader quotes CNN: Notably, the FBI made use of Cohen's use of Touch ID and Face ID on his Apple devices, which allow users to quickly log into iPhones and computers by scanning their face or fingerprint rather than typing in a password... But that gives law enforcement an additional means to access those devices. In one warrant application for Cohen, an FBI agent requested authorization "to press the fingers (including thumbs) of Cohen to the Touch ID sensors of the Subject Devices, or hold the Subject Devices in front of Cohen's face, for the purpose of attempting to unlock the Subject Devices via Touch ID or Face ID...." One warrant requested not simply access to three of Cohen's Gmail accounts, as well as other email accounts, but also some of the wide array of information Google keeps for its users by default, including search history, web cookies associated with an account, device information, and a host of other metadata categories. One affidavit describes how the FBI narrowed down Cohen's temporary location at the Loews Regency Hotel in New York through his cell phone location data. Agents then used a "triggerfish" -- a reference to a stingray, or IMSI catcher, a suitcase-sized device that mimics a cell tower to convince a cell phone to connect and reveal its location... Prosecutors also made use of a new law that Trump recently signed. Investigators in the Southern District of New York compelled Google to turn over some documents on Cohen, but the tech giant initially "declined to produce data that it stored on computer servers located outside of the United States," according to an affidavit submitted to the court by an FBI agent working on Cohen's case. Weeks later, Trump signed the CLOUD Act into law, which gave US law enforcement more legal pathways to pursue data stories overseas.... In an April 2018 affidavit, the FBI agent argued that "providers are required to disclose data even if it is stored abroad" under the new law. The judge approved the new search warrant later that day, giving investigators access to additional information from Google, including Cohen's emails, attachments, address book and files stored on Google Drive. One technology law expert told CNN that police now seek access to more and more information. "I think any of the electronic debris that people leave online on these services is all potentially subject to being used against you."

Read more of this story at Slashdot.

MetaFilter: What did Henry Hill get up to after Goodfellas?

Read it about it here. It's wild.

Recent additions: primitive-containers 0.3.2

Added by andrewthad, Sun Mar 24 03:13:46 UTC 2019.

containers backed by arrays

Recent additions: disjoint-containers 0.2.4

Added by andrewthad, Sun Mar 24 03:09:55 UTC 2019.

Disjoint containers

Recent additions: tasty-dejafu

Added by barrucadu, Sun Mar 24 03:09:37 UTC 2019.

Deja Fu support for the Tasty test framework.

Recent additions: hunit-dejafu

Added by barrucadu, Sun Mar 24 03:09:19 UTC 2019.

Deja Fu support for the HUnit test framework.

Recent additions: dejafu

Added by barrucadu, Sun Mar 24 03:09:16 UTC 2019.

A library for unit-testing concurrent programs.

Slashdot: Pwn2Own Competitors Crack Tesla, Firefox, Safari, Microsoft Edge, and Windows 10

A research duo who hacked a Tesla were the big winners at the annual Pwn2Own white hat security contest, reports ZDNet. "The duo earned $375,000 in prize money, of the total of $545,000 awarded during the whole three-day competition... They also get to keep the car." Team Fluoroacetate -- made up of Amat Cama and Richard Zhu -- hacked the Tesla car via its browser. They used a JIT bug in the browser renderer process to execute code on the car's firmware and show a message on its entertainment system... Besides keeping the car, they also received a $35,000 reward. "In the coming days we will release a software update that addresses this research," a Tesla spokesperson told ZDNet today in regards to the Pwn2Own vulnerability. Not coincidentally, Team Fluoroacetate also won the three-day contest after earning 36 "Master of Pwn" points for successful exploits in Apple Safari, Firefox, Microsoft Edge, VMware Workstation, and Windows 10... [R]esearchers also exploited vulnerabilities in Apple Safari, Microsoft Edge, VMware Workstation, Oracle Virtualbox, and Windows 10.

Read more of this story at Slashdot.

MetaFilter: A Bite-Size Square of Canada's History, Culture and Craving

"The square looks something like a geological cross section. Its base is sedimentary: coconut and chopped walnuts bound together by a buttery silt of cocoa and crushed graham crackers. A middle layer of yellow buttercream teeters on the brink of liquefaction. And its top crust of chocolate, hard and brittle, thaws like the Arctic tundra the longer it lingers at room temperature." British Columbia's Nanaimo bar turns up at womb-to-tomb events across Canada. [SLNYT]

Planet Haskell: Donnacha Oisín Kidney: Permutations By Sorting

Posted on March 24, 2019
Tags: Haskell, Agda

A naive—and wrong—way to shuffle a list is to assign each element in the list a random number, and then sort it. It might not be immediately obvious why: Kiselyov (2002) has a good explanation as to the problem. One way to think about it is like this: choosing <semantics>n<annotation encoding="application/x-tex">n</annotation></semantics> random numbers each in the range <semantics>[0,n)<annotation encoding="application/x-tex">[0,n)</annotation></semantics> has <semantics>nn<annotation encoding="application/x-tex">n^n</annotation></semantics> possible outcomes, whereas there are <semantics>n!<annotation encoding="application/x-tex">n!</annotation></semantics> permutations. Since these don’t necessarily divide evenly into each other, you’re going to have some bias.

Factorial Numbers

The first part of the fix is to figure out a way to get some random data that has only <semantics>n!<annotation encoding="application/x-tex">n!</annotation></semantics> possible values. The trick here will be to mimic the structure of a factorial itself: taking <semantics>n=5<annotation encoding="application/x-tex">n = 5</annotation></semantics>, the previous technique would have yielded:

<semantics>5×5×5×5×5=55<annotation encoding="application/x-tex">5 \times 5 \times 5 \times 5 \times 5 = 5^5</annotation></semantics>

possible values. But we want:

<semantics>5×4×3×2×1=5!<annotation encoding="application/x-tex">5 \times 4 \times 3 \times 2 \times 1 = 5!</annotation></semantics>

The solution is simple, then! Simply decrement the range by one for each position in the output list. In Haskell:

As an aside, what we’ve done here is constructed a list of digits in the factorial number system.


Unfortunately, while we’ve figured out a way to get properly distributed random data, we can’t yet sort it to shuffle our list. If we look at the 6 factorial numbers generated for <semantics>n=5<annotation encoding="application/x-tex">n = 5</annotation></semantics>, we can see the problem:


Different values in the list will produce the same sort: 100 and 200, for instance.

Lehmer Codes

We need a way to map the numbers above to a particular permutations: that’s precisely the problem solved by Lehmer codes. For the numbers 110, we can think of each digit as the relative position to put that item from the string into. Some Haskell code might make it clear:

And we can step through its execution:

Dualities of Sorts

Notice the similarity of the function above to a standard insertion sort:

The “comparison� is a little strange—we have to take into account relative position—but the shape is almost identical. Once I spot something like that, my first thought is to see if the relationship extends to a better <semantics>�(nlogn)<annotation encoding="application/x-tex">\mathcal{O}(n \log n)</annotation></semantics> sort, but there’s something else I’d like to look at first.

“A Duality of Sorts� (Hinze, Magalhães, and Wu 2013) is a paper based on the interesting symmetry between insertion sort and selection sort (There’s also a video of Graham Hutton explaining the idea; Haran 2016).

With that paper in mind, can we rewrite shuffle as a selection-based algorithm? We can indeed!

While the symmetry is pleasing, the paper details how to make the relationship explicit, using the same function for both selection and insertion sort:

Improved Efficiency

So now we have to upgrade our sorts: in the paper, merge sort is the more efficient sort chosen, similarly to what I chose previously.

However, I feel like merge sort is an upgrade of insertion sort, not selection sort. Indeed, if you do the “split� step of merge sort badly, i.e. by splitting very unevenly, merge sort in fact becomes insertion sort!

So there’s a missing bit of this table:

Insertion Selection
<semantics>�(n2)<annotation encoding="application/x-tex">\mathcal{O}(n^2)</annotation></semantics> Insertion sort Selection sort
<semantics>�(nlogn)<annotation encoding="application/x-tex">\mathcal{O}(n \log n)</annotation></semantics> Merge sort ???

I think it’s clear that quicksort is the algorithm that fits in there: again, done badly it degrades to selection sort (if you intentionally pick the pivot to be the worst element possible, i.e. the smallest element).

There are more symmetries: merge sort splits the lists using their structure, and merges them using the ordering of the elements. Quicksort is the opposite, merging by concatenation, but splitting using order. Finally, in merge sort adjacent elements are in the correct order after the recursive call, but the two sides of the split are not. Again, quicksort is precisely the opposite: adjacent elements have not been compared (before the recursive call), but the two sides of the split are correctly ordered.

Anyway, I haven’t yet formalised this duality (and I don’t know if I can), but we can use it to produce a quicksort-based shuffle algorithm:

That’s all for this post! The algorithms can all be translated into Agda or Idris: I’m currently working on a way to represent permutations that isn’t <semantics>�(n2)<annotation encoding="application/x-tex">\mathcal{O}(n^2)</annotation></semantics> using them. If I figure out a way to properly dualise quicksort and merge sort I’ll do a small write up as well (I’m currently working my way through Hinze et al. 2012 for ideas). Finally, I’d like to explore some other sorting algorithms as permutation algorithms: sorting networks seem especially related to “permutations by swapping�.


Haran, Brady. 2016. “Sorting Secret.�

Hinze, Ralf, Daniel W.H. James, Thomas Harper, Nicolas Wu, and José Pedro Magalhães. 2012. “Sorting with bialgebras and distributive laws.� In Proceedings of the 8th ACM SIGPLAN workshop on Generic programming - WGP ’12, 69. Copenhagen, Denmark: ACM Press. doi:10.1145/2364394.2364405.

Hinze, Ralf, José Pedro Magalhães, and Nicolas Wu. 2013. “A Duality of Sorts.� In The Beauty of Functional Code: Essays Dedicated to Rinus Plasmeijer on the Occasion of His 61st Birthday, ed by. Peter Achten and Pieter Koopman, 151–167. Lecture Notes in Computer Science. Berlin, Heidelberg: Springer Berlin Heidelberg. doi:10.1007/978-3-642-40355-2_11.

Kiselyov, Oleg. 2002. “Provably perfect random shuffling and its pure functional implementations.�

Slashdot: Cringely Pans Self-Driving Car Hype, Says They're Years Away

In what may be his final year of technology predictions, columnist Robert X. Cringely argues "I can't say that we're going to see anything beyond more beta tests of self-driving cars in 2019... We simply aren't ready and probably won't be for years to come...." "The problem isn't with the self-driving cars, it's with the cars that aren't self-driving, cars that are driven by idiots like me." It will eventually happen. Once half the fleet has been replaced with cars that could be self-drivers if we allowed them to be, then there will be a huge financial incentive to get the other half off the street. This will be especially the case if climate change is still accelerating. I'm guessing that most cars from 2020-on could be self-driving with only a software upgrade, which is why Elon Musk is predicting Tesla will have full autonomy by the end of 2019. But notice that Elon isn't predicting Tesla will be allowed to have its cars drive themselves everywhere... So why is the world talking so much about self-driving cars and full autonomy? Some of it is Tesla hype, some of it is marketing as the car companies try to get us to buy cars that will eventually be self-driving, but probably not until their second owners. And the other reason why we're talking so much about self-driving cars is because Uber is planning to go public later this IPO that will go smoother if the driving public thinks autonomous cars are something that we'll be seeing soon. Uber has a labor problem. If it can spin a story that surly and expensive human drivers are soon to be replaced with electrons, that will be very reassuring to Wall Street. But as I explained, it also isn't true. The world isn't yet ready -- something Uber and Tesla and all the others will suddenly admit in about a year (post-IPO). Cringely also argues that the problem isn't just the "millions of drivers who are still controlling their vehicles the old fashion way, which is often in a barely competent fashion..." "We keep our cars longer because they don't rust and we can't afford to replace them so often. The result is that while we could expect a complete turnover in car technology every decade, now it takes closer to two decades."

Read more of this story at Slashdot.

MetaFilter: Every night the jungle gets closer, every day the ruins surrender more

Sarasota Half in Dream is a feature-length Surrealist documentary about dead turtles, crab swarms, decaying resorts, and microscopic histories; explorations into the abandoned golf courses, factories, and resorts of Sarasota, Florida and interviews with local youths who are using them for new and strange purposes. What would the Surrealists and Situationists think of a suburban, subtropical tourist town? What goes on in a storage unit in the dead of night? What is the afterlife of a decommissioned train car? What ghosts haunt a ruined hotel? What is the life cycle of a city? When will waters wash it all away? Streaming online for free. [via mefi projects]

ScreenAnarchy: Boston Underground 2019: MOPE, What Violently Happens to a Dream Deferred

All jobs and professions require certain skills; most of these can be learned, allowing most people to learn as they go along, and become better the longer they work. But some jobs require a certain kind of talent, or perhaps a physical atttribute, that, without it, the job is impossible. Think of all the people who audition for shows like American Idol who are terrible singers: they have a dream of singing, and yet seem to have done nothing to develop the necessary skills, or at least had anyone tell them that they just don’t have what it takes (except Simon Cowell). What happens to that dream that you realize is never going to come true? What road will you take if you can’t do the...

[Read the whole post on]

MetaFilter: Being with Babish

Binging With Babish does something a little different this week


Colossal: Handcut Paper Models by Seba Naranjo Welcome Dinosaurs Back From Extinction

Images courtesy of Seba Naranjo

Inspired and informed by the work that paleontologists have done over the past few decades, Chile-based artist Seba Naranjo designs and builds 3D paper models of dinosaurs for a project called Khartosauria. Through careful planning, cutting, and folding, he forms fun and expressive sculptures that roam desks and table tops the way their organic counterparts did millions of years ago.

With a background in graphic design and children’s illustration, Naranjo tells Colossal that his fascination with dinosaurs and paper started when he was just a kid playing in the printing shop where his mother worked. After honing his skills significantly over the years, Naranjo now spends upwards of 20 hours a week cutting and constructing figures such as a red and beige Styracosaurus, multi-colored mini Dromaeosaur, and an elegant Apatosaurus.

Model kits complete with scientific biographies and instructions for building are available online. Follow Naranjo’s experimentation process and see more of his creations by following the dino-enthusiast on Instagram.

Daniel Lemire's blog: Science and Technology links (March 23rd 2019)

  1. Half of American households subscribe to “Amazon Prime”, a “club membership” for Amazon customers with monthly fees. And about half of these subscribes buy something from Amazon every week. If you are counting, this seems to imply that at least a quarter of all American households order something from Amazon every week.
  2. How do the preprints that researchers post online freely differ from genuine published articles that underwent peer review? Maybe less than you’d expect:

    our results show that quality of reporting in preprints in the life sciences is within a similar range as that of peer-reviewed articles

  3. Very low meat consumption might increase the long-term risk of dementia and Alzheimer’s.
  4. We appear to be no closer to find a cure for Alzheimer’s despite billions being spent each year in research and clinical trials. Lower writes:

    Something is wrong with the way we’re thinking about Alzheimer’s (…) It’s been wrong for a long time and that’s been clear for a long time. Do something else.

  5. Many researchers use “p values” (a statistical measure) to prove that their results are “significant”. Ioannidis argues that most research should not rely on p values.
  6. Eating nuts improves cognition (nuts make you smart).
  7. As we age, we become more prone to diabetes. According to an article in Nature, senescent cells in the immune system may lead to diabetes. Senescent cells that are cells that should be dead due to damage or too many divisions, but they refuse to die.
  8. Hospitalizations for heart attacks have declined by 38% in the last 20 years and mortality is at all time low. Though clinicians and health professionals take the credit, I am not convinced we understand the source of this progress.
  9. In stories, females identify more strongly with their own gender whereas males identify equally with either gender.
  10. Theranos was a large company that pretended to be able to do better blood tests. The company was backed by several granted patents. Yet we know that Theranos technology did not work. The problem we are facing now is that Theranos patents, granted on false pretenses and vague claims, remain valid and will hurt genuine inventors in the future. If we are to have patents at all, they should only be granted for inventions that work. Nazer argues that the patent system is broken.
  11. Smaller groups tend to create more innovative work, and larger groups less so.
  12. The bones of older people become fragile. A leading cause of this problem is the fact stem cells in our bones become less active. It appears that this is caused by excessive inflammation. We can create it in young mice by exposing them to the blood serum of old mice. We can also reverse it in old mice by using an anti-inflammatory drug (akin to aspirin).
  13. Gene therapy helped mice regain sight lost due to retinal degeneration. It could work in human beings too.
  14. Based on ecological models, scientists predicted over ten years ago that polar bear populations would soon collapse. That has not happened: there may be several times more polar bears than decades ago. It is true that ice coverage is lower than it has been historically due to climate change, but it is apparently incorrect to assume that polar bears need thick ice; they may in fact thrive when the ice is thin and the summers are long. Crowford, a zoologist and professor at the University of Victory tells the tale in her book The Polar Bear Catastrophe That Never Happened.

i like this art: Theo Triantafyllidis

Theo Triantafyllidis

Work from his Role Play (and others).

“In this new body of work, Theo Triantafyllidis re-imagines the gallery space as his own virtual studio. He embodies an Ork avatar, who uses digital tools to create 3D forms, which are then manifested physically as large-scale wood sculptures. This process is recorded through DIY
Motion Capture and displayed on two mobile screens in the gallery. By moving these screen structures throughout the space, the audience is able to view the sculptures while simultaneously experiencing the artist’s digital performance of creating them.

In creating the Ork character, Triantafyllidis pairs prevalent video game tropes with the performative persona of The Artist. Ork Aesthetics are inspired by medieval contraptions, engineering tools, brutalism and gaming culture. The artist’s performance considers the concept of virtual labor and production in today’s hybrid-reality work environments, as the Ork
experiences the frustrations and complications of artistic labor in his virtual studio. After digital creation, his works are rendered physically flat in a purposeful misuse of 3D modeling, coming to occupy an alternative mass and materiality in this augmented and mixed world. Like chasing Pokemon on their phones, viewers are invited to enter the process and performance that created these odd objects.” – Meredith Goldman Gallery

BOOOOOOOM! – CREATE * INSPIRE * COMMUNITY * ART * DESIGN * MUSIC * FILM * PHOTO * PROJECTS: Influential Voices: An Interview with Thinkspace’s Andrew Hosner

Penny Arcade: News Post: PAX East 2019 Pin Quest!

Gabe: PARTNER PINS Finji Logo & Overland Hatchet Pins [Finji] Available for purchase at the Finji booth #10608. World of Horror: Old God Pin [Ysbryd] Available for purchase at the Ysbryd booth #18108 or complete the demo of WORLD OF HORROR and receive this free pin from the game. N1RV Ann-A Sam Pin [Ysbryd] Available for purchase at the Ysbryd booth# 18108. Haha Reaction & Sad Reaction Pins [Facebook Gaming] Collect at least three tokens by participating across various activities at the Facebook Gaming booth #15055. Share Stories in the official Instagram photo booths with… Comic for 2019.03.23

New Cyanide and Happiness Comic

Penny Arcade: News Post: Stadii

Tycho: I’m not sure I want a new gaming platform right now, one that isn’t connected to anything I already own or any of the people that I know.  At this point in the perpetual ebb and flow of centralization and decentralization, this is just what’s happening: the real vigor is supposed to be elsewhere, and you’re supposed to borrow it forever.  I understand why it’s a good business model, but it’s so clearly a model in search of an audience that I’m content to just let their wet tentacle slap against the windowpane for a while. I have seen…

ScreenAnarchy: Review: Triple Threat - 3 Strikes and You're...

If you were at all interested in Triple Threat, it’s most likely going to be from the casting. Tony Jaa, Iko Uwasis, and Scott Adkins? Those are some good attention grabbing names. Throw in the always reliable Michael Jai White and the interesting forms of Tiger Chen and now I’m raising an eyebrow. But wait there’s more! Chocolate’s Jeeja Yanin is also along for the ride as well as Who Am I’s rooftop kicker Ron Smoorenburg. Don’t forget about some obligatory MMA fighters and now you have my attention. So what could possible go wrong? There’s no need to go into the plot of this movie because it’s just there to have the stars run into each other at random moments and fight/shoot their way...

[Read the whole post on]

Penny Arcade: Comic: Stadii

New Comic: Stadii

Colossal: Curved Lenses Multiply Everyday Views of Paris in a New Mobile Installation by Vincent Leroy

All photographs © Vincent Leroy

Slow Lens is the newest piece from French artist Vincent Leroy, who often explores optics and light in his large-scale installation work. The piece is suspended from above, and a network of curved, translucent lenses distorts the viewer’s perspective. Displayed en plein air, the connected lenses slowly rotate and ofter multiplied visions of the surrounding environment. Leroy installed and documented Slow Lens in various locations around Paris, including in highway lanes that were vacant due to pollution-induced city traffic restrictions.

The artist shares with Colossal that he seeks to spark a focus on detail, and inspire contemplation and dreaming, and notes that the work is particularly abstract when viewed at night. You can watch a brief video below that shows Slow Lens in motion. Vincent Leroy is represented by Denise Rene Gallery in Paris. The artist shares more of his work on Instagram. (via Colossal Submissions)

ScreenAnarchy: HOTEL MUMBAI Interview: Director Anthony Maras on a Plea for Peace

On November 26, 2008, a multi-pronged attack of unfathomable destruction and carnage seized the city of Mumbai, India over three days.  Amidst the chaos, unarmed common people of all faiths and races banded together to survive the terrorist onslaught.     Hotel Mumbai is one such story of how a courageous staff protected their guests and each other and inspired the world.  Director Anthony Maras discussed the responsibilities of telling this true tale, and its plea for peace.     The Lady Miz Diva:  You came from a background of short films.  What was it about the story of the Mumbai terror attacks that made you want to centre your first feature around them?   Anthony Maras:  It really came about after watching this documentary called...

[Read the whole post on]

ScreenAnarchy: Legion M develops all-out Steampunk new TV series 'Evermor'

LegionM, the fan-owned entertainment company is producing a one-hour fantasy sci-fi Steampunk live-action television series entitled, ‘Evermor,’ which is currently in the development stages. It’s created by LegionM members Perry Covington, Erik Figi, and Tya Kottler. ‘Hellboy’ producer Andrew Cosby is also on-board with the project as the ‘showrunner.’ The series is inspired by the real-life Dr. Evermor’s Sculpture Park in Madison, Wisconsin created by Kottler’s father known as Dr. Evermor. There will be several episodes in the first season. At this stage, it’s too premature to know the logistics or how long Cosby will remain on the project. The plot surrounds orphaned teenage twins, Ellie and Sam. Together, they discover a wondrous machine that allows them to journey through the multiverse and almost alien...

[Read the whole post on]

ScreenAnarchy: What The Fest?! 2019 Review: DEPRAVED Fittingly Pays Tribute to Frankenstein

Larry Fessenden's latest film is a modern spin on a classic tale.

[Read the whole post on]

BOOOOOOOM! – CREATE * INSPIRE * COMMUNITY * ART * DESIGN * MUSIC * FILM * PHOTO * PROJECTS: Booooooom TV Best of the Week: Music Videos, Short Films & Animation

Open Culture: 24 Common Cognitive Biases: A Visual List of the Psychological Systems Errors That Keep Us From Thinking Rationally

There’s been a lot of talk about the Dunning-Kruger effect, the cognitive bias that makes people wildly overconfident, unable to know how ignorant they are because they don’t have the basic skills to grasp what competence means. Once popularized, the effect became weaponized. People made armchair diagnoses, gloated and pointed at the obliviously stupid. But if those finger-pointers could take the beam out of their own eye, they might see four fingers pointing back at them, or whatever folk wisdom to this effect you care to mash up.

What we now call cognitive biases have been known by many other names over the course of millennia. Perhaps never have the many varieties of self-deception been so specific. Wikipedia lists 185 cognitive biases, 185 different ways of being irrational and deluded. Surely, it’s possible that every single time we—maybe accurately—point out someone else’s delusions, we’re hoarding a collection of our own. According to much of the research by psychologists and behavioral economists, this may be inevitable and almost impossible to remedy.

Want to better understand your own cognitive biases and maybe try to move beyond them if you can? See a list of 24 common cognitive biases in an infographic poster at, the site of the nonprofit School of Thought. (The two gentlemen popping up behind brainy Jehovah in the poster, notes Visual Capitalist, "happen to represent Daniel Kahneman and Amos Tversky, two of the leading social scientists known for their contributions to this field. Not only did they pioneer work around cognitive biases starting in the late 1960s, but their partnership also resulted in a Nobel Prize in Economics in 2002.")

Granted, a Wikipedia list is a crowd-sourced creation with lots of redundancy and quite a few “dubious or trivial” entries, writes Ben Yagoda at The Atlantic. “The IKEA effect, for instance, is defined as ‘the tendency for people to place a disproportionately high value on objects they partially assembled themselves.’” Much of the value I’ve personally placed on IKEA furniture has to do with never wanting to assemble IKEA furniture again. “But a solid group of 100 or so biases has been repeatedly shown to exist, and can make a hash of our lives.”

These are the tricks of the mind that keep gamblers gambling, even when they’re losing everything. They include not only the “gambler’s fallacy” but confirmation bias and the fallacy of sunk cost, the tendency to pursue a bad outcome because you’ve already made a significant investment and you don’t want it to have been for nothing. It may seem ironic that the study of cognitive biases developed primarily in the field of economics, the only social science, perhaps, that still assumes humans are autonomous individuals who freely make rational choices.

But then, economists must constantly contend with the counter-evidence—rationality is not a thing most humans do well. (Evolutionarily speaking, this may have been no great disadvantage until we got our hands on weapons of mass destruction and the tools of climate collapse.) When we act rationally in some areas, we tend to fool ourselves in others. Is it possible to overcome bias? That depends on what we mean. Political and personal prejudices—against ethnicities, nationalities, genders, and sexualities—are usually buttressed by the systems errors known as cognitive biases, but they are not caused by them. They are learned ideas that can be unlearned.

What researchers and academics mean when they talk about bias does not relate to specific content of beliefs, but rather to the ways in which our minds warp logic to serve some psychological or emotional need or to help regulate and stabilize our perceptions in a manageable way. “Some of these biases are related to memory,” writes Kendra Cherry at Very Well Mind, others “might be related to problems with attention. Since attention is a limited resource, people have to be selective about what they pay attention to in the world around them.”

We’re constantly missing what’s right in front of us, in other words, because we’re trying to pay attention to other people too. It’s exhausting, which might be why we need eight hours or so of sleep each night if we want our brains to function half decently. Go to for this list of 24 common cognitive biases, also available on a nifty poster you can order and hang on the wall. You'll also find there an illustrated collection of logical fallacies and a set of “critical thinking cards” featuring both kinds of reasoning errors. Once you've identified and defeated all your own cognitive biases—all 24, or 100, or 185 or so—then you'll be ready to set out and fix everyone else's.

via Visual Capitalist

Related Content:

Research Finds That Intellectual Humility Can Make Us Better Thinkers & People; Good Thing There’s a Free Course on Intellectual Humility

Why Incompetent People Think They’re Amazing: An Animated Lesson from David Dunning (of the Famous “Dunning-Kruger Effect”)

The Power of Empathy: A Quick Animated Lesson That Can Make You a Better Person

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

24 Common Cognitive Biases: A Visual List of the Psychological Systems Errors That Keep Us From Thinking Rationally 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.

Colossal: Watch Sliced Fruits and Vegetables Disappear Before Your Eyes in Vibrant Animations by Kevin Parry

Kevin Parry creates stop-motion animations that turn the quotidian task of slicing vegetables and fruit into a near psychedelic exploration of each food’s interiors. Through a common technique called strata-cut, the Toronto-based animator creates videos that slowly peel away the exteriors of peppers, avocados, and onions, revealing patterns we might not notice while preparing a simple stir-fry or stew. Although Parry is used to taking his time perfecting each frame, for this series he had to race against the clock to avoid the organic materials browning or losing their vivacious color. Make sure to watch the full video below to take a look behind-the-scenes of his process, and hear the sound effects Parry created by cutting, crunching, and chewing each featured food. You can see more of his animations on Instagram and Youtube.

Colossal: KAWS Floats a Massive Inflatable Sculpture in Hong Kong’s Victoria Harbour

Photo Credit: @AllRightsReserved

Photo Credit: @AllRightsReserved

COMPANION, a 121-foot-long inflatable sculpture by street artist KAWS, launched today at Victoria Harbour in Hong Kong. The reclined, monochrome figure is the largest to date for the American artist, with recent previous iterations of the project installed at the Chiang Kai Shek Memorial Hall in Taipei, Taiwan, and on Seokchon Lake in Seoul, South Korea. The figure was purposefully designed to be in a peaceful repose, its crossed-out eyes gazing at the sky above.

“I was thinking of all the tension in the world, and I wanted to create work that would make people think about relaxing,” KAWS recently told TIME. “And there’s nothing more relaxing than lying on your back in water and looking up at the sky.”

To get the monumental work far enough into the water, tugboats pulled the sculpture from Wanchai to the waterfront off Tamar Park until it reached the Central Harbourfront. The event was celebrated with a water spray performance by the Hong Kong Fireboat 1 Elite. The work was launched by Hong Kong-based creative studio AllRightsReserved for the annual Hong Kong Arts Month, and will continue to occupy the harbor until March 31, 2019. (via Artsy)

Photo Credit: @harimaolee

Photo Credit: @harimaolee

Photo Credit: @NK7

Photo Credit: @NK7

Photo Credit: @cheukyh

Photo Credit: @cheukyh

Photo Credit: @AllRightsReserved

Photo Credit: @AllRightsReserved

Photo Credit: @AllRightsReserved

Photo Credit: @AllRightsReserved

Taipei installation, image via #AllRightsReserved

Taipei installation, image via #AllRightsReserved

Taipei installation, image via #AllRightsReserved

Taipei installation, image via #AllRightsReserved

CreativeApplications.Net: Aguahoja – Programmable Water-based Biocomposites for Digital Design and Fabrication

Aguahoja – Programmable Water-based Biocomposites for Digital Design and Fabrication
Created by the team at the Mediated Matter Group at MIT Media Lab, Aguahoja I is project/installation that is digitally designed and robotically manufactured out of the most abundant materials on our planet—the very materials found in trees, insect exoskeletons, apples and bones. Cellulose, chitosan, pectin and calcium carbonate are combined and compounded with high […]

new shelton wet/dry: who’s that peeping in my window, wow, the Feds on me now

Paranoia is the most common symptom of psychosis, but paranoid concerns occur throughout the general population. […] We suggest that paranoia should not solely be viewed as a pathological symptom of a mental disorder but also as a part of a normally-functioning human psychology. { Nature Human Behaviour | Continue reading | PDF } screenprint on Perspex [...]

new shelton wet/dry: And then he’s drunk and never even told her that he cared

Does a new partnership differ from its preceding one? […] This study sought to understand whether a new relationship differs from the one that preceded it. [T]he answer to that question seems to be “mostly no.” One year into a new partnership (P2T2) our sample was no different from one year prior to the breakup [...]

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

Plane forced to turn back after mother forgets her newborn at airport a $380K ‘flying motorcycle’ Q, the world’s first genderless voice The Boombox Incident (The process for removing bald people from photos) Quantum computing for the very curious Seat Choice in a Crowded Café: Effects of Eye Contact, Distance, and Anchoring The relation between shyness and creativity [...]


things magazine: A Gap in the Street

Wickham’s Department Store, on Mile End Road, was once known as the ‘Harrods of the East’, part of a city-wide network of grand shops, often family owned, that offered their customers practically everything under one roof. Wickham’s unusual punctured facade … Continue reading

Open Culture: Beautiful Hand-Colored Japanese Flowers Created by the Pioneering Photographer Ogawa Kazumasa (1896)

Ogawa Kazumasa lived from the 1860s to almost the 1930s, surely one of the most fascinating 70-year stretches in Japanese history. Ogawa's homeland "opened" to the world when he was a boy, and for the rest of his life he bore witness to the sometimes beautiful, sometimes strange, sometimes exhilarating results of a once-isolated culture assimilating seemingly everything foreign — art, technology, customs — all at once. Naturally he picked up a camera to document it all, and history now remembers him as a pioneer of his art.

At the Getty's web site you can see a few examples of the sort of pictures Ogawa took of Japanese life in the mid-1890s. During that same period he published Some Japanese Flowers, a book containing his pictures of just that.

The following year, Ogawa's hand-colored photographs of Japanese flowers also appeared in the American books Japan, Described and Illustrated by the Japanese, edited by the renowned Anglo-Irish expatriate Japanese culture scholar Francis Brinkley and published in Boston, the city where Ogawa had spent a couple of years studying portrait photography and processing.

Ogawa's varied life in Japan included working as an editor at Shashin Shinp? (????), the only photography journal in the country at the time, as well as at the flower magazine Kokka (??), which would certainly have given him the experience he needed to produce photographic specimens such as these. Though Ogawa invested a great deal in learning and employing the highest photographic technologies, they were the highest photographic technologies of the 1890s, when color photography necessitated adding colors — of particular importance in the case of flowers — after the fact.

Some Japanese Flowers was re-issued a few years ago, but you can still see 20 striking examples of Ogawa's flower photography at the Public Domain Review. They've also made several of his works available as prints of several different sizes in their online shop, a selection that includes not just his flowers but the Bronze Buddha at Kamakura and a man locked in battle with an octopus as well. Even as everything changed so rapidly all around him, as he mastered the just-as-rapidly developing tools of his craft, Ogawa nevertheless kept his eye for the natural and cultural aspects of his homeland that seemed never to have changed at all.

via Public Domain Review

Related Content:

Hand-Colored 1860s Photographs Reveal the Last Days of Samurai Japan

Hand-Colored Photographs from 19th Century Japan: 110 Images Capture the Waning Days of Traditional Japanese Society

1850s Japan Comes to Life in 3D, Color Photos: See the Stereoscopic Photography of T. Enami

Hundreds of Wonderful Japanese Firework Designs from the Early-1900s: Digitized and Free to Download

Historic Manuscript Filled with Beautiful Illustrations of Cuban Flowers & Plants Is Now Online (1826)

How Obsessive Artists Colorize Old Photographs & Restore the True Colors of the Past

Based in Seoul, Colin Marshall writes and broadcasts on cities, language, and culture. His projects include the book The Stateless City: a Walk through 21st-Century Los Angeles and the video series The City in Cinema. Follow him on Twitter at @colinmarshall or on Facebook.

Beautiful Hand-Colored Japanese Flowers Created by the Pioneering Photographer Ogawa Kazumasa (1896) 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.

Open Culture: An Archive of Animations/Cartoons of Ancient Greece & Rome: From the 1920s Through Today

Ancient Greece and Rome have provided fertile hunting grounds for animated subject matter since the very inception of the form.

So what if the results wind up doing little more than frolic in the pastoral setting? Witness 1930’s Playful Pan, above, which can basically be summed up as Silly Symphony in a toga (with a cute bear cub who looks a lot like Mickey Mouse and some flame play that prefigures The Sorcerer’s Apprentice…)

Others are packed with history, mythic narrative, and period details, though be forewarned that not all are as visually appealing as Steve Simons’ Hoplites! Greeks at War, part of the Panoply Vase Animation Project.

Some series, such as the Asterix movies and Aesop and Sona staple of The Rocky and Bullwinkle Show from 1959 to 1962have been the gateways through which many history lovers’ curiosity was first roused.

(Russian animator Anatoly Petrov’s erotic shorts for Soyuzmultfilm may rouse other, er, curiosities, and are definitely NSFW.)

And then there are instant classics like 2004’s It's All Greek to Scooby in which “Shaggy's purchase of a mysterious amulet only serves to cause a pestering archaeologist and centaur to chase him.”  (Ye gods…)

Senior Lecturer of Classical and Mediterranean Studies at Vanderbilt, Chiara Sulprizio, has collected all of these and more on her blog, Animated Antiquity.

Beginning with the 2-minute fragment that’s all we have left of Winsor McCay’s 1921 The Centaurs, Sulprizio shares some of her favorite cartoon representations of ancient Greece, Rome, and beyond. Her areas of professional specializationgender and sexuality, Greek comedy, and Roman satireare well suited to her chosen hobby, and her commentary doubles down on historical context to include the history of animation.

The appearance of cartoon stars like Daffy Duck, Tom and Jerry, and Popeye further demonstrates this antique subject matter’s sturdiness. TED-Ed and the BBC may view the genre as an excellent teaching tool, but there’s nothing stopping the animator from shoehorning some fabrications in amongst the buxom nymphs and buff gladiators.

(Raise your hand if your mother ever sacrificed you on the altar to Spinachia, goddess of spinach, in hopes that she might unleash a mushroom cloud of super-atomic power in your puny bicep.)

You’ll find a number of entries featuring the work of Japanese and Russian animators, including Thermae Romae, part of the juggernaut that’s sprung from Mari Yamazaki’s popular graphic novel series and Icarus and the Wise Men from the legendary Fyodor Khitruk, whose retelling of the myth sent a message about freedom from the Soviet Union, circa 1976.

Begin your decade-by-decade explorations of Chiara Sulprizio’s animated antiquities here or suggest that a missing favorite be added to the collection. (We vote for this one!)

Related Content:

Watch Art on Ancient Greek Vases Come to Life with 21st Century Animation

18 Classic Myths Explained with Animation: Pandora’s Box, Sisyphus & More

An Animated Reconstruction of Ancient Rome: Take A 30-Minute Stroll Through the City’s Virtually-Recreated Streets

25 Animations of Great Literary Works: From Plato, Dostoevsky & Dickinson, to Kafka, Hemingway & Bradbury

Ayun Halliday is an author, illustrator, theater maker and Chief Primatologist of the East Village Inky zine.  Join her in New York City for the next installment of her book-based variety show, Necromancers of the Public Domain, this April. Follow her @AyunHalliday.

An Archive of Animations/Cartoons of Ancient Greece & Rome: From the 1920s Through Today 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. Comic for 2019.03.22

New Cyanide and Happiness Comic

i like this art: Wendy Red Star

Wendy Red Star

Work from her oeuvre.

“Artist Wendy Red Star works across disciplines to explore the intersections of Native American ideologies and colonialist structures, both historically and in contemporary society. Raised on the Apsáalooke (Crow) reservation in Montana, Red Star’s work is informed both by her cultural heritage and her engagement with many forms of creative expression, including photography, sculpture, video, fiber arts, and performance. An avid researcher of archives and historical narratives, Red Star seeks to incorporate and recast her research, offering new and unexpected perspectives in work that is at once inquisitive, witty and unsettling. Intergenerational collaborative work is integral to her practice, along with creating a forum for the expression of Native women’s voices in contemporary art.” – Wendy Red Star

Disquiet: Disquiet Junto Project 0377: Algorithms Assemble

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.

Deadline: This project’s deadline is Monday, March 25, 2019, at 11:59pm (that is, just before midnight) wherever you are. It was posted in the early evening, California time, on Thursday, March 21, 2019.

These are the instructions that went out to the group’s email list (at

Disquiet Junto Project 0377: Algorithms Assemble
The Assignment: Have fun with rules applied to scales, in coordination with the Algorithmic Art Assembly.

This week’s project is being done with the Algorithmic Art Assembly, “a brand new two day conference and music festival, showcasing a diverse range of artists who are using algorithmic tools and processes in their works.” It’s being held in San Francisco on March 22 and 23, 2019. More information at The project is lightly adapted from one proposed by Junto member Charlie Kramer (aka NorthWoods).

Step 1: Define a scale of 8 notes (or sounds).

Step 2: Create a melody with 4 notes from the scale resulting from Step 1.

Step 3: Replace note 2 in the melodic sequence from Step 2 with an unused note (selected deterministically or randomly). Then do this for note 4, then for note 3, and then for note 1.

Step 4: Reintroduce the first melody as counterpoint to the result of Step 3. This establishes a pair of notes at each point in time.

Step 5: Repeat the algorithm on these pairs. Repeat to create triplets.

Step 6: Sequence variations to create a piece of music.

Extra credit: Do the same with note durations and velocities (e.g., 8 possibilities, 4 choices).

Seven More Important Steps When Your Track Is Done:

Step 1: Include “disquiet0377” (no spaces or quotation marks) in the name of your track.

Step 2: If your audio-hosting platform allows for tags, be sure to also include the project tag “disquiet0377” (no spaces or quotation marks). If you’re posting on SoundCloud in particular, this is essential to subsequent location of tracks for the creation a project playlist.

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

Step 4: Post your track in the following discussion thread at

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

Step 6: If posting on social media, please consider using the hashtag #disquietjunto so fellow participants are more likely to locate your communication.

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

Additional Details:

Deadline: This project’s deadline is Monday, March 25, 2019, at 11:59pm (that is, just before midnight) wherever you are on. It was posted in the early evening, California time, on Thursday, March 21, 2019.

Length: The length is up to you.

Title/Tag: When posting your track, please include “disquiet0377” 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: Consider setting your track as downloadable and allowing for attributed remixing (i.e., a Creative Commons license permitting non-commercial sharing with attribution, allowing for derivatives).

For context, when posting the track online, please be sure to include this following information:

More on this 377th weekly Disquiet Junto project — Algorithms Assemble / The Assignment: Have fun with rules applied to scales, in coordination with the Algorithmic Art Assembly — at:

The project is lightly adapted from one proposed by Junto member Charlie Kramer (aka NorthWoods).

More on the Disquiet Junto at:

Subscribe to project announcements here:

Project discussion takes place on

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

Image associated with this project is from the graphics for the Algorithmic Art Assembly, “a brand new two day conference and music festival, showcasing a diverse range of artists who are using algorithmic tools and processes in their works.” It’s being held in San Francisco on March 22 and 23, 2019. More information at

Planet Haskell: Matt Parsons: Return a Function to Avoid Effects

To help write robust, reliable, and easy-to-test software, I always recommend purifying your code of effects. There are a bunch of tricks and techniques to accomplish this sort of thing, and I’m going to share one of my favorites.

I have implemented a pure data pipeline that imports records from one database and puts them in another database with a slightly different schema. Rather than implement all of the logic for saving each entity individually, I’ve created a function migrate that is abstract. The heart of this pipeline is a set of type classes:

class LoadData i where
    load :: IO [i]

class ConvertData i o | i -> o where
    convert :: i -> o

class SaveData o where
    save :: [o] -> IO ()

    :: (LoadData i, ConvertData i o, SaveData o)
    => IO ()
migrate = do
    old <- load
    save (map convert old)

All of the business logic is in the ConvertData class. The LoadData and SaveData do typically boring things.

A new requirement came in: we are going to import a new record, and we must generate new UUIDs for it.

data Old = Old Int Text

data New = New UUID Int Text

These UUIDs must be randomly generated. The logical place to generate the UUID is in the ConvertData part of the pipeline. However, this would require adding IO to the method signature, which would make testing and verifying this code more difficult.

Instead, we are going to create a new type:

newtype NeedsUUID = NeedsUUID 
    { giveUUID :: UUID -> New

Now, our conversion function instances will look like this:

instance LoadData Old where
    load = loadOldData

instance ConvertData Old NeedsUUID where
    convert (Old i t) = 
        NeedsUUID (\uuid -> New uuid i t)

We have abstracted the UUID generation. Our ConvertData type class remains pure, and we’ve pushed the implementation detail of UUID generation out.

Now, we implement the SaveData type class, which already had IO.

instance SaveData NeedsUUID where
    save needsUUIDs = do
        values <- 
            forM needsUUIDs $ \needsUUID ->
                uuid <- freshUUID
                return (giveUUID needsUUID uuid)
        saveNewValues values

Effects on the Edge

We want to keep effects isolated to the edges of our programs as much as possible. This allows most of our code to remain pure and easy to test and examine. I’ve written about similar topics in my posts Type Safety Back and Forth and Invert Your Mocks!.

Quiet Earth: John Wick Is on the Run in JOHN WICK: CHAPTER 3 &ndash; PARABELLUM [Trailer]

We already knew that everyone was waiting for John Wick but a second trailer leading up to the movie's May release certainly doesn't hurt matters any, especially when it's action-packed and features John Wick riding a horse through the city. Because, why not?

In John Wick: Chapter 3 - Parabellum, John is on the run with a bounty of $12 million dollars on his head. While nearly every assassin is looking for a payday, John turns to some old friends or more likely people who owe him favours, for help.

In addition to Reeves, the movie also sees the return of Laurence Fishburne, Ian McShane, and Lance Reddick and the addition of Halle Berry, Asia Kate Dillon and the great Anjelica Husto [Continued ...]

Open Culture: Lawrence Ferlinghetti Turns 100: Hear the Great San Francisco Poet Read “Trump’s Trojan Horse,” “Pity the Nation” & Many Other Poems

It has been a season of mourning for literature: first the death of Mary Oliver and now W.S. Merwin, two writers who left a considerable imprint on over half a century of American poetry. Considering the fact that founding father of the Beats and proprietor of world-renowned City Lights Bookstore, Lawrence Ferlinghetti, turns 100 on March 24th, maybe a few more people have glanced over to check on him. How’s he doing?

He's grown "frail and nearly blind," writes Chloe Veltman at The Guardian in an interview with the poet this month, "but his mind is still on fire." Ferlinghetti “has not mellowed,” says Washington Post book critic Ron Charles, "at all." If you’re looking for him at any of the events planned in his honor, City Lights announces, he will not be in attendance, but he has been busy promoting his latest book, a thinly-veiled autobiographical novel about his early life called Little Boy.

In the book Ferlinghetti describes his childhood in images right out of Edward Gorey. He was a “Little Lord Fauntleroy” in a Bronxville mansion 20 miles outside New York, an orphan taken in and raised by descendants of the founders of Sarah Lawrence. “His new guardians spoke to one another in courtly tones and dressed in Victorian garb,” notes Charles. “They sent him to private school, and, more important, they possessed a fine library, which he was encouraged to use.”

The poet would later write he was a “social climber climbing downward,” an ironic reference to how some people might have seen the trajectory of his career. After serving in the Navy during World War II, earning a master’s at Columbia, and a Ph.D. at the Sorbonne, Ferlinghetti decamped to San Francisco, and founded the small magazine City Lights with Peter D. Martin. Then he opened a bookstore on the edge of Chinatown to fund the publishing venture.

The shop became a haunt for writers and poets. Ferlinghetti started publishing them, starting with himself in 1955. The following year he gained international infamy for publishing Allen Ginsberg’s Howl (hear Ginsberg read the poem at City Lights in '56). The book was banned, and Ferlinghetti put on trial for obscenity. If anyone thought this would be the end of Lawrence Ferlinghetti, they were mistaken.

He has published somewhere around forty books of poetry and criticism, novels and plays, been a prolific painter for sixty years, as well as a publisher, bookseller, and activist. He does not consider himself a Beat poet, but from his influential first two books—Pictures of the Gone World and 1958’s A Coney Island of the Mindonward, Ferlinghetti’s philosophical outlook has more or less breathed the same air as Ginsberg et al.’s.

Quoting from Coney Island, Andrew Shapiro writes, “he counseled us to ‘confound the system,’ ‘to empty out our pockets… missing our appointments’ and to leave ‘our neckties behind’ and ‘take up the full beard of walking anarchy.’” He is still doing this, every way that he can, in public readings, media appearances, and a canny use of YouTube. His is not a call to flower power but to full immersion in the chaos of life, or, as he writes in “Coney Island of the Mind 1” in the “veritable rage / of adversity / Heaped up / groaning with babies and bayonets / under cement skies / in an abstract landscape of blasted trees.”

Ferlinghetti urged poets and writers to “create works capable of answering the challenge of apocalyptic times, even if this meaning sounds apocalyptic… you can conquer the conquerors with words.” Despite this stridency, he has never taken himself too seriously. Ferlinghetti is as relaxed as they come—he hasn’t mellowed, but he also hasn’t needed to. He’s a loose, natural storyteller and comedian and he’s still delivering sober, prophetic pronouncements with gravitas.

See and hear Ferlinghetti take on conquerors, bullies, and xenophobes, underwear, and other subjects in the readings here from his throughout his career, including a full, 40-minute reading in 2005 at UC Berkeley, below, an album of Ferlinghetti and Kenneth Rexroth, above, and at the top, a video made last year of the 99-year-old poet, in Lady Liberty mask, reading “Trump’s Trojan Horse” under a grinning, gray-bearded self-portrait of his younger self. Happy 100th to him. "I figure that with another 100 birthdays," he says, "that'll be about enough!"

Related Content:

Bill Murray Reads the Poetry of Lawrence Ferlinghetti, Wallace Stevens, Emily Dickinson, Billy Collins, Lorine Niedecker, Lucille Clifton & More

Allen Ginsberg’s Howl Manuscripts Now Digitized & Put Online, Revealing the Beat Poet’s Creative Process

The First Recording of Allen Ginsberg Reading “Howl” (1956)

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

OCaml Planet: MirageOS security advisory 01: netchannel 1.10.0

MirageOS Security Advisory 01 - memory disclosure in mirage-net-xen

  • Module: netchannel
  • Announced: 2019-03-21
  • Credits: Thomas Leonard, Hannes Mehnert, Mindy Preston
  • Affects: netchannel = 1.10.0
  • Corrected: 2019-03-20 1.10.1 release

For general information regarding MirageOS Security Advisories, please visit


MirageOS is a library operating system using cooperative multitasking, which can be executed as a guest of the Xen hypervisor. Virtual devices, such as a network device, share memory between MirageOS and the hypervisor. To maintain adequate performance, the virtual device managing network communication between MirageOS and the Xen hypervisor maintains a shared pool of pages and reuses them for write requests.

Problem Description

In version 1.10.0 of netchannel, the API for handling network requests changed to provide higher-level network code with an interface for writing into memory directly. As part of this change, code paths which exposed memory taken from the shared page pool did not ensure that previous data had been cleared from the buffer. This error resulted in memory which the user did not overwrite staying resident in the buffer, and potentially being sent as part of unrelated network communication.

The mirage-tcpip library, which provides interfaces for higher-level operations like IPv4 and TCP header writes, assumes that buffers into which it writes have been zeroed, and therefore may not explicitly write some fields which are always zero. As a result, some packets written with netchannel v1.10.0 which were passed to mirage-tcpip with nonzero data will have incorrect checksums calculated and will be discarded by the receiver.


This issue discloses memory intended for another recipient and corrupts packets. Only version 1.10.0 of netchannel is affected. Version 1.10.1 fixes this issue.

Version 1.10.0 was available for less than one month and many upstream users had not yet updated their own API calls to use it. In particular, no version of qubes-mirage-firewall or its dependency mirage-nat compatible with version 1.10.0 was released.


No workaround is available.


Transmitting corrupt data and disclosing memory is fixed in version 1.10.1.

The recommended way to upgrade is:

  opam update
opam upgrade netchannel

Or, explicitly:

  opam upgrade
opam reinstall netchannel=1.10.1

Affected releases (version 1.10.0 of netchannel and mirage-net-xen) have been marked uninstallable in the opam repository.

Correction details

The following list contains the correction revision numbers for each affected branch.

Memory disclosure on transmit:

master: 6c7a13a5dae0f58dcc0653206a73fa3d8174b6d2

1.10.0: bd0382eabe17d0824c8ba854ec935d8a2e5f7489



You can find the latest version of this advisory online at

This advisory is signed using OpenPGP, you can verify the signature by downloading our public key from a keyserver (gpg --recv-key 4A732D757C0EDA74), downloading the raw markdown source of this advisory from GitHub and executing gpg --verify 01.txt.asc.

Colossal: Self-Taught Nature Photographer Alison Pollack Tracks the Fascinating Fungi of Northern California


Stemonitis. All photographs by Alison Pollack

Avid photographer and retired environmental consultant Alison Pollack documents the fascinating phenotypes of mushrooms and slime molds she encounters on hikes in northern California. Her images show shaggy white Comb Tooth fungus (Hericium coralloides), Stemonitis slime molds that wouldn’t look out of place on the dessert menu of an experimental restaurant, and Comatricha that bear a strong resemblance to urban lamp posts. Recently, the north Bay Area-based photographer shared with the Marin Independent Journal that she has had a longtime interest in hiking and mushrooming, but has grown more focused on fungi photography in the last two years. You can follow along with Pollock’s findings, and help her identify unknown species, on Instagram.

Hericium coralloides

Chlorociboria aeruginascens

Tyromyces chioneus

Tyromyces chioneus

Hericium erinaceus

L: Comatricha / R: Hemitrichia calyculata

Crepidotus mollis

Physarum viride

Trametes versicolor


Planet Haskell: Holden Karau: PySpark on Kuberntes @ Python Barcelona March Meetup

Come join me on Thursday 21. March 2019 at Python Barcelona March Meetup 2019 Barcelona, Spain for PySpark on Kuberntes.

The slides are at

Come see to the talk or comment bellow to join in the discussion :).Talk feedback is appreciated at

Open Culture: The Case for Why Captain Beefheart’s Awful Sounding Album, Trout Mask Replica, Is a True Masterpiece

I’ve had Trout Mask Replica in my collection for years. I can’t say I regularly pull it out to give it a listen, but I know I’d never get rid of it. It’s a sometimes impenetrable slab of genius, wrought from endless sessions and then a short burst of recording, led by a man who couldn’t read music, was prone to fits of violent anger, but dammit knew what he wanted. (And Zappa produced.) When I learned later that the house where a lot of this went down was located in the hills behind the suburbs of Woodland Hills, it made the insurrection of the album all the more magical.

But yes, it’s a hard one to get into. There are no “hits.” There’s no foot tappin’ pop (well, mayyyyybe “Ella Guru,” and only because I knew it first as a cover by XTC.) It’s discordant. Don Van Vliet aka Captain Beefheart sounds possessed by Howlin’ Wolf trying to sing nursery rhymes on acid, and it often plays like members of the band are in different areas of the house with a vague idea of what the others are doing. (This is actually a bit close to the truth).

Vox’s continuing series “Earworm,” hosted by Estelle Caswell, attempts to convert listeners who may have never heard of the album, by taking apart the opening track, “Frownland.”

As Caswell explains, with help from musicologists Samuel Andreyev and Susan Rogers, Van Vliet melded blues and free jazz, and played it with a deconstructed rock band instrumentation. Drums and bass did not lock down a rhythm--they played independent of the others, with the bass even playing chords. Rhythm and lead guitar played two different time signatures each, and neither were easy, 4/4 rhythms. And then there’s the saxophone work, dropping in to squonk and thrash like Ornette Coleman. As Magic Band members point out, Van Vliet didn’t understand that a bass or a guitar did not have the same range of notes as an 88-key piano, which was Van Vliet’s songwriting instrument.

However, only jazzbos dig on learning about polyrhythms. There’s so many other reasons to appreciate Trout Mask. For one, it’s in the proud tradition of European surrealism but also comes from a particular “old weird America” that produced some of our most brilliant nutcases. (How many people, learning that Van Vliet was raised near Joshua Tree, nodded in enlightenment? Of course he was.) You want drug music, the album says...well then, this is the uncut stuff.

And then sometimes it really just hits hard: “Moonlight On Vermont” is relentless, with a corruscating guitar line and Beefheart worked up into a lather over “that old time religion.” He quotes Blind Willie Johnson, conflates paganism and Puritanism, and transcends both. (Maybe this is the gateway song for newbies?)

The Vox video precedes its defense with some negative reviews from the contemporary press, but this Dick Larson review from the time understood it from the get go, who writes about it as a giant step forward after Beefheart’s two previous, more accessible albums:

Dylan would sympathise with Beefheart’s ‘nature-and-love-trips’, but the Captain is faster and more bulbous (and he’s got his band). But this is it. In straightening out his music, he’s found some kind of religion. It may be in hair pies (yes!) or in Frownland, but mainly it’s people, children and country men and women. And this is a new delight for Beefheart – a rough outdoor humanity blended with humour and a rich verbal vomit of imagery.

It is a wild album, literally. There are field recordings in between the music, with sounds of crickets and a plane passing overhead. The LP art shows the band standing, crouching, and hiding in the overgrown backyard of the house. There’s mysterious things in the stream below and only some of them are fish.

Related Content:

Tom Waits Makes a List of His Top 20 Favorite Albums of All Time

Hear a Rare Poetry Reading by Captain Beefheart (1993)

Captain Beefheart Issues His “Ten Commandments of Guitar Playing”

Ted Mills is a freelance writer on the arts who currently hosts the artist interview-based FunkZone Podcast and is the producer of KCRW's Curious Coast. You can also follow him on Twitter at @tedmills, read his other arts writing at and/or watch his films here.

The Case for Why Captain Beefheart’s Awful Sounding Album, Trout Mask Replica, Is a True Masterpiece 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.

The Shape of Code: Describing software engineering in terms of a traditional science

If you were asked to describe the ‘building stuff’ side of software engineering, by comparing it with one of the traditional sciences, which science would you choose?

I think a lot of people would want to compare it with Physics. Yes, physics envy is not restricted to the softer sciences of humanities and liberal arts. Unlike physics, software engineering is not governed by a handful of simple ‘laws’, it’s a messy collection of stuff.

I used to think that biology had all the necessary important characteristics needed to explain software engineering: evolution (of code and products), species (e.g., of editors), lifespan, and creatures are built from a small set of components (i.e., DNA or language constructs).

Now I’m beginning to think that chemistry has aspects that are a better fit for some important characteristics of software engineering. Chemists can combine atoms of their choosing to create whatever molecule takes their fancy (subject to bonding constraints, a kind of syntax and semantics for chemistry), and the continuing existence of a molecule does not depend on anything outside of itself; biological creatures need to be able to extract some form of nutrient from the environment in which they live (which is also a requirement of commercial software products, but not non-commercial ones). Individuals can create molecules, but creating new creatures (apart from human babies) is still a ways off.

In chemistry and software engineering, it’s all about emergent behaviors (in biology, behavior is just too complicated to reliably say much about). In theory the properties of a molecule can be calculated from the known behavior of its constituent components (e.g., the electrons, protons and neutrons), but the equations are so complicated it’s impractical to do so (apart from the most simple of molecules; new properties of water, two atoms of hydrogen and one of oxygen, are still being discovered); the properties of programs could be deduced from the behavior its statements, but in practice it’s impractical.

What about the creative aspects of software engineering you ask? Again, chemistry is a much better fit than biology.

What about the craft aspect of software engineering? Again chemistry, or rather, alchemy.

Is there any characteristic that physics shares with software engineering? One that stands out is the ego of some of those involved. Describing, or creating, the universe nourishes large egos.

new shelton wet/dry: There’s 32 dogs. 28 cats. How many didn’t?

#the17mstosuccess #richaf #poundinP — kyle Dunnigan (@kyledunnigan) October 11, 2018

Tea Masters: Spring!

The temperatures reached 30 degrees Celcius today in Taipei: It felt more like summer than spring! That's why I turned to one of the highest Oolong plantations: Da Yu Ling 90K and enjoyed its refreshing aftertaste with hints of alpine forest! It's a tea that shines green and blue... Its fragrances bring me closer to the purest air of the highest tea mountain.
JS Bach was born on this day (in 1685) and this tea feels joyful and allegro like one of his violin sonata. Like Bach's music, Da Yu Ling Oolong flows with grace and energy, aiming for the divine!
The new spring season is going to unleash new energy in nature. Stones will be stones, big trees will grow a little and new green leaves will appear. Time does not have the same impact on nature. Leaves are the most sensitive to springtime and its energy. Within weeks, tiny buds will appear and turn into big, mature leaves. We can just marvel how the Oolong process turns these tender leaves into hard little 'stones' and how well spring's freshness and aromas are preserved in them!


Planet Haskell: Functional Jobs: Software Engineer - Haskell at Capital Match Platform (Full-time)

WHO WE ARE Capital Match is an innovative fintech business with a range of financial solutions to corporate and individual clients, investors and borrowers. Capital Match is the largest marketplace invoice financing platform in Southeast Asia based in Singapore, funded more than US$80 million in Singapore and Hong Kong over the past 3 years. Capital Match is backed by multiple VCs and institutional investors including Dymon Asia Capital, an alternative asset manager with $6bn AUM and Eduardo Saverin's B Capital Group.

THE ROLE We are looking for experienced developers to lead our tech growth in the fintech space, expand into surrounding countries, develop new products and integrations. You will be involved in all aspects of the creation, growth and operations of a secure web-based platform. Experience in front-to-back feature development, distributed deployment and automation in the cloud, build and test automation, is highly desirable.

OUR PLATFORM Our Platform is primarily developed in Haskell with a ClojureScript frontend. We use Docker containers, Nix and standard cloud infrastructure systems to manage our production rollouts. We make heavy use of modern functional programming practices, such as property-based testing and type-driven programming, to improve the quality of our code. We use many popular Haskell libraries such as Lens, QuickCheck, Servant, Scotty, Aeson, Attoparsec and Pandoc. We use continuous testing, integration and deployment wherever possible.


  • 5 years (or more) of software engineering experience.
  • Knowledge and passion for Haskell.
  • Strong foundation in data structures, algorithms, and software design.
  • Experience in developing both server and web applications.
  • Experience with modern software engineering practices such as TDD, CI, Emergent Design, Refactoring, Peer Review and Continuous Improvement.
  • Familiarity with Linux systems, command-line environments and cloud-based deployments.
  • A background in fintech and especially the lending space would be an advantage but is not essential.


  • Salary of SGD 5,000-10,000 / month (depending on experience and qualifications).
  • Attractive equity options for outstanding candidates.
  • Foreigners who relocate from most countries do not need to pay their country income tax and for the proposed remuneration income tax in Singapore is <10%.
  • Singapore is a great place to live, a vibrant city rich with diverse cultures, a very strong financial sector and a central location in Southeast Asia.
  • Visa sponsorship can be provided to the right candidate.


Send your CV and github link to careers [at] capital-match [dot] com

Get information on how to apply for this position.


Raymond Lemstra (previously featured here).


Raymond Lemstra



Raymond Lemstra



Raymond Lemstra



Raymond Lemstra




Raymond Lemstra’s Website

Raymond Lemstra on Instagram

Daniel Lemire's blog: ARM and Intel have different performance characteristics: a case study in random number generation

In my previous post, I reviewed a new fast random number generator called wyhash. I commented that I expected it to do well on x64 processors (Intel and AMD), but not so well on ARM processors.

Let us review again wyhash:

uint64_t wyhash64_x; 

uint64_t wyhash64() {
  wyhash64_x += 0x60bee2bee120fc15;
  __uint128_t tmp;
  tmp = (__uint128_t) wyhash64_x * 0xa3b195354a39b70d;
  uint64_t m1 = (tmp >> 64) ^ tmp;
  tmp = (__uint128_t)m1 * 0x1b03738712fad5c9;
  uint64_t m2 = (tmp >> 64) ^ tmp;
  return m2;

(Source code)

It is only two multiplications (plus a few cheap operations like add and XOR), but these are full multiplications producing a 128-bit output.

Let us compared with a similar but conventional generator (splitmix) developed by Steele et al. and part of the Java library:

 uint64_t splitmix64(void) {
  splitmix64_x += 0x9E3779B97F4A7C15;
  uint64_t z = splitmix64_x;
  z = (z ^ (z >> 30)) * 0xBF58476D1CE4E5B9;
  z = (z ^ (z >> 27)) * 0x94D049BB133111EB;
  return z ^ (z >> 31);

We still have two multiplications, but many more operation. So you would expect splitmix to be slower. And it is, on my typical x64 processor.

Let me reuse my benchmark where I simply sum up 524288 random integers are record how long it takes…

Skylake x64 Skylark ARM
wyhash 0.5 ms 8.8 ms
splitmix 0.6 ms 2.6 ms

According to my tests, on the x64 processor, wyhash is faster than splitmix. When I switch to my ARM server, wyhash becomes 4 times slower.

The difference is that the computation of the most significant bits of a 64-bit product on an ARM processor requires a separate and potentially expensive instruction.

Of course, your results will vary depending on your exact processor and exact compiler.

Note: I have about half a million integers, so if you double my numbers, you will get a rough estimate of the number of nanoseconds per 64-bit integer generated.

Update 1: W. Dijkstra correctly pointed out that wyhash could not, possibly, be several times faster than splitmix in a fair competition. I initially reported bad results with splitmix, but after disabling autovectorization (-fno-tree-vectorize), the results are closer. He also points out that results are vastly different on other ARM processors like Falkor and ThunderX2.

Update 2: One reading of this blog post is that I am pretending to compare Intel vs. ARM and to qualify one as being better than the other one. That was never my intention. My main message is that the underlying hardware matters a great deal when trying to determine which code is fastest.

Quiet Earth: The Kids Are Growing Up in STRANGER THINGS Season 3 Trailer

Netflix have released the trailer for season 3 of Stranger Things which is premiering July 4.

The plot is under wraps, but we can see here that much of the season will be about the trials the kids face now that they are growing into teenagers. A smart move considering the cast will age up quickly.

Check out the trailer below:

Recommended Release: Stranger Things (S1 & 2 VHS Blu-ray)

[Continued ...]

Perlsphere: Grant Committee - Request for Members

We are looking for new members to join the Grant Committee.

We have a few members who are ready to retire, and so we have a few positions to consider filling.

Voting members review proposals every two months, including community feedback, and vote on whether to approve/fund the grant.

Grant Managers (who can be voting members, but don't have to be) work with approved grant recipients to ensure monthly status reports are generated, and recommend to the committee to consider work complete at the end of the grant.

At the last TPC, several people approached me with an interest in serving in one of these capacities, but we didn't make any moves at that time; Because so much time has passed, I'm basically starting the process over.

If you are interested in becoming part of the committee, please read through and also send me an email (coke at CPAN).

If you would like to nominate someone - please ask them to send an email, as then I don't have to double check that they are willing.

Thanks to everyone in the community for making this work fulfilling.

Michael Geist: How Canadian Copyright Reform Could Support the Government’s Supercluster Investment

The release of Budget 2019 yesterday again placed the government’s innovation strategy in the spotlight as the government emphasized its significant spending record, including $950 million for the superclusters, $4 billion for science research, $795 million in 31 strategic innovation fund agreements and $2.3 billion for clean technology support. The investments were highlighted in a recently released an innovation scorecard, Building a Nation of Innovators, which takes stock of the government’s efforts over the past three years. My new CIGI policy brief argues that while the benefits from this spending will take years to realize, increased investments in strategic sectors are the easy part of innovation policy.

Enacting new rules and regulations that support an innovative economy is more challenging. On that front, the government’s record is more modest. The limited intellectual property reforms made to date are aimed at resolving the frustrating administrative processes at the Copyright Board of Canada and are designed to guard against IP misuse. Many other critical innovation policy issues — data governance, copyright reform, privacy modernization, telecommunications regulation — remain works-in-progress, with major legislative changes still years away from enactment.

I argue that there is a link between innovation policy and copyright reform; four reforms, in particular, are both long-overdue and closely-linked to the government’s supercluster approach. These include a text-and-data mining exception – sometimes referred to as an information analysis exception – to support artificial intelligence (AI), flexible fair dealing in support of digital technologies and advanced manufacturing, open government data and the elimination of crown copyright in connection with the ocean supercluster, and the easing of digital lock restrictions that place Canadian agriculture and the protein innovation supercluster at a competitive disadvantage. The full brief can be found here.

The post How Canadian Copyright Reform Could Support the Government’s Supercluster Investment appeared first on Michael Geist.

Penny Arcade: News Post: Pre-PAX Pox

Tycho: This, or something very close to it, really did happen.  It’s a brand that brings people together, forging a connection between them, even if they should be discussing the infection that is - even now - gnawing at the root of his lifespan. The thing people always said about the first Division game was that enemies were “bullet sponges.”  This wasn’t a huge surprise to me.  No matter what the metaphor is, in this case one where players constitute an elite sleeper cell of extrajudicial murderers, when you reach higher levels there will be more elite…

Planet Lisp: Berlin Lispers Meetup, Monday, 25th March 2019

We meet again on Monday 8pm, 25th March. Our host this time is James Anderson (

Berlin Lispers is about all flavors of Lisp including Common Lisp, Scheme, Dylan, Clojure.

We will have a talk this time. Ingo Mohr will tell us "About the Unknown East of the Ancient LISP World. History and Thoughts. Part I: LISP on Punchcards".

We meet in the Taut-Haus at Engeldamm 70 in Berlin-Mitte, the bell is "James Anderson". It is located in 10min walking distance from U Moritzplatz or U Kottbusser Tor or Ostbahnhof. In case of questions call Christian +49 1578 70 51 61 4. Comic for 2019.03.20

New Cyanide and Happiness Comic

Quiet Earth: Natalie Portman Goes to Space With FARGO Director in LUCY IN THE SKY [Trailer]

If there is anything we know for sure about Noah Hawley it's that typical is not in his vocabulary. If anything, his resume over the last few years includes some of the most interesting, risky storytelling on television (see "Fargo" and "Legion"), and now he's dipping his fingers into the feature film world.

Lucy in the Sky stars Natalie Portman as Lucy Cola, an astronaut who returns to Earth after a mission only to find the day-to-day of her life mundane and she begins to lose touch with reality.

Jon Hamm, Zazie Beetz, Tig Notaro, Ellen Burstyn, Nick Offerman and Hawley regular Dan Stevens all co-star.

It's not only an interesting story idea but Hawley's style and approach to storytelling are likely to make Lucy in the Sky a tad more interesting t [Continued ...]

Quiet Earth: What's New On DVD & Blu-ray March 19, 2019

As the 1970s wore on and audiences began to tire of the tried and tested giallo formula popularized by the thrillers of Argento, Fulci and their contemporaries, filmmakers sought to reinvigorate the ailing movement by injecting elements from other genres. Some took inspiration from the then-burgeoning crime thriller movement, with tales of organised crime and corrupt police officials... while others decided to sex things up by crossing serial killer thrills with salacious softcore antics.

A spate of highly sexualized murders is rocking a prestigious Milanese fashion house. Ambitious photographer Magda (Edwige Fenech, Your Vice is a Locked Room and Only I Have the Key) and her on-off boyfriend, love rat Carlo (Nino Castelnuovo, The English Patient), team up to crack the case. But, with t [Continued ...]

Daniel Lemire's blog: The fastest conventional random number generator that can pass Big Crush?

In software, we sometimes want to generate (pseudo-)random numbers. The general strategy is to have a state (e.g., a 64-bit integer) and modify it each time we want a new random number. From this state, we can derive a “random number”.

How do you that you have generated something that can pass as a random number? A gold standard in this game is L’Ecuyer’s Big Crush benchmark. It is a set of statistical tests. It is not sufficient to “pass” Big Crush to be a good random number generator, but if you can’t even pass Big Crush, you are in trouble.

When I need a super fast and super simple random number that qualifies, I go for Lehmer’s generator:

__uint128_t g_lehmer64_state;

uint64_t lehmer64() {
  g_lehmer64_state *= 0xda942042e4dd58b5;
  return g_lehmer64_state >> 64;

(Source code)

Once compiled for an x64 processor, the generator boils down to two 64-bit multiplication instructions and one addition. It is hard to beat! The catch is that there is non-trivial data dependency between the calls when using the same state with each call: you may need to complete the two multiplications before you can start work on the next function call. Because our processors are superscalar (meaning that they can do several instructions per cycle), it is genuine concern. You can break this data dependency by having effectively two generators, using one and then the other.

Lehmer’s generator passes Big Crush. There are many other fast generators that pass basic statistical tests, like PCG64, xorshift128+, but if you want raw speed, Lehmer’s generator is great.

Recently, a new fast contender has been brought to my attention: wyhash. It is closely related to a family of random number generators and hash functions called MUM and designed by Vladimir Makarov (there is a nearly identical generator by Makarov called mum-prng). The new contender works as follow:

uint64_t wyhash64_x; 

uint64_t wyhash64() {
  wyhash64_x += 0x60bee2bee120fc15;
  __uint128_t tmp;
  tmp = (__uint128_t) wyhash64_x * 0xa3b195354a39b70d;
  uint64_t m1 = (tmp >> 64) ^ tmp;
  tmp = (__uint128_t)m1 * 0x1b03738712fad5c9;
  uint64_t m2 = (tmp >> 64) ^ tmp;
  return m2;

(Source code)

Wyhash (and presumably mum-prng) passes rigorous statistical tests.

On an x64 processor, the function generators two multiplications, one addition and two XOR. If you are counting, that’s only two instructions more than Lehmer’s generator. Like generators from the PCG family, wyhash updates its seed very simply, and so you can pipeline the generation of two or more random numbers with minimal data dependency between them: as soon as one addition is completed, you can start work on the second number.

Both of these generators might be relatively less performant on ARM processors due to the high cost of generating the full 128-bit product on ARM architectures. They are also both relatively harder to implement in a portable way.

This being said, which is faster on my x64 processor?

Let us run the experiments. I am going to work over sets of 524288 random numbers. I am using a skylake processor and GNU GCC 8. I make my source code available.

First, I just sum up the random numbers being generated.

wyhash 0.51 ms
Lehmer’s 0.63 ms
Lehmer’s (two gen.) 0.48 ms
Lehmer’s (three gen.) 0.37 ms

From run to run, my margin of error is about 0.02.

Next I am going to store the random numbers in an array.

wyhash 0.6 ms
Lehmer’s 0.6 ms
Lehmer’s (two gen.) 0.6 ms
Lehmer’s (three gen.) 0.4 ms

So using three Lehmer’s generators is best.

Of course, using parallel generators in this manner could be statistically unsafe. One would want to run further tests.

Credit: Monakov suggested going to three generators. The post was updated accordingly.

Further Reading: There were apparently some Hacker News comments on both a new hash function (XXH3) and wyhash.

Penny Arcade: Comic: Pre-PAX Pox

New Comic: Pre-PAX Pox

Tea Masters: Top fall 2010 Oriental Beauty in 2 Chaxi

The leaves smell of dark, bitter chocolate, but the brew tastes very sweet! This is the 'magic' and complexity of aged Oolong. The taste becomes more and more round, deep and mellow, while the aromas slowly evolve and shed their fresh production smells.
 In this golden Chaxi setting, the color of the brew shines bright. It reflects the perfume like scents and silky taste of this excellent Oriental Beauty. I made this Chaxi a month ago, with artificial lights for crisp and warm colors.

 Today, I brewed the same top OB of fall 2010 again. I know this, because the Chaxi features the same qinghua jar (in which I've stored my share of this tea). And that's also why I'm brewing it again in the same Yixing teapot, because it worked well in it.

This time the light is natural, indirect and the Chabu has a darker mood. It reflects better the colors of mid March as the northern hemisphere makes its transition from darkness to light. In a month or so, I'll receive direct sunshine at this spot in the afternoon and the feeling will be transformed again.

So, even if we are brewing the same tea, it won't be/feel exactly the same, because you brew it in different settings, different light, different seasons, at different outside temperatures...
Today, the OB felt richer, deeper, darker. And it brought a lot of warmth to my hands in particular! Not just because of the changes of light and chabu, but also because of the way brewed it (a little bit longer, more concentrated, in harmony with the mood, the season...) Complex teas like Oolongs have more than one face, one character. That's why it's possible to express different moods and aromas with them! The harmonious match between tea, feeling and chabu is key to meaningful and beautiful tasting.

Quiet Earth: This Film Wowed Sundance Audiences, Now the Trailer is Out

Monos is directed by Colombian-Ecuadorian filmmaker Alejandro Landes ans is written by Alejandro Landes & Alexis Dos Santos, from a story by Alejandro Landes.

The film premiered at the Sundance Film Festival to heaps of praise and the first trailer has finally dropped.

Eight stray teenagers, each bearing a code name, form a paramilitary squad on a remote hilltop. They are instinctively drawn towards hedonism and ferocity.

A messenger delivers instructions from the Organisation: they are to look after a dairy cow called Shakira and an abducted woman from the USA known as Doctora. But their carefree time comes to an end when death pays them a visit and their position is compromised, forcing them to relocate deeper into the jungle.

Neon will rele [Continued ...]

things magazine: Check your head

Getting inside the head of the man who was Frank Sidebottom / related, Chris Sievey’s The Biz, a Spectrum game from 1984. While we’re at it, the Thompson Twins Adventure from the same year and the (critically acclaimed) Frankie goes … Continue reading

OCaml Weekly News: OCaml Weekly News, 19 Mar 2019

  1. IMPORTANT: Switching from Mantis to GitHub issues on March 14th
  2. GSoC project on Coccinelle
  3. v0.12 release of Jane Street packages
  4. Logical: logic programming framework inspired by microKanren (0.1.0)
  5. Other OCaml News Comic for 2019.03.19

New Cyanide and Happiness Comic

Disquiet: Rhythmic Segmentation

Unlike at clock shops in movies, in this tiny, one-person clock shop the majority of the clocks that tick are blissfully still. But enough are ticking to provide a nice quiet rhythmic segmentation of each second. I’d love to record this place in the middle of the night.

What Sound Looks Like: An ongoing series cross-posted from

Lambda the Ultimate - Programming Languages Weblog: "Three Things I Wish I Knew When I Started Designing Languages"

The transcript of Three Things I Wish I Knew When I Started Designing Languages, a talk given by Peter Alvaro somewhere or other, is up at Info Q.

Peter Alavaro's main research interest is in taming distributed systems. He starts his talk with the provocative thesis, "In the future, all radical new languages will be domain-specific languages." He talks of the evolution of his ideas about dealing with distributed systems:

  1. Little interest by designers of programming-language designers in filling huge difficulty of debugging in context of distributed systems;
  2. PLs often make handling of data somewhat implicit, even with functional programming, which he says is dangerous in distributed programming;
  3. To talk about the flow of data properly, we need to talk about time;
  4. Two things that influenced him as a grad student: Jeff Ullman's claim that encapsulation and declarativity are in tension, and Fagin's theorem (the existential fragment of second-order logic characterises NP);
  5. Idea that distributed systems can be considered as protocols specified a bit like SQL or Datalog queries;
  6. Triviality with query languages of characterising the idea of place in distributive systems: they are just another relation parameter;
  7. Describing evolution of a system in time can be done with two other things: counters and negation, leading to Bertram Ludäscher's language Statelog. But this way of doing things leads to the kind of low-level overexpressive modelling he was trying to avoid;
  8. "What is it about...protocols that they seem to require negation to express?” Turns out that if you drop negation, you characterise the protocols that deliver messages deterministically.

He summarises by saying the only good reason to design a programming language (I assume he means a radically novel language) is to shape your understanding of the problem. No regrets of being the only user of his first language, Datalist, because the point is that it shaped all his later thought in his research.

Daniel Lemire's blog: Don’t read your data from a straw

It is common for binary data to be serialized to bytes. Data structures like indexes can be saved to disk or transmitted over the network in such a form. Many serialized data structures can be viewed as sets of ‘integer’ values. That is the case, for example, of a Roaring bitmap. We must then read back this data. An integer could be serialized as four bytes in a stream of bytes.

We are thus interested in the problem where we want to convert an array of bytes into an array of integer values.

In C or C++, you can safely convert from a stream of bytes to in-memory values using a function like ‘memcpy’. It is fast. Or you can just cheat and do a “cast”.

What do you do in Java?

A convenient approach is to wrap the byte array into an InputStream and then wrap that InputStream into a DataInputStream, like in this example where we convert an array of bytes into an array of integers:

byte[] array = ...
int[] recipient = new int[N / 4];
DataInput di = new DataInputStream(new 
for(int k = 0; k < recipient.length; k++)
    recipient[k] = di.readInt();

The benefit of this approach is improved abstraction: you do not care whether the data comes from an array of bytes or from disk, it is all the same code. If you are have serialization and deserialization code, it is probably written in terms of OutputStream and InputStream anyhow, so why not reuse that perfectly good code?

However, Java offers a performance-oriented concept called a ByteBuffer to represent and array of bytes. It is not as high level as an input stream since it assumes that you do have, somewhere, an array of bytes.

You can achieve the same conversion as before using a ByteBuffer instead:

byte[] array = ...
int[] recipient = new int[N / 4];
ByteBuffer bb = ByteBuffer.wrap(s.array);

Here is the time required to convert 1 million 32-bit integers on my 4.2GHz 2018 iMac:

DataInputStream 10 ms
ByteBuffer 1 ms

That is, the ByteBuffer is 10x faster. My code is available.

Because I have 1 million integers, we can convert back these timings into “time per integer”: the ByteBuffer approach achieves a speed of one 32-bit integer converted per nanosecond. Given that my iMac can execute probably something like a dozen operations per nanosecond, that’s not impressive… but it is at least a bit respectable. The DataInputStream takes 10 nanosecond (or something like 40 or 50 cycles) per integer: it is grossly inefficient.

This has interesting practical consequences. In the RoaringBitmap project, Alvarado pointed out that it is faster to create a bitmap using a ByteBuffer backend, and then convert it back into an normal data structure, than to construct it directly from an input steam. And the difference is not small.

Practically, this means that it may be worth it to provide a special function that can construct a bitmap directly from a ByteBuffer or a byte array, bypassing the stream approach. (Thankfully, we have bitmaps backed with ByteBuffer to support applications such as memory-file mapping.)

Speaking for myself, I was going under the impression that Java would do a fine job reading from a byte array using an input stream. At the very least, we found that ByteArrayInputStream is not the right tool. That a ByteBuffer would be fast is not so surprising: as far as I can tell, they were introduced in the standard API precisely for performance reasons. However, a factor of ten is quite a bit more than I expected.

In any case, it is a perfectly good example of the problem whereas abstractions force you to consume data as if it went through a straw. Streams and iterators are handy abstractions but they often lead you astray with respect to performance.

Further reading. Ondrej Kokes has reproduced these results in Go.

Disquiet: The Room Tone of a Porch

If glitchy little dust particles sending out Morse code via slight alterations in biometric pressure are your thing — and if not, you’re reading the wrong website at the moment — then Josh Mason’s forthcoming album, Coquina Dose, is your thing, at least judging by the two tracks up for pre-release streaming on the Bandcamp page of the releasing label, Florabelle.

The full album is due out March 22, but for now we’ve got “Crack the Juice Code,” the opening track, and “Key Blight” the album’s third. The first is a beautifully understated conglomeration of soft tones and small noises, of sound as texture and of texture as melody. Throughout there’s a very light patter of white noise. It’s vinyl surface dust experienced as environmental data.

The other track feels like it takes us, quite suddenly, outside. The noise of “Juice Code” is traded for bird chatter, at roughly the same volume: not so much distant as background, the room tone of a porch. Both are marked with backward masking, which lends a retrospective, hindsight-gaze quality to the music — so, too, little wisps of warbling pitch changes. On “Key Blight” these latter shifts suggest time being bent, nudged, and suffering small impacts. The music is composed from — comprised of — nothing but such modest materials.

Album first posted at More from Mason at More from Florabelle at

LLVM Project Blog: EuroLLVM'19 developers' meeting program

The LLVM Foundation is excited to announce the program for the EuroLLVM'19 developers' meeting (April 8 - 9 in Brussels / Belgium) !

Technical talks
Student Research Competition
Lightning talks
If you are interested in any of this talks, you should register to attend the EuroLLVM'19. Tickets are limited !

More information about the EuroLLVM'19 is available here

Tea Masters: La différence entre les Song et les Ming en 2 peintures

Empereur Song Zhezong (1077-1100)
La représentation picturale de l'empereur est un acte politique comme la photo officielle du président à l'Elysée. Tout est symbole. Ces 2 portraits d'empereur s'opposent en presque tout.

1. L'empereur Song est vu de 3/4 et cela nous permet de voir que s'il est assis, le dos droit sans  toucher le dossier de sa chaise. Sa position n'est pas confortable et nécessite un effort d'équilibre. Cette notion est renforcée par son chapeau avec ses branches horizontales parallèles au sol. Cela évoque le caractère Yi (un), le trait horizontal, celui qui trace la séparation du ciel et de la terre. Or, l'empereur est justement celui qui incarne l'harmonie, l'unicité sous les cieux. On constate aussi l'austérité de la décoration. Le tissu de la chaise est luxueux, mais est guère visible si on est en face de l'empereur. La beauté de cette étoffe n'est pas mise en avant, mais presque cachée. Sa robe rouge est sobre et magnifique à la fois, grâce, notamment, à ces 2 fines lignes blanches qui remontent jusqu'aux mains. 
Emperor Tianqi (1605-1627)
2. Ce portrait de Tianqi est ce qu'il y a de plus surchargé. Les symboles foisonnent avec des dragons un peu partout pour suggérer la force de cet animal surnaturel qui vole entre ciel et terre. C'est la même idée que pour les Song, mais avec une symbolique bling-bling si vous voulez bien me passer cet anachronisme! La sobriété des Song a fait place à l'ostentation. Tous les objets sont très finement sculptés ou peints, laqués et suggèrent le plus grand luxe, la richesse de l'empereur. Avec un tel état d'esprit, on comprend mieux pourquoi la décoration sur les céramiques prit de l'importance durant les Ming, puis les Qing. Or, comme de nos jours, trop de beauté tue la beauté. Et même l'empereur finit par apparaitre petit et avachi au milieu de tant de splendeurs.
L'empereur Song, lui, a les traits purs et le regard droit, déterminé. Neuf cents ans plus tard, on le sent incroyablement vivant tout en êtant d'un calme olympique, presque méditatif. Regardez ses yeux et vous serez quasiment hypnotisé par son regard!

Voici, en 2 portraits, l'explication de la nostalgie des Chinois pour les Song. Ce n'est pas tant parce qu'ils furent puissants. Au contraire, les Song virent le royaume s'amenuiser et se perdre complètement face aux Mongoles. Non, ce qui rend les Song si admirables, c'est qu'ils mirent les vertus filiales, le respect des maitres, la bienveillance, l'harmonie, la culture et les arts au-dessus du paraitre. Tout avait une signification profonde, simple et pure. Et ce sont ces valeurs qu'on retrouve encore dans le chado japonais ou dans ce thé préparé à la manière des Song!

Michael Geist: The LawBytes Podcast, Episode 3: The CRTC Is “Doing the Least They Can Get Away With”

Earlier this month, Innovation, Science and Economic Development Minister Navdeep Bains took his most significant policy step to date to put his stamp on the Canadian telecom sector by issuing a proposed policy direction to the CRTC based on competition, affordability, consumer interests, and innovation. To help sort through the policy direction, the state of the Canadian telecom market, the role of independent companies that rely on regulated wholesale access, and lingering frustration with the CRTC, this week’s LawBytes podcast features a conversation with Andy Kaplan-Myrth, Vice President of Regulatory and Carrier Affairs with TekSavvy, Canada’s largest independent telecom company. 

The podcast can be downloaded here and is embedded below. Subscribe to the podcast via Apple Podcast, Google Play, Spotify or the RSS feed. Updates on the podcast on Twitter at @Lawbytespod.

Episode Notes:

Enough is Enough: Bains Proposes CRTC Policy Direction Grounded in Competition, Affordability, and Consumer Interests


Government Orders CRTC To Reverse Bandwidth Decision, The Hill Watcher, 3 February 2011

New wireless spectrum auction announced, Global News, 12 January 2014

Why is Canada-based Ting is not available for cell phone users in Canada?, Open Media, 1 August 2013

Verizon opts out of Canada, Canoe, 20 March 2018

House of Commons Hansard, 26 February 2019

House of Commons Hansard, 7 December 2018

The post The LawBytes Podcast, Episode 3: The CRTC Is “Doing the Least They Can Get Away With” appeared first on Michael Geist.

things magazine: Bold and bright

Pavilion fix. Help get Pricegore’s Colour Palace off the ground, a collaboration with the artist Yinka Ilori / The man who takes tech apart – so we can learn how to fix it, a piece on the photographer Todd McLellan … Continue reading Comic for 2019.03.18

New Cyanide and Happiness Comic

MattCha's Blog: gushu? 2016 Chawangshop Manmai Selected Gushu

I really like this one but some reason can’t justify purchasing more…

I snuck a sample cake of this 2016 Chawangshop Manmai Selected Gushu in my order of 2016 Chawangshop Bada.  A few days ago all the prices of these Bada puerh increased.  This rather nice one now sells for $69.00 for 200g cake ($0.35/g), got mine for $60.00 last month.

Whenever I hear the word it always makes me chuckle... it reminds me of a time in the history of puerh drinking when everything was apparently “Gushu” but yet no one really knew what gushu puerh actually was…. Hahaha the good ol days…

Let’s see why I like this one so much…

Dry faint distant dry woods and grasses and florals.  A distant meadow kind of odour.

First infusion starts off with a tangy sweetness and straw taste and a slightly buzzing/ tingling mild mouthfeeling.  The aftertaste is at first mild menthol then mango then a long cotton candy sweetness.  The mouthfeel is sticky and slippery.

The second infusion starts off complex with wheat, sweet, and pungent tastes all at once the mouthfeel is full and stimulating.  The aftertaste is an arm of this pungency but the sweet taste turns into a longer cotton candy like taste on the breath.  There is a bready almost warming spice/ baked apple pie faint base taste in the initial and mid infusions.

The third infusion starts of very viscous and full with dry woody, bready and sweet potato notes, the tea liquor is very thick and there is a warm pungency in it as well.  The aftertaste turns into candy floss.

The fourth infusion starts off slightly astringent and almost bitter with a thick viscous liquor that fills the mouth.  The initially flood of density gives way to a long cotton candy finish in the mouth.  The mouthfeel and tea liquor are intense and full.

The fifth infusion is very full in the mouth, it has a certain intensity to it but it’s not overly bitter or astringent but rather feels like a thick blanket in the mouth.  The initial taste is slightly vegetal and slightly hay and sweet potato.  The aftertaste is very long and sweet.  Bread notes and warm pungent notes a faint but interesting.

The sixth infusion starts off licorice, viscous, and oily thick.  There is a mild wave of cooling and then bread, pudding, homemade baking and a long sweet candy taste.  The Qi is stuffy in the head and makes the eyes feel blurry.

The seventh has a juicy dense dried fig taste upfront now with a thick and slightly bitter density throughout.  The aftertaste is at first sweet baking then into long candy.

The eighth taste more dense sweet upfront, and with long dried fruit tastes sweet cereal grains, sweet bread taste and a candy pop in the aftertaste and longer sweeter candy finish.  The mouthfeel and viscosity are nice and dense and thick.  The candy taste is minutes long on the breath.  The qi feels stuffy in the head.  This qi makes me just stare out into space.

The ninth infusion has a real thick oily onset of dried fruit sweetness in turns into bread then slowly into a candy taste on the breath.  These last infusions have lost some of that intensity of mouthfeel and slight bitterness and now feel very full but not overwhelmingly so.

The tenth has a high noted sweet onset then drops to a lower, almost dried fruit/sweet potato sweetness, then breads, then long candy breath.  The taste and density is real enjoyable here.

The 11th has a high noted pungency to it right off the bat.  It has sweet potato, and breads in there too.  The breath is long, slightly grainy sweetness and candy.  The aftertaste is real long.

The 12th has a buttery slightly bitter onset the mid profile is a nice bread taste then goes into a cool menthol on the breath.   Candy long lingering minutes later.

The 13th infusion is much the same with the sweet bread note more prominent as well as the cooling pungency.  The bitter is gone here.

The 14th infusion gets real smooth bready malty smoothness with nice cooling and long sweet taste.  Thick viscous liquid.

The 15th infusion is very juicy sweet fruit, an abundant splash of sweetness, almost dry fruity like raisin, then mild cool, then sweet bread tastes, then candy.  This puerh is brilliant in these later infusions.

16th is much the same delicious really.  Very full in the mouth very sweet, layered, and long.

I haven’t the time of day to continue to steep this one but I have faith that it would easily go 20+ infusions with amazing tastes.

Overall, this selected gushu is really enjoyable for its price.  Comparing it to the enjoyable 2016 (not selected) this one is considerably better even when the extra price is factored in.  Comparing it to the standard Bada these are both good and cheap in their own right.  There is a subtle thing about these selected leaves that doesn’t make me feel as good as it should and I chalk that up to mainly its youth and maybe its purity.  There is something in this puerh that makes me keep coming back to it despite this- it’s probably because of its thick viscous feeling, vitality, and nice qi.  Don’t let the price fool you, it checks out as gushu in my books.


Trivium: 17mar2019

Jesse Moynihan: Tarot Booklet Page 5

IIII The Emperor Four legs of a table create stability for the plane it supports. Four corners of the earth, four suits, four elements, four seasons, four cardinal directions, four worlds of the hermetic Kabbalah and so on. The armor of Aries (ram skull) clasps across his chest in the form of a cross which […]

Perlsphere: Grant Proposals Mar/Apr 2019

The Grants Committee has received the following grant proposal for the March/April 2019 round.

Before the Committee members vote on any proposal, we like to solicit feedback from the Perl community.

Review the proposals at their individual links and please comment there by March 22nd, 2019. The Committee members will start the voting process following that and the conclusion will be announced shortly after.

Perlsphere: Grant Proposal: Create a complete course of the Perl 6 programming language

The Grants Committee has received the following grant proposal for the March/April 2019 round. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal.

Review the proposal below and please comment here by March 22nd, 2019. The Committee members will start the voting process following that.

A Complete (Interactive) Perl 6 Course with Exercises

  • Name

    Andrew Shitov

  • Amount Requested

    USD $9,996

Task: Create a complete course of the Perl 6 programming language.


I want to create a complete course with exercises covering all aspects of Perl 6. It will be aimed at everyone who is familiar with programming. The goal is to make a course that you can use in self-studying or use as a platform in the class.

Target audience

Perl 6 is a language that many people find extremely attractive. The efforts of our activists during recent years show that there are people from outside of the Perl community who also want to start learning Perl 6.

There are two groups of potential users: those with and without Perl 5 background. As Perl 6 significantly differs from Perl 5, both target groups can benefit from a single Perl 6 course.

Unique points

How this is different from what already exists: vast online documentation, books, etc.? The proposed course is a step-by-step flow that begins from simple things, which makes it different from the documentation. Unlike the books, the main focus will be on having small lessons with many exercises. There are also a few video lectures and introductions, but again with very little homework. Neither I want to have an extended version of the documentation (see, for example, as an example of the tutorial with long lists of features).

My idea is aligned towards interactive courses such as (not completed for Perl 6) and that I used myself to learn and teach Python.


The course contains approximately 15 sections (roughly following the chapters of "Perl 6 Deep Dive"). Each section includes 15-40 lessons. Each lesson covers a single topic (such as accessing array elements or using different variants of multi-methods, or a regex quantifier, or an element of concurrent code) and includes 2-4 exercises with displaying correct solutions on request.

Timeline and deliverable chunks

The project needs about six months to complete all 15 sections; independent sections can be published earlier, upon completion.

The work is divided in four parts. The first three parts are about content, the fourth is to make it interactive.

  1. Materials and exercises for the chapters devoted to the aspects of Perl 6 as a general programming language (thus, variables, functions, file operations, object-oriented programming, etc.).

  2. Chapters about regular expressions and grammars.

  3. Everything else. This part covers topics such as concurrent, functional, and reactive programming, etc. In other words, everything that is beyond the general programming language from point 1.

  4. Implement the exercises from the three above parts as interactive online pages.

The result of the first three parts is a GitHub repository with lessons in Markdown format.


We will need to host it on a subdomain of and/or link at the Resources page of the site. The technical implementation should use JJ's docker image to spawn a compiler for each user. I suggest postponing the question of who pays for the hosting. Potentially we can re-use perltuts's engine. In a minimal form, exercises do not have to be really interactive so that we can gain both time and money on programming the server side.

Additionally or alternatively, this course can be ported to sites such as (but with no video lectures), where they host interactive tutorials for other programming languages. If we choose this way, it will still require a lot of work under Chunk 4 from the above list.

About me

I am a Perl 6 enthusiast since around 2000, have/had run a few Perl 6 blogs:,, wrote three Perl 6 books, spoke with Perl 6 talks at different events including FOSDEM 2019 and organised a number of events dedicated to the Perl programming languages.


The requested amount is US$2499.00 per each of the four parts, thus US$9996 in total.

Daniel Lemire's blog: Science and Technology links (March 16th 2019)

    1. There is mounting evidence that clearing old cells (senescent cells) from old tissues has a rejuvenating effect. There are very few such cells in most cases, but they cause a disproportionate amount of problems. Anderson et al. find that this effect might even extend to our hearts

      clearance of senescent cells in mice alleviates detrimental features of cardiac ageing, including myocardial hypertrophy and fibrosis.

      Cells in our hearts do not divide very much or at all, but the authors find that they still “age” due to genetic damage.

    2. Dyakonov, a famous physicist, is quite critical of the notion that quantum computers might be the future of computing:

The huge amount of scholarly literature that’s been generated about quantum-computing is notably light on experimental studies describing actual hardware. (…) There is a tremendous gap between the rudimentary but very hard experiments that have been carried out with a few qubits and the extremely developed quantum-computing theory, which relies on manipulating thousands to millions of qubits to calculate anything useful. That gap is not likely to be closed anytime soon.

We should always be skeptical regarding negative predictions. However, Dyakonov indicates that there is overwhelming emphasis on theory at the expense of practice. This is often a bad sign: theory is useful but disconnected theory is easily overrated.


things magazine: Stairs to nowhere

A few snippets. some thoughts on online magazines, courtesy of the founder of The Millions / Everywhere At The End Of Time – Stage 6, a final release, apparently, from The Caretaker / Bauhaus-style logos of famous brands at Kottke … Continue reading

LLVM Project Blog: LLVM Numerics Blog

Keywords: Numerics, Clang, LLVM-IR, : 2019 LLVM Developers' Meeting, LLVMDevMtg.

The goal of this blog post is to start a discussion about numerics in LLVM – where we are, recent work and things that remain to be done.  There will be an informal discussion on numerics at the 2019 EuroLLVM conference next month. One purpose of this blog post is to refresh everyone's memory on where we are on the topic of numerics to restart the discussion.

In the last year or two there has been a push to allow fine-grained decisions on which optimizations are legitimate for any given piece of IR.  In earlier days there were two main modes of operation: fast-math and precise-math.  When operating under the rules of precise-math, defined by IEEE-754, a significant number of potential optimizations on sequences of arithmetic instructions are not allowed because they could lead to violations of the standard.  

For example: 

The Reassociation optimization pass is generally not allowed under precise code generation as it can change the order of operations altering the creation of NaN and Inf values propagated at the expression level as well as altering precision.  

Precise code generation is often overly restrictive, so an alternative fast-math mode is commonly used where all possible optimizations are allowed, acknowledging that this impacts the precision of results and possibly IEEE compliant behavior as well.  In LLVM, this can be enabled by setting the unsafe-math flag at the module level, or passing the -funsafe-math-optimizations to clang which then sets flags on the IR it generates.  Within this context the compiler often generates shorter sequences of instructions to compute results, and depending on the context this may be acceptable.  Fast-math is often used in computations where loss of precision is acceptable.  For example when computing the color of a pixel, even relatively low precision is likely to far exceed the perception abilities of the eye, making shorter instruction sequences an attractive trade-off.  In long-running simulations of physical events however loss of precision can mean that the simulation drifts from reality making the trade-off unacceptable.

Several years ago LLVM IR instructions gained the ability of being annotated with flags that can drive optimizations with more granularity than an all-or-nothing decision at the module level.  The IR flags in question are: 

nnan, ninf, nsz, arcp, contract, afn, reassoc, nsw, nuw, exact.  

Their exact meaning is described in the LLVM Language Reference Manual.   When all the flags are are enabled, we get the current fast-math behavior.  When these flags are disabled, we get precise math behavior.  There are also several options available between these two models that may be attractive to some applications.  In the past year several members of the LLVM community worked on making IR optimizations passes aware of these flags.  When the unsafe-math module flag is not set these optimization passes will work by examining individual flags, allowing fine-grained selection of the optimizations that can be enabled on specific instruction sequences.  This allows vendors/implementors to mix fast and precise computations in the same module, aggressively optimizing some instruction sequences but not others.

We now have good coverage of IR passes in the LLVM codebase, in particular in the following areas:
* Intrinsic and libcall management
* Instruction Combining and Simplification
* Instruction definition
* SDNode definition
* GlobalIsel Combining and code generation
* Selection DAG code generation
* DAG Combining
* Machine Instruction definition
* IR Builders (SDNode, Instruction, MachineInstr)
* CSE tracking
* Reassociation
* Bitcode

There are still some areas that need to be reworked for modularity, including vendor specific back-end passes.  

The following are some of the contributions mentioned above from the last 2 years of open source development: : MachineInst support mapping SDNode fast math flags for support in Back End code generation : [SelectionDAG] propagate 'afn' and 'reassoc' from IR fast-math-flags : Fast Math Flag mapping into SDNode : [DAG] propagate FMF for all FPMathOperators : updating isNegatibleForFree and GetNegatedExpression with fmf for fadd easing the constraint for isNegatibleForFree and GetNegatedExpression : Utilize new SDNode flag functionality to expand current support for fdiv : Utilize new SDNode flag functionality to expand current support for fma : Utilize new SDNode flag functionality to expand current support for fadd : Utilize new SDNode flag functionality to expand current support for fsub : Utilize new SDNode flag functionality to expand current support for fmul : refactor of visitFADD for AllowNewConst cases : propagate fast math flags via IR on fma and sub expressions : guard fneg with fmf sub flags : fold FP binops with undef operands to NaN : guard fsqrt with fmf sub flags : Mapping SDNode flags to MachineInstr flags : extend folding fsub/fadd to fneg for FMF : [NFC] adding tests for Y - (X + Y) --> -X : [InstCombine] fold fneg into constant operand of fmul/fdiv : extend folding fsub/fadd to fneg for FMF : extend binop folds for selects to include true and false binops flag intersection : add a missed case for binary op FMF propagation under select folds : Guard FMF context by excluding some FP operators from FPMathOperator : adding initial intersect test for Node to Instruction association : in preparation for adding nsw, nuw and exact as flags to MI : add IR flags to MI : Copy utilities updated and added for MI flags : add new flags to a DebugInfo lit test : [InstSimplify] fold 'fcmp nnan oge X, 0.0' when X is not negative : Add FMF management to common fp intrinsics in GlobalIsel : [NFC] TLI query with default(on) behavior wrt DAG combines for fmin/fmax target… (Fold fma (fneg x), K, y -> fma x, -K, y) : Move IR flag handling directly into builder calls for cases translated from Instructions in GlobalIsel : adding baseline fp fold tests for unsafe on and off : NFC: adding baseline fneg case for fmf : [InstrTypes] add frem and fneg with FMF creators : [InstCombine] Missed optimization in math expression: simplify calls exp functions : [IRBuilder] Fixup CreateIntrinsic to allow specifying Types to Mangle. : [InstCombine] Support (sub (sext x), (sext y)) --> (sext (sub x, y)) and (sub (zext x), (zext y)) --> (zext (sub x, y)) : [InstCombine] fold udiv with common factor from muls with nuw
Commit: e0ab896a84be9e7beb59874b30f3ac51ba14d025 : [InstCombine] allow more fmul folds with ‘reassoc'
Commit: 3e5c120fbac7bdd4b0ff0a3252344ce66d5633f9 : [InstCombine] distribute fmul over fadd/fsub : [InstCombine] canonicalize fcmp ord/uno with constants to null constant : [InstSimplify] fold and/or of fcmp ord/uno when operand is known nnan : [LibCallSimplifier] fix pow(x, 0.5) -> sqrt() transforms : [ValueTracking] readnone is a requirement for converting sqrt to llvm.sqrt; nnan is not : [IR] redefine 'reassoc' fast-math-flag and add 'trans' fast-math-flag : [ValueTracking] ignore FP signed-zero when detecting a casted-to-integer fmin/fmax pattern : Optimize square root squared (PR21126) : [InstSimplify] (X * Y) / Y --> X for relaxed floating-point ops : [InstSimplify] allow exp/log simplifications with only 'reassoc’ FMF : [InstCombine] allow fdiv folds with less than fully 'fast’ ops : [ConstantFold] fp_binop AnyConstant, undef --> NaN : [InstSimplify] loosen FMF for sqrt(X) * sqrt(X) --> X : [InstSimplify] fp_binop X, NaN --> NaN : [CodeGen] use nsw negation for abs : [DAGCombiner] restrict (float)((int) f) --> ftrunc with no-signed-zeros : [InstCombine] fold vector select of binops with constant ops to 1 binop (PR37806) : DAG: Preserve nuw when reassociating adds : InstCombine: Preserve nuw when reassociating nuw ops : [DAGCombiner] try to convert pow(x, 1/3) to cbrt(x) : [DAGCombiner] try to convert pow(x, 0.25) to sqrt(sqrt(x)) : [FPEnv] Last BinaryOperator::isFNeg(...) to m_FNeg(...) changes : [ValueTracking] determine sign of 0.0 from select when matching min/max FP : [InstCombine] Fold (C/x)>0 into x>0 if possible : [SelectionDAG] fold FP binops with 2 undef operands to undef : propagate fast-math-flags when folding fcmp+fpext, part 2 : propagate fast-math-flags when folding fcmp+fpext : [InstCombine] propagate fast-math-flags when folding fcmp+fneg, part 2 : [InstSimplify] fold select (fcmp X, Y), X, Y : propagate fast-math-flags when folding fcmp+fneg : [InstCombine] canonicalize -0.0 to +0.0 in fcmp : [InstCombine] loosen FP 0.0 constraint for fcmp+select substitution : [InstCombine] refactor fabs+fcmp fold; NFC : [InstSimplify] fold 'fcmp nnan ult X, 0.0' when X is not negative : [InstCombine] add assertion that InstSimplify has folded a fabs+fcmp; NFC

While multiple people have been working on finer-grained control over fast-math optimizations and other relaxed numerics modes, there has also been some initial progress on adding support for more constrained numerics models. There has been considerable progress towards adding and enabling constrained floating-point intrinsics to capture FENV_ACCESS ON and similar semantic models.

These experimental constrained intrinsics prohibit certain transforms that are not safe if the default floating-point environment is not in effect. Historically, LLVM has in practice basically “split the difference” with regard to such transforms; they haven’t been explicitly disallowed, as LLVM doesn’t model the floating-point environment, but they have been disabled when they caused trouble for tests or software projects. The absence of a formal model for licensing these transforms constrains our ability to enable them. Bringing language and backend support for constrained intrinsics across the finish line will allow us to include transforms that we disable as a matter of practicality today, and allow us to give developers an easy escape valve (in the form of FENV_ACCESS ON and similar language controls) when they need more precise control, rather than an ad-hoc set of flags to pass to the driver.

We should discuss these new intrinsics to make sure that they can capture the right models for all the languages that LLVM supports.

Here are some possible discussion items:

  • Should specialization be applied at the call level for edges in a call graph where the caller has special context to extend into the callee wrt to flags?
  • Should the inliner apply something similar to calls that meet inlining criteria?
  • What other part(s) of the compiler could make use of IR flags that are currently not covered?
  • What work needs to be done regarding code debt wrt current areas of implementation.

OUR VALUED CUSTOMERS: While discussing social media...

MattCha's Blog: In Search of Bada & 2016 Chawangshop Manmai (Not Selected) Gushu

Oh, to be not selected… do you remember what it felt like to have your hand up in class and to be not selected by the teacher?….

…So in many ways I feel kind of bad for this free sample of 2016 Chawangshop Manmai (Not Selected) Gushu that was sent along with my recent order of 2016 Chawangshop Bada

Wait a minute… it wasselected as my free sample… that has to count for something?…

This is coming from someone who has a long history with Bada area puerh but who has never been able to close the deal and select it…

In my mind it goes back quite a while actually…

My search for a good Bada area puerh was first piqued back in 2006 and 2007 when I tried the famous puerh mountain cake series by Douji in those years.  While I ended up going for the Yiwu cakes instead, their examples of Bada were pretty good and left an impression on me.  As time passed I convinced myself I need some Bada puerh in my drinking repertoire but this proved to be no easy task.  Firstly, because it’s hard to find quality Bada and secondly, very few Western puerh vendors sell Bada (even the might library of Yunnan Sourcing onlybrings us 3 such Bada area cakes ).

One of the best Bada’s in my memory has to be the famous 2010 Essence of Tea Manmai.  This one sold out and was at a time that I was not really buying too much fresh young puerh. However, as time went on I seemed to crave the simple satisfying Bada profile more and more.  One time in 2012 or 2013 I got quite desperate and rather weak and my puerh drinking buddy in Victoria had to twist my arm in an attempt to prevent me from overspending on a measly 2003 Bada toucha (thank you my friend)… but in the end I was still left without any Bada.

I think part of my yearning for Bada has to do with Hobbes continual hyping (maybe even exaggerating) of very economical Bada cakes on this blog around this time.  He highlighted many Bada from Chawangshop which were priced at $17/$18 for 200g cake at that time.  He is also credited for the speedy selling out of the 2012 Bada (I never tried that one but did sample their 2013).  His sketch of the Bada profile depicted in Star Wars images is forever seared in my mind when thinking of Bada as well.

Today I choosethis 2016 Chawangshop Manmai Gushu ($40.00 for 200g cake or $0.20/g)…

Dry leaves smell of weeds, dandelion, cut grass, salty seaweeds and creamy sweetness.  Vegetal sweetness is the phrase that comes to mind.

First infusion is very light hay and dry grassy notes almost ghostly icing sugar taste in a very watery light broth with very faint coolness and, dry hay sweetness returning.  Very mild here in this first infusion.

The second infusion starts with more strength in its icing sugar sweetness.  Icing sugar is the base taste here.  It stretches out long on the breath.  There is only faint hints of hay in the distance.  This is mainly just delicate and pure long sweet icing sugar taste.  The taste is very long on the breath.

The third infusion is much the same pure and strong icing sugar taste.  There is a faint note of string beans in the background.  The mouthfeel is juicy feeling and moderately lubricated feeling.  The sweet pure aftertaste is very long.

The four infusion has a very very mild touch of bitterness which is just a blip to induce sweetness in the mouth.  A quick grape-like sweetness pops and recedes quickly there very faint sweet hay.  Very nice icing sugar sweetness along with a creamier, more solid sweetness over top.  Qi is very mild relaxing type.  Mainly in head.

The fifth starts with an astringent glimpse then a creamy, malty almost caramel sweetness, almost cookie like, there is a longer grape note and returning coolness with layered sweetness of grape, icing sugar, and creamy sweet.  There is a certain clarity and purity to this tea.  The aftertaste somehow gets trapped in the mid to deep throat but the mouthfeel is so subtle almost mossy.  The aftertaste is very long. 

The sixth infusion has that same quick astringency then unravels into creamy malty sweetness.  There are very mild notes of dry hay in the distance.  This profile is dominated by sweet layers.  The mouthfeel has a mild astringent feel to it now.  The sweetness is denser now as well. The qi can be felt nicly fluttering in the heart as well as giving the head a mild spacy sensation.  The long mild pungent coolness drags these sweetness out.

The seventh has a bubble gum, almost grapey taste initial sweetness that has an almost juicy almost hay and woody undertone.  The grape sweetness is the most pronounced in the initial taste and the creamy sweetness is the most pronounced in the aftertaste icing sugar sweetness is the most noticeable on the breath.  It’s a layered, pure, vibrant sweet layer thing going on her.  The qi is starting to build and excite the mild making the world rush around me.  My heart flutters.

The eighth infusion starts with a grassy but juicy almost grape fruity burst.  Just as above, the sweetnesses take their turn unraveling.  The mouthfeel is mossy, mildly sticky.  It is mainly felt on the lips.  The throat opens deeply.  The aftertaste is very long.  The qi sensation is really nice.  I can feel it in the superficial face, like it’s numb.  I feel quite high from this one.

The ninth infusion starts with a quick moving astringency, then grape, then wild mint, then creamy, slight malt, then icing sugar.

The tenth infusion starts with a more drawn out almost citrus like astringency with a buttery taste underneath.  The creamy and icing sugar sweetness play out in the aftertaste/ breath.

The eleventh infusion is sweet and buttery almost hay sweetness.  The mouthfeel is sticky and almost sandy.  This infusion has lessened in the initial taste but the aftertaste remains long and very sweet.

The twelfth infusion is almost dry wood and hay with a buttery sweetness underneath.  The returning sweetness is strong and unwavering pure long sweetness.

Thirteenth infusion turned out a bit bitter initially with a dry woody aspect.  Might have not got all the tea liquor out of the pot.  The aftertaste is much the same.  This tea makes me break a sweet.

The fourteenth is more buttery and flowery along with an increasing and lasting bitter astringency.  The aftertaste is stable and nice.

The fifteenth is buttery and hay tasting with long sweetness over a bitterness and slight dryness that now enters the aftertaste.  A returning coolness is trying to punch through.

The sixteenth I put to a 30 second infusion and push out more buttery and layer sweetnesses in both the initial and aftertastes.

The seventeenth I put into a long infusion and get a deep dense dark honey sweetness with some bitter and astringency.

I ended up steeping what was left of the sample today with a much fewer grams of dry leaf and got a completely different session out of it.  Today’s under leafed session was very grassy, weedy, and dandelion.  The bitterness was much less but the icing sugar finish was almost unnoticeable.  This tells me that this puerh need to be pushed hard to a point that it is slightly bitter so there is a strong returning sweetness.  I also question how this one will age out give then weaker presentation today.

Overall, this one has decently nice Qi, a nice long aftertaste, this puerh is real crisp and nicely processed.  I feel a very very mild itch in my body so I wonder about the purity but overall it feels pretty good in my body.  I won’t be ordering this one but for $40.00 xiao bing it’s a decent enough deal as this one is significantly better than its price tag, I think.
Surely, a solid choice for the budget drinker looking for something of quality on the cheap.


Perlsphere: February report of the Perl 6 Development Grant of Jonathan Worthington

Jonathan writes:

The majority of my Perl 6 grant time during February was spent on the escape analysis and scalar replacement work. Happily, the first round of work on this analysis and optimization reached the point of being complete and stable enough to merge into MoarVM master, so Perl 6 users can now benefit from it. I also made allocation profiling aware of scalar replacement, meaning profiling does not block the optimization and collects statistics about how many scalar replacements took place.

I also started on the next round of escape analysis work, which handles transitive object relationships. This means if we have, for instance, a Scalar that does not escape, and a Num which also does not escape is assigned into it, then we can scalar replace both. The basic algorithm currently in master would conservatively consider the Num as having escaped. Further work is needed with regard to deoptimization of such cases before this work can be merged.

I also worked on enabling more aggressive optimization of inlined code. Sometimes, knowledge of the context the code is being inlined into allows for significant further optimization of the inlinee. While profiling a hash benchmark, I spotted some duplicated sanity checks during hash access, and eliminated those for a speedup, and started looking into a means to speed up attribute access in the non-mixin case.

Finally, I fixed a recent regression, and did assorted bits of code reivew, replying to issues, and merging PRs.

9:45    Fix remaining issues with basic escape analysis and
    scalar replacement; merge the branch
1:26    Integrate allocation profiling and scalar replacement
5:09    Work on transitive object handling in escape analsyis
3:50    More aggressively optimize inlined code after inlining
1:43    Look into a bug involving BEGIN, closures, and $/; fix it.
1:29    Eliminate duplicate checks on hash access, giving ~5% off
    a hash access benchmark
3:55    Work on speeding up attribute access in non-mixin cases
1:48    Assorted code review, replying to issues, merging PRs

Total: 29:05

Remaining funding-approved hours on current grant period: 131:46
Remaining community-approved hours on current grant period: 297:46

Disquiet: Disquiet Junto Project 0376: Pi Filling

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.

Deadline: This project’s deadline is Monday, March 18, 2019, at 11:59pm (that is, just before midnight) wherever you are on. It was posted shortly before noon, California time, on Thursday, March 14, 2019.

Tracks will be added to the playlist for the duration of the project.

These are the instructions that went out to the group’s email list (at

Disquiet Junto Project 0376: Pi Filling
The Assignment: Celebrate Pi Day.

Step 1: There is only one step for this project: Make music by applying pi (3.14159…) in celebration of Pi Day, March 14, 2019.

Seven More Important Steps When Your Track Is Done:

Step 1: Include “disquiet0376” (no spaces or quotation marks) in the name of your track.

Step 2: If your audio-hosting platform allows for tags, be sure to also include the project tag “disquiet0376” (no spaces or quotation marks). If you’re posting on SoundCloud in particular, this is essential to subsequent location of tracks for the creation a project playlist.

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

Step 4: Post your track in the following discussion thread at

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

Step 6: If posting on social media, please consider using the hashtag #disquietjunto so fellow participants are more likely to locate your communication.

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

Additional Details:

Deadline: This project’s deadline is Monday, March 18, 2019, at 11:59pm (that is, just before midnight) wherever you are on. It was posted shortly before noon, California time, on Thursday, March 14, 2019.

Length: The length is up to you.

Title/Tag: When posting your track, please include “disquiet0376” 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: Consider setting your track as downloadable and allowing for attributed remixing (i.e., a Creative Commons license permitting non-commercial sharing with attribution, allowing for derivatives).

For context, when posting the track online, please be sure to include this following information:

More on this 376th weekly Disquiet Junto project — Pi Filling / The Assignment: Celebrate Pi Day — at:

More on the Disquiet Junto at:

Subscribe to project announcements here:

Project discussion takes place on

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

Image associated with this project adapted (cropped, colors changed, text added, cut’n’paste) thanks to a Creative Commons license from a photo credited to Emily:

i like this art: Pixy Liao

Pixy Liao

Work from Experimental Relationship.

“As a woman brought up in China, I used to think I could only love someone who is older and more mature than me, who can be my protector and mentor. Then I met my current boyfriend, Moro. Since he is 5 years younger than me, I felt that whole concept of relationships changed, all the way around. I became the person who has more authority & power. One of my male friends even questioned how I could choose a boyfriend the way a man would choose a girlfriend. And I thought, “Damn right. That’s exactly what I’m doing, & why not!”

I started to experiment with this relationship. I would set up all kinds of situations for Moro and I to perform in the photos. My photos explore the alternative possibilities of heterosexual relationships. They question what is the norm of heterosexual relationships. What will happen if man & woman exchange their roles of sex & roles of power. Because my boyfriend is Japanese, and I am Chinese, this project also describes a love and hate relationship.

This project is an ongoing project which grows with our real relationship but is never meant to be a documentation.” – Pixy Liao

Also, check out Temple for Her at Flyweight Projects.

The Shape of Code: Altruistic innovation and the study of software economics

Recently, I have been reading rather a lot of papers that are ostensibly about the economics of markets where applications, licensed under an open source license, are readily available. I say ostensibly, because the authors have some very odd ideas about the activities of those involved in the production of open source.

Perhaps I am overly cynical, but I don’t think altruism is the primary motivation for developers writing open source. Yes, there is an altruistic component, but I would list enjoyment as the primary driver; developers enjoy solving problems that involve the production of software. On the commercial side, companies are involved with open source because of naked self-interest, e.g., commoditizing software that complements their products.

It may surprise you to learn that academic papers, written by economists, tend to be knee-deep in differential equations. As a physics/electronics undergraduate I got to spend lots of time studying various differential equations (each relating to some aspect of the workings of the Universe). Since graduating, I have rarely encountered them; that is, until I started reading economics papers (or at least trying to).

Using differential equations to model problems in economics sounds like a good idea, after all they have been used to do a really good job of modeling how the universe works. But the universe is governed by a few simple principles (or at least the bit we have access to is), and there is lots of experimental data about its behavior. Economic issues don’t appear to be governed by a few simple principles, and there is relatively little experimental data available.

Writing down a differential equation is easy, figuring out an analytic solution can be extremely difficult; the Navier-Stokes equations were written down 200-years ago, and we are still awaiting a general solution (solutions for a variety of special cases are known).

To keep their differential equations solvable, economists make lots of simplifying assumptions. Having obtained a solution to their equations, there is little or no evidence to compare it against. I cannot speak for economics in general, but those working on the economics of software are completely disconnected from reality.

What factors, other than altruism, do academic economists think are of major importance in open source? No, not constantly reinventing the wheel-barrow, but constantly innovating. Of course, everybody likes to think they are doing something new, but in practice it has probably been done before. Innovation is part of the business zeitgeist and academic economists are claiming to see it everywhere (and it does exist in their differential equations).

The economics of Linux vs. Microsoft Windows is a common comparison, i.e., open vs. close source; I have not seen any mention of other open source operating systems. How might an economic analysis of different open source operating systems be framed? How about: “An economic analysis of the relative enjoyment derived from writing an operating system, Linux vs BSD”? Or the joy of writing an editor, which must be lots of fun, given how many have text editors are available.

I have added the topics, altruism and innovation to my list of indicators of poor quality, used to judge whether its worth spending more than 10 seconds reading a paper.

Tea Masters: Can Taiwan Oolongs compete?

 Taiwan is an advanced economy where the living standards are quite high and similar to many European countries. It's not a country with very low wages and labor intensive industries have long migrated to China and South-East Asia. That's why it's quite normal that Taiwan Oolongs face competition from Asian countries where similar teas can be made at lower costs. Price remains a very important factor when consumers purchase their tea. This tea class aims to find out if Taiwan's Oolongs can compete against their foreign copies. 

1. Oriental Beauties
 From left to right:
- Overseas OB from 2018 (reviewed here before),
- 10 years old top grade OB from Hsin Chu,
- OB tradtion from Hsin Chu.
 1. The overseas OB doesn't exhibit much character. It seems like watered down compared to the other 2. Its brew has the lightest hue.
2. This aged OB wasn't roasted (unlike my OB tradition), but the leaves contain lots of buds and exhibit a very thorough oxidation. Its scents are amazing, like perfume. The taste, though, is a little sour.
3. This OB tradtion differs from the other 2, because it has been well roasted. That's the reason why, despite bigger leaves and a lower oxidation, it has a very deep and sweet taste that was very enjoyable.
I should also mention that we did all our comparisons with 3 grams of tea brewed for 6 minutes with boiling water. We pushed the leaves to their limits with these Dong Ding Oolong competition parameters. It's possible to get better tasting tea from these leaves, but our purpose was to find their weaknesses in order to evaluate their quality.

2. High mountain Oolong
 From left to right:
- Spring 2018 Alishan Qingxin Oolong,
- Overseas Qingxin Oolong (reviewed here before),
- Spring 2018 Alishan Jinxuan Oolong.
- The Alishan Qingxin has the smallest and greenest leaves. The shine of its brew is the best, but the hue difference with the other 2 teas isn't that big. The fragrances are flowery, delicate and powerful. The taste is smooth, coating and lacking bitterness.
- The overseas Qingxin has the largest leaves. The brew doesn't have have much of a fresh or spring like scent. The taste is rather coarse, not bad, still drinkable, but not particularly good.
- The Alishan Jinxuan is just slightly more expensive than the overseas Qingxin, but my student Antonio and I both felt that it tasted much better, more refined and with a fresher high mountain character.
It was interesting to conduct these 2 comparisons in the company of my Spanish tea student. I didn't tell him which tea was which, and he was able to spot the overseas teas in both instances. Having a second, less biased opinion than mine, was helpful to evaluate the quality of these 6 teas. Taiwanese Oolongs may not always be able to compete on price, but in terms of quality they are indeed superior and worth it, in our opinion.
Antonio suggested that one reason was that I had done a good selection of my Taiwanese Oolongs! Maybe this comparison is a little bit biased, because the overseas teas didn't go through my selection process and I chose what was easily available?... I believe it' always possible to find better teas overseas, but these 2 are still relevant, because they should be quite typical of what you get when you're aiming for a low price instead of quality.

The verdict is that these overseas Oolongs are not horrible to drink and require some experience or such a comparison to figure out that they are not Taiwanese. Especially the dry leaves are very similar and easy to fool us. However, (well selected!) Taiwanese Oolongs provide superior aromas and a much more enjoyable tasting experience. And Jinxuan Oolong from Alishan is a very good alternative for those who want a high mountain Oolong at a very attractive price level!

3. 3 tea moutains comparison
 From left to right:
Da Yu Ling 90K, Spring 2017,
- Alishan Changshuhu, Spring 2018,
- Long Feng Xia (Shan Lin Xi), Spring 2017
We concluded the class with this comparison of 3 high mountain Oolongs. The Da Yu Ling was naturally the best and most powerful, but the Alishan was surprisingly close and similar. Excellent value! The most delicate, however, was the Shan Lin Xi. In the previous comparison, the Alishan was the most delicate, while now it tasted energetic and strong. This reminds us that the attributes of a tea are relative and depend to what you compare it to! Comparisons help to broaden your horizon and find the light in the dark!
Reminder: in order to give you the opportunity to make similar comparisons,
1. I offer a 5 gr sample of overseas OB for any order including at least 30 USD of OB or aged OB. (1 sample per order as long as my inventory lasts).
2. I offer a 5 gr sample of overseas Qingxin Oolong for any order including at least 30 USD of high mountain Oolong. (1 sample per order as long as my inventory lasts).

Charles Petzold: π Does Not Exist

The thing we call π is the ratio of the circumference of an ideal circle to its diameter, but the word “ideal” here means “existing only in the mind.” Perfect circles can’t exist in the real world.

... more ...

i like this art: Amanda Curreri

Amanda Curreri

Work from COUNTRY HOUSE_ at Romer Young Gallery.

“Curreri currently resides in a purple state in a city imprinted with the socio-geography of American racism. Cincinnati, OH is nestled along the Ohio River, which in antebellum times signified the dividing line between the North and South. Teaching and making art in this context have deeply impacted this new work.

Textiles have become increasingly significant in Curreri’s work for their ability to prompt discussions of history, labor, class, sociability, performance of identity, and use-value. The works in the exhibition include self-drafted garments; large-scale, two-sided banners that act as soft architectures; a series of collages culled from vintage On Our Backs magazines remixed with pages from a textiles history book; and paintings composed from deconstructed garments, dog toys, recycled flag-parts, and elements from LGBTQ archives.

This work has also been developed in tandem with Curreri’s recent travel fellowships in Japan and Mexico to research traditional textile methodologies as well as pre-Capitalism communication strategies (glyphs and symbols). While clearly influenced by techniques and forms, Curreri underscores the impact of the interpersonal experience of studying with teachers in these two countries and the required verbal and cultural shifts. Jumping between languages and digging into histories results in ad-mixtures, conflations, and inventions. For example, one artwork in the exhibition, HomoHime, is named after a mis-remembering of a particular method of Japanese ceremonial braiding called kumihimo. The new hybrid term suggests instead: “Gay Princess” (from homo in English and hime in Japanese).

This kind of openness to new meanings is built upon respect for preceding knowledges. It becomes a key tenant of this body of work searching for ways of integrating multiplicities and differences. COUNTRY HOUSE_ prods the construction and performance of collective and individual identities in a climate that is advertising racism and misogyny.” – Romer Young Gallery

things magazine: Standing under stones

Recalling random acts of kindness / Fixing Computer Space, restoring one of the earliest arcade machines / three-dimensional origami made of fabric backed plywood by Sinead Fahey / Toyota Lunar Camper concept / an obituary of Sir John Richardson, biographer … Continue reading

Tea Masters: California zen

 Meet Cami, my latest tea student. Rarely have I seen someone so kind, so sensitive, so enthusiast and grateful. She will bring peace and joy to any tea event she will attend or organize, so welcome her with open arms if she knocks on the door of your tea room or tea house! Usually I teach tea at a table, but through the e-mails we exchanged, I felt that she'd enjoy more to practice the tea the way I do it usually, sitting on the ground. And indeed, Cami's posture is so good that I should learn from her!!
We started with this spring 2017 Da Yu Ling and I showed her how to brew it well in a porcelain gaiwan, the ideal tool for a beginner. I explained the connection between the tea and the color of the cups. I also explained that the main purpose of a Chaxi is to produce a great cup of tea with style and harmony.
Our second tea is this winter 2017 Hung Shui Oolong from Dong Ding. Like with the Da Yu Ling, I'm brewing the most typical tea of this other major Taiwanese tea category. But this time, I'm brewing it in an Yixing teapot, Chaozhou style. Cami is very interested by the step by step process of a tea brewing. Showing her how tea is brewed in a traditional gongfucha way, she could see that it's quite different from using a gaiwan.
Cami performed the second and third brews. Naturally, she made several mistakes when she poured the tea for the first time with this teapot. The good thing is that she could taste how her mistakes impacted the taste of the tea. And for the next brew, with my advice, she was able to correct the problems and achieve a very nice taste! A good teapot may help to get a better cup (than a gaiwan), but it's no guarantee. It still takes skill and practice to reach a good harmony between the roasted notes and the fresh tea aromas.
 To enjoy, understand and learn tea, one should be focused and sensitive to the little details. Cami has all these qualities and this made teaching her very enjoyable. She even reminded me of my Californian cousin, so that I felt she was family! We even found out that we shared another connection: we both read the book The Artist's Way that is about finding one's creative self!
For the third and last tea, I wanted again to show how varied the brewing method of tea can be. This time, I brewed this spring 2018 Biluochun in a black glazed bowl by Michel François. Historically, these bowls were invented during the Song dynasty, a millennium ago. They were used to whisk green tea powder. That's why it makes sense to brew (whole leaf) green tea in such a bowl.
Cami's smile reminds us of my Chinese logo, Cha zhi Le: Happiness in tea!

new shelton wet/dry: But she caught me on the counter (It wasn’t me)

many people will reject their own arguments – if they’re tricked into thinking that other people proposed them. { Neuroskeptic | Continue reading } set of 10 woodcuts in ultramarine blue, on Okawara paper { Donald Judd, Untitled, 1988 }

i like this art: Alex Gardner

Alex Gardner

Work from RomCom at The Hole.

“Welcome to Alex Gardner’s 1st solo show in New York, “RomCom”, featuring fourteen new acrylic on linen paintings by the Long Beach-based artist. His entangled ink-black bodies are draped with dramatically folding white cotton separates and posed in pastel environments where the reflections of color produce subtle gradients and thoughtful tonal shifts.

The paintings indicate in gesture and pose a wordless “romantic comedy”. As in Mannerist paintings, they capture drama with their bodies through the distortion of torsion, a clump of muscle, a knobby knuckle, a languid wrist. Over-articulated fingers and feet contrast with completely featurelessly smooth faces; expression is only through body language. Gender is hinted at but as with the skin and the clothes and the environments, all cultural signifiers are smoothed over to de-individuate and universalize.

In these paintings the artist charges the familiar with poignancy, highlights the details as important, and paints figures that all genders and races could see themselves in. Mimicking snippets of classical painting—from an El Greco hand to a Pietà carry, a crucifixion foot, a Michelangelo muscle group—he is not just inserting his contemporary identity into art history, but also opening up these art historical perspectives for all viewers to connect with.

The body parts are not anatomically perfect and, as with the drapery, willfully fancified; signs the artist is not working from figure models or photographs but from his imagination augmented by emotion. The smooth gradient paint style of layered acrylics (illogical for figure painting as a genre) must be maddening to apply, painstaking to perfect. There may be chill pastels and casual wear in these works, but the compositions scintillate with restrained emotion.

His titles try to ease the tension: “Forgot My Wallet” negates the intimacy depicted of one figure carrying the other, while “Picnic with a Future Ex” is glib. “Audition in the Frozen Food Section” emphasizes the performativity of romantic relationships as a theme, but the detached vibe doesn’t match the intense and dramatic works: as in the layers and layers of acrylic built up to form these precise gradients, there’s a lot going on beneath the surface.” – The Hole

OCaml Weekly News: OCaml Weekly News, 12 Mar 2019

  2. Prochain meetup OUPS 19 mars 2019 / Next OUPS meetup March 19th 2019
  3. The vmthreads library is deprecated in OCaml 4.08
  4. 4.08.0+beta2
  5. Drawing tree in OCaml GUI, best option?
  6. Uucd, Uucp, Uunf and Uuseg for Unicode 12.0.0
  7. ppx_factory v0.0.0
  8. Dune 1.8.0
  9. owl 0.5.0 released
  10. Odig 0.0.4
  11. An intermediate abstraction between applicatives and monads
  12. release of iter 1.2
  13. Let+ syntax backported to OCaml >= 4.02
  14. v1.0.1
  15. Developer position at Be Sport, Paris
  16. IMPORTANT: Switching from Mantis to GitHub issues on March 14th
  17. Odoc 1.4.0 — new OCaml documentation generator
  18. Other OCaml News

s mazuk: Click here to support Silas's Top Surgery organized by Silas Julian

Click here to support Silas's Top Surgery organized by Silas Julian:


Hello! My name is Silas. I’m a 23 year old non-binary trans person living in the Mississippi Delta.  I’ve known I was trans since I was 15 and I’ve been binding even longer. I suffer emotionally and physically from not having the chest I feel I should have.  I’m trying to raise enough money to finally get a full mastectomy so I can live comfortably and authentically. 

so, I finally have this up and running again! I even used proper capitalization and made a cute cover photo. I know most people are saving up for something but if you’re able to donate (and share!) that would help me a lot. I feel like the situation is getting a little worse and I can hardly physically stand to bind anymore. also mississippi summers are brutal, I really don’t want to have to bind for another one. 

I post my art at @silasjulian and there’s a link to my etsy there if you want to help that way! even going through and reblogging some of my art would help.


Disquiet: Guitar Learning: First Shift

This short video is of two simple loopers that are ever so slightly out of sync. By the point at which the video begins, both of the loopers had accrued several layers of audio, all of it culled from an electric guitar. Some of the audio is shared between the two loopers, and some is unique to each separately. The starting point of each of the two loops is signaled when the given looper’s light briefly blinks. Shortly after the midpoint of this recording, the two loops can be seen to come into sync, and to then proceed to drift apart — to shift, to phase — again.

The looper used here is the original Ditto from TC Electronic (due to its popularity, several variations on the Ditto followed). I bought my first one used a few years ago, and have always enjoyed how simple yet effective its controls are. Despite having just one button and one knob, the Ditto comes with a manual that is nearly a dozen pages long, because different combinations of button clicks cause different processes. When I found another inexpensive secondhand Ditto, I picked it up just this afternoon with the express purpose of exploring asynchronous loops such as this one.

Video originally posted at my channel.

OCaml Planet: opam 2.0 tips

This blog post looks back on some of the improvements in opam 2.0, and gives tips on the new workflows available.

Package development environment management

Opam 2.0 has been vastly improved to handle locally defined packages. Assuming you have a project ~/projects/foo, defining two packages foo-lib and foo-bin, you would have:

|-- foo-lib.opam
|-- foo-bin.opam
`-- src/ ...

(See also about computed dependency constraints for handling multiple package definitions with mutual constraints)

Automatic pinning

The underlying mechanism is the same, but this is an interface improvement that replaces most of the opam 1.2 workflows based on opam pin.

The usual commands (install, upgrade, remove, etc.) have been extended to support specifying a directory as argument. So when working on project foo, just write:

  cd ~/projects/foo
opam install .

and both foo-lib and foo-bin will get automatically pinned to the current directory (using git if your project is versioned), and installed. You may prefer to use:

  opam install . --deps-only

to just get the package dependencies ready before you start hacking on it. See below for details on how to reproduce a build environment more precisely. Note that opam depext . will not work at the moment, which will be fixed in the next release when the external dependency handling is integrated (opam will still list you the proper packages to install for your OS upon failure).

If your project is versioned and you made changes, remember to either commit, or add --working-dir so that your uncommitted changes are taken into account.

Local switches

Opam 2.0 introduced a new feature called "local switches". This section explains what it is about, why, when and how to use them.

Opam switches allow to maintain several separate development environments, each with its own set of packages installed. This is particularly useful when you need different OCaml versions, or for working on projects with different dependency sets.

It can sometimes become tedious, though, to manage, or remember what switch to use with what project. Here is where "local switches" come in handy.

How local switches are handled

A local switch is simply stored inside a _opam/ directory, and will be selected automatically by opam whenever your current directory is below its parent directory.

NOTE: it's highly recommended that you enable the new shell hooks when using local switches. Just run opam init --enable-shell-hook: this will make sure your PATH is always set for the proper switch.

You will otherwise need to keep remembering to run eval $(opam env) every time you cd to a directory containing a local switch. See also how to display the current switch in your prompt

For example, if you have ~/projects/foo/_opam, the switch will be selected whenever in project foo, allowing you to tailor what it has installed for the needs of your project.

If you remove the switch dir, or your whole project, opam will forget about it transparently. Be careful not to move it around, though, as some packages still contain hardcoded paths and don't handle relocation well (we're working on that).

Creating a local switch

This can generally start with:

  cd ~/projects/foo
opam switch create . --deps-only

Local switch handles are just their path, instead of a raw name. Additionally, the above will detect package definitions present in ~/projects/foo, pick a compatible version of OCaml (if you didn't explicitely mention any), and automatically install all the local package dependencies.

Without --deps-only, the packages themselves would also get installed in the local switch.

Using an existing switch

If you just want an already existing switch to be selected automatically, without recompiling one for each project, you can use opam switch link:

  cd ~/projects/bar
opam switch link 4.07.1

will make sure that switch 4.07.1 is chosen whenever you are in project bar. You could even link to ../foo here, to share foo's local switch between the two projects.

Reproducing build environments


If your package depends on development versions of some dependencies (e.g. you had to push a fix upstream), add to your opam file:

  depends: [ "some-package" ] # Remember that pin-depends are depends too
pin-depends: [
  [ "some-package.version" "git+" ]

This will have no effect when your package is published in a repository, but when it gets pinned to its dev version, opam will first make sure to pin some-package to the given URL.


Dependency contraints are sometimes too wide, and you don't want to explore all the versions of your dependencies while developing. For this reason, you may want to reproduce a known-working set of dependencies. If you use:

  opam lock .

opam will check what version of the dependencies are installed in your current switch, and explicit them in *.opam.locked files. opam lock is a plugin at the moment, but will get automatically installed when needed.

Then, assuming you checked these files into version control, any user can do

  opam install . --deps-only --locked

to instruct opam to reproduce the same build environment (the --locked option is also available to opam switch create, to make things easier).

The generated lock-files will also contain added constraints to reproduce the presence/absence of optional dependencies, and reproduce the appropriate dependency pins using pin-depends. Add the --direct-only option if you don't want to enforce the versions of all recursive dependencies, but only direct ones.

Michael Geist: The LawBytes Podcast, Episode 2: ”It’s Time to Modernize the Laws”

The first full length episode of the new LawBytes podcast features a conversation with UK Information Commissioner Elizabeth Denham, who leads the high profile investigation into Facebook and Cambridge Analytica. Denham, who previously served as Assistant Commissioner with the federal privacy office and as the British Columbia Information and Privacy Commissioner, reflected on her years in Canada, particularly the Canadian Facebook investigation and concerns with the Google Buzz service. Denham emphasized the need for Canadian legislative reform in order to address today’s privacy challenges. Denham was recently appointed chair of the International Conference of Data Protection and Privacy Commissioners, which she expects will increasingly focus on global privacy standards.

The podcast can be downloaded here and is embedded below. Subscribe to the podcast via Apple Podcast, Google Play, Spotify or the RSS feed. Updates on the podcast on Twitter at @Lawbytespod.


Episode Notes:

12th Annual Deirdre Martin Lecture on Privacy


#CambridgeAnalytica: ‘Data crimes are real crimes’ Denham, EU Reporter, 4 June 2018

Facebook Privacy Concerns, CBC News: The National, 17 July 2009

Privacy commissioner urges legislative reform in the wake of Facebook data scandal, CBC News, 17 April 2018

News Update: Google (NASDAQ:GOOG) Unveils Google Buzz: Social Networking for Gmail, TradetheTrend, 9 February 2010

Cambridge Analytica: Whistleblower reveals data grab of 50 million Facebook profiles, Channel 4 News, 17 March 2018


The post The LawBytes Podcast, Episode 2: ”It’s Time to Modernize the Laws” appeared first on Michael Geist.

Jesse Moynihan: Tarot Booklet Page 4

III The Empress The number 3 indicates dimension, expansion, growth, and fertility. The Empress explodes with desire and creative juice. Her phallic wand blasts 12 stars into the sky, painting the cosmos with her jizz. At the base of her wand sprouts a tiny green leaf, which reinforces the idea of fertility. She is perhaps […]

OCaml Planet: Announcing Liquidity version 1.0

Liquidity version 1.0

We are pleased to announce the release of the first major version of the Liquidity smart-contract language and associated tools.

Some of the highlights of this version are detailed below.

Multiple Entry Points

In the previous versions of Liquidity, smart contracts were limited to a single entry point (named main). But traditionally smart contracts executions path depend strongly on the parameter and in most cases they are completely distinct.

Having different entry points allows to separate code that do not overlap and which usually accomplish vastly different tasks. Encoding entry points with complex pattern matching constructs before was tedious and made the code not extremely readable. This new feature gives you readability and allows to call contracts in a natural way.

Internally, entry points are encoded with sum types and pattern matching so that you keep the strong typing guarantees that come over from Michelson. This means that you cannot call a typed smart contract with the wrong entry point or the wrong parameter (this is enforced statically by both the Liquidity typechecker and the Michelson typechecker).

Modules and Contract System

Organizing, encapsulating and sharing code is not always easy when you need to write thousand lines files. Liquidity now allows to write modules (which contain types and values/functions) and contracts (which define entry points in addition). Types and non-private values of contracts and modules in scope can be accessed by other modules and contracts.

You can even compile several files at once with the command line compiler, so that you may organize your multiple smart contract projects in libraries and files.

Polymorphism and Type Inference

Thanks to a new and powerful type inference algorithm, you can now get rid of almost all type annotations in the smart contracts.

Instead of writing something like

let%entry main (parameter : bool) (storage : int) =
  let ops = ([] : operation list) in
  let f (c : bool) = if not c then 1 else 2 in
  ops, f parameter

you can now write

let%entry main parameter _ =
  let ops = [] in
  let f c = if not c then 1 else 2 in
  ops, f parameter

And type inference works with polymorhpism (also a new feature of this release) so you can now write generic and reusable functions:

type 'a t = { x : 'a set; y : 'a }

let mem_t v = Set.mem v.y v.x

Inference also works with contract types and entry points.

ReasonML Syntax

We originally used a modified version of the OCaml syntax for the Liquidity language. This made the language accessible, almost for free, to all OCaml and functional language developers. The typing discipline one needs is quite similar to other strongly typed functional languages so this was a natural fit.

However this is not the best fit for everyone. We want to bring the power of Liquidity and Tezos to the masses so adopting a seemingly familiar syntax for most people can help a lot. With this new version of Liquidity, you can now write your smart contracts in both an OCaml-like syntax or a ReasonML-like one. The latter being a lot closer to Javascript on the surface, making it accessible to people that already know the language or people that write smart contracts for other platforms like Solidity/Ethereum.

You can see the full changelog as well as download the latest release and binaries at this address.

Don’t forget that you can also try all these new cool features and more directly in your browser with our online editor.

MattCha's Blog: The Best of the Cheapest: 2016 Chawangshop Bada

Chawangshop seems to have a great reputation for pressing puerh that is cheap but of good quality and value.  So in a time when people are looking for value in puerh why is no one is talking about or reviewing Chawangshop these days?  Have a look at #chawangshop and see how long it takes you to see a picture of a chawangshop puerh wrapper on Instagram and yet #white2tea there are daily pics.  Why exactly is that?

While I suppose the answer is many…

First, Chawangshop’s marketing, social media, and online presence is pretty quiet.  I know they have Facebook page which they seem to update regularly and Instagram but they use it rarely and they don’t even have links from their webpage.

I guess their check out system seems a bit less straightforward because they calculate the shipping based on the actual price instead of doing flat rates or free shipping… But this shouldn’t turn you off from an order, they are just ensuring that you pay exactly for the shipping no less and no more… that sounds fair to me.

I know Hobbes used to make Chawangshop’s puerh a regular on his blog but no recent bloggers seem to be writing much about their puerh lately.  I kind of missed out from sampling Chawangshop as they seemed to open as I was drifting away from the puerh scene in 2011/2012.  Cwyn N drops their name every once in a while (link Splendid), I think the last time a blogger featured Chawangshop it was this Death By Tea post on the 2016 Chawangshop Hekai Gushu.

Perhaps another reason they have not gotten much attention lately maybe because of push back on some blunt comments they made in 2016 when Chawangshop owners were telling their customers a bit too bluntly how to drink, buy, and age their puerh.  Maybe the response was a dialed back social media presence too, who knows.

Another possible reason for less attention is that Chawangshop tend to release their yearly pressings much later (about a half a year later) than most vendors.  By the time they release their cakes the spring hype is up, black Friday is over, and eager puerh drinkers are already looking to the year ahead.

Last year they released their 2017 line late and only pressed 5 cakes.  In 2016 they have all 16 cakes still available.  So, I suppose they are less present because they are offering less, that makes sense too.  It seems like they have been focusing a bit more on Liu Bao over the last few years a move that Essence of Tea has also made over the last few years.

Another reason that they may not be on everyone’s radar is because they stopped offering samples.  You got to by the full cake to sample, but that’s fine for me because I consider those 200g Xiao Bings pretty much a big sample anyways… ahahah

Well, I am just as guilty as you, my readers and have never even tried any Chawangshop puerh before this very first order.  I think their passive marketing attitude just didn’t grab me, that’s all and no one on social medial has really drummed up support for their puerh recently.  Overall, I feel that Chawangshop might simply have been overlooked by many puerh drinkers.  But in my quest for the best cheapest fresh sheng puerh, I just couldn’t resist Chawangshop- this is basically what they are famous for!

I picked up a 1 kg tong of this very cheap 2016 Chawangshop “Bada”(200g cake at $20.00 or $0.10/g, a price that hasn’t gone up since release) to make it worth the shipping.  It is a recommendation from a bunch of old experienced puerh drinkers on Steepster (link) who did a cake splitting sample between them.  It should also be differentiated between other Bada area cakes they sell.

Dry leaves smell of grassy plains with faint but distant wild florals.

The first infusion starts with a woody, grassy onset, there is some peppery taste then it converts into a grassy woody sweetness, almost chalky fruits and florals linger on the breath.  There is a subtle bitterness underneath it all.  The mouthfeel has a slight stickiness even the throat feels sticky.  The liquor doesn’t feel flat at all but has a touch of thickness right of the go.  An interesting first infusion shows signs of promise.

The second infusion starts grassy, woody and sweet there is a flash of bitter before converting into wild flower floral tastes.  There is even a candy like sweetness lingering on the breath.  The mouthfeel is real nice a very sticky full sensation in the mouth and even opening the upper and even mid throat widely.  The sensation creates a real long candy like aftertaste.  I can feel the Qi pooling in the head and brain.  It feel heavy and stuffy in the mind.  The body feel tight and relaxed at the same time.

The third infusion starts grassy and dry woody bark with a grassy sweetness that turns to a quick bitterness then opens the long sweet candy like aftertaste.  There are some salty tastes in there as well as an almost seaweed like note, these come in the initial taste and disappear once the bitterness hits.

The fourth infusion starts with a licorice and grassy onset.  The mouthfeel is very nice and full very sticky and stimulating.  There is a lingering sweetness after the bitter pops.  The bitterness is stronger here but the long wildflower floral and candy sweetness is quite long.  The Qi is real heady and stuffy in the thoughts.  I feel like popping and cracking my joints and it feels good.  This qi is a stress reducer, I feel nice but energized.

The fifth infusion starts off with sweet grassy and licorice sweetness, there is a quick pop of bitter before turning into lingering candy sweetness on the breath.  The mouthfeel is very full sticky and astringent even in the upper and almost mid throats.  It opens the throat nicely.  Apricot sweetness is found in the aftertaste here.

The sixth infusion has a grassy and licorice approach.  There are some mild minerals, dry tree bark and almost seaweed/ pond flavours in the initial profile which is reset quickly by a pop of bitter and long now pronounced sweet fresh apricot sweetness in faint wildflower florals.

The seventh infusion has a mellower almost fruity juicy onset with grass, dry bark, and licorice in the background the bitter pops and there is almost a coco edge to the bitter.  There is some lingering floral and some more faint apricot sweetness.  The coolness isn’t obvious but take a breath in and you can feel it in the throat.  The apricot taste lingers and crest minutes after swallowing.  The mouthfeel full and the qi is heavy in the mind and urges the body to release tension.  You can feel the body qi in the joints of the body, the limbs.

The eighth infusion has a sweet onset of fruity florals, nice expansive coolness, opening throat feeling.  The pungent coolness, fruit apricot taste, and long candy aftertaste is featured here.  The licorice, grass, and wood tastes are faint now.  Very nice.

The ninth infusion has a woody almost buttery, metallic and apricot onset.  The bitterness pops and delivers cool pungency, fruity apricot and soft candy in the distance.  The mouthfeel is full and stimulating but never drying.  Very nice.

The tenth infusion is full of interesting wild floral notes.  These are the most distinct here.  Its starts of a bit grassy sweetness, a touch fruity then bitter quickly returns to a long sweet floral apricot taste.  The candy like sweetness lingers in the mouth.

The eleventh infusion starts off with dry woods, almost buttery tastes, and after bitter tastes a woody fruity sweetness.  The candy like taste lingers on the breath.  This infusion gets a touch muddled, just slightly here.

The twelveth infusion is more bitter and woody initially.  The initial tastes are become less vibrant but the aftertaste remain fruity and long.  The mouthfeel is chalky and sticky here.  There is still significant cooling on the breath and fruity/ floral aftertaste.

Thirteenth taste fruitier and more floral now.  These tastes are found in the initial as well as aftertastes.  This infusion is better than the last few and displays high noted deliciousness.

Fourteenth starts of a touch watery and light.  It has a light fruity taste throughout.  It tastes refreshing with a slightly sticky mouthfeeling and long almost but not quite tropical fruit taste.

The fifteenth infusion is much the same.  This tea is washing out a bit but what is left to enjoy is nice with a cooling returning sweetness and sticky full mouthfeeling.  Sixteenth and seventeenth are much the same.  The aftertaste continues to be quite long and enjoyable.

I put it into 20 seconds beyond flash infusion and get an almost sour wood onset with a faint floral sweet aftertaste.  The 19th I put into 30 second beyond flash infusion and get a woody mainly bitter infusion with cooling aftertaste and buttery floral finish.  The dry woody bitter lingers throughout.  These leaves were pretty much done after the 13th infusion but these later infusions are still enjoyable enough to drink, so I do.  The Qi in these late infusions have a mellow relaxing feeling to them.

Overall this is a really enjoyable left to be wild plantation Bada puerh.  Its main downside is exactly that that- it has a nice characteristic Bada area profile.  Bada is one of the famous puerh mountains known often for blending material similar to (Bulang is another such area).  But this one is a really nice example of Bada plantation none the less. Where else can you get southern Xishuangbanna puerh from one of the famous puerh moutains for $0.10/g?  It has that slightly empty onset of grassy/ dry woody taste but it’s easy to set aside with this 2016 Chawangshop Bada because its processing is so clean, and its energy pure.  The mouthfeel and throat feel are solid and the bitterness adds a lot of depth to what is there but is never too much.

At $0.10/g how does this one compare to other puerh in my search for the cheapest fresh younger sheng puerh???

The only other single estate puerh I’ve tried in this recent search was an entry from the Essence of Tea, their 2018 Bamboo Spring ($0.16/g).  These teas are very different other than both being single estate  and Spring material.  The 2018 Bamboo Spring is very ethereal and light with no bitterness or low notes.  Its strength is the beautiful light Wuliang character and vibrancy.  But the price of this nice character is almost double the price of this Bada.   Also the 2018 Bamboo Spring is apparently non-plantation material and this 2018 Chawangshop Bada is straight terrace puerh (very good plantation), I’m pretty sure.  This Bada has many more layers to it- grassy/woody, seaweed/pondy, even interesting flavours of peppery and metallic, then there is the apricot and wildflower tastes in there which form the main enjoyable flavors but the moderate bitterness and solid stimulating mouthfeeling is what give this one legs.  I’m sure there is enough here to age nicely but it wasn’t harsh to enjoy now.  The 2018 Essence of Tea Bamboo Spring, I think is easier to enjoy now.  Altough the 2018 Bada doesn’t have that “wow” finish, its more interesting even at half the price.

How does it compare to the other super cheap $0.10/g or under selections in my challenge like the 2017 white2tea Snoozefest ($0.08/g) and 2017 Yunnan Sourcing Impression ($0.08/g)???

First, these other two are Autumn blends and are both currently sold out.  The blends really do different things compared to single estate.  2018 white2tea Snoozefest also has a distinct floral note and nice stimulating mouthfeeling.  The difference between these floral notes is that the Bada is a more wildflower and the Snoozefest more of an orchid type.  The Soozefest floral is more separate and singular and the Bada is usually mixed with a fruity almost apricot and other complex taste.  The Snoozefest has more of a varied mouthfeeling from it being a blend but it lacks throat simulation like the Bada which I feel is what makes the Bada better here.  The throat feel and bitterness which changes to sweetness in the mouth when drinking the 2016 Chawangshop Bada is much better than the Snoozefest.  The Bada just has a very nice and long profile throughout were the Snoozefest is more of a spurt.

Comparing the 2016 Chawangshop Bada to the 2017 Yunnan Sourcing Impression.  The Impression is a more complex blended thing and is cleared completely pestiside free too.  The Impression has a more fragrant and flavorful and complex profile but the Bada is much longer and nuanced.  The biggest weakness of the Impression is that it’s pretty much completely done after 9 infusions but the Bada lasts a handful more.  They also both have good Qi but the Bada is more active and stimulating and the Impression is more relaxing to me.  There is something about the Bada that is a touch harsh that can probably be aged out while the Impression is harmonious enough that you could almost drink it now.  Overall, I need to do a speed test with these two, I’m not sure which I would prefer, it would be close.  But since the 2017 Impression is sold out, I will say the 2016 Chawangshop Bada has won by acclimation and is the best of the very very cheapest fresh sheng puerh (at or under $0.10/g)!

But wait…. How does it do compared to the 2018 white2tea Splendid the reining champ for the Best Cheapest Sheng Puerh???

The 2018 white2tea Splendid seems to be more processed to drink now although I stated that it will probably age decent.  The 2016 Bada has real crisp processing that it more typical that you’d see for aging puerh.  With that said, I think if you were planning on aging out both, the Bada might edge out Splendid in this regard and likely display more typical aging.  The thickness and blended complexity as well as the strength of 2018 white2tea Splendid has it still defeating the Bada, I think.  The Splendid has a bit more stamina too.

However, it should be noted that the Spledid costs 40% more at ($0.14/g) but I think is still better even if you include the extra costs.

So there you have it, the 2018 white2tea Splendid is still the Best of the Cheapest Fresh Sheng puerh but I would say that this 2016 Chawangshop Bada is the best of the Very Cheapest Fresh Sheng Puerh.  To put it one way, to get a 1Kg tong of 2018 white2tea Splendid you could get a 1KG tong plus another 2 cakes for the same price!  You can’t beat that.

In the end I'm still left wondering why nobody is paying attention to Chawangpu?

Maybe its time for everyone to "Wang their Chawangpu"???


Planet Lisp: Quicklisp news: March 2019 Quicklisp dist update now available

New projects:
  • bobbin — Simple (word) wrapping utilities for strings. — MIT
  • cl-mango — A minimalist CouchDB 2.x database client. — BSD3
  • cl-netpbm — Common Lisp support for reading/writing the netpbm image formats (PPM, PGM, and PBM). — MIT/X11
  • cl-skkserv — skkserv with Common Lisp — GPLv3
  • cl-torrents — This is a little tool for the lisp REPL or the command line (also with a readline interactive prompt) to search for torrents and get magnet links — MIT
  • common-lisp-jupyter — A Common Lisp kernel for Jupyter along with a library for building Jupyter kernels. — MIT
  • conf — Simple configuration file manipulator for projects. — GNU General Public License v3.0
  • eventbus — An event bus in Common Lisp. — GPLv3
  • open-location-code — Open Location Code library. — Modified BSD License
  • piggyback-parameters — This is a configuration system that supports local file and database based parameter storage. — MIT
  • quilc — A CLI front-end for the Quil compiler — Apache License 2.0 (See LICENSE.txt)
  • qvm — An implementation of the Quantum Abstract Machine. — Apache License 2.0 (See LICENSE.txt)
  • restricted-functions — Reasoning about functions with restricted argument types. — MIT
  • simplet — Simple test runner in Common Lisp. — GPLv3
  • skeleton-creator — Create projects from a skeleton directory. — GPLv3
  • solid-engine — The Common Lisp stack-based application controller — MIT
  • spell — Spellchecking package for Common Lisp — BSD
  • trivial-continuation — Provides an implementation of function call continuation and combination. — MIT
  • trivial-hashtable-serialize — A simple method to serialize and deserialize hash-tables. — MIT
  • trivial-json-codec — A JSON parser able to identify class hierarchies. — MIT
  • trivial-monitored-thread — Trivial Monitored Thread offers a very simple (aka trivial) way of spawning threads and being informed when one any of them crash and die. — MIT
  • trivial-object-lock — A simple method to lock object (and slot) access. — MIT
  • trivial-pooled-database — A DB multi-threaded connection pool. — MIT
  • trivial-timer — Easy scheduling of tasks (functions). — MIT
  • trivial-variable-bindings — Offers a way to handle associations between a place-holder (aka. variable) and a value. — MIT
  • ucons — Unique conses and functions for working on them. — MIT
  • wordnet — Common Lisp interface to WordNet — CC-BY 4.0
Updated projectsagnostic-lizardaprilbig-stringbinfixceplchancerychirpcl+sslcl-abstract-classescl-allcl-asynccl-collidercl-conllucl-croncl-digraphcl-eglcl-gap-buffercl-generatorcl-generic-arithmeticcl-gracecl-hamcrestcl-lascl-ledgercl-locativescl-marklesscl-messagepackcl-ntriplescl-patternscl-prevalencecl-projcl-projectcl-qrencodecl-random-forestcl-stopwatchcl-string-completecl-string-matchcl-tcodcl-waylandcladclemclodcloser-mopclx-xembedcoleslawcommon-lisp-actorscroatoandartsclhashtreedata-lensdefrecdoplusdoubly-linked-listdynamic-collecteclectorescalatorexternal-programfiascoflac-parsergame-mathgamebox-dgengamebox-mathgendlgeneric-clgeniegolden-utilshelambdapinterfaceironcladjp-numeraljson-responsesl-mathletreclisp-chatlistopialiterate-lispmaidenmap-setmcclimmitonodguioverlordparachuteparameterized-functionpathname-utilsperiodspetalisppjlinkplumppolicy-condportable-threadspostmodernprotestqt-libsqtoolsqtools-uirecurregular-type-expressionroveserapeumshadowsimplified-typesslyspinneretstaplestumpwmsuclesynonymstaggertemplatetriviatrivial-batterytrivial-benchmarktrivial-signaltrivial-utilitiesubiquitousumbrausocketvarjovernacularwith-c-syntax.

Removed projects: mgl, mgl-mat.

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


Michael Geist: Welcome to LawBytes: A New Podcast on Digital Policy in Canada

In recent years the intersection between law, technology, and policy has exploded as digital policy has become a mainstream concern in Canada and around the world. I am very excited to announce the launch of LawBytes: A Podcast with Michael Geist. This podcast will explore digital policies in conversations with people studying the legal and policy challenges, setting the rules, or who are experts in the field. It will provide a Canadian perspective, but since the internet is global, examining international developments and Canada’s role in shaping global digital policy is be an important part of the story.

The preview episode is available now and first full episode – a conversation with UK Information Commissioner Elizabeth Denham – will be available next week. All episodes will be available under a Creative Commons licence. You can subscribe at Apple Podcasts, Google Play, or Spotify as well as follow on Twitter at @LawBytesPod.

The post Welcome to LawBytes: A New Podcast on Digital Policy in Canada appeared first on Michael Geist.

LLVM Project Blog: FOSDEM 2019 LLVM developer room report

As well as at the LLVM developer meetings, the LLVM community is also present at a number of other events. One of those is FOSDEM, which has had a dedicated LLVM track since 2014.
Earlier this February, the LLVM dev room was back for the 6th time.

FOSDEM is one of the largest open source conferences, attracting over 8000 developers attending over 30 parallel tracks, occupying almost all space of the ULB university campus in Brussels.

In comparison to the LLVM developer meetings, this dev room offers more of an opportunity to meet up with developers from a very wide range of open source projects.

As in previous years, the LLVM dev room program consisted of presentations with a varied target audience, ranging from LLVM developers to LLVM users, including people not yet using LLVM but interested in discovering what can be done with it. 
On the day itself, the room was completely packed for most presentations, often with people waiting outside to be able to enter for the next presentation.
Slides and videos of the presentations are available via the links below

Finally, I want to express my gratitude to the LLVM Foundation, which sponsored travel expenses for a few presenters who couldn't otherwise have made it to the conference.

Jesse Moynihan: Tarot Booklet Page 3

II  The Popess   The Popess takes a moment from action in the world to collect her thoughts in private. In her esoteric library she grows in knowledge, gestating on it like a fertile egg waiting to hatch (when the time is right). The number II implies the first instance of this accumulation. She sits […]

The Shape of Code: Regression line fitted to noisy data? Ask to see confidence intervals

A little knowledge can be a dangerous thing. For instance, knowing how to fit a regression line to a set of points, but not knowing how to figure out whether the fitted line makes any sense. Fitting a regression line is trivial, with most modern data analysis packages; it’s difficult to find data that any of them fail to fit to a straight line (even randomly selected points usually contain enough bias on one direction, to enable the fitting algorithm to converge).

Two techniques for checking the goodness-of-fit, of a regression line, are plotting confidence intervals and listing the p-value. The confidence interval approach is a great way to visualize the goodness-of-fit, with the added advantage of not needing any technical knowledge. The p-value approach is great for blinding people with science, and a necessary technicality when dealing with multidimensional data (unless you happen to have a Tardis).

In 2016, the Nationwide Mutual Insurance Company won the IEEE Computer Society/Software Engineering Institute Watts S. Humphrey Software Process Achievement (SPA) Award, and there is a technical report, which reads like an infomercial, on the benefits Nationwide achieved from using SEI’s software improvement process. Thanks to Edward Weller for the link.

Figure 6 of the informercial technical report caught my eye. The fitted regression line shows delivered productivity going up over time, but the data looks very noisy. How good a fit is that regression line?

Thanks to WebPlotDigitizer, I quickly extracted the data (I’m a regular user, and WebPlotDigitizer just keeps getting better).

Below is the data plotted to look like Figure 6, with the fitted regression line in pink (code+data). The original did not include tick marks on the axis. For the x-axis I assumed each point was at a fixed 2-month interval (matching the axis labels), and for the y-axis I picked the point just below the zero to measure length (so my measurements may be off by a constant multiplier close to one; multiplying values by a constant will not have any influence on calculating goodness-of-fit).

Nationwide: delivery productivity over time; extracted data and fitted regression line.

The p-value for the fitted line is 0.15; gee-wiz, you say. Plotting with confidence intervals (in red; the usual 95%) makes the situation clear:

Nationwide: delivery productivity over time; extracted data and fitted regression line with 5% confidence intervals.

Ok, so the fitted model is fairly meaningless from a technical perspective; the line might actually go down, rather than up (there is too much noise in the data to tell). Think of the actual line likely appearing somewhere in the curved red tube.

Do Nationwide, IEEE or SEI care? The IEEE need a company to award the prize to, SEI want to promote their services, and Nationwide want to convince the rest of the world that their IT services are getting better.

Is there a company out there who feels hard done-by, because they did not receive the award? Perhaps there is, but are their numbers any better than Nationwide’s?

How much influence did the numbers in Figure 6 have on the award decision? Perhaps not a lot, the other plots look like they would tell a similar tail of wide confidence intervals on any fitted lines (readers might like to try their hand drawing confidence intervals for Figure 9). Perhaps Nationwide was the only company considered.

Who are the losers here? Other companies who decide to spend lots of money adopting the SEI software process? If evidence was available, perhaps something concrete could be figured out.

Michael Geist: The Equustek Effect: How One Case Has Sparked Canada’s Aggressive Approach Over Internet Jurisdiction

Equustek Solutions v. Google Inc., a case that originated in British Columbia, Canada, in 2014, captured international attention as one of the first internet jurisdiction cases to be considered by a nation’s highest court. My CIGI Policy Brief notes that since then, the case has emerged as a cautionary tale about increasingly aggressive legal approaches with respect to the Internet, with significant implications for online governance.

Equustek’s legal battle against Google ultimately wound its way to the Supreme Court of Canada, where, in the summer of 2017, Canada’s highest court decided an internet jurisdiction case that has attracted global attention. Equustek Solutions v. Google Inc. was characterized as a classic David versus Goliath legal battle, pitting a small Canadian company concerned with misuse of its intellectual property (IP) against the world’s leading internet search engine. The case raised an important question: can a single national court dictate the content of search results for internet users worldwide? If so, could this effectively create new internet takedown order — an “Equustek order” — which could be used to remove global content.

While critics of global takedown orders warned that upholding the validity of the order would invite global uncertainty through inevitable legal conflicts and further empower large internet intermediaries who could selectively choose which laws and orders to follow, the aftermath of the decision has placed the spotlight on an additional consequence. In part due to the Equustek doctrine, Canadian courts now more aggressively assert jurisdiction over online activities. Indeed, Canada could emerge as ground zero for internet litigation, with its courts and tribunals at ease with a principle that extends domestic law to an international arena. The full policy brief is available here.

The post The Equustek Effect: How One Case Has Sparked Canada’s Aggressive Approach Over Internet Jurisdiction appeared first on Michael Geist.

OCaml Planet: Announcing MirageOS 3.5.0

MirageOS 3.5.0 release

We are happy to announce our MirageOS 3.5.0 release. We didn't announce post 3.0.0 releases too well -- that's why this post tries to summarize the changes in the MirageOS ecosystem over the past two years. MirageOS consists of over 100 opam packages, lots of which are reused in other OCaml projects and deployments without MirageOS. These opam packages are maintained and developed further by lots of developers.

On the OCaml tooling side, since MirageOS 3.0.0 we did several major changes:

  • moved most packages to dune (formerly jbuilder) and began using dune-release for smooth developer experience and simple releases,
  • require opam to be version 2.0.2 or later, allowing pin-depends in pin-depends allows you to depend on a development branch of any opam package for your unikernel,
  • adjusted documentation to adhere to odoc requirements,
  • the mirage command-line utility now emits lower and upper bounds of opam packages, allowing uncompromising deprecation of packages,
  • support for OCaml 4.06.0 (and above), where safe-string is enabled by default. Strings are immutable now!!,
  • remove usage of result package, which has incorporated into Pervasives since OCaml 4.03.0.

The 3.5.0 release contains several API improvements of different MirageOS interfaces - if you're developing your own MirageOS unikernels, you may want to read this post to adjust to the new APIs.

MirageOS interface API changes:

  • mirage-clock has the type t constrained to unit as of 2.0.0;
  • mirage-protocols renames the ETHIF module type to the clearer ETHERNET. As of 2.0.0 it also contains keep-alive support, complies with recent TCP/IP layering rework (see below), and IPv4 now supports reassembly and fragmentation;
  • mirage-net reflects revised layering API as of 2.0.0 (see below);
  • mirage-kv has a revised API and introduction of a read-write key-value store (see below).

Major changes

Key-value store

We improved the key-value store API, and added a read-write store. There is also ongoing work which implements the read-write interface using irmin, a branchable persistent storage that can communicate via the git protocol. Motivations for these changes were the development of CalDAV, but also the development of wodan, a flash-friendly, safe and flexible filesystem. The goal is to EOL the mirage-fs interface in favour of the key-value store.

Major API improvements (in this PR, since 2.0.0):

  • The key is now a path (list of segments) instead of a string
  • The value type is now a string
  • The new function list : t -> key -> (string * [Value|Dictionary], error) result io was added
  • The function get : t -> key -> (value, error) result io is now provided (used to be named read and requiring an offset and length parameter)
  • The functions last_modified : t -> key -> (int * int64, error) result io and digest : t -> key -> (string, error) result io have been introduced
  • The function size was removed.
  • The signature RW for read-write key-value stores extends RO with three functions set, remove, and batch

There is now a non-persistent in-memory implementation of a read-write key-value store available. Other implementations (such as crunch, mirage-kv-unix, mirage-fs, tar have been adapted, as well as clients of mirage-kv (dns, cohttp, tls)).


The IPv4 implementation now has support for fragment reassembly. Each incoming IPv4 fragment is checked for the "more fragments" and "offset" fields. If these are non-zero, the fragment is processed by the fragment cache, which uses a least recently used data structure of maximum size 256kB content shared by all incoming fragments. If there is any overlap in fragments, the entire packet is dropped (avoiding security issues). Fragments may arrive out of order. The code is heavily unit-tested. Each IPv4 packet may at most be in 16 fragments (to minimise CPU DoS with lots of small fragments), the timeout between the first and last fragment is 10 seconds.

The layering and allocation discipline has been revised. [ethernet]( (now encapsulating and decapsulating Ethernet) and [arp]( (the address resolution protocol) are separate opam packages, and no longer part of tcpip.

At the lowest layer, mirage-net is the network device. This interface is implemented by our different backends (xen, solo5, unix, macos, and vnetif). Some backends require buffers to be page-aligned when they are passed to the host system. This was previously not really ensured: while the abstract type page_aligned_buffer was required, write (and writev) took the abstract buffer type (always constrained to Cstruct.t by mirage-net-lwt). The mtu (maximum transmission unit) used to be an optional connect argument to the Ethernet layer, but now it is a function which needs to be provided by mirage-net.

The Mirage_net.write function now has a signature that is explicit about ownership and lifetime: val write : t -> size:int -> (buffer -> int) -> (unit, error) result io. It requires a requested size argument to be passed, and a fill function which is called with an allocated buffer, that satisfies the backend demands. The fill function is supposed to write to the buffer, and return the length of the frame to be send out. It can neither error (who should handle such an error anyways?), nor is it in the IO monad. The fill function should not save any references to the buffer, since this is the network device's memory, and may be reused. The writev function has been removed.

The Ethernet layer does encapsulation and decapsulation now. Its write function has the following signature: val write: t -> ?src:macaddr -> macaddr -> Ethernet.proto -> ?size:int -> (buffer -> int) -> (unit, error) result io. It fills in the Ethernet header with the given source address (defaults to the device's own MAC address) and destination address, and Ethernet protocol. The size argument is optional, and defaults to the MTU. The buffer that is passed to the fill function is usable from offset 0 on. The Ethernet header is not visible at higher layers.

The IP layer also embeds a revised write signature: val write: t -> ?fragment:bool -> ?ttl:int -> ?src:ipaddr -> ipaddr -> Ip.proto -> ?size:int -> (buffer -> int) -> buffer list -> (unit, error) result io. This is similar to the Ethernet signature - it writes the IPv4 header and sends a packet. It also supports fragmentation (including setting the do-not-fragment bit for path MTU discovery) -- whenever the payload is too big for a single frame, it is sent as multiple fragmented IPv4 packets. Additionally, setting the time-to-live is now supported, meaning we now can implement traceroute! The API used to include two functions, allocate_frame and write, where only buffers allocated by the former should be used in the latter. This has been combined into a single function that takes a fill function and a list of payloads. This change is for maximum flexibility: a higher layer can either construct its header and payload, and pass it to write as payload argument (the buffer list), which is then copied into the buffer(s) allocated by the network device, or the upper layer can provide the callback fill function to assemble its data into the buffer allocated by the network device, to avoid copying. Of course, both can be used - the outgoing packet contains the IPv4 header, and possibly the buffer until the offset returned by fill, and afterwards the payload.

The TCP implementation has preliminary keepalive support.


  • MirageOS 3.0.0 used the 0.2.0 release of solo5
  • The ukvm target was renamed to hvt, where solo5-hvt is the monitoring process
  • Support for FreeBSD bhyve and OpenBSD VMM hypervisor (within the hvt target)
  • Support for ARM64 and KVM
  • New target, a separation kernel developed in Sparc/ADA
  • New target GenodeOS, an operating system framework using a microkernel
  • Debugger support: attach gdb in the host system for improved debugging experience
  • Core dump support
  • Drop privileges on OpenBSD and FreeBSD
  • Block device write fixes (in mirage-block-solo5)


The default random device from the OCaml standard library is now properly seeded using mirage-entropy. In the future, we plan to make the fortuna RNG the default random number generator.

Argument passing to unikernels

The semantics of arguments passed to a MirageOS unikernel used to vary between different backends, now they're the same everywhere: all arguments are concatenated using the whitespace character as separator, and split on the whitespace character again by parse-argv. To pass a whitespace character in an argument, the whitespace now needs to be escaped: --hello=foo\ bar.

Noteworthy package updates

More features and bugfixes

You may also want to read the MirageOS 3.2.0 announcement and the MirageOS 3.3.0 announcement.

Next steps

We are working on further changes which revise the mirage internal build system to dune. At the moment it uses ocamlbuild, ocamlfind, pkg-config, and make. The goal of this change is to make MirageOS more developer-friendly. On the horizon we have MirageOS unikernel monorepos, incremental builds, pain-free cross-compilation, documentation generation, ...

Several other MirageOS ecosystem improvements are on the schedule for 2019, including an irmin 2.0 release, a seccomp target for Solo5, and easier deployment and multiple interface in Solo5.

Lambda the Ultimate - Programming Languages Weblog: Selective Functors

From Andrey Mokhov's twitter feed:

Is there any intermediate abstraction between applicative functors and monads? And if yes, what is it? In a new paper with @geo2A, @simonmar and @dimenix we explore "selective functors", which are essentially applicative functors with branching:

We've implemented selective functors in Haskell:, OCaml:, and even Coq: (the Coq repository contains some proofs of correctness that our selective instances are lawful). And there is also a PureScript fork!

OCaml Planet: Techelson, a test execution engine for Michelson

We are pleased to announce the first release of Techelson, available here.

Techelson is a Test Execution Engine for Michelson. It aims at testing functional properties of Michelson smart contracts. Make sure to check the user documentation to get a sense of Techelson’s workflow and features.

For Liquidity programmers interested in Techelson, take a look at this blog post discussing how to write tests in Liquidity and run them using Techelson.

Techelson is still young: if you have problems, suggestions or feature requests please open an issue on the repository.

OCaml Weekly News: OCaml Weekly News, 05 Mar 2019

  1. LLVM tutorial with Dune (Part 2)
  2. A parallel and shared memory library based on Hack's implementation
  3. BTG Trading is hiring OCaml devs in Puerto Rico
  4. Other OCaml News

Charles Petzold: Biblical Chronology and the Encyclopædia Britannica

Encyclopedias are probably not the best barometers of social and intellectual change, but I thought it might be interesting to track how the Encyclopædia Britannica adapted over time in treating Biblical chronology and specifically, the date of the creation of the world. At one time, the Encyclopædia Britannica said that the world was created around 4000 B.C., and then it did not. When did this change occur?

... more ... / 2019-03-24T13:18:02