Skip to content

Instantly share code, notes, and snippets.

View theotherzach's full-sized avatar

Zach Briggs theotherzach

View GitHub Profile

Broken

Have you noticed how nobody is talking about being outsourced anymore? Does it seem odd that the crisis of our generation is dealing with the recruiter calls? You know, people who want to give us money. Have you stopped to wonder why the times are so good?

The demand for us is so high because the systems we build are so broken.

Each decade we spend an increasingly large proportion of our effort maintaining legacy systems from the previous decade. We continue to throw abstractions at this labor devouring monster, but it shows no signs of slowing. Higher level languages, type systems, DSL's, TDD, and many others have been developed to increase our productivity but they are not enough.

The way we preform computation today is fundamentally broken. Every instruction that is added to an existing program reduces the chance of it executing properly and increases maintenance and change cost in a super linear fashion. Each line of code in production makes our systems worst and our response is to write mor

Computering With JavaScript

Building large systems is devilishly hard and all evidence points to us still being bad at it. Since the dawn of electronic computation, the relative effort required to maintain legacy systems has continued to increase, which suggests that we are not solving the problem on our own.

One potential solution could be propagators; a mesh of independent systems who individually listen to neighboring propagators and produce increasingly refined outputs. A system such as this would be more flexible than a traditional system, suggesting that change requests and maintenance could be less expensive.

This talk makes the case that our current development methodologies are unsustainable, introduces the concept of propagators, and shows what a propagator network looks like when written in JavaScript. Hold on because there's code, math, bold claims, and wild-ass-guesses ahead.

describe "Bowling Scorer", ->
describe "gutter game", ->
Then -> expect(game.roll(0, 20).score()).toBe(0)
describe "all 1's", ->
Then -> expect(game.roll(1, 20).score()).toBe(20)
describe "spare", ->
Then -> expect(game.roll(5, 2).roll(3).roll(0, 17).score()).toBe(16)

Pressure

Stop your code from shattering.

Our code is put under immense pressure

Fat JavaScript apps enforce a separation of concerns between Ruby domain logic and the presentation layer

When we refactor a model we have to make changes in the views by default.

No More Snowflakes

####Core Concepts

  • You're not special
  • Belief in our own fixed attributes slows growth
  • Belief in others' fixed attributes sours teams and slows their growth

####Potential Themes

This tutorial is designed to give backend developers a place to put Angular to work for them, today. It starts with a hypothetical site which has table of records rendered server side. The tutorial gently guides the reader through moving the rendering from the server and to the client with Angular and uses the momentum from that to add two new features:

  • Sort table by column
  • Filter table by input field

The Server Side Start

This is the server side template which renders a collection of songs.

  • Why they should give a crap (presentation)
    • What Node isn't
    • Killer use cases
      • Live
      • Tooling
  • Pair people up - exp with Node/ TDD/ JS
  • Intro to Node
  • File system loop
  • Basic HTTP server
  • Intro to tests (presentation)

#The JavaScript Developer’s Playbook

Writing production quality JavaScript is hard, but it's not impossible. This talk looks at the patterns, tools, libraries and workflows that Test Double uses to be successful with this challenging language in the browser. I talk about the pain we've felt from mistakes we've made and how that informed Lineman.js, our build tool.

We'll cover when it's a good idea to isolate the frontend code and how to do that. I'll talk about stubbing API calls so that frontend workflow can be free of server side concerns. Finally, we'll cover the testing libraries and tools that Test Double uses to keep code sane.

###Outline

####Who We Are

##You Can't Take the Browser From Me

####Core

  • Learn JavaScript fundamentals to make your existing Rails App better.

####Doodling

#####Denial