Tuesday, February 19, 2008

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

Monday, February 18, 2008

State of the Blog

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:

  • This blog
  • Entries on the Pathfinder Agile Ajax Blog.
  • A private blog where I review books and the like.
  • Two Twitter accounts (one for book updates, one for me)
  • Two del.icio.us tags published to blog sidebars.

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 private blog will no longer be updated. Since it is actually private, I'm pretty much the only person this affects.
  • Some of the topics that I would have posted there will now come here. I'll try to keep a technical focus (or at least a geekfan focus), but I'll be defining that somewhat more broadly.
  • However, issues that fall under Pathfinder's purview (meaning Ruby and Agile topics) will be posted there. I'll continue to add links to those articles on this blog.
  • The twitter account with book updates will no longer be updated -- my "real" account is now the sidebar on this blog.
  • The old del.iciou.us sidebar is also gone. That content will go into the twitter stream.

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.

Monday, February 11, 2008

Hey, Free Book Samples!

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.

Monday, January 14, 2008

Pre Macworld stuff

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.

Sunday, January 13, 2008

Publication And Other Updates

First off, several pathfinder blog posts to catch up on...

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.

Thursday, January 03, 2008

Versions: Another promotion from the comments

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.

Sunday, December 30, 2007

Professional Rails Online?

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.

Tuesday, December 25, 2007

Another Publication Update

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.

Sunday, December 09, 2007

Things I Learned

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.

Thursday, November 29, 2007

We're In Production Now...

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

Two Pathfinder Blog Posts

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

Saturday, November 10, 2007

Heads Up

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.

Monday, September 24, 2007

Quick Book Update

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.

Monday, September 10, 2007

Apple Fanboy Stuff

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:

    1. To keep the price in line with the new iPods, particularly the iPod touch.

    2. Taking advantage of lowered manufacturing costs since they are now making more of the touchscreens.

    3. 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.

Saturday, September 08, 2007

Boring Software Manifesto

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.

Enjoy.

Thursday, August 30, 2007

The Rails Edge

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.

Pro Rails Book Related Things

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.

Monday, August 20, 2007

More On Test-Driven Development

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.

Sunday, August 19, 2007

Book Update

Here's a couple notes on the current status of the Rails book and life in general.

  • The Rails book is presently just about 30% done -- first payment triggered (yay!). I'm reasonably happy about it so far, though definitely too close to it at the moment to have a clear sense of its quality. I do like the way the test integration is working out -- it seems to help my descriptions of functionality to have the tests there.


  • The book is now available for preorder on Amazon. Here's the 10 print "hello" affiliate link, which will conveniently linger in the sidebar of this blog forever.


  • I don't think I ever mentioned this, but the last results I got on the wxPython book (for Q1 2007), showed that sales were starting to slump. Although the data was weird -- US sales were down to about 1/3 of the previous quarter, and US returns were way up, such that net sales were almost zero. At the same time, international sales were way up, with the total affect being a drop to about 1/2 or slightly less from the previous quarter. We've now passed the 6700 mark in total sales.


  • Apple fanboy stuff: One of the nice features of my new job is that my work computer is now a MacBook Pro. Very nice machine, well designed, very fast. Battery life is decent. Lots of the little design details you've come to expect -- I particularly like the magnetic power cord. Now if only I could use the thing without wearing oven mitts, I think I'd be in business.

Monday, August 13, 2007

And Now, A Special Announcement

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.

Friday, July 27, 2007

A Customer!

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?


I honestly don't remember an explicit decision being made over whether or not an e-book edition would exist. As far back as I can remember, they wanted one and we wanted one, so no problem. I'd imagine that the publisher's wishes would override the author's in this respect if it came down to it.

I don't have the Manning contract for the wxPython book in front of me, but the Wiley contract for the Pro Rails book says "the Publisher shall publish the Work in such style and manner as the Publisher deems appropriate", and I think the Manning contract had similar language.

I'm in favor of offering e-books because they are easy to store, easy to update, and easy to search. From the publisher's standpoint, they have a relatively low cost to produce and people want to buy them, so it's a potentially large win.

As of the most recent statement I have on the wxPython book, e-book sales are just under 10% of total sales. I suspect that some publishers have much higher percentages -- Pragmatic, for example, really promotes their e-book sales. The Jython book is not available for sale in an e-book form, not even on O'Reilly's Safari Bookshelf. Which is weird, because they (at least used to) offer a competitors Jython book on there...

While I'm on the subject, I don't know right now if the Pro Rails book will be available via pdf. Wrox doesn't seem to do pdf much, and I don't know if they plan on starting.

Funny you should mention torrents, because I relatively recently got an email from Manning that they were trying to get the book removed from a torrent site. So I know it is, or at least has been, out there. I'd say Manning takes this kind of thing pretty seriously, but it obviously hasn't stopped them from providing pdf files. So far, I haven't seen any evidence that this kind of thing is affecting sales, and I'd be very surprised if such evidence presents itself. (Standard Disclaimer -- I don't speak for Manning, and I don't speak for Robin Dunn. If you broadcast a torrent of the book Manning will try and stop you.)

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?


Yes, I could see where having small, frequent updates could be better for the book reader -- this is essentially what Pragmatic does with their e-books.

However, the infrastructure and overhead for doing this in printed books would be pretty significant, even with some kind of publish on demand model. At the very least, the cost to print a copy would go up, probably dramatically. Then you have the secondary problems of managing which errata went into which revision, continually updating the layout when needed, dealing with people who want printed books upgraded. The headaches get big quickly.

That said, something along that model is inevitable, at least for e-books. Eventually, other publishers will have processes as streamlined for this kind of thing as Pragmatic seems to.

This concludes todays episode of Ask A Guy Who Once Wrote A Book. Tune in next time. I hope there's a next time...

Thursday, July 19, 2007

A Little Birdie Told Me

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.

Book Updates

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...

Tuesday, July 10, 2007

Announcing: Professional Ruby on 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.

Wednesday, June 20, 2007

Another IBM Article

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.