Archive for category Books & E-books

Ready…set…d’oh

The online version of our SaaS course officially starts this coming Monday, 20-Feb-2012, although we “soft launched” this week and are putting up some of the introductory videos now.

We’ve been busily debugging the homeworks, autograder and other technology at Berkeley, hoping it won’t melt down when lots more students take it.

But surprisingly, those aren’t the things that made my heart skip a few beats the last couple of weeks.

It turns out that when you have 60,000 people enrolled, if 0.1% of them experience a problem, you’ll immediately get 60 identical emails.  And these people are resourceful: they simply Googled the names of the instructors and sent email to our personal email accounts at Berkeley.  Here are some problems those people had in the last couple of weeks.

Fun event #1: Kindle ebook disappears from Amazon.com

About 2 weeks ago, the Kindle ebook mysteriously disappeared from the Kindle store, showing “currently unavailable” if you visited its page.

  • We received no email warning before this happened.
  • No further explanation was provided on the Author/Publisher dashboard as to why it occurred.  In fact, according to the dashboard, our ebook was “live” and available for sale.
  • There was no way to appeal except by sending email via the Amazon KDP “author support” form; we had done this in the past and it takes 3-4 days to get a response to such requests.  No phone number is provided for author support.  (In contrast, CreateSpace, the print-on-demand company handling the print version that ironically is owned by Amazon now, has excellent telephone support.)
  • Desperate, we used our academic connections to the highest levels of Amazon to get this looked at.
  • We learned that there was a formatting issue with our ebook, and apparently when enough customers complain about that, the ebook is pulled.  Amazon’s system was supposed to have sent us an email notification of the problem to give us a chance to fix it, but due to a bug on their end, that email never got sent.
  • Once the escalation occurred, everything was resolved within a day; but if we hadn’t had higher-up contacts at Amazon, we would have been screwed.

Fun event #2: saasbook.info mysteriously shut down for “terms of service violations”

Last week the book’s website, hosted on Google Sites, was mysteriously shut off by Google “for terms of service violations”.  This was puzzling and panicking, since we had just announced to 57,000 students that they could start perusing the book, and this site was where they were directed to go to get it.  Plus, having the students see “This site has been taken down for TOS violations” made it sound like we were fronting pornography or running a link redirector or something equally questionable.

The scenario was eerily similar to the Amazon problem:

  • We received no email warning before this happened.
  • No further explanation was provided on our Google Sites dashboard as to why it occurred.
  • There was no way to appeal (except to click a single button that said “Appeal” with no other explanation).
  • Desperate, we used our academic connections to the highest levels of Google to get this looked at.
  • We learned that our site had been mistakenly manually misclassified as spam—which was puzzling for any number of reasons).
  • Once the escalation occurred, everything was resolved within a day; but if we hadn’t had higher-up contacts at Google, we would have been screwed.

Fun event #3: courseware VM can’t be downloaded or uploaded

We had numerous complaints from people unable to download the courseware VM via our AppEngine front end, and our TA’s were having trouble uploading the image file. Apparently, there were two problems.  One is that Google’s blobstore sometimes sporadically throws an error that doesn’t occur till the end of the upload, i.e. after spending 10 minutes uploading a 1.7GB file.  The error occurs inside one of the wrappers for the BlobStore API, and doesn’t get logged or rescued, so even though we have tech support at Google for this, there’s no way to show them what error occurred.  We ultimately transmitted the VM image file to a colleague at Google who was able to upload it via Google’s intranet.  If we hadn’t had this higher-up contact at Google, we would have been screwed.  (See a pattern yet?)

The other problem seems to occur for people whose Internet service is anemic.  The downloads get throttled and take so long that their ISP’s time out their TCP connection. We’re going to recommend to these folks that they use a download manager; one of the users discovered by accident that deeplinking to the AppEngine app works just fine.

We’re also going to torrent the file, and we’ve  provided an alternative to downloading a VM image—we created an Amazon Machine Image that can be used on EC2.  (A shout out to Yarko Tymciurak in the Chicago area who got us started on this!)  However, for students who don’t want to pay for EC2 usage, the free “micro” tier is just barely adequate to do this work—the CPU pins right away when running tests or builds.

Fun event #4: Kindle ebook updating doesn’t quite work the way we were told

An early and influential factor in our decision to focus heavily on an ebook was that we were assured that if we made significant changes to the ebook, we’d be able to quickly push them out to students by notifying Kindle author support, which would then notify purchasers of the ebook that they had the option of re-downloading a newer version.

This is partly true.  We tried this process last week, since we did in fact fix a bunch of typos and formatting issues reported during the first 4 weeks of the Berkeley course.  It took 3 days for us to get a response from Kindle author support.  The response was that we should submit detailed information about what changes were made, and “within 2 weeks” they’d make a decision of how and whether to handle our request to push the update.  So much for instant update.  They seemed to imply, though, that there was a way they could enable students to request a re-download if we notified students that one was available, so we’re going to try to go that route.  I hope this works, since we expect at least one more rev of the ebook by the end of the online course and then another before the planned summer offering of the online course.

Fun event #5: our Kindle book price is apparently just a suggested price

We had various ebook purchasers complain that although our own Web site says the ebook costs US$9.99, Amazon was displaying a higher price for them, as much as 27% higher in some cases.

It turns out that Amazon can, at their discretion, charge more for your ebook in certain territories “where their operating costs are higher”.  So it was with chagrin that we read these emails, given that we had agonized over the price a fair amount and ultimately decided to keep it below $10.

It also turns out that Amazon can, at their discretion, charge less for your ebook if they’re doing it to price-match a competitor or for other promotional purposes.

But things are rolling along anyway

But the news isn’t all bad.  Kindle ebooks are outselling print books by more than 4 to 1.  We’ve even gotten complaints that people in Indonesia can’t buy the ebook (which is unfortunate, but it’s humbling that we have followers that far away).

We can’t tell how many people are buying both the print book and ebook, since we haven’t been able to work out bundling. (Though we are working on it.)  We also can’t tell how many additional people, if any, have downloaded the free Kindle sample (which roughly corresponds to the first chapter of the book, therefore the first week of class) and may be considering buying the full version later.

We have a very  nice iBooks version about to come out with interactive self-assessment questions and screencasts built right in, and we will probably do a Nook/ePub version for people with non-Kindle ebook devices (though that’s a lower priority).

Overall, it’s been a major learning experience so far trying to reach this many people.  Next week comes the real test…

Dry-running homeworks & quizzes for saas-class.org

When we signed up to offer the free saas-class.org, we decided (wisely, in retrospect) to pipeline it to start a few weeks after the on-campus course.

The rationale was that we’d have a chance to field-test the homeworks and quizzes on real students, debug the questions and answers, and fix them up in time for the online class.

We just got through grading the first programming homework using the autograder.  Tellingly, students made a number of (understandable) errors that we hadn’t thought of, so we had to change our specfiles to give partial credit for cases where some of these unforeseen errors were made.  (The autograder runs a bunch of specs on each submission, possibly with different weights toward the overall score, and reports the overall score and which specs failed.)

We also found, not surprisingly, quiz questions that we thought were unambiguous but actually needed fixing.

And of course, we commonly make minor errors in lecture slides that are corrected after lecture, or add clarifications to lecture slides based on questions received in class.

So the bottom line is the online students will benefit from having had the lectures, homeworks and quizzes pre-tested by a talented (and patient!) group of students on campus.  The students of CS 169 Spring 2012 say “you’re welcome.”

Rethinking the format of a software engineering textbook

Why did Dave Patterson and I decide in April 2011 to write a textbook for our “SaaS-flavored” CS169?  Aren’t there a ton of software engineering textbooks out there already?  And aren’t there a ton of practitioner-targeted books for teaching Rails, Agile, Cucumber, etc.?
Among the textbooks, precious few focus on Agile, mostly treating it as a side topic, but we think Agile is a great fit for the classroom—1 or 2 week iterations doing complete “mini-lifecycles” of a part of a software system.  The ones that teach Agile use Java (presumably because so many universities are JavaSchools), whose viscosity outweighs the “lightweight process” advantage Agile is supposed to confer.  Our view is that learning a new language and tools is worthwhile  if it furthers the educational goal of teaching how to build long-lasting maintainable software with maximum productivity.   (I’m one of the contrarians who is still conflicted about the elimination of the Scheme version of the Abelson & Sussman SICP course, since Scheme is arguably the best language for doing what SICP tries to do.)
Also, despite the fact that the #1 request from our industrial colleagues was “teach students how to work with  legacy code,” most software engineering textbooks we looked at barely mention this topic, with a couple of notable exceptions that focus on using existing open-source software as a teaching vehicle.  (For the record, I think that’s a great idea, but not for our course: while OSS affords opportunities for teaching about legacy and refactoring, it often lives in ecosystems whose testing environments are less than delightful to use, e.g. C or C++ code.)
There’s hundreds of practitioner books on Agile, Rails, RSpec, Cucumber, Git, refactoring in Ruby, design patterns in Ruby & Rails, ad nauseam—and that’s the problem.  We probably perused over 10,000 pages of text in those books in preparing the material for our book.  There is no single narrative that weaves the topics together in a way that makes sense to engineers new to SaaS+Agile+Rails, puts them in the context of software engineering history and best practices, and does it in an amount of text that is realistic for undergrads to consume during a 10-15 week course.
Once we decided to write the book, the next easy decision was to focus on ebooks.  Ebooks aren’t the future of textbooks, they’re the present.  So we knew from day one that we needed an authoring environment that would allow us to derive multiple ebook formats plus a dead-tree version from the same source files.  (I’ll probably release this environment as open source once it’s cleaned up; it’s LaTeX, tex4ht, and a bunch of Ruby scripts.)
But since today’s ebooks are generally inferior versions of their printed counterparts, we came up with a whole list of enhancements for what we thought an ebook could be, inspired in part by Al Gore’s Our Choice ebook for the Apple iPad.  Many (but not all) of the features we want are likely to be present in the upcoming iBooks edition of our textbook.  And as I described in another post, ebooks can be updated frequently and errata corrections pushed out to students practically on-demand, and delivering an ebook to an international student is a lot less daunting than delivering physical books.
Ebook aside, though, it’s worth describing a few of the features that even transfer over to the print version, kind of, because I think we’re learning how books of all formats can be better integrated with online materials.
  • Every code example in the textbook, and many additional ones that are part of the lectures or the homeworks, are up on Pastebin.  So even students who doggedly refuse to learn an editor with syntax highlighting can see what they’re missing, plus Pastebin provides 1-click copy-and-paste so they can try the code themselves.  We created automation to keep the Pastebin links in sync with the URLs that appear in the book and ebook whenever the examples are updated and/or the book is revved.
  • Many book chapters include screencasts to show how to use specific tools.  Anyone can watch these for free on Vimeo (albeit out of context), and we’ll be doing an iBooks version of the book in which the screencasts are embedded right into the ebook.
  • There’s no glossary.  With Wikipedia, who needs one?  Instead, important terms in the book are linked to the corresponding Wikipedia entries.  (In the print book, they appear as URIs in the endnotes of each chapter, but in the Kindle book, the links are live as long as you’re connected to the Internet).
  • At the moment there’s no index.  This may be a hardship if you only own the print version, but the electronic version is searchable.  We anticipate it will be common for print book owners to also own the electronic version (though sadly there’s no way for us to bundle the two purchases, since the print book is created and distributed by the CreateSpace print-on-demand shop and the Kindle ebook is distributed by Amazon, which ironically owns CreateSpace).
  • Separately from term definitions via Wikipedia, the book includes various links to interesting news articles, YouTube videos, and other online materials related to the text.  If you’re reading the ebook on a device like the iPad or Kindle Fire, you can just click on the videos and watch them.  The print book has URIs that you have to type in manually.

So that’s what we’ve been doing and why.  The alpha edition, with some missing chapters, is now available (January 2012) at saasbook.info.  By March there will be some minor revisions to it and by Fall we hope to have a beta edition that is content-complete.

Scaling a SaaS course to 50K+: Use the Web, Luke

Berkeley, like many schools, has departmentally-owned computer clusters so students can get temporary shell accounts for courses that have a software component or require the use of courseware.

Fine for the 108 students in CS 169 this semester.  But how can we provide over 50,000 students the necessary software infrastructure (and our in-progress textbook) to participate in the class?

Simple answer—we don’t.  The on-campus class has been relying more and more on existing commercial SaaS tools and less on Berkeley’s own IT infrastructure, in part because we thought it was important for students to use the same services and tools they’d use if they were full-time developers.  The transition is now complete:

  • We provide a VirtualBox-compatible VM image with all courseware (Ubuntu+ Ruby+ Rails+ gems+ ….) Thanks to Maggie Johnson for offering to have Google underwrite the nontrivial bandwidth charges for distributing a 1.5GB VM image to over 50,000 people via Google AppEngine.
  • More than half the students signed up at saas-class.org are non-USA.  The print version of our book is beyond the reach of many of these, both because of shipping and because of its $20 price (low for a textbook, high for India).  Fortunately we had always planned on doing a Kindle edition anyway, which is priced at $9.99 (for now), can be obtained instantaneously, and can be updated on demand (we’re planning a new Kindle release just before the online course begins, and probably one more before the Beta Edition comes out in Fall 2012).
  • Every student will open a free Heroku account for deploying their projects, so the autograders (and someday a Saucelabs-based grader, I hope) can check deployed code running on a public server.  Coursera apparently uses EC2 to run many instances of the autograder.
  • For code that doesn’t get deployed, we’re developing an autograder that runs rspec, reek, flay and flog, so students’ code is evaluated for both correctness and good coding style.  The feedback may not be as deep as you’d get from an experienced TA looking over your shoulder, but the approach scales way better.
  • Every student opens a Github account.  Since we need to protect homeworks against plagiarism, students need private repos for those.  The Github free account doesn’t allow that, but we’ve been working with Github to offer a free time-limited Micro account to the online students (many of whom are not traditional full-time students and so don’t qualify for Github’s free student micro plan).  Shout out to Chris Wanstrath and Kami Lott for making that happen!

Whew!  That’s the list so far.  In another post I’ll write up what we did in the textbook both to embrace the coming ebook tsunami and to make the book more interactive and connected to other online course materials, even if you get the dead-tree version.

Meaningful feedback on 50,000 programming assigments?

Previously I mentioned that we’re offering the first five weeks of Berkeley’s CS169 course through the Coursera education portal (the startup formed to commercialize Andrew Ng and Daphne Koller’s online education system).

I had already been thinking of autograding technology even for the on-campus course, since enrollment has grown from a low of about 35 when I first took over the course to a high of 108 this semester, and we continue to have chronic TA shortages.  For 50,000+ students, there’s no choice but to automate everything.

Given the apprenticeship aspect of learning to write good code, can we really give automated feedback on programming assignments in a meaningful way, beyond just testing whether the code runs and computes the right answer?

Coursera already had autograding for multiple-choice and short-answer (match a regexp) questions, but we wanted to be able to autograde programming assignments too.  To that end, Coursera created an API that allows an autograder to run arbitrary code to evaluate student homework submissions.  We’ve used that ability to create a tool that runs RSpec in a sandbox, so that we can do an automatic but detailed evaluation of student code.  For example, if an assignment specifically calls for them to use map() rather than writing a loop to express an operation on a collection, RSpec allows writing fine-grained tests that would check this.

Our goal is to extend the tool to also run reek, which looks for code smells, flog, which estimates cyclomatic complexity, and flay, which looks for duplicated code across many , so that we can provide automated feedback on coding style and best practices as well as code correctness.  We also expect to hook up SimpleCov or cover_me to give students feedback on their code coverage.  We’ll release this tool on Github as soon as it’s been field-tested.

Since we teach BDD, I’m also looking for a way to automatically run integration tests against students’ homeworks, which they deploy on Heroku.  So my next adventure is to get in touch with someone at Saucelabs and see what we can work out.

Anyone want to introduce me?

CS 169 x 50,000 == ?

Along with Dave Patterson and Koushik Sen, I’m teaching CS 169 Software Engineering at Berkeley this spring (Jan-May 2012).

As with previous times I’ve taught the class, students will learn fundamental SW engineering techniques in the context of using agile methods to develop SaaS using Rails.  (High buzzword quotient for that sentence.)  This is the fifth time we’ve done a SaaS-oriented class and the second time that the official CS 169 offering has been taught this way, and we’ve been happy with the results.

But some major things are new this time around.  First, Dave and I are writing a textbook that we hope will allow others to teach this course.  The alpha edition, which is missing some chapters, is available now in print and Kindle formats (I’ll blog later about our experience self-publishing it).  Writing the book has also helped better organize the lecture material.

Second, Github and Google join the list of companies who are being super-cool in connecting the students in the course with great services/products at their own expense, and/or providing great guest speakers to come talk about life in the real SW world.  (Current list already included Pivotal Labs and Heroku.)

Third and scariest, Andrew Ng at Stanford persudaded us to offer the first 5 weeks of the course using the online-learning infrastructure he and Daphne Koller pioneered last year.  Anyone can sign up for free at saas-class.org —and so far over 53,000 people have!  Holy s**t.  Even with 90% attrition, 5,300 people would be more than I’ve cumulatively taught in my whole life.

Basically, we’ve refactored our 70-minute on-campus lectures into 6-7 ten-minute chunks each, which Andrew recommended as a near-optimal quantum.  In their system, each video chunk is supposed to include one or two self-assessment questions (multiple choice) that the student must answer correctly before proceeding, kind of like when you go to traffic school online to get a ticket wiped from your record.  I had already been getting good results using peer instruction sporadically in lecture, so we just systematized it to include a peer instruction question at the end of every chunk of lecture material; these same questions become the in-video self-assessment questions.

At this scale, everything has to be optimized for automatic grading and evaluation.  (Although the on-campus enrollment for CS 169 right now is 108, which is about triple its typical size, so I had already been thinking about auto-grading and design-for-gradability even before the online course happened.)  I’ll write more about that shortly.  But meanwhile, if you’re off-campus and interested, go ahead and sign up—hey, what’s one more?

Kindle Fire: probably good enough

Since Dave Patterson and I have signed up to offer the first 5 weeks of Berkeley’s CS169 Software Engineering class as  a free online course using Stanford’s ClassX, I feel the pressure ratcheted up to finish the textbook we’ve been preparing for use with this course.

We’ve always intended to deliver it primarily as an e-book, and while we have a very promising prototype of a highly interactive tablet version, we recognize that in the near term the mass market for e-books will be the Kindle format.

We‘ve been assuming many (most?) people will use the free Kindle Cloud Reader since it displays color and can take advantage of a larger screen than the Kindle hardware devices.  So we were excited when the Kindle Fire was announced—a color e-book reader that doubles as an Android tablet at an attractive price point ($199) might be something that gets real student uptake.  We ordered a couple to evaluate internally.

First, people are invariably going to compare it to the iPad.  I’d say there’s no comparison.  Besides Fire’s smaller size, its user experience is downright clunky compared to iOS.  (I’m new to Android, but if this is representative of the gap between iOS and Android, they’re two different products.)  Using the tablet is far from intuitive.  Not all of my books appear under the Books tab; some appear only under the Home tab.  And the Home tab is different from the Apps tab.  In trying to review the apps I have, there’s a bunch on there I don’t even understand (hidden apps that came with the device but aren’t visible on the Apps screen), and I can’t imagine how a nontechnical user could figure out what to do with them.  Frequently, dialogs will pop up that require typing, yet the on-screen blind-up keyboard will cover some of the fields, so that it’s impossible to see what you’re typing except by repeatedly hiding and re-showing the keyboard.  There are ever-present buttons along the bottom of the screen for Back, Home, and Search, but these buttons don’t work the same way (or at all) in every app.  For example, I downloaded a YouTube viewer app and was puzzled when the Search button didn’t present a search bar. Turns out the app had its own Search function that doesn’t use the Android-standard everpresent search button.  Big lose.

I didn’t try the media-consumption features (watching TV/movies, downloading songs, etc.), but they’ve gotten only lukewarm reviews from others.

The touch interface is flawed.  The multitouch hardware is fine, and the build quality of the device feels solid, but the sensitivity to actual gestures is badly off.  It’s nearly impossible to open a book from the “carousel view” without flipping past it.  Page turns are oversensitive, and you can’t hold the device in just one hand because every part of the screen responds to touch and you end up turning pages without meaning to.  (The original Kindle had this problem with button placement.  It’s amazing they didn’t learn from that experience.)  The page turning animation is jerky rather than smooth, and if you balk partway through the page-turning gesture, it’s quite hard to detect whether the page was actually turned or not except by actually re-parsing the words—big lose.

So it’s not an iPad—is it a better Kindle?  Maybe.  I have 3 other black-and-white Kindles (1st gen, DX, and graphite-colored 3rd gen), and my position has always been that those devices are one-trick ponies, but it’s a really good trick.  The 3G in particular is ultralight, can be read in bright sunlight, can be easily held in one hand, is no strain on the eyes, has a battery that lasts for days or weeks, etc.  In contrast, the Fire is too bright to read in a dark bedroom, even at the lowest brightness setting; eyestrain sets in quickly.  You can’t hold it in one hand, not only because of the misdesigned UI that results in gratuitous page turns, but because it’s just too heavy to hold comfortably despite its small size.  Its battery life is a few hours—by the end of my playing around with it on the first day for a couple of hours, it was down to 60% charge.  It seems to combine the disadvantages of the iPad with the disadvantages of a smaller screen (about 7”, or only slightly larger than the 6” screen on the 3G).

What about the rendering of actual Kindle books on the Fire?  It seems to be identical to the rendering in Kindle Cloud Reader, which isn’t great news since the layout possibilities are extremely limited.  (They would be on a small screen anyway, even with more powerful layout facilities.)  The Kindle Format 8 is supposed to improve on this, but I’ve been on their mailinglist since the preannounce and nothing has been announced to developers on what new formatting is possible in KF8.  For the moment, though, the device I’ll always throw in my bag is still the less-expensive black & white Kindle 3G.

Having said all that, the Fire will probably sell well.  Android phones have sold well even though the user experience is clunky compared to the iPhone.  Windows killed Apple on the desktop even though its user experience is a far cry from Mac OS X (or for that matter Mac OS 1 through 9).  Both sold because they were cheaper and because they looked good enough from afar, until you try to really get intimate with them.  As some technology columnist recently wrote, the Fire doesn’t have to be better than the iPad—it just has to be good enough.

I miss Steve Jobs.

ebooks, ebooks everywhere

With the color Kindle Fire tablet just announced, and some new Kindle Touch devices, the Kindle is now a bona fide product family, with entry-level devices under $100.

Various large libraries, including the New York Public Library and my local library the SFPL, are starting to allow loans of Kindle (and ePub) ebooks.

I used to think ebooks were the future, but actually, a better statement is that (most) print books are the soon-to-be-past.  I still appreciate the artisanal craft represented in some print books, though most exhibit little to none; but in terms of getting to the content, ebooks are the way to go.

I’m sufficiently convinced of this that the software engineering textbook being created by Dave Patterson and me will be available primarily as an ebook, with versions optimized for iOS, Android, and Kindle.  There will be a print version, but the e-versions will be enriched with reader-friendly features you can’t do in a print format.  And our goal is to have the ebook version rationally priced relative to the print version, and both versions much less expensive than a typical textbook.

Stay tuned.

Summer Reading

I always look forward to this time of year, even though it’s inevitably a sprint to get to it.  I’m preparing for our annual 2-week family vacation in Cancun (with some diving in Cozumel thrown in), the one vacation per year on which I don’t bring my laptop. What I do bring is lots to read — for me it’s a deep garbage collection and intellectual replenishment.  It’s not unusual for me to finish 8 to 12 books during the two weeks. So I invest a fair amount of time researching what to read and loading up my Kindle—since I bought it about 3 years ago, my policy is not to bring any paper books or documents on a leisure trip.
Here’s what’s on the Kindle for this trip:
Nonfiction – history: I grew up in New York and have always been fascinated with its history.  So I’ll be reading 97 Orchard, about five families who occupied the tenement building at that address on New York’s Lower East Side, which has since been turned into the Tenement Museum.  The book focuses on how immigrants who otherwise plunged into assimilating themselves into American culture retained their native cooking for comfort and identity, and includes authentic period recipes that might have been prepared by those families.  I’ll also be reading Twilight at the World of Tomorrow, a dramatization of the people and events that led to (and through) the 1939 World’s Fair in Flushing Meadow Park, which until then had been an ash dump, and  the juxtaposition of the culture and attempted optimism of the Fair against the gloom of the Depression and the uncertainy of the brewing Second World War (during the Fair’s 18 months, several countries’ pavilions closed down as those countries were occupied by the Nazis).
More Nonfiction – evolutionary psychology: I have always enjoyed evolutionary neuropsychology when written for the popular press in books like Music, The Brain & Ecstasy (and its lighterweight cousin This Is Your Brain on Music) and the work of philosopher Dan Dennett.  I recently finished (on the recommendation of a colleague) What Science Offers the Humanities, a repudiation of the current “standard social science model” prevalent in the humanities according to which humans’ mental development can only be discussed and evaluated in terms of culture and nurture and not in any biological terms, which are taken to be arbitrary and without defensible basis.  The book makes a compelling argument against that stance, and I’ll be reading Steven Pinker’s The Blank Slate: The Modern Denial of Human Nature, which seems to take the argument further.  In a similar but lighter spirit, I’ll be reading How We Decide (recommended by my sister-in-law and others) and maybe Nudge (the one about making better decisions, not the one about God something-or-other).
More nonfiction – American societal and cultural studies: I’m considering The Collapse of Complex Societies (which seems from the sample to be more tightly written than Jared Diamond’s Collapse: How Societies Choose to Fail or Succeed, which I found disappointingly hard to follow after the incredibly well written Guns, Germs & Steel), and Bowling Alone, a book about how community organizations across America are dying (more specifically, their members are dying, and new younger ones aren’t signing up) and the resulting loss of social capital—as someone who helps run a community theater that relies heavily on volunteers, this seems relevant.  (Update: Bowling Alone was written in 2001; evidently the same author, Robert Putnam, came out with a book last year called Better Together: Restoring the American Community.  We’ll see if I like the original enough to read the sequel.)
Fiction:  I’ve been rereading (for about the 3rd time now) Foucault’s Pendulum, the granddaddy of all conspiracy novels, which is to Dan Brown as the works of Tolkien are to the Harry Potter books.  If I don’t finish my dog-eared paperback before leaving, I’ll have to download it.
Besides the historico-conspiracy genre, which used to be reliably good until Dan Brown’s success spawned a myriad of “me too” books, I’ve always liked hard SF, and recently discovered Charles Stross and Richard K. Morgan.  I’m not as enthusiastic about Stross’s “Laundry Files” series as his previous work, but nonetheless I’ll be giving The Fuller Memorandum a whirl.  I also found a number of titles for under a dollar in the Kindle Store that sounded like they might at least be promising as hard SF, including David Derrico’s Right Ascension and various intriguing-sounding novellas by Christian Cantrell.  Hey, for under a dollar each, I’ll give them a try!  Maybe the next Isaac Asimov, Connie Willis or Arthur C. Clarke will get her/his start this way… Also in the “try it for under a buck” category, I’m also checking out Ancient Awakening by Matthew Bryan Laube, who’s been compared to H.P. Lovecraft in reader reviews.
Geek Fiction: Fatal System Error: The Hunt for the New Crime Lords Who Are Bringing Down the Internet is a based-on-true-stories account of the underground economy around denial-of-service and similar attacks, the latest frontier for organized crime.  The beginning grabbed me, so I’ll be reading that.  I got that recommendation from the Bookworm column in ;login, the monthly magazine of the USENIX Association, which also recommended The Myths of Security, which seemed really half-baked based on the intro and largely a marketing piece for McAfee.
Nonfiction: I have a strong interest in medieval history, and a somewhat weaker interest in classical history, so I’m checking out Susan Wise Bauer’s History of the Medieval World and History of the Ancient World.  I haven’t committed to buying them yet, but based on the samples, they are dense, no-nonsense “here’s what happened” narratives — perhaps not of huge interest to an historian who knows the periods well, but maybe suitable for a nonexpert like me who needs a good big-picture overview to contextualize the more detailed works, like Jean de Joinville’s first-person commentary Chronicles of the Crusades, which has been in the public domain for hundreds of years and is also going with me.
Speaking of the public domain, I’m also bringing William Lewis Manly’s classic travel journal Death Valley in ‘49 (I’m almost through my second rereading), the complete works of Mark Twain (I like to jump around), and probably the complete works of Shakespeare.
It’s a lot of fun to load up for a trip like this. Those of you family members who have Kindle devices registered to my account…maybe you’ll enjoy the above, in addition to the 60 or so books I’ve already purchased.
See you in Cancun!

Why Borders and other big-book retail bookstores are fcuked

Argh.

So I wanted to buy a specific title for a friend (The Soul of a New Machine, in fact) who would be in town in just 2 days.  Not wanting to pay 2-day Amazon shipping, I went online to Borders and “reserved” the book at a local Borders outlet.

When I went to pickup the book, there was nobody at the customer service desk.  While waiting for someone to show up there, I went over to the Search terminal to see if they had a copy of the DVD Triumph of the Nerds.  Searching for ‘triumph of the nerds’ returned over 13,000 hits (even when narrowed to Movies & TV).  Searching for the whole phrase returned 0 hits.  When the customer service person finally arrived (I had to go to the cashier and ask to have someone sent there), and told me that the book I had reserved would be at the cashier station, I asked him to help me with the search.  He tried without success and asked me whether I was sure the item was still available for sale.  (It is.)  I then asked if he could direct me to the section where I might find other books on the history of computers and technology.  He needed an example title to answer the question, so I suggested Insanely Great.  He did some unsuccessful searches and asked me whether I was sure the item was still available for sale.  (It’s in its second printing.)

I went home and ordered all the items from Amazon.  I’ll have to wait a couple days to get them, but (a) the search function found every item as a top hit on the first search attempt, and (b) I am paying less, even without considering sales tax.

Borders is fcuked, and probably so are the other big box stores. From now on it’s my neighborhood independent bookstore when possible, and Amazon otherwise.