Sunday, August 11, 2013

I have moved.

New gender, new name, new blog. Go visit me at Sheilatronica.

Sunday, June 5, 2011

Happy new owner of Nook Simple Touch

Yesterday I bought a Nook Simple Touch e-reader, because I wanted a black and white "e-ink" screen for bedtime book reading. The iPad is great for many things, but book reading before bed is not one of them (the light from an LCD backlit screen before bedtime seems to rob the human body of melanonin which is needed for a sound sleep). Also, the Nook weighs much less than the iPad, which means my wrist doesn't get tired of holding it.

What really sold me was the Nook Simple Touch touchscreen user experience, which I found immediately pleasing and intuitive (much more so than the older and clumsier black & white Nook). The staff at the Barnes & Noble store quickly answered all my questions about the Nook's capabilities, and soon I walked out the door with a new Nook.

Books purchased from Barnes & Noble do use DRM, and I normally prefer to buy books from enlighted publishers who release in non-DRM form (such as O'Reilly Media; see the excellent Forbes interview with Tim O'Reilly who explains why he dropped DRM). However, some books are only available commercially under DRM, and I'm willing to compromise when the restrictions are reasonably relaxed. In this case, the DRM is more restrictive than I'd like, but it's not completely onerous. For example:
  • The Nook has a feature for loaning books to other Nook users (only for two weeks, though!)
  • The Nook supports open standard formats such as epub, so it can read my non-DRM books
  • The Nook supposedly supports borrowing books from libraries (a feature which I have yet to explore)
  • Ebooks purchased from Barnes & Noble are accessible on a multitude of devices, namely those for which the Nook app runs. This includes iPad, iPhone, Android phones & tablets, Windows PCs, and Mac OS devices. (I haven't found a client yet for desktop Linux)
  • Exchanging files with the Nook is easy, as it is recognized as a USB mass storage device on any Linux, Mac, or Windows PC. It also supports a micro SD slot (up to 32GB cards supported).
  • I can share books with friends by loaning them spare devices, just like I do with DRM'd audiobooks. As the devices get cheaper, this gets easier to accomplish.
I enjoy the "cloud" aspect of books purchased from Barnes & Noble. I can purchase the book in one website, and immediately access the same book on all my devices: Macs, PCs, iPads, iPhones, and Nooks. It's especially great to have full textual access to books on a real PC screen.

In some ways, this "cloud" functionality makes me more willing to forgive the DRM, because it actually reduces my effort in comparison with having to manually copy all my DRM-free books between devices. (I still haven't copied all my O'Reilly books to all my devices, and every time I purchase a new one, it's an effort to once again file it onto the appropriate devices.) 

It would be nice if the "cloud" aspect also extended to any margin notes or highlights added to text on the Nook. Unfortunately, such notes are local to each device. Hopefully in the future this will improve, or at least the backup/sync strategy for such notes could be made more obvious to consumers.

The missing killer feature: audiobook sync. When I buy an audio book, I want the text version to go with it, and I want to control my position in the book using the text version. I also want a special bookmark in the book to indicate where I have left off while listening, so I can seamlessly switch between listening and reading. Also, I want such bookmarks placed in the "cloud", so no matter which device I pick up to read or listen, the book knows where I left off reading. Alas, no platform yet boasts such a feature; the first to do so will surely draw the interest of audio book lovers.

Here are some reviews of the new Nook:
The Nook Simple Touch Is An E-Reader That Wants To Be A Black And White iPad

Consumer Reports: First-look review: B&N's Simple Touch Reader Nook is a worthy Kindle challenger

Saturday, January 1, 2011

Learning gmail keyboard shortcuts

As a heavy gmail user (three accounts with different domain names for work, personal, and public), I've been late to the party learning the gmail keystroke shortcuts. For me, the hefty productivity benefits only derive from a small subset of the keystrokes, so it shouldn't be hard to learn the important ones.

But which ones are important to learn? I copied gmail's docs into a spreadsheet, and started marking the ones I thought most helpful for my particular work patterns. Then I focused on practicing just those few I marked.

This worked well for me, so I uploaded my gmail_shortcuts.xls spreadsheet as a convenience to anyone else interesting in learning using the same approach. The top row has dropdowns for filtering on whichever criteria interests you; I use the "status" column to design which keystrokes to ignore, and which to learn. Feel free to download and edit.

Saturday, September 25, 2010

my letter to the USPTO against software patents

Below is a copy of my letter to the US Patent and Trademark Office arguing against software patents, which I wrote after seeing the FSF posting that the USPTO is seeking public feedback on new guidelines for accepting software patents. Despite my ignorance about the patent process I want to register my opinion.



As a professional software developer, I'd like to contribute feedback about your planned new guidelines for reviewing software patent applications.

I strongly prefer that software patent applications be rejected now and retroactively. Failing that, software patent applications should have stricter requirements in order to discourage frivolous software patents and allow innovation.

The following points argue for rejecting all software patents outright:

* PRIOR ART: I don't believe the USPTO can or will ever have the resources to determine whether a software design is an example of prior art, any more than a person could read every book ever written. Due to the intractability of determining prior art, software patents should never be granted.

* MATHEMATICAL: Software is mathematics (per the Church-Turing Thesis) and therefore not patentable, according to the precedent set forth in the case of  Parker v. Flook (1978, USA).  For this reason, software patents should never be granted.

* FREE EXPRESSION: Software is a form of written expression, and should therefore be protected as free speech. Software patents infringe on the free speech of software developers to write down their ideas in the form of source code. Compiling and running source code is nothing more than a sophisticated way to interpret that free expression, like reading a book containing specific instructions. For this reason, software patents should never be granted.

* ECONOMICS: The sheer volume of software created, the increasing rapidity of development, and the fluidity of software integration renders software patent checking and enforcement impractical and counterproductive. Software developers write code for work, recreation, and community service; most lack the resources to check their code against the system of patent entitlements. Fear and doubt about unrecognized patents hinders innovation and progress. Meanwhile lawsuits abound to enforce protections on absurdly broad and obvious software applications. The United States Constitution established the patent system to "promote the Progress of Science and useful Arts", but prominent studies have shown the opposite effect in the case of software patents. The USPTO has a responsibility to uphold the intent of patent law, and should examine the research showing how software patents hinder innovation and progress.

The following arguments suggest an approach toward stricter requirements for software patents:

* IMPLEMENTATION REQUIREMENT:  An invention is not a real invention if it is only a plan or idea. The invention must be functional in a testable way; automated tests must be presented to validate described functionality.

* ALLOW FOR "A BETTER MOUSETRAP": The patent should apply to the implementation, not the high level functionality. Third parties who wish to implement the same idea should not be restricted from pursuing the same functionality as long as the implementation (source code) is publicly disclosed. This requirement puts software patents back in the game of encouraging innovation, by discouraging closed source software.

* SOURCE CODE REQUIREMENT:  Human readable source code is a pre-requisite for making a determination of prior art. If the code is obfuscated in any way, then the application should be considered too sloppy to accept.

* DEPENDENCY REVIEW:  If a particular implementation is not self contained, but depends upon another piece of software, serious questions should be raised about whether the software is truly original.

* PEER REVIEW: Review of software functionality and implementation is highly subjective. A public peer review process should be established to balance the subjectivity of patent examiners.

This may not be the forum to argue about the societal harms and benefits of software patents; regardless, I hope the USPTO patent officials clearly understand that by accepting software patents they contribute to an accumulating societal cost with no redeeming benefits to society at large.  After all, the original purpose of patents was protecting the efforts of those who invested in innovation; today the reality of the software marketplace shows that innovation happens not because of software patents, but in spite of software patents.

The views I have expressed here are common among software developers and in industry news publications. Frequently I hear that many corporations bear heavy costs to patent their software "defensively", and might breathe a collective sigh of relief if they could somehow achieve multilateral software patent disarmament.

Please review my comments with careful consideration, and consider establishing a public forum to further explore these considerations.

Thank you!

Saturday, July 24, 2010

Open Wonderland, a promising free collaboration environment

Recently listening to my favorite podcast, FLOSS Weekly, about open source software, learned about a project called Open Wonderland, originally developed by Sun but discontinued after the Oracle buyout.   This project was too compelling for the community to let it die, so a foundation was started to carry the work forward.

Disclaimer: Everything I know at the moment about Open Wonderland came from that podcast. I have not yet read that much about it or tried the software. This posting only expresses why I'm so excited about the possibilities presented by Open Wonderland.

Open Wonderland is a server and fat client designed for running within an organization, to provide a collaboration environment, including application screen sharing, CD-quality VOIP, and most significantly a 3D virtual reality environment.

That last bit may require some imagination to consider.  Think about how important instant messaging has been for so many people, but how much better it is to be "in person". Now imagine an instant messaging system where you navigate a 3D environment where you can walk around and talk to other people who are logged in. If they are your co-workers, and they could be for example, carrying on conversations while showing their screens and drawing diagrams. You can walk up to these "avatars" of your co-workers and talk to them, as if you were in the same building.

For private meetings, "cones of silence" can be created whereby only the avatars inside can hear what's happening.

I hope that Open Wonderland could provide a low cost alternative to services such as WebEx and GoToMeeting, though the feature set isn't a direct mapping.  I'll know more about that after I get a chance to try it.

The CD quality audio is another important feature for me; so many conference calls are plagued by bad quality audio, and it's often difficult to hear participants clearly. High quality audio can help with pronunciation subtleties, especially when accents are involved.

This kind of tool is the future of collaboration, and solves all kinds of problems, such as the high cost of air travel, the traffic jams associated with crowded cities, and the challenges of businesses with distributed workforces. Already today, screen sharing collaboration tools provide an alternative to business travel for presentations and training, and better collaboration tools hopefully strengthen that trend.

Maybe one day even the most crowded cities will see their traffic problems abate as people move away from the traffic and pollution to disperse into smaller population clusters.

I don't know the environmental implications of such a migration, but it seems likely given the tremendous negatives of traffic and pollution in cities like Bengaluru (previously named Bangalore), for example. The booming business and the increasing affordability of small cars enables everyone to fill the roads beyond capacity.  Since that city has such a strong IT industry, I would expect the people there to be some of the first who are both motivated and enabled by telepresence technologies to work more from home, or move to smaller surrounding cities from which they can work remotely.

Sunday, June 6, 2010

My new blog

This is a place for me to publish a few random musings, realizations, and personal experiences.