I present to you two things that sound like they should be metaphors for project issues. Except for two things: They are real I have no idea what they might be metaphors for The Library Book Priority Conundrum I read a lot. In general, I purchase books I’m very excited about reading, and books that I’m less sure about I check out from my local library.
If I’m counting right, Ruby Midwest is my fifth conference this year, which is I guess one of the perks of having an employer that likes being involved in the community. It’s great – I like meeting all the smart people involved with Ruby, I learn things, and sometimes people ask me to sign my book. (Okay, that happened once. Still, that’s more than zero.) At the risk of shooting myself in the foot forty-eight hours before I go give my own talk, here’s a list I compiled for a lightning talk at a recent Groupon Geekfest, entitled 10 Things That Drive Me Crazy About Conference Presentations.
The problem with sitting on these daily link posts is that the links go out of date. Sigh. Here are some links. Twitter I found a couple of things about this InfoQ article about Twitter’s infrastructure odd. I was expecting it to be a bit more of a Rails hit-piece, frankly, so it was nice to see a quote like this one from Evan Weaver: I wouldn’t say that Rails has served as poorly in any way, it’s just that we outgrew it very quickly.
So, as threatened on Twitter, I decided to overreact to Vim users by trying out BBEdit for my Rails development. Expect a write up soon, but the first pass is that it’s clearly a very powerful program, but it also clearly was developed in response to a set of needs that are not completely congruent with my needs. 1. Contains Me I’m very excited to mention that I’ll be doing a day-long training session at Lone Star Ruby Conf.
Hey, twice in one week. I might be actually getting back on a pattern here… 1. Popular Crime Catching up on books, I started off last month with Bill James’ Popular Crime. James, known mostly for his writing about baseball, has written a labor of love book about, well, popular crimes. There’s a whole ‘nother essay to write about how the way James approached both writing about baseball and what you’d have to call the scientific method warped my brain way back when.
1. Annnd… We’re Back Okay, I’m trying the semi-regular daily links post again. Two changes from the last time I did this: a wider range of links beyond just Ruby, and it probably won’t quite be daily, but more when I build up five things that I have a short opinion on. Mostly, though, I need to get back in the habit of actually finishing posts, and realizing that I don’t need to write a 2000 word essay on something for it to be posted here.
So, apropos of nothing, and after RailsConf, some thoughts on public technical speaking. You’re not going to read about how to arrange your slides here, not least because I’m pretty bad at the fancy slide thing. Instead, I want to talk about working the room. This is what I try to do when I give a technical talk. You should think of this kind of presentation as a performance. You have a story to tell and information to share, and you want the audience to pay attention to you.
A quick trip report seems like a good way to break up some weird mutant form of writer’s block that has been preventing me from finishing any of the six or so half-written blog posts I have in my queue. This was my third RailsConf (not 2010, but the two years previous), and it was pretty easily the most fun. I know more people there now, and more people know me, that’s part of it.
I was fortunate to spend this Thursday and Friday at RedDirt RubyConf in Oklahoma City. Here’s a quick conference report, and random thoughts about single-track conferences in general. This is my second try at writing this post, excuse me if it’s a little disjointed (the first one was eaten by my writing tool – the dark side of continually trying out new writing app, but more on that later…) I want to make sure I say up front that James and the rest of the organizers did an outstanding job with the logistics of the conference.
Here are a few random tips that have come up while working on an application using Refinery CMS, Globalize, and who the heck knows what else… Extending stuff from Refinery Refinery is about as extendable as a Rails framework gets. Although it provides you with a lot of default behavior, it’s not that hard to override. Refinery is made up of a collection of Rails Engines. For example, the main display of pages is in the refinerycms-pages sub-gem.
Hey, guess what, I’ve got another iPad text editor or two to review. The thing is… I really like writing on the iPad, with or without the bluetooth keyboard. It’s a very lightweight, fun writing machine. But all the editors I’ve used have flaws that have been making them less than workable for me. I still like them, but I’m getting resigned to their limitations. For example, iaWriter doesn’t see subfolders, meaning that it doesn’t work with Scrivener sync directories.
So, I’ve been writing technical books for about ten years. What can I say about that time overall? Here are two pie charts representing my published books to date. I’ve thrown in the Lulu version of Rails Test Prescriptions just for the heck of it. Care to guess what the pie charts represent? Before I give the answer, please note that there is basically no correlation between the values in each chart.
As it happens, my generic advice on Rails testing hasn’t changed substantially, even though the tools I use on a daily basis have. Any testing tool is better than no testing. Okay, that’s glib. You can make an unholy mess in any tool. You can also write valuable tests in any tool. Focus on the valuable part. If you’ve never tested a Rails application before, I still recommend you start with out of the box stuff: Test::Unit, even fixtures.
Consider this part of an occasional series where I attempt to revisit tools discussed in Rails Test Prescriptions that have undergone some revision. (NOTE: Most of this was written before the DHH Twitter-storm about testing this week. For the purposes of this post, I’m choosing to pretend the whole thing didn’t happen.) The cucumber-rails gem released version 0.4 last week, which had some significant changes, and intensified what we might call the opinionated nature of Cucumber over what a Cucumber scenario should look like.
When I say that I’m really bad at self-marketing, one of the things that I mean is that I’ve left this blog basically dark for almost a month. This was an especially good idea because a) the TextMate post on Feb 10 became the most read post on this site ever by a factor of 5 over the previous three most popular posts (the PeepOpen review, the iaWriter review, and the thing about writing bad code, in case you care), and b) my book actually came out in print during this time.
I have a couple of upcoming conference and training appearances that I don’t think that I’ve mentioned on the blog before. March 16, I’ll be in Salt Lake City for Training Day, the day before the official start of MountainWestRubyConf. I’ll be doing a full day of training, the morning will be on Improving Your Ruby Skills, and the afternoon will be Getting Started with TDD in a Legacy Environment. You can get more details, including location and pricing at the MWRC site.
After a long time bouncing back and forth, I’ve come back to TextMate as my main editor. I realize that’s starting to sound almost old-school these days, but it still works the best for me. What I’ve come to realize about TextMate versus, say, Vim, or RubyMine is that a) this is a genuinely personal decision and different people are just more comfortable with some tools than other and b) it comes down to what each tool makes easy and how useful that is.
Among Others is an evocative, subtle, and mostly brilliant fantasy novel on the themes of dealing with loss, growing up, learning to live, and how amazing the new Heinlein novel is. People who grew up inhaling SF and fantasy books are, by and large, going to recognize themselves pretty strongly. Not surprisingly then, many SF writers who have reviewed the book on line have raved. I’ll rave too, with some quibbles that we’ll get to in a bit.
I suppose I should get this on the blog… Rails Test Prescriptions was sent to the printer yesterday, actually a couple of days ahead of the schedule that we’ve been on through the last stages of production. Here are the dates, as I understand them… The book is scheduled to leave the printer on Thursday, Feb 17, headed for bookstores and warehouses. I’d expect that you would probably see it in bookstores early the following week.
I mentioned on Twitter the other day that I was starting to like using Haml and it was surprising me because I used to dislike it so much. Colin Harris asked me to elaborate, but Twitter was too short, so here goes. I assume that most people reading this have some idea of what Haml is, if you don’t, it’s an ERb replacement for view depleting which uses Python-style indentation for blocks, and a couple of other tricks for simplifying the amount of markup you need to write in your view – here’s a sample from the Haml tutorial, which gives you the flavor.
It’s been quiet on the Rails Test Prescription front. Those of you on the beta program should have gotten Beta 11 earlier this week. There are no major changes in this beta, but it does contain the final copyedit, a pass through the errata, and a couple of late-breaking reviewer comments. At the moment, the book is being typeset, which means that non-typesetter changes to the source files are definitely contraindicated.
Very quick status update: Rails Test Prescriptions is out of copyedit. It should head for typesetting on Monday for a probably ship date in mid-February. Right now, we’re in the phase where I go over the copyedit and whine about things. Actually, this copyedit has been pretty clean, probably the cleanest I’ve ever had. By way of contrast, when I did the wx book, the copyeditor did not realize that “Python” and “wxPython” were two different things, and decided to unilaterally change all instances of “Python” to “wxPython”, apparently in the belief that I had made the same mistake 1500 times.
Nick Gauthier’s post about mock testing, got some attention and I was kind of opining about it on Twitter, but it’s well over 140 characters, so lucky you, I’ve decided to take it to the blog. (Do read Nick’s post, and then then comments, with Nick and Dave Chelimsky and others discussing the topic.) I want to back up a bit from the “Mock testing is bad for you and hurts puppies” versus the “Mock testing will make your breath fresh and cause you to lose weight” split argument.
This week I did Obtiva’s weekly Geekfest with a presentation/bookreport on the Making Software book. I’ll write more about that book later, right now I want to expand briefly on something I referenced at the end because it’s one of my favorite tech/UI examples to talk about. We were discussing the relationship between an experts gut feeling about what works and what can and can’t be shown using empirical evidence. Specifically, the difference, even for experts, between our perception of our effectiveness and our actual effectiveness.
In the interests of full disclosure, I probably should start by saying that, technically, Rails Test Prescriptions was not actually featured on this week’s MacBreak Weekly. But it is a lot more fun to say that it was… Here’s the whole sordid, somewhat self-indulgent story: I’ve been a regular listener to the MacBreak Weekly podcast almost since it started, and recently I’ve taken to listening to the show while walking to the train but switching to the video version when I get on the train.
We’ve gone through the technical comments for Rails Test Prescriptions and I’ve made the substantial changes that I plan to make. At this point, we are about to enter the production process, we just missed getting it in before the Thanksgiving holiday, so I’d expect this to start next week. I’d also expect beta 10 to come in next week, hopefully Monday, maybe Tuesday. As for the timeline on the rest, I’m not 100% sure.
So. Um. I really didn’t intend to be off the blog for quite this long. But, well, one thing leads to another, and sometimes the easiest thing in the world to do is Not Blog. Some things that are going on: Rails Test Prescriptions is through it’s full technical review. Comments were mostly positive, with a nice dusting of “why didn’t I think of that”, and “Oops”, and “I should fix that”, plus the occasional “We’re just going to have to agree to disagree”.
Spent Friday and Saturday at the Software Craftsmanship North America conference, which was a friendly gathering of people interested in being really, really good coders. A few scattershot observations – my favorite quotes and whatnot are on my twitter stream, except for Corey Haines’ talk at the end – I had put my stuff away and didn’t have a readily available tweeting device. I’m much more comfortable with artisan metaphors for programming than martial arts ones.
I turned in a draft version of the completed performance chapter Monday morning, marking the first time that I’ve ever been able to say that I have a complete draft of the book. I’m hoping for a beta by the end of this week. And, since I haven’t added the links in a while, here are the links where you can get the book from Pragmatic or from Amazon. Which isn’t to say that I’m done, though it’s getting closer.
Brief update. Haven’t done this in a while. The chapter on performance testing, and test performance is getting closer to done. I had hoped to finish it last week, but obviously didn’t get there. But it’s definitely getting there.
My post for the RubyLearning Blog is now available. It’s called “The Testing Mindset”, and it’s an extended work through of my TDD answer to the Ruby Kata from earlier this week. Enjoy.
This is, I have on good authority, actual homework from a 4th grade gifted program, paraphrased to make it more code-kata like. Find all the unique sequences of digits, like [1, 1, 2, 3, 8] that have the following properties: Each element of the sequence is a digit between 1 and 9 The digits add to 15 There is at least digit that appears exactly twice
There is a long list of half-finished blog posts that are currently waiting for me to finish them, but they are all queued behind working on the book and other various life tasks. As far as the book goes, I’m currently working on the performance chapter. This chapter will cover the Rails performance test features, and then will move to strategies for improving the actual performance of your tests. The first part of this chapter is interesting to me because it’s one of the few features in Rails Test Prescriptions that actually map very closely to a section in Professional Ruby on Rails that I wrote three years ago.
I always feel a little bad for the people who come to this site via search. There aren’t very many of them, mind you, but it always feels like they are destined to be disappointed if they are coming here to actually get information. In that sprit, I’m going to respond to some of the search terms that WordPress says have brought people to this site in the last 48 hours.
In case I don’t get to a longer post today, just a quick book status note. The Shoulda chapter is essentially done, I’ve cleared the errata that people found (some really good catches this time…) It will go out as Beta 6 probably on Monday, although we might get lucky and get it out sooner.
Me Me Me Video of my recent talk at Refresh Chicago: You Got Your Agile in My UXD is now online. I haven’t actually watched this version all the way through, but I apologize in advance for looking like a drowned rat – it was raining that night. (Not, of course, in the room where the talk was…) Book Status Now working on switching the early “tutorial” chapters to favor Rails 3.
No link post today. My laptop is on the 5-7 day disabled list with a busted logic board. So far, a solid experience with Apple support, hopefully the prognosis is accurate. Anyway, unless I can figure out a good, non irritating, way to put together a link post using an iPad, looks like we will be doing something different this week. It’s a little weird that the WordPress web page has a better editor than the iOS.