<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Quick Left Blog</title>
    <link>http://quickleft.com/blog</link>
    <description>Inside Quick Left</description>
    <item>
      <title>Geek Field Day</title>
      <link>http://quickleft.com/blog/geek-field-day</link>
      <description>&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/65/main_a6812c46-56db-4fc5-a93a-8e5b4274e960.png" alt=""&gt;&lt;br&gt;&lt;br&gt;
Hey Boulder Startup Week attendees, only 3 more days until &lt;a href="http://quickleft.com/events/geek_field_day"&gt;Geek Field Day&lt;/a&gt;. Ef was kind enough to let us throw the closing party, so we decided to use this chance to celebrate our geekiness in full force. &lt;/p&gt;

&lt;p&gt;With the help of &lt;a href="https://www.svb.com/accelerator/"&gt;Silicon Valley Bank&lt;/a&gt;, we’ve got an incredible night planned complete with challenges, prizes, commemorative t-shirts, hot dogs, chaco tacos, and booze. The party starts at 6 and runs till 10, be sure to &lt;a href="http://quickleft.com/events/geek_field_day"&gt;register here&lt;/a&gt; to join in on the fun. &lt;/p&gt;

&lt;p&gt;A “Quick” Preview of the Challenges&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.snapjoy.com/"&gt;SnapJoy&lt;/a&gt; is running a photobooth complete with props and run by Boulder's favorite photographer, &lt;a href="https://twitter.com/#!/dhendy"&gt;Dustin&lt;/a&gt;. Make sure to sport your startup’s swag so that it can be captured on the internetz forever. Rumor has it that &lt;a href="https://twitter.com/#!/virtuallybing"&gt;Bing’s&lt;/a&gt; game for a shirt swap, so bring your most enticing tradeable material. &lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.socialengine.net/"&gt;SocialEngine&lt;/a&gt; is bringing you all the fun of Angry Birds IRL. Contestants will launch real birds (okay, maybe they’re peeps) at several carefully crafted targets. Winner gets all the glory. &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.simpleenergy.com/"&gt;Simple Energy&lt;/a&gt; will be shooting down the house with a Nerf gun challenge.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://occipital.com/"&gt;Occipital’s&lt;/a&gt; running a 360 challenge with a delightfully &lt;em&gt;mountainy/sunny&lt;/em&gt; prize. &lt;/li&gt;
&lt;li&gt;
&lt;a href="http://sendgrid.com/"&gt;SendGrid&lt;/a&gt; is bringing the heat with a world class rock/paper/scissors challenge.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.gosphero.com/"&gt;Sphero&lt;/a&gt; will test your gaming skills with a special race track just for Sphero. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition to all this awesomeness, we’ve rented out the hot dog man, stuffed our freezer full of Choco Tacos and Klondike bars, and ordered two kegs. Don’t let us down. &lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/geek-field-day</guid>
      <pubDate>Wed, 16 May 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Becca Gallery</name>
      </author>
    </item>
    <item>
      <title>We #DigOmaha!</title>
      <link>http://quickleft.com/blog/we-digomaha</link>
      <description>&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/64/main_1b149f55-f821-40c9-b8e3-06d48adfcf5e.jpg" alt=""&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://twitter.com/electromute"&gt;Ingrid&lt;/a&gt; and I had an awesome time attending &lt;a href="http://bigomaha.com"&gt;#BigOmaha&lt;/a&gt;! The event was impressive &amp;amp; well organized by &lt;a href="http://www.siliconprairienews.com/"&gt;Silicon Prairie News&lt;/a&gt;. We were stoked to walk away having met a collection of inspiring entrepreneurs, and feeling inspired ourselves. There was a lot of meat to this conference, not to mention our 4 steak dinners in 3 days.&lt;/p&gt;

&lt;p&gt;There is an excellent article about the conference that was written by &lt;a href="http://twitter.com/bradmccarty"&gt;Brad Mccarty&lt;/a&gt; on &lt;a href="http://thenextweb.com/insider/2012/05/14/big-omaha-2012-4-years-in-its-still-the-best-conference-youve-never-attended/?awesm=tnw.to_1EOou&amp;amp;utm_campaign=social%20media&amp;amp;utm_medium=share%20button&amp;amp;utm_source=Twitter&amp;amp;utm_content=Big%20Omaha%202012%20-%204%20years%20in,%20it's%20still%20the%20best%20conference%20you've%20never%20attended"&gt;The Next Web&lt;/a&gt;. Best part is, my face made the headline, &lt;a href="http://thenextweb.com/insider/2012/05/14/big-omaha-2012-4-years-in-its-still-the-best-conference-youve-never-attended/?awesm=tnw.to_1EOou&amp;amp;utm_campaign=social%20media&amp;amp;utm_medium=share%20button&amp;amp;utm_source=Twitter&amp;amp;utm_content=Big%20Omaha%202012%20-%204%20years%20in,%20it's%20still%20the%20best%20conference%20you've%20never%20attended"&gt;check it out&lt;/a&gt;! &lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/we-digomaha</guid>
      <pubDate>Mon, 14 May 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Rachel Ryle</name>
      </author>
    </item>
    <item>
      <title>Representin' Boulder in the Big Apple at Likeable U</title>
      <link>http://quickleft.com/blog/representin-boulder-in-the-big-apple-at-likeable-u</link>
      <description>&lt;p&gt;The Quick Left team is all over the map these days. Literally. Rachel and Ingrid are in Nebraska for &lt;a href="http://quickleft.com/blog/bigomaha-here-we-come"&gt;Big Omaha&lt;/a&gt;, and by the time they get back on Monday, I'll be in New York City during Internet Week to sit on a panel at &lt;a href="http://www.likeableu.com/"&gt;Likeable U&lt;/a&gt; with our friends from TechStars - both old and new.&lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/63/main_27611eee-1c2b-4dae-9fa4-7a8533f2c834.jpg" alt=""&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;I'll be joining &lt;a href="http://twitter.com/kellyrice88"&gt;Kelly Rice&lt;/a&gt;, Kinvey, &lt;a href="https://twitter.com/laurenwick"&gt;Lauren Appelwick&lt;/a&gt;, Shelby.tv, &lt;a href="https://twitter.com/#!/dan_herman"&gt;Dan Herman&lt;/a&gt;, ChatID, and our moderator &lt;a href="http://twitter.com/clareyt"&gt;Clare Tischer&lt;/a&gt;, TechStars. Clare plans to make our event the best of the conference. I'll be doing my best to keep up with the rest of the panel.&lt;/p&gt;

&lt;p&gt;I'm in NYC Monday the 14th and for the conference Tuesday the 15th - drop me a line if you'd like to grab a cup of coffee.&lt;/p&gt;

&lt;p&gt;Most importantly, I'm looking for recommendations for eateries in the Chelsea-ish area - the cheaper, dirtier, and sketchier, the better. Seriously - this is the most important thing aside from the conference itself - recommendations in the comments would be hugely appreciated.&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/representin-boulder-in-the-big-apple-at-likeable-u</guid>
      <pubDate>Thu, 10 May 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Bing Chou</name>
      </author>
    </item>
    <item>
      <title>Command Line Tutorials - IRB &amp; Bash</title>
      <link>http://quickleft.com/blog/command-line-tutorials-irb-bash</link>
      <description>&lt;p&gt;And we're back! This week we're going to cover some more scripting. Make sure you refer to &lt;a href="http://quickleft.com/blog/command-line-tutorials-scripting"&gt;this post&lt;/a&gt; if you're lost, since this week we're going a little bit deeper. If you haven't read any of these, make sure to check out some &lt;a href="http://quickleft.com/blog/command-line-tutorials-ssh"&gt;previous posts&lt;/a&gt; to catch up.&lt;/p&gt;

&lt;p&gt;We're going to mix up Ruby and bash this week and see if we can do something cool along the way. If you don't know Ruby, don't worry: we won't do anything super complicated. You should have Ruby installed by default if you're using OSX. If not, check out &lt;a href="http://www.ruby-lang.org/en/downloads/" target="_blank"&gt;this site&lt;/a&gt; to download it.&lt;/p&gt;

&lt;p&gt;First, type:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;irb&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This brings up the "interactive Ruby shell", which gives you a back-and-forth session with Ruby inside your Terminal. This is a great way to immerse yourself with Ruby. Being able to type pure Ruby into the console is invaluable. Also, don't tell anyone, but sometimes I use it as a calculator.&lt;/p&gt;

&lt;p&gt;Okay, you should have a Ruby prompt. We're going to tell Ruby to do something 10 times:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;10.times do |i|&lt;br&gt;
  `touch ~/#{i}.txt`&lt;br&gt;
end&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Make sure you press enter after each line. If you haven't written Ruby before this may look complicated, but there's not too much going on here. The first line just says that we want to do something 10 times, which makes sense when you read it out loud. The |i| part might make less sense, but it enables us to use the number of times we've repeated so far inside the loop.&lt;/p&gt;

&lt;p&gt;Here's where we come to the most interesting part: Ruby lets us type in bash commands, where it executes them. This works not just in irb, but in any full length script you might want to write. Anything encased in backticks (`) will be processed as a bash command. Inside, you should recognize our old friend, the touch command. The file name might look like gibberish right now, so let's break that down too. &lt;/p&gt;

&lt;p&gt;We want to create a file inside our home directory (~/). Ruby will interpret the next part (&lt;code&gt;#{i}&lt;/code&gt;) as something different each time the loop gets processed. The first time through, &lt;code&gt;#{i}&lt;/code&gt; will be replaced by 0, then the next time it'll be replaced by 1, etc., all the way up through 9.&lt;/p&gt;

&lt;p&gt;Make sure you type in end, to let Ruby know the loop is being ended; that's all we wanted to do. After you press end and enter, you'll see some feedback from irb. Go check out your home directory - you should see 10 shiny new text files.&lt;/p&gt;

&lt;p&gt;Let's do a little cleanup on those files.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;10.times do |i|&lt;br&gt;
  `rm ~/#{i}.txt`&lt;br&gt;
end&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This pretty closely resembles the commands above; we want to make sure we delete exactly the same files that we created (otherwise you could just do something like &lt;code&gt;`rm ~/*.txt`&lt;/code&gt;, which would delete all .txt files in your home directory).&lt;/p&gt;

&lt;p&gt;Playing around with the command line and irb a little more, you can do things like:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;puts `cat ~/temp/test.html`.split.first&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This grabs the contents of temp/test.html, splits it into chunks based on white space, then prints ("puts") the first one out to the command line.&lt;/p&gt;

&lt;p&gt;That's all for this week! If you're a Ruby enthusiast, play around with all of the different bash skills we've acquired and see what cool things you can do!&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/command-line-tutorials-irb-bash</guid>
      <pubDate>Thu, 10 May 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Jessica Dillon</name>
      </author>
    </item>
    <item>
      <title>Looking Awe.sm!</title>
      <link>http://quickleft.com/blog/looking-awe-sm</link>
      <description>&lt;p&gt;You know what's really awesome about Quick Left? We get to build &lt;a href="http://awe.sm"&gt;awe.sm&lt;/a&gt; projects! We currently have the pleasure of working on development with the &lt;a href="http://totally.awe.sm/about"&gt;awe.sm team&lt;/a&gt;! &lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/62/main_12de4f10-21d9-4958-8072-794eaa6cc743.png" alt=""&gt;&lt;br&gt;&lt;br&gt;
Awe.sm does conversion tracking for social media. It helps you track how sharing on Twitter, Facebook, and elsewhere increases revenue and engagement with your app or website. A shout out and a special thanks to the guys at awe.sm for sending us our new awe.sm tees! We definitely got a kick out of them!&lt;br&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/61/main_9ea04453-dc1e-4512-a942-5e9928a8dd6c.jpg" alt=""&gt;&lt;br&gt;&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/looking-awe-sm</guid>
      <pubDate>Wed, 09 May 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Rachel Ryle</name>
      </author>
    </item>
    <item>
      <title>Training 6/16: Intro to Backbone.js</title>
      <link>http://quickleft.com/blog/training-6-16-intro-to-backbone-js</link>
      <description>&lt;p&gt;Quick Left's love affair with the Backbone.js library has culminated in our very first training event, &lt;a href="http://quickleft.com/training/backbone_js"&gt;Intro to Backbone.js&lt;/a&gt;. We've implemented Backbone in a variety of different web applications both internally and for our customers, so it was only natural to share some of that experience in the form of a hands-on workshop.&lt;/p&gt;

&lt;p&gt;We've put several Backbone apps into production, including &lt;a href="http://quickleft.com/work/opdemand"&gt;OpDemand&lt;/a&gt;, &lt;a href="http://quickleft.com/work/raise_your_voice"&gt;Raise Your Voice&lt;/a&gt;, and &lt;a href="http://quickleft.com/work/mobile_messenger"&gt;MobileMSSNGR&lt;/a&gt;. Additionally, &lt;a href="https://github.com/wookiehangover"&gt;Sam&lt;/a&gt; is a contributor to both the &lt;a href="http://documentcloud.github.com/backbone/"&gt;Backbone&lt;/a&gt; and &lt;a href="https://github.com/tbranyen/backbone-boilerplate"&gt;Backbone Boilerplate&lt;/a&gt; projects. Our developers love using the library and jump on just about every opportunity to use it in our projects. Backbone.js is a natural choice for our first training topic.&lt;/p&gt;

&lt;p&gt;It'll be a full day workshop on &lt;strong&gt;Saturday, June 16&lt;/strong&gt; with plenty of time to code and get questions answered away from the usual weekday interruptions. We've capped the attendance at 18 to be sure that everybody has plenty of time to interact with Sam, Nico, and David throughout the day. To get details and to register, visit the &lt;a href="http://quickleft.com/training/backbone_js"&gt;Intro to Backbone.js&lt;/a&gt; page.&lt;/p&gt;

&lt;p&gt;We'll be announcing more classes and hands-on workshops in the coming weeks as we continue to ramp up training at Quick Left. If you've got something you'd like to see on the schedule, let us know in the comments or at &lt;a href="mailto:workshops@quickleft.com"&gt;workshops@quickleft.com&lt;/a&gt; - thanks!&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/training-6-16-intro-to-backbone-js</guid>
      <pubDate>Tue, 08 May 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Bing Chou</name>
      </author>
    </item>
    <item>
      <title>BigOmaha, Here We Come!</title>
      <link>http://quickleft.com/blog/bigomaha-here-we-come</link>
      <description>&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/2/main_b14fe031-a754-4544-9457-d00c96447d96.png" alt=""&gt;&lt;br&gt;&lt;br&gt;
Our bags are packed and we're ready to roll! Finally it's time for &lt;a href="http://bigomaha.com"&gt;#BigOmaha&lt;/a&gt;, we've been looking forward to this conference for months. &lt;a href="http://www.siliconprairienews.com/"&gt;Silicon Prairie News&lt;/a&gt; brings together a gathering of inspired people that focuses on innovation &amp;amp; entrepreneurship. We can't wait to meet new friends &amp;amp; get inspired by all the entrepreneurs who will be there. It's always exciting to see what projects are brewing outside of the Boulder bubble.&lt;/p&gt;

&lt;p&gt;The coolest part is, I had the pleasure of working with &lt;a href="mqVibe.com"&gt;mqVibe.com&lt;/a&gt; to sketch the city map of Omaha for this event. This will be located on the back of the name badges for all &lt;a href="http://bigomaha.com"&gt;#BigOmaha&lt;/a&gt; attendees! From coffee shops to bars, here's a sneak peak of places to go while you're in Omaha...&lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/3/main_9c7c835c-bf3c-4b7a-886b-ae05a2fd0d97.jpg" alt=""&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;If you're attending look for &lt;a href="http://twitter.com/electromute"&gt;Ingrid&lt;/a&gt; and &lt;a href="http://twitter.com/rachelryle"&gt;yours truly&lt;/a&gt;, we'll be handing out free Rocky Mountain High-fives. Additionally, I will be tweeting any &amp;amp; all jokes that I make during the conference and posting them under the hashtag &lt;a href="https://twitter.com/#!/search/%23BigOmahaha"&gt;#BigOmahaha&lt;/a&gt; :)&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/bigomaha-here-we-come</guid>
      <pubDate>Tue, 08 May 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Rachel Ryle</name>
      </author>
    </item>
    <item>
      <title>“Crud is served!”</title>
      <link>http://quickleft.com/blog/crud-is-served--3</link>
      <description>&lt;h2&gt;cru·di·tés   [kroo-di-tey; Fr. kry-dee-tey]&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;noun ( used with a singular or plural verb ) French Cookery .&lt;/em&gt;&lt;br&gt;&lt;em&gt;an appetizer consisting of a variety of raw vegetables, usually cut into strips or bite-size pieces, and served with a dip.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;The best kept secret at QL.&lt;/h3&gt;

&lt;p&gt;Many afternoons each week, our real food chef, whips of a batch of a homemade dip and a platter of fresh chopped pesticide-free veggies.  This afternoon “Crud” (it rhymes with mud, but tastes a whole lot better) gets us through the day.  It’s the afternoon pick-me-up (ranking close to Propane gifts that keep on giving) that feeds our brains and our bodies.  Crud helps us figure it out!&lt;/p&gt;

&lt;h3&gt;Make Crud at home.&lt;/h3&gt;

&lt;p&gt;It is super easy, healthy, and delicious - so go for it and get creative!  Slice up any veggies you like.  Some QL favorites include carrots, celery, cucumbers, jicama and bell peppers.  Then make your favorite dip.  Here is a base recipe for our delicious humus.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ingredients&lt;/strong&gt;&lt;br&gt;
* 1/2 pound of dry garbanzo beans &lt;br&gt;
* 3 T of tahini or 5 T of sesame seeds&lt;br&gt;
* 1/2 a lemon, juiced&lt;br&gt;
* 1 t of real salt&lt;br&gt;
* 2 cloves of garlic&lt;br&gt;
* 1/4 of an onion&lt;br&gt;
* 2 T of cold pressed olive oil&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instructions&lt;/strong&gt;&lt;br&gt;
Soak the garbanzo beans in water, covered on the counter for 24 hours, changing the water once or twice.  When the garbanzos are ready to cook, change the water again, bring to a boil, then reduce to a simmer and cook on low for an hour or more until they are cooked through but not mushy.  Drain, rinse and allow to cool.  Then put all the ingredients into your food processor and blend until smooth.  Adding extra lemon or olive oil will make your humus creamier, adding tahini or sesame seeds will make it nuttier. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Variations&lt;/strong&gt; on the Basic Humus, add any of these to the food processor for a new flavor&lt;br&gt;
* Pesto Humus: a packed handful of basil leaves, another 2T of olive oil, and a small handful of walnuts&lt;br&gt;
* Pickle Humus: a whole cucumber and a teaspoon of dill&lt;br&gt;
* Roasted Red Pepper Humus: broil a red pepper, peel off skin, remove seeds, use the meat&lt;br&gt;
* Black Bean &amp;amp; Avocado Humus: soaked and cooked black beans and a chopped avocado&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/crud-is-served--3</guid>
      <pubDate>Tue, 08 May 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Zane Harris</name>
      </author>
    </item>
    <item>
      <title>Quick Left Supports Ride For Reading</title>
      <link>http://quickleft.com/blog/quick-left-supports-ride-for-reading</link>
      <description>&lt;p&gt;Those of you who follow me on &lt;a href="http://twitter.com/electromute"&gt;Twitter&lt;/a&gt; know that I talk about cycling a lot. It's a sport I grew up participating and one that I truly love. Competition also has the added benefit of allowing me to truly disconnect from work (you can't really think about work issues when you're at your maximum capacity trying to stay with the lead pack in a race). &lt;/p&gt;

&lt;p&gt;At the same time, I also do a lot of mentoring in the sport, from real-time live &lt;a href="http://www.tribellaracing.com/2012/04/04/louisville-criterium-from-every-perspective/"&gt;mentoring in Category 4 women's races&lt;/a&gt;, or teaching women to ride at Boulder's indoor velodrome (which sadly just closed), or sponsoring the Category 4 women's prize list at the &lt;a href="http://www.boulderclassic.net/sponsors.php"&gt;North Boulder Park Classic Criterium&lt;/a&gt;, giving back and showing folks how much fun they can have being fit and healthy is not only fun, but very important to me.&lt;/p&gt;

&lt;p&gt;The cycling team I ride for, &lt;a href="http://www.tribellaracing.com/"&gt;Denver-based Naked Women's Racing, powered by Tribella&lt;/a&gt; also has a strong ethic to giving back. In addition to our race mentoring and overall focus on promoting women in the sport of cycling, we also put on our annual &lt;a href="http://www.tribellaracing.com/2012/03/07/rfr-2012/"&gt;Ride for Reading event&lt;/a&gt;, which coincides with &lt;a href="http://www.rideforreading.com/?page_id=1491"&gt;National Ride for Reading Week&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;On May 11th, we'll be hand delivering the books by bicycle to Barrett Elementary school in north east Denver. Quick Left will be a drop off location for this year's event. In the next couple weeks, please bring used and new age-appropriate books for children. Don't be shy, just ring our bell during business hours. Or, if we're not there, you can try to fit your donations through our mail slot. &lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/59/main_8d15655a-a42f-491a-8892-5a6508703ff5.jpg" alt="Our handy dandy mail slot"&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;We are hoping the books will stack up high and you can see the progress through our window.&lt;/p&gt;

&lt;p&gt;Also, If you'd like to join in the ride and help deliver books (starts and finishes in Denver), you can register on &lt;a href="http://www.prerace.com/races/event/34697/Ride-For-Reading-Denver--CO-Delivery-Denver-CO"&gt;Prerace.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We look forward to your support!&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/quick-left-supports-ride-for-reading</guid>
      <pubDate>Tue, 01 May 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Ingrid Alongi</name>
      </author>
    </item>
    <item>
      <title>Quick Left + Orbotix Hackfest Recap</title>
      <link>http://quickleft.com/blog/quick-left-orbotix-hackfest-recap</link>
      <description>&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/53/main_b6454da2-bb1b-47fc-a150-9f809f307ebc.jpg" alt=""&gt;&lt;br&gt;
Wednesday marked the momentous Quick Left + Orbotix Hackfest. With the help of Quick Left, Orbotix released their web SDK the night of the event, which opened up the mobile playing field to web developers.&lt;/p&gt;

&lt;p&gt;We kicked off the competition at 6:30, which gave developers 3 hours to build their apps.&lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/54/main_92745203-a568-44f9-ae3f-61c7e5a6d2d6.jpg" alt=""&gt;&lt;br&gt;
In the interim, Sphero got lots of loving from the younger crowd,&lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/55/main_6142fb1d-1cbc-431d-b6c4-96d030f060b2.jpg" alt=""&gt;&lt;br&gt;
we watched President Obama &lt;a href="http://www.gosphero.com/president-obama-drives-sphero-during-his-trip-to-boulder-video"&gt;drive Sphero&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/56/main_5719f6c8-2162-4ac0-8709-96e08d23f045.jpg" alt=""&gt;&lt;br&gt;
and we oogled over our new banner.&lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/57/main_8d5a860f-780c-433e-807c-ee3c688e3018.jpg" alt=""&gt;&lt;br&gt;
Final submissions were in at 9:15 and they were they awesome! The judges had to choose between a Sphero night light, a motion detector app, a twitter alert Sphero, and several others. After some tense debate, Forrest Heller (from &lt;a href="http://occipital.com/"&gt;Occipital&lt;/a&gt;) was declared the winner; he skipped away with not one, but two Spheros. &lt;/p&gt;

&lt;p&gt;Thank you to everyone who attended! &lt;/p&gt;

&lt;p&gt;In lieu of a May Hackfest, we’ll be hosting the Boulder Startup Week closing party on May 19th. Get your geek on with us at the &lt;a href="http://plancast.com/p/an0g/closing-party-geek-field-day"&gt;Geek Field Day&lt;/a&gt; extravaganza. &lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/quick-left-orbotix-hackfest-recap</guid>
      <pubDate>Fri, 27 Apr 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Becca Gallery</name>
      </author>
    </item>
    <item>
      <title>Introduction to Database Design (on Rails): Part II</title>
      <link>http://quickleft.com/blog/introduction-to-database-design-on-rails-part-ii</link>
      <description>&lt;p&gt;In a &lt;a href="http://quickleft.com/blog/introduction-to-database-design-on-rails"&gt;previous post&lt;/a&gt;, I explained the fundamentals of database design. This guide will cover the second half of that topic: how to make the database work with Rails. Before reading this you should have a good understanding of what a database is and how to organize one.&lt;/p&gt;

&lt;p&gt;Rails is a framework that sits on top of the programming language Ruby. The framework speeds up web development by filling in code that you'd otherwise write from scratch on every new project. A component of this is ActiveRecord, a subset of Rails that acts as the bridge between your database and your Ruby code.&lt;/p&gt;

&lt;p&gt;Here are two examples of a Ruby class:&lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/44/main_366b4f3c-ec05-439c-b33f-72af98af3881.png" alt="Ruby classes"&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;A class is a just a blueprint for a given object. Just like a house is made from blueprints, an author object is made from an author class. And just like a database table describes one thing, so does a class.&lt;/p&gt;

&lt;p&gt;We represent relationships between tables like this:&lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/45/main_5975d746-8364-478b-b3fe-16459ae34844.png" alt="Rails diagram"&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;The top diagram should be familiar to you; it' s a simple foreign key/primary key database relationship. The Ruby classes at the bottom show how we represent this diagram in code. Here, we're saying that an author object will be the parent of many books, while a book object will have only one parent author. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hint: it's often difficult to decide which class gets the :has_many and which gets the :belongs_to. The way you decide is by finding where the foreign key lives (in this example, the foreign key is author_id). The table with the foreign key will always be the :belongs_to.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This works for all types of relationships. You can add multiple foreign keys to a table and simply add another :belongs_to on your Ruby class:&lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/46/main_1e44371d-90f0-4c87-a461-feba5e009092.png" alt=""&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;You can relate tables that don't have a direct connection (like authors and stores) through a third table:&lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/47/main_6ec216cd-050b-4cc8-9a8d-ae72493fd402.png" alt=""&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;So, what's the point of defining these relationships? The main benefit is that Rails gives you a number of helpful methods to grab records quickly and efficiently. With these simple class definitions…&lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/48/main_1f2449b4-bc4a-4a1e-aa0d-0e549ad5578a.png" alt=""&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;…I can do the following:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c1"&gt;# find an author and see books by her&lt;/span&gt;
&lt;span class="n"&gt;rowling&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Author&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_by_last_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Rowling"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;rowling&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;books&lt;/span&gt; &lt;span class="c1"&gt;# ["Harry Potter", "Harry Potter 2"] (return values here are simplified for clarity)&lt;/span&gt;

&lt;span class="c1"&gt;# find a book and see who the author is&lt;/span&gt;
&lt;span class="n"&gt;harry_potter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Book&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_by_title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Harry Potter"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;harry_potter&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;author&lt;/span&gt; &lt;span class="c1"&gt;# "J.K. Rowling"&lt;/span&gt;

&lt;span class="c1"&gt;# add a book to an author&lt;/span&gt;
&lt;span class="n"&gt;harry_potter_3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Book&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"Harry Potter 3"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;rowling&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;books&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;harry_potter_3&lt;/span&gt; &lt;span class="c1"&gt;# Ruby array push syntax &lt;/span&gt;
&lt;span class="n"&gt;rowling&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;books&lt;/span&gt; &lt;span class="c1"&gt;# ["Harry Potter", "Harry Potter 2", "Harry Potter 3"]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;These simple methods will take care of querying the database, matching the foreign keys, and returning the correct records.  Without the help of ActiveRecord, I would be responsible for writing this implementation code myself.  Take the following example:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;harry_potter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Book&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_by_title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Harry Potter"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;harry_potter&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;author&lt;/span&gt; &lt;span class="c1"&gt;# "J.K. Rowling"&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;If I didn't define my relationships, I would have to find the ID of the book "Harry Potter" in my database, find its author_id attribute, go to the authors table, find the author with that ID, then return that object. But since we've defined our Rails relationships, Active Record can select the right table and match the foreign keys automatically. &lt;/p&gt;

&lt;p&gt;That about covers the basics. There are of course many different relationships I didn't cover here. You can read &lt;a href="http://guides.rubyonrails.org/association_basics.html"&gt;the full RailsGuide&lt;/a&gt; to get a handle on more advanced concepts, or feel free to leave a comment saying what you'd like me to expand on in a future post. &lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/introduction-to-database-design-on-rails-part-ii</guid>
      <pubDate>Thu, 26 Apr 2012 00:00:00 +0000</pubDate>
      <author>
        <name>David Aragon</name>
      </author>
    </item>
    <item>
      <title>Command Line Tutorials - SSH</title>
      <link>http://quickleft.com/blog/command-line-tutorials-ssh</link>
      <description>&lt;p&gt;Hey everybody! Welcome back to our continuing exploration of the command line. As always, make sure you read the &lt;a href="http://quickleft.com/blog/command-line-tutorials-why-i-write-these"&gt;other posts&lt;/a&gt; if you haven't already.&lt;/p&gt;

&lt;p&gt;Today, we're going to talk about two commands related to accessing other servers or computers. If you've ever plan on deploying your software to a server, then remote computing is an important skill to have. Luckily, it's not too hard.&lt;/p&gt;

&lt;p&gt;First, you're going to want to master the "ssh" command. "ssh" stands for Secure SHell, and it's included on most Unix systems. This kind of command has been around as long as Unix, but this one is important because it encrypts your session, meaning nobody can steal your login credentials, or see what kind of things you're doing on the server. Unfortunately, I can only show you what the commands look like, but if you know a remote host you can connect to (and you have credentials, those are important too), then feel free to follow along.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ssh username@hostname&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;It's that easy! Technically the only argument "ssh" needs is the host name. If that's all you supply, then "ssh" assumes your user name on the remote server is the same as your local name. The next thing you'll see, if it's your first time on the server as that user, is a confirmation of the host name.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;The authenticity of host 'hostname (123.4.567.890)' can't be established.&lt;br&gt;
RSA key fingerprint is 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff.&lt;br&gt;
Are you sure you want to continue connecting (yes/no)?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;"ssh" wants to protect you, so it makes sure that that's the computer you're really trying to connect to. Make sure you carefully read this description, since someone could be trying to pull one over on you. If you know you have the right one, then type "yes".&lt;/p&gt;

&lt;p&gt;After that, you'll be prompted for your password. Assuming you have one, go ahead and type it in. Further assuming you're successful, then you'll have a command prompt on the remote host. Celebrate!&lt;/p&gt;

&lt;p&gt;Now that you're here, you'll be able to run most commands that you normally could at your own command prompt. Obviously, the file directory will be different, since you're on a different machine. Depending on the system's configuration, you might have your own home directory, separate from all the other users who could access that machine, but more likely is that you share the same home as everyone else. As a result, it's important to be thoughtful whenever your move/remove/create files on the system; you don't want to accidentally delete someone else's stuff (or maybe you do, but just know that I'm always judging you if that's the case).&lt;/p&gt;

&lt;p&gt;Okay, that's neat. When you're done, type:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;exit&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;"exit" finishes your session on the remote server and returns you to wherever you were when you originally typed the "ssh" command. Let's go a little bit deeper now: assume you have a file on your system that you want to put on a remote server. How could you do that?&lt;/p&gt;

&lt;p&gt;&lt;code&gt;scp test.txt username@hostname:&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The "scp" command stands for "Secure CoPy"; it always takes two arguments: the file you want to copy, and the destination for that file. Here you see the same "username@hostname" as above (swap that with your real name and server name, just like last time). That signifies the machine that you want to port your file over to. After you enter the command, you'll be prompted for your password, just like the "ssh" command.&lt;/p&gt;

&lt;p&gt;Take note of the colon at the end, because it's pretty important. If you leave it just like that, then your file will have the same name it does locally, and it'll be placed in your home directory on the remote machine.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;scp ~/test.txt username@hostname:~/temp/party_time.txt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here we're taking a file from your local home directory and putting it up on the remote server under the subdirectory "temp". At the same time, we're changing the name to party_time.txt.&lt;/p&gt;

&lt;p&gt;Let's take it in reverse. What if you want to get a file from the server and put it on your local machine?&lt;/p&gt;

&lt;p&gt;&lt;code&gt;scp username@hostname:~/.ssh/authorized_keys ~/keys.txt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This command rips the list of authorized keys from the server and puts it in a text file in your home directory. All we had to do was flip the order of the from/to files. Basically, you're taking the file pointed at by the first argument and putting it in the second argument.&lt;/p&gt;

&lt;p&gt;If you have two computers, try taking "scp" and "ssh" for a test drive! All you need to do is figure out your IP address for your target computer, which you can find in your connection settings.&lt;/p&gt;

&lt;p&gt;That's all for this week!&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/command-line-tutorials-ssh</guid>
      <pubDate>Wed, 25 Apr 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Jessica Dillon</name>
      </author>
    </item>
    <item>
      <title>Hackfest Update: Web Developers Rejoice</title>
      <link>http://quickleft.com/blog/hackfest-update-web-developers-rejoice</link>
      <description>&lt;p&gt;This Wednesday from 6 - 10 pm, we’ll be throwing a Sphero-themed Hackfest with Orbotix. Developers will compete against one another for a chance to win a free &lt;a href="http://www.gosphero.com/sphero/overview"&gt;Sphero&lt;/a&gt; (5 chances, in fact).  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE BIG NEWS:&lt;/strong&gt;&lt;br&gt;
Our developers teamed up with Orbotix to work on a version of their SDK that is compatible with PhoneGap. This means that anyone who knows HTML and Javascript can hack on Sphero! Web developers, consider this your call out. You’re not going to let all the Android and iOS folks win all the glory, are you? As for the rest of us non-devs, we can still spend the evening drinking beer, eating pizza, and playing with robots. &lt;/p&gt;

&lt;p&gt;Register for good times &lt;a href="http://quickbotixthackfest.eventbrite.com/"&gt;here&lt;/a&gt;. &lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/hackfest-update-web-developers-rejoice</guid>
      <pubDate>Mon, 23 Apr 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Becca Gallery</name>
      </author>
    </item>
    <item>
      <title>Learnin' the Youth</title>
      <link>http://quickleft.com/blog/learnin-the-youth</link>
      <description>&lt;p&gt;CU Boulder has a well-respected Computer Science program, as well as degrees in design, marketing, and business. What was missing, and what our industry has been demanding, was a way to train students in the intersection of those fields. &lt;a href="http://bdw.colorado.edu/#/programs/"&gt;BDW&lt;/a&gt; seeks to fill that gap with a year long post-graduate program targeted squarely at the startup and agency world. &lt;/p&gt;

&lt;p&gt;The students run their own startup. They consult with real, paying clients. And more and more, they solve hard technical problems using cutting edge technology. When they realized that industry experts would better fulfill the role of transferring real-world experience than any staff they had in-house, they turned to Quick Left.&lt;/p&gt;

&lt;p&gt;Our own Collin and Alex have been teaching the program's Advanced Tech course this semester, preaching the gospel of open source tools and frameworks like git, Ruby, and Rails. The students are also getting a front row seat to the Agile process, learning how to effectively estimate and manage a complex software development cycle.&lt;/p&gt;

&lt;p&gt;No matter their role in a company beyond graduation, having experience in HTML, CSS, Ruby, source control, and the Agile process will give them a leg up on getting into the career of their choice, and we've been happy to help them along the way.&lt;/p&gt;

&lt;p&gt;Thanks C4ers!&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/learnin-the-youth</guid>
      <pubDate>Wed, 18 Apr 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Alex McPherson</name>
      </author>
    </item>
    <item>
      <title>OpDemand Launch </title>
      <link>http://quickleft.com/blog/opdemand-launch</link>
      <description>&lt;p&gt;&lt;iframe src="http://player.vimeo.com/video/40326622?title=0&amp;amp;byline=0&amp;amp;portrait=0" width="540" height="304" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;&lt;br&gt;
In addition to &lt;a href="http://quickleft.com/blog/early-results-in-raise-your-voice-winning"&gt;Raise Your Voice&lt;/a&gt;, we’re excited to announce that another awesome client of ours, &lt;a href="http://www.opdemand.com/"&gt;OpDemand&lt;/a&gt;, just came out of Beta. You can read the full press release &lt;a href="http://www.businesswire.com/news/home/20120410005361/en/OpDemand-Announces-General-Availability-Cloud-Infrastructure-Management"&gt;here&lt;/a&gt; and check out their new real-time status updates and fully-featured javascript framework &lt;a href="http://www.opdemand.com/"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;OpDemand is a deployment and cloud infrastructure management tool that makes deployments simple, customizable, and affordable. They came to us almost a year ago looking to build a down-to-earth cloud management tool, while still providing advanced configurations for their users. We were able to implement real-time status updates, build a super complex configuration tool, and use our Backbone.js know-how to get them where they are today. &lt;/p&gt;

&lt;p&gt;Congrats OpDemand!&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/opdemand-launch</guid>
      <pubDate>Mon, 16 Apr 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Becca Gallery</name>
      </author>
    </item>
    <item>
      <title>Command Line Tutorials - Why I Write These</title>
      <link>http://quickleft.com/blog/command-line-tutorials-why-i-write-these</link>
      <description>&lt;p&gt;Hey everybody! Today we're going to take a break from learning new commands, because I'd like to take a second to talk about writing these posts. If you haven't seen &lt;a href="http://quickleft.com/blog/command-line-tutorials-system-profiler-top"&gt;any of this series&lt;/a&gt; before, hopefully reading today's blog will pique your interest in the subject.&lt;/p&gt;

&lt;p&gt;When I started interning at Quick Left, I didn't have a lot of experience programming. The key to learning, I've found, is just doing. Moreover, what I learn builds on itself. Having a solid foundation to build on is key on your quest to become an expert in any field, especially programming.&lt;/p&gt;

&lt;p&gt;To that end, I truly believe that the power to work at the command line is crucial to being a proficient programmer. In your toolbox of abilities, you'll find yourself reaching for the command line again and again, probably more than any other tool. When I started coding, I didn't realize how useful and powerful it would be; I did a lot of things the hard way. When one of my coworkers pointed out a simpler way to accomplish the same feat at the command line, I was in awe. What other command line wonders was I missing out on?&lt;/p&gt;

&lt;p&gt;I started learning as much as I could. There are several good resources out there for learning how to use your terminal and bash; however, a few were too technical and a few were too basic and just plain boring. I wished there was a tutorial that laid things out in a way that I understood and that would provide for me a solid foundation to build on.&lt;/p&gt;

&lt;p&gt;So I wrote one. The act of writing reinforces what you know by challenging you to explain it in the simplest way possible. I have a stronger grasp on the commands I already knew, and in the course of writing this series, I've learned a few things along the way too. Compiling information and writing it down gives you the opportunity to find out what you know and what you don't know.&lt;/p&gt;

&lt;p&gt;If you found these posts and didn't know anything about your shell, I hope that you now have a firm understanding of what it is and what it's capable of. If you already knew your way around the command line, I hope you've learned some new tricks. I know I have.&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/command-line-tutorials-why-i-write-these</guid>
      <pubDate>Wed, 11 Apr 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Jessica Dillon</name>
      </author>
    </item>
    <item>
      <title>April Hackfest: Quick Left + Orbotix Hack Contest</title>
      <link>http://quickleft.com/blog/april-hackfest-quick-left-orbotix-hack-contest</link>
      <description>&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/42/main_3c77e147-7e22-43e7-b2db-3202b179bf67.png" alt=""&gt;&lt;br&gt;&lt;br&gt;
Quick Left and Sphero are teaming up to bring you one of the best Hackfests EVAR. Local start up &lt;a href="http://www.gosphero.com/"&gt;Orbotix&lt;/a&gt; will be sharing their &lt;a href="https://developer.gosphero.com/"&gt;Sphero SDK&lt;/a&gt; with the opportunity for 5 crafty individuals to win their own Sphero.&lt;/p&gt;

&lt;p&gt;On Wednesday, April 25th, from 6 - 10 pm, the Quick Left offices will be turned into a developer battleground: iOS vs. Android, mobile vs. web, gamers vs. the rest of the free world. As a plus, Orbotix will bring extra Spheros for you to test your app on. In order to get a jump on the competition, take a look at Sphero's &lt;a href="https://developer.gosphero.com/"&gt;SDKs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Sign up &lt;a href="http://quickbotixthackfest.eventbrite.com/"&gt;here&lt;/a&gt;!* Don't want to hack or compete? Sign up and just come to drink beer and eat pizza!&lt;/p&gt;

&lt;p&gt;TL;dr&lt;br&gt;&lt;strong&gt;When:&lt;/strong&gt; April 25th, 6 - 10 pm&lt;br&gt;&lt;strong&gt;Where:&lt;/strong&gt; Quick Left Headquarters @ 902 Pearl St.&lt;br&gt;&lt;strong&gt;What:&lt;/strong&gt; 4 hours of intensive hacking to make the best use of Sphero’s iOS and Android SDK's.&lt;br&gt;&lt;strong&gt;Who:&lt;/strong&gt; Any and all developers interested in hacking on Sphero's iOS and Android SDK. And anyone else who likes to eat pizza and drink beer at the Quick Left office. &lt;br&gt;&lt;strong&gt;How:&lt;/strong&gt; Sign up &lt;a href="http://quickbotixthackfest.eventbrite.com/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*Please help us make sure we buy enough beer by registering ahead of time&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/april-hackfest-quick-left-orbotix-hack-contest</guid>
      <pubDate>Wed, 11 Apr 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Becca Gallery</name>
      </author>
    </item>
    <item>
      <title>Quick Left makes WorldBlu’s 2012 List of Most Democratic Workplaces</title>
      <link>http://quickleft.com/blog/quick-left-makes-worldblu-s-2012-list-of-most-democratic-workplaces</link>
      <description>&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/38/main_7c1e18d8-d2db-4710-a12d-fba1763e5cef.jpg" alt="Quick Left gets some love"&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Running a business that is not only profitable but that also enriches lives is extremely important to me. Throughout my career as a software engineer I’ve sometimes felt like I was just another “resource” making sure that “deliverables” were delivered. I knew that there must be another way. What would the world be like if people were treated with dignity in their jobs, and given the freedom to grow and thrive? I’ve always tried to stick to these ideals in the growth of Quick Left, and it was truly a treat to see that there were others who shared our vision.&lt;/p&gt;

&lt;p&gt;Last May, Becca and I attended WorldBlu LIVE, where we met and shared ideas with top democratic leaders and organizations such as DaVita, Zappos, and WD-40. You can check out some of what we learned at the conference, as well as general gotchas for running a &lt;a href="http://quickleft.com/blog/3-gotchas-in-developing-a-democratic-organization"&gt;democratic organization here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We identified with the goals and principles of WorldBlu's democratic workplaces. Quick Left had been democratic since inception, but with these companies as guides, we solidified more practices of a democratic workplace and applied to be considered on the 2012 WorldBlu list.&lt;/p&gt;

&lt;p&gt;We’re excited to announce that we’ve made the 2012 WorldBlu List of Most Democratic Workplaces! You can &lt;a href="http://www.worldblu.com/awardee-profiles/2012.php"&gt;read the full press release here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We’ve also learned a ton about what it takes to truly run a democratic company. So stay tuned! Because in the following weeks, I’ll share some tips on how to run your own democratic organization the Quick Left way.&lt;/p&gt;

&lt;p&gt;As a side note, there must be something in the water. Quite a few Colorado companies also made the list so a big shout out goes to the following companies:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://davita.com"&gt;DaVita&lt;/a&gt;&lt;br&gt;&lt;a href="http://explorehq.com"&gt;Explore Communications&lt;/a&gt;&lt;br&gt;&lt;a href="http://namastesolar.com"&gt;Namaste Solar&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.newbelgium.com/"&gt;New Belgium Brewing Company&lt;/a&gt;&lt;br&gt;&lt;a href="http://thelinkschool.org"&gt;The Link School&lt;/a&gt;&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/quick-left-makes-worldblu-s-2012-list-of-most-democratic-workplaces</guid>
      <pubDate>Tue, 10 Apr 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Ingrid Alongi</name>
      </author>
    </item>
    <item>
      <title>Awesome zsh prompts can be yours</title>
      <link>http://quickleft.com/blog/awesome-zsh-prompts-can-be-yours</link>
      <description>&lt;p&gt;The adoption of FOSS tools for development has meant that a lot of my time is spent at my trusty terminal prompt. I took some time today to make mine a bit more awesome. Quick Left has killer couches, beanbags, spare rooms, and standing desks. This means I'm mobile a lot, and that my battery level is a concern, so I decided to add this to my prompt:&lt;/p&gt;

&lt;p&gt;&lt;img src="//quickleft-assets.s3.amazonaws.com/uploads/asset/file/37/main_14ee96c6-2a5d-48dc-9396-7e3371e1b134.png" alt="Battery indicator in prompt"&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;I'm using iTerm2, zsh, and oh-my-zsh, as you all should be. The code is posted here as a &lt;a href="https://gist.github.com/2295304"&gt;gist&lt;/a&gt;, but I'll go ahead and show the fun stuff here:&lt;/p&gt;

&lt;script src="https://gist.github.com/2295304.js"&gt; &lt;/script&gt;&lt;p&gt;A quick walkthrough: The battery.rb needs to be in a directory that's in your path. I chose &lt;code&gt;usr/local/lib&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The encoding is necessary because of the fancy arrow characters. Skip that if you're fine with hyphens. The first two lines backtick to the &lt;strong&gt;P&lt;/strong&gt;ower&lt;strong&gt;M&lt;/strong&gt;anagement&lt;strong&gt;SET&lt;/strong&gt;tings tools, and asks for the battery status. This output is typically like &lt;/p&gt;

&lt;p&gt;&lt;code&gt;Currently drawing from 'AC Power'&lt;br&gt;
 -InternalBattery-0 85%; charging; 0:23 remaining&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;A quick one-liner strips out the percentage value, and a color is chosen based on how full the battery is. This is joined into an output string, and that's what gets displayed in the prompt.&lt;/p&gt;

&lt;p&gt;Now, like a Roomba, I'll always know when to go back home and charge up. Awesome!&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/awesome-zsh-prompts-can-be-yours</guid>
      <pubDate>Fri, 06 Apr 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Alex McPherson</name>
      </author>
    </item>
    <item>
      <title>Making Tooltips with CSS3</title>
      <link>http://quickleft.com/blog/making-tooltips-with-css3</link>
      <description>&lt;p&gt;Recently we wanted to add some tooltips to the Quick Left Method page and I decided I wanted to avoid adding a Javascript plugin into the site's JS to accomplish this. One of our many focuses at Quick Left is performance and decreasing page load time/size is essential to that goal. So, I thought I'd explore the CSS3 route as it seemed quite achievable and even backwards compatible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick points for those who scan:&lt;/strong&gt; &lt;br&gt;&lt;strong&gt;Support:&lt;/strong&gt; Tested in Safari, Chrome, Firefox and it works as expected. Works back to &lt;strong&gt;IE8&lt;/strong&gt;  &lt;em&gt;(with bottom arrow, without transitions)&lt;/em&gt;, &lt;strong&gt;IE7&lt;/strong&gt;  &lt;em&gt;(w/o arrow or transitions)&lt;/em&gt;. Graceful Degradation (or Progressive Enhancement?) for the winnings! If its worth the trade-off for you, I highly recommend this method!&lt;/p&gt;

&lt;p&gt;So, without further ado, CSS3 Tooltips - How-to and trip-me-ups (see 'em in action here: &lt;a href="http://quickleft.com/method"&gt;http://quickleft.com/method&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The a tag code:&lt;br&gt;&lt;script src="https://gist.github.com/2286987.js?file=link.html"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;p&gt;The relevant CSS:&lt;br&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nc"&gt;.tooltip&lt;/span&gt; &lt;span class="nc"&gt;.tip-text&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#FFF&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;height&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;margin-left&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;-54px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;-25px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;opacity&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;padding&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;position&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;text-align&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;white-space&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;nowrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;width&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;120px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;webkit&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;backface&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;visibility&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;hidden&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;webkit&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;transition&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="m"&gt;0.2s&lt;/span&gt; &lt;span class="n"&gt;ease&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;moz&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;transition&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="m"&gt;0.2s&lt;/span&gt; &lt;span class="n"&gt;ease&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;ms&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;transition&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="m"&gt;0.2s&lt;/span&gt; &lt;span class="n"&gt;ease&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
     &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="err"&gt;o&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;transition&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="m"&gt;0.2s&lt;/span&gt; &lt;span class="n"&gt;ease&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;transition&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="m"&gt;0.2s&lt;/span&gt; &lt;span class="n"&gt;ease&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.ie8&lt;/span&gt; &lt;span class="nc"&gt;.tooltip&lt;/span&gt; &lt;span class="nc"&gt;.tip-text&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;.ie7&lt;/span&gt; &lt;span class="nc"&gt;.tooltip&lt;/span&gt; &lt;span class="nc"&gt;.tip-text&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;text-indent&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;-999em&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.tooltip&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="nc"&gt;.tip-text&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;border&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="k"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;#161616&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;margin-top&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;-45px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;opacity&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;text-indent&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0em&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;moz&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;border&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;webkit&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;border&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;border&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;background-color&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#343434&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.tooltip&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="nc"&gt;.tip-text&lt;/span&gt;&lt;span class="nd"&gt;:after&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;border&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt; &lt;span class="k"&gt;solid&lt;/span&gt; &lt;span class="k"&gt;transparent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;border-top-color&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#1b1b1b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;content&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;left&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;45&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;height&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;position&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;top&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;35px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;width&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;z-index&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;105&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.tooltip&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="nc"&gt;.tip-text&lt;/span&gt;&lt;span class="nd"&gt;:before&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;border&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;9px&lt;/span&gt; &lt;span class="k"&gt;solid&lt;/span&gt; &lt;span class="k"&gt;transparent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;border-top-color&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#161616&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;content&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;left&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;44&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;height&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;position&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;top&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;36px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;width&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;z-index&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;You could select/copy/paste and roll out with lightweight tooltips from here and call it a day. But I have a couple of caveats to bring to your attention!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can't apply CSS3 transitions to :before and :after pseudo elements&lt;/strong&gt;, even though I feel like it should work fine, all browsers haven't implemented it. I ran down that road for awhile and Firefox and Chrome both stymied my hopes and dreams. In my experience they would just show/hide without any nice CSS3 transitions. I won't pretend this didn't make me sad because I wanted to use a title attribute on the anchor tag and call it a day instead of adding text inside the tag. I hope support for pseudo-element transitions comes through in all browsers soon!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Text elements after the tooltip element may flicker in Webkit (Safari only) on CSS transitioned elements.&lt;/strong&gt; &lt;br&gt;
So, make sure to note that for Safari you need to add this style:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;-webkit-backface-visibility&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;hidden&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;on the element that has the transition in to prevent a flicker on elements following the hovered tooltips. Solution via &lt;a href="http://stackoverflow.com/questions/3461441/prevent-flicker-on-webkit-transition-of-webkit-transform" target="_blank"&gt;Stack Overflow&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let us know in the comments if this is useful to you or if you ran into any issues with this approach!&lt;/p&gt;</description>
      <guid>http://quickleft.com/blog/making-tooltips-with-css3</guid>
      <pubDate>Tue, 03 Apr 2012 00:00:00 +0000</pubDate>
      <author>
        <name>Rylan Bowers</name>
      </author>
    </item>
  </channel>
</rss>

