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
The latest in my unending attempt to find the perfect iPad text editor is iA Writer – it’s been just over a month since I last wrote about this. iA Writer’s “hook”, as it were, is an entire manifesto about usability for writers. Writer’s goal is to let the writer focus as much as possible on your text. Toward that end, Writer has two features that are unique compared to the other iPad editors that I have reviewed, mostly Elements and Droptext.
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’m going to have an official WindyCityRails conference report up on the Obtiva blog shortly. Consider this the more self-indulgent conference round-up. Ray Hightower and the rest of the team put on a great show, everything ran smoothly, and even the typical complaints about WiFi were kind of muted. When I’m at a conference, I tend to use Twitter as my notebook. People seem to appreciate it, it’s nice to get quotable lines out into the community, and it gives me an excuse to monitor the Twitter backchannel.
I’ve got a bunch of half-written posts, none of which you’ll see today since I’ve been spending all my time getting ready for WindyCityRails tomorrow. So, some quick hits and things to mention before I forget… Beta 7 of Rails Test Prescriptions came out earlier this week. The big addition is the chapter on RSpec. I’m happy with how this one came out. And now I can see the light at the end of the tunnel, with only one or two chapters left to write.
I’ve been working on my tutorial session for WindyCityRails (tickets still available…). The session is about how to test when you are working in a legacy app that doesn’t have tests. Naturally, that requires some legacy code for the attendees to work with during the tutorial. My own worst Rails messes are either back in the 1.2.x time frame or I don’t have access to them any more. I don’t have the right to distribute legacy code that I have inherited, and most of those people wouldn’t want me calling their code a junkpile in public.
Book Status RSpec chapter edits complete, a dozen or so errata squashed, and hopefully we’ll get beta 7 out. I suspect it’ll be after Labor Day, though. I’m pleased with how this one turned out. The RSpec chapter is a challenge – I’m literally squeezing a book’s worth of content into a chapter, but I think it covers the major points clearly. Since I haven’t posted it in a while, you can buy the book here and on Amazon.
Book Status Editing the RSpec chapter, which I expect to be done today, it’s all done except for a couple of hard questions from the editor which last-night me decided to leave for this-morning me, so that last-night me could finish Mockingjay. Thanks, last-night me! A Bundler Question I’m not sure whether this is a feature-request or an I-don’t know what I’m doing request. I’ve been using Bundler with a Rails 2.
Top Story As you probably know, both Rails 3 and Bundler went final over the weekend. The Rails 3 release notes are up, as well as extensive coverage on the Rails Guides page. I’ll also mention Jeremy McAnally’s Rails 3 Upgrade handbookhttp, and Gregg Pollack’s list of great Rails 3 documentation sources. And, just for the hell of it, here’s the post I wrote back when Rails 3 was first announced.
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.
Book Status RSpec chapter draft handed in to edit. It’s going to need a better conclusion. A lot changed in this one, relative to the Lulu version – this is probably the chapter most affected by my own personal experience since it’s original version. Links Haven’t done a link set in a while, this is going to be kind of random. Still seats available for both WindyCityRails in general, and for my tutorial in specific.
It’s very easy to let this blog habit slip through your fingers. You go from, “put something up every weekday”, to “nobody reads this on Friday”, to “I’m tired this mornng”, to “wow, I haven’t posted in a week, and nobody noticed, why post today”. Anyway, here’s a post. Book Status Beta 6 came out last week. I’m now going through the RSpec chapter, which is taking longer than I thought.
I have something like eight different apps on my iPad which are text editors or note takers of one form or another. Plus I know of at least one more that I’m waiting for. It’s possible I have a problem. I really want to be able to use my iPad as a writing tool – the best apps are super responsive, and I like the ergonomics of using it with the Bluetooth keyboard.
Book Status Beta 6 is out and available for sale here. The major addition is the new Shoulda chapter. It’s also available from Amazon. Note that the ship date for the print book seems to have moved to November. Next up is the RSpec chapter, which will probably be Beta 7 sometime in the next week to ten days. After that, most likely a new chapter on test performance / performance testing.
Here’s something I haven’t done in a while – a genuine code blog entry. I needed to add a simple CSV file output, here’s how I did it, tests and all. I used two gems, FasterCSV, which I assume that most of you are familiar with, and Comma, which is a nice little DSL for specifying CSV formats. (Thanks again to Jason Pearl for reminding me what the gem was called…).
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.
Book Status Shoulda chapter fixes made. The next decision is whether to push that as a beta by itself, or wait until the RSpec chapter is also done. Also Today is the last day to get early bird pricing for WindyCityRails. Book Status I did not know that Ruby 1.9 had its own coverage tool. Aaron Patterson shows how to use that tool and a little code to create useful output for coverage testing.
Book Status The Shoulda chapter is draft complete, after a slight restructuring to change the emphasis of the chapter, and a lot of syntax changes. My previous version of the chapter was written before Shoulda went in the direction of RSpec compatibility and so there were a lot of syntax changes that needed to be made, particularly to the way you create Shoulda extensions, which used to be much simpler.
Book Satus Still patching the Shoulda chapter together. Realized yesterday that Machinist is in the middle of a version 2 upgrade, which, along with some factory_girl changes probably means I have some tweaking to do in that chapter. I haven’t run the buy links in a while. You can get the beta ebook and pre-order from Pragmatic and the book is also available from Amazon. WindyCityRails Early Bird pricing for WindyCityRails is scheduled to end today.
Book Status Spent yesterday’s book time rearranging the Shoulda chapter so as to be more focused on the general ideas than the specific Shoulda interpretation. Today’s job is making sure it all still flows. Links So I have something like a half-dozen half-finished blog posts. Until the day some of those become fully finished, here’s a few links. Simone Carletti has list of practices to follow in your Rails 2.3 app to make it more compatible for an eventual upgrade to Rails 3.
While I’m commemorating anniversaries this summer, I just remembered another one. Ten years ago this summer was when I first read the original Kent Beck “white book”, Extreme Programming Explained, which is one of only a couple of books that completely changed the way I approach whatever it is that I do. Considering that I’ve spent most of the last ten years practicing, advocating for, and writing about XP and Agile development, it’s not an overstatement to say that Kent’s book, and the ideas about how to be a professional programmer, changed my professional life.
Book Status Beta 5 came out on Wednesday. Currently trying to figure out how to structure the Shoulda chapter in light of the direction that project has gone in since I wrote about it for the Lulu book. Friday Links One significant change in Rails 3 is that, because of the way Bundler works, the code for your gems is not part of the project. And if you are using RVM, each project might have a different gemset, and different directory to find those gems.
Book Status Beta 5 still in progress. Probably today. No other news to report. And In Other News, My Navel Is Still There It’s been a little more than three months since I started doing these more-or-less daily blog posts here, which is far and away the longest I’ve ever sustained daily blogging. The original idea of this was that it was going to be my daily standup for the Rails Test Prescriptions book, which would force me to do something on the book almost daily since I’d be reporting on it.
Book Status Beta 5 should be out today, with the legacy and the Rails 3. Next up are the Shoulda and RSpec chapters, starting with figuring out how to handle the changes in Shoulda since I last wrote the chapter. Rails I’m sure all of you within the interest circle of this blog already know that Rails 3.0 RC 1 was released yesterday. Part of me wants to say “finally”, but that really isn’t fair.
Book Status Beta 5 should be out early this week, featuring a mostly new chapter on testing legacy projects, and also updating the code setup and the initial walkthrough chapters to Rails 3. Over the next couple betas any remaining Rails 3 incompatibilities will also be fixed. Book Reviews Something new for you on a Monday, a couple of novels that I liked in the last couple of weeks. Kraken, by China Mieville.
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.
Status Not much to tell, really. Spent some time getting RVM set up, since I think I’ll need it to manage simultaneously building the Rails 2 and Rails 3. Now I have a working version of the startup appendix that uses Rails 3 and Devise. I can’t speak to using Devise in practice yet, but the immediate goal of making the setup less complicated was definitely accomplished. The big question now is how much to support Rails 2 in the walk-through chapters.
And Now A Word The schedule for WindyCityRails 2010 just came out. WindyCityRails is Saturday, Sept, 11 at the Westin Chicago River North. I will be running the PM tutorial session on “Testing in a Legacy Environment”. I am frequently asked how to start testing on a pre-existing code base with no tests. In this session, we’ll start with a made-up “legacy” code base, and discuss techniques for adding tests, and fixing bug, and adding new features in a test-driven way.
Not much time this morning, not many accumulated links. So just a little bit today. Book Status Still writing the new parts of the legacy coding chapter, last night a little bit on removing dependencies. I think only one more section to go before that’s a complete draft. Next up, I think, is making the code samples Rails 3 compatible. One quick thing Sometimes you don’t realize how weird something is until you try to explain it.
Book status Still writing the legacy chapter. Totally coincidentally, Michael Feathers, author of Working Effectively With Legacy Code, just wrote on an issue similar to what I’m dealing with right now: The Bad Code Kata. I imagine Feathers had a similar problem when writing his book about legacy code. An Apple Comment A Day So Apple is apparently holding a press conference Friday about iPhone 4, although they haven’t officially confirmed that it’s about the antenna issue.
Book Status Still working on the legacy chapter. The sidebar here is that deliberately writing bad legacy code for purposes of using as examples in a book is a little challenging. It’s got to be tangled enough to make the point that it’s hard to clean, but small and clear enough to work in the context of a book example. My tired brain was fighting it last night. Training! I mentioned this recently, but I want to mention it again.
Status Back to link posts today. The book is still lurching forward on the legacy chapter. Thanks to those couple of you that asked questions on the forum and made it look a little less lonely over there. Quick Review Quick iPhone 4 impressions, but understand that I haven’t actually, you know, used it yet, just took it home and set it up. The screen sharpness really is notice able.
Repeating yourself is clearly an occupational hazard of blogging. I’ve been trying to put together a post about pair programming for a while. Somewhat randomly, I found myself wandering through my blog archives at Pathfinder, and I came across this little essay, which was the last thing I wrote at Pathfinder before, shall we say, Events Transpired, so I probably blocked it a bit. I definitely blocked the responses that were on the Pathfinder blog the following week, because, well, Events Were Transpiring.
Update Beta 4 of Rails Test Prescriptions is now available, with two new chapters, one on Rcov and coverage in general, and one on writing better tests. Buy here. While I’m in the self-promoting mode, the book is also available for pre-order at Amazon and other exciting locations. More Promotion And while I’m here, I should mention that Obtiva has updated their training schedule. Obtiva offers a 4-day Boot Camp for learning Rails and TDD that will next be offered August 2nd through 5th.
Book Status Beta 4 should be going out Real Soon Now. As far as I know everything is ready and we’re just waiting for it to actually be generated. Still working on legacy coding chapter. Links A couple of links about hiring today. One debate is between Ben Orenstein and Brian Liles about whether you can get a Rails job without experience. Somewhat weirdly, both of them seem to be arguing the same side, which is to go out and get some experience.
Book Status Beta 4 should be available this week, or at the latest Monday, apparently we’re working around people’s vacation schedules. It will have two new chapters, and some error fixes and tweaks around the book. Next is on to Beta 5. In status news that shouldn’t interest you much, the end of the quarter meant the end of my first Pragmatic pay period. And apparently Pragmatic pays as soon as possible, rather than waiting 30 or 90 days after the end of the pay cycle.
The title, by the way, is from a favorite scene in a favorite movie. Status Now definitely working on the “dealing with legacy code” chapter, which I am hoping will be substantially more useful than the Lulu version, in that it will cover a few more techniques. I should know later today what the timeline is for beta 4. Links Let’s see what we’ve got today. Nick Quaranto over at Thoughtbot wants you to stop leaving time bombs in your tests.
Book Status And now I turn my lonely eyes to the chapter on testing legacy code. I liked this chapter in the original book, and it’s something I get asked about pretty consistently, so I really want to make it great. Links I’m personally going to spend a lot of time with David Chelimsky’s post about RSpec 2 docs. It’s the best listing I’ve seen so far about changes between RSpec 1 and RSpec 2.
A lot fewer links today. Yesterday, by the way, the most clicked on link was the “Don’t do this” like to the method_missing nil post. Book Status Handed another draft of the Rcov and Style/Test Quality chapters in. Expecting that to be the next beta next week, but we’ll see. Links Kent Beck has a screencast series on TDD from Pragmatic. I linked to the rough version of this some time back.
The end of the repair story At the end, a very positive experience with Apple support. The repair was free, done when they said it would be done, and all told, I spent less than fifteen minutes in the store between both halves of the visit. Plus, they replaced the top part of my pre-unibody MacBook, which was worn down and discolored from my gunky hands, almost as though they didn’t want an ugly Mac in the field.
With my laptop still on the disabled list, I’ve been using the iPad as my primary machine all week. Some thoughts: Overall, it’s been largely non-disruptive, for two reasons. One is that I borrowed a bluetooth keyboard for the duration, and the second is that I’m not in a position at the moment where I need to code on my laptop, since my work site has developer stations. They keyboard changes the iPad experience quite a bit, really turning it into a nice writing station.
It’s kind of hard for me to believe that it’s fifteen years ago this week that I reported for my three-month internship deep in the research department at Apple Computer, down in One Infinite Loop. It was 1995, and it’s beyond understatement to say that Apple was a totally different place then. (I just read an article by a tech pundit who really should have known better that Apple’s marketing has always been great.
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.
Link post today. Turns out I built up more links than I thought. Book Status Somehow I wound up writing and editing the Rcov chapter, which, among other things, is the first time I’ve had to wrestle with RSpec 2 vs. RSpec 1 behavior, when writing about how RSpec and Rcov get along. Now I need to figure out how to write about that more coherently. Actually, I need to decide if I’m going to acknowledge RSpec 1 at all.
I think a link post today… Book Status Still working on the style section, for some reason it’s going grindingly slow. The plan for beta 4 is the new style chapter, probably the legacy coding chapter. Also on the slate is updating the sample app to use Devise, which had a large constituency when I floated the idea the other day. Oh, and I haven’t had the link up in a while.
Some of you know (and the rest of you don’t care) that I spend my actual day job working on a largish JRuby on JRails project. (As an aside, I never get tired of jthrowing that extra j onto janything jthat I jcan. When I wrote the “Jython Essentials” book, I desperately wanted to call it “JProgramming Jython”, but eventually sensible people prevailed.) Anyhow… our developer stations run Ubuntu, which meant no TextMate.
Top Story Thoughtbot talks about their plans for Shoulda moving forward. The big takeaway is that, while the context library will be separated out for use in Test::Unit, both Shoulda style and Shoulda effort will be focused on RSpec integration. I have some complicated thoughts about this one. I’m thrilled that Shoulda is being maintained – it’s a tool I’ve used a lot, and I was starting to get worried. And they should move their open source tool in any direction they want.
No links post this morning, maybe later today. Meantime, enjoy me blathering abouta a couple of substitutions in my iPad dock: Position: RSS Reader Incoming: Reeder Outgoing: NewsRack An easy call. NewsRack is nice, but Reeder is: Smoking fast. Without a limit on downloaded articles per feed Much more accurate on sync – NewsRack has problems if you go back and forth and old, unread articles pile up and never get marked unread.
Still catching up on links. The PeepOpen review has morphed into a larger IDE/TextMate piece, hoping to finish that today. Book Status Still working on the renovated Style chapter, which will probably combine the chapters that are in the current Table of Contents as “Testing Style and Structure”, “Fix Slow Tests”, “Rcov”, and “Help! My Test Is Failing”. The chapter on Legacy testing will remain a separate chapter – I get asked about how to test legacy projects all the time.
Looks like I did get a few links gathered yesterday. I’m also working on a post about PeepOpen, TextMate, and RubyMine, I had an interesting day with all of them yesterday. I also remember working on a book-like thing once upon a time, and the whole point of doing this daily blog was to give me an incentive to work on the book every day. Links August 19th is the anniversary of Why The Lucky Stiff’s sudden withdrawal from the online Ruby community, and Glenn Vanderburg is organizing Whyday for this Aug 19th, as a day to “put your best practices away” and celebrate Why’s unique spirit and contributions by making something great and off the normal path.
Sorry for the involuntary day off yesterday. Lot of links, I’ll try and be brief. RailsConf and Related DHH’s Tuesday keynote is up. Presumably this is different from last year’s keynote about Rails 3. The other keynotes will probably become available in the next few days. David announced Rails 3 beta 4 at his keynote. It looks like we’ll be getting a release candidate in another couple of days. The Ruby Hero awards were given.
Okay, There’s a New iPhone Don’t really have a whole lot to say beyond what’s already been said. It looks very slick, and if anybody can actually pull off getting people to use video chat, it’s Apple. The form factor of video chat from a phone seems at first glance to be significantly better than from either a laptop or the iPad, in that it seems easier to hold the phone in a position to get a good angle.
Today is the RailsConf tutorial day, with the conference proper starting tomorrow. I was less disappointed than I thought I would be when my talks were not accepted, but I’m more disappointed than I thought I would be not to be going. Have fun, everybody. On the other side of the country, today is the Apple WWDC keynote, which I’m sure I’ll join the rest of the internet in obsessing over.
Quick links post: Gregory Brown is looking for comments and donations for a proposal for a Ruby Mendicant University, basically a rolling online Ruby course. Charles Nutter is interviewed by InfoQ on the state of JRuby. Yehuda Katz has a long post on various kinds of extensions in Rails 3 – gems, plugins, generators. This one I need to look at in some detail. The new RubyMine 2.5 beta integrates with Pivotal Tracker.
Warning: Strained Metaphor Approaching If there’s one thing about software development that has been hammered into my skull the last few months, it’s the idea that the details of your development process are less important than the mere idea that you have a process. The goal is to get all your stakeholders to accept the idea that, unless the server is actually on fire, the process is more important to future success than any one individual feature, bug, or change.
Routes Geoffrey Grossenbach at Peepcode posted a typically beautiful post/rant about Rails routing. DHH responded in the comments of the article on YCombinator. Grossenbach argues that Routes are unnecessary configuration and offers a couple of options for moving the routing into the controllers, as Sinatra does. DHH responds that GG’s schemes would be challenging for large projects, and that the seven default action names are an important constraint. Everybody’s making good points here, so lets have the debate.
Yesterday… Gave my talk at Chicago Ruby. The video is already online – yay Chicago Ruby team. I was pleased with it, actually, I did pretty much what I hoped to do, except that I thought the repetition joke would get a bigger laugh. In other news Yehuda Katz posted slides on another Rails 3 talk: dashing to the finish. Speaking of people on stage, Steve Jobs was interviewed on stage at the D conference yesterday.
iPad Note I keep wanting to write about the iPad, but so, so many other people are writing about it that I’m not sure I have anything to add. More or less at random, I really liked the brief rant Joe Posnanski added in the middle of an otherwise-unrelated blog post, and Charles Stross’ typically complete take. Right now, I just would add that I still use it more than I thought, that the form factor makes more of a difference than I expected (being able to easily walk to show the screen).
Short today, but preparing some longer, more rant-y bits for the future… Book status Not much forward motion for the next few days, as I have a lot of other stuff to do, including preparing for Chicago Ruby on June 1 and doing a bit of touch-up on Obtiva’s 4-Day Ruby on Rails/TDD boot camp. All fun, but time consuming. Some Links A quick tutorial by Peter Cooper on setting up JQuery in Rails 3.
I think we’re going to be even more random then usual today. Here goes: If you downloaded the epub version of Rails Test Prescriptins beta 3, then you may have noticed that the promised Cucumber chapter isn’t there. The PDF is fine, and I have no idea about the mobi version one way or another. If you were affected by this, please go back to the Prags site and grab the file again, it appears to have been fixed.
Top Story Got interviewed yesterday by Miles Forrest and Curtis McHale of the coderpath podcast. Presumably it’ll be out and public in the next couple of weeks. You’ll be the first person I tell. Couple things It’s been a while since I did anything like this, and I always forget how much it’s a genuine skill to be able to give a clear answer without doing a lot of ums and ahs.
Top Story Beta 3 should be out today. The main change in this Beta is the inclusion of the Cucumber chapter, which has been updated both in terms of new tech, and also in terms of conclusions about how to use Cucumber. And In Rails news… When last we met, Rails 2.3.6 had just been released. Well, in the intervening 24 hours, we’ve bumped all the way to 2.3.8, with two bug fix releases, explained by Jeremy Kemper here and here.
Top Story Rails 2.3.6 released, with more changes than I expected, taking it just a little bit beyond a bug-fix release. Follow the link for the full release notes. Things that caught my eye: Looks like they made an official plugin to give Rails 2.3.6 the default HTML safe behavior of Rails 3. Although the note is vague and I could be misunderstanding. Alert and notice are now separate methods rather than just being keys on the flash.
Book Status Committed what I hope will be the Beta 3 version of the Cucumber chapter. Most of the changes were in the various conclusions. When I originally wrote the chapter, Cucumber was still quite new, and I had kind of a ragged set of thoughts about how it should be used. Since then, I’ve used it more, and more importantly, there’s been a lot more community discussion about how Cucumber is best used, so I needed and was able to tighten up that part a bit.
Book Status Starting to sound repetitive. Still working on the Cuke chapter, this time focusing on cleaning up the parts where I recommend ways to use Cucumber. Still hoping for a beta early next week. Other things This week in Yehuda, there’s a very long article about text encodings and what problems they have, and in particular how Ruby’s implementation is shaped by the complicated relationship between Unicode and Japanese.
Book Status I got some editorial feedback on the Cucumber chapter, the plan is to get that turned in by Friday for a Monday switch to Beta 3. Not sure what Beta 4 will be – it’ll either be Selenium or some of the test quality chapters. Live! I’ll be presenting at Chicago Ruby on June 1, along with Matt Polito. The working title of my talk “Testing Done Good”, and it’s going to be about writing good and robust tests.
Book Status The Cucumber chapter is nearing final edit for beta. I cleared up a handful of errata, of which probably the most serious was a mistake on how to get the fixture data to pass the first test in the book. I’m hoping to get Beta 3 out later this week, and then I have to decide which direction for beta 4. Oh, and the book: still on sale.
Top Story Just a quick update here. Cucumber chapter newest draft is complete, and I’m hoping it will be beta 3 early next week. Not sure what to do next, I need to look around and see what’s relatively stable with respect to Rails 3. The book is still on sale. Tell all your friends. And then Rails Dispatch this week is about the new routing in Rails 3. Yehuda Katz has a really nice article on workflow with git.
Top Story JRuby 1.5 is out. Highlights include improved Rails 3 support, better support for Windows, better FFI support, better startup time (yay!) and a lot of other tweaks and fixes. Book Update Still Cucumbering, hope to finish today. The book is still on sale, of course. And I’d still love to see more comments in the forum. I’ll be talking at Chicago Ruby on June 1, exact topic TBD (let me know if you have a preference), but I’m leaning toward talking about how to avoid test problems and write good, robust tests.
Top Story I ran the Lulu raffle last night, and all five winners have responded. For what it’s worth, I took a list of users from my database, generated a random series of numbers from random.org, and the users corresponding to the first five numbers in the sequence were picked. Congratulations to Peter Bosse, Tim Harvey, Cameron Pope, Joshua Ball, and Christian Knappskog. You’ll be contacted shortly with information about receiving your prize.
Top Story / Book Update Beta 2 of Rails Test Prescriptions is out. The biggest addition is the chapters on integration testing and Webrat/Capybara. Beta 3 will be coming next week and will include all or most of the Cucumber chapter. Please do post to the forum, there’s not any discussion there, and I’m interested to hear any questions or comments you might have. Other People’s Books A lot of book links today.
Top Story Let’s start with this: there’s a small but embarrassing typo in the Pragazine article code. Especially since it was a) called out by the author of Mocha and b) was a direct copy from the book, and from the Lulu version before that, so it’s been public for about a year, and I’ve proofread that chapter at least five times. Which just goes to show… you never catch everything.
Top Story I’ll mention somebody else’s book, but don’t worry, I plan on doing it in a totally self-absorbed kind of way. Pragmatic released Using JRuby into beta yesterday, by the core JRuby team. Looks good, interested to see where they go with it. Because I’m me, I can’t help but compare the structure of the book with the Jython book I did. Biggest structural difference so far is that we were unable to assume a Python-savvy audience, so we felt we had to awkwardly teach Python for 100 pages at the start of the book, where as the JRuby book is able to teach Ruby in an Appendix.
Book Status Working toward beta 2, which will probably come out early next week. It’ll include chapters on integration testing, and webrat/capybara, and maybe the Cucumber chapter, depending on if I finish the redo. Also, the setup appendix with at least partial Rails 3 info – still sticking on how best to integrate the user plugin. Thanks to Dan Benjamin and Jason Seifer for mentioning Rails Test Prescriptions (still on sale) on The Ruby Show episode 115.
Top Story MacRuby 0.6 is out. Big new features include a debugger, a new interface to Cocoa’s Grand Central Dispatch, and a rewrite of the internals of basic Ruby classes. In a related story, the early text of Matt Aimonetti’s MacRuby book from O’Reilly is available for free online. Nice job all around. I’m not sure if I’ve mentioned it here, but I use MacRuby and its ability to manipulate AppleScriptable programs to power my crazy-obsessive iTunes random playlist generator, so speed improvements are hoped for.
Hey, where were you? Sorry about that, I spent most of last week running the Obtiva Ruby/Rails/TDD 4-day boot camp training, and I didn’t have time to do this daily catchup. Hey, if you think you need me or somebody like me to come to your company and blather about Ruby and Rails for a few days, contact us at http://www.obtiva.com. It’s fun. Book Status Rails test prescriptions: still on sale.
Top Story For me, the top story is still Rails Test Prescriptions on sale, and my discussion yesterday of the raffle for the old Lulu customers. Book Status Now re-doing the Cucumber chapter, which was written long enough ago that it didn’t consider tags. Cucumber has had approximately seventy-million releases in the interim, so there’s some writing to do. This is the first chapter where I’m adding Rails 3 setup instructions, which will eventually go everywhere in the book, of course.
Only Story Special post today, then we’ll get back to the relatively normal format tomorrow. If there’s one question I’ve been asked more than any other since signing Rails Test Prescriptions with Pragmatic, it’s whether something would be done for those of you who bought and supported the original self-published version. We all really wanted to recognize those of you who bought the first version of this book, but there are practical constraints.
Top Story If you think the top story is going to be anything other than the continued launch of Rails Test Prescriptions, well, you probably don’t know me very well. I may not be a marketing genius, but I do know the value of repetition. I mean, if there’s one thing I know, it’s the value of repetition. Thanks to everybody who made yesterday fun: those of you who bought the book, those of you who blogged or tweeted about the announcement, and anybody who read this.
Top Story So, about yesterday… Funny story. Some of you may have gone to the Rails Test Prescriptions book site hoping to buy the book only to see a conspicuous lack of an “Add to Cart” button. The book was for sale for about ten minutes, just long enough for me to start jumping up and down about it, then was pulled due to some issues with the ebook files. I heard that the famous PragProg ebook generating gerbils went on strike, but that’s just a rumor.
Top Story What else, but the actual live sale page for Rails Test Prescriptions, which is http://www.pragprog.com/titles/nrtest/rails-test-prescriptions. You should be able to see the cover off to the right sidebar. (As I write this, they haven’t turned on the “Buy” link, sometime today, I think). I like the mortar and pestle in the cover, it has a nice resonance with “prescriptions” and also, at least for me, a little bit of a tinkering kind of vibe.
Top Story / Book Status As far as I know, everything is still good for the book to go on sale tomorrow. Tomorrow I’ll post all the info – url, cover, pricing. I don’t plan to be subtle about it. As for the writing itself, I finished the next drafts of the chapters on integration testing, webrat and capybara, the capybara bit probably still needs some more research. Right now I’m working on an article on mock testing for the Pragmatic Magazine, next up after that is probably a look through the Cucumber chapter, which I originally wrote about a year and umpteen skillion Cucumber releases ago.
Top Story/Book Status This is the week – Rails Test Prescriptions should go on beta sale on Wednesday. In a related story, railsrx.com now points to here, railsprescriptions.com also will shortly. I’ll be adding some basic about information and static pages here. At some point, I’ll probably bring over any blog content from the previous site that still seems relevant. I’m not sure if the original free version of Rails Test prescriptions will still be available (it’s becoming out of date, and there will be free samples available at Pragmatic), but I will make it available if anybody is still interested.
Top Story and Book Update I have sample cover designs. I don’t think I can show them yet, but I’ve got ‘em, I like them, and hopefully we’ll have picked one to show shortly. Tab dump Not a whole lot today: Here’s a look at the current status of using a non-blocking MySQL driver with Rails. The promise here is for significantly faster database access. Two stories that are related to projects that I worked on back in my EdTech days:
Top Story As part of the Chirp conference, Twitter and the Library of Congress jointly announced that the Library will be storing Twitter’s entire public archive. I’m sure your expecting an easy joke about how many sandwiches the LoC now knows about in their archive, or about how scholarly papers about the archive will be limited to 140 characters. (Or, for a more academic joke, limited to 140 authors…) All that aside, though, I think archiving and making all this available is pretty neat.
Book Status Not much new to report. Still in the webrat and capybara space. It does look like April 21 will actually be the beta date really and for true. Top Story Well, it’s got to be Joss Whedon possibly directing the Avengers movie, right? The Internet would never lie to me about Joss. It’s not like there’s a collective internet freakout any time some rumor about a Whedon project comes through.
Top Story iPads. Lots of them popping up in and around work. Probably some more coherent impressions coming later. Wait, once again, Twitter has a big announcement after I start writing this. This time, they are going to start placing ads in the Twitter stream in various ways to be announced today. My quick reactions: a) I long suspected this day was coming, b) if the ads in clients are any guide, they aren’t particularly burdensome, c) implementation details will decide how irritating this is.
Top Story For a while, it looked like the top story was going to be Apple’s new developer Rule 3.3.1, described here by John Gruber. More on that in a second. But the real top story is the news that Twitter has bought Tweetie, intending to rebrand it as Twitter for iPhone, and dropping the price to a low, low, free. Eventually, it will be the core of Twitter for iPad.
Book Update Not much to report. Still messing with the integration test chapter. Also still waiting for cover possibilities. Tab Dump Continuing the RailsEnvy story from yesterday, today Jason Seifer posts some more details. This essay is more personal. I wish Jason nothing but good things. In a somewhat ironic counterpoint to Gregg and Jason writing about Rails envy, it was widely reported today that Justin Long thinks the “I’m a Mac” ads, of which he is the right-hand half, are over and done.
Book Status Did a read-through of the integration testing chapter, mostly for grammar and clarity, there haven’t been any technical changes in the material that I have been able to discover. Next up is Webrat/Capybara, which will have some changes. Other Got my RailsConf non-approval, which is disappointing but, you know, I also probably could have put a bit more effort into polishing my proposals. Tab Dump Gregg Pollack gives a brief history of RailsEnvy.
Book Status Phone call with Colleen (the book’s editor) confirms what I had posted yesterday. We should know shortly when the beta actually will begin for real. Started looking at the integration and Webrat chapters. I’ll be adding Capybara to the mix as well. Also started putting together the Rails 3 version of the sample code, which quickly foundered because there isn’t an official Rails 3 version of Authlogic. There are a couple of forks that claim compatibility, though, so I think one of them will serve as a shortcut.
Book Status The initial beta release of Rails Test Prescriptions has been pushed back at least a week. It’s not anybody’s fault, just a traffic jam of books all coming into the system at the same time (including, I assume, the new iPad book). Hoping to see a cover and other details in time for next week. In the meantime, I’m continuing on as if we’re in the beta, which means I’m now revisiting the section on integration testing.
Actual public beta of Rails Test Prescriptions is finally getting close enough that I can see it. Unless I forgot something from my conversation earlier today, there are three things that need to be done before the book can be put on beta-sale: Both myself and Colleen, the editor, need to do one more read through the chapters in question to make sure there aren’t any gaping things missing.
iPad, iPad, iPad. Five Random Thoughts Given that Apple’s business model for most of the past 30 years has been not to compete on feature lists, but rather to pare down features in the name of user experience, that a tech analyst would at least pause before proclaiming the iPad to be a failure because it doesn’t have feature X. I don’t think the iWork stuff got enough attention.
The book went out for 50% technical review this week, covering the first nine chapters, which is about 160 pages. With the warning that I don’t actually decide any of this stuff, it seems like if the reviews are basically positive, then the book will head into beta purchase while I work on the rest of it. I doubt that will happen in February, but I’m really hopeful for sometime in March.
Here’s where we are in the publishing cycle of Rails Test Prescriptions: The book went through a major hurdle in December when it went through “Publisher review”, where three chapters were submitted to Dave Thomas and Andy Hunt for review. Dave and Andy, thankfully, said mostly good things, asked for a few revisions, and caught some relatively minor technical issues. (I suspect the major technical issues are in a later chapter…).
And now some testimony from Brother Nicely-Nicely Johnson, I mean, James Turner, from O’Reilly Radar: The Cult of Scrum: If Agile is the teachings of Jesus, Scrum is every abuse ever perpetrated in his name. In many ways, Scrum as practiced in most companies today is the antithesis of Agile, a heavy, dogmatic methodology that blindly follows a checklist of “best practices” that some consultant convinced the management to follow.