<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://nimbupani.com">
<channel>
 <title>Nimbupani Designs - web design</title>
 <link>http://nimbupani.com/web-design.html/feed</link>
 <description />
 <language>en</language>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/nimbu" /><feedburner:info uri="nimbu" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Links for 2010-07-27 [del.icio.us]</title><link>http://feedproxy.google.com/~r/nimbu/~3/upLzSmKVHL4/nimbupani</link><pubDate>Wed, 28 Jul 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/nimbupani#2010-07-27</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://inimino.org/~inimino/blog/javascript_semicolons"&gt;JavaScript Semicolon Insertion&lt;/a&gt;&lt;br/&gt;
Via the jQuery IRC. Scares the living daylights out of me!&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/upLzSmKVHL4" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/nimbupani#2010-07-27</feedburner:origLink></item><item><title>Links for 2010-07-21 [del.icio.us]</title><link>http://feedproxy.google.com/~r/nimbu/~3/FJghM8qwOh4/nimbupani</link><pubDate>Thu, 22 Jul 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/nimbupani#2010-07-21</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.teleread.com/2010/07/21/g-men-the-oss-and-my-ipad/"&gt;G-Men, the OSS and My iPad! | TeleRead: Bring the E-Books Home&lt;/a&gt;&lt;br/&gt;
How to search the CIA and other US Security archives online!&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/FJghM8qwOh4" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/nimbupani#2010-07-21</feedburner:origLink></item><item><title>Links for 2010-07-18 [del.icio.us]</title><link>http://feedproxy.google.com/~r/nimbu/~3/mp4EU0KEdAU/nimbupani</link><pubDate>Mon, 19 Jul 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/nimbupani#2010-07-18</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff405926(v=VS.85).aspx"&gt;Internet Explorer Standards Support Documents&lt;/a&gt;&lt;br/&gt;
IE comes clean on what standards different versions support!&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/mp4EU0KEdAU" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/nimbupani#2010-07-18</feedburner:origLink></item><item>
 <title>SVG is coming!</title>
 <link>http://feedproxy.google.com/~r/nimbu/~3/YqsDMC28TZc/svg-is-coming.html</link>
 <description>&lt;p&gt;I am an &lt;span class="caps"&gt;SVG&lt;/span&gt; fanatic, in fact I was using &lt;span class="caps"&gt;SVG&lt;/span&gt; for implementing my final year project (which was to create a &lt;span class="caps"&gt;GPS&lt;/span&gt; system on a linux mobile device) in 2000. So yes, I am partial to &lt;span class="caps"&gt;SVG&lt;/span&gt; and cannot &lt;a href="http://nimbupani.com/search/node/svg"&gt;stop writing about it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I have long bemoaned the persistent &lt;a href="http://nimbupani.com/the-final-coming-of-svg.html"&gt;lack of love for &lt;span class="caps"&gt;SVG&lt;/span&gt; from browser vendors&lt;/a&gt; but these developments indicate that is no longer the&amp;nbsp;case: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;span class="caps"&gt;HTML&lt;/span&gt; spec allows inline &lt;span class="caps"&gt;SVG&lt;/span&gt; in your &lt;span class="caps"&gt;HTML&lt;/span&gt; document (and not just &lt;span class="caps"&gt;XHTML&lt;/span&gt; document). This means &lt;a href="http://dev.w3.org/html5/html4-differences/#mathml-svg"&gt;you can use an &lt;span class="caps"&gt;SVG&lt;/span&gt; element inline an &lt;span class="caps"&gt;HTML&lt;/span&gt; document&lt;/a&gt; (without using any ugly object tags). You can already test it on the &lt;a href="http://nightly.mozilla.org/"&gt;nightly builds of&amp;nbsp;Firefox&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Apple&amp;#8217;s retina display brought back attention to this &lt;a href="http://webkit.org/blog/55/high-dpi-web-sites/"&gt;old post on how to develop websites for higher &lt;span class="caps"&gt;DPI&lt;/span&gt;&lt;/a&gt; – which basically advocates &lt;span class="caps"&gt;SVG&lt;/span&gt; (&lt;a href="http://paulirish.com"&gt;Paul Irish&lt;/a&gt; also tells me &lt;a href="http://code.google.com/p/android/issues/detail?id=1376"&gt;a future release of Android will support &lt;span class="caps"&gt;SVG&lt;/span&gt;&lt;/a&gt;). &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;@media queries are extensively supported in several browsers. Andreas Bovens of Opera has a great technique to &lt;a href="http://my.opera.com/ODIN/blog/2009/10/12/how-media-queries-allow-you-to-optimize-svg-icons-for-several-sizes"&gt;use media queries with &lt;span class="caps"&gt;SVG&lt;/span&gt;&lt;/a&gt; which he explains in this&amp;nbsp;video:&lt;/p&gt;
&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/YAK5el8Uvrg&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://www.youtube.com/v/YAK5el8Uvrg&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1"; type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;You can control the styles of the &lt;span class="caps"&gt;SVG&lt;/span&gt; file that referred to by an image element, based on the width specified on the image element (see demos of &lt;a href="http://people.opera.com/andreasb/demos/demos_svgopen2009/circles.html"&gt;colored circles&lt;/a&gt;, &lt;a href="http://people.opera.com/andreasb/demos/demos_svgopen2009/svgscalelogo.html"&gt;scaling &lt;span class="caps"&gt;SVG&lt;/span&gt; logos&lt;/a&gt;, and &lt;a href="http://people.opera.com/andreasb/demos/demos_svgopen2009/svgscalegold.html"&gt;altering &lt;span class="caps"&gt;SVG&lt;/span&gt; charts&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update:&lt;/em&gt; &lt;a href="http://schepers.cc/"&gt;Shepazu&lt;/a&gt; has rightly stated &lt;span class="caps"&gt;CSS&lt;/span&gt; Media Queries work on Firefox, Webkit and Opera, not just Opera (for some reason the colored circles demo only seems to show in&amp;nbsp;Opera).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://svg-edit.googlecode.com/svn/trunk/editor/svg-editor.html"&gt;&lt;span class="caps"&gt;SVG&lt;/span&gt;-Edit&lt;/a&gt; is a fantastic open-source online &lt;span class="caps"&gt;SVG&lt;/span&gt; editing platform (it is new and the &lt;span class="caps"&gt;UI&lt;/span&gt; needs some love), especially for tiny&amp;nbsp;icons.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Opera, Webkit browsers recognize &lt;span class="caps"&gt;SVG&lt;/span&gt; images served as &lt;a href="http://dl.dropbox.com/u/952/svgdatauri.html"&gt;data-uris for use as background images&lt;/a&gt;.
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I am glad things are looking up for dear &lt;span class="caps"&gt;SVG&lt;/span&gt;. What was that &lt;a href="http://nimbupani.com/bit-of-svg-and-canvas.html"&gt;Canvas thing&lt;/a&gt; you were talking&amp;nbsp;about?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/YqsDMC28TZc" height="1" width="1"/&gt;</description>
 <comments>http://nimbupani.com/svg-is-coming.html#comments</comments>
 <category domain="http://nimbupani.com/web-design.html">web design</category>
 <pubDate>Fri, 16 Jul 2010 15:00:07 +0000</pubDate>
 <dc:creator>divya</dc:creator>
 <guid isPermaLink="false">687 at http://nimbupani.com</guid>
<feedburner:origLink>http://nimbupani.com/svg-is-coming.html</feedburner:origLink></item>
<item>
 <title>Wee! Marquee</title>
 <link>http://feedproxy.google.com/~r/nimbu/~3/R0qmmls2WrA/wee-marquee.html</link>
 <description>&lt;p&gt;&lt;a href="http://nimbu.in/weemarquee/"&gt;&lt;img src="http://nimbupani.com/files/e2b1e0a3cfb12b559ed9657f79a8f02f.png" alt="e2b1e0a3cfb12b559ed9657f79a8f02f.png" border="0" width="615" height="47" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I am &lt;a href="http://nimbupani.com/search/node/ecmascript%20OR%20%22javascript%20n00b%22"&gt;learning JavaScript&lt;/a&gt; and I detoured into learning jQuery. My intention is to learn jQuery by developing plugins :D This way, it would be a practical understanding of how to use jQuery and the experts among you might help me out by pointing out what could be made&amp;nbsp;better.&lt;/p&gt;
&lt;p&gt;The first plugin I created replicates the much despised marquee effect. Thanks to &lt;a href="http://twitter.com"&gt;Twitter homepage&lt;/a&gt;, marquee is all the rage these days. Twitter marquee looks good because the width of the text in the marquee is longer than the marquee viewport (and the scroll is continuous). But when you use a &lt;span class="caps"&gt;CMS&lt;/span&gt;, you can never be certain of the width of the text that scrolls in the marquee. Sometimes, it is just a single line of text that is smaller than the marquee viewport, and at other times it is longer than the marquee&amp;nbsp;viewport.&lt;/p&gt;
&lt;p&gt;So, this plugin accommodates for both cases. If the width of all the elements that scroll are less than the width of the marquee, then it uses the normal marquee&amp;nbsp;behavior.&lt;/p&gt;
&lt;p&gt;You might ask me why I did not use webkit&amp;#8217;s marquee element. This is because &lt;a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html"&gt;marquee is officially obsolete&lt;/a&gt;. I have no intention of bringing it back just because webkit supports it (&lt;a href="http://itpastorn.blogspot.com/2010/07/no-browser-supports-html5-yet-part-1.html"&gt;webkit fanboys should read this rant&lt;/a&gt;)!&lt;/p&gt;
&lt;p&gt;There are also a bunch of options for you: adjust the width of the marquee view port, slow down or speed up the marquee, . You can even use your own class name for each instance to change how the fade&amp;nbsp;looks.&lt;/p&gt;
&lt;p&gt;If this all sounds &lt;a href="http://www.google.com/dictionary?source=translation&amp;amp;hl=en&amp;amp;q=sinnlos&amp;amp;langpair=de|en"&gt;sinnlos&lt;/a&gt;, go see the &lt;a href="http://nimbu.in/weemarquee/"&gt;demo page now&lt;/a&gt;. If you are a kind person who is also an expert in jQuery do comment on how I can improve it. Also, my &lt;a href="http://en.wikipedia.org/wiki/D%C3%A6mon_(His_Dark_Materials)"&gt;dæmon&lt;/a&gt;, Mr.Claws hides within that page, click away and find&amp;nbsp;him!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/R0qmmls2WrA" height="1" width="1"/&gt;</description>
 <comments>http://nimbupani.com/wee-marquee.html#comments</comments>
 <category domain="http://nimbupani.com/web-design.html">web design</category>
 <pubDate>Wed, 14 Jul 2010 15:54:30 +0000</pubDate>
 <dc:creator>divya</dc:creator>
 <guid isPermaLink="false">686 at http://nimbupani.com</guid>
<feedburner:origLink>http://nimbupani.com/wee-marquee.html</feedburner:origLink></item>
<item><title>Links for 2010-07-12 [del.icio.us]</title><link>http://feedproxy.google.com/~r/nimbu/~3/nXJJg95FAW8/nimbupani</link><pubDate>Tue, 13 Jul 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/nimbupani#2010-07-12</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://meiert.com/en/blog/20100707/on-solutions/"&gt;On&amp;nbsp;Solutions &amp;ndash; Jens O. Meiert&lt;/a&gt;&lt;br/&gt;
Exactly what he says.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/nXJJg95FAW8" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/nimbupani#2010-07-12</feedburner:origLink></item><item>
 <title>Vignettes with CSS3 Box Shadows</title>
 <link>http://feedproxy.google.com/~r/nimbu/~3/pWH5ufYWIzI/vignettes-with-css3-box-shadows.html</link>
 <description>&lt;p&gt;&lt;a href="http://nimbupani.com/demo/css3vignettes/"&gt;&lt;img src="http://nimbupani.com/files/vignette.png" alt="vignette.png" border="0" width="604" height="331" /&gt; &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://paulirish.com"&gt;Paul Irish&lt;/a&gt; (why nobody else sends me such awesome stuff beats me), showed me yet another &lt;a href="http://chris-armstrong.com/"&gt;&lt;span class="caps"&gt;CSS3&lt;/span&gt;/&lt;span class="caps"&gt;HTML5&lt;/span&gt; website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What is interesting is, the site author uses 4 empty divs to create the vignetting effect on the four corners of the viewport. I thought it would be a good use of box-shadow property to recreate the same effect, minus the 3 extra divs (&lt;a href="http://sickdesigner.com/index.php/2010/html-css/css3-vignette-a-wicked-cool-technique/#comment-231"&gt;I am not the first to think of it&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The caveat is, the &lt;span class="caps"&gt;CSS3&lt;/span&gt; &lt;code&gt;box-shadow&lt;/code&gt; property slows down webkit browsers considerably. So, &lt;a href="https://bugs.webkit.org/show_bug.cgi?id=22102"&gt;this bug is resolved&lt;/a&gt; this demo will only work on non-webkit browsers like Opera 10.5x, Firefox 3.5+ (&lt;span class="caps"&gt;IE&lt;/span&gt; 9 Platform Preview claims &lt;code&gt;box-shadow&lt;/code&gt; support, but this demo does not render box-shadows&amp;nbsp;there).&lt;/p&gt;
&lt;p&gt;You could use the same technique to add vignetting to images. Here is&amp;nbsp;how: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In your &lt;span class="caps"&gt;HTML&lt;/span&gt; document, add a wrapper element to the image, I have&amp;nbsp;this: &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;p class=&amp;quot;vignette&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;image.jpg&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In your &lt;span class="caps"&gt;CSS&lt;/span&gt; file, add&amp;nbsp;this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;p.vignette {
  position: relative;
}
p.vignette img {
 display: block;
}
p.vignette:after {
 -moz-box-shadow: inset 0 0 10em #666;  
 -webkit-box-shadow: inset 0 0 10em #666;   
 box-shadow: inset 0 0 10em #666;
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 z-index: 2;
 content: "";
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The &lt;code&gt;content: ""&lt;/code&gt; is essential to &lt;a href="http://www.w3.org/TR/CSS2/generate.html#content"&gt;make sure the pseudo-element is generated&lt;/a&gt;. &lt;code&gt;z-index&lt;/code&gt; positions the pseudo-element above the&amp;nbsp;image.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
	&lt;em&gt;Die&amp;nbsp;Ende!&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Yes, I do wish webkit would hurry up and fix those horrible box-shadow bugs. Till then, you can indulge with me in this fantasy and &lt;a href="http://nimbupani.com/demo/css3vignettes/"&gt;view the demo&lt;/a&gt;&amp;nbsp;:) &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/pWH5ufYWIzI" height="1" width="1"/&gt;</description>
 <comments>http://nimbupani.com/vignettes-with-css3-box-shadows.html#comments</comments>
 <category domain="http://nimbupani.com/web-design.html">web design</category>
 <pubDate>Mon, 12 Jul 2010 14:58:15 +0000</pubDate>
 <dc:creator>divya</dc:creator>
 <guid isPermaLink="false">684 at http://nimbupani.com</guid>
<feedburner:origLink>http://nimbupani.com/vignettes-with-css3-box-shadows.html</feedburner:origLink></item>
<item><title>Links for 2010-07-11 [del.icio.us]</title><link>http://feedproxy.google.com/~r/nimbu/~3/38psocGwOr8/nimbupani</link><pubDate>Mon, 12 Jul 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/nimbupani#2010-07-11</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://webkit.org/blog/55/high-dpi-web-sites/"&gt;Surfin&amp;rsquo; Safari - Blog Archive &amp;raquo; High DPI Web Sites&lt;/a&gt;&lt;br/&gt;
I kinda prefer the background-size and svg options than using media queries  for targeting retina display&lt;/li&gt;
&lt;li&gt;&lt;a href="http://my.opera.com/ODIN/blog/2009/10/12/how-media-queries-allow-you-to-optimize-svg-icons-for-several-sizes"&gt;Opera's Developer Relations Team - How media queries allow you to optimize SVG icons for several sizes&lt;/a&gt;&lt;br/&gt;
Media query will trigger on the &amp;quot;viewport&amp;quot; change, which means if there is an img tag referring to SVG image which has a specified width, media queries can be used to trigger different CSS treatments for the SVG element (as CSS can be used to style media queries). BRILLIANT!&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/38psocGwOr8" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/nimbupani#2010-07-11</feedburner:origLink></item><item><title>Links for 2010-07-03 [del.icio.us]</title><link>http://feedproxy.google.com/~r/nimbu/~3/D8lFILpHoU4/nimbupani</link><pubDate>Sun, 04 Jul 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/nimbupani#2010-07-03</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.google.com/support/webmasters/bin/topic.py?topic=21997"&gt;Rich snippets and structured markup - Webmaster Tools Help&lt;/a&gt;&lt;br/&gt;
A very good explanation of microdata/rdfa/microformats to create &amp;quot;rich snippets&amp;quot; for Google.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/D8lFILpHoU4" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/nimbupani#2010-07-03</feedburner:origLink></item><item><title>Links for 2010-07-01 [del.icio.us]</title><link>http://feedproxy.google.com/~r/nimbu/~3/KI3DbmOWWF8/nimbupani</link><pubDate>Fri, 02 Jul 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/nimbupani#2010-07-01</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.deyalexander.com.au/blog/content/text-map.html"&gt;Text version of Melbourne map (Writing text alternatives for maps)&lt;/a&gt;&lt;br/&gt;
A nice way to present information for those who cannot see a map.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/KI3DbmOWWF8" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/nimbupani#2010-07-01</feedburner:origLink></item><item>
 <title>Mblax</title>
 <link>http://feedproxy.google.com/~r/nimbu/~3/qOFDDzzalkk/mblax.html</link>
 <description>&lt;p&gt;&lt;a href="http://nimbu.in/mblax/"&gt;&lt;img src="http://nimbupani.com/files/blog-mblax_0.png" alt="blog-mblax.png" border="0" width="600" height="431" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Two years ago, I went about deliberately learning about the &lt;a href="http://nimbupani.com/stalking-africa-online-part-1.html"&gt;African continent&lt;/a&gt;. While prowling around for African music, I fell in love with West African music &lt;a href="http://www.youtube.com/watch?v=WlTR1m74GSs"&gt;at first sight&lt;/a&gt; (er, note?) I haven’t found a good way to track where these artists will be performing live (&lt;a href="http://songkick.com"&gt;Songkick&lt;/a&gt; comes&amp;nbsp;close).&lt;/p&gt;
&lt;p&gt;So here it is, a &lt;a href="http://nimbu.in/mblax/"&gt;West African Music Events Tracker&lt;/a&gt; that tracks some of my favourite West African musicians on tour: Angelique Kidjo, Habib Koite, Salif Keita, Baaba Maal and&amp;nbsp;more.&lt;/p&gt;
&lt;h3&gt;Technical&amp;nbsp;Details&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;I used &lt;a href="http://pipes.yahoo.com/pipes/pipe.info?_id=4a36fa375210cb11ff4cd7aa29caca51"&gt;Yahoo pipes&lt;/a&gt; to create a &lt;span class="caps"&gt;JSON&lt;/span&gt; feed, from their Myspace, official websites and Facebook pages, which is then rendered into the&amp;nbsp;table. &lt;/li&gt;
&lt;li&gt;This site was created using the &lt;a href="http://github.com/paulirish/frontend-pro-template"&gt;&lt;span class="caps"&gt;HTML&lt;/span&gt; 5 Boilerplate&lt;/a&gt;. It is a project by Paul Irish that I am contributing to, which should be released&amp;nbsp;soon. &lt;/li&gt;
&lt;li&gt;If it is not obvious, the site uses all the fancy &lt;span class="caps"&gt;CSS3&lt;/span&gt; properties: outlines, offsets, multiple columns, text-shadows, and advanced selectors. This was also the first time I used fonts from &lt;a href="http://code.google.com/webfonts"&gt;Google’s Font Directory&lt;/a&gt; using their &lt;a href="http://code.google.com/apis/webfonts/docs/webfont_loader.html"&gt;WebFont Loader&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;I have also used &lt;a href="http://www.alistapart.com/articles/responsive-web-design/"&gt;@media &lt;span class="caps"&gt;CSS&lt;/span&gt; queries&lt;/a&gt; to adjust the look of the site for different widths, which means if your screen is less than 800px then the site will look different. You can also see it in action if you resize the&amp;nbsp;browser. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I hope to soon add more events from &lt;a href="http://songkick.com"&gt;Songkick&lt;/a&gt; using their &lt;a href="http://songkick.com/api/"&gt;&lt;span class="caps"&gt;API&lt;/span&gt;&lt;/a&gt;. If you have any other artists to suggest (or anything to improve upon), please&amp;nbsp;do! &lt;/p&gt;
&lt;p&gt;Meanwhile, the source files of the website (including the &lt;span class="caps"&gt;PSD&lt;/span&gt; files) are available at &lt;a href="http://github.com/nimbupani/mblax"&gt;github.com/nimbupani/mblax&lt;/a&gt; Feel free to use elements of the website as you see&amp;nbsp;fit! &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/qOFDDzzalkk" height="1" width="1"/&gt;</description>
 <comments>http://nimbupani.com/mblax.html#comments</comments>
 <category domain="http://nimbupani.com/africa.html">africa</category>
 <category domain="http://nimbupani.com/web-design.html">web design</category>
 <pubDate>Mon, 28 Jun 2010 14:07:31 +0000</pubDate>
 <dc:creator>divya</dc:creator>
 <guid isPermaLink="false">682 at http://nimbupani.com</guid>
<feedburner:origLink>http://nimbupani.com/mblax.html</feedburner:origLink></item>
<item>
 <title>Drop Shadows with CSS3</title>
 <link>http://feedproxy.google.com/~r/nimbu/~3/00HX1Nj_vpM/drop-shadows-with-css3.html</link>
 <description>&lt;p&gt;&lt;a href="http://paulirish.com"&gt;Paul Irish&lt;/a&gt; showed me &lt;a href="http://dev.ajcates.com/tests/wrap-shadow/test.php"&gt;this implementation of &lt;span class="caps"&gt;CSS3&lt;/span&gt; drop-shadows&lt;/a&gt;. The demo only works for webkit based browsers (though it will work on Firefox if the appropriate vendor-prefixes are added to the&amp;nbsp;stylesheet). &lt;/p&gt;
&lt;p&gt;&lt;a href="http://nimbupani.com/demo/css3-drop-shadows.html"&gt;&lt;img src="http://nimbupani.com/files/drop-shadow_1.png" alt="drop-shadow.png" border="0" width="501" height="262" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I first noticed this kind of drop-shadow on &lt;a href="http://aspire2enquire.typepad.com/aspire_to_enquire/2009/08/mike-matas.html"&gt;Mike Matas&amp;#8217;s old website&lt;/a&gt;. Looking at the &lt;span class="caps"&gt;CSS&lt;/span&gt; for the &lt;span class="caps"&gt;CSS3&lt;/span&gt; implementation of the drop-shadow (uses box-shadows to avoid the use of an image), there were a number of things that I found&amp;nbsp;missing: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The &lt;code&gt;article&lt;/code&gt; is absolutely positioned. It will not work in Firefox if it is not so (the simple fix is to add &lt;code&gt;display: block;&lt;/code&gt; to the style of the &lt;code&gt;article&lt;/code&gt;&amp;nbsp;element). &lt;/li&gt;
&lt;li&gt;The method requires a block element within article to render correctly. The &lt;span class="caps"&gt;CSS&lt;/span&gt; for the block element has a lot of styles that I think are unnecessary and&amp;nbsp;complicated.&lt;/li&gt;
&lt;li&gt;The stylesheet was longer and more complicated than&amp;nbsp;necessary.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As an attempt to try a simpler version of it, I came up with &lt;a href="http://nimbupani.com/demo/css3-drop-shadows.html"&gt;this implementation of &lt;span class="caps"&gt;CSS3&lt;/span&gt; Drop-shadows&lt;/a&gt;. This is what I&amp;nbsp;did: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add a wrapper around the container that needs shadows. Position it&amp;nbsp;relatively. &lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Absolute position the pseudo-elements like the demonstration above, except position them behind the main content with z-index: -1, like&amp;nbsp;so:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;article:before, article:after {
	-webkit-box-shadow: 0 15px 10px rgba(0,0,0, .7);   
	-moz-box-shadow: 0 15px 10px rgba(0, 0, 0, 0.7);	    
	box-shadow: 0 15px 10px rgba(0, 0, 0, 0.7);
	position: absolute; 
	bottom: 15px; 
	z-index: -1; 
	width: 40%; 
	height: 20%; 
	content: ""; 
	background: rgba(0, 0, 0, 0.7); 
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;small&gt;Thanks &lt;a href="http://simurai.com/"&gt;simurai&lt;/a&gt; for better box-shadow values!&lt;/small&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Fin&lt;/em&gt;. This is 44 lines of code as compared to 84 lines of code in the original demo and works on all the latest versions of Opera, Chrome, Safari and Firefox. But, Opera&amp;rsquo;s, and Firefox&amp;rsquo;s implementation of transforms are not as good as&amp;nbsp;Webkit&amp;rsquo;s. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It is interesting to attempt it for fun, but this is definitely not ready for production&amp;nbsp;use!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; I have noticed that it &lt;a href="http://css3watch.com/post/748906053/gangsta-ass-css3-wrapping-drop-shadows-better"&gt;sorta breaks on very wide boxes&lt;/a&gt;, I have no obvious solution yet, but I have updated the background for &lt;code&gt;article:before&lt;/code&gt; and &lt;code&gt;article:after&lt;/code&gt; to mitigate&amp;nbsp;that.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/00HX1Nj_vpM" height="1" width="1"/&gt;</description>
 <comments>http://nimbupani.com/drop-shadows-with-css3.html#comments</comments>
 <category domain="http://nimbupani.com/web-design.html">web design</category>
 <pubDate>Thu, 24 Jun 2010 04:15:49 +0000</pubDate>
 <dc:creator>divya</dc:creator>
 <guid isPermaLink="false">681 at http://nimbupani.com</guid>
<feedburner:origLink>http://nimbupani.com/drop-shadows-with-css3.html</feedburner:origLink></item>
<item>
 <title>Diversity</title>
 <link>http://feedproxy.google.com/~r/nimbu/~3/dH43-E3msa0/diversity.html</link>
 <description>&lt;p&gt;What should be the aims of a web&amp;nbsp;conference?&lt;/p&gt;
&lt;p&gt;I think it should be&amp;nbsp;to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provide discussion of interesting&amp;nbsp;perspectives&lt;/li&gt;
&lt;li&gt;Challenge existing&amp;nbsp;perceptions&lt;/li&gt;
&lt;li&gt;Bring diverse set of people&amp;nbsp;together&lt;/li&gt;
&lt;li&gt;Inform the audience on current developments and&amp;nbsp;challenges.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are not met when conferences keep inviting the same people to talk on the same niches in technology, e.g. &amp;#8220;Form Design&amp;#8221;, &amp;#8220;Bulletproof Design&amp;#8221;, &amp;#8220;Getting Real&amp;#8221;, &amp;#8220;Progressive Enhancement&amp;#8221; (and those who even use the same slides)! Granted, those niches are not &amp;#8220;done&amp;#8221; and there is lot to learn, but there is a lot of navel gazing when speakers tackle the same questions and&amp;nbsp;problems.&lt;/p&gt;
&lt;p&gt;I assert some of this stems from the fact that almost all speakers are from countries that have similar cultures, access to internet, and language (&lt;span class="caps"&gt;US&lt;/span&gt;/&lt;span class="caps"&gt;UK&lt;/span&gt;/&lt;span class="caps"&gt;AU&lt;/span&gt;). The problems/challenges that they deal with, are also those that occur within that cultural context. Consequently, the solutions they suggest (while they do their best to be unbiased) do not take into account challenges outside these&amp;nbsp;countries.&lt;/p&gt;
&lt;p&gt;I find that disturbing and sad that conference involve &lt;a href="http://jsconf.eu/2009/speakers.html"&gt;only&lt;/a&gt; &lt;a href="http://jsconf.us/2010/speakers.html" title="speakers"&gt;speakers&lt;/a&gt; &lt;a href="http://futureofwebdesign.com/speakers/"&gt;who&lt;/a&gt; &lt;a href="http://futureofwebapps.com/dublin-2010/speakers/"&gt;reside&lt;/a&gt; &lt;a href="http://webdesignworld.com/2009/seattle/speakers.aspx"&gt;in&lt;/a&gt; those countries. The majority of online users, though, happen to &lt;a href="http://www.internetworldstats.com/"&gt;live elsewhere&lt;/a&gt;. If Web conferences are supposed to be representative of the online world, then, the representation is certainly&amp;nbsp;skewed.&lt;/p&gt;
&lt;p&gt;Most designers/developers overseas face additional challenges while working on the web. Most countries (unlike &lt;span class="caps"&gt;US&lt;/span&gt;/&lt;span class="caps"&gt;UK&lt;/span&gt;/&lt;span class="caps"&gt;AU&lt;/span&gt;) are diverse in the number of languages spoken and cultures that exist. How do they design around that? &lt;a href="http://en.wikipedia.org/wiki/Special:Search/Unwritten_language"&gt;Some languages do not even have written scripts&lt;/a&gt;, how do they work with that? What are some of the design decisions that they take when the written script is right-to-left or&amp;nbsp;top-to-bottom?&lt;/p&gt;
&lt;p&gt;Many of these countries also have &lt;a href="http://en.wikipedia.org/wiki/Internet_censorship_in_the_People's_Republic_of_China"&gt;severe censorship&lt;/a&gt;, how do they get around that? Some of them do not have assured source of power or might not have enough bandwidth to download even &lt;span class="caps"&gt;500MB&lt;/span&gt; file. How do they deal with&amp;nbsp;that?&lt;/p&gt;
&lt;p&gt;Several people in &lt;span class="caps"&gt;US&lt;/span&gt;/&lt;span class="caps"&gt;UK&lt;/span&gt; seem to think that the &amp;#8220;Rest of the World&amp;#8221; will &amp;#8220;catch up&amp;#8221;. But there is nothing to &amp;#8220;catch up&amp;#8221; to, each group of people will use the internet in their own unique ways. Learning about those will definitely impact how we (&lt;span class="caps"&gt;US&lt;/span&gt;/&lt;span class="caps"&gt;UK&lt;/span&gt;/&lt;span class="caps"&gt;AU&lt;/span&gt;) look at website design and&amp;nbsp;development.&lt;/p&gt;
&lt;p&gt;I do agree it is difficult to know who to ask to speak. Probably, speaking to editors at &lt;a href="http://globalvoicesonline.org/"&gt;Global Voices&lt;/a&gt; would be a good place to start from. Opera, Mozilla, and &lt;span class="caps"&gt;W3C&lt;/span&gt; have also taken initiatives or organize conferences/workshops in Asia. South Africa has its &lt;a href="http://www.tech4africa.com/speakers"&gt;Tech4Africa&lt;/a&gt; conference. &lt;a href="http://www.theglobeandmail.com/news/technology/africas-booming-tech-space-will-define-the-continents-future/article1563090/"&gt;&lt;span class="caps"&gt;TMS&lt;/span&gt; Ruge&lt;/a&gt; makes the case for why African countries should be counted in the technology space (&lt;a href="http://panelpicker.sxsw.com/ideas/view/4387"&gt;he also spoke at &lt;span class="caps"&gt;SXSW&lt;/span&gt;&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;And yes, I do speak from my experience of being one of the unseen and unheard. Living in the &lt;span class="caps"&gt;US&lt;/span&gt;, I am acutely aware of how ignorant most people are about how the rest of the world lives (surprisingly, the reverse is not true). The ignorance sometimes translates to disrespect or foolhardy choices. I would at least hope that for a platform as non-stereotypical as the web, we should try to mitigate it, since the websites/applications we design and develop are accessed by people from all over the world. The more we learn about the world outside our comfort zone, the better informed our design and development will&amp;nbsp;be.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/dH43-E3msa0" height="1" width="1"/&gt;</description>
 <comments>http://nimbupani.com/diversity.html#comments</comments>
 <category domain="http://nimbupani.com/web-design.html">web design</category>
 <pubDate>Fri, 21 May 2010 02:45:05 +0000</pubDate>
 <dc:creator>divya</dc:creator>
 <guid isPermaLink="false">678 at http://nimbupani.com</guid>
<feedburner:origLink>http://nimbupani.com/diversity.html</feedburner:origLink></item>
<item>
 <title>Notes from a JavaScript n00b</title>
 <link>http://feedproxy.google.com/~r/nimbu/~3/gRkPZz-klok/notes-from-javascript-n00b.html</link>
 <description>&lt;p&gt;So, apparently I have been sleeping while all designers worth their salt have been diving into JavaScript like it is &lt;a href="http://en.wikipedia.org/wiki/2012_phenomenon"&gt;2012&lt;/a&gt;. While I have been a very early evangelist of jQuery, I knew only enough to get me a solution but nothing in depth of whats, ifs, and whys of JavsScript. So, a month ago, I decided to spend a Saturday watching the &lt;a href="http://video.yahoo.com/watch/111593/1710507"&gt;JavaScript, the programming language lectures by Douglas Crockford&lt;/a&gt;. If you are in the same boat as I am and want to be able to write JavaScript (or even if you are using jQuery or other frameworks), this will be the best 6 hours you will&amp;nbsp;spend.&lt;/p&gt;
&lt;h3&gt;Caveats&lt;/h3&gt;
&lt;p&gt;You need to know the jargon of a programming language (not &lt;span class="caps"&gt;HTML&lt;/span&gt;), e.g. type, objects, arrays, etc. I think you might have a hard time understanding JavaScript if you are used to Java, or &lt;span class="caps"&gt;PHP&lt;/span&gt;. Thankfully, I don&amp;#8217;t remember my life as a programmer, so it made understanding the lectures&amp;nbsp;easy.&lt;/p&gt;
&lt;p&gt;The lectures are actually only 1.5 hours long. I mentioned 6 hours because, I (thanks to prodding from &lt;a href="http://deepak.jois.name"&gt;Deepak&lt;/a&gt;) paused the video every minute to try out what Douglas was talking about on Firebug Console, and trying out other &amp;#8220;what-if&amp;#8221; cases that he did not&amp;nbsp;mention.&lt;/p&gt;
&lt;h3&gt;Are you&amp;nbsp;ready?&lt;/h3&gt;
&lt;p&gt;These notes might sound a lot like the &lt;a href="http://neverseenlost.wordpress.com/"&gt;description of Lost by someone who has never seen it&lt;/a&gt;, which means, it might at least be entertaining. From what I have learnt, it seems &lt;a href="http://nimbupani.com/dom-ecmascript-and-other-puzzles.html"&gt;JavaScript&lt;/a&gt; is an irrational language much like you and me, which causes much grief to&amp;nbsp;programmers.&lt;/p&gt;
&lt;p&gt;Without further ado, here are my notes on&amp;nbsp;JavaScript:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;There is only one type for a number, and that is a&amp;nbsp;double.&lt;/li&gt;
&lt;li&gt;There is only one String type, and does not have a type of Char like some other languages&amp;nbsp;(Java)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Math.floor()&lt;/code&gt; and &lt;code&gt;parseInt()&lt;/code&gt; do almost the same thing, which is to return an integer value based on what gets passed into them, but &lt;code&gt;Math.floor("10f")&lt;/code&gt; returns &lt;code&gt;NaN&lt;/code&gt; (&amp;#8220;Not a Number&amp;#8221;) but &lt;code&gt;parseInt("10f")&lt;/code&gt; will return &lt;code&gt;10&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;JavaScript Strings are &lt;span class="caps"&gt;UCS&lt;/span&gt;-2 encoded which is almost all of &lt;span class="caps"&gt;UTF&lt;/span&gt;-8 (but excludes some new characters, and something called &lt;a href="http://msdn.microsoft.com/en-us/library/ew7hbz7k(VS.71).aspx"&gt;surrogate pairs&lt;/a&gt;).
	&lt;/li&gt;
&lt;li&gt;JavaScript has many &amp;#8220;unknown&amp;#8221; values: &lt;code&gt;NaN&lt;/code&gt;, &lt;code&gt;null&lt;/code&gt;, &lt;code&gt;undefined&lt;/code&gt;. &lt;/li&gt;
&lt;li&gt;&lt;code&gt;NaN&lt;/code&gt; cannot be compared with or equated to. E.g. the comparison &lt;code&gt;NaN === NaN&lt;/code&gt; evaluatesto &lt;code&gt;false&lt;/code&gt;. &lt;/li&gt;
&lt;li&gt;&lt;code&gt;null&lt;/code&gt; is an object (one of the schizophrenic aspects of&amp;nbsp;JavaScript).
	&lt;/li&gt;
&lt;li&gt;&lt;code&gt;undefined&lt;/code&gt; is the default value of any variable that has not yet been assigned a value (as you would have realised when you bang your keyboard in frustration at &amp;#8220;Object undefined&amp;#8221;&amp;nbsp;errors).
	&lt;/li&gt;
&lt;li&gt;Setting any variable to &lt;code&gt;undefined&lt;/code&gt; is equivalent to deleting&amp;nbsp;it.&lt;/li&gt;
&lt;li&gt;JavaScript statements can be &amp;#8220;truthy&amp;#8221; or&amp;nbsp;&amp;#8220;falsy&amp;#8221;&lt;/li&gt;
&lt;li&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;falsy&amp;#8221; statements are those that evaluate to &lt;code&gt;null&lt;/code&gt;/&lt;code&gt;undefined&lt;/code&gt;/&lt;code&gt;NaN&lt;/code&gt;/&lt;code&gt;""&lt;/code&gt;/&lt;code&gt;false&lt;/code&gt; (bool)/&lt;code&gt;0&lt;/code&gt;&amp;nbsp;(int)
	&lt;/li&gt;
&lt;li&gt;Rest of the statements are true including those that evaluate to &lt;code&gt;"0"&lt;/code&gt; (string)/ &lt;code&gt;"false"&lt;/code&gt;&amp;nbsp;(string).
	&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The easiest way to convert a string to number is to put a &amp;#8220;+&amp;#8221; (unary operator) before it.&amp;nbsp;E.g.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;a = +"42" 
b = a + 5 // b = 47

a = "42"
b = a + 5 // b = 425
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The comparison operators &lt;code&gt;==&lt;/code&gt; and &lt;code&gt;===&lt;/code&gt; are different. &lt;code&gt;==&lt;/code&gt; can do type coercion which means if the two values being compared are of different types (e.g. String and Int), it can convert one to the other (I am not clear on what gets converted to what), and compare the values. &lt;code&gt;===&lt;/code&gt; does not do that.&amp;nbsp;E.g.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;43 == "43" // evaluates to true
43 === "43" // evaluates to false&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;!&lt;/code&gt; returns boolean true, if the associated expression is falsy.&amp;nbsp;e.g.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(!(43 === "43")) // true&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;!!&lt;/code&gt; returns the boolean equivalent of the truthy/falsy nature of the expression associated with it.&amp;nbsp;e.g.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;!!(43 === "43") // false&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So, in this way, even if your expression evaluates to &lt;code&gt;null&lt;/code&gt;, &lt;code&gt;undefined&lt;/code&gt; or &lt;code&gt;NaN&lt;/code&gt;, you can use this operator to only use the boolean equivalent than these unknown&amp;nbsp;values.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
		Switch statements use &amp;#8220;===&amp;#8221;&amp;nbsp;comparison
	&lt;/li&gt;
&lt;li&gt;Declare a variable with &lt;code&gt;var&lt;/code&gt; before it (e.g. &lt;code&gt;var variablename&lt;/code&gt;), so that its scope is local to where it was declared. Otherwise the variable will be available globally (and susceptible to accidental&amp;nbsp;modifications)&lt;/li&gt;
&lt;li&gt;A variable declared in a function is available throughout the function and not just within blocks (e.g. a variable declared in if/switch statements of a function is also available for other operations in the same&amp;nbsp;function).
	&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can define a function in two&amp;nbsp;ways:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1. var a = function() {} 
2. var a = new function() {} 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;#1 implies the function returns undefined value unless there is a return&amp;nbsp;statement.&lt;/p&gt;
&lt;p&gt;#2 implies the function returns an object if there is no return statement (so it acts as a &lt;a href="http://en.wikipedia.org/wiki/Constructor_(object-oriented_programming)"&gt;constructor&lt;/a&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;An object contains &amp;#8220;name: value&amp;#8221; pairs, the value can be another object. The value is referred using &lt;code&gt;object.name&lt;/code&gt; or &lt;code&gt;object[name]&lt;/code&gt;. The name can contain any character but, if you use a name like &lt;code&gt;sd#&lt;/code&gt; you cannot refer to its value in this manner &lt;code&gt;a.sd#&lt;/code&gt; you can only use &lt;code&gt;a["sd#"]&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Objects are passed by reference, so they cannot be compared to check if they contain same name/value pairs.&amp;nbsp;E.g. &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;a = {b:1, c:2};
p = {b:1, c:2};

a == p; // false

p = a;  // name: value pairs of p lost, p points to a

 a == p; // true&lt;/code&gt;
&lt;/pre&gt;&lt;p&gt;So, when you compare two objects, you really are comparing if they are both pointing to the same&amp;nbsp;location.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Arrays inherit from Objects but have additional properties and&amp;nbsp;functions.&lt;/li&gt;
&lt;li&gt;Array length property returns the largest integer index + 1 e.g:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;a[0] = "bobo"; 
a[5] = "dada"; 
console.log(a.length); // results in 6 not 2
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Arrays can have functions&amp;nbsp;too: &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var a = [0, 1, 2];
a.functioname = function() {}		
&lt;/code&gt;
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you delete an item from an array, it does not alter the length of the&amp;nbsp;array.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;typeOf(variableName)&lt;/code&gt; returns Object as the type for an array (so you cannot confirm if that variable points to an array), use &lt;code&gt;variableName.constructor === Array&lt;/code&gt; to check if the variable is an&amp;nbsp;array.
	&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I am pretty sure I must have passed out at this stage after all this knowledge gain. Nevertheless, I am very curious about JavaScript and hoping to learn more from the &lt;a href="http://video.yahoo.com/watch/111585/1027823"&gt;messiah&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;P.S.&lt;/span&gt; I am sorry if it was not as entertaining as the Never Seen Lost blog&amp;nbsp;posts.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/gRkPZz-klok" height="1" width="1"/&gt;</description>
 <comments>http://nimbupani.com/notes-from-javascript-n00b.html#comments</comments>
 <category domain="http://nimbupani.com/web-design.html">web design</category>
 <pubDate>Mon, 10 May 2010 20:18:47 +0000</pubDate>
 <dc:creator>divya</dc:creator>
 <guid isPermaLink="false">676 at http://nimbupani.com</guid>
<feedburner:origLink>http://nimbupani.com/notes-from-javascript-n00b.html</feedburner:origLink></item>
<item>
 <title>Spacing Out on CSS Namespaces</title>
 <link>http://feedproxy.google.com/~r/nimbu/~3/d-DDirB05fQ/spacing-out-on-css-namespaces.html</link>
 <description>&lt;p&gt;One of my favourite past times is opening up a random email from the &lt;a href="http://lists.w3.org/Archives/Public/www-style/"&gt;&lt;span class="caps"&gt;CSS&lt;/span&gt; mailing list&lt;/a&gt; and going down a rabbit hole. On one rainy day, I found myself staring at the specifications for &lt;a href="http://www.w3.org/TR/css3-namespace/#intro"&gt;&lt;span class="caps"&gt;CSS&lt;/span&gt; Namespaces module&lt;/a&gt;. &lt;/p&gt;
&lt;h3&gt;Namespaces&lt;/h3&gt;
&lt;p&gt;As Wikipedia defines it, a &lt;a href="http://en.wikipedia.org/wiki/XML_namespace"&gt;namespace&lt;/a&gt; provides a list of uniquely identifiable elements and attributes in an &lt;span class="caps"&gt;XML&lt;/span&gt; document. Here is how you would define the namespace of an &lt;span class="caps"&gt;XHTML&lt;/span&gt;&amp;nbsp;document:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The &lt;span class="caps"&gt;URL&lt;/span&gt; in the code above is simply the name of that namespace and does not refer to an actual location online. Browsers do not use or process &lt;span class="caps"&gt;URL&lt;/span&gt;. It is just an easy way to understand what that namespace is referring to when someone is reading the source code of the&amp;nbsp;document. &lt;/p&gt;
&lt;h3&gt;&lt;span class="caps"&gt;CSS&lt;/span&gt;&amp;nbsp;Namespaces&lt;/h3&gt;
&lt;p&gt;In 2007, Bert Bos &lt;a href="http://xhtml.com/en/css/conversation-with-css-3-team/"&gt;explained why &lt;span class="caps"&gt;CSS&lt;/span&gt; Namespaces were introduced&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The Namespaces module is very small, very simple, and probably rarely needed, but just because it is simple, it doesn&amp;#8217;t cost much to add it to &lt;span class="caps"&gt;CSS&lt;/span&gt;. Indeed, many browsers have supported it for a long time&amp;nbsp;already.&lt;/p&gt;
&lt;p&gt;The only thing it defines is how to declare an &lt;span class="caps"&gt;XML&lt;/span&gt; Namespace prefix in &lt;span class="caps"&gt;CSS&lt;/span&gt;. That is needed if you want to use selectors that only match elements in a certain&amp;nbsp;namespace. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For example, &lt;span class="caps"&gt;SVG&lt;/span&gt; shares some common elements (e.g. &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;) and &lt;a href="http://www.w3.org/TR/SVG/styling.html#PropertiesFromCSS2"&gt;&lt;span class="caps"&gt;CSS&lt;/span&gt; properties&lt;/a&gt; with &lt;span class="caps"&gt;HTML&lt;/span&gt; with &lt;span class="caps"&gt;XML&lt;/span&gt; and &lt;span class="caps"&gt;HTML&lt;/span&gt;. If you are using the same stylesheet for both &lt;span class="caps"&gt;HTML&lt;/span&gt; and &lt;span class="caps"&gt;SVG&lt;/span&gt; documents, then it is best to separate out the styles for &lt;span class="caps"&gt;SVG&lt;/span&gt; and &lt;span class="caps"&gt;HTML&lt;/span&gt; to prevent any&amp;nbsp;overlap.&lt;/p&gt;
&lt;h3&gt;Usage&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Declare your &lt;span class="caps"&gt;XHTML&lt;/span&gt; doctype and define a&amp;nbsp;namespace:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Strict//EN&amp;quot;  
&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&amp;quot;&amp;gt;  
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; xml:lang=&amp;quot;en&amp;quot; lang=&amp;quot;en&amp;quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In your style sheet, declare the default namespace for the &lt;span class="caps"&gt;CSS&lt;/span&gt;&amp;nbsp;rules:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@namespace "http://www.w3.org/1999/xhtml"; 
@namespace svg "http://www.w3.org/2000/svg"; &lt;/code&gt;
		&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the rules specific to each namespace. If you have declared the above namespaces, you can scope &lt;span class="caps"&gt;CSS&lt;/span&gt; rules to only apply to &lt;span class="caps"&gt;SVG&lt;/span&gt; elements which have the same namespace as&amp;nbsp;above:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;svg|a { color: white; } &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;All the other rules will be applied to &lt;span class="caps"&gt;HTML&lt;/span&gt; elements by&amp;nbsp;default. &lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Using it with &lt;span class="caps"&gt;HTML&lt;/span&gt;&amp;nbsp;5&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://hsivonen.iki.fi/html5-parser-improvements/"&gt;&lt;span class="caps"&gt;HTML5&lt;/span&gt; allows inline &lt;span class="caps"&gt;SVG&lt;/span&gt; and MathML&lt;/a&gt;, which means you can style &lt;span class="caps"&gt;HTML&lt;/span&gt;, inline &lt;span class="caps"&gt;SVG&lt;/span&gt; and MathML elements using the same&amp;nbsp;stylesheet.&lt;/p&gt;
&lt;p&gt;The advantage of &lt;span class="caps"&gt;HTML5&lt;/span&gt; parsing is that, &lt;span class="caps"&gt;HTML5&lt;/span&gt; parsers should &lt;a href="http://wiki.whatwg.org/wiki/HTML_vs._XHTML#Syntax_and_Parsing"&gt;implicitly assign namespaces to known vocabularies (so far &lt;span class="caps"&gt;SVG&lt;/span&gt;, &lt;span class="caps"&gt;XML&lt;/span&gt;, and MathML)&lt;/a&gt;, if the document is &lt;a href="http://wiki.whatwg.org/wiki/HTML_vs._XHTML"&gt;&lt;span class="caps"&gt;HTML&lt;/span&gt;&lt;/a&gt; (and &lt;em&gt;not&lt;/em&gt; &lt;span class="caps"&gt;XHTML&lt;/span&gt;). This means, you do not have to use &lt;code&gt;xmlns&lt;/code&gt; to explicitly specify the namespace for SVG or MathML elements in your HTML5&amp;nbsp;document.&lt;/p&gt;
&lt;p&gt;The bad news is, only &lt;a href="http://nightly.mozilla.org/"&gt;Firefox nightly builds&lt;/a&gt; with &lt;code&gt;html5.enabled = true&lt;/code&gt; set on &lt;code&gt;about:config&lt;/code&gt; parse and recognize inline SVG or&amp;nbsp;MathML.&lt;/p&gt;
&lt;p&gt;Here is a &lt;a href="http://nimbupani.com/demo/namespaces/index.html"&gt;demo of using &lt;span class="caps"&gt;CSS&lt;/span&gt; Namespaces for a &lt;span class="caps"&gt;HTML5&lt;/span&gt; page with inline &lt;span class="caps"&gt;SVG&lt;/span&gt;&lt;/a&gt; (mind you, it only works on Firefox nightlies with html5 parser enabled). If you are one of the 99.9% of the population that does not use Firefox nightlies, this is how it is supposed to&amp;nbsp;look:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://nimbupani.com/files/css3namespace-screenshot.png" alt="screenshot of css3 namespaces demo" /&gt;&lt;/p&gt;
&lt;p&gt;The dinosaur on the left is an inline &lt;span class="caps"&gt;SVG&lt;/span&gt; image which uses styles defined in the &lt;span class="caps"&gt;SVG&lt;/span&gt;&amp;nbsp;namespace.
&lt;/p&gt;&lt;p&gt;As the spec mentions, it is not often you will find use for it.     Though,  &lt;a href="http://www.iecss.com/firefox-3.6.3.css"&gt;Firefox user agent style sheet&lt;/a&gt; uses namespaces to separate the default styles for web pages from those for Firefox &lt;span class="caps"&gt;UI&lt;/span&gt; (which uses &lt;a href="http://en.wikipedia.org/wiki/XUL"&gt;&lt;span class="caps"&gt;XUL&lt;/span&gt;&lt;/a&gt;).&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/d-DDirB05fQ" height="1" width="1"/&gt;</description>
 <comments>http://nimbupani.com/spacing-out-on-css-namespaces.html#comments</comments>
 <category domain="http://nimbupani.com/web-design.html">web design</category>
 <pubDate>Thu, 06 May 2010 15:29:20 +0000</pubDate>
 <dc:creator>divya</dc:creator>
 <guid isPermaLink="false">674 at http://nimbupani.com</guid>
<feedburner:origLink>http://nimbupani.com/spacing-out-on-css-namespaces.html</feedburner:origLink></item>
<item>
 <title>Notes from HTML5 Readiness Hacking</title>
 <link>http://feedproxy.google.com/~r/nimbu/~3/IQPRyvspCm4/notes-from-html5-readiness-hacking.html</link>
 <description>&lt;p&gt;&lt;em&gt;Update:&lt;/em&gt; &lt;a href="http://html5readiness.com"&gt;&lt;span class="caps"&gt;HTML5&lt;/span&gt; Readiness&lt;/a&gt; now shows how &lt;span class="caps"&gt;HTML5&lt;/span&gt; support has evolved since 2008. Click away to see the spurt of growth in&amp;nbsp;2010!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://paulirish.com"&gt;Paul Irish&lt;/a&gt; pinged me on Thursday evening wondering about visualizing browser support per &lt;span class="caps"&gt;HTML5&lt;/span&gt;/&lt;span class="caps"&gt;CSS3&lt;/span&gt; feature for &lt;a href="http://jsconf.us/2010/schedule.html"&gt;his presentation at JSConf&lt;/a&gt; on April 17th. I thought it would be a fun exercise in creating it with the &amp;#8220;cool&amp;#8221; features of &lt;span class="caps"&gt;CSS3&lt;/span&gt;. Soon, Paul had registered the domain and &lt;a href="http://html5readiness.com"&gt;&lt;span class="caps"&gt;HTML5&lt;/span&gt; Readiness&lt;/a&gt; was born. Here are some of the design and implementation notes from that&amp;nbsp;process.&lt;/p&gt;
&lt;h3&gt;Design&lt;/h3&gt;
&lt;p&gt;The intention of the visualization is to show how much support exists for each new &lt;span class="caps"&gt;HTML&lt;/span&gt;/&lt;span class="caps"&gt;CSS&lt;/span&gt; feature. I remembered the graphic showing the &lt;a href="http://www.good.is/post/transparency-america-s-wealthiest-religions"&gt;distribution of wealth among religious Americans&lt;/a&gt; and I thought a similar structure would work for this one too and I really liked this &lt;a href="http://www.flickr.com/photos/eriknitsche/476093355/in/set-72157600143976187/"&gt;ad for General Dynamics by Erik Nitsche&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Paul wanted to show support for 8 browsers (&lt;span class="caps"&gt;IE&lt;/span&gt; 7, 8, 9, Opera 10.10, Safari 4, Chrome 4, Firefox 3.5, and Firefox 3.7). The browsers are grouped into color schemes based on their underlying rendering engine - e.g. all Firefox versions are shades of blue, Chrome/Safari - yellow, &lt;span class="caps"&gt;IE&lt;/span&gt; - pink. Each ray also has a different background color if it is a &lt;span class="caps"&gt;CSS3&lt;/span&gt;&amp;nbsp;feature.&lt;/p&gt;
&lt;p&gt;Each browser is represented with a tile on the bar and gets an equal width of space, so if you see a bar that is full, that means that feature has universal support among all the 8&amp;nbsp;browsers.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://nimbupani.com/files/html5readiness.png" alt="html5readiness.png" border="0" width="600" height="612" /&gt;&lt;/p&gt;
&lt;h3&gt;Sass to&amp;nbsp;rescue&lt;/h3&gt;
&lt;p&gt;There was not enough time to spend working on a photoshop mockup and then implementing the design. I am also more comfortable working on a design in the browser (with all the &lt;span class="caps"&gt;CSS3&lt;/span&gt; bells &lt;span class="amp"&gt;&amp;amp;&lt;/span&gt; whistles), so I dived in to &lt;span class="caps"&gt;HTML&lt;/span&gt;/Sass. &lt;a href="http://sass-lang.com"&gt;Sass&lt;/a&gt; is a life-saver. The transforms (for each ray on the semi-circle), which result in about 114 lines of &lt;span class="caps"&gt;CSS&lt;/span&gt; (when compacted and with vendor-prefixes), are actually a result of just 4 lines of&amp;nbsp;Sass:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@for $i from 1 through 28
 .ray-#{$i}
   +transform((-6.7deg*($i - 1)), 0%, 50%)
  
  i
    +transform((6.7deg*($i - 1)), 50%, 50%)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The odd angle multiplier (6.7) is because each ray (except the first) is transformed so that they fit into the 180 degree arc with equal angular space between each (0, 50% sets the axis for rotation). You can see &lt;a href="http://github.com/paulirish/html5readiness.com/blob/master/src/style.sass"&gt;the full Sass file on Github&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;That&amp;#8217;s it! Most of the work was done Thursday night / Friday morning. It was great fun dealing with 2D graphics after 8 years, and I loved working on&amp;nbsp;it!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/IQPRyvspCm4" height="1" width="1"/&gt;</description>
 <comments>http://nimbupani.com/notes-from-html5-readiness-hacking.html#comments</comments>
 <category domain="http://nimbupani.com/web-design.html">web design</category>
 <pubDate>Sun, 18 Apr 2010 02:04:47 +0000</pubDate>
 <dc:creator>divya</dc:creator>
 <guid isPermaLink="false">673 at http://nimbupani.com</guid>
<feedburner:origLink>http://nimbupani.com/notes-from-html5-readiness-hacking.html</feedburner:origLink></item>
<item>
 <title>Content Models in HTML</title>
 <link>http://feedproxy.google.com/~r/nimbu/~3/iP0KIlcAQ6E/content-models-in-html.html</link>
 <description>&lt;p&gt;So, in the spirit of being the &lt;a href="http://nimbupani.com/font-in-your-face.html"&gt;ferret for jargon I don&amp;#8217;t understand&lt;/a&gt;, I went on a quest to understand what the phrase &amp;#8220;Content Models&amp;#8221;&amp;nbsp;mean. &lt;/p&gt;
&lt;h3&gt;&lt;span class="caps"&gt;WTF&lt;/span&gt; are &amp;#8220;Content&amp;nbsp;Models&amp;#8221;?&lt;/h3&gt;
&lt;p&gt;You will regret asking that question, as it is a rabbit hole. But fear not as this post can be your summary of the excitement that awaits you. In short, Content Models are used to define the kind of content that can be found within an element in &lt;span class="caps"&gt;HTML&lt;/span&gt;. Historically, this is defined in the &lt;a href="http://en.wikipedia.org/wiki/Document_Type_Definition"&gt;&lt;span class="caps"&gt;DTD&lt;/span&gt;&lt;/a&gt; for a &lt;span class="caps"&gt;SGML&lt;/span&gt;-derived language (like &lt;span class="caps"&gt;XML&lt;/span&gt; and &lt;span class="caps"&gt;HTML&lt;/span&gt;&amp;nbsp;4.01).&lt;/p&gt;
&lt;h3&gt;The Story so&amp;nbsp;Far&lt;/h3&gt;
&lt;p&gt;In &lt;span class="caps"&gt;HTML&lt;/span&gt; 4.01 specification, every element needs to be defined and contain a content model. For example, a &lt;code&gt;ul&lt;/code&gt; element can only contain one or more &lt;code&gt;li&lt;/code&gt; elements. An &lt;code&gt;img&lt;/code&gt; cannot contain any element within it, so its content model is&amp;nbsp;empty.&lt;/p&gt;
&lt;p&gt;Several elements are categorized in &lt;span class="caps"&gt;HTML&lt;/span&gt; 4.01 into &lt;em&gt;block&lt;/em&gt; and &lt;em&gt;inline&lt;/em&gt;. This is declared in the &lt;a href="http://www.w3.org/TR/REC-html40/sgml/dtd.html#block"&gt;&lt;span class="caps"&gt;HTML&lt;/span&gt; 4.01  &lt;span class="caps"&gt;DTD&lt;/span&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&amp;lt;!ENTITY % block &amp;quot;P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT | BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS&amp;quot;&amp;gt;and&amp;lt;!ENTITY % inline &amp;quot;#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;&amp;quot;&amp;gt;&lt;/pre&gt;&lt;p&gt;Each element is then defined in the &lt;span class="caps"&gt;DTD&lt;/span&gt; with what kind of content they can contain. For example, while &lt;code&gt;p&lt;/code&gt; is a block element, it can contain only inline elements according to the &lt;a href="http://www.w3.org/TR/REC-html40/struct/text.html#edef-P"&gt;&lt;span class="caps"&gt;DTD&lt;/span&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&amp;lt;!ELEMENT P - O (%inline;)*            -- paragraph --&amp;gt;&lt;/pre&gt;&lt;p&gt;Some elements (like &lt;a href="http://www.w3.org/TR/REC-html40/struct/text.html#edef-ins"&gt;&lt;code&gt;ins&lt;/code&gt; or &lt;code&gt;del&lt;/code&gt;&lt;/a&gt;) can function either as block level or inline elements depending on how they are&amp;nbsp;used. &lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;HTML&lt;/span&gt; 4.01 defines the content models within a &lt;span class="caps"&gt;DTD&lt;/span&gt;, which is referenced by the Doctype declaration at the beginning of a &lt;span class="caps"&gt;HTML&lt;/span&gt; page. In &lt;span class="caps"&gt;HTML5&lt;/span&gt;, the content models are defined within the spec and not in a &lt;span class="caps"&gt;DTD&lt;/span&gt; (this also means you do not have to specify a Doctype, but not doing so will trigger quirks mode in some browsers, so you are recommended to use the &lt;span class="caps"&gt;HTML5&lt;/span&gt; Doctype &lt;code&gt;&amp;lt;!doctype html&amp;gt;&lt;/code&gt;).&lt;/p&gt;
&lt;h3&gt;What&amp;#8217;s new in&amp;nbsp;&lt;span class="caps"&gt;HTML5&lt;/span&gt;?&lt;/h3&gt;
&lt;p&gt;&lt;span class="caps"&gt;HTML5&lt;/span&gt; does away with block and inline categorization of content. There are now &lt;a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/content-models.html#content-models"&gt;several categories&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Metadata&amp;nbsp;content&lt;/li&gt;
&lt;li&gt;Flow&amp;nbsp;content&lt;/li&gt;
&lt;li&gt;Sectioning&amp;nbsp;content&lt;/li&gt;
&lt;li&gt;Heading&amp;nbsp;content&lt;/li&gt;
&lt;li&gt;Phrasing&amp;nbsp;content&lt;/li&gt;
&lt;li&gt;Embedded&amp;nbsp;content&lt;/li&gt;
&lt;li&gt;Interactive&amp;nbsp;content&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each element can belong to one or more categories, and can behave one way or the other depending on the context. Each of them has an expected list of contents. Here is &lt;a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/section-index.html#element-content-categories"&gt;a summary of which elements belong to which&amp;nbsp;categories&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Why is this good to&amp;nbsp;know?&lt;/h3&gt;
&lt;p&gt;There is an experimental&lt;a href="http://www.iandevlin.com/blog/2010/01/html5/enabling-the-html5-parser-in-firefox-3-6"&gt; &lt;span class="caps"&gt;HTML5&lt;/span&gt; parser available on Firefox 3.6&lt;/a&gt; onwards and &lt;a href="http://www.opera.com/docs/specs/presto25/#html5"&gt;basic &lt;span class="caps"&gt;HTML&lt;/span&gt; 5 parsing available for Opera Presto 2.5 rendering engine&lt;/a&gt;. Suffice to say, when all browsers start parsing &lt;span class="caps"&gt;HTML5&lt;/span&gt;, it will be relevant to know which content is being rendered in what context for writing more semantic&amp;nbsp;code.&lt;/p&gt;
&lt;p&gt;Browsers have, for long, worked around incorrect implementations of the &lt;span class="caps"&gt;HTML&lt;/span&gt; specification, so the more rigorous/semantic we are with our markup, the easier it is for the browser to&amp;nbsp;render!&lt;/p&gt;
&lt;p&gt;Or, you can use this knowledge to wisely nod your head when you are trying to parse the messages in the &lt;a href="http://www.whatwg.org/mailing-list"&gt;&lt;span class="caps"&gt;WHATWG&lt;/span&gt; mailing list&lt;/a&gt;!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nimbu/~4/iP0KIlcAQ6E" height="1" width="1"/&gt;</description>
 <comments>http://nimbupani.com/content-models-in-html.html#comments</comments>
 <category domain="http://nimbupani.com/web-design.html">web design</category>
 <pubDate>Mon, 05 Apr 2010 13:55:13 +0000</pubDate>
 <dc:creator>divya</dc:creator>
 <guid isPermaLink="false">672 at http://nimbupani.com</guid>
<feedburner:origLink>http://nimbupani.com/content-models-in-html.html</feedburner:origLink></item>
<lastBuildDate>Wed, 28 Jul 2010 00:00:00 PDT</lastBuildDate></channel>
</rss>
