<?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>The Bright Lines &#187; JavaScript</title>
	<atom:link href="http://www.thebrightlines.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thebrightlines.com</link>
	<description>HTML, CSS, Javascript and more</description>
	<lastBuildDate>Tue, 17 Jan 2012 22:00:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>New download location for Ono List Pager</title>
		<link>http://www.thebrightlines.com/2011/12/14/new-download-location-for-ono-list-pager/</link>
		<comments>http://www.thebrightlines.com/2011/12/14/new-download-location-for-ono-list-pager/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 22:54:03 +0000</pubDate>
		<dc:creator>Wouter Bos</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[OnoPager]]></category>

		<guid isPermaLink="false">http://www.thebrightlines.com/?p=1014</guid>
		<description><![CDATA[plugins.jquery.com is down and appears not going to be up for a long time.]]></description>
			<content:encoded><![CDATA[<p>That&#8217;s why I created a <a href="https://github.com/WouterBos/Ono-List-Pager/downloads">download page on Github</a>. You can find the last update of the Ono List Pager, which now features a <a href="http://www.ndoherty.biz/demos/coda-slider/2.0/">Coda style theme</a>.</p>
<p>The <a href="http://www.thebrightlines.com/onopager/website/">demo page</a> remains the same.</p>


<p>Related posts:<ol><li><a href='http://www.thebrightlines.com/2011/09/10/the-jquery-plugin-ono-list-pager-reached-version-1-0/' rel='bookmark' title='Permanent Link: The jQuery plugin Ono List Pager reached version 1.0!'>The jQuery plugin Ono List Pager reached version 1.0!</a></li>
<li><a href='http://www.thebrightlines.com/2011/05/20/preview-of-a-new-jquery-list-pager-plugin/' rel='bookmark' title='Permanent Link: Preview Of A New jQuery List Pager Plugin'>Preview Of A New jQuery List Pager Plugin</a></li>
<li><a href='http://www.thebrightlines.com/2011/08/11/ono-list-pager-0-8-is-out/' rel='bookmark' title='Permanent Link: Ono List Pager 0.8 is out'>Ono List Pager 0.8 is out</a></li>
<li><a href='http://www.thebrightlines.com/2011/06/09/new-release-ono-list-pager-0-5/' rel='bookmark' title='Permanent Link: New release: Ono List Pager 0.5'>New release: Ono List Pager 0.5</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.thebrightlines.com/2011/12/14/new-download-location-for-ono-list-pager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Considerations on building a frontend codebase</title>
		<link>http://www.thebrightlines.com/2011/09/22/considerations-on-building-a-frontend-template-in-html-css-and-javascript/</link>
		<comments>http://www.thebrightlines.com/2011/09/22/considerations-on-building-a-frontend-template-in-html-css-and-javascript/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 20:46:34 +0000</pubDate>
		<dc:creator>Wouter Bos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Optimization]]></category>
		<category><![CDATA[Web development in general]]></category>

		<guid isPermaLink="false">http://www.thebrightlines.com/?p=933</guid>
		<description><![CDATA[This article is about my thoughts on how to build a solid codebase for your (frontend) web development.]]></description>
			<content:encoded><![CDATA[<p>Every developer at one time stops looking for code from previous built websites and starts building his own standardized code to cut down on production time and repetative work. Call it a boiler plate, codebase, template, scaffolding, framework or whatever. The bottom line is that every developer needs one.</p>
<h2>Problems with my current codebase</h2>
<p>Well, I already have a codebase, but it has some problems. The important one is that it only covers the very basics. That&#8217;s because designs can be very diverse and as a developer I want to stay true to the design. So it&#8217;s hard to build a codebase with grids and blocks if all design differ from eachother.</p>
<p>Another problem major issue is something I have more control over: the codebase and the documentation is a bit scattered. The last problem I have is that I have no demo page of my standard CSS code, so there&#8217;s no easy way to check the template on browser compatibilities.</p>
<p>Now my <a href="/onopager/website/">jQuery plugin project</a> has reached version 1.1, I had the time to do some thinking about a new codebase that would be solid, extendable, easy to deploy and would replace all other codebases and documentation.</p>
<p>Let me make it clear: this article is about my considerations about building a solid framework for myself. It may not apply to you and my ideas not unique either. It still may be helpful for you to get an idea of what sort of codebase you need.</p>
<h2>Existing examples</h2>
<p>The most important thing about a codebase is to decide how to set it up and how to store it. I like the way open source grids like <a href="http://960.gs/">Grid960</a> and <a  href="http://developer.yahoo.com/yui/grids/">YUI</a> have organized their code into little reusable bits and have created a demo and test page for each and every component.</p>
<p>I must admit: I hardly ever used these grids. Most of those grids talk the language of the web developer, not of the designer. And the designers I know don&#8217;t have to limit themselves to a 24-column grid system. Not to mention the designers that are totally ignorant of such a system and whose task is to design a website and mail the Photoshop file to some other company that has to build it. Although I have my reservations towards grids, I like the way these codebases are organized. It can serve as a good <a href="http://www.blueprintcss.org/">Blueprint</a> for my own codebase.</p>
<p>I also get my inspiration from Nicole Sullivan&#8217;s talk on Object Oriented CSS (OOCSS). OOCSS basically means that you build your components in such a way that they become extendable objects. Just like in real object oriented programming. Just have a look at <a href="http://www.stubbornella.org/content/2009/03/23/object-oriented-css-video-on-ydn/">her talk about OOCSS on Yahoo! Developer Network</a>.</p>
<h2>Prefix classes</h2>
<p>By adding a (relatively) unique string before the name of the class you have created your own CSS namespace. It will minimize any interference of other CSS styling that is not part of your own code. Some real life examples can be found in the code that is generated by the CMS systems I have experience with: <a href="http://www.sitefinity.com">Sitefinity</a> and <a href="http://www.sitecore.com">Sitecore</a>. The CMS Sitefinity for example prefixes all CSS classes with &#8220;sf_&#8221;.</p>
<h2>Grids, blocks and text</h2>
<p>All CSS code will be split into different categories that work relatively independently of each other. Until now I can come up with 3 of them.</p>
<h3>Grids</h3>
<p>Grids are the frameworks of placeholders in which we put our content. You know: header, visual, column1, column2, column3 and footer. There are lots of grid templates around like <a href="http://960.gs/">Grid960</a> and <a href="http://www.blueprintcss.org/">Blueprint</a>. My view is that those templates only work if the designer agrees to work within the limits of that framework. My ambition is to write a framework that makes my work easier while still being flexible enough to keep the designers happy.</p>
<h3>Blocks</h3>
<p>There are as many block as the designer can come up with. I think it will be a real time saver to talk with the designer and write down all the types of blocks he thinks he&#8217;ll like to use often. Or even better: just open the last 20 or so web designs he/she made and destil the common blocks and its common features. like menus, news article lists, homepage spotlights, etc. Finally you create basic blocks of it in your template system.</p>
<p>Standarization is not always popular with designers but if it means that projects can be created cheaper there may eventually be budget left to build cool stuff. At least, I hope&#8230;</p>
<h3>Text</h3>
<p>Basic text styling is also a relatively independent component in CSS code. You always define a basic font color, family, size and line height that serves as a base styling for the whole websites. More specific text styling in blocks should be kept to a minimum and preferably relatively to the base text style. So if you have a base style of <code>font: 1em/1.5em normal Arial, sans-serif</code>, you ideally should style a header in a block like this: <code>font-size: 1.5em; line-height: 1.2em;</code>.</p>
<p>Although <code>font-weight</code> is not something you can set relative to a base style, it&#8217;s not likely that it will look ugly in combination with some design if you add <code>font-weight</code> styling to a block. Setting the <code>font-family</code> in the styling of blocks on the other hand will most likely interfere with design, since designs tend to depend heavily on a particular font.</p>
<h2>Create base templates and extend themes</h2>
<p>The code for each grid system and each block will be stored in a seperate base CSS file. Each grid or block can be extended with extra themes or styles. Each style extension will have its own CSS file and presumes that the base file is already loaded.</p>
<h2>Optimizing CSS</h2>
<p>Having all code seperated in small snippets is great for maintaining an overview. As long as you can see what a CSS file does by looking at its filename, its will be easy to add and extend styling to a website.</p>
<p>The template code is not optimized for speed, though. If we don&#8217;t do anything about the fragmentation, the server will have to load a bunch of little CSS files. It&#8217;s important to stress this: It&#8217;s not just the total filesize that matters, each http request costs time. Check out <a href="http://developer.yahoo.com/yslow/">YSlow</a> if you want to know more about this and if it affects your site.</p>
<h3>YUI</h3>
<p>That&#8217;s why all CSS in the website has to be exported, merged and its code minified to one single CSS file. Normally I use <a href="http://developer.yahoo.com/yui/compressor/">YUI compressor</a> for it.</p>
<h3>Less</h3>
<p>But you can do more than just minification. <a href="http://lesscss.org/">Less</a> is a system that extends the CSS syntax with stuff like variables, nested rules and mixins. Less was originally built in Ruby, but there&#8217;s also an <a href="http://www.dotlesscss.org/">ASP.NET port</a>. I hope it will help me create very flexible grids.</p>
<p>By exporting CSS into optimized code, you can focus on making the most readable CSS source file because all comments and spaces in the code will be removed in the end. This is also what I do with JavaScript code and certainly will continue to do.</p>


<p>Related posts:<ol><li><a href='http://www.thebrightlines.com/2009/12/24/too-advanced-css-selectors/' rel='bookmark' title='Permanent Link: Too advanced CSS selectors'>Too advanced CSS selectors</a></li>
<li><a href='http://www.thebrightlines.com/2011/09/08/the-last-resort-in-css-debugging/' rel='bookmark' title='Permanent Link: The last resort in CSS debugging'>The last resort in CSS debugging</a></li>
<li><a href='http://www.thebrightlines.com/2011/11/21/debugging-less-css/' rel='bookmark' title='Permanent Link: Tips for using and debugging of Less CSS code'>Tips for using and debugging of Less CSS code</a></li>
<li><a href='http://www.thebrightlines.com/2012/01/17/1028/' rel='bookmark' title='Permanent Link: Crucial stuff for your company&#8217;s internal projects'>Crucial stuff for your company&#8217;s internal projects</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.thebrightlines.com/2011/09/22/considerations-on-building-a-frontend-template-in-html-css-and-javascript/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The jQuery plugin Ono List Pager reached version 1.0!</title>
		<link>http://www.thebrightlines.com/2011/09/10/the-jquery-plugin-ono-list-pager-reached-version-1-0/</link>
		<comments>http://www.thebrightlines.com/2011/09/10/the-jquery-plugin-ono-list-pager-reached-version-1-0/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 21:12:46 +0000</pubDate>
		<dc:creator>Wouter Bos</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[OnoPager]]></category>

		<guid isPermaLink="false">http://www.thebrightlines.com/?p=895</guid>
		<description><![CDATA[The Ono List Pager, a JavaScript library that creates a paging UI out of HTML list items, is now stable and complete enough to be made public. It can be used to create an animating spotlight on a homepage, but it can also be used to put a lot of information in a small space.]]></description>
			<content:encoded><![CDATA[<p><a class="button demo" href="/onopager/website/"><span> </span>Demo</a></p>
<div class="clear"></div>
<h2>About the library</h2>
<p>Its development took about half a year and in that time it has become a solid jQuery plugin with the following key properties:</p>
<ul>
<li>Works in IE7+, Firefox, Chrome, Safari and Opera. Most functions also work on IE6, but that browser is not actively supported.</li>
<li>Supports gestures in mobile browsers.</li>
<li>Supports arrow key events.</li>
<li>Works with the principle of progressive enhancement, so your content is still also accessible to search engines and users without JavaScript.</li>
<li>Very configurable and extendable.</li>
<li>Open source and available on <a href="https://github.com/WouterBos/Ono-List-Pager">Github</a>.</li>
<li>The library size is just 30Kb. If your webserver uses gzip files, it will be even smaller.</li>
</ul>
<h2>Installation</h2>
<ul>
<li><a href="http://plugins.jquery.com/project/OnoListPager">Get the library</a></li>
<li><a href="/ono-list-pager/">Read the manual</a></li>
<li><a href="/onopager/website/">View the examples on the demo page</a></li>
</ul>
<h2>Extending and improving the library</h2>
<ul>
<li> <a href="https://github.com/WouterBos/Ono-List-Pager">The Ono List Pager on Github</a></li>
<li><a href="/onopager/documentation/onoPager/index.html">An overview of the code</a></li>
</ul>
<h2>Examples</h2>
<p>Most websites that use the Ono List Pager are still in development, but a good website to show what you can do with it can be found on <a href="http://www.estate15jaar.nl">Estate 15 jaar</a>.</p>
<div class="wp-caption alignnone" style="width: 312px"><img alt="An example of an Ono List Pager instance." src="/article-data/images/onopager1.png" title="An example of an Ono List Pager instance." width="302" height="143" /><p class="wp-caption-text">An example of an Ono List Pager instance.</p></div>


<p>Related posts:<ol><li><a href='http://www.thebrightlines.com/2011/05/20/preview-of-a-new-jquery-list-pager-plugin/' rel='bookmark' title='Permanent Link: Preview Of A New jQuery List Pager Plugin'>Preview Of A New jQuery List Pager Plugin</a></li>
<li><a href='http://www.thebrightlines.com/2011/12/14/new-download-location-for-ono-list-pager/' rel='bookmark' title='Permanent Link: New download location for Ono List Pager'>New download location for Ono List Pager</a></li>
<li><a href='http://www.thebrightlines.com/2011/08/11/ono-list-pager-0-8-is-out/' rel='bookmark' title='Permanent Link: Ono List Pager 0.8 is out'>Ono List Pager 0.8 is out</a></li>
<li><a href='http://www.thebrightlines.com/2011/06/09/new-release-ono-list-pager-0-5/' rel='bookmark' title='Permanent Link: New release: Ono List Pager 0.5'>New release: Ono List Pager 0.5</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.thebrightlines.com/2011/09/10/the-jquery-plugin-ono-list-pager-reached-version-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ono List Pager 0.8 is out</title>
		<link>http://www.thebrightlines.com/2011/08/11/ono-list-pager-0-8-is-out/</link>
		<comments>http://www.thebrightlines.com/2011/08/11/ono-list-pager-0-8-is-out/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 07:29:27 +0000</pubDate>
		<dc:creator>Wouter Bos</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[OnoPager]]></category>

		<guid isPermaLink="false">http://www.thebrightlines.com/?p=836</guid>
		<description><![CDATA[A new version of the Ono List Pager is online.
 Demo

What is changed in this new release:

Auto adjusting height
New demo page
New autopage animation &#8216;clock&#8217;



Related posts:Preview Of A New jQuery List Pager Plugin
New release: Ono List Pager 0.5
The jQuery plugin Ono List Pager reached version 1.0!
New download location for Ono List Pager
]]></description>
			<content:encoded><![CDATA[<p>A new version of the Ono List Pager is online.</p>
<p><a class="button demo" href="/onopager/website/"><span> </span>Demo</a></p>
<div class="clear"></div>
<p>What is changed in this new release:</p>
<ul>
<li>Auto adjusting height</li>
<li>New demo page</li>
<li>New autopage animation &#8216;clock&#8217;</li>
</ul>


<p>Related posts:<ol><li><a href='http://www.thebrightlines.com/2011/05/20/preview-of-a-new-jquery-list-pager-plugin/' rel='bookmark' title='Permanent Link: Preview Of A New jQuery List Pager Plugin'>Preview Of A New jQuery List Pager Plugin</a></li>
<li><a href='http://www.thebrightlines.com/2011/06/09/new-release-ono-list-pager-0-5/' rel='bookmark' title='Permanent Link: New release: Ono List Pager 0.5'>New release: Ono List Pager 0.5</a></li>
<li><a href='http://www.thebrightlines.com/2011/09/10/the-jquery-plugin-ono-list-pager-reached-version-1-0/' rel='bookmark' title='Permanent Link: The jQuery plugin Ono List Pager reached version 1.0!'>The jQuery plugin Ono List Pager reached version 1.0!</a></li>
<li><a href='http://www.thebrightlines.com/2011/12/14/new-download-location-for-ono-list-pager/' rel='bookmark' title='Permanent Link: New download location for Ono List Pager'>New download location for Ono List Pager</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.thebrightlines.com/2011/08/11/ono-list-pager-0-8-is-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codeview is on Github now</title>
		<link>http://www.thebrightlines.com/2011/07/30/codeview-is-on-github-now/</link>
		<comments>http://www.thebrightlines.com/2011/07/30/codeview-is-on-github-now/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 21:14:34 +0000</pubDate>
		<dc:creator>Wouter Bos</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[codeview]]></category>
		<category><![CDATA[jsdoc]]></category>

		<guid isPermaLink="false">http://www.thebrightlines.com/?p=834</guid>
		<description><![CDATA[Codeview, the template for JsDoc Toolkit, is now available on Github.]]></description>
			<content:encoded><![CDATA[<p><a href="https://github.com/WouterBos/Codeview">https://github.com/WouterBos/Codeview</a></p>


<p>Related posts:<ol><li><a href='http://www.thebrightlines.com/2010/09/29/another-codeview-update/' rel='bookmark' title='Permanent Link: Another Codeview update'>Another Codeview update</a></li>
<li><a href='http://www.thebrightlines.com/2010/09/27/codeview-update/' rel='bookmark' title='Permanent Link: Codeview update'>Codeview update</a></li>
<li><a href='http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/' rel='bookmark' title='Permanent Link: Codeview, a new template for JSDoc Toolkit'>Codeview, a new template for JSDoc Toolkit</a></li>
<li><a href='http://www.thebrightlines.com/2010/11/30/codeview-1-2/' rel='bookmark' title='Permanent Link: Codeview 1.2'>Codeview 1.2</a></li>
<li><a href='http://www.thebrightlines.com/2011/09/10/the-jquery-plugin-ono-list-pager-reached-version-1-0/' rel='bookmark' title='Permanent Link: The jQuery plugin Ono List Pager reached version 1.0!'>The jQuery plugin Ono List Pager reached version 1.0!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.thebrightlines.com/2011/07/30/codeview-is-on-github-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New release: Ono List Pager 0.5</title>
		<link>http://www.thebrightlines.com/2011/06/09/new-release-ono-list-pager-0-5/</link>
		<comments>http://www.thebrightlines.com/2011/06/09/new-release-ono-list-pager-0-5/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 20:07:19 +0000</pubDate>
		<dc:creator>Wouter Bos</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[OnoPager]]></category>

		<guid isPermaLink="false">http://www.thebrightlines.com/?p=830</guid>
		<description><![CDATA[There's a new version available on plugins.jquery.com]]></description>
			<content:encoded><![CDATA[<p><a class="button demo" href="/onopager/website/"><span> </span>Demo</a></p>
<div class="clear"></div>
<p>I&#8217;ve pushed some new work online:</p>
<ul>
<li>There are two new transition types: &#8220;fade&#8221; and &#8220;linearContinuous&#8221;. <a href="http://www.thebrightlines.com/onopager/website/">Check out the demo page</a> to see all transition types.</li>
<li>More configuration possibilities. <a href="http://www.thebrightlines.com/onopager/documentation/onoPager/">Check out the documentation</a>.</li>
<li>There&#8217;s now a time indication when using autopaging. Other time indicators can be plugged in as wel, just like the animation objects for the paging transitions.</li>
</ul>


<p>Related posts:<ol><li><a href='http://www.thebrightlines.com/2011/05/20/preview-of-a-new-jquery-list-pager-plugin/' rel='bookmark' title='Permanent Link: Preview Of A New jQuery List Pager Plugin'>Preview Of A New jQuery List Pager Plugin</a></li>
<li><a href='http://www.thebrightlines.com/2011/08/11/ono-list-pager-0-8-is-out/' rel='bookmark' title='Permanent Link: Ono List Pager 0.8 is out'>Ono List Pager 0.8 is out</a></li>
<li><a href='http://www.thebrightlines.com/2011/09/10/the-jquery-plugin-ono-list-pager-reached-version-1-0/' rel='bookmark' title='Permanent Link: The jQuery plugin Ono List Pager reached version 1.0!'>The jQuery plugin Ono List Pager reached version 1.0!</a></li>
<li><a href='http://www.thebrightlines.com/2011/12/14/new-download-location-for-ono-list-pager/' rel='bookmark' title='Permanent Link: New download location for Ono List Pager'>New download location for Ono List Pager</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.thebrightlines.com/2011/06/09/new-release-ono-list-pager-0-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preview Of A New jQuery List Pager Plugin</title>
		<link>http://www.thebrightlines.com/2011/05/20/preview-of-a-new-jquery-list-pager-plugin/</link>
		<comments>http://www.thebrightlines.com/2011/05/20/preview-of-a-new-jquery-list-pager-plugin/#comments</comments>
		<pubDate>Fri, 20 May 2011 20:49:07 +0000</pubDate>
		<dc:creator>Wouter Bos</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[OnoPager]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.thebrightlines.com/?p=817</guid>
		<description><![CDATA[For some time now I've been busy writing a jQuery plugin called the Ono List Pager that creates pageable widgets of standard unordered lists. I think the code is now stable enough to publish a preview.]]></description>
			<content:encoded><![CDATA[<p><a class="button demo" href="/onopager/website/"><span> </span>Demo</a></p>
<div class="clear"></div>
<p>The Ono list Pager aims to provide standard code for the paging logic, while the transitions are customizable and extendable. That way the plugin can adapt to a particular design without you having to rewrite the basic stuff. But that&#8217;s already the advanced stuff. The Ono List Pager already has a few built-in, configurable transition types, so you&#8217;ll most likely just pick some example code from the <a href="http://www.thebrightlines.com/onopager/website/">demo page</a> and go on with your life.</p>
<h2>Extending the Ono List Pager</h2>
<p>For the more adventurous types: creating your own transition shouldn&#8217;t be that hard. It is done by writing a piece of code called an animation object. You can start with a template of the animation object, or you just rewrite an existing one. I do not recommend to write your own animation object though, because the interface of those object can still change during development. In case you do write an animation object I&#8217;d like to hear it from you. maybe it can be become part of the plugin.</p>
<h2>Open source and available on GitHub</h2>
<p>The Ono List Pager is free and its project is available on <a href="https://github.com/WouterBos/Ono-List-Pager">Github</a>, so go right ahead and make it your own.</p>
<h2>Browser compatibility</h2>
<p>My aim is to make the library run on all major browsers: IE7+, Firefox, Safari, Chrome and most likely Opera.</p>


<p>Related posts:<ol><li><a href='http://www.thebrightlines.com/2011/09/10/the-jquery-plugin-ono-list-pager-reached-version-1-0/' rel='bookmark' title='Permanent Link: The jQuery plugin Ono List Pager reached version 1.0!'>The jQuery plugin Ono List Pager reached version 1.0!</a></li>
<li><a href='http://www.thebrightlines.com/2011/06/09/new-release-ono-list-pager-0-5/' rel='bookmark' title='Permanent Link: New release: Ono List Pager 0.5'>New release: Ono List Pager 0.5</a></li>
<li><a href='http://www.thebrightlines.com/2011/08/11/ono-list-pager-0-8-is-out/' rel='bookmark' title='Permanent Link: Ono List Pager 0.8 is out'>Ono List Pager 0.8 is out</a></li>
<li><a href='http://www.thebrightlines.com/2011/12/14/new-download-location-for-ono-list-pager/' rel='bookmark' title='Permanent Link: New download location for Ono List Pager'>New download location for Ono List Pager</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.thebrightlines.com/2011/05/20/preview-of-a-new-jquery-list-pager-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Estate Developer Tools</title>
		<link>http://www.thebrightlines.com/2010/12/16/estate-developer-tools/</link>
		<comments>http://www.thebrightlines.com/2010/12/16/estate-developer-tools/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 18:18:15 +0000</pubDate>
		<dc:creator>Wouter Bos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web development in general]]></category>
		<category><![CDATA[Estate]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.thebrightlines.com/?p=745</guid>
		<description><![CDATA[The Estate Developer Tool is a JavaScript library that helps front-end developers building websites. I wrote these tools in order to use them at Estate Internet and are now published as open source under the FreeBSD license.]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="/article-data/demo/estate-developer-tools/example/index.html" class="button demo"><span> </span>View demo</a></p>
<div class='clear'></div>
<p><a class="button download" href="/article-data/downloads/EstateDeveloperTools.zip"><span> </span>Download Estate Developer Tools</a></p>
<div class='clear'></div>
<h2>Features</h2>
<ul>
<li><strong>Compare page with original design fast:</strong> You can compare the current page with an image of the original design within the browser.</li>
<li><strong>CSS reload:</strong> Reload the stylesheets without reloading the page. Extremely useful when designing websites with many Ajax calls.</li>
<li><strong>Console.log fallback:</strong> If you use <code>clog()</code>, debug messages will be routed to <code>console.log()</code> if available. If not (eg. you&#8217;re developing in IE), the message will be printed in a log box in the web page itself.</li>
<li><strong>Autofill and test forms:</strong> Auto fill forms with text that might cause errors like non-western characters, malformed HTML, JS injection and SQL injection. Autofill also works with the new HTML5 form fields.</li>
<li><strong>Timer:</strong> Do performance test by checking how long some operation takes.</li>
<li><strong>Works in:</strong> IE6+ and all recent versions of Firefox, Chrome, Safari and Opera. I did not check all possible browser versions, but it should work. let me know if you have problems with older browsers. The developer tools do <em>not</em> work in IE&#8217;s <a href="http://en.wikipedia.org/wiki/Quirks_mode">Quirks mode</a>, but that&#8217;s something you should avoid anyway.</li>
</ul>
<h2>Quick overview</h2>
<p>Sorry for the bad sound quality.<br />
<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/PnuFfs0zOgk?fs=1&amp;hl=nl_NL"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/PnuFfs0zOgk?fs=1&amp;hl=nl_NL" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<h2>Installation</h2>
<p>Step one is to <a href="#TODO">download</a> the tool. If you unpack the zip, you&#8217;ll find example page in the (what else) &#8220;example&#8221; directory.</p>
<p>Open the file called &#8220;index.html&#8221;. The developer tools are loaded just before the closing body tag: <code>&lt;script type="text/javascript" src="devtools/javascript/estate-devtools.min.js">&lt;/script></code>.</p>
<p>If you want to change the library to your own needs, you can load the source code instead. It&#8217;s in 4 seperate files that are in the same directory: <code>Estate.js</code>, <code>Estate.Develop.js</code>, <code>Estate.Develop.FormTester.js</code> and <code>Estate.Develop.DesignTester.js</code>.</p>
<p>After the library has been loaded, you can add items to the top right menu like this:</p>
<pre name="code" class="js:nogutter">
	Estate.Events.AddEvent(window, Estate.Develop.ToggleVisibility.Init, "onload")
	Estate.Events.AddEvent(window, Estate.Develop.ReloadCSS.Init, "onload")
	Estate.Events.AddEvent(window, Estate.Develop.FormTester.Init, "onload")
	Estate.Events.AddEvent(
		window,
		function() {
			Estate.Develop.DesignTester.Init({
				designAnchor: document.getElementById('DesignTester'),
				xOffset: 10,
				yOffset: 5
			})
		},
		"onload"
	)
</pre>
<p>The example above will most likely be enough in most cases. The only thing you might have to configure is the Design Tester. That&#8217;s because the design image needs to be positioned relative to the main body of the page. Therefore you need to define an anchor by supplying a reference to an HTML element and define the optional offset.</p>
<p>You can also use jQuery to supply an HTML element like this: <code>designAnchor: jQuery('#DesignTester')[0]</code>. The Form Tester is also configurable. Please refer to the <a href="/article-data/demo/estate-developer-tools/documentation/index.html">object reference</a> for more information.</p>
<p>To install the Estate Developer Tools into your own website, you&#8217;ll have to copy the JavaScript code at the bottom of the page to your own and copy the <code>devtools</code> folder to the root of your own website.</p>
<p>After that you only need to create PNG files of the original design and save them in the folder<code>/devtools/design-images/</code>. If a page is loaded, the Design Tester looks for a PNG file which file name resembles the URL of the page. If that image cannot be found, the Design Tester will asks for that file either by printing a message in the console log or in its own fallback log box in the page. You just have to look up the right file and rename so that the Design Tester can pick it up.</p>
<h2>Helper functions</h2>
<p>Some functionality is not included in the menu</p>
<h3>console.log fallback</h3>
<p>After the library has been loaded, two global functions are available: <code>clog()</code> and <code>dlog()</code>. You use <code>clog()</code> to send a string to <code>console.log()</code> if available. If console.log is not available, the debug message will be printed in the log box in the website. If you can also choose to always use the log box of the Estate Developer Tools by calling <code>dlog()</code>.</p>
<h3>Timer</h3>
<p>If you you want to optimize, you can use the timer to see how much time JavaScript needs to complete an operation. You just create a new instance of the timer object, set an ID so you can distinguish multiple alert from an another, start the timer, run some function or lines of code and the stop the timer. By stopping the timer, you&#8217;ll get a message how much milliseconds the operation costs. Here below is an example:</p>
<pre name="code" class="js:nogutter">
var oTimer = new Estate.Develop.Timer()
oTimer.SetID('Your time to response')
oTimer.Start()
alert('Press "ok" to see how much time it took to respond')
oTimer.End()
</pre>
<h2>Reference</h2>
<p>All public objects and methods have been documented with JsDoc Toolkit. Read the <a href="http://www.thebrightlines.com/article-data/demo/estate-developer-tools/documentation/index.html">documentation</a>.</p>
<h2>Adding more tools</h2>
<p>It&#8217;s possible to integrate your own developer tools in the menu of the Estate Developer Tool. This code will create an extra menu item and runs some code when a user clicks on it:</p>
<pre name="code" class="js:nogutter">
/**
 * @namespace Creates extra menu
 */
Estate.Develop.ExtraMenuItem = ( function() {
	var menuButton

	function doSomething() {
		dlog('Menu item pressed')
	}

	/* START PUBLIC */
	return {
		/**
		 * Initializes extra menu button
		 *
		 * @example
		 * Estate.Develop.ExtraMenuItem.Init()
		 */
		Init: function() {
			menuButton = Estate.Develop.Menu.AddMenuItem('Extra item')

			menuButton.onclick = function() {
				doSomething()
			}
		}
	}
	/* END PUBLIC */
})();
</pre>
<p>It&#8217;s also possible to attach a keypress event to it</p>
<pre name="code" class="js:nogutter">
/**
 * @namespace Creates extra menu
 */
Estate.Develop.ExtraMenuItem = ( function() {
	var menuButton

	function doSomething() {
		dlog('Menu item pressed')
	}

	function pageKeyPress(KeyID){
		dlog('KeyID: '+ KeyID)
	}

	/* START PUBLIC */
	return {
		/**
		 * Initializes extra menu button
		 *
		 * @example
		 * Estate.Develop.ExtraMenuItem.Init()
		 */
		Init: function() {
			menuButton = Estate.Develop.Menu.AddMenuItem('Extra item', 'Press any key')

			menuButton.onclick = function() {
				doSomething()
			}

			// Handle global key events
			Estate.Events.AddEvent (
				document,
				function(e) {
					var KeyID = (window.event) ? event.keyCode : e.which;
					pageKeyPress(KeyID)
				},
				"onkeypress"
			)
		}
	}
	/* END PUBLIC */
})();
</pre>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.thebrightlines.com/2010/12/16/estate-developer-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codeview 1.2</title>
		<link>http://www.thebrightlines.com/2010/11/30/codeview-1-2/</link>
		<comments>http://www.thebrightlines.com/2010/11/30/codeview-1-2/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 07:29:58 +0000</pubDate>
		<dc:creator>Wouter Bos</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.thebrightlines.com/?p=738</guid>
		<description><![CDATA[Codeview 1.2 is out with again some new stuff.]]></description>
			<content:encoded><![CDATA[<p><strong>What has changed in 1.2:</strong></p>
<ul>
<li>A quick filter, to filter the class list and methods</li>
<li>Extra command line options, thanks to Aaron Wirtz</li>
<li>A more logical template structure, thanks to Aaron Wirtz</li>
<li>Some bug fixes, including one reported by Gregor</li>
</ul>
<p>Go to the <a href="https://github.com/WouterBos/Codeview/downloads">download page</a>.</p>


<p>Related posts:<ol><li><a href='http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/' rel='bookmark' title='Permanent Link: Codeview, a new template for JSDoc Toolkit'>Codeview, a new template for JSDoc Toolkit</a></li>
<li><a href='http://www.thebrightlines.com/2010/09/27/codeview-update/' rel='bookmark' title='Permanent Link: Codeview update'>Codeview update</a></li>
<li><a href='http://www.thebrightlines.com/2010/09/29/another-codeview-update/' rel='bookmark' title='Permanent Link: Another Codeview update'>Another Codeview update</a></li>
<li><a href='http://www.thebrightlines.com/2011/07/30/codeview-is-on-github-now/' rel='bookmark' title='Permanent Link: Codeview is on Github now'>Codeview is on Github now</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.thebrightlines.com/2010/11/30/codeview-1-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The jQuery Quiz</title>
		<link>http://www.thebrightlines.com/2010/10/07/the-jquery-quiz/</link>
		<comments>http://www.thebrightlines.com/2010/10/07/the-jquery-quiz/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 22:45:25 +0000</pubDate>
		<dc:creator>Wouter Bos</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[anki]]></category>

		<guid isPermaLink="false">http://www.thebrightlines.com/?p=716</guid>
		<description><![CDATA[What's even better than a cheat sheet? Memorizing. Test and refresh your knowledge of jQuery with Anki, an open source program meant for cramming such information into your head.]]></description>
			<content:encoded><![CDATA[<p>A few months ago I decided it was time to get better acquainted with the jQuery API. I reckoned that reading a book wasn&#8217;t good enough. I had to recall (almost) everything what I&#8217;ve learned. So I searched for some sort of quiz program and I settled with Anki. You can create your own batch of quiz cards, so I created one about the jQuery API. Feel free to download my quiz and use it! Anki is available for various platforms by the way.</p>
<p>Tip: You&#8217;ll most likely have to configure the question scheduling if you load the jQuery questions.</p>
<p><a class="button download" href="/article-data/downloads/jQuery14.zip"><span> </span>Download jQuery questions for Anki</a></p>
<div class="clear"></div>
<p><a class="button download" href="http://ichi2.net/anki/"><span> </span>Download Anki</a></p>
<div class="clear"></div>
<div class="wp-caption alignnone" style="width: 396px"><img alt="Testing your knowledge of jQuery with Anki" src="/article-data/images/anki.png" title="Testing your knowledge of jQuery with Anki" width="386" height="447" /><p class="wp-caption-text">Testing your knowledge of jQuery with Anki</p></div>


<p>Related posts:<ol><li><a href='http://www.thebrightlines.com/2011/09/10/the-jquery-plugin-ono-list-pager-reached-version-1-0/' rel='bookmark' title='Permanent Link: The jQuery plugin Ono List Pager reached version 1.0!'>The jQuery plugin Ono List Pager reached version 1.0!</a></li>
<li><a href='http://www.thebrightlines.com/2010/01/15/jquery-1-4-performance-charts/' rel='bookmark' title='Permanent Link: jQuery 1.4 performance charts'>jQuery 1.4 performance charts</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.thebrightlines.com/2010/10/07/the-jquery-quiz/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

