…immutable data allows a new
library, Om, to outperform a
Backbone.js without hand optimization from
the user. Om itself is built upon the absolutely wonderful
React library from Facebook. If
you haven't checked it out before, I
recommend watching this video from JSConf EU 2013.
Interestingly because of immutable data Om can deliver even better results
than using React out of the box.
Wired previews a puzzle game that might just out-fez Fez. I hope the gameplay lives up to the visuals. Bonus points for having a female main character.
…[The] visual design of Monument Valley isn’t just decoration; it’s integral to the game’s puzzle-like gameplay, too. Each level looks different from the next, but the goal remains the same: Guide Ida, your curious little avatar, through architectural labyrinths to finish the level…
On using Prolog, and logic programming, for system administration purposes
Logic programming's heyday feels well passed, making it ripe for rediscovery. Today several mature Prolog interpreters are packaged for all the major Linux distributions, and the declarative paradigm it belongs to still has serious advantages:
Predicates describe the relationships between entities more flexibly than functions do in other languages
Depth-first search through the space of available solutions is built-in!
…Though experimental, [it] already works well for achieving a consistent environment between OS X and Linux machines.
As the kinds of devices people use to get online continue to diversify, relying on screen size alone paints an increasingly incomplete picture of how a Web experience could/should adapt to meet people’s needs. Screen size can also lead to bad decision-making when used as a proxy for determining:
If a browser is running on a mobile device or not
If Network connections are good (fast) or bad (slow)
If a device supports touch, call-making, or other capabilities
…I do believe that the vast majority of the people who prematurely optimize away garbage collection don't know what they are talking about and would not be capable of building a good solution in any language. Such people usually only know C++ and have no knowledge of garbage collection algorithms, which is scary because C++ programmers reinvent GC algorithms every day. A good test is to ask them how garbage collection works. If they describe naive mark-sweep circa 1960 then they haven't done their homework.
Nobody wants monoliths, i.e. big systems composed of hundreds of thousands or millions of lines of code (in a language like Java) or tens of thousands (e.g. in Ruby), yet everyone ends up having them. And once you have one, you’re basically stuck with them…
…So what’s the proposed remedy? To talk about that, we need to take a step back and find out how we actually end up systems that are too big in the first place. My theory is that the number one reason is project scope.
…I’m going to walk through a series of interesting types I’ve encountered while working with some standard clojure.core library functions. As we go along, the types will get more complex and show off additional features of the type system. My hope is that this will be a useful tutorial for people who want to learn Typed Clojure.
Python creator Guido van Rossum’s slides about his new async IO library, Tulip, for Python 3 that leverages co-routines and generators instead of callbacks:
def fetch(host, port):
r, w = yield from open_connection(host, port)
while (yield from r.readline()).decode('latin-1').strip():
body = yield from r.read()
data = yield from fetch('python.org', 80)
I've written Duke, an engine for figuring out which records represent the same thing. It works fine, but people find it difficult to configure correctly, which is not so strange. Getting the configurations right requires estimating probabilities and choosing between comparators like Levenshtein, Jaro-Winkler, and Dice coefficient. Can we get the computer to do something people cannot? It sounds like black magic, but it's actually pretty simple.
Emily Yoshida examines the history and, surprising lack of, legacy of Myst and its sequels:
Twenty years ago, people talked about Myst the same way they talked about The Sopranos during its first season: as one of those rare works that irrevocably changed its medium. It certainly felt like nothing in gaming would or could be the same after it.…
…Fans and critics alike held their breath in anticipation of the tidal wave of exploratory, open-ended gaming that was supposed to follow, waiting to be drowned in a sea of new worlds.
This month’s issue of Pelgrane Press’s Webzine, See Page XX includes an article I wrote about modern technology – cellphones, the internet etc – in roleplaying games with a focus on allowing the players access to it but considering the inherent consequences and tradeoffs for improving the game.
But nowadays, it is practically impossible to find genuine wild kopi luwak – the only way to guarantee that would be to actually follow a luwak around all night yourself, one experienced coffee trader told me. Today, kopi luwak mainly comes from caged wild luwaks, often kept in appalling conditions.…
…The naturally shy and solitary nocturnal creatures suffer greatly from the stress of being caged in proximity to other luwaks, and the unnatural emphasis on coffee cherries in their diet causes other health problems too; they fight among themselves, gnaw off their own legs, start passing blood in their scats, and frequently die.
Techniques like generative, simulation, or specification tests are testing styles that can provide far greater coverage than you can hand-roll in example or BDD tests and they tend to be less fragile as well. They may have a higher up-front cost but so far in my experience they have a lower maintenance cost and much higher coverage, thus yielding greater overall value.
…essentially all software is subsidized. You are using an operating system that is subsidized by Berkley, typing on a keyboard subsidized by IBM, doing a heck of a lot of things subsidized by Xerox, a network subsidized by DARPA, a web browser subsidized by Google, Apple, and Netscape, etc. To a nontrivial extent, Python is subsidized by Google, Linux is subsidized by IBM, C++ is subsidized by AT&T, and [arbitrary software package you use] is subsidized by [arbitrary large entity]. Even if their only contribution is to feed and water and do laundry for the open-source developers working on the project, it’s subsidies all the way down.
“There’s a widely held belief among musicians, and maybe artists in general, that there’s some zero-sum game being played, that it’s a compromise to even think about business as being a part of what you do,” …
…“The idea of selling out is only understandable to people of privilege.”
Vulture interviews Damon Lindelof (Lost, Star Trek):
Once you spend more than $100 million on a movie, you have to save the world,” explains Lindelof. “And when you start there, and basically say, I have to construct a MacGuffin based on if they shut off this, or they close this portal, or they deactivate this bomb, or they come up with this cure, it will save the world—you are very limited in terms of how you execute that. And in many ways, you can become a slave to it…
Butterick's Practical Typography looks like an excellent free resource for anyone wanting to get better at typography and design. Lots of great content, but I especially like the section on dashes. Misuse of hyphens in particular is all to common.
Bruce Hauman has implemented a simple little game in the browser using ClojureScript and core.async. His blog post breaks down how he wrote it, and how he used core.async to do so cleanly and with a fairly small amount of code. Worth the time it takes to read.
In Gothenburg, Sweden, bars and restaurants with good disability access are being rewarded with beer instead of a more traditional certificate.
The specially brewed beer, dubbed CPA or cerebral palsy beer, is a hybrid of Indian pale ale and American pale ale and is described by the makers as "one that everyone will want to stock in their bar". The bottle features a stylised picture of a woman with cerebral palsy in a wheelchair.
Christopher Moeller'sIron Empires sci-fi comic is comprised of two graphic novels that inhabit different corners of the same setting, but tell self contained stories. Moeller's story telling is great, but more impressive is his art: instead of the typical pencils, ink, colours approach, he paints every panel.
Void is the third story told in the setting, and is being published independently. Moeller has teamed up with Luke Crane et al of Burning Wheel who wrote and published the roleplaying game of the setting, Burning Empires, to put out this (and hopefully future) instalments, and they are looking for support, via KickStarter, to cover the printing costs.
Don't miss the free preview content linked near the bottom of the page.
As mentioned in the WWDC keynote, Apple is adding official support for game controllers in iOS 7 which is going to be awesome and I can't wait to get my hands on one. You know what's going to be even more awesome though? Game controllers for the Apple TV.
Reference counting and tracing are often viewed as fundamentally different, incompatible forms of memory management. An extraordinarily insightful 2004 paper by Bacon, Cheng, and Rajan, A Uniﬁed Theory of Garbage Collection draws incredible parallels between these two approaches to GC. It begins by introducing the insight that tracing and counting are related and goes so far as to formalize and generalize the work done by GC algorithms in order to prove their point: these approaches are in fact "algorithmic duals" of each other which take the same approach from different starting points. …
This article references a paper I have been meaning to read for a couple of weeks now. Garbage collection is something I want to understand better.
In short, an over-reliance on centrally planned API design.When Facebook first realized that the browser’s offline feature was broken, they had no way out. Their only choices: try to hack around the problems or beg the central planners to try again.
A TED Talk by Allan Savory on the desertification of two thirds of the worlds grasslands, it's impact on climate change, historical attempts to counteract it, and a solution he believes is the only viable option.
…Suzy Rice, who had just been hired as an art director, remembers the job well. She recalls that the design directive given by Lucas was that the logo should look “very fascist.”
“I’d been reading a book the night before the meeting with George Lucas,” she says, “a book about German type design and the historical origins of some of the popular typefaces used today—how they developed into what we see and use in the present.” After Lucas described the kind of visual element he was seeking, “I returned to the office and used what I reckoned to be the most ‘fascist’ typeface I could think of: Helvetica Black.”
Fuzz fan Kit Rae's obsessively detailed history of the Tone Bender fuzz pedal.
The Tone Bender was one of the first fuzz tone boxes to come out of England during the booming London music scene in the mid 1960's, the British answer to the American Maestro Fuzz-Tone. There are numerous versions, each with slightly different characteristics to the sound, and numerous re branded versions made for third party companies. Tone Benders were popular pedals among guitarists in the late 1960's through the mid 1970's, often associated with the Vox brand, and guitarists like Jimmy Page, Jeff beck, Mick Ronson, and Pete Townshend. It is arguably the pedal with the most interesting and colourful history in the annals of fuzz, and the genesis of the UK stomp box phenomenon. The history is somewhat convoluted, with a host of interrelated individuals and companies, including Jennings Musical Industries, Vox, JMI/Vox engineers Dick Denney and Gary Hurst, the legendary Macaris Music Exchange of London, Sola Sound/Colorsound, The Beatles, The Yardbirds, and Led Zeppelin, among others.
Below is a chronological timeline of the pertinent dates for pedal releases, events, and people related to the Tone Bender fuzz pedals, spanning the 1960's, and including some dates from the 50's, 70's, and 90's that are relevant.…
As you might imagine, “what an RPG is” is, well, a hell of a question. While we (at least in the American tradition) comes from Arneson and Gygax, we’ve moved to a place where games like Fiasco and A Penny for my Thoughts fills the same (or a very similar) space, even though they different wildly in execution…
…As I chewed around what makes up a RPG, I hit upon these four elements:
…concatenative languages give us something applicative functional languages generally can’t: we can actually return multiple values from a function, not just tuples. And thanks to row polymorphism, we have a uniform way to compose functions of different types, so the flow of data in our programs doesn’t get obscured, as it were, by the plumbing.
Also interesting is the claim that:
In an applicative language, we have to jump through some hoops in order to get the basic concatenative operators we want, and get them to typecheck. When implementing composition in terms of application, we must explicitly implement every type of composition.
Brandon Bloom has an implementation of concatenative programming as a library for Clojure called Factjor. This may be where I found this article in the first place.
Nels Cline, of Wilco, writing at Premier Guitar about his essential effects:
…I am a pedal geek. But I am serious about pointing out that, with all the chatter and obsessiveness surrounding equipment generally, and effects pedals specifically, all that matters is what you like. That could just as well be an amplified wire hooked to a eucalyptus tree going into an old radio or some fabulous overpriced vintage guitar combined with a boutique amp and 23 Illuminati-approved effects pedals…
One of the words I see overused is "abstraction." I hear developers use it when they talk about the DRY principle and reducing common code. Reducing common code to eliminate repetition improves your leverage, but not necessarily abstraction.
…All abstractions offer leverage, but not all leverage is an abstraction.
This manual of Linotype typography has been prepared to demonstrate the possibility of producing upon the Linotype machine a high quality of work without increasing the cost of the production. A piano, no matter how perfect in workmanship and tone, yields to the performer a quality of music equal only to the composer's genius and the ability of the artist. The same is true of the Linotype machine.…
A guide to typography and book design published in 1923. Unsurprisingly the book looks fantastic, and still has relevant content today. Via Graham Walmsley.
The system works by homing in on specific pixels in a video over the course of time. Frame-by-frame, the program identifies minute changes in color and then amplifies them up to 100 times, turning, say, a subtle shift toward pink to a bright crimson…
Thanks to decades of breeding, the modern agricultural tomato has a lot of properties that are great for farmers: the plants are incredibly productive, and the resulting tomatoes hold up well to shipping. Just one small problem: they are nearly tasteless.
Karen McGrane writing about mobile content and design at A List Apart:
If people want to do something on the internet, they will want to do it using their mobile device. Period.
The boundaries between “desktop tasks” and “mobile tasks” are fluid, driven as much by the device’s convenience as they are by the ease of the task…
Your content strategy for mobile should not be to develop a satellite to your desktop site, showing only the subset of content you’ve decided a mobile user will need…
Never force users to go to the desktop website for content they’re seeking on a mobile device. Instead, aim for content parity between your desktop and your mobile experiences—maybe not exactly the same content presented exactly the same way, but essentially the same experience.
John Bender introduces the System F extension to Lambda Calculus using Coffeescript.
System F and its variants are used frequently in the study of typed computation and an extended form, System FC, plays an important role in GHC's compilation process . This post will attempt to translate the grammars of the Lambda Calculus, Simply Typed Lambda Calculus, and finally System F into a small subset of CoffeeScript while covering the basics of application and abstraction in each…
Jason Morningstar (interviewed by Judd Karlman) writes about playing the classic RPG Traveller when he was a kid:
GDW’s Traveller was published in 1977. If you were a gamer in 1977 you had access to crappily-produced games like Dungeons & Dragons that looked like zines assembled by slightly deranged high school students. The art alternated between pervy and terrible. In contrast, in the same format (a digest-sized box with three books) Traveller was professionally laid out and edited and had made a few passes through a Linotype machine. The text was crisp and clear, sans serif, in an austere black box. There was no art, because art was for people who were not serious. It was revelatory and awesome, and just looking at it made you want to be a better player.
Kas Thomas writes about the difficulty of evaluating legibility of type, and how the notion of serif faces being more legible than san-serif faces is probably not based on facts.
…It turns out a surprising number of otherwise convincing "legibility studies" have been based on reading speed or reading comprehension, which have no bearing on glyph recognition per se. Reading speed is now known to be mainly a function of cognition speed, which varies considerably from individual to individual and is not related in any straightforward way (and possibly in no way) to typeface design. Reading comprehension is even further removed from type design.
Event systems, in general, are exponentially more complex than declarative systems to achieve the same goal. And most of that complexity is non-essential, accidental. All but the most trivial of event systems quickly grow so complex and difficult to reason about that there are no obvious bugs or inefficiencies.
A rough calculation of current rates of soil degradation suggests we have about 60 years of topsoil left. Some 40% of soil used for agriculture around the world is classed as either degraded or seriously degraded – the latter means that 70% of the topsoil, the layer allowing plants to grow, is gone. Because of various farming methods that strip the soil of carbon and make it less robust as well as weaker in nutrients, soil is being lost at between 10 and 40 times the rate at which it can be naturally replenished. Even the well-maintained farming land in Europe, which may look idyllic, is being lost at unsustainable rates.
But there is an unpalatable truth to face for those of us with a bag of quinoa in the larder. The appetite of countries such as ours for this grain has pushed up prices to such an extent that poorer people in Peru and Bolivia, for whom it was once a nourishing staple food, can no longer afford to eat it. Imported junk food is cheaper.…
Semantic satiation (also semantic saturation) is a psychological phenomenon in which repetition causes a word or phrase to temporarily lose meaning for the listener, who then processes the speech as repeated meaningless sounds.