<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Armando Fox &#187; Blogroll</title>
	<atom:link href="http://www.armandofox.com/geek/category/blogroll/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.armandofox.com/geek</link>
	<description>A breadth-first traversal of life</description>
	<lastBuildDate>Fri, 18 May 2012 15:54:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>About UC Berkeley CS169 &#8220;Software Engineering&#8221;</title>
		<link>http://www.armandofox.com/geek/2012/05/about-uc-berkeley-cs169-software-engineering/</link>
		<comments>http://www.armandofox.com/geek/2012/05/about-uc-berkeley-cs169-software-engineering/#comments</comments>
		<pubDate>Thu, 10 May 2012 18:20:06 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=521</guid>
		<description><![CDATA[Since I find myself periodically explaining our &#8220;reinvented&#8221; CS169 to my colleagues, and since our SaaS MOOC is based on it, I thought I&#8217;d write up this short description.
Background. CS 169 is Berkeley&#8217;s upper-division (seniors and some juniors) software engineering course.  The way it&#8217;s taught varies widely depending on the instructor. This post describes how [...]]]></description>
			<content:encoded><![CDATA[<p>Since I find myself periodically explaining our &#8220;reinvented&#8221; CS169 to my colleagues, and since our <a href="http://saas-class.org">SaaS MOOC</a> is based on it, I thought I&#8217;d write up this short description.</p>
<p><strong>Background. </strong>CS 169 is Berkeley&#8217;s upper-division (seniors and some juniors) software engineering course.  The way it&#8217;s taught varies widely depending on the instructor. This post describes how I teach it, often with the help of Dave Patterson and recently also Koushik Sen.  It&#8217;s not a required class in the major, but rather one of several classes that satisfies specific requirements such as a design project, technical communication, etc.</p>
<p><strong>Prerequisites. </strong>This is the only undergrad course at Berkeley that claims to address the topic of Software Engineering.  As such, it&#8217;s ambitious and fast-paced, with 5 1-week programming assignments, 5 quizzes, and a significant team project with an external customer, all in a single 14-week semester.  Students should be comfortable with at least 1 other language and with basic programming concepts such as object orientation, classes and inheritance, recursion, and higher-order functions.  Prior to this course, Berkeley CS students take <a href="http://www-inst.eecs.berkeley.edu/~cs61a" target="_blank">CS61A Structure &amp; Interpretation of Computer Programs</a>, which introduces the four major programming paradigms (until recently using Abelson &amp; Sussman&#8217;s awesome &#8220;<a href="http://mitpress.mit.edu/sicp/" target="_blank">wizard book</a>&#8220;,now using Python); <a href="http://www-inst.eecs.berkeley.edu/~cs61b">CS61B Data Structures</a> using Java; and (usually)<a href="http://www-inst.eecs.berkeley.edu/~cs61c" target="_blank"> CS61C Great Ideas in Computer Architecture</a> (aka Machine Structures), using C, MIPS assembly, and more Java (for a Hadoop assignment).</p>
<p><strong>History. </strong>While working on the <a href="http://www.armandofox.com/geek/past-projects/rad-lab-machine-learning-meets-datacenter-scale-computing/">RAD Lab project</a> (2006-2011), we needed SaaS apps to show off our machine-learning-based technology for automating various aspects of cloud operations.  Since no Berkeley course taught SaaS, we created an informal seminar course in 2007 to bootstrap a cohort of undergraduates to create showcase apps using Rails.  It was so popular that we offered it again, increasing the focus on TDD and good software practices, when our colleague Paul Hilfinger observed that we were well on the way to teaching the basics of Software Engineering in a format that students were enthusiastic about, so why not go all-out and teach CS 169 this way?  We agreed, and we did a &#8220;dry run&#8221; of the beefed-up course in Fall 2009, debugged it, and offered the &#8220;SaaS version&#8221; of CS 169 for the first time in Fall 2010.  Enrollments have been increasing by nearly 50% per offering.</p>
<table>
<tbody>
<tr>
<td>CS 99/199 Spring &#8216;07</td>
<td>25</td>
</tr>
<tr>
<td>CS 194 Fall &#8216;08</td>
<td>35</td>
</tr>
<tr>
<td>CS 194 Fall &#8216;09</td>
<td>50</td>
</tr>
<tr>
<td>CS 169 Fall &#8216;10</td>
<td>75</td>
</tr>
<tr>
<td>CS 169 Spring &#8216;12</td>
<td>115</td>
</tr>
<tr>
<td>CS 169 Fall &#8216;12 (projected)</td>
<td>165</td>
</tr>
</tbody>
</table>
<p><strong>Practices taught and course format. </strong>The course teaches software engineering techniques based on the Software Engineering Body of Knowledge (SWEBOK) using SaaS+Agile+cloud as the vehicle and Rails as the framework.  Our recent <a href="http://cacm.acm.org/magazines/2012/5/148610-crossing-the-software-education-chasm/fulltext">CACM article</a> explains why we believe our choices bridge the gap between what academics believe should be covered in software engineering courses and what industry wants to see in graduates of those programs.  (Contrary to what one might expect, leading software companies do<em><strong> not</strong></em> want us to become trade schools teaching specific tools, languages or frameworks; they want skills that transcend these, including dealing with legacy code and working in a team serving a nontechnical customer.)  We chose Rails because it has the best testing and code-grooming tools and its developer community places high value on beautiful code and thorough testing.  There are two lectures and one small-section meeting (~30-40 students) per week, weekly programming assignments, bi-weekly short-answer quizzes, no &#8220;big&#8221; midterm or final exam, and a 6 to 8 week course project.  We are experimenting with pair programming as well.</p>
<p><strong>Course project. </strong>&#8220;Two-pizza&#8221; teams of 4-6 students work with real external customers—some nonprofits, some on-campus units, some others—to develop and refine a prototype that solves a real customer problem.  Students meet with customers, use lo-fi mockups and user stories to agree on goals, use BDD and TDD to deliver and deploy new functionality to the public cloud during each of four 2-week iterations, and use <a href="http://pivotaltracker.com">Pivotal Tracker</a> to estimate progress.  At the end of the course, students present their work in a poster/demo session attended by course staff, the external customers, and invited guests such as industry practitioners and VCs.  Many students reported that their customers were so delighted that they were trying to hire the students to continue the work over the summer.  Two projects from Spring&#8217;12 were already deployed in production with real users by the time the poster was presented.</p>
<p>(Coming soon: a partial list of short video screencasts highlighting representative projects and interviewing the customers involved with them.)</p>
<p><strong>Scalable grading. </strong>Given the growth in popularity of the course and CS courses in general here, we had already been thinking of ways to scale the grading by repurposing testing and code grooming tools such as RSpec, Cucumber, Mechanize, reek, flog/flay, and Webdriver (Selenium) both to assess correctness of student code at a fine grain and give nontrivial feedback on code quality.  When we agreed to offer the first 5 weeks of the course as a <a href="http://saas-class.org">massive open online course</a> in Feb/Mar 2012, it forced the issue and made us sit down and write the autograders.  Of course, these are no substitute for actual interaction with an instructor; indeed, the autograders have freed up our teaching staff to focus on creating additional review material and holding design meetings.  (If you&#8217;re an instructor interested in participating in our <a href="http://2012.saasbook.info">in-classroom beta program</a>, we&#8217;ll even run the autograders for you.)</p>
<p><strong>Book.</strong> Modern SaaS touches on many areas, including datacenter computing, databases, OO programming, testing, debugging, legacy code, and many more.  While there are many great (and not-so-great) books and online resources on each of these topics, a reading list cobbled together from them is impractical, lacks a through-narrative, and is very hard to get students to take seriously.  We finally decided in early 2011 to create our own book that would cover the &#8220;most important 10%&#8221; of each topic and weave them together in a way that both made sense for a one-semester (or shorter) course and allow instructors with less time or a less-sophisticated audience to select subsets of material appropriate for their needs.  We decided very early to <a href="http://www.armandofox.com/geek/2012/02/adventures-in-self-publishing-with-latex-and-ruby/">self-publish</a> to keep the price low (currently $10 ebook/$20 print book).  <em><a href="http://saasbook.info">Engineering Long-Lasting Software: An Agile Approach Using SaaS &amp; Cloud Computing</a></em> is now in its third alpha draft, and we expect it to be content-complete by this summer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2012/05/about-uc-berkeley-cs169-software-engineering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Needed: ebook authoring tools</title>
		<link>http://www.armandofox.com/geek/2012/04/needed-ebook-authoring-tools/</link>
		<comments>http://www.armandofox.com/geek/2012/04/needed-ebook-authoring-tools/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 21:50:14 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[Books & E-books]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=506</guid>
		<description><![CDATA[I&#8217;ve been writing a self-published textbook that is sold in hardcopy, Kindle format, and an iOS app.  I firmly believe that ebooks are the future of textbooks, though unfortunately today&#8217;s e-textbooks are inferior versions of their print counterparts.  To that end, my co-author Dave Patterson and I took many steps to make the ebook version the preferred version of [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">I&#8217;ve been writing a self-published <a href="http://beta.saasbook.info">textbook</a> that is sold in hardcopy, Kindle format, and an iOS app.  I firmly believe that ebooks are the future of textbooks, though unfortunately today&#8217;s e-textbooks are inferior versions of their print counterparts.  To that end, my co-author Dave Patterson and I took many steps to make the ebook version the preferred version of our book—not by crippling the print version, but by exploiting ebook features that you can&#8217;t do in print.</div>
<div>Our original vision was to make the richest version an iOS/Android version, in which we could use extensive CSS and JavaScript to make the book experience interactive in ways that the Kindle ebook format doesn&#8217;t support.  We originally tried using PhoneGap for this work, but it wasn&#8217;t stable because apparently it wasn&#8217;t designed to deal with such large assets (hundreds of KB per HTML &#8220;page&#8221;, plus many MB of images, plus GB of embedded screencast videos).  When Apple released iBooks Author, we realized we&#8217;d have to switch to that, since doing a &#8220;native&#8221; Android or iOS app was beyond our resources.  We ended up with much of what we wanted—better navigation both within and across chapters, embedded screencasts, and even interactive &#8220;check your understanding&#8221; question widgets that don&#8217;t reveal the answer until you try to answer the question.  But it came at great cost and pain: as we describe below, iBooks Author doesn&#8217;t import any useful markup format, even though it generates ePub.</div>
<div>Our experience with doing our own layout and publishing for the print and Kindle editions suggests that the majority of self-publishers and ebook authors may well want to work with a publisher.  The self-publishing process even even for simple hardcopy books is not trivial, but a process that can produce multiple formats with radically different output requirements from a single set of source files is definitely not for the faint of heart.  I described ina n earlier post how we generally did it for our book, concluding that  LaTeX is the worst way to prepare an ebook, except for all the others.</div>
<div>So what do we need?  A better unified authoring environment is a must.  What would my ideal authoring environment support?</div>
<div>
<ul>
<li>Device-independent table specification: LaTeX&#8217;s table support is painful, but the real problem is that the aesthetics of table layout vary greatly per-platform.  A better platform-independent way of specifying table layout constraints is needed.</li>
<li>Tie-in to online resources:  we used Pastebin for code examples and Vimeo for screencasts to augment the content.  The RESTful APIs of these services allow high automation in cross-referencing the content—for example, since we agreed to put each code excerpt into its own file, I made a script that posts each code excerpt to Pastebin, notes the Pastebin URI, and modifies the book source (.tex files) in place to include the link.  I did the same with screencasts.  This could be automated in an authoring environment.</li>
<li>It seems likely most ebooks will use an XML-based format of some kind; exporting <em><strong>and importing</strong></em> such a format is essential.  Please, please, please don&#8217;t make me use a WYSIWYG editor.  When writing, I want to focus on the <em><strong>logical</strong></em> structure of the book and arrange the input the way it makes sense to me.  LaTeX is great for this. In fact, modulo table support, LaTeX isn&#8217;t a bad choice as a language, especially since it lets you use macros to define your own book elements, as we did with sidebars, chapter heads, sidebar graphics, pitfalls/fallacies, and soon.  (Though the way it interprets markup is highly user-unfriendly when an error occurs.)  It&#8217;d be great, of course, to have WYSIWYG <em>previewers</em> for the various output targets, and some people might even like a GUI front-end, but don&#8217;t make that the only way to edit!</li>
</ul>
</div>
<div id="_mcePaste">If you&#8217;re thinking of self-publishing, be aware that you&#8217;ll have to take care of a lot of &#8220;little&#8221; typographic things that the publisher usually does, including but not limited to: getting &#8220;straight quotes&#8221; and “smart quotes”&#8217; right; getting em-dashes and en-dashes rather than &#8217;&#8212;&#8217; and &#8216;&#8211;&#8217;; inserting © and ™ rather than typing &#8216;(C)&#8217; or &#8216;(tm)&#8217;; dealing with ligatures (TeX does this for you, but most word processors don&#8217;t).  But the biggest one is going to be the hardest for Word users: getting accustomed to automating everything using macros so that changes are easy to make.  If you are used to manually styling your text (changing font size, applying indentation, etc.) rather than rigorously using styles, you&#8217;re sunk before you start, and so is your publisher (well, they&#8217;re not sunk; they&#8217;ll just charge you a lot of money for doing a labor-intensive manual job).</div>
<div id="_mcePaste">Here&#8217;s a list of our original &#8220;blue sky&#8221; desiderata for a software engineering ebook, and how we did on each one.</div>
<div id="_mcePaste">
<ul>
<li>social networking for group annotations: not done, and we should wait to see how reader platforms&#8217; feature wars about this feature shake out.</li>
<li>Code should be &#8220;live&#8221; &#8212; clicking it has effect of (eg) starting the app and dropping into a debugger on this function.  This is hard to do in general, since no current ebook platforms have the programmability to also act as a developer sandbox.  But our code snippets are all linked to Pastebin, allowing 1-click copy and paste into a terminal window or editor if you&#8217;re reading the ebook on a computer, and can even be pasted into and run on an Amazon EC2 instance.</li>
<li>Markup for code examples should be obvious.  Both the PDF and ebook outputs treat code specially.  The ebook version links each excerpt to 1-click-copyable source code on Pastebin, which has nice  syntax highlighting.</li>
<li>Figures should be  animatable (short movies): we currently have no animated figures, but we do have several screencasts sprinkled throughout; they&#8217;re hosted on Vimeo and ebook links are live, and in the iBooks Edition the content is bundled so they&#8217;re just embedded directly in the book.</li>
<li>&#8220;Where am I&#8221; (Web-style nav indentation) along side column or bottom of page:  iBooks Author does a nice job of this; Kindle doesn&#8217;t, even though we create the .ncx file that lists the names and location numbers of all the interesting &#8220;navigation points&#8221; in the book.</li>
<li>Margin notes (sidebars) in print  book are popups/hidden until tapped in ebook: Kindle format doesn&#8217;t support this, at least not yet.</li>
<li>&#8220;Pinning&#8221; figures or popups so they don&#8217;t go away while you flip  text underneath: Not done yet, but on the drawing board</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2012/04/needed-ebook-authoring-tools/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ready&#8230;set&#8230;d&#8217;oh</title>
		<link>http://www.armandofox.com/geek/2012/02/ready-set-doh/</link>
		<comments>http://www.armandofox.com/geek/2012/02/ready-set-doh/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 22:10:42 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[Books & E-books]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=457</guid>
		<description><![CDATA[The online version of our SaaS course officially starts this coming Monday, 20-Feb-2012, although we &#8220;soft launched&#8221; this week and are putting up some of the introductory videos now.
We&#8217;ve been busily debugging the homeworks, autograder and other technology at Berkeley, hoping it won&#8217;t melt down when lots more students take it.
But surprisingly, those aren&#8217;t the [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://saas-class.org">online version of our SaaS course</a> officially starts this coming Monday, 20-Feb-2012, although we &#8220;soft launched&#8221; this week and are putting up some of the introductory videos now.</p>
<p>We&#8217;ve been busily debugging the homeworks, autograder and other technology at Berkeley, hoping it won&#8217;t melt down when lots more students take it.</p>
<p>But surprisingly, those aren&#8217;t the things that made my heart skip a few beats the last couple of weeks.</p>
<p>It turns out that when you have 60,000 people enrolled, if 0.1% of them experience a problem, you&#8217;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.</p>
<h2>Fun event #1: Kindle ebook disappears from Amazon.com</h2>
<p>About 2 weeks ago, the Kindle ebook mysteriously disappeared from the Kindle store, showing &#8220;currently unavailable&#8221; if you visited <a href="http://www.amazon.com/dp/B006WU5G4C">its page</a>.</p>
<ul>
<li>We received no email warning before this happened.</li>
<li>No further explanation was provided on the Author/Publisher dashboard as to why it occurred.  In fact, according to the dashboard, our ebook was &#8220;live&#8221; and available for sale.</li>
<li>There was no way to appeal except by sending email via the Amazon KDP &#8220;author support&#8221; 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, <a href="http://createspace.com">CreateSpace</a>, the print-on-demand company handling the print version that ironically is owned by Amazon now, has excellent telephone support.)</li>
<li>Desperate, we used our academic connections to the highest levels of Amazon to get this looked at.</li>
<li>We learned that there was a formatting issue with our ebook, and apparently when enough customers complain about that, the ebook is pulled.  Amazon&#8217;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.</li>
<li>Once the escalation occurred, everything was resolved within a day; but if we hadn&#8217;t had higher-up contacts at Amazon, we would have been screwed.</li>
</ul>
<h2>Fun event #2: saasbook.info mysteriously shut down for &#8220;terms of service violations&#8221;</h2>
<p>Last week the <a href="http://saasbook.info">book&#8217;s website</a>, hosted on Google Sites, was mysteriously shut off by Google &#8220;for terms of service violations&#8221;.  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 &#8220;This site has been taken down for TOS violations&#8221; made it sound like we were fronting pornography or running a link redirector or something equally questionable.</p>
<p>The scenario was eerily similar to the Amazon problem:</p>
<ul>
<li>We received no email warning before this happened.</li>
<li>No further explanation was provided on our Google Sites dashboard as to why it occurred.</li>
<li>There was no way to appeal (except to click a single button that said &#8220;Appeal&#8221; with no other explanation).</li>
<li>Desperate, we used our academic connections to the highest levels of Google to get this looked at.</li>
<li>We learned that our site had been mistakenly manually misclassified as spam—which was puzzling for any number of reasons).</li>
<li>Once the escalation occurred, everything was resolved within a day; but if we hadn&#8217;t had higher-up contacts at Google, we would have been screwed.</li>
</ul>
<h2>Fun event #3: courseware VM can&#8217;t be downloaded or uploaded</h2>
<p>We had numerous complaints from people unable to download the courseware VM via our <a href="http://saasbook.appspot.com">AppEngine front end</a>, and our TA&#8217;s were having trouble uploading the image file. Apparently, there were two problems.  One is that Google&#8217;s blobstore sometimes sporadically throws an error that doesn&#8217;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&#8217;t get logged or rescued, so even though we have tech support at Google for this, there&#8217;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&#8217;s intranet.  If we hadn&#8217;t had this higher-up contact at Google, we would have been screwed.  (See a pattern yet?)</p>
<p>The other problem seems to occur for people whose Internet service is anemic.  The downloads get throttled and take so long that their ISP&#8217;s time out their TCP connection. We&#8217;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.</p>
<p>We&#8217;re also going to torrent the file, and we&#8217;ve  <a href="http://saasbook.info/bookware-vm-instructions">provided an alternative</a> to downloading a VM image—we created an Amazon Machine Image that can be used on EC2.  (A shout out to <a href="http://www.google.com/url?sa=t&amp;rct=j&amp;q=yarko%20tymciurak&amp;source=web&amp;cd=2&amp;ved=0CCoQFjAB&amp;url=https%3A%2F%2Fplus.google.com%2F112974129603800923888&amp;ei=Eiw8T6zeEamgiQKukKihAQ&amp;usg=AFQjCNHlJ1AQIVnOnDN6ZewEFibMS9n1uQ">Yarko Tymciurak</a> in the Chicago area who got us started on this!)  However, for students who don&#8217;t want to pay for EC2 usage, the <a href="http://aws.amazon.com/free">free &#8220;micro&#8221; tier</a> is just barely adequate to do this work—the CPU pins right away when running tests or builds.</p>
<h2>Fun event #4: Kindle ebook updating doesn&#8217;t quite work the way we were told</h2>
<p>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&#8217;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.</p>
<p>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 &#8220;within 2 weeks&#8221; they&#8217;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&#8217;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.</p>
<h2>Fun event #5: our Kindle book price is apparently just a suggested price</h2>
<p>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.</p>
<p>It turns out that Amazon can, at their discretion, charge more for your ebook in certain territories &#8220;where their operating costs are higher&#8221;.  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.</p>
<p>It also turns out that Amazon can, at their discretion, charge <em>less</em> for your ebook if they&#8217;re doing it to price-match a competitor or for other promotional purposes.</p>
<h2>But things are rolling along anyway</h2>
<p>But the news isn&#8217;t all bad.  Kindle ebooks are outselling print books by more than 4 to 1.  We&#8217;ve even gotten complaints that people in Indonesia can&#8217;t buy the ebook (which is unfortunate, but it&#8217;s humbling that we have followers that far away).</p>
<p>We can&#8217;t tell how many people are buying both the print book and ebook, since we haven&#8217;t been able to work out bundling. (Though we are working on it.)  We also can&#8217;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.</p>
<p>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&#8217;s a lower priority).</p>
<p>Overall, it&#8217;s been a major learning experience so far trying to reach this many people.  Next week comes the real test&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2012/02/ready-set-doh/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Telling a story, singing, &amp; laughing</title>
		<link>http://www.armandofox.com/geek/2011/08/telling-a-story-singing-laughing/</link>
		<comments>http://www.armandofox.com/geek/2011/08/telling-a-story-singing-laughing/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 04:46:03 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Blogroll]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=391</guid>
		<description><![CDATA[On my way home tonight I happened to stop at the library (it&#8217;s usually closed by the time I get home) and I plucked Yellow Brick Road off of the &#8220;recent arrivals&#8221; of the nonfiction-DVDs section.  It’s a documentary about a New York-area arts program for mentally-challenged and learning-disabled adults (Down’s, fetal alcohol syndrome, epilepsy, [...]]]></description>
			<content:encoded><![CDATA[<p>On my way home tonight I happened to stop at the <a href="http://sfpl.org/index.php?pg=0100000701">library</a> (it&#8217;s usually closed by the time I get home) and I plucked <em><a href="http://www.imdb.com/title/tt0482641/">Yellow Brick Road</a></em> off of the &#8220;recent arrivals&#8221; of the nonfiction-DVDs section.  It’s a documentary about a New York-area arts program for mentally-challenged and learning-disabled adults (Down’s, fetal alcohol syndrome, epilepsy, severe CP, autism&#8230;) that decides to stage a performance of <em>The Wizard of Oz</em>.</p>
<p>Besides being one of the most poignant documentaries I’ve seen in some time, it drove home to me how ingrained is our instinct as a species to tell a story.  Here’s a group of people who, in general, have serious trouble driving a car, playing an instrument, writing poetry, doing athletics&#8230; yet they relish the opportunity to tell a story, and they rise to the challenge.</p>
<p>Tonia pointed out that two other behaviors we saw in the rehearsals—singing and laughing—also cut across levels of mental ability.</p>
<p>So there it is.  Telling a story, singing, and laughing—the universal constants.  I knew there was a reason I did this theater thing.</p>
<p>And if you harbor even the least bit of idealism about how theater can affect people, watching <em>Yellow Brick Road</em> will be an hour well spent.</p>
<p><em>“&#8230; and your little dog, too!”</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2011/08/telling-a-story-singing-laughing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Things I still find charming about the original &#8220;Star Trek&#8221;T</title>
		<link>http://www.armandofox.com/geek/2010/01/things-i-still-find-charming-about-the-original-star-trekt/</link>
		<comments>http://www.armandofox.com/geek/2010/01/things-i-still-find-charming-about-the-original-star-trekt/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 06:57:04 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Blogroll]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=270</guid>
		<description><![CDATA[In a mood of indulgence doubtless fueled by pizza and wine and small-batch bourbon, I used AppleTV&#8217;s unimpeachable user interface tonight to download and watch a couple of episodes of the original Star Trek.  (Sure, it&#8217;s $1.99 per episode for something that is still broadcast on my cheap analog cable, but they&#8217;re delivered in digitally-remastered [...]]]></description>
			<content:encoded><![CDATA[<p>In a mood of indulgence doubtless fueled by pizza and wine and small-batch bourbon, I used AppleTV&#8217;s unimpeachable user interface tonight to download and watch a couple of episodes of the original Star Trek.  (Sure, it&#8217;s $1.99 per episode for something that is still broadcast on my cheap analog cable, but they&#8217;re delivered in digitally-remastered form, the sound is awesome, and I can start watching in about a minute—all unlike <a href="http://www.armandofox.com/geek/2009/06/tivos-video-on-demand-ui-was-designed-by-vandals-in-the-80s/">TiVo/Amazon wretched, indefensibly bad video-on-demand</a> from TiVo DVR2&#8217;s).</p>
<p>The old Star Trek episodes are wonderful morality tales. And hey, it&#8217;s not their fault that special effects in the late 60&#8217;s weren&#8217;t very advanced, and the effects budget per episode was apparently about $50.</p>
<p>I smile at the cheesy effects and appreciate the storyline, but I can&#8217;t help but enumerate a few effects things that particularly tickle me as a computer scientist.  I&#8217;m blogging these so that someone blogging in 2020 can smile at my comments, and all while giving the original Star Trek the largest possible credit for couching great stories in something that the 60&#8217;s thought the future would look like (remember, the final Star Trek episodes were taped a full 2 years before the moon landing):</p>
<ol>
<li>The analog dials on the ship&#8217;s computers</li>
<li>Computers with AI-complete speech recognition, but synthesized voices that sound terrible</li>
<li>Computers that actually emit smoke when they fail</li>
<li>Audio communications that fail as analog radio would (analog static and high-Q artifacts, not digital dropouts)</li>
<li>Video that fails by getting snow or loss of analog sync (I <em>still</em> can&#8217;t believe people used to do all this with analog signals.  That is some <em>studly</em> engineering.)</li>
<li>&#8220;Video&#8221; displays that are clearly posters</li>
<li>Mechanical switches for controlling solid-state devices, including the transporter and the &#8220;computer&#8221;</li>
<li>Printers that make mechanical noise when they print (like dot matrix and band printers)</li>
<li>The presence of physical books <a href="http://www.armandofox.com/geek/2008/09/two-weeks-with-kindlesurvey-says-thumbs-up/">rather than ebooks</a>at various official proceedings</li>
<li>Avionics that fail by bursting into flame, yet are apparently repairable at the board or component level</li>
</ol>
<p>Note that a great many of these effects were actually accurate when viewed from the standpoint of the first computers in spaceflight—see <em><a href="http://history.nasa.gov/computers/Compspace.html">Computers In Spaceflight: The NASA Experience</a></em> for a most excellent overview and retrospective.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2010/01/things-i-still-find-charming-about-the-original-star-trekt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I still don&#8217;t have an eBook reader</title>
		<link>http://www.armandofox.com/geek/2008/07/why-i-still-dont-have-an-ebook-reader/</link>
		<comments>http://www.armandofox.com/geek/2008/07/why-i-still-dont-have-an-ebook-reader/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 05:30:24 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Blogroll]]></category>

		<guid isPermaLink="false">http://radlab.cs.berkeley.edu/people/fox/wp/2008/07/05/why-i-still-dont-have-an-ebook-reader/</guid>
		<description><![CDATA[My typical packing list for a beach vacation: bathing suit, t-shirt, shades, and 30 pounds of books, plus geek manuscripts in PDF format. You&#8217;d think I&#8217;d be the perfect eBook candidate, being an early adopter and all. But they all suck one way or another. Never mind usability; never mind the ~$400 price tag. The [...]]]></description>
			<content:encoded><![CDATA[<p>My typical packing list for a beach vacation: bathing suit, t-shirt, shades, and 30 pounds of books, plus geek manuscripts in PDF format. You&#8217;d think I&#8217;d be the perfect eBook candidate, being an early adopter and all. But they all suck one way or another. Never mind usability; never mind the ~$400 price tag. The dealbreaker is that the content situation is laughable, to wit:</p>
<p>Amazon&#8217;s <a href="http://www.amazon.com/kindle">Kindle</a> has a pretty good selection, and they&#8217;re at least priced intelligently (~50% of print edition), but you can&#8217;t view PDF documents on it. Yes, I know about the &#8220;converter&#8221;. It doesn&#8217;t process tables or figures, making it useless for any technical PDF&#8217;s, which for me is most PDF&#8217;s. The  <a href="http://bookeen.com">CyBook</a> uses the Mobipocket DRM format, which is sold by dozens of half-assed retailers whose selection and reputation aren&#8217;t even a fraction of Amazon&#8217;s and whose pricing is stupid—the ebook costs the same as the print edition, and I can&#8217;t even donate it to my library when I&#8217;m done with it. But the CyBook does render PDF, so I could at least use it for geek books, technical articles, <a href="http://www.gutenberg.org">Gutenberg</a> downloads, etc.</p>
<p>Some libraries have started <a href="http://wiki.mobileread.com/wiki/EBook_Lending_Libraries">ebook lending</a>.  But the NY Public Library, whose print collection exceeds 50 million volumes, has exactly 945 Fiction titles available in ebook form, most available as only one or the other of Mobipocket or Adobe eBook. Given that Adobe manages to crap on the user experience of every product they put out, and that Adobe Reader still holds my grand prize for crashing Firefox &amp; Safari, I don&#8217;t even want to go near Adobe&#8217;s ebook format, which they popularized in part by distributing DRM&#8217;d versions of Gutenberg etexts—evil.</p>
<p>The book industry seems to be doing its very best to imitate the visionary RIAA and MPAA. I imagine at some point the book industry&#8217;s proctologist will call them to tell them that he&#8217;s found their head. Until then I&#8217;ll keep lugging dead trees around.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2008/07/why-i-still-dont-have-an-ebook-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe software shamefully, frustratingly incompetent</title>
		<link>http://www.armandofox.com/geek/2008/07/adobe-software-shamefully-frustratingly-incompetent/</link>
		<comments>http://www.armandofox.com/geek/2008/07/adobe-software-shamefully-frustratingly-incompetent/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 08:09:29 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Blogroll]]></category>

		<guid isPermaLink="false">http://radlab.cs.berkeley.edu/people/fox/wp/2008/07/02/adobe-software-shamefully-frustratingly-incompetent/</guid>
		<description><![CDATA[I&#8217;ve long known that Adobe software is among the most unstable and sports the ugliest, least intuitive, inconsistent UI&#8217;s of any Mac software I&#8217;ve ever had. I just went through the experience of dowloading the &#8220;free trial&#8221; (30 days) of Adobe Flash CS3 Pro, just because I want to develop some apps for my new [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve long known that Adobe software is among the most unstable and sports the ugliest, least intuitive, inconsistent UI&#8217;s of any Mac software I&#8217;ve ever had. I just went through the experience of dowloading the &#8220;free trial&#8221; (30 days) of Adobe Flash CS3 Pro, just because I want to develop some apps for my new <a href="http://www.chumby.com">Chumby</a>.</p>
<p>Download the free trial version: 750 MB.</p>
<p>The downloaded disk image contained a non-folder icon called &#8220;Adobe CS3&#8243;.  So I did what Mac users always do—I tried dragging it to my Applications folder. The Finder popped up a dialog that eventually stabilized at &#8220;Preparing to copy 109,775 items.&#8221;</p>
<p>Well, that&#8217;s going to take awhile. I stopped the copy and poked around and finally realized the non-folder icon <em>is actually a folder—</em>nice job, Adobe—inside of which I  found a Setup program.  Aha, I thought, the Setup installer should be faster than actually trying to copy 109,775 separate files.</p>
<p><em>Wrong. The installer took</em> <strong>45 minutes</strong> on a 1.5 GHz PowerPC G4 Mac.</p>
<p>Then I had to download a 58 MB software update to get the Flash Lite 3 functionality recommended for Chumby developers. <em>Not including download time, </em>the updater took  <strong>1 hour and 45 minutes to apply a 58MB &#8220;patch&#8221;.</strong></p>
<p>During this time, you&#8217;re not allowed to open any Web browsers, as the updater insists on updating various  browser plug-ins. (But it doesn&#8217;t tell you when during the 1 hour and 45 minutes this occurs, so you have to forgo Web browsing the whole time.)</p>
<p>This &#8220;free trial&#8221; download experience does not encourage me to shell out the <strong><em>$995 </em></strong>Adobe wants for the product. (Hell, at my consulting rate, it&#8217;s already cost 2/3 of that to install the damn product.)</p>
<p>Maybe Adobe is used to Windows users accepting this level of user insult. Their PDF reader plugins for Web browsers are spectacularly unstable (Mac Preview is far superior), and even after CS3 was installed, it takes 30 seconds just to start up.  Their Flash plugin for Safari and Firefox on Mac seems to be the most frequent cause of those programs crashing (according to the stack trace, anyway, the crash occurs inside the Flash plugin).</p>
<p>So it&#8217;s finally happened: I&#8217;ve found other desktop software that makes Microsoft Office a dream by comparison.  How sad from the company that basically invented PC imaging and multimedia. If I can find an open-source toolchain for Chumby development, I&#8217;ll use it even if I can get an Adobe academic license for free. This product deserves to LOSE.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2008/07/adobe-software-shamefully-frustratingly-incompetent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Always take your iPhone</title>
		<link>http://www.armandofox.com/geek/2008/05/always-take-your-iphone/</link>
		<comments>http://www.armandofox.com/geek/2008/05/always-take-your-iphone/#comments</comments>
		<pubDate>Tue, 13 May 2008 13:09:18 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Blogroll]]></category>

		<guid isPermaLink="false">http://radlab.cs.berkeley.edu/people/fox/wp/2008/05/13/always-take-your-iphone/</guid>
		<description><![CDATA[In my quest to pack ultra-light for my UK trip, I debated whether to bring my iPhone, since I didn&#8217;t really plan to pay AT&#38;T&#8217;s high roaming rates. Ultimately, I brought it because I figured I could find enough Wifi hotspots to use the data features even if I made no calls.
Lesson learned: I&#8217;m always [...]]]></description>
			<content:encoded><![CDATA[<p>In my quest to pack ultra-light for my <a href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=101586140092599729523.00044c571e35928450a8b&amp;z=6">UK trip</a>, I debated whether to bring my iPhone, since I didn&#8217;t really plan to pay AT&amp;T&#8217;s high roaming rates. Ultimately, I brought it because I figured I could find enough Wifi hotspots to use the data features even if I made no calls.</p>
<p>Lesson learned: <em>I&#8217;m always bringing my iPhone in the future! </em>Although I did make a couple of calls on Mother&#8217;s Day ($1/minute) and send a couple of text messages (50 cents each), and I did find a number of Wifi hotspots (often free), I also:</p>
<ul>
<li>Took pictures, a couple of which I sent in real time to Tonia</li>
<li>Used it as an alarm clock when sleeping in hotels that didn&#8217;t provide one</li>
<li>On my laptop in Wifi zones, looked up stuff on the Web (walking maps, etc.) and sent it to the iPhone (via email) once I had the exact map(s) I wanted</li>
<li>used it as an iPod</li>
<li>downloaded podcasts of walking tours of Edinburgh, and transferred them to my iPhone</li>
</ul>
<p>On this trip I had my laptop since it was for business. What would be great is if the downloading of generic MP3&#8217;s (not from ITMS) worked seamlessly on the iPhone without requiring syncing. I&#8217;m sure it can&#8217;t be far off.</p>
<p>Bottom line: always take your iPhone. Kick ass.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2008/05/always-take-your-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

