<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns:foaf="http://xmlns.com/foaf/0.1/"
  xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="http://www.ultrasaurus.com/">
<foaf:Image rdf:about="http://www.ultrasaurus.com/dino.gif"/>
<title>Sarah Allen&apos;s Weblog</title>
<link>http://www.ultrasaurus.com/</link>
<description>Sarah Allen&apos;s reflections on internet software and other topics</description>
<dc:language>en-us</dc:language>
<dc:creator></dc:creator>
<dc:date>2008-07-23T19:44:22-08:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=4.1" />


<items>
<rdf:Seq>
<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000463.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000462.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000461.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000446.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000459.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000458.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000380.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000457.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000456.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000455.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000454.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000453.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000452.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000451.html" />

<rdf:li rdf:resource="http://www.ultrasaurus.com/sarahblog/archives/000448.html" />
</rdf:Seq>
</items>

</channel>


<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000463.html">
<title>checkboxes: legacy or innovation?</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000463.html</link>
<description>In some ways, I feel strongly that the art of UI design has devolved for me to be even writing this post. If I recall correctly, the checkbox was invented in the 1970s. In the glory days of desktop GUIs of the 90s, it played a fairly minor role next to the direct manipulation of windows, columns, floating panels and multi-dimensional controls. However, in the late 90s, UI design and development shifted dramatically with the dominance of web-based applications. Suddenly the creation of a user interface equated with generating a stream of HTML text. Webmail was one of the first widely used web applications with a user interface that went beyond links and forms. By the early part of this century, webmail usage surpassed the number of people who read email with a desktop, installed email application. The dominant paradigm for selecting messages was the checkbox. There was really no other choice. Checkboxes were understood to be a necessary evil. HTML offered a small subset of the traditional graphical user interface. In 2002, Oddpost entered the webmail scene with an Outlook-esque interface. It only worked on IE Windows, but provided a glimpse of things to come....or so we thought. If...</description>
<dc:subject>interface design</dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-07-23T19:44:22-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000462.html">
<title>adventures in technicolor</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000462.html</link>
<description>In 1938, Technicolor founder Herbert Kalmus spoke about the history of color in film: Technicolor Adventures in Cinemaland (via Sound and Color). It was intriguing, although unsurprising, to read of the many technical hurdles to introducing color in film; however, I had never realized that were objections by some to the aesthetic value of color. When Douglas Fairbanks sought to film The Black Pirate in color, he spoke about the resistance in the industry to this new technology: &quot;This ingredient has been tried and rejoined countless times. It has always met overwhelming objections. Not only has the process of color motion picture photography never been properly developed, but there has been a grave doubt whether, even properly developed, it could be applied without detracting more than it added to the motion picture technic. The argument has been that it would tire and distract the eye, take attention from acting and facial expression, blur and confuse the action. In short it has been felt that it would militate against the simplicity and directness which motion pictures derive from the unobtrusive black and white. These conventional doubts have been entertained, I think, because, no one has taken the trouble to dissipate them....</description>
<dc:subject></dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-07-06T03:44:36-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000461.html">
<title>application personality</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000461.html</link>
<description>Martijn van Welie has a good perspective on emotional design: the behavior of an application causes us to project a personality onto it. Some examples from his post: Applications that throw windows promptly in my face are rough where as windows that fade onto the screen are far more graceful. An application that keeps on telling me about things I don&apos;t understand such as error codes, format errors, compatibility issues is obviously more busy with itself rather than assisting me. A bit selfish perhaps? An application that keeps on telling me irrelevant stuff that don&apos;t seem to impede normal usage is nagging. He equates this with &quot;brand personality.&quot; I think we need to careful about changing application behavior to match brand personality -- we need not match rough, whimsical or risk-taking with corresponding behavior, but I do agree that we need to be conscious about supporting the brand where we can and craft the experience of interacting with the application. The article ends with a nice collection of guidelines for presentation, interaction, functionality and content. These are presented more on the good vs. bad spectrum than with the more human notion that many different types of personalities can be the...</description>
<dc:subject>interface design</dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-07-04T12:29:38-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000446.html">
<title>video game play: danger or not?</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000446.html</link>
<description>Grand Theft Childhood is a new book about kids and video games (via Cyborg&apos;s Picnic). It reveals the results of a Harvard video game study that challenges conventional wisdom about the effects of gaming. I didn&apos;t read the book, but did read a bit about the study on the web. &quot;For many children and adolescents, playing video games is an intensely social activity, not an isolating one. &quot;Many games involve multiperson play, with the players either in the same room or connected electronically. They often require that players communicate so that they can coordinate their efforts. Our research found that playing violent video games was associated with playing with friends. &quot;For younger children especially, games are a topic of conversation that allows them to build relationships with peers.&quot; &quot;According to research on the effects of violent media, the ESRB may have parts of its ratings system backward! One of the predictors of which violent media are likely to result in violent real-world behavior is material that does not show the realistic negative consequences of violence, such as pain, suffering and blood.19 Violent video games that are rated M are more likely to show those negative consequences. Those that are rated...</description>
<dc:subject></dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-06-30T00:23:09-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000459.html">
<title>design for the expression on someone&apos;s face</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000459.html</link>
<description>I&apos;m not much of a gamer. I prefer to find delight in creative projects that feel like play. It might be some remnant puritanical work ethic from my New England roots, or perhaps its just that most games aren&apos;t well-suited to my demographic. Nonetheless, I&apos;m intrigued by game design and find that some aspects of game design can be applied generally to software design, as well. I read today a nice discussion of Wii Fit. Shigeru Miyamoto, famed Nintendo game designer who created Super Mario and the Wii, is known for designing for the expression on someone&apos;s face when they play the game -- they should smile and be happy, not frustrated. With the Wii, he designs for everyone in the room, not just the game player. I like the idea of using the Wii for fun fitness training. Taking game elements and applying them to boring or otherwise frustrating activities has potential. &quot;Ideas make games fun, not graphics&quot; -- Luke Nihlen...</description>
<dc:subject>interface design</dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-06-16T18:20:57-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000458.html">
<title>pipes, redirects and awk -v</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000458.html</link>
<description>I wanted to take the output of a command and put it in a temporary variable so I can append a string to it. (Trying to script perforce to append something to my client spec without interactive involvement.) First attempt: $ p4 client -o &gt; $CLIENTSPEC c:\cygwin\bin\bash: $CLIENTSPEC: ambiguous redirect I later learned that redirect is only for files. Next attempt: $ TEST=`p4 client -o` $ echo $TEST //depot/apps/diamond-calendar-preview/... //sallen-LENOVO/svn/openlaszlo/branches/pagan-deities/diamond-calen //depot/apps/diamond-amaranth-ms2/... //sallen-LENOVO/svn/openlaszlo/branches/pagan-deities/diamond-amaranth- //depot/sandbox/my-webtops/... //sallen-LENOVO/svn/openlaszlo/branches/wafflecone/diamond/client/my-webtops/. .. which seems to have swallowed line endings and only provided the last few lines of output. My colleagues at Laszlo, Trebor Fenstermaker and Chris Pettitt and ptw, showed me the error of my ways and provided some good tips. Trebor noted that there is a length limit for shell variables and that line endings will get lost. Chris introduced a combination of pipe and awk -v which did the trick. At first I thought Tucker&apos;s simple echo solution wasn&apos;t working, but he pointed out that I just needed to properly parenthesize my commands. What worked: p4 client -o | awk -v append=&quot; //depot/apps/test/... //sallen-test/svn/openlaszlo/branches/pagan-deities/test/...&quot; &apos;{ print $0 } END { print append }&apos; | p4 client -i Even simpler: (p4 client -o; echo &quot; //depot/apps/test/......</description>
<dc:subject>software development</dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-06-15T11:00:24-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000380.html">
<title>learning bash</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000380.html</link>
<description>I started this post back in 2007, when I found a great tutorial on learning bash scripting. This excellent tutorial, written by Daniel Robbins, the Chief Architect of the Gentoo Project, gives two compelling reasons to learn bash: 1. You are already running it. If you are building web tech, chances are that some machine you use is running bash, even if you feel obliged to work on a Windows laptop like me. On Windows, you can run cygwin, which means your scripts will run locally and on your Linux machine. There are some prickly edges, but mostly you can just pretend it&apos;s all one happy unix-ie OS. 2. You are already using it. Chances are you already know some bash if you&apos;ve spent any time where you needed to work in a unix shell. Through geek social learning, it creeps into your consciousness. Many folks start using bash constructs before they are even understood. Like the archaic symbols of some ancient spell woven in the air, the magic works even if you don&apos;t know what it means. However, if you can be inspired to learn what&apos;s really going on, there is great power in bash scripting. Of course, the...</description>
<dc:subject></dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-06-14T12:37:04-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000457.html">
<title>bash: xargs is your friend</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000457.html</link>
<description>For some reason, since I set up my new machine, when I p4 sync I would get directories that aren&apos;t writeable. This means that lzx files won&apos;t compile since the swf needs to be written into the directory. To work-around this, I tried to just set permissions on all the directories. My first attempt (below), didn&apos;t work.... anyone know why? the second one is more verbose and did work. $ find * -type d | chmod a+w chmod: missing operand after `a+w&apos; Try `chmod --help&apos; for more information. Verbose work-around: $ for i in * ; do if [ -d $i ]; then chmod a+w $i ; fi ; done A better answer: the chmod command does not accept arguments on stdin, so you can&apos;t just pipe a file list to it: $ find . -type d -print0 | xargs -0 chmod a+w xargs is your friend...</description>
<dc:subject>software development</dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-06-14T12:17:18-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000456.html">
<title>OpenLaszlo SWF9 progress</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000456.html</link>
<description>The OpenLaszlo team has been making great progress supporting SWF9, which is effectively a 3rd runtime after SWF7/8 and DHTML. Check out the weather app running in SWF9. With that app you can&apos;t really see the performance improvements, but they are seeing substantial improvements in startup time with the SWF9 runtime. The SWF9 work is now in trunk -- you can download the latest nightly build to check it out. (Report bugs in the open bug base) They are approaching a 4.1, which will be a &quot;recommended&quot; release for both DHTML and SWF7/8....</description>
<dc:subject></dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-06-08T09:54:25-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000455.html">
<title>Yahoo&apos;s BrowserPlus sneek peek</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000455.html</link>
<description>I checked out Yahoo&apos;s sneak peek of BrowserPlus this morning -- looks like there is some interesting stuff there. It think they have a good approach by getting feedback from people using apps before they open up the APIs to developers. I have always believed that to get the UI right, you need the user experience to drive the APIs not the other way round. Key Features * Drag-and-drop from the desktop to the browser (my favorite!) * Upload to FlickR * Desktop Notifier (integrating with Growl on the Mac and Snarl on Windows) * Image editing: rotate, crop, and effects: &apos;sepia&apos;, &apos;swirl&apos;, &apos;solarize&apos;, &apos;oil_paint&apos;, and &apos;grayscale&apos;. * Text-to-Speech * PStore (local storage: I wonder what the limit is here) Geek Features * Ruby Interpreter * JSONRequest * IRC Client The API documentation is available, but right now you can only use it if you work for Yahoo. However, with the documentation out there, including a slick doc browser, they seem pretty serious about opening this up to external developers. BrowserPlus also has a plugin architecture, so the features can be updated without restarting the browser or even refreshing the page! This will put them in a very good position...</description>
<dc:subject>software development</dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-06-07T20:12:10-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000454.html">
<title>js meetup: ScrewUnit</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000454.html</link>
<description>Nick demonstrated ScrewUnit at the JSMeetup last night. My notes: behavior-driven development, particularly popular in the Ruby world with the RSPEC framework organize your tests, share setup global befores and afters let you effectively test the DOM nested describes, nested example groups in RSPEC What about continuous integration? there&apos;s a ScrewUnit server, navigate URLs - only run those in that directory. There are callbacks when a suite ends/begins -- integrated into CruiseControl on GIT hub, MIT license support for async libs? unsolved problems, most people at the company stub out async. What about user interactions? serious attention on event and DOM testing. Nothing in particular to facilitate that except before and after. JQuery is a good approach......</description>
<dc:subject>software development</dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-06-06T06:27:22-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000453.html">
<title>js meetup: keyboard shortcuts</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000453.html</link>
<description>Alex from Acunotes (?) demonstrated a cool library for adding keyboard shortcuts to your site. They use gmail conventions, which are essentially borrowed from vi, but the feedback from their non-geek users is very positive. (Some browsers eat control keys, so we can&apos;t use standard desktop shortcuts. They can do key-combos with shift) My notes: competitive advantage for them, users like it open source, MIT license, GIT project 8k including comments :) nice intuitive interface, with concise scripting...</description>
<dc:subject>software development</dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-06-06T06:20:52-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000452.html">
<title>js meetup, paul sowden, client-side storage</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000452.html</link>
<description>Paul Sowden of meebo talked about client-side storage options at the JS Meetup last night. Great info! Here are my notes: Client-side storage... more options than cookies 3 examples: halfnote [Update: thanks Paul!] gmail sticky notes ... not too exciting, but we could do more exciting stuff if we can tackle the x-browser issues. Technology is different per browser, standard has variants. Gears: sync&apos;d db, SQL interface, search over the DB, unlimited storage (at least in the beta) WHATWG, fr HTML5: Safari 3.1+, WebKit, at least two MB, bit more code, FF2+ IE8, WHATWG Global Storage, when values change events are fired, in FF you get up to 5MB, in IE its XML, in FF its an SQLLite DB (allows potentially browser-desktop app) -- pretty clean simple code userData HTML Behaviors in IE 5.5+, up to 1MB per domain -- simplest code Flash Cookies, 100KB by default, but youcan ask the user for more (clunky little Flash interface), you&apos;ll need to use SWF wrapper and Javascript bridge On meebo, they checked out how many people had which available 87% Flash (they checked for v8, but this has been available since Flash Player 6, so ymmv) 74% have native storage gears...</description>
<dc:subject>software development</dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-06-06T06:11:58-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000451.html">
<title>js meetup, jon boutelle: Flash or Ajax?</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000451.html</link>
<description>Jon Boutelle of slideshare.net spoke at the JS Meetup last night. He reported a refreshing perspective about the choice between Flash and Ajax on websites today: you quite possibly need both. He made the analogy to having a hammer and a saw -- you need both to build a house. (By the way if you haven&apos;t checked out slideshare is is way cool. See a collection of Jon&apos;s presentations or mine). Notes below: Keep Flash on a leash, only use it for what its really good at you have to work extra to get SEO -- slideshare puts the transcript of slides at the bottom of the page Jon finds that load time on average is worse in Flash (He note: Javascript can be fat too. I find it depends what you are doing -- raw script execution and http requests are much slower than the browser, but you can bundle up a bunch of code &amp; graphics in a SWF and get better performance. Still I wouldn&apos;t choose one or the other based on performance.) advocates Flash nuggets -- I love this term! Full screen is nice -- use it for good, not for evil invisible Flash -- you...</description>
<dc:subject>software development</dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-06-06T05:50:26-08:00</dc:date>
</item>

<item rdf:about="http://www.ultrasaurus.com/sarahblog/archives/000448.html">
<title>xo collaborative features</title>
<link>http://www.ultrasaurus.com/sarahblog/archives/000448.html</link>
<description>There are some nice videos on YouTube of the interface of the XO, a sub-$100 laptop from the One Laptop Per Child (OLPC) initiative. They have given priority to collaborative features and it has a built-in camera and microphone. I wonder why they don&apos;t have image avatars -- perhaps that&apos;s a privacy feature to protect children, but I think would be neat if there could be image representations of people. I enjoyed reading Jeff Atwood observations on the &quot;Sugar Interface&quot; which is one of the few UIs I&apos;ve seen (outside of gaming) that strives to go beyond the traditional windowing metaphor that grew to prominence in the 90s. He writes: &quot;I have to admit that I didn&apos;t find the Sugar UI particularly intuitive or discoverable, even after using it for 10 minutes and learning the basics. But I&apos;m not a child. Maybe something unusual is necessary to get kids&apos; creative juices flowing. Mr. Negroponte has strong feelings on this topic: &quot;&apos;In fact, one of the saddest but most common conditions in elementary school computer labs (when they exist in the developing world), is the children are being trained to use Word, Excel and PowerPoint. I consider that criminal, because children...</description>
<dc:subject></dc:subject>
<dc:creator>Sarah</dc:creator>
<dc:date>2008-05-26T09:14:30-08:00</dc:date>
</item>


</rdf:RDF>