Jul 06 2013

Adding email notification to Google Forms and Google Spreadsheets

This idea and the code to implement it may be useful in other settings, but I developed it in the context of supporting a community with a largely volunteer organization at its center.   At least in my mind the code comes from a point of view.

Here’s a picture of what it does:


Adding email notifications to a Google Form and a Google Spreadsheet.

Here are the functions that are involved (shown in red), starting from the upper right-hand corner:

  1.  If the person completing the form provides their email address, the Google Script below will send them a snapshot of what they entered into the form in a simple but legible format that I call a “row snapshot.”
  2. Obviously Google Forms are very handy in the context of a community or a small organization because they make it easy to collect information from a large number of un-identified people into an orderly and useful format.
  3. Once data is entered into a Google Spreadsheet, many manipulations, edits, sorts, and analyses are relatively easy.   Controlling access to the Google Spreadsheet so that either few or many people can see or edit the Spreadsheet is easy to do.
  4. People who are looking at the Spreadsheet while logged on (as opposed to anonymous users) can use a drop down menu created by this program to request a “row snapshot” report for any given row.  The first time you run the program, you need to authorize it to send email to you on your behalf.
  5. Once an authorized user has received the row snapshot in an email message, it’s useful for sharing, by forwarding it to other people who are involved or need to be alerted to the status of whatever it is that is represented in that row.

In developing this, I was adapting code from a Google Script tutorial titled “Tutorial: Automating a Help Desk Workflow“.  What was crucial but easy to miss was this little snippet:

Now we need to set up a trigger so that this function will be called each time a form response is submitted. In the Script Editor, go to Resources > Current project’s triggers. Click the link that says ‘No triggers set up. Click here to add one now.’

Once that was working, the code has evolved over the past few months to the point where I think it’s worth sharing:


Comments Off on Adding email notification to Google Forms and Google Spreadsheets

Jul 04 2013

Learning, its context, and me

A conversation in a bar the other day made me pull out Understanding Practice: Perspectives on Activity and Context (1995).  In addition to the diversity of examples in the book’s chapters, Jean Lave’s intro has a statement that I keep coming back to again and again:

“Participants in the conference agreed, on the whole, on four premises concerning knowledge and learning in practice.

  1. Knowledge always undergoes construction and transformation in use.
  2. Learning is an integral aspect of activity in and with the world at all times. That learning occurs is not problematic.
  3. What is learned is always complexly problematic.
  4. Acquisition of knowledge is not a simple matter of taking in knowledge; rather, things assumed to be natural categories, such as ‘bodies of knowledge,’ ‘learners,’ and ‘cultural transmission,’ require reconceptualization as cultural, social products.”

For the past six months I have done a lot less consulting in organizations and a lot more work in and for the Portland Shambhala Meditation Center.  My experience there bears out Lave’s statement about learning.  That Understanding Practice started out as an inquiry about “the context problem” points to an issue of community context.  When thinking about communities of practice, it’s a problem if we focus too much on the community and forget to look enough at their context.  (Context has a lot to do with the social periphery around a community and with our position as observers of communities.)

Here’s a sketch showing some of the different configurations where communities and organizations have different relationships to each other:


Relations between communities and organizations, with prototypical instances.

There were no organizations to speak of in the Lave & Wenger midwives example (apart from the unmentioned funding that Gitti Jordan must have had to study them in the Yucatan).  Community technology involved face-to-face conversations, eavesdropping, looking over people’s shoulders or running errands. Wenger, McDermott & Snyder treated organizations as containers for multiple communities (observers, defenders, and enablers were often consultants, whether organizational insiders or outsiders).   The technology used by those communities was what was provided by their organizations. Partly because of technological evolution, Wenger, White & Smith also considered communities that crossed organizational boundaries, and were not “owned” by any organization (as we worked on the book, we were all connected with or involved to varying degrees in KM4Dev and CPsquare).

Over the years, I’ve been involved in several projects where the communities didn’t really fit any of those models.  As I think of them, they seem to be values-based communities where an organization depends for support on members of the community and the organization exists to serve its community.  But for people who work in those organizations, the community aspect can be swamped by organizational concerns such as fund-raising, recruitment, service targets, or publicity. On the other hand, these communities have grown to the point that they need some kind of organization, even though community members may be so focused on their own practice (in their lives or their organizations) that they forget the organizational effort required to call meetings, steward the technology, curate resources, or staff essential services).

The relationship between the community aspect and the organizational aspect in these cases has many ramifications.  These organizations, for example, typically recruit staff from legitimate members of their communities.  That supports authenticity, but can result in hiring decisions that have problematic organizational consequences.  The fact that I’ve been involved in the Shambhala community for almost 40 years may provide me with many insights into community issues, but it can also lead to biases and blind spots.

As I work on (and revise and reconfigure) the technology infrastructure of my local Shambhala organization and community, I’m reflecting on different projects and conversations that I’ve had about technology stewardship with Baptists, Jews, Mormons, Presbyterians, Unitarians, and of course many different Buddhist communities.  Not many communities can draw on that kind of background I’m bringing.  Being in a position to observe and understand what’s going on depends on legitimacy and participation in the community as much as any leadership role in the organization.

It’s striking to me how these communities and their organizations have so many issues in common, even though they all see themselves as unique and different.  All of them are involved to one extent or another in reconceptualizing all manner of “natural” categories (or sacred categories, as the case may be), such as bodies of knowledge, learners, and cultural transmission, whether consciously, intentionally, or not.  And that’s one thing that I think I’m learning.

3 responses so far

Jun 12 2013

What a webinar can prove

On Monday I did a webinar for a group that Joitske Hulseboch and Sibrenne Wagenaar have been leading on social media for professionals in The Netherlands.  I’ve posted the slides here.  Sibrenne and Joitske posted a summary here.

We had interesting difficulties with the audio side of the webinar. If professionals like us encounter such difficulties, imagine what it’s like for “beginners”! (It has to be said that what professionals like Joitske, Sibrenne and I know is how to quickly move to a different combination of tools when the ones we planned on using fail us.

Joitske logged into Adobe Connect twice: once as host and once as participant — a technique to get at the technical facet of Social Proof. When she’s logged in as a participant she can see the webinar interface and its limitations from a point of view that is normally hidden from the host.

I’ve often thought of taking the chat transcript from a webinar and using it as a start for something like a blog post.  This is such an experiment.  I like it because it seemed like the group in the webinar was so intelligent and willing to grapple with issues that have a lot of paradox.

During the introductions people described the main issue that the exercise brought up for them:

  • Responding to the question of “Where is the learning happening?” is very difficult.  It’s hard to pin down.
  • Effort to pinpoint influence & learning was MORE difficult when constrained to a shorter time period.
  • When Sibrenne influenced how my organization thinks about education, it had big implications.
  • Observing behaviors of leaders and of other participants in this workshop [over last several months] — how people dealt with problems that came up — has been a significant influence.
  • This exercise prompted reflection on the extent of my development in the last year. I have been inspired to ask myself: what’s my field?
  • The exercise provoked reflection on the difference between someone who inspires vs someone who influences. Inspiring and influencing not the same. They ARE very connected, but there was some disagreement about just how much difference there is between the two.
  • Some people have a negative influence — for example they are exhausting — but we can respond to their presence in a positive way, making something positive out of a somewhat negative interaction.
  • For me this exercise pointed to the connections between social settings and different means of communications. I noticed how live face-to-face and continued online contact worked together.
  • Exercise made me reflect on how this course seemed overwhelming. However, observing how other people actually did the course work led me to reconsider what’s possible.

Do we actually learn every second that we are awake? And do we constantly influence others? And don’t both happen at the same time, as long as we’re mindful? Advertising is an example of how we can be influenced when we are not mindful. And some people are even influenced by their dreams. Can we stop being influenced? How? Would we want to?

The idea of following the contrarians in a field is an individual strategy that’s comparable to a group strategy of cultivating community diversity? It’s a good idea to “follow” people (in the social media sense of follow) who are just outside your own area or information bubble.

Social proof is how we use others to determine what is correct (thinking or behavior) by finding out what they do or think. We can be more observant of ourselves and others: how we respond to actions or insights. In a way, learning from others and influencing others is relatively effortless. But it can take considerable analytical and observational effort to be aware of social proof. Insights about social proof have significant implications for the support and facilitation of groups and group activities.

These ideas about social proof clearly have ethical and moral implications.

In an online discussion many people think, “I’m sure others know better than me….” People’s non-participation itself proves something. What something or someone “proves” very much depends on our point of view: different people will draw very different conclusions from the same evidence. That implies that we have to be very aware of our own behavior and how we can influence people in ways that are unanticipated. That means that what people learn through social interaction is continuously changing and evolving.

What are you taking away from this webinar?

  • Sibrenne: Keep questioning… yourself and others
  • Henriëtte: Everyone is seeking social confirmation in uncertain, new situations
  • Esther 1: Influence = learning
  • Esther 2: Be aware of the visibility of the periphery, their needs are important as well
  • John: I’m thinking about timing. and about wanting to cover more than we could possibly discuss in 1.5 hours! 🙂
  • Petra: Learning is about where the energy is!
  • Ilonka: Influence is a code word for learning.
  • Joitske: social proof shows up differently in different technological spaces…
  • Yvonne: I love this webinar because it makes me reflect again about designing learning trajectories connected to how we learn/are being influenced as humans. And how biased we are because of previous experiences. And because of the richness of diversity.
  • Petra: I’m still puzzled and intrigued about the concept of social proof. And a bit frustrated with the technique. John’s sound is cracking, Joitske is very far away, the Notes are a mess (seems like everyone is writing over one another) and the slides went all over the place!
  • Hanneke: the idea of social proof, and the thought that social media influence social proof immensely but I don’t know how.
  • Jose: be aware of context, visible and ‘invisible’ reactions and learning, but also different assumptions

Afterward, I got to thinking that this definition of a community of practice might be a useful alternative:

When social proof is dense and is magnified by ongoing interactions, shaping the beliefs and behavior of a group of people, we have a community of practice.

4 responses so far

Apr 13 2013

Moving from delicious to evernote

delicious websiteOver the years I’ve accumulated more than 1,000 links in http://delicious.com/smithjd.   Delicious (in its various versions) was my preferred tool  for storing,  retrieving, and sharing bookmarks.  Far better than bookmarking things in a browser.  But I’ve gotten impatient with the delicious browser widget in Chrome (and the website was just too much overhead) so I decided to move all my links to Evernote.  The Evernote web clipper widget is easier to use, it pick up chunks of text and images, and it puts them in the same searchable place as bibliographic citations, written notes of all kinds, etc.   Perhaps most importantly, Evernote is available on my desktop, on a laptop machine I use when traveling, on a tablet and on my phone. And the search function is great.

But how to move those 1,000 links I’ve accumulated over the years?  Should I just forget and start over?  Delicious does provide an easy way to put all the links and the comments that go with them in one big file that you can copy-paste into an Evernote note. Unfortunately, the tags would all be lost!  I spent a lot of time looking around for ways to import individual notes with their tags, including various attempts to use DR.PALANIRAJA’s blog posting Import Delicious bookmarks to Evernote including tags and an attempt to create an Evernote XML backup file.  I couldn’t get anything to work and it looked like Evernote had abandoned an import method that was supported at one time. After some mucking around, I ended up downloading an XML file, processed it in OpenRefine, and sent  each link to Evernote in an individual email from a Google Spread-sheet.  I thought I’d share the details of how I ended up doing it.

To do this, you start by inserting your username and password into this URL:

That gives you something like this:


Here is one post:

<post description=”Manufacturing Miracles”
extended=”By Horace Dediu, Asymco, Are wars the only means to motivate a society to boost manufacturing? Uxing Pixxa Perspective player on the iPad — an interesting statistical display machine.”
hash=”cd330643d37cbc870b9e4ac9cbe341e7″  href=”http://pixxa.com/pub/asymco/story/e8h9XtEr.html”
tag=”free ipad statistics”

One thousand of those is a bit daunting, but OpenRefine, one of my favorite tools for wrangling data, has no trouble creating a project by opening an XML file. You end up with columns in your refine project containing the following information:

  • time-date
  • hash (discard this)
  • href – the URL
  • shared & private (which are the inverse of each other and which I discarded)
  • description (basically the title of a post)
  • tag (the guts of the whole thing)
  • extended (more information on the post)

Use Refine to clean things up so that eventually you end up with a Google spread-sheet with columns that contain columns labeled href, description, tag, and an extended description:delicious-links-in-a-google-spread-sheet

Consulting Evernote’s blog on the format for the emailed notes set me up to write a Google Script that would send one email for each row:

function sendEmails() {
// building off tutorial code at https://developers.google.com/apps-script/articles/sending_emails
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 189; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 4)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = "your-evernote-address@m.evernote.com";
var subject = row[1] + " @ test" + row[2];
var message = row[0] + 'n n' + row[3];
MailApp.sendEmail(emailAddress, subject, message);

You can’t send all 1,000 emails at once, as I found out.  After trying to do so, I got an email message back from Evernote saying that most of them had been rejected, although some worked very nicely.  I figured there must be a limit on the number of emails, and indeed Evernote’s helpful folks responded with:

To ensure that our servers are able to provide the best possible performance for all users, as well as to prevent abuse, we have instituted a maximum number of emails that can be sent to your Evernote email address per day.
  • Free account holders may send a maximum of 50 emails per day to their Evernote email address.
  • Premium account holders may send a maximum of 250 emails per day to their Evernote email address.
The count is reset for each user daily at 12:00AM Pacific time.

So I send 250 mail messages a day for a few days.  The notes with information from Delicious aren’t all as beautiful as I’d like, but they have all the information I want.  I’m finding that Evernote makes it really easy to consolidate and clean up my my tags, which now apply to URLs as well as everything else!

2 responses so far

Dec 10 2012

Two handy perl scripts

Published by under code,resources

Here are two handy Perl scripts that I’ve developed, one of them some years ago and the other a few weeks ago.  This zip file perl-scripts-prp-and-csplit contains a “readme.txt”, the Perl scripts and sample input files.

The prp.pl script scoops up many files and does many global search and replace edits in place using character strings in a patterns file that you specify.  I developed it (with some programming help when I got stuck) when I had to download three- or four-hundred pages from Web Crossing to produce an HTML image of a workshop, with all the inline images, enclosures, internal links translated from calls to Web Crossing to references to a local file system.  Writing the patterns to do that was meticulous and thankless, so eventually we discontinued the whole thing, but the Perl script could live on to be useful.

Recently I wrote the csplit.pl script to handle the output from a file produced by Google Refine (soon to be OpenRefine).  Refine can pull many web pages with its “Add column by fetching URLs” command.  Once in Refine, you can parse the data, manipulate it, subset it, and generally slice and dice it.  I wanted to write each resulting cell to its own file, where the output contains the data in one column and it’s written to a file named in another column, producing one file per cell. Here’s the Templating Export script:

-#- {{(cells["blog-tag"].value)}}.htm

The output results in a big file with a “-#-” delimiter and csplit.pl can then chop up the output into multiple files named appropriately.

Comments Off on Two handy perl scripts

Oct 25 2012

Not just one kind of learning

Published by under Learning,Technology

Next week Nancy White and I are doing a talk at USAID on “Keeping Our Eye Out for Learning: How to identify learning practices and leverage them more strategically

We are inviting people to step back and consider a wider range of learning as a step toward asking what, exactly, learning is (and how to do it)? Learning is hard to pin down because it  doesn’t just happen in the classroom or the laboratory or in any specific place. The notion of a community of practice was invented to help focus attention on how indeed learning happened “outside the classroom.” Learning  doesn’t happen at an easy to identify time, either. We can’t even  say, “learning is what happens when you are in your communities of practice.”

In 1946, in “Behavior and Development as a Function of the Total Situation, X” a chapter of Field Theory in Social Science: Selected Theoretical Papers (Washington, DC, American Psychological Association, 1997, http://isbn.nu/9780837172361) Kurt Lewin (the father of Organization Development) wrote, “Learning is a popular term referring to such different processes … [that] no one theory of learning is possible.”  He offered a nice list of examples to show that diversity, which I’ve adapted and illustrated with my own  learning activities:

  • I’m learning to swim a side-stroke facing left because I noticed I really couldn’t do it very well: I was clumsy and tired myself out quickly. (Developing a physical skill.)
  • I’m learning to use quantitative tools like Google Refine and R because I realized I’ve been so deeply into the first-hand, touchy feely world of learning for the past 15 years that I had forgotten that for 20 years as a data geek I actually thought in the SAS language (and the SAS community was an eye-opener for me).
  • I learned to cuss in a complicated world: my parents were very straight-laced medical missionaries from Ohio but we lived next to a slum in Puerto Rico so that by age 5 I was claiming to my mother that in Spanish I was the linguistic authority on what was a cuss word and what not. 🙂
  • And of course there’s the ongoing learning how to collaborate with people, social learning.  Recently I’ve been absorbed in a really good book on military strategy that really comes down to how to work with people: Barry Boyce and James Gimian, The Rules of Victory: How to Transform Chaos and Conflict–Strategies from The Art of War (Boston & London: Shambhala, 2009).  As I read it I think to myself that you can read the whole book as if it were titled “The Art of Learning.”

I guess I’m learning that there is more than just one kind of learning, so more than one theory may be needed.

4 responses so far

Jul 15 2012

Meaning of “the only thing that could have happened”

In an open space conference like the Community Leadership Summit, according to Harrison Owen’s second principle of Open Space Technology, “Whatever happens is the only thing that could have.”  But when we don’t exactly like what happens, we always want to know, Why did it happen that way?  I tried to organize a session and (almost) nobody came.  I was bummed and felt like a complete outsider.  On reflection, here’s why I think that happened:
  • I had a prior commitment the morning the conference kicked off, so I got a friend to propose a session about the CLS12 hashtag for me in the opening meeting of the conference.  That was not ideal: I looked like I was voting with my 2 feet (thus trying to get away with breaking the open space law).
  • Now that I think of it, CLS12 attendees didn’t seem like Twitter-dwellers to me.  Because so many of them are involved in Open Source Software communities, mostly they seem live and work on other platforms, ranging from IRC and email lists to code repositories.
  • Everyone was having too much fun talking to each other face-to-face about vital topics like recruiting documentation contributors or “combating assholes” to be interested in looking at a social network graph.  Who could blame them?

But even though I was disappointed that the session wasn’t “popular,” learning the following made it worthwhile for me:

  • In the scramble, it was impressive to find that Marc Smith, who was in Italy for a conference, somehow found time to help out behind the scenes.
  • Discovering some useful hashtags, like #CMGRCHAT by looking at the Social Network Graph generated by NodeXL.
  • Messing around with the data and practicing using the NodeXL interface in someone else’s company — stimulated by their questions– is a productive learning strategy.  I think NodeXL is pretty workable as an analytical tool, but it is too sophisticated and (given my skill level so far) too complex to use as a window or mirror for a real-time discussion about a conference or community.
  • I was grateful that Ann Marcus showed up, but she was figuring out what how Twitter might be useful, so the SNA angle was pretty opaque.
  • Sitting with Chuck Kisselburg, peering at a discussion about #ICANN, confirmed that seeing a community or group of known people (to him) is entirely different from looking at strangers.  Chuck recognized many people in the ICANN conversation, but I didn’t know that many people at the CLS conference.

Even though the schedule for Sunday seemed completely relevant and interesting, I decided that I was just too over-committed, so I didn’t make it to the second day.  Maybe I learned that I’m pretty much of an outsider in the open source community world.

Thanks to Stephen Walli for permission to use his photo.

Comments Off on Meaning of “the only thing that could have happened”

Jul 13 2012

Where is “the us” in the nework?

I’m always on the lookout for how technology changes “being together” — especially how it can change the sense of a group and of our “place” in a group.  For that, NodeXL and Twitter have real possibilities.

On Saturday, July 14, I’m going to host a session at the Community Leadership Summit to play with these tools in a real life situation.  Please come and play!  To illustrate what I mean, I’m  going to use an example from the CHIFOO meeting the other night.  But the idea is to collect data at 4:00 pm during the coffee break and talk about it at 4:15 in Saturday’s last session.

NodeXL lets you pull all the tweets that use a hashtag and information about the relationships between all the Twitter accounts. Then it calculates a bunch of statistics and generates some pretty pictures, like this one.  You can see lots of more massive and probably more interesting graphs on NodeXL Graph Gallery where Marc Smith and others share their graphs and the datasets they come from and the parameters that were used to create them.  The point about this graph is that you might be able to find yourself in it.

Marc and the other designers are sociologists, so basically they are looking at groups from the outside.  (I’m building on a good paper they wrote about “EventGraphs”, as well as other references that Marc gave me here, and here, and here.) I always assume we look at groups from the inside, whether we know it or not: that’s the place for community development, facilitation, technology stewardship, and all the rest.

I find that NodeXL usually gathers more data than I can get my head around.  Lots of interesting statistics about you and everybody else.  For example at the CHIFOO meeting, @JohnWeiss was the speaker and his score for “Betweenness Centrality” was the highest, even though others tweet more than him or have more followers.  And you can compare lots of little Social Network graphs — what your (Twitter) graph looks like in comparison with everyone else’s.  (At least everyone else who’s using the hashtag at the moment.)

NodeXL also contains a lot of data that you can look at in other ways.  For example, I took all the user tags from everyone in the dataset and put it in Wordle.  I was expecting to see words like “design,” “experience,” “UX,” predominate, but this is what I got. The Wordle reminds me that even though CHIFOO is generally a really brainy and geeky group, we participate in its meetings because it’s in Portland and we get Human contact and we figure out who to follow.  🙂

Anyway, I can get lost in a dataset like the one that NodeXL generates.  There’s always a tricky question of when you’re “done.”  (I learned from John W. Tukey that there is no formula for that. Only gut.)  It depends on what you want.  What I want is to know what a Social Network tool like NodeXL can help us:

  • Figure out who’s left out of the conversation and how we might bring them in
  • Figure out who has something important to say and give them more prominence
  • Figure out who’s making noise and how to filter them out
  • Figure out how to make Twitter and other tools really support and extend face-to-face interaction.
  • Profound questions like “Where do I fit?” “Who else is around me and  how are they connected to me and to each other?” and, “Can I make things  better?”

The NodeXL developers want to make it sooo easy to generate a Social Network Graph that we do it as a matter of course.  And so we learn to look in the mirror.  But I think the only way to learn to look in a mirror is to do it.  Hope to see you on Saturday — in the mirror and face-to-face!  And I hope to share the data from that conference and report back on what people say.

Here’s the dataset: cls12-sat-pm.

2 responses so far

Jun 26 2012

So then she said X

John W. Tukey said something about how valuable it is to think about the world while pawing through a set of data: that’s the essence of “exploratory data analysis.”  Meaning that in real life, the most fruitful time we spend is when we are mulling about what a set of data might mean.  “Concluding” and “confirming” get more press but are a lot less fun and may be much less useful.  Back when I was a real data geek at the University of Colorado, I remember getting quite bored when all the wrinkles of a dataset were worked out, but was completely engaged and focused as data retrieval and interpretation were explored.

So I live in awe and some envy and some skepticism at Marc Smith’s Twitter diagrams.  Each one seems like a tour de force, but they always leave me wanting.  NodeXL makes collecting Twitter data so easy, but I always walk away wondering what it is that I’ve seen.  It seems to me that no single view of a set of data is interesting beyond all the others: what’s interesting (and useful) is when we can look at from angles, such as:

  • I was there, I tweeted at #oce12 and was thinking about it afterward.  Can I see myself in the dataset or in the graph?
  • If I look at the data from one point of view I see something slightly different than I do from the other(e.g., the two graphs in this posting).
  • I chatted with Alice MacGillivray (@4km) who made this observation: “One pattern I noticed is that ‘outsiders’ tended to be people who were tracking the OCE tag AND were already connected to at least one of us. Not surprising but raises challenges for offsite engagement.” That’s a reminder that part of our intention was to engage people who were not at the face-to-face event and demonstrate how that can happen.

I think that data about communities and social interaction is even more full of diverse meanings, so we should always resist closing in on “this is what it means.”  We need to come up with more stories from our vast treasure troves of data.  More statements such as:

  • That reminds me that what I was really trying to do or should have tried to do at that event was X.
  • And the outlier-person or outlier-topic that’s most interesting for future exploration is X.
  • The next time I’m involved with that group, I’m going to do X or say X.
  • When I showed it to X, she said X, which is really interesting, but I can’t repeat it here.

2 responses so far

Mar 30 2012

Kindle edition of Digital Habitats

It has been a while in coming! People have been asking about an e-book version of Digital Habitats since it was published almost 3 years ago! It seems logical, given that technology is a central theme of the book. Especially when it’s been assigned as reading in a class or workshop and people have scruples about using paper.

Now Digital Habitats is now available in a Kindle edition for $9.99:

It turns out that all those tables and pictures that make the book a practical handbook made it take a lot longer to put it in an electronic format. And it took us a while to get to it.

Eventually it will be available on other platforms, but we’re starting with Kindle since free Kindle apps are available on Windows, Mac, iPhone, iPad, BlackBerry, Android and Windows Phone 7!

The electronic version goes with the other resources we’ve provided online, such as:

One response so far

« Newer Entries - Older Entries »