<?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>Chicago Web Development - Table XI</title>
	<atom:link href="http://www.tablexi.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tablexi.com</link>
	<description></description>
	<lastBuildDate>Wed, 16 May 2012 17:14:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>i.c. stars Comes to Table XI</title>
		<link>http://www.tablexi.com/2012/05/i-c-stars-comes-to-table-xi/</link>
		<comments>http://www.tablexi.com/2012/05/i-c-stars-comes-to-table-xi/#comments</comments>
		<pubDate>Wed, 16 May 2012 17:14:58 +0000</pubDate>
		<dc:creator>Kathryn Achenbach</dc:creator>
				<category><![CDATA[Healthcare and Nonprofit]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Table XI Blog]]></category>
		<category><![CDATA[Things That Make Us Happy]]></category>
		<category><![CDATA[I.C. Stars]]></category>
		<category><![CDATA[Table XI blog]]></category>

		<guid isPermaLink="false">http://www.tablexi.com/?p=9545</guid>
		<description><![CDATA[Last Friday we got a visit from our friends at i.c. stars, a technology and leadership training program for low-income adults. Our COO Mark Rickmeier gave a lunchtime presentation to nine students from the organization&#8217;s 25th graduating class. Mark covered several topics relating to pursuing and succeeding in a career in technology, including how to [...]]]></description>
			<content:encoded><![CDATA[<p>Last Friday we got a visit from our friends at <a href="http://icstars.org/" target="_blank">i.c. stars</a>, a technology and leadership training program for low-income adults. Our COO Mark Rickmeier gave a lunchtime presentation to nine students from the organization&#8217;s 25th graduating class. Mark covered several topics relating to pursuing and succeeding in a career in technology, including how to define a career objective and strategy, how to research jobs and hiring companies, and how to impress in an interview and beyond.</p>
<p>&#8220;We work 60 hours a week for four months to complete the i.c.stars internship,&#8221; says Training Program Manager Deborah Cane. &#8220;We work with Fortune 500 companies to understand what it means to be a consultant. We work with local venture capitalists to understand what it means to put together a business pitch. We worked with coaches from across the tech spectrum to work on coding from HTML5 to SQL. And at the end of this crazy rollercoaster of learning, Table XI swooped in! Just talking about where your career can go in an atmosphere like this, sitting at the table with people who dream big for a living, gave us the extra boost we need to go out and conquer that job market.&#8221;</p>
<p>We were so excited to be able to arm these students with these kinds of tactics as they head into the Chicago workforce, where there are lots of developer jobs to be had. We&#8217;re hoping to do more of these types of sessions in the future; in the meantime, keep your eye out for i.c. stars talent.</p>
<div id="portfolio-slideshow0" class="portfolio-slideshow">
	<div class="slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/05/markpres1.jpg" src="http://www.tablexi.com/wp-content/uploads/2012/05/markpres1.jpg" height="450" width="600" alt="Mark + i.c. stars Graduates" /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/05/markpres1.jpg" height="450" width="600" alt="Mark + i.c. stars Graduates" /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">Mark + i.c. stars Graduates</p></div></div>
			<div class="not-first slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/05/markpres2.jpg" src="http://www.tablexi.com/wp-content/plugins/portfolio-slideshow/img/tiny.png" height="450" width="600" alt="Mark + i.c. stars Graduates" /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/05/markpres2.jpg" height="450" width="600" alt="Mark + i.c. stars Graduates" /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">Mark + i.c. stars Graduates</p></div></div>
			<div class="not-first slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/05/markpres3.jpg" src="http://www.tablexi.com/wp-content/plugins/portfolio-slideshow/img/tiny.png" height="450" width="600" alt="Mark + i.c. stars Graduates" /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/05/markpres3.jpg" height="450" width="600" alt="Mark + i.c. stars Graduates" /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">Mark + i.c. stars Graduates</p></div></div>
			</div><!--#portfolio-slideshow--></div><!--#slideshow-wrapper-->
]]></content:encoded>
			<wfw:commentRss>http://www.tablexi.com/2012/05/i-c-stars-comes-to-table-xi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript or Nondescript: Top 11 Creatively-Challenged Project Names</title>
		<link>http://www.tablexi.com/2012/05/javascript-or-nondescript-top-11-creatively-challenged-project-names/</link>
		<comments>http://www.tablexi.com/2012/05/javascript-or-nondescript-top-11-creatively-challenged-project-names/#comments</comments>
		<pubDate>Wed, 09 May 2012 13:51:26 +0000</pubDate>
		<dc:creator>Dan Rench</dc:creator>
				<category><![CDATA[Developers' Cave]]></category>
		<category><![CDATA[Table XI Blog]]></category>
		<category><![CDATA[Things That Make Us Happy]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[coordinate]]></category>
		<category><![CDATA[fusion]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[js.js]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[Rhino]]></category>
		<category><![CDATA[scene]]></category>
		<category><![CDATA[seriously]]></category>
		<category><![CDATA[Spidermonkey]]></category>
		<category><![CDATA[Table XI blog]]></category>
		<category><![CDATA[three]]></category>
		<category><![CDATA[underscore]]></category>
		<category><![CDATA[whenever]]></category>

		<guid isPermaLink="false">http://www.tablexi.com/?p=9281</guid>
		<description><![CDATA[The 1996 version of me would never believe 2012. I&#8217;ve got Linux on my cell phone, we have an African-American (and Chicagoan!) president, but most improbably, I&#8217;m preoccupied by software projects centered around a language I used to loathe: JavaScript. As cool as JavaScript projects can be, you&#8217;d never know it from their names. Is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tablexi.com/2012/05/javascript-or-nondescript-top-11-creatively-challenged-project-names/mug/" rel="attachment wp-att-9299"><img class="alignright size-medium wp-image-9299" title="mug" src="http://www.tablexi.com/wp-content/uploads/2012/04/mug-300x294.jpg" alt="" width="300" height="294" /></a></p>
<p>The 1996 version of me would never believe 2012. I&#8217;ve got Linux on my cell phone, we have an African-American (and Chicagoan!) president, but most improbably, I&#8217;m preoccupied by software projects centered around a language I used to loathe: JavaScript.</p>
<p>As cool as JavaScript projects can be, you&#8217;d never know it from their names. Is it a competition to see who can come up with the least interesting moniker? An unconcious tribute to the &#8216;Self&#8217; language, one of JavaScript&#8217;s original inspirations? Or maybe nobody puts much thought into naming, choosing to channel their creativity into their code?</p>
<p>While pondering that, I came up with my top 11 favorite nondescript JavaScript project names:</p>
<p><strong>11. <a href="http://www.prototypejs.org/" target="_blank">Prototype</a></strong></p>
<p>This is the one that got the ball rolling. Named after a universal JavaScript object property, Prototype was the first serious JavaScript library you probably ever used (let&#8217;s pretend those &#8220;disable right-click so people can&#8217;t steal your precious images&#8221; scripts never happened). <a href="http://jquery.com/" target="_blank">jQuery</a> may have displaced Prototype in the web developer&#8217;s toolbox, but its dreary, Google-hostile name choice continues to inspire.</p>
<p><strong>10. <a href="http://nodejs.org/" target="_blank">Node</a></strong></p>
<p>Server-side JavaScript was going nowhere until someone gave it a bland enough name. Ever heard of <a href="https://developer.mozilla.org/en/SpiderMonkey" target="_blank">Spidermonkey</a>? <a href="https://www.mozilla.org/rhino/" target="_blank">Rhino</a>? No? How about <a href="http://www.tablexi.com/2012/04/will-node-js-make-you-a-rockstar/" target="_blank">Node</a>?</p>
<p><strong>9. <a href="http://processingjs.org/" target="_blank">Processing</a></strong></p>
<p>I expect some pushback here since the Processing project is not limited to JavaScript, but the fact that something so very nondescript found a home in the JavaScript community is telling.</p>
<p><strong>8. <a href="http://seriouslyjs.org/" target="_blank">Seriously</a></strong></p>
<p>Seriously.</p>
<p><strong>7. <a href="http://underscorejs.org/" target="_blank">Underscore</a></strong></p>
<p>It could have been worse. At least it&#8217;s not called _.</p>
<p><span id="more-9281"></span></p>
<p><strong>6. <a href="https://github.com/jterrace/js.js" target="_blank">js.js</a></strong></p>
<p>What else are you going to call a JavaScript interpreter written in JavaScript?</p>
<p><strong>5. <a href="http://dren.ch/js-table-coordinates/" target="_blank">Coordinate</a></strong></p>
<p>When I needed to make up a name for a library to add coordinate properties to HTML tables, &#8220;Coordinate&#8221; just felt right. It was then that I realized awareness did not make me immune.</p>
<p><strong>4. <a href="http://easejs.org/" target="_blank">Ease</a></strong></p>
<p>I Googled &#8220;ease javascript&#8221; and had to go three pages deep to find a link to this project&#8217;s site, and even then it wasn&#8217;t its home page! I think this is exactly where Ease wants to be.</p>
<p><strong>3. <a href="http://mrdoob.github.com/three.js/" target="_blank">Three</a></strong></p>
<p>Rival JavaScript 3-D graphics projects like <a href="http://scenejs.org/" target="_blank">Scene</a> and <a href="http://code.google.com/p/fusionjs/" target="_blank">Fusion</a> gave it their best shot, but their names can&#8217;t beat the flatness of Three.</p>
<p><strong>2. <a href="http://languagejs.com/" target="_blank">Language</a></strong></p>
<p>This is almost too on-the-nose to be real. Since JavaScript <em>is</em> a language, if you Google &#8220;javascript language&#8221;&#8230; I think you see where this is going. The developers of this library are laughing at us.</p>
<p>And my number one favorite creatively-challenged JavaScript project name is&#8230;&#8230;&#8230;</p>
<p><strong>1. <a href="https://github.com/paulca/whenever.js" target="_blank">Whenever</a></strong></p>
<p>Nondescript and noncommittal, nothing beats Whenever, at least until &#8220;Whatever&#8221; emerges. Actually, I believe &#8220;Whatever&#8221; may already exist, but only on a level of unexceptionality so unspecific that we can&#8217;t perceive it. Until then, Whenever.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tablexi.com/2012/05/javascript-or-nondescript-top-11-creatively-challenged-project-names/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enter the Deepworld</title>
		<link>http://www.tablexi.com/2012/05/enter-the-deepworld/</link>
		<comments>http://www.tablexi.com/2012/05/enter-the-deepworld/#comments</comments>
		<pubDate>Thu, 03 May 2012 14:04:37 +0000</pubDate>
		<dc:creator>Jason Pearl</dc:creator>
				<category><![CDATA[On Our Radar]]></category>
		<category><![CDATA[Table XI Blog]]></category>
		<category><![CDATA[Things That Make Us Happy]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Deepworld]]></category>
		<category><![CDATA[EventMachine]]></category>
		<category><![CDATA[Kickstarter]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[Redis]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Table XI blog]]></category>

		<guid isPermaLink="false">http://www.tablexi.com/?p=9367</guid>
		<description><![CDATA[Mike Laurence and I have been building web applications for a long time, and we’ve had the opportunity over the last year to work with Table XI on some fantastic web applications for our clients. The web offers a wide variety of challenges, but we always found scaling to be the most interesting. Things like cloud [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.kickstarter.com/projects/mikelaurence/deepworld-a-cloud-based-multiplayer-crafting-adven?ref=live" target="_blank"><img class="alignright size-medium wp-image-9369" style="border-image: initial; margin-top: 7px; margin-bottom: 7px; border-width: 7px; border-color: black; border-style: solid;" title="Screen Shot 2012-05-02 at 3.33.40 PM" src="http://www.tablexi.com/wp-content/uploads/2012/05/Screen-Shot-2012-05-02-at-3.33.40-PM-300x224.png" alt="" width="300" height="224" /></a>Mike Laurence and I have been building web applications for a long time, and we’ve had the opportunity over the last year to work with Table XI on some fantastic web applications for our clients. The web offers a wide variety of challenges, but we always found scaling to be the most interesting. Things like cloud provisioning, load balancing, caching, and database replication make big projects a worthy challenge.</p>
<p>Sometimes you need a break from the web, though, so we decided to put our architecture skills to the test and build a massively-multiplayer <wbr>adventure game: <a href="http://www.youtube.com/watch?v=pmLKSkdp_TA" target="_blank">Deepworld</a>.</wbr></p>
<p>Deepworld features an online, persistent sandbox universe; anyone can jump in to explore, build, or just hang out with friends. It&#8217;s very engaging, and also the most technically complicated setup we&#8217;ve ever dealt with. We have dozens (soon to be hundreds) of worlds, all hosted across multiple cloud servers, with things like MongoDB, Redis, and various helper apps in the background.</p>
<p>We opted early on to use Ruby to develop our server code—an odd choice to many in the game industry, but something we are very familiar with. It turns out that <a href="http://github.com/eventmachine/eventmachine" target="_blank">EventMachine</a>, the very mature Ruby equivalent of Node.js, is quite fast. With it, we&#8217;ve designed our own TCP-based protcol, baking in compression, authentication, and tons of other bells and whistles, as well as TCP testing framework on top of RSpec.</p>
<p>We’re in alpha testing phase right now, with a bunch of regular players in the alpha program. They’ve been building an amazing array of structures and are having an awesome time. We also recently held a Table XI playtesting party, which was great fun!</p>
<p>We&#8217;ve launched a Deepworld <a href="http://www.kickstarter.com/projects/mikelaurence/deepworld-a-cloud-based-multiplayer-crafting-adven?ref=live" target="_blank">Kickstarter</a> to help us with our final fundraising push, and have just under two weeks to go. Check it out for more info, thanks for your support, and hopefully we&#8217;ll see you in the game!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tablexi.com/2012/05/enter-the-deepworld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Winning with Special Teams</title>
		<link>http://www.tablexi.com/2012/05/winning-with-special-teams/</link>
		<comments>http://www.tablexi.com/2012/05/winning-with-special-teams/#comments</comments>
		<pubDate>Wed, 02 May 2012 14:56:16 +0000</pubDate>
		<dc:creator>Josh Golden</dc:creator>
				<category><![CDATA[Table XI Blog]]></category>
		<category><![CDATA[specialization]]></category>

		<guid isPermaLink="false">http://www.tablexi.com/?p=9345</guid>
		<description><![CDATA[With Table XI turning 10 and blasting past the 25-person mark, we’ve seen a bit of a shift in the makeup of the company, and it’s got me thinking about the benefits and costs of specialization. In our early days, we desperately needed people who could wear multiple hats, and our first employees were defined [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tablexi.com/2012/05/winning-with-special-teams/specialteams1/" rel="attachment wp-att-9349"><img class="alignright size-medium wp-image-9349" title="specialteams1" src="http://www.tablexi.com/wp-content/uploads/2012/05/specialteams1-300x300.jpg" alt="" width="300" height="300" /></a>With Table XI turning 10 and blasting past the 25-person mark, we’ve seen a bit of a shift in the makeup of the company, and it’s got me thinking about the benefits and costs of specialization.</p>
<p>In our early days, we desperately needed people who could wear multiple hats, and our first employees were defined by their abilities to switch deftly among many roles. We relied on people whose job titles could have been “project manager / user interface designer / account manager / salesperson / cultural compass” or, in my case, “CEO / Dishwasher.”</p>
<p>There will always be switch-hitters in this business, but as we’ve grown, we’ve seen increasing advantages to specialization. Today, we’re mostly hiring people who are relatively focused experts in the crafts of graphics design, business analysis, project management, software development, and quality assurance. We’ve found ourselves learning a great deal from these experts, and rapidly advancing our overall productive capabilities.</p>
<p>At the same time, this type of growth breeds new challenges. In the past, we never had to create processes to coordinate interdisciplinary solutions, which bridge the gaps among business strategy, marketing, design, software development, maintenance, and hosting. Now, we’re implementing new processes and systems to make all this coordination and cross-disciplinary management easier.</p>
<p>Throughout this progress, we’re working extremely hard to maintain the personal touch that our clients expect and deserve. These are all new and exciting challenges for those of us who’ve been around for a long time, and it’s a big part of what keeps life interesting after all these years.</p>
<p>We&#8217;re always on the lookout for good people. Visit our <a href="http://tablexi.us1.list-manage.com/track/click?u=740138071952181b926052649&amp;id=c48ba9761a&amp;e=2ce9b76b20" target="_blank">job listings</a> to find out more.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tablexi.com/2012/05/winning-with-special-teams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Will Node.js Make You a Rockstar?</title>
		<link>http://www.tablexi.com/2012/04/will-node-js-make-you-a-rockstar/</link>
		<comments>http://www.tablexi.com/2012/04/will-node-js-make-you-a-rockstar/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 15:35:50 +0000</pubDate>
		<dc:creator>Gabrielle DeWitt</dc:creator>
				<category><![CDATA[Developers' Cave]]></category>
		<category><![CDATA[On Our Radar]]></category>
		<category><![CDATA[Table XI Blog]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Etsy]]></category>
		<category><![CDATA[Github]]></category>
		<category><![CDATA[Graphite]]></category>
		<category><![CDATA[Klout]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[NodeMap]]></category>
		<category><![CDATA[StatsD]]></category>
		<category><![CDATA[Table XI blog]]></category>
		<category><![CDATA[Vijay Rawat]]></category>
		<category><![CDATA[Yammer]]></category>

		<guid isPermaLink="false">http://www.tablexi.com/?p=9125</guid>
		<description><![CDATA[Probably not, but it might help you write a kickass scalable web application that will have your fellow hackers asking for your autograph. Node.js has been getting a lot of buzz recently, but you&#8217;re probably in the minority if you have a good idea of how it works and what it&#8217;s good for. Node is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nodejs.org/" target="_blank"><img class="alignright size-medium wp-image-9165" style="margin: 5px;" title="Screen Shot 2012-04-16 at 12.42.34 PM" src="http://www.tablexi.com/wp-content/uploads/2012/04/Screen-Shot-2012-04-16-at-12.42.34-PM-300x192.png" alt="" width="300" height="192" /></a>Probably not, but it might help you write a kickass scalable web application that will have your fellow hackers asking for your autograph.</p>
<p><a href="http://nodejs.org/" target="_blank">Node.js</a> has been getting a lot of buzz recently, but you&#8217;re probably in the minority if you have a good idea of how it works and what it&#8217;s good for. Node is a server-side JavaScript engine. It takes advantage of the event-driven programming model of JavaScript for use on the server-side. You&#8217;re probably familiar with binding JavaScript handlers to client-side events like button clicks, mouseovers, etc. Node allows you to bind functionality to server-side events like a new connection being made or data being received. Node is non-blocking, so it can handle a large number of concurrent connections on the same machine.</p>
<p>Here are a few practical applications of Node.js:</p>
<h4>A Successful Web Front-End Refactor</h4>
<p><a href="http://klout.com/home" target="_blank">Klout</a> is a company that measures people&#8217;s influence based on their activity in social media. We make use of their API at Table XI. Klout was powering a web interface to give users access to their scores with a LAMP (Linux/Apache/MySQL/PHP) stack. They found this was not scaling well as more users accessed the application. They rebuilt this interface using Node.js., and it&#8217;s now handling tens of thousands of concurrent users on two servers.</p>
<p>Read more: <a href="http://corp.klout.com/blog/2011/10/the-tech-behind-klout-com/" target="_blank">&#8220;The Tech Behind Klout.com&#8221;</a></p>
<h4>An API</h4>
<p>The social media site <a href="https://www.yammer.com/" target="_blank">Yammer</a> is using Node.js to handle API requests from developers, allowing them to tackle a large capacity of concurrent requests. The API requests are made via JavaScript AJAX calls so both the client and server side are written in the same language.</p>
<p>Read more: <a href="http://bostinno.com/2011/08/14/who-is-using-node-js-and-why-yammer-bocoup-proxlet-and-yahoo/" target="_blank">&#8220;Who Is Using Node.js and Why? Yammer, Boucoup, Proxlet and Yahoo&#8221;</a><span id="more-9125"></span></p>
<h4>Application Metrics</h4>
<p>Etsy is using Node.js to push application data to <a href="http://graphite.wikidot.com/" target="_blank">Graphite</a> to produce near real-time graphs of metrics such as login failures. They are using a daemon called <a href="https://github.com/etsy/statsd" target="_blank">StatsD</a> to listen for messages, parse out the metrics, and periodically send the data to Graphite. Node.js&#8217; event-driven programing model lent itself well to this problem.</p>
<p>Read more: <a href="http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/" target="_blank">&#8220;Measure Anything, Measure Everything&#8221;</a></p>
<h4>A Fun Example</h4>
<p><a href="http://nodemap.no.de/" target="_blank">NodeMap</a> is a real-time app that displays messages from around the world on a map written by Vijay Rawat. It&#8217;s a neat way to see Node.js in action.</p>
<p>Read more: <a href="https://github.com/vijayrawatsan/nodemap" target="_blank">Vijay Rawat on Github</a></p>
<h4>Is Node.js for Table XI?</h4>
<p>We&#8217;re not currently Node.js, but we may find it useful for upcoming projects including an API integration with mobile apps.</p>
<p>Read More:</p>
<p><a href="http://www.ibm.com/developerworks/opensource/library/os-nodejs/index.html" target="_blank">&#8220;Just What Is Node.js?&#8221;</a></p>
<p><a href="http://howtonode.org/how-to-install-nodejs" target="_blank">&#8220;How to Install Node.js&#8221;</a></p>
<p><a href="http://whaleventures.blogspot.com/2012/02/managing-callback-spaghetti-in-nodejs.html" target="_blank">&#8220;Managing Callback &#8216;Spaghetti&#8217; in Node.js&#8221;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tablexi.com/2012/04/will-node-js-make-you-a-rockstar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CoffeeScript Makes JavaScript Go Down Smooth</title>
		<link>http://www.tablexi.com/2012/04/coffeescript-makes-javascript-go-down-smooth/</link>
		<comments>http://www.tablexi.com/2012/04/coffeescript-makes-javascript-go-down-smooth/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 15:30:05 +0000</pubDate>
		<dc:creator>Micah Gates</dc:creator>
				<category><![CDATA[Developers' Cave]]></category>
		<category><![CDATA[On Our Radar]]></category>
		<category><![CDATA[Table XI Blog]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[backbone.js]]></category>
		<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jeremy Ashkenas]]></category>
		<category><![CDATA[Table XI blog]]></category>
		<category><![CDATA[underscore.js]]></category>

		<guid isPermaLink="false">http://www.tablexi.com/?p=8815</guid>
		<description><![CDATA[CoffeeScript is a great little language that compiles down to readable, clean JavaScript. When we were recently in Costa Rica I gave a lightning talk on some of CoffeeScript&#8217;s cooler features. It&#8217;s great on the surface, since this: $("#foo").click(function () { bar( "some text #{ something / 2 } a unit" ); }); is more cleanly [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://amix.dk/uploads/coffeescript_logo.png" alt="" width="225" height="50" />CoffeeScript is a great little language that compiles down to readable, clean JavaScript. When we were recently in Costa Rica I gave a lightning talk on some of CoffeeScript&#8217;s cooler features. It&#8217;s great on the surface, since this:</p>
<blockquote>
<pre>$("#foo").click(function () {</pre>
<pre style="padding-left: 30px;">bar( "some text #{ something / 2 } a unit" );</pre>
<pre>});</pre>
</blockquote>
<p>is more cleanly written as this:</p>
<blockquote>
<pre>$("#foo").click -&gt;</pre>
<pre style="padding-left: 30px;">bar("some text " + something / 2 + "a unit" )</pre>
</blockquote>
<p>But as I&#8217;ve been writing more JavaScript, there are a handful of other neat things I find myself using a lot. Here are a few:<span id="more-8815"></span></p>
<address> </address>
<h4>Case</h4>
<p>This is a little one, but the switch statement in CoffeeScript is just so nice it&#8217;s one of the first things I go to when rewriting old JavaScript. Not only can you rewrite:</p>
<blockquote>
<pre>if (foo === bar) {</pre>
<pre style="padding-left: 30px;">value = thing_one();</pre>
<pre>} elsif (foo === baz) {</pre>
<pre style="padding-left: 30px;">value = another_thing();</pre>
<pre>} else {</pre>
<pre style="padding-left: 30px;">value = somthing_else()</pre>
<pre>}</pre>
</blockquote>
<p>as the somewhat terser:</p>
<blockquote>
<pre>switch foo</pre>
<pre style="padding-left: 30px;">when bar then value = thing_one()</pre>
<pre style="padding-left: 30px;">when baz then value = another_thing()</pre>
<pre style="padding-left: 30px;">else value = somthing_else()</pre>
</blockquote>
<p>but, since <a href="http://coffeescript.org/#expressions" target="_blank">everything is an expression</a> in CoffeeScript, you can just make that:</p>
<blockquote>
<pre> value = switch foo</pre>
<pre style="padding-left: 30px;">when bar then one_thing()</pre>
<pre style="padding-left: 30px;">when baz then another_thing()</pre>
<pre style="padding-left: 30px;">else something_else()</pre>
</blockquote>
<address> </address>
<h4><strong>The Fat Arrow</strong></h4>
<p>The fat arrow (=&gt;) also cleans up a lot. When you use it in an object, that function will be bound to the scope of its caller, which means that you can do something like:</p>
<blockquote>
<pre>$("p").click -&gt;</pre>
<pre>    setTimeout (=&gt;</pre>
<pre style="padding-left: 30px;">    $(this).hide()</pre>
<pre>), 10000</pre>
</blockquote>
<address> </address>
<h4>Class</h4>
<p>Where CoffeeScript really shines is when you start making new classes. I&#8217;ve found myself shying away from OO in JavaScript before, because it&#8217;s kind of unusual and has a lot of pitfalls. CoffeeScript makes JavaScript&#8217;s object and inheritance system useable and fun.</p>
<p>Take this highly contrived example:</p>
<blockquote>
<pre>class Person</pre>
<pre style="padding-left: 30px;">act: (name, action) -&gt;</pre>
<pre style="padding-left: 30px;">    action.call()</pre>
<address> </address>
<pre>class Child extends Person</pre>
<pre style="padding-left: 30px;">act: (name, action) -&gt;</pre>
<pre style="padding-left: 60px;">if name == "Drink" and @is_good # the same as this.is_good</pre>
<pre style="padding-left: 90px;">alert "No thanks"</pre>
<pre style="padding-left: 60px;">else</pre>
<pre style="padding-left: 90px;">super name, action</pre>
<address> </address>
<pre>f = new Child</pre>
<pre>f.is_good = false</pre>
<pre>f.act "Drink", -&gt;</pre>
<pre style="padding-left: 30px;">alert "glug glug glug"</pre>
</blockquote>
<p>The class and super keywords make this so painless, you have no excuse not to write pretty Object Oriented JS in all your projects.</p>
<p>There is tons more to see at <a href="http://coffeescript.org/" target="_blank">Coffeescript.org</a>. What you&#8217;ll find, as you start rewriting code into CoffeeScript, is that it really makes the cool parts of JavaScript pop out. If you still haven&#8217;t gotten your fill, you can check out underscore.js and backbone.js, both, like CoffeeScript, by the incredibly talented and prolific <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tablexi.com/2012/04/coffeescript-makes-javascript-go-down-smooth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO for Blogs</title>
		<link>http://www.tablexi.com/2012/04/seo-for-blogs/</link>
		<comments>http://www.tablexi.com/2012/04/seo-for-blogs/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 12:00:41 +0000</pubDate>
		<dc:creator>Kate Garmey</dc:creator>
				<category><![CDATA[Digital Marketing]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Table XI Blog]]></category>
		<category><![CDATA[Tech Tip]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Google Keyword Tool]]></category>
		<category><![CDATA[keywords]]></category>
		<category><![CDATA[MyBlogGuest]]></category>
		<category><![CDATA[Search Engine Watch]]></category>
		<category><![CDATA[Table XI blog]]></category>
		<category><![CDATA[UberSuggest]]></category>

		<guid isPermaLink="false">http://www.tablexi.com/?p=8525</guid>
		<description><![CDATA[Many businesses are finding value in writing blogs these days, and rightly so—it&#8217;s certainly something we recommend to our clients. A blog is a way to keep your customers and stakeholders aware of new products, promotions, and industry-related news. It also serves as a PR tool to address your audience quickly in case of a crisis, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin-left: 7px; margin-right: 7px;" src="http://www.seotrainingsw.com/wp-content/uploads/2010/12/wordpress-seo.jpg" alt="" width="330" height="231" />Many businesses are finding value in writing blogs these days, and rightly so—it&#8217;s certainly something we recommend to our clients. A blog is a way to keep your customers and stakeholders aware of new products, promotions, and industry-related news. It also serves as a PR tool to address your audience quickly in case of a crisis, and provides an additional platform to syndicate your company’s press.</p>
<p>So, for many, the question is not, <em>Should I blog?</em> but rather, <em>What do I write about?</em></p>
<h4>Search Engine Optimization (SEO)</h4>
<p>One of your blog’s most valuable (and commonly overlooked) functions is its ability to impact SEO, since it gives your site a venue for fresh, keyword-rich content. Whereas homepages or product pages can be difficult to update with detailed copy, a blog allows you to tell a longer narrative that can positively impact your ability to rank for key terms.</p>
<p>We recently conducted a workshop for guests from Chicago&#8217;s <a href="http://www.npnparents.org/" target="_blank">Neighborhood Parents Network</a> that was dedicated to the importance of blogging for SEO. Here are some of the free tools we recommended that can help you get the most SEO lift from your blog:</p>
<p><span id="more-8525"></span></p>
<ul>
<li><strong><a href="http://www.youtube.com/watch?v=tqfyzazR4Zg" target="_blank">Google Keyword Tool</a>:</strong> The big daddy of search introduced this service to approximate search volume and supporting longtail keyword ideas. These words can be used to inform blog topics as well as refine your primary and secondary keyword sets. Once you’ve identified your keywords, make sure to include them in your H1 (headline), H2 (subtitle), and page title tags.</li>
</ul>
<ul>
<li><strong><a href="http://ubersuggest.org/" target="_blank">UberSuggest</a>:</strong> This tool recommends keyword opportunities based on real user queries. You can use these keywords and phrases to get inspiration for your next blog post topic or to expand article ideas.</li>
</ul>
<ul>
<li><strong><a href="http://myblogguest.com/" target="_blank">MyBlogGuest</a>:</strong> Linkbuilding is important because it adds credibility to your post and can help drive traffic, but it’s often abused by people writing thin, irrelevant content. MyBlogGuest matches bloggers with quality guest posters and vice versa. The website provides a level of screening and management for guest blogging, and partners you with someone with whom there is a mutually beneficial SEO relationship. (For more on this, and to find other resources on linkbuilding, check out this recent article in <a href="http://searchenginewatch.com/article/2073995/30-More-Tools-to-Automate-Your-Link-Building" target="_blank">Search Engine Watch</a>.)</li>
</ul>
<h4>Keep It Fresh</h4>
<p>In addition to helping SEO, blogs are an easy way to feed your website new content, which triggers search engines to crawl your site more frequently. If there were any doubt about the importance of updating your site, Google’s <a href="http://googleblog.blogspot.com/2011/11/giving-you-fresher-more-recent-search.html" target="_blank">“Freshness”</a> algorithm has drilled the concept home. This update factors recency into the search algorithm as an indicator of relevance. For example, if I’m looking for information about The Taste of Chicago, I want to see this year’s schedule of events, not information from last year. Google will try to display the most recently updated link first.</p>
<p>Granted, boosting your blog rank takes time: SEO is a nuanced practice involving research, testing, and data analysis. But if you’ve already got a blog, start making the most of it&#8230;starting now.</p>
<p>If you have more questions about optimizing your blog, drop us a line. We’d love to help!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tablexi.com/2012/04/seo-for-blogs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notes from PyCon</title>
		<link>http://www.tablexi.com/2012/04/notes-from-pycon/</link>
		<comments>http://www.tablexi.com/2012/04/notes-from-pycon/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 16:21:23 +0000</pubDate>
		<dc:creator>Ross Heflin</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Developers' Cave]]></category>
		<category><![CDATA[On Our Radar]]></category>
		<category><![CDATA[Table XI Blog]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PyCon]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Table XI blog]]></category>

		<guid isPermaLink="false">http://www.tablexi.com/?p=8693</guid>
		<description><![CDATA[I’m a Ruby on Rails guy by day, but, in the interest of staying rounded, I’m also active within the Python community. To gain more knowledge from this community, TXI was happy to send me to PyCon, an annual conference centered around Python and the frameworks (or problems solved) utilizing it. Python is a different [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://www.python-tutorial.com/wp-content/uploads/2010/11/python-logo-glassy.png" alt="" width="257" height="328" />I’m a Ruby on Rails guy by day, but, in the interest of staying rounded, I’m also active within the Python community. To gain more knowledge from this community, TXI was happy to send me to <a href="https://us.pycon.org/2012/" target="_blank">PyCon</a>, an annual conference centered around Python and the frameworks (or problems solved) utilizing it. Python is a different programming language with a different set of tools and guiding principles. But I feel very strongly that the Python and Ruby communities could learn a lot from each other, and I’m not the only one—just check out <a href="http://rupy.eu/" target="_blank">RUPY</a>, an annual conference in Poland for both Python and Ruby.</p>
<p>I caught several good presentations which I feel would be valuable for all developers regardless of their choice of tools (read on for some of my notes below); however, with five talks going on simultaneously for three straight days, I’m sure I missed some great sessions that would have been more applicable to both Python and Ruby. What’d I miss? What talks did you like? Leave your thoughts in the comments or drop me a line at <a href="mailto:ross@tablexi.com">ross@tablexi.com</a>.</p>
<p>All formal talks given at PyCon are recorded and have been posted @ <a href="http://pyvideo.org/" target="_blank">http://pyvideo.org</a> so you can tune in even if you couldn’t attend. I’d definitely recommend checking out the following talks:</p>
<p><span id="more-8693"></span></p>
<p>&nbsp;</p>
<p><strong><strong>1. <a href="http://pyvideo.org/video/880/stop-writing-classes" target="_blank">Stop Writing Classes &#8211; Jack Diederich</a></strong></strong></p>
<p><strong><strong>Takeaways:</strong></strong></p>
<ul>
<li>Excess classes = more cost (code costs time to make and time to maintain)</li>
<li>Namespaces are for preventing namespace collisions, NOT for creating taxonomies</li>
<li>When coming up with exceptions, try to find one in stdlib first! (165 in python&#8217;s stdlib: there’s probably already one which fits your purpose)</li>
<li>Classes make sense for holding &amp; validating related data but remember KISS</li>
</ul>
<p><strong><strong>Reflections:</strong></strong></p>
<ul>
<li>This happened all the time when I was doing Java for a living (for Steve Yegge’s fine description of the situation in Java, see: <a href="http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html" target="_blank">&#8220;Execution in the Kingdom of Nouns&#8221;</a>)</li>
<li>I&#8217;m guilty of this in a couple api-wrappers I&#8217;ve built for third party services</li>
<li>This would be one of the reasons why they&#8217;re not open source yet</li>
<li>Fortunately only one consumer (another app I wrote) so api evolution can happen as needed (not all gem writers are so lucky)</li>
</ul>
<h4></h4>
<p>&nbsp;</p>
<p><strong><strong>2. <a href="http://pyvideo.org/video/948/pragmatic-unicode-or-how-do-i-stop-the-pain" target="_blank">Pragmatic Unicode, or, How do I stop the pain? &#8211; Ned Batchelder</a></strong></strong></p>
<p><strong><strong></strong></strong><a href="https://us.pycon.org/2012/schedule/presentation/141/" target="_blank">(Description)</a></p>
<p><strong><strong>Takeaways:</strong></strong></p>
<ul>
<li>Unicode is here to stay</li>
<li>Unless you learn, you’ll get bitten</li>
<li>Don&#8217;t just use libraries: Know what they&#8217;re doing and test them to make sure they do what they say they&#8217;ll do</li>
<li>Build app as unicode sandwich</li>
<li>Translate at the outside layers of your program (persistence layer and standardize on one format (unicode strings) in your code)</li>
<li>Test with unicode strings</li>
</ul>
<p><strong><strong>Reflections:</strong></strong></p>
<ul>
<li>Haven&#8217;t personally been bitten by text / unicode within core Ruby itself (mercifully haven&#8217;t had to dive too deeply into how Ruby handles this stuff); Rails (3) seems to encode/decode input from a browser quite well</li>
<li>Be very careful of your persistence layer for your backend</li>
<li>My particular experience: MySQL</li>
<li>The mysql gem&#8217;s default encoding on a connection to mysql = latin1</li>
<li>Result: When we switched to the mysql2 gem (which uses utf8 as the character set for a connection by default) we discovered issues in our database (utf8 characters that had been wrongly put through MySQL’s latin1-&gt;utf-8 conversion) which needed to be fixed</li>
<li>Thorough writeup on the subject: <a href="http://www.bluebox.net/news/2009/07/mysql_encoding/" target="_blank">&#8220;Getting out of MySQL Character Set Hell&#8221;</a> by Nathan Kaiser</li>
</ul>
<p>&nbsp;</p>
<p><strong><strong>3. <a href="http://pyvideo.org/video/653/certainty-in-an-uncertain-world-gaining-confiden" target="_blank">Certainty in an Uncertain World: Gaining Confidence through Security Testing &#8211; Geremy Condra</a></strong></strong></p>
<p><a href="https://us.pycon.org/2012/schedule/presentation/48/" target="_blank">(Description)</a></p>
<p><strong>Takeaways:</strong></p>
<ul>
<li>CWE/SANS Top 25 list: check for these and you&#8217;re WAY ahead of the game</li>
<li>fuzzdb for input test cases</li>
<li>xsser checking for XSS vulnerabilities</li>
</ul>
<p><strong><strong>Reflections:</strong></strong></p>
<ul>
<li>Security should always be a concern when the app is public. Even when it’s not, and the app is just for internal use, I generally:</li>
<ul>
<li>&#8211;Don&#8217;t allow anonymous users to change things (they must login and only admins can create users)</li>
<li>&#8211;&#8221;Never attribute to malice that which is adequately explained by [ignorance]&#8221; &#8212; Hanlon&#8217;s Razor</li>
</ul>
<li>Just because the client is reasonably sure their users aren&#8217;t malicious:</li>
<ul>
<li>&#8211;Don&#8217;t allow admin users to change things that will break the main site functionality</li>
<li>&#8211;Have validations, be strict with them, and test them</li>
</ul>
<li>In the past, we used attr_protected liberally on attributes/columns that identify parent records to mass assignment abuse</li>
<li>Foreign keys on the same</li>
<li>Moving forward, we should probably just be using attr_accessible on fields that we know we want to mass assign.</li>
<ul>
<li>&#8211;Higher maintenance code</li>
<li>&#8211;More reasonable expectation of security (same rules apply for admin users of the public websites we produce)</li>
</ul>
<li>Rails protections I&#8217;m aware of that protect against things on the top 25 list (and have checked out myself in the time I&#8217;ve been working here):</li>
<ul>
<li>&#8211;CSRF: this is something they&#8217;re careful with but flaws have been found from time to time</li>
<li>&#8211;XSS (we use Haml for views where all output is escaped by default and try not to show things unescaped)</li>
<li>&#8211;Avoiding SQL Injection:</li>
<ul>
<li>*Always pass arguments to .where() (hash or otherwise—NEVER use string interpolation in a where clause); I believe this will use db-level bind variables and escape things appropriately</li>
<li>*If you offload sorting / grouping to the db, have a whitelist for things that could end up in an ORDER BY or GROUP BY in those clauses and check against it (I don&#8217;t think Rails/ActiveRecord escapes these, and thus potential for sql injection still exists)</li>
</ul>
</ul>
</ul>
<p style="padding-left: 30px;" dir="ltr">Don&#8217;t Take My Word For It…. Test your Applications heavily!</p>
<p><strong id="internal-source-marker_0.16953626251779497"><br />
Here’s some further reading:<br />
</strong></p>
<p><a href="http://cwe.mitre.org/top25/" target="_blank">2011 CWE/SANS Top 25 Most Dangerous Software Errors</a><br />
<a href="http://guides.rubyonrails.org/security.html" target="_blank">Rails Security Guide</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tablexi.com/2012/04/notes-from-pycon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Years at TXI</title>
		<link>http://www.tablexi.com/2012/03/10-years-at-txi/</link>
		<comments>http://www.tablexi.com/2012/03/10-years-at-txi/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 16:13:40 +0000</pubDate>
		<dc:creator>Josh Golden</dc:creator>
				<category><![CDATA[Table XI Blog]]></category>
		<category><![CDATA[Things That Make Us Happy]]></category>
		<category><![CDATA[TXI Life]]></category>
		<category><![CDATA[10 years]]></category>
		<category><![CDATA[Costa Rica]]></category>
		<category><![CDATA[Table XI blog]]></category>

		<guid isPermaLink="false">http://www.tablexi.com/?p=8557</guid>
		<description><![CDATA[Table XI was founded because our first employees were frustrated working in organizations where technology was the source of more problems than solutions. So ten years ago this month, we took matters into our own hands and started a company that could deliver cutting edge technology solutions to the real people who work at and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tablexi.com/2012/03/10-years-at-txi/10years_fullsize_story15c45f3/" rel="attachment wp-att-8559"><img class="alignright  wp-image-8559" style="margin: 10px;" title="10years_fullsize_story15c45f3" src="http://www.tablexi.com/wp-content/uploads/2012/03/10years_fullsize_story15c45f3-300x300.jpg" alt="" width="270" height="270" /></a>Table XI was founded because our first employees were frustrated working in organizations where technology was the source of more problems than solutions. So ten years ago this month, we took matters into our own hands and started a company that could deliver cutting edge technology solutions to the real people who work at and run Chicagoland&#8217;s small and mid-size businesses.</p>
<p>Today, our very <a href="http://www.dicksondata.com/" target="_blank">first client</a> is still with us, and our staff comprises several people who have been here since the start (or near to it). It’s these kind of lasting relationships that we’re most proud of, along with the cool and innovative work we’ve gotten to do along the way.</p>
<p>Part of the founding ethos of Table XI was that creating an inviting company culture would bring us the best developers. Over the years we’ve introduced daily perks like flexible hours and lunches (catered in-house), plus bigger benefits like retreats to Costa Rica, where we can simultaneously have fun, get to know each other better, and work on interesting company projects. It’s an investment that has brought us incredibly talented people and allowed us to expand our client base and business—the proverbial win-win.</p>
<p>So what’s next for us? Our time in Costa Rica gave some smart people time to work on smart ideas and get experience with new platforms. We’ll foster more of that, while continuing to figure out how to recruit and retain the best talent and apply their skills to the newest technologies. With the industry focusing on social apps and mobile optimized products, we’ll be doing a lot more work in those areas.</p>
<p>We’re incredibly proud of our achievements, and that we were able to make it through the last decade’s tough times without having to cut back on people or benefits. We’d like to thank our clients and employees for helping us get here, and we can’t wait to see what the next ten years will bring.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tablexi.com/2012/03/10-years-at-txi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Things We Learned in Costa Rica</title>
		<link>http://www.tablexi.com/2012/03/10-things-we-learned-in-costa-rica/</link>
		<comments>http://www.tablexi.com/2012/03/10-things-we-learned-in-costa-rica/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 21:29:09 +0000</pubDate>
		<dc:creator>Kathryn Achenbach</dc:creator>
				<category><![CDATA[Photos]]></category>
		<category><![CDATA[Table XI Blog]]></category>
		<category><![CDATA[Things That Make Us Happy]]></category>
		<category><![CDATA[TXI Life]]></category>
		<category><![CDATA[Costa Rica]]></category>
		<category><![CDATA[our team]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[retreat]]></category>
		<category><![CDATA[Schwartzography]]></category>
		<category><![CDATA[Table XI blog]]></category>

		<guid isPermaLink="false">http://www.tablexi.com/?p=8459</guid>
		<description><![CDATA[We swam, we surfed, we SQL queried. Between the beach and the tiki hut office, there was lots to glean from our time in Costa Rica: Contrary to popular belief, developers are not allergic to sunlight. Hammocks make good desks. A day iterating on Facebook&#8217;s API is a day well spent. When you want a [...]]]></description>
			<content:encoded><![CDATA[<p>We swam, we surfed, we SQL queried. Between the beach and the tiki hut office, there was lots to glean from our time in Costa Rica:</p>
<ol>
<li>Contrary to popular belief, developers are not allergic to sunlight.</li>
<li>Hammocks make good desks.</li>
<li>A day iterating on Facebook&#8217;s API is a day well spent.</li>
<li>When you want a good photo, ask a <a href="http://schwartzography.com/2012/03/costa-rica-recap/" target="_blank">Schwartz</a>.</li>
<li>Jason Pearl builds cloud-based games and Imperial pyramids with equal levels of dedication and ingenuity.</li>
<li>Chef Aram has ninja knife skills. And now we all know how to chop an onion properly.</li>
<li>Just say no to traveling on the day two major airlines merge.</li>
<li>Just say yes when someone asks you if you have a phone in your pocket before they throw you in the water.</li>
<li>Meetings are more fun when they happen in pools.</li>
<li>The two rarest things to see in the wild: sloths and a John Gore smile.</li>
</ol>
<div id="portfolio-slideshow1" class="portfolio-slideshow">
	<div class="slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/03/1-boat.jpg" src="http://www.tablexi.com/wp-content/uploads/2012/03/1-boat.jpg" height="268" width="400" alt="Contrary to popular belief, developers are not allergic to sunlight." /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/03/1-boat.jpg" height="268" width="400" alt="Contrary to popular belief, developers are not allergic to sunlight." /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">Contrary to popular belief, developers are not allergic to sunlight.</p></div></div>
			<div class="not-first slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/03/2-hammock.jpg" src="http://www.tablexi.com/wp-content/plugins/portfolio-slideshow/img/tiny.png" height="300" width="400" alt="Hammocks make good desks." /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/03/2-hammock.jpg" height="300" width="400" alt="Hammocks make good desks." /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">Hammocks make good desks.</p></div></div>
			<div class="not-first slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/03/3-Facebook-api.jpg" src="http://www.tablexi.com/wp-content/plugins/portfolio-slideshow/img/tiny.png" height="268" width="400" alt="A day iterating on Facebook's API is a day well spent." /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/03/3-Facebook-api.jpg" height="268" width="400" alt="A day iterating on Facebook's API is a day well spent." /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">A day iterating on Facebook's API is a day well spent.</p></div></div>
			<div class="not-first slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/03/4-schwartz.jpg" src="http://www.tablexi.com/wp-content/plugins/portfolio-slideshow/img/tiny.png" height="403" width="300" alt="When you want a good photo, ask a Schwartz." /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/03/4-schwartz.jpg" height="403" width="300" alt="When you want a good photo, ask a Schwartz." /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">When you want a good photo, ask a Schwartz.</p></div></div>
			<div class="not-first slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/03/5-pyramid.jpg" src="http://www.tablexi.com/wp-content/plugins/portfolio-slideshow/img/tiny.png" height="268" width="400" alt="Jason Pearl builds cloud-based games and Imperial pyramids with equal levels of dedication and ingenuity." /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/03/5-pyramid.jpg" height="268" width="400" alt="Jason Pearl builds cloud-based games and Imperial pyramids with equal levels of dedication and ingenuity." /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">Jason Pearl builds cloud-based games and Imperial pyramids with equal levels of dedication and ingenuity.</p></div></div>
			<div class="not-first slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/03/6-aramknife.jpg" src="http://www.tablexi.com/wp-content/plugins/portfolio-slideshow/img/tiny.png" height="343" width="350" alt="Chef Aram has ninja knife skills. And now we all know how to chop an onion properly." /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/03/6-aramknife.jpg" height="343" width="350" alt="Chef Aram has ninja knife skills. And now we all know how to chop an onion properly." /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">Chef Aram has ninja knife skills. And now we all know how to chop an onion properly.</p></div></div>
			<div class="not-first slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/03/7-airport.jpg" src="http://www.tablexi.com/wp-content/plugins/portfolio-slideshow/img/tiny.png" height="268" width="400" alt="Just say no to traveling on the day two major airlines merge." /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/03/7-airport.jpg" height="268" width="400" alt="Just say no to traveling on the day two major airlines merge." /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">Just say no to traveling on the day two major airlines merge.</p></div></div>
			<div class="not-first slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/03/8-mark.jpg" src="http://www.tablexi.com/wp-content/plugins/portfolio-slideshow/img/tiny.png" height="400" width="300" alt="Just say yes when someone asks you if you have a phone in your pocket before they throw you in the water." /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/03/8-mark.jpg" height="400" width="300" alt="Just say yes when someone asks you if you have a phone in your pocket before they throw you in the water." /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">Just say yes when someone asks you if you have a phone in your pocket before they throw you in the water.</p></div></div>
			<div class="not-first slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/03/9-pool-meeting.jpg" src="http://www.tablexi.com/wp-content/plugins/portfolio-slideshow/img/tiny.png" height="268" width="400" alt="Meetings are more fun when they happen in pools." /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/03/9-pool-meeting.jpg" height="268" width="400" alt="Meetings are more fun when they happen in pools." /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">Meetings are more fun when they happen in pools.</p></div></div>
			<div class="not-first slideshow-next slideshow-content">
			<a href="javascript: void(0);" class="slideshow-next"><img class="psp-active" data-img="http://www.tablexi.com/wp-content/uploads/2012/03/10-johngore.jpg" src="http://www.tablexi.com/wp-content/plugins/portfolio-slideshow/img/tiny.png" height="300" width="400" alt="The two rarest things to see in the wild: sloths and a John Gore smile." /><noscript><img src="http://www.tablexi.com/wp-content/uploads/2012/03/10-johngore.jpg" height="300" width="400" alt="The two rarest things to see in the wild: sloths and a John Gore smile." /></noscript></a><div class="slideshow-meta"><p class="slideshow-title">The two rarest things to see in the wild: sloths and a John Gore smile.</p></div></div>
			</div><!--#portfolio-slideshow--></div><!--#slideshow-wrapper-->
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tablexi.com/2012/03/10-things-we-learned-in-costa-rica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

