19:21:20 -!- zed [~zed@twotone.bybent.com] has joined #lsrc
19:21:20 <zed> ] Zed's keynote will have 756 lines.
19:21:20 <zed> ] Each line shows for 3 seconds.
19:21:30 <zed> ] Is this thing on?
19:21:30 <zed> ] Alright, time to start the show
19:21:32 <zed> ] .....
19:21:34 <zed> ]
19:21:36 <zed> ]
19:21:36 <zed> ] -- MY FIRST KEYNOTE --
19:21:37 <zed> ]
19:21:38 <alexander> zZz
19:21:39 <zed> ] Welcome to LSRC!
19:21:42 <zed> ] Glad to be back in Austin.
19:21:44 <zed> ] Thanks for inviting me.
19:21:45 -!- rob_ [~rob@192.168.100.87] has joined #lsrc
19:21:45 <zed> ] I'm from here.
19:21:46 <zed> ] Born in Texas.
19:21:47 <zed> ] Lived here only briefly so don't ask me where.
19:21:49 <zed> ]
19:21:51 <zed> ]
19:21:51 <zed> ] -- PRESENTED IN IRC VISION --
19:21:52 <zed> ]
19:21:53 <zed> ] This presentation brought to you by ii
19:21:55 <zed> ] http://www.suckless.org/wiki/tools/irc
19:21:55 -!- rick [~rick@192.168.100.248] has joined #lsrc
19:21:58 <zed> ]
19:21:58 <zed> ] The presentation "slides" are actually spewed into the #lsrc channel
19:21:58 <zed> ] http://pastie.caboo.se/private/n3neysmzjemkkkz5xkntw
19:21:59 <zed> ]
19:22:00 <zed> ] They are shown on the screen too
19:22:00 <zed> ] With my laptop
19:22:03 <zed> ] My LINUX laptop
19:22:04 <zed> ] Not a mac
19:22:06 <zed> ] Like you losers
19:22:06 <zed> ] A real man's machine
19:22:07 <zed> ] It eats Rattlesnake
19:22:07 <zed> ] and Kegogi
19:22:08 -!- preagan [~reaganpr@192.168.100.12] has joined #lsrc
19:22:10 <zed> ] to power its CPU
19:22:12 <zed> ] A CPU made of dead orphans
19:22:13 <zed> ] Your machine eats Quiche
19:22:15 <zed> ] To maintain its feminine curves
19:22:17 <zed> ]
19:22:17 <zed> ] -- YES I STILL HATE IRC --
19:22:19 <zed> ]
19:22:19 <zed> ] http://savingtheinternetwithhate.com/
19:22:22 <zed> ]
19:22:22 <zed> ] I just thought it'd be a great
19:22:23 <zed> ] presentation tool.
19:22:25 <zed> ]
19:22:28 <zed> ] -- ALL THIS ... --
19:22:28 <zed> ]
19:22:31 <zed> ] So the world can follow along with me
19:22:32 <zed> ] As I mouth off about
19:22:34 <zed> ] *************************
19:22:35 <zed> ] *** Why Keynotes Suck ***
19:22:37 <zed> ] *************************
19:22:37 <zed> ] None of this is about you.
19:22:39 <zed> ] It's about the people above you.
19:22:41 <zed> ] The people who carry sacred cows
19:22:42 <zed> ] around to make everyone worship them.
19:22:44 <zed> ] I love all y'all.
19:22:46 <zed> ] Well, most of you.
19:22:46 <zed> ] The motivation is, for a community
19:22:48 <zed> ] to evolve from the revolutionary phase
19:22:50 <zed> ] the community must eject the original
19:22:51 <zed> ] leaders.
19:22:53 <zed> ] Just ask Castro.
19:22:55 <zed> ]
19:22:56 <zed> ]
19:22:59 <zed> ] -- IN THE BEGINNING --
19:23:01 <zed> ]
19:23:04 <zed> ] It started with RailsConf 2007 Portland
19:23:06 <zed> ] The conference was great
19:23:07 <zed> ] But I didn't see any talks or keynotes
19:23:08 <zed> ] Apparently nobody else did
19:23:09 <zed> ] Ze Frank's was great
19:23:12 <zed> ] Dave Thomas' was retarded
19:23:14 <zed> ]
19:23:16 <zed> ] -- ZED'S CARGO CULT RULE --
19:23:19 <zed> ]
19:23:22 <zed> ] "Anyone who claims you follow a
19:23:22 <zed> ] cargo cult is only interested in
19:23:24 <zed> ] you following their cult and
19:23:27 <zed> ] probably to take your money."
19:23:28 <zed> ]
19:23:28 <zed> ] -- SURVEY SAYS --
19:23:30 <zed> ]
19:23:31 <zed> ] I asked around, and nobody likes keynotes.
19:23:32 <zed> ] Nobody seems to like most tech presentations.
19:23:33 <zed> ] This isn't for just Ruby but many conferences.
19:23:34 <zed> ] Tech conferences are the worst.
19:23:34 <zed> ] I started to wonder why.
19:23:34 <zed> ]
19:23:36 <zed> ] -- KAHHHHNN!!! --
19:23:38 <zed> ]
19:23:40 <zed> ] Why? Why do keynotes suck.
19:23:40 <zed> ] Some of these guys are getting paid.
19:23:41 <zed> ] You think they'd be great.
19:23:43 <zed> ] Make you tingle.
19:23:44 <zed> ] Wanna become a monk.
19:23:44 <zed> ] Donate all your money.
19:23:46 <zed> ] Nope.
19:23:47 <zed> ]
19:23:48 <zed> ] -- OTHER CONFERENCES? --
19:23:48 <zed> ]
19:23:50 <zed> ] I thought back to other cons.
19:23:51 <zed> ] Yep, I'm pretty sure maybe 1% of keynotes were good.
19:23:53 -!- phillip [~phillip@twotone.bybent.com] has joined #lsrc
19:23:54 <zed> ] Universally, they just suck.
19:23:55 <zed> ] That's the official statistic.
19:23:58 <zed> ] 1%.
19:24:00 <zed> ] I know statistics.
19:24:02 <zed> ] And wrote Mongrel.
19:24:02 <zed> ] So I'm right.
19:24:03 <zed> ] 1%.
19:24:04 <zed> ]
19:24:06 <zed> ] -- TIME FOR A SMILEY --
19:24:08 <zed> ]
19:24:11 <zed> ] :-)
19:24:12 <zed> ]
19:24:13 <zed> ] -- EXHIBIT A: MR. USABILITY --
19:24:14 <zed> ]
19:24:16 <zed> ] QCon had a keynote from a "usability expert"
19:24:18 -!- mirven [~mirven@192.168.100.12] has quit mirven
19:24:18 <zed> ] His presentation was ugly blue text on green
19:24:21 <zed> ] In a squinty nasty font
19:24:21 -!- alfred [~jared@192.168.100.126] has joined #lsrc
19:24:22 <zed> ] With running elephants and sound effects
19:24:23 <zed> ] Really loud sound effects
19:24:23 <zed> ]
19:24:25 <zed> ] It was so usable
19:24:26 <zed> ] SO USABLE
19:24:29 <zed> ] At the end, he shot a fist in the air and screamed,
19:24:30 <zed> ] "Let's do it!"
19:24:32 <zed> ]
19:24:32 <zed> ] -- CONCLUSION? --
19:24:33 <zed> ]
19:24:33 <zed> ] Maybe it's because morons give
19:24:36 <zed> ] Presentations that look like
19:24:38 <zed> ] Feces warmed on a hotplate.
19:24:39 <zed> ] Wait
19:24:39 <zed> ] This presentation looks like
19:24:40 <zed> ] feces warmed up on a hotplate.
19:24:40 <zed> ] Ok, that's not it.
19:24:42 <zed> ]
19:24:43 <zed> ] -- EXHIBIT B: PAUL GRAHAM --
19:24:45 <zed> ]
19:24:45 <zed> ] He stares at paper.
19:24:46 <zed> ] Lifts his head only for laughs.
19:24:48 <zed> ] And when I walk away I think
19:24:50 <zed> ] "Only a LISP fanatic would think
19:24:51 <zed> ] that was good."
19:24:51 <zed> ] I think back, and I can't
19:24:53 <zed> ] remember a single thing he's
19:24:54 <zed> ] ever said.
19:24:57 <zed> ] Well, he only talks to his sheet
19:24:58 <zed> ] of paper.
19:25:00 <zed> ]
19:25:00 -!- marekj [~chatzill@192.168.100.12] has joined #lsrc
19:25:01 <zed> ] -- CONCLUSION? --
19:25:04 <zed> ]
19:25:05 <zed> ] Ah! Maybe it's because they
19:25:06 <zed> ] aren't good public speakers.
19:25:08 <zed> ] Or they're self absorbed pompous
19:25:10 <zed> ] jerks.
19:25:10 <zed> ] Hold on.
19:25:12 <zed> ] I'm a self absorbed pompous
19:25:12 <zed> ] JERK
19:25:15 <zed> ] (just ask
19:25:15 <zed> ] Powerset AKA VaporSet).
19:25:16 <zed> ]
19:25:19 <zed> ] -- EXHIBIT C: DHH --
19:25:20 <zed> ]
19:25:20 <zed> ] Single-handedly changes the
19:25:21 <zed> ] debate about enterprisey away
19:25:22 <zed> ] from intelligent discourse and
19:25:24 <zed> ] puts it squarely on
19:25:25 <zed> ] F-U
19:25:27 <zed> ] (Jim said I can't cuss. :-(
19:25:28 <zed> ]
19:25:29 <zed> ] Nobody talked about Rails.
19:25:30 <zed> ] No manager was interested.
19:25:31 <zed> ] Only lame startups.
19:25:33 <zed> ] With revolutionary ideas.
19:25:34 <zed> ] And hats to match.
19:25:36 <zed> ] Che would be proud.
19:25:37 <zed> ]
19:25:38 <zed> ] One word killed Enterprise Rails
19:25:41 <zed> ] for a year and set us all back.
19:25:41 <zed> ]
19:25:43 <zed> ] -- CONCLUSION? --
19:25:45 <zed> ]
19:25:46 <zed> ] Maybe it's cursing and swearing.
19:25:46 <zed> ] Ahahahahahaha.
19:25:47 <zed> ] Haha.
19:25:49 <zed> ] Oh.
19:25:50 <zed> ] That was good.
19:25:50 <zed> ] No, in this industry
19:25:53 <zed> ] we need more cursing.
19:25:55 <zed> ] Cursing vendors who shove
19:25:57 <zed> ] their nasty products on us
19:25:57 <zed> ] by taking our boss
19:26:00 <zed> ] out for Steak and Strippers.
19:26:02 <zed> ]
19:26:04 <zed> ] If not that then what?
19:26:05 <zed> ]
19:26:07 <zed> ]
19:26:08 <zed> ] -- EXHIBIT D: --
19:26:10 <zed> ]
19:26:12 <zed> ] Dave Thomas then complained
19:26:14 <zed> ] that DHH stole his cheese.
19:26:14 <zed> ] However, directly saying DHH
19:26:15 <zed> ] steals cheeses of all flavors,
19:26:15 <zed> ] especially Java flavored ones,
19:26:17 <zed> ] would cut into book sales.
19:26:18 <zed> ] So we heard instead about how
19:26:19 <zed> ] we should be nice to the
19:26:20 <zed> ] enterprise.
19:26:22 <zed> ] And put up with the sales guys
19:26:23 <zed> ] and their steaks
19:26:24 <zed> ] and strippers
19:26:24 <zed> ] and stupid managers
19:26:25 <zed> ] and help Java people
19:26:27 <zed> ] who LOVE their EJB
19:26:28 <zed> ] by giving them
19:26:29 -!- crazeinc [~pj@192.168.100.12] has quit crazeinc
19:26:29 <zed> ] Enterprise Ruby.
19:26:32 <zed> ]
19:26:32 <zed> ] There's gold in them thar codes.
19:26:33 <zed> ] So profound dave.
19:26:34 <zed> ] Oh so profound.
19:26:35 <zed> ]
19:26:35 <zed> ] -- CONCLUSION? --
19:26:38 <zed> ]
19:26:40 <zed> ] Maybe it's time constraints.
19:26:42 <zed> ] You only have 40-60 minutes.
19:26:43 <zed> ] You have to be profound.
19:26:45 <zed> ] You have to use the Tomato method.
19:26:46 <zed> ] Or whatever it's called.
19:26:48 <zed> ] That's a lot of one word slides.
19:26:51 <zed> ] You can't be profound.
19:26:53 <zed> ] Best you can do is be obnoxious.
19:26:54 <zed> ] And the crowd will eat it up.
19:26:54 <zed> ] Like pre-industrial feudal slaves.
19:26:55 <zed> ]
19:26:57 <zed> ] -- I'M ONTO SOMETHING --
19:26:59 <zed> ]
19:27:01 <zed> ] Hey, what if it's us?
19:27:03 <zed> ] No seriously hear me out.
19:27:05 <zed> ] Dude in the front row,
19:27:07 <zed> ] please put down the knife.
19:27:08 <zed> ] Thanks.
19:27:09 <zed> ] Really, what if the reason
19:27:12 <zed> ] keynotes suck..
19:27:13 <zed> ]
19:27:13 <zed> ] -- IS BECAUSE WE LET THEM --
19:27:13 <zed> ]
19:27:16 <zed> ] If the people giving keynotes
19:27:18 <zed> ] people like me
19:27:18 <zed> ] are the top in the industry
19:27:18 <zed> ] and most keynotes are this bad
19:27:21 <zed> ] then maybe the problem is us.
19:27:23 <zed> ] Maybe none of this will improve
19:27:25 <zed> ] until we all understand how
19:27:25 <zed> ] it is perpetuated and we
19:27:27 <zed> ] start to do something.
19:27:29 <zed> ]
19:27:29 <zed> ] But what?
19:27:32 <zed> ]
19:27:33 <zed> ] -- LEMONS AND REVOLUTION --
19:27:34 <zed> ]
19:27:36 <zed> ] Here's some ideas about us
19:27:37 <zed> ] and the Industrial Revolution
19:27:39 <zed> ] and Lemons.
19:27:42 <zed> ] An attempt at explaining how
19:27:42 <zed> ] it perpetuates over and over.
19:27:43 <zed> ] This cycle of bad technology,
19:27:45 <zed> ] con-artist sales men,
19:27:47 <zed> ] pundit book authors,
19:27:49 <zed> ] and bad programmers.
19:27:50 <zed> ]
19:27:52 <zed> ] I think it's a combination of
19:27:53 <zed> ] a missing industrial revolution
19:27:55 <zed> ] and an existing lemon law
19:27:58 <zed> ] effect.
19:27:58 <zed> ]
19:28:01 <zed> ] -- INDUSTRIAL REVOLUTION? --
19:28:03 <zed> ]
19:28:05 <zed> ] You notice how we pour tech
19:28:08 <zed> ] onto all our problems
19:28:10 <zed> ] like salve on a leper's legs.
19:28:11 <zed> ] Nothing improves.
19:28:13 <zed> ] Nothing.
19:28:14 <zed> ] I still see idiotic code.
19:28:17 <zed> ] I still see horribly designs.
19:28:18 <zed> ] I still deal with complexity.
19:28:20 <zed> ]
19:28:22 <zed> ] Fred Brooks bemoaned that tech
19:28:23 <zed> ] won't help.
19:28:25 <zed> ] That we're doomed.
19:28:26 <zed> ] No single solution will do
19:28:27 <zed> ] anything.
19:28:28 <zed> ] No silver bullet.
19:28:30 <zed> ] NO SILVER BULLET!
19:28:33 <zed> ]
19:28:34 <zed> ] Fred was kind of right but for
19:28:37 <zed> ] the wrong reasons.
19:28:38 <zed> ]
19:28:41 <zed> ] The belief was that the
19:28:42 <zed> ] industrial revolution happened
19:28:45 <zed> ] because of technology.
19:28:45 <zed> ]
19:28:47 <zed> ] Finally we had the Car.
19:28:47 <zed> ] Thank you Ford.
19:28:49 <zed> ] And something about guns.
19:28:49 <zed> ] I forget.
19:28:52 <zed> ] It's been years since I've seen
19:28:55 <zed> ] James Burke's "Connections".
19:28:56 <zed> ] http://en.wikipedia.org/wiki/Connections_(TV_series)
19:28:56 <zed> ]
19:29:00 <zed> ] -- HOW DID THEY LEARN TO DRIVE? --
19:29:00 <zed> ]
19:29:01 <zed> ] Now what if it wasn't the tech?
19:29:03 <zed> ] What if it was changes in the
19:29:05 <zed> ] people?
19:29:06 <zed> ] Bigger brains, more reading,
19:29:09 <zed> ] better food and clothing
19:29:11 <zed> ] and jobs and the introduction of
19:29:12 <zed> ] democracy with public schooling.
19:29:12 <zed> ]
19:29:14 <zed> ] What if, after all that indirect
19:29:15 <zed> ] and direct self improvement.
19:29:17 <zed> ]
19:29:18 <zed> ] People were finally ready for
19:29:19 <zed> ] all this technology.
19:29:19 <zed> ]
19:29:20 <zed> ] -- OUR MALTHUSIAN TRAP --
19:29:20 <zed> ]
19:29:22 <zed> ] This isn't a new idea but
19:29:22 <zed> ] techies love to say they'll save
19:29:23 <zed> ] the world with their toys.
19:29:24 <zed> ] And yet no matter how many toys
19:29:26 <zed> ] they create.
19:29:26 <zed> ] The world for the daily
19:29:27 <zed> ] programmer still blows.
19:29:27 <zed> ]
19:29:28 <zed> ] No matter how much tech we
19:29:29 <zed> ] create, if the people using it
19:29:32 <zed> ] are not smart enough, educated
19:29:33 <zed> ] enough, and creative enough it
19:29:34 <zed> ] won't mean anything.
19:29:35 <zed> ]
19:29:38 <zed> ] The Malthusian Trap/Crisis/Dilemma
19:29:39 <zed> ] is that no matter how much
19:29:41 <zed> ] technology you have, at a
19:29:41 <zed> ] certain level the inefficiency
19:29:42 <zed> ] of production is so great you
19:29:43 <zed> ] can't feed the world.
19:29:46 <zed> ]
19:29:47 <zed> ] Or something like that.
19:29:50 <zed> ]
19:29:51 <zed> ] For us I'm translating it to
19:29:53 <zed> ] mean that no matter how great
19:29:55 <zed> ] your tech, if the people who use
19:29:58 <zed> ] it suck it won't help at all.
19:30:00 <zed> ]
19:30:01 <zed> ] Fred was right that no silver
19:30:01 <zed> ] bullet is available, but that's
19:30:04 <zed> ] because most programmers
19:30:04 <zed> ] wouldn't recognize it if they
19:30:05 <zed> ] were being chased by a gang of
19:30:07 <zed> ] werewolves.
19:30:09 <zed> ]
19:30:09 <zed> ] -- AND KEYNOTES? --
19:30:10 <zed> ]
19:30:11 <zed> ] People who are starving will
19:30:13 <zed> ] search for any way to eat.
19:30:15 <zed> ] Professional keynoters are just
19:30:16 <zed> ] answering this call for more
19:30:18 <zed> ] information.
19:30:21 <zed> ]
19:30:23 <zed> ] Anything to help.
19:30:24 <zed> ] Offer up some patterns, a new
19:30:25 <zed> ] language, some new theory of
19:30:27 <zed> ] eXtreme Ninja Scrum Programming
19:30:29 <zed> ] and you're golden.
19:30:30 <zed> ]
19:30:32 <zed> ] We eat it up because nothing
19:30:33 <zed> ] seems to help us do our jobs
19:30:35 <zed> ] more efficiently.
19:30:37 <zed> ]
19:30:38 <zed> ] Two steps forward one step back.
19:30:39 <zed> ]
19:30:41 <zed> ] We'll be stuck here until
19:30:41 <zed> ] programmers stop looking outside
19:30:44 <zed> ] themselves, and start evaluating
19:30:44 <zed> ] how THEY can be more efficient
19:30:47 <zed> ] with personal introspection and
19:30:47 <zed> ] honest evaluation.
19:30:49 <zed> ]
19:30:50 <zed> ] -- "I'M A GREAT CODER!" --
19:30:51 <zed> ]
19:30:52 <zed> ] Which brings me to the Law of Lemons:
19:30:53 <zed> ] http://en.wikipedia.org/wiki/The_Market_for_Lemons
19:30:53 <zed> ]
19:30:55 <zed> ] You are a product, just like
19:30:57 <zed> ] keynoters are a product.
19:30:59 <zed> ] You manager "buys" you but he
19:31:00 <zed> ] doesn't have the skills to
19:31:01 <zed> ] evaluate you.
19:31:02 <zed> ]
19:31:05 <zed> ] He got an MBA.
19:31:07 <zed> ] That means he can run an
19:31:10 <zed> ] assembly line.
19:31:11 <zed> ]
19:31:12 <zed> ] You are not a widget.
19:31:13 <zed> ]
19:31:14 <zed> ] His education is about 30 years
19:31:16 <zed> ] old, and it isn't improving.
19:31:19 <zed> ]
19:31:22 <zed> ] What's worse, is bad programmers
19:31:23 <zed> ] take advantage of these
19:31:23 <zed> ] "leaders" by making themselves
19:31:25 <zed> ] sound way better than their
19:31:26 <zed> ] skills can support.
19:31:27 <zed> ]
19:31:28 -!- alfred [~jared@192.168.100.126] has quit Ping timeout
19:31:28 <zed> ] These programmers are "lemons".
19:31:31 <zed> ]
19:31:33 <zed> ] Just like a lemon car, you can't
19:31:36 <zed> ] tell the difference until you've
19:31:36 <zed> ] been with them for a while.
19:31:37 <zed> ]
19:31:39 <zed> ] Sometimes months.
19:31:41 <zed> ]
19:31:41 <zed> ] In our industry, it's worse.
19:31:42 <zed> ] Even PROGRAMMERS can't tell if
19:31:43 <zed> ] they're good or not.
19:31:44 <zed> ] They write insane code.
19:31:46 <zed> ] Nasty code.
19:31:49 <zed> ] Horrible code.
19:31:49 <zed> ] And somehow, think it's awesome.
19:31:50 <zed> ]
19:31:51 <zed> ] -- IT'S LIKE THAT EVERYWHERE! --
19:31:53 <zed> ]
19:31:53 <zed> ] No, there's plenty of others.
19:31:56 <zed> ] Movies, Music, News Papers,
19:31:59 <zed> ] Magazines, Fashion Design.
19:32:01 <zed> ]
19:32:03 <zed> ] Take your pick of any creative
19:32:06 <zed> ] discipline and there's someone
19:32:07 <zed> ] who is damn good at managing the
19:32:09 <zed> ] process and product.
19:32:10 <zed> ]
19:32:13 <zed> ] And also very good at evaluating
19:32:14 <zed> ] talent.
19:32:15 <zed> ]
19:32:17 <zed> ] http://www.avrillavigne.com/
19:32:19 <zed> ]
19:32:20 <zed> ] Ok, maybe not that good.
19:32:21 <zed> ]
19:32:23 <zed> ] -- SMILEY TIME PART 2 --
19:32:25 <zed> ]
19:32:27 <zed> ] :^)
19:32:29 <zed> ]
19:32:29 <zed> ] -- LEMONS AND KEYNOTES --
19:32:32 <zed> ]
19:32:34 <zed> ] With keynotes it's the same.
19:32:37 <zed> ] The people evaluating who should
19:32:38 <zed> ] and shouldn't keynote can't
19:32:41 <zed> ] tell if you'll like them.
19:32:42 -!- tbbrown [~lsrc@192.168.100.12] has quit ["Trillian (http://www.ceruleanstudios.com"]
19:32:43 <zed> ] They don't know if they can
19:32:46 <zed> ] speak.
19:32:47 <zed> ] They don't even know if they can
19:32:48 <zed> ] code.
19:32:49 <zed> ] Combine an inability to evaluate
19:32:51 <zed> ] the speakers,
19:32:53 <zed> ] with an inability to
19:32:56 <zed> ] evaluate yourself,
19:32:56 <zed> ] and the Malthusian trap of
19:32:57 <zed> ] desperation born from
19:32:59 <zed> ] stupidity,
19:33:00 <zed> ] and you get bad keynotes.
19:33:02 <zed> ]
19:33:05 <zed> ]
19:33:05 <zed> ] -- AND NOW I TELL YOU SECRETS --
19:33:06 <zed> ]
19:33:07 <zed> ] You're all depressed.
19:33:07 <zed> ] Guy with the knife in the front
19:33:09 <zed> ] row is down.
19:33:10 <zed> ] You in the back, it's all right.
19:33:10 <zed> ] There is hope.
19:33:11 <zed> ] I can't give it to you.
19:33:12 <zed> ] I can tell you what I'm doing to
19:33:14 <zed> ] improve myself though.
19:33:15 <zed> ] Maybe it will help.
19:33:17 <zed> ] Maybe it is total bull.
19:33:17 <zed> ] The point is, find out for
19:33:18 <zed> ] yourself.
19:33:20 <zed> ] Find out if the following advice
19:33:23 <zed> ] helps you, as much as lines in
19:33:25 <zed> ] an IRC channel during a keynote
19:33:26 <zed> ] can.
19:33:27 <zed> ]
19:33:30 <zed> ] -- MY ADVICE --
19:33:30 <zed> ]
19:33:32 <zed> ] Never "believe" in any
19:33:34 <zed> ] programming language. Ever.
19:33:37 <zed> ] They all suck. Believe in your
19:33:39 <zed> ] ability to solve problems
19:33:42 <zed> ] independent of the language.
19:33:42 <zed> ]
19:33:45 <zed> ] Study everything. Computing
19:33:46 <zed> ] will become less about computers
19:33:47 <zed> ] and more about all the other
19:33:48 <zed> ] stuff. I like economics,
19:33:50 <zed> ] sociology, psychology, and music.
19:33:52 <zed> ] Find something you like.
19:33:53 <zed> ]
19:33:55 <zed> ] Connect all the things you know,
19:33:55 <zed> ] even if those
19:33:57 <zed> ] connections are dead
19:33:59 <zed> ] wrong.
19:34:00 <zed> ] You'd be surprised when some
19:34:02 <zed> ] random connection
19:34:04 <zed> ] between your love of
19:34:05 <zed> ] cottage cheese consistency evaluation
19:34:06 <zed> ] and web based file uploads
19:34:06 <zed> ] suddenly matters one day.
19:34:09 <zed> ]
19:34:11 <zed> ] Learn the physical part of your
19:34:12 <zed> ] life as well as the mental
19:34:14 <zed> ] parts, and realize there's no
19:34:17 <zed> ] separation.
19:34:18 <zed> ]
19:34:20 <zed> ] Learn to fight, since some of
19:34:20 <zed> ] the smartest people in the world
19:34:22 <zed> ] were also great warriors.
19:34:24 <zed> ] Learning about the realities of
19:34:26 <zed> ] killing and living will teach
19:34:26 <zed> ] that Duck Typing isn't so bad
19:34:29 <zed> ] after all.
19:34:30 <zed> ]
19:34:32 <zed> ] Eat some damn vegetables.
19:34:34 <zed> ]
19:34:34 <alexander> quack
19:34:35 <zed> ] Learn what other smart people
19:34:35 <zed> ] are saying, but don't believe a
19:34:38 <zed> ] damn thing they tell you without
19:34:39 <zed> ] evidence. That includes me.
19:34:42 <zed> ]
19:34:43 <zed> ] Stop using patterns.
19:34:46 <zed> ] No really, quit using patterns.
19:34:48 <zed> ] They aren't helping.
19:34:50 <zed> ] I have evidence on that BTW.
19:34:51 <zed> ]
19:34:52 <zed> ] If you don't know what a
19:34:52 <zed> ] standard deviation is then take
19:34:53 <zed> ] a statistics course.
19:34:53 <zed> ]
19:34:54 <zed> ] Here's a great language for
19:34:54 <zed> ] statistics:
19:34:57 <zed> ]
19:34:59 <zed> ] http://www.amazon.com/R-Book-Michael-J-Crawley/dp/0470510242/ref=pd_bbs_sr_1/102-7385993-8802517?ie=UTF8&s=books&qid=1189236270&sr=8-1
19:35:00 <zed> ]
19:35:01 <zed> ] Don't use Amazon Style URLs.
19:35:03 <zed> ]
19:35:04 <zed> ] Every if/case or similar branch
19:35:07 <zed> ] has an else with a raise. No
19:35:07 <zed> ] matter what. This one thing
19:35:09 <zed> ] will make your code very robust.
19:35:09 <zed> ]
19:35:12 <zed> ] Start tracking tiny little
19:35:13 <zed> ] metrics about your personal
19:35:14 <zed> ] quality. Compiler errors, bugs,
19:35:15 <zed> ] untested defects, memory
19:35:18 <zed> ] leaks, everything.
19:35:19 <zed> ]
19:35:21 <zed> ] Then find your standard
19:35:21 <zed> ] deviations of your errors.
19:35:24 <zed> ] Try to bring the errors down and
19:35:25 <zed> ] tighten the deviations.
19:35:26 <zed> ] Eventually you will know exactly
19:35:27 <zed> ] why you are bad and what makes
19:35:30 <zed> ] you better.
19:35:30 <zed> ]
19:35:32 <zed> ] Here's mine:
19:35:33 <zed> ]
19:35:36 <zed> ] http://www.zedshaw.com/projects/utu/stats/
19:35:38 <zed> ]
19:35:41 <zed> ] Learn about science and
19:35:42 <zed> ] statistics.
19:35:44 <zed> ]
19:35:46 <zed> ] -- A NEGATIVE EXAMPLE --
19:35:49 <zed> ]
19:35:51 <zed> ] It's too hard to say what you should do.
19:35:52 <zed> ] For everything I recommend,
19:35:52 <zed> ] a thousand people will huff,
19:35:53 <zed> ] "You're an idiot."
19:35:53 <zed> ]
19:35:55 <zed> ] I'll try another approach and tell a story.
19:35:57 <zed> ] A story of what NOT to do.
19:35:58 <zed> ]
19:36:00 <zed> ] -- STI HATRED AND FORMATS --
19:36:01 <zed> ]
19:36:01 <marekj> you are not
19:36:02 <zed> ] I worked with a guy,
19:36:03 <zed> ] who hated STI.
19:36:05 <zed> ] He hated it so much
19:36:06 <zed> ] that he invented his *own*
19:36:08 <zed> ] Class Table Inheritance
19:36:09 <zed> ] using method_missing.
19:36:11 <zed> ] This was for logging.
19:36:14 <zed> ] For every class you needed
19:36:17 <zed> ] to log against named Blah,
19:36:19 <zed> ] he had a BlahLog.
19:36:21 <zed> ] BlahLog then had a ProjectLog,
19:36:22 <zed> ] as a parent.
19:36:24 <zed> ] And, they had mutual method_missing
19:36:25 <zed> ] to implement polymorphism.
19:36:25 <zed> ] However, an analysis showed that all
19:36:28 <zed> ] of these classes only had about 4 fields.
19:36:28 <zed> ] All of these classes shared the same fields,
19:36:31 <zed> ] just with different names.
19:36:31 <zed> ] So the table changed from one STI:
19:36:32 <zed> ] id,type,X,Y,Z,W,V
19:36:33 <zed> ] to 6 tables:
19:36:35 <zed> ] id, X,Y,Z,W,V
19:36:37 <zed> ] Because he hated STI.
19:36:40 <zed> ] Even in the face of a method_missing
19:36:40 -!- JEG2 [~james@192.168.100.3] has joined #lsrc
19:36:41 <zed> ] stack loop, he still hated STI.
19:36:43 <zed> ] Even in the face of 4 developers spending
19:36:44 <zed> ] two weeks to add one field to a log.
19:36:46 <zed> ] He hated STI.
19:36:46 <zed> ] Next there was a need to display this mess.
19:36:47 <zed> ] Of course, format strategy was next.
19:36:49 <zed> ] For each action,
19:36:51 <zed> ] of each object,
19:36:53 <zed> ] on each other object,
19:36:56 <zed> ] there was another class,
19:36:56 <zed> ] that formatted this.
19:36:58 <zed> ] PersonChangesSubjectFormat.
19:36:59 <zed> ] Awesome.
19:37:01 <zed> ] 6*X=an ton of classes.
19:37:04 <zed> ] To print,
19:37:05 <zed> ] 1 line on a screen.
19:37:05 <zed> ] It gets better.
19:37:08 <zed> ] Each format strategy class,
19:37:09 <zed> ] had this:
19:37:10 <zed> ] instance_eval(format)
19:37:12 <zed> ] We freaked, where's format coming from?
19:37:14 <zed> ] Traveling back, from instance_eval,
19:37:15 <zed> ] to the strategy class,
19:37:16 <zed> ] to the log,
19:37:18 <zed> ] to the database table,
19:37:20 <zed> ] to another table,
19:37:20 -!- Dax [~chatzill@192.168.100.95] has joined #lsrc
19:37:23 <zed> ] with all the format strings.
19:37:25 <zed> ] They were running Ruby code
19:37:27 <zed> ] out of the database.
19:37:29 <zed> ] Code like:
19:37:31 <zed> ] instance_eval("`rm -rf /`")
19:37:31 <zed> ] Joy.
19:37:33 <zed> ]
19:37:34 <wwalker> java programmer?
19:37:34 <zed> ] -- THE FIX --
19:37:36 <zed> ]
19:37:38 <zed> ] A single class.
19:37:40 <zed> ] Called LogEntry.
19:37:42 <zed> ] With:
19:37:44 <zed> ] @subject
19:37:44 <zed> ] @object
19:37:47 <zed> ] @verb
19:37:48 <zed> ] @preposition
19:37:49 <zed> ] @indirect_object
19:37:50 <zed> ] Done.
19:37:51 <zed> ] Then methods like:
19:37:51 <zed> ] to_sentence()
19:37:52 <zed> ] object_phrase()
19:37:54 <zed> ] subject_phrase()
19:37:56 <zed> ] prepositional_phrase()
19:37:58 <zed> ] To print it out.
19:38:01 <zed> ] 70 lines total.
19:38:01 <zed> ] Done.
19:38:02 <zed> ]
19:38:03 <zed> ] -- ANOTHER STORY --
19:38:04 <zed> ] I've ran into Damp Tests.
19:38:04 <zed> ] Back in the day someone made
19:38:07 <zed> ] a giant def setup method.
19:38:07 <zed> ] Then, that became a problem in a
19:38:09 <zed> ] test so they banished setup.
19:38:11 <zed> ] Announcing, "YEAH! Damp Tests!"
19:38:12 <zed> ] Because, as you know, if
19:38:12 <zed> ] something doesn't work once,
19:38:13 <zed> ] then you have to use the inverse,
19:38:15 <zed> ] and react to the boolean argument.
19:38:17 <zed> ]
19:38:18 <zed> ] This is why you should learn to
19:38:21 <zed> ] fight.
19:38:22 <zed> ] First, you can beat up these idiots.
19:38:23 <zed> ] Second, you'll learn to panick less.
19:38:25 <zed> ] A few complex setups in your tests
19:38:27 <zed> ] isn't nearly as dangerous as an
19:38:27 <zed> ] angry hobo with a knife and a crack habit.
19:38:29 <zed> ]
19:38:31 <zed> ] Then we had to change some code.
19:38:34 <zed> ] 1 day to change the class.
19:38:36 <zed> ] 6 days to change the tests.
19:38:37 <zed> ] Most of that was changing setup
19:38:39 <zed> ] sprinkled all over.
19:38:42 <zed> ]
19:38:43 <zed> ] Because the test is DAMP.
19:38:45 <zed> ] It's still code.
19:38:47 <zed> ] And DRY code is easier to maintain.
19:38:48 <zed> ]
19:38:49 <zed> ] Don't listen to every idiot with
19:38:52 <zed> ] every idea.
19:38:54 <zed> ]
19:38:55 <zed> ] In this case, why can't you have
19:38:57 <zed> ] test code without complex setups, AND
19:39:00 <zed> ] keep it DRY?
19:39:00 <zed> ]
19:39:01 <zed> ] Why can't you?
19:39:02 <zed> ]
19:39:03 <zed> ] Test::Unit is Ruby after all.
19:39:05 <zed> ] Break that puppy open and
19:39:07 <zed> ] make it work.
19:39:08 <zed> ]
19:39:11 <zed> ] -- THE FIX --
19:39:13 <zed> ]
19:39:16 <zed> ] Quit defining everything in terms of
19:39:16 <zed> ] an if-statement.
19:39:18 <zed> ]
19:39:18 <zed> ] Life isn't boolean.
19:39:21 <zed> ]
19:39:22 <zed> ] In this case, why not different setups?
19:39:24 <zed> ]
19:39:26 <zed> ] No harm in that.
19:39:27 <zed> ]
19:39:28 <zed> ] But, OOP publishing is an industry
19:39:31 <zed> ] of arbitrary distinction.
19:39:31 <zed> ]
19:39:34 <zed> ] Adapter, Bridge, and Connector are
19:39:36 <zed> ] the same.
19:39:38 <zed> ]
19:39:40 <zed> ] DAMP vs. DRY. Stupid.
19:39:42 <zed> ]
19:39:44 <zed> ] These distinctions are arbitrary,
19:39:46 <zed> ] so please try to recognize
19:39:48 <zed> ] when the distinctions
19:39:51 <zed> ]
19:39:53 <zed> ] say the same damn thing.
19:39:53 <zed> ]
19:39:54 <zed> ] -- IN CONCLUSION --
19:39:56 <zed> ]
19:39:56 <zed> ] People are starting to get
19:39:59 <zed> ] dangerous ideas from other "pundits".
19:39:59 <zed> ] They blindly believe what these
19:40:00 <zed> ] book publishers and authors tell them.
19:40:00 <zed> ] They believe guys like me too.
19:40:01 <zed> ] This is dangerous because they
19:40:03 <zed> ] take advantage of your inability
19:40:05 <zed> ] to discern relative quality.
19:40:06 <zed> ]
19:40:07 <zed> ] Please, start finding your own way.
19:40:08 <zed> ] Become the new leaders that evaporate
19:40:11 <zed> ] the original leaders of the revolution.
19:40:12 <zed> ]
19:40:13 <zed> ] Oh, and,
19:40:15 <zed> ] patterns suck. Use algorithms.
19:40:18 <zed> ]
19:40:19 <zed> ] Thank you.
19:40:43 <doppler> <clap clap clap>
Comments (0)
You don't have permission to comment on this page.