<?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>almost daniel &#187; javascript</title>
	<atom:link href="http://almostdaniel.com/tags/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://almostdaniel.com</link>
	<description>i am a coder, an array explode(r). but here is where i write.</description>
	<lastBuildDate>Tue, 16 Mar 2010 21:35:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>javascript architecture: the front and back of it</title>
		<link>http://almostdaniel.com/2010/03/14/javascript-architecture-the-front-and-back-of-it/</link>
		<comments>http://almostdaniel.com/2010/03/14/javascript-architecture-the-front-and-back-of-it/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 16:50:25 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[sxsw]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/?p=484</guid>
		<description><![CDATA[UI Architecture: all the stuff that it takes to process, package, deliver, and communicate with the client (templating url routing, data validatiion, formatting, ajax). &#8220;Between the front and back end&#8221;: stuff between presentational javascript and the backend logic. The middle end gives a web 2.0 app performance.
We need to talk about this because of issues [...]]]></description>
			<content:encoded><![CDATA[<p>UI Architecture: all the stuff that it takes to process, package, deliver, and communicate with the client (templating url routing, data validatiion, formatting, ajax). &#8220;Between the front and back end&#8221;: stuff between presentational javascript and the backend logic. The middle end gives a web 2.0 app performance.</p>
<p>We need to talk about this because of issues with performance and optimization, the MVC model spaghetti code failure (outputting html if a condition exists: the mixture of model code inside view template, too tight coupling between presentation layer and model layer), &#8220;don&#8217;t repeat yourself&#8221; (DRY: repeating code over and over again, i.e., duplicating validation in the client and the server, &#8220;any time there is more than one copy of something, one copy is always wrong&#8221;), and role separation (wearing multiple skillset hats and mixing contexts–markup/css switch to javascript switch to backend app–without being able to focus on one context at a time). </p>
<p>This isn&#8217;t another framework, it&#8217;s an optimized/reworked &#8220;alternate pattern&#8221; of MVC in an attempt to solve some of the weaknesses/problems of MVC. Can we decouple the view from the existing architecture stack?</p>
<p>CVC + JavaScript puts the power of UI architecture in the hands of front-end engineers.</p>
<p>[ <a href="http://my.sxsw.com/events/event/486">session description</a> ]</p>
<dl>
<dt>Presenter(s)</dt>
<dd>Kyle Simpson </dd>
<dt>Date</dt>
<dd>14 March 2010</dd>
<dt>Tag(s)</dt>
<dd><a href="http://search.twitter.com/search?q=%23frontandbackofit">#frontandbackofit</a></dd>
<dd><a href="http://search.twitter.com/search?q=%23jsarch">#jsarch</a></dd>
<dt>Sites</dt>
<dd><a href="http://getify.me/">Getify</a></dd>
<dd><a href="http://sxsw.getify.com/">Demo of HandlebarJS</a></dd>
<dd><a href="http://spkr8.com/t/2518">Speaker Feedback</a></dd>
<dd><a href="http://github.com/getify/BikechainJS">BikechainJS</a></dd>
<dd><a href="http://github.com/getify/HandlebarJS">HandlebarJS</a></dd>
</dl>
<p><span id="more-484"></span></p>
<h3>Traditional: CVC</h3>
<p>The MVC model doesn&#8217;t have a clear space for client-based JS app (a JS version of the app that is not just the presentation logic, but a representation of the app inside the client).</p>
<h3>New: &#8220;Clients Views Controllers&#8221; (CVC)</h3>
<p>Application Layer (black box): doesn&#8217;t do anything with the presentation layer, no markup; only concerned with state management/session records and representing the data in a standard format: JSON API. Multiple other layers can talk to JSON API, so make it primary communication interface with application layer. </p>
<p><strong>Web Server Layer</strong>: translates protocol request to hand off to rest of stack.</p>
<p><strong>UI Controllers Layer (server)</strong>: written in javascript, takes care of url routing, data validation. Allows more reuse of code/less rewriting in server/client layers. </p>
<p><strong>View Layer (server/client)</strong>: written in javascript, view engine decoupled from application, portable to client because of JS to run in browser.</p>
<p>&#8220;look up state, hands off to controllers, choose a view&#8221;</p>
<h4>Clients</h4>
<p>Everything is a client of everything else. Each layer is decoupled, modular, scalable.</p>
<h4>Views</h4>
<p>Templating, portable, DRY, platform agnostic, uses core web tech.</p>
<h4>Controllers</h4>
<p>Task oriented. Controlled by front-end engineer. Less dependence on backend architecture. Small, independent.</p>
<h3>JavaScript on a Server</h3>
<p>node.js is a wrapper around the V8 JS engine. Some Python dependencies for build, but not for execute. V8 is just a shared lib. a different way to process web requests: asynchronous events instead of firing a thread for every request. narwhal is a wrapper around the rhino JS engine. Others: javascriptcore, spidermonkey.</p>
<p>Reference implementation: BikechainJS is Kyle&#8217;s wrapper around V8. Loads modules to create a hosted environment to run JS. HandlebarJS is a templating engine that uses text/html templates and accepts JSON data input where you cannot call any methods/math. The only logic you can do is to use application &#8220;state&#8221; for template selection. Compiles templates into JS the first time a template is parsed. Environment agnostic (server or client).  </p>
<h3>Standards</h3>
<p>How do I read/write files, i/o, execute processes, conduct network requests? CommonJS is a standards community. Very young.</p>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2010/03/14/javascript-architecture-the-front-and-back-of-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>designing our way through web forms</title>
		<link>http://almostdaniel.com/2009/03/15/designing-our-way-through-web-forms/</link>
		<comments>http://almostdaniel.com/2009/03/15/designing-our-way-through-web-forms/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 21:30:46 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[progressive engagement]]></category>
		<category><![CDATA[progressive enhancement]]></category>
		<category><![CDATA[sxsw]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/?p=138</guid>
		<description><![CDATA[Forms suck. Creating a style guide for form design is difficult.

Presenters
Christopher Schmitt &#8211; Heat Vision
Eric Ellis &#8211; Bank of America
Kimberly Blessing &#8211; Comcast Interactive Media
Date
Sunday, March 15
Sites
web form elements research
jquery validation
moz monkey



The Luke W. mantra: forms stand in the way of what we want to do.
Conversations
Conversations are rooted in trust. Good forms should be structured [...]]]></description>
			<content:encoded><![CDATA[<p>Forms suck. Creating a style guide for form design is difficult.</p>
<dl>
<dt>Presenters</dt>
<dd>Christopher Schmitt &#8211; Heat Vision</dd>
<dd>Eric Ellis &#8211; Bank of America</dd>
<dd>Kimberly Blessing &#8211; Comcast Interactive Media</dd>
<dt>Date</dt>
<dd>Sunday, March 15</dd>
<dt>Sites</dt>
<dd><a href="http://webformelements.com/">web form elements research</a></dd>
<dd><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jquery validation</a></dd>
<dd><a href="http://mozmonkey.com/">moz monkey</a></dd>
</dl>
<p><span id="more-138"></span></p>
<hr />
The Luke W. mantra: forms stand in the way of what we want to do.</p>
<h3>Conversations</h3>
<p>Conversations are rooted in trust. Good forms should be structured on trust. Think about people/relationships, and context. The way you speak to your users impacts their excitement/enjoyment. The way you label your forms focused on a label that makes sense to the user not just to you.</p>
<dl>
<dt>Expectation</dt>
<dd>Apparently expectation is obvious.</dd>
<dt>Flow</dt>
<dd>Can a user look at a page in a matter of seconds and understand the pattern of interaction.</dd>
<dt>[Managed] Noise</dt>
<dd>Forms that are not initiated or expected; noise is anything that inhibits the user&#8217;s ability to complete the task. Marginilization over removal.</dd>
<dt>Order</dt>
<dd>Important things (the task) first, then the rest should be add-on. But make sure I have completed something <em>soon</em>.</dd>
</dl>
<h3>Progressive Engagement</h3>
<p>Lead a user down a path and show them questions only if they are necessary to the context and the type of user you are (if I already know about you, don&#8217;t ask me to fill it in again).</p>
<h3>HTML5 Form Elements</h3>
<ul>
<li>Slider</li>
<li>Input date (calendar) drop-down</li>
<li>Input time</li>
<li>Placeholder</li>
</ul>
<h3>Web Form Management</h3>
<p>Forms get re-purposed most often. How can you manage all the different form purposes simplistically in a common application pattern library? An editorial style guide for web forms: how do we speak to our customer or about our services?</p>
<p>Pull together the people who care about standards and build a style guide from the ground up.</p>
<h3>Validation</h3>
<p>Client-side validation doesn&#8217;t get it all, and can expose your validation methods to DoS. Split validation between client/server: format v. required. Server-side response for validation errors at top so screen readers see it force.</p>
<p><em>These are notes from a session at <a href="http://sxsw.com/interactive">sxsw interactive</a>. My own take on topics are mixed in with what the presenters were actually saying, so do not assume all of this content is my own.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2009/03/15/designing-our-way-through-web-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ooooh! that&#8217;s clever!</title>
		<link>http://almostdaniel.com/2009/03/13/ooooh-thats-clever/</link>
		<comments>http://almostdaniel.com/2009/03/13/ooooh-thats-clever/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 21:22:58 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[sxsw]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://almostdaniel.com/?p=69</guid>
		<description><![CDATA[Sharing secrets: hiding things in plain sight generates a special connection between the site and its audience generates delight and generates a desire to share the secret.

Presenter
Paul Annett, clearleft
@nicepaul
Date
Friday, March 13
Sites
podcast
clearleft



kano model: customers have three needs: basic, performance, and excitement. technology and functionality fulfills basic needs, user analysis helps meet performance needs via ease-of-use, but [...]]]></description>
			<content:encoded><![CDATA[<p>Sharing secrets: hiding things in plain sight generates a special connection between the site and its audience generates delight and generates a desire to share the secret.</p>
<dl>
<dt>Presenter</dt>
<dd>Paul Annett, clearleft</dd>
<dd>@nicepaul</dd>
<dt>Date</dt>
<dd>Friday, March 13</dd>
<dt>Sites</dt>
<dd id="podcast"><a href="http://audio.sxsw.com/2009/podcasts/D1%20SXSW_PODCASTS/031309_PM2_BallA_Unatural_Web_Design.mp3">podcast</a></dd>
<dd><a href="http://clearleft.com/">clearleft</a></dd>
</dl>
<p><span id="more-69"></span></p>
<hr />
<a href="http://en.wikipedia.org/wiki/Kano_model">kano model</a>: customers have three needs: basic, performance, and excitement. technology and functionality fulfills basic needs, user analysis helps meet performance needs via ease-of-use, but unexpected delights and secrets meet the excitement needs.</p>
<p><em>These are notes from a session at <a href="http://sxsw.com/interactive">sxsw interactive</a>. My own take on topics are mixed in with what the presenters were actually saying, so do not assume all of this content is my own.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://almostdaniel.com/2009/03/13/ooooh-thats-clever/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://audio.sxsw.com/2009/podcasts/D1%20SXSW_PODCASTS/031309_PM2_BallA_Unatural_Web_Design.mp3" length="17399316" type="audio/mpeg" />
		</item>
	</channel>
</rss>
