<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Daneomatic &#187; Web</title>
	<atom:link href="http://daneomatic.com/wp/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://daneomatic.com/wp</link>
	<description>Like tweets, but with grammar.</description>
	<lastBuildDate>Mon, 27 Dec 2010 04:40:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Splitting Subversion into Multiple Git Repositories</title>
		<link>http://daneomatic.com/wp/2010/11/01/svn-to-multiple-git-repos/</link>
		<comments>http://daneomatic.com/wp/2010/11/01/svn-to-multiple-git-repos/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 16:00:31 +0000</pubDate>
		<dc:creator>Dane</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://daneomatic.com/wp/?p=937</guid>
		<description><![CDATA[For the last three years I&#8217;ve been maintaining all my projects and websites, including Daneomatic and Brainside Out, as well as I&#8217;ve Been To Duluth and Terra and Rosco and Siskiwit, in a single Subversion repository. At any given time I find myself tinkering with a number of different projects, and honestly it keeps me [...]]]></description>
			<content:encoded><![CDATA[<p>For the last three years I&#8217;ve been maintaining all my projects and websites, including <a href="http://daneomatic.com/">Daneomatic</a> and <a href="http://brainsideout.com/">Brainside Out</a>, as well as <a href="http://ivebeentoduluth.net/">I&#8217;ve Been To Duluth</a> and <a href="http://terra.brainsideout.com/">Terra</a> and <a href="http://rosco.brainsideout.com/">Rosco</a> and <a href="http://siskiwit.brainsideout.com/">Siskiwit</a>, in a single Subversion repository. At any given time I find myself tinkering with a number of different projects, and honestly it keeps me awake at night if I&#8217;m not tracking that work in some form of version control. Given the number of projects I work on, and my tendency to abandon them and start new ones, I didn&#8217;t feel it necessary to maintain a separate repository for each individual project.</p>
<p><a href="http://subversion.tigris.org/">Subversion</a> is, frankly, kind of a stupid versioning system, which actually works to the favor of someone wanting to manage multiple projects in a single repository. Since it&#8217;s easy to checkout individual folders, rather than the entire repository itself, all you need to do is create a unique folder for each individual project. Unlike <a href="http://git-scm.com/">Git</a>, the trunk, tag and branches are just folders in Subversion, so you can easily compartmentalize projects using a folder hierarchy.</p>
<p>This approach creates a terribly twisted and intertwined history of commits, with each project wrapped around the other. My goal, however, was not necessarily <em>good</em> version control, but <em>any version control at all.</em> Like living, keeping multiple projects in the same repo beats the alternative.</p>
<p>The folder hierarchy of my Subversion repository looks like this. Each project has its own folder:</p>
<p><a href="http://daneomatic.com/wp/wp-content/uploads/2010/10/01-svn-structure-01.png"><img src="http://daneomatic.com/wp/wp-content/uploads/2010/10/01-svn-structure-01-500x371.png" alt="" title="01 svn structure 01" width="500" height="371" class="alignnone size-medium wp-image-938" /></a></p>
<p>Within each project is the standard folder structure for branches, tags and trunk:</p>
<p><a href="http://daneomatic.com/wp/wp-content/uploads/2010/10/02-svn-structure-02.png"><img src="http://daneomatic.com/wp/wp-content/uploads/2010/10/02-svn-structure-02-500x371.png" alt="" title="02 svn structure 02" width="500" height="371" class="alignnone size-medium wp-image-939" /></a></p>
<p>In the trunk folder is the file structure of the project itself. Here&#8217;s the trunk for one of my <a href="http://codeigniter.com/">CodeIgniter</a> projects:</p>
<p><a href="http://daneomatic.com/wp/wp-content/uploads/2010/10/03-svn-structure-03.png"><img src="http://daneomatic.com/wp/wp-content/uploads/2010/10/03-svn-structure-03-500x371.png" alt="" title="03 svn structure 03" width="500" height="371" class="alignnone size-medium wp-image-940" /></a></p>
<p>While it&#8217;s generally bad practice to keep multiple projects in the same repository in Subversion, near as I can tell <a href="http://stackoverflow.com/questions/36862/how-do-you-organise-multiple-git-repositories">it&#8217;s truly a recipe for disaster in Git</a>. Git is real smart about a lot of things, including tagging and branching and fundamentally offering a distributed version control system (read: a local copy of your entire revision history), but that smartness will make your brain ache if you try to independently maintain multiple projects in the same repository on your local machine.</p>
<p>And so it came to pass that I wanted to convert my single Subversion repository into eight separate Git repositories; one for each of the projects I had been tracking. There are many wonderful tutorials available for handling the generic conversion of a Subversion repo to Git, but none that outlined how to manage this split.</p>
<p>I hope to shed some light on this process. These instructions are heavily influenced by <a href="http://pauldowman.com/2008/07/26/how-to-convert-from-subversion-to-git/">Paul Dowman&#8217;s excellent post</a> on the same subject, with the extra twist of splitting a single Subversion repository into multiple Git repositories. I would highly recommend you read through his instructions as well.</p>
<h3>First things first: Install and configure Git.</h3>
<p>First, <a href="http://code.google.com/p/git-osx-installer/downloads/list?can=3&#038;q=&#038;sort=-uploaded&#038;colspec=Filename+Summary+Uploaded+Size+DownloadCount">I installed Git</a>. I&#8217;m on OS X, and while I&#8217;m sure you can do this on Windows, I haven&#8217;t the foggiest how you would go about it.</p>
<p>After installing Git I had to do some initial global configuration, setting up my name and address and such. <a href="http://shaun.boyblack.co.za/blog/2009/03/14/getting-started-with-git-on-mac-os-x/">There are other tutorials that tell you how to do that</a>, but ultimately it&#8217;s two commands in Terminal:</p>
<pre><code>[prompt]$ git config --global user.name "Your Name"
[prompt]$ git config --global user.email you@email.com</code></pre>
<p>Also, I needed to setup SSH keys between my local machine and a remote server, as the ultimate goal of this undertaking was to push my Git repositories to the cloud. I have an account at <a href="http://beanstalkapp.com/">Beanstalk</a> that allows me to host multiple repositories, and they have a great tutorial on <a href="http://help.beanstalkapp.com/faqs/git/generating-and-adding-ssh-keys-on-mac-os-x">setting up SSH keys in their environment</a>. <a href="http://help.github.com/linux-key-setup/">GitHub has a helpful tutorial</a> on SSH keys as well.</p>
<h3>Give yourself some space.</h3>
<p>Next, I created a folder where I was going to do my business. I called it git_convert:</p>
<p><a href="http://daneomatic.com/wp/wp-content/uploads/2010/10/04-git-convert-00.png"><img src="http://daneomatic.com/wp/wp-content/uploads/2010/10/04-git-convert-00-500x304.png" alt="" title="04 git convert 00" width="500" height="304" class="alignnone size-medium wp-image-941" /></a></p>
<p>Then, I created a file in git_convert called authors.txt, which maps each user from my Subversion repository onto a full name and email address for my forthcoming Git repositories. My authors.txt file is super basic, as I&#8217;m the only dude who&#8217;s been rooting around in this repository. All it contains is this single line of text:</p>
<pre><code>dane = Dane Petersen &lt;dane@spammityspam.com&gt;</code></pre>
<p><a href="http://daneomatic.com/wp/wp-content/uploads/2010/10/05-git-convert-01.png"><img src="http://daneomatic.com/wp/wp-content/uploads/2010/10/05-git-convert-01-500x304.png" alt="" title="05 git convert 01" width="500" height="304" class="alignnone size-medium wp-image-942" /></a></p>
<h3>Now crank that Soulja Boy!</h3>
<p>Now comes the good stuff. The <code><a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html">git svn</a></code> command will grab a remote Subversion repository, and convert it to a Git repository in a specified folder on my local machine. Paul Dowman&#8217;s tutorial is super handy, but it took some experimentation before I discovered that <code>git svn</code> works not only for an entire repository, but for its subfolders as well. All I needed to do was append the path for the corresponding project to the URL for the repository itself.</p>
<p>What&#8217;s awesome, too, is that if you convert a subfolder of your Subversion repository to Git, <code>git svn</code> will leave all the other cruft behind, <strong>and will convert only the files and commits that are relevant for that particular folder.</strong> So, if you have a 100 MB repository that you&#8217;re converting to eight Git repositories, you&#8217;re not going to end up with 800 MB worth of redundant garbage. Sick, bro!</p>
<p>After firing up Terminal and navigating to my git_convert directory, I used the following command to clone a subfolder of my remote Subversion repository into a new local Git repository:</p>
<pre><code>[prompt]$ git svn clone http://brainsideout.svn.beanstalkapp.com/brainsideout/brainsideout --no-metadata -A authors.txt -t tags -b branches -T trunk git_brainsideout</code></pre>
<p>After some churning, that created a new folder called &#8216;git_brainsideout&#8217; in my git_convert folder:</p>
<p><a href="http://daneomatic.com/wp/wp-content/uploads/2010/10/06-git-convert-02.png"><img src="http://daneomatic.com/wp/wp-content/uploads/2010/10/06-git-convert-02-500x304.png" alt="" title="06 git convert 02" width="500" height="304" class="alignnone size-medium wp-image-943" /></a></p>
<p>That folder&#8217;s contents are an exact copy of the corresponding project&#8217;s trunk folder of my remote Subversion repository:</p>
<p><a href="http://daneomatic.com/wp/wp-content/uploads/2010/10/07-git-convert-03.png"><img src="http://daneomatic.com/wp/wp-content/uploads/2010/10/07-git-convert-03-500x304.png" alt="" title="07 git convert 03" width="500" height="304" class="alignnone size-medium wp-image-944" /></a></p>
<p>You&#8217;ll notice that the trunk, tags and branches folders have all disappeared. That&#8217;s because my <code>git svn</code> command mapped them to their appropriate places within Git, and also because Git is awesomely smart in how it handles tags and branches. <a href="http://pauldowman.com/2008/07/26/how-to-convert-from-subversion-to-git/">Dowman</a> has some additional commands you may want to consider for cleaning up after your tags and branches, but this is all it took for me to get up and running.</p>
<p>Using <code>git svn</code> in the above manner, I eventually converted all my Subversion projects into separate local Git repositories:</p>
<p><a href="http://daneomatic.com/wp/wp-content/uploads/2010/10/08-git-convert-04.png"><img src="http://daneomatic.com/wp/wp-content/uploads/2010/10/08-git-convert-04-500x304.png" alt="" title="08 git convert 04" width="500" height="304" class="alignnone size-medium wp-image-945" /></a></p>
<p>Again, the trunk, tag and branches folders are gone, mapped and replaced by the invisibly magic files of Git:</p>
<p><a href="http://daneomatic.com/wp/wp-content/uploads/2010/10/09-git-convert-05.png"><img src="http://daneomatic.com/wp/wp-content/uploads/2010/10/09-git-convert-05-500x304.png" alt="" title="09 git convert 05" width="500" height="304" class="alignnone size-medium wp-image-946" /></a></p>
<h3>Push your efforts into the cloud.</h3>
<p>I had a few empty remote Git repositories at <a href="http://beanstalkapp.com/">Beanstalk</a> where I wanted all my hard work to live, so my last step was pushing my local repositories up to my Git server. First, I navigated into the desired local Git repository, and setup a name for the remote repository using the <code>remote</code> command:</p>
<pre><code>[prompt]$ git remote add beanstalk git@brainsideout.beanstalkapp.com:/brainsideout.git</code></pre>
<p>I had previously setup my SSH keys, so it was easy to push my local repository to the remote location:</p>
<pre><code>[prompt]$ git push beanstalk master</code></pre>
<p>Bam. Dead. Done. So long, Subversion!</p>
<p>For more information on how to get rollin&#8217; with Git, check out <a href="http://git-scm.com/course/svn.html">the official git/svn crash course</a>, or <a href="http://www.spheredev.org/wiki/Git_for_the_lazy">Git for the lazy</a>.</p>
<p>Happy Gitting!</p>
]]></content:encoded>
			<wfw:commentRss>http://daneomatic.com/wp/2010/11/01/svn-to-multiple-git-repos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clean Slate</title>
		<link>http://daneomatic.com/wp/2010/09/26/clean-slate/</link>
		<comments>http://daneomatic.com/wp/2010/09/26/clean-slate/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 23:20:03 +0000</pubDate>
		<dc:creator>Dane</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Interaction]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://daneomatic.com/wp/?p=917</guid>
		<description><![CDATA[I&#8217;ve been cleaning a lot of the cruft out of my domains lately. Subdomains, development domains, MySQL databases originally setup to stage all sorts of nefarious dealings&#8230; they&#8217;ve all been pulled up by the roots and tossed into heaping piles of gzipped tarballs. As part of this activity I&#8217;ve been cleaning out my Google Analytics [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://daneomatic.com/wp/wp-content/uploads/2010/09/analytics-logo-fail.png" alt="" title="analytics-logo-fail" width="230" height="76" class="alignnone size-full wp-image-921" /></p>
<p>I&#8217;ve been cleaning a lot of the cruft out of my domains lately. Subdomains, development domains, MySQL databases originally setup to stage all sorts of nefarious dealings&#8230; they&#8217;ve all been pulled up by the roots and tossed into heaping piles of gzipped tarballs.</p>
<p>As part of this activity I&#8217;ve been cleaning out my Google Analytics account as well, as many of my analytic site profiles refer to domains long gone, testing procedures long concluded, directions I thought my web interests would go but didn&#8217;t. Having just made a <em>Great and Terrible Mistake</em> and irreversibly destroying a trove of information courtesy of the slop that is the Google Analytics interface, I have penned a cautionary tale to let you aware of two of its most dangerous functions: pagination and deletion.</p>
<h3>Google Analytics Pagination: Party like it&#8217;s 1995 (and your 14.4K U.S. Robotics Sportster just arrived)</h3>
<p>The pagination tool in Google Analytics defaults to displaying only 10 site profiles per page. Using the dropdown menu you can change this to 5, 10, 20, 35, 50 or 100.</p>
<p><img src="http://daneomatic.com/wp/wp-content/uploads/2010/09/analytics-dropdown.png" alt="" title="analytics-dropdown" width="233" height="127" class="alignnone size-full wp-image-919" /></p>
<p>An option to display only <em>five</em> profiles per page? What the hell? In what universe would that be useful? Are we seriously so pressed for bandwidth in 2010 that we cannot afford to peer at the world through more than a pinhole? Further, the cognitive load of needing to choose between six freaking options is ridiculous. It&#8217;s a modest burden to bear but oftentimes interfaces manage to kill their users not through a single fatal flaw, but through an endless series of tiny papercuts such as this.</p>
<p>Seriously, Google Analytics. If you must have pagination, limit the options to 10, 50 and All. And for all that is holy, remember my choice for at <em>least</em> the duration of my session. Needing to reset the number of rows <em>every time</em> I go back to my profile list is maddening, and the fact that I can&#8217;t save this option as a personal setting is driving me insane.</p>
<p>Or would drive me insane, if I hadn&#8217;t screwed up in a much bigger way. Pagination in Google Analytics has an additional feature whose destructive tendencies are so finely tuned that they trump even the above critique. To expand on this, we&#8217;ll take a quick stroll through the flawed workflow for deleting a site profile.</p>
<h3>Deletion: With great power comes insufficient gravity and illustrative consequence surrounding said power.</h3>
<p>To delete a site profile, you click the &#8220;Delete&#8221; link in its corresponding row:</p>
<p><a href="http://daneomatic.com/wp/wp-content/uploads/2010/09/analytics-full-row.png"><img src="http://daneomatic.com/wp/wp-content/uploads/2010/09/analytics-full-row-500x23.png" alt="" title="analytics-full-row" width="500" height="23" class="alignnone size-medium wp-image-920" /></a></p>
<p>When you click &#8220;Delete&#8221; a beautiful alert box pops up, a charming implementation of the &#8220;Hello World&#8221; of any beginner&#8217;s javascript tutorial:</p>
<p><img src="http://daneomatic.com/wp/wp-content/uploads/2010/09/analytics-alert.png" alt="" title="analytics-alert" width="500" height="233" class="alignnone size-full wp-image-924" /></p>
<p>In the alert box, the profile that will be deleted is not mentioned by name. It is up to you to remember, guess or assume which profile you originally clicked on. The most prominent information on this alert is the <em>domain</em> of the website that initiated the alert. Is that really the most important thing you need to know at this point, in order to make an informed decision? More important than the fact that the profile data cannot be recovered? More important than the <em>name</em> of the profile that&#8217;s actually being deleted?</p>
<p>Also note that &#8220;OK&#8221; is selected by default, so that pressing the return key will delete the profile. With an action as destructive as the irrecoverable deletion of <em>years</em> worth of information, it&#8217;s insanely poor form to select this choice by default.</p>
<p>Perhaps if creating a sensible &#8220;Delete&#8221; workflow in Google Analytics was as precious as maximizing clickthru rates on text ads, we&#8217;d see Google employing the same <a href="http://stopdesign.com/archive/2009/03/20/goodbye-google.html">obsessive levels of testing</a> that the color of hyperlinks currently enjoy. As it stands, all I can say is <a href="http://www.google.com/corporate/ux.html">user experience</a> my ass.</p>
<h3>One Plus One Equals Gone</h3>
<p>The ambiguous delete tool in Google Analytics, combined with its poorly-executed pagination functionality, creates a perfect storm of destruction. No matter what page you are on, when you click &#8220;OK&#8221; to confirm the deletion of a profile, Google Analytics <em>redirects you to the first page of your profile list.</em></p>
<p><img src="http://daneomatic.com/wp/wp-content/uploads/2010/09/analytics-page-three.png" alt="" title="analytics-page-three" width="240" height="54" class="alignnone size-full wp-image-923" /></p>
<p><img src="http://daneomatic.com/wp/wp-content/uploads/2010/09/analytics-page-one.png" alt="" title="analytics-page-one" width="240" height="54" class="alignnone size-full wp-image-922" /><br />
(The alert box for confirming the delete action appears over your current page. After clicking &#8220;OK&#8221; from the alert box you are redirected to the first page, losing the context of your delete action.)</p>
<p>Like most humans, I have a finely-tuned spatial memory. I instinctively take note of where things are located in space, I can predict where they will go, and I can remember where they were. If I&#8217;m performing a repetitive task, say spooning food into my mouth, I don&#8217;t check my plate after every bite to make sure it hasn&#8217;t turned into a bowl of snakes. There is an expectation, born from my experience with physical reality, that the plate and food will remain fairly consistent between mouthfuls such that it doesn&#8217;t demand constant conscious consideration. In the words of Heidegger, the spoon, plate and food are ready-to-hand, an extension of myself, part of my world of absorbed coping.</p>
<p>In Google Analytics I had identified two profiles that were outdated, and I moved to delete both of them. Spatially, they were located right next to each other, one after the other. I deleted the first one, and instinctively went to the location of the second one, and deleted it as well. The javascript alert, boldly declaring <strong>https://www.google.com/</strong>, was promptly ignored because it offered no useful information to confirm.</p>
<h3>So long, dear friends.<br />
Well, numerical representations of friends.</h3>
<p>Unbeknownst to me, after deleting the first site profile I had been quietly redirected to the first page of my profiles list. And so, it came to pass that I deleted <em>not</em> the profile I intended to delete, but the profile documenting <em>four years of activity here at Daneomatic.</em> Clearly I&#8217;m <a href="http://www.google.com/support/forum/p/Google+Analytics/thread?tid=70ab1a7a3866cbfa&#038;hl=en">not</a> <a href="http://www.google.com/support/forum/p/Google+Analytics/thread?tid=0d64779581fe843e&#038;hl=en">the</a> <a href="http://www.google.com/support/forum/p/Google+Analytics/thread?tid=6ebb189a8b390b53&#038;hl=en">first</a> person to have accidentally (and irrecoverably) deleted a profile from Google Analytics.</p>
<p>Dear friends of Daneomatic, I ask that you enjoy your fresh start. Save your comments, I know nothing of you, of your browsers or activities or search terms.</p>
<p>Please, remake yourselves however you see fit. The gentle fellows at You Look Nice Today may offer <a href="http://youlooknicetoday.com/episode/sake-period">some valuable suggestions</a> as to how to best use this opportunity.</p>
<p>I, of course, would recommend the Mork from Ork suspenders.</p>
]]></content:encoded>
			<wfw:commentRss>http://daneomatic.com/wp/2010/09/26/clean-slate/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Your Workflow is the Battlefield</title>
		<link>http://daneomatic.com/wp/2010/01/31/your-workflow-is-the-battlefield/</link>
		<comments>http://daneomatic.com/wp/2010/01/31/your-workflow-is-the-battlefield/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 03:43:10 +0000</pubDate>
		<dc:creator>Dane</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Nerd]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://daneomatic.com/wp/?p=759</guid>
		<description><![CDATA[There&#8217;s been quite the wailing and gnashing of teeth over the Apple iPad not supporting Flash. Personally, I welcome this new landscape of the web, where a future without Flash seems not only bright but possible indeed. That said, what is unfolding here is of considerable gravity, and will likely determine the future of the [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been quite the wailing and gnashing of teeth over the Apple iPad not supporting Flash. Personally, I welcome this new landscape of the web, where a future without Flash seems not only bright but possible indeed.</p>
<p>That said, what is unfolding here is of considerable gravity, and will likely determine the future of the web. Most web professionals use Adobe tools in some capacity to do their job, whether Photoshop, Illustrator, Dreamweaver (gasp), Flash, Flex, Flash Cataylst, or even Fireworks (which is, according to many, the best wireframing tool on the market, despite its quirks and crash-prone behaviors).</p>
<p>Now, I am not privy to inside information, but based on what I&#8217;ve been able to glean, Adobe&#8217;s strategy is something like this. There is a deliberate reason that your workflow as a standards-based web professional sucks; that Photoshop doesn&#8217;t behave the way you want it to, that exporting web images is still a pain in the ass, and that you actually need to <em>fight</em> the software to get it to do what you want.</p>
<p>Adobe knows how you use its software. Adobe knows how you <em>want</em> to use its software. Adobe understands your existing workflow.</p>
<p>And it doesn&#8217;t fucking care.</p>
<p>You see, Adobe doesn&#8217;t view you, as a web professional, as someone engaged in building websites. It doesn&#8217;t view <em>itself</em> as one who builds the tools to support you in your job. Adobe does not view you as the author of images and CSS and HTML and Javascript that all magically comes together to create a website, but rather as the author of what could potentially be <em>Adobe Web Properties&trade;.</em></p>
<p>They are not interested in supporting your workflow to create standards-based websites, because that is not in their strategic interest. They would much rather you consented to the cognitive model of Adobe Software&trade; to create proprietary Adobe Web Properties&trade; that render using Adobe Web Technologies&trade;. </p>
<p>In essence, Adobe wants to be the gatekeeper for the production, as well as the consumption, of the web.</p>
<p>Apple knows this, and knows that the future of the web is mobile. Their actions are no less strategic than that of Adobe, and Apple has chosen a route that deliberately undermines Adobe&#8217;s strategy; Adobe&#8217;s strategy for controlling not just the consumption of rich interactive experiences on the web, but their production as well.</p>
<p>From the production side, as far as Adobe is concerned, if you&#8217;re not building your websites in Flash Catalyst and exporting them as Flash files, you&#8217;re doing it wrong.</p>
<p>Your frustrations with Photoshop and Fireworks in not supporting the &#8220;real way&#8221; web professionals build standards-based websites are not by accident, but by design. Adobe views each website as a potential property over which they can exert control over the look, feel and experience. As these &#8220;experiences&#8221; become more sophisticated, so do the tools necessary to create them. Adobe wants to be in the business of selling the only tools that do the job, controlling your production from end-to-end, and then even controlling the publication of and access to your creation.</p>
<p>Apple&#8217;s own domination plans for the mobile web undermines all this.</p>
<p>And Adobe is pissed.</p>
]]></content:encoded>
			<wfw:commentRss>http://daneomatic.com/wp/2010/01/31/your-workflow-is-the-battlefield/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scope</title>
		<link>http://daneomatic.com/wp/2009/07/27/scope/</link>
		<comments>http://daneomatic.com/wp/2009/07/27/scope/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 05:28:49 +0000</pubDate>
		<dc:creator>Dane</dc:creator>
				<category><![CDATA[Civilization]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Hans & Umbach]]></category>
		<category><![CDATA[Interaction]]></category>
		<category><![CDATA[San Francisco]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://daneomatic.com/wp/?p=574</guid>
		<description><![CDATA[Maybe you&#8217;ve already heard, but I recently helped launch Adaptive Path&#8217;s new home page. A few of the other kind folks at the office designed it, and I cut it up into its hot-and-buttery front-end code. I used 960.gs for the pixel-perfect CSS grid system, and cooked up some slick back-end code for streaming our [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.adaptivepath.com/" title="Home Sweet Home by thegreatsunra, on Flickr"><img src="http://farm3.static.flickr.com/2518/3764905570_37a9673f3a.jpg" width="500" height="375" alt="Home Sweet Home" /></a></p>
<p>Maybe you&#8217;ve already heard, but I recently helped launch <a href="http://www.adaptivepath.com/">Adaptive Path&#8217;s new home page.</a> A few of the other kind folks at the office designed it, and I cut it up into its hot-and-buttery front-end code. I used <a href="http://960.gs/">960.gs</a> for the pixel-perfect CSS grid system, and cooked up some slick back-end code for streaming our recent essays and blog posts into their proper sections.</p>
<p>What&#8217;s more, I wrote some tight little scripts to hit up our Twitter feed and pull down our most recent tweets. Javascript implementations are nice for low-volume sites, but when you get as much traffic as AP you need something a bit more robust. I developed a lightweight caching module that wraps around our call to the Twitter API, keeping our tweets fresh without hitting Twitter on every single (insanely frequent) page load.</p>
<p>Meanwhile, I&#8217;ve pretty much been living at <a href="http://www.museemecaniquesf.com/">Mus&eacute;e M&eacute;canique</a> the last two weekends, digesting their incredible collection of antique coin-operated arcade machines. While these pictures certainly won&#8217;t leave that familiarly cold smell of metal on your hands after you&#8217;re done handling them, I&#8217;ve nevertheless been dropping my observations into a <a href="http://www.flickr.com/photos/thegreatsunra/sets/72157621869557484/">set on Flickr.</a></p>
<p><a href="http://www.flickr.com/photos/thegreatsunra/3757421938/" title="Drop Coin Here by thegreatsunra, on Flickr"><img src="http://farm3.static.flickr.com/2518/3757421938_c255a427b7.jpg" width="500" height="375" alt="Drop Coin Here" /></a></p>
<p><a href="http://www.flickr.com/photos/thegreatsunra/3756630565/" title="The Cail-O-Scope by thegreatsunra, on Flickr"><img src="http://farm3.static.flickr.com/2462/3756630565_dc744af15a.jpg" width="500" height="375" alt="The Cail-O-Scope" /></a></p>
<p><a href="http://www.flickr.com/photos/thegreatsunra/3757441460/" title="Love Tester by thegreatsunra, on Flickr"><img src="http://farm3.static.flickr.com/2487/3757441460_13e0de9a8c.jpg" width="500" height="375" alt="Love Tester" /></a></p>
<p><a href="http://www.flickr.com/photos/thegreatsunra/3756621319/" title="Grope by thegreatsunra, on Flickr"><img src="http://farm4.static.flickr.com/3475/3756621319_eccc7e59a9.jpg" width="500" height="375" alt="Grope" /></a></p>
<p><a href="http://www.flickr.com/photos/thegreatsunra/3757422872/" title="Musée Mécanique by thegreatsunra, on Flickr"><img src="http://farm3.static.flickr.com/2501/3757422872_80a0b3a986.jpg" width="500" height="375" alt="Musée Mécanique" /></a></p>
<p><a href="http://www.flickr.com/photos/thegreatsunra/3764857680/" title="Musée Mécanique by thegreatsunra, on Flickr"><img src="http://farm3.static.flickr.com/2543/3764857680_b8cef430e9.jpg" width="500" height="375" alt="Musée Mécanique" /></a></p>
<p><a href="http://www.flickr.com/photos/thegreatsunra/3764856086/" title="Baseball Score-Board by thegreatsunra, on Flickr"><img src="http://farm3.static.flickr.com/2615/3764856086_5b8bef30cf.jpg" width="500" height="375" alt="Baseball Score-Board" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://daneomatic.com/wp/2009/07/27/scope/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oliver&#8217;s Simple Fluid Dynamics Generator</title>
		<link>http://daneomatic.com/wp/2009/06/10/olivers-simple-fluid-dynamics-generator/</link>
		<comments>http://daneomatic.com/wp/2009/06/10/olivers-simple-fluid-dynamics-generator/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 03:35:49 +0000</pubDate>
		<dc:creator>Dane</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Interaction]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://daneomatic.com/wp/?p=486</guid>
		<description><![CDATA[God damn this is cool. Click and drag in the black square to make the magic happen. Works best in the smokin&#8217; Safari 4.0, because this beast is heavy on the Javascript. In any other browser you&#8217;ll wonder what in the hell I&#8217;m gettin&#8217; so worked up about. Stuff like this just feeds my existing [...]]]></description>
			<content:encoded><![CDATA[<p>God <em>damn</em> <a href="http://nerget.com/fluidSim/">this is cool</a>. Click and drag in the black square to make the magic happen. Works best in the smokin&#8217; Safari 4.0, because this beast is heavy on the Javascript. In any other browser you&#8217;ll wonder what in the hell I&#8217;m gettin&#8217; so worked up about.</p>
<p>Stuff like this just <em>feeds</em> my existing obsession with introducing deliberate thought and consideration into the texture and materiality of our digital interfaces. Seriously, computer interaction that exhibits natural physical properties, either felt, observed or otherwise perceived, really gets my blood going.</p>
<p><a href="http://nerget.com/fluidSim/"><img src="http://daneomatic.com/wp/wp-content/uploads/2009/06/fluid-dynamics.jpg" alt="fluid-dynamics" title="fluid-dynamics" width="512" height="512" class="alignnone size-full wp-image-487" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://daneomatic.com/wp/2009/06/10/olivers-simple-fluid-dynamics-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zoom, Zoom, Zoom</title>
		<link>http://daneomatic.com/wp/2009/06/09/zoom-zoom-zoom/</link>
		<comments>http://daneomatic.com/wp/2009/06/09/zoom-zoom-zoom/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 05:19:38 +0000</pubDate>
		<dc:creator>Dane</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Typography]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://daneomatic.com/wp/?p=481</guid>
		<description><![CDATA[I started using Safari 4.0 yesterday, and I like what I see so far. The new Javascript interpreter is fast. The controls for Google Maps are so quick they&#8217;re frightening. Just try using your scroll wheel (or two-finger gesture on the trackpad of your new non-removable-battery MacBook Pro) to zoom in. If there&#8217;s a faster [...]]]></description>
			<content:encoded><![CDATA[<p>I started using Safari 4.0 yesterday, and I like what I see so far. The new Javascript interpreter is <em>fast</em>. The controls for <a href="http://maps.google.com/">Google Maps</a> are so quick they&#8217;re frightening. Just try using your scroll wheel (or two-finger gesture on the trackpad of your new non-removable-battery MacBook Pro) to zoom in. If there&#8217;s a faster way to reach the surface of the earth from space, I&#8217;m sure Burt Rutan is working on it.</p>
<p>Err, the <em>opposite,</em> I&#8217;m sure he&#8217;s working on the <em>opposite.</em> Sheesh.</p>
<p>Anyway, I will leave you with the coolest, blockiest typeface I have ever seen in my <em>life.</em> Seriously, check out these titles:</p>
<p><a href="http://www.flickr.com/photos/thegreatsunra/3612461693/" title="Golden Gate Bridge Plaque by thegreatsunra, on Flickr"><img src="http://farm4.static.flickr.com/3347/3612461693_8a66cf1c42.jpg" width="500" height="375" alt="Golden Gate Bridge Plaque" /></a></p>
<p>Beautiful. Let&#8217;s get a little closer, shall we?</p>
<p><a href="http://www.flickr.com/photos/thegreatsunra/3613279772/" title="PAST OFFICERS, PAST DIRECTORS by thegreatsunra, on Flickr"><img src="http://farm4.static.flickr.com/3414/3613279772_536a9ac27b.jpg" width="500" height="374" alt="PAST OFFICERS, PAST DIRECTORS" /></a></p>
<p>And once more, for the people in the balcony:</p>
<p><a href="http://www.flickr.com/photos/thegreatsunra/3613281584/" title="DIRECTORS detail by thegreatsunra, on Flickr"><img src="http://farm4.static.flickr.com/3385/3613281584_cf1dde8133.jpg" width="500" height="375" alt="DIRECTORS detail" /></a></p>
<p><em>Man.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://daneomatic.com/wp/2009/06/09/zoom-zoom-zoom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sublety and Nuance in Physical Interaction</title>
		<link>http://daneomatic.com/wp/2009/06/05/sublety-and-nuance/</link>
		<comments>http://daneomatic.com/wp/2009/06/05/sublety-and-nuance/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 06:10:27 +0000</pubDate>
		<dc:creator>Dane</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Hans & Umbach]]></category>
		<category><![CDATA[Interaction]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://daneomatic.com/wp/?p=463</guid>
		<description><![CDATA[I had a great conversation during tea time at Adaptive Path this evening with Jesse James Garrett, about the role of subtlety and nuance in physical interaction design. Central to the conversation was Microsoft&#8217;s Project Natal, an upcoming system for the Xbox 360 that lets you use your full body to control games. While large [...]]]></description>
			<content:encoded><![CDATA[<p>I had a great conversation during tea time at Adaptive Path this evening with Jesse James Garrett, about the role of subtlety and nuance in physical interaction design. Central to the conversation was <a href="http://www.youtube.com/watch?v=oACt9R9z37U">Microsoft&#8217;s Project Natal</a>, an upcoming system for the Xbox 360 that lets you use your full body to control games.</p>
<p>While large motions, like punching and kicking the air, make for an impressive flourish, it&#8217;s interesting to consider what a system like this would look like in a few years, as it becomes increasingly fine-tuned. What if it knows where each one of my fingers is, like a musical instrument? What kind of interactive applications could this have in a non-game environment? Or, as Jesse mused, how can we learn from gaming to bring more game-related themes, from the concept of play to the interactive vocabularies we establish therein, into everyday computer-mediated interactions?</p>
<p>Part of <a href="http://adaptivepath.com/ideas/essays/archives/000385.php">Jesse&#8217;s work on the Ajax approach</a> to web development was based on a desire to make web interactions feel more game-like in nature. Before we had instant asynchronous updates, whether backed by XML or not, the web had a distinctly evaluative feel to it. The cost of submitting web input was high, as it resulted in a long pause before I would know whether or not my submission had been accepted. Games typically offer instantaneous feedback and so this delayed, high-cost transaction felt more like taking an exam than playing a game. Thus, the web-two-point-oh-social-media-user-generated-content revolution is not about Ajax or Prototype or Scriptaculous or jQuery or MooTools, but about removing the barriers of time and cost previously associated with contributing to the web.</p>
<p>And so, with sophisticated physical input devices on the horizon, how can we use the most familiar input devices ever, our <em>own bodies,</em> to enhance our computer-mediated experiences? Further, given the fine-grained control we have over our physical selves, how can we draw on the rich human tradition of <em>having a body</em> and allow people to interact with a system in a more subtle and nuanced manner?</p>
<p>Just something I&#8217;m pondering.</p>
]]></content:encoded>
			<wfw:commentRss>http://daneomatic.com/wp/2009/06/05/sublety-and-nuance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Your Online Banking System Can Go To Hell</title>
		<link>http://daneomatic.com/wp/2009/05/19/online-bankin/</link>
		<comments>http://daneomatic.com/wp/2009/05/19/online-bankin/#comments</comments>
		<pubDate>Tue, 19 May 2009 18:00:51 +0000</pubDate>
		<dc:creator>Dane</dc:creator>
				<category><![CDATA[Civilization]]></category>
		<category><![CDATA[Consumerism]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://daneomatic.com/wp/?p=391</guid>
		<description><![CDATA[Dear Online Statements, I have paper records that go back ten years. Ten years. These records do not expire. You propose that I enroll in a &#8220;convenient&#8221; system that forgets my records after a mere 18 months. If I want to access records older than that you will charge me a fee and send them [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://daneomatic.com/wp/wp-content/uploads/2009/05/online-statements.png" alt="online-statements" title="online-statements" width="580" height="258" class="alignnone size-full wp-image-392" /></p>
<p>Dear Online Statements,</p>
<p>I have paper records that go back ten years. Ten <em>years.</em> These records do not expire. You propose that I enroll in a &#8220;convenient&#8221; system that forgets my records after a mere 18 months. If I want to access records older than that you will charge me a fee and send them via U.S. mail, <em>which is what you were doing in the first place.</em></p>
<p>If your online system is so &#8220;secure&#8221; why can&#8217;t you entrust it with more than 18 months worth of records? If it is so &#8220;convenient&#8221; why does it do a worse job of managing my account history than <em>I</em> do?</p>
<p>This is supposed to sound compelling <em>why?</em></p>
<p>Regards,<br />
Dane</p>
<p>P.S. If you ever again mention the &#8220;greenness&#8221; of online statements versus mailed statements, so help me god I will claw out your throat. There is nothing green about a server farm that needs to run white-hot 24 hours a day, seven days a week, to allow me &#8220;access&#8221; to my &#8220;statements&#8221; whenever I &#8220;want&#8221;.</p>
<p>I&#8217;ll tell you what&#8217;s green and convenient, and it&#8217;s a fucking file cabinet.</p>
]]></content:encoded>
			<wfw:commentRss>http://daneomatic.com/wp/2009/05/19/online-bankin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mother of All Funk Chords</title>
		<link>http://daneomatic.com/wp/2009/04/30/mother-of-all-funk-chords/</link>
		<comments>http://daneomatic.com/wp/2009/04/30/mother-of-all-funk-chords/#comments</comments>
		<pubDate>Fri, 01 May 2009 01:42:13 +0000</pubDate>
		<dc:creator>Dane</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://daneomatic.com/wp/?p=371</guid>
		<description><![CDATA[I found this months ago, and watching it still gives me chills: This was the reason the internet was invented, man.]]></description>
			<content:encoded><![CDATA[<p>I found this months ago, and watching it still gives me chills:</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/tprMEs-zfQA&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/tprMEs-zfQA&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p> This was the reason the internet was <em>invented,</em> man.</p>
]]></content:encoded>
			<wfw:commentRss>http://daneomatic.com/wp/2009/04/30/mother-of-all-funk-chords/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social Hygiene</title>
		<link>http://daneomatic.com/wp/2008/06/29/social-hygiene/</link>
		<comments>http://daneomatic.com/wp/2008/06/29/social-hygiene/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 03:27:53 +0000</pubDate>
		<dc:creator>Dane</dc:creator>
				<category><![CDATA[Civilization]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://daneomatic.com/wp/?p=120</guid>
		<description><![CDATA[The other day, Kate and I were discussing the difference between a &#8220;tool&#8221; and a &#8220;douche bag&#8221;. It is a subtle but important differentiation, and we came up with the following guide. We hope you find it helpful, and failing that, offensive. Tool: Drives a champagne Lexus LX with gold trim. Douche Bag: Drives a [...]]]></description>
			<content:encoded><![CDATA[<p>The other day, Kate and I were discussing the difference between a &#8220;tool&#8221; and a &#8220;douche bag&#8221;.  It is a subtle but important differentiation, and we came up with the following guide.  We hope you find it helpful, and failing that, offensive.</p>
<p><strong>Tool:</strong> Drives a champagne Lexus LX with gold trim.<br />
<strong>Douche Bag:</strong> Drives a black Cadillac Escalade with gold trim.</p>
<p><strong>Tool:</strong> Wears one polo shirt with one popped collar.<br />
<strong>Douche Bag:</strong> Wears two or more polo shirts with one or more popped collars.</p>
<p><strong>Tool:</strong> Tries to network with you at a party.<br />
<strong>Douche Bag:</strong> Tries to network with you at a funeral.</p>
<p><strong>Tool:</strong> Working on a Web 2.0 social networking application.<br />
<strong>Douche Bag:</strong> Working on a Web 2.0 social networking application that will be the next Facebook/MySpace/YouTube.</p>
]]></content:encoded>
			<wfw:commentRss>http://daneomatic.com/wp/2008/06/29/social-hygiene/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

