Posts tagged as:

RubyFringe

FutureRuby: July 9th – 12th, 2009

by Joey deVilla on February 23, 2009

First Came RubyFringe

RubyFringe logo

I can’t talk about FutureRuby without first talking about RubyFringe.

Last July, the fine folks at Toronto’s Little Coding Shop That Could – Unspace – created one of the best and most memorable conferences I’ve ever attended: RubyFringe. RubyFringe made its mark by taking the standard geek conference formula and turning it on its head. Among the things that distinguished it were:

  • RubyFringe was intentionally a small conference, with its attendance capped at 150 attendees.
  • No sponsors!
  • It had a single conference track, and all presentations took place in the same room.
  • The presentations were vetted carefully by people who really, really, really loved the Ruby programming language. This meant that we got interesting speakers and no vendor pitches. We felt Damien Katz’ pain when he talked about his situation prior to creating CouchDB, grooved as Nick Sieger talked about the parallels between jazz and programming, and stayed glued to our seats as Giles Bowkett gave us his rousing call to action in his 400-slide extravaganza, even though he’d gone well beyond his allotted time and was cutting into lunch (it was that good).
  • They didn’t allow questions at the end of the presentations. In organizer Pete Forde’s words: “Our experience has been that questions are hard to hear, generally of poor quality, often just statements, and almost always an exercise in demonstrating how brilliant the questioner is while dominating the attention of the whole room.”
  • There was a “companion track” for attendees’ non-geeky significant others, where they were taken on a tour of the city while their partners were at the conference.
  • They served some of the best food I’ve ever had at a developer conference. The lunches were at the Downtown Metropolitan Hotel, and the big dinner at the Drake Hotel was beyond anything I’ve ever had at a developer conference.
  • The conference also included parties at some of the best spots in the city, some of which you wouldn’t find on vanilla tourist guides. Better yet, those parties were open bar!
  • Not only was there an opening party at a brewery, complete with stand-up comic, rock band and DJ, but there was a great closing party on Unspace’s roof.
  • The organizers paid attention to little details that set the conference apart, from giving everyone transit passes to heralding speakers as they walked on stage with the song of the choice to the giant polaroid montage featuring every attendee.

The organizers’ decisions in crafting RubyFringe made it a high-quality, memorable and inspiring experience, and its carefully limited scale gave it a sense of community that I could almost describe as familial.

Many people who went declared it the best conference they’d ever attended, and many who passed up the opportunity kicked themselves for missing it. Those pale next to the highest praise for the conference: the fact that after attending RubyFringe, a half-dozen handful of attendees were so inspired that they quit their day jobs to strike out on their own doing Ruby development.

Now Comes FutureRuby

FutureRuby comic

With RubyFringe’s resounding success, it was only natural that people would ask if Unspace would be doing it again next year. They gave it some serious thought – the last thing that they wanted to create was a weak sequel. They didn’t want to simply rehash RubyFringe, but reinvent it, just as they had reinvented the developer conference with RubyFringe.

So they reinvented RubyFringe as FutureRuby.

FutureRuby will take place from July 9th through 12th, and will build on what RubyFringe accomplished. The organizers bill it as “an opportunity to prepare for the future by learning from the mistakes of the past”, and promise us that it won’t just be RubyFringe warmed over – we shouldn’t expect to find the same things in the same places!

What else will it have?

  • Parties and nightly entertainment, three nights in a row
  • FAILCamp (which I co-hosted last year, and which I am invited to host again) is back with a vengeance, and an adorable sailor suit
  • “More better than” swag that you’ll be proud to wear in public
  • The return of the companion track for partners and secret lovers during the conference
  • An amazing two nights of lunches and dinners that you’ll photograph and tweet about
  • Loving attention to all of the details, like excellent wifi, transit passes, and no paid presentations

All the details are in this post at Unspace’s blog, Rethink. You can bet that I’ll be at FutureRuby.

{ 1 comment }

Collage of images from the RubyFringe summary article at \"Rethink\"

Over at Rethink, the blog of Accordion City-based development shop Unspace, Pete Forde shares his thoughts on the RubyFringe conference in an articles titled RubyFringe was Profitable, People are Happy, and the Sky Didn’t Fall. What Now?”.

The article covers all kinds of things including:

  • A loving poke at RailsConf (”A 400 person conference doesn’t become better with 1600 people, but if you’ve already done the hard work, why not scale up?”). That’s a reference to RailsConf 2006 and 2007.
  • The number of attendees (something that I’m going to cover in an article very soon)
  • Why they might not do another RubyFringe (think of all the movie sequels you’ve ever seen)
  • Women and tech conferences
  • You can hold a conference without sponsors (well, Engine Yard helped foot the bill for a party)
  • Consider going with just a single track
  • Just as Obie said that you shouldn’t undercharge for your services, you shouldn’t undercharge for a conference. Charge what it costs, and deliver real value
  • “Great food is important, because nobody can focus for fifteen hours on cold boxed lunches.” And RubyFringe had great food.
  • Care about the details! “This cannot be overstated, and the key word here is care.”

Meghann Millard of Unspace
Meghann Millard, RubyFringe cat herder supreme.

Pete said it in his article, and I feel it bears repeating: Meghann did an amazing job herding cats for RubyFringe, and if you attended RubyFringe and have a little cash to spare, it might be a nice idea to send her some flowers (or an Amazon gift certificate) for all the work she put in. I owe her big-time for thinking of me when she was looking for a host for the Friday night opening events as well as an emergency host when FAILCamp needed one. Thank you, Meghann! I salute you with a filet mignon on a flaming sword!

As for Pete thanking me for the RubyFringe guides and notes from the conference: it was my pleasure. I believed in the event from the get-go and was only too happy to apply the Burning Man ethos to this event (”There are no spectators, only participants”). Besides, that’s what we in the Accordion City tech community do!

If you’re thinking about putting together a tech conference, you should steal as many ideas as you can from RubyFringe, and Pete’s article is a good starting-off point.

{ 2 comments }

RubyFringe: Day 2 Notes, Part 3

by Joey deVilla on July 22, 2008


Photo by Carsten.
Click the photo to see it on its Flickr page.

Pete Forde Break

- When the idea for this first started, it was much simpler:
  "Let's throw a merb conference, it would be awesome!"
- We love you people a lot
- This has exceeded our expectations
- Meghann: I see her every morning when I arrive, and she works late
- Rubyfringe has become like a monolith in space for us
- Meghann did all the heavy lifting
- [standing ovation for Meghann]
- Rubyfringe next year? In Portland, next year, it's going to be awesome!
- But seriously, maybe we'll have one again next year. We'll have to think
  about it.

Ruby.rewrite(Ruby) (Reginald Braithwaite)


Photo by Libin Pan.
Click the photo to see it on its Flickr page.

- I'm happy to be here with the smart people and good people
- Being interested in the same things that smart people are interested in
  is not the same thing as being smart
- I had no idea what Pete was thinking when he came up with the
  "RubyFringe" concept -- did he mean the fringe of the Ruby
  community, or did he mean the fringe of the Ruby language
- The conference seems to be a nice mix of both

- andand
    - Groovy has an andand built in; it's called the Elvis operator
    - The Haskell people said "Reg is just inventing the maybe
      monad in Haskell"

    [shows code]

    - There has to be a better way
    - If returning nil -- method_missing
    - "Yes, I know because I heard the guy who wrote it says it sucks"
    - I'm using it because I'm hardcore

    - Problem: we've opened up the Object class
    - andand is really slow
        - This is not a performance bug
    - A Haskeller will tell you that the problem is solved
        - Haskell has lazy evaluation
        - Haskell never bother evaluating stuff that will always be nil
        - Ruby isn't "turtles all the way down" -- it doesn't give
          you all the tools it has for itself

    - @logger.debug is expensive
    - Make it a block!
    - Or do if defined?

    - This is going to sound smarmy -- you know, the way it sounds smarmy when
      people say "I don't know how to do this" or play dumb to seem more "real",
      but I swear this is true: I'm not good with IDEs
    - I think that when IDEs give you some kind of wizard or other feature
      to simplify some aspect of programming, it's a sign of a defect in the
      language you're using

    - Ruby's open classes and "eager eval-by-default" are problems
    - There are probably a number of ways to get around it -- my way was to
      use macros
    - Using Rewrite gets around the open class problem
    - Yes, it turns your code into this shit [shows slide]
      but better by far to have the code do it than your IDE
    - [shows benchmarks] As you can see, it performance is far better than
      doing it by opening up the Object class
    - Rewrite version of andand doesn't execute the shit

    - Okay, this is tather nichey stuff
    - You know the saying that people don't by drills or drill bits, but they
      buy *holes*? Think of Rewrite as diamond dust that you use to make
      drill bits. Maybe you'll make use of it, but most people won't

- Just a quick note -- in his presentation, Giles [Bowkett] renamed lambda as
  L because he needed to use it a lot.
- Having to do that is a code smell
- Never mind making it shorter -- get rid of it entirely!

[Joey note: Reg corrected himself in a blog entry written after RubyFringe,
 stating that having to rename lambda is *not* a code smell;
 it's a *language smell*. Giles is simply using the best workaround
 available to him.

 See his blog entry at
 http://weblog.raganwald.com/2008/07/l-is-not-code-smell.html
 ]

- Why does Ruby read from left to right?
    - I have a lot of unpaid Demeter speeding tickets
    - thingy.thingy2.thingy3.thingy4
    - Because this OOP paradigm, even Ruby goes from left to right
    - From time to time, people want to go from right to left
    - blitz.not.blank?
    - not is really a adverb
    - There's really no place for adverbs
    - Adverbs modify verbs, and since OOP is in the Kingdom of Nouns,
      they get short shrift. I'd like to see more support for adverbs.

- Take a look at ruby2ruby, created by the folks at seattle.rb
- It asks "Hey, interpreter, what are you actually working with?"
- It does a lot of cleaning up of Ruby's s-expressions.
- Lisp's s-exps are like the nice flat-pack furniture you get from IKEA;
  Ruby's are the furniture you find in the dumpster -- and that's the stuff
  left over after a couple of people have been through it first.
- In the end, Ruby is like Lisp. Except you do all this work up front,
  and you do all this work on the back, and it's morepainful.
- But aside from that, it's like Lisp!

- Abstraction solves every problem except for one: the problem you have
  when there are too many layers of abstraction
- If working with the tool is worse than the problem, then the tool is bad
- Maybe you've been taken in by Home Depot -- they sell you on how easy it is to
  do the job. Many tools make the job part easy to do, but often they make
  cleaning up after the job more difficult
- Need to consider this when using or building tools

- I know that I don't have the best solution for this
- I *do* know that we have don't have enough competing solutions
- I don't believe that "open classes" is sustainable

Conceptual Algorithms (Tom Preston-Warner)

- When I was 7 years old, I'd fight with my brother over the TV
- I vividly remember a time I was so frustrated that I ran to the top of the
  stairs, took off my shoe, and threw it at my brother's face.
- Naturally, this led to a "time out" -- we were both sent to our rooms and
  told to think about what we'd done and if there was a better way to
  handle things...
    - What happened?
    - Are there better ways to resolve it that shoe-throwing?

- Problem solving can be broken down into these steps:
    1. Think about the problem
    2. Proposed solutions
    3. Evaluate the benefits and consequences of those proposed solutions
    4. Select the best soltuion

- I wrote chronic, god, fixture scenarios, fuzed, grit
- I work at Powerset -- now Microsoft
- Just realized John Lam and I are colleagues! I'm going to have to catch up
  with him when I get back
- I co-founded GitHub

- Conceptual Algorithm: Scientific Method
    - Geoff covered in his philosophy talk
    - It's one of the most powerful conceptual algorithms ever devised

    1. Define the question
    2. Gather info and resources
    3. Form a hyptothesis
    4. Analyze and interpret the data
    5. Plan
    6. Publish the data

    - How *not* to do science
        - To fix a memory leak in god.rb, I didn't use a reasonable methodology
          at first.
        - I just tried commenting stuff out to see if eliminated the leak
        - It was random and didn't get any real results

    - Then I tried the scientific method
    - Go see "science and god.rb" -- my use of the scientific method
      to fix a bug in god.rb is documented at:
      http://groups.google.com/group/god-rb/browse_thread/thread/01cca2b7c4a581c2

- Conceptual Algorithm: Memory Initialization
    - George Dantzig
        - Imagine a situation where you come late to class and everyone's
          already gone, but there are two math problems on the blackboard.
          You copy them down, take them home, find the solutions and
          hand them in, under the impression that it's just an overdue
          assignment
        - Now imagine that a little while later, you discover that those
          problems were strictly for display because they were considered
          unsolved problems by the mathematics community at large!
        - Everybody wants to be that dude -- and George Dantzig was that
          dude at UC Berkeley

    - The "memory initialization" algorithm works like this:
        - "I have a problem"
        - "I am going to disregard everything I know about a problem"
        - When you don't know about a problem domain, you often bring in a
          new perspective, no limits and no limits
        - Rather than look at existing work when developing chronic,
          a Ruby natural-language date parser, I worked from first principles
        - Sometimes coming in "fresh" and working from first principles
          gets you results!

- Conceptual Algorithm: Iteration
    - In making what is considered to be the best vaccuum cleaner in the world,
      James Dyson -- actually SIR James Dyson -- built 5127 prototypes
    - He said: "Making mistakes is the most important thing you can do"
    - Knighted for his efforts

- Conceptual Algorithm: Vaporset Corollary
    - Hard problems take a long time to solve
    - When harangued about why you haven't got any results yet,
      ignore the wankers
    - In the end, your long, hard work can pay off:
      Powerset sold to Microsoft for $100 million

    - Charles Darwin
        - Took 20 years on his evolution research
        - He published his finding only when his colleague Wallace said
          "Hey! You should publish this!"
        - [shows picture of Darwin] Look at those sideburns! He's awesome!

- Conceptual Algorithm: Breadth-First Search
    - There are over 2500 programming languages. Why just explore only
      2 or 4?
    - My original title was "Sapir-Whorf for Robots", but I didn't think
      it would catch on
    - For developing Fuzed, I tried using Erlang
    - The most important thing about trying a new language is to
      just accept the syntax. A strange new syntax often turns off
      developers -- tell yourself: "The syntax is okay"

- Conceptual Algorithm: Imagining the Ideal Solution
    - There's an example of this in god's config file
    - If you're creating a language, don't model it after English.
      That's retarded.
    - Config files are just big lists. You can't do loops or other things
      that we take for granted in programming languages
    - god config files are just Ruby

- Conceptual Algorithm: Dedicate Thinking Time
    - You should set aside some time to just think
    - Sometimes the best things come from this
    - One example: Gravatar, the avatar system -- this came up during my
      thinking time, and I did all right selling it to Automattic last year

    - A guy who devoted a lot of time for thinking: Rene Descartes
        - He's fringe to the max! I know Babbage is RubyFringe's mascot,
          but I think Descartes should've been the guy
        - Many accomplishments: a major philosopher and the father of
          analytic geometry
        - He got on the  Pope's list of prohibited books! How cool is that?

- Conceptual Algorithm: Cash Filter
    - There comes a point when you need to build something that makes you money

- Conceptual Algorithm: Deathbed Filter
    - Imagine yourself on your deathbed
    - Think about a decision you have right now
    - Think about yourself in the future -- imagine yourself looking back on
      that decision. Would it be a good memory or a bad memory?

Sinatra (Blake Mizerany)

- Sinatra is a micro-framework
- Less than 2K LOC in GitHub, including blank lines and comments

- Sinatra "hello world" is simple
- Rails was too slow
- Multiple Mongrel handlers getting cumbersome to maintain
- Same reasons as most for starting a new framework

- Camping is awesome, but...nuff said

- Freaks
- Islands on Second Life
- git-wiki by Simon Rozet

- Ultimate REST client
- RESTClient + Sinatra
- No longer have to use curl

7 WTFs of Sinatra
- Why am I falling for Sinatra?

Be Good (Leila Boujnane)

- People have been asking how I've been doing, and I've lately been saying
  "not too good"
- Some kind of aphasia-like symptoms [Get well sooon, Leila!]
- Founder of Idee Inc., which makes image search

- I'm probably the only person at this conference using notes
- Martin: here from Copenhagen
    - Needed a break -- working really really hard
    - Really really tired
- Couple of days, realy tired
- Use giant Post-It notes to think process
- Have been having trouble writing ideas down -- a sort of aphasia

- "If you make enough money in this world, you can smoke pot all day and have
  people killed." -- Patton Oswalt
- I am not one of those interesting individuals
- Here's something that was true when you were growing up and it's true today:
  Let's not have people killed. Let's be good.

- "What does a man need -- really need? A few pounds of food each day, heat and
  shelter, six feet to lie down in -- and some form of working activity that
  will yield a sense of accomplishment." -- "The Wanderer" by Sterling Hayden
- We have been brainwashed into belonging to an economic system that says you
  need more than that. Way more.

- How do we start to make the world a better place?
- I work long hours, seven days a week, and I love my job
- I love my clients
- Every day you walk in and have to make a set of decisions
- These are the early days

- Make something people want
- Paul Graham: "If you make people with money love you, you can probably
  get some of it."
- Idee: Gives people a better way to search for images
- Nothing more gratifying than an inbox full of messages from happy people
  who love what you make
    - It's satisfying -- you feel wanted and desired
- If you are not good at what you do, you end up resorting to being bad
    - You may have to cheat
    - Bully
    - Lie to your customers
- Your adoption rate is not tied to the number of people who you bully
  into adoption!

- Contrary to what a VC will tell you: don't focus on business models first
- Instead, focus on building something useful first.
- *Then* focus on the business model, *after* you've proven your usefulness
- Crappy products plus sales equals unhappy users

- It's all about happiness and being good!

{ 3 comments }

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"

{ 1 comment }

An Amusing RubyFringe Moment

by Joey deVilla on July 21, 2008

This is funnier if you happen to follow the Ruby programming scene or know me and Zed Shaw:


Photo by Libin Pan.
Click the photo to see its Flickr page.

{ 2 comments }

RubyFringe: Day 1 Notes, Part 2

July 20, 2008

More notes from RubyFringe’s first day! In this set, I cover…

  • Jazzers and Programmers (Nick Sieger)
  • Do the Hustle (Obie Fernandez)
  • Being Dumb and Using it to Your Advantage (Matt Todd)
  • The Framework Mass Index (Jeremy McAnally)
  • There Will be Porn (Zed Shaw)

Read on for the notes…

Read the full article →

RubyFringe: Day 1 Notes, Part 1

July 20, 2008

Here’s the first of my notes from RubyFringe. In this set, I cover:

  • Adhearsion (Jay Phillips)
  • Deployment Monoculture / Scaling Ruby Down (Dan Grigsby)
  • Rockstar Memcaching (Tobias Lutke)
  • Living on the Edge (Yehuda Katz)
  • Testing is Overrated (Luke Francl)

Read on for the notes…

Read the full article →

Scenes from RubyFringe, Part 1

July 19, 2008

Here’s my first set of photos from the RubyFringe conference, which is taking place this weekend in Toronto.

Read the full article →

RubyFringe Guide: The Unofficial IRC Back Channel

July 18, 2008

Joey\'s Unofficial Ruby Fringe Guide to Toronto - Small logoIn case you were looking for the IRC back channel for the RubyFringe conference, there’s one on irc.freenode.net at #rubyfringe. Check it out, and see you there!

Read the full article →

RubyFringe Guide: The Lay of the Land, Part 2

July 17, 2008

Joey\'s Unofficial Ruby Fringe Guide to Toronto - Small logoThis is article number eight in Joey’s Unofficial RubyFringe Guide to Toronto, my guide to Accordion City for attendees of the RubyFringe conference, as well as anyone else who’s interested in our fair city.

In case you missed them, here are the other articles in this series:

  1. Where Did All the Cigarettes Go?
  2. Getting from the Airport to the Hotel
  3. Boozin’ in Accordion City
  4. The Lay of the Land, Part 1
  5. FAILCamp
  6. The Best Damn Cookie in Town
  7. Active Surplus, a.k.a. Hardware Nerdvana

In The Lay of the Land, Part 1, I covered some areas close to the hotel. In this article, I’m going to go over some of the interesting areas to the west: Chinatown, Kensington Market and Queen Street West.

Read on for more…

Read the full article →

RubyFringe Guide: Active Surplus, a.k.a. Hardware Nerdvana

July 17, 2008

Joey\'s Unofficial Ruby Fringe Guide to Toronto - Small logoWelcome to installment number seven of Joey’s Unofficial RubyFringe Guide to Toronto, my guide to Accordion City for attendees of the RubyFringe conference or for anyone who’s wondering about interesting stuff in Toronto.

The previous articles in this series are:

  1. Where Did All the Cigarettes Go?
  2. Getting from the Airport to the Hotel
  3. Boozin’ in Accordion City
  4. The Lay of the Land, Part 1
  5. FAILCamp
  6. The Best Damn Cookie in Town

This article will cover Active Surplus, a long-time resident of Queen Street West and a surplus electronics-and-gear store like no other. It’s a short walk away from the Metropolitan Hotel and well worth a visit.

Read on for more…

Read the full article →

RubyFringe Guide: FAILCamp (Friday, July 18 – 4 to 7 p.m. at The Rhino)

July 17, 2008

Joey\'s Unofficial Ruby Fringe Guide to Toronto - Small logoWelcome to the fifth installment of Joey’s Unofficial RubyFringe Guide to Toronto, my guide to Accordion City for attendees of the RubyFringe conference as well as people just curious about this place.

In case you missed the earlier articles in this series, I’ll list them here:

  1. Where Did All the Cigarettes Go?
  2. Getting from the Airport to the Hotel
  3. Boozin’ in Accordion City
  4. The Lay of the Land, Part 1

In this article, I’m going to cover FAILCamp. Read on for more…

Read the full article →

This Week in Toronto Tech

July 14, 2008

Toronto Tech people
Just a small sample of the people that make Toronto’s tech community great.

This week is going to be a week unlike any other in the Toronto technology scene: a week of events created not by municipal groups, large techno-conglomerates or industry think tanks, but by small groups of passionate individuals who enjoys working with both people and technology

These events don’t have the benefit of major sponsorship or media coverage, nor will they be lining their organizers’ wallets. They’re events put together by amateurs in the original sense of the word: people who do it not for profit, but for their love of their craft, in the hope that both the attendees and even the field itself will be advanced from insights, understanding and knowledge gained by gathering together and exchanging ideas.

It’ll be a busy week for me. I’ll not only be attending these events, but I’ll also be MCing two of them as well. I’ll be posting reports from these gatherings here — keep watching this blog!

Read the full article for details…

Read the full article →

RubyFringe Guide: The Lay of the Land, Part 1

July 4, 2008

Joey\'s Unofficial Ruby Fringe Guide to Toronto - Small logoWelcome to the fourth installment in Joey’s Unofficial RubyFringe Guide to Toronto, a series of offbeat articles to acquaint attendees of the upcoming RubyFringe conference with Accordion City.

There’ve been three articles in the series so far:

  1. Where Did All the Cigarettes Go?
  2. Getting from the Airport to the Hotel
  3. Boozin’ in Accordion City

Small map of the area around the Metropolitan Hotel

When I visit a city that’s new to me, I try to get a sense of “the lay of the land”. What sort of areas are around where I’m staying? Which zones come alive at what times of the day? If I started walking in this direction, what sort of neighbourhood would I end up in? Where can I see some interesting stuff, and where will I end up running into something I could easily get at home? These are the sorts of questions that I’ll try to answer for Toronto in these “Lay of the Land” articles. In this article, I’ll look at what’s within a couple of blocks of the conference hotel.

Read the full article →

Boozin’ in Accordion City (Joey’s Unofficial RubyFringe Guide to Toronto)

June 30, 2008

Joey\'s Unofficial Ruby Fringe Guide to Toronto - Small logoWelcome to the third installment in Joey’s Unofficial RubyFringe Guide to Toronto, a series of offbeat articles to acquaint attendees of the upcoming RubyFringe conference with Accordion City.

There’ve been two articles in the series so far:

  1. Where Did All the Cigarettes Go?
  2. Getting from the Airport to the Hotel

Joey deVilla holding a beer

In this article, I’ll cover the social lubricant that helps keep a good tech conference going: booze!

Read the full article →