Permalink
Browse files

created jekyll blog, first blog post

  • Loading branch information...
electronicwhisper committed Jun 9, 2012
1 parent 5bbcc01 commit fc9a736956bdc7dc82c471eeba82d0f44f7697dd
Showing with 220 additions and 1 deletion.
  1. +2 −1 .gitignore
  2. +5 −0 _config.yml
  3. +9 −0 _includes/post.html
  4. +20 −0 _layouts/layout.html
  5. +5 −0 _layouts/post.html
  6. +48 −0 _posts/2012-06-08-Recursive-Drawing.md
  7. +45 −0 css/reset.css
  8. +77 −0 css/style.css
  9. +9 −0 index.html
View
@@ -1 +1,2 @@
-.ds_store
+.ds_store
+_site
View
@@ -0,0 +1,5 @@
+auto: true
+markdown: rdiscount
+permalink: /:year/:month/:day/:title
+rdiscount:
+ extensions: [smart]
View
@@ -0,0 +1,9 @@
+<div class="post">
+ <div class="title">
+ <h1><a href="{{ page.url }}">{{ page.title }}</a></h1>
+ <span class="date">{{ page.date | date: "%B %e, %Y" }}</span>
+ </div>
+ <div class="content">
+ {{ content }}
+ </div>
+</div>
View
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML>
+
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta name="author" content="Toby Schachman" />
+ <title>{{ page.title }}</title>
+ <link rel="stylesheet" href="/css/reset.css" type="text/css" media="screen" title="no title" charset="utf-8">
+ <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" title="no title" charset="utf-8">
+ </head>
+ <body>
+ <header>
+ <h1><a href="/">Totem</a></h1>
+ <span class="byline">Experiments in new forms of human-computer collaboration by <a href="http://tobyschachman.com/">Toby Schachman</a>.</span>
+ </header>
+ <section>
+ {{ content }}
+ </section>
+ </body>
+</html>
View
@@ -0,0 +1,5 @@
+---
+layout: layout
+---
+
+{% include post.html %}
@@ -0,0 +1,48 @@
+---
+layout: post
+title: Recursive Drawing
+---
+
+[Recursive Drawing](http://recursivedrawing.com/) is an experiment in spatial user interfaces for programming. It was the main part of my 2012 ITP thesis project [Alternative Programming Interfaces for Alternative Programmers](https://vimeo.com/41968528).
+
+You can try [Recursive Drawing](http://recursivedrawing.com/) in the browser.
+
+<iframe src="http://player.vimeo.com/video/41822151?title=0&amp;byline=0&amp;portrait=0" width="540" height="304" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
+
+## Origins
+
+Recursive Drawing is a reimplementation of the textual programming language CFDG (a.k.a. [Context Free](http://www.contextfreeart.org/)) by Chris Coyne. CFDG is a declarative approach to producing algorithmic pictures. Contrast the declarative approach with the [imperative approach of Processing](http://processing.org/learning/topics/tree.html) or Logo.
+
+It is further inspired by Bret Victor's challenge to create [*directly manipulable* interfaces for programming dynamic pictures](http://worrydream.com/#!/DynamicPicturesMotivation). Recursive Drawing is a directly manipulable version of CFDG.
+
+## Audience
+
+Recursive Drawing is intended as a demonstration of an alternative approach to programming for two audiences: creative coders and programming language designers.
+
+### Creative Coders
+
+Creative coders are artists, designers, and other creative explorers who use computer programming as a means to realize their work. For historical reasons, the most popular programming tools in this community tend to be low-level, imperative, C-like languages (e.g. Processing, openFrameworks, Arduino).
+
+I believe that these tools no longer serve this community well for many of the types of projects that they work on. Imperative programming mires the artist in implementation details, drawing focus away from the work itself. This complaint applies to traditional programming as well but is doubly bad for artists. While traditional programmers often work towards a *spec*, artists generally work towards feelings and intuitions. It is therefore essential that they have a programming tool that enables them to rapidly test out ideas.
+
+### Programming Language Designers
+
+There are a lot of great ideas in the programming language design community that do not gain traction and cannot evolve because they target traditional programmers. By targeting traditional programming, it is very difficult to avoid making merely incremental improvements on the art.
+
+Revolutionary new ways to think about computing have historically targeted new groups of programmers. Engelbart's NLS was designed for anybody who worked with information. Smalltalk was designed for children. Hypercard was designed for "end users".
+
+We are witnessing the emergence of a new generation of programmers--"creative coders" who integrate programming into broader cultural visions. This provides an opportunity for programming language designers to radically reshape the field.
+
+## Future
+
+For me, Recursive Drawing shows that there are promising avenues to explore in spatial interfaces for rich human-computer collaboration. I will focus on two main user interface design problems in the near-term future.
+
+The first is interfaces for creating richer spatial relationships between shapes. I plan to explore this problem by reimplementing Ivan Sutherland's [Sketchpad](http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-574.pdf) (1963) using modern interface conventions and the affordances of present technology.
+
+The second is working with other types of spaces (higher-dimensional, non-Euclidean, alternative topologies) and importantly working with maps between spaces. A motivating example might be, how would one design the color features of Context Free in an elegant, directly manipulable way? Another promising experiment would be to create a directly manipulable implementation of a shader language like Core Image or OpenGL. These shader languages essentially specify transformations between spaces (including color space).
+
+## Resources
+
+1. I kept a [Tumblr journal of research](http://collidingcontexts.tumblr.com/) as I worked on my thesis. It's full of interesting links.
+2. Here's [the first proof of concept](http://electronicwhisper.github.com/toys/1/) of Recursive Drawing. It showed that an interface for recursive manipulation would *feel* good. Here's [the second](http://electronicwhisper.github.com/toys/2/). I emphasized the use of arrows to orient the nested coordinate systems until I realized that this was a representation exposure.
+3. High level textual implementations of shaders include Conal Elliott's [Pan](http://conal.net/Pan/) and Sean McDirmid's [Bling](http://bling.codeplex.com/). See also [this discussion](http://lambda-the-ultimate.org/node/4326) on LtU.
View
@@ -0,0 +1,45 @@
+/* http://meyerweb.com/eric/tools/css/reset/
+ v2.0 | 20110126
+ License: none (public domain)
+*/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+body {
+ line-height: 1;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
View
@@ -0,0 +1,77 @@
+body {
+ font-family: georgia;
+ font-size: 13px;
+ line-height: 1.5;
+ color: #222;
+}
+
+a {
+ color: #900;
+}
+a:visited {
+ color: #500;
+}
+a:hover {
+ color: #f00;
+}
+em {
+ font-style: italic;
+}
+
+header {
+ background-color: #eee;
+ padding: 12px 18px 18px 72px;
+}
+header h1 {
+ font-size: 40px;
+}
+.byline {
+ color: #666;
+}
+
+
+
+.post {
+ max-width: 540px;
+ margin: 72px 72px 144px 72px;
+}
+.title {
+ text-align: center;
+ margin-bottom: 39px;
+}
+.date {
+ color: #999;
+}
+
+h1 {
+ font-size: 22px;
+ font-weight: bold;
+ color: #000;
+}
+h1 a, h1 a:visited {
+ color: #000;
+ text-decoration: none;
+}
+
+h2 {
+ font-size: 16px;
+ font-weight: bold;
+ margin: 26px 0px 13px -24px;
+ color: #000;
+}
+
+h3 {
+ font-size: 13px;
+ font-weight: bold;
+ margin: 26px 0px 13px 0px;
+ color: #000;
+}
+
+p {
+ margin: 13px 0px 13px 0px;
+}
+
+li {
+ margin-left: 18px;
+ margin-bottom: 13px;
+}
View
@@ -0,0 +1,9 @@
+---
+layout: layout
+title: Totem - Experiments in new forms of human-computer collaboration
+---
+
+{% for page in site.posts %}
+ {% assign content = page.content %}
+ {% include post.html %}
+{% endfor %}

0 comments on commit fc9a736

Please sign in to comment.