Writing

Fathom

Ben Fry LLC now has a proper name, and it is Fathom. Or if you want to be formal about it, “Fathom Information Design”.

And today we launched a new site, fathom.info, for our work. (I’ll still be using benfry.com for my older research projects, Processing updates, software and visualization ramblings, book updates…)

We also have a new project that launched yesterday with GE, this time looking at shifts in age within world populations. A little more info about it is on the Fathom updates page (some might call it a blog). And when we have a chance, we hope to post a bit more of the process behind the piece.

Friday, July 23, 2010 | fathom  

Processing 0187

New release available shortly in the pre-releases section of processing.org/download.

More bug fixes, and one new treat for OS X users. Hopefully we’re about set
to call this one 1.2. Please test and report any issues you find.

[ additions ]

+ On Mac OS X, you’re no longer required to have a sketch window open at
all times. This will make the application feel more Mac-like–a little
more elegant and trendy and smug with superiority.

+ Added a warning to the Linux version to tell users that they should be
using the official version of Java from Sun if they’re not.
http://wiki.processing.org/w/Supported_Platforms#Linux
There isn’t a perfect way to detect whether Sun Java is in use,
so please let us know how it works or if you have a better idea.

[ fixes ]

+ “Unexpected token” error when creating classes with recent pre-releases.
http://code.google.com/p/processing/issues/detail?id=292

+ Prevent horizontal scroll offset from disappearing.
Thanks to Christian Thiemann for the fix.
http://code.google.com/p/processing/issues/detail?id=280
http://code.google.com/p/processing/issues/detail?id=10

+ Fix NullPointerException when making a new sketch on non-English systems.
http://code.google.com/p/processing/issues/detail?id=283

+ Fixed a problem when using command-line arguments with exported sketches
on Windows. Thanks to davbol for the fix.
http://code.google.com/p/processing/issues/detail?id=303

+ Added requestFocusInWindow() call to replace Apple’s broken requestFocus(),
which should return the previous behavior of sketches getting focus
immediately when loaded in a web browser.
http://code.google.com/p/processing/issues/detail?id=279

+ Add getDocumentBase() version of createInput() for Internet Explorer.
Without this, sketches will crash when trying to find files on a web server
that are not in the exported .jar file. This fix is only for IE. Yay IE!

Monday, July 12, 2010 | processing  

Processing 0186

Mixed bag of updates as a follow-on to release 0185.

[ mixed bag ]

Android SDK requirement is now API 7 (Android 2.1), because Google has deprecated API 6 (2.0.1).

More Linux PDF fixes from Matthias Breuer. Thanks!

PDF library matrix not reset between frames. (Fixed in 0185.)
http://dev.processing.org/bugs/show_bug.cgi?id=1227

Updated the URLs opened by the software to reflect the new site layout.
http://code.google.com/p/processing/issues/detail?id=278

Updated the included examples with recent changes.

Friday, June 25, 2010 | processing  

Processing 0185

Just posted release 0185 of Processing on the download page. It’s a pre-release for what will eventually become 1.2 or 1.5. Please test and file bugs if you find problems. The list revisions are below:

PROCESSING 0185 – 20 June 2010

Primarily a bug fix release. The biggest change are a couple tweaks for problems caused by Apple’s Update 2 for Java on OS X, so this should make Processing usable on Macs again.

[ bug fixes ]

+ Fix for Apple bug that caused an assertion failure when requestFocus() was called in some situations. This was causing the PDE to become unusable for opening sketches, and focus highlighting was no longer happening.
http://code.google.com/p/processing/issues/detail?id=258
http://dev.processing.org/bugs/show_bug.cgi?id=1564
http://dev.processing.org/bugs/show_bug.cgi?id=1569

+ Fixed two bugs with fonts created with specific charsets.

+ Fix from jdf for PImage(java.awt.Image img) and ARGB images. The method “public PImage(java.awt.Image)” was setting the format to RGB (even if ARGB)

+ Large number of beginShape(POINTS) not rendering correctly on first frame
http://dev.processing.org/bugs/show_bug.cgi?id=1572

+ Fix for PDF library and createFont() on Linux, thanks to Matthias Breuer.
http://dev.processing.org/bugs/show_bug.cgi?id=1566

+ Fix from takachin for a problem with full-width space with Japanese IME.
http://dev.processing.org/bugs/show_bug.cgi?id=1531

+ Reset matrix for the PDF library in-between frames also added begin/endDraw between frames
http://dev.processing.org/bugs/show_bug.cgi?id=1227

[ additions ]

+ Add the changes for “Copy as HTML” to replace the “Copy for Discourse” function, now that we’ve shut down the old YaBB discourse board.
http://code.google.com/p/processing/issues/detail?id=271

+ Option to disable re-opening sketches when you start Processing. The default will stay the same, but if you don’t like the feature, alter your preferences.txt file to change:
last.sketch.restore=true
to the following:
last.sketch.restore=false
The issue was originally filed here:
http://dev.processing.org/bugs/show_bug.cgi?id=1501
http://code.google.com/p/processing/issues/detail?id=245
However the main problem with this is that due to other errors, the wrong sketches are being opened, sketches are sometimes forgotten, or windows are opened concurrently on top of one another, creating a bad situation:
http://code.google.com/p/processing/issues/detail?id=177
http://code.google.com/p/processing/issues/detail?id=179
Those bugs are not yet fixed, but will be addressed in future releases.

+ Option to change the default naming of sketches via preferences.txt.
First, you can change the prefix, which defaults to:
editor.untitled.prefix=sketch_
And the suffix is handled using dates. The current default (since 1.0) is:
editor.untitled.suffix=MMMdd
Or if you want to switch back to the old (six digit) style, you could use:
editor.untitled.suffix=yyMMdd
http://dev.processing.org/bugs/show_bug.cgi?id=1091

+ Updated bundled JRE/tools to 6u20 for Windows and Linux

+ Several SVG fixes and additions, including some tweaks from PhiLho. These changes will be documented in a future release once the API changes are complete.

+ Added option to launch a sketch directly w/ linux. Thanks to Larry Kyrala.
http://dev.processing.org/bugs/show_bug.cgi?id=1549

+ Pass actual exceptions from InvocationTargetException in registered methods, which improves how exceptions are reported with libraries.

+ Added loading.gif to the js version of the applet loader. Not sure if this is actually working or not, but it’s there.

[ android ]

+ Added permissions for INTERNET and WRITE_EXTERNAL_STORAGE to the default AndroidManifest.xml file. This will be addressed in greater detail here:
http://code.google.com/p/processing/issues/detail?id=275
And with the implementation of code signing here:
http://code.google.com/p/processing/issues/detail?id=222

+ Lots of work happening underneath with regards to Android, more updates soon as things start evening out a bit.

+ Defaulting to a WVGA screen for the default Processing AVD.

Monday, June 21, 2010 | processing  

The Pleasures of Imagination

A wonderful article by Yale professor Paul Bloom on imagination:

Our main leisure activity is, by a long shot, participating in experiences that we know are not real. When we are free to do whatever we want, we retreat to the imagination—to worlds created by others, as with books, movies, video games, and television (over four hours a day for the average American), or to worlds we ourselves create, as when daydreaming and fantasizing. While citizens of other countries might watch less television, studies in England and the rest of Europe find a similar obsession with the unreal.

Another portion talks about emotional response:

The emotions triggered by fiction are very real. When Charles Dickens wrote about the death of Little Nell in the 1840s, people wept—and I’m sure that the death of characters in J.K. Rowling’s Harry Potter series led to similar tears. (After her final book was published, Rowling appeared in interviews and told about the letters she got, not all of them from children, begging her to spare the lives of beloved characters such as Hagrid, Hermione, Ron, and, of course, Harry Potter himself.) A friend of mine told me that he can’t remember hating anyone the way he hated one of the characters in the movie Trainspotting, and there are many people who can’t bear to experience certain fictions because the emotions are too intense. I have my own difficulty with movies in which the suffering of the characters is too real, and many find it difficult to watch comedies that rely too heavily on embarrassment; the vicarious reaction to this is too unpleasant.

The essay is based on an excerpt of his book, How Pleasure Works: The New Science of Why We Like What We Like, which looks like a good read if I could clear out the rest of the books on my reading pile.

A reading pile that, of course, contains too little fiction.

Friday, June 4, 2010 | creativity  

Illusive

A terrific set of videos from the “Best Illusion of the Year” contest. Congratulations to all the finalists, in particular first prize winner Koukichi Sugihara whose video is below:

More from Kokichi Sugihara (including an explanation of how this works) can be found here.

(thanks to my mother-in-law, who sent the link)

Saturday, May 22, 2010 | perception, science  

The Evolution of Privacy on Facebook

Inspired by this post by Kurt Opsahl of the EFF, Matt McKeon of IBM’s Visual Communication Lab created the following visualization depicting the evolution of the default privacy settings on Facebook:

sorry, still don't have an account on fb

Has a couple nice visual touches that prevent it from looking like YAHSVPOQUFOTI (yet another highly-stylized visualization piece of questionable utility found on the internet). Also cool to see it was built with Processing.js.

Friday, May 7, 2010 | javascript, privacy, processing, refine, social  

Cake Versus Pie: A Scientific Approach

Allie Brosh, who appears to be some sort of genius, brings us definitive arguments in the cake versus pie debate. Best to read the entire treatise, but here are a few highlights on how clearly pie defeats cake:

Ability of enjoyment to be sustained over time

what am i doing?

Couldn’t agree more: it always seems like a good idea on the first bite, and then I catch myself. What am I doing? I hate cake. Another graphic:

Unequal frosting distribution is a problem

mommy says don't swear about your dessert

I grew up requesting pie for my birthday (strawberry rhubarb, thank you very much) instead of cake. This resonates. More importantly (for this site), Brosh cites the enormous impact of pie vs. cake for information design and visualization:

Pie is more scientifically versatile:

eat your heart out, tufte. no pun intended.

Again, you really should read the full post, or the rest of her site for that matter. Her piece on the Alot is alone worth the price of admission.

Friday, May 7, 2010 | infographics, represent  

Pinhole camera image of the Sun’s path

A beautiful image taken by a pinhole camera, showing the Sun’s path over six months:

times square curvey billboards, eat your heart out

From the explanation:

The picture clearly shows the path of the sun through the sky over the last six months. I believe you can see we didn’t have a great summer by the broken lines at the top. More sun shone in the month of October.

The post also links to a description of how to make your own.

Tuesday, April 13, 2010 | physical, science  

Food Fight!

As reported here and here, Apple has updated the language in the latest release of their iPhone/iPad developer tools to explicitly disallow development with other tools and languages:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

I’m happy that Apple is being explicit about this sort of thing, rather than their previous passive aggressive stance that gave more wiggle room for their apologists. This is a big “screw you” to Adobe in particular, who had been planning to release a Flash-to-iPhone converter with Creative Suite 5. I understand why they’re doing it, but in the broader scheme of what’s at stake, why pick a fight with one of the largest software vendors for the Mac?

In addition to being grounded in total, obsessive control over the platform, the argument seems to be that the only way to make a proper iPhone/iPad experience is to build things with their tools, as a way to prevent people from developing for multiple platforms at once. This has two benefits: first, it encourages developers to think within the constraints and affordances of the platform, and second, it forces potential developers to make a choice of which platform they’re going to support. It’s not quite doubling the amount of work that would go into creating an app for both, say, the iPhone and Android, but it’s fairly close. So what will people develop for? The current winner with all the marketing and free hype from the press.

To be clear, developing within the constraints of a platform is incredibly important for getting an application right. But using Apple’s sanctioned tools doesn’t guarantee that, and using a legal document to enforce said tools steps into the ridiculous.

Fundamentally, I think the first argument — that to create a decent application you have to develop a certain way, with one set of tools — is bogus. It’s a lack of trust in your developers and even moreso, a distrust of the market. In the early days of the Macintosh, it was difficult to get companies to rework their DOS (or even Apple II) applications to use the now-familiar menu bars and icons. The Human Interface Guidelines addressed it specifically. And when companies ignored those warnings, and released software that was a clear port from a DOS equivalent, people got upset and the software got trashed. Just search for the phrase “not mac-like” and you’ll get the picture. Point being, people came around on developing for the Mac, and it didn’t require a legal document saying that developers had to use MPW and ResEdit.

The market demanded software that felt like Macintosh applications, and it’s the same for the iPhone and iPad. On the tools side, the free choice also meant that the market produced far better tools than what Apple provided — instead of the archaic MPW (ironically, itself something of a terminal application), Think Pascal, Lightspeed C, Metrowerks Codewarrior, and even Resorcerer all filled in various gaps at different times, all providing a better platform than (or at least a suitable alternative to) Apple’s tools.

But like this earlier post, it seems like Apple is being run by someone who is re-fighting battles of the 80s and 90s, but whose personal penchant for control prevents him from learning from the outcomes. That rhyming sound you hear? It’s history.

Friday, April 9, 2010 | cs, languages, mobile, software  

Cut! Cut! Paste. Cut!

Nice heat map image of how people use the menu bar in Firefox by Alex Faaborg:

copy! copy! paste! copy!

Most of the results are what you’d expect, but fun to see it nonetheless. Some other info graphics using the same data can be found here, and even better, the raw data can be found here.

Thursday, April 1, 2010 | data, heatmap, interact, inventory  

What this interminable conflict needs is a *mind map*

worse than boehner's health care diagram

What’s that?

It’s actually a map of counter-insurgency strategy for Afghanistan?

Oh.

Wednesday, March 31, 2010 | networks, news, politics, thisneedsfixed  

Controlled leaks and pre-announcements

This Wall Street Journal piece sounds a lot like a controlled leak:

Apple Inc. plans to begin producing this year a new iPhone that could allow U.S. phone carriers other than AT&T Inc. to sell the iconic gadget, said people briefed by the company.

The new iPhone would work on a type of wireless network called CDMA, these people said. CDMA is used by Verizon Wireless, AT&T’s main competitor, as well as Sprint Nextel Corp. and a handful of cellular operators in countries including South Korea and Japan. The vast majority of carriers world-wide, including AT&T, use another technology called GSM.

(Paranoid emphasis my own.) Apple (like any other major company) has been known to use leaks to their advantage, and there seems to be an uptick of next generation iPhone rumors (double-size screen, faster processor, thinner, Verizon) in the past week that seems to coincide with the announcement of several promising-sounding Android phones (big screens, fancy features, 4G and HSPA+ networks, thin, light, lots of providers). It doesn’t seem like Apple is terribly worried about Android, but aggressively keeping the Android platform from getting any sort of traction would makes good business sense.

I think this is the first time that I’ve seen such rumors appearing to coincide with Android launches (that you probably didn’t even hear about), which gave me some hope that Android might be going somewhere. (I use an iPhone and a Nexus One. I’m rooting for competition and better products more than either platform.)

Microsoft was always good at using pre-announcements to kill competitor’s products (“oh, I can wait a couple months for the Microsoft solution…”), which is of course different than just leaking. Microsoft often wouldn’t ship the product, or would ship a far inferior version to what was announced or leaked, but in the meantime, they had successfully screwed the competitor. I think it’s safe to assume that there will be a new iPhone (or two) in June like there have been the past several years.

And now, back to playing with data… rumors are clearly not my thing.

Tuesday, March 30, 2010 | mobile, rumors  

Yeah, that sounds about right…

More greatness from xkcd:

the no longer secret life of numbers

(Thanks Andrea)

Monday, March 29, 2010 | inventory  

A glimpse of modern reporting

Colin Raney turned me on to this project (podcast? article? info graphic? series? part of what’s great is that there isn’t really a good term for this) by the team of five running the Planet Money podcast for NPR. To explain toxic assets, they bought one, and are now tracking its demise:

losing $1000 isn't usually this elegant

Here I’m showing the info graphic, which is just one component of telling the broader story. The series does a great job of balancing 1) investigative journalism (an engaging story), 2) participation by a small team (the four reporters plus their producer each pooled $200 apiece), 3) timely and relevant, 4) really understanding an issue (toxic assets are in the news but we still don’t quite get it), 5) distribution (blog with updates, regular podcast), and 6) telling a story with information graphics (being able to track what’s happening with the asset).

I could keep adding to that numbered list, but my hastily and poorly worded point is that the idea is just right.

Perhaps if the papers weren’t so busy wringing their hands about the loss of classified ads, maybe this would have been the norm five years ago when it should have been. But it’s a great demonstration of where we need to be with online news, particularly as it’s consumed with all these $500 devices we keep purchasing, that deliver the news in a tiny, scrolly text format that echoes the print version. A print format that’s 100s of years old.

Anyhow, this is great. Cheers to the Planet Money folks.

(Another interesting perspective here, from TechDirt, which was the original link I read.)

Friday, March 26, 2010 | infographics, news  
Older Posts »
Book

Visualizing Data Book CoverVisualizing Data is my book about computational information design. It covers the path from raw data to how we understand it, detailing how to begin with a set of numbers and produce images or software that lets you view and interact with information. Unlike nearly all books in this field, it is a hands-on guide intended for people who want to learn how to actually build a data visualization.

The text was published by O’Reilly in December 2007 and can be found at Amazon and elsewhere. Amazon also has an edition for the Kindle, for people who aren’t into the dead tree thing. (Proceeds from Amazon links found on this page are used to pay my web hosting bill.)

Examples for the book can be found here.

The book covers ideas found in my Ph.D. dissertation, which is basis for Chapter 1. The next chapter is an extremely brief introduction to Processing, which is used for the examples. Next is (chapter 3) is a simple mapping project to place data points on a map of the United States. Of course, the idea is not that lots of people want to visualize data for each of 50 states. Instead, it’s a jumping off point for learning how to lay out data spatially.

The chapters that follow cover six more projects, such as salary vs. performance (Chapter 5), zipdecode (Chapter 6), followed by more advanced topics dealing with trees, treemaps, hierarchies, and recursion (Chapter 7), plus graphs and networks (Chapter 8).

This site is used for follow-up code and writing about related topics.

As seen on Twitter