Bifurcated Rivets: From FB


Bifurcated Rivets: From FB

Bifurcated Rivets: From FB


Bifurcated Rivets: From FB


Bifurcated Rivets: From FB


Recent additions: cabal-info

Added by barrucadu, Sat Feb 6 17:40:48 UTC 2016.

Read information from cabal files

Computer Science: Theory and Application: A good CS minor?

So I was looking at minors I can take while I am pursing my degree in CS. The two that stuck out to me are game programming and data mining/analysis.

I'm sure data mining and analysis is much better for CS, but I know I'd enjoy game programming more. Is a minor a huge deal when putting together a resume or is it looked at more as a hobby?

submitted by /u/Squiggyline91
[link] [comments]

Slashdot: Giant Magellan Telescope Set To Revolutionize Ground-Based Astronomy

StartsWithABang writes: If you want to see farther, deeper and at higher resolution than ever before into the Universe, you need four things: the largest aperture possible, the best-quality optical systems and cameras/CCDs, the least interference from the atmosphere, and the analytical techniques and power to make the most of every photon. While the last three have improved tremendously over the past 25 years, telescope size hasn't increased at all. That's all about to change over the next decade, as three telescopes — the Giant Magellan Telescope, the Thirty Meter Telescope and the European Extremely Large Telescope — are set to take us from 8-10 meter class astronomy to 25-40 meter class. While the latter two are fighting over funding, construction rights and other political concerns, the Giant Magellan Telescope is already under construction, and is poised to be the first in line to begin the future of ground-based astronomy.

Read more of this story at Slashdot.

Instructables: exploring - featured: 1:10 stop motion Ice cream van

Are you making a very specific stop motion film that revolves around an ice cream van? Well good news! Here's how to make one! I made this at university for a project which meant I had access to a great deal of machines and facilities making for a particularly interesting and varied build. CAD des...
By: abmodelmaking

Continue Reading »

Instructables: exploring - featured: Usb lamp with timer&dimmer

555 monostable circuit YOU'LL NEED: You'll need:555 timer ICResistors (10ohm, 200k, 1k)Capacitors (0.6mF, 10nF)StripboardPushbuttonSlide switchPotentiometers (500k, 10k)Soldering iron & solderUsb cable( cut off the head that goes to your mobile device, ignore the green and whit wire, what you nee...
By: maria_AI

Continue Reading »

Instructables: exploring - featured: Vegetable Masala

So today seemed like a day for Indian food.It's cold, it's February, and let's face it, it's always a day to eat something Indian. This is fairly quick and simple, and it's one of my favorite recipes, with just the right amount of sweet and spicy, so I hope you enjoy it! Prepare The Ingredients G...
By: kiwi23

Continue Reading »

All Content: #270 February 6, 2016

Sheila writes: The great Japanese animator Hayao Miyazaki has enthralled audiences for 40 years with his beautiful sensitive films, filled with supernatural elements, dream-like images, and a vibrant sense of the small moments that make up human existence. Video-essayist Lewis Bond (you can view more of his work here) created a short documentary about Miyazaki called "Hayao Miyazaki: The Essence of Humanity." Here it is, in full. Enjoy!


Miles Ahead (2015). Directed by Don Cheadle. Written by Steven Baigelman . Starring Don Cheadle, Emayatzy Corinealdi, Ewan McGregor Synopsis: An exploration of the life and music of Miles Davis. Opens in US theaters on April 1, 2016.

The Automatic Hate (2015). Directed by Justin Lerner. Written by Justin Lerner, Katharine O'Brien. Starring Joseph Cross, Adelaide Clemens,Deborah Ann Woll . Synopsis: When Davis Green's alluring young cousin Alexis shows up on his doorstep, he discovers a side of his family that had been kept secret his entire life. As the two get closer, they set out to uncover the shocking secret that tore their families apart. Opens in US theaters on March 15, 2016.

Get a Job (2016). Directed by Dylan Kidd. Written by Kyle Pennekamp , Scott Turpel . Starring Alison Brie, Anna Kendrick, Bryan Cranston. Synopsis: Life after college graduation is not exactly going as planned for Will and Jillian who find themselves lost in a sea of increasingly strange jobs. But with help from their family, friends and coworkers they soon discover that the most important (and hilarious) adventures are the ones that we don't see coming. Opens in US theaters in limited release on March 25, 2016.

Imperial Dreams (2014). Directed by Malik Vitthal . Written by Ismet Prcic, Malik Vitthal. Starring John Boyega, Rotimi, Glenn Plummer. Synopsis: A 21-year-old reformed gangster's devotion to his family and his future is put to the test when he is released from prison and returns to his old stomping grounds in Watts, Los Angeles. Release dates TBD.

Me Before You (2016). Directed by Thea Sharrock . Written by Jojo Moyes . Starring Emilia Clarke, Sam Claflin, Jenna Coleman . Synopsis: A girl in a small town forms an unlikely bond with a recently-paralyzed man she's taking care of. Opens in US theaters on June 3, 2016.

Ice Age: Collision Course (2016). Directed by Mike Thurmeier, Galen T. Chu . Written by Michael Berg, Aubrey Solomon . Starring Melissa Rauch, Jennifer Lopez, Stephanie Beatriz. Synopsis: Scrat's epic pursuit of his elusive acorn catapults him outside of Earth, where he accidentally sets off a series of cosmic events that transform and threaten the planet. Opens in US theaters on July 22, 2016.

Creative Control (2016). Directed by Benjamin Dickinson . Written by Micah Bloomberg, Benjamin Dickinson . Starring Benjamin Dickinson, Nora Zehetner, Dan Gill . Synopsis: In near future Brooklyn, an ad executive uses a new Augmented Reality technology to conduct an affair with his best friend's girlfriend ... sort of. Opens in US theaters on March 11, 2016.

Take Me to the River (2015). Written and directed by Matt Sobel. Starring Robin Weigert, Logan Miller, Richard Schiff . Synopsis: A Californian teenager's plan to come out at his Nebraskan family reunion gets derailed when a bloodstain on his young cousin's dress makes him the unwitting suspect of abuse. Opens in New York on March 18, 2016. Wider release dates TBD.

Green Room (2015). *Red band trailer* Written and directed by Jeremy Saulnier . Starring Imogen Poots, Alia Shawkat, Callum Turner . Synopsis: A young punk rock band find themselves trapped in a secluded venue after stumbling upon a horrific act of violence. Opens in US theaters on April 29, 2016.

The Driftless Area (2015). Written and directed by Zachary Sluser (based on the book by Tom Drury). Starring Anton Yelchin, Zooey Deschanel, John Hawkes . Synopsis: A bartender comes back to his hometown after his parents die, and finds himself in a dangerous situation involving a mysterious woman and a violent criminal. Opens in US theaters April 26, 2016.

Hunt for the Wilderpeople (2016). Written and directed by Taika Waititi (based on the book by Barry Crump ). Starring Julian Dennison, Rachel House, Rima Te Wiata . Synopsis: A national manhunt is ordered for a rebellious kid and his foster uncle who go missing in the wild New Zealand bush. Release dates TBD.

Nine Lives (2016). Directed by Barry Sonnenfeld. Written by Matt Allen, Dan Antoniazzi. Starring Robbie Amell, Kevin Spacey, Jennifer Garner . Synopsis: A stuffy businessman finds himself trapped inside the body of his family's cat. Opens in US theaters on August 5, 2016.

The Confirmation (2016). Written and directed by Bob Nelson. Starring Clive Owen, Maria Bello, Patton Oswalt. Synopsis: 8-year-old Anthony is uneasy about spending the weekend with his alcoholic carpenter dad Walt while his mom Bonnie and her new husband Kyle go to a Catholic retreat together. Walt is just as uneasy about spending time with Anthony, especially since their first day together is a series of characteristically unfortunate events. Opens in US theaters on March 18, 2016.

Disorder (2015). Written and directed by Alice Winocour. Starring Matthias Schoenaerts, Diane Kruger, Paul Hamy. Synopsis: Vincent is an ex-soldier with PTSD who is hired to protect the wife and child of a wealthy Lebanese businessman while he's out of town. Despite the apparent tranquility on Maryland, Vincent perceives an external threat. Opens in the UK and Ireland on March 25, 2016. Other release dates TBD.

The American Dreamer (1971). * New trailer for theatrical re-release * Directed by L.M. Kit Carson, Lawrence Schiller. Synopsis: A documentary about actor/director Dennis Hopper, showing him at his home and studio putting together his film "The Last Movie." Being re-released in the UK on February 5, 2016. Other release dates to follow.

Jacques Rivette 1928-2016

Sheila writes: So many of the writers who wrote tributes to the great French New Wave director Jacques Rivette speak of how he, almost single-handedly, got them interested in film. The loss felt personal. In Patrick Z. McGavin's tribute to Rivette on, McGavin writes, "His loss is a significant one, for art and for its history. Few major figures devoted so much of their energy and work to explicating the meaning, texture and complex visions of other great directors."
Here's Roger Ebert's Great Movies essay on Rivette's 1991 film "La Belle Noiseuse." Ebert writes, "Truffaut said that the French New Wave came into being because of Jacques Rivette (born 1928). He has never had the fame of his generation -- Truffaut, Godard, Chabrol, Varda, Resnais. His films are said to be too long and difficult. There isn't the slightest difficulty in "La Belle Noiseuse," and I would not want it any shorter, because I have shared that combat and that bond in that studio, and its devastating outcome."

Stanley Kubrick: The Lost Tapes

Sheila writes: In 1966, while filming "2001," director Stanley Kubrick sat down with Jeremy Bernstein, who was doing a piece on Kubrick for The New Yorker. Kubrick, always interested in documenting everything from his earliest days, tape recorded the whole conversation. Kubrick talked to Bernstein about his life, his early years, the development of his art and how he thought about it. The tapes were thought lost until recently. Documentarian Jim Casey has made a short documentary, using Kubrick's 1966 taped comments as the narration for the film. Take a look!

Sundance 2016

Sheila writes: The marathon of Sundance is over, and the team of contributors and editors worked overtime to provide dispatches from the festival, reviews of the exciting (or not) films being screened, plus interviews with key players. Here is the full Table of Contents. You can also check out the summing-up pieces: Best Films of Sundance 2016 and Best Performances of Sundance 2016. Quite a lot to look forward to!

Free Movies

Dishonored Lady (1947). Directed by Robert Stevenson. Starring Hedy Lamarr, Dennis O'Keefe, John Loder. Synopsis: Madeleine is the fashion editor of a slick Manhattan magazine by day and a lively party girl by night. After a breakdown, she becomes interested in a handsome neighbor. He soon finds out about her past when an ex-suitor implicates her in a murder.

Watch "Dishonored Lady."

Of Human Bondage (1934). Directed by John Cromwell. Starring Bette Davis, Leslie Howard, Frances Dee . Synopsis: A young man finds himself attracted to a cold and unfeeling waitress who may ultimately destroy them both.

Watch "Of Human Bondage."

Crack in the World (1965). Directed by Andrew Marton. Starring Dana Andrews, Janette Scott, Kieron Moore . Synopsis: A dying scientist fires a missile into the Earth's center, and nearly blows the planet apart.

Watch "Crack in the World."

MetaFilter: LSD: My Life-Saving Drug

When a freak brain hemorrhage struck out of nowhere a couple of years ago, I became a little depressed, stuck in a rut, and strangely fearful of death. So when I heard about people (in my neighborhood, even) using hallucinogens to push beyond their preoccupations, to help them live without fear, I decided that was a trip I had to take.

Slashdot: Even With Telemetry Disabled, Windows 10 Talks To Dozens of Microsoft Servers

An esteemed reader writes: Curious about the various telemetry and personal information being collected by Windows 10, one user installed Windows 10 Enterprise and disabled all of the telemetry and reporting options. Then he configured his router to log all the connections that happened anyway. Even after opting out wherever possible, his firewall captured Windows making around 4,000 connection attempts to 93 different IP addresses during an 8 hour period, with most of those IPs controlled by Microsoft. Even the enterprise version of Windows 10 is checking in with Redmond when you tell it not to — and it's doing so frequently.

Read more of this story at Slashdot.

Instructables: exploring - featured: SMOT Magnetic Accelerator

Difficulty of realization 4/10 How it work In the theoretical SMOT design, a steel ball is pulled up a ramp by an array of permanent magnets. At the top of the ramp it falls, converting magnetic attraction into kinetic energy.This is a revised version of the project SMOT (Simple Magnetic Overunit...
By: Magnetic Games

Continue Reading »

Disquiet: An Enticing Sonic Interiority

“Modderlaars” is the sort of track that is quiet enough to draw you in and dense enough to then creep up and surround you. By all rights, the minimal materials should seem tattered and light. And yet they accumulate with an unmistakable hardness, like thick musty glass, acknowledging the world but still blocking it out. Throughout is a steady pulsing that has a blood-in-the-ear intensity, especially on headphones. But much as the sounds are thin yet strong, the pulse is pounding yet slow. The result is an enticing sonic interiority. You can luxuriate in it, but you also cannot escape.

Track originally posted at More from Kozepz, of Eindhoven in the Netherlands, at

programming: Collection of Examples of 64-bit Errors in Real Programs

submitted by /u/javinpaul
[link] [comments]

Saturday Morning Breakfast Cereal: Saturday Morning Breakfast Cereal - Base Systems

Hovertext: If you use toes, base-22 is more reasonable.

New comic!
Today's News:

Planet Haskell: Douglas M. Auclair (geophf): Graphing with Goats

Slides, presented comme ça! Links at the end. Presentation posted on youtube of the meetup.



3 (I am known for teh kittehs)

4 (graphs-я-borin' is another talk I gave at SanFran GraphConnect 2015)

5. The Beach (not Plastic)



8. ACID means something very important to DBMSes(eses)(eses)

9. neo4j Graph of Amino Acids (data table, Haskell code)

(geddit? links to geddit?)

11. "sed-butt, sed-butt, sed-butt" my daughters chant around the house all day

Now: Graph-applications:

12. Social Media

13. The Markets

14. The Markets (again) / Managing Complexity

15. Search / (Fraud) Detection

16. Scoping / (Requirements) Analysis

17. Clustering

18. Errybody say: "YAAAAAAYYYYYY!"

19. Links, en-text-ified:

20. Buh-bay!

programming: The Boost C++ Libraries - Online Book

submitted by /u/programfog
[link] [comments]

Recent additions: hahp 0.1.2

Added by taeradan, Sat Feb 6 15:31:59 UTC 2016.

Analytic Hierarchy Process IPC-Open3-Callback-1.19

An extension to IPC::Open3 that will feed out and err to callbacks instead of requiring the caller to handle them.

Slashdot: Let Your Pupils Do the Typing

New submitter s.mathot writes: Researchers from France and the Netherlands have developed a way to—literally—write text by thinking of letters. (Academic paper [open access], non-technical blog, YouTube video.) This technique relies on small changes in pupil size that occur when you covertly (from the corner of your eye; without moving your eyes or body) attend to bright or dark objects. By presenting a virtual keyboard on which the 'keys' alternate in brightness, and simultaneously measuring the size of the eye's pupil, the technique automatically determines which letter you want to write; as a result, you can write letters by merely attending to them, without moving any part of your body, including the eyes.

Read more of this story at Slashdot.

Recent additions: hahp 0.1.1

Added by taeradan, Sat Feb 6 15:24:25 UTC 2016.

Analytic Hierarchy Process

Recent additions: hahp 0.1.0

Added by taeradan, Sat Feb 6 15:21:15 UTC 2016.

Analytic Hierarchy Process

Hackaday: Hacklet 94 – Pi Zero Contest Entries

Hackaday and Adafruit have joined forces to present the Raspberry Pi Zero Contest. A great contest is nothing without entries though. This is where the community is proving once again that they’re the best in the world. The contest is less than a week old, yet as of this Thursday evening, we’re already up to 33 entrants! You should submit your own project ideas now for a chance at one of the many prizes. This week on The Hacklet, we’re going to take a look at a few of these early entrants!

controllerWe start with [usedbytes] and Zero Entertainment System [usedbytes] has crammed an entire emulator into a classic Nintendo Entertainment System control pad thanks to the Raspberry Pi Zero. Zero Entertainment System also has something the original NES couldn’t dream of having: An HDMI output. The emulator uses the popular RetroPie front end. We’re happy to say that [usedbytes] knew that hacking up a real Nintendo controller would be sacrilegious, so they grabbed a low-cost USB clone from the far East. A bit of creative parts-stuffing and point-to-point wiring later, ZES was ready to meet the world!

wsprNext up is [Jenny List] with The Australia Project. [Jenny] is a hacker from Europe. She’s hoping to use a Pi Zero to talk to Australia. “Talk” may be pushing it a bit though. The Australia Project will use the Weak Signal Propagation Reporter (WSPR) network to transmit RF straight out of the Pi’s GPIO ports. All that is required is a good filter, an antenna, and a balun. The filter in this case is a 7-pole Chebyshev low-pass filter. The filter keeps the Pi’s harmonic filled square waves from messing up every band from DC to light. [Jenny] normally sells these filters as a kit, but she’s made a special version specifically for the Pi Zero.

tote0[Radomir Dopieralski] has brought his signature walking robots to the Pi Zero world with Tote Zero. Tote Zero is a quadruped walking robot built mainly from 9 gram servos. [Radomir’s] custom tote board interfaces the servos to the Pi Zero itself. The Pi Zero opens all sorts of doors for sensors, vision, and advanced processing. The Arduino board on the original Tote would have been hard pressed to pull that off. Tote is programmed in Python, which will make the code quick and easy to develop. Tote Zero just took its first steps a few days ago, so follow along as a new robot is born!


ethernetpoFinally we have [julien] with PoEPi: Pi Zero Power over Ethernet with PHY. The Raspberry Pi Zero is so tiny, that it’s easy to forget it needs a fair amount of power to run. [Julien] is giving us a way to connect our Pi to a network while ditching the USB power supply using Power Over Ethernet (PoE). PoE has been powering devices like IP cameras for years now. It’s become a standard way of transmitting power and data. For the Ethernet physical interface, [Julien] is using Microchip’s ENC28J60, which has a handy SPI interface. Linux already has drivers in place for the device, so it’s a slam dunk. The “power” part of this system comes with the help of an LTC4267 PoE interface chip, which has a built-in switching regulator.

If you want to see more entrants to Hackaday and Adafruit’s Pi Zero contest, check out the submissions list! If you don’t see your project on that list, you don’t even have to contact me, just submit it to the Pi Zero Contest! That’s it for this week’s Hacklet. As always, see you next week. Same hack time, same hack channel, bringing you the best of!

Filed under: contests, Hackaday Columns

programming: Beej's Guide to Network Programming

submitted by /u/programfog
[link] [comments] WWW-Search-Lycos-2.225

class for searching

Recent additions: Lazy-Pbkdf2 1.0.1

Added by Ofenhed, Sat Feb 6 14:41:14 UTC 2016.

Lazy PBKDF2 generator.

Slashdot: Twitter Tackles Terrorists In Targeted Takedown

Mark Wilson writes: Having previously battled trolls, Twitter has now turned its attention to terrorists and their supporters. The site has closed down more than 125,000 accounts associated with terrorism since the middle of 2015, it announced in a statement. Although a full breakdown of figures is not provided, Twitter says most of these accounts were related to ISIS. Having increased the size of its account review team, the site has reduced the time it takes to investigate accounts that are reported, and has also started to investigate 'accounts similar to those reported'.

Read more of this story at Slashdot.

MetaFilter: And now for something completely different...

Flying Fish Slaps Remix (hat tip: Kottke) Not to be confused with the Fish-Slapping Dance. ... For those still confused, here is a documentary on the complex and intriguing ritual of the ancient art of fish-slapping. And for anyone who continues to be confused, Michael Palin explains. Redis-LeaderBoard-1.11

leader board using Redis

The Geomblog: ITA FTW: Bayesian surprise and eigenvectors in your meal.

I've been lounging in San Diego at my favorite conference, the Information Theory and Applications workshop. It's so friendly that even the sea lions are invited (the Marine Room is where we had the conference banquet).

Sadly this year I was mired in deadlines and couldn't take advantage of the wonderful talks on tap and the over 720 people who attended. Pro tip, ITA: Could you try to avoid the ICML/KDD/COLT deadlines next time :) ?

ITA always has fun events that our more "serious" conferences should learn time. This time, the one event I attended was a Man vs Machine cookoff. Which I thought was particularly apropos since I had just written a well-received article with a cooking metaphor for thinking about algorithms and machine learning.

The premise: Chef Watson (IBM's Watson, acting as a chef) designs recipes for dinner (appetizer/entree/dessert) with an assist from a human chef. Basically the chef puts in some ingredients and Watson suggests a recipe (not from a list of recipes, but from its database of knowledge of chemicals, what tastes 'go well together' and so on. This was facilitated by Kush Varshney from IBM, who works on this project.

Each course is presented as a blind pairing of Watson and Human recipes, and its our job to vote for which one we think is which.

It was great fun. We had four special judges, and each of us had a placard with red and blue sides to make our votes. After each course, Kush gave us the answer.

The final score: 3-0. The humans guessed correctly for each course. The theme was "unusualness": the machine-generated recipes had somewhat stranger combinations, and because Watson doesn't (yet) know about texture, the machine-recipes had a different mouthfeel to them.

This was probably the only time I've heard the words 'Bayesian surprise' and 'eigenvector' used in the context of food reviews. Locale-CLDR-v0.28.3-TRIAL.1

A Module to create locale objects with localisation data from the CLDR

Slashdot: Verizon's Mobile Video Won't Count Against Data Caps -- but Netflix Will

Earthquake Retrofit writes: Ars Technica has a story about how Verizon Wireless is testing the limits of the Federal Communications Commission's net neutrality rules; Verizon has announced that it will exempt its own video service from mobile data caps—while counting data from competitors such as YouTube and Netflix against customers' caps.

Read more of this story at Slashdot. Acme-Ognon-1990.2

Suivez l'Académie française à la lettre ... peut-être

Computer Science: Theory and Application: Good Master/PhD Thesis to Read

I am trying to find good theses to read, with a very broad sense of goodness. I am upto anything you consider worth reading. These need not be only CS theses, Math theses are also welcomed. But one thing, I made a long search of this myself. Probably I read/know the most popular examples like Shannon's thesis or RESTful systems thesis. I am more interested in hidden gems. Another note, I am not asking for journal papers, but theses. Nothing against papers of course, I just wanted this post to be a place for theses.

EDIT: English

submitted by /u/Meguli
[link] [comments]

The Geomblog: On "the moral hazard of complexity-theoretic assumptions"

(ed: In a recent CACM editorial,  CACM editor-in-chief +Moshe Vardi  discussed Babai's result on graph isomorphism and the recent hardness result for edit distance in the context of a larger discussion on the significance of complexity-theoretic assumptions. +Piotr Indyk  (one of the authors of the edit distance result and an occasional guest blogger) posted the following as a response. This response has also been posted as a comment on Moshe's post.)

(ed: Update: After Piotr posted the comment, Moshe responded, and then Piotr responded again. Please visit the article page to read the exchange between the two). 

In a recent CACM editorial, Dr. Vardi addresses what he calls a "a moral hazard of complexity-theoretic assumptions" and "a growing gap between current theory and practice of complexity and algorithms". Given that the article mentions a paper that I am a co-author of [ "Edit Distance Cannot Be Computed in Strongly Subquadratic Time (unless SETH is false)", STOC'15], I believe it is appropriate for me to respond. In short, I believe that much of the analysis in the article stems from a confusion between press coverage and the actual scientific inquiry. Indeed, it is unclear whether Dr. Vardi addresses what he believes to be a "media" phenomenon (how journalists describe scientific developments to a broad public) or a "scientific" phenomenon (how and why the scientists make and use assumptions in their research and describe them in their papers). In order to avoid conflating these two issues, I will address them one by one, focusing on our paper as an example.

  1. Media aspects: The bulk of the editorial is focused on some of the press coverage describing recent scientific developments in algorithms and complexity. In particular, Dr. Vardi mentions the title of a Boston Globe article covering our work ("For 40 Years, Computer Scientists Looked for a Solution that Doesn't Exist.") . As I already discussed this elsewhere ( ), I completely agree that the title and some other parts of the article leave a lot to be desired. Among many things, the conditional aspects of the result are discussed only at the end of the article, and therefore are easy to miss. At the same time, I believe some perspective is needed. The inaccuracy or confusion in popular reporting of scientific results is an unfortunate but common and longstanding phenomenon (see e.g., this account of press coverage of the famous Khachiyan's linear programming algorithm in the 1970s). There are many reasons for this. Perhaps the chief one is the cultural gap between the press and the scientists, where journalists emphasize accessibility and newsworthiness while scientists emphasize precision. As a result, simplification in scientific reporting is a necessity, and the risk of oversimplification, inaccuracy or incorrectness is high. Fortunately, more time and effort spent on both sides can lead to more thorough and nuanced articles (e.g., see ). Given that the coverage of algorithms and complexity results in popular press is growing, I believe that, in time, both scientists and journalists will gain valuable experience in this process.
  2. Scientific aspects: Dr. Vardi also raises some scientific points. In particular:
    •  Dr. Vardi is critical of the title of our paper: "Edit Distance Cannot Be Computed in Strongly Subquadratic Time (unless SETH is false).". I can only say that, given that we are stating the assumption explicitly in the title, in the abstract, in the introduction, and in the main body of the paper, I believe the title and the paper accurately represents its contribution.
    • Dr. Vardi is critical of the validity of SETH as a hardness assumption: this question is indeed a subject of a robust discussion and investigation (see e.g., the aforementioned Quanta article). The best guess of mine and of most of the people I discussed this with is that the assumption is true. However, this is far from a universal opinion. Quantifying the level of support for this conjecture would be an interesting project, perhaps along the lines of similar efforts concerning the P vs. NP conjecture ( ). In any case, it is crucial to strengthen the framework by relying on weaker assumptions, or replacing one-way reductions with equivalences; both are subjects of ongoing research. However, even the existing developments have already led to concrete benefits. For example, failed attempts to prove conditional hardness of certain problems have led to better algorithms for those tasks.

Finally, let me point out that one of the key motivations for this line of research is precisely the strengthening of the relationship between theory and practice in complexity and algorithms, a goal that Dr. Vardi refers to as an important challenge. Specifically, this research provides a framework for establishing evidence that certain computational questions cannot be solved within concrete (e.g., sub-quadratic) polynomial time bounds. In general, I believe that a careful examination of the developments in algorithms and complexity over the last decade would show that the gap between theory and practice is shrinking, not growing. But that is a topic for another discussion.

Hackaday: Learn Bluetooth or Die Tryin

Implementing a Bluetooth Low Energy (BLE) device from scratch can be a daunting task. If you’re looking for an incredibly detailed walkthrough of developing a BLE project from essentially the ground up, you’ve now got a lot of reading to do: [Jocelyn Masserot] takes you through all the steps using the ARM-Cortex-M0-plus-BLE nRF51822 chip.

The blog does what blogs do: stacks up in reverse-chronological order. So it’s best that you roll on down to the first post at the bottom and start there. [Jocelyn] walks you through everything from setting up the ARM compiler toolchain through building up a linker script, blinking an LED, flashing the chip, and finally to advertising your device to your cell phone. It’s a lot of detail, but if you’re doing something like this yourself, you’re sure to appreciate it.

Of course, all the code is available for you to crib peruse on [Jocelyn]’s GitHub. And for yet more background reading on BLE, check out the Hackaday Dictionary.

Filed under: wireless hacks

Perlsphere: Switching Gears? Changing direction?

I have been struggling with what I am doing for quite some time. I keep seeing the evidence that the user-base of Perl is shrinking. While you can't see from these numbers, but the Perl Maven has not gaing more readers since February 2015. But I still love to explain stuff about Perl.

For the full article visit Switching Gears? Changing direction?

MetaFilter: Fake Online Locksmiths, lead gens and Google Maps (nyt)

Fake Online Locksmiths A locksmith's shop on a street in Sun City, Ariz. [...] turned out to be a fiction that was created for the locksmith by a web design firm using Photoshop at what is, in fact, a vacant lot. [via marginal revolution]

It was very late, and it was very cold," said Anna Pietro, recalling an evening last January when she called Allen Emergency, the nearest locksmith to her home in a Dallas suburb, according to a Google Maps search on her iPhone. "This guy shows up and says he needs to drill my door lock, which will cost $350, about seven times the estimate I'd been given on the phone. And he demanded cash."

Hackaday: New Angle on Raspberry Pi Zero Hub

Collectively, the Hackaday readers sigh, “Not another Pi Zero hub!!!”. But [Sean Hodgins’] hub is different. It has a new angle, literally. Besides, it’s an entry in the Hackaday and Adafruit Pi Zero Contest .

1514291454445337873[Sean Hodgins’] acute approach is orthogonal to most of the other hubs we’ve seen. He’s mating the hub at right angles to the Zero. The hub plugs into both the on-the-go USB port and the USB power port. No extra cables or wiring needed. [Sean] plans to release the design on GitHub after his Kickstarter campaign ends. He’s supplying bare boards for those who like the smell of solder paste.

This project nicely triangulates the issues of adding a hub to the Zero. The physical connection is solid with the boards connecting via the USB connectors. Power is supplied through the hub the way the Pi expects, which means all the protections the Pi Foundation built into the onboard conditioning are left in place. This also reduces surge problems that might occur when back powering through a hub and hot swapping USB devices. Another neat feature is the notched corner leaving the HDMI port accessible. Similarly, the Pi’s GPIO pins are free of encumbrance. One drawback is the hub is fused at 2 amps, just like the Pi. It would be nice to have a little more headroom for power hungry USB devices. Maybe another 0.5 amp to allow for the Zero’s usage.

[Sean] snaps the two together after the break.

conect final

The Raspberry Pi Zero contest is presented by Hackaday and Adafruit. Prizes include Raspberry Pi Zeros from Adafruit and gift cards to The Hackaday Store!
See All the Entries || Enter Your Project Now!

Filed under: contests, Raspberry Pi

MetaFilter: Error 53

Thousands of iPhone 6 users claim they have been left holding almost worthless phones because Apple's latest operating system permanently disables the handset if it detects that a repair has been carried out by a non-Apple technician.

s mazuk: @curtainbummings another bad baby

@curtainbummings another bad baby

s mazuk: justanotherpeach: failbag: now this is my kind of content the...



now this is my kind of content

the only pig in a blanket I’ll ever need

Hackaday: A DOS Education in Your Browser

In the 1970s and 1980s, a lot of us learned to program using good old-fashioned BASIC on machines ranging from Altairs, Commodores, Apple IIs, and the like. Sometime in the 80’s the IBM PC running MSDOS because the de facto standard, but it was still easy enough to launch BASIC and write a simple little program. Of course, there were other programs, some serious like C compilers, some semi-serious like flight simulators, and some pure fun like Wolfenstein 3D.

If you read Hackaday, you’ve probably noticed that a lot of people emulate old computers–including old MSDOS PCs–using a variety of techniques, including Raspberry PI boards running DOSBox or another emulator. Honestly, though, that’s a lot of effort just to run some old software, right? You can load up DOS emulators on your desktop too. That’s a little easier, but you still have to find software. But if you are as lazy as we are, you might want to check out the MSDOS collection at

The collection has over 7,000 old MSDOS titles which is impressive. But what is fascinating is that they will all run inside your Web browser. You are two clicks away from running BASIC, Borland C, flight simulators, or even Commander Keen. Be careful, though. Some key strokes (like Control+C) may not work in the browser.

If you are really hardcore, you can even boot some old versions of Windows in your browser. Or, if you want to go further back in time, try emulating DOS in your browser and then emulating a TRS-80 under DOS. There’s even old versions of Microsoft Word and Wordperfect if you want to write blog posts old school.

If you wish to do some hardware hacking, you don’t have to do all this in the browser. There are also plenty of old computers you can emulate in your browser. There’s even a Windows 95 in a browser (see the video below).

Filed under: misc hacks Comic for 2016.02.06

New Cyanide and Happiness Comic

Computer Science: Theory and Application: Why would a program only be able to run on an Intel chipset and not an AMD chipset?

I don't understand how the chipset could make a difference in program execution.

For example, I have a Samsung 840 Pro SSD and attempted to update the firmware for it on my AMD machine. The update failed. I read online and found references to the user manual stating that the firmware updater does not work on AMD systems. I plugged my drive into an Intel PC, tried updating the firmware, and it worked. I'm happy it worked, but am really curious why a program would not work on AMD.

submitted by /u/IamCanadianAMA
[link] [comments]

Disquiet: It’s Not a “Drone” in the Military Sense

“That’s Not Me” feels like the sound design for the opening credits to a thriller — maybe a video game, likely a film, but in any case a very good thriller, indeed, packed with septuple agents and all matter of styling, technologically mediated skullduggery. The underlying pulse of the piece is a slow, methodical burr that rises up and cuts off. It’s like a contained flare, or an especially militant drone. The track, recorded by Adam Fielding, sets the pace for a growing assembly of careful additions. There’s a secondary beat that eventually arrives, the echo treateed as a rhythmic shadow, and then vaporous percussion and thick atmosphere synthesis fill in the space between those pulses.

Track originally posted at It’s part of a Bandcamp subscriber release, Apparitions, at More from Adam Fielding, who’s based in Huddersfield, England, at and

MetaFilter: My God, it's full of cake!

Crushed between two Portals pushes Valve's Source Engine to places it was probably never intended to go. (SLYT)

programming: You could have invented Parser Combinators

submitted by /u/EddieRingle
[link] [comments]

Hackaday: Very, Very Low Power Consumption

We’re pretty far away from a world full of wall-warts at this point, and the default power supply for your consumer electronics is either a microUSB cable or lithium batteries. USB ports are ubiquitous enough, and lithium cells hold enough power that these devices can work for a very long time.

USB devices are common, and batteries are good enough for most devices, not all of them. There is still a niche where& extremely long battery lifetimes are needed and tapping into mains power is impractical. Think smoke detectors and security systems here. How do power supplies work for these devices? In one of the most recent TI application notes, TI showed off their extremely low power microcontrollers with a motion detector that runs for ten years with a standard coin cell battery. This is one of those small engineering marvels that comes by every few years, astonishing us for a few minutes, and then becomes par for the course a few years down the road.

The first thing anyone should think about when designing a battery-powered device that lasts for years is battery self-discharge. You’re not going to run a battery-powered device for ten years with a AA cell; the shelf life for an Energizer AA cell is just 10 years. Add in a few nanoAmps of drain, and you’ll be lucky to make it to 2020. The difference here is a CR2032 lithium-ion coin cell. Look at the datasheet for one of these cells, and they can easily sit on a shelf for 10 years, with 90% of the rated capacity remaining.

With the correct battery in the device, you’ll need a microcontroller that runs at a sufficiently low power for it to be useful in the mid-2020s. The product for this is the CC1310, a very, very low power ARM Cortex-M3 and sub 1GHz transmitter in one package.

Once that’s settled, it’s simply a matter of putting a sensor on the board – in this case a PIR sensor – and a few analog bits triggering an interrupt occasionally. Have the microcontroller in sleep mode most of the time, and that’s how you get a low-power device with a battery that will last a decade.

Filed under: misc hacks

Instructables: exploring - featured: Homemade Fire Piston

I live in lovely Ol' Seattle. It likes to rain here tons, specially during winter, fall, and spring. When it rains, I like to dink around in the machine shop at my place of employment. I am also an avid hiker and camper, so this project fits right in with my interest. I designed and constructed a fi...
By: wartellc

Continue Reading »

Planet Haskell: servant: Announcing servant-swagger and swagger2

<section class="level2" id="swagger">


Servant is not the first project to provide a unified way of documenting APIs. There is API Blueprint, RAML, Apiary, and finally swagger. While these Web API description languages are not also web frameworks , they are generally very mature, and have some amazing tooling. For example, take a look at what swagger-ui, a client-side HTML, CSS, and JS bundle, does with your swagger API description here.

As you can see, it’s a very convenient and approachable way of exploring your API. In addition to an easily-navigable structure, you can build up requests and send them to your server, and see its responses.

But it doesn’t end there. If you have a swagger specification of your API, you can also take advantage of the large variety of languages for which you can generate a client library automatically. You don’t even need to build the Java code - you can just use the “Generate Client” button in the beautiful swagger editor.

There are a wide array of other tools that support swagger. Obviously, having access to them would be a great boon. The problem so far has been that writing and maintaining a swagger specification, that you can be sure matches your service, is hard work.

</section> <section class="level2" id="swagger2-and-servant-swagger">

swagger2 and servant-swagger

Thankfully David Johnson and Nickolay Kudasov have written two Haskell libraries, swagger2 and servant-swagger, that automate nearly all of that process for servant APIs. They use the mechanism that guides most of the servant ecosystem — interpreters for the type-level DSL for APIs that is servant — to generate a swagger spec for that API.

Let’s see how it is used; as an example, we’re going to take the Gists part of the GitHub API v3. For the purpose of this post we will ignore authentication and consider only GET requests which do not require one. Furthermore, we’ll use simplified representation for the responses (i.e. we are also ignoring some fields of the response objects).

First the imports and pragmas (this is a literate haskell file):

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeOperators #-}
module Gists where

import Control.Lens
import Data.Aeson
import Data.Aeson.Types (camelTo2)
import qualified Data.Aeson.Types as JSON
import qualified Data.ByteString.Lazy.Char8 as BL8
import Data.HashMap.Strict (HashMap)
import Data.Proxy
import Data.Swagger
import Data.Text (Text)
import Data.Time (UTCTime)
import GHC.Generics (Generic)
import Servant
import Servant.Swagger

The API:

type GitHubGistAPI
    = "users" :> Capture "username" Username :> "gists" :> QueryParam "since" UTCTime :> Get '[JSON] [Gist]
 :<|> "gists" :> GistsAPI

type GistsAPI
    = "public"  :> QueryParam "since" UTCTime :> Get '[JSON] [Gist]
 :<|> "starred" :> QueryParam "since" UTCTime :> Get '[JSON] [Gist]
 :<|> Capture "id" GistId :> GistAPI

type GistAPI
    = Get '[JSON] Gist
 :<|> Capture "sha" Revision :> Get '[JSON] Gist

api :: Proxy GitHubGistAPI
api = Proxy

Data types:

newtype Username = Username Text deriving (Generic, ToText, FromJSON)

newtype GistId = GistId Text deriving (Generic, ToText, FromJSON)

newtype SHA = SHA Text deriving (Generic, ToText)

type Revision = SHA

data Gist = Gist
  { gistId          :: GistId
  , gistDescription :: Text
  , gistOwner       :: Owner
  , gistFiles       :: HashMap FilePath GistFile
  , gistTruncated   :: Bool
  , gistComments    :: Integer
  , gistCreatedAt   :: UTCTime
  , gistUpdatedAt   :: UTCTime
  } deriving (Generic)

data OwnerType = User | Organization
  deriving (Generic)

data Owner = Owner
  { ownerLogin      :: Username
  , ownerType       :: OwnerType
  , ownerSiteAdmin  :: Bool
  } deriving (Generic)

data GistFile = GistFile
  { gistfileSize      :: Integer
  , gistfileLanguage  :: Text
  , gistfileRawUrl    :: Text
  } deriving (Generic)

FromJSON instances:

modifier :: String -> String
modifier = drop 1 . dropWhile (/= '_') . camelTo2 '_'

prefixOptions :: JSON.Options
prefixOptions = JSON.defaultOptions { JSON.fieldLabelModifier = modifier }

instance FromJSON OwnerType
instance FromJSON Owner    where parseJSON = genericParseJSON prefixOptions
instance FromJSON GistFile where parseJSON = genericParseJSON prefixOptions
instance FromJSON Gist     where parseJSON = genericParseJSON prefixOptions

So far this is what you would usually have when working with servant. Now to generate Swagger specification we need to define schemas for our types. This is done with ToParamSchema and ToSchema instances:

prefixSchemaOptions :: SchemaOptions
prefixSchemaOptions = defaultSchemaOptions { fieldLabelModifier = modifier }

instance ToParamSchema SHA
instance ToParamSchema Username
instance ToParamSchema GistId

instance ToSchema Username
instance ToSchema GistId
instance ToSchema OwnerType
instance ToSchema Owner    where declareNamedSchema = genericDeclareNamedSchema prefixSchemaOptions
instance ToSchema GistFile where declareNamedSchema = genericDeclareNamedSchema prefixSchemaOptions
instance ToSchema Gist     where declareNamedSchema = genericDeclareNamedSchema prefixSchemaOptions

These will give us a generically-derived Swagger schema (which is sort of a deterministic version of JSON Schema).

Part of the swagger2 package, Schema and ParamSchema can be quite useful in their own right if you want to e.g. respond with a schema in case of bad request bodies, or OPTIONS requests.

The next step will traverse the GitHubGistAPI, gathering information about it and swagger2 schemas to generate a Swagger value:

swaggerDoc1 :: Swagger
swaggerDoc1 = toSwagger api

Now we can generate the swagger documentation:

genSwaggerDoc1 :: IO ()
genSwaggerDoc1 = BL8.putStr $ encode swaggerDoc1

You can attach more information to your Swagger doc quite easily, using the lenses provided by swagger2:

swaggerDoc2 :: Swagger
swaggerDoc2 = swaggerDoc1
  & host ?~ ""
  & info.title .~ "GitHub Gists API"
  & info.version .~ "v3"
main :: IO ()
main = BL8.putStr $ encode swaggerDoc2

Which results in this.

There’s a lot more you can do with both servant-swagger and swagger2 — write manual ToSchema instances for more detailed information, conveniently add tags or change responses of parts of your API, use convenient lenses to modify any part of your schema, generate automatic tests, etc.

Check out the servant-swagger and swagger2 docs for more.

These two new packages vastly expand the landscape of tools within easy reach of application developers using servant. Time to explore that landscape!

On a related note, Masahiro Yamauchi has recently added Servant codegen for Swagger. So not only can you generate a swagger description for your servant server, but you can also generate the servant description from a swagger one too!

Posted on February 6, 2016 by David Johnson, Nickolay Kudasov, Julian Arni

Greater Fool – Authored by Garth Turner – The Troubled Future of Real Estate: Risk-on

NO FLIP modified

It was clear in December the feds’ new down payment rules would goose the housing market, at least in those cities where metrosexual moisters Vespa their way through lefty, over-educated lives. So, now we have proof. Starting in ten days the minimum doubles for houses over $500,000. Combined with dirt-cheap rates, this has hockey-sticked Van and the GTA, further disconnecting those two markets from the economy beneath.

You probably know the numbers. In Toronto January was extreme, especially in the soulless burbs where average prices jumped more than 20% year/year. In YVR the average detached house ended up 27% above last year’s mark, with the urban area now averaging $1.8 million. Sales volumes were ahead by a third, underscoring the little stampede that the T2 government’s announcement caused.

After all, there was no other explanation.

The Bank of Canada didn’t drop its key rate. The big chartered banks actually increased most of their mortgage costs, both fixed and variable. The dollar, oil and financial assets all took a drubbing. And the economy blew.

Proof of that lies in the unemployment numbers delivered Friday. Canada lost 5,700 net positions and Alberta was whacked. The overall jobless rate went up – it’s increased steadily over the past year while that in the US has continuously fallen. Today we have the greatest discrepancy between the labour picture in our two counties in 14 years. Meanwhile, for the first time in 28 years (back when I was a mere boy), the unemployment rate is higher in Alberta than the rest of the nation.

The country needs 1% net job growth a year just to keep up with the population increase, and we’re not there. Meanwhile joblessness in the States has dropped from more than 10% during the GFC, when we all felt superior, our dollar was at par (or above) and Yanks were losing their houses, to a mere 4.9%. The latest stats showed that growth continues unabated.

So on Friday the US dollar spiked more, driving down ours along with oil. American equities stumbled, as the likelihood of a rate increase in March bumped higher. That the cost of money will be greater in the States as 2016 progresses should be a question in nobody’s mind. It’s gonna happen. And it probably means Canadian rates won’t fall again. Maybe ever. This will be cemented by the March 22nd federal budget, set to unleash the rapacious hounds of liberal deficit spending.

The point is risk. Financial markets have just shed a ton of it, with assets like preferreds, equity ETFs and REITs cheap compared to year-ago levels. With the Fed on its resolute course higher, there’s a ton of logic in trading bonds for equities, although people already with a balanced portfolio need do nothing. The recovery’s coming to you.

So while financial assets are risk-off, real estate – at least where the prices are steaming – is pure risk-on. The foundation upon which this gossamer structure is constructed is unstable. As CIBC economist Avery Shenfeld points out, there are more job losses to come as our rocks-‘n-trees country copes with the lowest commodity prices since the Nineties. The economy’s stopped growing. And taxes are going up.

Meanwhile the signs of a market top keep piling up. Panic buying in the suburbs surrounding Toronto and Vancouver. Price surges seven and even eight times the rate of inflation. The public’s unshakeable (and false) belief foreign buyers are stealing our houses (leading to ‘buy-now-or-buy-never’.) Real estate and construction’s swelling proportion of the economy. Political pandering to house lust (check out the coming BC budget). A sharp resurgence in household debt levels. And this…


Dig out an old chart of Nortel. Or the TSX during the dot-com days. Or the NASDAQ before it lost 80% of its value. Or house values in Phoenix, prior to the collapse. They all look like the squiggles above, because they chart the same thing – human nature. We buy on euphoria. We sell in panic. The higher prices go, the more invested everyone becomes, the greater the risk.

In your heart you know this. Unless you vape.

TwitchFilm: ZAMBO DENDE Rises! Watch Marko Zaror As The Colombian Comic Book Hero In Live Action Adaptation!

As regular patrons of Fantastic Fest have known for years, Chilean martial arts star Marko Zaror is a little bit larger than life. I mean that both literally in that he's not at all a small man, and also figuratively in that he makes gravity defying flips and spins that should be impossible look positively simple. And now he gets a role as much larger than life as he is.We first reported quite a while back that Zaror had been cast to play the title role in a live action adaptation of Colombian comic book Zambo Dende, playing a hero that frees slaves from their colonial oppressors. the producers are aiming large on this with plans not only for more books but also an animated...

[Read the whole post on]

Disquiet: This Week in Sound: Swan Speakers + X-Files Music +

A lightly annotated clipping service:


The Uncanny Lake: This whimsical image is of inverted satellite dishes (with added speakers) whose design and deployment are intended to refer back to the silhouette and motion of swans. The work is an outdoor installation by Berlin-based artist Marco Barotti. So often the exposed speaker is intended to be ignored in sound art. Kudos to Barotti for making something of the form. There’s video at, which provides additional information: “Two layers of sound design consisting of bass frequencies and human breath passing through brass instruments provide them with voice and motion. Eight individual audio channels are used to transport the sound through the swans, bringing them to life and remodelling the landscape.”

THE X-FILES:  David Duchovny in the "Mulder & Scully Meet the Were-monster" episode of THE X-FILES airing Monday, Feb. 1 (8:00-9:00 PM ET/PT) on FOX.  ©2016 Fox Broadcasting Co.  Cr:  Ed Araquel/FOX

Cellphone Home: We’re now halfway through the reunion of The X-Files, and the third episode is, in my opinion, easily one of the best told and most enjoyably self-conscious episodes in the history of the show. This six-episode miniseries is clearly about the midlife crisis of Agent Mulder, whose long-held desire to believe has to, now, make due in the age of That scenario is a little disappointing because it leaves Agent Scully playing second fiddle, but Mulder’s self-doubt is more than enough to carry the show, and Scully makes a great foil for his crisis of xenobiological faith. This third episode, “Mulder and Scully Meet the Were-Monster,” casts two fine comedians, Rhys Darby (the band manager from Flight of the Conchords) and Kumail Nanjiani (one of the main programmers on Silicon Valley), in roles the least said about the better, except that the duo, along with Mulder, give Scully plenty of opportunity to marvel as the sheer ridiculousness of what life as an X-Files agent involves. Scully can get sanguine, even giggly, while Mulder seems maudlin. At one point he wakes up in a cemetery with a freshly minted hangover. His cellphone is ringing. It’s playing, of course, the theme music from The X-Files. How this meta-congruity fits into the mythology of the series is unclear, but what I really wants to know is if this ringtone is reserved only for Scully. There are three more episodes to go. Perhaps all will be revealed. What’s for sure is that the ringtone works well within the overarching self-awareness of the episode (which features Darby wearing the same hat and clothing as the hero of Kolchak: The Night Stalker, which was as much a premonition of The X-Files as The X-Files was of Fringe). The score-within-the-show cellphone moment is a reassuring reminder that, like Mulder himself is advised, the audience needs to take a deep breath and stop trying to connect the dots. At least until next week.


Basin Blues: That is a map of the Mediterranean. Despite the colors, it is not pretty. The colorful pixels are not recreational spots but locations of especially high noise density. Then again, maybe they are recreational spots as well. More importantly, the map is reportedly the first full map of “underwater noise sources” in the Mediterranean basin, the work of researchers in France, Italy, Switzerland, and the United States. The primary activity appears to be four sources: harbors, offshore activity (not just oil and gas drilling but also wind farms), seismic surveys, and military exercises. These closely map to cetacean habitats, hence the concern on the part of the researchers. The news was released as part of one of several campaigns to raise awareness. (Found via … In related news, the Telegraph reports that the noise of ocean-going ships may keep orca whales from communicating with each other.

Sonic Weapons: Via, sometimes that man-made quake sensation isn’t from fracking down below, but from something on high: “Tremors felt by residents of New Jersey Shore and Long Island today prompted speculation that an earthquake had occurred—but the US Geological Survey confirmed that the rumbling sensations were caused by a sonic boom.” Measurements over at

This first appeared in the February 2, 2016, edition of the free Disquiet “This Week in Sound” email newsletter:

TwitchFilm: Sundance 2016: The Best Of The Shorts Programs

Jeremy and I didn't get to see as many short films as we would have liked to, but of the short programs we were fortunate to catch, the following films resonated as our favorites....

[Read the whole post on]

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

Click on the arrows to get the full 360 degree experience.

I felt as impressed as everyone else did when I saw my first 360-degree video, the technology that allows viewers to “look” in any direction they wish. But most of the 360-degree videos that became popular early simply demonstrated the concept, and as much astonishment as the experience of the concept alone can generate, even more excitement came from thinking about the technology’s potential. It hasn’t taken long for 360-degree videos to look beyond virtual reality — indeed, to look all the way to virtual surreality, as envisioned by perhaps the best-known surrealist of them all, Salvador Dalí.

“Dreams of Dalí,” the 36o-degree video above, drops you into the world of Dalí’s 1935 canvas Archaeological Reminiscence of Millet’s ‘Angelus,’  an homage to an earlier work (Jean-François Millet’s painting, “The Angelus”) which enjoyed enormous popularity during Dalí’s youth. This earlier work, notes the Dalí’ Museum, was “reproduced on everything from prints and postcards to everyday objects like teacups and inkwells. The late 19th century painting depicts a peasant couple standing in a field with their heads bowed in prayer. For many it was a sentimental work, but for Dalí’ it was troubling, with layers of hidden meaning, which he explored through daydreams and fantasies.”

As the artist himself put it, “I surrendered myself to a brief fantasy during which I imagined sculptures of the two figures in Millet’s ‘Angelus’ carved out of the highest rocks.” His formidable imagination converted that mid-19th-century image of rural hardship and piety into the moonlit desert landscape through which “Dreams of Dalí” flies you. Created for “Disney and Dalí: Architects of the Imagination,” an exhibit at St. Petersburg, Florida’s Dalí Museum on the friendship and collaboration between those two visionary 20th-century world-creators (see Destino, the short film Dalí and Disney collaborated on), the video not only gives the painting a third spatial dimension, but a detailed sonic one featuring the godlike voice of Dalí himself.

If you make use of the arrows that appear in the video’s upper-left corner or click and drag (or, on smartphones, press and drag with your finger) within the frame, you can turn the “camera” in any direction. Pay close enough attention, and you’ll spot more than a few touches not included in the original painting that will nonetheless delight fans of the Dalí sensibility, not all of which you can catch on your first flight through. But as much as the experience may feel like a dream — and it counts as one of the few works to really merit the term “dreamlike” — it won’t vanish as soon as you emerge from it; you can have at it again and again, seeing something new and surprising each time.

via The Creator’s Project

Related Content:

Salvador Dalí & Walt Disney’s Destino: See the Collaborative Film, Original Storyboards & Ink Drawings

Salvador Dalí Goes to Hollywood & Creates Wild Dream Sequences for Hitchcock & Vincente Minnelli

Two Vintage Films by Salvador Dalí and Luis Buñuel: Un Chien Andalou and L’Age d’Or

The Seashell and the Clergyman: The World’s First Surrealist Film

Alfred Hitchcock Recalls Working with Salvador Dali on Spellbound

A Soft Self-Portrait of Salvador Dali, Narrated by the Great Orson Welles

A Tour Inside Salvador Dalí’s Labyrinthine Spanish Home

Salvador Dalí Illustrates Don Quixote: Two Spaniards with Unique World Views

Salvador Dalí’s Haunting 1975 Illustrations for Shakespeare’s Romeo and Juliet

Salvador Dalí Illustrates Shakespeare’s Macbeth

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

Walk Inside a Surrealist Salvador Dalí Painting with This 360º Virtual Reality Video 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.

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

Even people aged over 90 report better life satisfaction and happiness than those aged 40-59 Clearing Out Old Cells Increases Life Span of Mice by 25 Percent People who prioritise time over money are happier New data confirm that for countries worldwide long-term trends in happiness and real GDP per capita are not significantly positively related People spend too [...]

new shelton wet/dry: Orpheus with his lute made trees

News of the successful use of ether anesthesia on October 16, 1846, spread rapidly through the world. […] Incredibly, this option was not accepted by all, and opposition to the use of anesthesia persisted among some sections of society decades after its introduction. We examine the social and medical factors underlying this resistance. […] Complications [...]

OUR VALUED CUSTOMERS: Some thoughts on comic collecting...

OUR VALUED CUSTOMERS: While discussing superhero tv shows...

TwitchFilm: Sundance 2016: Wrap It Up

Sundance is all wrapped up and we've links to all of our reviews and features below plus some wrap up style questions. Check it out below. As many of you know, the Sundance 2016 experience will be remembered by the TwitchFilm family because of an event that took place after the fest. While driving home, Ben Umstead, Zach Gayne, and Jeremy Harris were in a car accident. All were sent to hospital but all are expected to make a full recovery. TwitchFilm founder Todd Brown started a GoFundMe campaign to help with their expenses. Thanks to all who have contributed and sent their well wishes. You are all a part of our TwitchFilm family. Previews Preview 1: The Narrative Competitions by Ryland Aldrich Preview 2:...

[Read the whole post on]

Open Culture: Stephen Hawking’s Lectures on Black Holes Now Fully Animated with Chalkboard Illustrations

A quick note: This week, the BBC posted the second of Stephen Hawking’s Reith Lectures focusing on Black Holes. And, once again, they’ve animated the presentation with some fun chalkboard illustrations. You can watch Part 1, “Do Black Holes Have No Hair?” here. And now Part 2, “Black Holes Ain’t as Black as They Are Painted,” above. Hawking is getting a little playful with his grammar, isn’t he? Enjoy.

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

Related Content:

Free Online Physics Courses

Psychedelic Animation Takes You Inside the Mind of Stephen Hawking

The Big Ideas of Stephen Hawking Explained with Simple Animation

Watch A Brief History of Time, Errol Morris’ Film About the Life & Work of Stephen Hawking

Stephen Hawking’s Lectures on Black Holes Now Fully Animated with Chalkboard Illustrations 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.

Perlsphere: CPAN Weekly: one module per week, in your inbox

CPAN Weekly is a mailing list for Perl 5 programmers. Each week there will be one short message sent to the list, with a brief description of a CPAN module, and example usage.

The idea is not to provide a tutorial, but just to make you aware of the module, and show one basic use case. By planting seeds in your mental Perl toolbox, hopefully next time you have certain needs you will think "oh, I read about a module for that!", rather than "I'll just write a module for that".

You can sign up at

The idea for this came while reviewing the 2015 Pull Request Challenge. A number of participants commented that an unexpected side effect of taking part in the challenge was learning a bit more about some of the modules on CPAN, and realising how many there were.

The first module will be mailed to the list in the week starting Monday 15th February.

You can help with this project: email me and let me know the modules that you consider to be hidden gems of CPAN: neil at bowers dot com.

Thanks to listbox for providing the mailing list.

CreativeApplications.Net: Facets of ‘New Making’ – Tektonics at ACT Festival

ikedaHuge stroboscopic datastreams, hypnotic human-machine choreographies, a cacophony of Korean, Japanese, English, German, and French – ten weeks ago, from November 25th to 28th 2015, an unlikely cross-cultural exchange took over the all new ACT Center in Gwangju, South Korea. More than a hundred artists, designers, curators, and educators answered our invitation to add their work and voice to the inaugural edition of ACT Festival, an opening celebration for the center’s monumental facilities.

Penny Arcade: News Post: Guardian, Definition 3

Tycho: When Gabriel told me the story, it was at once completely silly and eminently sensible.  It reminded me a little of The Mancraft Saga, insofar as they both map cyberverse and regular ‘verse at a one to one ratio. Videogames are definitely simulations and not “real” in terms of being constructed out of the typical materials we surround ourselves with.  But the virtual worlds and the people that populate them still bear all our human metadata; our brains are ridiculously compatible with these places.  Maybe it’s not weird at all that they can do…

All Content: Sundance 2016 Interview: Doron Weber of the Alfred P. Sloan Foundation


Editor's note: Sara Alexandra Pelaez is one of three recipients of the Sundance Institute's Roger Ebert Fellowship for Film Criticism for 2016. The scholarship meant she participated in the Indiewire | Sundance Institute Fellowship for Film Criticism, a workshop at the Sundance Film Festival for aspiring film critics started by Eric Kohn, the chief film critic and senior editor of Indiewire.

Gift stores almost always have a given tackiness about them, but Southwest Indian Traders, located underneath the Sundance Filmmaker Lodge on Main Street, provided a very Utah atmosphere for my conversation with Doron Weber of the Alfred P. Sloan Foundation, a group that gives a Feature Film Prize to films with science and technology as a theme. Past winners include “The Stanford Prison Experiment” and “I Origins,” and this year’s prize went to “Embrace of the Serpent.”

We both were situated on fur-lined benches (which kind of animals, I did not care to find out), encapsulated by long wooden skis and snowshoes the size of mammoth’s feet. Gazing around the lumbered mom-and-pop, I saw antique Native American carved boats suspended from the ceiling, mounted animal heads, and cheeky artisan signs that had hand painted guns on them and read “We don’t call 911.”

Mr. Weber was very candid with me, asking me questions about myself as well as giving me constructive criticism throughout the conversation. He said I was “ambitious, in the best sense of the word” at the very beginning.

I understand that your ultimate motivations here at the festival are to support and award films that creatively present science and technology in an accessible way.

That’s only half of it.

Could you explain the other half?

Well, we also support screenwriters, one through the lab and one through commissioning grants, in order to develop films ourselves that have to do with science. We have a kind of farm system, like a developmental pipeline. Sundance is one of four or five of my partners. And we might often give a grant at Sundance, then they’ll go on to making another film, and it keeps them going. And so, I say that’s as important. The public sees the film that wins the award, and that’s nice and that’s important … but it’s the new word that we’re trying to get into that pipeline and start off and encourage younger filmmakers and screenwriters to take on this subject matter. We’ve been doing it now for, like, this is our thirteenth year at Sundance, I think. And so we’ve arguably helped to move the culture a little bit towards this through funding all the film schools. I also do books, radio, theatre, all towards the same goal: to show people that science and technology are a part of modern life, and scientists, engineers, and mathematicians are human beings like me and you. And to understand the nature of their work.

Mr. Weber went on to explain the argument presented by C.P. Snow in which the languages of scientists, mathematicians, and engineers veer off into their specializations so deeply that they develop their own exclusive language. This language then becomes increasingly inaccessible to the larger group, including the humanitarians. These artists, playwrights, developers speak much more easily to the larger group, but they also never intersect with the scientists. In effect, they forget how to speak to one another, which is tragic beyond belief. His aim, with the work he does at Sundance, is trying to bring those two cultures of Shakespearians and Einsteins together, using film as a universal vehicle to reach the public.

The division is artificial, between science and art. You have to see the whole thing to see how each piece fits.

So let me see if I’m understanding you correctly; in order for you to do your job more successfully, you need to find more generalists in the world? Like finding more Renaissance individuals.

I would say my ultimate goal is to turn everyone into a version of Leonardo da Vinci.

Perfect. He saw the world holistically.

He was a great scientist and a great artist. It’s really a question of the fullest most comprehensive view of life, that’s really my personal drive. That’s what animates me in terms of what I’m doing, what animates me as a writer in my own endeavors. I’m not trying to get anyone to do anything other than to open themselves up. A lot of the stuff I do is through entertainment. I’m also a big funder of PBS documentaries, for example, which are more overtly didactic. But this effort is very much about entertainment. We want you to come, you know, for fun.

Yeah, for fun and enjoyment and to also just get people thinking. For people to walk out of the theatre with something left on their minds, and to create conversations that they probably might not have had if they had not seen a particular film. Or to contribute to a bigger conversation.

Yes, exactly.

That brings me to my inquiry, for me as an individual I very much value representation of women, and representation of diversity–

Oh, I definitely look for stories about women. I want these things to be equal, I prefer to back women directors, women writers, not just in film but in many things that I do. Because there are voices that we need to bring us back to the fuller picture. You’re missing like half the story.

I mean, women are half of the human population.

And we have a lot of projects, I’d be happy to tell you about, which are finally seeing the light of day.

Could you tell me about some?

Sure! The one I’ve been pushing the longest, over 10 years, is the Hedy Lamarr story.

Hedy Lamarr, born Hedwig Kiesler, was an Austrian-American film actress and “a brilliant technological pioneer” who was discredited for her impeccable brains for her controversial performance as the first naked woman in film. She developed ungodly technological advances for the Allies in World War II, including frequency-hopping. Frequency-hopping is one of the foundations of your modern day smartphone, and when she presented it to the Pentagon, they immediately dismissed her, as they didn't take her seriously because of her acting career. When the 1950s rolled around, they realized just how important this invention was. In good spirits towards Lamarr and her scientific advances, Doron Weber has since commissioned a book, a play, a documentary, and a four-part mini-series was optioned from the previously mentioned book. Behind the documentary are two women producers, and a woman director. Other women in science stories that Weber has been supporting through film, television, and theatre are Rosalind Franklin (x-ray crystallographer who made the discovery of the double-helix nature of DNA), Jane Goodall (primatologist best known for her five-decade study of chimpanzee interactions), Marie Curie (chemist/physicist who pioneered research on radioactivity, first woman to win the Nobel Prize, first person to win it twice), and Lisa Meitner (one of the first physicists who discovered nuclear fission in uranium).

And then there’s a book I gave a grant to called “Hidden Figures,” the story of the African-American women mathematicians who helped NASA and the US win the space race. One of those women mentioned in the book is Katherine Johnson, and she just received the Presidental Medal of Freedom from Obama in December. And now that book is going to be turned into a movie. Personally, I would even like for these stories told by women, in other words, it’d be great to have a woman director.

And a woman producer, and a woman writer.

Yeah, because the sensibility is different. And since many of these women have to overcome all kinds of prejudice, women are going to understand that better than men. Maybe not better, but differently, and we want to hear their perspective.

Now do you anticipate these films to be more narrative-driven or more nonfiction-documentary style?

Well, mostly they’re narrative-driven.

Creating more entertainment because it receives a wider audience.

Yeah, because a film can take some poetic license. If you’re more interested, you can read the book, read deeper, and then we have time to explain all the nuances.

Weber then elaborated upon his and the Foundation’s involvement with the recently released Alan Turing’s movie, “The Imitation Game,” starring Benedict Cumberbatch. The British government issued an apology because the film was coming out. This individual, Alan Turing, died in the fifties, and it took the British government 60 years to issue a public apology for how they had smeared his name and relevance. And they did it when they knew the film was coming out and there would be all this attention prodding at them. Weber cited this as an example of filmmaking having a positive impact.

In terms of your question about diversity, we want to tell more stories about women, and people of color. And it’s a challenge to find those stories, but it’s worth it. Another film I’m very fond of is a short film called “Afronauts.” It’s about the Zambian Space Academy in the 1960s, when they decided they were going to beat us to the moo and it’s told by a Ghanaian female filmmaker. It inverts our prejudices because the notion that a bunch of people thought they could, and they tried to build a rocket ship is a wonderful way of offending stereotypical assumptions. And so film and books have the capacity to bring those kinds of sensibilities. Having said that, we could still do better.

I totally agree. I’m going to go bring you to our next topic then. There are many influential individuals in the world of science on either side of the artificial intelligence debate. Elon Musk, Bill Gates, and Stephen Hawking all agree that it poses an imminent threat to mankind whereas Allen’s Artificial Intelligence Institute and Stanford University stand opposed. Can you please contribute your own stance on AI and its representations?

[Chuckles] Well, I’m not an expert, first of all, but we did just host a conference on AI at NYU, in fact. And, my view is I think the word “imminent” I would take issue with. I think artificial intelligence poses a potential risk, and so it’s worth taking time out to explore it, but I don’t think we’re on the verge of having super-intelligence come and start ruling us. Frankly, we’re not that good yet, we haven’t come close. We’re better at single task stuff. You know, when they did the Human Genome project they said that 5% of all the funding would go to looking at the ethical implications. I think anytime you get a powerful new tool, and AI is certainly a powerful new tool, the ethical and social ramifications are fundamental. And since that’s not necessarily always a scientist’s first concern, it’s important that people are exploring this. So, I welcome more debate, more discussion, as the technology evolves we should keep the conversation open. I think there are a lot of things going on now that worry me even more than the potential with AI, though it’s a completely legitimate subject to raise issues about. Also people working in AI are not as worried about it, you know.

Because it’s their field?

Because it’s their field but also we’re so far away from the super-intelligence thing. You know the scene with Hal, in “2001: A Space Odyssey”?

Yes, I watched it when I was younger, but I vaguely, vaguely remember.

It’s the one of the most famous scenes, where the astronauts are speaking, and they’re saying they’re going to need to disconnect Hal, and he’s like reading their lips and he knows what they’re saying.


So, with him having that capability, and that film was made in 1968, we still cannot technologically build something like that. Even driverless cars, which is an actual thing, I have my own questions about. Unless everyone was in a driverless car, then it would work. But as long as you have humans on the road–

There’s always human error.

Unpredictability, more so than error. By definition, technology enhances our capabilities, right? AI is another tool, and I’m completely comfortable with the questions being raised, but I think certainly we should support the research. But I also think science should always have an ethical component. There’s implications for every decision we make.

We continued to discuss other areas of our conversation thus far, about diversity, women in film, privacy issues, etc. We discussed Aziz Ansari’s Netflix series, “Master of None,” and how his second episode “Parents” affected me as a first generation American-Colombian-Arab. Weber also verbalized his colleague’s efforts to get more African-Americans, Hispanics, and Native Americans into the sciences. His efforts are more so to communicate with the percentage of people who will not be scientists and engineers, and getting them to be more comfortable with science. He then dropped the Colombian title “Embrace the Serpent” with high praise; little did I know that it would win the Alfred P. Sloan Foundation Prize that very next day. I honestly don’t know if he knew it would win either, because he articulated he was not on the jury.

It’s a beautiful film, and the committee will have discussion because it doesn’t have overt science, though underneath it it’s about the people who made that voyage ultimately wrote very scientifically important treatises on plants. See if I could support a film like that, I would love to, but for me I always have to say “Is there enough science in it?”

Yeah, absolutely that’s your defining factor. You can’t just play advocate for the sake of it.

You don’t do anyone a favor when you do that.

No, absolutely not, cause it discredits you and the Foundation and what you guys do. You are specifically looking for science-oriented films. And you know what, I don’t blame you, it’s very difficult to find those kinds of diverse stories because the matter of the fact is that throughout US history there just hasn’t been a lot of people with those kinds of stories. Systematic prejudice has disallowed people of color and other backgrounds to advance in these fields. Something that I think is really worth looking into are the astronomers from the Middle East.

Yes, they dominated the world centuries before anyone else in that field. In the Islamic world, which was in the 1200s, they were light years ahead of everybody. The thing about science is that it’s actually very democratic because anyone can overthrow authority with science. Like, tomorrow a 12-year-old kid can actually prove Einstein was wrong, and he’ll become the new Einstein. There’s nothing that is sacred in science, because it’s all about proof and evidence. If you promote science, you promote open thinking, and challenging authority. Dictatorships don’t like science. The Russians, during Stalin, they also suppressed science, because they needed to control the message.

Let’s move onto my third and final question I have lined up for you. So, would you say that virtual reality isn’t a very good standalone medium?

Well, it’s an open question. Virtual reality is exciting, huge amounts of money are going into it. So, something is going to happen, with that many people placing their bets. And Google, Amazon, everybody’s getting into the game. What I’m saying is that it’s a technology in search of its ultimate form.

Because it’s so young still?

It’s so young, and movies specifically, how they’re going to harness that. I think it’s already a powerful tool for gaming, and for individual experiences. I mean, for a five or ten-minute immersive experience of being in a Syrian camp or watching Ebola or running with an animal, those kinds of things it can do very well. But they’re almost more like special effects or single experiences.

Rather than a storyline?

Right. But I’m curious enough to explore it a little bit. See what it could do because it’s not yet clear.

This is a subject I am very optimistically predisposed towards, so when my interviewee articulated his hesitations on the medium, I was fiercely unsettled. His rationale was markedly cogent. He described to me his skepticism, especially concerning the lack of communal ambience virtual reality lacks. I cited a metaphor verbalized during the YouTube panel I had attended: you read a book as an individual but the social dimension of it is discussing it with others. To this, Weber replied that although that is true, words of a book exist visualized within our imagination and virtual reality is what the director wants you to see. You can choose within the experience where to look, but ultimately your imagination has control over that aspect only. When a book turns into a movie, someone might say about a character, “that is not at all how I pictured them” when the actor is exactly how someone else pictured them. Words are a lot more malleable in this way, and this point was disconcerting to me to say the least.

The director has created a 360-degree frame, and you can look at any part of that that you want, but it’s still only 360 degrees they’ve picked out for you. What about what’s outside of the frame? I don’t want to criticize it. VR is imaginative; it does new things. I just wouldn’t say it’s like a book.

Colossal: New 3D Calligraphy Exercises by Tolga Girgin


Istanbul-based graphic designer Tolga Girgin (previously) continues to experiment with 3D calligraphic letterforms by adding shading and photographing his pieces from just the right perspective. The effect is uncanny as the logos, words, and figures seem to curl up and hover just above the page of his sketchbook. See more by following along on Instagram.





All Content: Sundance 2016: Being American


Editor's note: Hunter Harris is one of three recipients of the Sundance Institute's Roger Ebert Fellowship for Film Criticism for 2016. The scholarship meant she participated in the Indiewire | Sundance Institute Fellowship for Film Criticism, a workshop at the Sundance Film Festival for aspiring film critics started by Eric Kohn, the chief film critic and senior editor of Indiewire.

In a June 1984 interview with the Village Voice’s Richard Goldstein, James Baldwin articulated the central drama of an American life. He and Goldstein were speaking about how Baldwin—by that time 60 years old—felt distanced from the gay subculture that was beginning to draw attention from the mainstream. “I think Americans are terrified of feeling anything,” Baldwin said. “And homophobia is simply an extreme example of the American terror that’s concerned with growing up. I never met a people more infantile in my life.”

This wasn’t an entirely new idea—Baldwin had described it well in the past, and to some extent so did de Tocqueville over a century prior, and so did Notorious B.I.G. almost a decade after Baldwin’s death. That Baldwin made this observation in an election year feels significant, since many of this year’s Sundance picks dealt in and around the same conclusion: to be an American, in the time of Donald Trump’s tantrums, “Bernie Bros,” and “Hill-figers,” is to reckon with the legacy of the erasure and ahistoricism that has always been in the soil of our nation’s identity.

With “The Birth of a Nation,” writer/director/producer/star Nate Parker achieved something magnificent. As a piece of filmmaking, his “Birth” is just above average, but, as an experience, it directly challenges the erasure of American narratives that aren’t white, straight, male, or privileged. By choosing Nat Turner (a Virginia slave preacher who led a day-long rebellion of slaves and free blacks) Parker is subverting the false notions of “Americanism” that have fashioned themselves as the norm.

“Birth of a Nation” is importantly not just a piece of American history, but cinema history too—taking D.W. Griffith’s title more than reclaims that phrase, but recasts film as an art that can grow to be not only politically correct but politically aware. The existence of “Birth” and the conditions of its production (it is, after all, a movie about a slave that doesn’t need white-saving or whitesplaining) is an attempt to move beyond an infantile avoidance of the legacy of slavery. The movie is rewriting our history of slavery by adding a story that’s never seen. At a Sundance panel at Black House, Parker said he needed an audience with empathy; what his film requires is an audience willing to take a hard, clear look at how the exclusion of Nat Turner’s legacy from the American canon is indicative of a selective consciousness that can stand the starkest cognitive dissonance: we might have voted for Obama, but we’ll still click on Trump.

The irony, then, is too great that Richard Tanne’s “Southside With You,” about the Obamas’ first date, also premiered in Park City. The parallelism is clear: “Birth” and “Southside” bookend one another in a way that’s nearly perfect. Our first image of young Obama (Parker Sawyers) is him reclined in a chair, reading Toni Morrison’s Song of Solomon, a cigarette dangling between his slender brown fingers. He might have achieved some part of Nat Turner’s dream, but he’s on his way to the larger American one. Everyone knows how this story ends (even he seems to be in on the story of his future), but watching his meet-cute with Michelle Robinson (Tika Sumpter) is like watching the earliest scenes of an American dream. When we meet them both, they’re in the beginning stages of truly recasting themselves into the power couple we know they’ll become. The American ahistoricism that allowed Nat Turner to be forgotten plays more personally in “Southside,” showing how burying an inner paternal conflict allowed Obama, the biracial outsider, to become President.

Director Chad Hartigan's “Morris From America” in some way fills in the blanks of what Tanne implies about Obama’s childhood. Morris (Markees Christmas) is a black American kid living in Germany with his father (Craig Robinson) who learns the paradigms of American identity from afar, while still thinking within them. His dad teaches him about classic hip hop that seems lot like passing down an oral history, but still he introduces his teenage crush to Jay Z. Living abroad, he’s performing America—the music, the stereotypes, the pop culture—at first for himself, and then sometimes later for his friends.

But outside of the question of how the past is ignored (as in “Birth”) or how to harness it to move forward (as in “Southside”), sometimes the old days and old transgression can’t be. Kenneth Lonergan’s “Manchester by the Sea” follows a lonely handyman trapped in the trauma of his history. The men in this movie are terrified in a way Parker’s Nat Turner and Tanne’s Barack Obama are not—for the time that Lee Chandler (Casey Affleck) and his nephew Patrick (Lucas Hedges) live together, they’re inseparable and yet couldn’t be farther apart. Every misstep feels like a collision, every long silence a fresh death. They’re too terrified to feel anything because they’re feeling everything, and all the time. Lonergan’s vision is of an American trapped in a state of arrested development, unable to erase or more forward or change.

There’s no single narrative to what it means to be an American, but an election year does give a clear take on our decision-making. The convergence of “Birth,” “Southside,” “Morris,” and “Manchester” at this festival work hard at looking at Americans who are consciously making and unmaking new and old versions of themselves, much of what an election does to our politics.

CreativeApplications.Net: Weaved. Programmable Textile – Modelling fabrics into three-dimensional structures

Still_Daniel Shechter_1.5After the experiments in physical programming in the "Traces" project we reported on last year, Dana Zelig decided to examine the possibility of adjusting the plastic to fabrics, by means of pressing them together, allowing the heat to manipulate the plastic, and the manipulated plastic to effect the adjusted fabric.

Colossal: Centriphone: A Skier Uses an iPhone and Sling to Film Dramatic ‎360° Footage of Himself While Skiing


After two years of tinkering and experimenting Swiss freeskier Nicolas Vuignier just shared a video of what he calls a centriphone, a device that works like a sling to hurl his iPhone 6 through the air while he skis down a mountain. Played back in slow motion the footage is incredible as Vuignier remains perfectly centered in a dramatic 360° loop. (via Reddit)

Saturday Morning Breakfast Cereal: Saturday Morning Breakfast Cereal - Neato!

Hovertext: The fact that I'm depressed is a consequence of a singularity billions of years ago!

New comic!
Today's News:

Michael Geist: The Trouble With the TPP, Day 25: The Treaties Within the Treaty

This week’s signing of the TPP in New Zealand provides a useful reminder that a potential ratification means committing to far more than just one (very large) trade agreement. One of the Troubles with the TPP is that the intellectual property chapter requires all countries to ratify or accede to as many as nine international IP treaties. In other words, the treaties within the treaty are a core part of the obligations that come with TPP.

Article 18.7 specifies that all countries have already ratified or acceded to three IP treaties: the Patent Cooperation Treaty, Paris Convention, and Berne Convention. More notably, there are as many as six additional treaties that must be ratified or acceded in order to ratify the TPP:

  • Protocol Relating to the Madrid Agreement Concerning the International Registration of Marks
  • Budapest Treaty on the International Recognition of the Deposit of Microorganisms for the Purposes of Patent Procedure (1977), as amended in 1980
  • International Convention for the Protection of New Varieties of Plants [MX propose: (1961) as revised in 1972, 1978 or] (1991) (UPOV Convention)
  • Singapore Treaty on the Law of Trademarks (2006)
  • WIPO Copyright Treaty
  • WIPO Performances and Phonograms Treaty

Earlier in the negotiations, the U.S. was hoping to include several more treaties including the Convention Relating to the Distribution of Programme-Carrying Signals Transmitted by Satellite (1974).

Supporters of the TPP will argue that the impact on Canada is limited since we have either already acceded to these treaties or are in the process of doing so. However, the Canadian decision to significantly alter its IP laws in compliance with these treaties reflects the broader pressures that have come from the TPP.  Absent those pressures, it is far from certain that Canada would have agreed to be bound by all of these treaties.

In fact, according to earlier leaked drafts, Canada opposed including the IP treaty obligations for much of the negotiations. In the 2013 leaked text, only the U.S. and Australia supported the treaty provision with almost the other TPP countries (Canada, Chile, New Zealand, Malaysia, Peru, Brunei, Vietnam, Japan, and Mexico) opposed. Singapore indicated that it was willing to follow the consensus.  A year later, not much had changed. The May 2014 leaked version shows that the satellite signals convention was shifted out of the mandatory list, but everything else – including the Canadian opposition – remained roughly the same. By the end of the negotiations, Canada caved on the issue and started the process of complying with multiple IP treaties, confirming yet again that the TPP has already had an impact on Canadian law well before any decision on ratification has been made.

(prior posts in the series include Day 1: US Blocks Balancing Provisions, Day 2: Locking in Digital Locks, Day 3: Copyright Term Extension, Day 4: Copyright Notice and Takedown Rules, Day 5: Rights Holders “Shall” vs. Users “May”, Day 6: Price of Entry, Day 7: Patent Term Extensions, Day 8: Locking in Biologics Protection, Day 9: Limits on Medical Devices and Pharma Data Collection, Day 10: Criminalization of Trade Secret Law, Day 11: Weak Privacy Standards, Day 12: Restrictions on Data Localization Requirements, Day 13: Ban on Data Transfer Restrictions, Day 14: No U.S. Assurances for Canada on Privacy, Day 15: Weak Anti-Spam Law Standards, Day 16: Intervening in Internet Governance, Day 17: Weak E-commerce Rules, Day 18: Failure to Protect Canadian Cultural Policy, Day 19: No Canadian Side Agreement to Advance Tech Sector, Day 20: Unenforceable Net Neutrality Rules, Day 21: U.S. Requires Canadian Anti-Counterfeiting Report Card, Day 22: Expanding Border Measures Without Court Oversight, Day 23: On Signing Day, What Comes Next?, Day 24: Missing Balance on IP Border Measures)

The post The Trouble With the TPP, Day 25: The Treaties Within the Treaty appeared first on Michael Geist.

things magazine: Bubbling Under

It’s easy to sneer at the misguided thinking behind the most elaborate way-out one-off concept cars – the recent Qatari Elibriea springs to mind – but the logic of creating a striking but improbable proposal to buoy interest in your wares is an old one. More recently there’s been Faraday Future’s single-seat electric supercar, a proof of concept but not necessarily a practical machine that will ever function as described. We yearn for the far-out visions of the recent past, like the 1970 Pussycar Automodule, a hydraulic-equipped bubble car that actually worked, regardless of how impractical it was / slightly related, a student project by Nikita Bridan exploring an alternative history for Bugatti, imagining the brand building cars right up through the 60s and 70s / sort of related: Lotus explain that their shop is a waste of money / the Art Center Archives, providing glimpses into 80 years of industrial design history / dive into the ClimateTechWiki / Engineers at War, an exhibition at the Institute of Mechanical Engineers.


Some intriguing stories told and places visited at rag-picking history, including the basements beneath Senate House, the worlds revealed by ghost streets and the street art of Phlegm (official Phlegm Site) / we like Novelty Mag / the John Bratby Retrospective includes some of his many, many portraits of notable figures of the day, often dashed off in less than an hour. See also the Mercedes he once allegedly tried to kill his mistress in / Languages of the Birds: the occult and art / music things: This Day in Matador History; Venera 4; Fred und Luna; Fornax Void / learn to play the Pianu / greenlight Jalopy, an intriguing game / Hidden Folks, another intriguing looking game / none more hip, Wes Anderson-style paper dioramas by illustrator Mar Cerdà / a short film about furniture makers Vitra.

All Content: Pride and Prejudice and Zombies


Like the novel “Pride and Prejudice and Zombies,” the movie “Pride and Prejudice and Zombies” is predicated on a simple, single gimmick: It’s “Pride and Prejudice” … with zombies. This is a vaguely amusing idea which somehow got stretched out to an entire book, which somehow became a best seller, which inevitably means it had to be made into a film.

It is essentially Jane Austen’s classic tale of social mores and machinations in 19th century England, down to characters, settings, plot points and specific bits of dialogue, only with the pesky inclusion of the undead popping up here and there to complicate matters further (authorship for the project goes cheekily to both Austen and Seth Grahame-Smith.) While the 2009 book played this genre mash-up for dry, sly laughs, writer-director Burr Steers’ film amps up the thrills and gore. And that’s a problem—not necessarily as a narrative choice, but from a technical perspective.

What differentiates “Pride and Prejudice and Zombies” from its literary source material is its big action sequences, but they’re staged, lit, shot and edited in such muddled fashion, it’s often difficult to tell what’s going on. There’s no visual context to the assaults and no way to determine their source or size, which depletes these scenes of their tension, making it impossible to become engaged. Sometimes this is intentional, as in Steers’ frequent use of blurriness right at the point of when a zombie is about to devour someone, but it doesn’t work in those instances, either. Too often, “Pride and Prejudice and Zombies” is so darkened as to be inscrutable, as in a basement scene when the Bennet sisters are bantering while sparring in preparation for the next possible attack—the women have to worry about both marrying the right man and not being eaten. 

In case it’s been a while since you read the book in high school English class: “Pride and Prejudice” centers on headstrong Elizabeth Bennet (Lily James), the second-oldest of five daughters of average means who’s not nearly so obsessed with marrying up as her mother (Sally Phillips) is. While her beautiful older sister, Jane (Bella Heathcote), becomes romantically involved with the handsome and obscenely wealthy Mr. Bingley (Douglas Booth), Lizzie enters into a love-hate relationship with Bingley’s close friend, the even more obscenely wealthy Mr. Darcy (Sam Riley). Social classes clash and sparks fly. Misunderstandings arise but eventually clear up, characters are forced to admit to both their pride and their prejudice, and everyone lives happily ever after.

In the zombified version, though, the Bennet girls have all been trained as warriors, and the social-strata element comes into play in regards to the location where that training takes place (Japan for the elite, China for everyone else). George Wickham (Jack Huston) isn’t just predatory and untrustworthy, he also might not be entirely alive. And the haughty Lady Catherine de Bourgh (a fierce, sleek Lena Headey) is the most celebrated zombie-killer of them all—with an eye patch to prove it.

Sometimes, this mixture works—mainly in the quieter, calmer moments, as when the characters sit around a drawing room cleaning their guns or one-upping each other while comparing their expertise in the deadly arts. And as the sisters dress in their finest gowns and style their hair for a ball, they also carefully slide daggers into their garters for protection. The small, deadpan moments in Steers’ script have more of an impact than the massive, noisy set pieces.

Through it all, though, James is a delight to watch as Lizzie. If you saw her last year in Kenneth Branagh’s “Cinderella,” you know how hugely appealing she can be. Here, she’s playing a very different kind of iconic figure, but in both cases there’s something pure about her screen presence that makes her seem accessible and true. And she has decent chemistry with Riley as the arrogant, abrasive Darcy—but then again, several of their key exchanges take place within the context of some sort of physical fight, either with each other or against the stumbling, mumbling undead, which detracts from their inherent romantic tension rather than enhancing it.

It’s a tricky thing to pull off, this delicate balance of tone. Very few directors could do it successfully, but it seems Steers—whose eclectic filmography ranges from “Igby Goes Down” to “17 Again” to “Charlie St. Cloud”—wasn’t quite ready to expand his repertoire this far. Maybe someone else can crack the code to the ultimate Austen mash-up when the inevitable “Sense and Sensibility and Sea Monsters” adaption comes along.

All Content: The Choice


Darling puppies, tinkling seashell wind chimes, meaningful gazebos and, as always, a drenching rainstorm that ensures the sheer top worn by the lead actress is fully soaked and see-through.

Another year, another return to the daffy romantic outpost of Sparks-landia, a place that often claims to be on the North Carolina coast but one where logic does not apply, fate is more fickle than usual and every nature shot feels like a photoshopped postcard. This fantasy oasis, of course, is based on the best-selling books by Nicholas Sparks. Much like the “Twilight” series or “50 Shades of Grey,” they will hardly be confused with the works of Virginia Woolf or Philip Roth.

Instead, they are targeted for a specific audience that finds pleasure in escaping everyday life with tales of passionate, primarily white-bread love affairs fraught with an obstacle or two that tug on heartstrings while not taxing the brain. Nothing wrong with that, says someone who has read far too many Sophie Kinsella and Jennifer Weiner books for her own good.

But what might seem innocent enough on the written page is often downright silly if insulting on the big screen. That is most certainly the case with No. 11 of these film adaptations, “The Choice,” whose greatest sin is a conclusion that totally trivializes one of the hardest decisions a family member can face. No spoiler here, but if you have seen an ad or a trailer, you can pretty much surmise what the “choice” is.

It’s always interesting to see who they recruit to helm these efforts, since they barely require an auteur’s vision. In this case, it is Ross Katz, a co-producer on two movies Oscar-nominated for Best Picture (“In the Bedroom,” “Lost in Translation”) as well as the director of HBO’s “Taking Chance.” He either drew a short straw or owes someone a favor.

Casting is often key in making this sort of branded mush at least somewhat palatable, a standard set by the “Citizen Kane” of Sparks-landia, 2004’s “The Notebook,” which showcased soon-to-be major stars and one-time, real-life couple Ryan Gosling and Rachel McAdams. But “The Choice” totally botches its central pairing, to the point where you might find yourself hoping the blandly irksome twosome fail to even get together. Whenever they indulge in sweet talk by saying to one another, “You bother me,” it’s difficult not to shake your head in agreement.

Our hero is Travis (Benjamin Walker, best known for starring in “Abraham Lincoln: Vampire Hunter”), who is first seen arriving at a hospital via a boat with a bouquet of flowers and a melancholy demeanor. Flash back seven years when he apparently was Wilmington’s most eligible bachelor, using his watercraft as a pick-up vehicle to impress the ladies. When an old high-school squeeze with goo-goo eyes swings by, he leaves his two married male buddies adrift while he goes off to a bar with her.

Yes, Travis is sort of a jerk, an assessment re-enforced by how he throws rather loud beer and BBQ parties on his front lawn for his friends and then blasts Ram Jam’s “Black Betty.” He doesn’t even try to placate his peeved yet pretty new medical-student neighbor Gabby (Aussie actress Teresa Palmer) as she huffs and puffs in disgust from her porch. But then her dog, Molly, becomes pregnant and she rudely accuses Travis’ pooch, Moby, of being the culprit—a situation that is oddly compared twice to the plot of “Dirty Dancing.” 

Turns out, Moby is neutered, Travis is a veterinarian and when he offers to help with the newborn pups, Gabby’s resistance to the boy next door begins to melt. Too bad she already has a doctor beau who is built like a human Hummer. Will he go off to a medical conference? Yup. Will Gabby and Travis stop bickering long enough to hook up? Yup. Will Travis get a well-deserved punch in the nose? You know it.

Here’s the deal. There is a moment where Gabby reveals that she believes in God and goodness to faithless Travis, yet she doesn’t hesitate to cheat on the guy who wants to marry her and have her join the family practice started by his physician father. In fact, she doesn’t even tell him about the situation until forced to do so. How can we be happy for her and Travis when she is so casually thoughtless?

Nonetheless, wedding bells will chime, children will come along and then, BAM, a bad thing will happen because this story is set in Sparks-landia. But what do you expect from a movie that uses pregnant bellies to denote the passage of time, employs cellphone messages to signal major turning points and resorts to a cheap fake-out involving a cemetery?

Before we take our leave of Sparks-landia, allow me to lament the inclusion of one cast member who has been a favorite of mine since “The Full Monty.” Every Sparks outing needs an older and presumably wiser counterpart to the more youthful lovers and, in this case, it is Tom Wilkinson as Travis’ widower dad and fellow vet. The British actor’s duties here—tending to sick lizards, gently flirting with a canine patient’s owner, overseeing a church choir’s rendition of the Joe Cocker version of “Feelin’ Alright”—barely require someone of his caliber. I was, however, puzzled by one element of Wilkinson’s performance: If Travis has such a strong good ol’ boy drawl that he practically spits out grits, why does his father sound like someone suppressing an English accent?

You, too, have a choice to make while looking for diversions this weekend. Unless you desperately want to hear the football term “take a knee” associated with a marriage proposal, seeing “The Choice” should probably not be on the list.

Colossal: Shipwrecks and Deep Ocean Scenes Encapsulated Inside Translucent Whale Sculptures


Image provided by Isana Yamada


Image provided by Isana Yamada

Japanese artist Isana Yamada' s project Samsara is composed of six translucent whales mounted on thin pedestals that give each of the sculptures an illusion of movement. The whales, illuminated from within, provide a window to strange worlds locked inside their resin-coated bodies: churning submarine volcanoes, fluffy white clouds, and even polar bear skeletons that float within. The project, staged at Tokyo University of the Arts, references the circle of existence found in Buddhist traditions with each whale displaying a separate scene. The whale that represents the human dimension contains a sunken sailboat, imagery that symbolizes a difficult voyage or plight.

Yamada’s work will also be shown in an exhibition of sculptural works at the Artcomplex Center of Tokyo from March 1st through 6th. You can see more of his work on his Facebook page here. (via My Modern Met)


Images by @muzintansaki


Image provided by Isana Yamada


Image provided by Isana Yamada


Image provided by Isana Yamada

Michael Geist: Toronto City Council Sides With CRTC in Rejecting Mayor Tory’s Support of Bell Appeal

Last month, I wrote about the battle over the future of broadband in Canada with Toronto Mayor John Tory and Ottawa Mayor Jim Watson writing to the federal cabinet to support a Bell appeal to overturn a CRTC decision designed to foster increased competition for fast fibre Internet services. On the CRTC ruling, I noted that:

The upshot of the ruling was that companies such as Bell would be required to share their infrastructure with other carriers on a wholesale basis. The companies would enjoy a profit on those wholesale connections, but the increased competition would facilitate better services, pricing, and consumer choice. Indeed, the policy approach is similar to the one used for slower DSL broadband connections that has been instrumental in creating a small but active independent ISP community that serves hundreds of thousands of Canadians.

Bell marshalled opposition to the CRTC decision, including letters from Tory and Watson. By contrast, the City of Calgary and its mayor, Naheed Nenshi, filed a lengthy submission supporting the CRTC approach.

It turns out that the Toronto and Ottawa filings were not submitted on behalf of the cities, but rather reflect personal letters from the mayors of those cities. In Toronto, the letter raised the ire of city council, which yesterday debated a motion introduced by Councillor Mike Layton to express support for a more competitive approach and the CRTC decision. The motion stated:

1.  City Council support competitive and affordable internet prices for its residents and support the CRTC decision of July, 2015 for large telecom companies to make their fibre-optic networks available to small competitors at wholesale prices.
2.  City Council forward a copy of this decision to the Minister of Innovation, Science and Economic Development, the Minister of Infrastructure and Communities, the Minister of Finance, and the Minister of Canadian Heritage.
3.  City Council request, similar to the City of Calgary, an opportunity to consult with the Minister relating to the Minister’s recommendation to the Governor-in-Council on Bell’s Petition against the CRTC decision.

The motion was passed 28-5, representing a significant rebuke to Mayor Tory, and making Toronto the second major Canadian city to have its council consider the issue and express support for the CRTC decision.

The post Toronto City Council Sides With CRTC in Rejecting Mayor Tory’s Support of Bell Appeal appeared first on Michael Geist.

programming: has published the Malware Museum, where you can run old DOS viruses

submitted by /u/awsometak
[link] [comments]

Michael Geist: The TPP, IP and Canada: My Bloomberg TV Interview

I appeared yesterday on Bloomberg Television to discuss the impact of the TPP on Canadian intellectual property law. The discussion focused on the need for consultation and to take a closer look at the provisions in the agreement.

The post The TPP, IP and Canada: My Bloomberg TV Interview appeared first on Michael Geist.

TwitchFilm: Sex, Booze And Accordions Make For A Riotous Coming Of Age In Russia's RAG UNION

Writer-director Mikhail Mestetskiy looks to inject some life into the typical coming of age story with his upcoming Rag Union, the story of a young man whose chance encounter with a group of hard drinking, hard playing, accordion wielding quasi-anarchists leads to a personal awakening.The conventions of the coming of age film are so well established that there are really no surprises in the genre any more once the basic parameters are established, leaving success or failure all down to execution and the energy cast and crew bring to things. And energy this appears to have o'plenty. Take a look below!...

[Read the whole post on]

BOOOOOOOM!: Artist Spotlight: Thomas Amerlynck


Gorgeous etchings by Brussels, Belgium-based artist Thomas Amerlynck. More images below.

BOOOOOOOM!: Artist Spotlight: Minwoo Sung


A selection of paintings by artist Minwoo Sung. More images below.

Planet Haskell: Douglas M. Auclair (geophf): January 2016 1HaskellADay Problems and Solutions

  • January 29th, 2016: Yesterday we monaded, for today's #haskell problem, we COMonad! ... with STREAMS! Oh, yeah! onesies and twosies, duplicate to our solutionseis!
  • January 28th, 2016: Today: Monads. Tomorrow? COMonads! But today's #haskell problem: monads. Todayed we Monaded! Oh, yeah!
  • January 27th, 2016: Today's #haskell problem: A Date-client! Not what you're thinking, naughty children! *scold-scold*
  • January 26th, 2016: For today's #haskell problem we create a DayOfWeek web service! Woot!
  • January 25th, 2016: Per @SirElrik idea, this week we'll do #Haskell #µservices Today's problem is to JSONify a Day -> DayOfWeek function Date, JSONified
  • January 20th, 2016: Yesterday's problem showed us MLK-day was not a trading day, but WHAT WEEK DAY WAS IT? Today's #haskell problem: The solutioneth giveth us the dayth of the weeketh!
  • January 19th, 2016: Today's #haskell problem asks: Was yesterday a #trading day? And a #haskell solution to the trading calendar? Monoids, of course!
  • January 18th, 2016: Today's #haskell problem is a mathematical conundrum concerning poetry ... yes, poetry Langston Hughes and Rob't Frost give us the solution:
  • January 15th, 2016: Yesterday was the Repeatinator2000, for today's #haskell problem we have the GAPINATOR3004!! YES! Well, we see HALF the stocks are only mentioned once. But minGaps are NOT telling! Hm. 
  • January 14th, 2016: In the sea of data we look for some repeaters for today's #haskell problem AN (H)istogram? A HISTogram? eh, whatevs. #haskell soln shows LOTS of low frequency mentions
  • January 13th, 2016: One chart to rule them all, one chart to find them, one chart to bring them all, and in the darkness bind them Big Up Chart ... in #haskell, ya! 
  • January 12th, 2016: Printing out buy/sell Orders for further analysis The charts, ... with the #haskell program that generated them:

  • January 11th, 2016: Prolog. Lists. *drops mic For the solution we represent PrologList as a difference list
  • January 8th, 2016: '$NFLX and Chili?' is today's #haskell problem What is this fascination with eating chili whilst watching movies? Case study: $NFLX a solution with several buy/sell scenarios and some open questions remaining
  • January 5th, 2016: We are Y2K16-compliance officers for today's #haskell problem
  • January 4th, 2016: Happy New Year! Today's #haskell problem looks at the World of WarCr–... Oops, I mean the World of Work-flow!

TOPLAP: IEEE VL/HCC – September 2016, Cambridge, UK

The IEEE conference on Visual Languages and Human-Centric Computing invites submissions related to live coding.

The visual languages community has been a major venue for discussion of liveness in programming since Tanimoto’s foundational work in 1990, and continues to have a major focus on liveness and live coding from an engineering and tools perspective. In 2016, VL/HCC will be co-located with the annual meeting of the Psychology of Programming Interest Group (PPIG), which often presents empirical studies and theoretical perspectives relevant to live coding. We welcome submissions on these topics.

Conference dates – 5-8 September 2016, St Catharine’s College, Cambridge.

Deadline for paper submission to VL/HCC is Friday 18 March.

Conference site –

Open Culture: “20 Rules For Writing Detective Stories” By S.S. Van Dine, One of T.S. Eliot’s Favorite Genre Authors (1928)

ss dine rules for writing detective fiction

Every generation, it seems, has its preferred bestselling genre fiction. We’ve had fantasy and, at least in very recent history, vampire romance keeping us reading. The fifties and sixties had their westerns and sci-fi. And in the forties, it won’t surprise you to hear, detective fiction was all the rage. So much so that—like many an irritable contrarian critic today—esteemed literary tastemaker Edmund Wilson penned a cranky New Yorker piece in 1944 declaiming its popularity, writing “at the age of twelve… I was outgrowing that form of literature”; the form, that is, perfected by Edgar Allan Poe, Arthur Conan Doyle, and Wilkie Collins, and imitated by a host of pulp writers in Wilson’s day. Detective stories, in fact, were in vogue for the first few decades of the 20th century—since the appearance of Sherlock Holmes and a derivative 1907 character called “the Thinking Machine,” responsible, it seems, for Wilson’s loss of interest.

Thus, when Wilson learned that “of all people,”Paul Grimstad writes, T.S. Eliot “was a devoted fan of the genre,” he must have been particularly dismayed, as he considered Eliot “an unimpeachable authority in matters of literary judgment.” Eliot’s tastes were much more ecumenical than most critics supposed, his “attitude toward popular art forms… more capacious and ambivalent than he’s often given credit for.” The rhythms of ragtime pervade his early poetry, and “in his later years he wanted nothing more than to have a hit on Broadway.” (He succeeded, sixteen years after his death.) Eliot peppered his conversation and poetry with quotations from Arthur Conan Doyle and wrote several glowing reviews of detective novels by writers like Dorothy Sayers and Agatha Christie during the genre’s “Golden Age,” publishing them anonymously in his literary journal The Criterion in 1927.

One novel that impressed him above all others is titled The Benson Murder Case by an American writer named S.S. Van Dine, pen name of an art critic and editor named Willard Huntington Wright. Referring to an eminent art historian—whose tastes guided those of the wealthy industrial class—Eliot wrote that Van Dine used “methods similar to those which Bernard Berenson applies to paintings.” He had good reason to ascribe to Van Dine a curatorial sensibility. After a nervous breakdown, the writer “spent two years in bed reading more than two thousand detective stories, during with time he methodically distilled the genre’s formulas and began writing novels.” The year after Eliot’s appreciative review, Van Dine published his own set of criteria for detective fiction in a 1928 issue of The American Magazine. You can read his “Twenty Rules for Writing Detective Stories” below. They include such proscriptions as “There must be no love interest” and “The detective himself, or one of the official investigators, should never turn out to be the culprit.”

Rules, of course, are made to be broken (just ask G.K. Chesterton), provided one is clever and experienced enough to circumvent or disregard them. But the novice detective or mystery writer could certainly do worse than take the advice below from one of T.S. Eliot’s favorite detective writers. We’d also urge you to see Raymond Chandler’s 10 Commandments for Writing Detective Fiction.

THE DETECTIVE story is a kind of intellectual game. It is more — it is a sporting event. And for the writing of detective stories there are very definite laws — unwritten, perhaps, but none the less binding; and every respectable and self-respecting concocter of literary mysteries lives up to them. Herewith, then, is a sort Credo, based partly on the practice of all the great writers of detective stories, and partly on the promptings of the honest author’s inner conscience. To wit:

1. The reader must have equal opportunity with the detective for solving the mystery. All clues must be plainly stated and described.

2. No willful tricks or deceptions may be placed on the reader other than those played legitimately by the criminal on the detective himself.

3. There must be no love interest. The business in hand is to bring a criminal to the bar of justice, not to bring a lovelorn couple to the hymeneal altar.

4. The detective himself, or one of the official investigators, should never turn out to be the culprit. This is bald trickery, on a par with offering some one a bright penny for a five-dollar gold piece. It’s false pretenses.

5. The culprit must be determined by logical deductions — not by accident or coincidence or unmotivated confession. To solve a criminal problem in this latter fashion is like sending the reader on a deliberate wild-goose chase, and then telling him, after he has failed, that you had the object of his search up your sleeve all the time. Such an author is no better than a practical joker.

6. The detective novel must have a detective in it; and a detective is not a detective unless he detects. His function is to gather clues that will eventually lead to the person who did the dirty work in the first chapter; and if the detective does not reach his conclusions through an analysis of those clues, he has no more solved his problem than the schoolboy who gets his answer out of the back of the arithmetic.

7. There simply must be a corpse in a detective novel, and the deader the corpse the better. No lesser crime than murder will suffice. Three hundred pages is far too much pother for a crime other than murder. After all, the reader’s trouble and expenditure of energy must be rewarded.

8. The problem of the crime must he solved by strictly naturalistic means. Such methods for learning the truth as slate-writing, ouija-boards, mind-reading, spiritualistic se’ances, crystal-gazing, and the like, are taboo. A reader has a chance when matching his wits with a rationalistic detective, but if he must compete with the world of spirits and go chasing about the fourth dimension of metaphysics, he is defeated ab initio.

9. There must be but one detective — that is, but one protagonist of deduction — one deus ex machina. To bring the minds of three or four, or sometimes a gang of detectives to bear on a problem, is not only to disperse the interest and break the direct thread of logic, but to take an unfair advantage of the reader. If there is more than one detective the reader doesn’t know who his codeductor is. It’s like making the reader run a race with a relay team.

10. The culprit must turn out to be a person who has played a more or less prominent part in the story — that is, a person with whom the reader is familiar and in whom he takes an interest.

11. A servant must not be chosen by the author as the culprit. This is begging a noble question. It is a too easy solution. The culprit must be a decidedly worth-while person — one that wouldn’t ordinarily come under suspicion.

12. There must be but one culprit, no matter how many murders are committed. The culprit may, of course, have a minor helper or co-plotter; but the entire onus must rest on one pair of shoulders: the entire indignation of the reader must be permitted to concentrate on a single black nature.

13. Secret societies, camorras, mafias, et al., have no place in a detective story. A fascinating and truly beautiful murder is irremediably spoiled by any such wholesale culpability. To be sure, the murderer in a detective novel should be given a sporting chance; but it is going too far to grant him a secret society to fall back on. No high-class, self-respecting murderer would want such odds.

14. The method of murder, and the means of detecting it, must be be rational and scientific. That is to say, pseudo-science and purely imaginative and speculative devices are not to be tolerated in the roman policier. Once an author soars into the realm of fantasy, in the Jules Verne manner, he is outside the bounds of detective fiction, cavorting in the uncharted reaches of adventure.

15. The truth of the problem must at all times be apparent — provided the reader is shrewd enough to see it. By this I mean that if the reader, after learning the explanation for the crime, should reread the book, he would see that the solution had, in a sense, been staring him in the face-that all the clues really pointed to the culprit — and that, if he had been as clever as the detective, he could have solved the mystery himself without going on to the final chapter. That the clever reader does often thus solve the problem goes without saying.

16. A detective novel should contain no long descriptive passages, no literary dallying with side-issues, no subtly worked-out character analyses, no “atmospheric” preoccupations. such matters have no vital place in a record of crime and deduction. They hold up the action and introduce issues irrelevant to the main purpose, which is to state a problem, analyze it, and bring it to a successful conclusion. To be sure, there must be a sufficient descriptiveness and character delineation to give the novel verisimilitude.

17. A professional criminal must never be shouldered with the guilt of a crime in a detective story. Crimes by housebreakers and bandits are the province of the police departments — not of authors and brilliant amateur detectives. A really fascinating crime is one committed by a pillar of a church, or a spinster noted for her charities.

18. A crime in a detective story must never turn out to be an accident or a suicide. To end an odyssey of sleuthing with such an anti-climax is to hoodwink the trusting and kind-hearted reader.

19. The motives for all crimes in detective stories should be personal. International plottings and war politics belong in a different category of fiction — in secret-service tales, for instance. But a murder story must be kept gemütlich, so to speak. It must reflect the reader’s everyday experiences, and give him a certain outlet for his own repressed desires and emotions.

20. And (to give my Credo an even score of items) I herewith list a few of the devices which no self-respecting detective story writer will now avail himself of. They have been employed too often, and are familiar to all true lovers of literary crime. To use them is a confession of the author’s ineptitude and lack of originality. (a) Determining the identity of the culprit by comparing the butt of a cigarette left at the scene of the crime with the brand smoked by a suspect. (b) The bogus spiritualistic se’ance to frighten the culprit into giving himself away. (c) Forged fingerprints. (d) The dummy-figure alibi. (e) The dog that does not bark and thereby reveals the fact that the intruder is familiar. (f)The final pinning of the crime on a twin, or a relative who looks exactly like the suspected, but innocent, person. (g) The hypodermic syringe and the knockout drops. (h) The commission of the murder in a locked room after the police have actually broken in. (i) The word association test for guilt. (j) The cipher, or code letter, which is eventually unraveled by the sleuth.

You can find S.S. Van Dine’s detective novels on Amazon.

Related Content:

Raymond Chandler’s Ten Commandments for Writing a Detective Novel

H.P. Lovecraft Gives Five Tips for Writing a Horror Story, or Any Piece of “Weird Fiction”

Stephen King’s Top 20 Rules for Writers

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

Open Culture: The Very First Coloring Book, The Little Folks’ Painting Book (Circa 1879)


Funny how not that long ago coloring books were considered the exclusive domain of children. How times have changed. If you are the sort of adult who unwinds with a big box of Crayolas and pages of mandalas or outlines of Ryan Gosling, you owe a debt of gratitude to the McLoughlin Brothers and illustrator Kate Greenaway.

First Coloring Book 1

Their Little Folks’ Painting Book burst onto the scene in around 1879 with such fun-to-color outline engravings as “The Owl’s Advice,” “A Flower Fairy,” and “Little Miss Pride,” each accompanied by nursery rhymes and stories. The abundance of mob caps, pinafores, and breeches are of a piece with Greenaway’s enduring takes on nursery rhymes, though grown up manual dexterity seems almost mandatory given the tiny patterns and other details.

First Coloring Book 2

Seeing as how there was no precedent, the publishers of the world’s first coloring book went ahead and filled in the frontispiece so that those tackling the other hundred drawings would know what to do. (Hint: Stay inside the lines and don’t get too creative with skin or hair color.)

First Coloring Book 3

Also note: the copy represented here has been carefully hand-colored by the previous owners, with one contributing some exuberant scribbles in pencil. See the full book, and download it in various formats, at

Related Content:

Download Free Coloring Books from World-Class Libraries & Museums: The New York Public Library, Bodleian, Smithsonian & More

The First Adult Coloring Book: See the Subversive Executive Coloring Book From 1961

Download 15,000+ Free Golden Age Comics from the Digital Comic Museum

The Very First Coloring Book, The Little Folks’ Painting Book (Circa 1879) 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.

Penny Arcade: Comic: Guardian, Definition 3

New Comic: Guardian, Definition 3 Comic for 2016.02.05

New Cyanide and Happiness Comic

Blog – free electrons: 2016 Q1 newsletter

Newsletter iconThis article was published on our quarterly newsletter.

The Free Electrons team wishes you a Happy New Year for 2016, with many new bits to enjoy in your life!

Free Electrons is happy to take this opportunity to share some news about the latest training and contribution activities of the company.

Free Electrons work on the $9 computer

As announced in our previous newsletter, Free Electrons has been working intensively on developing the low-level software support for the first $9 computer, the C.H.I.P by Next Thing Co.

Next Thing Co. has successfully delivered an initial batch of platforms in September to the early adopters, and has started shipping the final products in December to thousands of Kickstarter supporters.

Those products are using the U-Boot and Linux kernel ported by Free Electrons engineers, with numerous patches submitted to the official projects and more to be submitted in the coming weeks and months:

  • Support for the C.H.I.P platform itself, in U-Boot and in the Linux kernel;
  • Support for audio on Allwinner platforms added to the Linux kernel;
  • Development of a DRM/KMS driver for the graphics controller found on Allwinner platforms;
  • Significant research effort on finding appropriate solutions to support Multi-Level Cell NANDs in the Linux kernel;
  • Enabling of the NAND storage in Single-Level Cell mode, until the Multi-Level Cell mode can be enabled reliably;
  • Addition of NAND support in the fastboot implementation of U-Boot, which is used to reflash the C.H.I.P.

We will continue to work on the C.H.I.P over the next months, with among other things more work on the graphics side and the NAND side.

Kernel contributions

The primary focus of the majority of our customer projects remain the Linux kernel, to which we continue to contribute very significantly.

Linux 4.2

We contributed 203 patches to this release, with a new IIO driver for the ADC found on Marvell Berlin platforms, a big cleanup to the support of Atmel platforms, improvements to the DMA controller driver for Atmel platforms, a completely new driver for the cryptographic accelerator found on Marvell EBU platforms.

In this cycle, our engineer Alexandre Belloni became the official maintainer of the RTC subsystem.

See details on our contributions to Linux 4.2

Linux 4.3

We contributed 110 patches to this release, with mainly improvements to the DRM/KMS driver and DMA controller driver for Atmel platforms and power management improvements for Marvell platforms.

See details on our contributions to Linux 4.3

Linux 4.4

We contributed 112 patches to this release, the main highlights being an additional RTC driver, a PWM driver, support for the C.H.I.P platform, and improvements to the NAND support.

See details on our contributions to Linux 4.4

Work on ARM 64-bit platform

We have started to work on supporting the Linux kernel on several ARM 64 bits platforms from different vendors. We will be submitting the initial patches in the coming weeks and will progressively improve the support for those platforms throughout 2016 where a major part of our Linux kernel contribution effort will shift to ARM 64-bit.

Growing engineering team

Our engineering team, currently composed of six engineers, will be significantly expanded in 2016:

  • Two additional embedded Linux engineers will join us in March 2016 and will be working with our engineering team in Toulouse, France. They will help us on our numerous Linux kernel and Linux BSP projects.
  • An engineering intern will join us starting early February, and will work on setting up a board farm to contribute to the automated testing effort. This will help us do more automated testing on the ARM platforms we work on.

Upcoming training sessions

We have public training sessions scheduled for the beginning of 2016:

Embedded Linux development training
February 29 – March 4, in English, in Avignon (France)
Embedded Linux kernel and driver development training
March 14-18, in English, in Avignon (France)
Android system development training
March 7-10, in English, in Toulouse (France)

We also offer the following training courses, on-site, anywhere in the world, upon request:

Contact us at for details.


We participated to the Embedded Linux Conference Europe in Dublin in October 2015, and gave a number of talks:

In addition, our engineer Thomas Petazzoni was invited to the Linux Kernel Summit, an invitation-only conference for the kernel maintainers and developers. He participated to the three days event in Seoul, South Korea. See Free Electrons at the Linux Kernel Summit 2015.

At the beginning of 2016, our entire engineering team will be attending the Embedded Linux Conference in San Diego (US), which means that no less than 9 engineers from Free Electrons will be present at the conference!

Porting Linux on ARM seminar

In December 2015, we gave a half-day seminar entitled “Porting Linux on ARM” in Toulouse (France). The materials, in English, are now freely available on our web site.

BOOOOOOOM!: Animation of the Day: “Papercut” (Grey remix)


Our favourite animation of the year so far! The video for Zedd’s track “Papercut”, featuring Troye Sivan is an amazing collaboration that connects 10 different artists, each with their own unique style, into one seamless animation. Watch it now on Booooooom TV!

Computer Science: Theory and Application: CompSci Weekend SuperThread (February 05, 2016)

/r/compsci strives to be the best online community for computer scientists. We moderate posts to keep things on topic.

This Weekend SuperThread provides a discussion area for posts that might be off-topic normally. Anything Goes: post your questions, ideas, requests for help, musings, or whatever comes to mind as comments in this thread.


  • If you're looking to answer questions, sort by new comments.
  • If you're looking for answers, sort by top comment.
  • Upvote a question you've answered for visibility.
  • Downvoting is discouraged. Save it for discourteous content only.


  • It's not truly "Anything Goes". Please follow Reddiquette and use common sense.
  • Homework help questions are discouraged.
submitted by /u/AutoModerator
[link] [comments]

CreativeApplications.Net: Lull – Between order and chaos

LULL_00_aniCreated for the inaugural 'Day for Night festival' by AV&C’s Vincent Houzé, Stephen Baker and David Bianciardi, Lull is an immersive and contemplative installation that explores the liminal state between conscious and unconscious.

Quiet Earth: PRIDE AND PREJUDICE AND ZOMBIES Misfires [Review]

I don't understand the appeal of Seth Grahame-Smith's "Pride and Prejudice and Zombies." As a fan of Austen, I could never quite figure out why anyone would feel the need to mix the literary classic with the zombie apocalypse. If the goal was simply to turn Lizzie Bennet into a more independent woman, then Grahame-Smith missed the point of Austen's novel. But alas, I digress.

I had no interest in the book and just as little in the upcoming adaptation. And then the trailer happened. For a moment, I allowed myself a modicum of excitement: this might actually work!

It doesn't.

Adapted by Burr Steers who also takes on directing duties, Pride and Prejud [Continued ...]

Disquiet: Disquiet Junto Project 0214: Microtonal Errata


Each Thursday in the Disquiet Junto group on and at, 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. There’s no pressure to do every project. It’s weekly so that you know it’s there, every Thursday through Monday, when you have the time.

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

This project was posted shortly after noon, California time, on Thursday, February 4, 2016, with a deadline of 11:59pm wherever you are on Monday, February 8, 2016.

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

Disquiet Junto Project 0214: Microtonal Errata
The Assignment: Bring to the fore the distinction between two specific microtones.

Background: There’s a typo in the bible of microtones. The bible in question is Alain Danielou’s 1958 book Tableau Comparatif des Intervalles Musicaux. As reported recently by composer and critic Kyle Gann, “On the right-hand bottom corner of page 48, the interval listed as 569/512 should actually be 567/512.” We’re going to explore the sonic distinction between those two microtones.

Step 1: Choose a pitch and record three things: (a) a base pitch, (b) the mistaken microtone (569/512), and (c) the correct microtone (567/512). Here’s an example: Start with your base pitch (e.g., A440). To get the mistaken microtone, multiply the base pitch frequency by 567/512 (that is, raise the base pitch by one semitone plus 77.6 cents). To get the corrected microtone, multiply the base pitch by 569/512 (that is, one semitone plus 82.7 cents). For reference, here’s a handy conversion tool:

Step 2: Record a short piece of music employing the three tones (a, b, and c) from Step 1. Other tones are also welcome, certainly. The only request is that the emphasis in your piece should be on those three tones. The goal of the short piece should be to explore the distinction between the mistaken and correct microtones. Try this: Imagine someone reading about the errata in the Danielou book said, “What’s the big deal?” Your piece should, to the extent possible, answer that question in sound by shedding light on the gap between the two microtones.

Step 3: Upload your completed track to the Disquiet Junto group on SoundCloud.

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

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

Deadline: This project was posted in the mid-afternoon, California time, on Thursday, February 4, 2016, with a deadline of 11:59pm wherever you are on Monday, February 8, 2016.

Length: The length is up to you, though between 1 minute and 2 minutes is recommended.

Upload: Please when posting your track on SoundCloud, only upload one track for this project, 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.

Title/Tag: When adding your track to the Disquiet Junto group on, please in the title to your track include the term “disquiet0214-microtonalerrata.” Also use “disquiet0214-microtonalerrata” as a tag for your track.

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

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

More on this 214th weekly Disquiet Junto project (“The Assignment: Bring to the fore the distinction between two specific microtones”) at:

More on the Disquiet Junto at:

Join the Disquiet Junto at:

Subscribe to project announcements here:

Disquiet Junto general discussion takes place at:

The image associated with this project is from Alain Danielou’s 1958 book Tableau Comparatif des Intervalles Musicaux, found via Kyle Gann. Major thanks to Ethan Hein ( for helping word the project assignment.

CreativeApplications.Net: Phantom Power – Exoskeleton analog synthesizer

brady_phantom_1600_cCreated and performed by Yingjie Bei, Phantom Power is an exoskeleton analog synthesizer. Built as a man/machine interface instrument, the device is performed with hand gestures / screwdrivers by manipulating the circuit.

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

WALKER modified

Without mentioning Nine Eleven again (actually, never again), a few more thoughts on tax shelters, then a brief update on BucketHead, my dog.

Why you should borrow money.
Nope, not to get something venal like a vacation or hair plugs, but to put money into an RRSP before the deadline (Leap day – February 29th). Here’s how an RRSP loan works: borrow $10,000 and the bank will probably give you a cheap rate (ask for 2.75%). The lender will also provide a grace period of three or four months before a payment’s due – time for your tax refund to be processed. So, if you earn a hundred grand, you’ll be getting about $3,800 back. Use that to pay down the loan. Now you owe only $6,200, and yet have $10,000 in your plan. The interest is not deductible, but amounts to just $170 a year. Pfft.

Always marry someone richer than you…
That way they can open a spousal RRSP, since they likely have a higher income. Simply put, the person earning more contributes to a spousal instead up to their own limit and deducts that from their own taxable income. After three years the money belongs to the other person, who can withdraw it and pay less tax than the spouse saved. Presto. Income-splitting. (The spouse making the big money should do the RRSP thing while the other income, if possible, is used for TFSAs.) This works great for a mat leave, so always ensure you delay pregnancy until the maturation of the spousal plan. Click on my name for a fertility calculator.

…who has a fat pension.
Spousal plans are also a must for those hated people with juicy, government-like defined benefit pension plans. They usually have reduced RRSP room, but every sous of it should be shoved into a spousal, assuming your mate is not another pampered bureaucrat. That way you’re able to fully milk the deduction, reduce your taxable income and shift this wealth to your spouse for later enjoyment. Collapsing the RRSP in retirement will not up you into a higher tax bracket and thus further enrage your friends.

Be mindful of the Old People’s dole.
Technically it’s called CPP and OAS, but to the moisters who want the Boomers to die a slow death of starvation and polar bear baiting on an ice floe, it’s pogey. After all (they cry), why should wrinklies get free money from Ottawa when their spawn can hardly afford a first home costing $800,000? Let’s get our priorities straight! However, if you’re an old fart, or ever plan on aging in the future, understand the huge difference between an RRSP and a TFSA. The former defers tax and the latter eliminates it. So at age 71 all retirement plans turn into taxable cash or must be changed into an income-producing RRIF. That income (starting at more than 5% of the total per year) is dumped atop other earnings and can push your tax rate significantly higher. Bummer. But the same income flowing from a TFSA is not counted. No higher taxes. No clawback of the federal pogey. You can have it all. Irritating your entitled kids is just the icing.

Your mortgage & your RRSP.
Normally this is an exciting idea – making mortgage payments on your own house into your own RRSP and giving the bank the finger. But not now. Mortgages are too cheap, and an RRSP mortgage must be set up at a ‘market rate’ or the CRA will crush it. With five-year fixed loans in the 2.5% range, this is not exactly a great return, especially when you factor in the set-up and administrative costs. The loan must be admined by an arm’s-length institution. It has to be CMHC-insured. It must be lawyered. It’s a lot of work and expense to go through to make a GIC-type return. So, wait.

BUCKET HEAD modified

A number of kind people have asked about Bandit in the two weeks since my hairy beast went under the knife. He shredded the ligaments holding his knee together (it’s a common thing, sadly) leading to a Tibial Tuberosity Advancement (TTA). So now both he and I have titanium implants, which essentially makes us chick magnets.

His stitches came out today, and he’s walking like a guy with a big gun in his pocket. But the smile is back, the drugs are good and the prognosis, says his orthopaedic surgeon, is excellent. Six more weeks and he’ll be trotting perfectly, while once again looking like a cross between shag carpeting and out-of-control Q-tips.

The worst, though, is the bucket on his head, which must remain a few more days. So. Damn. Embarrassing. He resembles a satellite dish, and has learned to flip his water bowl about two feet into the air with the lip of it. All-in, that knee cost thirty-five hundred bucks. Next month he starts work at Starbucks.

BOOOOOOOM!: Artist Spotlight: Kellie Talbot


Elegiac Americana by Seattle-based artist Kellie Talbot. See more images below.

Planet Lisp: Patrick Stein: Exploring Clean Architecture

This is the first in what will likely be a series of blog posts about Clean Architecture. Uncle Bob Martin has written numerous blog posts and given lots of talks about it.

The goal of Clean Architecture is to have the directory structure of your application shout out what your application does rather than what framework was used to present your application or what database is nestled in the depths of your application. Your program is divided into Entities, Use Cases, and Interface Adapters.

Entities encapsulate “Enterprise-wide business rules.” Use Cases encapsulate “Application-specific business rules.” Interfaces and Adapters represent how your Use Cases want to interact with the outside world (e.g. databases, users, printers, etc.).

In Clean Architecture, the Entities cannot know that the Use Cases exist and the Use Cases cannot know anything about the Adapters except for the Interface to them which is defined by the Use Case rather than by the Adapter. The Use Case does not know whether the application is being used from the command-line or from the web or from a remote service calling into it. The Use Case does not know whether the data is being stored in the file system or in a relational database (or conjured from the ether as needed). Nothing in the Adapters can know anything about the Entities.

Simple Example

I have a project that I am just starting. I thought I would use this new project to see how Clean Architecture works for me.

There are large number of talks and videos about Clean Architecture. However, there are not many examples of it despite several years of Stack Overflow questions and blog posts asking for examples.

There are a few simple examples around the web. The most notable is Mark Paluch’s Clean Architecture Example. It is just big enough to get a sense of how things hang together. If you’re willing to put up with Java’s insane directory hierarchies, you can get a pretty good idea of what the application does just by poking around the Use Cases directory.

My First Use Case

My first Use Case is to let the User browse a list of Book Summaries. The User should be able to sort by Title, Author, Publication Date, or Date the Book was acquired. The User should be able to filter the list based upon Genre or Keyword. The Use Case should allow the caller to implement pagination, so the Use Case needs to support returning up to a given number of Book Summaries starting with a specific number.

Some might argue that that is multiple Use Cases glommed together. If that were the case, then I would need some way to pipeline together Use Cases if I’m going to make any sort of reasonably navigable app atop my Use Cases.

But, let’s start with baby steps.

The Simplified Version of my First Use Case

Let’s just say the User wishes to see a list of all of the Book Summaries. The User is fine with seeing all of them at once in whatever order my app sees fit.

This simple version of the Use Case is implemented in an accompanying repository under the tag the-dream.

Class Diagram (explained below)

The architecture consists of some simple structures with no “business logic” in them at all: book-summary and book.

(defstruct book-summary

(defstruct book

There is one use case browse-books which defines the use-case interface browse-books-use-case along with its input structure browse-books-request and its output structure browse-books-response. The use case defines the method browse-books which must be called with a browse-books-use-case instance, a browse-books-request instance, and browse-books-response instance.

(defstruct browse-books-request)

(defstruct browse-books-response

(defclass browse-books-use-case ()

(defgeneric browse-books (use-case request response))

In my implementation, the browse-books-response is a simple data structure. One could easily imagine that the browse-books method would return one rather than filling one in that was passed to it. In some variants of Clean Architecture (like the Paluch example cited above), the response model is a class instance upon which a method is called to complete the interaction. But, it would have to be clear from the outset that anyone using this Use Case cannot depend on it being synchronous or asynchronous.

The use case also defines the book-repository interface that it needs.

(defclass book-repository ()

(defgeneric find-book-by-isbn (book-repository isbn))
(defgeneric all-books (book-repository))

In the Paluch example, all of the use cases share the same repository interfaces (though Paluch and others have separate repository interfaces for Users and Invoices and Items). In several of Uncle Bob’s videos, he makes the claim (or claims equivalent to the claim) that each use case should define an interface for just the methods it needs to use on a Book repository. In this use case, it would need only the ability to retrieve the list of Books and so I should not have defined find-book-by-isbn here at all, and I should have named this interface browse-books-book-repository.

I wrote browse-books-impl class which extends the browse-book-use-case. It takes an instance of book-repository on construction.

(defclass browse-books-impl (browse-books-use-case)
  ((book-repository :initarg :book-repository :reader book-repository)))

(defun make-browse-books-use-case (book-repository)
  (check-type book-repository book-repository)
  (make-instance 'browse-books-impl :book-repository book-repository))

It uses that to retrieve the list of Books. Then, it creates a book-summary from each book instance retrieved from the book-repository.

(defun summarize-book (book)
  (check-type book book)
  (make-book-summary :isbn (book-isbn book)
                     :title (book-title book)
                     :author (book-author book)
                     :cover-page-thumbnail (book-cover-page-thumbnail book)))

(defmethod browse-books ((use-case browse-books-impl)
                         (request browse-books-request)
                         (response browse-books-response))
  (let* ((books (all-books (book-repository use-case)))
         (summaries (mapcar #'summarize-book books)))
    (setf (browse-books-response-list-of-book-summaries response) summaries))

To test the design so far, I wrote in-memory-book-repository backend which implements the book-repository interface that was defined in the Use Case.

(defclass in-memory-book-repository (book-repository)
  ((books :initarg :books :reader books)))

(defun make-in-memory-book-repository (books)
  (check-type books list)
  (assert (every #'book-p books))
  (make-instance 'in-memory-book-repository :books books))

(defmethod all-books ((book-repository in-memory-book-repository))
  (mapcar #'copy-book (books book-repository)))

I also wrote a console frontend which invokes the browse-books-use-case.

(defun console-browse-books ()
  (let ((request (make-browse-books-request))
        (response (make-browse-books-response)))
    (browse-books *browse-books-use-case* request response)
    (mapcar #'console-print-summary
            (browse-books-response-list-of-book-summaries response))


(defun console-main-loop ()
  (catch 'console-quit
         :do (mapc #'console-print
                      (console-eval (console-read))))))))

To tie it all together, I wrote app-context which holds the current browse-books instance.

(defvar *browse-books-use-case*)

And, I wrote the app which creates an instance of the in-memory-book-repository and creates the browse-books-impl for the app-context. Then, it runs the main loop of the console frontend.

(defun run-console-app-with-memory-db (&optional (books *book-list*))
  (let* ((book-repo (make-in-memory-book-repository books))
         (*browse-books-use-case* (make-browse-books-use-case book-repo)))

Trouble In Paradise

Already, in this simple interface, I am torn. For this Use Case, I do not need the repository to return me the list of Books. I could, instead, ask the repository to return me the list of Book Summaries. If I do that, my application is just a fig-leaf over the repository.

(defgeneric all-book-summaries (book-repository))

Well, the argument against asking the repository for Book Summaries is that it should not be up to the database to decide how I would like to have my Books summarized. That certainly seems like it should be “business logic” and probably “application specific” business logic at that.

So, fine. I will have the repository return Books and the Use Case will summarize them.

Now, let me extend the Use Case the next little bit forward. What if I want to support pagination? My choices are to push the pagination down to the repository so that I can ask it to give me up to 20 Books starting with the 40th Book. Or, I can let the repository give me all of the books and do the pagination in the Use Case.

(defstruct browse-books-request
   start max-results)

Here, I can find no guidance in any of the Clean Architecture videos that I have watched nor in the examples that I have found online. Everyone seems happy with the repositories being able to return one item given that item’s unique identifier or return all of the items.

If the repository is going to return all of the Books, then why wouldn’t my Use Case just return them all and leave the caller to do any pagination that is needed?

This works fine when there are a few dozen books and they are small. It does not scale, and I don’t know how it is supposed to scale without pushing most of the responsibility onto the repository.

(defgeneric all-books-in-range (book-repository start max-results))

Sure, I can push the responsibility onto the repository. But, one of the reasons that Clean Architecture is so structured is to allow easy testing of all of the application logic. The more that I push into the repository, the less that I actually exercise when I run my unit tests with my mock repository (and the more complex my mock repository should probably be).

One possible approach would be to have the all-books method instead be all-isbns. Then, I can retrieve all of the ISBNs and use find-book-by-isbn to get all of the books.

Now, if I want to sort by Author then by Title, I need to:

  • fetch all of the ISBNs all-isbns,
  • fetch each ISBN’s title,
  • sort my ISBNs by title,
  • fetch each ISBN’s author,
  • stable-sort my ISBNs by author,
  • clip to my range,
  • fetch each book in my range,
  • summarize each fetched book

Or, I have to write an SQL query, that can do all of that in one database call instead of 2N + R + 1 calls (where N is the number of books in the database and R is the number of books in my range), making my Use Case a fig-leaf again.

Lambda the Ultimate - Programming Languages Weblog: Temporal Higher Order Contracts

Temporal Higher Order Contracts
Tim Disney, Cormac Flanagan, Jay McCarthy

Behavioral contracts are embraced by software engineers because they document module interfaces, detect interface violations, and help identify faulty modules (packages, classes, functions, etc). This paper extends prior higher-order contract systems to also express and enforce temporal properties, which are common in software systems with imperative state, but which are mostly left implicit or are at best informally specified. The paper presents both a programmatic contract API as well as a temporal contract language, and reports on experience and performance results from implementing these contracts in Racket.

Our development formalizes module behavior as a trace of events such as function calls and returns. Our contract system provides both non-interference (where contracts cannot influence correct executions) and also a notion of completeness (where contracts can enforce any decidable, prefix-closed predicate on event traces).

This paper appears to be about a way to define (and enforce through dynamic monitoring) correctness properties of APIs by enforcing or ruling out certain orderings of function calls, such as calling a "read" method on a file descriptor after having called "close". I am personally not convinced that this specification language is a good way to solve these problems. However, the bulk of the paper is actually about giving a denotational semantics to contracts, as specifying a set of traces that the external interface of a component may expose (in a way strongly reminding of game semantics), and this feels like an important technique to reason about contracts. The exposition of this contribution is practical (based on a simple abstract machine) and accessible.

Open Culture: Download Free Coloring Books from World-Class Libraries & Museums: The New York Public Library, Bodleian, Smithsonian & More

coloring book 1

This week, from February 1 – February 4, museums and libraries worldwide are taking part in #ColorOurCollections. As part of this campaign, these institutions have made available free coloring books, letting you color artwork from their collections and then share it on Twitter and other social media platforms, using the hashtag #ColorOurCollections. At no cost, you can download coloring books from:

You can find a list of other participants on Twitter. The image above comes from The Huntington. Happy coloring.

H/T goes to Heather for making us aware of this project.

Related Content:

The First Adult Coloring Book: See the SubversiveExecutive Coloring Book From 1961

Download 15,000+ Free Golden Age Comics from the Digital Comic Museum

Read Martin Luther King and The Montgomery Story: The Influential 1957 Civil Rights Comic Book

Dr. Seuss Draws Anti-Japanese Cartoons During WWII, Then Atones with Horton Hears a Who!

Download Free Coloring Books from World-Class Libraries & Museums: The New York Public Library, Bodleian, Smithsonian & 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.

TwitchFilm: Review: THE CHOICE, Why Some People Remain Single

I am a single person who has never read a novel by Nicholas Sparks. Nor, until now, had I ever seen any of the movies based on his books. What kind of monster am I? Sparks is the Stephen King of romance novelists. By which I mean, his books are frequently adapted for the big screen, to the point that since 2012 it's become an annual event. Many fine-looking actors have given their souls sincerely to these blessed romantic events. The Choice is the latest example. In The Choice, every character is so agreeable and pleasant and kind and good-looking that it feels mean-spirited to point out that they're living in a fantasy world. Having said that, would any of the characters want to leave?...

[Read the whole post on]

The Geomblog: Making all my reviews public (and annotated): A question.

I was reading a post on G+ about a musician who keeps all her performance reviews on her website and annotates them with a response. Not to "fight back", but to add to the reviews (that are occasionally negative).

I'm very tempted to do the same thing myself with my submissions. I think this will provide more clarity about the nature of the review process, about the often honest and revealing discussions that take place behind the peer-review walls, and about how subtleties in the writing can change the perception of a work. I suspect that as a consequence I'll be more circumspect about submitting something half-baked (which might be a good thing). I'll have to be careful not to get defensive in my responses to the reviews (which is always hard). And I may not be able to get away as easily with "changing the introduction" to get a paper in (which happens shockingly often).

Of course the biggest problem will be getting my co-authors (who are often my students) to agree beforehand. So here's my question:
Would you work with me if you knew I was planning to make all my reviews public? 

Quiet Earth: Action Packed Trailer for Christian Alvart's TSCHILLER: OFF DUTY

Okay, from what I can piece together, Christian Alvart and writer Christoph Darnstädt (Das Experiment) have brought a long running German detective show called "Tatort" to the big screen in a Bourne kind of way. The first trailer for the Pandorum director's latest German genre piece has emerged and, not surprisingly, it's pretty awesome.

Warner Brotehrs is poised to release the film overseas on February 4, 2016, but I have no information on domestical releasing.

Action-packed and more elaborate than ever before, Til Schweiger plays forensic Chief Inspector Nick Tschill [Continued ...]

Colossal: Photographer Nicolas Bouvier Shoots Figures in Silhouette Against Mysterious and Foreboding Landscapes


In what could easily have been snapshots of a normal day at the beach or a hike through the woods, these photos by Nicolas Bouvier (previously) portray figures exploring the Pacific Northwest in stark, mysterious contrast. The French art director and concept designer is a master of teasing unusual scenes from breathtaking landscapes around the coast of Washington. By placing himself in foggy atmospheres and shooting against the sun, his photography turns passersby (and often images of his own children) into anonymous silhouettes. Instead of lugging around lots of equipment, Bouvier carries only a smaller and relatively inexpensive point-and-shoot Panasonic ZS40 or a Leica XVario, preferring ergonomy, simplicity, and design over more elaborate setups. You can explore more of his recent work on Flickr.









Quiet Earth: Exclusive Trailer for Exorcism Indie THE CHANNEL

Tom Lewis' exorcism indie The Channel (formerly "The Periphery") has found a distributor in Indican Pictures who plan on releasing the film in March. The film centers on a teenager who finds herself haunted after a near-death experience.

The Channel was an official selection of the Dances with Films Festival in Los Angeles, the Fright Night Film Festival in Kentucky where it won the award for "Best Supernatural Horror", the Phoenix Comic Con, and New Orleans Fandom Fest.

Following a near-death experience in a car crash, teenager Cassie Stevens finds herself haunted by a shadowy figure... something has followed her back from the other side.

As these visions escalate, Cassie discovers that everyone haunted by this specter has died. No shrink can help [Continued ...]

Saturday Morning Breakfast Cereal: Saturday Morning Breakfast Cereal - A Funny Universe

Hovertext: In order to have that one Monty Python sketch about a dead parrot, you must first invent mortality.

New comic!
Today's News:

bit-player: Number Factoids

The web sites and dish up a smorgasbord of facts about every natural number from 1 to 999,999,999,999,999. Type in your favorite positive integer (provided it’s less than 1015) and you’ll get a list of prime factors, a list of divisors, the number’s representation in various bases, its square root, and lots more.

I first stumbled upon these sites (and several others like them) about a year ago. I revisited them recently while putting together the Carnival of Mathematics. I was looking for something cute to say about the new calendar year and was rewarded with the discovery that 2016 is a triangular number: 2016 bowling pins can be arranged in an equilateral triangle with 63 pins per side.

This incident set me to thinking: What does it take to build a web site like these? Clearly, the sites do not have 999,999,999,999,999 HTML files sitting on a disk drive waiting to be served up when a visitor arrives. Everything must be computed on the fly, in response to a query. And it all has to be done in milliseconds. The question that particularly intrigued me was how the programs recognize that a given number has certain properties or is a member of a certain class—a triangular number, a square, a Fibonacci, a factorial, and so on.

I thought the best way to satisfy my curiosity would be to build a toy number site of my own. Here it is:

Number Factoids

Prime factors:
Prime number ?
Square-free number ?
Square-root-smooth number ?
Square number ?
Triangular number ?
Factorial number ?
Fibonacci number ?
Catalan number ?
Somos-4 number ?

Elapsed time:

This one works a little differently from the number sites I’ve found on the web. The computation is done not on my server but on your computer. When you type a number into the input field above, a JavaScript program running in your web browser computes the prime factors of the number and checks off various other properties. (The source code for this program is available on GitHub, and there’s also a standalone version of the Number Factoids calculator.)

Because the computation is being done by your computer, the performance depends on what hardware and software you bring to the task. Especially important is the JavaScript engine in your browser. As a benchmark, you might try entering the number 999,999,999,999,989, which is the largest prime less than 1015. The elapsed time for the computation will be shown at the bottom of the panel. On my laptop, current versions of Chrome, Firefox, Safari, and Opera give running times in the range of 150 to 200 milliseconds. (But an antique iPad takes almost 8 seconds.)

Most of that time is spent in factoring the integer (or attempting to factor it in the case of a prime). Factoring is reputed to be a hard problem, and so you might suppose it would make this whole project infeasible. But the factoring computation bogs down only with really big numbers—and a quadrillion just isn’t that big anymore. Even a crude trial-division algorithm can do the job. In the worst case we need to try dividing by all the odd numbers less than \(\sqrt{10^{15}}\). That means the inner loop runs about 16 million times—a mere blink of the eye.

Once we have the list of prime factors for a number N, other properties come along almost for free. Primality: We can tell whether or not N is prime just by looking at the length of the factor list. Square-freeness: N is square-free if no prime appears more than once in the list. Smoothness: N is said to be square-root smooth if the largest prime factor is no greater than \(\sqrt{N}\). (For example, \(12 = 2 \times 2 \times 3\) is square-root smooth, but \(20 = 2 \times 2 \times 5\) is not.)

The factor list could also be used to detect square numbers. N is a perfect square if every prime factor appears in the list an even number of times. But there are lots of other ways to detect squares that don’t require factorization. Indeed, running on a machine that has a built-in square-rooter, the JavaScript code for recognizing perfect squares can be as simple as this:

function isSquare(N) {
  var root = Math.floor(Math.sqrt(N));
  return root * root === N;

If you want to test this code in the Number Factoids calculator, you might start with 999,999,961,946,176, which is the largest perfect square less than \(10^{15}\).

Note that the isSquare function is a predicate: The return statement in the last line yields a boolean value, either true or false. The program might well be more useful if it could report not only that 121 is a square but also what it’s the square of. But the Number Factoids program is just a proof of concept, so I have stuck to yes-or-no questions.

Metafactoids: The Factoids calculator tests nine boolean properties. No number can possess all of these properties, but 1 gets seven green checkmarks. Can any other number equal this score? The sequence of numbers that exhibit none of the nine properties begins 20, 44, 52, 68, 76, 88, 92,… Are they all even numbers? (Hover for answer.)

What about detecting triangular numbers? N is triangular if it is the sum of all the integers from 1 through k for some integer k. For example, \(2016 = 1 + 2 + 3 + \dots + 63\). Given k, it’s easy enough to find the kth triangular number, but we want to work in the opposite direction: Given N, we want to find out if there is a corresponding k such that \(1 + 2 + 3 + \cdots + k = N\).

Young Carl Friedrich Gauss knew a shortcut for calculating the sums of consecutive integers: \(1 + 2 + 3 + \cdots + k = N = k\,(k+1)\,/\,2\). We need to invert this formula, solving for the value of k that yields a specified N (if there is one). Rearranging the equation gives \(k^2 + k - 2N = 0\), and then we can crank up the trusty old quadratic formula to get this solution:

\[k = \frac{-1 \pm \sqrt{1 + 8N}}{2}.\]

Thus k is an integer—and N is triangular—if and only if \(8N + 1\) is an odd perfect square. (Let’s ignore the negative root, and note that if \(8N + 1\) is a square at all, it will be an odd one.) Detecting perfect squares is a problem we’ve already solved, so the predicate for detecting triangular numbers takes this simple form:

function isTriangular(N) {
  return isSquare(8 * N + 1);

Try testing it with 999,999,997,764,120, the largest triangular number less than \(10^{15}\).

Factorials are the multiplicative analogues of triangular numbers: If N is the kth factorial, then \(N = k! = 1 \times 2 \times 3 \times \cdots \times k\). Is there a multiplicative trick that generates factorials in the same way that Gauss’s shortcut generates triangulars? Well, there’s Stirling’s approximation:

\[k! \approx \sqrt{2 \pi k} \left( \frac{k}{e} \right)^k.\]

We might try to invert this formula to get a function of \(k!\) whose value is \(k\), but I don’t believe this is a promising avenue to explore. The reason is that Stirling’s formula is only an approximation. It predicts, for example, that 5! is equal to 118.02, whereas the true value is 120. Thus taking the output of the inverse function and rounding to the nearest integer would produce wrong answers. We could add correction terms to get a closer approximation—but surely there’s a better way.

One approach is to work with the gamma (\(\Gamma\)) function, which extends the concept of a factorial from the integers to the real and complex numbers; if \(n\) is an integer, then \(\Gamma(n+1) = n!\), but the \(\Gamma\) function also interpolates between the factorial values. A recent paper by Mitsuru Uchiyama gives an explicit, analytic, inverse of the gamma function, but I understand only fragments of the mathematics, and I don’t know how to implement it algorithmically.

Fifteen years ago David W. Cantrell came up with another inverse of the gamma function, although this one is only approximate. Cantrell’s version is much less intimidating, and it is based on one of my favorite mathematical gadgets, the Lambert W function. A Mathematica implementation of Cantrell’s idea works as advertised—when it is given the kth factorial number as input, it returns a real number very close to \(k+1\). However, the approximation is not good enough to distinguish true factorials from nearby numbers. Besides, JavaScript doesn’t come with a built-in Lambert W function, and I am loath to try writing my own.

On the whole, it seems better to retreat from all this higher mathematics and go back to the definition of the factorial as a product of successive integers. Then we can reliably detect factorials with a simple linear search, expressed in the following JavaScript function:

function isFactorial(N) {
  var d = 2, q = N, r = 0;
  while (q > 1 && r === 0) {
    r = q % d;
    q = q / d;
    d += 1;
  return (q === 1 && r === 0);

A factorial is built by repeated multiplication, so this algorithm takes it apart by repeated division. Initially, we set \(q = N\) and \(d = 2\). Then we replace \(q\) by \(q / d\), and \(d\) by \(d + 1\), while keeping track of the remainder \(r = q \bmod d\). If we can continue dividing until \(q\) is equal to 1, and the remainder of every division is 0, then N is a factorial. This is not a closed-form solution; it requires a loop. On the other hand, the largest factorial less than \(10^{15}\) is 17! = 355,687,428,096,000, so the program won’t be going around the loop more than 17 times.

The Fibonacci numbers are dear to the hearts of number nuts everywhere (including me). The sequence is defined by the recursion \(F_0 = 0, F_1 = 1, F_k = F_{k-1} + F_{k-2}\). How best to recognize these numbers? There is a remarkable closed-form formula, named for the French mathematician J. P. M. Binet:

\[F_k = \frac{1}{\sqrt{5}} \left[ \left(\frac{1 + \sqrt{5}}{2}\right)^k - \left(\frac{1 - \sqrt{5}}{2}\right)^k\right]\]

I call it remarkable because, unlike Stirling’s approximation for factorials, this is an exact formula; if you give it an integer k and an exact value of \(\sqrt{5}\)), it returns the kth Fibonacci number as an integer.

One afternoon last week I engaged in a strenuous wrestling match with Binet’s formula, trying to turn it inside out and thereby create a function of N that returns k if and only if \(N\) is the kth Fibonacci number. With some help from Mathematica I got as far as the following expression, which gives the right answer some of the time:

\[k(N) = \frac{\log \frac{1}{2} \left( \sqrt{5 N^2 + 4} - \sqrt{5} N \right)}{\log \frac{1}{2} \left( \sqrt{5} - 1 \right)}\]

Plugging in a few values of N yields the following table of values for \(k(N)\):

N k(N)
1 2.000000000000001
2 3.209573979673092
3 4.0000000000000036
4 4.578618254581733
5 5.03325648737724
6 5.407157747499656
7 5.724476891770392
8 6.000000000000018
9 6.243411773788614
10 6.4613916654135615
11 6.658737112471047
12 6.8390081849422675
13 7.00491857188792
14 7.158583717787527
15 7.3016843734535035
16 7.435577905992959
17 7.561376165404197
18 7.680001269357004
19 7.792226410280063
20 7.8987062604216005
21 7.999999999999939

In each of the green rows, the function correctly recognizes a Fibonacci number \(F_k\), returning the value of k as an integer. (Or almost an integer; the value would be exact if we could calculate exact square roots and logarithms.) Specifically, 1 is the second Fibonacci number (though also the first), 3 is the fourth, 8 is the sixth, and 21 is the eighth Fibonacci number. So far so good. But there’s something weird going on with the other Fibonacci numbers in the table, namely those with odd-numbered indices (red rows). For N = 2, 5, and 13, the inverse Binet function returns numbers that are close to the correct k values (3, 5, 7), but not quite close enough. What’s that about?

If I had persisted in my wrestling match, would I have ultimately prevailed? I’ll never know, because in this era of Google and MathOverflow and StackExchange, a spoiler lurks around every cybercorner. Before I could make any further progress, I stumbled upon pointers to the work of Ira Gessel of Brandeis, who neatly settled the matter of recognizing Fibonacci numbers more than 40 years ago, when he was an undergraduate at Harvard. Gessel showed that N is a Fibonacci number iff either \(5N^2 + 4\) or \(5N^2 - 4\) is a perfect square. Gessel introduced this short and sweet criterion and proved its correctness in a problem published in The Fibonacci Quarterly (1972, Vol. 10, No. 6, pp. 417–419). Phillip James, in a 2009 paper, presents the proof in a way I find somewhat easier to follow.

It is not a coincidence that the expression \(5N^2 + 4\) appears in both Gessel’s formula and in my attempt to construct an inverse Binet function. Furthermore, substituting Gessel’s \(5N^2 - 4\) into the inverse function (with a few other sign adjustments) yields correct results for the odd-indexed Fibonacci numbers. Implementing the Gessel test in JavaScript is a cinch:

function gessel(N) {
  var s = 5 * N * N;
  return isSquare(s + 4) || isSquare(s - 4);

So that takes care of the Fibonacci numbers, right? Alas, no. Although Gessel’s criterion is mathematically unassailable, it fails computationally. The problem arises from the squaring of \(N\). If \(N\) is in the neighborhood of \(10^{15}\), then \(N^2\) is near \(10^{30}\), which is roughly \(2^{100}\). JavaScript does all of its arithmetic with 64-bit double-precision floating-point numbers, which allow 53 bits for representing the mantissa, or significand. With values above \(2^{53}\), not all integers can be represented exactly—there are gaps between them. In this range the mapping between \(N\) and \(N^2\) is no longer a bijection (one-to-one in both directions), and the gessel procedure returns many errors.

I had one more hope of coming up with a closed-form Fibonacci recognizer. In the Binet formula, the term \(((1 - \sqrt{5})\,/\,2)^k\) becomes very small in magnitude as k grows large. By neglecting that term we get a simpler formula that still yields a good approximation to Fibonacci numbers:

\[F_k \approx \frac{1}{\sqrt{5}} \left(\frac{1 + \sqrt{5}}{2}\right)^k.\]

For any integer k, the value returned by that expression is within 0.5 of the Fibonacci number \(F_k\), and so simple rounding is guaranteed to yield the correct answer. But the inverse function is not so well-behaved. Although it has no \(N^2\) term that would overflow the 64-bit format, it relies on square-root and logarithm operations whose limited precision can still introduce errors.

So how does the Factoids calculator detect Fibonacci numbers? The old-fashioned way. It starts with 0 and 1 and iterates through the sequence of additions, stopping as soon as N is reached or exceeded:

function isFibo(N) {
  var a = 0, b = 1, tmp;
  while (a < N) {
    tmp = a;
    a = b;
    b = tmp + b;
  return a === N;

As with the factorials, this is not a closed-form solution, and its computational complexity scales in linear proportion to N rather than being constant regardless of N. There are tricks for speeding it up to \(\log N\); Edsger Dijkstra described one such approach. But optimization hardly seems worth the bother. For N < \(10^{15}\), the while loop cannot be executed more than 72 times.

I’ve included two more sequences in the Factoids calculator, just because I’m especially fond of them. The Catalan numbers (1, 1, 2, 5, 14, 42, 132, 429…) are famously useful for counting all sorts of things—ways of triangulating a polygon, paths through the Manhattan street grid, sequences of properly nested parentheses. The usual definition is in terms of binomial coefficients or factorials:

\[C_k = \frac{1}{k+1} \binom{2k}{k} = \frac{(2k)!}{(k+1)! k!}\]

But there is also a recurrence relation:

\[C_0 = 1,\qquad C_k = \frac{4k-2}{k+1} C_{k-1}\]

The recognizer function in the Factoids Calculator does a bottom-up iteration based on the recurrence relation:

function isCatalan(N) {
  var c = 1, k = 0;
  while (c < N) {
    k += 1;
    c = c * (4 * k - 2) / (k + 1);
  return c === N;

The final sequence in the calculator is one of several discovered by Michael Somos around 1980. It is defined by this recurrence:

\[S_0 = S_1 = S_2 = S_3 = 1,\qquad S_k = \frac{S_{k-1} S_{k-3} + S_{k-2}^2}{S_{k-4}}\]

The surprise here is that the elements of the sequence are all integers, beginning 1, 1, 1, 1, 2, 3, 7, 23, 59, 314, 1529, 8209. In writing a recognizer for these numbers I have made no attempt to be clever; I simply generate the sequence from the beginning and check for equality with the given N:

function isSomos(N) {
  var next = 1, S = [1, 1, 1, 1];
  while (next < N) {
    next = (S[3] * S[1] + S[2] * S[2]) / S[0];
  return next === N;

But there’s a problem with this code. Do you see it? As N approaches the \(10^{15}\) barrier, the subexpression S[3] * S[1] + S[2] * S[2] will surely break through that barrier. In fact, the version of the procedure shown above fails for 32,606,721,084,786, the largest Somos-4 number below \(10^{15}\). For the version of the program that’s actually running in the Factoids calculator I have repaired this flaw by rearranging the sequence of operations. (For details see the GitHub repository.)

The factorial, Fibonacci, Catalan, and Somos sequences all exhibit exponential growth, which means they are sprinkled very sparsely along the number line. That’s why a simple linear search algorithm—which just keeps going until it reaches or exceeds the target—can be so effective. For the same reason, it would be easy to precompute all of these numbers up to \(10^{15}\) and have the JavaScript program do a table lookup. I have ruled out this strategy for a simple reason: It’s no fun. It’s not sporting. I want to do real computing, not just consult a table.

Other number series, such as the square and triangular numbers, are more densely distributed. There are more than 30 million square and triangular numbers up to \(10^{15}\); downloading a table of that size would take longer than recomputing quite a few squares and triangulars. And then there are the primes—all 29,844,570,422,669 of them.

What would happen if we broke out of the 64-bit sandbox and offered to supply factoids about larger numbers? A next step might be a Megafactoids calculator that doubles the digit count, accepting integers up to \(10^{30}\). Computations in this system would require multiple-precision arithmetic, capable of handling numbers with at least 128 bits. Some programming languages offer built-in support for numbers of arbitrary size, and libraries can add that capability to other languages, including JavaScript. Although there is a substantial speed penalty for extended precision, most of the algorithms running in the Factoids program would still give correct results in acceptable time. In particular, there would no problem recognizing squares and triangulars, factorials, Fibonaccis, Catalans and Somos-4 numbers.

The one real problem area in a 30-digit factoid calculator is factoring. Trial division would be useless; instead of milliseconds, the worst-case running time would be months or years. However, much stronger factoring algorithms have been devised in the past 40 years. The algorithm that would be most suitable for this purpose is called the elliptic curve method, invented by Hendrik Lenstra in the 1980s. An implementation of this method built into PARI/GP, which in turn is built into Sage, can factor 30-digit numbers in about 20 milliseconds. A JavaScript implementation of the elliptic curve method seems quite doable. Whether it’s worth doing is another question. The world is not exactly clamoring for more and better factoids.

Addendum 2016-02-05: I’ve just learned (via Hacker News) that I may need to add a few more recognition predicates: detectors for “artisanal integers” in flavors hand-crafted in the Mission District, Brooklyn, and London.

Colossal: One-of-Kind Wool Rug Artworks by Alexandra Kehayoglou Mimic Rolling Pastures and Mossy Textures


Using scraps leftover thread from her family’s carpet factory in Buenos Aires, artist Alexandra Kehayoglou embarks on a laborious hand-tufting process to fabricate wool carpets and rugs that mimic natural textures like moss, water, trees, and pastures. The carpets balance form and function and can powerfully transform an entire room into a lush meadow dotted with pools of water and tufts of grass. Many of her works even function as part tapestry and flow from walls to floor, or work as covers for chairs or stools.

You can find more of Kehayoglou’s carpet creations on Instagram, Artsy, and on her website. (via Faith is Torment)











Michael Geist: The Trouble With the TPP, Day 24: Missing Balance on IP Border Measures

The day after Canada signed the TPP (and a Leger poll found huge opposition to the agreement’s IP and ISDS provisions), the shift toward consultation and study can continue in earnest. Chrystia Freeland, Canada’s Minister of International Trade, used the signing to emphasize once again that signing is not the same as ratifying and that the government is committed to a robust Parliamentary and public review of the agreement.

The Trouble with the TPP series continues today with another example of the lack of balance in the text. An earlier post noted how in the TPP  rights holders’ provision are often mandatory, while those for users are treated as optional. The lopsided approach is also evident in the border measures rules. This week I discussed the expansion of border measures provisions without court oversight, which could lead to customs officials being asked to make difficult legal assessments on whether to detain goods entering the country.

Canadian law currently includes several safeguards to mitigate the risk of detention for importers and other businesses. Given the possibility that detention can be used by competitors to delay entry of legitimate goods into the country, limitations are an important part of any legislative package. For example, Canadian law limits detention periods in the Copyright Act:

Subject to subsection (3), the customs officer shall not detain, for the purpose of enforcing section 44.01, the copies for more than 10 working days –  or, if the copies are perishable, for more than five days -  after the day on which the customs officer first sends or makes available a sample or information to the copyright owner under subsection (1). At the request of the copyright owner made while the copies are detained for the purpose of enforcing section 44.01, the customs officer may, having regard to the circumstances, detain non-perishable copies for one additional period of not more than 10 working days.

Similarly, Canadian law allows for damages against the copyright owner who commenced proceedings if they are dismissed or discontinued, recognizing the potential harm to a legitimate business:

The court may award damages against the owner of copyright who commenced proceedings referred to in subsection 44.04(3) to the owner, importer, exporter or consignee of the copies who is a party to the proceedings for losses, costs or prejudice suffered as a result of the detention of the copies if the proceedings are dismissed or discontinued.

These safeguards are consistent with provisions found in the TRIPS Agreement, but are not included in the TPP. In fact, Kim Weatherall identifies seven TRIPS border measures balancing provisions that are not found in the TPP.

Proponents of the TPP will argue that there is nothing to stop TPP countries from adding these safeguards to their national laws (as Canada has done in some instances). Yet the benefits of the treaty are supposed to provide Canadian businesses with consistent rules and protections when they sell into other TPP markets. Without mandated safeguards, Canadian exporters face the prospect of unbalanced border measures when they sell IP-related products into the rest of the TPP.  As with copyright and patents, the TPP rules move in one direction: more restrictions and few enforceable safeguards or limitations to ensure a balanced legal framework.

(prior posts in the series include Day 1: US Blocks Balancing Provisions, Day 2: Locking in Digital Locks, Day 3: Copyright Term Extension, Day 4: Copyright Notice and Takedown Rules, Day 5: Rights Holders “Shall” vs. Users “May”, Day 6: Price of Entry, Day 7: Patent Term Extensions, Day 8: Locking in Biologics Protection, Day 9: Limits on Medical Devices and Pharma Data Collection, Day 10: Criminalization of Trade Secret Law, Day 11: Weak Privacy Standards, Day 12: Restrictions on Data Localization Requirements, Day 13: Ban on Data Transfer Restrictions, Day 14: No U.S. Assurances for Canada on Privacy, Day 15: Weak Anti-Spam Law Standards, Day 16: Intervening in Internet Governance, Day 17: Weak E-commerce Rules, Day 18: Failure to Protect Canadian Cultural Policy, Day 19: No Canadian Side Agreement to Advance Tech Sector, Day 20: Unenforceable Net Neutrality Rules, Day 21: U.S. Requires Canadian Anti-Counterfeiting Report Card, Day 22: Expanding Border Measures Without Court Oversight, Day 23: On Signing Day, What Comes Next?)

The post The Trouble With the TPP, Day 24: Missing Balance on IP Border Measures appeared first on Michael Geist.

New Humanist Blog: Battling frog extinction, the protein puzzle, and the Nobel Prize for Physics

Chemistry, Biology, Physics: Three scientists talk through big recent developments in their fields.

New Humanist Blog: The trouble with "one per cent feminism"

A Q&A with Dawn Foster, author of a new book that challenges corporate feminism.

Planet Lisp: Zach Beane: Lisp and WebAssembly

Douglas Crosher, who did lots of work on CMUCL and created the commercial Scieneer Common Lisp, has been trying to make WebAssembly friendlier to Lisp. It hasn’t been easy. Even minor changes are getting pushed back. See his email to SBCL-devel for some of the details, and how to help.

BOOOOOOOM!: Illustrator Spotlight: Thomas Danthony


A selection of works by London-based illustrator Thomas Danthony. More images below.

OCaml Planet: Dario Teixeira: Library authors: Don't forget the examples!

These are exciting times in the OCaml community. Compiler development is proceeding at a brisk pace, with several long-awaited features on the horizon (flambda, multicore, and modular implicits, just to name a few). The tooling has also improved dramatically in the past few years, making the time before OPAM and Merlin seem like a very distant and best forgotten dark age. Moreover, the community has grown to the point where it is very likely that you will find a library that tackles your particular needs, whatever they may be. Some pain points remain, however. In this post I'll address a particularly frustrating one: the issue of library documentation (or lack thereof). Frustrating not only because it is endemic to our community, but also because it can be mitigated with minimal burden to library authors.

Ideally, a library's documentation would consist of an introductory tutorial garnished with multiple examples, plus the API reference. While the latter is indisputably useful, for libraries with a large surface API it is not enough. In such cases, users faced solely with the API reference are likely to scratch their heads wondering where to begin and how the various pieces fit together. The API reference only becomes useful once users have built a proper mental model of the library, which is a lot easier to do after reading through a tutorial.

Unfortunately, if a project includes any documentation at all, it is very likely that consists solely of the API reference rather than a tutorial. The reason is fairly obvious to any developer: the API reference sits right there in the code (in the mli file, usually), and imposes a minimal burden in creation and maintenance. Writing a tutorial, on the other hand, is a whole extra task that robs time away from the actual coding. It's also not as fun.

There is however a middle ground between writing a full-fledged tutorial and not writing one at all. Moreover, it's a middle ground that imposes minimal inconvenience to developers while providing tremendous value to users. I'm talking about simply including some usage examples with your library.

What makes examples so special? Foremost, a good example provides one of the critical advantages of a tutorial: condensing a large API into a concrete starting point. Consider the case of Cohttp, which offers a relatively large API further complicated by the need to support both Lwt and Async backends. Despite this, getting started with Cohttp is actually fairly easy because it includes a couple of trivial examples. Any OCaml developer can look at the half-dozen lines of each example and immediately build a mental model of how the Cohttp library is structured.

Besides the advantages they bring to users, examples are not very burdensome to developers. For one, they can be derived from private examples used in testing. Moreover, it's fairly trivial to keep examples up-to-date with the latest library API, because in most cases you can rely on the compiler doing the heavy lifting of verifying that the example is still valid. All in all, there is an asymmetry at play: a minimal effort on the developer's part will make a tremendous difference to users. Therefore, my plea to OCaml library developers is to please include examples with your libraries!

Now that (hopefully) I've convinced you to exemplify your libraries, you should also consider a few common sense rules for maximising the effectiveness of examples:

  • Place your examples in a directory named examples. This is the de facto standard in the OCaml community.

  • Start simple, even if the example is dummy. Resist the temptation to demonstrate all the awesome features of your library in a single example.

  • Fully qualify identifiers. In other words, avoid global opens and over-using custom operators. Also, note that parenthesised local opens (the Module.(expr) syntax) are preferable to global opens anyway. And if you insist on showing off the powers of conciseness afforded by your library, please consider having two versions of the same example: one using full qualification, and one without.

  • Order your examples. Suppose you have a sundry collection of examples. Simply number them from the simplest to the more complex. Otherwise, users are faced with a directory full of examples, without knowing where to start. (This is the approach I have chosen for the examples for the Lambdoc library.)

  • Include a Makefile or build instructions for the examples, particularly if the building process is not obvious.

  • Keep your examples up-to-date.

Perlsphere: Perl 6 Release Goals: Final Grant Report

Jonathan Worthington writes:

I applied for a third and final extension of my Perl 6 Release Goals grant, which was published for comments in December and subsequently approved. The final extension granted a further 110 hours of work, which I completed prior to the Christmas release of Perl 6. This report covers the work that was done under this extension, and concludes with some final comments on the grant as a whole.

I'd like to start with a small note on timing. In November, I worked almost exclusively on Perl 6. Around the middle of the month, I had exhausted all of the hours that had been assigned in the previous grant extension. The general understanding on Perl 6 Core Development Fund grants is that I may - at my own risk - go ahead and continue with work that needs doing, in hope that a grant extension application will be approved. I did this, concurrent with writing up a report on what was achieved and requesting the extension. Thus, I didn't actually endure a sleepless week or two in December completing the hours in the final grant extension - as was speculated in one comment! Rather, the extension covered all of my December work, as well work in the later parts of November.

Numerous issues were resolved during the hours provided by this final grant extension:

  • Supplies, the Perl 6 API for asynchronous streams of data, got a design cleanup. The API was good overall, but several corners of it were suboptimal both from a language design and safety point of view, as well as from an optimizability perspective.
  • Some API design issues around async sockets and processes, as well as with Promise combinators, were resolved. The CLOSE phaser was added to supply blocks to facilitate resource management, and the whenever syntax came to support channels as well as promises and supplies. This meant that the earliest block syntax, which I've never been entirely happy with, could go away. Finally, a couple of other concurrency bugs were resolved.
  • A number of important I/O issues were dealt with, the most notable of which involved dealing with various complaints about Windows newline handling. The native file descriptor behind a handle was also exposed, for use in conjunction with native calling, and UDP support was added to IO::Socket::Async.
  • The semantics of multi methods stubbed in roles, as well as composition of multi methods in roles, were reviewed and modified to be more useful.
  • Sized native lexical variables got a good looking over, as well as unsigned native integers. Numerous issues around them were addressed.
  • A few control flow related semantic issues were ironed out, generally involving the interaction of phasers and control flow operations (such as next and last).
  • Nearly 20 other smaller semantic bugs were resolved in a range of areas: list flattening edge cases, role punning, .?/.+/.* behavior with multis, multi-dispatch with optional parameters, shadowing of built-in types, return constraints on blocks, and sigilless variables in list assignments.
  • A couple of nasty bugs were fixed (a GC hang, a pre-compilation bug, and a meta-object mixins problem).

I also contributed in various ways to preparing for the release itself. Of note, I added the experimental pragma and moved a number of things we were not happy with including in Perl 6 Christmas behind it. I also clarified version reporting to reflect the language/compiler version distinction more cleanly. Finally, I was there on Christmas day itself to lend a hand with the release.

With the Perl 6 Christmas release now made, this Perl 6 Release Goals grant has reached its natural conclusion. I would like to thank all those who have contributed funds to make the initial grant and its two extensions possible. For me, 2015 was a year with various happy distractions, but also in the latter parts of the year suboptimal health. Together, these notably reduced my usual levels of "free time" for participating in Perl 6. So, rather than simply enabling me to do a bit more, this grant was critical to my continued substantial involvement in the Perl 6 project during this important year. I would also like to thank TPF for administering this grant, my grant manager, and last - but certainly not least - the Perl 6 community, who I count among the best folks I've worked with on anything, ever.

Planet Haskell: Gabriel Gonzalez: From mathematics to map-reduce

There's more mathematics to programming than meets the eye. This post will highlight one such connection that explains the link between map-reduce and category theory. I will then conclude with some wild speculation about what this might imply for future programming paradigms.

This post assumes that you already know Haskell and explains the mathematics behind the map-reduce using Haskell concepts and terminology. This means that this post will oversimplify some of the category theory concepts in order to embed them in Haskell, but the overall gist will still be correct.

Background (Isomorphism)

In Haskell, we like to say that two types, s and t, are "isomorphic" if and only if there are two functions, fw and bw, of types

fw :: s -> t
bw :: t -> s

... that are inverse of each other:

fw . bw = id
bw . fw = id

We will use the symbol to denote that two types are isomorphic. So, for example, we would summarize all of the above by just writing:

s ≅ t

The fully general definition of isomorphism from category theory is actually much broader than this, but this definition will do for now.

Background (Adjoint functors)

Given two functors, f and g, f is left-adjoint to g if and only if:

f a -> b ≅ a -> g b

In other words, for them to be adjoint there must be two functions, fw and bw of types:

fw :: (f a -> b) -> (a -> g b)
bw :: (a -> g b) -> (f a -> b)

... such that:

fw . bw = id
bw . fw = id

These "functors" are not necessarily the same as Haskell's Functor class. The category theory definition of "functor" is more general than Haskell's Functor class and we'll be taking advantage of that extra generality in the next section.

Free functors

Imagine a functor named g that acted more like a type-level function that transforms one type into another type. In this case, g will be a function that erases a constraint named C. For example:

-- `g` is a *type-level* function, and `t` is a *type*
g (C t => t) = t

In other words, g "forgets" the C constraint on type t. We call g a "forgetful functor".

If some other functor, f is left-adjoint to g then we say that f is the "free C" (where C is the constraint that g "forgets").

In other words, a "free C" is a functor that is left-adjoint to another functor that forgets the constraint C.

Free monoid

The list type constructor, [], is the "free Monoid"

The "free Monoid" is, by definition, a functor [] that is left-adjoint to some other functor g that deletes Monoid constraints.

When we say that g deletes Monoid constraints we mean that:

g (Monoid m => m) = m

... and when we say that [] is left-adjoint to g that means that:

[] a -> b ≅ a -> g b

... and the type [a] is syntactic sugar for [] a, so we can also write:

[a] -> b ≅ a -> g b

Now substitute b with some type with a Monoid constraint, like this one:

b = Monoid m => m

That gives us:

[a] -> (Monoid m => m) ≅ a -> g (Monoid m => m)

... and since g deletes Monoid constraints, that leaves us with:

[a] -> (Monoid m => m) ≅ a -> m

The above isomorphism in turn implies that there must be two functions, fw and bw, of types:

fw :: ([a] -> (Monoid m => m)) -> (a -> m)
bw :: (a -> m) -> ([a] -> (Monoid m => m))

... and these two functions must be inverses of each other:

fw . bw = id
bw . fw = id

We can pull out the Monoid constraint to the left for both of those types to give us these more idiomatic types:

fw :: Monoid m => ([a] -> m) -> ( a  -> m)
bw :: Monoid m => ( a -> m) -> ([a] -> m)

Both of these types have "obvious" implementations:

fw :: Monoid m => ([a] -> m) -> (a -> m)
fw k x = k [x]

bw :: Monoid m => (a -> m) -> ([a] -> m)
bw k xs = mconcat (map k xs)

Now we need to prove that the fw and bw functions are inverse of each other. Here are the proofs:

-- Proof #1
fw . bw

-- eta-expand
= \k -> fw (bw k)

-- eta-expand
= \k x -> fw (bw k) x

-- Definition of `fw`
= \k x -> bw k [x]

-- Definition of `bw`
= \k x -> mconcat (map k [x])

-- Definition of `map`
= \k x -> mconcat [k x]

-- Definition of `mconcat`
= \k x -> k x

-- eta-reduce
= \k -> k

-- Definition of `id`
= id

-- Proof #2
bw . fw

-- eta-expand
= \k -> bw (fw k)

-- eta-expand
= \k xs -> bw (fw k) xs

-- Definition of `bw`
= \k xs -> mconcat (map (fw k) xs)

-- eta-expand
= \k xs -> mconcat (map (\x -> fw k x) xs)

-- Definition of `fw`
= \k xs -> mconcat (map (\x -> k [x]) xs)

-- map (f . g) = map f . map g
= \k xs -> mconcat (map k (map (\x -> [x]) xs))

-- ... and then a miracle occurs ...
-- In all seriousness this step uses a "free theorem" which says
-- that:
-- forall (k :: Monoid m => a -> m) . mconcat . map k = k . mconcat
-- We haven't covered free theorems, but you can read more about them
-- here:
= \k xs -> k (mconcat (map (\x -> [x]) xs)

-- This next step is a proof by induction, which I've omitted
= \k xs -> k xs

-- eta-reduce
= \k -> k

-- Definition of `id`
= id

Map reduce

Let's revisit the type and implementation of our bw function:

bw :: Monoid m => (a -> m) -> ([a] -> m)
bw k xs = mconcat (map k xs)

That bw function is significant because it is a simplified form of map-reduce:

  • First you "map" a function named k over the list of xs
  • Then you "reduce" the list using mconcat

In other words, bw is a pure "map-reduce" function and actually already exists in Haskell's standard library as the foldMap function.

The theory of free objects predict that all other functions of interest over a free object (like the free Monoid) can be reduced to the above fundamental function. In other words, the theory indicates that we can implement all other functions over lists in terms of this very general map-reduce function. We could have predicted the importance of "map-reduce purely from the theory of "free Monoids"!

However, there are other free objects besides free Monoids. For example, there are "free Monads" and "free Categorys" and "free Applicatives" and each of them is equipped with a similarly fundamental function that we can use to express all other functions of interest. I believe that each one of these fundamental functions is a programming paradigm waiting to be discovered just like the map-reduce paradigm. Comic for 2016.02.04

New Cyanide and Happiness Comic

Ideas from CBC Radio (Highlights): In the Footsteps of Evangeline - Lyse Doucet

In the 2015 Dalton Camp lecture, Lyse Doucet explores the parallel between Longfellow's poem "Evangeline" and today's refugee crisis, about how human stories give voice and meaning to complex issues.

Disquiet: La Voix Humaine


Denise Duval sang passionately about broken telephone connections, about the way our technology can mimic, taint, and amplify human connections. She died a week ago, on January 25, the New York Times reported today.

A French soprano born in 1921, Duval is best known for her work with the composer Francis Poulenc. Foremost among the pair’s collaborations is the opera La Voix Humaine, based on the play by Jean Cocteau. La Voix Humaine is high on the list of essential viewing and listening if you’re interested in art informed by technologically mediated human interaction.

The opera tells the story of the end of a love affair. Expertly constructed, it unfolds as one half of a phone conversation. The other half takes place on the far end of the phone line, unheard by the audience. The woman is Elle, and Duval was the first to perform the role. There’s a filmed version of Duval’s performance, directed by Dominique Delouche, which uses another technology, television, to emphasize the creative constraints inherent in Cocteau’s vision: a woman, alone in a room, trying to navigate a failed love — and her own faltering psyche — using failing technology.

I spent a chunk of last year working on — and failing at — an extended essay about the intersection of art and technology that just never ended up going where I’d hoped it would. Only toward the end of the writing process, before I put it away half-finished, did I finally switch from wondering about the relationship between the artist and the technology and, instead, began to focus on the audience’s experience of technology. At that point I’d blown too much time and just couldn’t dedicate myself to it anymore, though I hope to get back to it at some point.

This morning, having read the news of Duval’s death over coffee, I was reminded of the centrality of that telephone in La Voix Humaine, not just to Elle, but to the audience of both the play and the opera. The play was first performed in 1930, the opera in 1958. By 1970, when Delouche’s filmed version was broadcast on television in France, the phone was long since not just an everyday but essential part of life. To witness Elle’s story in 1930 must have been a very different thing than in 1970, from the perspective of an audience’s experience of the phone as a lifeline. There is something very J.G. Ballard about La Voix Humaine, as if it’s taking place amid the narrative of his novel High Rise, like Elle lives in an apartment whose door the book’s narrator never happens to knock on.

Nicholas Muni

Eventually La Voix Humaine did leave the boudoir. For example, a staging by the Cincinnati Opera’s Nicholas Muni in 2003 re-situated Elle (soprano Catherine Malfitano, above) as the survivor of a car accident. We witness Elle wandering around the wreck while she tries to communicate with her former lover. The wreck isn’t merely a contrivance to switch to a cellphone. It’s part of the original story that Elle reveals her attempted suicide. In the Muni depiction, the scene of the accident serves as both setting and evidence. Of course, switching to cellphone in 2003 also made sense because the phone needed to cut off once in awhile, something far more common then — and today — on a cellphone than on a landline.

The lingering lesson of La Voix Humaine may be that if you’re making technological art, ask yourself if you are reflecting on the means by which that technology is infused in the lives of its audience.

The Delouche version with Duval is on YouTube in four parts. The image up top was colorized (and found at The original is in black and white.


Also on YouTube is an Ingrid Bergman (above) version of the play, from 1967.

And to bring things back around to electronic music, there’s an audio-only version of the play done for the BBC by Scanner, aka Robin Rimbaud, that was first broadcast back in 1998. It stars Harriet Walter, best known these days as Lady Shackleton on Downton Abbey and as the doctor who briefly but memorably tends to Chewbacca in Star Wars: The Force Awakens. The Human Voice is an important transitional work for Rimbaud, as it employs techniques he developed when making music to accompany cellphone conversations captured on scanners (hence his moniker), but applies them to prerecorded dialogue — or, in this case, monologue.

This first appeared in the February 2, 2016, edition of the free Disquiet “This Week in Sound” email newsletter:

i like this art: Magnhild Øen Nordahl

Nordahl_1 Nordahl_2 Nordahl_3 Nordahl_4

Magnhild Øen Nordahl

Work from Occupational Knots

I understand you’re originally from Norway, and recently completed your Masters studies at Kungliga Konsthögskolan in Stockholm, Sweden. Can you tell us a little bit about your background and how you were first introduced to making artwork?

As most kids do I enjoyed making things, whether it was drawings or paintings, building tree huts in the forest or dams in the creeks. Growing up in rural Norway I wasn’t exposed to much professional art production, and when I went to preparatory art school it was with the hopes to acquire some creative skills needed to become an architect. It was here that I discovered that making art was fun and challenging in new ways and so I continued to pursue it.

You work often combines conceptual inquiry, scientific theory and methods, and a hands-on material practice – specifically sculpture. What is the attraction to sculpture and how do you think this best embodies the intellectual ideas that are often at play in your work?

I simply think that working with sculpture is a lot of fun. There are so many new things to learn, and being physically active makes me think in a different way. The physical world – the space I am in, the tools I use, my crafting skills and the materials – become decisive parameters in the work. However, I never felt like a material and spatial exploration was enough in itself, I’ve always had other interests that merges with these concerns. For instance I was working with load bearing structures as a motif for a long time, and I was looking into the connection between technological development, the shape of the structures and the work of the builders/designers involved in the making of these. This conceptual enquiry came about through my own work with the sculptures which consisted of cutting wood in many different angles and learning to use a drop saw in a precise way. The meaning of my own practical work is something I have been interrogating; Does it even matter if I make things myself, or could I have arrived at the same point through digital plans and outsourcing? What role does the body play in learning and understanding things in the world? These questions relate to more general topics of phenomenology and epistemology that I have been concerned with from the beginning of my practice, whether I was working with architecture, science or other subjects as a point of departure.

For the upcoming exhibition x4 at Kunsthall Stavanger, I understand you will be showing a selection of works from your series Occupational Knots (2014). In one respect, the works seem very straight forward in that they are based on Clifford W. Ashley’s 1944 book “The Ashley Book of Knots” which describes and illustrates in detail different useful knots for various professions. However, the works also easily lend themselves to metaphorical interpretations, as knots are often representational of anxiety and difficulty, or used as tools for theoretical analysis in physics and science (as in Knot Theory). Can you describe how you came to work with this book and your thinking behind the project?

I started working with knots first for practical reasons, and then I discovered the world of knots through the wonderful Ashley Book of Knots. One of its chapters is as you say dedicated to different professional groups, and it became a reminder to me of how so many jobs had many more practical elements in them before. I’m interested in how we work and how this influences the work being done, how global economy delegates manual labor to the lower economic class and how the contemporary artist fits into this picture of material production.I was also intrigued by this book as a particular example of the encyclopaedic format. Clifford W. Ashley, who funnily enough made art to support his rope-interest, made all these different categories and qualifications of knots and systematized this knowledge in a very subjective way. I soon discovered that there was also another type of systematized knowledge about knots, Mathematical Knot Theory. This theory was created in the late 1800s as an attempt to classify all substances in the world according to a comprehensive tabulation of knots. It was soon discarded for the more well functioning periodic table, and only regained its practical relevance in the 1980s when knotting was discovered in DNA-molecules and synthetic molecules. What I find interesting about science is that it tells us things that contradict our experiences and we still believe it. When this knot tabulation was created there was no tool powerful enough to show us an image of the smallest substances in the world, the scientists were left to hypothesise. And that is actually the case also today, we don´t know what the particles in the standard model look like, and some scientists even want to discard this model all together. But even if we still can’t get an image of the smallest particles, science has long since advanced past our senses when it comes to this type of observation. We are taught to find truth and reality in abstract information and to consider our senses as inaccurate. The titles of the works in the exhibition are found in a textbook on Knot Theory, and some of them demonstrate this demand on us to accept concepts that are removed from our experience of the world. “We imagine the string as having no thickness” and “The knot is infinitely far away” are in a way ridiculous statements, but make sense in the logical framework of this textbook.

All explanations aside, there is a strong physical presence to the sculptures inOccupational Knots that cannot be ignored. Is it important to you that audiences understand the full implications behind these works?

The strong physical presence is an important part of the work. I think it is a result of my joy in working with objects, materials and tools and a desire to share this experience with the audience. This is a work that has taken shape gradually, therefor not all formal decisions are accounted for in a literal way, and there isn´t a list of things people need to know to “get it”. However I think it can be more rewarding for many if they have the option to know a bit more, so I aim to be generous with providing information. The way I have solved it in this case is to assemble a selection of the research in the fanzine Pb?Ni?He? that we plan to have available at the Kunsthall´s bookshop.

Is there anything that you can tell us about the specific iteration of this project at Kunsthall Stavanger? Will it differ from past presentations?

The architecture of the space will definitely have a large impact on the installation. I am curious myself to see how it will work out.

And finally, can you share any information about future projects and exhibitions that you are working towards?

At the moment I am preparing a work that I have made in collaboration with musician Omar Johnsen for the sculpture biennial Art belongs to those who see it at Vigelandsmuseet this fall. After that I will start on new works for an upcoming solo show at Hordaland Kunstsenter next summer.”

interview via Kunsthall Stavanger

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

ZIM modified

So 11% of kids in the UK think milk and eggs come from wheat. A scary number of nutbars on this blog believe Nine Eleven was a hoax. And 52% of Millennials are convinced you can use an RRSP to buy a car.

There may be little hope for the first two groups, but we still have time to save the moisters. In fact, it’s a reasonable bet most people have a hazy, sketchy, foggy or nebulous idea what tax shelters are all about. So here are some things to remember, and teach you kids when they ask, “What do I need to know to grow up?”

A TFSA is not a savings account.
Not sure even the finance minister gets this. The tax-free account is for investing money, (hopefully for retirement decades away) not for saving it for a vacation. Stick a wide variety of growthy things in there and never pay tax on the gains. Best, it can pay you constant income in retirement (or unemployment) and the money is never reported as income. No new tax bracket. No pension clawbacks. This is the finest money machine we get, despite being gored in a dumb political move.

They’re not products.
TFSAs and RRSPs are not things. You don’t buy one at the bank. They’re just ways of sheltering stuff from being taxed. So you can open a registered account (that’s what they’re called) at the bank, through an advisor, with an online brokerage, at the credit union or with one of those robots. Then stuff it.

What’s the difference?
Two major points. TFSAs are massively democratic, because everybody gets the same chance to contribute – now $5,500 a year. RRSPs, on the other hand, reward the rich the best. The more you earn, the more you can salt away from tax – up to $25,000 a year. You’re right. T2 got that one wrong. Second, a tax-free account contribution doesn’t get you a tax break but neither are withdrawals taxed. Putting money into RRSPs nets a tax cut up to 50% of the cash invested (that’s elephantine), but withdrawals are taxed according to your income when you withdraw.

Retirement plans aren’t for retirement.
That’s so analog. The best use of RRSPs is for tax-shifting – reducing taxable income in years when you’re doing great, and supplementing your income when things blow up or change. So if you pump money into a plan when working you can reduce the amount sent to Ottawa. Reclaim the money if you get punted, pregnant or paused and enjoy it with less (or no) tax. You have effectively shifted income from a year you don’t need it to one when you do. RRSPs can also be used to buy a house, using the tax refund as part of the down payment, for financing education or a baby. Open up a spousal plan and income-split with your less-taxed squeeze.

Cash not required.
No extra money this month? No sweat. It’s easy to feed either a TFSA or an RRSP by making a ‘contribution in kind.’ Transfer something you already own (like a crappy bank mutual fund, ETFs, brain-dead GICs or the four RBC shares your grandmother gave you) into your registered plan and they count the same as money. All future growth will be tax-free, but past growth may be subject to capital gains tax. Be cool – that’s a minimal charge.

Room for life.
Each year that you work you accumulate new RRSP ‘room’, generally equal to 18% of your wages. Each year you clock over age 18, you get TFSA room. Doesn’t matter if you use it then or not, because all of this potential contribution just keeps adding up. This can be a godsend if your job is terminated. Much of a severance or retirement package can be rolled right into an RRSP tax shelter. Or, as you age, become addicted to this blog and grow embarrassingly wealthy, investments can be moved into your TFSA where all tax is eliminated and income can stream back out – non-reported to the CRA. Better than sex.

Know how you’re hosed.
The greatest tax is levied on what people earn working. Equally penalized is money made by collecting interest (like on a GIC) or rent (that investment condo). Your ‘marginal’ tax rate is the level at which any additional money coming into your hands is siphoned off by government. So if you work for a living and make $100,000 in BC, your marginal rate is 38.3% – which means you’ll pay $38 in tax on each hundred bucks your high-interest savings account generates. But if you own an ETF instead that yields a $100 capital gain, the tax is just $19. Yep, today savers lose twice.

Other salient stuff.
Your spouse can take over your RRSP when you kick, but only if you name him/her as the ‘beneficiary.’ Kids, dogs and friends are not so favoured. The account becomes taxable. A TFSA can be taken over by a spouse if he/she has been named as ‘successor holder’, which means it gets folded into their existing plan, becoming their property. In contrast, the beneficiary of a TFSA (anybody else) gets the cash or assets in the account, but the days of tax-free growth end.

Finally, interest on money borrowed to contribute to a registered account is not tax-deductible. But loans for non-registered (or taxable) accounts give you that break. An RRSP loan can make sense if the tax refund is used to pay the loan down. TFSAs loans just suck. Ask your mom for the money instead, and tell her you’re buying a condo. She’ll be so proud.

Quiet Earth: The Quietcast: Director Roxanne Benjamin Talks Southbound

[Editor's note: You can now subscribe to Quiet Earth's podcast on iTunes or via RSS!]

Roxanne Bejamin has been producing some of your favourite independent horror films and thrillers for years now. From V/H/S 1 & 2, to the recent cult indoctrination thriller ">Faults, her work behind the camera has generated a lot of chatter in the critical film community. So when we heard she was making her directorial debut with a segment in Southbound, [Continued ...]

Perlsphere: My Github dashboard of neglect


The curse of being a prolific publisher is a long list of once-cherished, now-neglected modules.

Earlier this week, I got a depressing Github notification. The author of a pull request who has politely pestered me for a while to review his PR, added this comment:

1 year has passed


Sadly, after taking time to review the PR, I actually decided it wasn't a great fit and politely (I hope), rejected it. And then I felt even WORSE, because I'd made someone wait around a year for me to say "no".

Much like my weight hitting a local maxima on the scale, goading me to rededicate myself to healthier eating [dear startups, enough with the constant junk food, already!], this PR felt like a low point in my open-source maintenance.

And, so, just like I now have an app to show me a dashboard of my food consumption, I decided I needed a birds eye view of what I'd been ignoring on Github.

Here, paraphrased, is my "conversation" with Github.

Me: Github, show me a dashboard!  

GH: Here's a feed of events on repos you watch

Me: No, I want a dashboard.

GH: Here's a list of issues created, assigned or mentioning you.

Me: No, I want a dashboard.  Maybe I need an organization view.  [my CPAN repos are in an organization]

GH: Here's a feed of events on repos in the organization.

Me: No, I want a dashboard of issues.

GH: Here's a list of issues for repos in the organization.

Me: Uh, can you summarize that?

GH: No.

Me: Github, you suck.  But you have an API.  Time to bust out some Perl.

So I wrote my own github-dashboard program, using Net::GitHub. (Really, I adapted it from other Net::GitHub programs I already use.) I keep my Github user id and API token in my .gitconfig, so the program pulls my credentials from there.

Below, you can see my Github dashboard of neglect (top 40 only!). The three columns of numbers are (respectively) PRs, non-wishlist issues and wishlist issues. (Wishlist items are identified either by label or by "wishlist" in the title.)

$ ./github-dashboard |  head -40
                               Capture-Tiny   3  18   0
                                    Meerkat   2   8   0
                               getopt-lucid   2   1   0
                                  Path-Tiny   1  21   0
                               HTTP-Tiny-UA   1   5   0
                         Path-Iterator-Rule   1   5   0
  Dist-Zilla-Plugin-BumpVersionAfterRelease   1   3   2
                              Metabase-Fact   1   3   0
                dist-zilla-plugin-osprereqs   1   2   0
       Dist-Zilla-Plugin-Test-ReportPrereqs   1   2   0
                                    ToolSet   1   2   0
        Dist-Zilla-Plugin-Meta-Contributors   1   1   0
     Dist-Zilla-Plugin-MakeMaker-Highlander   1   0   0
                         Task-CPAN-Reporter   1   0   0
                           IO-CaptureOutput   0   7   0
                                     pantry   0   7   2
                     TAP-Harness-Restricted   0   4   0
                            class-insideout   0   3   0
                               Hash-Ordered   0   3   0
                                    Log-Any   0   3   4
                                  perl-chef   0   3   0
                                 Term-Title   0   3   0
                               Test-DiagINC   0   3   0
                          Acme-require-case   0   2   0
                                 Class-Tiny   0   2   0
                                  Data-Fake   0   2   2
                  dist-zilla-plugin-twitter   0   2   0
                   Log-Any-Adapter-Log4perl   0   2   0
                             math-random-oo   0   2   0
                                 superclass   0   2   0
                                   Test-Roo   0   2   0
                              universal-new   0   2   0
                           zzz-rt-to-github   0   2   0
                      app-ylastic-costagent   0   1   0
                      Dancer-Session-Cookie   0   1   0
          Dist-Zilla-Plugin-CheckExtraTests   0   1   0
          Dist-Zilla-Plugin-InsertCopyright   0   1   0
Dist-Zilla-Plugin-ReleaseStatus-FromVersion   0   1   0
                                 File-chdir   0   1   0
                                 File-pushd   0   1   0

Now, when I set aside maintenance time, I know where to work.

explodingdog: Photo

TOPLAP: Afterglow update and a performance video

I just released version 0.2.0 of Afterglow, adding some nice interface elements for controlling effects, cue variables, and picking colors, both from the embedded web UI, and compatible grid controllers. Speaking of which, the Novation Launchpad Pro has joined the Ableton Push as having native support, and Novation is loaning me some other controllers to facilitate building mappings for them.

And since I’ve been too busy working on the software recently to get out and perform myself, I was thrilled to receive this performance video from an early adopter of a show he lit using Afterglow in Kaliningrad, Russia in December. He modestly says, “My first experience with lights, still a lot to accomplish.” And I say, there is a ton left to implement in the software too. But it is already fun!

Deepower Live Report

Deepower audiovisual performance with Afterglow / 2016-02-06T17:57:05