<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0">
    <title>Paul Dix Explains Nothing</title>
    <link rel="self" type="application/atom+xml" href="https://www.pauldix.net/atom.xml" />
    <link rel="alternate" type="text/html" href="https://www.pauldix.net/" />
    <id>tag:typepad.com,2003:weblog-108605</id>
    <updated>2011-01-13T11:59:00-05:00</updated>
    <subtitle>The thoughts of some programmer guy in NYC</subtitle>
    <generator uri="http://www.typepad.com/">TypePad</generator>
<entry>
        <title>Water water everywhere and not a drop to drink: The Myth and Truth of the NYC engineer shortage</title>
        <link rel="alternate" type="text/html" href="https://www.pauldix.net/2011/01/water-water-everywhere-and-not-a-drop-to-drink-the-myth-and-truth-of-the-nyc-engineer-shortage.html" />
        <link rel="replies" type="text/html" href="https://www.pauldix.net/2011/01/water-water-everywhere-and-not-a-drop-to-drink-the-myth-and-truth-of-the-nyc-engineer-shortage.html" thr:count="8" thr:updated="2011-03-21T06:09:31-04:00" />
        <id>tag:typepad.com,2003:post-6a00d8341f4a0d53ef0148c793f692970c</id>
        <published>2011-01-13T11:59:00-05:00</published>
        <updated>2011-01-13T12:55:31-05:00</updated>
        <summary>Earlier this week I had the opportunity to sit with six other people from the NYC technology scene and talk to NYC Council Speaker Christine Quinn and a few members of her staff. Charlie O&#39;Donnell organized the event to help...</summary>
        <author>
            <name>Paul Dix</name>
        </author>
        
        
<content type="xhtml" xml:lang="en-US" xml:base="https://www.pauldix.net/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Earlier this week I had the opportunity to sit with six other people from the NYC technology scene and talk to NYC Council Speaker Christine Quinn and a few members of her staff. <a href="http://www.thisisgoingtobebig.com" target="_self">Charlie O&#39;Donnell</a> organized the event to help Speaker Quinn engage with the startup scene and hear from us directly what the city can do, if anything, to help foster startups, tech, and innovation here in NYC. The two major themes that emerged from the discussion were: more on the ground interaction between city government and the tech community and that NYC has a major shortage of engineering talent. The resulting talk on the perceived programmer shortage in NYC is the inspiration for this post.</p>
<p><br />Ask any startup in NYC (or anyone that needs a programmer for that matter) and most will agree that their biggest problem is finding programmers to hire. This was definitely the most prominent topic in the discussion with Speaker Quinn and her staff. The question then became: how do we solve this problem? How can the city government help? The group converged on education as the method to create more programming talent in the city (there wasn&#39;t much talk about what can be done to entice already qualified developers to move here). I agree completely that education is what is ultimately needed. An idea that I thought was spot on was required computer science classes for grade school students. We require math and physical sciences. Computers are just as ingrained and important in our society at this point as math and hard sciences. We need something more than teaching kids MS Word, Excel, and Powerpoint. That&#39;s like teaching kids how to use a match to light a fire and expecting them to be able to explain the second law of thermodynamics. However, that doesn&#39;t solve the immediate need. It&#39;s more of a 20 year plan.</p>
<p><br />The group&#39;s idea to address the immediate need for programmers was to put together secondary classes to give training to those currently unemployed people that have interest in picking up new skills. The city can help immensely by providing space and letting those in need know about the availability of these classes. The thinking goes that people could pick up mobile application development or Ruby on Rails in a period of 3 to 6 months and then jump into the NYC startups that are so desperate for these skill sets. I contend that: first, there are more available engineers in this city than hiring startups claim, and second, this probably won&#39;t solve the programmer need to the satisfaction of those NYC startups that claim to be so desperate. Hence the <strong>myth</strong> that there are no available programmers in NYC and the <strong>truth</strong> that the best programmers are hard to find. But there is hope to fix this, let me explain...</p>
<p><br />First, my claim that there are more engineers in this city than hiring startups claim. It&#39;s not that startups can&#39;t find anyone. I&#39;m sure that startups with open positions came across resumes and even interview some candidates. It&#39;s just that they end up throwing out most of the resumes they see and giving the &quot;no hire&quot; stamp on most of the candidates they interview. I&#39;ve been guilty of this myself. I&#39;ve interviewed many candidates and given far more &quot;no hire&quot; than &quot;hire&quot; recommendations. I&#39;ve also looked through a stack of resumes and thrown out a significant portion of them. This comes naturally from a startup&#39;s desire to only hire the best. This means that while startups are all screaming to the rafters about the shortage of programmers, there are programmers in this city that are available for hire. But there is hope...</p>
<p><br />Second, my claim that secondary education in mobile app development or Ruby on Rails won&#39;t solve the programmer shortage to the satisfaction of NYC startups. This follows naturally from my first point: startups only want to hire the best. If they can&#39;t find the best they say that there are no &quot;qualified candidates&quot; out there. While I&#39;m sure that some of the basics of web development or mobile apps can be taught in six months, the student won&#39;t be the best. Becoming the best takes years of education, personal study, practice, and work experience. Someone with no previous programming experience that picks up development over the course of six months will still be incredibly green. They will either not pass the resume filter for hiring or will get hung up on questions in the technical interview. In either case the result is the same: no hire and startups still can&#39;t find qualified candidates. But there is hope...</p>
<p><br />The hurdles around retraining engineers that may not have your specific skill set and working with very junior programmers can be overcome. First, startups need to readjust their expectations. You don&#39;t need to have the best in everything. You don&#39;t even need a programmer that has your specific skill requirement in their resume. The key is to do pair programming with senior people paired up with junior people (or someone picking up something new). Within six months of full time pairing the junior people will have picked up so much that they&#39;ll be well on their way to being ready to mentor a new junior hire themselves.</p>
<p><br />Getting students from these programming courses around the resume filter is also possible. The combination of two things will go a long way: require the students to create two or more projects and have the students put those projects up on Github. The two projects will give them invaluable experience. Further, they should be required to refactor as they go based on feedback from code review done by experienced developers. Requiring them to put the code on Github gives multiple advantages. First, they learn how to use source control as they write code. Second, the code reviews done by other developers can be done right there on the site and associated with each commit. Third, they&#39;ll have projects of reference that can be used to show prospective employers what exactly their classes taught them.</p>
<p><br />For startups to get past the hurdle of hiring junior people they&#39;ll need to do a couple of things. First, embrace pair programming as a great method for bringing on junior developers and making them a key part of your team from the beginning (they&#39;ll be mid-level and senior before you know it). Second, readjust your expectations. You don&#39;t really need the most bad-ass developer you can find. If you did, you&#39;d do whatever it took to poach them from their current job. Mid-level and senior developers paired with junior developers will do just fine for most startup&#39;s needs. If you can&#39;t find the best, senior, or mid-level developers to pair with junior hires, look to a consulting company. Pivotal Labs (they have a great new office here in NYC) is regularly brought in to pair with developers already in a startup. They do a great job of bringing in solid engineering process and bringing junior developers up to speed quickly (and they&#39;re not the only game in town). Finally, if you can&#39;t afford a consulting company or hiring senior developers, you&#39;ll need to do one of two things. Roll up your own sleeves and pick up some books and a keyboard, or be ok with the fact that you may only be able to convince someone without experience to work on your hot new startup idea (it&#39;s how I got started).</p>
<p><br />There is definitely hope for the engineering shortage in NYC. It requires bringing on inexperienced people or those in need of retraining (C++ or Java to dynamic language anyone?) and helping them achieve their potential while letting them help you get your startup built. I&#39;d like to thank Speaker Quinn, Sarah, and David from her staff for taking the time to talk to us. I hope that we&#39;ll come up with some great ideas and collaboration in the future to make innovation a permanent home here in NYC.</p>
<p><br />What ideas do you have to increase the amount of talent here in the city?</p>
<p><strong>Update:</strong>&#0160;My friend <a href="http://twitter.com/brodyberg" target="_self">Brody Berg</a> wondered why I didn&#39;t write about the &quot;talent vortex&quot; in NYC that is the financial industry. I actually originally meant to, but simply forgot. So here is why I think the competition from the NYC financial market helps fuel the <strong>myth</strong>&#0160;that it&#39;s impossible to find great talent in NYC.</p>
<p>First, the finance industry generally pays their programmers quite well. Startups that are desperate for these people will just have to get used to it and offer competitive compensation packages. It&#39;s kind of like trying to hire programmers in Redmond or Bellevue, WA in the 90&#39;s. Microsoft was a huge talent vortex and offered larger salaries and better benefits. The same could have been said for Google from 2003-2008. You either get competitive or find people that these companies have overlooked.</p>
<p>Which brings me to my second point: there are plenty of programmers to hire that the finance industry won&#39;t even look twice at. The intersection of the programmers you want and those that work in finance may not be as large as you think. Financial firms want people from name brand schools (preferably Ivy) with high GPAs (3.5 or greater is common). If you don&#39;t want to compete on compensation, look for programmers that don&#39;t fit their mold. Self-taught (and specially those with secondary education like this article talks about) are the kinds of programmers that will rarely get consideration from a financial firm.</p>
<p>Also, the financial industry wants Java, dotNet, and C++ programmers. Chances are that if you&#39;re a startup, this isn&#39;t what you&#39;re after. Further, the finance industry has laid off quite a few programmers in the last three years. These are those experienced engineers that don&#39;t have the skill set that matches yours. They know Java, but they don&#39;t know Rails and Javascript. However, these are generally smart people that can pick it up very quickly on the job. The easiest way to find a Rails programmer right now is to poach from another community and teach them Rails.</p>
<p>Competing with the financial firms is tough, but it&#39;s certainly doable.</p></div>
</content>



    </entry>
<entry>
        <title>Why Mark Suster is wrong about not hiring job hoppers</title>
        <link rel="alternate" type="text/html" href="https://www.pauldix.net/2010/04/why-mark-suster-is-wrong-about-not-hiring-job-hoppers.html" />
        <link rel="replies" type="text/html" href="https://www.pauldix.net/2010/04/why-mark-suster-is-wrong-about-not-hiring-job-hoppers.html" thr:count="29" thr:updated="2010-09-10T16:42:20-04:00" />
        <id>tag:typepad.com,2003:post-6a00d8341f4a0d53ef0133eceffae5970b</id>
        <published>2010-04-25T10:36:41-04:00</published>
        <updated>2010-04-25T10:36:41-04:00</updated>
        <summary>Well known VC and entrepreneur Mark Suster recently posted that you should &quot;Never Hire Job Hoppers. Never. They Make Terrible Employees.&quot; I almost completely disagree. Before I dissect his argument I should provide a little disclaimer and background. The disclaimer:...</summary>
        <author>
            <name>Paul Dix</name>
        </author>
        
        
<content type="xhtml" xml:lang="en-US" xml:base="https://www.pauldix.net/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Well known VC and entrepreneur Mark Suster recently posted that you should &quot;<a href="http://www.bothsidesofthetable.com/2010/04/22/never-hire-job-hoppers-never-they-make-terrible-employees/">Never Hire Job Hoppers. Never. They Make Terrible Employees.</a>&quot; I almost completely disagree. Before I dissect his argument I should provide a little disclaimer and background.</p>

<p><strong>The disclaimer:</strong> Mark is definitely more of an authority on the topic than I am. He&#39;s a VC and has run companies while I&#39;m currently bootstrapping my own and haven&#39;t hired anyone yet. Additionally, there are many people in management and hiring positions that would agree with Mark (based on my own anecdotal conversations with people in hiring positions).</p>

<p><strong>The background:</strong> I&#39;m guilty of being in the category of disloyal, self-serving, job-hopping scum that Mark is writing about. If you check my <a href="http://www.linkedin.com/in/pauldix">LinkedIn profile</a> I have 11 positions listed starting in &#39;98. However, I may get a special carve out upon further explanation of my history. I&#39;ll lay it out quickly because it&#39;s relevant to my argument later.</p>

<p>Two of the positions are current. One is part time consulting and the other is my startup. Ok, so 9 positions to explain now. Still in job hopping group. One I quit to go back to school. Three were temporary summer positions while I was in school. Now I&#39;m down to 5, but that probably still makes me a job hopper. In one I was laid off because the startup ran out of runway. Another, I left because the previously mentioned startup had intellectual property (read: code) that sold and I was needed to help the buyer transition and integrate it. Now I&#39;m down to three unexplained company departures. One I left because it was a contract position and the project was completed. The other two I left for other opportunities: one to join a startup and the other to start <a href="http://market.io/">my own company</a>.</p>

<p>With all that out of the way let&#39;s dive into some of Mark&#39;s points. First, here&#39;s what he has to say about someone that has been identified as a job hopper due to having too many short positions on their resume:</p>
<blockquote>You won’t even get through my filter (unless I know you or you’re recommended). No matter what your job hopping excuse is.</blockquote>

<p>This isn&#39;t an argument against job hopping, it&#39;s an argument for finding a better filter. Now, you definitely won&#39;t get through Mark&#39;s filter, but you&#39;d get through mine. Note that my filter is built for hiring engineers. Here are some filters in no particular order.</p>

<ul>
<li>Do you have relevant experience?</li>
<li>Do you have a Github or other public code profile?</li>
<li>Do you have a blog where you write about technical things?</li>
<li>Are you involved in the community (attending user groups, meetups, etc.)?</li>
<li>Do you have programming languages and technologies listed on your resume that you picked up in your free time?</li>
</ul>

<p>Most of these filters are designed to tell me if the candidate spends some of their free time improving their skills and advancing their career. Of course, most of those specific filters are only good for finding programmers. They also only apply to looking at resumes and not other things that come in an interview (like personality, culture fit, and more detailed technical stuff). However, people (and not just engineers) that work on their skills and career in their free time are more likely to be job hoppers unless their job is with them and helping to contribute to their growth. So detracting job hopping isn&#39;t part of my filter. I&#39;ll get into the why when I dig into his primary argument against them (us).</p>

<p>Mark goes on to define a job hopper. Notice the language he uses in his definition:</p>

<blockquote>If you’re 30 and have had 6 jobs since college you’re 98% likely to be a job hopper. You’re probably disloyal. You don’t have staying power. You’re in it more for yourself than your company. OR … you make bad decisions about which companies you join.</blockquote>

<p>There&#39;s a little more in his definition, but that&#39;s the meaty bit that I want to pick apart. First, the part about being disloyal. &quot;You&#39;re in it for yourself more than the company&quot;?! That&#39;s exactly what I expect of everyone I work with. They have families to feed, student loans to pay, rent to pay, and they have to be worried about whether their continued employment at the company will benefit their overall career. Everyone is in it for themselves. That&#39;s capitalism. The goal is to make is so that everyone&#39;s self interests align with that of the company. That means having the right stock options, opportunities for professional growth, acquiring new skills, and clear advancement opportunities. It&#39;s a company, not a commune.</p>

<p>Second, the part about making bad decisions about companies to join. As a VC Mark evaluates companies and hopes to find out of 10: 1 home run and maybe 2 base hits. He&#39;s ok if 7-8 of 10 companies in his portfolio fail completely. Job seekers don&#39;t have that luxury. They have to evaluate the companies out there and pick <strong>one</strong>. If it&#39;s the wrong one then they have to move on to the next. For job seekers to get through a portfolio of 10 companies it can take a decade of changing jobs each year.</p>

<p>Next comes Mark&#39;s main argument, which I will boil down to the following: Job hoppers make bad employees at startups because startups need people that are loyal and job hoppers have proven that they are disloyal. First, let&#39;s talk about loyalty. I consider loyalty, respect, and love to be things that have to be earned. If you want loyalty without earning it, hire a dog. Giving out a paycheck every two weeks doesn&#39;t earn you loyalty. As the old saying goes: money can&#39;t buy you love, but it can buy you prostitutes (who probably won&#39;t be loyal). Loyalty should be earned by building an environment that is mutually beneficial. Further, you have to be sure to continually assess not only employees, but yourself to see if you&#39;re living up to their expectations of what a great workplace should be. Don&#39;t hire someone off the street and expect them to be loyal right off the bat just because you agreed to give them a paycheck.</p>

<p>So have job hoppers proven that they are disloyal? For the purposes of Mark&#39;s filter the answer is yes, but I personally disagree. I would never fault someone for changing jobs because they felt it was better for their career, or going back to school, or moving to a new city, or because their manager was a jerk, or whatever. Mark&#39;s point is that job hopping establishes a pattern of disloyalty and, perhaps, personality flaws. However, you can look at it this way. People have can have a few reasons for staying at a job: it&#39;s awesome or they want to leave, but can&#39;t find another opportunity. There are many more reasons to <strong>leave</strong> a job. The truth is that you can&#39;t establish whether there is a pattern simply by looking at someone&#39;s resume. As my own resume explanations show, there are plenty of reasons to leave jobs. Leave the personality filter for the interview.</p>

<p>Mark then puts job hoppers as not only no-hires, but also as people he wouldn&#39;t fund if they were entrepreneurs pitching their startup. Here&#39;s that part:</p>

<blockquote>And good VC’s feel the same way. When my company hit the fan in 2001 I could have easily walked and gotten a better paying job. Anyone around then knows that B2B stood for “back-to-banking” and B2C stood for “back-to-consulting.” I took people’s money. It was my job to stay and try and make things better. When I’m looking to fund somebody I care about that loyalty and integrity. I can never know for sure but as I’ve written about before I’m certainly looking for resiliency.</blockquote>

<p>So he views job hoppers as people that have proven that they are disloyal, lack integrity, and have no resiliency. Further, if you&#39;re a job hopper that will translate to how you view entrepreneurship. This is so <strong>off the mark</strong> it hurts my brain. Let me explain why. As an entrepreneur there is one benefit that ranks above all others. Stability and a big paycheck definitely aren&#39;t it. It&#39;s a sense of ownership. It&#39;s a sense of owning your own destiny. I&#39;ve talked to a bunch of other entrepreneurs and they share that feeling. If you ask job hoppers why they left some of their jobs the story will be the opposite. They left because they weren&#39;t given enough ownership. They weren&#39;t included in vital decision making processes. When you have the ability to improve your workplace, you have no reason to hop jobs. Most jobs don&#39;t actually give their employees this chance. They&#39;re filled with bureaucracy and ridiculous power struggles. That&#39;s exactly the opposite of the startup and entrepreneurship experience.</p><p>I propose that Mark has it backwards. Job hoppers could be exactly the kind of people you want to find for your startup. The likely case is that you&#39;re a job hopper because you&#39;re willing to take risks, you&#39;re looking for something great to work on, you&#39;re looking for a job that gives you a sense of ownership, and you&#39;re looking for the right team. True, you could be a job hopper because you have serious personality flaws, but save that for the interview. If 2 out of 3 job hoppers have exactly the personality traits that make them well suited for startups and 1 is a disloyal scumbag, you&#39;re better off specifically filter <strong>for</strong> job hoppers.You won&#39;t ever find 2/3 odds in a stack of resumes.</p><p>Finally, I propose that an argument could be made that startups specifically <strong>don&#39;t</strong> want people that stay in jobs too long. These are people that have shown that they prefer stability over exploring&#0160; something new (or maybe they were the lucky few that found the right job on the first few tries). Stability is exactly the opposite of what you&#39;re signing up for when you join a startup. The person seeking stability over all else will be the first to leave in favor of a big company or government gig when things get dicey.</p>

<p>The job hopping filter could be used in exactly the opposite way that Mark is suggesting. That shows that it is a poor filter. A filter should give you better than random odds and job hopping just doesn&#39;t. It could be good, it could be bad, you just don&#39;t know. There are too many reasons for someone to have many entries on the resume. Stick to what&#39;s there and don&#39;t try to read between the lines. </p><p>So who in the hell should you hire? Hire the best. Hire people that can leave your startup at any minute if they wanted to because they&#39;re so kick ass that they&#39;re constantly getting contacted by interested parties. Then it becomes your job to ensure that you&#39;re creating an environment that is equally as good as your people. Create a company that gives your people the most room for growth, creativity, a sense of ownership, and fun. And if you can&#39;t hire the best then hire people with any level of experience (novice, intermediate, advanced) that have promise. Then help them become the best so that they can leave any time they want. Hint: they won&#39;t. They&#39;ll be loyal because you helped them become the best. Your goal should be to help every single employee get to the point where they&#39;re the best in their field and are constantly getting job offers.</p>

<p>And what if they aren&#39;t loyal once you&#39;ve helped them become the best? People will eventually leave no matter what you do. Don&#39;t view it as a character flaw on their part. Just know that you can pick up more people because you&#39;ve created a work environment that breeds the best and the word will spread. And as any job hopper can tell you, there are plenty of companies where your skill, ambition, and talent can go to die, but there are very few that help you become the best and give you real reasons to be loyal.</p></div>
</content>



    </entry>
<entry>
        <title>Parse Domains from URLs easily with Domainatrix</title>
        <link rel="alternate" type="text/html" href="https://www.pauldix.net/2009/12/parse-domains-from-urls-easily-with-domainatrix.html" />
        <link rel="replies" type="text/html" href="https://www.pauldix.net/2009/12/parse-domains-from-urls-easily-with-domainatrix.html" thr:count="9" thr:updated="2010-05-19T11:24:11-04:00" />
        <id>tag:typepad.com,2003:post-6a00d8341f4a0d53ef012876917e06970c</id>
        <published>2009-12-30T16:14:39-05:00</published>
        <updated>2010-01-08T15:07:33-05:00</updated>
        <summary>I&#39;ve released another library just in time for the new year. The new library is called Domainatrix and she&#39;s used for parsing domain names, canonicalizing URLs, and a few other things. It uses the list of domain names from the...</summary>
        <author>
            <name>Paul Dix</name>
        </author>
        <category term="Ruby" />
        
        
<content type="xhtml" xml:lang="en-US" xml:base="https://www.pauldix.net/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>I&#39;ve released another library just in time for the new year. The new library is called <a href="http://github.com/pauldix/domainatrix">Domainatrix and she&#39;s used for parsing domain names, canonicalizing URLs</a>, and a few other things. It uses the list of domain names from the <a href="http://publicsuffix.org/">Public Suffix List</a> to know what constitutes a subdomain, domain, and public suffix.</p>

<p>Usage couldn&#39;t be simpler.</p>
<pre>url = Domainatrix.parse(&quot;http://www.pauldix.net&quot;)<br />url.public_suffix  # =&gt; &quot;net&quot;<br />url.domain # =&gt; &quot;pauldix&quot;<br />url.canonical # =&gt; &quot;net.pauldix&quot;<br /><br />url = Domainatrix.parse(&quot;http://foo.bar.pauldix.co.uk/asdf.html?q=arg&quot;)<br />url.public_suffix # =&gt; &quot;co.uk&quot;<br />url.domain # =&gt; &quot;pauldix&quot;<br />url.subdomain # =&gt; &quot;foo.bar&quot;<br />url.path  # =&gt; &quot;/asdf.html?q=arg&quot;<br />url.canonical # =&gt; &quot;uk.co.pauldix.bar.foo/asdf.html?q=arg&quot;<br /></pre>
<p>It&#39;s simple, but I think quite useful. Enjoy!</p></div>
</content>



    </entry>
<entry>
        <title>Resources for Synchronous Reads, Asynchronous Writes at RubyConf 2009</title>
        <link rel="alternate" type="text/html" href="https://www.pauldix.net/2009/11/resources-for-synchronous-reads-asynchronous-writes-at-rubyconf-2009.html" />
        <link rel="replies" type="text/html" href="https://www.pauldix.net/2009/11/resources-for-synchronous-reads-asynchronous-writes-at-rubyconf-2009.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d8341f4a0d53ef012875c3311e970c</id>
        <published>2009-11-21T16:56:19-05:00</published>
        <updated>2009-11-23T12:11:44-05:00</updated>
        <summary>Here are some links to articles and libraries that I mentioned in my talk at RubyConf 2009. RabbitMQ Sinatra Typhoeus, my Ruby library for performing parallel Ruby HTTP requests Great intro to RabbitMQ Bunny, a synchronous Ruby library for RabbitMQ...</summary>
        <author>
            <name>Paul Dix</name>
        </author>
        
        
<content type="html" xml:lang="en-US" xml:base="https://www.pauldix.net/">
&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;p&gt;Here are some links to articles and libraries that I mentioned in my talk at RubyConf 2009.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://rabbitmq.com/&quot;&gt;RabbitMQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.sinatrarb.com/&quot;&gt;Sinatra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/pauldix/typhoeus/&quot;&gt;Typhoeus, my Ruby library for performing parallel Ruby HTTP requests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/&quot;&gt;Great intro to RabbitMQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/celldee/bunny&quot;&gt;Bunny, a synchronous Ruby library for RabbitMQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/tmm/amqp&quot;&gt;AMQP, an evented Ruby library for RabbitMQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/brianmario/yajl-ruby&quot;&gt;YAJL-Ruby, a superb streaming JSON parser written in Ruby and C&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.julianbrowne.com/article/viewer/brewers-cap-theorem&quot;&gt;Good article on Brewer&#39;s CAP Theorem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.allthingsdistributed.com/2008/12/eventually_consistent.html&quot;&gt;Vogels&#39; article on Eventually Consistent&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here are links to images used during the talk.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/28479345@N06/2904198055/&quot;&gt;NYC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/30546596@N00/2353299126/&quot;&gt;Synchronized&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/79982766@N00/268917648/&quot;&gt;lyubov_zhivotn_12&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/73874748@N00/525047172/&quot;&gt;Feathery Friday is Having a Party&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://peepcode.com/system/uploads/2009/envycasts-activerecord-title.png&quot;&gt;Jason Siefer and Greg Pollack of RailsEnvy from their Advanced Active Record Peepcode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/91351004@N00/452412873/&quot;&gt;Highway Insomnia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/19953384@N00/2650022174/&quot;&gt;Boldly go where no man has gone before&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/28233229@N00/1407449118/&quot;&gt;Terrified Sandwich&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/91294193@N00/165416063/&quot;&gt;darma queen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.sinatrarb.com/images/legend.gif&quot;&gt;Sinatra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/91351004@N00/452412873/&quot;&gt;Distance, Depth, Marble World&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/22229020@N07/2148857029/&quot;&gt;Cathédrale espagnole&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/76203377@N00/1306629413/&quot;&gt;Maneating Antenna&#39;d Neotronic Terror Insect Simulator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/78415063@N00/3362517220/&quot;&gt;Don&#39;t Stop!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/66757701@N00/2570656870/&quot;&gt;Big Baby&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/8018349@N03/2441435170/&quot;&gt;Otter Cry/Laugh - Tamar Otter and Wildlife Park, Devon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Finally, here are the slides with the images removed.&lt;/p&gt;
&lt;div style=&quot;width:425px;text-align:left&quot; id=&quot;__ss_2566393&quot;&gt;&lt;a style=&quot;font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;&quot; href=&quot;http://www.slideshare.net/pauldix/synchronous-reads-asynchronous-writes-rubyconf-2009&quot; title=&quot;Synchronous Reads Asynchronous Writes RubyConf 2009&quot;&gt;Synchronous Reads Asynchronous Writes RubyConf 2009&lt;/a&gt;&lt;object style=&quot;margin:0px&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=synchronous-reads-asynchronous-writes-stripped-images-091123110648-phpapp02&amp;stripped_title=synchronous-reads-asynchronous-writes-rubyconf-2009&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=synchronous-reads-asynchronous-writes-stripped-images-091123110648-phpapp02&amp;stripped_title=synchronous-reads-asynchronous-writes-rubyconf-2009&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style=&quot;font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;&quot;&gt;View more &lt;a style=&quot;text-decoration:underline;&quot; href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a style=&quot;text-decoration:underline;&quot; href=&quot;http://www.slideshare.net/pauldix&quot;&gt;pauldix&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
</content>



    </entry>
<entry>
        <title>Typhoeus, the best Ruby HTTP client just got better</title>
        <link rel="alternate" type="text/html" href="https://www.pauldix.net/2009/10/typhoeus-the-best-ruby-https-client-just-got-better.html" />
        <link rel="replies" type="text/html" href="https://www.pauldix.net/2009/10/typhoeus-the-best-ruby-https-client-just-got-better.html" thr:count="8" thr:updated="2010-01-27T03:18:27-05:00" />
        <id>tag:typepad.com,2003:post-6a00d8341f4a0d53ef0120a6340f31970b</id>
        <published>2009-10-29T12:29:29-04:00</published>
        <updated>2009-10-29T12:29:29-04:00</updated>
        <summary>I&#39;ve been quietly working on Typhoeus for the last few months. With the help of Wilson Bilkovich and David Balatero I&#39;ve finished what I think is a significant improvement to the library. The new interface removes all the magic and...</summary>
        <author>
            <name>Paul Dix</name>
        </author>
        
        
<content type="xhtml" xml:lang="en-US" xml:base="https://www.pauldix.net/">
<div xmlns="http://www.w3.org/1999/xhtml"><p>I&#39;ve been quietly working on Typhoeus for the last few months. With the help of <a href="http://metaclass.org/">Wilson Bilkovich</a> and <a href="http://github.com/dbalatero">David Balatero</a> I&#39;ve finished what I think is a significant improvement to the library. The new interface removes all the magic and opts instead for clarity.</p><p>It&#39;s really slick and includes improved stubing support, caching, memoization, and (of course) parallelism. The <a href="http://github.com/pauldix/typhoeus/">Typhoeus readme</a> highlights all of the awesomeness. It should be noted that the old interface of including Typhoeus into classes and defining remote methods has been deprecated. I&#39;ll be removing that sometime in the next six months.</p><p>In addition to thanking everyone using the library and everyone contributing, I should also thank my employer kgbweb. If you&#39;re a solid Rubyist that likes parsing, crawling, and stuff, or a machine learning guy, or a Solr/Lucene/indexing bad ass, let me know. We need you and we&#39;re doing some crazy awesome stuff.</p></div>
</content>



    </entry>
 
</feed>

<!-- ph=1 -->
