Hackaday: Play it Again, Arduino

[MrRedBeard] wanted to play a particular song from an Arduino program and got tired of trying to hand transcribe the notes. A little research turned up that there was a project to convert Music XML (MXL) files to the Arduino. However, [MrRedBeard] wasn’t a fan of the language it used, so he created his own means of doing the same thing. He learned a lot along the way and was willing to share it in a tutorial that will help you if you want to do the same thing. You can see a video of his results, below.

Of course, MXL files are probably not better than sheet music if you had to create them by hand. Luckily, there’s a large collection of them available online and the song of interest was there. Note that the link in [MrRedBeard’s] post erroneously has the site as a .com instead of a .org, so you’ll want to use the link here instead of there.

A C# application reads the MXL file and converts it for use on the Arduino. There’s also sample code for the Arduino to get you started.

The project that inspired him is on GitHub and uses Ruby if that suits you better. We’ve talked about MXL before, by the way. If you want to integrate multi channel music on the Arduino, you might start here.

Filed under: Arduino Hacks, musical hacks

Bifurcated Rivets: From FB

Dear old Stockholm

Bifurcated Rivets: From FB

So nice

Bifurcated Rivets: From FB


Bifurcated Rivets: From FB


Bifurcated Rivets: From FB

Concealed revealed

Slashdot: Microsoft Launches A Counterattack Against Russia's 'Fancy Bear' Hackers

Kevin Poulsen writes on the Daily Beast: It turns out Microsoft has something even more formidable than Moscow's malware: Lawyers. Last year attorneys for the software maker quietly sued the hacker group known as Fancy Bear in a federal court outside Washington DC, accusing it of computer intrusion, cybersquatting, and infringing on Microsoft's trademarks... Since August, Microsoft has used the lawsuit to wrest control of 70 different command-and-control points from Fancy Bear... Rather than getting physical custody of the servers, which Fancy Bear rents from data centers around the world, Microsoft has been taking over the Internet domain names that route to them. These are addresses like "livemicrosoft[.]net" or "rsshotmail[.]com" that Fancy Bear registers under aliases for about $10 each. Once under Microsoft's control, the domains get redirected from Russia's servers to the company's, cutting off the hackers from their victims, and giving Microsoft a omniscient view of that servers' network of automated spies. "In other words," Microsoft outside counsel Sten Jenson explained in a court filing last year, "any time an infected computer attempts to contact a command-and-control server through one of the domains, it will instead be connected to a Microsoft-controlled, secure server."

Read more of this story at Slashdot.

TheSirensSound: New track Bring You Back by autoclub

autoclub's musical aspirations began early. "My parents handed me a cheap guitar when I was seven years old. No lessons or anything, they just gave me the instrument to explore. I am so grateful for this, as I imagine that maybe if my parents had pushed me to take lessons first thing, I may not have been so open to the instrument. As you may have guessed, the guitar and I became quick friends and I spent a lot of my time noodling and figuring out my own chords. I didn't write my first real song that had a structure to it until I was 15 and used chords that I taught myself by ear from popular songs I was listening to at the time."

autoclub will be releasing two new singles within the next month, in addition to "Bring You Back", which follows up the single "Cat". I don't want to reveal too much about the songs themselves, but I will say recording them was some of the most fun I've had," autoclub says. "On the surface, someone listening might think, "Sure, this is a nice groove" but there is so much more recorded in the tracks that you could pick out by listening to the songs more than once. I'm talking about funky staccato guitar riffs, underlying vocalizations, and weird sounds made with odd instruments. I truly hope someone out there listening enjoys the songs as much as I enjoyed recording them."

search.cpan.org: Getopt-Alt-v0.4.4

Command line option passing with with lots of features

search.cpan.org: WebService-Freshservice-0.004

Abstraction layer to the Freshservice API

Recent additions: online 0.2.0

Added by tonyday567, Sun Jul 23 05:12:53 UTC 2017.

online statistics

Hackaday: Virtual CPU Stays on Script

Some will see it as a great thing, and others as an example of how JavaScript is being abused daily, but [Francis Stokes] decided to design his own CPU architecture and implemented a virtual version of it using JavaScript. The CPU is a 16-bit affair and has a simplified assembly language. The code is on GitHub, but the real value is [Francis’] exposition of the design in the original post.

While discussing the design, [Francis] reveals his first pass at the instruction set, discussed what he found wrong about it, and then reveals the final set composed of real instructions and some macros to handle other common cases.

[Francis] got the CPU bug from watching [Ben Eater’s] videos. Of course, [Ben’s] CPU is 8-bit and lives on a breadboard. If we had wanted to test out a new instruction set architecture, we would probably use C or C++ or… well, honestly, anything but JavaScript. But if there’s one thing we’ve learned is that everyone’s tastes are different. We have no doubt, though, there will be some spirited comments on both sides.

Developing CPUs for sport has become almost popular these days. Of course, few have the surrounding environment that A2Z does.

Filed under: computer hacks

Explosm.net: Comic for 2017.07.23

New Cyanide and Happiness Comic

search.cpan.org: Yukki-0.991_001

Yet Uh-nother wiki

search.cpan.org: Alien-PCRE2-0.013000

Find Or Download/Build/Install libpcre2 In PCRE2

Slashdot: Are Nondisparagement Agreements Silencing Employee Complaints?

cdreimer writes, "According to a report in the New York Times, 'nondisparagement agreements are increasingly included in employment contracts and legal settlements' to hide abuses that would otherwise be made public." The Times reports: Employment lawyers say nondisparagement agreements have helped enable a culture of secrecy. In particular, the tech start-up world has been roiled by accounts of workplace sexual harassment, and nondisparagement clauses have played a significant role in keeping those accusations secret... Nondisparagement clauses are not limited to legal settlements. They are increasingly found in standard employment contracts in many industries, sometimes in a simple offer letter that helps to create a blanket of silence around a company. Their use has become particularly widespread in tech employment contracts, from venture investment firms and start-ups to the biggest companies in Silicon Valley, including Google... Employees increasingly "have to give up their constitutional right to speak freely about their experiences if they want to be part of the work force," said Nancy E. Smith, a partner at the law firm Smith Mullin. Three different tech industry employees told the Times "they are not allowed to acknowledge that the agreements even exist." And Google "declined to comment" for the article.

Read more of this story at Slashdot.

MetaFilter: "Relief! Dread. Satisfaction. Emptiness. Excitement."

Pushing The Edges Of Play: Lessons Learned From Making 100 Games In Five Years [Indie Games] "Developer James Earl Cox has recently completed his 100 Games in 5 Years, having wrapped up development of his taxing, rewarding journey with a cute game about a kitten in a blanket that likes to meow about things. Games about the horrors of war. Games about the horrors of getting caught watching porn. Games about racing fishmen, the well-mannered homeless, cows, sacred snails. Games about silliness, life, despair, world issues, and anything and everything in between. Cox's work has explored many, many different themes, as well as the scope of the developer's sense of purpose and humor. Now, at the end of the adventure, Cox is left to reflect on what's he gained from this undertaking, finding he's learned a great deal from working with so many different genres, ideas, and stories."

Recent additions: eliminators 0.2

Added by ryanglscott, Sun Jul 23 04:31:42 UTC 2017.

Dependently typed elimination functions using singletons

Recent additions: yesod-static

Added by MichaelSnoyman, Sun Jul 23 04:27:29 UTC 2017.

Static file serving subsite for Yesod Web Framework.

search.cpan.org: Dist-Zilla-Plugin-jQuery-0.05

Include jQuery in your distribution

Recent additions: doctest 0.11.4

Added by SimonHengel, Sun Jul 23 04:03:34 UTC 2017.

Test interactive Haskell examples

Recent additions: perf 0.1.2

Added by tonyday567, Sun Jul 23 03:53:12 UTC 2017.

low-level performance statistics

MetaFilter: Get That Monster Off The Stage

The story of Finbarr Donnelly and his bands Nun Attax, Five Go Down To the Sea? and Beethoven.

Part One

Part Two

Finbarr Donnelly was born in Belfast in 1962. Escaping the Troubles his family moved to Cork City when he was 12. By the late-70s he had formed Nun Attax, a punk band, who played their first gig on Valentine's night 1979 in a community hall in Mayfield, on the Northside of Cork City.

Nun Attax are synonymous with the Downtown Kampus at Cork's Arcadia Ballroom, the lynchpin of the city's post-punk music scene, where they shared the stage with U2, The Virgin Prunes, UB40, Micro Disney and a host of other local bands. Their live performances were unforgettable, incendiary events an example of which can be heard on the Kaught at the Kampus EP released by Reekus Records in 1981 [reissued in 2015]. In the early-80s the band changed its name to Five Go Down To the Sea? and recorded the Knot A Fish EP 7'' for Kabuki Records. Soon after the band left recession-ridden Cork for London...

MetaFilter: Darkness falls across the land / The midnight hour is close at hand

Stranger Things 2 is on its way. [SLYT]

Bonus: A vitally important question is asked at Comic-Con.

All Content: Fantasia 2017, Day 8: “Dead Shack,” “Better Watch Out,” “A Day”

Thumb dead shack

Before major screenings at the Montreal-based Fantasia Festival, people meow. Yes, I mean that literally. As the lights go down, people make sounds that remind you of cats. There’s an occasional quiet dog and I even heard a sheep once. I asked a number of people about the origin of this ritual and no one knew. I heard variations on, “They’ve just been doing it forever. I’m not sure most people even know why they do it.” At first, I thought it was a bit silly, but I have to admit that I miss that silliness now that I’m back, closing out my coverage of the festival with this dispatch. It’s indicative of the atmosphere at FF, one that encourages a bit of unusual behavior. Go ahead and meow. No one’s gonna stop you.

Unusual behavior would be a polite way to describe what happens in Peter Ricq’s fun “Dead Shack,” a movie described as "'The Goonies' meets 'Night of the Living Dead.'" Sign me up. Ricq’s film is gloriously simple, never overcomplicating its concept, which is basically “teenagers vs. zombies.” Two teenagers are going with their dad and his girlfriend on a family trip to a remote cabin, and they bring along the boy teenager’s best friend, who happens to have a crush on the girl teenager. The “cool dad” and his always-annoyed girlfriend get drunk quickly, leaving the trio to explore the area, where they stumble upon a house owned by a woman credited only as “The Neighbour” (Lauren Holly). Things quickly go from interesting to terrifying when they watch her kill a couple of potential suitors and feed them to whatever she keeps in the basement.

“Dead Shack” is smarter than your average zom-com, and better cast. I’m a sucker for Camping Trips Gone Wrong films, and this one is a bit more ambitious than most as well, playing with concepts of 2017 Manliness (the “power five” is a plot point and the female teenager ends up being arguably the toughest). The film kind of misses the landing—it needed a stronger climax and a few more shocks before it wraps up—but it’s fun enough to find a genre crowd when it eventually lands in stateside theaters or on DVD.

Another film I suspect will find loyal fans stateside is Chris Peckover’s “Better Watch Out,” which makes its Canadian premiere next weekend at Fantasia but already played Fantastic Fest last year. Once called “Safe Neighborhood,” Peckover’s film plays more from that title—the idea that there are millions of suburbanites who believe their middle-class neighborhoods to be perfectly safe. A cute young pre-teen named Lucas, a nice house, parents played by Virginia Madsen and Patrick Warburton—what could possibly go wrong in a place like this? “Better Watch Out” first appears to be “Adventures in Babysitting meets The Strangers” but it becomes something very different and much, much darker.

Lucas (Levi Miller) is in love with his babysitter, the lovely Ashley (Olivia DeJonge), and he’s invited his friend Garrett (Ed Oxenbould, who co-starred with DeJonge in “The Visit”) over to help him finally woo the high school girl into his heart. Not long after Luke’s parents leave, something appears to be wrong. The phone line is cut, the wifi doesn’t work, and there’s someone outside. What first looks like a traditional home invasion flick takes a sharp turn that you should try to keep as unspoiled as possible. I certainly didn’t see it coming, and props to Peckover for surprising even a cynical film critic who has reviewed two dozen genre films in the last week. The cast here is strong and Peckover knows how to pace his film, but horror-comedy this pitch-black can be really tough to pull off and he doesn’t quite find the tonal balance in the second half. I will say that it’s a movie I suspect people will like quite a bit when they get a chance to see it, I just wish I connected with it more on a visceral level than one of admiring the effort.

I had a similar response to Cho Sun-ho’s “A Day,” my final film for Fantasia 2017. From a country whose film industry I clearly love, South Korea, comes the latest riff on “Groundhog Day” (and who would have guessed this would have become a subgenre). World-famous surgeon Jun-young (Kim Myung-min) is returning from an important business trip, planning to see his daughter Eun-jung (Jo Eun-hyung) when he gets off the plane. On his way from the airport to meet her, he passes a car accident. He stops to help, only then realizing that the body in the crosswalk is his daughter’s. And then he wakes up on the plane again. Over and over, he tries to stop the accident from happening, and then he realizes that he’s not the only one reliving that day. So is the ambulance driver Min-chul (Byun Yo-han), who also loses someone over and over again on this fateful day. Can they work together to stop whatever is happening to them and save their loved ones?

It’s an undeniably clever idea to transport the structure of something like “Groundhog Day” to a thriller concept but “A Day” gets weighed down in melodrama as more and more of its secrets are revealed. Believe it or not, it’s too complicated, bringing in elements from the pasts and personal lives of both men, and even turning into something of a vengeance thriller. And Cho isn’t skilled enough with character to make us care about the doctor, the driver, and the rest of these people as more than cogs in his high-concept machine. It’s far from a complete disaster, but “A Day” takes a great idea places it doesn’t really need to go. Still, I love seeing these kind of ideas get a platform like Fantasia Festival. Ambition, diversity and high concepts like this one are why this event seems to matter more and more every year. I look forward to returning next year. And I’m working on my cat sounds.

Hackaday: Control The Volume

For anyone who has owned a boombox or an old(er) cassette player, the digital age volume controls feel incredibly awkward. Keep pressing buttons to get the volume just right can get tiresome real quick. The volume knob just makes sense and in a simple project, [Jeremy S Cook] brings us the Custom Computer Volume Control Knob.

The build employs an Adafruit Trinket board coupled with a rotary encoder and a push button as described by the designers themselves. We reached out to [Jeremy S Cook] to enquire about the build and it turns out his version uses an MDF enclosure as well as an MDF knob. A larger PCB has the encoder and button solder on with the Trinket board connecting to them via multi strand wires. An Acrylic sheet cut to the size serves as the top cover and completes the build.

The button serves as a play/pause button and can come in handy. Since the device enumerates as an HMI device, it should work with almost any OS. It could easily be extended to work with Android Tablets or even iPads. Check out the video below for a demonstration and if you like the idea of custom input devices, check out this DIY shortcut Keyboard.

Filed under: Arduino Hacks

Slashdot: IEEE Spectrum Declares Python The #1 Programming Language

An anonymous reader quotes IEEE Spectrum's annual report on the top programming languages: As with all attempts to rank the usage of different languages, we have to rely on various proxies for popularity. In our case, this means having data journalist Nick Diakopoulos mine and combine 12 metrics from 10 carefully chosen online sources to rank 48 languages. But where we really differ from other rankings is that our interactive allows you choose how those metrics are weighted when they are combined, letting you personalize the rankings to your needs. We have a few preset weightings -- a default setting that's designed with the typical Spectrum reader in mind, as well as settings that emphasize emerging languages, what employers are looking for, and what's hot in open source... Python has continued its upward trajectory from last year and jumped two places to the No. 1 slot, though the top four -- Python, C, Java, and C++ -- all remain very close in popularity. Indeed, in Diakopoulos's analysis of what the underlying metrics have to say about the languages currently in demand by recruiting companies, C comes out ahead of Python by a good margin... Ruby has fallen all the way down to 12th position, but in doing so it has given Apple's Swift the chance to join Google's Go in the Top Ten... Outside the Top Ten, Apple's Objective-C mirrors the ascent of Swift, dropping down to 26th place. However, for the second year in a row, no new languages have entered the rankings. We seem to have entered a period of consolidation in coding as programmers digest the tools created to cater to the explosion of cloud, mobile, and big data applications. "Speaking of stabilized programming tools and languages," the article concludes, "it's worth noting Fortran's continued presence right in the middle of the rankings (sitting still in 28th place), along with Lisp in 35th place and Cobol hanging in at 40th."

Read more of this story at Slashdot.

All Content: Girls Trip

Thumb girls trip 2017

Divisive politics, a health-care plan in limbo, those darn Russians, triple-digit temps. If ever there was a moment when we as a nation needed to let off some steam and chill, it has arrived. 

Just in the nick of time, the multiplex offers just such a chance to sit back, take a deep cleansing breath and let go of any pent-up anxiety. That is, for those who can handle hard-R-rated content such as an act of intimacy known as “grapefruiting” that does for citrus what “There’s Something About Mary” did for hair gel. Judging by the contagious outbursts of shock, awe and guffaws at my raucous screening of “Girls Trip,” courtesy of a full house of primarily African-American women along with a smattering of men folk who were invited for the occasion, the best way to exhale these days is to simply laugh as one.

“Girls Trip” is the ladies-on-the-loose comedy that everyone needs right now, even if they don’t know it yet. Yes, this is another equal-opportunity ensemble of females gone wild, most recently observed in the subpar “Bad Moms” and “Rough Night.” While “Bridesmaids” and the “Sex and the City” franchise might have redefined such bosom-buddy bonding while trafficking in the usual raunchy, rude and rowdy behavior, “Girls Trip,” with its epic two-hour length, apparently aims to be the “Lord of the Rings” of sisters doing it for themselves, one that gets a whole lot right that the others too often get wrong.

By now, director Malcolm D. Lee knows how to stock a cast full of top-shelf talent as proven by “The Best Man” films and “Barbershop: The Next Cut.” But he outdoes himself as a matchmaker this time by gathering an insanely likable and capable quartet of actresses to play the college chums who proudly proclaim themselves as the Flossy Posse. Headlining these grads of the class of 1995 is Regina Hall, a regular in Lee’s “Best Man” films, who is promoted to lead as Ryan Pierce, a sleekly pulled-together self-help guru and best-selling author of a book, You Can Have It All—which, for her, includes her retired NFL star husband and business partner, Stewart (Mike Colter of Netflix’s “Luke Cage”). But, of course, her “all” is not what it seems and she suddenly gets the urge to use her appearance as a keynote speaker at the Essence Festival in New Orleans to reunite with her friends after many years apart and allow them to share in her luxury accommodations.

They include Queen Latifah as Sasha, a celebrity gossip blogger who fell out with Ryan after she nixed their website deal, and Jada Pinkett Smith as Lisa, a prim and proper divorced nurse and mother of two who used to be a sexual dynamo back in the day. This is the pair’s first outing together since 1996’s bank-heist thriller "Set It Off" and don’t think “Girls Trip” doesn’t duly sneak in a reference to that oldie. But they and everyone else are forced to take a backseat to the film’s motor-mouth of mass dysfunction known as Tiffany Haddish. Her hard-partying Dina, who lives to stir up trouble, is to “Girls Trip” what Melissa McCarthy was to “Bridesmaids” and Kate McKinnon was to “Ghostbusters”—one-of-a-kind breakouts who commit grand larceny in every scene. Dina’s best trait is her unwavering loyalty to her posse. Her worst is a penchant for hair-trigger acts of aggression—which we first observe when she assaults a male co-worker who has dared to steal her Go-Gurt. As for her love life, let’s just say she is the type who is ecstatic to learn that her STD diagnosis is only chlamydia.

Soon we land in the chaotic French Quarter, where a brass band does a peppy version of “Lovely Day.” Everything is selfies and smiles until Sasha receives a paparazzi photo on her phone that shows Stewart canoodling with an “Instagram skank” known as Simone (Deborah Ayorinde). Money-strapped Sasha must face the moral dilemma of whether she should cash in on revealing to the world Ryan’s marital woes or protect her privacy. But, in between, there is plenty to keep these pals pre-occupied. That includes VIP backstage passes to the Superdome where performers include Bell Biv DeVoe, Common, Maxwell, Mariah Carey and Sean “Diddy” Combs, who yanks Dina up onstage after she flashes her glitter-sprinkled breasts. Other cameos include author Terry McMillan, “Selma” director Ava DuVernay and chef Carla Hall.

Men, of course, come into the picture. That includes a crusty old flasher, a definite “ew” moment for the ages. But Smith’s Lisa finally gets lucky—actually, too lucky as those who have seen the red-band trailer know—when a gorgeous young college student (Kofi Siriboe) attempts to woo her. Meanwhile, Ryan runs into old college flame Julian (Larenz Tate), a bassist for Ne-Yo, and flirtatious sparks tentatively fly. But what will propel word of mouth are the outrageous moments that go where others have declined before. Whereas no actual poop was exploited in the infamous diarrhea outbreak in “Bridesmaids,” a rain shower of urine pours down upon the denizens of Bourbon Street not just once but twice. And if you ever wanted to see Queen Latifah make out with a floor lamp, this is your chance courtesy of a run-in with 200-year-old absinthe.

Screenwriters Kenya Barris (creator of “Black-ish”) and Tracy Oliver (“Survivor’s Remorse”) know how to get the party started and keep it lively. That is until matters are awkwardly forced to take a serious whiplash turn that drags down the final half-hour when many difficult truths must be confronted. But probably what most distinguishes “Girls Trip” from other such comedies is that these four black actresses in their late 30s and mid-40s play adults who are honest, grounded and devoted to one another, differences be damned. Such cruelty-free comedy is a beautiful thing to see. And if grapefruit sales explode in the coming days, you will know why. 

MetaFilter: Stellar optimization

Wibbly-wobbly magnetic fusion stuff: The return of the stellarator

bit-player: Approximately Yours

Today, I’m told, is Rational Approximation Day. It’s 22/7 (for those who write dates in little-endian format), which differs from π by about 0.04 percent. (The big-endians among us are welcome to approximate 1/π.)

Given the present state of life in America, what we really need is an Approximation to Rationality Day, but that may have to wait for 20/1/21. In the meantime, let us merrily fiddle with numbers, searching for ratios of integers that brazenly invade the personal space of famous irrationals.

When I was a teenager, somebody told me about the number 355/113, which is an exceptionally good approximation to π. The exact value is


correct through the first six digits after the decimal point. In other words, it differs from the true value by less than one-millionth. I was intrigued, and so I set out to find an even better approximation. My search was necessarily a pencil-and-paper affair, since I had no access to any electronic or even mechanical aids to computation. The spiral-bound notebook in which I made my calculations has not survived, and I remember nothing about the outcome of the effort.

A dozen years later I acquired some computing machinery: a Hewlett-Packard programmable calculator, called the HP-41C. Here is the main loop of an HP-41C program that searches for good rational approximations. Note the date at the top of the printout (written in middle-endian format). Apparently I was finishing up this program just before Approximation Day in 1981.

HP 41C program main loop

What’s that you say? You’re not fluent in the 30-year-old Hewlett-Packard dialect of reverse Polish notation? All right, here’s a program that does roughly the same thing, written in an oh-so-modern language, Julia.

function approximate(T, dmax)
    d = 1
    leastError = T
    while d <= dmax && leastError > 0
        n = Int(round(d * T))
        err = abs(T - n/d) / T
        merit = 1 / ((n + d)^2 * err)
        if err < leastError
            println("$n/$d = $(n/d)  error = $err  merit = $merit")
            leastError = err
        d += 1

The algorithm is a naive, sequential search for fractions \(n/d\) that approximate the target number \(T\). For each value of \(d\), you need to consider only one value of \(n\), namely the integer nearest to \(d \times T\). (What happens if \(d \times T\) falls halfway between two integers? That can’t happen if \(T\) is irrational.) Thus you can begin with \(d = 1\) and continue up to a specified largest denominator \(d = dmax\). The accuracy of the approximation is measured by the error term \(|T - n/d| / T\). Whenever a value of \(n/d\) yields a new minimum error, the program prints a line of results. (This version of the algorithm works correctly only for \(T \gt 1\), but it can readily be adapted to \(T \lt 1\).

The HP-41C has a numerical precision of 10 decimal digits, and so the closest possible approximation to π is 3.141592654. Back in 1981 I ran the program until it found a fraction equal to this value—a perfect approximation, from the program’s point of view. According to a note on the printout, that took 13 hours. The Julia program above, running on a laptop, completes the same computation in about three milliseconds. You’re welcome to take a scroll through the results, below. (The numbers are not digit-for-digit identical to those generated by the HP-41C because Julia calculates with higher precision, about 16 decimal digits.)

     3/1     = 3.0                 error = 0.045070341573315915    merit =  1.3867212410256813
    13/4     = 3.25                error = 0.03450712996224109     merit =  0.10027514940370374
    16/5     = 3.2                 error = 0.018591635655129744    merit =  0.12196741256165179
    19/6     = 3.1666666666666665  error = 0.007981306117055373    merit =  0.20046844169789904
    22/7     = 3.142857142857143   error = 0.0004024993041452083   merit =  2.9541930379680195
   179/57    = 3.1403508771929824  error = 0.00039526983405584675  merit =  0.04542368072920613
   201/64    = 3.140625            error = 0.0003080138345651019   merit =  0.04623150469956595
   223/71    = 3.140845070422535   error = 0.00023796324342470652  merit =  0.04861781754719378
   245/78    = 3.141025641025641   error = 0.0001804858353094197   merit =  0.053107007660473673
   267/85    = 3.1411764705882352  error = 0.00013247529441315622  merit =  0.060922789404334425
   289/92    = 3.141304347826087   error = 9.177070539240495e-5    merit =  0.07506646742266793
   311/99    = 3.1414141414141414  error = 5.6822320879624425e-5   merit =  0.10469195703580983
   333/106   = 3.141509433962264   error = 2.6489760736525772e-5   merit =  0.19588127575835135
   355/113   = 3.1415929203539825  error = 8.478310581938076e-8    merit = 53.85164473263654
 52518/16717 = 3.1415923909792425  error = 8.37221074104896e-8     merit =  0.00249177288308447
 52873/16830 = 3.141592394533571   error = 8.259072954625822e-8    merit =  0.0024921016732136797
 53228/16943 = 3.1415923980404887  error = 8.147444291923546e-8    merit =  0.0024926612882136163
 53583/17056 = 3.141592401500938   error = 8.03729477091334e-8     merit =  0.0024934520351304946
 53938/17169 = 3.1415924049158366  error = 7.928595172899531e-8    merit =  0.0024944743578840687
 54293/17282 = 3.141592408286078   error = 7.821317056655376e-8    merit =  0.0024957288257085445
 54648/17395 = 3.141592411612532   error = 7.715432730151448e-8    merit =  0.002497216134767719
 55003/17508 = 3.1415924148960475  error = 7.610915194012454e-8    merit =  0.0024989371196291283
 55358/17621 = 3.1415924181374497  error = 7.507738155653036e-8    merit =  0.0025008927426067996
 55713/17734 = 3.1415924213375437  error = 7.405876001006156e-8    merit =  0.0025030840968725283
 56068/17847 = 3.1415924244971145  error = 7.305303737979925e-8    merit =  0.002505512419906649
 56423/17960 = 3.1415924276169265  error = 7.20599703886498e-8     merit =  0.002508179074048983
 56778/18073 = 3.141592430697726   error = 7.107932141383905e-8    merit =  0.0025110855755419263
 57133/18186 = 3.14159243374024    error = 7.01108591937022e-8     merit =  0.002514233565685482
 57488/18299 = 3.1415924367451775  error = 6.915435783817789e-8    merit =  0.0025176248413626597
 57843/18412 = 3.1415924397132304  error = 6.820959725288218e-8    merit =  0.0025212613363967255
 58198/18525 = 3.141592442645074   error = 6.727636243231866e-8    merit =  0.002525145143834103
 58553/18638 = 3.141592445541367   error = 6.635444374259433e-8    merit =  0.0025292785028112976
 58908/18751 = 3.141592448402752   error = 6.544363663870371e-8    merit =  0.0025336638062423296
 59263/18864 = 3.141592451229856   error = 6.454374152317083e-8    merit =  0.002538303603848205
 59618/18977 = 3.1415924540232916  error = 6.365456332197522e-8    merit =  0.002543200616913158
 59973/19090 = 3.1415924567836564  error = 6.277591190862598e-8    merit =  0.002548357720152209
 60328/19203 = 3.1415924595115348  error = 6.190760125601375e-8    merit =  0.0025537779743748956
 60683/19316 = 3.1415924622074964  error = 6.10494500018427e-8     merit =  0.0025594646031786867
 61038/19429 = 3.1415924648720983  error = 6.020128088319864e-8    merit =  0.002565421015548036
 61393/19542 = 3.141592467505885   error = 5.936292059519092e-8    merit =  0.0025716508123781218
 61748/19655 = 3.141592470109387   error = 5.853420007366852e-8    merit =  0.0025781577749599853
 62103/19768 = 3.1415924726831244  error = 5.771495407114599e-8    merit =  0.002584945883912429
 62458/19881 = 3.141592475227604   error = 5.690502101544554e-8    merit =  0.002592019327133724
 62813/19994 = 3.141592477743323   error = 5.6104242868339024e-8   merit =  0.0025993825084809985
 63168/20107 = 3.1415924802307655  error = 5.531246526690591e-8    merit =  0.0026070400439016164
 63523/20220 = 3.1415924826904056  error = 5.4529537523533324e-8   merit =  0.0026149967637792084
 63878/20333 = 3.141592485122707   error = 5.375531191912607e-8    merit =  0.002623257749852838
 64233/20446 = 3.141592487528123   error = 5.2989644268538606e-8   merit =  0.0026318283126966317
 64588/20559 = 3.141592489907097   error = 5.22323933551431e-8     merit =  0.0026407140236596287
 64943/20672 = 3.1415924922600618  error = 5.148342135490336e-8    merit =  0.002649920699086574
 65298/20785 = 3.1415924945874427  error = 5.0742592988226976e-8   merit =  0.002659454449139831
 65653/20898 = 3.1415924968896545  error = 5.0009776226755164e-8   merit =  0.0026693216486930156
 66008/21011 = 3.141592499167103   error = 4.928484186928889e-8    merit =  0.002679528965991537
 66363/21124 = 3.1415925014201855  error = 4.8567663400430846e-8   merit =  0.0026900833784673454
 66718/21237 = 3.1415925036492913  error = 4.7858116990585446e-8   merit =  0.0027009921818650063
 67073/21350 = 3.141592505854801   error = 4.715608149595883e-8    merit =  0.0027122629998437182
 67428/21463 = 3.1415925080370872  error = 4.6461438175842924e-8   merit =  0.002723903810648984
 67783/21576 = 3.1415925101965145  error = 4.577407111668933e-8    merit =  0.002735922933992634
 68138/21689 = 3.1415925123334407  error = 4.5093866383961494e-8   merit =  0.0027483290931549346
 68493/21802 = 3.1415925144482157  error = 4.442071258756658e-8    merit =  0.002761131395876878
 68848/21915 = 3.141592516541182   error = 4.375450074049751e-8    merit =  0.002774339356802981
 69203/22028 = 3.1415925186126747  error = 4.309512411747499e-8    merit =  0.0027879629217230834
 69558/22141 = 3.1415925206630235  error = 4.244247783087354e-8    merit =  0.002802012512429091
 69913/22254 = 3.14159252269255    error = 4.179645953751142e-8    merit =  0.0028164989998024
 70268/22367 = 3.1415925247015695  error = 4.115696873186072e-8    merit =  0.0028314337694556623
 70623/22480 = 3.1415925266903915  error = 4.0523907028763286e-8   merit =  0.002846828724926181
 70978/22593 = 3.141592528659319   error = 3.989717788071482e-8    merit =  0.00286269633032941
 71333/22706 = 3.1415925306086496  error = 3.9276686719222797e-8   merit =  0.0028790496258831624
 71688/22819 = 3.1415925325386738  error = 3.86623409548065e-8     merit =  0.0028959022542887716
 72043/22932 = 3.141592534449677   error = 3.805404969428105e-8    merit =  0.0029132685103826087
 72398/23045 = 3.1415925363419395  error = 3.7451723882115376e-8   merit =  0.0029311633622333107
 72753/23158 = 3.1415925382157353  error = 3.685527615907423e-8    merit =  0.002949602495467867
 73108/23271 = 3.1415925400713336  error = 3.626462086221821e-8    merit =  0.002968602349703417
 73463/23384 = 3.1415925419089974  error = 3.567967430761971e-8    merit =  0.002988180133716996
 73818/23497 = 3.141592543728987   error = 3.510035365949903e-8    merit =  0.003008353961046636
 74173/23610 = 3.1415925455315543  error = 3.452657862652023e-8    merit =  0.003029142753805288
 74528/23723 = 3.1415925473169497  error = 3.395826962413729e-8    merit =  0.0030505664465106676
 74883/23836 = 3.141592549085417   error = 3.339534904681598e-8    merit =  0.0030726459300795604
 75238/23949 = 3.1415925508371956  error = 3.283774056124397e-8    merit =  0.003095403169820992
 75593/24062 = 3.141592552572521   error = 3.228536938904675e-8    merit =  0.0031188612412389144
 75948/24175 = 3.1415925542916234  error = 3.173816202407169e-8    merit =  0.0031430444223940115
 76303/24288 = 3.14159255599473    error = 3.1196046373746034e-8   merit =  0.0031679782521683033
 76658/24401 = 3.141592557682062   error = 3.065895190043484e-8    merit =  0.0031936895918127546
 77013/24514 = 3.1415925593538385  error = 3.01268089146511e-8     merit =  0.0032202067806171002
 77368/24627 = 3.141592561010273   error = 2.9599549423203633e-8   merit =  0.003247559639023363
 77723/24740 = 3.1415925626515766  error = 2.9077106281049175e-8   merit =  0.0032757796556622983
 78078/24853 = 3.1415925642779543  error = 2.8559414180798277e-8   merit =  0.0033048999843237645
 78433/24966 = 3.14159256588961    error = 2.804640823913544e-8    merit =  0.003334955716987436
 78788/25079 = 3.1415925674867418  error = 2.753802541039899e-8    merit =  0.0033659838476231357
 79143/25192 = 3.141592569069546   error = 2.703420321435919e-8    merit =  0.003398023556100075
 79498/25305 = 3.1415925706382137  error = 2.6534880725724155e-8   merit =  0.0034311162371627422
 79853/25418 = 3.141592572192934   error = 2.6039997867349902e-8   merit =  0.0034653057466538235
 80208/25531 = 3.141592573733892   error = 2.554949569295635e-8    merit =  0.0035006385417218717
 80563/25644 = 3.14159257526127    error = 2.5063316245769302e-8   merit =  0.0035371638899188347
 80918/25757 = 3.1415925767752455  error = 2.4581402841236452e-8   merit =  0.0035749340371894456
 81273/25870 = 3.1415925782759953  error = 2.410369936023742e-8    merit =  0.003614004535709633
 81628/25983 = 3.1415925797636914  error = 2.3630150955873712e-8   merit =  0.00365443439340209
 81983/26096 = 3.141592581238504   error = 2.3160703488036753e-8   merit =  0.00369628643041249
 82338/26209 = 3.141592582700599   error = 2.2695304230197833e-8   merit =  0.003739627468693587
 82693/26322 = 3.1415925841501404  error = 2.2233900879902193e-8   merit =  0.0037845288174018898
 83048/26435 = 3.1415925855872895  error = 2.1776442124200985e-8   merit =  0.0038310665494126084
 83403/26548 = 3.1415925870122043  error = 2.1322877639651253e-8   merit =  0.00387932189896066
 83758/26661 = 3.1415925884250404  error = 2.087315795095796e-8    merit =  0.003929381726572982
 84113/26774 = 3.1415925898259505  error = 2.0427234430973973e-8   merit =  0.003981339007706688
 84468/26887 = 3.1415925912150855  error = 1.9985059017984126e-8   merit =  0.004035293430477111
 84823/27000 = 3.1415925925925925  error = 1.9546584922495102e-8   merit =  0.004091351857390988
 85178/27113 = 3.1415925939586176  error = 1.9111765637729565e-8   merit =  0.004149629190123568
 85533/27226 = 3.1415925953133033  error = 1.868055578777407e-8    merit =  0.004210248941258058
 85888/27339 = 3.141592596656791   error = 1.825291042078912e-8    merit =  0.004273344214343279
 86243/27452 = 3.1415925979892174  error = 1.78287858571571e-8     merit =  0.004339058439193095
 86598/27565 = 3.1415925993107203  error = 1.7408138417260385e-8   merit =  0.004407546707464268
 86953/27678 = 3.1415926006214323  error = 1.6990925835061217e-8   merit =  0.004478976601684539
 87308/27791 = 3.1415926019214853  error = 1.6577106127237806e-8   merit =  0.004553529781140699
 87663/27904 = 3.1415926032110093  error = 1.6166637875900305e-8   merit =  0.004631403402447433
 88018/28017 = 3.141592604490131   error = 1.5759480794022753e-8   merit =  0.0047128116308472546
 88373/28130 = 3.141592605758976   error = 1.5355594877295166e-8   merit =  0.004797987771392931
 88728/28243 = 3.1415926070176683  error = 1.4954940686839493e-8   merit =  0.0048871863549194705
 89083/28356 = 3.141592608266328   error = 1.4557479914641577e-8   merit =  0.004980685405908598
 89438/28469 = 3.141592609505076   error = 1.4163174252687263e-8   merit =  0.005078789613658918
 89793/28582 = 3.1415926107340284  error = 1.3771986523826276e-8   merit =  0.005181833172630217
 90148/28695 = 3.141592611953302   error = 1.338387969226633e-8    merit =  0.005290183824183623
 90503/28808 = 3.1415926131630103  error = 1.2998817570363058e-8   merit =  0.005404246870669908
 90858/28921 = 3.1415926143632653  error = 1.2616764535904027e-8   merit =  0.005524470210563737
 91213/29034 = 3.141592615554178   error = 1.2237685249392783e-8   merit =  0.005651350205744754
 91568/29147 = 3.1415926167358563  error = 1.1861545360838771e-8   merit =  0.005785438063205309
 91923/29260 = 3.1415926179084073  error = 1.1488310802967408e-8   merit =  0.005927347979056494
 92278/29373 = 3.141592619071937   error = 1.111794779122008e-8    merit =  0.006077766389438445
 92633/29486 = 3.141592620226548   error = 1.0750423671902066e-8   merit =  0.006237462409303776
 92988/29599 = 3.1415926213723435  error = 1.0385705649960649e-8   merit =  0.006407301439430316
 93343/29712 = 3.1415926225094237  error = 1.0023761778491034e-8   merit =  0.00658826005755035
 93698/29825 = 3.1415926236378877  error = 9.664560534662385e-9    merit =  0.006781444748602359
 94053/29938 = 3.1415926247578327  error = 9.308070961075804e-9    merit =  0.006988114128701429
 94408/30051 = 3.1415926258693556  error = 8.954262241690382e-9    merit =  0.007209706348604964
 94763/30164 = 3.14159262697255    error = 8.603104549971112e-9    merit =  0.007447871540046976
 95118/30277 = 3.14159262806751    error = 8.254567918024995e-9    merit =  0.007704513406469473
 95473/30390 = 3.141592629154327   error = 7.90862336746494e-9     merit =  0.007981838717667477
 95828/30503 = 3.1415926302330917  error = 7.565241919903853e-9    merit =  0.008282421184374838
 96183/30616 = 3.1415926313038933  error = 7.224395162386583e-9    merit =  0.008609280341750632
 96538/30729 = 3.1415926323668195  error = 6.8860552473899216e-9   merit =  0.008965982432171553
 96893/30842 = 3.1415926334219573  error = 6.550194468748648e-9    merit =  0.009356770586561815
 97248/30955 = 3.141592634469391   error = 6.216785968445456e-9    merit =  0.009786732283709331
 97603/31068 = 3.1415926355092054  error = 5.885802747105052e-9    merit =  0.010262022067809991
 97958/31181 = 3.1415926365414837  error = 5.557218370784088e-9    merit =  0.010790155391967196
 98313/31294 = 3.1415926375663066  error = 5.231007112329143e-9    merit =  0.011380406450991833
 98668/31407 = 3.1415926385837554  error = 4.907143103228812e-9    merit =  0.012044356667029002
 99023/31520 = 3.1415926395939087  error = 4.585601323119603e-9    merit =  0.01279665696194468
 99378/31633 = 3.141592640596845   error = 4.266356751638026e-9    merit =  0.013656119502875172
 99733/31746 = 3.1415926415926414  error = 3.9493849338525334e-9   merit =  0.014647305857352692
100088/31859 = 3.141592642581374   error = 3.6346615561895634e-9   merit =  0.015802906908552822
100443/31972 = 3.1415926435631176  error = 3.322162870507497e-9    merit =  0.017167407267272748
100798/32085 = 3.1415926445379463  error = 3.0118652700227016e-9   merit =  0.018802933529623964
101153/32198 = 3.141592645505932   error = 2.703745854741474e-9    merit =  0.020798958087527405
101508/32311 = 3.1415926464671475  error = 2.397781441954139e-9    merit =  0.02328921472604781
101863/32424 = 3.141592647421663   error = 2.0939496970989362e-9   merit =  0.026482916558483883
102218/32537 = 3.1415926483695484  error = 1.7922284269720909e-9   merit =  0.03072676661447583
102573/32650 = 3.141592649310873   error = 1.492595579727815e-9    merit =  0.03664010548445531
102928/32763 = 3.141592650245704   error = 1.195029527594277e-9    merit =  0.04544847105306477
103283/32876 = 3.1415926511741086  error = 8.995092082315892e-10   merit =  0.05996553050516452
103638/32989 = 3.1415926520961532  error = 6.060132765838922e-10   merit =  0.0883984797913258
103993/33102 = 3.1415926530119025  error = 3.1452123574324146e-10  merit =  0.16916355170353897
104348/33215 = 3.141592653921421   error = 2.5012447443706518e-11  merit =  2.1127131430431656

The error values in the middle column of the table above shrink steadily as you read from the top of the list to the bottom. Each successive approximation is more accurate than all those above it. Does that also mean each successive approximation is better than those above it? I would say no. Any reasonable notion of “better” in this context has to take into account the size of the numerator and the denominator.

If you want an approximation of \(\pi\) accurate to seven digits, I can give you one off the top of my head: \(3141593/1000000\). But the numbers making up that ratio are themselves seven digits long. What makes \(355/113\) impressive is that it achieves seven-digit accuracy with only three digits in the numerator and the denominator. Accordingly, I would argue that a “better” approximation is one that minimizes both error and size. The rightmost column of the table, filled with numbers labeled “merit” is meant to quantify this intuition.

When I wrote that program in 1981, I chose a strange formula for merit, one that now baffles me:

\[\frac{1}{(n + d)^2 * err}.\]

Adding the numerator and denominator and then squaring the sum is an operation that makes no sense, although the formula as a whole does have the correct qualitative behavior, favoring both smaller errors and smaller values of \(n\) and \(d\). In trying to reconstruct what I had in mind 26 years ago, my best guess is that I was trying to capture a geometric insight, and I flubbed it when translating math into code. On this assumption, the correct figure of merit would be:

\[\frac{1}{\sqrt{n^2 + d^2} * err}.\]

To see where this formula comes from, consider a two-dimensional lattice of integers, with a ray of slope \(\pi\) drawn from the origin and going on to infinite distance.

Lattice of integers

Because the line’s slope is irrational, it will never pass through any point of the integer lattice, but it will have many near misses. The near-miss points, with coordinates interpreted as numerator and denominator, are the accurate approximations to \(\pi\). The diagram suggests a measure of the merit based on distances. An approximation gets better when we minimize the distance of the lattice point from the origin as well as the vertical distance from the point to the \(\pi\) line. That’s the meaning of the formula with \(\sqrt{n^2 + d^2}\) in the denominator.

Another approach to defining merit simply counts digits. The merit is the ratio of the number of correctly predicted digits in the irrational target \(T\) to the number of digits in the denominator. A problem with this scheme is that it’s rather coarse. For example, \(13/4\) and \(16/5\) both have single-digit denominators and they each get one digit of \(\pi\) correct, but
\(16/5\) actually has a smaller error.

To smooth out the digit-counting criterion, and distinguish between values that differ in magnitude but have the same number of digits, we can take logarithms of the numbers. Let merit equal: \(-log(err) / log(d)\). (The \(log(err)\) term is negated because the error is always less than \(1\) and so its logarithm is negative.)

Here’s a comparison of the three merit criteria for some selected approximations to \(\pi\):

     n/d           1981 merit                  distance merit              log merit

     3/1        1.3867212448620723            7.016316181613145         --
    13/4        0.10027514901117529           2.1306165422053285        2.4284808488226544
    16/5        0.12196741168912356           3.208700907602539         2.4760467349663537
    19/6        0.20046843839209055           6.288264070960828         2.6960388788612515
    22/7        2.954192079226498           107.61458138965322          4.017563128080901
   179/57       0.04542369572848121          13.467303354323912         1.9381258641568968
   201/64       0.04623152429195394          15.390920494844842         1.9441196398907357
   223/71       0.04861784421796857          17.956388291625093         1.9573120958787444
   245/78       0.05310704607396699          21.548988850935377         1.9785253787278367
   267/85       0.06092284944437125          26.93965209372642          2.0098618723780515
   289/92       0.07506657421887829          35.92841360228601          2.055872071177696
   311/99       0.10469219759604646          53.921550739835986         2.1273838230139175
   333/106      0.1958822412726219          108.02438852795403          2.259868093766371
   355/113     53.76883630752973          31610.90993685001             3.444107245852723
 52163/16604    0.002495514149618044        215.57611105028013          1.6757260012234105
      •                  •                         •                            •
      •                  •                         •                            •
      •                  •                         •                            •
103993/33102    0.2892417579456485        49813.04849576935             2.1538978293241056
104348/33215    0.5006051667655171        86508.24042805366             2.2065386096084607
208341/66317    0.3403602724772912       117433.39822796892             2.1589243556399245
312689/99532    0.6343809166515098       328504.0552596196              2.207421489352196

All three measures agree that \(22/7\) and \(355/113\) are quite special. In other respects they give quite different views of the data. My weird 1981 formula compares \((n + d)^{-2}\) with \(err^{-1}\); the asymmetry in the exponents suggests the merit will tend to zero as \(n\) and \(d\) increase, at least in the average case. The maximum of the distance-based measure, on the other hand, appears to grow without bound. And the logarithmic merit function seems to be settling on a value near 2.0. This implies that we shouldn’t expect to see many \(n/d \) approximations where the number of correct digits is greater than twice the number of digits in \(d\). The late Tom Apostol and Mamikon A. Mnatsakanian proved a closely related proposition (“Surprisingly accurate rational approximations,” Mathematics Magazine, Vol. 75, No. 4 (Oct. 2002), pp. 307-310).

The final joke on my 1981 self is that all this searching for better approximants can be neatly sidestepped by a bit of algorithmic sophistication. The magic phrase is “continued fractions.” The continued fraction for \(\pi\) begins:

\[ \pi = 3+\cfrac{1}{7+\cfrac{1}{15+\cfrac{1}{292+\cfrac{1}{1 + \cdots}}}}\]

Evaluating the successive levels of this expression yields a sequence of “convergents” that should look familiar:

\[3/1, 22/7, 333/106, 355/113, 103993/33102, 104348/33215.\]

It is a series of “best” approximations to \(\pi\), generated without bothering with all the intervening non-”best” values. I produced this list in CoCalc (a.k.a. SageMathCloud), following the excellent tutorial in William Stein’s Elementary Number Theory. Even much larger approximants gush forth from the algorithm in milliseconds. Here’s the 100th element of the series:


A question remains: In what sense are these approximations “best”? It’s guaranteed that every element of the series is more accurate than all those that came before, but it’s not clear to me that they also satisfy any sort of compactness criterion. But that’s a question to be taken up another day. Perhaps on Continued Fraction Day.

Slashdot: Ask Slashdot: Someone Else Is Using My Email Address

periklisv writes: I daily receive emails from adult dating sites, loan services, government agencies, online retailers etc, all of them either asking me to verify my account, or, even worse, having signed me up to their service (especially dating sites), which makes me really uncomfortable, my being a married man with children... I was one of the early lucky people that registered a gmail address using my lastname@gmail.com. This has proven pretty convenient over the years, as it's simple and short, which makes it easy to communicate over the phone, write down on applications etc. However, over the past six months, some dude in Australia (I live in the EU) who happens to have the same last name as myself is using it to sign up to all sorts of services... I tried to locate the person on Facebook, Twitter etc and contacted a few that seemed to match, but I never got a response. So the question is, how do you cope with such a case, especially nowadays that sites seem to ignore the email verification for signups? Leave your best answers in the comments. What would you do if someone else started giving out your email address?

Read more of this story at Slashdot.

Hackaday: Hackaday Prize Entry: Open Source Patient Monitor

Vital sign monitors are usually found in developed countries; they just cost too much for less affluent communities to afford. The HealthyPi project aims to change that by developing an inexpensive but accurate monitor using a Raspberry Pi, a custom hat studded with sensors, and a touch screen. The resulting monitor could be used by medical professionals as well as students and private researchers.

[Ashwin K Whitchurch] and his team created HealthyPi, a Raspberry Pi hat that includes an AFE4490 chip serving as the pulse oximeter front end, an analog to digital converter that interprets the ECG and respiration data, and a MAX30205 body temperature sensor. The hat has its own microcontroller, a ATSAMD21 Cortex M0+ that can also be loaded with the Arduino Zero bootloader.

This project is capable of monitoring a patient’s pulse, respiration, body temperature, and all the other vital signs made measure d by other ‘medical-grade’ vital sign monitors at a fraction of the cost. It’s a democratizing technology, and [Ashwin] already has some working hardware available on Crowd Supply.

Learn more about HealthyPi at the project page or download the code from GitHub.

Filed under: The Hackaday Prize

ScreenAnarchy: Frontières@Fantasia 2017: We Saw Footage From HOUSEWIFE, KNUCKLEBALL, THE LODGERS, TRENCH 11 And UNTOLD HORROR In The Buyer's Showcase

This morning the annual works in progress session, now dubbed the Buyer's Showcase, took place. The session features showing footage from feature films in post or recently completed. This year we got to see footage from Can Evrenol's (Baskin) Housewife, Michael Peterson's Knuckleball, Brian O'Malley's (Let Us Prey) The Lodgers, Leo Shcerman's Trench 11 and Bob Barrett's television series Untold Horror.  Now, we the press are not allowed to go into any great detail about what we watched today so in that regard you may be disappointed. However, you will get my impressions from the footage we saw and some suggestions about what to look for when these films make their way around the festival circuit and into distribution in whatever territories they are sold...

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

Slashdot: Mozilla's New Open Source Voice-Recognition Project Wants Your Voice

An anonymous reader quotes Mashable: Mozilla is building a massive repository of voice recordings for the voice apps of the future -- and it wants you to add yours to the collection. The organization behind the Firefox browser is launching Common Voice, a project to crowdsource audio samples from the public. The goal is to collect about 10,000 hours of audio in various accents and make it publicly available for everyone... Mozilla hopes to hand over the public dataset to independent developers so they can harness the crowdsourced audio to build the next generation of voice-powered apps and speech-to-text programs... You can also help train the speech-to-text capabilities by validating the recordings already submitted to the project. Just listen to a short clip, and report back if text on the screen matches what you heard... Mozilla says it aims is to expand the tech beyond just a standard voice recognition experience, including multiple accents, demographics and eventually languages for more accessible programs. Past open source voice-recognition projects have included Sphinx 4 and VoxForge, but unfortunately most of today's systems are still "locked up behind proprietary code at various companies, such as Amazon, Apple, and Microsoft."

Read more of this story at Slashdot.

ScreenAnarchy: Fantasia 2017 Review: COLD HELL, Hard Hitting Action Film Lashes Out Against Patriarchal Violence, And Connects, Hard

Ozge is a Turkish-born taxi driver on the streets of Vienna. By night she drives the cab. During the day she trains in Kickboxing. Her sister Ranya is in a disintegrating marriage with Ozge’s boss, along with a young daughter to care for. Ozge also will not go to her parents home because there is a history with her father that will come up later in the film that is as troubling as any of the events that will unfold throughout the film. And now that a fundamentalist serial killer is on her trail she will have to take this killer on by herself if justice is to be served.    Director Stefan Ruozwitsky quickly establishes the stakes in Cold Hell in two parallel opening...

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

MetaFilter: Mr. Slippery and Erythrina are not on the list

Everyone knows the correct name for a raccoon is Trash Panda, but did you know about Duck Puppies? And you can probably guess the common name for a Fart Squirrel without peeking, but how about a Land Cloud? Bread Moisturizer (not an animal)? Or my favorite, the Dogtor? A few more are here; check out @CorrectNames for the rest.

ScreenAnarchy: Blu-ray Review: Rossellini's WAR TRILOGY Gets Much Needed HD Upgrade From Criterion

Earlier this month The Criterion Collection rereleased Roberto Rossellini's War Trilogy on Blu-ray and it is one of the year's essential sets. The three included films, Rome Open City (1945), Paisan (1946), and Germany Year Zero (1948), are not only landmarks of world cinema, they are also incredibly brave and eye-opening works of art even all these years later. I'm not going to pretend that I have a lot to add to the mountains of critical and sociological analysis that already exists out there, I can definitely share why these films are so special to me. First, though, a basic rundown. Rome Open City is the story of the Italian resistance in Nazi-occupied Italy. The film was shot in 1945, shortly after the Nazis had...

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

ScreenAnarchy: BiFan 2017 Review: GODSPEED Revs Up Violence and Humor in Artful Road Movie

Hong Kong comedy star Michael Hui returns after a long absence in the latest from Taiwanese filmmaker Chung Mong-hong, A road movie about a drug deal gone wrong, Godspeed may not appear special on the surface, but this mashup of drama, thriller and comedy quickly takes on a philosophical tone as it muses on themes of aging and displacement. A young man picks up a job as a drug mule from an ad and after following some convoluted instructions, looks for a cab to take from Taipei down to Tainan in the South. An elderly taxi driver convinces him to go down in his old car and the pair set off towards a drug deal that doesn't go according to plan. The curious relationship between...

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

Ansuz - mskala's home page: Begin Primary Ignition

I'm very close to officially launching the North Coast Synthesis Web storefront. I have stock for the first product ready to sell. All that remains to do is file a few more sales tax registrations, and I expect to sort that out this coming week. I'm aiming for August 1 as the launch date. If you're reading this on my Web site you'll note I've replaced the long-running Chessudoku ad with one for my new store.

Hackaday: UK To Register Multirotor fliers

The British government has shown a surprisingly light touch towards drone fliers in the face of the strident media demands for them to be banned following a series of reports of near-misses with other aircraft. That is about to change with reports of the announcement of a registration scheme for craft weighing over 250 g (about 9 oz). Details are still a bit sketchy, but it is reported that there will be a written test and an element of geofencing around sensitive locations.

Our friendly professional multirotor flier’s reaction is that the existing laws are clear enough, and that this is likely to be no deterrent to any people who already use their drones illegally. It seems that the UK government is following the lead set by the USA in this matter, with the 250 g limit on that side of the Atlantic having already spawned an industry of smaller craft. Time will tell on whether the measures will be effective, we suspect that their success will depend on their not being overly stringent.

[Editor’s note: Following a lawsuit, the US FAA registration requirement was struck down for hobbyists because model aircraft are explicitly excluded from the FAA’s purview. The Brits are not likely to be so lucky.]

If there is a positive side to this announcement, it might be that the 250 g class of multirotor will inevitably become the focus of a lot of attention as manufacturers and engineers work to pack the most performance into the small platform. This small silver lining to the drone registration cloud might not be much, but we’ll take it.

We’ve covered the UK drone story as reported in the media in detail in the past.

Palace of Westminster image: Diliff [CC BY-SA 2.5].

Filed under: drone hacks, news

ScreenAnarchy: Interview: Everardo González On His Powerful Documentary DEVIL'S FREEDOM

Everardo González, documentary filmmaker best known for Ladrones viejos and Drought (Cuates de Australia), is visibly enraged when he starts talking about the case of Javier Duarte, a Mexican politician who in early 2017 was detained for a huge corruption case. We all know the man is absolute dirt and yet the first hearing quickly reminded us that Mexico is the land of impunity. That’s why González is angry, though the very idea that Duarte might beat justice is hardly a surprise in the Narco-state that is our country. Everardo’s latest documentary, Devil’s Freedom (La libertad del diablo), tackles the consequences of the Mexican Drug War from the personal perspective of several individuals. There are testimonies of victims who lost their familiars or have been...

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

Instructables: exploring - featured: Stabilize Sensor Readings With Kalman Filter

We are using various kinds of electronic sensors for our projects day to day. IMU, Ultrasonic Distance Sensor, Infrared Sensor, Light Sensor are some of them. Most of the times we have to use a processing unit such as an Arduino board, a microcontroller chip to process the sensor data and get corres...
By: tharindusuraj

Continue Reading »

Instructables: exploring - featured: Riding Toy

Made for my children, I tried to recreate a toy that I had and have intensively used during my early youth. The commercially available riding toys did not seem to be usable, they often have large wheels just behind the legs of the child, which reduces the possibility of pushing to gain momentum.It i...
By: BricoNosaureB

Continue Reading »

Greater Fool – Authored by Garth Turner – The Troubled Future of Real Estate: The disconnect

RYAN  By Guest Blogger Ryan Lewenza

I’m not sure how I follow up Garth’s recent blog post “The implosion”, but here it goes…

The US equity markets have been rockin’ and rollin’ since the US election in November, with the S&P 500 and Nasdaq up 15% and 21.5%, respectively. While Prez Trump and his administration would like to (and have) take all the credit for these strong gains, the reality is that the rebound in corporate profits has contributed to the gains which we’ve covered in recent posts.

That said, Trump does deserve some of the credit as his pro-growth, pro-business agenda has helped to ignite “animal spirits” among investors. The expectation is that his policies will help to spur growth and inflation thus propelling financial assets higher. The problem as we see it is: 1) does the recent failure by Congress/Trump (sorry Trump but some of this is on you!) to repeal Obamacare diminish the odds that Trump will be able to advance the rest of his pro-growth agenda; and 2) some recent economic data shows a waning of “Trumpflation” resulting in a “disconnect” between the recent equity gains and the incoming economic data. The question then is, how does this “disconnect” get resolved?

US Equity Price Returns Since US Election

Source: Bloomberg, Turner Investments

Trump’s pro-growth agenda of corporate tax reform, deregulation, and infrastructure spending engendered hopes of higher economic growth and inflation. This was seen in an immediate jump in inflation expectations and bond yields. However, some of this “bloom is off the rose” as we’ve seen a deterioration in some important economic indicators.

Yes, key data like nonfarm payrolls and ISM Manufacturing data has remained robust, but we’ve seen a softening in other key economic indicators. For example, below we chart US retail sales Y/Y and CPI which have both rolled over since January. We believe this recent weakness does not dovetail with the strong equity gains seen since Trump won the election, thus making the markets vulnerable to a short-term “air pocket” should economic data continue to disappoint.

Retail Sales and Inflation Are Rolling Over

Source: Bloomberg, Turner Investments

Despite this we remain optimistic about the US economy and equity markets in H2/17 for the following reasons. First, the US economy is notoriously weak in the first quarter with a bounce back typical in the following quarters. For example, since 1985 US GDP has averaged 1.9% in Q1 versus 3.3% and 2.9% for Q2 and Q3, respectively. Second, one of my favourite economic indicators – the Citigroup Economic Surprise Index – is at a level where it typically bottoms and begins to rebound. This great indicator measures whether economic data is coming in above or below economists’ expectations.

Sorry economists, but you often exhibit a “herd mentality”, raising your economic forecasts as data comes in better than expected and vice versa. This index has dropped significantly in recent months capturing the trend of weaker economic data. But I believe economists may now have become too cautious in their outlook and we should start to see economic data coming in above expectations in the coming months. If correct, this positive economic momentum should support stocks in the second half and is why we see more upside in this bull market.

US Citigroup Surprise Index Is About To “Hook Up”

Source: Bloomberg, Turner Investments

Trump or no Trump, we see the US economy continuing to improve. But if the recent equity gains have in part been driven by optimism over Trump’s policies then it makes sense that we could see some unwinding of this if there is a delay in passing his pro-growth policies. Putting my own personal views of Trump aside, I want him to succeed and get some of his key polices passed so that the US economy can get out of second gear and back above 3%+ GDP growth.

I think JP Morgan CEO Jamie Dimon said it perfectly in a recent quarterly earnings call:

“Since the Great Recession, which is now 8 years old, we’ve been growing at 1.5 to 2 percent in spite of stupidity and political gridlock, because the American business sector is powerful and strong. I don’t buy the argument that we’re relegated to this forever. We’re not. If this administration can make breakthroughs in taxes and infrastructure, regulatory reform —we have become one of the most bureaucratic, confusing, litigious societies on the planet. It’s almost an embarrassment being an American citizen traveling around the world and listening to the stupid s— we have to deal with in this country. And at one point we all have to get our act together or we won’t do what we’re supposed to [do] for the average Americans.”

So President Trump listen to Jamie Dimon’s message, put down your phone and stop tweeting, and instead focus on your agenda, since there’s some good stuff there. If not, this apparent “disconnect” between the strong equity gains and waning economic momentum will get resolved and likely to the downside.

Ryan Lewenza, CFA,CMT is a Partner and Portfolio Manager with Turner Investments, and a Senior Vice President, Private Client Group, of Raymond James Ltd.

Quiet Earth: Fat Kid Missing From READY PLAYER ONE Trailer

Right out of the trailer - from Ernest Cline's "The Holy Grail of Pop Culture", and Steven Spielberg "The Cinematic Game Changer." While it doesn't look like the book (why isn't he fat?) let's hope everything else is accurate.

[Continued ...]

Instructables: exploring - featured: Concrete Soap Dish DIY

Hello you! This Instructable is about how to make a modern concrete soap dish without borders. In my Video you also see how I made it. Have fun watching & reading! Let's go! Cut Wood to Size Cut the wooden board to the desired size. I've chosen 8x8cm because it fits the best for the most soaps I ...
By: 1989go

Continue Reading »

Instructables: exploring - featured: Controlling Devices in Swift With BLE

In this project we will use an iPhone to control devices connected to an STM32 device. The project is a starting point for more exciting experiments such as remote controlled robots or any other thing you might want to control in your home. I encourage you to check out the source code which is rea...
By: DanXS72

Continue Reading »

Instructables: exploring - featured: Normalize and Compress IR Signals.

Chapter 5:Hello again with this new chapter of domotics. We are going to be discussing why and how to normalize and compress IR signals. Please check our previous chapters to understand to understand what is all about.Chapter 1Chapter 2Chapter 3Chapter 4 Why? So why normalize and compress signals...
By: PabloPaparini

Continue Reading »

All Content: Fantasia 2017, Day 7: “The Endless,” “The Laplace’s Demon,” “Lowlife”

Thumb endless

One of the things that most impresses me about Fantasia Festival is the scope of the operation. It plays for three weeks with almost no repeats, meaning that over 150 films will make at least their Canadian premieres, and many will make their world premieres. It can be overwhelming, especially when one factors in the wide variety of films on display. There are known quantities like “Valerian and the City of a Thousand Planets” and “Atomic Blonde” alongside movies that almost no one outside of the crew has heard of. And it’s in that latter crew that the real joy of the festival experience can often be found: discovery. Two films made their world premiere on this second Friday of this epic fest and announced their creators as filmmakers to watch, while a third film won’t play until the end of this event but its buzz on the festival scene has already been building since its Tribeca debut. All three are ones to watch for when they finally make it to your part of the world.

Let’s start with this best of this strong trio, the mesmerizing “The Endless,” directed by Justin Benson & Aaron Moorhead, the pair behind the excellent “Spring.” The pair also star this time as brothers who achieved a bit of notoriety when they escaped a “UFO death cult” a decade ago. The older and more outgoing brother, Justin, told horror stories to reporters about mind control, abuse, castration, and an inevitable mass suicide. Aaron was younger and he remembers none of this. All he can remember is a commune of people who loved him. After they receive a video tape indicating that the “ascension” hasn’t happened yet, they agree to go back for a day to confirm Justin’s memories and show Aaron the truth.

When they arrive at Camp Arcadia, it appears that if this group does harbor a dark side they’re keeping it secret. They brew their own beer, encourage artistic pursuit, and spend nights talking around a campfire. Of course, Benson and Moorhead immediately start playing with perception and expectation—there’s an angry man who appears to just be marching around camp and a cabin door with a remarkable padlock on it. However, any prediction about where “The Endless” is going would likely be wrong as Moorhead and Benson have something far-more-ambitious than a Death Cult Movie in mind. Again, as they were with “Resolution” and “Spring,” they’re more interested in horror as a manifestation of human need and emotion. And so “The Endless” becomes a film about our destructive patterns more than anything else, about how easily we can fall into routines that keep us stuck from actually going anywhere in life. It is a clever film in the way it weds the impossible with the relatable, finding the human stories that allow us to suspend disbelief as the film gets further away from reality. As with so many great filmmakers, they ground us with emotion, so they can take us anywhere they want to with their storytelling.

And their sense of storytelling has only improved with each project. “The Endless” achieves a rhythm of tone that sneaks up on you. Most of it takes place outdoors, on the grounds of Camp Arcadia, and Moorhead and Benson have a remarkable ability to transport us to this strange and mystical place. We’re on the journey with Justin and Aaron more than just watching it transpire. To be fair, the film feels like it could use a few select minutes and literally explain less of its themes in the final act but these are minor complaints for one of the best horror films of the year.

Similarly mindblowing but in a totally different way is Giordano Giulivi’s delightful “The Laplace’s Demon,” a low-budget affair that recalls “Sky Captain and the World of Tomorrow” mixed with Agatha Christie and Guy Maddin. A group of Italian scientists have been summoned to an island in the middle of the ocean by a mad scientist who has discovered their research. The group has been trying to do the impossible—predict the future. They believe they have devised a program that can tell you exactly how many pieces a glass will break into if it hits the floor. Immediately, Giulivi is playing with fate vs. free will and how much we can truly know about the future. And he’s doing so in a style that recalls classic Italian filmmakers like Mario Bava, updated in a world of green-screen backgrounds and CGI effects.

When the scientists arrive at this mansion on an island, they discover a scale model of the house in which they’re standing. The model would be interesting enough, but what’s more fascinating are the eight pawns standing in the living room, which soon move in unison with the people in the house. Is someone watching them and moving the pawns to coincide? Not exactly. It turns out that someone has taken their glass experiment a level further, able to predict every human action correctly. And then the house unleashes the Queen.

“The Laplace’s Demon” hits that soft spot for me critically that was cultivated by “The Twilight Zone” and “Ten Little Indians.” It is a low-budget affair that gets a ton of mileage out of canted angles, creative lighting, and clever effects. And it has more than a little going on thematically as, not unlike “The Endless,” it examines the patterns of human behavior. Perhaps it’s telling that these are the two best films I’ve seen related to my Fantasia Festival coverage. There’s nothing scarier than human behavior.

The dark side of human behavior is on ample display in Ryan Prows’ blistering “Lowlife,” a film that I might have slammed in the late ‘90s as being too obviously derivative of Quentin Tarantino, as so many were in that era, but that feels fresh and different 20 years later. It’s a flawed film in a few ways (mostly performance and dialogue), but it’s also often new in a way that we haven’t seen from genre films since the Tarantino-esque genre went out of fashion. It’s also a movie with the sole purpose of an adrenalin rush, designed to strap you to your seat, entertain you, and spit you back into reality, exhausted but satisfied.

“Lowlife” works several angles of the same eventful day from the perspective of different characters. We first meet the most memorable one in the film, a famous luchador named El Monstruo (Ricardo Adam Zarate), who never takes off his mask, even as he’s bashing in someone’s head with a propane tank. El Monstruo is a “noble criminal,” the kind of guy who has been sucked into a criminal enterprise against his better judgement and will, hopeful that he will be able to continue the noble legacy of his character. Or at least that his son will be able to do so. His wife Kaylee (Santana Dempsey) is eight months pregnant, but she’s also addicted to heroin, which allows a few more criminals to entire this tale, including El Monstruo’s truly monstrous boss (Mark Bunrham) and a pair of naïve thugs (Jon Oswald, Shaye Ogbonna) hired for a job bound to go wrong.

“Lowlife” is a take on the Tarantino film for the Trump era. It’s telling that one of the first truly awful people we meet is an ICE Agent. In this world, the cops are often worse than the criminals. And most of these people, even the thug with the Swastika tattooed on his face, are trying to keep their heads above water in a world that feels like it’s increasingly trying to drown them. Some of the dialogue could have used a punch-up, but this was one of the most buzzed films coming into Fantasia Festival this year for a reason. I expect that buzz to continue.  

All Content: Valerian and the City of a Thousand Planets

Thumb valerian 2017

Every summer movie season needs at least one out-of-left-field entry that is so cheerfully bonkers it stands as a living rebuke to an industry that churns out noisy and soulless garbage like “Transformers: The Last Knight.” This year, that film is “Valerian and the City of a Thousand Planets,” a deliriously entertaining film that finds writer/director Luc Besson swinging for the fences in his efforts to make a weirdo sci-fi epic for the ages and coming up with a virtual home run derby. It's a film filled with humor, charm, excitement and so many memorable images that many viewers will find themselves struggling to keep from blinking so as not to miss any of the eye-popping delights crammed into each overstuffed frame.

The film is inspired by Valerian and Laureline, a French comic book series created by Pierre Christin and Jean-Claude Mezieres that is said, especially among European comic book buffs, to have influenced the look of any number of films over the years, including “Star Wars.” The comics also helped to instill an interest in the genre in a ten-year-old Besson, who would eventually go on to employ Mezieres to help design the look of his own elaborate sci-fi epic, “The Fifth Element.” Besson may be one of the leading players on the international moviemaking scene, but while watching “Valerian,” he has reverted, in the best possible way, to the mindset of a kid helplessly enthralled by the wild plotting, bizarre alien worlds and breathless derring-do on display—albeit a kid who has been able to marshal together armies of cutting-edge visual technicians and a near-$200 million budget (the largest in French film history) to bring it all to life exactly as it played in his head.

Set in the 28th century, the film centers on Valerian (Dane DeHaan) and Laureline (Cara Delevingne), a pair of special operatives fighting crime throughout the universe. As the story begins, the two are sent off to Big Market, a virtual-reality bazaar whose hordes of vendors can only be seen and approached after donning special equipment, to confiscate an ultra-rare and powerful Mül Converter, an adorable creature capable of reproducing anything that it eats. The cocky Valerian soon finds himself being pursued by any number of creatures while the far more cool and collected Laureline is charged with saving his bacon, presumably not for the first time. The twist this time is that, due to a technological malfunction, Valerian is also trapped between two different levels of reality with most of his body in the real world while his arm is stuck in the virtual universe. This may not make a lot of sense in the explanation but the end result on the screen is a hilarious and exciting thing of crackpot beauty that is just one high point of a film filled with them.

After securing the Mül Converter, Valerian and Laureline report to Alpha, a massive floating city that began centuries earlier as the International Space Station and has expanded over the years to serve as a home away from home for aliens from throughout the universe to live together in harmony. Now Alpha’s very existence is being threatened from within and Valerian and Laureline are charged with getting to the bottom of things before it is too late. While investigating, the two uncover evidence of a massive government conspiracy to cover up a ghastly mistake. As they try to unravel before all is lost, the two are separated and have a series of adventures involving a wild collection of creatures, the most memorable of which is a shape-shifting “glampod” played by pop princess Rihanna, who turns up to help Valerian rescue Laureline. 

Besson has long been one of the most cinematically stylish filmmakers at work today but he outdoes himself here. There is not a single scene in the film that does not contain a visual worth savoring, whether it is an unusual creature, an extravagant costume or just a throwaway oddity lurking in a corner. (This is one of the rare recent films in which the 3-D option is clearly the way to go.) At the same time, Besson is using his visual skills as a way of telling the story instead of merely serving up bits of gourmet eye candy. Take the extended early sequence set on a bucolic distant planet whose sleek and iridescent inhabitants go about their business before being interrupted by a cataclysmic event. The scene is an initial grabber because of the absolutely gorgeous design of the planet and its inhabitants. But as it goes on, we quickly get a sense of who they are in relation to each other and how their world functions without a single word of dialogue to explain any of it.

Some will complain that the screenplay is little more than a series of action sequences linked together by a story that doesn’t make any sense and absurdly clunky dialogue. While some of the criticisms are valid—there are times when the dialogue sounds as if it underwent one pass too many through translation software programmed by George Lucas—Besson’s narrative is more ambitious than usual this time around and, for all the silliness on display, ultimately touches on real-world concerns such as political corruption and the international refugee crisis in ways that lend real emotional weight to the proceedings. At the same time, “Valerian” is unusually optimistic in its depiction of the future from the charming prologue showing the evolution of Alpha to the sight of its inhabitants living together in peace. At a time when virtually every futuristic film envisions some form of dystopian nightmare, the sunnier take shown here is refreshing.

The only weak element to “Valerian and the City of a Thousand Planets,” ironically enough, is Valerian himself. Throughout his career, Besson has never had much interest in telling stories based around conventionally masculine heroes—most of his films have centered on tough and resourceful female characters and when guys have been front-and-center, they have had their macho natures subverted in some way (such as dressing Bruce Willis in Jean-Paul Gaultier in “The Fifth Element”). Here, Valerian should be brave, bold and resourceful but as inhabited by DeHaan, he comes across more like a callow kid struggling to emulate the effortless cool of Han Solo. Besson is clearly more interested in the character of Laureline and so will viewers thanks to the performance by Delevingne. She is funny, convincing in the fight scenes, charismatic as hell and capable of taking an absurdly melodramatic speech like her climactic oratory on the importance of love and make it work. Thanks to films like “Wonder Woman” and the recent “Star Wars” entries, we are in a new age of exemplary female heroes at the multiplex and Laureline is fully deserving of a place among them.

“Valerian and the City of a Thousand Planets” is an utter delight and one of the most gorgeous fantasies to hit the screen in recent memory—the kind of film that can take moviegoers logy from the usual array of craptaculars and render them absolutely giddy with its pure fun. The question, of course, is whether viewers will be willing to give its weirdo charms a chance. But if you want to come away from a film feeling dazzled instead of simply dazed, this is an absolute must. Besides, it is almost certainly going to become a cult favorite in a few years, so why not get in on the ground floor while you can?

Saturday Morning Breakfast Cereal: Saturday Morning Breakfast Cereal - Hey Kid!

Click here to go see the bonus panel!

What I really want is a Star Wars Lego kit made of exactly two enormous pieces.

New comic!
Today's News:

Hey geeks! The submission round is now open for BAHFest Seattle (it's back!) and BAHFest SF. WOOP!

Perlsphere: Drawing Traffic Lights With Perl

For a thing (that you may hear more about at some point in the future) I needed diagrams of traffic lights. But Google Image Search didn’t really have what I was looking for. Everything was either too realistic or not CC-licensed so I could use the images how I wanted.

So I decided to do it myself. But I’m not exactly artistic. I far prefer it when I can get computers to draw images for me. I’ve dabbled with SVG before and it seemed like the perfect tool for the job. And there’s a module from CPAN that makes it simple to create SVG images from Perl.

It only took an hour or so before I was drawing images like the one above – which was exactly what I was looking for.

Initially, I shared my code as a Gist, but since then I’ve extracted the useful bits into a module which I’ve uploaded to CPAN as SVG::TrafficLight. I’ve tried to make it as configurable as possible, so you should be able to use it for all your traffic light drawing needs as well.

Starting to use it is pretty simple.

use SVG::TrafficLight;

my $tl = SVG::TrafficLight->new; # default image
print $some_file_handle $tl->xmlify;

The default sequence of lights shows the UK’s standard traffic light sequence (green,  amber, red, red and amber, green) but it’s simple enough to produce a different sequence (even one that you would never see on the roads).

my $tl2 = SVG::TrafficLight->new({
  sequence => [
    { red => 1, amber => 1, green => 1 }, # all lights on
    { red => 0, amber => 0, green => 0 }, # all lights off

If you read the documentation, you’ll see how you can customise pretty much anything in the diagram – the size of the lights, the padding between them, even the colours used.

Let me know if you find it all at useful. SVG is fun. I’ll think I’ll investigate it some more.


The post Drawing Traffic Lights With Perl appeared first on Perl Hacks.

Explosm.net: Comic for 2017.07.22

New Cyanide and Happiness Comic

Penny Arcade: News Post: Dumber Camp, Part Two

Tycho: I have every faith that I’ve said something very much like if not identical to the last line in the strip.  I could apologize, I guess, but I’m not 100% sure it isn’t true. There is a more detailed version of this tale presented in an old post, maybe, what…  fourteen years old at this point?  I have a condition where when I remember things I also feel all the feelings in the memory.  It makes forgiving people very challenging because even if I’ve developed an antibody to, say, a Betrayal, I always feel that first when I go back. When I think…

Open Culture: Salvador Dalí’s Body Gets Exhumed, Revealing That, 28 Years After His Death, His Moustache Remains Perfectly Intact

Image by Allan Warren, via Wikimedia Commons

Last month, a Spanish court ordered the exhumation of Salvador Dalí's, to see whether--as a paternity case claims--he's the father of María Pilar Abel Martínez, a tarot card reader born in 1956. When experts opened his crypt on Thursday night, they encountered a pretty remarkable scene. According to Narcís Bardalet, the doctor who embalmed the artist's body back in 1989, Dalí's face was covered with a silk handkerchief – a magnificent handkerchief." "When it was removed, I was delighted to see his moustache was intact … I was quite moved. You could also see his hair." "His moustache is still intact, [like clock hands at] 10 past 10, just as he liked it. It’s a miracle."  "The moustache is still there and will be for centuries." That's perhaps the last surviving trace of Dalí's schtick that will remain.

via The Guardian

Follow Open Culture on Facebook and Twitter and share intelligent media with your friends. Or better yet, sign up for our daily email and get a daily dose of Open Culture in your inbox. 

If you'd like to support Open Culture and our mission, please consider making a donation to our site. It's hard to rely 100% on ads, and your contributions will help us provide the best free cultural and educational materials.

Related Content:

Salvador Dalí Figurines Let You Bring the Artist’s Surreal Paintings Into Your Home

The Tarot Card Deck Designed by Salvador Dalí

Salvador Dalí’s 1973 Cookbook Gets Reissued: Surrealist Art Meets Haute Cuisine

Salvador Dalí’s Avant-Garde Christmas Cards

Walk Inside a Surrealist Salvador Dalí Painting with This 360º Virtual Reality Video

Hieronymus Bosch Figurines: Collect Surreal Characters from Bosch’s Paintings & Put Them on Your Bookshelf

Salvador Dalí’s Body Gets Exhumed, Revealing That, 28 Years After His Death, His Moustache Remains Perfectly Intact 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.

All Content: Netflix's "Ozark" is a Mindless Puzzle

Thumb ozark 201

Jason Bateman plays a business savvy patriarch who gets caught up in some shady dealings in “Ozark,” a new ten-episode series streaming on Netflix today. He tries to run his family like a small business after making a huge mistake, and it’s often up to his smarts to get everyone out. If this sounds like the series “Arrested Development,” which also happens to star Bateman, you’re not far off, as “Ozark” has the strange air of what would happen if “Breaking Bad” met that famous show. 

But before it gets to its dead-serious financial shenanigans, “Ozark” plays out like a riff on “American Beauty” in the pilot episode directed by two-time filmmaker Bateman. He plays a financial advisor named Marty Byrde whose disenfranchisement with suburban life extends beyond consuming himself with work, or glumly watching a video of his wife Wendy (Laura Linney) cheating on him with another man. By the end of the episode, Marty has gone from bland suit to accounting antihero when a ripped-off cartel boss that he also works for (Esai Morales) enlists him to launder and make money for him in a certain time frame, or else (in an episode that continually surprises with its brutality, Marty’s business partner is not so lucky). Marty frantically packs up his family, including middle-school age Jonah (Skylar Gaertner), 15-year-old daughter Charlotte (Sofia Hublitz) and his wife, and they head to the Missouri Ozarks, where money can be made from the small businesses that see exponential tourist business in the summer season. 

By episode two, “Ozark” settles in its title location, and starts to take its natural rhythm, as a collection of scenes in which characters negotiate with each other, with Bateman’s Marty very often having the upper-hand given his knowledge. He tries to find businesses he can invest in like a strip club called the Lickety Splitz or a struggling dockside bar. People in the town quickly begin to notice and take advantage of him, like the crooked Langmore family, who are often led by the word of 19-year-old Ruth (Julia Garner of “Grandma”). Stealing opportunity is the operative mindset in a story like this, with everyone trying to take advantage of the other, in order to obtain what Marty says in the pilot to be a measure of a man’s choices—money. Meanwhile, an FBI agent named Roy Petty (Jason Butler Harner) ventures down to the Ozarks to follow Marty and his family undercover, while connecting with one of the Langmore brothers in a way that seems more personal than just part of the job. The series does hit it stride, finally, in episode five, in which Marty is caught up with the legitimately intimidating family who have the largest, and most criminal, business in the Ozarks. 

A lot of this would play more thrillingly if the characters didn’t seem as wooden; if the series felt like it was written to serve more than just a need to present power plays. Characters of various degrees of evil, along with various degrees of business savvy, clash in endless scenes of trying to get the upper-hand. Their lacking construction doesn’t sustain the tension needed, even with the cartel putting Marty on a ticking time clock, or numerous scenes in which Marty has to think on his feet to secure thousands of dollars from archetypal blue collar folk. Along with its penchant for malevolent characters to go on rambling monologues in order to convey some type of way they do business, “Ozark” is like a turgid fantasy on the art of making deals. 

Other character threads fill in the running time of each 55-minute episode, but given the script’s established limits, are by no means revelatory. It affects performances in most cases, as with Linney’s underutilized Wendy character, who slowly comes to terms with the life-or-death uprooting that her family has experienced and has her own way of manipulating people. But she's subjected to hammy sequences like in a grocery store, where she freaks about mint ice cream. Children Charlotte and Jonah have their own mini-stories, like Charlotte’s first-person interaction with the boys from both the area and not or Jonah’s fascination with the cartel coming to kill his family, and soon taking up the business mentalities of his father. Charlotte gets the worst of any major character, lazily written as a teenager (“Their Snapchats are like FOMO 24/7,” she says about her friends back home) but the indifferent handling just proves part of the show’s creative atmosphere. 

From the very first episode, “Ozark” is dressed up like a David Fincher movie, using the green and gray tints that the director adores, along with a score that clicks and beeps just like the work that Atticus Ross & David Fincher have previously done for the influential filmmaker. Bunched with the sullen tone in its storytelling, which seeks to take viewers deeper into the criminal activity of the Ozarks and into the life of Marty before the cartel comes calling, you can see the dramatic aspirations for this series. But if you look past that veneer, “Ozark” is far less rich in just about everything except flashy business ideas, its story only able to offer binge-viewers some mindless puzzles. 

Greater Fool – Authored by Garth Turner – The Troubled Future of Real Estate: The bottom

Besides hockey, guilt and crappy donuts, we’re really good at irony. What better example than houses? When times were hard, jobs scarce and the dollar plopping we blew the mother of all real estate gasbags. Now that the economy rocks, a serious correction threatens to become a crash. Fear of missing out has become a scramble to get out. Greed, then panic. It’s so classic.

In this case, however, the better the economy becomes the tougher it might be for the value of your home. The odds of a second interest rate increase in 2017 shot up dramatically on Friday with the latest data. Markets now expect another quarter-point increase on Wednesday, October 25th.

That will raise the prime rate at the banks to 3.2%, move secured lines of credit to within spitting distance of 4% and increase the cost of variable mortgages. Fixed-rate home loans will likely move higher in the week or two prior, as bond yields plump ahead of the central bank move. By the way, this would mean the Bank of Canada benchmark would have doubled in 2017. With more to come.

By historic standards this is still stupid-cheap money. But real estate is fueled by hormones, perceptions and stirred loins. The last rate hike didn’t cause a flurry of offers by people with cheaper pre-approved mortgages, for example, the way many forecast. Instead, it just scared buyers. They smell risk.

The Toronto market continues to collapse. The latest stats build on the numbers this blog gave you a few days ago. Fugly. Bigly. Overall sales were down 39% in the first two weeks of July, with a 45% crumble in deals for detached houses. Semis dropped 43% and condos 35%. Listings are starting to shrink as owners understand the market’s turning toxic and gamble that conditions will be better in the autumn. They won’t be.

In terms of price, the GTA average is $760,356. In April it was $919,589. That’s a fade of more than $159,000, or 17.31%. The declines have been historic: down 6.2% in May, another 8.1% in June, and 4.2% in just the first two weeks of July. In the last 15 days alone the average house shed $34,000, or enough to buy eight or nine used Kias.

By every definition, this is a sharp, deep and ferocious correction. If it were the stock market under discussion, we’d be just days away from an official bear market. That makes talk of a rebound in September kind of comical. Or irresponsible. Any buyer jumping in now to take advantage of a 17% price decline might end up losing all of their equity by the end of the year.

The threats are growing. Higher retail sales in May, a strengthening dollar and robust GDP expansion north of 3% confirm the Bank of Canada was correct in raising its rate this month, and certain to do it again in a few more weeks. Ontario’s anti-bubble measures are only now starting to have a real bite, chasing away foreign capital, whacking amateur landlords with new rent controls and spawning myriad CRA audits.

In BC the lefties are now in control, destined to make the 4% price drop and 80% decline in new home starts even worse. Ottawa has just announced measures to raise $500 million more in taxes from the hides of small businesses and incorporated professionals. And the bank regulator still plans on subjecting all buyers to a new mortgage stress test, even if they have a big down payment.

So how, exactly, are things supposed to get better in six weeks? Household debt will still be off the charts, two-thirds of it in mortgages. The cost of servicing $211 billion in home equity lines of credit will go up again. Governments desperate to stop people from buying digs they cannot afford are not about to reverse course and reflate the bubble. And right around the world, we’re in an environment of tightening monetary policy. In other words, you will never again see a bank offer a five-year 2% mortgage.

Simply put, why would anyone buy a property? The 17% slash in prices has occurred in a short ten weeks. An equal loss could lie ahead between now and the end of September – leading into the next round of rate hikes. Yes, there are more choices, vendors are motivated, conditional sales are back and you can spend $160,000 less than your best friend did in March – who now looks like a moron.

The market will continue to descend until it finds a bottom. Not there yet.

Perlsphere: Perl 6 Fundamentals Now Available for Purchase

After about nine months of work, my book Perl 6 Fundamentals is now available for purchase on apress.com and springer.com.

The ebook can be purchased right now, and comes in the epub and PDF formats (with watermarks, but DRM free). The print form can be pre-ordered from Amazon, and will become ready for shipping in about a week or two.

I will make a copy of the ebook available for free for everybody who purchased an earlier version, "Perl 6 by Example", from LeanPub.

The book is aimed at people familiar with the basics of programming; prior Perl 5 or Perl 6 knowledge is not required. It features a practical example in most chapters (no mammal hierarchies or class Rectangle inheriting from class Shape), ranging from simple input/output and text formatting to plotting with python's matplotlib libraries. Other examples include date and time conversion, a Unicode search tool and a directory size visualization.

I use these examples to explain subset of Perl 6, with many pointers to more documentation where relevant. Perl 6 topics include the basic lexicographic structure, testing, input and output, multi dispatch, object orientation, regexes and grammars, usage of modules, functional programming and interaction with python libraries through Inline::Python.

Let me finish with Larry Wall's description of this book, quoted from his foreword:

It's not just a reference, since you can always find such materials online. Nor is it just a cookbook. I like to think of it as an extended invitation, from a well-liked and well-informed member of our circle, to people like you who might want to join in on the fun. Because joy is what's fundamental to Perl. The essence of Perl is an invitation to love, and to be loved by, the Perl community. It's an invitation to be a participant of the gift economy, on both the receiving and the giving end.

Quiet Earth: THE WALKING DEAD Season 8 Trailer

It’s all-out war in The Walking Dead when season 8 Premieres Sunday, October 22 on AMC. The cast and crew appeared at Comic Con today to show off some news stuff including this extended trailer.

Despite the fact that I know many people who have fallen off the Walking Dead bandwagon, I'm not one of them. I still think it's one of the best shows on television and a high point for zombie media that continually takes risks.

Having said that, I definitely understand much of the criticism leveled at he show over recent years. I have my own, particularly the way it handled some cliff hangers over the last few seasons as well as the introduction of some off-book characters.

What do you guys think? What continues to work about Walking Dead and what doesn't?

[Continued ...]

Open Culture: Where Do Ideas Come From? David Lynch, Robert Krulwich, Susan Orlean, Chuck Close & Others Reveal Their Creative Sources

Ask any creator subject to frequent interviews which questions they dread, and one in particular will come up more than any other: "Where do you get your ideas?" Some have readily spoken and written on the subject — Isaac Asimov, Neil Gaiman, David Lynch — but most, even if they've had truly astonishing ideas, have given the subject of ideas in general little thought. The video above, named after the infamous question, compiles a variety of answers from a variety of people, younger and older, famous and less so, into a five-minute search for the source of human creativity.

"I get ideas in fragments," says Lynch, whose voice we hear amid the many others in the video. "It's as if, in the other room, there's a puzzle and all the pieces are together. But in my room, they just flip one piece at a time into me."

When a good idea comes along, says a twelve-year-old named Ursula, "that's the feeling they call inspiration." But Radiolab host Robert Krulwich has a dim view of inspiration: "I'm a little suspicious of the idea like, 'In the beginning there was nothing and then there was light.' I don't think I've had that experience, and for other people who've said that they've had that experience, I'm not sure I believe them."

"Inspiration is for amateurs," says artist Chuck Close. "The rest of us just show up and get to work. Every great idea came out of work, everything." Chalk up another point in favor of Thomas Edison's famous breakdown of genius as one percent inspiration and 99 percent perspiration — but what kind of perspiration? As professional skateboarder Ray Barbee sees it, "most people start off by mimicking something, but then it turns into their own thing because they don't really have the ability to mimic it precisely," a process that produces "originality from copying."

"Whenever I finish a story," says New Yorker writer Susan Orlean, "I go through a period of time where I feel like I will never again have an idea." But it never lasts as long as it feels: "One day you fall onto something, and it just looks you in the face and says, 'I'm the one.'" That "one" could take the form, according to the video's contributors, of a chance encounter, a sentence in a story, a yellow ball bouncing down the street, a solitary lawn chair seen from a train window, a dump trick, or many other even less expected entities besides. You just have to be primed and ready to connect it in an interesting manner to other things in your head, in your environment, and in the culture. "Luck is what happens when preparation meets opportunity," goes a well-known quote often attributed to Seneca — and so, it seems, is creativity.

Related Content:

An Animated David Lynch Explains Where He Gets His Ideas

Isaac Asimov Explains the Origins of Good Ideas & Creativity in Never-Before-Published Essay

Where Do Great Ideas Come From? Neil Gaiman Explains

John Cleese on the Origin of Creativity

Rod Serling: Where Do Ideas Come From?

Kurt Vonnegut: Where Do I Get My Ideas From? My Disgust with Civilization

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

Where Do Ideas Come From? David Lynch, Robert Krulwich, Susan Orlean, Chuck Close & Others Reveal Their Creative Sources is a post from: Open Culture. Follow us on Facebook, Twitter, and Google Plus, or get our Daily Email. And don't miss our big collections of Free Online Courses, Free Online Movies, Free eBooksFree Audio Books, Free Foreign Language Lessons, and MOOCs.

CreativeApplications.Net: Floral Automaton – Digital growth with physical adaptation

Created by Thomas Grogan, Floral Automaton is a sculptural device that grows flowers digitally. Using various sensors taken from Smart Cities technologies, it reacts and adapts itself to its environment in real time.

Open Culture: Russian History & Literature Come to Life in Wonderfully Colorized Portraits: See Photos of Tolstoy, Chekhov, the Romanovs & More

Colorized episodes of I Love Lucy verge on sacrilege, but Olga Shirnina, a translator and amateur colorist of considerable talent, has unquestionably noble goals when colorizing vintage portraits, such as that of the Romanovs, above.

In her view, color has the power to close the gap between the subjects of musty public domain photos and their modern viewers. The most fulfilling moment for this artist, aka Klimblim, comes when “suddenly the person looks back at you as if he’s alive.”

A before and after comparison of her digital makeover on Nadezhda Kolesnikova, one of many female Soviet snipers whose vintage likenesses she has colorized bears this out. The color version could be a fashion spread in a current magazine, except there's nothing artificial-seeming about this 1943 pose.

“The world was never monochrome even during the war,” Shirnina reflected in the Daily Mail.

Military subjects pose a particular challenge:

When I colorize uniforms I have to search for info about the colours or ask experts. So I’m not free in choosing colors. When I colorize a dress on a 1890s photo, I look at what colors were fashionable at that time. When I have no limitations I play with colours looking for the best combination. It’s really quite arbitrary but a couple of years ago I translated a book about colours and hope that something from it is left in my head.

She also puts herself on a short leash where famous subjects are concerned. Eyewitness accounts of Vladimir Lenin’s eye color ensured that the revolutionary’s colorized irises would remain true to life.

And while there may be a market for representations of punked out Russian literary heroes, Shirnina plays it straight there too, eschewing the digital Manic Panic where Chekhov, Tolstoy, and Bulgakov are concerned.

Her hand with Photoshop CS6 may restore celebrity to those whose stars have faded with time, like Vera Komissarzhevskaya, the original ingenue in Chekhov’s much performed play The Seagull and wrestler Karl Pospischil, who showed off his physique sans culotte in a photo from 1912.

Even the unsung proletariat are given a chance to shine from the fields and factory floors.

Browse an eye popping gallery of Olga Shirnina’s work on her website.

Related Content:

Beautiful, Color Photographs of Paris Taken 100 Years Ago—at the Beginning of World War I & the End of La Belle Époque

Colorized Photos Bring Walt Whitman, Charlie Chaplin, Helen Keller & Mark Twain Back to Life

Venice in Beautiful Color Images 125 Years Ago: The Rialto Bridge, St. Mark’s Basilica, Doge’s Palace & More

Ayun Halliday is an author, illustrator, theater maker and Chief Primatologist of the East Village Inky zine.  Follow her @AyunHalliday.

Russian History & Literature Come to Life in Wonderfully Colorized Portraits: See Photos of Tolstoy, Chekhov, the Romanovs & More 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.


For a limited time, get the 400 page COMPLETE Our Valued Customers 

Colossal: New Split-View Trash Sculptures by Bordalo II Combine Wood and Colorful Plastics Into Gigantic Animals

Bordalo II (previously) has created a series of bisected animals, colorful plastics forming one half of the creature while a combination of wood and metal created a muted mirror on the other side. In one piece the Portuguese artist created a turtle with legs that extend to the ground, appearing to crawl along the side of a a low wall in Moncton, Canada. Other works are more monumental, such as a rabbit that extends two stories in Vila Nova de Gaia, Portugal, and a raccoon that seems to dangle head first from a building in Pittsburgh.

The globally-placed installations are the newest evolution of his series Trash Animals, large public works that address the impact our carelessly tossed waste has on the environment around us. You can observe his process for collecting plastic and other waste, as well as follow more of his recent work, on Instagram.

Colossal: A Perfectly Timed Pool Plunge Captured by Natalie Greenroyd

Oklahoma-based photographer Natalie Greenroyd was sitting on a raft in a swimming pool when her husband decided to jump in to splash her. She happened to have an underwater camera in-hand and clicked the shutter at just the right moment. You can see more of her photography on Instagram. (via Feature Shoot)

Saturday Morning Breakfast Cereal: Saturday Morning Breakfast Cereal - Takeoff

Click here to go see the bonus panel!

I really don't understand why we load down rockets with centers of mass.

New comic!
Today's News:



Penny Arcade: Comic: Dumber Camp, Part Two

New Comic: Dumber Camp, Part Two

Daniel Lemire's blog: Science and Technology links (July 21st, 2017)

Want proof that you live in the future? Ok. There is this “cryptocurrency” called ethereum and it is causing a shortage of microprocessors:

Demand from Ethereum miners has created temporary shortages of some of the graphics cards, according to analysts, who cite sold-out products at online retailers. Estimates of additional sales from this demand run as high as $875 million, according to RBC Capital Markets analyst Mitch Steves. That would roughly equal AMD’s total sales from graphics chips last year, or half of Nvidia’s quarterly sales of those components.

This is all very strange.

It is not exactly known why hair turns gray as well age, but it is largely reported as an irreversible process linked with cells dying out. Yet time and time again, there are anecdotes of graying reversal. The latest one was published in a reputable journal (JAMA Dermatology) that even tweeted a picture. In that report, 14 cancer patients have seen their hair pigmentation come back. That offers a powerful hint that we could reverse gray hair with the right therapy. Obviously, there are cheap and obvious ways to turn your hair any color you like at any age… but such reports remind us that there is much we do not understand yet.

Intel’s latest chip, the Core i9 X-series, can produce one teraflop of computing performance for about $2000. If you have 2 billion dollars, you can theoretically buy a million of these chips and produce the first exascale supercomputer. Of course, you’ll also cause a massive power shortage in your neighborhood if you ever turn the thing on.

Jeff Bezos, the president of Amazon, is 53, and so he was in his early 30s when he started out his business. A picture of him offering a side-by-side comparison, 20 years ago and today, has been widely distributed. I would not contradict the current Jeff Bezos: he looks like he could break me in half.

Our brains are poor at repairing themselves. There is such a thing as in vivo neuroregeneration, but it is not widespread in the human body. Researchers have found that using by using the right electrical field, they could entice stem cells to relocate where repairs are needed and then differentiate appropriately.

We all know that we inherit our genes from our parents. Then our cells turn on or off those genes through a set of poorly understood techniques called epigenetics. This is necessary if only for cell differentiation: the cells from your brain have the same genes as the cells from your toes, but they express different genes. The older version of you has the same genes as the younger version, but the older you express more genes. It is believed that lifestyle can affect genes. If you starve all your life or exercise intensively, you will express different genes. But can this program of gene expression be passed on to your children? It seems that you can, at least in some specific ways. A recent article in Science makes a case for it:

Parents provide genetic information that guides the development of the offspring. Zenk et al. show that epigenetic information, in the form of the repressive mark H3K27me3, is also propagated to the offspring and regulates proper gene expression in the embryo. Preventing the propagation of maternally inherited H3K27me3 led to precocious gene activation and, ultimately, embryo lethality.

In the early days of the XIXth century, there was debate as to how species evolved. How did the giraffes get long necks? The commonly accepted view is that of Darwin: giraffes with longer necks tended to survive longer and to have more offsprings so that over time, giraffes acquired longer and longer necks, one generation at a time. There were theories that predate Darwinism, one of them by Jean-Baptiste Lamarck. Lamarck believed in soft inheritance. For example, he would believe that if your parents are body builders, you would inherit larger muscles. Lamarck’s view is now discredited, but if epigenetic markers can be passed on to offsprings, then we would be forced to conclude that he was partly right. If you follow the logic of the Science article, it is conceivable that in a society of bodybuilders, kids could receive epigenetic markers that enhance muscle growth. I should point out that even if epigenetic markers are passed on, this does not put into question Darwinism: at best, Darwinism is an incomplete theory.

Open Culture: The World’s Oldest Multicolor Book, a 1633 Chinese Calligraphy & Painting Manual, Now Digitized and Put Online

We think of Johannes Gutenberg’s printing press (circa 1440) to have begun the era of the printed book, since his invention allowed for mass production of books on a scale unheard of before. But we must date the invention of printing itself much earlier—nearly 600 years earlier—to the Chinese method of xylography, a form of woodblock printing. Also used in Japan and Korea, this elegant method allowed for the reproduction of hundreds of books from the 9th century to the time of Gutenberg, most of them Buddhist texts created by monks. In the 11th century, writes Elizabeth Palermo at Live Science, a Chinese peasant named Bi Sheng (Pi Sheng) developed the world’s first movable type.” The technology may have also arisen independently in the 14th century Yuan Dynasty and in Korea around the same time.

Despite these innovations, xylography remained the primary method of printing in Asia. The “daunting task” of casting the thousands of characters in Chinese, Japanese, and Korean “may have made woodblocks seem like a more efficient option for printing these languages.” This still-labor-intensive process produced books and illustrations for several centuries, a good many of them incredible works of art in their own right. In 1633, a Chinese printer named Hu Zhengyan invented a technique known as douban, a form of polychrome xylography that led to the creation of the world’s oldest multicolor printed book, Shi zhu zhai shu hua pu (Manual of Calligraphy and Painting), containing, perhaps, writes Cambridge University Library, “the most beautiful set of prints ever made.” And now thanks to Cambridge, the manual has been carefully digitized and made available online.

Published by Hu Zhengyan’s Ten Bamboo Studio in Nanjiang, this manual for teachers contains 138 pages of multicolor prints by fifty different artists and calligraphers and 250 pages of accompanying text. “The method” that produced the stunning artifact “involves the use of multiple printing blocks which successively apply different coloured inks to the paper to reproduce the effect of watercolour painting.” Kept untouched in Cambridge’s “most secure vaults,” the book was unsealed for the first time just a couple years ago. “What surprised us,” remarked Charles Aylmer, head of the Library’s Chinese Department, “was the amazing freshness of the images, as if they had never been looked at for over 300 years.”

The 17th century copy is “unique in being complete, in perfect condition and in its original binding.” (Another, incomplete, copy was acquired in 2014 by the Huntington Library in San Marino, CA.) The book contains many “detailed instructions on brush techniques,” writes CNN, “but its phenomenal beauty has meant from the outset that it has held a greater position” than other such manuals. Like another gorgeous multicolor painting textbook, the Manual of the Mustard Seed Garden, made in 1679, this text had a significant impact on the arts in both China and Japan, “where it inspired a whole new branch of printing.”

Considered “one of the most historically and artistically important illustrated books of 17th century Chinese woodblock art,” notes Liesl Bradner at the L.A. Times, Hu Zhengyan’s text reflects a time when literacy levels were rising. Along with them came “increasing consumer demand for the printed word and images, which ushered in a golden era of Chinese pictorial painting.” You can page through digital scans of the entire book, from cover to cover, at the University of Cambridge’s Digital Library. Note: There are 388 pages in total. Click on the arrows at the top of this page to move through the text.

via MetaFilter

Related Content:

Behold the Masterpiece by Japan’s Last Great Woodblock Artist: View Online Tsukioka Yoshitoshi’s One Hundred Aspects of the Moon (1885)

Download 2,500 Beautiful Woodblock Prints and Drawings by Japanese Masters (1600-1915)

An Epic Retelling of the Great Chinese Novel Romance of the Three Kingdoms: 110 Free Episodes and Counting

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

The World’s Oldest Multicolor Book, a 1633 Chinese Calligraphy & Painting Manual, Now Digitized and Put Online 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: Google’s DeepMind AI Teaches Itself to Walk, and the Results Are Kooky, No Wait, Chilling

In 2014, Google acquired DeepMind, a company which soon made news when its artificial intelligence software defeated the world's best player of the Chinese strategy game, Go. What's DeepMind up to these days? More elemental things--like teaching itself to walk. Above, watch what happens when, on the fly, DeepMind's AI learns to walk, run, jump, and climb. Sure, it all seems a little kooky--until you realize that if DeepMind's AI can learn to walk in hours, it can take your job in a matter of years.

Watch a primer explaining how DeepMind works here. And find more AI resources in the Relateds below.

via Twisted Sifter

Related Content:

Artificial Intelligence: A Free Online Course from MIT

Experts Predict When Artificial Intelligence Will Take Our Jobs: From Writing Essays, Books & Songs, to Performing Surgery and Driving Trucks

Artificial Intelligence Program Tries to Write a Beatles Song: Listen to “Daddy’s Car”

Two Artificial Intelligence Chatbots Talk to Each Other & Get Into a Deep Philosophical Conversation

Google’s DeepMind AI Teaches Itself to Walk, and the Results Are Kooky, No Wait, Chilling 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.

BOOOOOOOM!: The Booooooom Creative Job Board

Booooooom art design jobs

If you’re a creative looking for work, or a company looking to hire, we are excited to announce our very own creative job board: Booooooom Jobs. Graphic design jobs, curatorial positions in galleries, freelance animation gigs, a wide variety of opportunities to work in a creative field!

A couple of examples: Our friends at Society6 are looking for a Creative Director, and Skillshare have posted openings for both a Content Producer and Senior Product Designer.

To start, we’re focusing on three cities (New York, Los Angeles, and Vancouver) and will also be posting remote jobs (for those of you who prefer to work from home). All job postings are free for the rest of the month if you use the PROMO CODE: ‘friends’.

Check it out: jobs.booooooom.com

TheSirensSound: New album Happy Birthday by Blood Cultures

New Jersey's Blood Cultures conjures majestic pop fireballs and zaps your senses with dreamy, summery synth sounds evident in the debut album release "Happy Birthday." Washed Out's ethereal vocals meets Neon Indian's fuzzed out synth sounds in the 12-track release that's so far seen the success of singles including "Indian Summer," "Moon," and "Detroit."

"Happy Birthday" is officially out tomorrow and be sure to catch Blood Cultures' debut live performance at Rough Trade NYC on August 9th.

TheSirensSound: Review of A703 by Naal

NAAL is an eclectic music project led by Chicago composer Dave Mantel. This talented musician has a true passion for great melodies and haunting musical textures. His blend of ambient, shoegaze and experimental drone music feels personal and unique, echoing the work of artists such as Slowdive, Boards of Canada or Sigur Ros, just to mention a few.

Recently, NAAL released a brand new studio effort, A703, in its deluxe edition.

This release marks the artist’s debut and this deluxe version is another significant musical milestone for the project, who is quickly gaining positive receptions and support from critics and audiences alike.

The seven tracks featured on the album have a surrealistic sonic signature, with a cinematic atmosphere that ranges from uplifting brightness to eerie darkness.

The melodic drones that fuel many of the songs seem to bleed into one another. The apparent stillness of this music is actually far from being a lack of motion: every song evolves slowly, as the drone acquires more harmonic, different texture characteristics, new octaves and even new tonal directions. These lush instrumental compositions are deceptively simple, yet the production aesthetics are rich and full of beautiful layers. The stunning artwork cover also deserves a mention here. The minimalistic approach to design reflects the understated musical compositions that you will find in this release.

The Deluxe edition of this work features a few extra add-ons and surprises for fans and new listeners alike.

Through the project’s official website, there are a wide variety of packages to choose from, ranging from digital downloads to cassette tapes and cool t-shirts, and any combination of the above. The cassette tape edition is super-limited and completely DIY, available in 50 copies made especially by the artist on high-grade equipment. Buyers will also receive other cool content, such as unique pictures, thank you notes and more.

A703 strikes for its cohesive vision, dark ambiance and great production values. This release is remarkable because it definitely pays a sincere tribute to the group’s influences, yet starkly affirms his own personality and approach.

Explosm.net: Comic for 2017.07.21

New Cyanide and Happiness Comic

Ideas from CBC Radio (Highlights): All in the family: Understanding and healing childhood trauma

Trauma is not a story about the past -- it lives in the present: in both the mind and body. Left untreated, it has no expiration date, whether it's trauma arising from childhood abuse or PTSD suffered as an adult.

Penny Arcade: News Post: Here They Are - Your PAX 10!

Tycho: We always offer a space for especially for indies with the PAX 10 - our cadre of experts selects their favorites from the submitted titles, and the chosen games get free booth space at the show.  We’re proud to announce the list!  Here is the link to the official page, but they are also right here!  Use whichever links you want.  They all go to the same places! Antihero by Tim Conkling Celeste by Matt Makes Games Inc. Cosmo’s Quickstop by Big Sir Games Keyboard Sports by Triband No Heroes Here by Mad Mimic Interactive Ship It by Think On Labs (First VR Game…

Quiet Earth: Fantasia 2017: BITCH Has Bite [Review]

We've met them. They're often moms who appear to have the perfect life: loving husband, beautiful home, lovely children. Jill was one of those moms but life slowly started to chip away at her and when we meet her in the opening scene of Marianna Palka's Bitch she's had enough and her way of dealing with it is... interesting.

Palka plays triple duty writing, directing and starring in this family dramedy which has, to say the least, a lot of bite. It's not often that we get a movie that speaks so frankly to the hardships of stay-at-home moms. How overlooked and unappreciated they are - often only being noted for their occasional oversights rather than the magic tricks they pull off every god-damned day.

Palka's choice to have Jill deal with her breakdown by tur [Continued ...]

Greater Fool – Authored by Garth Turner – The Troubled Future of Real Estate: The implosion

Some months ago the fancy, trophy wife-owning, Porsche-driving, gay sock-wearing, omniscient portfolio manager dudes I work with (who are allowed to blog here occasionally, just to keep them real) had a message.

“We want to scale back on our US weighting,” they said. “Trump scares us.”

“But,” I said, waving the Amazons away from oiling my chiseled torso for a few moments, “the deplorables hanging out at GreaterFool love him. How can he be scary?”

“Risk,” they said. “We’re increasingly disconstructive on the realistic potential for his pro-growth, inflationary and GDP-enhancing expansionist fiscal agenda to actually be effected.”

“So, he’s screwing up?”


And they disappeared back into their trading mosh pit, gold cufflinks glinting in the shards of light piercing the bank tower windows. The Amazons returned to peel grapes and buff toes.

So, exposure to American assets in our model portfolio was trimmed a few points, weighting to Europe was bumped up a little (“valuations are very tasty,” said Ryan) as was the ownership of maple (“relative strength analysis,” said Doug, “indicates a breakout.”). Of course this is not all about Trump, but he looms increasingly large in the minds of portfolio managers everywhere. In fact there’s a growing cadre of PMs who have recently reduced their US exposure to zero.

The reason is simple. After the 2016 election that shocked markets, stuffing Washington with Republicans and thrusting the unelectable billionaire into office, it looked like US public policy would turn on a dime. Trump was seen immediately as the Inflation President, goosing public spending, launching giant infrastructure projects, slashing corporate taxes, slicing through regulation and adopting an expensive, cost-goosing protectionist agenda of America-first. That looked bullish for corporations and profits, so markets rallied to record highs. Valuations went soaring. Investors rocked. And now markets are worth about 20% more than they should be.

Meanwhile, the president has choked – at least as far as many investors see it. No major legislation has passed. Even repealing and replacing Obamacare has proven impossible for a leader who can’t build coalitions. No budget has been enacted. No tax reform bill even drafted, let alone passed. No new bridges or airports built. And Trump has irritated key allies by walking out of the Paris Accord, the Trans-Pacific Partnership and, maybe, NAFTA.

All that is making people wonder if the post-election Trump rally was fueled by expectation and may be dashed by news.

In the past few days, concerns have swelled. The investigation into the relationship between Russia and the Presidential campaign has widened to include Trump’s past business dealings with oligarchs and Russian corporations. His family members will be probed over allegations they embraced shady Ruskies claiming to have dirt on Hillary. The president fired the FBI director investigating him. He just dissed his Attorney-General who refused to stop the Russia probe. And speculation is mounting he may ape Richard Nixon’s suicidal moves and fire the special counsel leading the Congressional inquiry.

“I think,” says Ryan, “there’s now a 50-50 chance he doesn’t finish his term. So, how good is it that we’ve sold off our American small-cap position, and reduced our US weighing by 5%?”

Does this cautious stance mean everybody should run screaming for the exits? Are those professional traders who have opted for a 0% US weighting the smart ones? If Trump blows up, will be take the S&P with him?

Nope. Of course not. Donald Trump is not the USA. He does not run the economy. The data points coming out of America are solid and strong. Corporate profits have been robust and rebounding, with significant future growth forecast. Job creation has been on a multi-year marathon, with most economists now proclaiming the country has full employment. Expansion has been sufficient to withstand three interest rate hikes in the past seven months. The real estate market is stable and expanding. Consumer confidence is near record levels.

Of course (like in Canada) debt is vast and the wealth gap is growing fast. Trump was elected for a reason, and his base remains steadfast.  Should the Donald implode and America polarize, the political and social damage could be as monumental as the man’s ego. But having no exposure to the US in your portfolio? Naaah. Bad idea.

In conclusion: weird times ahead. Be balanced and diversified. Stay invested. Don’t be extreme. Avoid deplorables. They’re gonna be ripe.

Quiet Earth: Fiery First Look at HBO's FARENHEIT 451 Adaptation

[Editor's Note: Be sure to join us on Facebook for news and contests and even more discussion of awesome movies, books and TV!]

Ramin Bahrani (99 Homes) directs this new adaptation of Ray Bradbury's classic dystopian novel of the same name.

Here we have the first fiery look at HBO's original film starring Michael B. Jordan and Michael Shannon. [Continued ...]

Colossal: New Smoke-Based Photographs by Ken Hermann Capture Colorful Bursts Rising From an Industrial Corridor

Smoke, the simply titled project photographed by Ken Hermann (previously) and art directed by Gem Fletcher, observes colorful clouds of the title’s subject matter as they disperse through industrial environments, each gaseous mass originating from a ladder at the center of the photograph. The works follow Hermann’s previous series Explosion 2.0, a group of explosive portraits which focused more on the fiery burst at the center of the frame rather than the smoke created by each. With this series the puffs of yellow, blue, orange, and pink clouds are closely documented, each work’s composition completely tied to the way in which the wind decided to turn. You can see more of the Denmark-based artist’s work on his Instagram @kenhermann and Fletcher’s at @gemfletcher.

Disquiet: Disquiet Junto Project 0290: Text-to-Beat

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.

This project’s deadline is 11:59pm wherever you are on Monday, July 24, 2017. This project was posted in the morning, California time, on Thursday, July 20, 2017.

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

Disquiet Junto Project 0290: Text-to-Beat
Use computer-generated speech as the rhythmic foundation for a track.

Step 1: This week we’re going to build a track around text-to-speech, the results of a computer-generated voice speaking. In past text-to-speech we’ve used pre-existing text as the source. In this case we’re going to build the text to order. Keep this in mind.

Step 2: Find a good text-to-speech system that you think you can work with musically. In MacOS, for example, there’s a built-in system shortcut: Just select the text you want to hear, highlight it (in a browser, or a text editor, wherever) and then hit the ESC button while holding down the OPT button. There are also other tools, including browser-based options, like the one here:


Step 3: Experiment with different combinations of words to produce a rhythm you want to work with.

Step 4: Record the rhythm you developed in Step 3.

Step 5: Produce a track using the rhythm in Step 4 as the foundation. (Level Up: Use more than one text-to-speech pattern to create cross-patterns, phasing, among other polyrhythmic events and effects.)

Five More Important Steps When Your Track Is Done:

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

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

Step 3: In the following discussion thread at llllllll.co please consider posting your track:


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

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

Deadline: This project’s deadline is 11:59pm wherever you are on Monday, July 24, 2017. This project was posted in the morning, California time, on Thursday, July 20, 2017.

Length: The length is entirely up to the participant, though two or three minutes is suggested.

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

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

Download: It is preferable that your track is set as downloadable, and that it allows for attributed remixing (i.e., a Creative Commons license permitting non-commercial sharing with attribution). Keep an eye on the license of the audio you source, as that may determine the license you end up using.

Linking: When posting the track online, please be sure to include this information, along with details of your source audio, including links to it:

More on this 290th weekly Disquiet Junto project — Text-to-Beat: Use computer-generated speech as the rhythmic foundation for a track. — at:


More on the Disquiet Junto at:


Subscribe to project announcements here:


Project discussion takes place on llllllll.co:


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

Image associated with this project is by Flickr member Jordan, used thanks to a (note: No Derivatives) Creative Commons license:



Colossal: Trailer for Awaken, a Documentary That Brings Together Breathtaking Footage From Over Thirty Countries

Here is the first trailer for the feature length documentary film AWAKEN, a work that beautifully observes the simple and complex relationships that humans from all over the world have developed with technology and the natural environment. Shot over the course of the five years, the film tracks the ceremonies, private moments, and daily rituals of citizens from over thirty countries, capturing each instance with beautiful panning shots or captivating time lapse visuals.

AWAKEN was directed, shot, edited, and produced by Tom Lowe, who previously created the short film Timescapes, and is set to open next year. (via Kottke)

BOOOOOOOM!: Artist Spotlight: Till Rabus

A selection of recent work by artist Till Rabus from Neuchâtel, Switzerland. Click here for previous posts. See more images below.

OUR VALUED CUSTOMERS: While discussing COMIC-CON announcements...

For a limited time, get the 400 page COMPLETE Our Valued Customers 

Saturday Morning Breakfast Cereal: Saturday Morning Breakfast Cereal - Regression

Click here to go see the bonus panel!

You must've been a HIDEOUS baby.

New comic!
Today's News:

Thanks, everyone. That was an incredibly successful kickstarter. We had some internal goals that were more than doubled. We are working now to deliver those books as fast as possible!

CreativeApplications.Net: SHIFT – A roadmap to economically distributed automation

Developed at Strelka during the 'The New Normal Program' in 2017, 'SHIFT' (Arthur Röing Baer, Christian Lavista, Dmitry Alferov, Liza Dorrer) is a project that engages with stages of automation of the trucking industry in Russia, working with the socio-political, physical, and spatial particulars of logistics in the country’s vast territory.

Michael Geist: Canada’s National IP Strategy: My Submission on Awareness, Administration and Innovation

The Canadian government announced plans for the development of a national IP strategy in this year’s budget. The Ministry of Innovation, Science and Economic Development held a series of roundtables late last month and invited public comment. The comment period closed earlier this week and the submissions should soon be posted online.  My submission is posted below.

Drawing on prior writing and committee appearances (and some overlap with NAFTA issues), the submission focuses on three broad areas: IP awareness, administration and fostering innovation. The innovation piece forms the majority of the submission with discussion of seven issues: knowledge transfer strategies, IP abuse and misuse, fair use/flexible fair dealing, anti-circumvention legislation exceptions, artificial intelligence, crown copyright and copyright term.

National IP Strategy Submission – July 17, 2017

I am a law professor at the University of Ottawa, where I hold the Canada Research Chair in Internet and E-commerce Law. My areas of specialty include digital policy and intellectual property. This response is submitted in my personal capacity reflecting my own views.  I focus on three broad IP strategy issues: awareness, administration, and innovation.

a.    Awareness

Your letter includes several questions focused on the awareness of IP, including issues related to education, advice, access, and inclusivity. I should note that the Centre for Law, Technology and Society at the University of Ottawa (of which I am a member) is actively involved in addressing these concerns. Programs include a wide range of intellectual property law courses, moots, and research opportunities. The Centre also offers a technology law internship program that enables law students to work at law firms, government policy departments, and technology companies. These programs are openly available to hundreds of law students each year.

The prospect of expanding the programming to the wider community – including the development of online education programs – would be worth pursuing and of great interest to the Centre. The government could play an important role in opening opportunities to students and by providing financial support for the development of open educational resources that could be used by interested Canadians.

There is also a need to ensure that IP issues are readily accessible to non-expert Canadians and Canadian businesses. Like many academics, I have worked to make my research and writing openly available and accessible to the public. This has included several books and hundreds of articles and posts on IP that are all openly available under Creative Commons licences. Exploring mechanisms to expand accessible materials should be pursued with academic experts from across Canada and government granting agencies such as the Social Sciences and Humanities Research Council of Canada.

b.    Administration

From an IP administration perspective, reform of the Copyright Board of Canada is much needed. There is no shortage of criticism of the Board. Indeed, in an field that is often sharply divided, disenchantment with Board is sometimes the one thing people seem able to agree upon. The Board was slow to acknowledge and implement the copyright decisions delivered by the Supreme Court of Canada, particularly those involving fair dealing. That has changed in recent months, however, and its decisions are now more reflective of the court’s jurisprudence. The Board’s rulings are and will continue to be challenged, but there is an established system to address appeals. Reform on the substance of decisions is not needed.

Contrast the substantive concerns with the administrative ones, however. How the Board reaches decisions, the costs involved, the timeliness of those decisions, and the ease of participation is very much a matter for review. There is unquestionably a need to develop reasonable timelines for conducting hearings and issuing decisions. Further, the Board needs to actively work to open its proceedings and activities to the broader public. The exclusion of the public stands in sharp contrast to the other boards, tribunals, and agencies that address issues with individual parties but whose decisions have ramifications for a far broader group of stakeholders. Adopting models similar to those used by the Canadian Radio-television and Telecommunications Commission that facilitate funded participation by public interest and civil society groups should be explored.

c.    Innovation

While IP awareness and administration issues are important, the Canadian government should also ensure that Canadian IP laws foster innovation and reflect Canadian policies and values. As part of the 2012 copyright reform process, Canada adopted an innovative approach with respect to reform. Many of these reforms – including protection of user-generated content, an Internet exception for education, and statutory damages limits on non-commercial infringement – are models for inclusive, forward-looking policy development. However, that process still left some issues untouched or unresolved that should be addressed through the development on an IP strategy. This section identifies seven issues: knowledge transfer strategies, IP abuse and misuse, fair use/flexible fair dealing, anti-circumvention legislation exceptions, artificial intelligence, crown copyright, and copyright term.

i.    Knowledge Transfer Strategies

One of the chief concerns with Canada’s IP performance is the transfer of knowledge from the lab to the market with successful commercialization. The notion of “tech transfer” has taken hold in some discussions on how Canada can shift innovative research from Canadian campuses to exciting new commercialization opportunities. However, the real goal is not tech transfer, but knowledge transfer.

Knowledge transfer encompasses a far broader set of policy goals that seek to take the knowledge that emerges from within our labs and classrooms and bring it out to the public – whether for commercialization, better public policies, or a more informed and engaged public. Knowledge transfer certainly includes tech transfer but it also includes research papers, data trials, educational materials, and highly qualified students and personnel. Simply put, if the target is just IP and tech transfer, we miss out of many of the benefits that come from innovative post-secondary research and run the risk of establishing the wrong incentives within our policy frameworks.

Further, the potential emphasis on the U.S. Bayh-Dole approach is misplaced. There is little evidence that the policies governing who owns IP rights have an overriding impact on the success of tech transfer as measured by the volume of patents and licenses.

This should come as little surprise to anyone who has spent time on campuses with academic researchers. The metrics of success in the academic environment – publications, grants, tenure, chairs, successful students – have little correlation with commercialization.  Even for those with commercial interests, those are often achieved through consulting arrangements or other mechanisms where the business expertise is left to business people.

The emphasis on university-based patenting is misplaced. It can have a corrosive effect on universities, who forego important, publicly-funded research in favour of potential licensing or patenting opportunities.  With properly funded institutions, there is no need to chase licensing dollars. Instead, the cutting edge research ends up in the hands of businesses who can better leverage it for commercialization opportunities.  This should not be viewed as lost revenue for universities or their researchers, but rather as a better return on the public’s investment in post-secondary research.

If the currency of academics is publishing – not patents – then the challenge is how to ensure that the published research ends up as broadly distributed as possible. While it has captured limited attention outside of educational circles, the Internet has facilitated the emergence of open access publishing of research, transforming the multi-billion dollar academic publishing industry and making millions of articles freely accessible to a global audience. The move toward open access means that global research is far more accessible to everyone – scientists, researchers, businesses, and the general public.

The three federal research granting institutions – CIHR, NSERC, and SSHRC – have adopted open access mandates that requires recepients of federal funding to make their published work available under open access.

This helps foster greater collaboration between researchers and the business community with improved access leading to commercialization opportunities that might otherwise be missed. Further, openly available articles are already being incorporated into teaching materials, thereby replacing conventional textbooks and removing the need for copyright permissions and fees.

As for government strategies, open access mandates should only be the beginning.  Moving toward open trial data and open book publishing are the next steps in linking significant public funding to enhancing public access to their investment.

ii.    IP abuse and misuse

While some may use the consultation to call for expanded intellectual property rules, the reality is that Canada already meets or exceeds international standards. The more pressing innovation issue is to address the abuse of intellectual property rights that may inhibit companies from innovating or discourage Canadians from taking advantage of the digital market.

The benefits of an anti-IP abuse law could be used to touch on the three main branches on intellectual property: patents, trademarks, and copyright.

Leading technology companies have issued repeated warnings about patent trolling, which refers to instances when companies that had no involvement in the development of a patent seek payments from legitimate companies by relying on dubious patents. Patent trolls have a negative impact on economic growth and innovation with millions spent on unnecessary litigation.
Groups have urged the Canadian government to enact reforms to “limit the ability of non-practicing entities [a euphemism for patent trolls] of exploiting patents to make unreasonable demands of productive companies and prevent crippling damage awards.”

There are no shortage of policy possibilities, including a prohibition against legal demands that are intentionally ambiguous or designed to induce a settlement without considering the merits of the claim. Other reforms could include requiring public disclosure of the demand letters, reforming the Competition Act to give the Competition Bureau the power to target anti-competitive activity by patent trolls, and giving courts the power to issue injunctions to stop patent trolls from forum shopping.

Canadian trademark rules would also benefit from anti-abuse provisions. In 2014, the government quietly overhauled the law by removing longstanding “use” requirements for trademark protection. Legal decisions dating back decades emphasized the importance of use in order to properly register a trademark, since trademark law is primarily designed to protect consumers from marketplace confusion. Without use, there is unlikely to be confusion.

The 2014 reforms dropped the strict requirement for use in a trademark, however, creating considerable concern within the legal community. Canada may see a spike in “trademark trolls”, who could register unused trademarks with plans to pressure legitimate companies to pay up in order to release the trademarks for actual use. Anti-trademark troll rules would block efforts to register unused trademarks for the purposes of re-selling them to businesses seeking to innovate and use them.

Copyright law would also benefit from anti-troll safeguards. Canada’s 2012 digital copyright reforms featured an innovative “notice-and-notice” system designed to balance the interests of copyright holders, the legal obligations of Internet service providers (ISPs), and the privacy rights of Internet users. The law allows copyright owners to send infringement notices to ISPs, who must forward the notifications to their subscribers.

Despite the promise of the notice-and-notice system, it has been misused since it took effect with copyright owners exploiting a loophole in the law by sending settlement demands within the notices. The fix is straight-forward: implement anti-copyright troll regulations that ban the inclusion of settlement demands within the notices and create penalties for those companies that send notices with false or misleading information.

iii.    Innovation and IP: Fair Use/Flexible Fair Dealing

Led by the United States, several countries around the world, including Israel, South Korea, and Singapore, have established fair use provisions within their copyright laws. Fair use does not mean free use – rather, it means that there is a balance that allows certain uses of works without permission so long as the use is fair.  The Supreme Court of Canada has already ruled that Canada’s fair dealing provision must be interpreted in a broad and liberal manner. Yet the law currently includes a limited number of categories (research, private study, criticism, news reporting education, parody, satire, and review) that renders many everyday activities illegal.

The ideal remedy is to make the current list of categories illustrative rather than exhaustive. This can be best achieved by adding the words “such as” to the current provision. This would be a clean, technology-neutral approach, giving Canada the equivalent of a pro-innovative fair use provision but based on the longstanding fair dealing jurisprudence.

iv.    Innovation and IP: Anti-Circumvention Legislation Exceptions

Canadian copyright law’s anti-circumvention provisions are among the most restrictive in the world and badly undermine the traditional copyright balance in the digital world creating unnecessary restrictions on innovation. Canadians can freely exercise their fair dealing rights in the analog world, but the 2012 reforms went far beyond the WIPO treaty requirements by creating unnecessary restrictions on fair dealing in the digital environment. This creates a “fair dealing gap”, where there is a gross mismatch between user rights in the analog world and the digital world. The fair dealing gap should be addressed by establishing a long overdue fair dealing exception for the digital lock rules.

While the Canadian exceptions were narrowly constructed and limited to a handful of circumstances, the U.S. has actually been expanding its digital lock exceptions. It recently introduced exceptions for innovative activities such as automotive security research, repairs, and maintenance, archiving and preserving video games, and for remixing videos from DVDs and Blu-Ray sources.

Canada has the power to introduce new digital lock exceptions, but has yet to do so. During the final stages of the copyright reform process in 2012, the Liberals supported an amendment to expand the digital lock exceptions to cover circumventions for all lawful purposes. As Liberal MP Geoff Regan noted when speaking in support of the change, “what the government seems to want to do is preserve old models and ignore the fact that we have moved into a digital world.” Regan cited comments from software developers, librarians and archivists who all warned of the dangers of overly restrictive digital lock rules.  The IP strategy should address this restrictive approach with long overdue reforms.

Recent Canadian cases illustrate the potential for copyright to be used to stifle innovation. In March 2017,  the Federal Court of Canada ruled on a case involving the sale and distribution of “modchips”, which can be used to circumvent digital controls on video game consoles. Nintendo filed a lawsuit against a modchip retailer in 2016, arguing that the distribution of modchips violated the law, even without any evidence of actual copying.

The federal court agreed, pointing to the 2012 anti-circumvention rules that largely mirror legal restrictions on by-passing copy and access controls found in the United States in awarding $12.7 million in damages. The court adopted an aggressive approach in interpreting the digital lock provisions, while also taking a narrow view of exceptions that were designed to safeguard legitimate reasons to circumvent such as interoperability of computer programs. If followed by other courts, the ruling could similarly restrict the applicability of privacy, security research, and access for the blind exceptions found in the law.

v.    Innovation and IP – Artificial Intelligence

The federal government placed a big bet in this year’s budget on Canada becoming a world leader in artificial intelligence (AI), investing millions of dollars on a national strategy to support research and commercialization. Funding and personnel have been the top policy priorities, yet other barriers to success remain. For example, Canada’s restrictive copyright rules may hamper the ability of companies and researchers to test and ultimately bring new AI services to market.

Making machines smart – whether engaging in automated translation, big data analytics, or new search capabilities – is dependent upon the data being fed into the system. Machines learn by scanning, reading, listening or viewing human created works. The better the inputs, the better the output and the reduced likelihood that results may be biased or inaccurate.

Copyright law crops up because restrictive rules may limit the data sets that can used for machine learning purposes, resulting in fewer pictures to scan, videos to watch or text to analyze. Given the absence of a clear rule to permit machine learning in Canadian copyright law (often called a text and data mining exception), our legal framework trails behind other countries that have reduced risks associated with using data sets in AI activities.

For example, consider how machines are taught to translate languages. Last year, the United Nations released 800,000 manually translated documents in the six official UN languages (English, French, Spanish, Arabic, Russian, and Chinese) for machine use. By releasing documents containing perfect translations in multiple languages, the data set helps create better automated translation systems. Indeed, official government documents have been an important data source for automated translation since they offer professionally translated materials of identical content.

Yet the downside of relying on these documents is that treaties and diplomatic correspondence rarely mimic everyday speech. Better systems would benefit from a broader range of materials such as translated popular books or television shows. The goal is not to republish or compete with copyright materials, but rather to ensure that researchers and AI companies can mine the text and data for informational analysis purposes.

Canadian courts have ruled that fair dealing – the copyright law’s foundational exception that permits use of materials without the need for prior permission – is a user’s right that should be interpreted in a broad and liberal manner. There are several purposes that would permit some text and data mining activities, notably exceptions for research, education, and private study. However, given Canada’s emphasis on the commercial benefits of AI, the law may not offer sufficient flexibility to safely move from the lab or classroom to the market.

There are two ways to overcome the copyright AI barrier. First, as noted above, Canada could emulate the U.S. fair use model by making the current list of fair dealing purposes illustrative rather than exhaustive. The U.S. exception is open to any purpose, as striking a fair balance depends upon the use of the work, not the purpose of the copying. Since machine learning does not harm the primary purposes of the original work, most text and data mining will qualify as fair use.

Second, other countries have tried to address the issue by creating a specific exception for text and data mining or computer informational analysis. For example, Britain’s exception allows copies of works to be made without permission of the copyright owner for the purposes of automated analytical techniques to analyze text and data for patterns, trends, and other information. The law does not allow contracts to restrict data mining activities, but the exception is limited to non-commercial research.

vi.    Innovation and IP: Crown Copyright

Dating back to the 1700s, crown copyright reflects a centuries-old perspective that the government ought to control the public’s ability to use official documents. Today crown copyright extends for fifty years from creation and it requires anyone who wants to use or republish a government report, parliamentary hearing, or other work to first seek permission. While permission is often granted, it is not automatic. The Canadian approach stands in sharp contrast to the situation in the U.S. where the federal government does not hold copyright over work created by an officer or employee as part of that person’s official duties.  Government reports, court cases, and Congressional transcripts can therefore be freely used and published.

The existence of crown copyright affects both the print and audio-visual worlds and is increasingly viewed as a barrier to innovation, including Canadian film making, political advocacy, and educational publishing. The government has established an open licence to address some crown copyright concerns, but a better pro-innovative system would establish a presumption that government materials belong to the public domain to be freely used without prior permission or compensation.

vii.    Innovation and IP: Copyright Term

The term of copyright in Canada is presently life of the author plus an additional 50 years, a term consistent with the international standard set by the Berne Convention. From a policy perspective, the decision to maintain the international standard of life plus 50 years is consistent with the evidence that term extension creates harms by leaving Canadians with an additional 20 years of no new works entering the public domain with virtually no gains in terms of new creativity. In other words, in a policy world in which copyright strives to balance creativity and access, term extension restricts access but does not enhance creativity.

The negative effects of term extension has been confirmed by many economists, including in a study commissioned by then-Industry Canada, which have concluded that extending the term simply does not create an additional incentive for new creativity. Moreover, studies in other countries that have extended term have concluded that it ultimately costs consumers as additional royalties are sent out of the country. Increased costs and reduced access hurts Canadian innovation without commensurate economic or cultural gains. The Canadian IP strategy should retain the commitment to meeting but not exceeding the Berne standard of protection of life of the author plus 50 years.

The post Canada’s National IP Strategy: My Submission on Awareness, Administration and Innovation appeared first on Michael Geist.

Perlsphere: What is a "Senior Developer"?

When a company hires All Around the World to develop new systems or work on existing ones, they're sometimes surprised to find out that, with few exceptions, we only hire senior engineers. We're not a "body shop." We're the experts you hire when you need things to work and you've discovered that the $100 a day freelancer wasn't such a bargain after all (true story).

So when a self-described intermediate developer asked me what I meant by "Senior Developer", and does it just meant "time on duty", I realized that what we're looking for is different from what other companies look for. We have high standards and a difficult hiring process, but it's worth it.

What follows is my (edited) response to that developer.

"Senior" absolutely doesn't mean "time on duty." I've met quite a few devs who've been in the business for a long time but are no better than junior devs.

Different companies have different needs for senior devs and would thus define them differently. So take what I say with a grain of salt.

For me, a senior dev can look at a problem and come up with a solution that addresses three areas: business, human, and technical needs. All of these are worth examples to help explain what I mean.

Business Needs

I was with a company facing a legal deadline to come into compliance with new laws impacting our industry. There was some software we needed to purchase to help with that and almost every single developer voted for some fabulous software that did everything we would want and more. Management chose some software that no dev voted for. However, management was right because this software was the only software that would help us meet our legal compliance issue by a legally mandated deadline.

A senior developer can balance business and technical requirements.

Human Needs

My next criteria would be a developer who can understand human needs. There are many "superstar" developers who turn in fantastically complex code that does absolutely everything you could possibly want, but is very complex to understand and use. For one company, a sole developer worked for six months to produce an improved statistical model for financial projections. Calculations showed that it did indeed provide better projections. The project was abandoned because the company couldn't find a single developer who could understand the code aside from the one who developed it.

Or to oversimplify it: junior developers write simple code. Intermediate developers write complex code. Senior developers write simple code.

A senior developer remembers that other people have to maintain and use their code.

Technical Needs

Understanding technical needs is the most obvious requirement, but still one that is sadly missing. I can't tell you how many times developers with years of experience still churn out spaghetti code which isn't fit for purpose. The code runs well with a few data entries, but fails to scale when presented with massive data. There is often little data validation and few (if any) tests. As is sometimes said "A good developer looks both ways before crossing a one-way street."

Or one story I sometimes tell: while interviewing a very experienced developer, I happened to mention that our application was fairly write-heavy at the database level. He immediately said we'd have to go NoSQL or shard our database. He had no idea what our application did or how our data was used, so his comment was enough to disqualify him because his skills were useless if he couldn't understand the importance of understanding a problem before offering a solution.

A senior developer can grasp a problem, understand the goals its trying to satisfy, and appropriately evaluate technical solutions to said problem.

You'll note that business, people, and technical requirements all have a lot of overlap. Different companies rank those requirements differently. Some companies find that prioritizing business requirements leads to great initial growth, but at the cost of maintainability. But building perfect software doesn't matter if you are always spending more than you're earning.

To me, a senior developer understands the relative importance of those three steps and how they fit the task at hand. It's not "do they know how to code a red-black tree from memory?" Nor is it "do they know this strange bit of trivia about their favorite programming language."

There's much, much more I could say, but I think the above covers the basics. I hope it helps!

Drop me a line at ovid at allaroundtheworld dot fr if you'd like to discuss how I can help you.

BOOOOOOOM!: Artist Spotlight: Esther Sarto

A selection of paintings from “Sleepless” by artist Esther Sarto, based in Copenhagen, Denmark. Her show opens on Saturday at Talon Gallery (Portland). More images below.

BOOOOOOOM!: Artist Spotlight: Samuel Rodriguez

Recent work by artist Sam Rodriguez from San José, California (previously featured here). More images below!

TheSirensSound: Good EP by Poppies

May Rio met Ian Langehough during NYC's blizzard of 2015. They quickly connected, and after May overheard some music Ian was working on, she worked up the nerve to ask if he'd like to start a project. They pulled in May's friend Keith Rowland on bass and Ian's friend Steven Whiteley on drums and Poppies was a band. With Steven moving away, the current lineup is May, Ian and Keith with Lex Nordlinger on drums.

Good EP, their debut EP (released on 6/9/17), follows their first three singles released late last year. Good EP was produced by Hunter Davidsohn (Porches, Sheer Mag, Izzy True) and mixed and mastered by Carlos Hernandez of Gravesend Recordings and Ava Luna. GoldFlakePaint called Good EP a "brilliantly solid and endearing collection of songs, a gem in the truest sense of the word," and Tiny Mix Tapes has called it "all 'tasteful' and shit!'"

TheSirensSound: New album ACHERONTIA by Nathan Kairis

Acherontia. The Death’s Head Hawkmoth. This album is about disconnection, reconnection, and fluttering between the two. The vibrations between these two emotions can be violent and visceral, or almost calming in their agitation. Here is where we find the shuffling trudge of “Solipsism”, straining pressure of “Surface Tension”, and the breakthrough of the title track. Acherontia is a sonic exploration of what happens in between, a transitory stage that most of us just want to get through.

Ideas from CBC Radio (Highlights): How humankind is on the verge of transforming itself: Yuval Harari (Encore Oct 11, 2016)

In his book “Homo Deus”, Yuval Harari argues that humankind is on the verge of transforming itself: advances creating networked intelligences will surpass our own in speed, capability and impact. But where will this leave us?

Penny Arcade: News Post: Dumber Camp, Part One

Tycho: I have been left completely and entirely alone, abandoned by my Mork, such that he left me with four or so .jpegs and flew away.  Mechanically assisted, obviously.  He didn’t just “throw himself at the ground and miss.” He was telling me about an Adult Summer Camp, of which there are apparently several, and like so much else that a normal person would do it turns out I don’t have the receptors for it.  So many bedrock concepts that get absorbed in an ambient want by other people, simply… inhaled somehow just accrue on the skin.  Accrue, and…

Disquiet: What Sound Looks Like

The mystery of apartment 835 persists. One day this building was a modest, three-family dwelling. The next day a smudge had infected the neighborhood’s collective memory. To this day there is no consensus in the local community. The Old 35ers still gather once a month at a nearby cafe to debate the building’s comings and goings. The Voiders meet less regularly these days, only when some bit of 35er quasi-evidence requires a little actual effort to be refuted. The Voiders haven’t yet failed to rationalize every shadowy visitor, every piece of mail marked return to sender, every arrival of a public-utility vehicle. Neither have the 35ers failed to feed the Voiders’ sense of purpose. Tellingly to both sides, the building’s remaining residents haven’t pledged allegiance to either point of view. The bachelor dentist in 831 has kept mum, the Voiders presume, simply to preserve his business, unlike the tiki bar on the main drag that features a somber 835 flag on the roof and a Never Forget cocktail on the menu. The 35ers insist on a nefarious pact between the dentist and … well, there are splinter groups as to whether the landlord, the unidentified former tenant, or some other party entirely has scared 831 into silence. As for the ancient widow in 833, she speaks only a near extinct dialect from a remote region that neither China nor Russia have bothered to lay claim to. The Old 35ers and the Voiders agree on one thing: both groups focus their canonical teachings on the mysterious scribble next to the bottom button. The 35ers point to the consistency of the color with the other addresses. The Voiders early on brought in a paleolinguist from the city college to testify. She felt that the indent and shorter “x height,” among other Talmudic marginalia, firmly distinguished the markings from the other two. If anyone does still live in what was or wasn’t 835, they may very well have disconnected the button, as it’s the favorite dare among students at the neighborhood’s four elementary schools.

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

Penny Arcade: Comic: Dumber Camp, Part One

New Comic: Dumber Camp, Part One

Colossal: Happy Accidents Pour from Paint Bottles in Sculptures by Joe Suzuki

Happy Accident – Mini Happy Face (Pink). Paint bottle, resin casting and enamel. 12″ x 7″ x 5.5″ in.

In this ongoing series of works by artist Joe Suzuki, pools of paint appear like maniacal smiles as they drip from cans and bottles. The colorful sculptures often pay tribute to artists like Warhol, Basquiat, and Keith Haring by referencing symbols used in their own works. The pieces are constructed with resin casting material and enamel, but give the appearance of freshly spilled paint.

“I consider my work to be artifacts of my own particular culture, which is not the generalized Japanese American culture, but that which formed as a direct result of being a first generation immigrant,” Suzuki shares in an artist statement. “Through a long assimilation process, I found myself not fully belonging to either culture, but rather somewhere in between, which I began to call Japamerica.”

You can explore additional works by Suzuki at Reem Gallery and on his website. (via Artsy)

Greater Fool – Authored by Garth Turner – The Troubled Future of Real Estate: The switch

“My mother,” Susan told me, “is CRAZY.” How could I not read the rest of the note?

“It isn’t just the young who are rushing to guzzle koolaid,” she explains, “My 82 year old widowed mother has rented a condo for the past 9 years.  Out of the blue the owners told her they wish to sell the condo for a crazy-ass price that made the entire Condo Assoc laugh. It is 14 years old and in all the time my mom has rented there have been no upgrades except a replacement of the living room carpet that is cheap, like the appliances.  There was no formal assessment done.  Mom went into a panic.  She does not want to move.

“So she agreed to her owners’ sale price.   Both realtor and her RBC advisor are thrilled for her and assure her that in the long run she will be spending less money to buy than to rent, condo fees not a problem either.  She has no intention of having anything checked out, no intent to negotiate for fear of a bidding war and her desire to remain in the building. And has begun to think about redecorating and painting.  Sigh.

“I reviewed common sense, buying at the peak, her age !!!!! newly inherited responsibility for repairs etc.  At least she didn’t scream that as usual I was more concerned about her dying to cash in what little money she has because I am so hard up for money, as she usually does.

“Moist millennials?  Goofy seniors?  Thought this would add to your example of how stupid is as stupid does.”

Yup, stupid. Given her life expectancy, buying at the top of the market, the age of the beater condo, the lost income potential of her capital, the condo fees, property taxes, maintenance costs and insurance she now shoulders, this was an irrational, emotional, confused decision. And let’s be frank – Susan had better options than to write a dodgy blog and bitch.

One might be to obtain a power of attorney for the old lady. There comes a time in the lives of many families when the parent-child relationship must flip. Suddenly adult children need to look out for aging parents, ensuring the decisions they make are reasonable, sound, rational and in their own best interests. Spending life savings in your eighties on a dippy condo isn’t one of them.

This is where a power of attorney comes in. It’s a legal document granting someone else (in this instance, Susan) the right to make decisions on property, finances, investments and other matters. In a perfect world, a parent would grant this right to an adult child on the understanding when marbles start to be lost, good decisions can still be made. It’s a common thing in the financial world for POA investment accounts to be set up so kids make the decisions, yet aging parents are the beneficiaries, still legally owning the assets.

A continuing power of attorney lasts for life, and can normally be invoked when a medical or legal professional determines Mom is losing it. That doesn’t only mean dementia or wandering in traffic, but can extend to big money-related decisions that will have long-lasting and deleterious consequences. Like being ripped off by the people who own your rented condo.

Susan, like every person with an 80-year-old parent, should have arranged for a POA in advance. And while granting a power of attorney to someone else to look after you may sound scary and open to abuse, it comes with clout. The POA holder has a fiduciary responsibility to the other party – that means, by law, Mom’s interests must come before those of the guardian. Whether mother likes the decision or not.

Every married couple should exchange POAs. Anyone losing a spouse should seek someone they trust and arrange one. Everybody with an eightysomething parent should get this is place.

After all, your Mom looked after you when you were an idiot. Your turn.

$        $        $

Imagine if last year the number of foreign buyers Hoovering up residential real estate in this country increased by 49% – a record. Now imagine if 10% of the value of all property transactions went to offshore dudes. Not just one in ten deals in a city that foreigners like, but a tenth of all sales everywhere. It would be huge. The comments section of this blog would be positively bloodthirsty.

Well that just happened in the US. Cheesy non-Americans snapped up 284,455 homes last year in places like Florida, Texas and California, which was a 32% increase over the previous level. In total, over $153 billion worth of dirt changed hands. And have you read a single negative story out of the US about foreigners taking over? Do any American states have a 15% foreign buyers’ tax, or a 1%-per-year empty houses levy?

The biggest surge in alien buyers of US houses last year? That came from Canada. Horny little beavers invading from the north snatched up $19 billion worth of properties, most of them in Florida, with suitcases full of cash. The average price of a Canadian-bought home hit $561,000 US – double the level of a year earlier. The median home value in Florida is $207,500. Without a doubt, we’re driving up prices for the locals.

Chew on that.

things magazine: High and lows

Tiny London apartment for sale in a former water tank. Beautiful details but obscured windows covering such an incredible view would a constant source of regret / music writing at Velvet Sheep / which links the neo psych of Thee … Continue reading

Quiet Earth: LET THE RIGHT ONE IN Director Returns with Crime Thriller THE SNOWMAN [Trailer]

On paper, The Snowman sounds like a fairly generic thriller about two cops in search of a serial killer who likes to leave behind snowmen. I know. It sounds kind of dumb but this project has a whole lot going for it.

First off, it's based on a novel from Norwegian author Jo Nesbo who is also responsible for the rather brilliant Headhunters. The adaptation comes from Hossein Amini who also wrote Drive. The movie stars Michael Fassbender and Rebecca Ferguson as the two cops on the hunt for the killer along with J.K. Simmons, Charlotte Gainsbourg, Toby Jones, Chloe Sevigny and Val Kilmer.

Need further convincing? It's directed by Tomas Alfredson, the man who brought us Tinker Taylor Soldier Spy and the brilliant Let the Right One In.

[Continued ...]

BOOOOOOOM!: Photographer Spotlight: Angeles Peña

“Aguas de Montaña” is a journey into The Andean Patagonia, a desolate territory where photographer Angeles Peña lived all of her childhood.

She says, “In a world that spins faster and faster I feel an enormous necessity to focus on the details and the beauty of what still remains. I find myself with a nature that sustains itself but can fall at any moment. It is something that surpasses me and I cannot stop observing.”

See the rest of the series below.

OUR VALUED CUSTOMERS: Bad news for the record breaking crowd expected at SAN DIEGO COMIC CON this weekend...

For a limited time, get the 400 page COMPLETE Our Valued Customers 

Saturday Morning Breakfast Cereal: Saturday Morning Breakfast Cereal - Dream Inequality

Click here to go see the bonus panel!

I swear, I don't mean this comic to harbor any political perspective. I just thought it was funny.

New comic!
Today's News:

Thanks so much for your support, geeks. It means so much to us.

Saturday Morning Breakfast Cereal: Saturday Morning Breakfast Cereal - Voters

Click here to go see the bonus panel!

When I said you should compromise, I didn't mean about the thing that matters to ME!

New comic!
Today's News:

The Shape of Code: Software systems are the product of cognitive capitalism

Economics obviously has a significant impact on the production of software systems; it is the second chapter of my empirical software engineering book (humans, who are the primary influencers, are the first chapter; technically the Introduction is the first chapter, but you know what I mean).

I have never been happy with the chapter title “Economics”; it does not capture the spirit of what I want to talk about. Yes, a lot of the technical details covered are to be found in economics related books and courses, but how do these technical details fit into a grand scheme?

I was recently reading the slim volume “Dead Man Working” by Cederström and Fleming and the phrase cognitive capitalism jumped out at me; here was a term that fitted the ideas I had been trying to articulate. It took a couple of days before I took the plunge and changed the chapter title. In the current draft pdf little else has changed in the ex-Economics chapter (e.g., a bit of a rewrite of the first few lines), but now there is a coherent concept to mold the material around.

Explosm.net: Comic for 2017.07.19

New Cyanide and Happiness Comic

IEEE Job Site RSS jobs: Dean, Faculty of Engineering

Halifax, Nova Scotia, Canada Dalhousie University Tue, 18 Jul 2017 21:08:21 -0700

OCaml Planet: Major Releases of Cohttp, Conduit, DNS and TCP/IP Libraries

Whilst porting a large portion of Mirage libraries to use Jbuilder, the MirageOS core team realised it was also a great opportunity to reorganise the package structure of some specific libraries, update/remove old code and improve overall functionality.

Many of the new releases include popular libraries used by projects other than MirageOS, and the maintainers have helpfully provided details on what has changed, specific improvements and adjustments users will need to make in order to use them. These libraries include Cohttp, Conduit, DNS and TCP/IP.

Main repackaging improvements to these libraries include:

  • Optional dependencies removed from opam packaging: No need to specify a long set of packages to activate a specific compilation of features
  • Ported to use Jbuilder: This speeds up builds and makes use of modern OCaml features
  • No more camlp4! Camlp4 has been removed entirely, and the replacement ppx_driver makes use of ocaml migrate parsetree

Get involved:

  • Read the release notes for a full list of changes and incompatibilities
  • Update your own code in line with these versions to avoid constraining users
  • Join the conversation on the OCaml Discuss Forum

LaForge's home page: Virtual Um interface between OsmoBTS and OsmocomBB

During the last couple of days, I've been working on completing, cleaning up and merging a Virtual Um interface (i.e. virtual radio layer) between OsmoBTS and OsmocomBB. After I started with the implementation and left it in an early stage in January 2016, Sebastian Stumpf has been completing it around early 2017, with now some subsequent fixes and improvements by me. The combined result allows us to run a complete GSM network with 1-N BTSs and 1-M MSs without any actual radio hardware, which is of course excellent for all kinds of testing scenarios.

The Virtual Um layer is based on sending L2 frames (blocks) encapsulated via GSMTAP UDP multicast packets. There are two separate multicast groups, one for uplink and one for downlink. The multicast nature simulates the shared medium and enables any simulated phone to receive the signal from multiple BTSs via the downlink multicast group.


In OsmoBTS, this is implemented via the new osmo-bts-virtual BTS model.

In OsmocomBB, this is realized by adding virtphy virtual L1, which speaks the same L1CTL protocol that is used between the real OsmcoomBB Layer1 and the Layer2/3 programs such as mobile and the like.

Now many people would argue that GSM without the radio and actual handsets is no fun. I tend to agree, as I'm a hardware person at heart and I am not a big fan of simulation.

Nevertheless, this forms the basis of all kinds of possibilities for automatized (regression) testing in a way and for layers/interfaces that osmo-gsm-tester cannot cover as it uses a black-box proprietary mobile phone (modem). It is also pretty useful if you're traveling a lot and don't want to carry around a BTS and phones all the time, or get some development done in airplanes or other places where operating a radio transmitter is not really a (viable) option.

If you're curious and want to give it a shot, I've put together some setup instructions at the Virtual Um page of the Osmocom Wiki.

Greater Fool – Authored by Garth Turner – The Troubled Future of Real Estate: Almost

Remember those yesterday stats breathlessly shared with you showing the fastest-ever 90-day plop in Toronto house prices?

Well, forget it. That 14.2% plunge was incorrect. Or at least stale. According to the internal numbers the real estate board doesn’t really want you to know, the situation has changed. Naturally, it’s worse.

The average GTA property was worth $919,589 in April – the most ever. But by July 13th that had declined to $755,727, for a rout of almost 18%.

So the typical property-owning family lost a tax-free $163,863 in 11 weeks. Ouch. That rolls prices back to the level of September, 2016. So much for those goofy months of February and March when everyone thought houses would go up by 30% forever. In fact, this reduction in average price expressed across the GTA (with just over 990,000 properties) means $162 billion in equity is gone. Poof. Floated away. Just like Kevin O’Leary.

“The real estate board has a fiduciary responsibility to represent both buyers and sellers,” says the realtor who provided this information – we’ll call him Reliable Source. “So this kind of data needs to be made public in a responsible fashion.” You bet. Some poor moister buying a condo right now with 95% leverage, ‘because real estate always goes up’ could be crushed by what’s yet to come.

“This market is goin’ down,” says RS. “Yes, it will eventually find a bottom and start to recover, because that’s what markets do. But things are not healthy.”

The long-time house flogger points to his own analysis of current listings, where he sees “a disproportionate number of vacant and rented properties” suggesting that amateur landlords and speculators “are doing everything they can to get out.

“You have to remember that people who own and occupy their houses are not gonna bail just because prices start to crash or mortgage rates go up,” he suggests. “So this market is totally different now with all that speculation that took place. It’s distorted and investor-driven.” And that’s why this correction is not going to end well.

Good luck with that soft landing. Splat.

But it could be worse. You could be a doctor.

Chances are your family doc operates in a clinic with a few expensive employees and a bunch of shiny equipment. He or she probably has no benefits, no pension plan, pays lots of overhead and, yeah, makes a few hundred grand a year. That puts him or her in the top tax bracket which, thanks to T2, now Hoovers away more than half of income.

The solution? Follow the law and split income with your spouse who, as a shareholder in your medical professional corporation, is entitled to a piece of the after-expense cash flow. You could also (like so many docs) live a frugal life on a modest salary or dividends while keeping savings within the corporation where they can be invested at a lower tax rate than in your own hands. Then, in retirement – when your income goes to zero – you can withdraw the money as income and pay tax on it at your lower marginal rate.

This is part of the reason we have doctors in Canada, where socialized medicine caps incomes. In some places they must be government employees while in other places they’re allowed to incorporate. But it’s not just medical professionals who use corps to be tax-efficient and compensate for the fact they spend eight years training or will retire without income support. Lawyers incorporate. Dry cleaners incorporate. IT dudes are increasingly forced to incorporate. And most of them pay corporate taxes and personal taxes while making employee benefit payments plus collecting/remitting HST without compensation.

Anyway, here’s the deal. They’re all ‘rich’ now, so Bill Morneau plans to eat them. As this blog forecast months ago, the hammer’s coming down. In the next budget you can count on (a) a test to ensure all shareholders are worthy of the money they are being paid and, if not, a tax rate of over 50% will be applied to their income and (b) full  taxation, at personal levels, of investment income earned within a corporation, making every doctor wish she’d taken a salary and exploited RRSPs.

Moreneau veiled this in a cloak of ‘middle class fairness.’ But it’s unfair when rules are changed for the express purpose of penalizing success, hard work, risk or the acquiring of skills essential to the public good.

Another T2 grab. Makes you wish for a Trump. Almost.

MattCha's Blog: 2008 Nan Jian 912, Aging Wuliang Puerh and Breaking Into Iron Bings

I threw in a cake of this one to sample in my order of 2008Wild Arbour King cakes from Yunnan Sourcing a few months back.  It was (and still is) selling for $40.00 for a 400g ($0.10/gram)cake but was included in the 12% sale at the time (by pure coincidence a 10% off sale is on now).  This cake is a popular, cheap everyday drinker in the West.  It is certified organic, iron pressed, composed of Wuliang/Lincang materials. This cake has been stored in Guangdong most of its life before heading to Yunnan Sourcing’s drier Kunming storage.

I am a fan of iron bings.  I like how the aged and semi-aged iron bings taste.  They seem to age slower and have a mix of aged taste as well as some retained youthful qualities from the tight compression.  They also give an old school kind of feeling to them and are often slightly stronger tasting cakes that are often a touch bitter.  It would be interesting to see one of the newer trendier producers offer an iron bing cake.  This cake was stored in wetter storage so I’m expecting more of a noticeable dichotomy than usual here.

I have developed a method to remove the leaves of iron bing cakes without hassle.  Basically, I just angle the whole bing at a 45 degree angle on a very hard surface and apply force.  The leaves come off pretty easily.

Personally, I am not always convinced that tea will get better with more age.  I remember Mr. Kim telling me that sometimes aged tea is best after 8-10 years.  Then will decline.  I think this is especially true for puerh that tends to be more fragrant with a mellow flavor.  I feel that Wuliang puerh fits this description. I have very nice full tasting and vibrant Wuliang from 2011 but I have been drinking it lately not aging it further for this reason.  I believe it should only be aged long enough so the rawness and ill effects of fresh sheng are reduced- then it is best consumed.  I guess only time will tell.  Let’s try out this Wuliang/Lincang from probably the most famous of Wuliang factories- Nan Jian Tulin Tea Factory…

Dry leaves smell of old wetter storage- a meatier smell with very little in the way of fragrant high notes.

The first infusion has a watery, bland, not quite sweet and juicy, taste in the mouth.  There is some suggestions of melon fruit before quickly disappearing in the mouth.  There is a faint, almost floral, mild cooling aftertaste.

The second infusion starts with a stronger profile of mild tobacco and leather over a slight bitter astringent vegetal taste.  There is a bean taste in there as well then a slight suggestion of sweet fruit before a soft/ mild cooling appears.  This infusion is over a thin, slightly dry mouthfeel.

The third has slight melon fruity taste over a significant slight tobacco, leather and slight bitter vegetal taste. The cooling aftertaste is just slight.  Minutes later nice rock sugar tastes well as distant floral mildly present themselves.  There is very little throat feel but rather a thin, slightly drying astringent mouthfeel which coats the mouth and makes the teeth feel sticky.

The fourth infusion is much the same as the second.  The long tobacco/ leather and slight bitter vegetal tastes dominate the profile of this tea over only mild suggestions of something more complex and subtle.

The fifth infusion has more of a watery slight juicy fruit feel but it is still dominated but tobacco, leather and slight bitter astringent vegetal taste.  The mild cool aftertaste remains.

The sixth and seventh and eighth infusions are more subtle in taste with a slight crisper cooling sweetness trying to unsuccessfully push through the deeper base tastes.  The taste remains very stable.  This tea can be steeped for many more infusions and yield basically the same simple tastes.  It has durability on its side. The qi of this tea is mild alerting and slightly relaxing- very standard qi.  It is totally uncomplicated and changes very little from infusion to infusion.  Its taste and feel is simple, reliable, and predictable.  It is totally drinkable and there is no off taste or chemical feeling but it just isn’t that interesting.  There is a simple honesty about this cake and for those who like the flavors and this type of storage I can see how it could be an everyday drinker for them.  For $40.00 you are mainly paying for the storage and age of this cake.  I can’t see myself buying another.


OUR VALUED CUSTOMERS: To his friend...

For a limited time, get the 400 page COMPLETE Our Valued Customers 

Michael Geist: My NAFTA Consultation Comments: Promoting Canadian Interests in the IP and E-commerce Chapters

The Canadian government’s deadline for written submissions to the consultation on the renegotiation of the North American Free Trade Agreement closes today (though the government just announced that it will continue to accept comments on its form after the deadline). My submission to the consultation is posted below. I focus on two chapters: intellectual property and the new e-commerce chapter.

The submission begins with three broad comments and recommendations including the need for trade transparency, recognizing the importance of IP and e-commerce (and therefore not easily giving on those issues for gains elsewhere), and the desirability of an explicit commitment to balance as an objective in the IP chapter.

The IP chapter comments also identify three strategic goals: creating a level playing field for innovation (including fair use, anti-circumvention exceptions, and IP abuse safeguards), compliance with international law, and the adoption of an equivalency guiding principle to allow countries to their own policies with similar objectives. The e-commerce chapter comments focus on the need to avoid provisions that undermine privacy and security (including data localization and data transfer rules), inclusion of higher level privacy protection requirements, and retaining the cultural exemption.

NAFTA Consultation Submission – July 18, 2017

I am a law professor at the University of Ottawa, where I hold the Canada Research Chair in Internet and E-commerce Law. My areas of specialty include digital policy and intellectual property. This response is submitted in my personal capacity reflecting my own views.

The focus of my submission is primarily on two chapters: the intellectual property chapter and the potential e-commerce chapter.

General Comments

Before addressing specific policy issues within those chapters, I offer three broader comments and policy recommendations on the NAFTA renegotiation with respect to IP and e-commerce.

i.    Trade Transparency

First, I would emphasize the importance of transparency and public participation throughout the negotiation process. The public backlash against the Trans Pacific Partnership and other recent trade deals points to a process that leaves many feeling excluded and terms that are presented publicly for the first time as final. The real opportunity for the Canadian government is not just to update NAFTA, but to challenge some of the longstanding assumptions about free trade agreements in order to foster greater public confidence in the outcome.

The lack of transparency associated with the TPP – trade talks took place entirely behind closed doors with little public consultation or review of proposed provisions – fostered a culture of mistrust that made it a hard sell around the world. As Canada moves ahead with NAFTA trade talks, there is a need to develop a more open and transparent approach that includes active consultations throughout the negotiation process and more open access to draft text and terms.

ii.    The Importance of IP and E-commerce

The Canadian government has emphasized the importance of intellectual property and e-commerce in a modern economy. Indeed, with national strategic initiatives on both IP and the digital economy, there are few issues that have a tigher link to creating an innovative, successful economy in the 21st century.  Given its importance, I urge the government to ensure that these issues are not lost amidst trade-offs over more conventional trade issues such as agriculture access or the forestry and automotive sectors. All are important sectors, but sacrificing Canadian opportunities in IP and e-commerce in return for benefits in other sectors may result in short-term political gain for longer-term economic pain.

In fact, trade agreements may be a poor place to negotiate these issues, which have traditionally fallen within the purview of international organizations that develop consensus based treaties with broad stakeholder participation. Canada has often done its best work within that multilateral environment. While modern trade deals will often include sections on economic regulation, including IP and e-commerce, requiring countries to meet global standards but shying away from dictating how to meet those standards provides an avenue to ensure an equal playing field consistent with international laws.

iii.    Inclusion of Balance as an Objective

The initial drafts of the TPP included objectives language within the IP chapter that was supportive of expanded objectives that emphasized balance, the public domain, and timely access to affordable medicines. Canada was supportive of this approach. NAFTA should include similar language on maintaining balance across all IP rights, the legitimate interests of users, promoting access to and preserving the public domain, ensuring that IP rights do not create barriers to legitimate trade, and facilitating access to affordable medicines.

The objectives provision may not carry the same weight as positive obligations in the treaty, but they are important, reflecting the goals of the negotiating parties and providing a lens through which all other provisions can be interpreted. Canada and many other countries wanted to ensure that the lens promoted maintaining a balance between rights holders and users on all IP provisions within the TPP. The government should support that approach in NAFTA.

Chapter Specific Comments: Intellectual Property

The NAFTA intellectual property chapter promises to be among the most contentious renegotiation chapters. Canada has enacted major amendments to its IP laws in recent years, but the U.S. is likely to seek further reforms. To place the issue in context, over the past five years, Canada has added anti-circumvention laws similar to those found in the U.S., added stronger enforcement measures (including the “enabler” provision for websites that facilitate infringement), enacted anti-counterfeiting laws, extended the term of protection for sound recordings, and engaged in patent and trademark reforms. When added to earlier reforms such as anti-camcording rules and recent court decisions that addressed U.S. concerns about Canadian patent rules, Canada has acquiesced to many IP policy demands from the U.S.

As Canada heads toward another round of negotiation within the NAFTA, it should be recognized that Canada already meets its international IP obligations and has largely addressed previous U.S. demands regarding further reforms. At a broad level, the Canadian negotiating goal should be to retain an appropriate IP balance that fosters creativity and access, while ensuring that there is room for Canadian-specific policies that sit within the flexibilities of the international IP framework.  In fact, rather than simply “playing defence” to U.S. IP demands, Canada should pro-actively seek to ensure that Canadian IP priorities and policies are reflected in the agreement.

Ensuring that NAFTA’s IP provisions benefit Canadians can be best achieved through three strategic objectives: promoting a level playing field for innovation, mandating compliance with international law, and codifying that protections and safeguards need to be equivalent but not necessarily identical in structure within NAFTA countries. Each strategic objective is discussed further below.

i.    Level Playing Field for Innovation

Canada’s top IP policy objective should be to ensure that there is a level playing field for Canadian business across the North American market. This will require the addition of several provisions to the agreement.

a.    Fair Use/Flexible Fair Dealing

Led by the United States, several countries around the world, including Israel, South Korea, and Singapore, have established fair use provisions within their copyright laws. Fair use does not mean free use – rather, it means that there is a balance that allows certain uses of works without permission so long as the use is fair.  The Supreme Court of Canada has already ruled that Canada’s fair dealing provision must be interpreted in a broad and liberal manner. Yet the law currently includes a limited number of purposes (research, private study, criticism, news reporting education, parody, satire, and review) that renders many everyday activities illegal.

The availability of U.S. fair use represents a significant competitive advantage for U.S. businesses and creators. To ensure a level playing field for innovation, NAFTA IP chapter should require that all parties feature a fair use or fair use equivalent provision.

b.    Anti-Circumvention Legislation Exceptions

Canadian copyright law’s anti-circumvention provisions are among the most restrictive in the world and badly undermine the traditional copyright balance in the digital world creating unnecessary restrictions on innovation. Canadians can freely exercise their fair dealing rights in the analog world, but the 2012 reforms went far beyond the WIPO treaty requirements by creating unnecessary restrictions on fair dealing in the digital environment. This creates a “fair dealing gap”, where there is a gross mismatch between user rights in the analog world and the digital world. The fair dealing gap should be addressed by establishing a long overdue fair dealing exception for the digital lock rules.

While the Canadian exceptions were narrowly constructed and limited to a handful of circumstances, the U.S. has actually been expanding its digital lock exceptions. It recently introduced exceptions for innovative activities such as automotive security research, repairs, and maintenance, archiving and preserving video games, and for remixing videos from DVDs and Blu-Ray sources.

The imbalance in exceptions creates an uneven playing field for innovation and should be remedied within NAFTA. Canada has the power to introduce new digital lock exceptions, but has yet to do so. NAFTA should prescribe statutory minimums for anti-circumvention exceptions, including one for fair use/fair dealing.

c.    IP abuse and misuse

The NAFTA IP chapter should also address the abuse of intellectual property rights that may inhibit companies from innovating or discourage Canadians from taking advantage of the digital market. The benefits of an anti-IP abuse law could be used to touch on the three main branches on intellectual property: patents, trademarks, and copyright.

For example, leading technology companies have issued repeated warnings about patent trolling, which refers to instances when companies that had no involvement in the development of a patent seek payments from legitimate companies by relying on dubious patents. Patent trolls have a negative impact on economic growth and innovation with millions spent on unnecessary litigation.
Canadian companies have faced the daunting prospect of expensive U.S.-based patent litigation that can have a chilling effect on innovation and create barriers to market entry. NAFTA provisions against patent trolling and other IP abuses would benefit the full North American market by creating much needed safeguards against abusive patent behaviour.

ii.    Compliance with International Law

One of the chief concerns with past trade negotiations is the expectation that the U.S. requires other countries to mirror its IP laws, even if those laws extend far beyond international law requirements. A good example of this phenomenon involves anti-circumvention rules.  The U.S. has sought that other countries mirror the Digital Millennium Copyright Act, a statute that establishes requirements that extend far beyond those required by the WIPO Internet treaties. The U.S. objectives for the NAFTA negotiation speak of protection and enforcement rules that are “similar” to U.S. law.

The Canadian approach should be to require NAFTA parties to meet international law, but to retain the full flexibility found within those laws. For example, the term of copyright in Canada is presently life of the author plus an additional 50 years, a term compliant with the international standard set by the Berne Convention. From a policy perspective, the decision to maintain the international standard of life plus 50 years is consistent with the evidence that term extension creates harms by leaving Canadians with an additional 20 years of no new works entering the public domain with virtually no gains in terms of new creativity. In other words, in a policy world in which copyright strives to balance creativity and access, term extension restricts access but does not enhance creativity.

The negative effects of term extension has been confirmed by many economists, including in a study commissioned by then-Industry Canada, which concluded that extending the term simply does not create an additional incentive for new creativity. Moreover, studies in other countries that have extended term have concluded that it ultimately costs consumers as additional royalties are sent out of the country. Increased costs and reduced access hurts Canadian innovation without commensurate economic or cultural gains. Each NAFTA country has a different term of protection. Canada’s position within NAFTA negotiations should be to require all parties to comply with the Berne Convention standard of protection of life of the author plus 50 years, with the non-mandatory option for each party to exceed that term as they see fit.

iii.    Equivalent but not Identical

As the U.S. objectives for the NAFTA negotiations acknowledge, laws may be “similar” if not identical to achieve equivalent objectives. The establishment of an equivalency approach should be a guiding principle in the IP chapter to allow countries to adopt their own policies and regulations consistent with similar objectives.

For example, Canada’s 2012 digital copyright reforms featured an innovative “notice-and-notice” system designed to balance the interests of copyright holders, the legal obligations of Internet service providers (ISPs), and the privacy rights of Internet users. The law allows copyright owners to send infringement notices to ISPs, who must forward the notifications to their subscribers.  There have been problems with the system, but countries (including the U.S. in the TPP) acknowledged that it provides equivalent protection to that found in the U.S. notice-and-takedown system. Given the equivalency, a requirement for a notice-based safe harbour system should be drafted in a sufficiently broad manner to allow these equivalent but different approaches to co-exist.

The same approach should apply to damages and enforcement regimes. Both Canada and the U.S. have tough statutory damages provisions that far exceed those found in most countries. Moreover, Canadian law features a unique “enabler” provision that can be used to target websites that facilitate infringement. The NAFTA standard on enforcement should allow for differing approaches to damages and enforcement within the context of a consistent requirement for balance and effectiveness.

Chapter Specific Comments: E-commerce

The new e-commerce chapter offers the opportunity to update NAFTA to reflect an increasingly important aspect of modern cross-border commercial activity. While the starting point will likely be the TPP chapter, Canada’s negotiating objectives should differ from the TPP in several important ways.

The policy behind an e-commerce chapter should be to facilitate modern, electronic commerce, with three strategic objectives guiding Canada’s position. First, Canada should be wary of provisions that undermine legitimate public policy interest, including privacy and security. This concern is particularly pronounced with respect to restrictions on data localization and data transfers, both identified by the USTR as issues of concern. Second, Canada should seek higher level privacy protections and e-commerce regulations in NAFTA. Third, Canada should preserve its longstanding approach to exempting culture from the ambit of the trade agreement.

i.    Concern with Provisions Undermining Privacy and Security

The restriction against local data storage – often called data localization – originates from Silicon Valley tech company frustration with a growing number of governments that want local data to remain within their jurisdiction. The reason for data localization requirements typically stem from mounting concerns over U.S. surveillance activities and the power granted to U.S. law enforcement under laws such as the USA Patriot Act.

The combined effect of these U.S. laws is that many users fear that once their information is stored in the U.S., it will be accessible to U.S. authorities without suitable privacy protections or oversight. Since U.S. law provides less privacy protection to foreigners, there is indeed limited legal recourse for Canadian data held in the U.S.  Provinces such as British Columbia and Nova Scotia have enacted laws to keep government information (such as health data) within the country.

In response to the mounting public concerns, leading technology companies such as Microsoft, Amazon, and Google have established or committed to establish Canadian-based computer server facilities that can offer localization of information. These moves follow on the federal government’s 2016 cloud computing strategy that prioritizes privacy and security concerns by mandating that certain data be stored in Canada. The Canadian government should resist efforts within NAFTA to limit the ability of federal or provincial governments to establish legitimate privacy and security safeguards through data localization requirements.

Limitations on data transfer restrictions, which mandate the free flow of information on networks across borders, raises similar concerns. Those rules are important to preserve online freedoms in countries that have a history of cracking down on Internet speech, but in the Canadian context, could restrict the ability to establish privacy safeguards. In fact, should the European Union mandate data transfer restrictions as many experts expect, Canada could find itself between a proverbial privacy rock and a hard place, with the EU requiring restrictions and NAFTA prohibiting them. While the U.S. is seeking a ban on data transfer restrictions, Canada should ensure that privacy and security laws will not be superceded by NAFTA restrictions.

ii.    Higher Level Privacy Protections

Privacy protections are a key aspect of e-commerce, providing consumers with assurances that their personal information will be appropriately safeguarded. A renegotiated NAFTA should include a high level privacy protection requirement. The starting point for privacy protection in most countries is a national privacy law modeled on the OECD privacy principles. Enforcement measures are frequently handled by privacy or data protection commissioners with some form of enforcement powers as well as additional rules on issues such as mandatory disclosure of security breaches. A privacy requirement that extends beyond voluntary undertakings is essential for Canadians to have the necessary assurances that their information is properly protected and to place Canadian companies on a level playing field with their NAFTA counterparts.

NAFTA should also include mandatory anti-spam legislation as a national requirement. The provisions could specify that the law provide for a binding unsubscribe mechanism and an opt-in consent requirement, consistent with the Canadian anti-spam law. Other e-commerce laws, including consumer protection requirements and electronic contracting provisions, would be suitable for inclusion in an e-commerce chapter.

iii.    Culture Exemption

While Canadian trade policy has long exempted cultural regulation from trade agreements, the TPP included notable exceptions. One involved restrictions on “discriminatory requirements on services suppliers or investors to make financial contributions for Canadian content development.” The USTR NAFTA priorities raises the prospect of bringing back a similar provision.

The exception may be limited to “discriminatory” requirements, but currently exempt providers (such as online video services) could argue that the imposition any Canadian content contribution payments would be discriminatory against them, because they do not enjoy many of the protections and benefits that go to the Canadian companies that make Cancon contributions as part of a regulatory quid pro quo. This would include development funding, production funding, and multiple windows for achieving Cancon requirements.

Assuming those services argue that any mandated Cancon contribution is discriminatory if they do not also receive the benefits accorded to established broadcasters or broadcast distributors, the NAFTA could effectively ban applying Cancon contributions to exempt entities. Cultural policy is always fraught with difficult policy choices, but those choices should be conducted through domestic processes, not dictated by trade agreements.

The post My NAFTA Consultation Comments: Promoting Canadian Interests in the IP and E-commerce Chapters appeared first on Michael Geist.

Disquiet: An Installation for Oliveros

This document of a sound installation created in memory of the late Pauline Oliveros delivers the opposite of closure. As it proceeds, the lulling ambience is overtaken by the harsh slashes of what might be a violin, or a knife against rough leather for that matter. In retrospect — that is, upon subsequent listens — those string-like noises toward the end help reveal the source of the held tones at the track’s opening, the higher-pitch notes amid the general fog-horn drones. The violin is a constant presence, as it turns out, even though some time must pass before its presence becomes clear. The installation was created by the Vienna-born Mia Zabelka at the behest of the Austrian Cultural Forum New York (acfny.org). Pauline Oliveros, a maverick composer and sound theorist, was a practitioner of Deep Listening. So listen deep, put yourself inside Zabelka’s installation, and observe as her violin gains substance.

Track originally posted at soundcloud.com/miazabelkamusic. More from Zabelka at miazabelka.com and twitter.com/miazabelka.

CreativeApplications.Net: Neural Network Critters by Eddie Lee

Neural Network experiment by Eddie Lee uses evolutionary NN to simulate AI path finding of Froggy-style game mechanic. Every generation, it chooses the "fittest" critters and asexually reproduces them.

New Humanist Blog: Book review: To Be A Machine

Mark O'Connell's study of transhumanism is a portrait of a movement that believes death is our disgrace and technology our redeemer.

New Humanist Blog: Does literature help or hinder the fight for equality?

Today, the concept of human rights is being dangerously undermined. Does literature offer us a way back from the brink?

Jesse Moynihan: The Moon Part 3

As I assembled my notes and started sketching out some ideas, I hit on a few lingering questions regarding the dew drops, the rays of the reflected sun and the design/color of the crab. One of my online friends suggested that the dew drops were 22 in number (the number of the major trumps as […]

Explosm.net: Comic for 2017.07.18

New Cyanide and Happiness Comic

Disquiet: Three Decks, Six Minutes, Twelve Layers

If you were to just hear — rather than also watch — this track by the artist known as Amulets, you might wonder about the little clickety clacks that occur six times, first at five seconds in, then at half a minute in, and then at just past the minute-and-a-half marker, and then again in quicker succession, within 30 seconds of each other, toward the track’s end. These clicks, sharp and fragile, appear amid and yet apart from the otherwise wooly-lush six minutes of music. What’s occurring is the start and stop of cassette tapes being placed into a trio of multi-track player-recorders. Those tapes are the source and the receiver of the echoing, excellently lo-fidelity, gently crackling music. The tapes are both producing and layering the audio, hence the slow yet discernible buildup as it progresses. Since these are four-track recorders, the result is a dozen component parts, twelve separate loops being manipulated in real time.

This is the latest video I’ve added to my YouTube playlist of recommended live performances of ambient music. Video originally posted at youtube.com. More from Amulets, aka Randall Taylor, at amuletsmusic.com and amulets.bandcamp.com.

The Shape of Code: Ecosystems chapter added to “Empirical software engineering using R”

The Ecosystems chapter of my Empirical software engineering book has been added to the draft pdf (download here).

I don’t seem to be able to get away from rewriting everything, despite working on the software engineering material for many years. Fortunately the sparsity of the data keeps me in check, but I keep finding new and interesting data (not a lot, but enough to slow me down).

There is still a lot of work to be done on the ecosystems chapter, not least integrating all the data I have been promised. The basic threads are there, they just need filling out (assuming the promised data sets arrive).

I did not get any time to integrate in the developer and economics data received since those draft chapters were released; there has been some minor reorganization.

As always, if you know of any interesting software engineering data, please tell me.

I’m looking to rerun the workshop on analyzing software engineering data. If anybody has a venue in central London, that holds 30 or so people+projector, and is willing to make it available at no charge for a series of free workshops over several Saturdays, please get in touch.

Projects chapter next.


For a limited time, get the 400 page COMPLETE Our Valued Customers 

s mazuk: Photo

Perlsphere: Perl 5 Porters Mailing List Summary: July 10th-16th

Hey everyone,

Following is the p5p (Perl 5 Porters) mailing list summary for the past week.


July 10th-16th


Perl 5.24.2 and 5.22.4 are finally, finally out!!


New Issues

Resolved Issues



Dave Mitchell suggests (keys(%tied_hash)) in boolean/scalar context) changing the behavior of tied hashes in boolean and scalar context.

John P. Linderman wrote on his progress in destabilizing mergesort and the relevant SORTf_DESC flag.

Planet Haskell: FP Complete: Announcing: the new unliftio library

For the past few years, Francesco Mazzoli and I have discussed issues around monad transformers—and the need to run their actions in IO—on a fairly regular basis. I wrote the monad-unlift library a while ago to try and address these concerns. But recent work I did in Stack on the extensible snapshots branch demonstrated some of the shortcomings Francesco had mentioned to me. This is also in line with conclusions I was reaching from code review and training I've been doing, as I've mentioned recently.

Putting that all together: last week we finally bit the bullet and put together a new pair of libraries:

  • unliftio-core defines the MonadUnliftIO typeclass, provides instances for base and transformers, and provides a few helper functions, with no additional dependencies.
  • unliftio provides a "batteries included" set of unlifted functions for exceptions, timeouts, async, and more

This should be considered an experimental release, with some changes already planned. Instead of repeating myself, I'm going to copy in the README from unliftio for the remainder of this post, which includes more details on using these libraries, comparison with alternatives, and plans for future changes.

NOTE If you're reading this in the future, please check out the README from the packages themselves in the links above. The content below will not be updated with changes to the libraries.


Provides the core MonadUnliftIO typeclass, a number of common instances, and a collection of common functions working with it. Not sure what the MonadUnliftIO typeclass is all about? Read on!

NOTE This library is young, and will likely undergo some serious changes over time. It's also very lightly tested. That said: the core concept of MonadUnliftIO has been refined for years and is pretty solid, and even though the code here is lightly tested, the vast majority of it is simply apply withUnliftIO to existing functionality. Caveat emptor and all that.


  • Replace imports like Control.Exception with UnliftIO.Exception. Yay, your catch and finally are more powerful and safer!
  • Similar with Control.Concurrent.Async with UnliftIO.Async
  • Or go all in and import UnliftIO
  • Naming conflicts: let unliftio win
  • Drop the deps on monad-control, lifted-base, and exceptions
  • Compilation failures? You may have just avoided subtle runtime bugs

Sound like magic? It's not. Keep reading!

Unlifting in 2 minutes

Let's say I have a function:

readFile :: FilePath -> IO ByteString

But I'm writing code inside a function that uses ReaderT Env IO, not just plain IO. How can I call my readFile function in that context? One way is to manually unwrap the ReaderT data constructor:

myReadFile :: FilePath -> ReaderT Env IO ByteString
myReadFile fp = ReaderT $ \_env -> readFile fp

But having to do this regularly is tedious, and ties our code to a specific monad transformer stack. Instead, many of us would use MonadIO:

myReadFile :: MonadIO m => FilePath -> m ByteString
myReadFile = liftIO . readFile

But now let's play with a different function:

withBinaryFile :: FilePath -> IOMode -> (Handle -> IO a) -> IO a

We want a function with signature:

    :: FilePath
    -> IOMode
    -> (Handle -> ReaderT Env IO a)
    -> ReaderT Env IO a

If I squint hard enough, I can accomplish this directly with the ReaderT constructor via:

myWithBinaryFile fp mode inner =
  ReaderT $ \env -> withBinaryFile
    (\h -> runReaderT (inner h) env)

I dare you to try to and accomplish this with MonadIO and liftIO. It simply can't be done. (If you're looking for the technical reason, it's because IO appears in negative/argument position in withBinaryFile.)

However, with MonadUnliftIO, this is possible:

import Control.Monad.IO.Unlift

    :: MonadUnliftIO m
    => FilePath
    -> IOMode
    -> (Handle -> m a)
    -> m a
myWithBinaryFile fp mode inner =
  withRunInIO $ \runInIO ->
    (\h -> runInIO (inner h))

That's it, you now know the entire basis of this library.

How common is this problem?

This pops up in a number of places. Some examples:

  • Proper exception handling, with functions like bracket, catch, and finally
  • Working with MVars via modifyMVar and similar
  • Using the timeout function
  • Installing callback handlers (e.g., do you want to do logging in a signal handler?).

This also pops up when working with libraries which are monomorphic on IO, even if they could be written more extensibly.


Reading through the codebase here is likely the best example to see how to use MonadUnliftIO in practice. And for many cases, you can simply add the MonadUnliftIO constraint and then use the pre-unlifted versions of functions (like UnliftIO.Exception.catch). But ultimately, you'll probably want to use the typeclass directly. The type class has only one method -- askUnliftIO:

newtype UnliftIO m = UnliftIO { unliftIO :: forall a. m a -> IO a }

class MonadIO m => MonadUnliftIO m where
  askUnliftIO :: m (UnliftIO m)

askUnliftIO gives us a function to run arbitrary computation in m in IO. Thus the "unlift": it's like liftIO, but the other way around.

Here are some sample typeclass instances:

instance MonadUnliftIO IO where
  askUnliftIO = return (UnliftIO id)
instance MonadUnliftIO m => MonadUnliftIO (IdentityT m) where
  askUnliftIO = IdentityT $
                withUnliftIO $ \u ->
                return (UnliftIO (unliftIO u . runIdentityT))
instance MonadUnliftIO m => MonadUnliftIO (ReaderT r m) where
  askUnliftIO = ReaderT $ \r ->
                withUnliftIO $ \u ->
                return (UnliftIO (unliftIO u . flip runReaderT r))

Note that:

  • The IO instance does not actually do any lifting or unlifting, and therefore it can use id
  • IdentityT is essentially just wrapping/unwrapping its data constructor, and then recursively calling withUnliftIO on the underlying monad.
  • ReaderT is just like IdentityT, but it captures the reader environment when starting.

We can use askUnliftIO to unlift a function:

timeout :: MonadUnliftIO m => Int -> m a -> m (Maybe a)
timeout x y = do
  u <- askUnliftIO
  System.Timeout.timeout x $ unliftIO u y

or more concisely using withRunIO:

timeout :: MonadUnliftIO m => Int -> m a -> m (Maybe a)
timeout x y = withRunInIO $ \run -> System.Timeout.timeout x $ run y

This is a common pattern: use withRunInIO to capture a run function, and then call the original function with the user-supplied arguments, applying run as necessary. withRunIO takes care of invoking unliftIO for us.

However, if we want to use the run function with different types, we must use askUnliftIO:

race :: MonadUnliftIO m => m a -> m b -> m (Either a b)
race a b = do
  u <- askUnliftIO
  liftIO (A.race (unliftIO u a) (unliftIO u b))

or more idiomatically withUnliftIO:

race :: MonadUnliftIO m => m a -> m b -> m (Either a b)
race a b = withUnliftIO $ \u -> A.race (unliftIO u a) (unliftIO u b)

This works just like withRunIO, except we use unliftIO u instead of run, which is polymorphic. You could get away with multiple withRunInIO calls here instead, but this approach is idiomatic and may be more performant (depending on optimizations).

And finally, a more complex usage, when unlifting the mask function. This function needs to unlift vaues to be passed into the restore function, and then liftIO the result of the restore function.

mask :: MonadUnliftIO m => ((forall a. m a -> m a) -> m b) -> m b
mask f = withUnliftIO $ \u -> Control.Exception.mask $ \unmask ->
  unliftIO u $ f $ liftIO . unmask . unliftIO u


Not all monads which can be an instance of MonadIO can be instances of MonadUnliftIO, due to the MonadUnliftIO laws (described in the Haddocks for the typeclass). This prevents instances for a number of classes of transformers:

  • Transformers using continuations (e.g., ContT, ConduitM, Pipe)
  • Transformers with some monadic state (e.g., StateT, WriterT)
  • Transformers with multiple exit points (e.g., ExceptT and its ilk)

In fact, there are two specific classes of transformers that this approach does work for:

  • Transformers with no context at all (e.g., IdentityT, NoLoggingT)
  • Transformers with a context but no state (e.g., ReaderT, LoggingT)

This may sound restrictive, but this restriction is fully intentional. Trying to unlift actions in stateful monads leads to unpredictable behavior. For a long and exhaustive example of this, see A Tale of Two Brackets, which was a large motivation for writing this library.

Comparison to other approaches

You may be thinking "Haven't I seen a way to do catch in StateT?" You almost certainly have. Let's compare this approach with alternatives. (For an older but more thorough rundown of the options, see Exceptions and monad transformers.)

There are really two approaches to this problem:

  • Use a set of typeclasses for the specific functionality we care about. This is the approach taken by the exceptions package with MonadThrow, MonadCatch, and MonadMask. (Earlier approaches include MonadCatchIO-mtl and MonadCatchIO-transformers.)
  • Define a generic typeclass that allows any control structure to be unlifted. This is the approach taken by the monad-control package. (Earlier approaches include monad-peel and neither.)

The first style gives extra functionality in allowing instances that have nothing to do with runtime exceptions (e.g., a MonadCatch instance for Either). This is arguably a good thing. The second style gives extra functionality in allowing more operations to be unlifted (like threading primitives, not supported by the exceptions package).

Another distinction within the generic typeclass family is whether we unlift to just IO, or to arbitrary base monads. For those familiar, this is the distinction between the MonadIO and MonadBase typeclasses.

This package's main objection to all of the above approaches is that they work for too many monads, and provide difficult-to-predict behavior for a number of them (arguably: plain wrong behavior). For example, in lifted-base (built on top of monad-control), the finally operation will discard mutated state coming from the cleanup action, which is usually not what people expect. exceptions has different behavior here, which is arguably better. But we're arguing here that we should disallow all such ambiguity at the type level.

So comparing to other approaches:


Throwing this one out there now: the monad-unlift library is built on top of monad-control, and uses fairly sophisticated type level features to restrict it to only the safe subset of monads. The same approach is taken by Control.Concurrent.Async.Lifted.Safe in the lifted-async package. Two problems with this:

  • The complicated type level functionality can confuse GHC in some cases, making it difficult to get code to compile.
  • We don't have an ecosystem of functions like lifted-base built on top of it, making it likely people will revert to the less safe cousin functions.


The main contention until now is that unlifting in a transformer like StateT is unsafe. This is not universally true: if only one action is being unlifted, no ambiguity exists. So, for example, try :: IO a -> IO (Either e a) can safely be unlifted in StateT, while finally :: IO a -> IO b -> IO a cannot.

monad-control allows us to unlift both styles. In theory, we could write a variant of lifted-base that never does state discards, and let try be more general than finally. In other words, this is an advantage of monad-control over MonadUnliftIO. We've avoided providing any such extra typeclass in this package though, for two reasons:

  • MonadUnliftIO is a simple typeclass, easy to explain. We don't want to complicated matters (MonadBaseControl is a notoriously difficult to understand typeclass). This simplicity is captured by the laws for MonadUnliftIO, which make the behavior of the run functions close to that of the already familiar lift and liftIO.
  • Having this kind of split would be confusing in user code, when suddenly finally is not available to us. We would rather encourage good practices from the beginning.

Another distinction is that monad-control uses the MonadBase style, allowing unlifting to arbitrary base monads. In this package, we've elected to go with MonadIO style. This limits what we can do (e.g., no unlifting to STM), but we went this way because:

  • In practice, we've found that the vast majority of cases are dealing with IO
  • The split in the ecosystem between constraints like MonadBase IO and MonadIO leads to significant confusion, and MonadIO is by far the more common constraints (with the typeclass existing in base)


One thing we lose by leaving the exceptions approach is the ability to model both pure and side-effecting (via IO) monads with a single paradigm. For example, it can be pretty convenient to have MonadThrow constraints for parsing functions, which will either return an Either value or throw a runtime exception. That said, there are detractors of that approach:

  • You lose type information about which exception was thrown
  • There is ambiguity about how the exception was returned in a constraint like (MonadIO m, MonadThrow m)

The latter could be addressed by defining a law such as throwM = liftIO . throwIO. However, we've decided in this library to go the route of encouraging Either return values for pure functions, and using runtime exceptions in IO otherwise. (You're of course free to also return IO (Either e a).)

By losing MonadCatch, we lose the ability to define a generic way to catch exceptions in continuation based monads (such as ConduitM). Our argument here is that those monads can freely provide their own catching functions. And in practice, long before the MonadCatch typeclass existed, conduit provided a catchC function.

In exchange for the MonadThrow typeclass, we provide helper functions to convert Either values to runtime exceptions in this package. And the MonadMask typeclass is now replaced fully by MonadUnliftIO, which like the monad-control case limits which monads we can be working with.

Async exception safety

The safe-exceptions package builds on top of the exceptions package and provides intelligent behavior for dealing with asynchronous exceptions, a common pitfall. This library provides a set of exception handling functions with the same async exception behavior as that library. You can consider this library a drop-in replacement for safe-exceptions. In the future, we may reimplement safe-exceptions to use MonadUnliftIO instead of MonadCatch and MonadMask.

Package split

The unliftio-core package provides just the typeclass with minimal dependencies (just base and transformers). If you're writing a library, we recommend depending on that package to provide your instances. The unliftio package is a "batteries loaded" library providing a plethora of pre-unlifted helper functions. It's a good choice for importing, or even for use in a custom prelude.


The unliftio package currently provides orphan instances for types from the resourcet and monad-logger packages. This is not intended as a long-term solution; once unliftio is deemed more stable, the plan is to move those instances into the respective libraries and remove the dependency on them here.

If there are other temporary orphans that should be added, please bring it up in the issue tracker or send a PR, but we'll need to be selective about adding dependencies.

Future questions

  • Should we extend the set of functions exposed in UnliftIO.IO to include things like hSeek?
  • Are there other libraries that deserve to be unlifted here?

: Gongfu is not always better

Gongfu brewing is quite versatile – you can control all the variables, including the amount of tea, the amount of water, the timing of the infusions, etc. You can adjust infusions as you go to try to get the best cup of tea from the leaves. However, it is not the only way to brew, nor is it always the best suited for whatever tea you drink.

These days I use a small pot to brew tea at work, with an electric kettle that has served me quite well. I mix waters so the tea is not suffering from the ultra-filtered water we use at work. It works reasonable well. At home, with kids, it’s difficult to do any kind of gongfu brewing. Instead, I grandpa everything. This may come as a surprise to some, but for some teas, grandpa-ing the tea actually produces better results.

I’ve talked about this briefly before. The thing you have to remember is when you brew teas in vastly different ways, the tea itself changes character in really obvious metrics. A tea you think you’re familiar with can appear wholly unrecognizable. The most obvious for these is aged oolongs. You might think that oolongs are best brewed in gongfu style. This may seem especially odd for aged oolong, which can be a bit sour. Wouldn’t grandpa-ing the tea make it even more sour?

Funny enough, the answer to that question is usually no. In fact, I’ve found over many years of drinking this stuff in various ways that grandpa-ing is often the best way to drink aged oolongs – even better than drinking in a small pot. If you gongfu an aged oolong, what often happens is the tea can be a bit thin, and a bit sour. There’s not a lot to recommend the tea. The same tea, however, throw into a big mug and just stewed for minutes before you even attempt your first sip, can be fragrant, full bodied, and quite pleasant. The acidity is now enhancing the drink, instead of making it worse – in the same way that acidity in a wine can make it a better experience. There are aged oolongs I’ve had that taste sharp and kinda nasty when gongfu brewing, but are an absolute delight when drunk grandpa style. I haven’t given up drinking aged oolongs gongfu style completely yet, because some teas do work better for that, but in general, I’d say it’s at best a tossup.

Even for semi-aged puerh, I think one should at least try drinking them grandpa style, or at the very least using a much lower tea to water ratio but with longer steep times. The result is usually a richer taste – I have some teas that appear thicker, and more fragrant, when I grandpa them. In gongfu style, they’re instead a bit weak and not terribly interesting.

I think what’s going on is that for some teas, the amount of time you need for whatever it is in the leaves to be pulled out of the water varies for different types of whatever proteins it is that is giving you that particular flavour. If you do short and fast steeps, as is pretty normal in a gongfu style brew, then they all come in succession – with none of the cups being particularly satisfying. Instead, when you steep them long and slow in a big mug and then drunk together, the result is far more interesting, and the individual elements – such as the sourness – blend into the tea in a way that is not obtrusive. As James said recently, drink with an open mind and don’t get stuck in the same routine. The results can be surprising.

Ideas from CBC Radio (Highlights): The Post-Modern Chimpanzee's Guide to Parenting (Encore Oct 6, 2016)

A look at the work of evolutionary anthropologist and University of Toronto PhD student Iulia Badescu who spent a year camped out in a Ugandan jungle to observe chimp parenting.

Planet Haskell: Gabriel Gonzalez: Demystifying Haskell assignment

<html xmlns="http://www.w3.org/1999/xhtml"><head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> <meta content="text/css" http-equiv="Content-Style-Type"/> <meta content="pandoc" name="generator"/> <style type="text/css">code{white-space: pre;}</style> <style type="text/css">div.sourceCode { overflow-x: auto; } table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode { margin: 0; padding: 0; vertical-align: baseline; border: none; } table.sourceCode { width: 100%; line-height: 100%; } td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; } td.sourceCode { padding-left: 5px; } code > span.kw { color: #007020; font-weight: bold; } /* Keyword */ code > span.dt { color: #902000; } /* DataType */ code > span.dv { color: #40a070; } /* DecVal */ code > span.bn { color: #40a070; } /* BaseN */ code > span.fl { color: #40a070; } /* Float */ code > span.ch { color: #4070a0; } /* Char */ code > span.st { color: #4070a0; } /* String */ code > span.co { color: #60a0b0; font-style: italic; } /* Comment */ code > span.ot { color: #007020; } /* Other */ code > span.al { color: #ff0000; font-weight: bold; } /* Alert */ code > span.fu { color: #06287e; } /* Function */ code > span.er { color: #ff0000; font-weight: bold; } /* Error */ code > span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ code > span.cn { color: #880000; } /* Constant */ code > span.sc { color: #4070a0; } /* SpecialChar */ code > span.vs { color: #4070a0; } /* VerbatimString */ code > span.ss { color: #bb6688; } /* SpecialString */ code > span.im { } /* Import */ code > span.va { color: #19177c; } /* Variable */ code > span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ code > span.op { color: #666666; } /* Operator */ code > span.bu { } /* BuiltIn */ code > span.ex { } /* Extension */ code > span.pp { color: #bc7a00; } /* Preprocessor */ code > span.at { color: #7d9029; } /* Attribute */ code > span.do { color: #ba2121; font-style: italic; } /* Documentation */ code > span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ code > span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ </style></head><body>

This post clarifies the distinction between <- and = in Haskell, which sometimes mystifies newcomers to the language. For example, consider the following contrived code snippet:

main = do
input <- getLine
let output = input ++ "!"
putStrLn output
putStrLn (input ++ "!")

The above program reads one line of input, and then prints that line twice with an exclamation mark at the end, like this:

$ ./example

Why does the first line use the <- symbol to assign a value to input while the second line uses the = symbol to define output? Most languages use only one symbol to assign values (such as = or :=), so why does Haskell use two?


Haskell bucks the trend because the = symbol does not mean assignment and instead means something stronger than in most programming languages. Whenever you see an equality sign in a Haskell program that means that the two sides are truly equal. You can substitute either side of the equality for the other side and this substitution works in both directions.

For example, we define output to be equal (i.e. synonymous) with the expression input ++ "!" in our original program. This means that anywhere we see output in our program we can replace output with input ++ "!" instead, like this:

main = do
input <- getLine
let output = input ++ "!"
putStrLn (input ++ "!")
putStrLn (input ++ "!")

Vice versa, anywhere we see input ++ "!" in our program we can reverse the substitution and replace the expression with output instead, like this:

main = do
input <- getLine
let output = input ++ "!"
putStrLn output
putStrLn output

The language enforces that these sorts of substitutions do not change the behavior of our program (with caveats, but this is mostly true). All three of the above programs have the same behavior because we always replace one expression with another equal expression. In Haskell, the equality symbol denotes true mathematical equality.


Once we understand equality we can better understand why Haskell uses a separate symbol for assignment: <-. For example, lets revisit this assignment in our original program:

main = do
-- Assign result of `getLine` to `input`
input <- getLine

input and getLine are not equal in any sense of the word. They don't even have the same type!

The type of input is String:

input :: String

... whereas the type of getLine is IO String:

getLine :: IO String

... which you can think of as "a subroutine whose return value is a String". We can't substitute either one for the other because we would get a type error. For example, if we substitute all occurrences of input with getLine we would get an invalid program which does not type check:

main = do
let output = getLine ++ "!" -- Type error!
putStrLn output
putStrLn (getLine ++ "!") -- Type error!

However, suppose we gloss over the type error and accept values of type IO String where the program expected just a String. Even then this substitution would still be wrong because our new program appears to request user input twice:

main = do
let output = getLine ++ "!" -- ← 1st request for input
putStrLn output
putStrLn (getLine ++ "!") -- ← 2nd request for input

Contrast this with our original program, which only asks for a single line of input and reuses the line twice:

main = do
input <- getLine -- ← 1st and only request for input
let output = input ++ "!"
putStrLn output
putStrLn (input ++ "!")

We cannot substitute the left-hand side of an assignment for the right-hand side of the assignment without changing the meaning of our program. This is why Haskell uses a separate symbol for assignment, because assignment does not denote equality.

Also, getLine and input are not even morally equal. getLine is a subroutine whose result may change every time, and to equate getLine with the result of any particular run doesn't make intuitive sense. That would be like calling the Unix ls command "a list of files".


Haskell has two separate symbols for <- and = because assignment and equality are not the same thing. Haskell just happens to be the first mainstream language that supports mathematical equality, which is why the language requires this symbolic distinction.

Language support for mathematical equality unlocks another useful language feature: equational reasoning. You can use more sophisticated equalities to formally reason about the behavior of larger programs, the same way you would reason about algebraic expressions in math.


churchturing.org / 2017-07-23T08:27:02