A $200 tablet?

A recent blog post on TechCrunch discusses their plans to try for the construction of a $200 tablet for light browsing with a modified Firefox 3 (in a special kiosk mode) and VOIP thanks to Skype. Now, we’ve heard rumblings of low-cost, touch-based computing devices before. Remember concept stuff from the XO-2 which was supposed to be the second OLPC? The idea was to have it be an ebook-style device with dual touchscreens and a sub-$100 price tag. Shortly following the announcement by the OLPC guys, some researchers from Maryland and Berkeley showed of a prototype ebook reader that responded to hand-generated movement like opening and closing the leaves to advance the displayed pages.

While the dream of a lightweight, $200 tablet seems a little far-fetched, the blog post does show that some serious thought went into this. They are very insistent that the proposed device run a stripped down version of Linux that will boot right into Firefox instead of a traditional desktop. From there, the plan is to have a special start page with “large buttons for bookmarked services” linking to sites of great interest and/or utility.

With this in mind, it stands to reason that SproutCore would be an excellent way to build this start page. By designing the startup page as a SproutCore application, the whole experience can be constructed in a completely customized way while still maintaining whatever parts of the traditional application experience are desired. Furthermore, SproutCore apps can be cached can be automagically and transparently upgraded as well as cached on the client so that basic functionality can be maintained even in the absence of a WiFi link.

After a little bit of thought, I think that the main interface (with the big buttons) should be a draggable grid of icons so that a user may reposition applications according to their preferences and usage patterns. Additionally, there should be a basic configuration interface allowing users to add or remove sites from the startup page. After that, anything else seems like an added complication even if it’s really, really interesting.

Free bedtime stories from Project Gutenberg and LibriVox

My family loves to read and recently, my mother has discovered the joy of audiobooks while commuting to and from work. She currently subscribes to one of the many for-pay services (Simply Audiobooks, in her case) which Netflix style, mails her a set of CDs for her to play before sending them back. For awhile now, she’s been after me to figure out if there is a source of decent, free audiobooks online because the CDs aren’t always in the best condition and the subscription fees are sort of annoying.

Obviously, a little Googling did the trick and I found out about Project Gutenberg’s audiobook collection which is constantly being expanded. Basically, they rigged a text-to-speech engine to automatically read the texts and generate sound files. The page describes it as a bit buggy but it’s a cool concept all the same.

The more promising project seems to be LibriVox, which uses an ever-growing group of volunteers to read and record for them. The collection is pretty impressive and features texts in multiple languages. All works are public domain and most seem to be from the Guternberg Collection, though I wouldn’t be so surprised if they had some random stuff from places like the Aozora Bunko (Wikipedia article which I just recently heard about from someone who is really into Japanese literature) or Project Runeberg.

Your stuff, on the web with Drop.io

I saw a neat writeup on Ars Technica recently about this cool anonymous web storage service called Drop.io which allows the creation of “drop boxes” for anonymous sharing of content. It was written up by WebWorkerDaily two times earlier this year and with good reason. Drop.io has some really cool features including free faxing from the web. The main selling point: complete anonymity thanks to a zero-login-required policy (for the free drops), auto-expire and the ability to upgrade storage space with only an email, a credit card number and an address.

Rockbox used to help blind Israelis rock out

My friend Lihi, in addition to being a talented singer and music educator, has severe visual impairment. She has a serious love of music and is always excited to share her findings. While she uses assistive magnification software to use her computer, there is no way that most portable electronic devices can display anything at the sizes she requires. With this in mind, I was very excited to discover that she bought a portable media device from the Israeli Center for the Blind (מרכז לעיוור בישראל) which will read her the names of songs so she can browse her music collection.

The kicker is that she bought a custom iAudio X5 which runs Rockbox! How cool is that? Eat your heart out, proprietary manufacturers! Free software sets everyone free, especially those who need freedom the most.

The wide, wide world of JS toolkits

While tinkering with web stuff is always entertaining, I recently got turned on to two new JavaScript toolkits which are interesting. The first of which is this neat offering from Adobe called Spry which has a pretty rockin’ set of built-in features like widgets, data-handling mechanisms, clean design and an ease-of use to rival even heavyweights like Dojo. I’ve been doing some messing about with the tab and collapsible panel widgets along with client-side form validators.

The other is a more interesting and currently-trendy system which has generated a bunch of news following the news that Apple has adopted it extensively. Sproutcore is a fantastic piece of software which uses the Model-View-Controller paradigm for development. It uses Ruby to generate client-side JavaScript and HTML so that developers don’t get stuck building web applications which are painful to debug and fragile to begin with. Allegedly, it plugs right into Rails but can utilize anything on the server, even ASP.NET.

Anyway, both of these seem pretty cool though the later is currently more captivating than the former. Also of note, though not really to my liking, is the development and discussion of Objective-J and Cappuccino which seems to be a direct port of the Objective-C runtime and Cocoa to JavaScript. Although my dislike of Apple is well-known, the concepts behind Cocoa seem pretty cool…

A great food blog

I’m very lucky that my girlfriend, Sarah, likes my cooking. So, it’s no surprise that we like to cook together and explore new foods. There is something very satisfying about preparing a meal with someone you love in order to serve it to people you care about. In addition, those meals provide an excellent captive audience with whom to try out new recipes.

Given how much we like to explore new foods, Sarah sent me a link to this great food blog called 101 Cookbooks which features some really awesome recipes. I made this rockin’ quinoa recipe for my mother and can’t wait to try these banana cookies with Sarah. Furthermore, the blog has numerous categories and even features a whole section on gluten-free dishes! Also of note, the garam masala tofu scramble and skinny omelletes.

Planet Plug goes live!

After much tweaking and messing around, Planet Plug has finally gone live! It doesn’t have many active subscriptions right now but that should change as more people sign up. If you’re a member of the Philadelphia Linux community, you should get onto the #plug IRC channel on irc.freenode.net and ask to have your feed added. Hooray!

Link to it with this button: Planet Plug button

Design approaches in technology enhanced learning

One of the more in-depth papers that I’ve recently encountered is a really cool paper on the many things that go into figuring out and improving upon technology-enhanced learning. It’s really a very good discussion not just on learning, but about educational thought in the context of design, technology and the sciences. The paper, Design approaches in technology enhanced learning is available from the arXiv as well as from Telearn. It was written by Yishay Mor (blog) and Niall Winters who seem to be two very intelligent scholars from the London Knowledge Lab (which has some really cool stuff going on).

The entire piece left me feeling really intrigued by the challenges of effectively integrating technology and education. The paper is very well researched and although I can’t articulate it,  I reached the last page of this paper feeling really good. Maybe it had to do with the enlightened view taken by the authors. Their writing is crisp and their outlook seems appropriately upbeat given the richness of the material and subject matter covered in the paper. The document bursts with elegant and thought-provoking stanzas:

Design based research is a methodology for the study of function. Often referred to as design research or design experiments, it is concerned with the design of learning processes, taking account of the involved complexities, multiple levels and contexts of educational settings. The primary aim is to develop domain-specific theories in order to understand the learning process.

Such succulent gems of insight are plentiful in the opening sections as Mor and Winters set the stage for a comprehensive reflection on the essences of design, science and learning. They are realistic about how “The complexity of classroom situations does not lend itself to the procedures of laboratory research” as they ask “To what extent are we driven by a pure quest for knowledge, and to what extent are we committed to influencing educational practice?”.

The paper continues into a very stimulating overview of design patterns and their application in the many areas of education. Though I have always liked the idea of design patterns in software, I have never been so enthralled by a discussion about the essential elements of design patterns. Also, this is the first time that I’ve heard of design patterns being used as a tool for analysis instead of construction and planning:

An important characteristic of a design pattern is that it has three facets: descriptive, normative, and collaborative. It is an analytic form, used to describe design situations and solutions, a meta-design tool, used to highlight key issues and dictate a valuable method of resolving them, and a communicative tool enabling different communities to discuss design issues and solutions.

The esteemed writers are careful to explain their thought processes without letting their comprehensive coverage become tangential. They expertly work in a mentioning of the political agendas of design pattern construction for city planning and network routing protocols to help illustrate their observations of how values influence design.

This paper is awash in fascinating pointers to further exploration and while I fully intend to follow up on some of their citations, something of immediate interest is a link to a very cool site called the Pedagogical Patterns Project which established a repository of educational design patterns. I need more time to explore but what they have seems to be very cool. It’s clear that I’ll refer back to this paper frequently as I strive to better understand the interactions of education and computing.

Tech, higher education and the Indian job market

I read a brief little paper on the train last week about technology in post-high-school education. While four pages (not counting references) is a bit short for such a rich topic, the scope of discussion has been significantly narrowed to the central theme of business. The paper is entitled Impact of IT on Higher Education through Continuing Education and is written by Shajee Mohan of the LBS College of Engineering, though his other notable work seems to be centered around data compression.

Mohan begins with a very logical stance on the dual subjects of technology and education by saying that “Some of the most cost effective and appropriate ways to use computers and modern technologies is to have close contact between the teachers and the taught.”. When I read this and the text before it, I wondered if all I would get would be a concise exposition detailing those business issues in India which dealt with college students. Instead, I got a whirlwind overview of select “reskilling” efforts thought (by Mohan) to be significant in the scope of the paper.

The paper is written in a casual-yet-technical style with a tone and focus that instantly reminded me of Thomas Friedman’s many commentaries on the Indian tech sector. In fact, some of his more entertaining points might just be a tongue-in-cheek salute to the importance of education in a culture commonly associated with outsourcing:

A mixed approach to valuing staff by developing skills, providing interesting and motivating work while recognizing their individual contribution, alongside benefits and perks, will mean that you are an employer that employees don’t want to leave.

If this paper were any longer than it is, I would advise people to move along and skip it in favor of more detailed works. That being said, the topic was narrowed significantly and as such, could be considered to have an reasonably-appropriate length in addition to it’s generally generally-upbeat discourse. In fact, I actually found myself giggling at some of Mohan’s informalities and clear showings of enthusiasm.

Wait, is static typing good or bad?

Though I haven’t taken that much time to learn about type systems, I have read up a little bit. I devoured Chris Smith’s essay on What To Know Before Debating Type Systems and briefly tinkered around with a typed lambda calculus before trying to really get into some of the heavier stuff that my program covered in a seminar earlier this year. All of this, combined with my personal experiences using dynamically and statically typed languages, gave me just enough of a background to get by when learning or comparing various programming languages.

While I favor dynamically-typed languages (like Lisp, Ruby and Python) as a matter of personal preference, I have tremendous respect for statically-typed languages (like C and Java). In my humble opinion, some of the most interesting languages are those which allow one to switch between the paradigms as need or desire dictates. Take for example, Haskell’s type annotations or Common Lisp’s type specifiers (particularly declare). The former allows one to annotate Haskell function definitions with type information to enforce type constraints while the latter can be used to turn off Lisp’s dynamic typing system when trying to do something special like optimize certain functions.

After I discovered all of this and determined that I think it’s pretty neat but not something I have the time to pursue right now, my interest has been rekindled by a recently delivered presentation entitled Types Considered Harmful. Perhaps it’s also time for me to re-read another famous type-system paper, Java is not type-safe.

Next Page »