RubyFringe: Day 2 Notes, Part 2

by Joey deVilla on July 22, 2008

Jabl: The Language You Will Hate (Hampton Catlin)

- This is the best-case week we could have ever hoped for

- JavaScript bugs the shit out of me!
- Nathan is da man! He makes HAML what it is today and he played a big part in a
  lot of today's stuff. I'm just some dumb shit with ideas.
- If a lot of programmers really dislike an idea but can't give you a reason
  why, it's probably a good idea

- I like writing languages! It's super fun!
- I'm not in love with Python, but I think indentation's better! It's one of the
  few things Python gets right.

- People are really defensive about JavaScript. It's like you punched their
  mom in the face.

- It's a fairly decent general-purpose language
- I think it belongs more on the server side than on the browser
- It got so beaten up. mocked and put down initially that when we discovered it
  was a real language, we came to defend it rabidly
- JavaScript is a fucking terrible browser language, hence many people have
  created frameworks to overcome its shortcomings

- The JS world has nothing to do with the DOM world. JavaScript and the DOM
  connect only because they're glued together by the document

- The DOM is a really cool thing!
- CSS is nice -- with it, we can talk about the DOM. Why are we not outraged
  that we can't do this with JavaScript?

- If you're saying "I don't want to learn a new language", what the hell are
  you doing in this field?

- Jabl compiles into jquery

Archaeopteryx (Giles Bowkett)

- I was going to have a contest to give away this book, O'Reilly's "JavaScript:
  The Good Parts". As you can see, it's a small book.
- Audience member: "Just give it to Hampton!"

- During his presentation about jazz and programming, Nick didn't talk about
  what I consider to be modern variants -- hip-hop groups like A Tribe Called
  Quest and Roni Size's drum and bass are things I consider to be jazz.

- I have 496 slides. I don't think I'm going to get through them all!

- The Mainstream
    - The mainstream is not just lame, it can get you *killed*
    - Take a look at the life of Heath Ledger. Go check out his Wikipedia entry
    - Most people don't know that in his youth, he was a chess champion
    - He had a lot of mental energy, and like such people, he suffered
      from insomnia
    - Insomnia is a solved problem: hypnosis works
    - But...hypnosis is on the edge, on the fringe, even though it has been
      around for and working for over 100 years
    - So they didn't use hypnosis, but put him on pills, which killed him

- At Railsconf 2008, David Heinemeier Hansson talked about "The Great Surplus",
  in which he says that there's still something missing from mainstream
  languages and tech that gives Ruby and Rails a surplus of power and
  capability, but that this surplus was limited.
- DHH says people eventually figure out the cool tools and the surplus will go
  away.
- I think he's wrong: the mainstream *never* catches up -- it's too easy to be
  ordinary
- The question should be: "Are we going to use that power for good,
  or are we going to use it for AWESOME?!"
- People should be saying "This is going to be a wicked party:
  I'm going to bring my laptop"

- What are we?
    - Are programmers artists?
    - Kai "Kai's Power Tools" Krause would say yes
    - Steve Jobs' said: "Real artists ship"
    - Leonardo da Vinci was a real artist, but there's a lot of stuff he
      designed that he never shipped (the hang glider, helicopter, and so on)
    - One of his bridge designs was never built until this century when
      the Swedish government decided to build it. Talk about failing the
        "release early, release often" mantra!
    - In many instances, he genius was wasted.

- How does genius get wasted?
    - In the old days, an artist would seek a patron
    - Patrons were rich nobles who wanted to look good
    - An artist with a patronage would create works in the name of or
      that glorified the patron
    - If you accept that programmers are artists, then VCs are patrons

    - Let's talk about adventure for a moment
        - During the boom, working for a startup was often sold to
          prospective employees as an adventure
        - Let me tell you about adventures:
            - When I moved out of the house, I went to Chicago and lived in a
              ghetto because my need to create art was actually greater than
              my need for safety
            - When I lived in New Mexico, I found bear droppings not more than
              ten feet from my front door on a regular basis
            - I used to carry a .357 Magnum with me because the area was
              being prowled by a mountain lion. You need a big fucking gun
              to take down that kind of animal
            - I used to get calls from my parents where they'd tell me that
              they'd just caught a rattlesnake, killed it and threw it onto
              the barbecue and would you like to come to dinner?
            - [Something about "psycho rocks" -- I was laughing so hard
              that I wasn't able to take down notes at this point -- Joey]
            - I've also done enough LSD to kill a herd of elephants
        - Now consider what you were doing when you were going on a dot-com
          "adventure":
            - You get sit for 4 years at a desk
            - Maybe, if you're really lucky, your options might turn into
              something
            - Who are these weasel-brained Muppetfuckers?
            - These people who tell you that working for them is an adventure:
              they're not fools; they're *liars*

    - It all comes back to a system patronage -- this is just the
      modern version
    - Just as landed nobles gave artists money for the artists to look good,
      VCs give geeks money so that they can brag
    - [showing a picture of Julia Allison in a skimpy little dress,
      surrounded by admiring geeks]: This woman is wearing programmers!
    - You are just their pet monkeys!
    - If the company IPOs and you are lucky, you can start collecting
      pet monkeys of your own
    - I'm not kidding about the "pet monkey" thing. Think of Google, with
      their ball pit playpens and other niceties with which they coddle you:
      it is in their economic interest for their employees to think of
      themselves as Google's children!
    - If not for the Muppetfuckers who couldn't see the value of Leonardo's
      hang-gliders and helicopters, we could've had them hundreds of years
      sooner!
    - As programmers, we get to create things that didn't exist before
    - Why should we waste that on things like Pets.com and stock market price
      grafts?

    - Here's a picture of an RV that I lived in in New Mexico
    - At that time, 2001, I made $7.50/hour at a gas station
    - Only 3 months prior, I was working at Morgan Stanley for $75/hour
    - But the people who run this industry are scum
    - So I learned to draw. I was a starving artist

    - VCs are:
        - the causes of economic instability
        - "stock puppets"
    - Because of these Muppetfuckers, someone you could have called a genius
      was instead just building bullshit back in 1997

- The lesson?
    - Build your business with your money
    - With your money, you're the boss

    - Consider the case of Engine Yard: the VCs need Engine Yard, not the
      other way aroung
    - It's becoming more common: as startups get cheaper to launch,
      VCs find themselves in the cold
    - The VC company Benchmark Capital says that open source enriches the
      ecosystem, which is why they backed MySQL, Red Hat, JBoss
    - Look at Jay Phillips -- he leveraged Adhearsion  to create consulting work
      -- he is an internet startup

- Archaeopteryx
    - Archaeopteryx is a Ruby midi generator
    - Lightweight
    - Takes advantage of the fact that MIDI [Musicial Instrument Digital
      Interface] is cheap and ubiquitious, controlling more than just
      instruments, but lights, effects, visuals and other things
    - One day, I want to be able to say "My career is Archaeopteryx"

    - [Photo of DJ Sasha] Here's a DJ that gets paid $25K a night
    - [Photo] Here's his DJ mixer. It's not a traditional DJ mixer, but a
      MIDI controller
    - As such, it unleashes new creative possibilities

[At this point in the presentation, Giles' allotted time had run out, but
people stayed to hear the rest, and the organizers let him run with it
becuase the audience was enraptured by this point. -- Joey]

    - This DJ mixer is in a niche market
    - What if the guy who built the board for Sasha open-sourced his design?
    - What wonderful things would we have seen?

- Maybe I won't be able to say "My career is Archaeopteryx" I'll be happy
  if I simply say "My career *includes* Archaeopteryx"
- It's open source. I'm not worried, because the name of the game isn't
  locking people out, it's
    - Providing superior service at the same or better price point
    - Competing with people who are illiterate about
      an important part of their job

- Archaeopteryx generates rhythms through probability matrices
- It is social software

- The probability matrix
    - Drum machines are simply matrix builders
    - Rows in the matrix represent individual drums
    - Columns in the matrix respresent a beat played at a given time
    - You want drum X to play at time Y? Just put a "1" in [X, Y]
    - In 4/4 time there are 4 beats ber par, and typically drum machines
      play music in 4-bar chunks making 16 beats
    - So the probability matrices are 16-element arrays
    - But rather than just either playing or not playing the drum at any given
      point, you assign a probability
    - You want there to be a 25% chance that drum X gets played at time Y?
    Put a ".25" in [X, Y]

- OOP
    - It's irresponsible to use Ruby and not leverage its power
    - You should make your own OOP paradigms -- that what Ruby is for!
    - Archaeopteryx uses lambda a lot -- so much that I've had to
      alias "L" to lambda
    - Loads of lambdas in the code
    - In the OOP used in Archaeopteryx oops -- objects act as host for methods,
      which can be redefined at any time

    - Goes to core of why mainstream is dangerous
    - Ledger just went with the crowd
        - There is absolutely nobody that does not do that

    - It's incedibly meta
    - Altering rhythms is adding a lambda to an array of lambdas using a lambda
      picked out of a queue
    - It's the use of the strategy pattern to play beats
    - There's a strategy for deciding which strategy to use
    - "Ruby is like Cthulhu in that it goes beyond sanity"
    - I plan to use it at Burning Man and have it running continuously
      for the full 7 days
    - Achaeopteryx's core MIDI code comes from "Practical Ruby Projects"

- Vaporware alert!
    - I've got 2 things planned for user-generated visuals in Archaeopteryx
        1. MIDI VJ software
        2. "Drum circle"
            - Take a number of drums and rig them with Bluetooth touch sensors
            - Use them to trigger JRuby/Processing
            - Use that input as a voting system for what beats to emphasize
            - Updating the prob matrix based on this is trivial
            - End result: people can influence the music in real time

- Andy Warhol said "Good business is the best art"
- "Steve [Jobs], you ridiculous douche..."
- You don't need an IPO, you don't need an exit strategy, that's fail 2.0
- Computers are everywhere, which means that you can do anything
- Language wars are bullshit -- it doesn't matter whether I'm doing music with
  Ruby or whatever other language is out there
- It's about passion

- Maybe being a programmer is not a *what* but a *how*
- Maybe being aprogrammer is about applying proggramming to your passions
- Go and build! Build for yourself, not the VCs
- And remember: real artists ship!

[Standing ovation]

CouchDB and Me (Damian Katz)

- Sell my house, move my family and live off savings? WHY?
- This is not a tech talk, but about the considerations behind this decision
- [Shows photo of baby daughter to great applause]

- Why jeopardize this beautiful young family?
- I got laid off and had to look for a new job
- I had a house and the associated mortgage
- I looked around and didn't see anything I wanted to work on

- "Other people work on cool stuff...why not me?"
    - They're out there, doing cool things they love --
      designing motorcycles, making music and creating art
    - How do people get jobs where they get to work on cool things,
      work on what they want, and get paid for it?

- So I made my decision: sell the house, move someplace cheaper
  and live off my savings
- Reasons for doing this:
    - It would be educational
    - I'd get to spend more time with my family
    - It would be a test to see what I can do
    - It would make for an interesting story
- Moved to Charlotte, North Carolina. The cost of living was cheaper
  and we had family there

- Change in Lifestyle
    - Thought I could live with fewer things, but the downgrade hurt!
    - Nobody wants to get wrapped up in a consumerist lifestyle,
      with the big house and the nice stuff
    - Had to go to the local Goodwill to buy furniture -- being in there,
      thinking "I was better than these people", but followed quickly by
      "What is wrong with you?" -- these were just people trying to save
      money and get by. I wasn't all that different and certainly no
      better than they were
    - Couldn't shake that feeling that I was an unemployed loser

- So what to build?
- I worked on Lotus Notes for years
- I thoought: I'm going to extract the good stuff from Notes,
  get rid of the crap and maybe something good can result

- The development process in the new environment
    - I'm away from all my development friends
    - Developed in C++: storage engine, view engine, query language
    - Had trouble seeing past the complexity
    - Went into panic mode
    - I ordered "Code Complete" from Amazon, hoping it would help --
      (it *is* complete and about code)
    - Glad to *not* get new information out of it. The important thing
      is that it helped me to just push forward with the project
    - Decided to use Erlang
        - "I knew Erlang before it was cool*"
        - * It was never cool

- In late 2007, my cash reserves were drying up
- I looked heavily at VCs and angels and discounted them quickly
- I decided that I didn't want to sell out CouchDB to commercial interests
- Got a job -- a cool one -- at MySQL
- There, I wrote the CouchDB that you know

- IBM
    - I was approached by IBM
    - Wrote back to the guy who contacted me, saying that I was not
      interested because they had too many douchebags
    - Surprisingly, he replied with "Send me the same email,
      but clean up the language"
    - So I did: s/douchebags/vapid bureaucrats/
    - He sent it around his department
    - The result, they offered to pay him to work on CouchDB,
      and to keep it open, all the code I wrote for it went
      to the Apache Foundation
    - IBM really stepped up to the plate -- they really helped
      CouchDB happen
    - As much I'm down on them, they're a positive force in the
      tech industry. They're big supporters of open source and
      big supporters of the tech industry in general

- Q & A
    - When did it catch on?
        - When I added JSON

    - How'd the core team get together?
        - I really don't know
        - Only met one of them in person (Jan)
        - He's been doing the evangelizing
        - They were basically volunteers who kept adding and
         "I guess you're part of the project now"

Leave a Comment

{ 1 trackback }

Previous post:

Next post: