<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DEcGQHs4eSp7ImA9WhRbEEQ.&quot;"><id>tag:blogger.com,1999:blog-20880701</id><updated>2012-02-01T12:33:41.531+01:00</updated><category term="templates" /><category term="print" /><category term="css framework" /><category term="framework" /><category term="css" /><category term="emastic beta2" /><category term="hartija" /><category term="free" /><category term="formy" /><title>Carrer Blog</title><subtitle type="html">Blog about web design and development</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.vcarrer.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.vcarrer.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>128</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/CarrerBlog" /><feedburner:info uri="carrerblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by/2.0/" /><feedburner:emailServiceId>CarrerBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;DEcGQHs4fyp7ImA9WhRbEEQ.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-8695780884524848027</id><published>2012-02-01T12:24:00.001+01:00</published><updated>2012-02-01T12:33:41.537+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-01T12:33:41.537+01:00</app:edited><title>Hand Drawn UI Kit</title><content type="html">I'm fan of &lt;a href="http://www.icondeposit.com/"&gt;Matt Gentile&lt;/a&gt;  work with various UI Photoshop Kit specially I liked the &lt;a href="http://dribbble.com/shots/349637-Modern-UI-Kit"&gt;Modern UI Kit&lt;/a&gt;  and with Matt permission I decided to &lt;a href="http://dribbble.com/shots/407903-Hand-Drawn-Ui-Kit"&gt;Rebound on Dribbble&lt;/a&gt;. I took all the elements from the Modern UI Kit and I made Hand Drawn UI Kit for Photoshop. Every element is hand drawn raster layer in Photoshop. I used Bamboo wacom tablets for designing the elements.&lt;br /&gt;
&lt;br /&gt;
Here is the Kit:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.handdrawnicons.com/#Hand-Drawn-UI-Kit"&gt;&lt;img border="0" height="300" width="400" src="http://1.bp.blogspot.com/-y286QK7cKDA/TykgTwNuqoI/AAAAAAAAAak/haJsOa9zRFA/s400/Hand-Drawn-UI-Kit.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.handdrawnicons.com/#Hand-Drawn-UI-Kit"&gt;You can download Hand Drawn UI Kit .PSD file here ..&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I hope you will find this Kit useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-8695780884524848027?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/8695780884524848027/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=8695780884524848027" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/8695780884524848027?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/8695780884524848027?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/Jsy-bYTAjng/hand-drawn-ui-kit.html" title="Hand Drawn UI Kit" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-y286QK7cKDA/TykgTwNuqoI/AAAAAAAAAak/haJsOa9zRFA/s72-c/Hand-Drawn-UI-Kit.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.vcarrer.com/2012/02/hand-drawn-ui-kit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUMRXo8eSp7ImA9WhRUFE0.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-3169062921901078746</id><published>2012-01-24T13:13:00.001+01:00</published><updated>2012-01-24T13:14:44.471+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-24T13:14:44.471+01:00</app:edited><title>Some useful scripts for Photoshop Layer Manipulation</title><content type="html">Last mounth I published &lt;b&gt;&lt;a href="http://www.handdrawnicons.com/"&gt;Hand Drawn Icons&lt;/a&gt;&lt;/b&gt;  it is set of 282 icons made in Photoshop. If you ever worked with large set of layers in Photoshop you will know how difficult is to mange and organize all this layers. I what to share some of scripts that help me perform different tasks in Photoshop. Many designers ignore the possibility of scripting  inside Photoshop with languages like JavaScript, but in many cases using scripts in Photoshop can be time and "energy" saving.&lt;br /&gt;
&lt;br /&gt;
The script that in my case was most useful was Export Layers to Files.jsx (that is included into Photoshop) this script saves all separated layers into files. In my case it took Photoshop about 8 hours to complete the task and save all the 280 icons. It is a slow process but you don't have to manually save all 280 files.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="https://gist.github.com/1628937"&gt;Number of Layers&lt;/a&gt;&lt;/b&gt;. Other useful script was layers count or how many layers (in my case icons) you have. Only condition for this script is you need to ungroup all the groups(folders) in Photoshop.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1628937.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="https://gist.github.com/1628924"&gt;Save all layer names into one long list&lt;/a&gt;&lt;/b&gt;. Why is that necessary? Because in that why I can easily find out missed-spelled layer names by simple copy-paste the list into some text editor like TextEdit (Mac) or Word (Win) that will automatically selects all missed-spelled words.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1628924.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="https://gist.github.com/1628853"&gt;Search duplicate names&lt;/a&gt;&lt;/b&gt;. When you are making similar icons or other stuff it comes natural to give same name to icons that perform the same function. But layers with the same name are not welcomed in the final version so "&lt;a href="http://www.youtube.com/watch?v=4AoOa-Fz2kw"&gt;there can be only one&lt;/a&gt;" file with the same name.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1628853.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="https://gist.github.com/1628874"&gt;Order Layers Alphabetically A - Z&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1628874.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Note: All the Layers need to be ungrouped before you excite some of the scripts.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
How to install this scripts&lt;br /&gt;
&lt;br /&gt;
Download and copy the scripts inside Photoshop &gt; Presets &gt; Scripts [Folder]&lt;br /&gt;
&lt;br /&gt;
Then you need to go to open Photoshop and than File &gt; Scripts &gt; Browse find the script (where you previously copied it) and click Open.&lt;br /&gt;
&lt;br /&gt;
You may also find my previous Photoshop scripts useful:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.vcarrer.com/2011/11/make-photoshop-guides-grid-with.html"&gt;- Make Photoshop Guides Grid with JavaScript &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.vcarrer.com/2011/10/draw-shapes-in-photoshop-with.html"&gt;- Draw Shapes in Photoshop with JavaScript&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-3169062921901078746?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/3169062921901078746/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=3169062921901078746" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/3169062921901078746?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/3169062921901078746?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/em0hrIJqEN0/some-useful-scripts-for-photoshop-layer.html" title="Some useful scripts for Photoshop Layer Manipulation" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.vcarrer.com/2012/01/some-useful-scripts-for-photoshop-layer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkABRng_fSp7ImA9WhRWEkw.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-2302075306816839178</id><published>2011-12-30T04:09:00.002+01:00</published><updated>2011-12-30T04:12:37.645+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-30T04:12:37.645+01:00</app:edited><title>2011 summary report</title><content type="html">If I need to define my professional 2011 in two words I would say: &lt;b&gt;JavaScript and Design&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
I did some deep dive into JavaScript this year. JavaScript is everywhere. It is cross-platform and cross-program language you can use JavaScript for making scripts inside Windows or using it inside Photoshop or to make server side code with Node.js.&lt;br /&gt;
But my main effort was to make JavaScript Framework for building mobile web apps that I hadn't time to publish it this year. Hopefully at the beginning of 2012.&lt;br /&gt;
&lt;br /&gt;
Here are some &lt;b&gt;JavaScript&lt;/b&gt; articles and projects from this year:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.vcarrer.com/2011/02/about-repaint-and-reflow-in-javascript.html"&gt;About Repaint and Reflow in JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vcarrer.com/2011/04/svetlo-one-line-javascript-selector.html"&gt;Svetlo - One Line JavaScript Selector Engine &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/vladocar/picoCSS"&gt;picoCSS - really small JavaScript Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vcarrer.com/2011/06/multiple-object-extend-pattern-in.html"&gt;Multiple object extend pattern in JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vcarrer.com/2011/05/event-delegation-javascript.html"&gt;Event Delegation - JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/vladocar/AutoObjectDocumentation"&gt; Object Auto Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/vladocar/o---JS-Library-for-Object-Manipulation"&gt;o - JS Library for Object Manipulation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vcarrer.com/2011/11/make-photoshop-guides-grid-with.html"&gt;Make Photoshop Guides Grid with JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;b&gt;Design&lt;/b&gt; - Like a programmer I always was afraid to "touch" anything related to design. I even convinced myself that I'm not good for that. Today I believe there is not such thing as "you are no good for that", you need to believe in yourself and practice. Photoshop become my best friend I build &lt;a href="http://www.photoshopwireframingkit.com/"&gt;Photoshop Wireframing Kit&lt;/a&gt; , &lt;a href="http://www.handdrawnicons.com/"&gt;Hand Drawn Icons&lt;/a&gt; and I'm currently working on my second pictograms icon set and I'm making some Posters. I spoke about &lt;a href="http://www.ebooklabitalia.com/programma/4-marzo-2011/casali-carrer"&gt;Layout, Typography, Gestalt and the future of ebooks&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;CSS&lt;/b&gt; - To my collection of CSS Frameworks I added &lt;a href="https://github.com/vladocar/Foxy-CSS-Framework"&gt;Foxy - CSS Framework&lt;/a&gt;  and &lt;a href="http://code.google.com/p/child-selector-css-system/"&gt;Child Selector System - CSS Framework &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
HTML - &lt;a href="https://github.com/vladocar/HTML-Lorem-Ipsum-Crash-Test"&gt;HTML Lorem Ipsum Crash Test&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I wanted to do this year, &lt;b&gt;but I didn't&lt;/b&gt;. I made four new  CSS Framework but I didn't have time to prepare the documentation. I wanted to update &lt;a href="http://code.google.com/p/the-golden-grid/"&gt;The Golden Grid&lt;/a&gt;, &lt;a href="http://code.google.com/p/malo/"&gt;Malo&lt;/a&gt; and &lt;a href="http://code.google.com/p/hartija/"&gt;Hartija&lt;/a&gt;. Two new mobile JavaScript Frameworks. My research on Uni Computer Grid System. About 10 apps for iPhone and iPad and list goes on … The good thing is the code is 85% ready in most cases. So I hope to  finish some projects in early 2012.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Plans for 2012&lt;/b&gt;. Beside finishing all project from 2011 I wanted to try to make one mobile app (iPhone,Android) per month. 12 mounts 12 apps. That is my big challenge for 2012. But for now I will enjoy my Holidays :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Happy Holidays Everyone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-2302075306816839178?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/2302075306816839178/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=2302075306816839178" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/2302075306816839178?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/2302075306816839178?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/PMhSmD7463k/2011-summary-report.html" title="2011 summary report" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/12/2011-summary-report.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QCRnYzfCp7ImA9WhRQFkg.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-422256305023337151</id><published>2011-12-12T02:51:00.007+01:00</published><updated>2011-12-12T03:02:47.884+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-12T03:02:47.884+01:00</app:edited><title>Hand Drawn Icons</title><content type="html">After few mounts of hard work I'm happy to present my latest project Hand Drawn Icons.&lt;br /&gt;
The icon set contains &lt;b&gt;282 designed icons in 32 x 32 px .png and photoshop .psd&lt;/b&gt; (layers) format. All icons are designed in Photoshop with help of &lt;a href="http://www.wacom.com/en/Products/Bamboo/BambooTablets.aspx"&gt;Bamboo Drawing Tablet&lt;/a&gt;  and the raster format is used for preserving the icons authenticity.&lt;br /&gt;
&lt;br /&gt;
Here is how the icons look like:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://www.handdrawnicons.com/" imageanchor="1" style=""&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-sr45bVlYrfk/TuVdizqHt5I/AAAAAAAAAaQ/Kx9GkLsEsuE/s1600/hand-drawn-icons.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Currently for the launch until the end of this year this set is available for half price at $ 9.5&lt;br /&gt;
&lt;br /&gt;
I hope you like this icon set&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.handdrawnicons.com/"&gt;www.handdrawnicons.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Also some hand designed &lt;a href="http://www.handdrawnicons.com/#Christmas"&gt;Christmas Icons&lt;/a&gt; are available for free.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-422256305023337151?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/422256305023337151/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=422256305023337151" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/422256305023337151?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/422256305023337151?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/Urt9rpxQwvw/hand-drawn-icons.html" title="Hand Drawn Icons" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-sr45bVlYrfk/TuVdizqHt5I/AAAAAAAAAaQ/Kx9GkLsEsuE/s72-c/hand-drawn-icons.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/12/hand-drawn-icons.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8BRHkzfSp7ImA9WhRTEkQ.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-8377847682204245453</id><published>2011-11-03T05:28:00.001+01:00</published><updated>2011-11-03T05:34:15.785+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-03T05:34:15.785+01:00</app:edited><title>Make Photoshop Guides Grid with JavaScript</title><content type="html">Last week I published "&lt;a href="http://www.vcarrer.com/2011/10/draw-shapes-in-photoshop-with.html"&gt;Draw Shapes in Photoshop with JavaScript&lt;/a&gt;" and I had lot of fun scripting in Photoshop. If you ever made Grid of Guides in Photoshop you know how painful and time costuming it is. I made two scripts that can help you speed up the process of making Guides Grid in Photoshop.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-cNTeGVxgjxU/TrIZnIZxPAI/AAAAAAAAAaA/SrIVgytD-5g/s1600/guides.png" imageanchor="1" style=""&gt;&lt;img border="0" height="257" width="400" src="http://2.bp.blogspot.com/-cNTeGVxgjxU/TrIZnIZxPAI/AAAAAAAAAaA/SrIVgytD-5g/s400/guides.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
The first script makes Unit Grid with vertical and horizontal units, you can also set the gutter. Example if you want to set 80px grid system with 20px gutter size. You can do MakeGuidesGrid(80,20,80,20); this will set the vertical and horizontal gutters, naturally you can set just vertical guides MakeGuidesGrid(80,20,0,0);&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1335727.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;a href="https://gist.github.com/1335727"&gt;The Script on GitHub&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://gist.github.com/gists/1335727/download"&gt;Direct Download of this script&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The second script doesn't use units but number of guides. So you can set number of vertical and horizontal guides and the gutter. Lets say you need 12 vertical guides and 10 horizontal guides with gutter of 15px. The function is MakeGuidesGrid(12,15,10,15);&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1335730.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;a href="https://gist.github.com/1335730"&gt;The Script on GitHub&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://gist.github.com/gists/1335730/download"&gt;Direct Download of this script&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;How to use this script.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Download and copy the scripts GuidesUnitGrid.js and NumberGuidesGrid.js  inside Photoshop &gt; Presets &gt; Scripts  [Folder]&lt;br /&gt;
&lt;br /&gt;
Then  you need to go to open Photoshop and than File &gt; Scripts &gt; Browse find the script (where you previously copied it) and click Open.&lt;br /&gt;
&lt;br /&gt;
Dialog box will popup asking the info about the unit size or number of guides  or gutter size you need to put just the your numbers inside. And that is it.&lt;br /&gt;
&lt;br /&gt;
Works only in Photoshop CS5 and later. Make sure that the guides are checked View &gt; Show &gt; Guides. To delete the Guides you do View &gt; Clear Guides .&lt;br /&gt;
&lt;br /&gt;
If you have any questions let me know in the comments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-8377847682204245453?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/8377847682204245453/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=8377847682204245453" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/8377847682204245453?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/8377847682204245453?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/bFl-b7XSaEc/make-photoshop-guides-grid-with.html" title="Make Photoshop Guides Grid with JavaScript" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-cNTeGVxgjxU/TrIZnIZxPAI/AAAAAAAAAaA/SrIVgytD-5g/s72-c/guides.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/11/make-photoshop-guides-grid-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ENRXc5fCp7ImA9WhdaFEw.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-4201022866342654000</id><published>2011-10-24T01:14:00.000+02:00</published><updated>2011-10-24T01:14:54.924+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-24T01:14:54.924+02:00</app:edited><title>Draw Shapes in Photoshop with JavaScript</title><content type="html">I was working on the &lt;a href="http://www.photoshopwireframingkit.com/"&gt;Photoshop Wireframing Kit&lt;/a&gt; update and I wanted to optimize  the drawing of some photoshop vector shapes. Few designers know that JavaScript, VBS and AppleScript can be used to optimize the Photoshop workflow. The cool thing about JavaScript in Photoshop is that will run on both PC and MAC.&lt;br /&gt;
&lt;br /&gt;
I was googling and searching for solution for my scripting problem when I stumbled upon this forum post (look for Mike Hale answer) &lt;a href="http://www.ps-scripts.com/bb/viewtopic.php?f=14&amp;t=1802&amp;start=15"&gt;http://www.ps-scripts.com/bb/viewtopic.php?f=14&amp;t=1802&amp;start=15&lt;/a&gt; . I did some small changes in the  code - making it function that will accept multiple parameters (coordinates). All the credits for this code goes to Mike Hale he is the author of the code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What this script does?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Basically what this script does is draws pixel  precise shapes in Photoshop with the help of JavaScript.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
You need to put Photoshop coordinates in &lt;b&gt;clockwise&lt;/b&gt;  order and Photoshop will draw the shape.&lt;br /&gt;
&lt;br /&gt;
Example of Square:&lt;br /&gt;
&lt;br /&gt;
// [X,Y], [X,Y] coordinates in clockwise  order&lt;br /&gt;
&lt;br /&gt;
DrawShape([100, 100], [100, 200], [200, 200], [200, 100]); // Square&lt;br /&gt;
&lt;br /&gt;
DrawShape([512, 128], [600, 256], [684, 320], [600, 386], [686, 514], [512, 450],[340,512],[428,386],[340,320],[428,256]); // Star&lt;br /&gt;
&lt;br /&gt;
Result in Photoshop:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-UXEzm2TfCcU/TqSfn9wb_5I/AAAAAAAAAZs/aF_K4edbQzQ/s1600/DrawShape.png" imageanchor="1" style=""&gt;&lt;img border="0" height="225" width="400" src="http://1.bp.blogspot.com/-UXEzm2TfCcU/TqSfn9wb_5I/AAAAAAAAAZs/aF_K4edbQzQ/s400/DrawShape.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
You can also set the background color inside the script.&lt;br /&gt;
&lt;br /&gt;
The script:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1307987.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://gist.github.com/1307987"&gt;Gist on GitHub&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://gist.github.com/gists/1307987/download"&gt;Direct Download &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For installing this script you need to download DrawShape.js script copy the script inside Photoshop &gt; Presets &gt; Scripts - Folder&lt;br /&gt;
&lt;br /&gt;
For running this script you need to go to open Photoshop and than  File &gt; Scripts &gt; Browse find the script (where you previously copied it) and click Open.&lt;br /&gt;
&lt;br /&gt;
Change the coordinates inside DrawShape(); to personalize the script.&lt;br /&gt;
&lt;br /&gt;
I only did some tests in Photoshop CS5 but should probably run in some previous versions. &lt;br /&gt;
&lt;br /&gt;
Any comments?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-4201022866342654000?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/4201022866342654000/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=4201022866342654000" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/4201022866342654000?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/4201022866342654000?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/lEUDnYa3stY/draw-shapes-in-photoshop-with.html" title="Draw Shapes in Photoshop with JavaScript" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-UXEzm2TfCcU/TqSfn9wb_5I/AAAAAAAAAZs/aF_K4edbQzQ/s72-c/DrawShape.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/10/draw-shapes-in-photoshop-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYER3w8eCp7ImA9WhdbEkw.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-7489419356658496625</id><published>2011-10-10T04:33:00.002+02:00</published><updated>2011-10-10T04:35:06.270+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-10T04:35:06.270+02:00</app:edited><title>Initiative - provide JSON and JSONP RSS Feeds</title><content type="html">JSON has won against XML. &lt;a href="http://www.json.org/xml.html"&gt;Because is lighter and simpler&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
Many web services are giving priority to JSON over  XML. But the all the blogs are still stuck with XML RSS.&lt;br /&gt;
&lt;br /&gt;
So why give JSON and JSONP RSS support?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- JSON is  Fat-Free Alternative to XML (save some bandwidth).&lt;br /&gt;
- JSON has been chosen like primary format in almost all major  public web services.&lt;br /&gt;
- &lt;a href="http://www.vcarrer.com/2010/11/about-jsonp-in-javascript.html"&gt;JSONP&lt;/a&gt; is easiest and fastest way to directly connect the browser with the web service.&lt;br /&gt;
- Growing need of building native web apps who can connect directly with the data source.&lt;br /&gt;
.. and probably many other reasons.&lt;br /&gt;
&lt;br /&gt;
This initiative comes from my personal frustration … every time I want to build some web app who needs to talk with RSS and JavaScript I need to use some public proxy like YQL or some other server side XML to JSON solution. JavaScript and the browsers had grown much in the last couple of years, we could  start using the browser JavaScript engine speed for some heavy lifting. Implementing JSON and JSONP like an alternative to XML(RSS) is very easy process.&lt;br /&gt;
&lt;br /&gt;
I think if some of the major blog players like Blogger, Tumblr, WordPress, Posterous provide JSON RSS support everyone else will follow. &lt;br /&gt;
&lt;br /&gt;
That doesn't mean that we should kill XML RSS it means just providing alternative JSON support.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you agree with me help me spread the word. Thanks!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-7489419356658496625?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/7489419356658496625/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=7489419356658496625" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/7489419356658496625?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/7489419356658496625?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/8C0lnAWYpFE/initiative-provide-json-and-jsonp-rss.html" title="Initiative - provide JSON and JSONP RSS Feeds" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>5</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/10/initiative-provide-json-and-jsonp-rss.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMCQHY5fyp7ImA9WhdVGUQ.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-4956644586045433909</id><published>2011-09-26T02:32:00.003+02:00</published><updated>2011-09-26T02:37:41.827+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-26T02:37:41.827+02:00</app:edited><title>Photoshop Wireframing Kit</title><content type="html">Photoshop Wireframing Kit is a  vector tool for wireframing and prototyping in photoshop. It is using the Photoshop Custom shapes to produce vector shapes for web site wireframing.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Why I build this tool&lt;/b&gt;? &lt;br /&gt;
&lt;br /&gt;
Many web designers use Photoshop like their primary tool for designing  web sites. So why not use the same tool(Photoshop) for wireframing?&lt;br /&gt;
&lt;br /&gt;
I think that this tool can be very handy for many web designers that are using Photoshop like preferred graphical program. They can avoid using third party tools for wireframing and do everything in photoshop.&lt;br /&gt;
&lt;br /&gt;
This tool can easily extendible with the native photoshop features. For now there are around 100 shapes, but I'm planing to extend the Kit in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
The road to from the the idea to launch&lt;/b&gt;. &lt;br /&gt;
&lt;br /&gt;
In the past I made several free tools for wireframing and prototyping like: &lt;a href="http://www.vcarrer.com/2009/02/sketchbook-for-web-designers.html"&gt;Sketchbook for web designers&lt;/a&gt;, &lt;a href="http://www.vcarrer.com/2010/09/fireworks-mini-web-wireframing-kit.html"&gt;Fireworks Mini Web Wireframing Kit&lt;/a&gt;, &lt;a href="http://www.vcarrer.com/2010/09/iphone-wireframe-kit-google-docs.html"&gt;iPhone Wireframe Kit - Google Docs&lt;/a&gt;, &lt;a href="http://www.vcarrer.com/2010/06/iphone-grid-system.html"&gt;iPhone Grid System&lt;/a&gt; but I still  wasn't happy and I needed complete wireframing tool, that can be easily to learn and preferably be a part of Photoshop (my preferred  graphical tool). &lt;br /&gt;
&lt;br /&gt;
The problem with Photoshop that is not meant to  be vector tool, the main purpose of photoshop is photo editing not vector manipulation. &lt;br /&gt;
There are probably better programs that can be used  for Wireframing, like Illustrator and  Fireworks but I'm used to do everything in Photoshop so I decided to decided to extend photoshop using its Custom Shapes.&lt;br /&gt;
&lt;br /&gt;
Here are  some initial shapes on paper:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jj-65Wgw_nA/Tn_DqpVEoVI/AAAAAAAAAY8/tX3P1r7Ff3o/s1600/6182677487_6eb3071949.jpg" imageanchor="1" style=""&gt;&lt;img border="0" height="300" width="400" src="http://4.bp.blogspot.com/-jj-65Wgw_nA/Tn_DqpVEoVI/AAAAAAAAAY8/tX3P1r7Ff3o/s400/6182677487_6eb3071949.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-RNBSwSFTLlA/Tn_Dq-RERtI/AAAAAAAAAZE/Uny2347fNyE/s1600/6183322400_3abf270718.jpg" imageanchor="1" style=""&gt;&lt;img border="0" height="300" width="400" src="http://1.bp.blogspot.com/-RNBSwSFTLlA/Tn_Dq-RERtI/AAAAAAAAAZE/Uny2347fNyE/s400/6183322400_3abf270718.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Then some photoshop custom shape icons:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-3mNmeog_60I/Tn_FBLTyiQI/AAAAAAAAAZU/E4A2N-vP6Ws/s1600/Photoshop-Wireframing-Kit-Icons.jpg" imageanchor="1" style=""&gt;&lt;img border="0" height="134" width="400" src="http://4.bp.blogspot.com/-3mNmeog_60I/Tn_FBLTyiQI/AAAAAAAAAZU/E4A2N-vP6Ws/s400/Photoshop-Wireframing-Kit-Icons.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-rXipTXFR-RY/Tn_FA0DCh1I/AAAAAAAAAZM/nPgvFPSuK2g/s1600/Photoshop-Wireframing-Kit-Icons1.jpg" imageanchor="1" style=""&gt;&lt;img border="0" height="67" width="400" src="http://3.bp.blogspot.com/-rXipTXFR-RY/Tn_FA0DCh1I/AAAAAAAAAZM/nPgvFPSuK2g/s400/Photoshop-Wireframing-Kit-Icons1.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
And some examples:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Nho6EB-vnt8/Tn_F5VglwKI/AAAAAAAAAZc/oGL-yO0UooQ/s1600/GridSite-Wireframe.jpg" imageanchor="1" style=""&gt;&lt;img border="0" height="400" width="400" src="http://4.bp.blogspot.com/-Nho6EB-vnt8/Tn_F5VglwKI/AAAAAAAAAZc/oGL-yO0UooQ/s400/GridSite-Wireframe.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-hRvOn-ZI1mc/Tn_F5jabA-I/AAAAAAAAAZk/eG6j7wGkobg/s1600/iPad-Wireframe.jpg" imageanchor="1" style=""&gt;&lt;img border="0" height="300" width="400" src="http://3.bp.blogspot.com/-hRvOn-ZI1mc/Tn_F5jabA-I/AAAAAAAAAZk/eG6j7wGkobg/s400/iPad-Wireframe.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Some slides about the concept:&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="width:425px" id="__ss_9417560"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/vladocar/photoshop-wireframing-kit" title="Photoshop Wireframing Kit" target="_blank"&gt;Photoshop Wireframing Kit&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9417560" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/vladocar" target="_blank"&gt;vladocar&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
The surprise for me was  it seems so simple thing to build when I started, but there are so many details to be done before the finish. I was super enthusiastic in the beginning, realistic in the middle and I hatted the project when 90% was done. When I finally published the project I felt  relieved. I hope that someone will find this project useful and that will help you to do better wireframes and web site prototypes.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;I'm happy to present&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;&lt;a href="http://www.photoshopwireframingkit.com/"&gt;www.photoshopwireframingkit.com/&lt;/a&gt;&lt;/h4&gt;&lt;br /&gt;
Let me know what do you think about this project? I will appreciate your feedback. Thanks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-4956644586045433909?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/4956644586045433909/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=4956644586045433909" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/4956644586045433909?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/4956644586045433909?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/AN2IR3xHin4/photoshop-wireframing-kit.html" title="Photoshop Wireframing Kit" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-jj-65Wgw_nA/Tn_DqpVEoVI/AAAAAAAAAY8/tX3P1r7Ff3o/s72-c/6182677487_6eb3071949.jpg" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/09/photoshop-wireframing-kit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUMSXYyeSp7ImA9WhdVEE4.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-4182165045479831010</id><published>2011-09-14T02:53:00.006+02:00</published><updated>2011-09-14T23:04:48.891+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-14T23:04:48.891+02:00</app:edited><title>Using JavaScript  Objects for storing data</title><content type="html">Few weeks ago I made "&lt;a href="https://github.com/vladocar/o---JS-Library-for-Object-Manipulation"&gt;o - JS Library for Object Manipulation&lt;/a&gt;" and the next step was to build simple To Do app. The purpose this app was storing data into JavaScript object.&lt;br /&gt;
&lt;br /&gt;
Why storing data into JS Objects?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Here are few motives:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
- JavaScript objects have JSON like (key,value) structure that is perfect for storing data. You can store numbers, strings, arrays, other objects inside the Object value.&lt;br /&gt;
&lt;br /&gt;
- Parsing the JavaScript Object is very fast in the new browsers.&lt;br /&gt;
&lt;br /&gt;
- With JavaScript you can easily add, remove, extend and do other useful operation to the Object.&lt;br /&gt;
&lt;br /&gt;
- The Object can be easily converted to JSON and vice versa.&lt;br /&gt;
&lt;br /&gt;
- Via AJAX(AJAJ)  you can send and receive JSON calls from the server.&lt;br /&gt;
&lt;br /&gt;
- Native node.js support.&lt;br /&gt;
&lt;br /&gt;
- Easy NoSql integration.&lt;br /&gt;
&lt;br /&gt;
- Easy integration with the browser localStorage.&lt;br /&gt;
&lt;br /&gt;
- We can change the browser application building logic by showing first the results to the user and then sending the data to the server(database). That will improve the User Experience and save some traffic because we will be sending/receiving just the JSON data of the actual change. Naturally this will bring new concerns like security, data synchronization and potential data loss.&lt;br /&gt;
&lt;br /&gt;
I think we are not fully using the  new browsers JavaScript engines. We can explore new ways and do the heavy lifting in the browser using the server just like permanent data storage.&lt;br /&gt;
&lt;br /&gt;
Here is my simple To Do App that is using "&lt;a href="https://github.com/vladocar/o---JS-Library-for-Object-Manipulation"&gt;o -library&lt;/a&gt;" for the object manipulation and jQuery for the DOM.The data are written only in the JS Object (for now). I used guid/uuid to generate  random JavaScript object keys. I wrote a render function that will "render" all the values in the object. It is no so smart to render all the object values for any change made in the object but I'm doing it for purpose of this demo. &lt;br /&gt;
&lt;br /&gt;
This technique is &lt;b&gt;not new&lt;/b&gt;, with this post I don't want to reinventing the wheel just to simply point out the advantages of using Objects like data containers. I think many web application can use this approach that can save some serious web traffic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both;"&gt;&lt;a href="http://dl.dropbox.com/u/2111778/todo/todo.html" imageanchor="1" style=""&gt;&lt;img border="0" height="307" width="400" src="http://4.bp.blogspot.com/-4AzOFpARhPI/Tm_6MJvqhMI/AAAAAAAAAY0/RcfMxEbsA3o/s400/todo.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;&lt;a href="http://dl.dropbox.com/u/2111778/todo/todo.html"&gt;To Do Link&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The object will have this kind of structure:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
var Obj = {&lt;br /&gt;
89fa0b75-ccc3-7491-df08-906088052575: "Buy milk",&lt;br /&gt;
3989d3db-40a5-5c58-4147-42a3cead4c94: "Make 30 Push Ups",&lt;br /&gt;
bc0e002e-09a7-d36b-ec6a-24462ea9486a: "Buy ice cream"&lt;br /&gt;
}&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
What do you think? I love to here your opinion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-4182165045479831010?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/4182165045479831010/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=4182165045479831010" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/4182165045479831010?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/4182165045479831010?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/0qKWokeGyHo/using-javascript-objects-for-storing.html" title="Using JavaScript  Objects for storing data" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-4AzOFpARhPI/Tm_6MJvqhMI/AAAAAAAAAY0/RcfMxEbsA3o/s72-c/todo.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/09/using-javascript-objects-for-storing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAHQno7eyp7ImA9WhdXEEs.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-2296183382062169433</id><published>2011-08-23T03:25:00.000+02:00</published><updated>2011-08-23T03:25:33.403+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-23T03:25:33.403+02:00</app:edited><title>o - JS Library for Object Manipulation</title><content type="html">o - is simple lightweight JavaScript library for basic object manipulation. Compressed and gzipped weights around 0,5 kb. It should work on IE 5.5 and latter. Also there is lite version that doesn't make hasOwnProperty check that will run faster and with less code.&lt;br /&gt;
&lt;br /&gt;
Lately I was having fun making some JavaScript projects like Object Auto Documentation https://github.com/vladocar/AutoObjectDocumentation  and Multiple object extend pattern in JavaScript http://www.vcarrer.com/2011/06/multiple-object-extend-pattern-in.html that are both object related.&lt;br /&gt;
&lt;br /&gt;
When  I was working on Object Auto Documentation I realized that can be handy if I had small library for dealing exclusively with JS objects.&lt;br /&gt;
&lt;br /&gt;
That is how the idea for this library was born. Basically this library is nothing new or glamorous is just the tool I needed. The library contains methods like adding, removing values in the object, extracting object keys and values, object extending and cloning, transforming the object to JSON and JSON to object and many more..&lt;br /&gt;
&lt;br /&gt;
The goal of this JavaScript is to make fast object interrogation without many error and property checking. From the primary tests I made this library should work even in IE 5.5. If you are using toJSON and toObject methods you should also include Douglas Crockford  JSON.js file.&lt;br /&gt;
&lt;br /&gt;
I also included the lite version that is basically the same code only without hasOwnProperty verification for speed gain.&lt;br /&gt;
&lt;br /&gt;
One thing that surprised me is the native Object.keys method for extracting values is slower than for in loop method. Here are some speed tests that I find on jsperf.com  &lt;a href="http://jsperf.com/object-keys-iteration/3"&gt;http://jsperf.com/object-keys-iteration/3&lt;/a&gt; and &lt;a href="http://jsperf.com/object-keys-vs-for-in-for-values/2"&gt;http://jsperf.com/object-keys-vs-for-in-for-values/2&lt;/a&gt; .&lt;br /&gt;
&lt;br /&gt;
I decided to implement the native Object.keys method for modern browsers and for in loop method for older browsers, in many browsers the native method is slower then for in method but probably the Object.keys will get some speed optimization in the future browsers. If you are using o-lite.js you will experience the pure velocity of .keys and .values method.&lt;br /&gt;
&lt;br /&gt;
This library is inspired by underscore.js with the main focus on JavaScript Objects. The speed in this library is achieved by simply not doing any kind of error check. That means that you should do all the error checks outside of the library or modify the library (it is very easy because there are few lines of code) or be aware what this library does and how it’s made.&lt;br /&gt;
&lt;br /&gt;
Here are the list of all the &lt;a href="http://vladocar.github.com/o---JS-Library-for-Object-Manipulation/"&gt;methods with examples&lt;/a&gt;.&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-o-prettify.html"&gt;&lt;br /&gt;
The structure of the library (Auto Documentation)&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="https://github.com/vladocar/o---JS-Library-for-Object-Manipulation"&gt;Download the library on GitHub&lt;/a&gt; &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Fell free to suggest code and speed improvements and also to suggest new methods for exploring the JavaScript Object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-2296183382062169433?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/2296183382062169433/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=2296183382062169433" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/2296183382062169433?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/2296183382062169433?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/CNLmsHOv-Z0/o-js-library-for-object-manipulation.html" title="o - JS Library for Object Manipulation" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/08/o-js-library-for-object-manipulation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YNRHk7fyp7ImA9WhdTFEk.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-8309195847400647994</id><published>2011-07-12T05:25:00.001+02:00</published><updated>2011-07-12T05:26:35.707+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-12T05:26:35.707+02:00</app:edited><title>Few words about CSS LINT</title><content type="html">&lt;a href="http://csslint.net/"&gt;CSS Lint&lt;/a&gt; is product of &lt;a href="http://www.stubbornella.org"&gt;Nicole Sullivan&lt;/a&gt;  and &lt;a href="http://www.nczonline.net/"&gt;Nicholas  Zakas&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
CSS Lint hurt the  &lt;a href="http://news.ycombinator.com/item?id=2750100"&gt;feelings&lt;/a&gt; of &lt;a href="http://www.reddit.com/r/web_design/comments/i18wp/css_lint/"&gt;many web designers&lt;/a&gt; in this couple of weeks. Many designers are confused what is CSS Lint. &lt;br /&gt;
&lt;br /&gt;
I want try to explain some  of the concepts behind CSS Lint.&lt;br /&gt;
&lt;br /&gt;
CSS Lint is philosophy or method how you should create CSS. It is NOT just a tool that validate CSS.&lt;br /&gt;
&lt;br /&gt;
Is CSS Lint right or wrong?&lt;br /&gt;
&lt;br /&gt;
Or better question: Can sometimes CSSLint be better solution to my problem?&lt;br /&gt;
&lt;br /&gt;
Answer: Yes, &lt;b&gt;sometimes&lt;/b&gt; CSSLint philosophy can be better solution to your problem.&lt;br /&gt;
&lt;br /&gt;
I want to elaborate about some of CSS Lint solution starting from my personal experience. I'm author of many CSS Frameworks mainly because of my obsession always to experiment with different things. One of the biggest challenges when you write CSS is the layout. CSS in the beginning was not projected  for building layouts. The same goes for HTML.&lt;br /&gt;
So every layout on the web is some sort of hack. &lt;br /&gt;
&lt;br /&gt;
In the beginning  we use HTML Tables like hack, then we decided to separate the layout from presentation by using CSS. Basically with CSS2 we are doing floats or positioning. In most of the cases we use floats. Floats with combination of elements, ID's and Classes are the basic construct  of many web sites. We can use various construct combination for achieving the same goal.&lt;br /&gt;
&lt;br /&gt;
Back in 2008 I wanted to build CSS framework that will be lightweight, flexible and resizable. And that was the challenge to resolve some CSS architectural problems.&lt;br /&gt;
Many CSS frameworks then had div.grid1 names in my opinion it was more logical to use just .grid1  to style not just the div but any element. That is one of the things that CSS Lint is telling you use .class that is not bound with any specific element.&lt;br /&gt;
&lt;br /&gt;
Other thing that CSSLint is telling you is: &lt;b&gt;Don't use ID's like selectors&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
I think that was the &lt;b&gt;main reason&lt;/b&gt;  why people didn't like CSS Lint. 99% of all CSS sites are using ID's so suddenly everybody is wrong. &lt;a href="http://www.youtube.com/watch?v=zyltK6pmJGg"&gt;And this is how the people react when they are told that are wrong&lt;/a&gt;?&lt;br /&gt;
&lt;br /&gt;
But what &lt;b&gt;really&lt;/b&gt; CSSLint is trying to say is: "In &lt;b&gt;some cases&lt;/b&gt; it is smarter to use classes".&lt;br /&gt;
&lt;br /&gt;
And what case would that be?&lt;br /&gt;
&lt;br /&gt;
And what case would that be?&lt;br /&gt;
&lt;br /&gt;
If you have things that are repeating over and over and over again, optimize and use class.&lt;br /&gt;
&lt;br /&gt;
IMHO CSSLint  should  seriously consider changing their error log message system: &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Before&lt;/b&gt;: Don't use IDs in selectors.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;After&lt;/b&gt;: In some cases consider to use Classes instead of ID's in selectors. Classes are more flexible.&lt;br /&gt;
&lt;br /&gt;
I will try to write two examples one with ID the other with class.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/ModernCSS/ImageGalleyID.html"&gt;The example with the classical use of ID &lt;/a&gt;(open the source code) &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/ModernCSS/ImageGalleryClass1.html"&gt;The example with use of class&lt;/a&gt; (open the source code) &lt;br /&gt;
&lt;br /&gt;
With the class example we have just one of code and with the ID example much more CSS. This is maybe not a perfect example but I think you get the picture.&lt;br /&gt;
&lt;br /&gt;
Many people point out that ID are faster then Class. &lt;a href="http://scope.bitbucket.org/tests/selector-matching-performance/index.html"&gt;According to this test&lt;/a&gt; class are faster or there is not significant difference with ID's.  So the speed is not an issue.&lt;br /&gt;
&lt;br /&gt;
CSSLint is also telling you: "Too many floats... Consider using a grid system instead."&lt;br /&gt;
&lt;br /&gt;
I will add consider building your grid system. You can build 16 column system with &lt;a href="http://www.vcarrer.com/2009/06/1-line-css-grid-framework.html"&gt;just one line of CSS&lt;/a&gt;  imagine what you can do with &lt;a href="http://www.vcarrer.com/2010/10/two-lines-css-framework.html"&gt;2 lines of CSS&lt;/a&gt;. So if you have 20-30 floats I think you can optimize that by making your personal grid system.&lt;br /&gt;
&lt;br /&gt;
Back to the real life use. When to use or not to use CSSLint philosophy.&lt;br /&gt;
&lt;br /&gt;
It is always good practice to use less floats. Try to find the elements that are constantly repeating  and optimize that. CSS Lint is just trying to force good old DRY(Don't repeat yourself) into CSS.&lt;br /&gt;
&lt;br /&gt;
If you have small site with the same structure like same header, footer, sidebar, navigation. Is perfectly fine and very logical &lt;b&gt;to use just ID's&lt;/b&gt;. You will gain no big improvements with CSS Lint philosophy.&lt;br /&gt;
&lt;br /&gt;
But if you have a site that have to handle multiple layouts and has complex layout consider using Classes and maybe building your own CSS Framework.&lt;br /&gt;
&lt;br /&gt;
Using Classes doesn't necessary means that you have to build CSS Framework It means that you should optimize the repeating  parts.&lt;br /&gt;
&lt;br /&gt;
One of the biggest complains about the public CSS Frameworks is ugly non semantic Class names. Absolutely true. Because the general CSS Framework have to serve the general purpose they have general names. &lt;br /&gt;
But in your site specific project you can use your specific naming system and build your semantic(meaningful) system with Classes.&lt;br /&gt;
&lt;br /&gt;
My advice is try to understand the CSS Lint dogma. Try to group the repeating parts. &lt;br /&gt;
&lt;br /&gt;
Don't forget: "De gustibus non est disputandum". - “There is no arguing about taste.”&lt;br /&gt;
&lt;br /&gt;
There are many philosophies how should develop your site, be aware of various opinions and options  and choose what is best for you and your project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-8309195847400647994?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/8309195847400647994/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=8309195847400647994" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/8309195847400647994?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/8309195847400647994?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/HZqc7PL9g0o/few-words-about-css-lint.html" title="Few words about CSS LINT" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/07/few-words-about-css-lint.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIHQXs5cCp7ImA9WhZaE0w.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-4062707857345958310</id><published>2011-06-29T05:33:00.001+02:00</published><updated>2011-06-29T05:35:30.528+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-29T05:35:30.528+02:00</app:edited><title>Foxy - CSS Framework</title><content type="html">One of the coolest new stuff in CSS3 is the &lt;a href="http://www.w3.org/TR/css3-values/#calc"&gt;calc function&lt;/a&gt;. Calc() is a dream come true for the people  who like to mix various units like(px, em, %) with the goal to have more flexible layout system.&lt;br /&gt;
&lt;br /&gt;
With calc you can have something like width: calc(280px - 2em + 2%*1px ….)&lt;br /&gt;
&lt;br /&gt;
When I first heard about calc() my first thought  was I can finally implement margins on my &lt;a href="http://code.google.com/p/malo/"&gt;CSS Framework Malo&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
If you have  some .class { width:25% } that will make 4 columns grid (25% + 25% +25% + 25%). The problem is that you can't have precision px margins (gutter). So in the past you had nested divs or .something-like-this{width:24%; margin-left:1%}&lt;br /&gt;
&lt;br /&gt;
With &lt;a href="http://hacks.mozilla.org/2010/06/css3-calc/"&gt;calc()&lt;/a&gt; that problem is solved now we can have .class{width:calc(25%-10px); margin-left:10px} . And with that we can have the flexibility of the % and the px precision.&lt;br /&gt;
&lt;br /&gt;
Unfortunately calc is only implemented on Firefox 4 or later. Some documentation indicate that works even on IE9 but my test show differently.&lt;br /&gt;
&lt;br /&gt;
To show the power of CSS3 calc I decided to build one simple CSS Framework. Clearly this framework has no piratical value today because  only work on Firefox 4 or later. I build it to show how cool calc() is and to indicate how calc() can be used in the future.&lt;br /&gt;
&lt;br /&gt;
The logic behind this framework:&lt;br /&gt;
&lt;br /&gt;
It is one to twelve column framework.&lt;br /&gt;
The margin(gutter) is 10px you can change it if you like. &lt;br /&gt;
You can put px, em, % in the default container(like 960px or 73% or 50em)&lt;br /&gt;
&lt;br /&gt;
Let's take one part of the Framework:&lt;br /&gt;
&lt;br /&gt;
.d5{ width:calc(100%/5 - 10px); margin-left:10px}  Meaning we have 100%/5 = 20% column with 10px margin or you can build 5 columns inside 100%.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.dx5{calc(100% - 100%/5 - 10px); margin-left:10px} is the second part of the d5 meaning you have 100% - 20% = 80% with 10px margin.&lt;br /&gt;
&lt;br /&gt;
Very simple rule to remember .d5 + .dx5 = 100% or .d7 + dx7 = 100%&lt;br /&gt;
&lt;br /&gt;
Here is example of some grid combination (Firefox only).&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/Foxy-CSS-Framework/calc.html"&gt;Demo1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/Foxy-CSS-Framework/calc1.html"&gt;Demo2&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/Foxy-CSS-Framework/calc2.html"&gt;And some cats.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="https://github.com/vladocar/Foxy-CSS-Framework"&gt;Download this project on GitHub&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-4062707857345958310?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/4062707857345958310/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=4062707857345958310" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/4062707857345958310?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/4062707857345958310?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/8tbh1LgZYLg/foxy-css-framework.html" title="Foxy - CSS Framework" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>6</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/06/foxy-css-framework.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8BSXczfip7ImA9WhZbFkw.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-6340127056267553968</id><published>2011-06-21T03:11:00.002+02:00</published><updated>2011-06-21T03:14:18.986+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-21T03:14:18.986+02:00</app:edited><title>Multiple object extend pattern in JavaScript</title><content type="html">I've was doing some research about &lt;b&gt;JavaScript Inheritance patterns&lt;/b&gt; realizing there are many different approaches and  &lt;a href="http://functionsource.com/post/a-prototypal-discussion"&gt;divided opinions&lt;/a&gt; which pattern or method is better. There is no widely accepted bulletproof pattern that will cover every possible scenario, probably because It all depends what you trying to achieve.&lt;br /&gt;
&lt;br /&gt;
I needed a pattern that can accept and extend multiple objects. Usually is very common to  see one object that extends another object extend(object1, object2) but I needed pattern that accepts multiple objects like extend(object1, object2, object3). So I decided to make one.&lt;br /&gt;
&lt;br /&gt;
I used Douglas Crockford - &lt;a href="http://javascript.crockford.com/prototypal.html"&gt;Prototypal Inheritance&lt;/a&gt; logic, temporally function -&gt; Object.prototype -&gt; new object plus looping inside every object to copy all the methods.&lt;br /&gt;
&lt;br /&gt;
The first pattern accepts only objects:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1036934.js"&gt; &lt;/script&gt;&lt;br /&gt;
I also made the second pattern in case you want to use function for storing methods.It is highly unlikely that you will use the function just for storing methods, but anyway here is the pattern.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1036935.js"&gt; &lt;/script&gt;&lt;br /&gt;
From the preliminary tests, this pattern should work even in IE 5.5.&lt;br /&gt;
&lt;br /&gt;
Sometimes it can be handy to merge objects or to divide one object in smaller units to increase modularity. Many modern JS Frameworks have one object that holds everything, dividing that object into smaller logical components(objects) can be helpful.&lt;br /&gt;
&lt;br /&gt;
Two months ago I made &lt;a href="https://github.com/vladocar/picoCSS"&gt;picoCSS&lt;/a&gt; small JS framework for making webkit apps. I will rewrite the picoCSS to demonstrate the functionality of this pattern. Many JS framework have modules  like: selector engine, css, animation, other DOM methods, ajax, events …  The intention behind this pattern is to merge just the objects(modules) that we need.&lt;br /&gt;
&lt;br /&gt;
Here is &lt;a href="https://raw.github.com/vladocar/picoCSS/master/src/picoCSS.js"&gt;picoCSS original&lt;/a&gt; and viewed with &lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-picoCSS.html"&gt;Object Auto Documentation&lt;/a&gt;. Everything is stored inside the object p. The goal is to brake picoCSS several objects like selector, events, animation …&lt;br /&gt;
&lt;br /&gt;
And picoCSS after:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1036950.js"&gt; &lt;/script&gt;&lt;br /&gt;
Now we can rebuild picoCSS like this: var p = extend(selector, css, loop, events);&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/ExtendJS/Extend-picoCSS.html"&gt;The working demo&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
In this way we loaded just the objects and methods that we need. This particular case dividing the object has little sense because we have super small library. But in other bigger projects dividing the logic can be very useful not just for increasing modularity but also for decreasing the memory consummation. We can even make different files for every object and load only the files that we use. Naturally we should be careful  not to make to many HTTP requests.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/ExtendJS/TestExtend.html"&gt;Here are some I tests I made&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Your comments and suggestions about improving this pattern are welcomed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-6340127056267553968?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/6340127056267553968/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=6340127056267553968" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/6340127056267553968?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/6340127056267553968?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/wdc9U-whlaw/multiple-object-extend-pattern-in.html" title="Multiple object extend pattern in JavaScript" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/06/multiple-object-extend-pattern-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQNQng-eCp7ImA9WhZUGU4.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-3677642662048254626</id><published>2011-06-13T04:51:00.003+02:00</published><updated>2011-06-13T05:39:53.650+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-13T05:39:53.650+02:00</app:edited><title>Object Auto Documentation - JavaScript</title><content type="html">One particular thing that I like about &lt;a href="http://documentcloud.github.com/backbone/"&gt;backbone.js&lt;/a&gt; is how elegant and well organized  is the documentation. Other project that caught my attention few days ago was &lt;a href="https://github.com/rudenoise/selfDoc.js"&gt;selfDoc.js&lt;/a&gt; I liked the idea of self documentation.&lt;br /&gt;
&lt;br /&gt;
That trigger me to build simple function that will display all methods inside object (backbone style). Important thing was to potentiate code  readability and clearness.&lt;br /&gt;
&lt;br /&gt;
The object methods names are listed in alphabetical order on the left and the methods and the code on the right.&lt;br /&gt;
&lt;br /&gt;
The logic that extracts the methods from the object is based on &lt;a href="http://javascriptweblog.wordpress.com/2011/02/28/javascript-object-keys-finally/"&gt;Object.keys&lt;/a&gt;. The object methods code formatting  are not  changed from the original code.&lt;br /&gt;
&lt;br /&gt;
Basically how all this works is you download and put docJS.js and style.css and then include the library or object you want to  auto document example docJS(jQuery,"jQuery");&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-jQuery.html"&gt;Here is demo using  jQuery object&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You additionally  use  the browser console for further profiling. Example: open the previous demo and inside browser console write docJS(jQuery.prototype,"optional")&lt;br /&gt;
&lt;br /&gt;
I build this project for auto document some of my JS libraries but surprise me how cool  this tool can be for &lt;b&gt;learning and disassembling&lt;/b&gt; other JS libraries.&lt;br /&gt;
&lt;br /&gt;
Here are ten objects from ten different JS projects:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-jQuery.html"&gt;jQuery&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-dojo.html"&gt;dojo&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-Ext.html"&gt;Ext&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-fuse.html"&gt;fuse&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-Modernizr2.html"&gt;Modernizr2&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-mootools.html"&gt;mootools&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-prototype.html"&gt;prototype.js&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-swfobject.html"&gt;swfobject&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-webfont.html"&gt;webfont Google&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-YUI.html"&gt;YUI&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/AutoObjectDocumentation/demos/autoDocs-Zepto.html"&gt;Zepto&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I think this demos show how easy you can profile and object anywhere on the web. Also you can use this tool for learning from other JavaScript libraries. Works in Safari, Chrome and FF4.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="https://github.com/vladocar/AutoObjectDocumentation"&gt;Download Watch Fork this project on GitHub&lt;/a&gt; &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-3677642662048254626?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/3677642662048254626/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=3677642662048254626" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/3677642662048254626?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/3677642662048254626?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/c2K7XltsFLY/object-auto-documentation-javascript.html" title="Object Auto Documentation - JavaScript" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/06/object-auto-documentation-javascript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYNSXY7eCp7ImA9WhZVGEQ.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-895141006003134096</id><published>2011-06-01T04:40:00.002+02:00</published><updated>2011-06-01T04:43:18.800+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-01T04:43:18.800+02:00</app:edited><title>HTML Lorem Ipsum Crash Test</title><content type="html">About two years ago I need HTML template for testing my &lt;a href="http://code.google.com/p/azbuka/"&gt;CSS Typography Framework - Azbuka&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The idea was to have natural float of HTML elements for better CSS projecting and for more authentic HTML elements interaction.&lt;br /&gt;
&lt;br /&gt;
So I build HTML Lorem Ipsum Crash Test and strangely become &lt;b&gt;more popular&lt;/b&gt; than my it's original project Azbuka.&lt;br /&gt;
&lt;br /&gt;
Lorem Ipsum Crash Test was partially used in:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://html5boilerplate.com/"&gt;HTML5 Boilerplate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://readable.tastefulwords.com/"&gt;Readable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://necolas.github.com/normalize.css/ "&gt;normalize.css&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;probably others ..&lt;/li&gt;
&lt;/ul&gt;I decided to make separate page  on GitHub so people can use it to test their CSS.&lt;br /&gt;
&lt;br /&gt;
HTML Lorem Ipsum Crash Test unites parts from:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://jontangerine.com/silo/html/placeholder/"&gt;Placeholder Markup with Lorem Ipsum - Jon Tan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/emastic/"&gt;Emastic CSS Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://devkick.com/lab/tripoli/"&gt;Tripoli CSS Typo Reset&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/formy-css-framework/"&gt;Formy CSS Form Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://baselinecss.com/"&gt;Baseline CSS Framework&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/HTML-Lorem-Ipsum-Crash-Test.html"&gt;&lt;b&gt;Demo Lorem Ipsum Crash Test&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://github.com/vladocar/HTML-Lorem-Ipsum-Crash-Test"&gt;&lt;b&gt;Download the project on GitHub&lt;/b&gt; &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-895141006003134096?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/895141006003134096/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=895141006003134096" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/895141006003134096?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/895141006003134096?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/xPtqGChHTfU/html-lorem-ipsum-crash-test.html" title="HTML Lorem Ipsum Crash Test" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/06/html-lorem-ipsum-crash-test.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUANSHY5fyp7ImA9WhZVGE0.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-6693223217751239225</id><published>2011-05-31T04:05:00.001+02:00</published><updated>2011-05-31T04:09:59.827+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-31T04:09:59.827+02:00</app:edited><title>Write modern CSS - use class</title><content type="html">Lately CSS community is focused on the new CSS3  tricks and more essential topics like CSS Layouts are left in the dark.&lt;br /&gt;
&lt;br /&gt;
Many thing changed but we still using  ID's for direct styling. Meaning we have  #header, #footer, #navigation, #main … and we apply styling on that Id.&lt;br /&gt;
&lt;br /&gt;
What is wrong with this code and approach? There is nothing wrong with HTML it is perfectly semantic and logical. The problem is the CSS.&lt;br /&gt;
&lt;br /&gt;
You all have seen CSS like this:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/999659.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
and HTML&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/999665.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/ModernCSS/ID.htm"&gt;&lt;img border="0" height="285" width="400" src="http://4.bp.blogspot.com/-t8uat574JxA/TeRHUR248mI/AAAAAAAAAXk/lciYxfCcDd4/s400/ID.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/ModernCSS/ID.htm"&gt;Example ID&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
We are directly using the ID for layout. But we forget that ID can be used &lt;b&gt;once and only once&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;That is not flexible!!&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
For every building block (DIV) we must write different ID. If we have 1000 blocks we must write 1000 different ID.&lt;br /&gt;
&lt;br /&gt;
Why don't we start using class, write it once use it &lt;b&gt;multiple times&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Here is the second example with the same HTML but different CSS. Note that this model supports semantic coding. We are using ID to give logical and semantic areas to HTML bit we are using the class for all the styling.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/999672.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
And the HTML:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/999675.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/ModernCSS/Class.html"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-lgwkkKjNhfc/TeRJWVB1dPI/AAAAAAAAAXs/A4Ek17hFCQk/s400/class.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/ModernCSS/Class.html"&gt;Example with class&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
But this system &lt;b&gt;really shines&lt;/b&gt; when we have one block that repeats many times. &lt;br /&gt;
&lt;br /&gt;
Let's build Photo Gallery Example.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/ModernCSS/ImageGalleyID.html"&gt;Image Gallery using ID's &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/ModernCSS/ImageGalleryClass.html"&gt;Image Gallery using class&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
View the source code of the last two examples.&lt;br /&gt;
&lt;br /&gt;
And we have &lt;b&gt;2 lines of code for the layout using class v.s 9 lines of CSS using id's&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
I think that is more then obvious that with the class we can write less code.&lt;br /&gt;
&lt;br /&gt;
Why don't we try to extend the second example and build extend layout system.&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/999681.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
And the we have our own &lt;b&gt;CSS Framework&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/ModernCSS/CSSFramework.html"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-9Vv2JCwvk7A/TeRMOC9r2TI/AAAAAAAAAX0/zdZTps9ifSE/s400/CSSFramework.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/ModernCSS/CSSFramework.html"&gt;The Example CSS Framework&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Someone will ask: What about the &lt;b&gt;speed&lt;/b&gt; of the execution.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://scope.bitbucket.org/tests/selector-matching-performance/index.html"&gt;According to this tests&lt;/a&gt; class perform  better than ID on most modern browsers. Unfortunately I'm getting inconsistent results for every measure. So I will be happy is someone can confirm my statement.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Final thoughts&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
The point of this article is that the class is more flexible than id. Effectively you can write less code with class-es. You can always use semantical HTML and ID with the combination with class if you like.&lt;br /&gt;
&lt;br /&gt;
And the final thing there is &lt;b&gt;no wright or wrong coding method&lt;/b&gt;. The wright method is the one that works for &lt;b&gt;you&lt;/b&gt;. This is the method that I prefer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Your comments and thoughts will be appreciated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-6693223217751239225?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/6693223217751239225/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=6693223217751239225" title="10 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/6693223217751239225?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/6693223217751239225?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/R-knyOiOq98/write-modern-css-use-class.html" title="Write modern CSS - use class" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-t8uat574JxA/TeRHUR248mI/AAAAAAAAAXk/lciYxfCcDd4/s72-c/ID.png" height="72" width="72" /><thr:total>10</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/05/write-modern-css-use-class.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcBRXY7eCp7ImA9WhZVEkk.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-884813182570310374</id><published>2011-05-23T01:50:00.003+02:00</published><updated>2011-05-24T14:27:34.800+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-24T14:27:34.800+02:00</app:edited><title>Event Delegation - JavaScript</title><content type="html">I'm making a small JS library for building mobile apps that should work on webkit browsers Safari, Chrome. One of the problems to solve was how to implement event delegation.&lt;br /&gt;
&lt;br /&gt;
What is event delegation? I think that very good explanation has David Walsh on his blog post about &lt;a href="http://davidwalsh.name/event-delegate"&gt;event delegation&lt;/a&gt; and the explanation how &lt;a href="http://davidwalsh.name/delegate-event"&gt;various libraries&lt;/a&gt; implement event delegation.&lt;br /&gt;
&lt;br /&gt;
So if you are using jQuery you probably know .delegate() and .live() method.  Basically what you trying to achieve is to have just one addEventListener that covers big area like the body, table or other portion of your code and avoid to have multiple addEventListener's. I think the .live() method in jQuery have one addEventListener positioned on the body HTML element.&lt;br /&gt;
&lt;br /&gt;
My intention was to build simple yet flexible solution that will work on all modern browsers.&lt;br /&gt;
&lt;br /&gt;
The basic code is:&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/985999.js?file=gistfile1.js"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
And the final function:&lt;br /&gt;
&lt;br /&gt;
The trick is to check if the selected("event.target") element matches the selection array($("something")) by using the &lt;a href="http://dev.opera.com/articles/view/javascript-array-extras-in-detail/#indexof"&gt;indexOf&lt;/a&gt; .&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/986000.js?file=gistfile1.js"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
In order this solution to work you need to remember to select the deepest  HTML elements: Example &amp;lt;div id="some"&amp;gt;&amp;lt;span&amp;gt;&amp;lt;a href=""&amp;gt;Click Me&amp;lt;/a&amp;gt;&amp;lt;/span&gt;&amp;lt;/div&amp;gt; you should indicate in the SelectorChild $("#someid&gt;span&gt;a");&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All of this is possible because is the modern browsers we can querySelectorAll and actually the SelectorEngine can be &lt;a href="http://www.vcarrer.com/2011/04/svetlo-one-line-javascript-selector.html"&gt;just one line of code&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
See working example of first and second example:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/EventDelegation/Event-Delegate1.html"&gt;FirstExample&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/EventDelegation/Event-Delegate2.html"&gt;SecondExample&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I did tests  on Firefox4, Safari5, Chrome13, Opera11 and mobile Safari on IOS4.3 .&lt;br /&gt;
&lt;br /&gt;
I think that many heads are better than one. &lt;b&gt;Help me improve the code&lt;/b&gt;. Just one condition it should work on Safari and Chrome. &lt;br /&gt;
&lt;br /&gt;
The code can be found on GitHub:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://gist.github.com/985999"&gt;https://gist.github.com/985999 &lt;/a&gt;&lt;br /&gt;
&lt;a href="https://gist.github.com/986000"&gt;https://gist.github.com/986000&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Thanks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-884813182570310374?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/884813182570310374/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=884813182570310374" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/884813182570310374?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/884813182570310374?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/079OM4C2Ye4/event-delegation-javascript.html" title="Event Delegation - JavaScript" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>6</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/05/event-delegation-javascript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4MRnY4eip7ImA9WhZWEEU.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-2400393235814168700</id><published>2011-05-11T05:34:00.002+02:00</published><updated>2011-05-11T05:36:27.832+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-11T05:36:27.832+02:00</app:edited><title>Baseline Grid patterns for Photoshop and CSS</title><content type="html">Few days ago I stubbled upon on &lt;a href="http://methodandcraft.com/videos/extensible-baseline-grids"&gt;Extensible baseline grids by Mike Precious&lt;/a&gt; via  &lt;a href="http://adactio.com/journal/4536/"&gt;@adactio&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I've used the same technique several times for building &lt;a href="http://www.vcarrer.com/2010/02/golden-grid-psd-template.html"&gt;.PSD Golden Grid Template&lt;/a&gt; and for web typography parts of &lt;a href="http://www.allapis.com/emastic/typography.html"&gt;Emastic&lt;/a&gt;, &lt;a href="http://code.google.com/p/better-web-readability-project/"&gt;Better Readability Project&lt;/a&gt;, &lt;a href="http://code.google.com/p/azbuka/"&gt;Azbuka&lt;/a&gt; and others project that all use complete or partial Baseline Grid.&lt;br /&gt;
&lt;br /&gt;
I thought that can be handy to build Photoshop .pat pattern file for my future baseline grid projects. Also I made .png images that can be used with CSS (HTML) for building and testing the baseline grid. &lt;br /&gt;
I think that this can be useful to someone so I am sharing my Photoshop and .png files.&lt;br /&gt;
&lt;br /&gt;
The patterns are from 14px to 26px  feel free to extend the project and add more patterns.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/-gcb638hzaAw/TcoDjQtreuI/AAAAAAAAAXM/jLcuOrlG0JE/s1600/Baseline.png" imageanchor="1" style=""&gt;&lt;img border="0" height="271" width="400" src="http://1.bp.blogspot.com/-gcb638hzaAw/TcoDjQtreuI/AAAAAAAAAXM/jLcuOrlG0JE/s400/Baseline.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a href="http://dl.dropbox.com/u/2111778/Baseline.zip"&gt;&lt;b&gt;Download the patterns (baseline.pat and .png files)&lt;/b&gt; &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
To install the Photoshop patterns you need to copy the baseline.pat file to the folder Photoshop&gt;Presets&gt;Patterns and then restart Photoshop.&lt;br /&gt;
&lt;br /&gt;
For HTML(CSS) patterns open index.html file with any browser.&lt;br /&gt;
&lt;br /&gt;
Cheers!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-2400393235814168700?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/2400393235814168700/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=2400393235814168700" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/2400393235814168700?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/2400393235814168700?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/pFIqo6t3bCo/baseline-grid-patterns-for-photoshop.html" title="Baseline Grid patterns for Photoshop and CSS" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-gcb638hzaAw/TcoDjQtreuI/AAAAAAAAAXM/jLcuOrlG0JE/s72-c/Baseline.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/05/baseline-grid-patterns-for-photoshop.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYESXk8fyp7ImA9WhZQGUg.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-5733534663763128915</id><published>2011-04-28T03:07:00.003+02:00</published><updated>2011-04-28T03:11:48.777+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T03:11:48.777+02:00</app:edited><title>picoCSS - really small JavaScript Framework</title><content type="html">I've had some extra time during the Easter holidays and I did some JavaScript experiments. The result of that experiment is super small JavaScript library for basic CSS manipulation mainly for  building iPhone, iPad and Android web apps.&lt;br /&gt;
&lt;br /&gt;
This project has one objective DOM CSS manipulation with JavaScript that is optimized for webkit browsers(Safari, Chrome) and it will work in (Firefox, Opera) without the part of animation.&lt;br /&gt;
&lt;br /&gt;
With this library you can do just three things insert inline CSS or  manipulate CSS with changing the id and the class name of the HTML element.  Also webkit CSS3 animation are supported. I've used &lt;a href="http://www.vcarrer.com/2011/04/svetlo-one-line-javascript-selector.html"&gt;Svetlo&lt;/a&gt; like selector engine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The coding  syntax looks like this:&lt;br /&gt;
&lt;br /&gt;
p.select("#a").css("background-color : green; color: #fff;");&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
p.select("#b").animate('0.5', '1','360','1','1','1','1', '0','0');&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
p.select("#main").att("class","bumm");&lt;br /&gt;
&lt;br /&gt;
And here are some examples (Safari/Chrome):&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.allapis.com/picoCSS/sun.html"&gt;Example 1 &lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.allapis.com/picoCSS/css.html"&gt;Example 2 &lt;/a&gt;&lt;br /&gt;
&lt;a href=" http://www.allapis.com/picoCSS/of-onn.html"&gt;Example 3&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.allapis.com/picoCSS/animate.html"&gt;Example 4&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="https://github.com/vladocar/picoCSS"&gt;&gt;&gt; Download &lt;span class="and"&gt;&amp;&lt;/span&gt; Watch the library on GitHub&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This Framework is not meant to be complete JS Framework like jQuery. It is just CSS helper library.&lt;br /&gt;
&lt;br /&gt;
If you need small but complete framework for mobile development I suggest you check:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://zeptojs.com/"&gt;Zepto.js&lt;/a&gt; &lt;br /&gt;
&lt;a href="http://www.dustindiaz.com/ender"&gt;Ender.js&lt;/a&gt; &lt;br /&gt;
&lt;a href="http://jquerymobile.com/"&gt;jQuery Mobile&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
All comments and suggestions are appreciated!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-5733534663763128915?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/5733534663763128915/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=5733534663763128915" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/5733534663763128915?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/5733534663763128915?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/9EzWbezYKnQ/picocss-really-small-javascript.html" title="picoCSS - really small JavaScript Framework" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/04/picocss-really-small-javascript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQFRH4zfSp7ImA9WhZRFk0.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-4643503319356715212</id><published>2011-04-12T03:28:00.002+02:00</published><updated>2011-04-12T13:21:55.085+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-12T13:21:55.085+02:00</app:edited><title>Svetlo - One Line JavaScript Selector Engine</title><content type="html">I'm working on one new mini JavaScript Framework for building mobile apps.&lt;br /&gt;
&lt;br /&gt;
Probably the most critical part of any JavaScript Framework is the selector engine. Naturally the faster is the selector engine the faster will be all the Framework.&lt;br /&gt;
&lt;br /&gt;
Most of the modern selector engines are build upon &lt;a href="https://developer.mozilla.org/en/DOM/document.querySelectorAll"&gt;querySelectorAll&lt;/a&gt;  because it gives the best flexibility. Little problem with querySelectorAll is the speed.&lt;br /&gt;
&lt;br /&gt;
Traditionally &lt;a href="https://developer.mozilla.org/en/DOM/document.getElementByID"&gt;getElementById&lt;/a&gt; is much faster then querySelectorAll, but things are changing. Opera 11 has super optimized querySelectorAll and probably all the browsers in the future will try to speed optimize  querySelectorAll.&lt;br /&gt;
&lt;br /&gt;
For my (not yet published) JavaScript Framework I've used this code for the selector engine (codename Svetlo).&lt;br /&gt;
&lt;br /&gt;
// Svetlo :&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;function $(selector){return Array.prototype.slice.call(document.querySelectorAll(selector))}&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
What this code does is putting the querySelectorAll results "toArray" and that helps the speed optimization. The code is not new I think the first time I saw it on &lt;a href="http://ejohn.org/blog/queryselectorall-in-firefox-31/"&gt;John Resig blog&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I'm not even sure that this line of code can be called selector engine, but I think that it can  be helpful  to someone and is good baseline for writing JS applications that doesn't need to run in IE. Hint: Web apps for iPhone and Android.&lt;br /&gt;
&lt;br /&gt;
I did some performance  test.&lt;br /&gt;
&lt;br /&gt;
The test are based on this principle &lt;a href="http://jsperf.com/nodelist-vs-array-iteration"&gt;http://jsperf.com/nodelist-vs-array-iteration&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://jsperf.com/svetlo-class"&gt;http://jsperf.com/svetlo-class&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://jsperf.com/svetlo-id/3"&gt;http://jsperf.com/svetlo-id/3&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://jsperf.com/svetlo/3"&gt;http://jsperf.com/svetlo/3&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If my testing logic is correct result show that this selector engine is faster then the native querySelectorAll and equal like native getElementById method.&lt;br /&gt;
&lt;br /&gt;
If my testing logic is correct result show that this selector engine is faster then the native querySelectorAll and equal like native getElementById method.&lt;br /&gt;
&lt;br /&gt;
This solution  will run on  of Safari, Chrome, Firefox, Opera and doesn't support IE. &lt;br /&gt;
My intention was to build JS Framework for mobile webkit browsers(iOS, Android). &lt;br /&gt;
So if you building web app for iPhone, iPad, Android this selector engine can help you, if you need to support IE this selector engine is completely useless.&lt;br /&gt;
&lt;br /&gt;
Other super small selectors:&lt;br /&gt;
&lt;br /&gt;
Ben Alman &lt;a href="http://benalman.com/projects/javascript-library-boilerplate/"&gt;QSA library&lt;/a&gt;  &lt;br /&gt;
Dan Heberden &lt;a href="https://github.com/danheberden/Quewery"&gt;Quewery&lt;/a&gt; &lt;br /&gt;
Dustin Diaz &lt;a href="http://www.dustindiaz.com/qwery"&gt;Qwery&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
All comments and suggestion about this small selector will be appreciated!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-4643503319356715212?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/4643503319356715212/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=4643503319356715212" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/4643503319356715212?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/4643503319356715212?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/WU9_GLMJ2JU/svetlo-one-line-javascript-selector.html" title="Svetlo - One Line JavaScript Selector Engine" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>7</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/04/svetlo-one-line-javascript-selector.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMGRXwzcSp7ImA9Wx9bGUk.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-7863679685114587527</id><published>2011-03-01T03:06:00.003+01:00</published><updated>2011-03-01T03:43:44.289+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-01T03:43:44.289+01:00</app:edited><title>Child Selector System - CSS Framework</title><content type="html">I love to make experiments with CSS Layouts. It is become my obsession  to build CSS Frameworks and other CSS Architectural solutions. My latest experiment is the use of &lt;a href="http://www.w3.org/TR/CSS2/selector.html#child-selectors"&gt;child selectors&lt;/a&gt; for building css layout systems.&lt;br /&gt;&lt;br /&gt;Here is the code:&lt;br /&gt;&lt;br /&gt;div{float:left;width:100%}&lt;br /&gt;.right&gt;div{float: right}&lt;br /&gt;.one&gt;div{ width:100%}&lt;br /&gt;.two&gt;div{ width:50%}&lt;br /&gt;.three&gt;div{ width:33.33%}&lt;br /&gt;.four&gt;div{ width:25%}&lt;br /&gt;.five&gt;div{ width:20%}&lt;br /&gt;.six&gt;div{ width:16.60%}&lt;br /&gt;.seven&gt;div{ width:14.28%}&lt;br /&gt;.eight&gt;div{ width:12.5%}&lt;br /&gt;.nine&gt;div{ width:11.11%}&lt;br /&gt;.ten&gt;div{ width:10%}&lt;br /&gt;.twelve&gt;div{ width:8.33%}&lt;br /&gt;&lt;br /&gt;And the HTML will look something like this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;div class="two"&amp;gt;&lt;br /&gt;&amp;lt;div&gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div&gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note: I build this framework  just for &lt;b&gt;teaching purposes&lt;/b&gt;. This is just experimental framework. There are many more elegant CSS Frameworks and CSS Systems.&lt;br /&gt;&lt;br /&gt;&lt;span class="b"&gt;How this system works?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Every div is "float:left" every class for &lt;b&gt;one&lt;/b&gt; to &lt;b&gt;twelve&lt;/b&gt; is used like container to contain the "child" divs. For example the .five div will hold 5 child divs. The system is simple and easy to use. This system will not work in IE6 and it will have &lt;a href="http://ejohn.org/blog/sub-pixel-problems-in-css/"&gt;pixel rounding issues&lt;/a&gt; in both IE6 and IE7. That is why I made parallel system for IE6/7.&lt;br /&gt;&lt;br /&gt;That is something like this:&lt;br /&gt;.five div{ width:20%} so we are not using the child selector ( &gt; ).&lt;br /&gt;For the pixel rounding problems I added margin-right:-1px;:&lt;br /&gt;div{float:left; &lt;span class="b"&gt;margin-right:-1px;&lt;/span&gt; width:100%}&lt;br /&gt;&lt;br /&gt;So with IE fix  and &lt;a href="http://www.webdesignerwall.com/tutorials/css-specific-for-internet-explorer/"&gt;IE conditional comments&lt;/a&gt; the system can work even in IE 5.5.&lt;br /&gt;&lt;br /&gt;Advantages of this system is that the CSS file is very small about 0.35 kb and also generates very small HTML output file. Also the framework supports nested div elements.&lt;br /&gt;&lt;br /&gt;Disadvantages are you can't do something like 75% - 25% or 80% -20% columns. The Framework will just have one to twelve equal columns.&lt;br /&gt;&lt;br /&gt;With just one line of CSS .four&gt;div{width:25%; float:left;} from this Framework you will have &lt;a href="http://www.allapis.com/Child-Selector-System-CSS_Framework/Child-Selector3.html"&gt; four columns grid system&lt;/a&gt; and you can make for example image gallery or something.&lt;br /&gt;&lt;br /&gt;Here are more examples:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.allapis.com/Child-Selector-System-CSS_Framework/Child-Selector.html"&gt;The System&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.allapis.com/Child-Selector-System-CSS_Framework/Child-Selector1.html"&gt;Example1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.allapis.com/Child-Selector-System-CSS_Framework/Child-Selector2.html"&gt;Example2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The project is hosted on Google Code Hosting&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/child-selector-css-system/"&gt;Download the Code&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-7863679685114587527?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/7863679685114587527/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=7863679685114587527" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/7863679685114587527?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/7863679685114587527?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/BKF61oDuOgY/child-selector-system-css-framework.html" title="Child Selector System - CSS Framework" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/03/child-selector-system-css-framework.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8ARX09fip7ImA9Wx9UEU8.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-210247417958024394</id><published>2011-02-08T00:45:00.007+01:00</published><updated>2011-02-08T01:10:44.366+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-08T01:10:44.366+01:00</app:edited><title>About Repaint and Reflow in JavaScript</title><content type="html">Recently I stumbled at this Google Documentation - &lt;a href="https://code.google.com/apis/customsearch/v1/getting_started.html#data-json"&gt;REST from JavaScript&lt;/a&gt; realizing how little web developers  are aware about  JavaScript performance.  I heard about Repaint and Reflow mainly from the work of &lt;a href="http://www.phpied.com"&gt;Stoyan Stefanov&lt;/a&gt; and &lt;a href="http://www.nczonline.net/"&gt;Nicholas Zakas&lt;/a&gt;,  so I’m writing this short article to help raise the awareness  about Repaint and Reflow and JavaScript performance in general.&lt;br /&gt;&lt;br /&gt;So what is Reflow?&lt;br /&gt;&lt;br /&gt;A picture is worth a thousand words and probably the video is worth a thousand pictures :)&lt;br /&gt;&lt;br /&gt;Here is the video:&lt;br /&gt;&lt;embed id=VideoPlayback src=http://video.google.com/googleplayer.swf?docid=-5863446593724321515&amp;hl=en&amp;fs=true style=width:400px;height:326px allowFullScreen=true allowScriptAccess=always type=application/x-shockwave-flash&gt; &lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;Reflow is the process by which the geometry of the layout engine’s formatting object are computed – Chris Waterson, Mozilla&lt;br /&gt;&lt;br /&gt;"Repaint - also known as redraw - is what happens whenever something is made visible when it was not previously visible, or vice versa, without altering the layout of the document. An example would be when adding an outline to an element, changing the background color, or changing the visibility style. Repaint is expensive in terms of performance, as it requires the engine to search through all elements to determine what is visible, and what should be displayed." – Opera&lt;br /&gt;&lt;br /&gt;Basically Reflow is layout change and Reflow color change.&lt;br /&gt;&lt;br /&gt;So you get the picture Repaint and Reflow are &lt;b&gt;highly expensive operation&lt;/b&gt; for the browser. So you need to &lt;b&gt;minimize&lt;/b&gt; the number of the Repaints and Reflows when you do DOM manipulations.&lt;br /&gt;&lt;br /&gt;Let’s take the example that I mentioned previously:&lt;br /&gt;&lt;br /&gt;So every time we use insert HTML into the DOM structure  we  probably  triggers reflow. Maybe this isn’t the best example that shows pure resizing of the layout, but we can avoid accessing the DOM multi times. &lt;br /&gt;&lt;b&gt;// before&lt;/b&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;function hndlr(response) {&lt;br /&gt;      for (var i = 0; i &lt; response.items.length; i++) {&lt;br /&gt;        var item = response.items[i];&lt;br /&gt;        // in production code, item.htmlTitle should have the HTML entities escaped.&lt;br /&gt;        document.getElementById("content").innerHTML += "&amp;lt;br&amp;gt;" + item.htmlTitle;&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt; &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;// after – calling innerHTML just once&lt;/b&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;function hndlr(response) {&lt;br /&gt; var html = " ";&lt;br /&gt; var  y = response.items.length;&lt;br /&gt;      for (var i = 0; i &lt; y;  i++) {&lt;br /&gt;        var item = response.items[i];&lt;br /&gt;        html += "&amp;lt;br&amp;gt;" + item.htmlTitle;&lt;br /&gt;      }&lt;br /&gt;   // making just one Reflow&lt;br /&gt;   document.getElementById("content").innerHTML = html&lt;br /&gt;    }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Here are more case studies and other examples:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.phpied.com/rendering-repaint-reflowrelayout-restyle/"&gt;Rendering: repaint, reflow/relayout, restyle&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.phpied.com/the-new-game-show-will-it-reflow/"&gt;The new game show: "Will it reflow?"&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.slideshare.net/nzakas/writing-efficient-javascript"&gt;Writing Efficient JavaScript&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mir.aculo.us/2010/08/17/when-does-javascript-trigger-reflows-and-rendering/"&gt;When does JavaScript trigger reflows and rendering?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dev.opera.com/articles/view/efficient-javascript/?page=3"&gt;Repaint and reflow&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-210247417958024394?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/210247417958024394/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=210247417958024394" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/210247417958024394?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/210247417958024394?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/ZVOVPUuPjlI/about-repaint-and-reflow-in-javascript.html" title="About Repaint and Reflow in JavaScript" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>8</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/02/about-repaint-and-reflow-in-javascript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEDRHc6fip7ImA9Wx9XFk8.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-3976679314639463046</id><published>2011-01-10T02:13:00.006+01:00</published><updated>2011-01-10T02:41:15.916+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-10T02:41:15.916+01:00</app:edited><title>Better Readability Project - Free Tumblr Theme</title><content type="html">Almost two years ago I created &lt;a href="http://code.google.com/p/better-web-readability-project/"&gt;Better Web Readability Project - CSS Typographical Framework&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In order to promote this typographical framework I created free theme for the &lt;a href="http://www.tumblr.com"&gt;Tumblr Blog&lt;/a&gt;. The Theme was made with CSS from Better Web Readability Project and called with the same name. The Theme was officially approved by Tumblr and can be &lt;a href="http://www.tumblr.com/theme/17806"&gt;downloaded here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tumblr.com/theme/17806"&gt;&lt;img  src="http://2.bp.blogspot.com/_dNFD8-arsW8/TSpiMqKPNDI/AAAAAAAAAWE/HHwBgWTbl7w/s400/icon.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5560364659557479474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://safe.tumblr.com/theme/preview/17806"&gt;The Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This theme is best suited for text oriented blogs.&lt;br /&gt;&lt;br /&gt;Enjoy&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-3976679314639463046?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/3976679314639463046/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=3976679314639463046" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/3976679314639463046?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/3976679314639463046?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/zkXCg5fHes4/better-readability-project-free-tumblr.html" title="Better Readability Project - Free Tumblr Theme" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_dNFD8-arsW8/TSpiMqKPNDI/AAAAAAAAAWE/HHwBgWTbl7w/s72-c/icon.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.vcarrer.com/2011/01/better-readability-project-free-tumblr.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIBQ38-eip7ImA9Wx9RGUk.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-1643662047389471124</id><published>2010-12-20T02:51:00.009+01:00</published><updated>2010-12-21T17:05:52.152+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-21T17:05:52.152+01:00</app:edited><title>CSS3 Chat Bubbles</title><content type="html">Few day ago I saw on &lt;a href="http://news.ycombinator.com/item?id=2019552"&gt;Hacker News&lt;/a&gt;  the link &lt;a href="http://www.dinnermint.org/blog/css/creating-triangles-in-css/"&gt;Creating Triangles in CSS&lt;/a&gt; from Jon Rohan(kudos to JON)   and was specially interesting for  the chat bubbles. Mainly because I was building one mini app for Twitter who should run on iPhone/iPad (webkit browser) so I needed simple solution for  the chat bubbles.&lt;br /&gt;&lt;br /&gt;Jon uses this HTML :&lt;br /&gt;&amp;lt;div class="chat-bubble"&amp;gt;&lt;br /&gt;  Buongiorno!&lt;br /&gt;  &amp;lt;div class="chat-bubble-arrow-border"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;  &amp;lt;div class="chat-bubble-arrow"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;I wanted to use just one div to create the same effect and make CSS to do all the heavy lifting:&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="chat-bubble"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;After some CSS hacking here is the result:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.allapis.com/Chat-bubble/chat-bubble2.html"&gt;&lt;img style="width: 251px; height: 157px;" src="http://3.bp.blogspot.com/_dNFD8-arsW8/TQ64qWqVMLI/AAAAAAAAAV4/BW7R4pnXl8M/s400/chat-bubble.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5552578428371546290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.allapis.com/Chat-bubble/chat-bubble.html"&gt;Example&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.allapis.com/Chat-bubble/chat-bubble1.html"&gt;Example1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.allapis.com/Chat-bubble/chat-bubble2.html"&gt;Example2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.allapis.com/Chat-bubble/chat-bubble3.html"&gt;Example3&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.allapis.com/Chat-bubble/chat-bubble4.html"&gt;Example4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From the examples you can see that everything is done with CSS and no images are used for making Chat Bubbles and also the HTML is super simple just one div and one class (&amp;lt;div class="chat-bubble"&amp;gt;&amp;lt;/div&amp;gt;).&lt;br /&gt;&lt;br /&gt;The trick is using :before and :after pseudo-elements with combination of content: " " and absolute, relative positioning. In this case both :after and :before work in the same way because there are absolute positioned. This technique work in all modern CSS3 supported browsers. &lt;br /&gt;&lt;br /&gt;If you have any questions please let me know in the comments.&lt;br /&gt;&lt;br /&gt;All the examples are also on &lt;a href="https://github.com/vladocar/CSS3-Chat-Bubble"&gt;github for download&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;[Update] Today Nicolas Gallagher point to me that he came to this technique 8 months ago &lt;a href="http://nicolasgallagher.com/pure-css-speech-bubbles/"&gt;Pure CSS speech bubbles&lt;/a&gt; . Unfortunately I didn't know about his post and I was careless not to check about other CSS chat bubble  solution. And the worst thing is I have no prove beside my gentleman's word that I didn't copy his technique. Sorry Nicolas! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-1643662047389471124?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/1643662047389471124/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=1643662047389471124" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/1643662047389471124?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/1643662047389471124?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/JbCH7scuuo8/css3-chat-bubbles.html" title="CSS3 Chat Bubbles" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_dNFD8-arsW8/TQ64qWqVMLI/AAAAAAAAAV4/BW7R4pnXl8M/s72-c/chat-bubble.png" height="72" width="72" /><thr:total>13</thr:total><feedburner:origLink>http://www.vcarrer.com/2010/12/css3-chat-bubbles.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEARXk6cSp7ImA9Wx9SGEg.&quot;"><id>tag:blogger.com,1999:blog-20880701.post-3947023451293847058</id><published>2010-12-09T01:45:00.004+01:00</published><updated>2010-12-09T02:04:04.719+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-09T02:04:04.719+01:00</app:edited><title>Line length  and Font Size relation in design</title><content type="html">There are  many studies that are claiming that 60 characters per line is optimal reading  size.&lt;br /&gt;&lt;br /&gt;  Optimal is  not necessarily fastest reading line length but is the size &amp;nbsp;preferred by the users. &lt;br /&gt;&lt;br /&gt;  In the past  I used that information for building &lt;a href="http://code.google.com/p/better-web-readability-project/"&gt;Better Web Readability Project - CSS Typography Framework&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;  I stumbled to  Christian Holst article "&lt;a href="http://baymard.com/blog/line-length-readability"&gt;Readability: the Optimal Line Length&lt;/a&gt;" realizing that  we came to the same conclusion about the proportion of the font size and line length.&lt;br /&gt;&lt;br /&gt;Christian is using 17px font size and 520px column size.&lt;br /&gt;&lt;br /&gt;  I&amp;rsquo;m using  16px font size and 480px column size(for better readability project)&lt;br /&gt;&lt;br /&gt;  If you divide 480/16 = 30 or 520/17 = about 30&lt;br /&gt;&lt;br /&gt;  So the formula is:&lt;br /&gt;&lt;br /&gt;  &lt;strong&gt;Main Font Size X 30 = Optimal Columns Reading &amp;nbsp;size&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Font Size &lt;/td&gt;&lt;td&gt; x 30 &lt;/td&gt;&lt;td&gt;Column Size&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;360&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;390&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;420&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;450&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;480&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;510&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;540&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;570&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;600&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;630&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;I stopped at 21 px for the main font size because at some point the text will become too big and not serve its purpose.&lt;br /&gt;&lt;br /&gt;  Naturally  you can&amp;rsquo;t just take 12px text and put it in 360px column &amp;nbsp;and hope that everything will look great. The real  design process is far more complex but is interesting &amp;nbsp;when patterns emerge like in this case.&lt;br /&gt;&lt;br /&gt;  &lt;a href="http://www.allapis.com/Line-length.html"&gt;Here is  demo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;  Any  thoughts?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20880701-3947023451293847058?l=www.vcarrer.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.vcarrer.com/feeds/3947023451293847058/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20880701&amp;postID=3947023451293847058" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/3947023451293847058?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20880701/posts/default/3947023451293847058?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CarrerBlog/~3/4rz8zKzi8WI/line-length-and-font-size-relation-in.html" title="Line length  and Font Size relation in design" /><author><name>Vladimir</name><uri>http://www.blogger.com/profile/04801854386297420021</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>5</thr:total><feedburner:origLink>http://www.vcarrer.com/2010/12/line-length-and-font-size-relation-in.html</feedburner:origLink></entry></feed>

