<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">

    <title type="text">Filament Group, Inc: Lab</title>
    <subtitle type="text">Lab:What we&apos;re thinking at Filament Group</subtitle>
    <link rel="alternate" type="text/html" href="/lab" />
    <link rel="self" type="application/atom+xml" href="http://filamentgroup.com/lab/atom/" />
    <updated>2012-01-25T18:40:00Z</updated>
    <rights>Copyright (c) 2012, Maggie</rights>
    <generator uri="http://expressionengine.com/" version="1.6.1">ExpressionEngine</generator>
    <id>tag:,2012:01:18</id>


    <entry>
      <title>Filament Group&#8217;s Open Source Code Repositories</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/open_source_code_repositories/" />
      <id>tag:,2012:/lab/6.134</id>
      <published>2012-01-18T17:03:00Z</published>
      <updated>2012-01-25T18:40:00Z</updated>
      <author>
            <name>Maggie</name>
                  </author>

      <content type="html"><![CDATA[
       <p class="postData">Posted by Maggie on 01/18/2012</p>

<dl class="topics">
					<dt>Topics:</dt>
					
				</dl>
						<p>As enthusiastic supporters of standards, progressive enhancement, and responsive techniques, we frequently release open-source code. We're thrilled that so many of you find it useful, and are willing to help us make it better &#8212; thank you! </p>

<p>But keeping track of bugs and suggestions on this blog is difficult to manage, and frequently leads people to outdated code or examples. So we've decided to move all our open source projects to Git to make sharing, bug tracking and updates easier.</p>

<p>This page will serve as a centralized list of all projects, which we'll keep updated as we develop new widgets and techniques.  Look below for links to downloadable code, live demos, and articles explaining our thought process:</p>
					</div>
		
					<h3>Ajax-like file downloads 
<span class="demo-links">
<a href="https://github.com/filamentgroup/jQuery-File-Download">code</a>
</span>
</h3>
<p>A jQuery plugin to facilitate requests from the front end that result in a file &#8212; such as .doc or .xls &#8212; for download. The plugin does not actually use Ajax, but its syntax follows the conventions of jQuery's native Ajax functions, making it a natural addition to our jQuery toolset. <a href="/lab/jquery_plugin_for_requesting_ajax_like_file_downloads/">Read more...</a></p>

<h3>Collapsible content widget 
<span class="demo-links">
<a href="/examples/jquery-collapsible-content/">demo</a> | 
<a href="https://github.com/filamentgroup/jQuery-Collapsible-Content">code</a>
</span>
</h3>
<p>An accessible collapsible content panel plugin from our book, <a href="/dwpe"><em>Designing with Progressive Enhancement</em></a>. <a href="/lab/expand_and_collapse_content_accessibly_with_progressive_enhancement_jquery/">Read more...</a></p>

<h3>Custom input (checkbox, radiobutton) 
<span class="demo-links">
<a href="/dwpe/checkbox-radiobutton/">demo</a> | 
<a href="https://github.com/filamentgroup/jQuery-Custom-Input">code</a>
</span>
</h3>
<p>A jQuery plugin that uses progressive enhancement to transform a standard HTML checkbox or radio button into a visually customizable control, and leverages all of the accessibility features the native input provides (from our book, <a href="/dwpe"><em>Designing with Progressive Enhancement</em></a>).</p>

<h3>Custom file input 
<span class="demo-links">
<a href="/examples/jquery-custom-file-input/">demo</a> | 
<a href="https://github.com/filamentgroup/jQuery-Custom-File-Input">code</a>
</span>
</h3>
<p>A jQuery plugin that uses progressive enhancement to transform a standard HTML file input into a visually customizable control, and leverages all of the accessibility features the native input provides (from our book, <a href="/dwpe"><em>Designing with Progressive Enhancement</em></a>).  <a href="/lab/jquery_custom_file_input_book_designing_with_progressive_enhancement/">Read more...</a></p>

<h3>Date Range Picker
<span class="demo-links">
<a href="/examples/daterangepicker_v2/">demo</a> | 
<a href="https://github.com/filamentgroup/jQuery-UI-Date-Range-Picker">code</a>
</span>
</h3>
<p>The jQuery UI date range picker modified to use the jQuery UI CSS framework so that it's ThemeRoller ready.  <a href="/lab/date_range_picker_using_jquery_ui_16_and_jquery_ui_css_framework/">Read more...</a></p>

<h3>Drive-In
<span class="demo-links">
<a href="https://github.com/scottjehl/Drive-In">code</a>
</span>
</h3>
<p>A plugin and .htaccess file that you can drop onto your web server to sync multiple devices and simplify the QA/testing process.</p>

<h3>EnhanceJS 
<span class="demo-links">
<a href="https://github.com/filamentgroup/EnhanceJS">code</a>
</span>
</h3>
<p>A JavaScript framework designed specifically to deliver a usable experience to the widest possible audience, by testing the browser to determine whether it is capable of correctly supporting a range of essential CSS and JavaScript properties, and delivering features only to those that pass the test. <a href="/lab/introducing_enhancejs_smarter_safer_apply_progressive_enhancement/">Read more...</a></p>

<h3>Equalize heights 
<span class="demo-links">
<a href="/examples/equalHeights/">demo</a> | 
<a href="https://github.com/filamentgroup/jQuery-Equal-Heights">code</a>
</span>
</h3>
<p>A jQuery plugin to "equalize" the heights of boxes within the same container and create a tidy grid.  <a href="/lab/setting_equal_heights_with_jquery/">Read more...</a></p>

<h3>FlipPics
<span class="demo-links">
<a href="http://scottjehl.com/dconstruct/code/FlipPics-5-final/">demo</a> | 
<a href="https://github.com/scottjehl/FlipPics">code</a>
</span>
</h3>
<p>FlipPics is a demo site built as an example for a jQuery Mobile workshop. It is intended for educational / discussion purposes. The 5 folders represent a stepped process of applying progressive enhancement to build the application from basic HTML pages to a richer data-driven experience.</p>

<h3>Hide address bar
<span class="demo-links">
<a href="http://jsbin.com/edecew">demo</a> | 
<a href="https://github.com/scottjehl/Hide-Address-Bar">code</a>
</span>
</h3>
<p>In many devices, the address bar at the top can be manually hidden, and its absence frees up enough pixel room for a large, impactful heading, a critical piece of navigation, or even just a little more white space to air things out.  This approach hides the address bar in a browser-agnostic way, and was used for sites like <a href="http://bostonglobe.com/">BostonGlobe.com</a>, and the <a href="http://jquerymobile.com/">jQuery Mobile framework</a>. <a href="http://24ways.org/2011/raising-the-bar-on-mobile">Read the article at 24ways.org</a></p>

<h3>iOS orientation fix
<span class="demo-links">
<a href="http://scottjehl.github.com/iOS-Orientationchange-Fix/">demo</a> | 
<a href="https://github.com/scottjehl/iOS-Orientationchange-Fix">code</a>
</span>
</h3>
<p>A fix for the iOS bug that causes a user-zoomable page to scale beyond the width of the viewport when the device's orientation changes from portrait to landscape.  <a href="/lab/a_fix_for_the_ios_orientationchange_zoom_bug/">Read more...</a></p>

<h3>jQM Mail 
<span class="demo-links">
<a href="http://filamentgroup.github.com/jqm-mail/">demo</a> | 
<a href="https://github.com/filamentgroup/jqm-mail">code</a>
</span>
</h3>
<p>Experimental responsive web app layout using jQuery Mobile controls</p>

<h3>jQuery Mobile Pagination 
<span class="demo-links">
<a href="/examples/jqm-pagination/demo/">demo</a> | 
<a href="https://github.com/filamentgroup/jqm-pagination">code</a>
</span>
</h3>
<p>A jQuery Mobile plugin for sequential pagination between pages with support for touch, mouse, and keyboard. <a href="/lab/jquery_mobile_pagination_plugin/">Read more...</a></p>

<h3>Menu 
<span class="demo-links">
<a href="/examples/menus/flat.php">flat menu</a> <a href="/examples/menus/ipod.php">iPod-style</a> <a href="/examples/menus/flyout.php">flyout</a> | 
<a href="https://github.com/filamentgroup/jQuery-Menu">code</a>
</span>
</h3>
<p>A jQuery plugin which can be used to enhance a standard unordered list into a simple dropdown menu for a single list of options, a flyout menu for a smaller hierarchical list of options, and two variations on the iPod style, one with a back button and another with a linked breadcrumb to let users easily traverse back up the hierarchy. <a href="/lab/jquery_ipod_style_and_flyout_menus/">Read more...</a></p>

<h3>Pixel-to-em conversion 
<span class="demo-links">
<a href="/examples/pxToEm_v2/">demo</a> | 
<a href="https://github.com/filamentgroup/jQuery-Pixel-Em-Converter">code</a>
</span>
</h3>
<p>A jQuery plugin to quickly convert pixel values to ems (and vice versa) to support page scalability throughout a web site or application.  <a href="/lab/update_jquery_plugin_for_retaining_scalable_interfaces_with_pixel_to_em_con/">Read more...</a></p>

<h3>Preload images from CSS 
<span class="demo-links">
<a href="/examples/preloadImages/index_v5.php">demo</a> | 
<a href="https://github.com/filamentgroup/jQuery-Preload-CSS-Images">code</a>
</span>
</h3>
<p>A jQuery plugin that automatically preloads all images referenced in CSS files.  <a href="/lab/update_automatically_preload_images_from_css_with_jquery/">Read more...</a></p>

<h3>Respond
<span class="demo-links">
<a href="http://scottjehl.github.com/Respond/test/test.html">demo</a> | 
<a href="https://github.com/scottjehl/Respond">code</a>
</span>
</h3>
<p>A fast and lightweight (3kb minified / 1kb gzipped) script to enable responsive web designs in browsers that don't support CSS3 Media Queries &#8212; in particular, Internet Explorer 8 and under, though it will probably patch support for other non-supporting browsers as well. <a href="https://github.com/scottjehl/Respond#readme">Read the project documentation on github</a></p>

<h3>Responsive images 
<span class="demo-links">
<a href="/examples/responsive-images/">demo</a> | 
<a href="https://github.com/filamentgroup/Responsive-Images">code</a>
</span>
</h3>
<p>This approach allows developers to start with mobile-optimized images in their HTML and specify a larger size to be used for users with larger screen resolutions &#8212; without requesting both image sizes, and without UA sniffing.  <a href="/lab/responsive_images_experimenting_with_context_aware_image_sizing/">Read more...</a></p>

<h3>Responsive navigation patterns 
<span class="demo-links">
<a href="/examples/rwd-nav-patterns/">demo</a> | 
<a href="https://github.com/filamentgroup/RWD-Nav-Patterns">code</a>
</span>
</h3>
<p>Experimental navigation structure and behavior patterns based on progressive enhancement and responsive web design.</p>

<h3>Responsive table patterns 
<span class="demo-links">
<a href="/examples/rwd-table-patterns/">demo</a> | 
<a href="https://github.com/filamentgroup/RWD-Table-Patterns">code</a>
</span>
</h3>
<p>An experimental approach to rendering a complex table, using progressive enhancement and responsive design methods, that displays comfortably at a wide range of screen sizes, provides quick access to the data, and preserves the table structure so that data can still be compared across columns. <a href="/lab/responsive_design_approach_for_complex_multicolumn_data_tables/">Read more...</a></p>

<h3>Slider 
<span class="demo-links">
<a href="/dwpe/slider/">demo</a> | 
<a href="https://github.com/filamentgroup/jQuery-Slider">code</a>
</span>
</h3>
<p>A jQuery plugin that uses progressive enhancement to transform a standard HTML input or select element into a slider, and leverages all of the accessibility features the native element provides (from our book, <a href="/dwpe"><em>Designing with Progressive Enhancement</em></a>).</p>

<h3>Tabs 
<span class="demo-links">
<a href="http://filamentgroup.github.com/Accessible-jQuery-Tabs/demo-default.html">demo</a> | 
<a href="https://github.com/filamentgroup/Accessible-jQuery-Tabs">code</a>
</span>
</h3>
<p>An accessible jQuery tabs plugin from our book, <a href="/dwpe"><em>Designing with Progressive Enhancement</em></a>. <a href="https://github.com/filamentgroup/Accessible-jQuery-Tabs#readme">Read the project documentation on github</a></p>

<h3>Tree control 
<span class="demo-links">
<a href="/examples/jquery-tree-control/">demo</a> | 
<a href="https://github.com/filamentgroup/jQuery-Tree-Control">code</a>
</span>
</h3>
<p>A jQuery tree control plugin that uses progressive enhancement to transform an unordered list (UL) into a dynamic tree control, complete with accessibility features like ARIA attributes, keyboard and mouse behavior, and focus management (from our book, <a href="/dwpe"><em>Designing with Progressive Enhancement</em></a>). <a href="/lab/jquery_aria_tree_control_from_book_designing_with_progressive_enhancement/">Read more...</a></p>

<h3>Visualize 
<span class="demo-links">
<a href="/examples/jqueryui-visualize/">demo</a> | 
<a href="https://github.com/filamentgroup/jQuery-Visualize">code</a>
</span>
</h3>
<p>A jQuery plugin for creating accessible charts and graphs that uses JavaScript to scrape data from an HTML table and generate bar, line, area, and pie chart visualizations using the HTML5 canvas element (from our book, <a href="/dwpe"><em>Designing with Progressive Enhancement</em></a>). <a href="/lab/update_to_jquery_visualize_accessible_charts_with_html5_from_designing_with/">Read more...</a></p>




<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>A Fix for the iOS Orientationchange Zoom Bug</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/a_fix_for_the_ios_orientationchange_zoom_bug/" />
      <id>tag:,2012:/lab/6.133</id>
      <published>2012-01-06T04:04:00Z</published>
      <updated>2012-01-06T04:12:06Z</updated>
      <author>
            <name>Scott</name>
                  </author>

      <category term="accessibility"
        scheme="http://filamentgroup.com/lab/tag/accessibility/"
        label="accessibility" />
      <category term="javascript"
        scheme="http://filamentgroup.com/lab/tag/javascript/"
        label="javascript" />
      <category term="mobile"
        scheme="http://filamentgroup.com/lab/tag/mobile/"
        label="mobile" />
      <category term="responsive design"
        scheme="http://filamentgroup.com/lab/tag/responsive_design/"
        label="responsive design" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by Scott on 01/05/2012</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/accessibility/" rel="tag">accessibility</a></dd><dd><a href="http://filamentgroup.com/lab/tag/javascript/" rel="tag">javascript</a></dd><dd><a href="http://filamentgroup.com/lab/tag/mobile/" rel="tag">mobile</a></dd><dd><a href="http://filamentgroup.com/lab/tag/responsive_design/" rel="tag">responsive design</a></dd>
				</dl>
						<p>People enjoy the ability to pinch and zoom websites on their iPhones, iPads, and iPod Touch devices. Unfortunately, a nasty usability bug exists on iOS that causes a user-zoomable page to scale beyond the width of the viewport when the device's orientation changes from portrait to landscape. As a result, the page ends up cropped by the viewport, and users have to manually zoom the page back out again after changing orientation: annoying at best, confusing at worst.</p>
					</div>
		
					<p>The bug has existed for years now; I submitted it to Apple a long, long time ago (The bug report was immediately closed as "duplicate", meaning someone filed it even <em>longer</em> ago. Complementary example <a href="http://filamentgroup.com/examples/iosScaleBug/">here</a>), but it has never been fixed, not in the iOS4.x updates, and not in iOS5 either. <a href="http://twitter.com/adactio">Jeremy Keith</a> recently revived interest in its demise through his post <a href="http://adactio.com/journal/5088/">iWish</a>, which does a nice job of highlighting the history of the issue, and the attempts at working around it so far (none of which quite work as we need them to). </p>

<p>The common workaround is to disable the user's ability to scale the page, which of course fixes the bug by introducing a potentially worse situation. Today, we're offering a workaround that appears to fix the issue without introducing more problems.</p>

<h2>Demo and Code</h2>
<p>To test it out yourself, point an actual iOS device (not an emulator) to <a href="http://scottjehl.github.com/iOS-Orientationchange-Fix/">this test page</a>. </p>

<p>The code for the demo can be found <a href="https://github.com/scottjehl/iOS-Orientationchange-Fix">on Github</a> (check the README file for a minified version). Just add the script to your site and it should do it's thing. Please fork and help improve the code, if you're so inclined!</p>

<h2>How it works</h2>
<p>This fix works by listening to the device's accelerometer to detect when an orientation change is about to occur. When it deems an orientation change imminent, the script disables user zooming, allowing the orientation change to occur properly, with zooming disabled. The script restores zoom again once the device is either oriented close to upright, or after its orientation has changed. This way, user zooming is never disabled while the page is in use.</p>

<p>This fix has been tested on iOS 4 and 5, with expected results. Please post your feedback below!</p>

<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>A Responsive Design Approach for Complex, Multicolumn Data Tables</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/responsive_design_approach_for_complex_multicolumn_data_tables/" />
      <id>tag:,2011:/lab/6.132</id>
      <published>2011-12-29T19:51:00Z</published>
      <updated>2012-01-19T16:26:38Z</updated>
      <author>
            <name>Maggie</name>
                  </author>

      <category term="progressive enhancement"
        scheme="http://filamentgroup.com/lab/tag/progressive_enhancement/"
        label="progressive enhancement" />
      <category term="responsive design"
        scheme="http://filamentgroup.com/lab/tag/responsive_design/"
        label="responsive design" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by Maggie on 12/29/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/progressive_enhancement/" rel="tag">progressive enhancement</a></dd><dd><a href="http://filamentgroup.com/lab/tag/responsive_design/" rel="tag">responsive design</a></dd>
				</dl>
						<p>In responsive web design, one of the toughest design problems to solve is how format complex tabular data for display on smaller screens.  In this post, we'll explore an experimental approach to rendering a complex table, using progressive enhancement and responsive design methods, that displays comfortably at a wide range of screen sizes, provides quick access to the data, and preserves the table structure so that data can still be compared across columns.</p>
					</div>
		
					<p>We've been batting around the idea of making tables responsive for awhile. </p>

<p>Our initial attempts to make table data palatable on small screens include showing a <a href="http://jsbin.com/apane6/14/">thumbnail image that links to the data</a> or a <a href="http://jsbin.com/emexa4">canvas-based chart</a>; others have developed responsive CSS workarounds that display a definition list, using either <a href="http://jsbin.com/arixic">list</a> or <a href="http://css-tricks.com/responsive-data-tables/">table</a> markup. Which approach to take depends on the type of data.  For example, structured data where each row is a unique object or entity&#8212;say, business contacts, or favorite Netflix movies&#8212;are well-suited to a definition list style on small screens, because header and cell data can be displayed as simple label and value pairs (i.e., Name: Maggie Wachs, Company: Filament Group...). The switch to a chart or other visualization on smaller screens works well for a simple numeric comparison of a single value. And snapping down to a thumbnail image that launched a full table to pan and zoom was an okay fallback in lieu of no data at all.</p>

<p>But we encountered a scenario that didn't quite work with any of the above solutions: a table of complex of financial data with 6-8 related data points, where comparisons and trends among columns are important to see. Visual relationships between headings and cells, and between neighboring columns, are crucial to understanding the data and would be lost on smaller screens if we displayed a list or chart.</p> 

<p>We needed a happy medium: a way to keep the basic table structure in place&#8212;with headings above, and whole columns that sit side-by-side&#8212;and simultaneously display a manageable amount of data at a size that's comfortably readable.</p>

<h2>A table for every screen</h2>

<p>The approach we devised starts with a full data set, and uses a simple priority-based class designation to display a manageable subset of data columns for common target screen sizes, and also gives the user control to change column visibility easily.</p>

<p>It's probably easier to explain with a concrete example: we'll use a table that lists technology companies and their stock prices and several stock performance metrics.  Each row displays data for a single company; columns organize data points by type for comparison. <a href="/examples/rwd-table-patterns/">View&#160;the&#160;demo</a>.</p>

<p>All data columns will display on desktops and tablets in landscape orientation, but only a subset will fit comfortably on anything smaller.  So the first order of business is to identify which columns of data are essential to see at all screen widths by default, or optional (shown only when space allows).  In our table of tech company stocks, the data is somewhat meaningless without the company name, current stock value, or most recent change, so we'll consider those essential.   The trade time, previous close, and open values would be nice to see if the screen can fit those columns, so we'll make them optional.  The remaining data&#8212;bid, ask, and 1-year target estimate&#8212;are less important in relative terms, so they will appear on only the widest screens.</p>

<p style="text-align: right;"><a href="/examples/rwd-table-patterns/_img/breakpoints.png"><img src="/examples/rwd-table-patterns/_img/breakpoints.png" style="width: 100%;" /></a><br />
<a href="/examples/rwd-table-patterns/_img/breakpoints.png">View larger image</a></p>

<p>In this case, we want users to have the last word regarding which columns to show, so we'll also create a custom menu that lets them choose which columns to display:</p>

<p><img src="/examples/rwd-table-patterns/_img/menu.png" /></p>

<p>The final result is a table that displays a limited set of columns on smaller screens, and provides quick access to data that's hidden because of space constraints (<a href="/examples/rwd-table-patterns/">view&#160;the&#160;demo</a>).  To accomplish this, we'll use progressive enhancement to ensure that we're serving a usable experience to all devices.  We'll start with well-formed, semantic table markup and very basic CSS, and then if the browser is capable, apply JavaScript and enhanced CSS (including media queries) to conditionally show a larger number of columns as screen space allows.</p>


<h2>Markup</h2>

<p>A basic table &#8212; with consecutive columns and descriptive headings &#8212; is an efficient way to display a complex data set; data arranged into columns and rows are easy to scan and compare.  So an HTML table is the clear markup choice for our financial data.</p>

<p>We'll start with a well-formed <code>table</code> that contains a <code>thead</code> for the heading row, followed by a <code>tbody</code> for the cells. </p>

<pre><code>&lt;table cellspacing=&quot;0&quot; id=&quot;tech-companies&quot;&gt;
   &lt;thead&gt;
      &lt;tr&gt;
         ...header cells...
      &lt;/tr&gt;
   &lt;/thead&gt;
   &lt;tbody&gt;
      ...rows of data...
   &lt;/tbody&gt;
&lt;/table&gt;
</code></pre>

<p>As we fill in the content, we'll add descriptive classes to identify the essential and optional content.  We'll assign these classes only to the headers; later, we'll write a little JavaScript to map these headers to their respective columns of data.</p>

<pre><code>&lt;thead&gt;
   &lt;tr&gt;
      &lt;th class=&quot;essential persist&quot;&gt;Company&lt;/th&gt;
      &lt;th class=&quot;essential&quot;&gt;Last Trade&lt;/th&gt;
      &lt;th class=&quot;optional&quot;&gt;Trade Time&lt;/th&gt;
      &lt;th class=&quot;essential&quot;&gt;Change&lt;/th&gt;
      &lt;th class=&quot;optional&quot;&gt;Prev Close&lt;/th&gt;
      &lt;th class=&quot;optional&quot;&gt;Open&lt;/th&gt;
      &lt;th&gt;Bid&lt;/th&gt;
      &lt;th&gt;Ask&lt;/th&gt;
      &lt;th&gt;1y Target Est&lt;/th&gt;
   &lt;/tr&gt;
   ...
&lt;/thead&gt;
</code></pre>

<p>Notice that we added a second class to the Company header, <code>persist</code>.  Essential columns are present by default at small screen sizes, but we'll still be able to toggle their visibility with the custom menu.  Marking the Company column with this class provides a way for us to omit it from the menu, and prevent it from being hidden.</p>

<p>We'll complete the table with rows of data that correspond to the column headers:</p>

<pre><code>&lt;table cellspacing=&quot;0&quot; id=&quot;tech-companies&quot;&gt;
&lt;thead&gt;
   ...
&lt;/thead&gt;
&lt;tbody&gt;
   &lt;tr&gt;
      &lt;th&gt;GOOG &lt;span class=&quot;co-name&quot;&gt;Google Inc.&lt;/span&gt;&lt;/th&gt;
      &lt;td&gt;597.74&lt;/td&gt;
      &lt;td&gt;12:12PM&lt;/td&gt;
      &lt;td&gt;14.81 (2.54%)&lt;/td&gt;
      &lt;td&gt;582.93&lt;/td&gt;
      &lt;td&gt;597.95&lt;/td&gt;
      &lt;td&gt;597.73 x 100&lt;/td&gt;
      &lt;td&gt;597.91 x 300&lt;/td&gt;
      &lt;td&gt;731.10&lt;/td&gt;
   &lt;/tr&gt;
   ...
&lt;/tbody&gt;
</code></pre>

<p>Later when we apply JavaScript, we'll create a custom menu based on the table's content and append it to the page, immediately above the table.  The menu will consist of a container element for a "Display" button and the menu overlay:</p>

<pre><code>&lt;div class=&quot;table-menu-wrapper&quot;&gt;
   &lt;a href=&quot;#&quot; class=&quot;table-menu-btn&quot;&gt;Display&lt;/a&gt;
   &lt;div class=&quot;table-menu&quot;&gt;
      ...menu content...   
   &lt;/div&gt;   
&lt;/div&gt;
</code></pre>

<p>The menu overlay will contain a list of options, one for each column, where each option has a <code>label</code> and checkbox <code>input</code> for toggling that column's visibility (columns with the <code>persist</code> class will be excluded from the menu):</p>

<pre><code>&lt;div class=&quot;table-menu-wrapper&quot;&gt;
   &lt;a href=&quot;#&quot; class=&quot;table-menu-btn&quot;&gt;Display&lt;/a&gt;
   &lt;div class=&quot;table-menu&quot;&gt;
      &lt;ul&gt;
         &lt;li&gt;
            &lt;input type=&quot;checkbox&quot; name=&quot;toggle-cols&quot; id=&quot;toggle-col-1&quot; value=&quot;co-1&quot;&gt;
            &lt;label for=&quot;toggle-col-1&quot;&gt;Last Trade&lt;/label&gt;
         &lt;/li&gt;
         &lt;li class=&quot;optional&quot;&gt;
            &lt;input type=&quot;checkbox&quot; name=&quot;toggle-cols&quot; id=&quot;toggle-col-2&quot; value=&quot;co-2&quot;&gt;
            &lt;label for=&quot;toggle-col-2&quot;&gt;Trade Time&lt;/label&gt;
         &lt;/li&gt;
         ...
      &lt;/ul&gt;   
   &lt;/div&gt;   
&lt;/div&gt;
</code></pre>

<p>When the script builds the menu, it will automatically assign <code>name</code> and <code>value</code> attributes and unique IDs to the <code>input</code> elements, and matching <code>for</code> attributes to their labels.</p>

<p>Last but not least, we'll wrap the table in a container element to simplify positioning the menu:</p>

<pre><code>&lt;div class=&quot;table-wrapper&quot;&gt;
   &lt;table cellspacing=&quot;0&quot; id=&quot;tech-companies&quot;&gt;
      ...
   &lt;/table&gt;
&lt;/div&gt;
</code></pre>


<h2>CSS</h2>
<p class="note">We'll assume you're already familiar with using CSS3 media queries to render pages responsively.  If not, we highly recommend Ethan Marcotte's definitive article, <a href="http://www.alistapart.com/articles/responsive-web-design/">Responsive Web Design</a>, and <a href="http://www.abookapart.com/products/responsive-web-design">book by the same title</a>.</p>

<p>Let's start with the table.  We want it to fill the available space, so we'll assign a width of 100%:</p>

<pre><code>table {
   <strong>width: 100%;</strong>
   font-size: 1.2em;
}
</code></pre>

<p>And then apply color, padding, and alignment properties to make the data easier to scan:</p>

<pre><code>thead th {
   white-space: nowrap;
   border-bottom: 1px solid #ccc;
   color: #888;
}
th, td {
   padding: .5em 1em;
   text-align: right;
}
th:first-child, 
td:first-child {
   text-align: left;
}
tbody th, td {
   border-bottom: 1px solid #e6e6e6;
}</code></pre>

<p>Next, we'll write the rules that hide and show columns.  We've scoped these styles to a class, <code>enhanced</code>, which is assigned to the table via JavaScript.  This ensures that column visibility is altered only when JavaScript is available.  By default, we'll hide all columns, and show only those marked with the <code>essential</code> class:</p>

<pre><code>.enhanced th,
.enhanced td {
   display: none;
}
.enhanced th.essential, 
.enhanced td.essential {
   display: table-cell;
}
</code></pre>

<p>Using CSS3 media queries, we'll show optional columns when the browser is 500px wide or greater, and all columns at 800px or greater:</p>

<pre><code>@media screen and (min-width: 500px) {
   .enhanced th.optional, 
   .enhanced td.optional {
      display: table-cell;
   }
}

@media screen and (min-width: 800px) {
   .enhanced th, 
   .enhanced td {
      display: table-cell;
   }
}
</code></pre>

<p class="note">When using this approach, how you prioritize and categorize your data must correspond to the number of screen size breakpoints you plan to support.  In our example, we've chosen to have two breakpoints, at 500 and 800 pixels wide, and two levels of importance, essential and optional.  If we were to add another break point, say around 400px, we would need to rework our categories to include a third (i.e., primary, secondary, tertiary) so that we can mark each column to be visible at a particular breakpoint.</p>

<p>When the custom menu is inserted into the table's container, it will appear just above the table on the right:</p>

<pre><code>.table-menu-wrapper {
   position: absolute;
   top: -3em;
   right: 0;
}
</code></pre>

<p>The menu itself will also be absolutely positioned, and by default will be hidden with the <code>table-menu-hidden</code> class (later, we'll write JavaScript to toggle that class when the "Display" button is clicked):</p>

<pre><code>.table-menu {
   <strong>position: absolute;   
   right: 0;
   left: auto;</strong>
   background-color: #fff;
   padding: 10px;
   border: 1px solid #ccc;
   font-size: 1.2em;
   width: 12em;
}
.table-menu-hidden {
   left: -999em;
   right: auto;
}
</code></pre>

<p>Finally, we'll add relative positioning to the table's container.  Later, when we append the menu we can position it without having to calculate location coordinates:</p>

<pre><code>.table-wrapper {
   <strong>position: relative;</strong>
   margin: 5em 5%;
}
</code></pre>


<h2>JavaScript</h2>

<p>The table we just created is usable on its own; any browser that renders HTML will display it.  With a few JavaScript enhancements, we'll be able to view the table at smaller screen sizes without sacrificing the table structure.  (The following examples use <a href="jquery.com">jQuery</a>.)</p>

<p>First we'll append the <code>enhanced</code> class for scoping styles:</p>

<pre><code>// add class for scoping styles - cells should be hidden only when JS is on
table.addClass("enhanced");</code></pre>

<p>We'll create a container element for the menu, which will come into play a little later in the script:</p>

<pre><code>var container = $('&lt;div class=&quot;table-menu table-menu-hidden&quot;&gt;&lt;ul /&gt;&lt;/div&gt;'); </code></pre>

<p>Then we'll enhance the markup with classes and attributes that allow us to control column visibility.  We'll loop through the table headers and assign them unique IDs, then reference those IDs in <code>headers</code> attributes assigned to associated cells.  (The <code><a href="http://www.w3.org/TR/html4/struct/tables.html#adef-headers">headers</a></code> attribute identifies to which header(s) a cell belongs.)  We'll also copy the classes that we assigned to the column headers &#8212; essential and optional &#8212; and assign them to the associated columns.</p>

<pre><code>$( "thead th" ).each(function(i){
   var th = $(this),
      id = th.attr("id"), 
      classes = th.attr("class");  // essential, optional (or other content identifiers)
         
   // assign an ID to each header, if none is in the markup
   if (!id) {
      id = ( "col-" ) + i;
      th.attr("id", id);
   };      
         
   // loop through each row to assign a "headers" attribute and any classes (essential, optional) to the matching cell
   // the "headers" attribute value = the header's ID
   $( "tbody tr" ).each(function(){
      var cell = $(this).find("th, td").eq(i);                        
      cell.attr("headers", id);
      if (classes) { cell.addClass(classes); };
   });
   ...      
</code></pre>

<p>Next, while still looping through the headers, we'll create a menu item for each column, except for those marked with the <code>persist</code> class.  Each menu item consists of a checkbox and label with the column header text. </p>

<pre><code>   ...  
   // create the menu hide/show toggles
   if ( !th.is(".persist") ) {
   
      // note that each input's value matches the header's ID; 
      // later we'll use this value to control the visibility of that header and it's associated cells
      var toggle = $('&lt;li&gt;&lt;input type=&quot;checkbox&quot; name=&quot;toggle-cols&quot; id=&quot;toggle-col-'+i+'&quot; value=&quot;'+id+'&quot; /&gt; &lt;label for=&quot;toggle-col-'+i+'&quot;&gt;'+th.text()+'&lt;/label&gt;&lt;/li&gt;');
      
      // append each toggle to the container
      container.find("ul").append(toggle);         
      
      ...   
</code></pre>

<p>And then we'll bind events to each checkbox for controlling that column's visibility.  </p>

<pre><code>      ...  
      
      // assign behavior
      toggle.find("input")
      
         // when the checkbox is toggled
         .change(function(){
            var input = $(this), 
                  val = input.val(),  // this equals the header's ID, i.e. "company"
                  cols = $("#" + val + ", [headers="+ val +"]"); // so we can easily find the matching header (id="company") and cells (headers="company")
         
            if (input.is(":checked")) { cols.show(); }
            else { cols.hide(); };		
         })
         
         // custom event that sets the checked state for each toggle based on column visibility, which is controlled by @media rules in the CSS
         // called whenever the window is resized or reoriented (mobile)
         .bind("updateCheck", function(){
            if ( th.css("display") ==  "table-cell") {
               $(this).attr("checked", true);
            }
            else {
               $(this).attr("checked", false);
            };
         })
         
         // call the custom event on load
         .trigger("updateCheck");  
         
   }; // end conditional statement ( !th.is(".persist") )
}); // end headers loop   
</code></pre>

<p>After closing the headers loop, we'll bind our custom event to the window's resize and orientation change events:</p>

<pre><code>// update the inputs' checked status
$(window).bind("orientationchange resize", function(){
   container.find("input").trigger("updateCheck");
}); </code></pre>

<p>And, last but not least, append our checkbox menu to the page and bind show/hide menu events:</p>

<pre><code>var menuWrapper = $('&lt;div class=&quot;table-menu-wrapper&quot; /&gt;'),
   menuBtn = $('&lt;a href=&quot;#&quot; class=&quot;table-menu-btn&quot;&gt;Display&lt;/a&gt;');
      
menuBtn.click(function(){
   container.toggleClass("table-menu-hidden");            
   return false;
});
      
menuWrapper.append(menuBtn).append(container);
table.before(menuWrapper);  // append the menu immediately before the table

// assign click-away-to-close event
$(document).click(function(e){								
   if ( !$(e.target).is( container ) && !$(e.target).is( container.find("*") ) ) {			
      container.addClass("table-menu-hidden");
   }				
}); 
</code></pre>

<h2>Media query support for IE: Respond.js</h2>
<p>Older versions of IE (8 and earlier) don't natively support CSS3 media queries, so we need to use a workaround in those browsers to implement our responsive table. Thanks to our own Scott Jehl, we can use a lightweight polyfill script, <a href="https://github.com/scottjehl/Respond">respond.js</a>, that enables support for min- and max-width media query properties.  The script is open source and available on <a href="https://github.com/scottjehl/Respond">github</a>.</p>

<h2>Keep the conversation going</h2>
<p>The pattern discussed here is one possibility for coding a responsive table.  We hope to discover more, and will update our <a href="https://github.com/filamentgroup/RWD-Table-Patterns">RWD-Table-Patterns</a> git repository as we come across additional use cases.  </p>

<p>This demo code is open source and available for download. Feel free to put it through its paces. If you use it and see room for improvement, please submit a pull request and we'll review it as soon as possible.</p>

<h2>Related plug-ins</h2>
<p>We release open source code, including the design pattern here, to encourage collaboration &#8212; so we're especially excited to learn of new plugins that extend our work.</p>  

<p><a href="http://www.consulenza-web.com/2012/01/mediatable-jquery-plugin/">MediaTable <em>(in Italian)</em></a>, developed by <a href="http://www.consulenza-web.com/">Marco Pegoraro</a>, is a jQuery plugin that applies responsive behavior to one or more standard tables on a page, and also automates the creation of a menu for showing and hiding columns.  It's similar to what we've done here, but in "official" plugin format.  The code is open source and available on <a href="https://github.com/thepeg/MediaTable">github</a>. Thanks, Marco!</p>
<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>jQuery Mobile 1.0 Released</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/jquery_mobile_10_released/" />
      <id>tag:,2011:/lab/6.131</id>
      <published>2011-11-17T17:35:00Z</published>
      <updated>2011-11-17T18:21:26Z</updated>
      <author>
            <name>Todd</name>
                  </author>

      <content type="html"><![CDATA[
       <p class="postData">Posted by Todd on 11/17/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					
				</dl>
						<p>When John Resig asked Filament Group to lead this exciting new project about 18 months ago, we had no idea where this would take us. Today, we are so thrilled to announce that jQuery Mobile has reached 1.0 status. </p>
					</div>
		
					<a style="float: right; margin-left: 30px;" href="http://jquerymobile.com/demos"><img title="jquery-mobile-1-final" src="http://jquerymobile.com/wp-content/uploads/2011/11/jquery-mobile-1-final.png" alt="" width="260" /></a>

<p>From the time we first launched the jQuery Mobile site last summer, we were overwhelmed by the enthusiastic response to the principles of the framework. At the time we announced the project, most mobile developers and frameworks had adopted a pretty narrow target: iOS and maybe Android. In our mind, this was a very narrow slice of the web and left many billions of people unable to access important content and tools. </p>

<p>We knew there was an incredible opportunity to take a fresh look at the problem. At Filament Group, our goal is to strive for universal access -- that's what web is all about. For us, that meant that this project should embrace "one web" principles to ensure it worked on any device and for everyone. </p>

<p>We chose the challenging task of making this work on all popular mobile, tablet, e-reader and desktop browsers because the lines between these are blurring so quickly, only a broadly compatible and responsive design system would be future friendly foundation for this project. It took a lot of work, but I'm happy to announce that jQuery Mobile does indeed work <a href="http://jquerymobile.com/gbs/">pretty much anywhere</a>, including feature phones and older browsers though our use of progressive enhancement. We also spent a lot of time testing and adding accessibility features to support screen readers like VoiceOver to ensure that nobody is left behind.</p>

<p>The other part of the universal access equation is making a JavaScript UI like jQuery Mobile toolkit easy to use and I think we've succeeded on that front by exposing all the configuration through HTML5 data- attributes which allows a less technical person to build a complex, AJAX-driven mobile app with simple HTML. Take a look at the <a href="http://jquerymobile.com/test/docs/about/getting-started.html">getting started guide</a> to get a sense of how easy it is to build a mobile website or app with jQuery Mobile. To make building custom themes, we designed the <a href="http://www.jquerymobile.com/themeroller">ThemeRoller</a> tool to make it drop-dead simple to create a theme and download the stylesheet.</p>

<p>For a project that <a href="http://jquerymobile.com/blog/2011/11/16/announcing-jquery-mobile-1-0/">just turned 1.0 today</a>, we already have a vibrant community of plugin and tool developers, eight published books (many more on the way), hundreds of sites and apps in production, and a ton of articles and tutorials. We've collected the best of these on a <a href="http://jquerymobile.com/resources/">resources page</a> on the mobile site. To get started, check out the <a href="http://jquerymobile.com/demos/1.0/">demos and documentation site</a>.</p>

<p>We'd like to thank all the sponsors and contributors to jQuery Mobile. It has been an honor to be part of this project and look forward to 1.1. A huge thanks goes out to Jorge Taylor, <a href="https://twitter.com/#!/kinblas">Kin Blas</a>, <a href="https://twitter.com/#!/johnbender">John Bender</a> and&#160;<a href="https://twitter.com/#!/tybenz">Tyler Benziger</a>, and <a href="https://twitter.com/#!/gseguin">Ghislain Seguin</a> for their incredible work this year on the project, we couldn't have done it without you guys.</p>

<p>We've been pretty quiet here at the lab on the topic of jQuery Mobile because I've been writing more of the week-to-week updates over on the jQuery Mobile blog but look for us to be sharing ideas about how to use and extend the mobile framework.</p>
<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>Slides from jQuery Mobile State of the Framework 2011, Todd Parker &amp;amp; Scott Jehl</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/jquery_mobile_state_of_framework_2011/" />
      <id>tag:,2011:/lab/6.129</id>
      <published>2011-10-02T14:51:00Z</published>
      <updated>2011-10-02T15:04:51Z</updated>
      <author>
            <name>Scott</name>
                  </author>

      <category term="announcements"
        scheme="http://filamentgroup.com/lab/tag/announcements/"
        label="announcements" />
      <category term="jQuery"
        scheme="http://filamentgroup.com/lab/tag/jquery/"
        label="jQuery" />
      <category term="mobile"
        scheme="http://filamentgroup.com/lab/tag/mobile/"
        label="mobile" />
      <category term="presentations"
        scheme="http://filamentgroup.com/lab/tag/presentations/"
        label="presentations" />
      <category term="ThemeRoller"
        scheme="http://filamentgroup.com/lab/tag/themeroller/"
        label="ThemeRoller" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by FG on 10/02/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/announcements/" rel="tag">announcements</a></dd><dd><a href="http://filamentgroup.com/lab/tag/jquery/" rel="tag">jQuery</a></dd><dd><a href="http://filamentgroup.com/lab/tag/mobile/" rel="tag">mobile</a></dd><dd><a href="http://filamentgroup.com/lab/tag/presentations/" rel="tag">presentations</a></dd><dd><a href="http://filamentgroup.com/lab/tag/themeroller/" rel="tag">ThemeRoller</a></dd>
				</dl>
						<p>At this fall's jQuery Conference in Boston, MA, Filament Group's Todd Parker and Scott Jehl presented the jQuery Mobile Framework keynote. The session covered the current state of the project, an overview of the releases since the first alpha last fall, direction for how best to make use of the framework today, and some upcoming tools such as a new ThemeRoller (<a href="http://www.youtube.com/watch?v=REfFWx5eUVI">video preview</a>), and download builder.</p>


					</div>
		
					<p>The slides from Todd and Scott's presentation are embedded below (also <a href="http://speakerdeck.com/u/scottjehl/p/todd-parker-scott-jehl-jquery-mobile-keynote-2011">available on SpeakerDeck</a>, and video from the session may be available at a later time.</p>

<div style="width: 100%; overflow: auto;">
<script src="http://speakerdeck.com/embed/4e875d5ff06c200050007f85.js?size=preview"></script>
</div>
<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>Future&#45;Friendly: Forward&#45;Thinking Thoughts on Web Development</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/future_friendly/" />
      <id>tag:,2011:/lab/6.128</id>
      <published>2011-10-02T13:45:00Z</published>
      <updated>2011-10-02T14:44:09Z</updated>
      <author>
            <name>Scott</name>
                  </author>

      <category term="events"
        scheme="http://filamentgroup.com/lab/tag/events/"
        label="events" />
      <category term="mobile"
        scheme="http://filamentgroup.com/lab/tag/mobile/"
        label="mobile" />
      <category term="web standards"
        scheme="http://filamentgroup.com/lab/tag/web_standards/"
        label="web standards" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by FG on 10/02/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/events/" rel="tag">events</a></dd><dd><a href="http://filamentgroup.com/lab/tag/mobile/" rel="tag">mobile</a></dd><dd><a href="http://filamentgroup.com/lab/tag/web_standards/" rel="tag">web standards</a></dd>
				</dl>
						<p>When a small group of web designers and developers, including <a href="http://www.lukew.com">Luke Wroblewski </a>, <a href="http://bradfrostweb.com/">Brad Frost</a>, <a href="http://lyza.com/">Lyza Danger Gardner</a>, <a href="http://yiibu.com/"> Stephanie and Bryan Rieger</a>, <a href="http://designmind.frogdesign.com/blog/author/beyond-mobile/">Scott Jensen</a>, <a href="http://adactio.com/">Jeremy Keith</a>, <a href="http://userfirstweb.com/">Jason Grigsby</a>, <a href="http://globalmoxie.com/">Josh Clark</a>, and our own Scott Jehl, decided to hole up in a cabin in the woods of Tennessee for a few days, we weren't sure what to expect, but it seemed too good an opportunity to pass up. </p>
<p>The retreat, which took place after the Breaking Development conference in Nashville, was dubbed "MobileWood": 3 days of intense discussion, debate, and agreement on a general direction for those interested in developing websites and applications that work well today, and are ready for tomorrow. </p> 

					</div>
		
					<p>The outcome of the MobileWood retreat is <a href="http://futurefriend.ly">Future-Friendly</a>, a new site including a manifesto of sorts, and a set of patterns and resources that will continue to grow over time.  We recommend checking out the site, and hope that its resources will help you convince others of the value in embracing standards-based, inclusive, and sustainable web development practices moving forward.</p>

<p><a href="http://futurefriend.ly"><img src="/images/fflogo.png" alt="Future-Friendly Logo"></a></p>
<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>Slides from Responsive &amp;amp; Responsible, Scott Jehl, Breaking Dev 2011</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/slides_from_responsive_responsible_scott_jehl_breaking_dev_2011/" />
      <id>tag:,2011:/lab/6.127</id>
      <published>2011-10-02T13:27:01Z</published>
      <updated>2011-10-02T13:39:09Z</updated>
      <author>
            <name>Scott</name>
                  </author>

      <category term="accessibility"
        scheme="http://filamentgroup.com/lab/tag/accessibility/"
        label="accessibility" />
      <category term="css"
        scheme="http://filamentgroup.com/lab/tag/css/"
        label="css" />
      <category term="presentations"
        scheme="http://filamentgroup.com/lab/tag/presentations/"
        label="presentations" />
      <category term="progressive enhancement"
        scheme="http://filamentgroup.com/lab/tag/progressive_enhancement/"
        label="progressive enhancement" />
      <category term="responsive design"
        scheme="http://filamentgroup.com/lab/tag/responsive_design/"
        label="responsive design" />
      <category term="web standards"
        scheme="http://filamentgroup.com/lab/tag/web_standards/"
        label="web standards" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by FG on 10/02/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/accessibility/" rel="tag">accessibility</a></dd><dd><a href="http://filamentgroup.com/lab/tag/css/" rel="tag">css</a></dd><dd><a href="http://filamentgroup.com/lab/tag/presentations/" rel="tag">presentations</a></dd><dd><a href="http://filamentgroup.com/lab/tag/progressive_enhancement/" rel="tag">progressive enhancement</a></dd><dd><a href="http://filamentgroup.com/lab/tag/responsive_design/" rel="tag">responsive design</a></dd><dd><a href="http://filamentgroup.com/lab/tag/web_standards/" rel="tag">web standards</a></dd>
				</dl>
						<p>At this summer's Breaking Development in Nashville, TN, Filament Group's own Scott Jehl presented on our work on the new, responsive <a href="http://bostonglobe.com">BostonGlobe.com</a>. The Boston Globe is one of the first major sites to implement responsive design at a large scale, and this presentation covered many of the challenges and solutions we encountered during that development process (including <a href="http://filamentgroup.com/lab/respondjs_fast_css3_media_queries_for_internet_explorer_6_8_and_more/">Respond.js</a>: a patch for CSS3 Media Query support in Internet Explorer 6-8, <a href="http://filamentgroup.com/lab/responsive_images_experimenting_with_context_aware_image_sizing/">Responsive Images</a>, and more). </p>
					</div>
		
					<p>The slides from Scott's presentation are embedded below (also <a href="http://speakerdeck.com/u/scottjehl/p/responsive-responsible">available on SpeakerDeck</a>, and as a <a href="filamentgroup.com/examples/bdconf-2011/sjehl-bdconf-2011.pdf">downloadable PDF</a>), and video from the session will be available later this fall.</p>

<div style="overflow: auto; width: 100%;">
<script src="http://speakerdeck.com/embed/4e80d6b4750822006000044c.js?size=preview"></script>
</div>
<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>Introducing the new responsive&#45;designed BostonGlobe.com</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/introducing_the_new_responsive_designed_bostonglobecom/" />
      <id>tag:,2011:/lab/6.126</id>
      <published>2011-09-12T14:17:00Z</published>
      <updated>2011-09-12T17:28:43Z</updated>
      <author>
            <name>Patty</name>
                  </author>

      <category term="accessibility"
        scheme="http://filamentgroup.com/lab/tag/accessibility/"
        label="accessibility" />
      <category term="announcements"
        scheme="http://filamentgroup.com/lab/tag/announcements/"
        label="announcements" />
      <category term="mobile"
        scheme="http://filamentgroup.com/lab/tag/mobile/"
        label="mobile" />
      <category term="progressive enhancement"
        scheme="http://filamentgroup.com/lab/tag/progressive_enhancement/"
        label="progressive enhancement" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by Patty on 09/12/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/accessibility/" rel="tag">accessibility</a></dd><dd><a href="http://filamentgroup.com/lab/tag/announcements/" rel="tag">announcements</a></dd><dd><a href="http://filamentgroup.com/lab/tag/mobile/" rel="tag">mobile</a></dd><dd><a href="http://filamentgroup.com/lab/tag/progressive_enhancement/" rel="tag">progressive enhancement</a></dd>
				</dl>
						<p>The Boston Globe flipped the switch today on its accessible, progressive enhancement and responsive-design based subscription news site. As front-end development leads on the project (with Ethan Marcotte at our side), we're very honored to have been involved.</p>

					</div>
		
					<a href="http://www.bostonglobe.com" style="float:right; margin-left:20px; margin-right:-10px;"><img src="/images/bostonglobe-feat-promo.jpg" alt="New Boston Globe responsive site" width="320"></a>

<p>Early this morning, the team at the Boston Globe flipped the switch on an incredibly ambitious new web site, and the 139-year-old Award-winning American newspaper gained a proper home of its own on the web. As Boston locals and long-time subscribers to the paper, we're quite proud of the Globe and what they've accomplished with this launch; as front-end development leads on the project, we're honored to have been involved, and thrilled with the quality of the site in action.</p>

<p><a href="http://bostonglobe.com">BostonGlobe.com</a> &#8211; which should not be confused with its still-existing sister site, <a href="http://boston.com">Boston.com</a> &#8211; brings the Globe's premium journalism and reporting to the web in a way that is accessible and a pleasure to use on most any device - whether that's an old BlackBerry, an iPhone or iPad, or a desktop browser. </p>

<p>Better yet, they've managed to achieve this cross-device support with a single codebase that takes advantage of features available in the latest devices and browsers, such as touch gestures and offline browsing.  For some background on the approach, check out <a href="http://www.boston.com/bostonglobe/features/">the features page</a>, and the <a href="http://www.boston.com/video/viral_page/?/services/player/bcpid1126033626001&bckey=AQ~~,AAAAAA6piHY~,DqRT40XOAr9oz3xbfbE6ZVB8_5Kgdym2&bctid=1150525821001">tech overview video</a> (which includes interviews with the Filament Group team discussing some of the more interesting challenges and solutions we encountered in implementing a large-scale mobile-first responsive design).</p>


<p>We plan to cover the technical challenges and solutions in depth on this blog in the near future. But in the meantime, we wanted to note some of the important discoveries we made about what makes a responsive design project of this magnitude possible: </p>

<ul>
<li>You need <strong>a client willing to make a real commitment</strong> to embracing standards, expanding their expectations about brand and user experience, and most importantly, transforming their internal work processes to incorporate new principles and methodologies.  Globe publisher Chris Mayer, Editor Marty Baron, and most especially Jeff Moriarty, Miranda Mulligan and the entire Boston Globe development team were beyond exemplary in this regard.</li>
<li>You need <strong>a visionary thinker who can articulate the vision of this new idea</strong>, and we had that in spades in our colleague <a href="http://unstoppablerobotninja.com/">Ethan Marcotte</a>, the inventor and father/godfather/grandfather/chief prophet of responsive design.  (If you have any interest at all in responsive design techniques and haven't read <a href="http://www.abookapart.com/products/responsive-web-design">his book on the subject</a>, you should.)</li>
<li>You need <strong>visual designers who understand and embrace the challenge</strong>, and our wishes were superceded time and again by our tireless & fearless leader Miranda Mulligan at the Globe, and the unbelievable team of Tito Bottitta, Mike Swartz and Jared Novack at <a href="http://upstatement.com/">Upstatement</a>.  That their visual design is gorgeous, elegant, and a true pleasure is self-evident.  But we could not have arrived at such a solution were they not genuine, welcoming collaborators.</li>
<li>Particularly in these relatively uncharted waters, you need <strong>highly skilled front-end developers who understand standards, progressive enhancement techniques, cutting-edge coding best practices and responsive design principles</strong>.  We are so continually impressed with our own Scott Jehl, Mat Marquis, and Maggie Wachs, who make a practice of inventing fantastic, magically innovative new code techniques from thin air on a daily basis&mdash;and can also sit down and explain them so the rest of the team can understand and build on them. They are amazing.</li>
<li>Finally, you need <strong>to be at the right place, at the right time, with all of the above at the ready</strong>. We've worked together for ten years now, and have been talking about and working toward a vision of a single code base that is accessible, and thoughtfully delivers an appropriate experience to the vast array of devices. This project has been the culmination of years of thinking and guessing and hoping, and we feel is validating many of our hopes for how the web can and should work.</li>
</ul>

<p>To say we're thrilled with the result is a serious understatement.  We're excited to see how the site evolves, and how the discussion about responsive design and the web does as well.</p>
<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>jQuery Mobile Pagination Plugin</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/jquery_mobile_pagination_plugin/" />
      <id>tag:,2011:/lab/6.125</id>
      <published>2011-08-24T14:09:00Z</published>
      <updated>2011-08-24T15:31:54Z</updated>
      <author>
            <name>Scott</name>
                  </author>

      <category term="ajax"
        scheme="http://filamentgroup.com/lab/tag/ajax/"
        label="ajax" />
      <category term="css"
        scheme="http://filamentgroup.com/lab/tag/css/"
        label="css" />
      <category term="javascript"
        scheme="http://filamentgroup.com/lab/tag/javascript/"
        label="javascript" />
      <category term="jQuery"
        scheme="http://filamentgroup.com/lab/tag/jquery/"
        label="jQuery" />
      <category term="mobile"
        scheme="http://filamentgroup.com/lab/tag/mobile/"
        label="mobile" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by Scott on 08/24/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/ajax/" rel="tag">ajax</a></dd><dd><a href="http://filamentgroup.com/lab/tag/css/" rel="tag">css</a></dd><dd><a href="http://filamentgroup.com/lab/tag/javascript/" rel="tag">javascript</a></dd><dd><a href="http://filamentgroup.com/lab/tag/jquery/" rel="tag">jQuery</a></dd><dd><a href="http://filamentgroup.com/lab/tag/mobile/" rel="tag">mobile</a></dd>
				</dl>
						<p><a href="http://filamentgroup.com/examples/jqm-pagination/demo/" class="callout_text"><img src="/images/jqm-pagination-screen.png" alt="jQuery Mobile Pagination Screenshot"></a>It's been a little while since we've released any code examples here in the FG Lab, so today we're happy to present a 
new <a href="http://jquerymobile.com">jQuery Mobile</a> plugin called <a href="https://github.com/filamentgroup/jqm-pagination">Pagination</a>: a jQuery Mobile plugin for sequential pagination between pages with support for touch, mouse, and keyboard!</p>

<p>The Pagination plugin creates touch-drag navigation between separate HTML pages. Simply add this plugin to your page and link together documents via ordinary HTML anchors. The linked pages will pre-fetch, and in browsers that support touch events, you'll be able to drag between the linked pages, while desktop users can navigate with mouse or keyboard. Like all navigation in jQuery Mobile, this plugin ties into your browser's history, so bookmarking, and using the browser's back and forward buttons work as expected!</p>

					</div>
		
					<h2>A Quick Demo</h2>
<p>The following is a demo of the pagination plugin. There are 4 separate pages linked in the demo. On touch devices, you can drag between the pages. Note that this plugin works with any HTML page content, though we made a series of photos for demo purposes.</p>

<p><a href="http://filamentgroup.com/examples/jqm-pagination/demo/" class="book-site">jQuery Mobile Pagination Demo</a></p>

<h2>How it works</h2>
<p>This plugin requires jQuery and jQuery Mobile. It doesn't require the whole jQM framework though, so we'll try and document the specifics for that later on.</p>

<p>To Use:</p>
<ol>
	<li>Reference <code>jquery.mobile.pagination.css</code> and <code>jquery.mobile.pagination.js</code> from your page.</li>
	<li>Place the following markup somewhere inside each document that you want to make draggable. The links should point to the next and previous pages.</li>
</ol>

<pre><code>
&lt;ul data-role=&quot;pagination&quot;&gt;
	&lt;li class=&quot;ui-pagination-prev&quot;&gt;&lt;a href=&quot;2.html&quot;&gt;Prev&lt;/a&gt;&lt;/li&gt;
	&lt;li class=&quot;ui-pagination-next&quot;&gt;&lt;a href=&quot;4.html&quot;&gt;Next&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</code></pre>

<p>That's it! You can link a series of pages together by placing that markup in the body of each page, pointing to the next and previous pages for each one, respectively.</p>

<h2>Download, Fork on Github!</h2>
<p>This code is open source and free to download and use on any projects, via the MIT or GPL licenses, like jQuery Mobile itself. You can grab it on Github:</p>
<p><a href="https://github.com/filamentgroup/jqm-pagination" class="book-site">jQM Pagination on Github</a></p>

<h3>Support</h3>
<p>The keyboard and mouse/tap support should work in pretty much any browser or device, following jQuery Mobile's browser support grades. The touch gestures tested well on all iOS devices, Android 2.2 and 2.3 phones and tablets. Android 2.1 and Blackberry Playbook support is a little flakey, but the pages are navigable via the arrow links as a fallback in any browser.</p>

<p>Got ideas or improvements? Please fork and contribute!</p>
<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>Filament Group&#8217;s Scott Jehl to Present at Breaking Dev</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/filament_groups_scott_jehl_to_present_at_breaking_dev/" />
      <id>tag:,2011:/lab/6.124</id>
      <published>2011-07-26T15:28:01Z</published>
      <updated>2011-07-26T17:19:02Z</updated>
      <author>
            <name>Scott</name>
                  </author>

      <category term="announcements"
        scheme="http://filamentgroup.com/lab/tag/announcements/"
        label="announcements" />
      <category term="events"
        scheme="http://filamentgroup.com/lab/tag/events/"
        label="events" />
      <category term="presentations"
        scheme="http://filamentgroup.com/lab/tag/presentations/"
        label="presentations" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by fg on 07/26/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/announcements/" rel="tag">announcements</a></dd><dd><a href="http://filamentgroup.com/lab/tag/events/" rel="tag">events</a></dd><dd><a href="http://filamentgroup.com/lab/tag/presentations/" rel="tag">presentations</a></dd>
				</dl>
						<p>Filament Group's Scott Jehl will presenting at this year's <a href="http://www.bdconf.com/">Breaking Dev Conference</a>, September 12-14th in Nashville, Tennessee. While Scott's topic is yet to be announced, it will likely cover techniques surrounding responsive design, cross-device development with jQuery Mobile, or maybe something in between.</p>

<p><img src="/images/breakingdev.png" alt="Breaking Dev conference logo" /></p>

<p>The conference is sure to be great, with presentations by Jeremy Keith, Stephanie and Bryan Rieger, Steve Souders, Josh Clark, Jason Grigsby, Luke Wroblewski, James Pearce, John Boxall, Dave Johnson, Maximiliano Firtman, and Nick Finck.</p>
<p><a href="https://www.bdconf.com/register">Tickets are still available</a>, and the first 10 people to register using Scott's discount code <code>TNJEH11</code> will get $100 off the price of either a Conference Only pass or a Conference plus All Workshops pass. We hope to see you there!</p> 
					</div>
		
					
<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>Filament Group&#8217;s Scott Jehl to Give jQuery Mobile Workshop at dConstruct</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/filament_groups_scott_jehl_to_give_jquery_mobile_workshop_at_dconstruct/" />
      <id>tag:,2011:/lab/6.123</id>
      <published>2011-07-26T14:51:00Z</published>
      <updated>2011-07-26T17:18:47Z</updated>
      <author>
            <name>Scott</name>
                  </author>

      <category term="announcements"
        scheme="http://filamentgroup.com/lab/tag/announcements/"
        label="announcements" />
      <category term="events"
        scheme="http://filamentgroup.com/lab/tag/events/"
        label="events" />
      <category term="jQuery"
        scheme="http://filamentgroup.com/lab/tag/jquery/"
        label="jQuery" />
      <category term="presentations"
        scheme="http://filamentgroup.com/lab/tag/presentations/"
        label="presentations" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by fg on 07/26/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/announcements/" rel="tag">announcements</a></dd><dd><a href="http://filamentgroup.com/lab/tag/events/" rel="tag">events</a></dd><dd><a href="http://filamentgroup.com/lab/tag/jquery/" rel="tag">jQuery</a></dd><dd><a href="http://filamentgroup.com/lab/tag/presentations/" rel="tag">presentations</a></dd>
				</dl>
						<p>We're pleased to announce that Filament Group's Scott Jehl will be giving an <a href="http://2011.dconstruct.org/workshops/scott-jehl">all-day workshop on jQuery Mobile</a> at <a href="http://2011.dconstruct.org/">dConstruct 2011</a>, in Brighton, England. The workshop will take place all day, September 1st, while the conference itself will be on the 2nd.</p>

<p><img src="/images/dconstruct.png" alt="dConstruct 2011 logo" /></p>

<p>On August 31st, Scott will also be making a guest appearance at <a href="http://2011.dconstruct.org/workshops/jeremy-keith">Jeremy Keith's "Responsive Enhancement" workshop</a>, to walk through some real-world responsive design examples from our work on the upcoming Boston Globe website. Naturally, we'd highly recommend attending Jeremy's talk as well!</p>  

<p>While standalone tickets to conference itself are sold out, tickets for the workshops are still available on the <a href="http://2011.dconstruct.org/workshops/scott-jehl">conference website</a>, and entry includes admission to the conference as well! We hope to see you there!</p>
					</div>
		
					
<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>Ethan&#8217;s New Book</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/ethans_new_book/" />
      <id>tag:,2011:/lab/6.122</id>
      <published>2011-06-07T20:38:00Z</published>
      <updated>2011-06-07T21:16:23Z</updated>
      <author>
            <name>Scott</name>
                  </author>

      <category term="announcements"
        scheme="http://filamentgroup.com/lab/tag/announcements/"
        label="announcements" />
      <category term="css"
        scheme="http://filamentgroup.com/lab/tag/css/"
        label="css" />
      <category term="progressive enhancement"
        scheme="http://filamentgroup.com/lab/tag/progressive_enhancement/"
        label="progressive enhancement" />
      <category term="web standards"
        scheme="http://filamentgroup.com/lab/tag/web_standards/"
        label="web standards" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by Patty, Todd, Scott, Maggie, Mat on 06/07/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/announcements/" rel="tag">announcements</a></dd><dd><a href="http://filamentgroup.com/lab/tag/css/" rel="tag">css</a></dd><dd><a href="http://filamentgroup.com/lab/tag/progressive_enhancement/" rel="tag">progressive enhancement</a></dd><dd><a href="http://filamentgroup.com/lab/tag/web_standards/" rel="tag">web standards</a></dd>
				</dl>
						<p>Today, our good friend and colleague, <a href="http://ethanmarcotte.com">Ethan Marcotte</a> released his first solo book effort, <em><a href="http://www.abookapart.com/products/responsive-web-design">Responsive Web Design</a></em>, the latest in the <em>A Book Apart</em> series that has already offered great titles by <a href="http://www.abookapart.com/products/html5-for-web-designers">Jeremy Keith</a>, <a href="http://www.abookapart.com/products/the-elements-of-content-strategy">Erin Kissane</a>, and <a href="http://www.abookapart.com/products/css3-for-web-designers">Dan Cederholm</a>. </p>

<p><span class="callout_text"><img src="/images/ethansbook.png" alt="Responsive Web Design Book"></span>Having had the pleasure of working closely with Ethan for the past 6-8 months, we may be a tad biased, but we'll say it anyway: <strong>this book is fantastic and we can't recommend it highly enough!</strong> For those looking for a sustainable approach to designing web layouts that adapt to the multitudes of contexts in which they are viewed today (and will be in the future), this book provides a solid methodology, real-world examples, and practical takeaways that can be applied to projects immediately. </p>

<p>If you haven't already, head over to the <em>A Book Apart</em> site and <a href="http://www.abookapart.com/products/responsive-web-design">grab yourself a copy now</a>! </p>

<p>Oh, and Congrats, <a href="http://twitter.com/beep">Ethan</a>!</p>

					</div>
		
					
<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>Respond.js now available in Modernizr</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/respondjs_now_available_in_modernizr/" />
      <id>tag:,2011:/lab/6.121</id>
      <published>2011-06-03T12:09:00Z</published>
      <updated>2011-06-03T17:52:53Z</updated>
      <author>
            <name>Scott</name>
                  </author>

      <category term="announcements"
        scheme="http://filamentgroup.com/lab/tag/announcements/"
        label="announcements" />
      <category term="css"
        scheme="http://filamentgroup.com/lab/tag/css/"
        label="css" />
      <category term="javascript"
        scheme="http://filamentgroup.com/lab/tag/javascript/"
        label="javascript" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by fg on 06/03/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/announcements/" rel="tag">announcements</a></dd><dd><a href="http://filamentgroup.com/lab/tag/css/" rel="tag">css</a></dd><dd><a href="http://filamentgroup.com/lab/tag/javascript/" rel="tag">javascript</a></dd>
				</dl>
						<p><a href="http://www.modernizr.com/">Modernizr 2.0</a> was released earlier this week, with a great new <a href="http://www.modernizr.com/download/">download builder tool</a> that lets you include only the feature tests you need, and nothing more. Yesterday, Scott's <a href="https://github.com/scottjehl/Respond/">Respond.js</a> script &mdash; which brings CSS3 Media Query support to browsers like Internet Explorer 6-8 &mdash; was added as an optional include in the Modernizr download builder. </p>

<p>If you're using both Modernizr and Respond.js already, you may want to consider downloading them through the Modernizr builder, as the file size will be slightly smaller than including them separately.</p>

<p>Of course, you can still use Respond.js without Modernizr;  just grab it here: <a href="https://github.com/scottjehl/Respond/blob/master/respond.min.js">Respond.js on Github</a>.</p>
					</div>
		
					
<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>Respond.js: No Comments Necessary</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/no_comment/" />
      <id>tag:,2011:/lab/6.120</id>
      <published>2011-06-02T12:15:00Z</published>
      <updated>2011-06-03T17:54:00Z</updated>
      <author>
            <name>Scott</name>
                  </author>

      <category term="announcements"
        scheme="http://filamentgroup.com/lab/tag/announcements/"
        label="announcements" />
      <category term="css"
        scheme="http://filamentgroup.com/lab/tag/css/"
        label="css" />
      <category term="javascript"
        scheme="http://filamentgroup.com/lab/tag/javascript/"
        label="javascript" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by fg on 06/02/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/announcements/" rel="tag">announcements</a></dd><dd><a href="http://filamentgroup.com/lab/tag/css/" rel="tag">css</a></dd><dd><a href="http://filamentgroup.com/lab/tag/javascript/" rel="tag">javascript</a></dd>
				</dl>
						<p>Earlier this year, Filament's Scott Jehl released <a href="https://github.com/scottjehl/Respond/">Respond.js</a>, a small and fast script that brings CSS3 Media Query support to browsers like Internet Explorer 6-8, allowing you to build cross-browser <a href="http://www.alistapart.com/articles/responsive-web-design/">Responsive Designs</a>. As of last week, Respond.js no longer requires that you add the CSS comments it formerly needed to properly parse the media queries in your CSS &mdash; all you need to do is include the script and write CSS as you normally would. Added bonus: it's 85% faster in IE!</p>

<p>You can always grab the latest version of Respond.js here: <a href="https://github.com/scottjehl/Respond/blob/master/respond.min.js">Respond.js on Github</a></p>
					</div>
		
					
<a href=""></a>
      ]]></content>
    </entry>

    <entry>
      <title>Slides from jQuery Mobile: Building Tools for a Changing Web, Mobilism Conference 2011</title>
      <link rel="alternate" type="text/html" href="http://filamentgroup.com/lab/jquery_mobile_and_boston_globe_at_mobilism/" />
      <id>tag:,2011:/lab/6.119</id>
      <published>2011-05-16T19:22:00Z</published>
      <updated>2011-05-17T14:09:54Z</updated>
      <author>
            <name>Scott</name>
                  </author>

      <category term="accessibility"
        scheme="http://filamentgroup.com/lab/tag/accessibility/"
        label="accessibility" />
      <category term="announcements"
        scheme="http://filamentgroup.com/lab/tag/announcements/"
        label="announcements" />
      <category term="javascript"
        scheme="http://filamentgroup.com/lab/tag/javascript/"
        label="javascript" />
      <category term="jQuery"
        scheme="http://filamentgroup.com/lab/tag/jquery/"
        label="jQuery" />
      <category term="mobile"
        scheme="http://filamentgroup.com/lab/tag/mobile/"
        label="mobile" />
      <category term="presentations"
        scheme="http://filamentgroup.com/lab/tag/presentations/"
        label="presentations" />
      <category term="visual design"
        scheme="http://filamentgroup.com/lab/tag/visual_design/"
        label="visual design" />
      <category term="web standards"
        scheme="http://filamentgroup.com/lab/tag/web_standards/"
        label="web standards" />
      <content type="html"><![CDATA[
       <p class="postData">Posted by fg on 05/16/2011</p>

<dl class="topics">
					<dt>Topics:</dt>
					<dd><a href="http://filamentgroup.com/lab/tag/accessibility/" rel="tag">accessibility</a></dd><dd><a href="http://filamentgroup.com/lab/tag/announcements/" rel="tag">announcements</a></dd><dd><a href="http://filamentgroup.com/lab/tag/javascript/" rel="tag">javascript</a></dd><dd><a href="http://filamentgroup.com/lab/tag/jquery/" rel="tag">jQuery</a></dd><dd><a href="http://filamentgroup.com/lab/tag/mobile/" rel="tag">mobile</a></dd><dd><a href="http://filamentgroup.com/lab/tag/presentations/" rel="tag">presentations</a></dd><dd><a href="http://filamentgroup.com/lab/tag/visual_design/" rel="tag">visual design</a></dd><dd><a href="http://filamentgroup.com/lab/tag/web_standards/" rel="tag">web standards</a></dd>
				</dl>
						<p>Last week, Filament's Scott Jehl presented at the <a href="http://mobilism.nl">Mobilism Conference</a> in Amsterdam. The presentation centered around our work on the <a href="http://jquerymobile.com">jQuery Mobile</a> Project: its goals, philosophy and current status, some of the lessons we've learned since the project began, and how those lessons and other influences are affecting jQuery Mobile's direction.</p>
					</div>
		
					<h2>Speaking of Influences...</h2>
<p>One major influence on the project as of late is the concept of <a href="http://www.alistapart.com/articles/responsive-web-design/">Responsive Design</a>, one of many techniques we're using at Filament to develop the new Boston Globe website (scheduled for release this summer).</p>

<p>The site will use a single code base that adapts to many contexts, from feature phones, to high-end smart phones, to tablets, to modern desktop browsers. The technical challenges involved in this undertaking span many disciplines &mdash; including page layout, bandwidth management and performance, contextual considerations like touch gestures and location awareness &mdash; all of which are also faced by jQuery Mobile. We're fortunate the Boston Globe was kind enough to allow us to share some of the technical details of the implementation in this presentation, and we're excited that so many of the lessons we're learning will benefit the jQuery Mobile framework.</p>

<p>Here are the slides from Scott's presentation, posted in autoplay video format. A recorded video of the presentation will likely be available soon as well. Enjoy!</p>

<iframe src="http://player.vimeo.com/video/23826550?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" width="480" height="360" frameborder="0"></iframe>
<a href=""></a>
      ]]></content>
    </entry>


</feed>
