A blog about Open Source, my work at the Gates Foundation and those I am fortunate enough to collaborate with

You can scroll the shelf using and keys

“Most free software projects fail.” Read Karl Fogel for an antidote

August 5, 2011


Brian Behlendorf very kindly recommended this text to me as we consider how to ramp our work on a set of shared services for personalized learning (more to come on that topic)  Thanks to Karl and the good folks at O’Reilly, you can download it free of charge here

I was lucky enough to meet Karl at OSCON and thank him personally for this book.  Anyone involved in Open Source production including the major software houses will benefit from reading it.  It’s clearly laid out, crisply written and quickly convertible into a set of tenets that can be used to inform a development strategy and approach.  It is also fabulous how Karl manages to cover a huge amount of ground without losing the reader.  He will take you from the anthropology of a community all the way through to presentation of code for broader community contribution without you losing the thread.  There’s a lot in this book which will reward repeat reading.

“Most free software projects fail.”  Karl, you had me with that first sentence…I hope we at Gates can live up to your recommendations, avoid joining the junkpile, or at least get fired trying!


Jimmy Dawkins – When you play like this, why sing?

August 5, 2011

Cover (Fast Fingers:Jimmy Dawkins)

What must his peers in Chicago have thought when this guy cut loose.  Forget what the reviews say.  Jimmy really can’t sing that well, but why sing when you can play like he did.  Clear and worthy fork in the Blues style.

First released in 1969, after guitarist Jimmy Dawkins had served a long apprenticeship as a sideman in the Chicago electric blues scene, Fast Fingers remains one of the finest pure electric blues albums of its era.


Learning Maps – A new UX for Personalized Learning

August 4, 2011

One of my princpal projects is a collaboration with Brandt Redd, Danny Hillis and Danny’s incredible team at Applied Minds.  We’re calling it the “learning map”, a navigational tool for knowledge that learners would be able use to orient themselves to a particular subject and track their progress in it.  Coupled with a datastore and links to content respositories capable of serving up interventions in context, the map would be able to sustain both rudimentary learning pathways but also more advanced functions and services such as predictive analytics and recommendation engines.
The basic idea is that the Learning Map sits at the nexus of information about me as a learner, the content I am consuming, and the diagnostics I am taking to determine my level of understanding of the concepts I am expected to master.  Here’s a graphic that I hope will help you picture what I am describing.

There are 7 core use cases that we believe such a map can help us address:

  1. Teachers can plot their students’ locations on the map, see the resources available for them to use in class, and determine
    appropriate interventions to help the kids progress
  2. Learners can plot themselves on the map,understand what lies ahead, see the resources available to them in their
    current location, and plan their own progressions.  Ultimately skin their own maps, plot their own quests and share them with friends
  3. School and District leaders can plot student movement on the map and get a snapshot and trend projection of a body of
    learners, including what resources are being used by the learner population (and which are not)
  4. Curriculum developers and content producers can publish and locate their courses and resources in the map for discovery and use
  5. Application developers can publish and attach their applications to specific points on the map
  6. Investors can see resources currently available in the market and a status of their use (think a resource heatmap for devs and investors)
  7. Data miners and diagnostic service providers can write adaptive algorithms against the map that allow machine based diagnostics, predictive analytics and recommendation engines for learner interventions (think Bayesnet enablement  similar to predictive traffic flow in GPS)

All one requries to get started is a set of learning objectives in a machine-readable format.  The author of those objectives would also have the option at publication of describing the relationship between them thereby enabling a rendering of the progression from topic to topic.  This is but an initial assertion.  Evidential probability analysis would help true learning pathways and relationships between objectives emerge over time as more and more people lay down paths through the subject area.  If one wanted to get truly funky, one could leverage an arcane markup like PROWL to weight the relationships between objectives allowing for further differentiation and customization to an individual’s learning patterns.

So what might the rest of the recipe for a learning map look like?  Here’s my guestimate:

  1. A marked up set of learning objectives, such as the new Common Core standards for math and literacy.  XML, OWL or (PR)OWL are all viable as would RDFa if one wanted to roll like that
  2. A semantic schema to describe key structural elements that make up the standards and, by extension, the map, e.g. Domain, cluster, concept
  3. A machine-readable tagging of each structural element within the map.  Something like URI.  This would permit linking of data to data, and node to content resources and applications
  4. A way to describe demonstrations and activities required to progress along the standards, e.g. ‘Skill’, ‘Task’
  5. An API to bind the map to either a native or web-based UI, a datastore (ideally a large-scale tuplestore like Freebase) and various content registries such as Steve Midgley’s exciting Learning Registry project

Coupled with these basic ingredients we would also require some transactional web service capabilities to support the feedback loops and uses I listed earlier.  In rough increasing order of complexity those would include:

  • Some form of asynchronous or duplex communication between a datastore and the map so learners show up in
    their appropriate locations
  • A way for URI’d nodes in the map to link to URI’d resources located on 3rd party servers, like Google Scholar or Wiki (this is where the Learning Registry might hook in in a powerful way)
  • A way to broker services between nodes and resource repositories
  • A way to build probabilistic analytical engines underneath the map capable of leveraging the map’s tuplestore to plot, diagnose and serve up recommended learner progressions based on their particular performance and consumption patterns across a range of individual and collaborative activities.  Vivienne Ming and her team at SOCOS are an exciting example of the sort of services we’d like to see emerge in this space

So what might one of these maps actually look like.  Figure 2 below shows an example.  It was created by Larry Berger and Laurence Holt of Wireless Generation and provides an exciting sample visualization of a learning map for the Common Core Math Standards that could be built using the basic ingredients described above.  Larry and Laurence write: “Known as “the honeycomb,” this application would be interactive and display a student’s progress through the standards.  Each hexagon represents a single skill or concept, and groups of hexagons reflect the clusters of skills and concepts that together make up a standard. Drawing on the data infrastructure of the SLI, such a map could track a student’s progress, with cells turning from red to yellow to green as he mastered components of the standards. The slider on the left side of the screen would allow the student or his teacher to zoom in on the cells, which would display more granular information and links to aligned content and diagnostic assessments to help the student continue to move ahead. Individual student maps could roll up to classroom maps, classrooms could be aggregated to school maps and so on, up to the district and state levels.”

Figure 2: Visualization of the Common Core Learning Map

I am interpreting Larry and Laurence to be describing a visualization of raw XML in a native app or downloadable client.  It would not be hard to add to their list of features the URI links and a way to express sequencing between the hexagons.  One could imagine a service event being triggered either by onMouseover or when a student actually “shows up” in that hexagon, i.e. data informs the map of the student’s new location.  The one tricky part would be brokering the link between a URI describing a hexagon in the visualization from the app, over a firewall, through a service broker, through a proxy or two, over another firewall and into a publisher’s digital content server where a relevant resource is then retrieved.  Steve Midgely and his team are on of the groups working to tackle that problem, which is great, because its really tricky and Steve is really smart.

The visualization is exciting for the possibilities it represents and its intuitive UI.  However it is also limited by its medium.  For example, there is no reason why the same functionality described in the visualization could not also be accomplished using a combination of the APIs contained in the new HTML5, along with the design advances in CSS3 and performance gains we’re
seeing from a Java framwork like JQuery or Python.  Such an approach would also have advantages and afford additional options over a more traditional app approach, namely:

  1. Scalable Vector Graphics – no pixilation and therefore no detriment across device form factors. Key for mobile scenarios
  2. Capability of creating multiple visualizations (trees, roads, mazes) that leverage CSS classes and elements
  3. Ability to render those visualizations in zoom-able 2d or manipulable 3d using the SVG and webgl capabilities
  4. Ability for users to take the maps offline using a combination of the new App and Data Caches found in HTML 5
  5. Ability to run browser intensive background scripts using the Worker API in order to facilitate more advanced query, and
    script-intensive mapping or diagnostic services
  6. Ability to use the web socket API to set up full duplex connection between a back-end db, web or app server and the UI
    effectively conferring first-class status on the map and avoiding latency drivers like long-polling, and roundtrips, or the need for the client to initiate communications
  7. No procurement process to navigate, no sysadmin installation required

Based on my early inspection of HTML5 and its API set I believe we can build an open and extensible Learning Map Web app, and that it would be the sort of project that would lend itself well to the Open Community to sustain.  However, we would still need some solution to the earlier list of system capabilities required to support such an app, namely: integration with a student datastore so learners can be mapped; a way to link URIs across servers; a way to broker services between URIs; and finally, a way to build engines underneath the map capable of supporting adaptive tutoring and diagnostics.

Of these issues, the first could be dealt with by some form of federated datastore .  The last will be dealt with using a combination of datamining, Bayesian analytics and scalable machine learning algorithms like Apache Mahout, or with integrated approaches from commercial providers like SAS or IBM which can now couple Watson’s capabilities to its recently acquired SPSS program.

So that leaves URI linking and transaction services. To solve that problem one could take advantage of Steve’s Registry and its elegant NNTP-like approach.  Here’s an illustration of the Registry’s Transport Network:

There are some questions we need to answer before going with an HTML/script-based approach to produce an actual navigable map:

  • Validation of the assumptions I listed in this posting
  • A sense for when all top 7 browsers will support those assumptions on both desktop and mobile
  • A view on backward compatibility and what our fall-back option is for older browsers (almost certainly an app)
  • A better sense of dev resource requirements we would be incurring
  • The authoring tool required to edit or create new visualizations (more on that in a future post)
  • A way to express relations between concept nodes or clusters, some of them multivariate

I hope this paper has been easy to follow and I would greatly appreciate hearing your reaction to it.

Christianity – The First Three Thousand Years

August 4, 2011

A remarkable book for believers and non-believers alike.  While I would describe myself as agnostic, I remain deeply interested in faiths, their genesis and the people who sustain them.  I am also a fan of MacCulloch’s having read his terrific history of the Reformation a couple years back.  The book focuses as much on the individual personalities as the socio-economic cross-currents that formed and shaped this extraordinary social phenomenon.  Thoroughly recommended.

Alex Szalay – Progressive Rocker to the Stars

August 4, 2011

Alex Szalay

Alex is the Alumni Centennial Professor at the Department of Physics and Astronomy, Johns Hopkins.

Thanks to Roy Pea, I had the happy opportunity to sit with Alex during a dinner I held after a workshop of Big EdData and the future research ecosystem we would require to support personalized learning.

A leader in cosmology, Alex has been behind the development of applications that have democratized science and opened it up to enthusiasts and spacehackers.  His projects include the Sloan Digital Sky Survey, his ground-breaking collaboration with Jim Gray and Curtis Wong on the World Wide Telescope, and the Galaxy Zoo which crowd-sources galaxy classification across some 250,000 contributors worldwide.  As an integral part of his work, Alex is also blazing a trail in the use and application of ultra-large databases which I will characterize here as 40TB+ with over 1 GByte/sec I/O speed, using various scalable designs.

That and Alex’s warm personality and quiet humour would be enough to make him a fabulous dinner companion.  However, Alex is also a product of Communist Hungary who sought an outlet for his feelings in Progressive Rock.  Alex was first turned onto guitar in 1962 when he was able to see the Beatles play live in Stockholm during their Hard Days Night tour.  Alex remembers hearing very little of the set for all the screaming going on around him.  Alex elaborated in a recent interview that later that summer, he won some prize money from a Hungary-wide high school math contest. “Much to my parents’ disappointment,” he said, “I spent it on an electric guitar.” Having developed a taste for the blues, Alex fingers the Hungarian composer Bartok as the reason he fell into ProgRock (Emerson Lake & Palmer, King Crimson).  Alex still plays today with his son.

I am very glad to have Alex involved in our thinking.  You can learn more about Alex and his passion for music here.  His official site can be found here

Great community leaders are born not made

August 4, 2011

Bruno Souza

While at OSCON I had a chance to sit down with Bruno Souza aka ‘Javaman’.   You can find Bruno here

Bruno is an awesome guy with a more than passing resemblance to Russel Crowe who spends his time evangelizing among the Java and Open JDK community.

Bruno’s network extends to about 70-80,000 users worldwide.   He is currently in the middle of the US leg of what appears to be an annual world tour that he has been on pretty much ever since he joined Sun way back when they launched Java.

I asked for his thoughts on managing large user groups and any advice he might have for Gates as we start to engage with developers.  As I listened to what Bruno had to say, I quickly realized that Bruno is a what they call a “natural” with an unceasing
passion for his space and the mission he is on.

Here are nuggets I caught from our chat:

Only connect – ok so EM Forster said it first, but anywhere and everywhere that Bruno goes he is reaching out ahead of time to arrange a meeting or dinner with the local user group. No agenda required

Conversions come one at a time, (and not where you always expect them) – Bruno shared a great anecdote about how he broke into a vacation with friends in northern Brazil to give a presentation at the local university.  They closed down the entire CS and Science departments to turn out and listen to him. During Bruno’s talk, a particular faculty member grilled him relentlessly and aggressively.  He walked away feeling pretty down about the incident. Years later he ran into a young Java developer, the product of a new program in Java at the very same university Bruno had presented at.  The head of the program?  The very same lady who grilled Bruno…

Make people important locally –  Don’t try to control the activities of local user groups or try to be THE LEADER.  Support the emergence of local leaders and give them the room the need to operate as they see fit.  Make sure your contribution is an input to their activities rather than a directive.

Make sure people feel ownership for the message – while folks won’t always get it word for word, they should feel able to adapt your message to suit their audience and express it as they see fit

Give groups time – managing user groups and community is a journey.  It takes time.  Don’t go into it unless you are prepared to commit for the long term

Let England Shake

August 4, 2011


PJ Harvey’s newest album was recorded in a 19th Century church in Dorset, on a cliff-top overlooking the sea. It was created with a cast of musicians including such long-standing allies as Flood, John Parish and Mick Harvey. It is the eighth PJ Harvey album, following 2007’s acclaimed White Chalk, and the Harvey/Parish collaboration A Woman A Man Walked By. But what is remarkable about Let England Shake is bound up with its music, its abiding atmosphere, and in particular, its words.

Pacific Ocean Blue

August 4, 2011


Eternal Beach Boy Dennis Wilson’s 1977 solo album, the first solo album by any Beach Boy, out-of-print and unobtainable for more than a decade except as a pricey collectors item or bootleg, will return to circulation on the occasion of its 30th anniversary, and the 25th anniversary of its creator’s untimely death in 1983, at age 39.

Much is made of his older brother Brian�s tortured genius, but Beach Boys drummer Dennis Wilson had his own deeply artistic statement to make, one he made with moody, heartrending beauty and fathomless, soulful introspection on his 1977 masterpiece, Pacific Ocean Blue. Awash in studio strings and layered, breathy melodies, the piano-sprinkled balladry of tracks like “Thoughts of You” and “End of the Show” offer glimpses of a more tender, wounded, and never-before-seen side of this most famously free-spirited Beach Boys member while such ecology-themed meditations as “River Song” and the title cut reflect other topics close to the drummer’s heart. But despite the album’s more serious subject matter, the Beach Boys’ good-time pop is still firmly on deck with the horn-pumping R&B of “What’s Wrong” and the sunshine lilt of “Rainbows.” No wonder Brian Wilson himself is one of Pacific Ocean Blues’ biggest fans.

Waltz for Debby

August 4, 2011


This is the second of two Riverside albums made up of selections recorded by the classic Bill Evans, Scott LaFaro, and Paul Motian trio at their legendary live recording session of June 25, 1961. Although originally issued a half-year later than Sunday At The Village Vanguard, this was by no means an afterthought collection of lesser items: Evans and producer Orrin Keepnews immediately recognized that there was more than enough material for two top-level records. The dozen chosen performances were subdivided to enable the first album released to feature LaFaro–who died in an auto accident just ten days after recording. Thus this second collection can fairly be said to present a more typical overview of this remarkable unit at work.

Mastered by Doug Sax.

Recorded in 1961.