Lesser Known Test Processes
New post on the Pathfinder site. I had fun writing this one. It's on some lesser known variants of test-driven development.
http://blogs.pathf.com/agileajax/2008/02/lesser-known-te.html
New post on the Pathfinder site. I had fun writing this one. It's on some lesser known variants of test-driven development.
http://blogs.pathf.com/agileajax/2008/02/lesser-known-te.html
Labels: agile, pathfinder
This is for any intrepid readers out there who have been following this blog for any length of time. Executive summary: this blog should be getting more content (and more varied content) in the future. Really.
Here's the thing. At the moment, I'm trying to maintain the following:
All of which got neglected during the big book push.
That's clearly an insane amount of stuff to manage, and it was all suffering for it. On top which, dividing blogs between professional and personal/geeky content was not turning out to be pleasant.
That said, I obviously need to continue posting to the Pathfinder blog, what with them paying me and all. So the plan is this:
The goal is 2-3 Twitter updates a day for links or other short thoughts, and 2-3 larger blog articles a week. Fingers crossed on that last one. Stay tuned.
As I've mentioned here a few times, I have a book coming out, "Professional Ruby on Rails", available later this month.
If you'd like a sneak peek, Wrox has put some samples online as PDF files. You can also just buy the book.
Chapter 1 -- This sets up the sample project used in the book, and talks about the new REST features in Rails.
Table of Contents -- Take a look at this to see if your favorite topic is covered.
Index -- A more detailed way to see if your favorite topic is covered. Also, maybe you collect indexes...
I'm not sure if the publisher plans on adding more sample content -- if so, I'll update this post.
Labels: books, publishing, rails, ruby
Haven't done an Apple post in a while, just a couple of pregame things I want to get down...
I would not have projected that the remaining three music companies would go DRM free on all other services just to spite Apple. It's probably their smartest business move in a while, at least for some definition of smart, but it's not exactly consumer friendly. It does make the Amazon store pretty compelling though.
For what it's worth, I find the Amazon store pretty good for downloading entire albums, but kind of a pain for just grabbing a bunch of unrelated tracks (the iTunes feature of being able to complete the set at the discounted album price is an advantage).
Tomorrow's keynote: A new iTunes with rental movies seems to be a forgone conclusion. I would probably use this service, assuming the price and terms were convenient, which I'm kind of skeptical about.
iPhone SDK is a probable announcement, but I also wouldn't be surprised if it was delayed a bit -- I think the original claim was for February.
The other hot rumor is some kind of subnotebook or tablet or whatnot. Any of the proposed specs sound cool and I suspect they'll sell a skillion of them.
More tomorrow, when there's actual news.
Labels: apple
First off, several pathfinder blog posts to catch up on...
A two part series on a quick little testing tool that I wrote called testbed. Part 1. Part2.
How to test custom form builders in RSpec. I wrote this in the hope that somebody else won't have to spend two hours Googling this. Coming soon, "Why I stopped using RSpec..."
My contribution to a discussion on duck typing, Save the Duck!
In Rails book news, I'm now proofreading the final PDF versions of the chapters, which is the first time I get to see the pages in the actual final book layout. Which is pretty cool. I'm correcting them for obvious typos, a couple of things that have changed in the last month since I last proofed the chapters, and code layout issues. Should be back to the publisher by Jan. 18th, and they claim to have the book in their warehouse by about Feb. 12th.
You can still buy your copy in advance -- that's an affiliate link, in case you care.
In other books, I just got the wxPython statement for the quarter ending Sep, 2007. About 400 net sales, which was about what I predicted, bring it to a total of around 7200.
I also just got a Jython statement, same quarter, with 160 net sales on it, literally the highest it's been in years (a couple of quarters ago, the net sales were 2). I wonder if the fact that the Jython project has started moving forward again had something to do with that. Anyway, this makes it almost plausible that I might actually get a royalty on that book at some time ever.
Labels: books, pathfinder, publishing, rails, testing
Somebody anonymous asks:
As most of the currently available books cover Rails 1.2, are you providing the code in the books also as Rails 1.2?
The sample example in the book is Rails 2.0, which was Edge Rails when I started, and I just validated all the tests against 2.0.2 last week when I turned in the finished code samples. Where there's a significant change between 1.2 and 2.0, I tried to note it in the text, but I would want to claim that I got all of them.
That said, most of the techniques in the book are applicable to 1.2 applications, although some tweaking may be needed.
There are a number of reasons for this, but mostly it boils down to a) differentiating from books that are already on the shelf and b) giving the book as long a life span as possible. Maintaining two separate versions of the sample application was not feasible given the time constraints.
Ruby version, for what it's worth, is 1.8.6 -- I felt that 1.9 was too experimental to be working with during most of the writing.
Labels: books, publishing, rails
In response to the commenter who asked if there was going to be a beta book.
UPDATE: Clearly I should ask about these things before I post. Jim Minatel from Wrox added the following in comments:
There will be a PDF about six weeks after the print book, meaning end of March or thereabouts. There will also be an Amazon Kindle version, eventually.
Also after 6 weeks, the book will be available via Wrox's online subscription service: http://wrox.books24x7.com.
It won't be on Safari, apparently Wrox books aren't part of the deal there (which I actually was kind of wondering about). Meaning I still haven't placed a book there)
I now return you to my earlier, ill-informed, blather...
Unfortunately, I'm pretty sure the answer is no. Not only doesn't Wrox tend to do that kind of thing, at this point, the book is do to go to press in about two weeks, so the amount of time to get feedback would be sharply limited.
At one point, I was told that sample chapters would be available online before release, but I don't have any information on whether there will be an e-book available. I don't think there will be a direct purchase of a PDF, but it seems as though Wiley just joined the Safari book store, and the book might be available there. I'll try and find out for sure this week.
Labels: books, publishing, rails, ruby
Just got the next version of the book chapters for my examination. I'm not 100% sure exactly where these fit in the process. It looks like they've had a good look-see from a copyeditor, largely for style, clarity, and consistency. (Any lingering "we" sentences seem to have been pruned, for example).
They produced a book-specific style guide, which is a listing of canonical forms for things like plugin names, capitalization of commands or tools and the like. It's kind of interesting to see if I can remember where each name or command was used.
Anyway, I'm supposed to have these turned around by Jan 2, so I'm reasonably sure we're still good to go to press in mid-January, and be released in mid-February.
Labels: books, publishing, rails
Some things I learned about Rails and writing while working on this book:
The great benefit of working on a project like this book is that it enabled me to compress about two years worth of research into Ruby and Rails tools into six months. In my case, this was a great opportunity to really dig into some tools to find that I've only been using a fraction of their power and also really get a sense of how elegant and flexible the tools are.
Ever since I learned how to type back on an actual typewriter in the mid 80s, I've always followed the old-time typographical convention of two spaces following a period. Which was burned into my fingers despite multiple people telling me that was a silly and counterproductive thing to do in the brave new world of proportional fonts. In fact, on the wx book, I actually did a global search and replace for a period followed by two spaces to get the manuscript to correspond with the publisher's expected conventions. Somehow, I managed to break that habit while writing this book.
The hardest stylistic thing for me to get around was avoiding using "we" and "us". In other books and articles, I tend to introduce examples by saying things like "Now we should type the following" or "Let's see how that's implemented". Wiley/Wrox house style, though is to avoid "we" and write the examples as "Now you should type the following" or "I'll show you how that's implemented". Even more preferred is avoiding the pronoun altogether with "Here's how that's implemented" or "type the following". I'm not saying one way is better or worse -- I find the "we" style to be conversational, the Wiley editors clearly disagree. It did take some getting used to, though.
Labels: publishing, rails, ruby
I turned in the last chapter of Author Review on Monday, and Professional Ruby On Rails is now in production. Target release date is still mid-February, final page count will be in the range of 450.
I was able to keep the test-first nature of the code going through nearly all of it, which I'm really happy with.
The table of contents looks something like this (in theory, still subject to change...)
Chapter 1: Setting up a new Rails project using REST
Chapter 2: Using Subversion on a Rails project
Chapter 3: Users, secure logins, email authorization, etc...
Chapter 4: Rake, writing build tasks, and using CruiseControl.rb
Chapter 5: Navigation elements, including menus, tagging, search, and pagination
Chapter 6: Database topics, including legacy databases, relationships, and security
Chapter 7: Testing tools: RCov, RSpec, ways to test views and helpers, and so on.
Chapter 8: Rails and JavaScript. Using Rails and Ajax plugins for some common tasks. RJS. Testing RJS.
Chapter 9: ActiveResource, generating and reading XML data, including RSS feeds
Chapter 10: Time and Space. Managing time and time zones, using Globalize for internationalization
Chapter 11: RMagick, ImageMagick, MiniMagick, and other graphic tools. Gruff and Sparkline charts.
Chapter 12: Deployment with Capistrano and Mongrel
Chapter 13: Performance benchmarking and optimization
Chapter 14: Using Ruby metaprogramming in your Rails application
Chapter 15: Using and creating plugins. Testing plugins and generators
Chapter 16: ERB replacements and JRuby
Appendix A: Things to download
Appendix B: Other tools inspired by or similar to Rails
Labels: publishing, rails
Two things on the Pathfinder blog.
Agile Publishing, on publishing experiences and agile methods.
Live Ruby: Testbed, an attempt to work through a small test and metaprogramming problem live and on the blog.
Enjoy.s
Labels: agile, pathfinder, programming, ruby
Wow, I haven't been here for a while. Sorry about that. Here's the deal...
The Rails book initial draft went in about a week ago, more or less on time. (Well, on time for a slightly revised schedule). My understanding of the current schedule is that the author review phase will continue through November. After that, it goes to production, where I get another crack at revising thing that have changed. It goes to press toward the end of January for publication mid-February. If everything continues smoothly.
I'm pretty happy with how it turned out. I think I said almost everything I was hoping to. The main constraint was the tight schedule -- I'm hoping to get some newer features and plugins in during author review.
Oh, and I had another Pathfinder blog entry a few weeks ago. This one is about the CDBaby Rails/PHP thing that was kind of a flap way back then.
That's all for now, I'll try to get back updating the Twitter feed and get back to writing here and on the Pathfinder blog more regularly... Thanks.
Couple quick things while I have a minute...
Just turned in Chapter 10 (of 16) of the Rails book. Still mostly on schedule for a turn in on October 26, not quite sure what that implies for a print date
As I write this, the wxPython book is at 11 thousand and change on Amazon, the highest I've seen in months, which is probably a fluke. Weirdly Amazon says it's the #15 book on "Website Architecture & Usability", which would be great if it was, you know, actually about website architecture usability...
New article up on the Pathfinder blog. This one is about Rails RJS templates and how to test them. It's partially a book preview, but really only an overlap of subject mat
There's more, but I'll get it when I have a chance.
Labels: pathfinder, publishing, rails, wxpython
Naturally, I did have a thought or two about the new Apple products and the other announcements this week:
While I certainly understand why somebody who had purchased an iPhone early would be annoyed by the price cut, I did find it kind of funny that many of the same analysts who said the iPhone would never sell at its original price were then jumping on Apple for dropping the price.
Every now and then, you'll see an economist writing about how online stores should do more variable pricing -- charging a premium price to customers who are more willing to pay it. This week should be an object lesson in why companies don't do that. Since the people who are willing to pay more are usually your best customers, you run the risk of really ticking them off by making them feel like chumps. Which is generally not considered a good business strategy, I hear.
My read on the price cut is that it comes from three factors:
To keep the price in line with the new iPods, particularly the iPod touch.
Taking advantage of lowered manufacturing costs since they are now making more of the touchscreens.
Really try to drive sales this quarter to take advantage of what Apple perceives as a key moment -- not so much that sales have been disappointing, but that the really are trying to seize the moment.
It could work, although the analogy to Motorola's strategy with the RAZR (gain market share at the expense of profits) is a little disquieting. On the other hand, Apple has a lot of benefits that Moto's cell division didn't, but it's probably not a good idea for me to list them...
As for the products themselves, they seem pretty cool. Like just about everybody, I wish they had merged the two iPod models and combined a hard drive with the touch screen. I need to see what the iPod Touch reviews look like in a couple of weeks. It is annoying that Apple seems to have made video out a proprietary cable.
Labels: apple
Another blog post up on the Pathfinder site. This one is about Agile in general, and features what I think is the World Blog Premiere of the soon to be famous Boring Software Manifesto.
Labels: agile, pathfinder
I was fortunate enough to attend Pragmatic's Rails Edge mini-conference here in Chicago last week. I have two blog posts up on this at Pathfinder, the first is made up of quotes from my notebook, and the second is some general thoughts. Enjoy.
A few things I forgot to put in the last book update:
The Amazon listing has the book at 600 pages. That's almost certainly optimistic. The contract calls for 400-500.
As far as the schedule goes, I'm currently hoping to turn the complete draft in on October 26th, which is about ten days after the original date. The publisher says that pushes publication out to April, six to eight weeks after the original date. I don't quite understand the math, but I suspect that it has to do with the logistics of availability of printing equipment and the like.
Chapter Seven appears to be on track to be delivered this week, which makes the book just a smidge less than halfway done.
My first post to one of Pathfinder's official blogs is up, it's a companion piece to the blog post here on Test-Driven Development, and you can find it here.
Labels: agile, pathfinder, programming
Here's a couple notes on the current status of the Rails book and life in general.
Labels: books, publishing, rails, wxpython
Sorry for the radio silence for the last week or so, but I was waiting to be able to announce this:
Today I started a new job at Pathfinder Associates, as a senior software engineer in charge of Ruby on Rails projects. Needless to say, I'm thrilled to be back in the Web game professionally, and even more thrilled to be working on Rails projects.
Everybody at Pathfinder has been super great so far, and I'm looking forward to doing exciting and fun things.
I'll also be blogging on their web site roughly once a week, either at their Technical Development blog or their Agile/Ajax blog.
If you happen to be one of the maybe five people who read this blog regularly, don't worry, I'll continue to post here with updates about the book and thoughts about programming and technical publishing that wouldn't quite fit on the Pathfinder site.
Labels: programming, ruby
Well, that's a pleasant surprise. Somebody named Stephen has left a comment. And not one of those spam thingies, but some actual relevant questions about tech publishing. Answering them seemed like it might be fun..
1. I noticed there is a pdf version available of your books. Is this something you or the publisher insisted on? Have people shown an interest for this version or are they still overwhelmingly favouring the hard copy? Aren't you or the publisher afraid that the pdf will end up on shady torrents?
2. Technical books typically have a short shelf life and would probably benefit from frequent updates (e.g. incorporation of errata, version updates etc.). Wouldn't a more flexible way of publishing, with small, frequent runs (or even an outright on demand model a-la-Lulu) be better?
Labels: publishing
In the interests of being able to push out quick updates on the book's progress, I've created a Twitter account for the book. You can follow that account on the sidebar of this here blog, or at http://twitter.com/noelrappinbook -- there's also an RSS feed.
Please remember that any and all information about the book is subject to change at whim. Enjoy.
It's been about a week or so of continued radio silence, so I thought I'd pop in with an update.
I'm in the middle of chapter three of the Rails book. I think it's going well, but nobody other then me has read the chapters yet, so that's easy to say. My first milestone date is the end of the month, and four chapters done -- that's about one-quarter of the entire book.
I did want to say a few things about how somebody like me comes to be writing a book like this. I was first contacted with this idea in early February. If you're keeping score, that means that this project spent about five months going from a gleam in an editors eye to a signed contract, and it will spend about five months going from a manuscript to a printed book, but only about four months for me to actually spend on the writing.
Anyway, I have an agency (Studio B) that represents me for technical writing. Sometime in early February, I received an email from them saying that an unnamed major publisher was looking for a writer for a Rails book, and was I interested. I don't know exactly what happened between the agency and the publisher before that, but Studio B is often approached by publishers looking to match an author with a topic.
I was very interested -- I'd been kind of hoping to do a book on Rails for some time. I talked to an editor at Wiley about what kinds of things they were hoping for and put together a proposal. At the same time, they also expressed interest in a proposal on a different topic, and I did that as well. The proposal contains a description of the market for the book, and a description of the outline. The goal is to convince the publisher that the book is worth doing, and that the author is a good person for the job. In this case, since the publisher had initiated the process, making the case for the book was easier than it might otherwise have been.
The publisher liked the proposal. But if you were wondering who pays attention to Amazon reviews, I was specifically asked about the difference between the ratings for the Jython book versus the wxPython book, to reassure them that the higher ratings for the wx book were not solely due to the co-author.
After that, there was some time spent waiting on the two proposals, and which one the publisher wanted to do. At various times, all four possible answers were given (the Rails book, the other book, both, and neither). Eventually, they settled on doing the Rails book. I was informed of that decision in early May, and then my agent and the publisher began negotiating over contract details. I don't think I can really say much about that, but most of the time is not spent on money, but rather on details of which side is responsible for various parts of the finished product beyond the text itself, and who is liable for what if things go wrong (hint: the author is usually liable...) We also settled the length of the book and the schedule.
Oh, and you know the author pictures that appear on the cover of a Wrox book? Rest assured that the pictures are one very well covered topic in the Wiley/Wrox contract.
And that's how a bill becomes a law. I'm enjoying working for Wiley so far, the people I've dealt with have been enthusiastic and helpful. Now, I think this is long enough and I should probably get back to the book itself...
Labels: books, publishing, rails
I'm pleased to be able to say that I've contracted for a new book, Professional Ruby on Rails, scheduled to be available in "early 2008", hopefully February or March. The publisher is Wiley, through the Wrox imprint -- the ones with the red covers and the author's picture on them. Wiley wanted me to be sure and mention that the ISBN number is 9780470223888, so you'll be ready to pre-order it the second that becomes possible.
The imagined reader of the book is somebody who just finished a beginners book on Rails and is suddenly asked to build a complete public web application. The idea is to cover the kinds of topics that nearly every Rails site will deal with -- things like users and security, performance, deployment, navigation, team development. For each topic, I'll be discussing common solutions, existing tools, emerging standards and so on. There will also be a strong focus on writing tests throughout the book. Hopefully, I'll be able to go into more detail as more of the book is written.
I'm excited and scared. This is my first solo book, which both simplifies logistics and leaves me without a co-author to catch me when I'm totally off base. I know Rails pretty well, but there's nothing like facing a skeleton book outline to impress upon you exactly how much you don't yet know. Research has been lots of fun, though -- the Rails online community is fantastic.
Watch this space for more info about the book, the writing process, and anything else related. If you have a question, or if there's a specific feature that you think should be included, please do leave a comment or send me an email.
Labels: publishing, rails
It's not exactly part five of the four part GWT series, but it is closely related. Please check out my newest article on IBM Developerworks: Simplify Ajax development using Cypal Studio for GWT.
I actually wrote this a few months ago, when the tool was still called Googlipse, and the final publication was delayed a bit while I rechecked all the code and instructions, and changed the name throughout.
One note: it seems as though the GWT 1.4 release candidates do not currently work with Cypal -- you have to use the GWT 1.3 version.
Enjoy.
Labels: GWT, publishing