<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
  <title>reg:exp</title>
  <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/" />
  <modified>2010-05-09T23:19:17Z</modified>
  <tagline></tagline>
  <id>tag:regexp.bjoern.org,2010://2</id>
  <generator url="http://www.movabletype.org/" version="4.21-en">Movable Type</generator>
  <copyright>Copyright (c) 2010, Bjoern Hartmann</copyright>

  <entry>
    <title>Book Notes: The Design of Design (Fred Brooks)</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000222.html" />
    <modified>2010-05-09T23:19:17Z</modified>
    <issued>2010-05-09T16:18:51-08:00</issued>
    <id>tag:regexp.bjoern.org,2010://2.222</id>
    <created>2010-05-09T23:18:51Z</created>
    <summary type="text/plain">Fred Brooks is well known among computer scientists for (at least) two reasons: his work at IBM managing the development of the System/360 hardware and software, and his book describing that experience, The Mythical Man-Month (That book introduced Brooks&apos;s law:...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    <dc:subject>hci</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p><a href="http://en.wikipedia.org/wiki/Fred_Brooks">Fred Brooks</a> is well known among computer scientists for (at least) two reasons: his work at IBM managing the development of the System/360 hardware and software, and his book describing that experience, <a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/ref=pd_sim_b_1">The Mythical Man-Month</a> (That book  introduced <a href="http://en.wikipedia.org/wiki/Brooks%27s_law">Brooks's law</a>: "Adding manpower to a late software project makes it later.") Brooks is a professor at UNC Chapel Hill where his <a href="http://www.cs.unc.edu/~brooks/">research</a> is focused on human-computer interaction and scientific visualization, especially in augmented and virtual environments.</p>

<p>Brooks has credibility with computer scientists, and this will likely be of importance for the impact of "The Design of Design," a collection of essays about design process in computer science (his work) and architecture (of buildings - his hobby). For readers familiar with the design research literature, the book may hold relatively few new insights and will re-present many common themes. But its target reader is not the design specialist; it's the software engineer and software team manager. With this reader in mind, the book succeeds as a cogent argument for the importance of paying attention to design process and getting that process right. Having this argument presented by a respected engineer, manager, and researcher in his no-nonsense style, illustrated with numerous examples of important, complex projects may carry the necessary weight for those skeptical of the fuzzy nature of design. This is a great book to hand to incoming CS graduate students and engineering colleagues.</p>

<p>To sum up the main arguments of the book: First, <strong>Brooks makes the case for iterative design</strong>. The "rational model" of design as a sequence of well-delineated stages (as found in Royce's Waterfall model and Simon's science of design) comes naturally to engineers; it mischaracterizes what actually happens in practice; it is thus harmful to real-world projects. Our ideas are incomplete and inconsistent before we attempt to realize them - thus requirements cannot be captured in the abstract. The role of design is to uncover requirements and to generate alternative strategies to meet those requirements. The project definition necessarily changes as we work on it; the process model must take this into account. Brooks points to <a href="http://en.wikipedia.org/wiki/Spiral_model">Boehm's spiral</a> and other models of iterative development with regular end-user involvement.  </p>

<p>Second, <strong>the overall goal of design is to achieve conceptual unity</strong> across all aspects of a project. This is hard; design by committee never achieves it. Open Source design can achieve conceptual integrity - but it tends to do so only in domains where the builders are also the users (e.g., Linux). Brooks is unsure if Open Source works well as a methodology when designing for others, because of the incentive structures of the Open Source community (he strongly recommends reading <a href="http://catb.org/esr/writings/homesteading/">Raymond</a> though). </p>

<p><strong>How can one achieve conceptual integrity in design teams</strong>, while leveraging the benefits of collaboration? Conceptual integrity requires having only one, at most two, main system architects and one, at most two, primary UI designers. However, more bodies are advantageous for uncovering needs and for design reviews. (For brainstoriming, "more minds mean more ideas. [...] the ideas are not necessarily better.") CSCW research is misguided if it envisions equal-participation collaboration as it ignores synchronization costs. While many CSCW design tools have been proposed, few have succeeded in practice (with revision control and "track changes" the exceptions); thus, Brooks cautions against assigning PhD dissertation topics in collaborative design tools. I agree that a naive approaches to collaboration often fail; but I disagree that careful, grounded research by graduate students cannot rise to the challenge. </p>

<p>Chapters in the section on "design perspectives" examine rationalism versus empiricism as fundamental stances toward design; the role of limited resources and constraints; "style" in engineering design, and the role of exemplars. Brooks points out that the prevalence of the rational view (careful planning and reasoning alone can yield the right design) is unique to computer science; all design disciplines that deal with the vagaries of the physical world necessarily rely on testing and iteration because of the limitations of their formal methods. However, taking an empirical stance to design does not relieve the designer of the responsibility of careful thought and planning. Constraints are welcome, because it is easier for a designer to exercise restraint when designing for a narrow purpose than a general one.</p>

<p>What defines <strong>style in design</strong>? Parsimony (economy of expression) is often an ingredient, but it alone is insufficient. For example, a minimal instruction set might be Turing-complete, but it does not support any one concrete task well. Beyond concision, then, "structural clarity" is required: it "demands that the basic structural concept of the design be plainly evident and, if not logically straightforward, easily explained." Style in engineering design is "a set of different repeated microdecisions, each made the same way whenever it arises, even though the context may be different." Style is hard (and voluminous) to explicitly specify, this is one of the reasons that coherent style in group design is rarely achieved. While documentation of style is not trivial, Brooks argues strongly for doing so. This raises the question: how might documentation of a design style be facilitated?</p>

<p>The chapter on the role of <strong>exemplars in design</strong> was of special interest to me as example-centric development has been a research focus of mine (see <a href="http://portal.acm.org/citation.cfm?id=1294254">d.mix</a>, <a href="http://doi.acm.org/10.1145/1753326.1753478">HelpMeOut</a>)  and of <a href="http://hci.stanford.edu/research/opportunistic/">colleagues</a>. Referring to exemplars in design has important benefits (the "provide safe models for new designs, implicit checklists of design tasks, warnings of potential mistakes, and launching pads for radical new designs.") The use of exemplars in software design lacks in comparison to other disciplines, which Brooks laments. Novices and experts may draw upon different sets of exemplars: novices tend to use ones encountered in their immediate experience, while experts refer a much larger set of historical precedents. Our scholarly literature often does a poor job at explaining the rationale for design decisions in software systems - thus papers are of limited use as design exemplars. However, conveying rationale is what really matters. (For research, this suggests that merely showing related exemplars without proper explanation of why they are shown may not be sufficient.) The systematic collection and cataloging of exemplars should be encouraged (but doesn't count as research in technical disciplines). Beyond collection, exemplars should be critiqued and compared to others. But, does reliance on examples lead to laziness and restrict originality? Brooks answers that one should not design by merely copying and adapting exemplars, but by deeply understanding their rationale and transferring the approach, rather than the surface structure. He concedes that "the world is full of lazy Bauhaus architecture and mediocre ranch-type homes" but argues that the fallacy of their architects was a too near-sighted in use of exemplars.</p>

<p>The later sections of the book were less central to Brooks' argument, and to my interests. A historical note describes how the profession of design is characterized by its divorce from making, as well as from using, the designed artifact. This means that designers have to work hard to understand the perspective of both the implementer and the final users, as neither come naturally. A chapter on the attempted capture of design rationale during the process of design (of a house) concludes that such a project is rather complicated,  and that current tools are not much help. The book concludes with a set of case studies which answer his own call to capture and describe design rationale through collections of exemplars. However, they are also very specific to the design of houses, organizations, books. To me then their value is in demonstrating the possible format of rationale descriptions.</p>

<p>One surprising aspect of the book is the repeated use of Biblical references in the prose. These tend to detract from Brooks' otherwise sound arguments for those of us of alternative persuasions.</p>

<p><br />
</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>Book Notes: &quot;Prototyping - A Practitioner&apos;s Guide&quot; (Todd Zaki Warfel)</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000221.html" />
    <modified>2010-05-08T00:10:03Z</modified>
    <issued>2010-05-07T16:33:03-08:00</issued>
    <id>tag:regexp.bjoern.org,2010://2.221</id>
    <created>2010-05-07T23:33:03Z</created>
    <summary type="text/plain"><![CDATA[My dissertation focused on prototyping tools for interaction designers so I have been keeping an eye out for relevant design process books. Two such books have recently been published: Todd Zaki Warfel's &quot;Prototyping - A Practitioner's Guide&quot; makes the case...]]></summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    <dc:subject>text</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p>My <a href="http://bjoern.org/dissertation/">dissertation</a> focused on prototyping tools for interaction designers so I have been keeping an eye out for relevant design process books. Two such books have recently been published: Todd Zaki Warfel's &quot;<a href="http://www.rosenfeldmedia.com/books/prototyping/">Prototyping - A Practitioner's Guide</a>&quot; makes the case for prototyping in UI design and contains tutorials on constructing prototypes in various software tools. Fed Brooks' &quot;<a href="http://www.amazon.com/Design-Essays-Computer-Scientist/dp/0201362988">The Design of Design</a>&quot; is a collection of musings on the design process, drawing examples from computer systems (Brooks' work) and architecture (of his own house). These are some first impressions after (partially) reading Warfel's book on my daily BART commute. Notes on Brooks will follow later.</p>

<p>Warfel addresses his book at fellow interaction designers that want to know how, when, and why to prototype during the design and development of user interfaces. The first part of the book surveys the conceptual landscape; the second part describes six small prototyping projects, each conducted in a different tool: on paper, and in PowerPoint, Visio, Fireworks, Axure RP Pro, and HTML+Javascript. This structure would have made the book a good candidate text for the <a href="http://hci.berkeley.edu/design-clinics/">UI Prototyping Design Clinics</a> I co-taught this Spring at Berkeley; I will suggest the book to students in future semesters.</p>

<p>There are many things to like beyond the nuts and bolts description of how to use various tools: Warfel systematically describes which tool fits which purpose; he shows survey data which tools designers use today; and he adds multiple case studies that give concrete examples how prototypes were constructed and what functions they served.</p>

<p>At times though, the tone was too conversational, obscuring rather than highlighting insights. More importantly, the conceptual argument about the value of prototypes seems to mostly derive from the author's intuition and experience. Often, his arguments ring true. However, much has already been said and written in the HCI, computer science and design communities about different kinds of prototypes and the roles they serve in the design process. A discussion that takes this prior work into account or at least points to it for further reading would have been much appreciated (I have <a href="http://designclinics.pbworks.com/f/hartmann-prototypes-ch2.pdf">a partial list</a>). Finally, many of the surveyed tools focus on the same small area of the design space of prototyping tools: creating static screens for desktop or browser-based UIs and hyperlinking them in some fashion. Continuous interactions, gesture/multitouch input, and other non-desktop UIs are only mentioned in passing. But that bias might be an artifact of today's tools - Brad Myers' <a href="http://portal.acm.org/citation.cfm?id=1550067">survey of interaction designers</a> from VL/HCC08 points out that designer need better tools to prototype rich interactive behaviors. Some tools to do so are already available: <a href="http://www.adobe.com/products/flashcatalyst/">Flash Catalyst</a> was recently released; and research projects such as <a href="http://www.k-sketch.org/">K-Sketch</a> demonstrate that we researchers can contribute better tools to rapidly create more dynamic prototypes as well.</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>Two new papers at CHI 2010</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000220.html" />
    <modified>2010-01-12T22:24:01Z</modified>
    <issued>2010-01-12T12:01:12-08:00</issued>
    <id>tag:regexp.bjoern.org,2010://2.220</id>
    <created>2010-01-12T20:01:12Z</created>
    <summary type="text/plain">I will present two new papers at CHI2010 in April - final preprints and some videos are available now, below. Hartmann, Björn, MacDougall, D., Brandt, J., and Klemmer, S.R. What Would Other Programmers Do? Suggesting Solutions to Error Messages. Proceedings...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    <dc:subject>hci</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p>I will present two new papers at CHI2010 in April - final preprints and some videos are available now, below.</p>

<p><strong>Hartmann, Björn</strong>, MacDougall, D., Brandt, J., and Klemmer, S.R. <a href="http://bjoern.org/papers/hartmann-chi2010a.pdf">What Would Other Programmers Do? Suggesting Solutions to Error Messages</a>. Proceedings of CHI 2010: ACM Conference on Human Factors in Computing Systems. Atlanta, GA, 2010.<br />
<object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/OQnmmnHjZvU&hl=en_US&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/OQnmmnHjZvU&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>

<p><br />
<strong>Hartmann, Björn</strong>, Follmer, S., Ricciardi, A., Cardenas, T., and Klemmer, S.R. <a href="http://bjoern.org/papers/hartmann-chi2010a.pdf">d.note: Revising User Interfaces Through Change Tracking, Annotations, and Alternatives</a>. Proceedings of CHI 2010: ACM Conference on Human Factors in Computing Systems. Atlanta, GA, 2010.</p>

<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/naDiF5k4VPY&hl=en_US&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/naDiF5k4VPY&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>]]>
      
    </content>
  </entry>

  <entry>
    <title>Where should I start? (API Documentation)</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000219.html" />
    <modified>2009-08-02T03:36:37Z</modified>
    <issued>2009-08-01T19:39:42-08:00</issued>
    <id>tag:regexp.bjoern.org,2009://2.219</id>
    <created>2009-08-02T02:39:42Z</created>
    <summary type="text/plain">While preparing materials for a Processing workshop I will teach at the California College of Arts in a few weeks, a question I&apos;ve been mulling over in recent weeks reared its head again: If I am new to a particular...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    <dc:subject>hci</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p>While preparing materials for a <a href="http://www.processing.org">Processing</a> workshop I will teach at the <a href="http://www.cca.edu">California College of Arts</a> in a few weeks, a question I've been mulling over in recent weeks reared its head again: </p>

<p><em>If I am new to a particular API, how do I know where to start?</em><br />
 <br />
Automatically generated documentation such as Javadocs do a poor job at directing attention, because they do not convey any information about how a library is typically used. The Processing reference page is not much better - while it offers some thematic grouping, it still shows one big laundry list of functions that is hard to digest. Small examples and tutorials are great, but someone has to go through the trouble of writing them first.</p>

<p><br />
<a href="http://www.cs.cmu.edu/~bam/">Brad Myers</a>, in his talk at <a href="http://www.almaden.ibm.com/cs/user/npuc2009/">NPUC 2009</a>, mentioned two new research projects to improve API documentation at CMU: <a href="http://edelstein.pebbles.cs.cmu.edu/apatite/index.html">Apatite</a>, and <a href="http://edelstein.pebbles.cs.cmu.edu/jadeite/index.html">Jadeite</a>. What immediately resonated with me in both projects was the use of variable font sizes to indicate relative importance or frequency of use of methods/classes/.... In other words, apply the tag cloud paradigm to API docs.</p>

<p>Can this approach help novices find their way through the Processing reference documentation? I wrote a small Python script to count occurences of function names in a corpus of ~1000 Processing source files, pulled from the Processing examples, files posted to the Processing forum, and ones retrieved by Google search for the .pde extension. The script then reformats the main reference page to show relative frequency of occurrence. <a href="http://bjoern.org/experiments/processing-reference/index-all.html">Here are the results</a>:</p>

<p><a href="http://bjoern.org/experiments/processing-reference/index-all.html"><img src="http://bjoern.org/experiments/processing-reference/ref-512.png" width="512" border="0"/></a></p>

<p>Appears promising, although there are still some wrinkles in <a href="http://bjoern.org/experiments/processing-reference/calc-fn-calls.html">the code</a> to be ironed out (as always).</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>New papers in the queue</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000218.html" />
    <modified>2009-07-30T14:10:21Z</modified>
    <issued>2009-07-30T07:02:54-08:00</issued>
    <id>tag:regexp.bjoern.org,2009://2.218</id>
    <created>2009-07-30T14:02:54Z</created>
    <summary type="text/plain">Some papers from my internship at Microsoft Research are finally finding their way out into the world: Hartmann, B., Morris, M.R., Benko, H., and Wilson, A. Augmenting Interactive Tables with Mice &amp; Keyboards. Proceedings of UIST 2009, in press. (tech...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    <dc:subject>hci</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p>Some papers from my internship at Microsoft Research are finally finding their way out into the world:</p>

<p>Hartmann, B., Morris, M.R., Benko, H., and Wilson, A. Augmenting Interactive Tables with Mice & Keyboards. <em>Proceedings of UIST 2009</em>, in press. (<a href="http://research.microsoft.com/apps/pubs/default.aspx?id=81153">tech report version</a>)</p>

<p>Hartmann, B., Morris, M.R., Benko, H., and Wilson, A. Pictionaire: Supporting Collaborative Design Work by Integrating Physical and Digital Artifacts. <em>Proceedings of CSCW 2010</em>, in press.</p>

<p>In addition, I've started a new project on recommender systems. I've shown a first poster at IBM's NPUC and will also show as a work-in-progress at UIST:</p>

<p>Hartmann, B., MacDougall, D., Klemmer, S.R.. What would other programmers do? Suggesting solutions to compiler errors. <em>Adjunct Proceedings of UIST 2009</em>, in press.</p>

<p>I'll add PDFs as they become available.</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>PhD Defended</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000217.html" />
    <modified>2009-06-01T19:33:15Z</modified>
    <issued>2009-06-01T12:29:00-08:00</issued>
    <id>tag:regexp.bjoern.org,2009://2.217</id>
    <created>2009-06-01T19:29:00Z</created>
    <summary type="text/plain">I successfully defended my dissertation at Stanford on Friday, May 29, 2009. Here are the slides: Bjoern&apos;s PhD Defense Talk Slides...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    <dc:subject>hci</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p>I successfully defended my dissertation at Stanford on Friday, May 29, 2009. Here are the slides:</p>

<p><a title="View Bjoern's PhD Defense Talk Slides on Scribd" href="http://www.scribd.com/doc/16013219/Bjoerns-PhD-Defense-Talk-Slides" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;">Bjoern's PhD Defense Talk Slides</a> <object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_669552047559250" name="doc_669552047559250" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle"	height="500" width="100%" rel="media:document" resource="http://d.scribd.com/ScribdViewer.swf?document_id=16013219&access_key=key-29u98bskn4kwyts9kxqj&page=1&version=1&viewMode=" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:dc="http://purl.org/dc/terms/" >		<param name="movie"	value="http://d.scribd.com/ScribdViewer.swf?document_id=16013219&access_key=key-29u98bskn4kwyts9kxqj&page=1&version=1&viewMode="> 		<param name="quality" value="high"> 		<param name="play" value="true">		<param name="loop" value="true"> 		<param name="scale" value="showall">		<param name="wmode" value="opaque"> 		<param name="devicefont" value="false">		<param name="bgcolor" value="#ffffff"> 		<param name="menu" value="true">		<param name="allowFullScreen" value="true"> 		<param name="allowScriptAccess" value="always"> 		<param name="salign" value="">    				<embed src="http://d.scribd.com/ScribdViewer.swf?document_id=16013219&access_key=key-29u98bskn4kwyts9kxqj&page=1&version=1&viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_669552047559250_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"></embed>					 							<span rel="media:thumbnail" href="http://i.scribd.com/public/images/uploaded/34890201/Z8HhXyRGgNFlMr_thumbnail.jpeg"> 						</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>Jim Campbell Exploration</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000216.html" />
    <modified>2009-04-25T06:29:20Z</modified>
    <issued>2009-04-24T23:14:38-08:00</issued>
    <id>tag:regexp.bjoern.org,2009://2.216</id>
    <created>2009-04-25T06:14:38Z</created>
    <summary type="text/plain">Electronic artist Jim Campbell visited Stanford today and presented a broad overview of his work at the HCI seminar. His Ambiguous Icons projects probe the boundary of image coherence: when does an image breaks down into individual pieces, when do...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    <dc:subject>hci</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p>Electronic artist <a href="http://www.jimcampbell.tv/">Jim Campbell</a> visited Stanford today and presented a broad overview of his work at the <a href="http://cs547.stanford.edu/">HCI seminar</a>.</p>

<p>His <a href="http://www.jimcampbell.tv/LE/index.html">Ambiguous Icons</a> projects probe the boundary of image coherence: when does an image breaks down into individual pieces, when do the pieces merge into a larger whole? I had seen <a href="http://www.jimcampbell.tv/LE/LE5Running/index.html">Running, Falling</a> at the San Jose Museum of Art before: a 2D matrix of single-color LEDs is pulse width-modulated to act as a low-resolution video display. Viewed straight on, one only perceives a pattern of flickering lights. However, when a plastic diffuser is introduced between the viewer and the LED array (Campbell calls it his "reconstruction filter"), the gestalt of the video image emerges.</p>

<p>The talk inspired me to write a quick Processing sketch that explores the design space of this concept. Given a video file, the sketch renders frames from the video as an array of low resolution circles or rectangles. A blur filter over the set of rendered shapes assumes the role of the diffuser. To explore the space of options, sliders for the number of samples, for shape size, and for blur radius are provided. As a test videos, I pulled some of Edison's first <a href="http://en.wikipedia.org/wiki/Kinetoscope">kinetoscope</a> strips from the <a href="http://www.archive.org/details/EdisonMotionPicturesCollectionPartOne1891-1898">Internet Archive Edison Motion Picture Collection</a>.</p>

<p><object width="463" height="274"><br />
<param name="movie" value="http://regexp.bjoern.org/archives/campbell-a.swf"><br />
<embed src="http://regexp.bjoern.org/archives/campbell-a.swf" width="463" height="274"><br />
</embed><br />
</object></p>

<p>Download Processing Source: <span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://regexp.bjoern.org/archives/campbell_02d-090424a.zip">campbell_02d-090424a.zip</a></span><br />
</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>&quot;Knobs, knobs everywhere - just vary a knob to think.&quot;</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000215.html" />
    <modified>2009-03-03T21:37:27Z</modified>
    <issued>2009-03-03T13:35:50-08:00</issued>
    <id>tag:regexp.bjoern.org,2009://2.215</id>
    <created>2009-03-03T21:35:50Z</created>
    <summary type="text/plain">Reading Ch12 of Hofstadter&apos;s Metamagical Themas which Scott dropped off in my office this morning. Hofstadter claims that &quot;Making variations on a theme is really the crux of creativity.&quot; (235) Think of a concept as a machine with knobs on...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    <dc:subject>text</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p>Reading Ch12 of Hofstadter's Metamagical Themas which Scott dropped off in my office this morning.</p>

<p>Hofstadter claims that "Making variations on a theme is really the crux of creativity." (235)</p>

<p>Think of a concept as a machine with knobs on it. Use the knobs to interpolate and extrapolate variations from the original concept. Example 1: Rubik's cube might have a knob of dimensionality that happens to be set at 3 in original. Example2: John Gould's dreamed of turning the listener of music into a conductor through a parametric multitrack playback interface.</p>

<p>But where does the set of knobs come from? What can get varied? Is there a fixed, even finite set? Hofstadter argues that extrapolation needs creative analogy and that changing context and perspective produces new sets of knobs. This shifting of perspective, "nondeliberate yet nonaccidental slippage," is at the core of creative thought. Hofstadter also labels this activity as producing "subjunctive variations on a theme" - I believe this is where Aran Lunzer took his notion of "subjunctive interfaces."</p>

<p>The key quote on reframing: "Context contributes an unexpected quality to the knobs that are perceived on a given concept. The knobs are not displayed in a nice, neat little control panel, forevermore unchangeable. Instead, changing the context is like taking a tour around the concept, and as you get to see it from various angles, more and more of its knobs are revealed." (239) Or: "[Good knobs come from] seeing one thing as something else." (251)</p>

<p>Example 3: Don Knuth's Metafont, which allows typeface designers to create parametric letter definitions. This parameterization is hierarchical: there are typeface-level controls as well as letter-level controls. But H~ argues (convincingly) that all these systems only ever explore sub-spaces. One reason: different styles of letters we all agree on as instances of the letter "A" have very different underlying structure - varying continuous dimensions will never result in such fundamentally different approaches.</p>

<p>"One of Knuth's main thesis is that with computers, we now are in the position of being able to describe nut just a thing in itself, but how that thing would vary." (240) An open question though is how accessible this parameterization process is for creators/designers: describing a parametric space of possible designs is a very different activity from producing a point solution within that space. An avenue for future research is pointed out: given a set of examples, automatically derive the structure of the design space within which they are embedded. That sounds hard, but interesting. "If we wish to enlist computers as our partners in this venture of inventing variations on a theme [...] we have to give them the ability to spot knobs themselves, not just to accept knobs that we humans have spotted." In his words, computers should help us explore the  "implicosphere" (implicit counterfactual sphere or sphere of implications) of a concept.</p>

<p>H~ mentions "One Book Five Ways" - a book containing, side-by-side, five different edited versions of a single manuscript. This reminded me of Raymond Queneaus's "Exercises de style" which is made up of 99 variations of a common story.</p>

<p>Are variations fundamentally different from new themes? No, but they tweak less obvious, hidden knobs.</p>

<p>P.S.: Hofstadter needs an editor.</p>

<p><br />
</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>Here Comes Everybody - Sticky stories of social tools, topped with sprinkles of theory.</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000214.html" />
    <modified>2009-03-03T06:26:08Z</modified>
    <issued>2009-03-02T22:19:06-08:00</issued>
    <id>tag:regexp.bjoern.org,2009://2.214</id>
    <created>2009-03-03T06:19:06Z</created>
    <summary type="text/plain">During some down time in New York last week I finally got to read Clay Shirky&apos;s &quot;Here Comes Everybody.&quot; Shirky&apos;s strong suit is balancing concrete stories with the principles behind those stories, distilled in concise nuggets of insight. A bit...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    <dc:subject>text</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p>During some down time in New York last week I finally got to read Clay Shirky's "Here Comes Everybody."  Shirky's strong suit is balancing concrete stories with the principles behind those stories, distilled in concise nuggets of insight. A bit of social science and economic theory gets added to the mix, resulting in an engaging survey of the promises and limits of collaborative sharing and production with online social tools.</p>

<p>I found the early chapters (2-4) and the conclusion most valuable, with the highest aha-moments-per-page ratio. Here is my summary of the major points.</p>

<p>The second chapter, "Sharing Anchors Community," describes how sharing by individuals, aggregated through social tools, opens up new areas of value that are not served by traditional institutions. Coase, in "The Nature of the Firm," (1937) shows how hierarchical organizations can be more desirable than open labor markets. In an open market of individuals, transaction costs (negotiated agreements) rise sharply with the number of parties involved (squared? Flipside of Metcalfe's law?). Institutions use central control to lower the number of transactions. In return, they introduce managerial overhead. This overhead cost, required to simply maintain the institution itself, limits what kind of activities institutions can and will engage in. Activities below this "Coasean floor" (45) are valuable to someone, but their value is less than the cost of doing business for an institution. These activities are now viable because social tools reduce the cost of coordinating group action.</p>

<p>Chapter three tackles the complicated relationship between professionals and amateurs. A profession is a community that has its own world view and values: "a professional pays as much or more attention to the judgment of her peers as to the judgment of her customers". That focus on group-maintenance makes professions susceptible to miss changes in the core assumptions underlying the formation of their field. The prime example of course is publishing - where previously the hard part was to deliver content to the consumer, production and distribution are essentially free now. As amateurs, with the help of online platforms, can deliver the same value as professionals (see iStockPhoto), boundaries are blurred. But "mass professionalization is an oxymoron" (66) - professions are built on concept of exclusive group membership and shared beliefs/practices within group. So blogging is not a new form of publishing - it's an alternative to publishing.</p>

<p>Chapter four: In ye olden days, the structure of communication -- broadcasting (one-way, public) vs conversational (bi-directional, private) -- was bound up in the communicative medium (TV, phone). We can now mix and match attributes at will. As a result, many public pieces of information are in fact not "content" meant for public consumption - they are part of conversations. "Bloggers with a dozen readers don't have a small audience: they don't have an audience at all, they just have friends". But not all blog posts are about conversations: if you become famous, human cognitive capabilities limit you to to one-way broadcasting again - there's only so much information one can digest or respond to.<br />
Relevance is always relative to the concerns of a particular community (Wenger's communities of practice are mentioned). Community members thus filtering collaboratively and AFTER information has been put online, an inversion of institutional practice.</p>

<p>The main argument of the conclusion is that any successful social tool needs three ingredients to work - promise, tool, and bargain. Failure in any one spells failure for the entire project. For Shirky, it starts with a promise of benefit to the user: what's the value of contributing to a new service? The promise has to be inspirational, concrete and achieveable. The key is to convince users that others will see value in the tool as well. Tools have to be tailored to their job. The two most important questions are: Will the group be large or small? And Is it short-lived or long-lived? Small groups tend to lead to convergent thinking, large groups tend to have divergent beliefs. The "bargain" is not about a good price you're getting, but rather the negotiated set of community rules that a user of a social tool agrees to. Here Shirky mentions Alan Fiske's basic modes of social collaboration, specifically equal participation, as an example of a bargain struck by a Flickr photo community. Finally, Shirky argues that all social tools have social dilemmas that come with them and some form of governance is required. Users take their bargains very seriously. When tool providers change the terms of the bargain unilaterally, backlash often ensues. </p>

<p>Some Choice Quotes:</p>

<p>"There is no such thing as a generically good tool; there are only tools good for particular purposes." (265)</p>

<p>"The most profound effects of social tools lag their invention by years, because it isn't until they have a critical mass of adopters, adopters who take these tools for granted, that their real effects begin to appear." (270)</p>

<p>"The spread of chap and widely available creative tools is sad for people in the advertising business in the same way that moveable type was sad for scribes - the loss from this change is real but limited and is accompanied by a generally beneficial social change." (209)</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>Holiday Hacking: Arduino libraries are ready</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000213.html" />
    <modified>2008-12-28T00:38:30Z</modified>
    <issued>2008-12-27T16:26:16-08:00</issued>
    <id>tag:regexp.bjoern.org,2008://2.213</id>
    <created>2008-12-28T00:26:16Z</created>
    <summary type="text/plain"> Every year around this time I feel the urge to write some low-level code. This year, in preparation for the HCI design studio class next quarter, I spent some days working on different ways to ease the connection between...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p><a href="http://www.flickr.com/photos/bpunkt/3141966707/" title="Arduino Ethernet Shield by bpunkt, on Flickr"><img src="http://farm4.static.flickr.com/3257/3141966707_7a86e20f0c.jpg" width="500" height="250" alt="Arduino Ethernet Shield" /></a></p>

<p>Every year around this time I feel the urge to write some low-level code. This year, in preparation for the HCI design studio class next quarter, I spent some days working on different ways to ease the connection between the Arduino hardware platform and Adobe Flash.</p>

<p>Based on Massimo Banzi's <a href="http://tinkerit.googlecode.com/files/eth_Firmata_v1.pde">eth_Firmata</a> code, I put<br />
together a package to enable Firmata-over-TCP communication between Flash and an Arduino board with <a href="http://www.arduino.cc/en/Main/ArduinoEthernetShield">ethernet shield</a> and <a href="http://firmata.org">Firmata 2</a> firmware. </p>

<p>Sources and installation instructions are available at <br />
<a href="http://www.bitbucket.org/bjoern/firmata-eth/">bitbucket.org/bjoern/firmata-eth/</a></p>

<p>On the Flash side, I also released the first public beta of the as3glue library for Firmata v2 at<br />
<a href="http://code.google.com/p/as3glue/">code.google.com/p/as3glue/</a>.<br />
</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>The year in music</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000212.html" />
    <modified>2008-12-24T21:58:37Z</modified>
    <issued>2008-12-23T23:10:30-08:00</issued>
    <id>tag:regexp.bjoern.org,2008://2.212</id>
    <created>2008-12-24T07:10:30Z</created>
    <summary type="text/plain">Here is my list of most-listened to albums for 2008. Most of these are new releases, although there are a few items that I just had not found before. As in previous years, most of these albums come from eMusic....</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    <dc:subject>audio</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p>Here is my list of most-listened to albums for 2008. Most of these are new releases, although there are a few items that I just had not found before. As in previous years, most of these albums come from eMusic.</p>

<p>Crooked Still - <a href="http://www.emusic.com/album/Crooked-Still-Still-Crooked-MP3-Download/11236346.html">Still Crooked</a> (2008) & <a href="http://www.emusic.com/album/Shaken-By-A-Low-Sound-Shaken-By-A-Low-Sound-MP3-Download/10947563.html">Shaken by a low sound</a> (2006)<br />
Rodriguez - <a href="http://www.emusic.com/album/Rodriguez-Cold-Fact-MP3-Download/11232104.html">Cold Fact</a> (Re-release 2008, 60s)<br />
Tunng - <a href="http://www.emusic.com/album/Tunng-Good-Arrows-MP3-Download/11142712.html">Good Arrows</a> (2007) & back catalog<br />
Tony Trischka - <a href="http://www.emusic.com/album/Tony-Trischka-Territory-MP3-Download/11185112.html">Territory</a> (2008); Bela Fleck & Tony Trischka - Solo Banjo Works (1992)<br />
Matthew Herbert Big Band - <a href="http://www.emusic.com/album/The-Matthew-Herbert-Big-Band-There-s-Me-And-There-s-You-MP3-Download/11309238.html">There's Me and There's You</a> (2008)<br />
Jazzanova - <a href="http://www.amazon.com/All-Things-Jazzanova/dp/B001FBJTYQ">Of all the things</a>  (2008)<br />
Sean Hayes - <a href="http://www.emusic.com/album/Sean-Hayes-Flowering-Spade-MP3-Download/11034845.html">Flowering Spade</a> (2007)<br />
Balmorhea - <a href="http://www.emusic.com/album/Balmorhea-Rivers-Arms-MP3-Download/11123585.html">Rivers Arms</a> (2008)<br />
Shearwater - <a href="http://www.emusic.com/album/Shearwater-Rook-MP3-Download/11207692.html">Rook</a>(2008)<br />
DJ /rupture - <a href="http://www.emusic.com/album/DJ-rupture-Uproot-MP3-Download/11237396.html">Uproot</a> (2008)<br />
Horses Brawl - <a href="http://www.emusic.com/album/Horses-Brawl-Horses-Brawl-MP3-Download/10906586.html">Horses Brawl</a> (2006)<br />
Ra Ra Riot - <a href="http://www.emusic.com/album/Ra-Ra-Riot-The-Rhumb-Line-MP3-Download/11260156.html">The Rhumb Line</a> (2008)<br />
Ursula Rucker - <a href="http://www.emusic.com/album/Various-Artists-One-Love-The-Best-of-Ursula-Rucker-MP3-Download/11133132.html">One Love</a> (best of compilation - 2007)</p>

<p>Guilty pleasures:<br />
Ladyhawke - <a href="http://www.emusic.com/album/Ladyhawke-Ladyhawke-MP3-Download/11331331.html">Ladyhawke</a> (2008)<br />
Santogold - <a href="http://www.emusic.com/album/Santogold-Santogold-MP3-Download/11219899.html">Santogold</a> (2008)<br />
</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>Prototyping for small screens</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000211.html" />
    <modified>2009-02-24T02:00:20Z</modified>
    <issued>2008-12-08T18:50:01-08:00</issued>
    <id>tag:regexp.bjoern.org,2008://2.211</id>
    <created>2008-12-09T02:50:01Z</created>
    <summary type="text/plain">I&apos;ve had an ongoing conversation with several fellow hardware sketchers about good methods for prototyping interactive products with small screens and custom I/O. The hardware input side is taken care of by projects such as Arduino and Wiring; however, finding...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p>I've had an ongoing conversation with several fellow <a href="http://sketching08.com/">hardware sketchers</a> about good methods for prototyping interactive products with small screens and custom I/O. The hardware input side is taken care of by projects such as <a href="http://www.arduino.cc">Arduino</a> and <a href="http://wiring.org.co">Wiring</a>; however, finding a suitable screen has been harder. For me, the ideal screen should be:  high-resolution with pixel-perfect reproduction of source images, full-screen refresh at >10fps, able to display/mirror an arbitrary region of a desktop PC screen (so you can leverage any and all PC applications), wireless (for both communication and power), available in different form factors from 2"-8".</p>

<p>While the perfect match is still elusive, I've recently come across a useful solution that I wanted to share: <strong>DisplayLink screens</strong>. </p>

<p><a href="http://www.flickr.com/photos/bpunkt/3094684524/" title="Century LCD4300U by bpunkt, on Flickr"><img src="http://farm4.static.flickr.com/3148/3094684524_ef5a40fef8.jpg" width="500" height="375" alt="Century LCD4300U" /></a></p>

<p><a href="http://www.displaylink.com">DisplayLink</a> uses USB to add multiple additional displays to a PC or Mac. These show up as regular additional monitors to the OS. Small screens can be USB-powered as well - so while they're not wireless, there's only a single cable. The first screens are just hitting (Japanese) streets now. I recently received a <a href="http://www.slashgear.com/century-japan-lcd-4300u-43-inch-usb-monitor-1018916/">Century LCD-4300U</a> - 4.3" diagonal, 800x480 resolution, bus-powered. These displays aren't cheap ($200) but very convenient. A larger 7" screen with resistive touch input (<a href="http://www.thegadgeteers.com/">Mimo UM-740</a>) is on order. Video playback is not a problem, screens a bright and crisp.</p>

<p><br />
Other methods I've personally tried out that fall short(er):<br />
<ul><br />
<li>iPhone / iPod Touch + Mocha VNC Lite: wireless, high resolution, mirrors any part of your desktop; two-finger zoom and pointer input. The major downside: screen refresh has took 2-5 seconds per screen when tested with my home WiFi network and Stanford's campus-wide wireless network. (Hayes Raffle suggested trying this.)</li><br />
<li>VGA cable -&gt; scan converter -&gt; composite video signal -&gt; LCD screen.<br />
Screens with composite video input are relatively easy to find, e.g., through <a href="http://www.purdyelectronics.com/">Purdy Electronics</a>. Since input is component video, screen refresh is not an issue. Downside: it's a mess of wires and a lot of resolution and crispness is lost in the scan conversion.</li><br />
</ul></p>

<p><br />
Other approaches from friends:<br />
<ul><br />
<li>Run your application on an Internet tablet: Take the smallest possible device that runs Linux/Flash Player/... and develop/deploy directly on that device<br />
<ul><br />
<li><a href="http://labs.ideo.com/2008/11/10/how-to-connecting-the-nokia-770-to-arduino/">IDEO Labs - Hacked Nokia 770 tablet to take Arduino input</a> (Dave Vondle): </li><br />
<li><a href="http://www.hayesraffle.com/n810/">Hayes Raffle: Using the Nokia N810</a> with Flash and Arduino</li><br />
</ul></p>

<p><li><a href="http://web.media.mit.edu/~dmerrill/siftables.html">Siftables</a> (David Merrill): Small, wireless (bluetooth); high-level drawing API for realttime updates; Bitmaps need to be cached on-device as drawing pixel-by-pixel takes ~2-3 seconds over Bluetooth.</li><br />
<li><a href="http://labs.ideo.com/2009/01/20/liveview-an-iphone-app-for-on-screen-prototyping/">IDEO Labs LiveView</a> (Nick Zambetti) iPhone app that duplicates part of your pc screen on the phone. Similar to VNC solution proposed above. Haven't tested it yet to check latency.<br />
</ul><br />
</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>Pictionaire in the news</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000210.html" />
    <modified>2008-12-02T23:37:40Z</modified>
    <issued>2008-12-02T15:32:18-08:00</issued>
    <id>tag:regexp.bjoern.org,2008://2.210</id>
    <created>2008-12-02T23:32:18Z</created>
    <summary type="text/plain"> Pictionaire, the team collaboration environment for large interactive tables I developed with Andy Wilson, Merrie Morris and Hrvoje Benko at Microsoft Research, is getting some press. John Brandon wrote a story for NetworkWorld which is syndicated and was covered...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p><img src="http://tairona.idg.com.au/gim.php/id/12773/res/6"> <br />
Pictionaire, the team collaboration environment for large interactive tables I developed with Andy Wilson, Merrie Morris and Hrvoje Benko at Microsoft Research, is getting some press. John Brandon wrote a <a href="http://www.networkworld.com/news/2008/120108-10-microsoft-research-projects.html?page=4">story for NetworkWorld</a> which is syndicated and was covered on <a href="http://tech.slashdot.org/tech/08/12/02/1541220.shtml">Slashdot</a>.</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>New OSC libraries for Arduino and Wiring</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000209.html" />
    <modified>2008-12-02T20:40:43Z</modified>
    <issued>2008-12-02T12:28:54-08:00</issued>
    <id>tag:regexp.bjoern.org,2008://2.209</id>
    <created>2008-12-02T20:28:54Z</created>
    <summary type="text/plain"> I just finished rewriting OpenSoundControl firmwares for both Arduino and Wiring hardware. The firmware enables these hardware platforms to send and receive OpenSoundControl messages over a serial port. This can turn Arduino and Wiring boards into IO interfaces controlled...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    <dc:subject>hci</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p><a href="http://www.flickr.com/photos/bpunkt/3078289138/" title="WiringMini board running Wiring_Osc by bpunkt, on Flickr"><img src="http://farm4.static.flickr.com/3202/3078289138_82447f5c92.jpg" width="500" height="333" alt="WiringMini board running Wiring_Osc" /></a><br />
I just finished rewriting <a href="http://opensoundcontrol.org/">OpenSoundControl</a> firmwares for both <a href="http://arduino.cc/">Arduino</a> and <a href="http://wiring.org.co">Wiring</a> hardware. The firmware enables these hardware platforms to send and receive OpenSoundControl messages over a serial port. This can turn Arduino and Wiring boards into IO interfaces controlled by a PC. The main difference from prior implementations is that the source was written entirely using the standard libraries that ship with Arduino and Wiring, so users can easily compile and upload to their boards.</p>

<p>A set of Pd patches (pictured above) is available for testing and realtime control.</p>

<p>Currently, ARDUINO_OSC and WIRING_OSC offer the following functionality:<br />
    * Digital and analog input pin value changes are sent from the microcontroller to a PC<br />
    * Digital and PWM output pins can be controlled at runtime with messages from a PC<br />
    * Digital pins can be toggled between input and output at runtime with messages from a PC<br />
    * Reporting of digital and analog input messages can be controlled at runtime with messages from a PC</p>

<p>Many thanks to Hernando Barragan for sending a WiringMini board for testing.</p>

<p>Links: <a href="http://protolab.pbwiki.com/Arduino_Osc">ARDUINO_OSC</a>, <a href="http://protolab.pbwiki.com/Wiring_Osc">WIRING_OSC</a>, <a href="http://protolab.pbwiki.com/pd_OSCserial">Pd patches</a><br />
</p>]]>
      
    </content>
  </entry>

  <entry>
    <title>Dots and Dashes</title>
    <link rel="alternate" type="text/html" href="http://regexp.bjoern.org/archives/000205.html" />
    <modified>2008-09-26T16:55:26Z</modified>
    <issued>2008-09-25T22:21:09-08:00</issued>
    <id>tag:regexp.bjoern.org,2008://2.205</id>
    <created>2008-09-26T05:21:09Z</created>
    <summary type="text/plain">Here&apos;s a quick update of my never-ending search for the right pen and paper: Dot Grid Notebooks Before they closed up shop, I used to buy Japanese notebooks with a faint 5mm dot grid from Mai Do in Palo Alto...</summary>
    <author>
      <name>Bjoern Hartmann</name>
      <url>http://bjoern.org/</url>
      <email>bjoern@contexterrior.com</email>
    </author>
    <dc:subject>misc</dc:subject>
    <content type="text/html" mode="escaped" xml:lang="en" xml:base="http://regexp.bjoern.org/">
      <![CDATA[<p>Here's a quick update of my never-ending search for the right pen and paper:</p>

<p><strong>Dot Grid Notebooks</strong><br />
Before they closed up shop, I used to buy Japanese notebooks with a faint 5mm dot grid from Mai Do in Palo Alto (apparently the <a href="http://www.yelp.com/biz/maido-stationery-and-gifts-san-francisco">SF location</a> is still open). They had just the right form factor (B5?), though the spiral binding reliably broke and started to spill pages when I got through 3/4 of the notebook.</p>

<p><img src="http://media1.behance.com/product_images/2007_01_120214.jpg"><br />
While in Seattle, I found the <a href="http://www.creativesoutfitter.com/">Behance</a> dot grid books at <a href="http://www.petermiller.com/">Peter Miller</a>, the architecture book store near Pike place market. They are beautiful, sturdy, and have great paper. They are a little large, and  the $14-$18 price tag is steep, even if you "value your ideas."</p>

<p><img src="http://incompetech.com/graphpaper/squarecross/thumbnail.gif"/> <img src="http://incompetech.com/graphpaper/squaredots/thumbnail.gif" /><br />
Since my last Behance is filling up quickly, I spent some time searching for alternatives. While I didn't find any other notebooks, I came across <a href="http://incompetech.com/graphpaper/">Incompetech's Graph Paper Page</a> that lets roll your own graph paper designs (including crosses and dots) from parametric templates. I'd love to make a spiral-bound book from those templates, just have to find a small-volume printer with good binding services.</p>

<p><img src="http://media1.behance.com/product_images/widescreens/ActPAD_Bl_T.jpg"><br />
Behance has a <a href="http://www.creativesoutfitter.com/images/product_images/samples/PDF/actionpad.pdf"> one-page PDF of their "actionpad"</a> available for download as well which has dots and "action step" areas.</p>

<p><img src="http://www.makershed.com/v/vspfiles/photos/9780596519414-2T.jpg"><br />
I also got a free <a href="http://www.makershed.com/ProductDetails.asp?ProductCode=9780596519414">Maker's Notebook</a> a few weeks ago which as a light-blue eight-inch two-weight grid. Unfortunately, it's book binding makes it pretty uncomfortable for me to write as the pages just don't like to lie flat. <br />
 <br />
<strong>Pens &amp; Markers</strong><br />
<img src="http://www.prismacolor.com/sanford/consumer/prismacolor/images/product/prod_finetip.jpg"><br />
For regular sketching and writing I switched to <a href="http://www.prismacolor.com/sanford/consumer/prismacolor/product/subCategory.jhtml?subCat=SNPRCat160001">Prismacolor Fine Line markers</a>. They're not quite as smooth as the Micron pens but, unlike the Microns, they don't leak from a little bit of shaking in a backpack.</p>

<p><img src="http://www.pilotpen.us/images/pens/Bravo_000000.jpg"><br />
For bold lines, I found the <a href="http://www.pilotpen.us/products/markerpens/">Pilot Bravo!</a>, also at Peter Miller in Seattle. A little too thick for writing but great for highlighting thicker lines in sketches. Oh, and it's cheap.</p>

<p><img src="http://www.sharpie.com/img/compel/ls9dff89bV0_vSx1tc5bOijgas_CAsal/sh_pen_uf_blk_on.jpg" width=400><br />
<a href="http://www.sharpie.com/enUS/Product/Sharpie_Pen.html">Sharpie's Pen</a> on the other hand is mediocre (what did I expect?) and certainly doesn't hold up to Prismacolor pens. Not enough ink flow, and a bit scratchy.</p>]]>
      
    </content>
  </entry>

</feed>
