So people often ask me why I tweet so much at conferences (113 tweets today, for example). Well, usually I'm furiously typing notes into TextMate so I can blog about it later. Now, in the post twitter world, I type those thoughts into twitter and harvest them later for my wrap-up posts. That way people can follow a conf's progress live or wait for the recap.
So Tweets will be in italics and everything else is bonus commentary.
Generally the first day of the conference went amazingly well. Hard to believe this is their first year. Wifi was plentiful, food was decent, and the space was nice. Oh and the talks were good too.
At @RubyMidwest waiting for the fun to begin
So I think the official hash tag for @RubyMidwest is #rbmw or at least that's what the welcome tag said. Although #RubyMidwest is popular
So there was a lot of confusion about the official Ruby Midwest Twitter hashtag. The badges said one thing, the welcome screen said another, and everyone else chose a third: #RubyMidwest. I eventually just went with the most popular. That's about as much controversy there was on the first day so everything went pretty well.
"Open Source sucks and I'm to blame" - Chris Wanstrath at #RubyMidwest #rbmw
No one has more experience than me with running bad open source projects - @defunkt #mwrc #rubymidwest
The trick to getting better at things is Practice. @defunkt #mwrc #rubymidwest He played guitar for 10 years and never got better nopractice
Chris never got better at the guitar because he never practiced. The same applies to code. You can knock things out for years but until you work in a mindful manner you will never get better.
It's too easy to release open source software - @defunkt #RubyMidwest #rbmw
By which I take him to mean that lots of people throw something up on GitHub, push a gem, and provide a few lines of doc before something even works.
Levels of open source Massive (Linux kernal), Big (Rails, JQuery), Medium (homebrew) Tiny (most of the rest) @defunkt #RubyMidwest #rbmw
The tiny ones tend to be all the ones we use - and they tend to be managed poorly @defunkt #RubyMidwest #rbmw
Some open source projects are managed really well, but it's amazing how many we use on a regular basis that are not.
Always have a license file! @defunkt #RubyMidwest #rbmw
If it doesn't install easily it sucks because that's your first experience with the project @defunkt #RubyMidwest #rbmw
Why do we use MySQL instead of Postgres? MySQL was way easier to use early on in Rails @defunkt #RubyMidwest
JQuery no conflict mode is another example of making install easy. You could use it and Prototype super easy @defunkt #RubyMidwest
If your api is for a human, design it to be easy and don't assume just ruby developers will be using it. @defunkt #RubyMidwest
Lack of examples is the next biggest problem in open source - people need help getting started @defunkt #RubyMidwest
Public Api means having methods you know won't go away when you upgrade. @defunkt #RubyMidwest
man pages are important if you have a command line interface @defunkt #RubyMidwest
Set Expectations: explain what it's for. And make sure it does that! @defunkt #RubyMidwest
Projects that aren't maintained... OK, that happens. But say so: "Looking for a good home" note on home page @defunkt #RubyMidwest
"Too many features is a really bad thing" @defunkt #RubyMidwest
"It's way too easy to say yes" @defunkt #RubyMidwest #rbmw
"Much harder to remove a feature than to accept it later" @defunkt #RubyMidwest
These last 2 statements are particularly applicable to metric_fu right now. There's a bug in the way it computes Flog averages and I'm having trouble fixing it because of an undocumented "files to ignore" feature. I may have to rip it out.
Better to set up a plugin api and let people write their own extension functionality @defunkt #RubyMidwest
The lack of competition is horrible -- Look at how competition from Merb made Rails better @defunkt #RubyMidwest
Too few releases is horrible and wastes people time - Too many can be annoying too. hmm. @defunkt #RubyMidwest
Have a decent change log - super important for long time users. @defunkt #RubyMidwest
Arbitrary version numbers confuse people. Look up Semantic Versioning @defunkt #RubyMidwest
If you're using it in production it IS 1.0 - We have a lot of numbers and we're not going to run out of them @defunkt #RubyMidwest
Excellent point. How many gems have you deployed to production that claim to be version 0.194 or some such nonsense?
Define how to contribute to your project - don't assume every knows how you want it. @defunkt #RubyMidwest
Be a lazy maintainer - Write a road map and people will do your work for you. @defunkt #RubyMidwest
Excellent point - this totally worked for metric_fu.
Link rot - don't point to your svn repo if you've moved to git - update old blog posts if you use them as doc @defunkt #RubyMidwest
Google your project name before you create it - Find problems early @defunkt #RubyMidwest
Examples of great open source projects: Rails, JQuery, Redis, homebrew, Django, Unicorn, Linux, Git... @defunkt #RubyMidwest
Chris Wanstrath - @defunkt always delivers an great talk. He has a style that feels conversational but gets points across #RubyMidwest
Good talk - Chris is always an engaging speaker.
"Ruby Techniques by Example" Jeremy Evans is up next at #RubyMidwest
"Singleton class" has been said 20 times in the first 5 minutes of this talk @jeremyevans0 #rubymidwest
Yowza, kind of a rough start to the day. Had to stop tweeting for awhile just so I could focus (the horror).
ruby-sequel's plugin method looks cool. Let's you easily add modules that add class and instance methods @jeremyevans0 #rubymidwest
string evals dangerous but fast, define_method safer but slow. @jeremyevans0 #rubymidwest
The default argument of a ruby method can be any ruby expression. @jeremyevans0 #rubymidwest
Wrapping underling exceptions (from different implementations) with your own is a good to keep your code sane @jeremyevans0 #rubymidwest
Jeremy gave an intense, but good, talk. It's had to make those deep internals of Ruby not sound dry but he did an admirable job.
"JRuby" by Charles Nutter is up next at #rubymidwest
Jruby: Real Threads and access to all of the Java. Compelling points. The slow test cycle (starting up the JVM) is a problem #rubymidwest
I know there's solutions for starting up a test server, but I've found them wonky in the past - have they gotten better?
What I hear from my friends who develop in JRuby is that it's awesome in prod but slow to develop in (you're always waiting for the JVM to start up). And the lack of C extension support often means that the gem that would totally do what you need is just not going to work.
RT: @clam_tea #rubymidwest jruby allows you to do ruby on google app engine, android, anywhere java lives jruby is in the closet with a knife.
.@tavon says Sass is almost Turing complete #rubymidwest
These are great points. Sass lets you do things you should have been able to do years ago. How did we ever live without it? Wait, my project isn't using Sass... I need to talk to my designer.
.@tavon feels like HAML is an unnecessary abstraction. Sass is a much bigger game changer #rubymidwest
"Programmers: HTML/CSS is your problem" @tavon #rubymidwest
"Programmers: You probably don't know CSS" @tavon #rubymidwest
I think @tavon just called me lazy #rubymidwest
Hey now! I've been busy. I'll get around to doing a deep dive on CSS. Really.
.@tavon will not work on a project if you won't let him use Sass. #rubymidwest
A man of principles and conviction.
Stupid @tavon, making me feel bad for not knowing CSS very well #rubymidwest
He made my feel bad. Jake no like feel bad.
"Integration Testing Strategies: Locally And In The Cloud" is next at #rubymidwest by Ryan Felton and Kyle Ginavan
Live coding Capybara Selenium slowness and fail at #rubymidwest Sorry guys, I've been there
Using specjour to parallelize his capaybara tests on another machine. Go. Go. Go! #rubymidwest
And it worked. mostly. live demos are hard. #rubymidwest
http://www.seleniumshots.com/ is another an to run your integration tests in the cloud. Many have tried this. #ihopeitworks #rubymidwest
Don't get me wrong, I want "selenium shots" to succeed but I've seen a lot of smart dudes fail at parallelizing in the cloud. #rubymidwest
Re: Last re-tweet. Got a 500 after signing up for "Selenium Shots" #rubymidwest
There's a lot of stiff competition out there trying to run tests in the cloud. May the best project win. Also, live coding and examples that rely on a network are to be avoided.
"Metawhat? A look into the mysterious metaclass" next by Brandon Dimcheff @bdimcheff at #rubymidwest
Another talk where I couldn't tweet because I needed to focus. Intense and worth tracking down the video when it comes out.
"Redis Persistance Power" - Nick Quaranto (@qrush) happening now at #rubymidwest
Redis is Batman's utility belt @qrush #rubymidwest
Redis can take a command that waits for something to arrive in the queue - meaning you don't have to 'sleep' @qrush #rubymidwest
.@qrush is working on hosting Redis in the cloud http://akasentai.com/ Ready soonish. #rubymidwest
Cause that guy needs more side projects. And they're all awesome. Yes, I'm jealous.
"Three thousand years ago, the Omnipotent Disc King started a campaign to ravage Sector 5 of the Moon." from akasentai.com
Weird placeholder site: Go see it.
RT: @qrush My slides from Redis: Persistence POWER! (With way more examples than I could cover!) http://scr.bi/redispower
Bonus content? What a deal!
RT: @clam_tea $redis.sadd should have a $redis.happpy to balance it out.
Yes it should. Well not really, but fun to talk about but not do. Like yielding 42 for no reason in complicated bit of Ruby -- funny but you wouldn't want to actually do it.
Side note: Kansas City and the University of Missouri-Kansas City campus are quite nice. #rubymidwest
It is a pretty town and university.
"Chef - Cooking 101" by John Williams (@j_m_williams) is up next at #rubymidwest
Chef: Automate building a server up from bare metal to a ready to deploy machine. pretty awesome. @j_m_williams #rubymidwest
I talked to John the night before and I think it was his first talk. He was a bit shaky. It didn't help that server set up is dry, dry stuff. And, to be honest, most of the crowd doesn't care about the topic. Sorry John but we're coders.
One more Talk! "Surviving the last 20%" Mark Daggett (@heavysixer) at #rubymidwest
Speaking of Surviving the last 20%, I am mentally exhausted. #rubymidwest
I do! RT: @gregrhansen does anyone else see the irony of everyone leaving before the last talk of the day... the last 20%
"Facebook development is like building a ship in a bottle. Inside another bottle. While wearing mittens" @heavysixer #rubymidwest
Rough to be the last talk of the day. A good percentage of the crowd has bailed, lots of us would rather drive a spike through our cornea than write a Facebook app, and everyone in the room has a severe case of mental fatigue. Still he did a good job.
Demi Moore is to Facebooker as Patrick Swayze is to Rack. In the movie Ghost. In the clay spinning scene. @heavysixer #rubymidwest
You really kinda needed to see the slide to get that last tweet #sorry #rubymidwest
That was a great slide. Well played.
"Use Rack to wrap the plugins and gems to give them the params they expect instead of monkey patching them." @heavysixer #rubymidwest
Clever solution. Mark strikes me a smart man fighting an insane API. And winning.
The talks are over for the day, back to the hotel, and then to http://omgwtfbbq.heroku.com/ Great name. #rubymidwest
OMGWTFBBQ: A meaningless acronym which most often stands for "Oh My God What The Fuck Barbeque." It most likely originated on Something Awful (somethingawful.com). It can be interpreted simply as gibberish, or used when one wants to emphasize one's own incoherence, lack of understanding, or to mock others. It usually has an air of mockery, specifically with regard to teenagers who a lot of use three-letter acronyms.
Evans just gave a lightning talk on singleton classes of singleton classes and had the room rolling with laughter. Only at #rubymidwest
You sorta had to be there. The rest of the lightning talks were good, but I was too tired to Tweet it up so they will be lost to the internet forever. Apologies. The BBQ was excellent, however. I can still smell sauce on my hands and I've washed them 3 times.