<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/feed.atom.xml" media="screen"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <id>tag:speakerdeck.com,2005:/keithpitt</id>
  <link rel="alternate" type="text/html" href="https://speakerdeck.com"/>
  <link rel="self" type="application/atom+xml" href="https://speakerdeck.com/keithpitt.atom"/>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/358339</id>
    <published>2016-09-07T21:27:49-04:00</published>
    <updated>2016-09-07T21:41:44-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/keithpitt/buildkite-loves-golang"/>
    <title>Buildkite loves Golang</title>
    <content type="html">A peek into our build process for the Buildkite Agent written in Golang.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/747d34cab33f47e2b50fee497d827a51/preview_slide_0.jpg?6796694" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Keith Pitt (@keithpitt)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/321154</id>
    <published>2015-11-26T18:58:09-05:00</published>
    <updated>2015-11-26T19:04:35-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/keithpitt/react-plus-relay-plus-graphql-is-the-future"/>
    <title>React + Relay + GraphQL is the Future</title>
    <content type="html"></content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/ae1b960fcdb8469198e04c4983e01a77/preview_slide_0.jpg?5647742" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Keith Pitt (@keithpitt)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/88063</id>
    <published>2014-02-22T00:31:30-05:00</published>
    <updated>2014-02-22T00:39:44-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/keithpitt/keith-and-marios-guide-to-continuous-deployment"/>
    <title>Keith and Mario's Guide to Continuous Deployment</title>
    <content type="html">This is a presentation that @mariovisic (http://twitter.com/mariovisic) and I (http://twitter.com/keithpitt) performed at RubyConf Australia, 2014.

Recently it has become common practise for development teams to deploy their code several times a day, as well as encouraging new developers to deploy on their first day at work.

In our talk Mario and I will discussed how we used continuous deployment to push these practises to the extreme. Automatically deploying the master branch on new changes is an awesome way to improve your development process.

Automatically deploying master will fundamentally change how you work. Gone are the days of the epic pull request. You'll quickly find yourself writing smaller more manageable chunks of code, that overall have a great impact on the quality of the software you produce.

By the end of the talk you'll know how to change the GitHub merge pull request button into a deploy button - and have the confidence to do so.

Some things we'll go over in the talk:

- How to setup your CI environment for deployments
- Why having fast tests are important
- How to use your Staging environment for testing deployments
- How to use feature flags to hide deployed features from some users
- Zero downtime deploys, even when there are database migrations
- Your new deploy button, AKA The GitHub merge pull request button
- What to do when deployment goes wrong

Proposal: https://github.com/keithpitt/rubyconfau-2014-cfp/tree/master/keith-and-marios-guide-to-continuous-deployment</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/5e6617407db0013188072eaa35b483aa/preview_slide_0.jpg?2634763" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Keith Pitt (@keithpitt)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/86728</id>
    <published>2014-02-12T04:32:00-05:00</published>
    <updated>2014-02-15T22:46:27-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/keithpitt/buildbox-lessons-learned"/>
    <title>Buildbox - Lessons Learned</title>
    <content type="html">In this presentation, I share my experiences developing Buildbox, a semi-hosted continuous integration service.  I also discuss how the product works, how I made it and some of the challenges I faced along the way.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/87fb404075f50131f8da163615956c67/preview_slide_0.jpg?2612588" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Keith Pitt (@keithpitt)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/38986</id>
    <published>2013-03-13T08:16:05-04:00</published>
    <updated>2013-03-13T08:23:48-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/keithpitt/practical-backbone-patterns"/>
    <title>Practical Backbone Patterns</title>
    <content type="html">In this presentation, I cover a few of the things that I find myself doing over and over again in any Backbone code that I work with.

There are a couple of points I want to stress:

- Sometimes you may not even need a Javascript framework. Maybe just use Javascript and see how far you get without it!

- Lots of small classes that are easily testable make for fun programming 

- Avoid single page apps unless you have a good reason too. Can you really justify it? Do your customers care? Zendesk is a good example of a single page app. Its the kind of thing you have open all day. Great use.

- Think about passing a template as an option to the class your building. What if you were responsible for the UI - not it. (check out the autocompletor link below)

- If you need to attach existing behaviour to a page with a Backbone View - checkout the ProxyView (check the link below)

Here are the links to the code I open sourced along with this presentation:

https://github.com/envato/backbone.proxy-view
https://github.com/envato/backbone.autocomplete-view

The presentation git repo is here:

https://github.com/keithpitt/practical-backbone-patterns</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/ababdf506e050130423e22000a8f87fb/preview_slide_0.jpg?1175323" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Keith Pitt (@keithpitt)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/36349</id>
    <published>2013-02-23T03:37:58-05:00</published>
    <updated>2013-03-12T06:03:24-04:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/keithpitt/keith-and-marios-guide-to-fast-websites"/>
    <title>Keith and Marios Guide to Fast Websites</title>
    <content type="html">This is a presentation that @mariovisic (http://twitter.com/mariovisic) and I (http://twitter.com/keithpitt) performed at the first ever Ruby Conference Australia, 2013.

In the presentation, we take an open source web app (which currently loads in 9 seconds online) and try to make it load in under 2 seconds, using a variety of very easy techniques.

We also demonstrate how to measure performance accurately using open source tools.

You can watch the video of this presentation here: http://vimeo.com/61342267

You can get the full keynote presentation here: https://github.com/desktoppr/keith-and-marios-guide-to-fast-websites</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/ac0c8af05fc10130a2f822000a1c835e/preview_slide_0.jpg?1097250" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Keith Pitt (@keithpitt)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/36346</id>
    <published>2013-02-23T03:25:12-05:00</published>
    <updated>2013-02-23T03:34:14-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/keithpitt/desktoppr-lessons-learned"/>
    <title>Desktoppr - Lessons Learned</title>
    <content type="html">Desktoppr is a wallpaper sharing site created by myself and @mariovisic. In this presentation, I go over what lessons I had learned from the development of Desktoppr and its successes.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/73765a405fc00130a2f822000a1c835e/preview_slide_0.jpg?1097153" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Keith Pitt (@keithpitt)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/36344</id>
    <published>2013-02-23T03:21:16-05:00</published>
    <updated>2013-02-23T03:33:12-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/keithpitt/vendorkit-an-introduction"/>
    <title>VendorKit - An Introduction</title>
    <content type="html">In this presentation, I introduce a tool I created, called VendorKit. And iOS and OSX vendor management solution.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/d80dc3e05fbf0130a2f822000a1c835e/preview_slide_0.jpg?1097109" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Keith Pitt (@keithpitt)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/36337</id>
    <published>2013-02-23T01:34:48-05:00</published>
    <updated>2013-02-23T03:30:37-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/keithpitt/a-basic-introduction-to-mustache"/>
    <title>A basic introduction to Mustache</title>
    <content type="html">One of my earlier presentations that I did for the Ruby meetup in Perth. A basic introduction to Mustache.</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/bcb7e6e05fb00130abc822000a8e850c/preview_slide_0.jpg?1097095" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Keith Pitt (@keithpitt)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/36342</id>
    <published>2013-02-23T03:18:24-05:00</published>
    <updated>2013-02-23T03:29:50-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/keithpitt/ui-testing-with-frank"/>
    <title>UI Testing with Frank</title>
    <content type="html"></content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/66b9f4c05fbf0130a2f822000a1c835e/preview_slide_0.jpg?1097081" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Keith Pitt (@keithpitt)</name>
    </author>
  </entry>
  <entry>
    <id>tag:speakerdeck.com,2005:Talk/36343</id>
    <published>2013-02-23T03:19:50-05:00</published>
    <updated>2013-02-23T03:29:33-05:00</updated>
    <link rel="alternate" type="text/html" href="https://speakerdeck.com/keithpitt/the-state-of-the-web"/>
    <title>The State of the Web</title>
    <content type="html">In this presentation, I talk about the HTML5 History API</content>
<media:thumbnail url="https://files.speakerdeck.com/presentations/9fe7d8205fbf0130a2f822000a1c835e/preview_slide_0.jpg?1097057" width='' height='' xmlns:media='http://search.yahoo.com/mrss/'></media:thumbnail>    <author>
      <name>Keith Pitt (@keithpitt)</name>
    </author>
  </entry>
  <title>Keith Pitt (@keithpitt) on Speaker Deck</title>
  <updated>2016-09-07T21:27:49-04:00</updated>
</feed>
