<?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</title>
	<atom:link href="http://www.armandofox.com/geek/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.armandofox.com/geek</link>
	<description>A breadth-first traversal of life</description>
	<lastBuildDate>Thu, 02 Feb 2012 23:36:57 +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>Dry-running homeworks &amp; quizzes for saas-class.org</title>
		<link>http://www.armandofox.com/geek/2012/02/dry-running-homeworks-quizzes-for-saas-class-org/</link>
		<comments>http://www.armandofox.com/geek/2012/02/dry-running-homeworks-quizzes-for-saas-class-org/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 23:36:57 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Books & E-books]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=455</guid>
		<description><![CDATA[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&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<p>When we signed up to offer the free <a href="http://saas-class.org">saas-class.org</a>, we decided (wisely, in retrospect) to pipeline it to start a few weeks after the on-campus course.</p>
<p>The rationale was that we&#8217;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.</p>
<p>We just got through grading the first programming homework using the autograder.  Tellingly, students made a number of (understandable) errors that we hadn&#8217;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 <a href="http://rspec.info">specs</a> on each submission, possibly with different weights toward the overall score, and reports the overall score and which specs failed.)</p>
<p>We also found, not surprisingly, quiz questions that we thought were unambiguous but actually needed fixing.</p>
<p>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.</p>
<p>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 &#8220;you&#8217;re welcome.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2012/02/dry-running-homeworks-quizzes-for-saas-class-org/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rethinking the format of a software engineering textbook</title>
		<link>http://www.armandofox.com/geek/2012/01/rethinking-the-format-of-a-software-engineering-textbook/</link>
		<comments>http://www.armandofox.com/geek/2012/01/rethinking-the-format-of-a-software-engineering-textbook/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 18:50:35 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Books & E-books]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=446</guid>
		<description><![CDATA[Why did Dave Patterson and I decide in April 2011 to write a textbook for our &#8220;SaaS-flavored&#8221; CS169?  Aren&#8217;t there a ton of software engineering textbooks out there already?  And aren&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<div>Why did Dave Patterson and I decide in April 2011 to write a <a href="http://saasbook.info">textbook</a> for our &#8220;SaaS-flavored&#8221; <a href="http://www-inst.eecs.berkeley.edu/~cs169/sp12">CS169</a>?  Aren&#8217;t there a ton of software engineering textbooks out there already?  And aren&#8217;t there a ton of practitioner-targeted books for teaching Rails, Agile, Cucumber, etc.?</div>
<div>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 &#8220;mini-lifecycles&#8221; of a part of a software system.  The ones that teach Agile use Java (presumably because so many universities are <a href="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html">JavaSchools</a>), whose viscosity outweighs the &#8220;lightweight process&#8221; 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&#8217;m one of the contrarians who is still conflicted about the elimination of the Scheme version of the <a href="http://mitpress.mit.edu/sicp/">Abelson &amp; Sussman SICP</a> course, since Scheme is arguably the best language for doing what SICP tries to do.)</div>
<div>Also, despite the fact that the #1 request from our industrial colleagues was &#8220;teach students how to work with  legacy code,&#8221; 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&#8217;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.)</div>
<div>There&#8217;s hundreds of practitioner books on Agile, Rails, RSpec, Cucumber, Git, refactoring in Ruby, design patterns in Ruby &amp; Rails, ad nauseam—and that&#8217;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.</div>
<div>Once we decided to write the book, the next easy decision was to focus on ebooks.  Ebooks aren&#8217;t the future of textbooks, they&#8217;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&#8217;ll probably release this environment as open source once it&#8217;s cleaned up; it&#8217;s LaTeX, tex4ht, and a bunch of Ruby scripts.)</div>
<div>But since today&#8217;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 <a href="http://itunes.apple.com/us/app/id432753658?mt=8">Al Gore&#8217;s <em>Our Choice </em>ebook for the Apple iPad</a>.  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 <a href="http://www.armandofox.com/geek/2012/01/scaling-a-saas-course-to-50k-use-the-web-luke/">another post</a>, 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.</div>
<div></div>
<div>Ebook aside, though, it&#8217;s worth describing a few of the features that even transfer over to the print version, kind of, because I think we&#8217;re learning how books of all formats can be better integrated with online materials.</div>
<ul>
<li>Every code example in the <a href="http://saasbook.info">textbook</a>, and many additional ones that are part of the lectures or the homeworks, are up on <a href="http://pastebin.com/u/saasbook">Pastebin</a>.  So even students who doggedly refuse to learn an editor with syntax highlighting can see what they&#8217;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.</li>
<li>Many book chapters include screencasts to show how to use specific tools.  Anyone can <a href="http://screencast.saasbook.info">watch these for free on Vimeo</a> (albeit out of context), and we&#8217;ll be doing an iBooks version of the book in which the screencasts are embedded right into the ebook.</li>
<li>There&#8217;s no glossary.  With <a href="http://en.wikipedia.org">Wikipedia</a>, 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&#8217;re connected to the Internet).</li>
<li>At the moment there&#8217;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&#8217;s no way for us to bundle the two purchases, since the print book is created and distributed by the <a href="http://createspace.com">CreateSpace print-on-demand shop</a> and the Kindle ebook is distributed by Amazon, which ironically owns CreateSpace).</li>
<li>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&#8217;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.</li>
</ul>
<p>So that&#8217;s what we&#8217;ve been doing and why.  The alpha edition, with some missing chapters, is now available (January 2012) at <a href="http://saasbook.info">saasbook.info</a>.  By March there will be some minor revisions to it and by Fall we hope to have a beta edition that is content-complete.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2012/01/rethinking-the-format-of-a-software-engineering-textbook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scaling a SaaS course to 50K+: Use the Web, Luke</title>
		<link>http://www.armandofox.com/geek/2012/01/scaling-a-saas-course-to-50k-use-the-web-luke/</link>
		<comments>http://www.armandofox.com/geek/2012/01/scaling-a-saas-course-to-50k-use-the-web-luke/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 22:14:09 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Books & E-books]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=443</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>Fine for the 108 students in <a href="http://www-inst.eecs.berkeley.edu/~cs169/sp12">CS 169 this semester</a>.  But how can we provide <a href="http://saas-class.org">over 50,000 students</a> the necessary software infrastructure (and our in-progress <a href="http://saasbook.info">textbook</a>) to participate in the class?</p>
<p>Simple answer—we don&#8217;t.  The on-campus class has been relying more and more on existing commercial SaaS tools and less on Berkeley&#8217;s own IT infrastructure, in part because we thought it was important for students to use the same services and tools they&#8217;d use if they were full-time developers.  The transition is now complete:</p>
<ul>
<li>We provide a <a href="http://virtualbox.org">VirtualBox</a>-compatible VM image with all courseware (Ubuntu+ Ruby+ Rails+ gems+ &#8230;.) Thanks to <a href="http://sites.google.caom/site/facultysummit2010/speakers">Maggie Johnson</a> for offering to have Google underwrite the nontrivial bandwidth charges for distributing a 1.5GB VM image to over 50,000 people <a href="http://saasbook.appspot.com">via Google AppEngine</a>.</li>
<li>More than half the students signed up at <a href="http://saas-class.org">saas-class.org</a> are non-USA.  The <a href="http://createspace.com/3727664">print version</a> 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 <a href="http://www.amazon.com/dp/B006WU5G4C">priced at $9.99</a> (for now), can be obtained instantaneously, and can be updated on demand (we&#8217;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).</li>
<li>Every student will open a free <a href="http://heroku.com">Heroku</a> 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.</li>
<li>For code that doesn&#8217;t get deployed, we&#8217;re developing an autograder that runs rspec, reek, flay and flog, so students&#8217; code is evaluated for both correctness and good coding style.  The feedback may not be as deep as you&#8217;d get from an experienced TA looking over your shoulder, but the approach scales way better.</li>
<li>Every student opens a <a href="http://github.com">Github</a> account.  Since we need to protect homeworks against plagiarism, students need private repos for those.  The Github free account doesn&#8217;t allow that, but we&#8217;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&#8217;t qualify for Github&#8217;s <a href="http://github.com/edu">free student micro plan</a>).  Shout out to Chris Wanstrath and Kami Lott for making that happen!</li>
</ul>
<p>Whew!  That&#8217;s the list so far.  In another post I&#8217;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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2012/01/scaling-a-saas-course-to-50k-use-the-web-luke/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meaningful feedback on 50,000 programming assigments?</title>
		<link>http://www.armandofox.com/geek/2012/01/meaningful-feedback-on-50000-programming-assigments/</link>
		<comments>http://www.armandofox.com/geek/2012/01/meaningful-feedback-on-50000-programming-assigments/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 22:01:28 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Books & E-books]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=441</guid>
		<description><![CDATA[Previously I mentioned that we&#8217;re offering the first five weeks of Berkeley&#8217;s CS169 course through the Coursera education portal (the startup formed to commercialize Andrew Ng and Daphne Koller&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<p>Previously I mentioned that we&#8217;re offering the first five weeks of Berkeley&#8217;s <a href="http://www-inst.eecs.berkeley.edu/~cs169/sp12">CS169</a> course through the <a href="http://coursera.com">Coursera</a> education portal (the startup formed to commercialize Andrew Ng and Daphne Koller&#8217;s online education system).</p>
<p>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&#8217;s no choice but to automate everything.</p>
<p><em>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?</em></p>
<p>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&#8217;ve used that ability to create a tool that runs <a href="http://rspec.info">RSpec</a> 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.</p>
<p>Our goal is to extend the tool to also run <a href="https://github.com/kevinrutherford/reek/wiki">reek</a>, which looks for code smells, <a href="http://ruby.sadi.st/Ruby_Sadist.html">flog</a>, which estimates cyclomatic complexity, and <a href="http://ruby.sadi.st/Ruby_Sadist.html">flay</a>, 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&#8217;ll release this tool on Github as soon as it&#8217;s been field-tested.</p>
<p>Since we teach BDD, I&#8217;m also looking for a way to automatically run integration tests against students&#8217; homeworks, which they deploy on <a href="http://heroku.com">Heroku</a>.  So my next adventure is to get in touch with someone at Saucelabs and see what we can work out.</p>
<p>Anyone want to introduce me?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2012/01/meaningful-feedback-on-50000-programming-assigments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CS 169 x 50,000 == ?</title>
		<link>http://www.armandofox.com/geek/2012/01/cs-169-x-50000/</link>
		<comments>http://www.armandofox.com/geek/2012/01/cs-169-x-50000/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 21:17:08 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Books & E-books]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=439</guid>
		<description><![CDATA[Along with Dave Patterson and Koushik Sen, I&#8217;m teaching CS 169 Software Engineering at Berkeley this spring (Jan-May 2012).
As with previous times I&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<p>Along with Dave Patterson and Koushik Sen, I&#8217;m teaching CS 169 Software Engineering at Berkeley this spring (Jan-May 2012).</p>
<p>As with previous times I&#8217;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&#8217;ve done a SaaS-oriented class and the second time that the official CS 169 offering has been taught this way, and we&#8217;ve been happy with the results.</p>
<p>But some major things are new this time around.  First, Dave and I are writing a <a href="http://saasbook.info">textbook</a> 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&#8217;ll blog later about our experience self-publishing it).  Writing the book has also helped better organize the lecture material.</p>
<p>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.)</p>
<p>Third and scariest, <a href="http://www.cs.stanford.edu/~ang">Andrew Ng at Stanford</a> 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 <a href="http://saas-class.org">saas-class.org</a> —and so far over <em><strong>53,000</strong></em> people have!  Holy s**t.  Even with 90% attrition, 5,300 people would be more than I&#8217;ve cumulatively taught in my whole life.</p>
<p>Basically, we&#8217;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 <a href="http://mazur.harvard.edu/research/detailspage.php?rowid=8">peer instruction</a> 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.</p>
<p>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&#8217;ll write more about that shortly.  But meanwhile, if you&#8217;re off-campus and interested, go ahead and sign up—hey, what&#8217;s one more?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2012/01/cs-169-x-50000/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kindle Fire: probably good enough</title>
		<link>http://www.armandofox.com/geek/2011/11/kindle-fire-probably-good-enough/</link>
		<comments>http://www.armandofox.com/geek/2011/11/kindle-fire-probably-good-enough/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 20:06:22 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Books & E-books]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=432</guid>
		<description><![CDATA[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, [...]]]></description>
			<content:encoded><![CDATA[<p>Since Dave Patterson and I have signed up to offer the first 5 weeks of Berkeley’s CS169 Software Engineering class as  a <a href="http://saas-class.org">free online course using Stanford’s ClassX</a>, I feel the pressure ratcheted up to finish the <a href="http://www.saasbook.info">textbook</a> we’ve been preparing for use with this course.</p>
<p>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.</p>
<p>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 <a href="http://amazon.com/kindlefire">Kindle Fire</a> 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.</p>
<p>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&#8217;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.</p>
<p>I didn’t try the media-consumption features (watching TV/movies, downloading songs, etc.), but they’ve gotten <a href="http://gigaom.com/apple/ipad-or-kindle-fire-which-should-you-buy/">only lukewarm reviews from others</a>.</p>
<p>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.</p>
<p>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).</p>
<p>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 &amp; white Kindle 3G.</p>
<p>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.</p>
<p>I miss Steve Jobs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2011/11/kindle-fire-probably-good-enough/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started With Clipper for Berkeley folks</title>
		<link>http://www.armandofox.com/geek/2011/10/clipper/</link>
		<comments>http://www.armandofox.com/geek/2011/10/clipper/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 01:43:52 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Urbanism & Transit]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=412</guid>
		<description><![CDATA[Since multiple people have asked, here’s the quick-n-easy “getting started with Clipper” for Berkeley folks.  (Total online time: 5 minutes)

Get a Clipper card at any Walgreens; you have to put a minimum of $5 on it.  You can add value at any Walgreens and any BART ticket machine.
Register the card at clippercard.com.
Why:  Though not necessary [...]]]></description>
			<content:encoded><![CDATA[<p>Since multiple people have asked, here’s the quick-n-easy “getting started with Clipper” for Berkeley folks.  (Total online time: 5 minutes)</p>
<ol>
<li>Get a Clipper card at any Walgreens; you have to put a minimum of $5 on it.  You can add value at any Walgreens and any BART ticket machine.</li>
<li>Register the card at <a href="http://clippercard.com">clippercard.com</a>.<br />
<em>Why:  Though not necessary to get the Berkeley benefits, this lets you add value online from a credit card or bank account, setup “autoload” (card reloads itself if balance falls below threshold), and protects your balance if your card is lost or stolen.</em></li>
<li>Register yourself at <a href="https://wageworks.com">wageworks.com</a>, which manages UCB’s transit benefits program.  You’ll need your SSN and possibly your UCB employee ID number.<br />
<em>Why: so you can get $10 of free money on your Clipper card every month, and put additional pre-tax money on it.</em></li>
<li>Once you’re registered at WageWorks and logged in:
<ol>
<li>click on the Commuter tab</li>
<li>click Place Commuter Order</li>
<li>select Public Transportation (not Parking or Vanpool)</li>
<li>select “Clipper“ as your transit vendor</li>
<li>select “E-cash” as the product</li>
</ol>
<ul></ul>
</li>
<li>Enter the serial # of your Clipper card and select an amount to be loaded onto the card each month.  (You can change the order month to month, or leave it standing.)
<ul>
<li>The first $10 per month is <strong>free money</strong> (doesn’t affect your paycheck)</li>
<li>The next $230 per month is deducted from your <strong>pre-tax</strong> income on your paycheck</li>
<li>Anything beyond that is deducted from your <strong>post-tax</strong> income</li>
<li>$2 of your total monthly transfer amount is taken as a service fee, so if you sign up for just the $10 “free money” option, you really only get $8/month</li>
</ul>
</li>
</ol>
<p>That’s it.  I recommend setting the pay-with-pretax option based on your estimated usage, and using Autoload on the Clipper site as a backup with a threshold of $20.</p>
<p><strong>Advanced version, to avoid paying $2/month service fee</strong></p>
<p>If you’re OK leaving $24 of free money on the table per year to avoid some hassle, then just use the procedure above.  If you’re cheap or resent that $2 service fee, here is an alternative.</p>
<p>In step 4.5 above, instead of selecting E-cash, select WageWorks Commuter Card.  This will cause your full monthly transfer amount (ie no $2 fee deducted) to be put onto a debit MasterCard that WageWorks will send you, instead of onto Clipper.</p>
<p>You can use this debit MasterCard to:</p>
<ul>
<li>add value to your Clipper at BART machines and Muni machines</li>
<li>add value to Clipper online, including via autoload</li>
</ul>
<p>The downside is that you have to keep track of two balances—Clipper and debit card.  Especially if you have Autoload setup, if your debit card balance is too low to satisfy Autoload, Autoload fails, etc.  As well, you have to arrange to load your Clipper card as needed.</p>
<p>It would be great if there was a “pay-as-you-go deduction” option for funding Clipper, but so far there isn’t.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2011/10/clipper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ebooks, ebooks everywhere</title>
		<link>http://www.armandofox.com/geek/2011/10/ebooks-ebooks-everywhere/</link>
		<comments>http://www.armandofox.com/geek/2011/10/ebooks-ebooks-everywhere/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 18:40:30 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Books & E-books]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=408</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>With the color <a href="http://www.google.com/aclk?sa=L&amp;ai=C9BLA5_SNTtuOGqWE2gWCvsjJDcvD954Dg7-A3TS51ZeDDggAEAEguVRQgbGx-QVgyZbRhsijoBnIAQGqBB5P0KmwStAY8u6snQPIuPHepAESfAl65TX13w_y4TKABZBO&amp;sig=AOD64_13RkhAXfUAEcVPK8jwlcCgE2r3tQ&amp;ved=0CAsQ0Qw&amp;adurl=http://www.amazon.com/dp/B0051VVOB2/%3Ftag%3Dgooghydr-20%26hvadid%3D14069706955%26ref%3Dpd_sl_jw4fqgv3z_b">Kindle Fire</a> tablet just announced, and some new Kindle Touch devices, the Kindle is now a bona fide product family, with entry-level devices under $100.</p>
<p>Various large libraries, including the New York Public Library and my local library the SFPL, are <a href="http://sfpl.org/index.php?pg=2000435401">starting to allow loans</a> of Kindle (and ePub) ebooks.</p>
<p>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.</p>
<p>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.</p>
<p>Stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2011/10/ebooks-ebooks-everywhere/feed/</wfw:commentRss>
		<slash:comments>0</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>Sony, Sega, Dropbox, Citigroup, &#8230;a new TOU</title>
		<link>http://www.armandofox.com/geek/2011/06/sony-sega-dropbox-citigroup-a-new-tou/</link>
		<comments>http://www.armandofox.com/geek/2011/06/sony-sega-dropbox-citigroup-a-new-tou/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 16:25:05 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[Computing and society]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=383</guid>
		<description><![CDATA[So in the last couple of weeks, we&#8217;ve seen data breaches on the Sony PlayStation network, Sega&#8217;s online gaming network, Citigroup credit cards, and most recently, Dropbox.
Here&#8217;s my new proposed Terms Of Use agreement that such firms can use as a CYA in the future:
TERMS OF USE: You understand and agree that:

Inevitably, this website will [...]]]></description>
			<content:encoded><![CDATA[<p>So in the last couple of weeks, we&#8217;ve seen data breaches on the Sony PlayStation network, Sega&#8217;s online gaming network, Citigroup credit cards, and most recently, Dropbox.</p>
<p>Here&#8217;s my new proposed Terms Of Use agreement that such firms can use as a CYA in the future:</p>
<p><strong><em>TERMS OF USE:</em> You understand and agree that:</strong></p>
<ul>
<li>Inevitably, this website will be compromised. I mean, sh** happens.</li>
<li>We store much more of your confidential information than is really  necessary, so when the inevitable compromise occurs, you&#8217;ll be f**ked eight ways from Sunday.  But it won&#8217;t be our fault.</li>
<li>When the media descends on us after a breach, we will loudly protest that we use &#8220;the strongest industry-standard security measures&#8221; and that we &#8220;monitor our site constantly&#8221;, all of which won&#8217;t matter because you&#8217;ll be f**ked eight ways from Sunday.</li>
<li>We will quickly wring our collective hands and apologize that &#8220;this should never have happened&#8221;, that we &#8220;are investigating the incident vigorously&#8221;, and/or that we &#8220;will notify customers whose accounts appear to have been accessed improperly&#8221; (how we would actually <em>know</em> which ones, given that our site was compromised, will remain unclear).  In any case, though, what it will boil down to is: you&#8217;re f**ked eight ways from Sunday.</li>
<li>If you have half a brain, you are already doing end-to-end encryption on stuff you care about (for example, as 1Password does when backing up your secret passwords database to Dropbox).</li>
<li>We will encourage you to check the &#8220;remember this credit card for Romanian hackers^H^H^H^H^H^H^H^H^H^H^H^H^H^H future purchases&#8221; checkbox, but you probably shouldn&#8217;t.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2011/06/sony-sega-dropbox-citigroup-a-new-tou/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

