MongoMapper Migrations isn’t a problem I’ve run into personally. Tim Conner ran over some possible solutions and their pitfalls. Using before_save you have to be careful with getters. Base your to-do list on a finder for untransformed records, so it always stays current. Especially with too many records for a single thread, resque is probably useful. (I’ve been seeing resque come a up a lot lately)
Reneee Devoursney brought us back from technical detail to culture with “Who’s Wife Are You?”, talking about the challenges of being a women in a male dominated field. Here main themes were community and vulnerability. She praised the open source virtues of inclusive, collaborative, and innovative, and urged us to be be aware, get uncomfortable, and think generalist, laying out examples in good-idea/bad-idea format.
Collin Schaafsma’s “How to Give Your Project a Kick in the Mouth” broke down what he’s learned running a consultancy. He talked about risk factors for client selection – right size? is the work interesting? Is it a hotmail address? (beware!) He also gave some advice for bidding and payment – avoid fixed bid and don’t be afraid to say “I don’t know how long it will take” He also covered team setup – try to have people full time on a project, with no middlemen. A recurring theme was “…with the client”
Jon Larkowski – who lead us through “sexy yoga” during several breaks, presented “Who, What, Where, When, Why, and How to Test”. He actually spent a fair portion of time chilling out on the carpet in center stage talking about other things. Still he presented some guidelines – test outside-in, for rails focus on models, and it’s okay to click on stuff. He also pointed out that shipping is the goal, not testing, and brought up an issue getting some currency – for a consultancy, they mainly deal with technical risk (and test a lot) whereas a startup also has to deal with business risk, which may require maximum speed. Oh, and he delivered his outline as a Shakespearean sonnet.
Brian Hogan told us to to build ruby gems from scratch, rather than using one of the several helper frameworks. This is both to reduce dependencies and exercises explicit control of the manifest, which should contain only end-user files. He also claimed that tests are an afterthought to many gems, and recommended tossing out spikes/prototypes and starting over TDD.
Chales Nutter presented a pretty standard pitch for jRuby. My takeaways were that the memory footprint tends to be larger to start but smaller over time, and that a few esoteric features are missing – fork and callcc.
Next we got a slightly outside perspective from Jina Bolton, a designer who presented “CSS Workflow with SASS”. She gave some directory layout guidelines. Separating images into content and layout directories may be useful. Other divisions includes base/layout/responsive/print, or base/themes/helpers/layout. She is a bit fan of SASS, and I learned that you can interpolate into classes and attribute names. Another interesting bit of advice is to use style guides, pages with all the basic elements and colors laid out.
“Tip of the Skinny Iceberg” by Stepen Caudill returned to the theme of the talks on views – proper assignment of roles in Rails apps. The skinny he refers to is a piece of advice “fat models, skinny controllers” In particular he wonders if models are overloaded: they often contain security, validation, queries, and business logic. He made a detailed overview of the SOLID principles to justify his claims.
Things descended into a certain amount of chaos afterwards, as people dispersed their separate ways, as it goes with most conferences. Loitering outside the door, on the literal edge of a light rain, I got talking with a fellow suburbian, who proceeded to join me at State Street Brats. Sitting out on the patio, we saw a rainbow.
Saturday’s party was on the rooftop of the Museum of Contemporary Art, on the same block as Overture Center (conference location) Interesting place with a nice view and a scattering of lighted floor tiles. Entertainment was provided by by Dosh, who played drums into a loop, and then dressed it up with effects, synth, and other overlays. Giles was on the schedule; perhaps Archaeopteryx was running the music – also quite likely was that I arrived too late or left too early. Given the relative nearness of Madison and my general anti-proclivity for parties, I planned to leave after a little while, and return home at a not too-late (or early) hour.