The Great Itch — The Project?

Art Lovers, New Yorkers, and Software Developers…a weekend project built for you

Jonathan Gill
5 min readJun 4, 2014

There’s a piece of artwork that is rarely on display that I’m obsessed with one day being able to view in person. It is one of the most recognizable and reproduced pieces of art in the world (interestingly all forms of it are actually facsimiles because it is a print) yet very few people have actually seen it up close and in person (myself included), so as a weekend project I decided to scratch an itch and to build an application to let people know when they can finally see it in person.

Just to prove my point about the piece being rather iconic, do you recognize this image? Yes? No? Call me maybe?

The Great Wave
Under the Wave off Kanagawa
(神奈川沖浪裏) by Katsushika Hokusai
(葛飾 北斎)

It is an image of the Japanese woodblock print commonly called “The Great Wave” by Katsushika Hokusai (葛飾 北斎) from Hokusai’s Thirty-Six Views series.

Museums around the world have copies of the print from 1829-1832 AD, but it is rarely on display out of concerns over damage to the fragile paper (strangely they still use The Great Wave on a plethora of marketing materials, but “it gets the people going”). I’ve personally tried to view the work that goes by many names (Under the Wave off Kanagawa, The Great Wave off Kanagawa, Under The Great Wave off Kanagawa, The Great Wave, The Wave, etc.) in London at The British Museum and in New York at The Metropolitan Museum of Art, like countless other people, to no avail.

I’m not a New Yorker, but when I am in New York I tend to stop by The Met and I check in on my friend (that I’ve never MET…feel free to laugh…really). It may be because of an imminent milestone birthday around the corner, but I’ve been thinking about the places and things I would want to see in the world and seeing The Great Wave in person makes it onto the list. I did not want to check every few weeks and months, asking the internet sages “Is it there yet?” over and over again.

I built TheGreatWaveNotifier.com to add functionality that is missing from numerous museum websites to notify myself and others when a particular work is on display or view through passive notifications.

Not to pick on my beloved Met, but their website like most museum websites lacks a feature to notify someone who is anticipating a piece being on display (with the option to unsubscribe after).

So what exactly did I build?

I built a:

  • REST API (this is a particular style of web service or application interface for the non-software developers reading this) that can be called from any client that understands HTTP (this means browsers, JavaScript, serverside code in just about any modern programming language, etc.) to subscribe to receive a notification when The Great Wave is on display
    - I even baked in caching and ETags (might as well build the way I would want)
  • State machine that keeps track of when a work is on display or not
  • Bot/crawler that periodically checks The Met’s web site to determine if any edition of The Great Wave (shhhh, it can work for anything in The Met’s collection) is on display
  • Batched notification system (it happens to send e-mails instead of e-mails and/or text messages)

Then to top it off it’s all hosted in the cloud with a cloud oriented database (Microsoft Azure SQL) with static assets served via CDN (Amazon Cloudfront).

As you may be able to tell, I set off to scratch an itch and solve a problem for myself and ended up building something other people could also learn from and utilize in a small way.

That said, I also added some fun takeaways beyond the core functionality that can be repurposed when a person or company wants to communicate with software “makers” on a website or through an API. They are variations on the same concept of putting “hidden” messages where developers and makers would tend to look when using a web application or API.

  • Use console.log to communicate with developers
    When the single page application loads it writes a message that is visible to developers using JavaScript’s console.log method (most web browsers have a developer tools option, tab, or plugin that allows developers to debug web pages). The only people that are likely going to see this message are people that have developer tools open on a web page, so this could be used to communicate with potential hires for instance.
Screenshot of a browser’s developer console with a message intended for “developers’ eyes only”
  • Use HTTP headers to communicate with developers
    Use outbound HTTP responses (e.g. when a page loads or API response returns) to write custom header values into the responses. Developers looking at the headers will be able to see what you write. I sometimes use this trick to replace headers (think the server you are accessing is an OSX server with NeXTSTEP and PHP 5.5, maybe…maybe not).
Screenshot of a web traffic debugger’s view of an HTTP response

Now I never have to wonder if The Great Wave is on display at The Met. I will get proactively notified in a passive way and I had a pretty good time hacking around to solve this little problem.

If you live in the New York city area or willing to book a trip to see The Great Wave (the next time it’s on display, I’ll be there), I hope you sign up for TheGreatWaveNotifier.com.

Ciao,
Jonathan Gill

https://twitter.com/jgill333/status/473227732587798528

P.S. — Please share TheGreatWaveNotifier.com with anyone you think may be interest and if you know someone at The Met, maybe pass this onto them.

--

--