Bundle (activity)

Jump to: navigation, search

This page is about the activity to gather materials on an XO. For other uses of the term, see Bundle.
Gather redirects here.

Bundle allows you to choose a set of entries from one's Journal one by one [or via a search query], and link them together into a single bundle. It is often discussed in combination with the share activity as a way of identifying and sharing sets of materials and objects over the local mesh.

Use cases

sharing multiple objects with local friends

Say you have a set of N photos, essays, music pieces, and other journal objects you want to share with a group of M friends. Ideally, you run the Bundle activity to group these things together into one object, share it with your friends, and each of them in turn gets a copy from you. This should involve a minimum of oversight on your part, after making the bundle and choosing with whom to share.

organizing highlights and streams from recent work

To help review and track work over time, a few types of grouping are useful. Some activities natively support time-based clusters of work by activity-session. The Journal's default view privileges such groupings, and Journal search also supports grouping based on the people with whom one has collaborated.

Grouping by explicit tag is also useful. Bundling should provide additional explicit groups (and can be implemented in the journal/datastore as an extra "bundle-BUNDLENAME" tag).

bundling off-XO materials


  • scripts: capture and publish any scripts used to create the bundle. Others who see missing metadata or other elements will want to be able to rebuild the bundle with different parameters. Taking care with documenting these scripts is the easiest way to guarantee compatibility with attribution and other licensing as well.
  • licenses: note licensing and attribution as granularly as the original creators did. every image in a collection of images, every article in a set of articles, every definition in a set of definitions. If there is a simple way to pass on the aggregate history of collaborative works, include that; else include a link to the source history for the work (or a script that has options for extracting history, latest-author, date, and similar in the format of the original archive).
  • other metadata: see the #metadata section below. capture the original URL or source, and as many of the intervening authors, uploaders, and upload dates as possible, to help accurately identify the provenance of a work.
  • check source archives for APIs for gathering such data. Many sites, including modern mediawiki sites, have an API that will directly give you most information you need without #screenscraping.

Pick a topic that can be covered elegantly in a compact bundle. Most laptop bundles should be under 10M in size. If you think you have a topic that can't possibly be covered this way, consider covering a smaller scope, the same scope with less depth, or the same topic at a different level of abstraction. Larger collections (up to 1G in size) can be packaged for a school library.


...and regular expressions

extracting licenses from Wikimedia Commons

:%s/<a href="[^h][^>]*>\([^<]*\)<\/a>/\1/gc


.*<\/p>//c (rm gfdl-template excess) vim -c "%s///g" -c wq <file> for a in *.txt; do mv "$a" "${a%.txt}.baz"; done ( or mv "$f" "${a#proto-}"; )

This article is a stub. You can help the OLPC project by expanding it.