<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Stubbornella</title>
	<atom:link href="http://www.stubbornella.org/content/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stubbornella.org/content</link>
	<description>A Term of Endearment</description>
	<lastBuildDate>Thu, 29 Jul 2010 04:59:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Woman in technology</title>
		<link>http://www.stubbornella.org/content/2010/07/26/woman-in-technology/</link>
		<comments>http://www.stubbornella.org/content/2010/07/26/woman-in-technology/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 04:43:34 +0000</pubDate>
		<dc:creator>Nicole Sullivan</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[grrlgeek]]></category>

		<guid isPermaLink="false">http://www.stubbornella.org/content/?p=641</guid>
		<description><![CDATA[Usually I avoid topics like women in technology because (1) it is a can of worms, and (2) I can really only speak for myself. For the most part, I'd rather be seen as a person in technology than a woman, but this weekend the twitterverse erupted with opinions about <a href="http://jsconf.eu/2010/google_jsconfeu_2010_conferenc.html">Google sponsoring female students to attend JSConf</a>. As a woman who is often the only-woman-in-the-room, I want people to know it isn't always easy. I was a bit shocked by the blatant failure to empathize.

After conducting a <a href="http://web.mit.edu/fnl/women/women.html">thorough study on the status of female researchers at MIT</a>. The Dean said: 

<blockquote>The heart and soul of discrimination, the last refuge of the bigot, is to say that those who are discriminated against deserve it because they are less good.
<cite>Dean Robert J. Birgeneau, Dean of Science at MIT</cite>
</blockquote>

He says it beautifully. Discrimination now rarely takes the form of some guy saying "hey little lady, shouldn't you let a man handle that?" It is much more subtle, but just as ugly. These days, bright, thoughtful, enlightened people assume that the absence of women in certain fields results from women being unable to compete on merit. The assumption that, if someone creates a scholarship for women, it is because otherwise, women can't hack it. 

I would argue that <a href="https://twitter.com/#list/stubbornella/grrlgeeks">there are female developers who are just as good as men</a>, if not better, but despite that, they are less likely to stay in school, stick with engineering jobs, speak at or even attend conferences, and be recognized for their contributions. The problem compounds itself as women see no role-models for how to be a woman in this field, and only the very thick-skinned manage to stay in engineering and web development. 

<h3>Why is computer science a sausage fest?</h3>

<strong> I believe CS and Web Development currently select for certain masculine qualities that are largely unrelated to someone's prowess as a coder</strong>. ]]></description>
			<content:encoded><![CDATA[<p>Usually I avoid topics like women in technology because (1) it is a can of worms, and (2) I can really only speak for myself. For the most part, I&#8217;d rather be seen as a person in technology than a woman, but this weekend the twitterverse erupted with opinions about <a href="http://jsconf.eu/2010/google_jsconfeu_2010_conferenc.html">Google sponsoring female students to attend JSConf</a>. As a woman who is often the only-woman-in-the-room, I want people to know it isn&#8217;t always easy. I was a bit shocked by the blatant failure to empathize.</p>
<p>On the Big Web Show, <a href="http://5by5.tv/bigwebshow/11">I talked about being a women in a male dominated field (min 7:12)</a>. &#8220;I was a carpenter before I got into web stuff, so you guys can&#8217;t really compete with the carpenters, no matter how unruly you get.&#8221; </p>
<p>That is true, but a simplification. Zeldman threw me a chance to speak openly about being a woman in technology, and out of nervousness, I punted. Perhaps I was also afraid to sound strident? Anyway, I&#8217;m going to share some of the things that have happened to me, in hopes that it helps people realize that I was lucky to be <em>successful and a woman</em>. I mean, just take a look at the <a href="http://www.forbes.com/2010/07/19/fastest-growing-jobs-women-leadership-forbeswoman-work_slide_2.html">fastest growing careers for women</a>. We are veterinary technicians not veterinarians, dental assistants not dentists, medical assistants not doctors. We like to believe we have evolved, but the data speaks to something else. Being a home heath aide is dirty work with bad hours and heavy lifting &#8212; but it is a career women can imagine, whereas, right now, they clearly can&#8217;t imagine themselves coding. I want to understand why not&#8230;</p>
<p>After conducting a <a href="http://web.mit.edu/fnl/women/women.html">thorough study on the status of female researchers at MIT</a>. The Dean said: </p>
<blockquote><p>The heart and soul of discrimination, the last refuge of the bigot, is to say that those who are discriminated against deserve it because they are less good.<br />
<cite>Dean Robert J. Birgeneau, Dean of Science at MIT</cite>
</p></blockquote>
<p>He says it beautifully. Discrimination now rarely takes the form of some guy saying &#8220;hey little lady, shouldn&#8217;t you let a man handle that?&#8221; It is much more subtle, but just as ugly. These days, bright, thoughtful, enlightened people assume that the absence of women in certain fields results from women being unable to compete on merit. The assumption that, if someone creates a scholarship for women, it is because otherwise, women can&#8217;t hack it. </p>
<p>I would argue that <a href="https://twitter.com/#list/stubbornella/grrlgeeks">there are female developers who are just as good as men</a>, if not better, but despite that, they are less likely to stay in school, stick with engineering jobs, speak at or even attend conferences, and be recognized for their contributions. The problem compounds itself as women see no role-models for how to be a woman in this field, and only the very thick-skinned manage to stay in engineering and web development. </p>
<h3>Why is computer science a sausage fest?</h3>
<p><strong> I believe CS and Web Development currently select for certain masculine qualities that are largely unrelated to someone&#8217;s prowess as a coder</strong>. I believe it is these tangential <em>code-cowboy</em> qualities women are unable or unwilling to emulate, and <strong>not</strong> their skill or capacity for abstraction, problem solving, creative thinking, or communication &#8212; All of which actually make them better developers. In fairness, I think a lot of men would rather not live like code-cowboys, but the unspoken judgement is adapt-or-you-must-not-be-smart-enough-for-CS. The vibe is a competitive rather than collaborative, and leaves many women feeling invisible.</p>
<h3>Affirmative action</h3>
<blockquote class="callout"><p>People mistakenly assume that affirmative action is about granting minorities undeserved privileges. In it&#8217;s purist form, affirmative action is about allowing minorities natural talents to flourish by removing artificial, unfair barriers and decoupling the true skills required to succeed in a profession from the cultural baggage that builds naturally within an insular community.</p></blockquote>
<p>If we separate the criteria that makes someone a code-cowboy from the criteria that makes them a solid developer, I think we would find that <strong>women can and do compete despite significant discrimination</strong>. Scholarships like the one Google proposes aren&#8217;t meant to give women of lower merit something they don&#8217;t deserve, they are meant to circumvent the discrimination that extremely talented women still face. If you assume that a scholarship for women exists because women are inherently inferior, rather than because they are simply underrepresented, it might be time to soul-search and ask yourself if there is a bigot inside. </p>
<h3>I (don&#8217;t) wanna be a cowboy, baby</h3>
<div class="line">
<div class="unit size1of2">
<h4>The code cowboy</h4>
<ul class="basicList">
<li>Stays up all night recoding the entire code base, documents nothing, and forbids anyone to touch it because they aren&#8217;t good enough to understand his level of code.</li>
<li>Refuses meetings, chats, or any other form of communication.</li>
<li>Cares more about being perceived as the brilliant-uber-genius than he does about his team working well together.</li>
<li>Gets into silly pissing contests which boil down to &#8220;hehe, my brain is bigger than yours&#8221;.</li>
<li>Finds complex solutions to problems, thus proving his brilliance.</li>
<li>Makes a lot of mistakes due to lack of sleep, overcaffination, and ego &#8212; but thank god he is around to save the day when the bug is discovered.</li>
<li>Is fairly certain clients, PMs, designers, and really anyone he has to deal with on a daily basis is at least three standard deviations below his IQ.</li>
<li>Jumps to say &#8220;me, me, me!&#8221; when credit or rewards for accomplishments are offered.</li>
<li>Jumps to say &#8220;me, me, me!&#8221; when opportunities to attend or speak at conferences arise.</li>
</ul></div>
<div class="unit size1of2 lastUnit">
<h4>The good developer</h4>
<ul class="basicList">
<li>Digs the fact that he is making products <em>for people</em>. Likes people and enjoys communicating with them and understanding how they think. Can put him or herself in other people&#8217;s shoes and reliably imagine how they might react to different parts of the UI.</li>
<li>An excellent problem solver who takes into account all aspects of a challenge when designing a solution  &#8211; including human elements like maintainability and usability.</li>
<li>Shares credit with the entire team or entire internets. Recognizes that no solution evolves in a vacuum. </li>
<li>Applies consistent effort and recognizes that working in a way that promotes long term productivity will yield better results.</li>
<li>Respects the members of his team, including those who aren&#8217;t engineers.</li>
<li>Manages projects so they don&#8217;t require super human feats of sleeplessness to meet deadlines.</li>
<li>Has a life outside of work, other interests, friends, and family &#8212; they love code, but they love lots of other things too. If you don&#8217;t understand how this makes them a better developer, see item #1.</li>
<li>Amazing capacity for abstraction and creative thinking.</li>
</ul></div>
</div>
<h3>The Twit-storm</h3>
<p>Women may be less likely to be a code-cowboy, but they can be amazing developers. We are not trying to give anything to anyone that doesn&#8217;t deserve it, but instead, to counteract the subtle prejudices that leave women feeling invisible, excluded, and unrecognized for their accomplishments. Now, with that in mind, let&#8217;s look at the twit-storm I found after leaving a seven hour mediation session on Saturday. I&#8217;ll put my comments inline since I was unavailable to tweet that day.</p>
<h4>The doofus that started it all:</h4>
<blockquote><p>RT @googlestudents Google grants for female computer scientists to attend JSConf 2010 // this is disgusting.. i hope there is one for guys.<br />
<cite><a href="https://twitter.com/fringley/status/19436886858">fringley</a></cite>
</p></blockquote>
<p>This stinks of jealousy. Why not be happy for the female students? Why rain on someone else&#8217;s parade? Something good happening to someone else seems to disgust fringley. Frankly, it comes off as childish.</p>
<p>Moving on&#8230; this is when the storm began to brew.</p>
<p><a href="http://twitter.com/voodootikigod/status/19439473801"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/2.png" alt="hProof that no good deed goes unstoned http://j.mp/c37Dev what a d-bag #jsconf" title="voodootikigod 2" width="400" height="67" class="alignnone size-full wp-image-642" /></a></p>
<p>Voodootikigod has the longest twitter name in the universe, and he makes a good point, we should remember that Google has good intentions and perhaps not be quite so disgusted. Fringley, I&#8217;m talking to you.</p>
<h4>Special treatment for women with no merit?</h4>
<p><a href="http://twitter.com/jdalton/status/19443182071"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/3.png" alt="@voodootikigod maybe they think that giving special treatmeant to someone based on sex, color, age, ect instead of merit/randomness is wrong" title="jdalton 3" width="400" height="98" class="alignnone size-full wp-image-643" /></a></p>
<p>Jdalton makes a good point. No one wants to feel like they got where they are because of what is in their pants. On the other hand, he assumes those women didn&#8217;t deserve to be sent to JSConf. Why should he assume that? In fact, the website says quite the opposite, the women must &#8220;have a strong academic background with demonstrated leadership ability.&#8221;</p>
<p>I resent the notion that women are inferior and that is why they are getting grants. Google is correcting for women being less likely to stand up and say &#8220;me, me, me!&#8221;, not for their technical skills or development prowess.</p>
<p>Thinking that I got where I am because I&#8217;m a woman and got special treatment (rather than on my own merit) is a painful and insidious form of discrimination. You have to be thick skinned to make it in a field where this kind of thing happens frequently. YES. It happens frequently.</p>
<p>What I&#8217;m trying to say is that women face a special challenge in tech because their male counterparts, when feeling jealous, will tend to pin female geek&#8217;s success on their gender. We face another problem, when we begin to wonder ourselves, and doubt our own abilities. This is the last refuge of the bigot indeed.</p>
<h4>How can we attract more women to the field?</h4>
<p><a href="http://twitter.com/voodootikigod/status/19444500405"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/4.png" alt="@jdalton would love to hear a better way to increase diversity so conversely the CS profession is not dominated by a single gender?" title="voodootikigod" width="400" height="83" class="alignnone size-full wp-image-644" /></a></p>
<p>Yay! I like what voodootikigod says here. I saw Maria Klawe speak at Yahoo! about &#8220;Gender, Lies and Video Games: the Truth about Females and Computing&#8221;. She said that CS is the only science where the participation of women is getting worse not better. We have a problem. We&#8217;re geeks (supposed to be good at problem solving). So let&#8217;s figure it out!</p>
<p>I think we should look at:</p>
<ul class="basicList">
<li>Video games are largely made by and for men. We need to be willing to rethink the genre completely, bust things wide open to make video games appeal more to girls.</li>
<li>CS education works best for people who already know how to code before they begin. CS teaches the theory behind a practice in which they assume you already have some skill. Women are less likely to already know, because they don&#8217;t play video games as much. In addition, code-cowboys among their classmates are likely to judge them harshly for being a beginner. Are psychology majors expected to already know how to psychoanalyze patients before their first semester?</li>
<li>CS education also focuses a lot of effort on puzzles and very abstract concepts when practical applications where you can see the why and how might work better for women (and a hell of a lot of men). I like yummy algorithms, but we could make CS education more accessible by putting them in context.</li>
<li>Women are less likely to jump up and say &#8220;me! me! me!&#8221; They are far more likely to wait to be asked to participate. <strong>We don&#8217;t need women to be different than they are, we just need to invite them in a way that works</strong>. Hell, I spent 8 years coding CSS before I ever spoke about it to anyone. The first time I spoke at a conference, John Allsopp contacted me to ask if I would do it. I never would have submitted a proposal. You might say that I should have, but I would counter that I shouldn&#8217;t need to act like a dude to get respect.</li>
<li>Women don&#8217;t have female role models. Now, I don&#8217;t mean that we need to have deep tear-filled conversations about the perils-of-being-women-in-technology. I would like to talk to geek women about geeky stuff, not about being a woman.</li>
<li>At <a href="http://en.oreilly.com/velocity2010">Velocity Conference</a> this year, they had a girl-geek lunch. It was awesome! Just a note, they also had tons of women speakers and lots of female attendees. For a deep-geek conference, I was very impressed. <strong>Actively seeking female speakers does not mean accepting lower caliber. It means accepting that women might not submit proposals, but they might agree to speak if you ask them nicely. They might not be *famous*, but they may well be amazing innovators, skilled at what they do.</strong></li>
<li>Could we do something like MIT did? They commisioned a giant study, measured <strong>everything</strong>, and found that <a href="http://web.mit.edu/fnl/women/women.html">women were in fact being discriminated against</a>. Their offices were smaller and had fewer windows, their pensions unpaid, they had unequal access to MIT resources. The study painted a grim picture, but then, with true MIT efficiency, they then set out to correct it. Well worth a read, especially if you think we are all just being sensitive. For the record, the ones that stay in the field are absolutely *not* being sensitive. <img src='http://www.stubbornella.org/content/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Recognize the need for work-life balance. Most women still have primary responsibility for children and home. Women need to be equals at home first, but perhaps companies can make it easier for them to get access to awesome childcare and flex time.</li>
<li>We need affirmative action to correct the problem. However, other developers need to recognize that the benefits of affirmative action go to <strong>women of merit</strong>. Not just people who happen to have a vagina.</li>
</ul>
<h4>Problem? What problem?</h4>
<p><a href="http://twitter.com/jdalton/status/19447928816"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/5.png" alt="@voodootikigod as long as there are no barriers for them, and I can&#039;t think of one, I don&#039;t see a problem." title="jdalton 5" width="400" height="85" class="alignnone size-full wp-image-645" /></a></p>
<p>Um, dude, if your site was loading in 18 seconds but you couldn&#8217;t think of any reason for it, would you decide you didn&#8217;t have a performance problem? </p>
<h4>My experiences with sexism</h4>
<p>I don&#8217;t usually share this stuff, because I&#8217;m not thinking about it most of the time, but these things happened to me:</p>
<ul class="basicList">
<li>I had a manager tell me I should stop writing code and focus on powerpoint and management, areas he found to be more in line with my talents. Was it because I&#8217;m a woman? I don&#8217;t know, but it does make me wonder how many women get pushed into management too soon, before they&#8217;ve had a chance to prove their technical chops.</li>
<li>At one company, I had to change desks because people kept asking to schedule appointments with a VP who sat nearby. Even after changing, they would walk past two guys to ask me. Someone suggested hanging a sign, &#8220;I&#8217;m not a secretary.&#8221; I was in a new job and I just wanted to fit in and code cool stuff not hang signs announcing things. There were only three women out of hundreds of engineers on my floor.</li>
<li>A guy whose opinions I usually trust said to me that he believes women&#8217;s brains are fundamentally different and that we aren&#8217;t wired to understand code. He then said I&#8217;m an exception because I&#8217;m smart, but I&#8217;m still doing something which is against my nature.</li>
<li>I once had someone tell me:<br />
<blockquote><p>That guy only wants to work with you because he wants to sleep with you. None of your ideas are that interesting, I&#8217;m just saying, don&#8217;t get mad, it is the only possible explanation.</p></blockquote>
<p>Ow. I might never get over that one. It still stings a year later. I don&#8217;t want special privileges, but on the other hand, it is easy to see how I&#8217;m facing a special kind of discrimination that probably wouldn&#8217;t happen to a man. No one is going to assume that a man is on stage because he looks good in a skirt.</p>
<p>Did the guy want to sleep with me? Maybe, we&#8217;re human and those sorts of things can come up. It isn&#8217;t a big deal. What bothers me is the notion that if he wants to sleep with me, he is completely incapable of evaluating the merit of my ideas. Thus, even if I am granted the privilege of working with him, it says nothing about my skill, intelligence, or capacity for original thought. It is all about my sexuality. </li>
<li>All the ridiculous, but potent, self-doubt that goes along with being a woman-in-tech. I really am my own worst enemy. Maria Klawe calls it &#8220;impostor syndrome&#8221;.</li>
<li>A client asked to have a male coworker on a call with me, though he was several years my junior.</li>
<li>I was asked to speak at a conference. A guy whose talk was rejected said &#8220;you&#8217;re so famous, I wish I was a hot girl.&#8221;</li>
</ul>
<h4>Where have all the women gone?</h4>
<p><a href="http://twitter.com/rmurphey/status/19448234683"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/6.png" alt="@jdalton having to like dick jokes, having no peers, having ppl make sexist jokes &amp; grope you .. definitely not barriers, nope." title="rmurphy 6" width="400" height="82" class="alignnone size-full wp-image-646" /></a></p>
<p>I&#8217;m so sorry that rmurphey went through these things, and I&#8217;m very glad she stayed in the field because we are all better for it.</p>
<p>Maria Klawe also said that even the best women in a CS program are far more likely to drop out than the worst guys. When asked how they think they compare, these women consistently rank themselves far below their actual skill level. This means women aren&#8217;t good at judging their actual skill level or comparing themselves to others. They need mentors and a leg up, to help them do it. Women are also less likely to pester their boss until she finally relents to send them to a conference. Again, we need to <strong>actively invite talented women</strong>. </p>
<p>When Harvey Mudd changed their CS program admission criteria to accept a broader range of people, and stop selecting for the socially-challenged-uber-nerd, they found that <em>everyone&#8217;s grades improved</em>. It benefits everyone to have a diverse group of people in our field.</p>
<p><a href="http://twitter.com/jdalton/status/19448459421"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/7.png" alt="@rmurphey last time I checked right click view source didn&#039;t ask your gender." title="jdalton" width="400" height="68" class="alignnone size-full wp-image-647" /></a></p>
<p>Jdalton, you had made some good points, but at this point I&#8217;m less impressed. Are you really claiming that gender discrimination doesn&#8217;t happen? What we have here is a complete failure to empathize. </p>
<p><a href="http://twitter.com/rmurphey/status/19448554524"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/8.png" alt="@jdalton and your point is? my point is: attending &amp; fully enjoying a conf as a woman is weird &amp; i don’t blame some for needing incentive." title="rmurphy" width="400" height="84" class="alignnone size-full wp-image-648" /></a></p>
<p>And this is part of why it is great to meet Rebecca and other girl geeks. It is tiring to feel weird and stand out all the time. Ultimately, what we want is to stand out for the quality of our work. In order to do that, we need to eliminate some of the obvious gender inequities and find ways to rebalance the flow of new engineers. I believe this will make our products better, our work life better, and our conferences better. We have to be willing to really change things to make CS fit women better&#8230; it shouldn&#8217;t only be the women we are trying to change.</p>
<p><a href="http://twitter.com/getify/status/19448781158"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/9.png" alt=".@rmurphey women like you @stubbornella &amp; @amyhoy are well respected in the dev community. is respect not enough for acceptance?" title="getify" width="400" height="111" class="alignnone size-full wp-image-649" /></a></p>
<p>Getify, it sure helps, but it is only one small piece of a larger puzzle. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.stubbornella.org/content/2010/07/26/woman-in-technology/feed/</wfw:commentRss>
		<slash:comments>205</slash:comments>
		</item>
		<item>
		<title>Birthday Blender &amp; Poached Eggs</title>
		<link>http://www.stubbornella.org/content/2010/07/14/birthday-blender-poached-eggs/</link>
		<comments>http://www.stubbornella.org/content/2010/07/14/birthday-blender-poached-eggs/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 18:46:20 +0000</pubDate>
		<dc:creator>Nicole Sullivan</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[morethanageek]]></category>

		<guid isPermaLink="false">http://www.stubbornella.org/content/?p=617</guid>
		<description><![CDATA[<div class="media"><a href="http://amzn.to/dh12O9" class="img"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/sexy-blender-150x150.jpg" alt="KitchenAid 5-Speed Custom Metallic Blenders" title="Sexy Blender" width="150" height="150" class="alignnone size-thumbnail wp-image-618" /></a><div class="bd">If you follow my tweets, you will have noticed that I've been obsessively trying to learn to cook poached eggs -- and eating a lot of not-quite-poached eggs in the process. My results were much improved by an awesome YouTube video showing a <a href="http://www.youtube.com/watch?v=Bxvxwk3TFPQ">poaching technique that uses a bowl and vinegar</a>. What is an egg poacher? And how does albumin in the egg white cause it to coagulate? I'm still not sure, but I'm now eating properly poached egg in ramen and on english muffins. Yay!

So, with that success, I <a href="https://twitter.com/stubbornella/status/17735645626">decided it was time to make hollandaise sauce</a>. Crazy for a girl who doesn't cook, but I'm on a roll.  My friend John <a href="https://twitter.com/romkey/status/17736048643">suggested a recipe that requires a blender</a>, so with my birthday coming up, I decided to order one.

I looked in a few stores and finally ordered a <a href="http://amzn.to/dh12O9" >Kitchenaide</a> from Amazon. I was a little afraid to get one sight unseen because it is hard to judge quality from a photo, but it came today and it looks like the iphone of blenders. It is a sexy blender. W00t!

I also got a <a href="http://amzn.to/dcHQ82">slotted spoon</a>, because I was in a kitchen gizmos kind of mood, and, it really is difficult making poached eggs without one.

Surprised to see me posting about non-tech stuff? Check out my post about <a href="http://www.stubbornella.org/content/2010/07/13/being-shy-and-being-myself/">being shy and being myself on the internets</a>. When the blender came in the mail today, I was inspired to write my first non-tech post in a long time.
</div>
</div>]]></description>
			<content:encoded><![CDATA[<div class="media"><a href="http://amzn.to/dh12O9" class="img"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/sexy-blender-300x300.jpg" alt="KitchenAid 5-Speed Custom Metallic Blenders" title="Sexy Blender" width="300" height="300" class="alignnone size-medium wp-image-618" /></a>
<div class="bd">If you follow my tweets, you will have noticed that I&#8217;ve been obsessively trying to learn to cook poached eggs &#8212; and eating a lot of not-quite-poached eggs in the process. My results were much improved by an awesome YouTube video showing a <a href="http://www.youtube.com/watch?v=Bxvxwk3TFPQ">poaching technique that uses a bowl and vinegar</a>. What is an egg poacher? And how does albumin in the egg white cause it to coagulate? I&#8217;m still not sure, but I&#8217;m now eating properly poached egg in ramen and on english muffins. Yay!</p>
<p>So, with that success, I <a href="https://twitter.com/stubbornella/status/17735645626">decided it was time to make hollandaise sauce</a>. Crazy for a girl who doesn&#8217;t cook, but I&#8217;m on a roll.  My friend John <a href="https://twitter.com/romkey/status/17736048643">suggested a recipe that requires a blender</a>, so with my birthday coming up, I decided to order one.</p>
<p>I looked in a few stores and finally ordered a <a href="http://amzn.to/dh12O9" >Kitchenaide</a> from Amazon. I was a little afraid to get one sight unseen because it is hard to judge quality from a photo, but it came today and it looks like the iphone of blenders. It is a sexy blender. W00t!</p>
<p>I also got a <a href="http://amzn.to/dcHQ82">slotted spoon</a>, because I was in a kitchen gizmos kind of mood, and, it really is difficult making poached eggs without one.</p>
<p>Surprised to see me posting about non-tech stuff? Check out my post about <a href="http://www.stubbornella.org/content/2010/07/13/being-shy-and-being-myself/">being shy and being myself on the internets</a>. When the blender came in the mail today, I was inspired to write my first non-tech post in a long time.
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stubbornella.org/content/2010/07/14/birthday-blender-poached-eggs/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Being Shy and Being Myself</title>
		<link>http://www.stubbornella.org/content/2010/07/13/being-shy-and-being-myself/</link>
		<comments>http://www.stubbornella.org/content/2010/07/13/being-shy-and-being-myself/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 01:43:25 +0000</pubDate>
		<dc:creator>Nicole Sullivan</dc:creator>
				<category><![CDATA[Friends]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[morethanageek]]></category>

		<guid isPermaLink="false">http://www.stubbornella.org/content/?p=625</guid>
		<description><![CDATA[<div class="media">
<a href="http://tweetstats.com/" class="img"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/tweets-after-the-ajaxian-post-via-tweet-stats-150x150.png" alt="tweetstats.com for statistics about twitter usage" title="Tweets after the Ajaxian post - via tweetstats.com" width="150" height="150" class="alignnone size-thumbnail wp-image-626" /></a>

<div class="bd">

A little over a year ago <a href="http://ajaxian.com/archives/nicole-sullivans-object-oriented-css">Ajaxian published a piece on my CSS techniques</a>. Fortuitously, this forced me to start talking to people about my ideas, to create an open source project, and to speak at conferences. I’m shy, so I might not have taken the leap on my own.

For the first time, people followed me on twitter that I hadn’t met before. My blog posts got actual, interesting comments -- along with some trolls, of course. Immediately, I stopped posting anything non-techie. I shouldn’t bother people with the delight I felt at eating corn flakes for breakfast, right? The truth is, I was terrified. I’m a lurker. I rarely even comment on blogs. For about a month, I stopped tweeting. Then, slowly, I became less shy and more spontaneous.  A year has passed, and I’ve learned a lot about not taking things personally, how to deal with trolls, and how to be myself and be on the internets. 
</div>
</div>]]></description>
			<content:encoded><![CDATA[<div class="media">
<p><a href="http://tweetstats.com/" class="img"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/tweets-after-the-ajaxian-post-via-tweet-stats-150x150.png" alt="tweetstats.com for statistics about twitter usage" title="Tweets after the Ajaxian post - via tweetstats.com" width="150" height="150" class="alignnone size-thumbnail wp-image-626" /></a></p>
<div class="bd">
<p>A little over a year ago <a href="http://ajaxian.com/archives/nicole-sullivans-object-oriented-css">Ajaxian published a piece on my CSS techniques</a>. Fortuitously, this forced me to start talking to people about my ideas, to create an open source project, and to speak at conferences. I’m shy, so I might not have taken the leap on my own.</p>
<p>For the first time, people followed me on twitter that I hadn’t met before. My blog posts got actual, interesting comments &#8212; along with some trolls, of course. Immediately, I stopped posting anything non-techie. I shouldn’t bother people with the delight I felt at eating corn flakes for breakfast, right? The truth is, I was terrified. I’m a lurker. I rarely even comment on blogs. For about a month, I stopped tweeting. Then, slowly, I became less shy and more spontaneous.  A year has passed, and I’ve learned a lot about not taking things personally, how to deal with trolls, and how to be myself and be on the internets. </p>
<p>A couple months ago, <a href="http://veerle.duoh.com/">a friend, for whom I have a lot of professional respect</a>, launched a redesign of her site. I was very inspired that she put modern home design on equal footing with her web work. I used to write about the colors I had chosen for my living room, but I let shyness get in the way. </p>
<p>Veerle inspired me, this is my website and I should be myself! I geek about all kinds of things and I want to share a wider range of that with the world. I’ll talk about geeky stuff, but also industrial modern furniture, carpentry, building a bicycle seat, ergonomics, and toe-cleavage ballet flats. Maybe I’ll even tell you how I painted a room in my house “accidental lavender.” </p>
<p>If you aren’t interested in all that, you can always browse in the “geek” category only.
</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stubbornella.org/content/2010/07/13/being-shy-and-being-myself/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Multitasking is killing me (and probably you too)</title>
		<link>http://www.stubbornella.org/content/2010/07/11/multitasking-is-killing-me-and-probably-you-too/</link>
		<comments>http://www.stubbornella.org/content/2010/07/11/multitasking-is-killing-me-and-probably-you-too/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 23:12:22 +0000</pubDate>
		<dc:creator>Nicole Sullivan</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Navel Gazing]]></category>
		<category><![CDATA[oocss]]></category>

		<guid isPermaLink="false">http://www.stubbornella.org/content/?p=601</guid>
		<description><![CDATA[Multitasking has been stressing me, robbing me of my focus, my productivity, and my appreciation of the beauty of the exact moment I'm experiencing right now, and dammit, I want my brain back!

Once upon a time, I was assigned 21 projects in my first month on a job. Distinct projects, working with different groups of people on completely different tasks. I went from writing code 95% of the time to running from meeting to meeting. 

At the same time, I installed IM at work and didn't create a separate work account (I can see this clearly now, but at the time, I was just filling out my HR profile, I didn't see the significance). The lines became blurry and I started to get pings around the clock from both work and friends. This is in part due to "crazy-round-world-syndrome". My life <em>is international</em>, that's okay, but it does make boundaries harder. 

Perhaps it really began as early as 2000, when I got my first cell phone and lived with it glued to my ear? Getting an iphone in January of 2007 certainly made it worse because as a device my precious is meant to be petted, not simply used to accomplish other tasks more efficiently. 

<h3><a href="http://delicious.com/stubbornella/multitasking">So what does a good geek do? Gather data</a>.</h3>

I <a href="http://delicious.com/stubbornella/multitasking">gathered data</a> from scientific american, psychology today, read research papers, <a href="http://www.sfinsight.org/">took a mindfullness course</a>, and read links that friends <a href="https://twitter.com/amyhoy/status/18287831584">posted</a> <a href="https://twitter.com/amyhoy/status/18287607503">to</a> <a href="https://twitter.com/zeldman/status/18215308485">twitter</a>. ]]></description>
			<content:encoded><![CDATA[<p>Multitasking has been stressing me, robbing me of my focus, my productivity, and my appreciation of the beauty of the exact moment I&#8217;m experiencing right now, and dammit, I want my brain back!</p>
<p>Once upon a time, I was assigned 21 projects in my first month on a job. Distinct projects, working with different groups of people on completely different tasks. I went from writing code 95% of the time to running from meeting to meeting. </p>
<p>At the same time, I installed IM at work and didn&#8217;t create a separate work account (I can see this clearly now, but at the time, I was just filling out my HR profile, I didn&#8217;t see the significance). The lines became blurry and I started to get pings around the clock from both work and friends. This is in part due to &#8220;crazy-round-world-syndrome&#8221;. My life <em>is international</em>, that&#8217;s okay, but it does make boundaries harder. </p>
<p>Perhaps it really began as early as 2000, when I got my first cell phone and lived with it glued to my ear? Getting an iphone in January of 2007 certainly made it worse because as a device my precious is meant to be petted, not simply used to accomplish other tasks more efficiently. </p>
<h3><a href="http://delicious.com/stubbornella/multitasking">So what does a good geek do? Gather data</a>.</h3>
<p>I <a href="http://delicious.com/stubbornella/multitasking">gathered data</a> from scientific american, psychology today, read research papers, <a href="http://www.sfinsight.org/">took a mindfullness course</a>, and read links that friends <a href="https://twitter.com/amyhoy/status/18287831584">posted</a> <a href="https://twitter.com/amyhoy/status/18287607503">to</a> <a href="https://twitter.com/zeldman/status/18215308485">twitter</a>. </p>
<p>And what did I find? In fact, multitasking is killing me. All these constant chats, SMS, growl notifications, and email are releasing dopamine in my brain. The kind of trigger my ancestors might have gotten from a lion jumping out of the bushes. The rush to immediate action. It causes me to value new information above old information because, like a drug, new information (no matter how trivial) gives me a shot of dopamine. My fix of choice is a cocktail of tweetie, iphone, and IM. I know that because after reading about <a href="http://www.nytimes.com/2010/06/07/technology/07brain.html?pagewanted=all">My Brain On Computers</a>, I <a href="http://www.rescuetime.com/">installed RescueTime to see what I was up to</a>. The results seriously scared me. I was spending far too much time IMing. Even if some of the discussions were technical and useful, the volume was just not acceptable.</p>
<p>Simply knowing this has lead to change. I realized that working from home to much means I am starved for interaction with other developers. I try to get that on IM, but constant distraction is inherent to the medium. Instead, I&#8217;m working from client offices, joining a co-working group, and inviting people to get together to work on projects face-to-face. It is much more satisfying than IM, and doesn&#8217;t come with the chipmunk on crack scatter-brain side effects.</p>
<h3>Mindfullness Meditation</h3>
<p>A month ago, I started doing some mindfulness meditation. It is all about noticing how things are right now. The only effort you extend is a certain curiosity about how things will unfold. The rest happens naturally in proportion to your willingness to see things as they really are. </p>
<p>At first, <a href="http://twitter.com/stubbornella/status/13154366821">Madagascar Bourbon Vanilla cupcakes started tasting oh-so-good</a>. Then I started noticing how much time I spend swapping between tasks. That my frustration tolerance is very low. In other words, if I get stuck, rather than trying to work out a solution, I simply switch to an easier task (like email or twitter). I was spending so much time task-swapping I wasn&#8217;t even noticing what was happening right now! I resolved to walk my dog without checking my iphone. It was wonderful. </p>
<p>As a programmer, I love that amazing feeling of being in-the-zone. When the work seems to flow out of me and  time doesn&#8217;t even really exist anymore.  I had that feeling less and less (or maybe I was just more aware of it because of all the mindfulness meditation?), and I wanted it back. I went through all my old email since OOCSS started taking off. My god, it was a lot of email. Three or four messages per day filled with interesting five-part questions of a deeply technical nature (like cross-browser sub pixel rounding errors).</p>
<p>So I started to say no to projects and speaking engagements, to try to make my life more sane and manageable. </p>
<h3>Feeling less productive</h3>
<div class="media"><div class="wp-caption alignleft" style="width: 200px"><a href="http://www.nytimes.com/interactive/2010/06/07/technology/20100607-distraction-filtering-demo.html" class="img"><img alt="Test your focus (flash) based on a Stanford Study" src="http://graphics8.nytimes.com//images/2010/06/06/homepage/06brain-promo-images/06brain-promo-images-thumbWide.jpg" title="test your focus" width="190" height="126" /></a><p class="wp-caption-text">Test your focus based on a Stanford Study</p></div>
<div class="bd">Then, the guilt set in. I *should* be doing more, I shouldn&#8217;t say no to an awesome project or speaking engagement. I should clone myself so that I could keep up with my email. I am the middle child in my family. My sister is a type-A go getter. She always has a million things going on. She has to-do lists and lists of her to-do lists. I&#8217;ve always felt like that was the &#8220;right&#8221; way to be. So again, I did some research. Multitaskers:</p>
<ul class="basicList">
<li>Did a significantly worse job filtering out the irrelevant information.</li>
<li>Took longer than non-multitaskers to switch among tasks. </li>
<li>Less efficient at juggling problems.</li>
<li>Tended to search for new information rather than accept a reward for putting older, more valuable information to work.</li>
<li>Process visual and auditory input less efficiently.</li>
<li>Become reliant on more a more simplistic, and often inferior, thought process, and can thus fall prey to perceptual decoys.</li>
</ul>
<p>Huh, so maybe this multitasking thing gives the <em>illusion</em> of productivity without achieving <em>higher volume</em>, let alone my real goal of <strong>time spent deliciously focused on the task at hand</strong>.
</div>
</div>
<h3>So what makes people lose focus?</h3>
<p>Decision-making. Apparently, time spent making decisions tires your brain. Much like the muscles of a runner, you can only go so far before you become too tired to run any more. Apparently, even tiny decisions (do I delete or archive this email) can seriously impact your ability to make good choices. See the last bullet point above. </p>
<p>Perhaps there is a parallel between this and choosing 1000 times a day not to respond to growl notifications bouncing in your periphery. Each time you exert will-power, you make it harder to have the mental energy to effectively make analyze your options. I&#8217;m taking this to mean that I should shut down Tweetie, Adium, and Mail for several hours each day, rather than trying to resist each time a new message comes in. To avoid &#8220;ego depletion&#8221; so that I will have enough left to use on something that truly exercises my concentration muscles and teaches me to tolerate frustration, like coding. </p>
<h3>How can you get focus back?</h3>
<p>These papers suggest three things; a good nights sleep, positive emotions, and slowly building up stamina. In addition, another link I got from <a href="https://twitter.com/zeldman/status/18215308485">Zeldman talks about the importance of being curious and gentle with yourself</a>. Saying, &#8220;hmm, I wonder if I&#8217;ll manage to focus today?&#8221; is apparently much more effective and productive than admonishing yourself with a lot of &#8220;musts&#8221;, &#8220;shoulds&#8221;, and other guilt-producing tools of grinding willpower. So, I&#8217;m curious to see if I can find ways to reduce the number and frequency of tiny decisions and displays of self control which happen throughout my day. I wonder if I can make it to meditation today? It will be interesting to see if I can limit communication time to specified periods.</p>
<p>Is it working yet? Is it? Well, I&#8217;ve been doing this stuff for a few weeks, and I do seem to be writing a lot more blog articles. As always, I&#8217;m a work in progress. </p>
<h3>References</h3>
<p><a href="http://delicious.com/stubbornella/multitasking">All of my references are listed on Delicious</a>.  Check them out. There is some really good stuff in these articles. I definitely recommend going directly to the research papers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stubbornella.org/content/2010/07/11/multitasking-is-killing-me-and-probably-you-too/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Guest on The Big Web Show</title>
		<link>http://www.stubbornella.org/content/2010/07/10/guest-on-the-big-web-show/</link>
		<comments>http://www.stubbornella.org/content/2010/07/10/guest-on-the-big-web-show/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 01:26:04 +0000</pubDate>
		<dc:creator>Nicole Sullivan</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Image]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[XHTML / HTML]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[oocss]]></category>

		<guid isPermaLink="false">http://www.stubbornella.org/content/?p=587</guid>
		<description><![CDATA[<div class="media"><a href="http://5by5.tv/bigwebshow/11"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/The-Big-Web-Show-300x180.png" alt="me on the big web show with zeldman and benjamin" width="150" height="90" class="alignnone size-medium wp-image-588 img" /></a><div class="bd">
This week I had the good fortune to spend an hour talking with <a href="http://zeldman.com">Jeffrey Zeldman</a> and <a href="http://danbenjamin.com/">Dan Benjamin</a> about <a href="http://5by5.tv/bigwebshow/11">all things CSS on The Big Web Show</a>. It was lively and fun despite my cell phone making weird noises during the podcast. (Ooops, sorry!)

We talked about progressive enhancement, carpentry, testing, rounded corners, oocss, performance, working on big sites, and being a girl on the internets. If you missed the live show, you can check out the <a href="http://5by5.tv/bigwebshow/11">video podcast</a>. I was super-duper-over-the-top nervous about the show, but I've heard that I didn't come off like a total dweeb. ;) 
  </div>
</div>]]></description>
			<content:encoded><![CDATA[<div class="media"><a href="http://5by5.tv/bigwebshow/11"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/The-Big-Web-Show-300x180.png" alt="me on the big web show with zeldman and benjamin" width="300" height="180" class="alignnone size-medium wp-image-588 img" /></a>
<div class="bd">
This week I had the good fortune to spend an hour talking with <a href="http://zeldman.com">Jeffrey Zeldman</a> and <a href="http://danbenjamin.com/">Dan Benjamin</a> about<a href="http://5by5.tv/bigwebshow/11"> all things CSS on The Big Web Show</a>. It was lively and fun despite my cell phone making weird noises during the podcast. (Ooops, sorry!)</p>
<p>We talked about progressive enhancement, carpentry, testing, rounded corners, oocss, performance, working on big sites, and being a girl on the internets. If you missed the live show, you can check out the <a href="http://5by5.tv/bigwebshow/11">video podcast</a>. I was super-duper-over-the-top nervous about the show, but I&#8217;ve heard that I didn&#8217;t come off like a total dweeb. <img src='http://www.stubbornella.org/content/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
  </div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stubbornella.org/content/2010/07/10/guest-on-the-big-web-show/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Top 5 Mistakes of Massive CSS</title>
		<link>http://www.stubbornella.org/content/2010/07/01/top-5-mistakes-of-massive-css/</link>
		<comments>http://www.stubbornella.org/content/2010/07/01/top-5-mistakes-of-massive-css/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 00:18:24 +0000</pubDate>
		<dc:creator>Nicole Sullivan</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Image]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[XHTML / HTML]]></category>
		<category><![CDATA[oocss]]></category>

		<guid isPermaLink="false">http://www.stubbornella.org/content/?p=556</guid>
		<description><![CDATA[Last week, <a href="http://phpied.com">Stoyan Stefanov</a> and I spoke at <a href="http://en.oreilly.com/velocity2010">Velocity Conference</a> about optimizing massive CSS. We talked about our experiences optimizing large-scale sites like Facebook and Yahoo!, and we discussed our findings regarding the CSS efficiency of the Alexa Top 1000 websites.

Velocity was kind enough to share videos of the session.

What is the state of the internet regarding CSS performance? Kind of sad. We aren't getting a lot of the basics right, and when we look at the more advanced techniques, there are some spectacular examples of what-not-to-do. Why do we care about CSS performance? As Stoyan talks about in the beginning of the video, it blocks progressive rendering and it is very difficult to auto-minify. ]]></description>
			<content:encoded><![CDATA[<p>Last week, <a href="http://phpied.com">Stoyan Stefanov</a> and I spoke at <a href="http://en.oreilly.com/velocity2010">Velocity Conference</a> about optimizing massive CSS. We talked about our experiences optimizing large-scale sites like Facebook and Yahoo!, and we discussed our findings regarding the CSS efficiency of the Alexa Top 1000 websites.</p>
<p>Velocity was kind enough to share videos of the session:</p>
<p><object width="660" height="405"><param name="movie" value="http://www.youtube.com/v/j6sAm7CLoCQ&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/j6sAm7CLoCQ&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="660" height="405"></embed></object></p>
<p>What is the state of the internet regarding CSS performance? Kind of sad. We aren&#8217;t getting a lot of the basics right, and when we look at the more advanced techniques, there are some spectacular examples of what-not-to-do. Why do we care about CSS performance? As Stoyan talks about in the beginning of the video, it blocks progressive rendering and it is very difficult to auto-minify.</p>
<h3>The Basics </h3>
<p>These basic rules, made famous by YSlow, have been around for a long time, and yet our data showed that many sites in the Alexa Top 1000 are still not employing the most basic techniques.</p>
<ul class="basicList">
<li>42% Don&#8217;t GZIP CSS</li>
<li>44% Have more than 2 CSS external files</li>
<li>56% Serve CSS with cookies (yummy to eat, bad for static content)</li>
<li>62% Don&#8217;t minify (check out the YUI Compressor!)</li>
<li>21% Have greater than 100K of CSS</li>
</ul>
<div id="attachment_577" class="wp-caption alignnone" style="width: 310px"><a href="http://www.stubbornella.org/content/wp-content/uploads/2010/07/css_weight_by_site1.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/07/css_weight_by_site1-300x213.png" alt=" " title="CSS Weight for the Alexa Top 1000 Sites" width="300" height="213" class="size-medium wp-image-577" /></a><p class="wp-caption-text">CSS Weight for the Alexa Top 1000 Sites</p></div>
<h3>More Advanced Techniques</h3>
<p>I talked about these more advanced tests for the first time at Velocity. Here is how the top 1000 sites stack up and some recommendations for reasonable results.</p>
<div class="data">
<table>
<thead>
<tr>
<th scope="col"></th>
<th scope="col" colspan="4">Occurrences in one page</th>
</tr>
</thead>
<thead>
<tr>
<th scope="col">Declaration</th>
<th scope="col">Max</th>
<th scope="col">Percentage too many <br />&gt; 10</th>
<th scope="col">Percentage sites *way* too many <br />&gt; 100</th>
<th scope="col">Suggestion</th>
</tr>
</thead>
<tr>
<th scope="row">float</th>
<td>733</td>
<td>56%</td>
<td>13%</td>
<td>If you have a good nestable grids system, you shouldn&#8217;t need many floats. The worst offender in the Alexa Top 1000 sites declared the float property more than 700 times! Aim for less than 10.</td>
</tr>
<tr>
<th scope="row">h1-6</th>
<td>511</td>
<td>56%</td>
<td>9%</td>
<td>There are only so many usable font sizes on the web. Below 10px in most fonts is legible only by mice and few sites use really large typography as a design element. Imagine that a site chooses to use 24px as their max. That leaves 14 different sizes, however, we need to divide that number by two because most users can&#8217;t see subtle differences like a 1px change in font size. That leaves <strong>seven different heading sizes</strong>, which means 56% of sites in the Alexa top 1000 have too many heading declarations.</td>
</tr>
<tr>
<th scope="row">margin: 0</th>
<td>518</td>
<td>64%</td>
<td>14%</td>
<td>Different browsers have different default stylesheets. These stylesheets define how elements should look if you haven&#8217;t chosen an alternate style. It is important to get all browsers to the same starting point because it eliminates bugs and time wasted testing simple browser compatibility issues. This is should be accomplished using a reset stylesheet such as the one included in YUI. When a reset stylesheet isn&#8217;t used, margin zero tends to be sprinkled throughout the stylesheet as developers try to cope with browser differences in the absense of an abstracted solution. Setting the default margins to zero is the most basic job of a reset stylesheet, which means that 64% of the Alexa Top 1000 sites could benefit from including reset.css.</td>
</tr>
<tr>
<th scope="row">padding: 0</th>
<td>510</td>
<td>62%</td>
<td>10%</td>
<td>Excessive declarations of padding zero are similar to margins (see the above description). The worse offender in this case declared padding zero 510 times. </td>
</tr>
<tr>
<th scope="row">font-size</th>
<td>889</td>
<td>78%</td>
<td>23%</td>
<td>Headings (h1-6) often get hidden in class names, which can disguise typography efficiency issues. It is helpful to grep &quot;font-size&quot; to get an idea how many hidden headings exist on the site. The same rules apply to font-size that were explained under h1-6, so in fact the problem is much worse than our initial estimate. These figures mean that 78% of the Alexa Top 1000 sites have excessive heading declarations when we consider hidden headings. In addition, 22% of sites may not be getting the SEO benefits of properly using heading elements. </td>
</tr>
<tr>
<th scope="row">!important</th>
<td>526</td>
<td>-</td>
<td>12%*</td>
<td>Important overrides all other declarations specificity, so it can be dangerous. If used correctly, only on leaf nodes, it can be a powerful tool for creating typography and spacing mixins that stand outside of the normal cascade. On the other hand, excessive use of important is a sure indication of specificity wars. Specificity wars are what happens when developers start trying to beat each others specificity, rather than having a real solid architecture and code standards. Eventually, like the worst offender in this case with 526 important properties, you can end up in a case where nearly every property is marked important. This means that 12% of the Alexa Top 1000 Sites probably has an internal specificity war in it&#8217;s web team.</td>
</tr>
</table>
</div>
<p>* >50</p>
<p>Happy perf optimizing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stubbornella.org/content/2010/07/01/top-5-mistakes-of-massive-css/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>The media object saves hundreds of lines of code</title>
		<link>http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/</link>
		<comments>http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 02:25:39 +0000</pubDate>
		<dc:creator>Nicole Sullivan</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Image]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[XHTML / HTML]]></category>
		<category><![CDATA[oocss]]></category>

		<guid isPermaLink="false">http://www.stubbornella.org/content/?p=497</guid>
		<description><![CDATA[What is the internet made of? At least the UI layer is mainly composed of media blocks. I talked about the Facebook <a href="http://www.stubbornella.org/content/2010/06/21/css-granularity-architecture/">stream story before, and all the tiny objects of which it is composed</a>. For the most part, the stream story is made up of the media object repeated over and over.

The <em>media object</em> is an image to the left, with descriptive content to the right, like this Facebook story:

<a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/media11.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/media11.png" alt="image to the left, descriptive content to the right" title="media1" width="346" height="54" class="alignnone size-full wp-image-469" /></a>

It is a very simple object, but it is very powerful. We can eliminate many lines of code abstracting this repeating pattern. The code for the media block and many other "web Lego" are available on the <a href="http://wiki.github.com/stubbornella/oocss/">Object Oriented CSS open source project</a>.]]></description>
			<content:encoded><![CDATA[<p>What is the internet made of? At least the UI layer is mainly composed of media blocks. I talked about the Facebook <a href="http://www.stubbornella.org/content/2010/06/21/css-granularity-architecture/">stream story before, and all the tiny objects of which it is composed</a>. For the most part, the stream story is made up of the media object repeated over and over.</p>
<p>The <em>media object</em> is an image to the left, with descriptive content to the right, like this Facebook story:</p>
<div id="attachment_468" class="wp-caption alignnone" style="width: 363px"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/media11.png" alt="image to the left, descriptive content to the right" title="media1" width="346" height="54" class="alignnone size-full wp-image-469" /><p class="wp-caption-text">The media object</p></div>
<p>The content area on the right can contain any other objects. In this case, it contains text, but we could put lists, grids, or even other media objects inside. As we&#8217;ve seen before, there are actually many different versions of the media block on the Facebook website (and on most websites). These five are just a few examples of the way this object might be used:</p>
<div id="attachment_468" class="wp-caption alignnone" style="width: 363px"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/5mediaBlocks.png" alt="" title="5mediaBlocks" width="477" height="227" class="alignnone size-full wp-image-479" /><p class="wp-caption-text">Variations on the media object</p></div>
<p>Sometimes the image is a tiny icon, a large video, or an avatar, but it is the same basic object. When I&#8217;m building a new object, the first thing I do is to figure out which parts are reusable components, and define what I <strong>know</strong> and <strong>do not know</strong> about them.</p>
<h3>what do we know?</h3>
<ul class="basicList">
<li> Can be nested
  </li>
<li>Optional right button
  </li>
<li>Must clearfix
</li>
</ul>
<h3>What have we decided *not* to know? (Think flexibility!)</h3>
<p>It is equally important to define what is flexible, or unknown, about a new object.</p>
<ul class="basicList">
<li>Image width, margins, and decoration vary
  </li>
<li>Right content is unknown
  </li>
<li>Width unknown
</li>
</ul>
<p>Once it is built, we can use it to create many of the same basic object. In the following image, I&#8217;ve highlighted all the media objects on the facebook homepage. You can see that even implementing this one object can save a ton of code because we stop repeating ourselves.</p>
<div class="media attribution">
	<span class="img"><br />
          <div id="attachment_504" class="wp-caption alignnone" style="width: 226px"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/Facebook-ImageBlock-216x1024.png" alt="media block use" title="Facebook-ImageBlock" width="216" height="1024" class="size-large wp-image-504" /><p class="wp-caption-text">The media object highlighted in red on the facebook homepage</p></div><br />
        </span></p>
<div class="bd">
<h2>Implementation Details</h2>
<p>           How does it work? The hard part is making sure that the image can be any width, so that the element is reusable. It means our content area needs to be flexible so that it can fill in all the remaining space available. We&#8217;ll have to create a new formatting context to make a flexible column.</p>
<p>The HTML:</p>
<pre>
&lt;div class=&quot;media attribution&quot;&gt;
  &lt;a href=&quot;http://twitter.com/stubbornella&quot; class=&quot;img&quot;&gt;
    &lt;img src=&quot;http://stubbornella.com/profile_image.jpg&quot; alt=&quot;me&quot; /&gt;
  &lt;/a&gt;
  &lt;div class=&quot;bd&quot;&gt;
    @Stubbornella 14 minutes ago
  &lt;/div&gt;
&lt;/div&gt;
</pre>
<p>The CSS:</p>
<pre>
/* ====== media ====== */
.media {margin:10px;}
.media, .bd {overflow:hidden; _overflow:visible; zoom:1;}
.media .img {float:left; margin-right: 10px;}
.media .img img{display:block;}
.media .imgExt{float:right; margin-left: 10px;}
</pre>
<ol>
<li>We clearfix both the wrapper element, media, and the inner content wrapper, bd (body) using the <a href="http://www.stubbornella.org/content/2009/07/23/overflow-a-secret-benefit/">secret benefits of overflow</a>. There are other ways we could have implemented the clearfix plus new formatting context. More on that in a later post.</li>
<li>Then we float our image wrapper (generally a link) left and our optional right region to the right. </li>
<li>Finally, we set some margins and paddings to keep everything lining up nicely. You might choose to set margins via a class which extends the .img object if you have several different kinds of images with different spacing and decoration.</li>
</ol>
<p>Voila, we&#8217;re done. It is a very simple object, but it is very powerful. We can eliminate a lot of lines of code abstracting this repeating pattern. The code for the media block and many other &#8220;web Lego&#8221; are available on the <a href="http://wiki.github.com/stubbornella/oocss/">Object Oriented CSS open source project</a>.
        </div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>CSS Variables Specification</title>
		<link>http://www.stubbornella.org/content/2010/06/22/css-variables-specification/</link>
		<comments>http://www.stubbornella.org/content/2010/06/22/css-variables-specification/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 09:39:42 +0000</pubDate>
		<dc:creator>Nicole Sullivan</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[XHTML / HTML]]></category>

		<guid isPermaLink="false">http://www.stubbornella.org/content/?p=519</guid>
		<description><![CDATA[<div class="media">
  <a class="img" href="http://oocss.org/spec/css-variables.html"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/CSS_Variables-300x167.png" alt="Read the Spec" title="CSS_Variables" width="300" height="167" class="alignnone size-medium wp-image-520" /></a>
  <div class="bd">

I don't want CSS to become a programming language, but I do want it to be a better declarative language. I would like to see <a href="http://oocss.org/spec/css-variables.html">variables added to the CSS Specification</a>. People have been begging for <a href="http://disruptive-innovations.com/zoo/cssvariables/">Variables</a> or <a href="http://fantasai.inkedblade.net/style/specs/constants/">Constants</a> in various incarnations forever. Variables will help us do more with less code. It is time to make it a reality. I like parts of both the Glazman/Hyatt and Fantasai proposals, and I felt a blend of the two would be best for developers, so I wrote this specification. 

I plan to submit the specification to the CSS working group and I'd love your feedback and comments. 
  </div>
</div>]]></description>
			<content:encoded><![CDATA[<div class="media">
  <a class="img" href="http://oocss.org/spec/css-variables.html"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/CSS_Variables-300x167.png" alt="Read the Spec" title="CSS_Variables" width="300" height="167" class="alignnone size-medium wp-image-520" /></a></p>
<div class="bd">
<p>I don&#8217;t want CSS to become a programming language, but I do want it to be a better declarative language. I would like to see <a href="http://oocss.org/spec/css-variables.html">variables added to the CSS Specification</a>. People have been begging for Variables or Constants in various incarnations forever. Variables will help us do more with less code. It is time to make it a reality. I like parts of both the <a href="http://disruptive-innovations.com/zoo/cssvariables/">Glazman/Hyatt</a> and <a href="http://fantasai.inkedblade.net/style/specs/constants/">Fantasai</a> proposals, and I felt a blend of the two would be best for developers, so I wrote this specification. </p>
<p>I plan to submit the specification to the CSS working group and I&#8217;d love your feedback and comments. For those who have seen my <a href="http://www.stubbornella.org/content/2009/11/09/css-wish-list/">wish list for CSS</a>, yes, there are more posts like this coming, but it turns out that spec writing is monstrously difficult and slow, so I decided to publish incrementally. I have a new respect for the craft.</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stubbornella.org/content/2010/06/22/css-variables-specification/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>How to create CSS objects? Get the granularity right!</title>
		<link>http://www.stubbornella.org/content/2010/06/21/css-granularity-architecture/</link>
		<comments>http://www.stubbornella.org/content/2010/06/21/css-granularity-architecture/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 07:41:02 +0000</pubDate>
		<dc:creator>Nicole Sullivan</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Image]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[XHTML / HTML]]></category>

		<guid isPermaLink="false">http://www.stubbornella.org/content/?p=466</guid>
		<description><![CDATA[In my <a href="http://www.stubbornella.org/content/2010/06/12/visual-semantics-in-html-and-css/">previous post</a>, I said:

<blockquote>Shoehorning CSS and HTML into PHP abstractions prevents the code from being DRY and ultimately leads to code bloat, because, the CSS and HTML require a far more granular object structure than the PHP.</blockquote>

And then I didn't expand on it, or give proper context. Ooops, sorry!

In the PHP layer, the following stream story (from facebook) might be a single object. All of the logic of determining which bits of HTML to show or hide are contained within one object structure. 

<a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/Facebook-stream-story.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/Facebook-stream-story.png" alt="An example of a stream story on the facebook website" title="Facebook stream story" width="477" height="213" class="size-full wp-image-467" /></a>

Frequently, developers try to make the CSS match this middle-end logic. We expect all the CSS code for the stream story to be sand-boxed within a wrapper id, for example #story. This ends up with bloated code that isn't DRY. Why? because the proper architecture for the CSS layer is much more granular. Trying to base the CSS architecture on the PHP layer is something akin to trying to use the DB schema to configure apache. It just doesn't work. 

<a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/smaller_objects.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/smaller_objects.png" alt="stream story broken down" title="smaller_objects" width="494" height="216" class="size-full wp-image-477" /></a>]]></description>
			<content:encoded><![CDATA[<p>In a <a href="http://www.stubbornella.org/content/2010/06/12/visual-semantics-in-html-and-css/">previous post</a>, I said:</p>
<blockquote><p>Shoehorning CSS and HTML into PHP abstractions prevents the code from being DRY and ultimately leads to code bloat, because, the CSS and HTML require a far more granular object structure than the PHP.</p></blockquote>
<p>And then I didn&#8217;t expand on it, or give proper context. Ooops, sorry!</p>
<h3>Correct granularity is one of the keys to tiny CSS</h3>
<p>In the PHP layer, the following stream story (from facebook) might be a single object. All of the logic of determining which bits of HTML to show or hide are contained within one object structure. </p>
<div id="attachment_467" class="wp-caption alignnone" style="width: 487px"><a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/Facebook-stream-story.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/Facebook-stream-story.png" alt="An example of a stream story on the facebook website" title="Facebook stream story" width="477" height="213" class="size-full wp-image-467" /></a><p class="wp-caption-text">A Facebook stream story</p></div>
<p>Frequently, developers try to make the CSS match this middle-end logic. We expect all the CSS code for the stream story to be sand-boxed within a wrapper id, for example #story. This ends up with bloated code that isn&#8217;t DRY. Why? because the proper architecture for the CSS layer is much more granular. Trying to base the CSS architecture on the PHP layer is something akin to trying to use the DB schema to configure apache. It just doesn&#8217;t work. </p>
<div id="attachment_477" class="wp-caption alignnone" style="width: 504px"><a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/smaller_objects.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/smaller_objects.png" alt="stream story broken down" title="smaller_objects" width="494" height="216" class="size-full wp-image-477" /></a><p class="wp-caption-text">The stream story is composed of many smaller (more granular) objects</p></div>
<p>So we can see that the stream story example above is composed of many more granular objects. As we make the objects more granular, we begin to see the same patterns emerge over and over, and the same objects become much more reusable. We start to see that most sites on the interwebs are composed of the same basic repeating patterns combined in different ways. As a side benefit, the CSS gets *much* smaller and simpler. </p>
<p>The stream story, one PHP object, is composed of several HTML &#038; CSS objects:</p>
<h3>1 heading </h3>
<p><a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/heading.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/heading.png" alt="Heading" title="heading" width="416" height="33" class="alignnone size-full wp-image-478" /></a></p>
<h3>5 Media Blocks</h3>
<p><a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/5mediaBlocks.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/5mediaBlocks.png" alt="" title="5mediaBlocks" width="477" height="227" class="alignnone size-full wp-image-479" /></a></p>
<h3>2 Link Styles</h3>
<p><a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/link.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/link.png" alt="Link Styles" title="link" width="107" height="45" class="alignnone size-full wp-image-480" /></a></p>
<h3>1 Comments List</h3>
<p><a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/comments_list.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/comments_list.png" alt="Comments List" title="comments_list" width="380" height="160" class="alignnone size-full wp-image-481" /></a></p>
<h3>1 Action List</h3>
<p><a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/action_list.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/action_list.png" alt="Action List" title="action_list" width="263" height="28" class="alignnone size-full wp-image-482" /></a></p>
<h3>1 Paragraph</h3>
<p><a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/paragraph.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/paragraph.png" alt="paragraph" title="paragraph" width="332" height="42" class="alignnone size-full wp-image-483" /></a></p>
<h3>Benefits of this approach?</h3>
<p>Getting the CSS object granularity right means that our CSS (and by extension, our HTML) become much simpler and lighter. Our little reusable object can be employed across the site to create new and different pages without adding to the weight of the CSS.</p>
<p>As a starting point, I recommend creating the following objects: headings, lists, text treatments and links, containers, media, grids, and template. Create all your smallest objects first, before you build whole pages, and your CSS will stay small by default.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stubbornella.org/content/2010/06/21/css-granularity-architecture/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Visual Semantics in HTML and CSS</title>
		<link>http://www.stubbornella.org/content/2010/06/12/visual-semantics-in-html-and-css/</link>
		<comments>http://www.stubbornella.org/content/2010/06/12/visual-semantics-in-html-and-css/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 20:13:27 +0000</pubDate>
		<dc:creator>Nicole Sullivan</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[XHTML / HTML]]></category>

		<guid isPermaLink="false">http://www.stubbornella.org/content/?p=449</guid>
		<description><![CDATA[<a href="http://www.stubbornella.org/content/?p=449"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/internets.png" alt="Simplified web stack" title="internets" width="213" height="261" class="alignleft size-full wp-image-455" /></a>


Each layer in the web stack has its own architecture. You wouldn’t expect the DB schema to be used to architect the PHP middleware, and yet people expect that of the HTML and CSS. HTML needs to be written with a sense of the meaning of the data or content, something I call <em>code semantics</em>. Code semantics are incredibly important in the HTML for both portability and accessibility. On the other hand, CSS really is a separate layer in the stack, and it needs its own architecture that reflects the <em>visual semantics</em> of the page. 

Visual semantics describe all the repeating patterns in the design of the page. They represent the fundamental building blocks of your website. In fact, they are often portable across sites with only minor modifications. Visual semantics shouldn’t necessarily be tied to HTML semantics, because you want an architecture that fits the unique requirements of each layer of the stack...]]></description>
			<content:encoded><![CDATA[<div id="attachment_450" class="wp-caption alignleft" style="width: 308px"><a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/web-stack.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/web-stack.png" alt="The Web Stack" title="web stack" width="298" height="762" class="size-full wp-image-450" /></a><p class="wp-caption-text">The web stack (simplified) between you and your users</p></div>
<p style="clear: right;">On the last day of TXJS, a developer asked me:</p>
<blockquote><p>Doesn&#8217;t Object Oriented CSS leave you with a pile of presentation based class names?</p></blockquote>
<p>Each layer in the web stack has its own architecture. You wouldn’t expect the DB schema to be used to architect the PHP middleware, and yet people expect that of the HTML and CSS. HTML needs to be written with a sense of the meaning of the data or content, something I call <em>code semantics</em>. Code semantics are incredibly important in the HTML for both portability and accessibility. On the other hand, CSS really is a separate layer in the stack, and it needs its own architecture that reflects the <em>visual semantics</em> of the page. </p>
<p>Visual semantics describe all the repeating patterns in the design of the page. They represent the fundamental building blocks of your website. In fact, they are often portable across sites with only minor modifications. Visual semantics shouldn’t necessarily be tied to HTML semantics, because you want an architecture that fits the unique requirements of each layer of the stack.</p>
<h3>Separating Template Architecture From Styles</h3>
<p>Similarly, many PHP developers are tempted to match the CSS and HTML architecture to the PHP. Perhaps it is common to try to apply the abstractions of the layer with which you are most comfortable to those that you find more challenging? I’ve certainly been guilty of it. During my time at Facebook, I expected the PHP layer to match the CSS layer. Luckily Facebook has some smart developers who pushed back and helped grow my understanding. </p>
<p>Shoehorning CSS and HTML into PHP abstractions prevents the code from being DRY and ultimately leads to code bloat, because, the CSS and HTML require a far more granular object structure than the PHP. In fact, PHP templates are not a very natural fit because each template includes many different HTML and CSS objects combined in different ways.</p>
<h3>Visual Semantics != Presentation Based Classes</h3>
<p>It is important to note that I’m not suggesting class names like “giantBlueHeading.” Class names need to represent the object structure you are defining, not the specific visual look and feel of this particular instance. For example, I often choose abstract class names that are easy to remember, like “media”. The media block combines of a fixed width image or flash with some text or other content that describes it. </p>
<p><a href="http://www.stubbornella.org/content/wp-content/uploads/2010/06/media.png"><img src="http://www.stubbornella.org/content/wp-content/uploads/2010/06/media.png" alt="A fixed width image or flash to the left and some text that describes it to the right" title="media" width="141" height="43" class="alignnone size-full wp-image-451" /></a></p>
<p>The media block may be used in many different contexts, for example, to join an icon and a link or a profile picture and user name. The specific use case is separate from the object structure. The HTML can be looked at as instances of the CSS object.</p>
<p>The <a href="http://github.com/stubbornella/oocss/blob/master/core/content.css">code for the media block</a>, and many other base objects are available on the <a href="http://wiki.github.com/stubbornella/oocss/">OOCSS open source project</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stubbornella.org/content/2010/06/12/visual-semantics-in-html-and-css/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
