Introduction < Sugar < TWiki

What is Sugar?

"We like to think that a child's play is unconstrained—but when children appear to feel joyous and free, this may merely hide from their minds their purposefulness; you can see this more clearly when you attempt to drag them away from their chosen tasks. For they are exploring their worlds to see what's there, making explanations of what those things are, and imagining what else could be; exploring, explaining and learning are among a child's most purposeful urges and goals. The playfulness of childhood is the most demanding teacher we have. Never again in those children's lives will anything drive them to work so hard." —Marvin Minsky, The Emotion Machine

Sugar is a learning platform that reinvents how computers are used for education. Collaboration, reflection, and discovery are integrated directly into the user interface. Sugar promotes "studio thinking [1]" and "reflective practice [2]". Through Sugar's clarity of design, children and teachers have the opportunity to use computers on their own terms. Students can reshape, reinvent, and reapply both software and content into powerful learning activities. Sugar's focus on sharing, criticism, and exploration is grounded in the culture of free software (FLOSS).

Home_sharing
Sugar facilitates sharing and collaboration.
Children can write documents, share books and pictures, or make music together with ease.

There are no files, folders, or applications.
Children interact with Activities. Activities includes an application, data, and history of the interaction that can be used to resume and reflect on the child's work .

Everything is saved automatically.
It is our goal that you will never lose your work. Documents will eventually by synced with a network server, adding additional protection.

A Journal is used for accessing data.
The Journal is a diary of things that you make and actions you take. It is a place to reflect upon your work.

Sugar is free and open-source software.
Sugar is licensed under the GNU GPL; updates will always respect the freedom of its users.

Note to parents and teachers

The Sugar Philosophy

Information is about nouns. Learning is about verbs. The Sugar user interface differs from traditional user interfaces in that it is based on both cognitive and social constructivism. We believe that learners should engage in exploration and collaboration. The Sugar platform is based on three defining human principles. These are the pillars of user experience for learning:

Everyone is a teacher and a learner.

Humans are social beings.

Humans are expressive.

Two principles define the Sugar platform:

You learn through doing, so if you want to learn more, you want to do more.

Love is a better master than duty—you want people to engage in things that are authentic to them, things that they love. Internal motivation almost always trumps external motivations.

Three experiences characterize the Sugar platform:

Sharing: The Sugar interface always shows the presence of other learners. Collaboration is a first-order experience. Students and teachers dialog with each other, support each other, critique each other, and share ideas.

Reflecting: Sugar uses a "Journal" to record each learner's activity. The Journal serves as a place for reflection and assessment of progress.

Discovering: Sugar can accommodate a wide variety of users, with different levels of skill in terms of reading, language, and different levels of experience with computing. It is easy to approach, yet it doesn't put an upper bound on personal expression. One can peel away layers and go deeper and deeper, with no restrictions.

Sugar is written in Python, an easy-to-learn interpreted language [3]. This allows the direct appropriation of ideas in whatever realm the learner is exploring: music, browsing, reading, writing, programming, or graphics. The student can go further. They are not going to hit a wall. They can, at every level, engage with and affect the very tools they are using for their personal expression.

Throughout this manual we have added brief "Note to parents and teachers" sections which explain the philosophy behind the Sugar platform. We hope these sections help you guide your children and students through the learning process.

Sugar Labs

Sugar was originally designed for One Laptop per Child (OLPC), as part of an effort to provide an opportunity for a quality education to every child through the distribution of connected laptop computers, our most powerful tools for expression. Sugar is the user interface used on the OLPC XO laptop.It is now available on many GNU/Linux distributions, including Fedora, Debian, and Ubuntu. Anywhere you run Linux, you can probably run Sugar.

Sugar Labs is a non-profit foundation whose mission is to produce, distribute, and support the use of the Sugar learning platform. Sugar Labs supports the community of educators and software developers who want to extend the platform and who have been creating Sugar Activities. Sugar is a community project. It is available under the open-source GNU General Public License (GPL) and free to anyone who wants to use or extend it.

[1] Studio thinking is a term used to describe how visual arts teachers teach and what visual arts students learn. The term is detailed in  Studio Thinking: The Real Benefits of Visual Arts Education. Studio thinking includes "studio structures": demonstrations, projects, and critiques; as well as "studio habits of mind": develop craft, engage and persist, envision, express, observe, reflect, stretch and explore, and understand the art world. In the context of Sugar, studio thinking is applied not just to the arts, but to all disciplines.

[2] Reflective practice is a concept introduced by Donald Schön in his book The Reflective Practitioner. Reflective practice involves students applying their own experiences to practice while being mentored by domain experts. In the context of Sugar, the expert could be a teacher, a parent, a community member, or a fellow student.

[3] An interpreted language is a programming language whose instructions are interpreted "on the fly" (or compiled to a virtual machine code) as opposed to precompiled. The significance of interpreted languages to the Sugar platform include: platform independence, ease of debugging, ready access to source code, and small program size. Python is a general-purpose, high-level programming language. It emphasizes code readability and features a minimalist syntax and comprehensive standard library.

Installing < Sugar < TWiki

Getting Sugar

There are many ways to get Sugar. It can come preinstalled on your OLPC-XO laptop.  You can install it as your desktop on your favorite GNU/Linux distribution.  You can run Sugar from a LiveCD as a quick way to explore its features.

Note: Sugar is not yet available for installation on Microsoft Windows® or Apple OS-X®. Please refer to the LiveCD section below if you are interested in trying Sugar on one these platforms.

Sugar on the OLPC

If you have an XO laptop, it probably has Sugar installed. When you power-on your laptop, you should see the Sugar Home View. You are ready to proceed to the chapter on Personalizing Sugar.

Sugar on Ubuntu

The Sugar environment installs easily on Ubuntu 8.04 (Hardy Heron).  You can configure Sugar as your default or alternative desktop, or you can run Sugar in a window with sugar-emulator.  You can use Ubuntu 8.10 (Intrepid) for a more up-to-date release.

Step 1: Enable "Universe"

To install Sugar, you must enable the "universe" software repository, and set "Download from:" to [Main server].

1(a) Use the "Software Sources" tool found under the System -> Administration Menu.

1(b) Check the Universe repository to enable it, if it is not already enabled.

1(c) Set "Download from:" to "Main server"

Step 2: Load the Sugar packages

You can install the Sugar packages with Synaptics.

2(a) Use the "Synaptics Package Manager" tool found under the System -> Administration Menu.

2(b) Open the Search menu by clicking the Search button at the top of the Synaptics window.

2(c) Search for Sugar by typing "sugar" into the text field.

2(d) Mark the Sugar package for installation by clicking the check box.

In the same way, install "sugar-activities". The rest of the required packages are automatically added to the selection.

2(e) Apply the changes by clicking the Apply button at the top of the Synaptic window.

Step 3: Start Sugar

Now that you have Sugar installed, you can choose it as your login session. You first need to reboot Ubuntu (you only need to do this once) and then at the log-in screen click the "Options" button:

Choose "Select Session" as shown and the a pop-up appears:

Choose "Sugar" and click "Change Session" and log-in normally.

Alternatively, you can start Sugar inside a running GNOME or KDE session by installing the "sugar-emulator" package, pressing "Alt+F2", and typing sugar-emulator in the dialog. This runs Sugar in a window, but it may not work with all displays. 

Tip of the hat

Sugar packages for Ubuntu are created and maintained by the Ubuntu Sugar team.  The team welcomes new contributors to test, document, triage, and maintain packages.

Other GNU/Linux distributions

Sugar Labs maintains a list of supported systems. Please see http://wiki.sugarlabs.org/go/Supported_systems to determine if your favorite distribution is supported.

Sugar LiveCD

A Sugar LiveCD contains a complete, functioning Sugar distribution and operating system on a removable medium. The Sugar LiveCD does not alter files already installed on your computer.  It returns to its previous state when the LiveCD is ejected and the computer is rebooted. The Sugar LiveCD allows you to temporarily run Sugar; this allows you to:

explore Sugar and test how the platform runs on your hardware

demonstrate and potentially test Sugar (at full speed)

leave the target machine unaffected when you are finished with your exploration

You can use the Sugar LiveCD to create a "virtual Sugar lab" at a school, where the existing computer lab's machines are booted into a Sugar environment.  Data is stored on a network or remote storage device.  This can be done without changing the school lab's existing software.

Step 1: Download the LiveCd image

ftp://www.rohrmoser-engineering.de/pub/XO-LiveCD/XO-LiveCD_080812.iso

This release is based on Joyride Build 2282; it demonstrates many Sugar features. Activities are constantly being added and updated. Please see http://wiki.sugarlabs.org/go/Supported_systems for information about other releases as they are released.

Step 2: Burn the image onto a CD ROM, DVD, or copy it onto a USB stick.

Steps to burn the image depend on your current operating system.

Windows

2(a) If you do not already have software installed to burn the image, you can use IsoRecorder, a free and open burning application.

2(b) Insert a blank CD into the drive and select Do nothing or Cancel if an autorun dialog pops up in Windows. 

2(c) Start Infra Recorder, select the "Actions" menu, then "Burn Image...".

Mac OSX

Launch Disk Utility (Applications → Utilities → Disk Utility).

If you see the ISO in the left-hand pane, select it.

Click the Burn button in the toolbar. (If you did not select the ISO in step two, you'll be prompted to find it.)

Ensure that the "Verify burned data" checkbox is selected (you may need to click the disclosure triangle to see the checkbox).

Click "Burn". The data is burned and verified.

Linux

Please refer to your distribution's documentation on burning ISOs.

Step 3: Insert the LiveCD into the target computer and reboot to run Sugar.

Tip of the hat

Wolfgang Rohrmoser and Kurt Gramlich maintain the Sugar LiveCD.  They appreciate feedback at http://lists.laptop.org/listinfo/livebackup-xo-cd.

Note to parents and teachers

Children learn most effectively when there are multiple computers running Sugar.  This configuration allows children to use Sugar's sharing and collaboration features. All of the computers running Sugar must be connected to the same Jabber server. You can set the Jabber server in the Network panel of the Sugar Control Panel. network_panel_jabber

Please refer to the Getting Connected chapter and the Network section in the Personalizing Sugar chapter for additional details about how to set up multiple computers running Sugar in your classroom or home.

Note to software developers

You can set up a Sugar development environment using "sugar-jhbuild".  "Sugar-jhbuild" automatically downloads and builds Sugar from the latest source code in the development tree.  You can find instructions for setting up a Sugar development environment at http://www.sugarlabs.org/go/DevelopmentTeam/Jhbuild .

Distributors can find the latest sources for the Sugar components online at http://sugarlabs.org/go/ReleaseTeam/CurrentRelease/Sucrose#Getting_the_sources.

Personalising < Sugar < TWiki

Personalizing Sugar

You can customize Sugar to meet your needs.  You can change options such as:

the color of your XO icon

your nickname

the language used in the interface

the power-saving features

The Sugar Control Panel is the place to configure your system. 

Note: Many of the changes described in this chapter require that you restart Sugar (ctrl+alt+erase) for them to take effect.

Opening the Sugar Control Panel

Hover over the XO icon in the center of the Home View and a menu appears. Select Control Panel.

Main Panel

The Main Panel has eight categories of options.

You can use the text box at the top of the window to search the available options. Options that don't match the search text are dimmed.

You accept changes made on the category panels by clicking the "OK" button in the top right corner. Clicking the "Cancel" button discards the changes and returns you to the main panel.

You can quit the control panel by clicking the "X" in the top right corner of the panel.

About Me

Note: If you make changes on this panel, you must restart Sugar (ctrl+alt+erase) for them to take effect. Caution: You may lose any work you have open.

Name

You can change your user name in this box.  The user name appears when you start Sugar.

Color

Click the XO icon to cycle through the colors for it. These colors show up in the Neighborhood View, Group View, Home View, on your Frame and when sharing with other Sugar users. There are almost 400 different color combinations available, which consist of a combination of six base-colors (red, orange, yellow, green, blue, purple) used as stroke-color and fill-color and three shades (light, medium, dark).

Please see wiki.laptop.org/images/0/05/Buddy-Icon-Color-Matrix.pdf  for an overview of all the available color combinations.

About my XO

Identity

Some computers, such as the XO laptop, report the serial number here.  You might need the serial number for repair service or to request a developer key.

Software

Here you can see which software and firmware version is currently installed on your system.

Date & Time

Note: If you make changes on this panel, you must restart Sugar (ctrl+alt+erase) for them to take effect. Caution: You may lose any work you have open.

You can set your time zone in multiple ways:

Select a location such as Europe/Vienna.

Enter an offset to Greenwich Mean Time (GMT) or Coordinated Universal Time (UTC), for example: GMT+2 

Frame

Note: If you make changes on this panel, you must restart Sugar (ctrl+alt+erase) for them to take effect. Caution: You may lose any work you have open.

Activation Delay

You can change the delay for activating the Frame. You can set the delay separately for the corners and edges.

"instantaneous" means that the Frame appears immediately when you move the pointer to that position (corner or edge).

"never" means that moving the pointer to that position never activates the Frame.

Values in the middle of the range indicate what fraction of a second the pointer must remain in the position before the Frame activates. The range is from 0.001 to 0.999 seconds.

In the default configuration the Frame is instantly shown when the pointer is moved into one of the corners of the screen. 

Language

Note: If you make changes on this panel, you must restart Sugar (ctrl+alt+erase) for them to take effect. Caution: You may lose any work you have open.

You can select your system's default language. Even though your language might be included in the list, the translation might not be complete or available.

Network

Wireless

This checkbox allows you to turn the system's wireless radio on or off.  For example, if you use the system on an airplane, you must turn the radio off.

Mesh

Note: If you make changes to this setting, you must restart Sugar (ctrl+alt+erase) for them to take effect. Caution: You may lose any work you have open.

Here you can enter the name of a collaboration server based on jabber. This lets you to share Activities with other people connected to the same server, even when they're located half-way around the world.

Please note that some local OLPC user clubs and universities run their own collaboration server so it is worth checking wiki.laptop.org for relevant information.

Power 

You can configure the power-saving features of your system.

Please note that these settings are always used, even when the computer is plugged into a power outlet.

Click the check boxes to enable or disable the following options.

Automatic power management

This mode dims the brightness of the display and turns off the CPU after one minute when there is no input via the touchpad or keyboard and no Activities that make heavy use of the CPU.

Extreme power management (disables wireless radio, increases battery life)

Enabling this mode turns off your wireless radio.  This significantly increases your system's battery life. Enabling this option turns off the two LEDs on the left side of the laptop. You won't be able to see any other networks or XOs on your Neighborhood View. Enable this mode for maximum battery life.

Software updates

You can select, install, and update Activities on your system.

Checking for updates

If your system is connected to the Internet, it tries to fetch a list of all the available Activities.

If your system isn't connected, the message "Could not access the network to check for updates" appears. 

Selecting updates

The panel shows a list of new or updated Activities that are available. The overview also contains information about the Activity's version and size. An Activity is selected if its check box contains a check mark.

Select the Activities that you want to install on your system, and clear the checkboxes for the ones you don't want to install.

Click "Install selected". 
su_choose_s

Modifying Activity groups

You can click on Modify activity groups to enter alternative activity groups.

Downloading updates

A status view informs you of the download and installation progress.  

Software is up-to-date

If all your Activities are up-to-date, you see the following message.

su_updated_s 

Interface < Sugar < TWiki

The Sugar User Interface

The Sugar platform encourages learning through personal expression.

The user interface differs from the traditional Desktop metaphor. It uses a "zooming" metaphor—each view represents a different scale of interaction. You move between a view of the network "neighborhood", your "friends", your "home page", and your currently open application ("Activity"). Each view occupies the entire screen. There are no overlapping windows to deal with.

zoom
With Sugar, you zoom between views: from your network neighborhood to your current Activity.

Sugar supports sharing and collaboration by default. Sugar brings many of the rich collaboration mechanisms we are accustomed to from the Internet directly into the user interface. Sharing a file, starting a chat, collaborating in a writing exercise, or playing a game with other people are never more than a single click away.

Sugar incorporates a Frame around the border of the screen; the Frame holds status information, such as alerts, a clipboard, open Activities, and your current collaborators.

Sugar maintains a Journal (or diary) of everything you do; it is a place for reflection. You do not need to save files or create folders; Activities automatically save your work to the Journal.

Sugar emphasizes discovery.  Every object in the interface has a menu that reveals more details and options for action. Many Activities include a "view source" option; for example, the Browse Activity lets you examine the HTML code that reveals how a web page is created. Most Activities are written in the Python scripting language.  You can see how they work, and make changes to them.

Sugar has clarity of design. There is  no need to "double click". There are no overlapping windows. Sugar uses color and shape throughout the interface to provide a fun, expressive, approachable platform for computing.

For parents and teachers

Activities, not Applications
Sugar does not have applications in the traditional sense. Activities are distinct from applications in what they focus on (collaboration and expression) and in their implementation (journaling and iteration). This is more than a new naming convention; it represents an intrinsic quality of the learning experience we hope the children will have when using Sugar.

Presence is always Present
Everyone has the potential for learning and teaching. Sugar puts collaboration at the core of the user experience in order to realize this potential. The presence of other learners encourages children to take responsibility for others' learning as well as their own. The exchange of ideas amongst peers makes the learning process more engaging and stimulates critical thinking skills. Sugar encourages these types of social interaction with the laptops.

Most Activities have the potential to become network enabled. For example, consider the Browse Activity. With typical computer interfaces, you browse in isolation. In Sugar, sharing links is an integral part of Browse, transforming web-surfing into a group collaboration.

Tools of Expression
Sugar emphases thinking, expressing, and communicating using technology. Sugar starts from the premise that we want to use what people already know in order to make connections to new knowledge. Computation is a "thing to think with". Sugar makes the primary activity of the children one of creative expression, in whatever form that might take. Most Activities focus on the creation of some type of object, be it a drawing, a song, a story, a game, or a program. In another language shift describing the user experience, we refer to objects rather than files as the primary stuff of creative expression.

As most software developers would agree, the best way to learn how to write a program is to write one, or perhaps teach someone else how to do so. Studying the syntax of the language is useful, but it doesn't teach one how to code. We apply the principle of "learning through doing" to all types of creation. For example, we emphasize composing music over downloading music. We also encourage the children to engage in the process of collaborative critique of their expressions and to iterate upon this expression as well.

Turning the traditional file system into objects speaks more directly to real-world metaphors: instead of a sound file, we have an actual sound; instead of a text file, a story. In order to support this concept, Activity developers can define object types and associated icons to represent them.

Journaling
The concept of the Journal, a written documentation of everyday events, is generally understood, albeit in various forms across cultures. A journal typically chronicles the Activities one has done throughout the day. We have adopted a journal metaphor for the file system as our approach to file organization. The underlying implementation of the journal does not differ significantly from file systems in contemporary operating systems.  The file system layout is less important than the journal itself.

The journal embodies the idea of storing a history of the things a child has done and the Activities a child has participated in. The child, parent, and teacher can reflect on the journal to assess progress.

The Journal stores objects created while the student runs an Activity. This function is secondary, although important. The Journal naturally lends itself to a chronological organization.  Objects in the Journal can be tagged, searched, and sorted by a variety of means.  The Journal records what a child has done, not just what the child has saved. The Journal is a portfolio or scrapbook history of the child's interactions with the machine and also with peers.

The Journal includes entries explicitly created by the children with entries that are implicitly created through the child's participation in Activities.  Developers must think carefully about how an Activity integrates with the Journal more so than with a traditional file system that functions independently of an application. The Activities, the objects, and the means of recording all tightly integrate to create a different kind of computer experience.

HomeView < Sugar < TWiki

Home View

Use the Home View to begin new Activities.

Note: When you have clicked on an Activity's icon, please wait for that Activity to start.  If you get impatient and happen to click again on the Activity's icon, you may end up with that Activity being started twice.

When you click an Activity's icon, you see a start-up view while that Activity initializes.  Once the Activity is running, you are placed into its Activity View.  If the Activity fails to start, you are instead returned to the Home View.

To get to the Home View, click the Home icon on the Frame or press the F3 key.

The Home View has several modes.  Each mode has a different arrangement of Activities:

Your favorite Activities in a ring (Ring mode)

Your installed Activities in a list (List view)

Your favorite Activities arranged freeform (Freeform mode)

Favorites View

1. Search box

Use the search box to find Activities.  Note: If in List view you see fewer Activities than expected, you may need to click the small X at the right end of the search box to undo an unintended search request.

2. View modes

Click an icon to switch to a different view.  Hover over the Favorites icon to see a menu that  lets you pick Ring mode or Freeform mode.

3. Activity icon

Click an Activity icon to launch that Activity (which causes it to appear on the Frame). Only Activities that have been "starred" as favorites appear in this view. (Please see the List View below for more details.) 

4. XO icon

Hover the pointer over the "XO" in the center of the Home View to bring up a menu and to access the Sugar Control Panel. (Please see the chapter on Customizing Sugar.)

5. Active-Activity icon

The icon of the currently active Activity appears under the XO icon.

List View

Use the List view to manage all of your Activities and to choose which Activity icons appear on the Favorites view.

1. Activity entry

Each entry in the list has:

a star, which is colored for favorite Activities, which appear in Ring mode or Freeform mode. Click a star to color or clear it.

an icon

a title

a version number

how long ago it was installed

2. Icon

Click the icon to launch the Activity.  Caution: By clicking Erase in the icon's hover menu, you can uninstall that Activity from your system.

3. Version number

Lets you compare your version against an availability list such as wiki.laptop.org/go/Activities  to see if it is up to date.

4. Scroll bar

The Activity list may extend beyond the screen. Use the scroll bar to move through the list.

Favorites View in Freeform Mode

The Freeform mode of the Home View works the same as the Ring mode, but the icons are arranged arbitrarily instead of in a circle. You can drag the icons in this View to visually group them in a way that makes sense to you.

XO Menu

Use the hover menu that appears over the XO icon to access the Sugar Control Panel and to shutdown or restart the computer.

ActivityView < Sugar < TWiki

Home View

Use the Home View to begin new Activities.

Note: When you have clicked on an Activity's icon, please wait for that Activity to start.  If you get impatient and happen to click again on the Activity's icon, you may end up with that Activity being started twice.

When you click an Activity's icon, you see a start-up view while that Activity initializes.  Once the Activity is running, you are placed into its Activity View.  If the Activity fails to start, you are instead returned to the Home View.

To get to the Home View, click the Home icon on the Frame or press the F3 key.

The Home View has several modes.  Each mode has a different arrangement of Activities:

Your favorite Activities in a ring (Ring mode)

Your installed Activities in a list (List view)

Your favorite Activities arranged freeform (Freeform mode)

Favorites View

1. Search box

Use the search box to find Activities.  Note: If in List view you see fewer Activities than expected, you may need to click the small X at the right end of the search box to undo an unintended search request.

2. View modes

Click an icon to switch to a different view.  Hover over the Favorites icon to see a menu that  lets you pick Ring mode or Freeform mode.

3. Activity icon

Click an Activity icon to launch that Activity (which causes it to appear on the Frame). Only Activities that have been "starred" as favorites appear in this view. (Please see the List View below for more details.) 

4. XO icon

Hover the pointer over the "XO" in the center of the Home View to bring up a menu and to access the Sugar Control Panel. (Please see the chapter on Customizing Sugar.)

5. Active-Activity icon

The icon of the currently active Activity appears under the XO icon.

List View

Use the List view to manage all of your Activities and to choose which Activity icons appear on the Favorites view.

1. Activity entry

Each entry in the list has:

a star, which is colored for favorite Activities, which appear in Ring mode or Freeform mode. Click a star to color or clear it.

an icon

a title

a version number

how long ago it was installed

2. Icon

Click the icon to launch the Activity.  Caution: By clicking Erase in the icon's hover menu, you can uninstall that Activity from your system.

3. Version number

Lets you compare your version against an availability list such as wiki.laptop.org/go/Activities  to see if it is up to date.

4. Scroll bar

The Activity list may extend beyond the screen. Use the scroll bar to move through the list.

Favorites View in Freeform Mode

The Freeform mode of the Home View works the same as the Ring mode, but the icons are arranged arbitrarily instead of in a circle. You can drag the icons in this View to visually group them in a way that makes sense to you.

XO Menu

Use the hover menu that appears over the XO icon to access the Sugar Control Panel and to shutdown or restart the computer.

NeighbourhoodView < Sugar < TWiki

Neighborhood View

You can use the Neighborhood View to connect to the Internet and to collaborate with others.

To see the Neighborhood View, click the Neighborhood icon on the Frame. You can also use the Neighborhood button for this purpose if your keyboard has one, or press the F1 key.

1. Search menu

You can find find people, Activities, or access points using the search menu.

2. Shared Activities

You can join an Activity by clicking the Activity's icon. Shared Activities appear as icons in the Neighborhood View.

3. XO icon

Other Sugar users appear in the Neighborhood View. By hovering over an XO icon, you can discover the nickname of that person and can add them as a friend or invite them to join you in a shared Activity.

4. Mesh icon

A mesh icon lets you connect to a school server or other computers on a mesh (802.11s) network.  The OLPC XO has three mesh network channels. By clicking a mesh icon you join that particular mesh network, and disconnect from an access point network. The other XO icons shown change according to who is on that network.

5. Access point

WiFi hot spots (Internet access points) appear as circles in the Neighborhood view. If you hover over a circle, the name of the access point (the ESSID it broadcasts) appears.

To connect to a hot spot, click the circle. If the circle shows a lock symbol, expect to be prompted to enter a key or password. The inside of the circle blinks while your system tries to connect. Once connected, the icon is surrounded by parentheses. An icon for the connection appears at the bottom right of the Frame. By clicking an access point icon you are indicating that you do not want to collaborate through a mesh network – which other XO icons are shown may change accordingly.

To disconnect, hover over the circle, and choose Disconnect on the menu.  Or hover over the icon in the Frame, and choose Disconnect on the menu. 

connected Once a connection is made, the icon changes.

GroupView < Sugar < TWiki

Sugar  GroupView

Group View

The Group View shows you your friends. (XO icons that are dimmed represent friends who are currently offline.)

To show the Group View, click the Group icon on the Frame or press the F2 key.

Adding a friend

You add friends to the Group View from the Neighborhood View.

When you hover over an XO icon, the Make friend menu option appears. Click this option to add that person as a friend.

Your new friend's icon then appears in the Group View.

Removing a friend

You can remove a friend from the Group View using the hover menu. Click Remove friend. That person's icon disappears from the Group View.

Inviting a friend

From the hover menu, you can also invite friends to join your current Actvity. There is more information about invitations and sharing in the Collaborating chapter.

TheFrame < Sugar < TWiki

The Frame

The Frame, which you can get to from any view, contains a clipboard, incoming invitations and notifications, buddies, open Activities, and global information that is used across all Views.

1. Clipboard

The left-hand edge of the Frame serves as a clipboard. You can drag objects such as images and text to and from the clipboard, and from and to Activities.

2. Zoom menu

The Zoom menu is on the upper-left edge of the Frame. Use it to move between the four Sugar views: Neighborhood, Group, Home, and Activity.

3. Open Activity list

The list of currently open Activities appears on the top edge of the Frame. The active Activity is highlighted. (The Journal always appears here.)

Sometimes an unlabeled circle appears here --- it usually represents an additional full-screen session started by an Activity whose icon already appears in the top edge of the Frame.

Invitations also appear on this portion of the Frame. They appear as icons in the color of the person who sent them.

4. Active buddy list

People you are currently collaborating with appear on the right edge of the Frame.

5. System status

Battery, speaker, and network status appear on the lower edge of the Frame.

The Clipboard

You can drag items on the clipboard into Activities. A hover menu also lets you remove them from the clipboard, open them in an Activity, or save (keep) them in your Journal.

TheJournal < Sugar < TWiki

The Journal

The Journal Activity is an automated diary of everything you do within Sugar. Sugar Activities use the Journal as a place to save your work. You can use the Journal as a place to revisit old work, to resume incomplete work, to organize your completed work, and to reflect upon your progress as a learner.

The Journal keeps a record of what you do and the things your create such as photos, drawings, and writings. You can search for items in the Journal or sort entries by type or date. You can also click an entry to get a detailed view. You can resume an Activity by clicking the icon for that entry.

The Journal also supports external storage media such as a USB device or SD card. When you plug a USB device into the XO, you can access the contents of the USB device using the Journal. Click  the USB icon to see the content on an attached USB storage device. You can also copy information from the Journal onto removable media—such as a USB device—as a means of backing it up. If you are connected to a school server, you can access its backup system.

Showing the Journal

To show the Journal, click the Journal icon on the Frame.

On an XO laptop, you can press the magnifying glass key in the top row of the keyboard to immediately open the Journal and search.

Journal features

The Journal View contains a menu and a list of journal entries: 

1. Star

You can mark important entries to help them stand out in the list by clicking the star icon for that entry. When you click the star icon, the star is colored in.

2. Icon

Each Journal entry has an icon. The color of the icon shows who created the entry. For example, if you copy a photo from a friend, the photo's icon has your friend's colors.

You can launch the Activity for the entry by clicking the icon.

A hover menu may reveal additional options. In particular, "Erase" deletes that entry from your Journal.

Caution: "Erase" deletes any data associated with the entry shown. For example, if you delete an entry that shows that you installed an Activity, you delete the Activity as well.

3. Entry name

Each entry has a name. You can edit the name by clicking it. If the Journal view is showing the contents of a removable storage device, the Linux file name is shown here, with the path and the file name extension stripped off.

4. Buddy icons

If other participants joined you in this Activity, icons in their colors appear here.

5. Elapsed time

The Journal displays the time since the most recent change to the entry. 

6. Detail view button

Click this button to see detailed information about the entry. See "Journal detail view", below.

7. Scroll bar

When there are more entries in the Journal than can fit on the screen, you can use the scroll bar to scroll through them.

8. Search box

Type words in the box to search for entries that match those words. Entries are displayed when they contain all of the typed words. Comparison will be against all of:

the entry name field

the description field (see "Journal detail view")

the tag field (see "Journal detail view")

Note: the small x button at the right of the box shows that searching is being applied. To cancel your search, click on that x.

9. Select by type

Choose an entry type to display only entries of that type. Types include the Activity that created an entry, or the object type, such as, picture, sound, text, and so on.

10. Filter by date

You can limit the Journal View to entries made within the past day, week, or month.

Journal detail view

The Detail view appears when you click the Detail view button for an entry. This view lets you examine and annotate the entry.

1. Back icon line

You can click anywhere in this line to return to the main Journal View.

2. Star and Icon

These items duplicate their functions on the main Journal view—a star represents a special, never-deleted Journal entry and the icon color indicates who created it originally.

3. Thumbnail image

Each entry has a thumbnail image that is created automatically.  The image shows the Activity screen when the last change to the Journal entry was saved.

4. Entry name

You can change the name of the entry by clicking it and typing in a new name.

5. Elapsed time

Displays the time since the most recent change to the entry.

6. Description field

You can type a description of the entry, which you can use to find this entry later using the Search box in the main Journal view. Use a description to remind you of what you did. For example: "Flowers I saw on the hike to the waterfall".

7. Tag field

You can enter search tags. Use keywords to describe a journal entry so that you can find it later using the Search box in the main Journal view. You can use keywords to help you "group" this entry, for instance by origin or context.

8. Participants

Displays the XO icons of each person who participated in a shared Activity.

9. Resume button

You can click the Resume button to resume an Activity. A hover menu may show additional options. For example, you can resume working with an image using either the Browser or the Paint Activity.

10. Copy button

You can copy a Journal entry to the clipboard (or to one of the removable storage devices shown on the bottom edge of the Journal screen) by clicking the Copy button.

11. Erase button

You can erase an entry by clicking the Erase button.

Caution: Once you erase an entry, it cannot be restored unless you have backed up your Journal.

When resuming from the Detail View, you can choose among different Activities.

Using removable media

When you insert removable media—such as a USB device or SD card—it appears as an icon on the bottom edge of the mail Journal view.

1. Journal

Click the Journal icon to show the Journal View.

2. USB device

Click the USB icon (or SD icon) to show the removable-media file system.

You can drag Journal entries onto the USB device. You can also drag entries from the USB device to the Journal.

To remove (unmount) the external file system, choose Unmount on the hover menu. 

Caution: It may take time for the hover menu to appear. It is easy to make a mistake and click the icon itself when you intended to click Unmount.

Caution: If you have a Terminal running you may inadvertently have your removable media locked. The safest way to remove media is after powering off your computer.

Note to parents and teachers

The Journal keeps a record of everything a child does within Sugar: which Activities they use and what content they create. It also keeps a record of group Activities, such as participation in a shared Write or Browse session.

The Journal encourages reflection. You can refer to it to assess a child's progress, much in the spirit of "portfolio" assessment. You can also use it as a catalyst for discussion with your child or student. We encourage the use of the description field within the detail view of Journal entries as a place to annotate or comment up entries.

WhatIsAnActivity < Sugar < TWiki

What Is an Activity?

Sugar applications are called "Activities". Activities include an application as well as sharing and collaboration capabilities, a built-in interface to the Journal, and other features such as the clipboard.

The Journal Activity is pre-installed. Other Activities can be distributed as part of an Activity Pack. There are many, many others you can install yourself.

Activities you have specified as favorites appear as a ring of icons around the XO icon in the center of the Home View. All the Activities you have installed are shown in the List mode of the Home View.

Some Activities allow Sugar users to work and learn cooperatively. For example, Write allows several users to collaboratively create a document. Read allows several users to read the same document or a teacher to share a book with an entire classroom. Memorize allows a group of users to play a game together.

Another class of Activities allow users to write software. A variety of computer languages such as Logo, SmallTalk, CSound, and Python are supported within the TurtleArt, Etoys, TamTam, and Pippy Activities.

LaunchingActivities < Sugar < TWiki

Launching Activities

You can launch an Activity in four different ways:

Click the Activity icon in the Home View.

Resume an Activity from the Journal View.

Join a shared Activity from the Neighborhood View.

Accept an invitation by clicking the invitation icon on the Frame.

When you launch an Activity, its icon flashes in the middle of the screen while the Activity loads.

Launching from the Ring view

Click the icon or click an option on the hover menu.

Launching from the List view

Click the icon or click an option on the hover menu.

Resuming from the Journal

Click the icon or click Resume on the hover menu.

Joining a shared Activity

Click the icon or click an option on the hover menu.

Joining an Activity by accepting an invitation

Click Join in the hover menu on the Frame.

Collaborating < Sugar < TWiki

Collaborating

There are two similar but different modes of collaborating within Sugar:

Send an invitation to collaborate on an Activity.

Share an Activity in the Neighborhood View.

The difference between the two modes is subtle but important.  When you send an invitation, you have specific control over who joins you. When you share with the neighborhood, you are opening your Activity up to anyone who is visible in the Neighborhood View.

Sending an invitation

If you want a friend to join you in an Activity, send them an invitation. You can invite as many friends as you'd like by following the steps outlined below. The steps use the example of inviting someone to talk in the Chat Activity.

Step 1: Start the Activity.

You must be running an Activity in order to send an invitation. For example, open Chat from the Home View.

Step 2: Go to the Neighborhood View or the Group View.

Step 3: Hover over the icon of the friend you'd like to invite, and click Invite to.

Your friend receives the invitation.

Step 4: Return to your Activity and start collaborating.

For example, switch back to the Chat Activity. 

Receiving and accepting an invitation

Step 1: Notice that you have an invitation.

The notification of an invitation appears in the upper-left corner of the screen and on the Frame.

The invitation is an Activity icon.  The icon is the color of the person who sent the invitation.

Step 2: Click the icon to accept the invitation.

You can accept the invitation from the Neighborhood View or the Frame.

In the Neighborhood View, click the other user's icon.

On the Frame, click the invitation icon, or click Join on the icon's hover menu.

Note: You do not have to accept an invitation. Just ignore it or click Decline on the invitation icon's hover menu.

Step 3: Start collaborating.

As soon as you accept an invitation, you switch to the Activity.

While you are collaborating, your collaborators' icons appear on the Frame.

When you leave the Activity, you end the collaboration.

Sharing an Activity

You can share an Activity if you want anyone from your Neighborhood View to join you.

Step 1: Start the Activity.

You must be running an Activity in order to share it. For example, open Record from the Home View.

Step 2: Once the Activity is running, select the Activity tab.

Step 3: On the Share with menu, click My Neighborhood.

An icon representing your shared Activity appears in the Neighborhood View.

Your XO icon appears above the Activity icon in the Neighborhood View.

Joining a shared Activity

You can join any Activity that appears in the Neighborhood View.

Step 1: From the Neighborhood View, click the icon representing the shared Activity you would like to join.

Step 2: Start collaborating.

The Activity opens as soon as you click the Activity's icon. 

The approach to collaboration varies from Activity to Activity. In the Record Activity, thumbnails of photographs are shared.  The photograph's frame is in the same colors as the XO icon of the person who took the photo.

On your Frame, you can see the icons of all of the people you are collaborating with.

You can exit a shared Activity at any time by clicking the Activity tab and clicking the Stop icon.

Switching Activities

You can switch between Activities in two ways:

In the Frame, click the icon of the Activity you want to switch to.

Press alt + tab to cycle through your open Activities until you reach the one you want.

Switching using the Frame

Note: You can use the Clipboard and the Journal to copy data between Activities.

Exiting Activities

You can exit an Activity in three ways:

Click the "Stop" icon in the Activity's tool bar.

Press ctrl + q (Note: pressing alt + escape also works in most cases).

Click Stop on the hover menu for the icon of the Activity you wish to stop.

Using the Stop icon

Stopping an Activity from the Frame

Installing Activities

You can install new and different Activities, which you can download and install from a web site, your school server, a USB storage device, or an SD card.

There are two ways to install new Activities:

Use the Browse Activity to download an Activity and then use the Journal Activity to install it.

Use the Terminal Activity to install an Activity directly from a USB device with a typed command.

Installing from a web site

1. In the Home view, click Browse.

startbrowse_1_1

2. Click on the Activities link in the middle of the page (or goto http://wiki.laptop.org/go/Activities/All.).

activities
Note: Not every Sugar Activity is linked from http://wiki.laptop.org/go/Activities/All.  For example, the GCompris collection is found at http://wiki.laptop.org/go/GCompris.

3. On the Activities page, look for a new Activity to install. (In the example below, a Jigsaw Puzzle Activity is installed.)

wikilaptopActivities

4. Click the link to the file that you want to install. (Activity files usually end in ".xo".)

jigsawxo

5. You may be taken to a second page. Click the link to the file to begin the download.

versjigsawxo

6. During the download, you can "Cancel" or "Continue" browsing.

download_in_progress

7. When the download is complete, click "Show in Journal". (If you click "OK", you can continue browsing and finish the installation from the Journal later.)

download_open_in_journal

8. You'll be taken to detail view in the Journal.

journal_detail_view

9. Click on "Start" to launch the Activity. The Activity will start and be installed. It will be included in the list mode of the Home view.

journal_start

Enjoy your new Activity!

jigsawpuzzleactivity

Note: If you didn't install the Activity at the time you downloaded it, you can install it by opening the Journal (click the Journal icon on the Frame) and then opening the detail view of the Journal entry (click the  journal_resume icon on the right side of the entry).

Proceed from Step 8 above.

Installing an Activity from a USB storage device

1. Insert the USB device.

2. Start the Terminal Activity from the Home view.

3. At the prompt, type:

sugar-install-bundle /media/<USB device name>/<filename.xo>

(Substitute the actual name of the USB device in place of "<USB device name>" in the command, and the actual path and filename of the .xo file in place of "<filename.xo>".)
Sugar installs the Activity.

Tip: To determine the name of your USB device, you can go to the Journal Activity and read the name from the icon in the bottom left corner of the screen.

Installing a set of Activities

Activities are downloaded separately from the base Sugar user interface. To install a set of Activities on an OLPC XO-1 laptop:

1. Download dev.laptop.org/~mstone/customization-2.zip.

2. Unzip customization-2.zip onto an empty USB device.

3. Create a directory called "bundles" on the USB device.

4. Download the activities .xo and .xol files that you want to include. (A sample set of Activities is found at wiki.laptop.org/go/G1G1_bundled_activities#G1G1_deployment.)

5. Copy these .xo and .xol files into the bundles subdirectory on the USB device.

6. Shut down your XO-1 laptop.

7. Insert the USB device into your XO-1 laptop.

8. Start up the XO-1 laptop. The set of Activities from the USB device are installed automatically.

Activities Sampler

There are hundreds of Activities written for Sugar and new ones being created daily. A good place to look for new activities is wiki.laptop.org/go/Activities.

Below is a sampler of the variety of Activities created and supported by the Sugar community.

Browse

Browse is a simple Web application that lets you access and search the Internet and share bookmarks with your friends. (See the Browse chapter for more information.)

TamTamMini

TamTam Mini is a fun, powerful way to perform music and play instruments. It is simple enough to be used by even the youngest ages.

Chat

The Chat Activity lets you type messages that can be seen by other Sugar users. It can be used by two people or an entire classroom. (See the Chat chapter for more information.)

Memorize

Memorize is the classic memory game of finding and matching pairs, but with a twist: the items in a pair can be any multimedia object, such as images, sounds and text. You can play existing games as well as create new ones.

SynthLab

SynthLab is a mini-lab for acoustic- and electronic-circuit construction.  It is designed for older children who are ready to venture into more sophisticated sound design.

TamTamEdit

TamTam Edit is an intuitive environment for composing music. You can create, modify, and organize notes on virtual "tracks", which allow for virtually limitless variations in musical styles.

TamTamJam

TamTam Jam is a fun, powerful way to perform music, play multiple instruments, and collaborate musically with other children.

Record

The Record Activity gives you a simple way to take pictures, view slide shows, and record video and audio—all content that can be shared with others. (See the Record chapter for more information.)

The Journal

The Journal Activity is an automated diary of everything you do with your system. You can use the Journal to organize work or revisit a past project. Teachers and parents can use it to assess a child's progress. (See the Journal chapter more information.)

Measure

Measure is a tool that can be used to observe physical phenomena and real-world events. With it, you can measure and log data and create graphs. You can explore the data and connect events with each other.

Draw

The Draw Activity gives you a canvas to draw pictures, by yourself or with friends. You can draw freeform images with a paintbrush and pencil, and use the dedicated toolbar to play and experiment with shapes. You can enter text, import images, and place items however you want. 

Pippy Python

Pippy is a simple and fun introduction to programming in Python, the dynamic programming language underlying much of the software on the laptop.

Distance

You can measure the distance between two laptops by measuring the length of time it takes for sound to travel between them. Along with the Measure and Record Activities, there are many ways to use the laptop to explore the physical environment.

Turtle Art

Turtle Art lets you program a Logo "turtle" to draw colorful and complex artwork. Simple programming elements easily snap together, to bring art to life. (See the Turtle Art chapter for more information.)

Write

Write is a basic text editing application featuring straightforward tools and a simple interface. It provides an easy way to write a story, craft a poem, or complete an essay. It also has more advanced features like image insertion, table creation, and layout operations. It also supports collaborative real-time editing, so a group can work together to edit text easily and seamlessly. (See the Write chapter for more information.)

Etoys

Etoys lets you create models, simulations, and games with text, graphics, and sound. This lets you explore ideas and learn by doing. You can also share desktops with other Etoys users in real time, encouraging immersive mentoring and play. Etoys has a worldwide community of users and developers who are working to create content, curriculum, and examples. (See wiki.laptop.org/go/Etoys for more information.)

Read an eBook

Sugar has a built-in eBook reader. The XO laptop has a screen that rotates 180 degrees and folds down on the keyboard, so you can read while holding the XO like a book. Read your favorite book on the XO while sitting outdoors in the sunlight.

Calculate

Calculate provides a generic calculator with a simple, straightforward interface. It is readable and easy to use for even the youngest children, but also supports more complicated mathematics.

X Windows

The X Windows Activity provides an X Windows System workspace within Sugar. Use this Activity to run standard X Windows programs.

Note to parents and teachers

There is an ever-growing array of downloadable content and built-in access to popular Web-based applications. This includes Google applications, SimCity, GCompris (a suite of award-winning educational software for children), and hundreds of other applications. There are currently thousands of software developers around the world developing content for Sugar. This community is interested in your feedback so that they can better serve the needs of children learning.

Beyondactivities < Sugar < TWiki

Going Beyond Activities

Sugar offers many ways to use a computer beyond just the display screen, although when you use Sugar in new ways, you can think beyond the display. Read on for new ideas of using Sugar or your XO beyond the Activity set and with the Activities currently available.

Create a slideshow

You can install a program called "feh" to display images quickly and offer an automatic slideshow of pictures.

What you need to begin:

A way to take pictures, such as an XO laptop or digital camera.

A USB drive or SD card, and know the name of the device.

An Internet connection.

Activity (step by step)

Take pictures of your family, school, home, and community with the Record Activity or a digital camera.

In the Journal Activity, drag the pictures onto the USB or SD icon on the Frame to copy the pictures onto a USB drive or SD card.

Open the Terminal Activity and click the root button. 

Type the following command and then press enter.
yum install feh

Enter y for yes when prompted for permission to go ahead with the installation.

After feh is installed you can run your slide show by typing the following in the Terminal Activity:
feh -F -D 5 --scale-down /media/cardname/ where -F plays full screen and -D 5 plays the slideshow with a five second delay between images.

Press ctrl-q or Q to quit displaying the slideshow.

Ideas for Expansion in the Classroom

Create
Make artwork in the Draw Activity instead of taking pictures using the Record Activity for your slideshow pictures.

Create a digital art or photography gallery with all of your computers hanging on the wall or leaning as if they were easels.

Collaborate
Share pictures by copying files onto other student's SD cards or USB drives.

Have students collaborate with the Draw Activity by having each student draw for one minute, much like the Swarm Sketch site at http://swarmsketch.com/

Have students download pictures about a certain topic or use tags on sites like http://flickr.com to create a slideshow of only cats, dogs, or other pets.

Adapt
Think of a place that could display the computer slide shows for a practical purpose, such as offering changing advertisement at a store or restaurant. How could students make a business model for selling advertisements, designing slides, and displaying them on their slide show like a billboard?

Extend
Have students create collages or mosaics with more than one computer screen stacked on another, running the slideshows all at one time.

Research the command line parameters for feh. Can they modify the timing of the slideshow so that stacks of pictures create a larger image?

Explore
Could students use their slideshow to convince someone to purchase a product or make a decision?

Reflect
Make a video of your art or photography gallery premier or write a journal entry about your experience sharing photos or artwork.

Reading with Sugar

Read books that are stored on the computer or on the Internet. One way to read books is to open the Browse Activity, click the books link, and then click encyclopedia, picture books, or dictionaries.

The Sugar OS contains a library that offers many interesting reading materials in many languages. These books are sometimes called "ebooks" for electronic books, and Portable Document Format (PDF) files are one type of ebook.

If you are using an XO, you might like to flip the laptop display so that it lays flat while reading ebooks.

Reading PDF files

The way to view PDF files is to select the file in the Browse Activity or in the Journal, and then click the arrow button to have the Read Activity open it.

The Read Activity and Watch & Listen Activity are two activities that are not started from the Home View. You access them through a "launching" Activity like Journal or Browse.

Reading epub files

Epub is an electronic book or ebook format that you can read on your computer after downloading and installing a reader such as FBReader, and downloading and storing the epub files that you want to read. To complete this procedure, FBReader must be installed.

Installing FBReader

To install FBReader, connect to the Internet, open the Terminal Activity and type:

su yum install fbreader

After you press enter, the installer downloads and installs fbreader. Next, you'll want to download some epub books. 

Downloading and viewing books

To download and view epub books, follow this procedure. 

1. Start the Browse Activity.

8.2browsestartcrop

2. In the address bar type in http://www.snee.com/epubkidsbooks and press enter.

3. Scroll down to the book you want to download, and click the link.
Sugar displays a countdown while the file downloads.

4. Switch over to the Journal Activity by clicking the Journal icon at the top of the Frame.

5. Insert an SD card or a USB device into the XO. The Journal shows an icon in a bottom bar when you insert external storage media.

6. Locate the downloaded epub file, but do not click it to launch it. Drag the file to the SD or USB icon in the bottom bar.

filelittlebopeep

7. Start the Terminal Activity.

8. Click in the Terminal window and find the name of the external storage device, which is in the /media directory. For example, type:
df

9. You will see the name of your SD card or USB device in the row with /media/ before it. You need that name to copy the epub file from the external media to the correct location for FBReader to find the book file.

Terminalmvfile

10. Change to the media directory where the epub file is stored and rename the file to something shorter. For example, type:
cd /media/USBMEM mv "File TheThreeBears.epub downloaded from_http___www.snee.com_ebooks_TheThreeBears.epub..zip" TheThreeBears.epub LittleBoPeep-ANurseryRhymePictureBook.epub

11. Copy the newly named file to the ~Books directory. For example, type:
cp TheThreeBears.epub ~/Books

12. Launch FBReader by typing FBReader at the Terminal Activity prompt. The screen displays the book you downloaded with FBReader's toolbar at the top of the screen.

fbreader

Ideas for Expansion in the Classroom

Create
Make your own ebook by either creating a PDF file using a free PDF creator online or by learning about the epubs format to make your own book.

Ask students to learn about reading by reading more and more books and charting the class's progress in completed books read over a period of time.

Collaborate
Share your favorite books by copying files onto other student's SD cards or USB drives.

Have students write an email or letter to the author of their favorite books, asking them interview-style questions about working with others while authoring books.

Adapt
Who else might like to read the books you've downloaded? Can you find books that your family might enjoy together? What about books about your area of the country?

Extend
Use the Write Activity to keep a journal while reading your book. What discussion questions do you have for your class after reading the book? 

Look the book up online at Amazon.com and read reviews for the book. Do you have the same reactions to the book as another reviewer?

Explore
How do students use reading in their every day lives to make decisions or otherwise act upon what they've read?

Reflect
Write a review to convince others to read a certain book. What aspects of the book can you use to convince someone that it is worth the time investment to read it? 

Demonstrate Turtle Art

Turtle Art is a colorful visual activity to use in a classroom setting where students can give the turtle commands and even spell out their names.

Activity (step by step)

You may want to demonstrate on a computer that can be displayed on an overhead projector.

1. Open the Turtle Art Activity.

turtle_art_started_1

2. Click Project.

turtle_art_projects

3. Click the Samples icon.

turtle_art_samples

4. Select a sample file such as birds.ta and click Open.

turtle_art_load

turtle_art_birds

Create

Have students follow the instructions for creating letters. What shape will this set of commands make? Try it and see.

Drag each puzzle piece onto the turtle's floor.

Next, click the bar next to the piece, then type numbers to enter the number values you see, such as color and shade.

Once all the pieces are locked together, click the first puzzle piece to start your turtle.

Did your turtle draw this shape?

If your turtle didn't draw the shape of an uppercase A, or if the color is different, check each puzzle piece one at a time, pretending that you are the turtle trying to understand the command you gave it. When you see a number or a piece that is out of place, change it and try again.

Collaborate

Have students share their letter drawings and use combinations for their names to work together in the classroom, such as having kids with N in their name share their turtle's commands by sending .ta files to each other.

Adapt

How can the turtle commands be adapted for giving someone directions to a nearby store? Would you tell a person to pick up a pen and set it down? How about telling a person how many degrees to turn? Try to tell another classmate how to walk in a curved line by using the turtle commands.

Extend

Could your turtle draw plans for a house or for a path through a maze?

Explore

What's going on underneath the surface of the Turtle Art Activity is putting together a set of commands in a program, much like how computers take instructions and give results. Explore the idea of giving commands to something other than a turtle, such as a computer.

Reflect

Your Turtle's commands are stored in the Journal for you to review from time to time. Store the commands that make up your name.

ConnectingNetwork < Sugar < TWiki

Getting Connected

A primary goal of the Sugar learning platform is enabling students to learn and work together.

In a wireless environment, an access point (AP) is a device that allows your computer to connect to an existing set of communicating devices.  The access point usually has a direct connection to the Internet, and can relay data between the wireless devices and the devices it can access.

Multiple ways to connect to others

wireless access point (WiFi hotspot)

wired network—may require an external adapter

OLPC "School Server" mesh network

OLPC "simple" mesh network, which lets you collaborate directly with other Sugar users

Connecting through an access point

You can connect from the Neighborhood View. You can see information about the connection on the Frame.

Step 1: Go to the Neighborhood View

Go to the Neighborhood View to connect to an access point.

Tip: To access the Neighborhood View, click the Neighborhood Icon on the Frame or press the F1 key.

Step 2: Choose an access point

Circles represent Networks (access points) on the Neighborhood View. Hover over a circle to see more information about an access point. An access point broadcasts a name (ESSID) to identify itself. An OLPC laptop mesh-point—represented by a series of concentric circles—is identified by its channel number (1, 6, or 11). You can also search for an access point by name in the search bar at the top of the page. 

Note: If an access point is not broadcasting its name, the Neighborhood View may show that AP with some other name.

The fill level of a circle indicates the signal strength of its associated access point. The color of the circle is based upon the name of the access point. A lock icon identifies networks that are secured and require a key (passcode) to use. A star icon identifies access points that have been previously used (favorites).

Step 3: Activate a connection

To activate a network connection, click once inside the circle that corresponds to your chosen access point (or click the Connect option in the hover menu).

While the connection is being established, the inside of the circle blinks. Once the connection is established, the bottom edge of Frame contains an icon for it. If for some reason the connection fails, the circle stops blinking. Sometimes it is necessary to try several times before the connection is established.

If the access point is secured and requires a key, a dialog prompts you for the required information. Different access points may require different types of keys. Before entering the key, be sure to select the correct type from the pull-down menu that is presented.

Step 4: Checking the connection

A hover menu details the connection status.

You can check the status of your connection from the Frame (from any view). By hovering over the circle icon, you can find details about your connection status in a hover menu.

OLPC deployments

OLPC has designed a mesh network that allows XO laptops to communicate without the presence of the Internet and a School Server as a means to make their school network connectivity more efficient. The School Server also provides web and chat services.

Note to parents and teachers

Collaboration between learners is one of the most important features of Sugar. To enable collaboration in a classroom or home setting, it is necessary to establish the same type of connection for each computer.  Computers can be connected through a School Server, a simple mesh if they are OLPC XOs, or an access point.

When using an access point for the connection, the computers must all use the same Jabber server in order to collaborate. Please refer to the Sugar Control Panel discussion in the Personalizing Sugar chapter for details regarding the configuration of Jabber.

Additional hints

Neighborhood_key
You make your connection from the Neighborhood View.

connectedframeindicator

Your current connection status is shown on the Frame. Also, the hover menu on the access point icon indicates "Connected". It sometimes takes 2–3 tries to connect. To disconnect, select "Disconnect" from the hover menu that appears in either of the network status menus (See Step 4 above).

AP_level
Circles represent access points. The fill level indicates signal strength.

lock_badge
Access points that require keys have a lock icon. The color of the circle is calculated from the ESSID of the access point. The name of the access point is displayed when you hover over it.

favoraite_connection
"Favorite" access points have a star.

AP_blink
You connect by clicking the center of the circle. The center of the circle blinks while the laptop is trying to connect.

connected
Once the connection is made, the icon is surrounded by parentheses.

Mesh_icon
If you are using an OLPC XO computer, mesh points are represented by a series of concentric circles. The color of a mesh point is the same as your XO color. If your OLPC XO computer is "mesh enabled" and you have not connected to an AP, you are automatically joined to a simple mesh network, enabling you to collaborate with others in the mesh, but not necessarily to access the Internet.

Wireless_key_required
You are prompted if the access point requires a key.

BackingUp < Sugar < TWiki

Backing Up

When working on Sugar Activities it's a good idea to have a second copy of your work. You can use an external storage device to back up your work on Sugar, creating a second copy that you can take to another computer.

If you have a School Server, you can back up your work to the server. If you want your work later, you copy the contents from the School Server back onto your computer.

External storage devices

If you want a second copy of your files, you can store them on external storage media such as an SD card or USB storage device. To copy files to an external device, follow these steps. 

Launch the Journal Activity, either by pressing the magnifying glass icon key or by going to
the Home view and clicking the Journal icon at the bottom of the Home circle.

Insert an SD card or a USB device into the computer.
The Journal shows an icon in a bottom bar when you put in external storage media.

Click to select a file, then drag the file to the SD or USB icon in the bottom bar.

When you are done using the SD card or USB device, right-click on the icon and choose Unmount.

Now you can remove the external media either by removing the USB device or pressing to "spring" the SD card out of its slot.

Terminal Activity

You can look at an SD card or USB file names with the Terminal Activity.

Start the Terminal Activity.

Find the name of the external media device, which is in the /media directory. For example, type:
df

You see the name of your SD card or USB stick in the row with /media/ before it. You need that name to find the files with the next command.

Use the change directory command (cd) to switch your location to the storage media and press enter.
cd /media/5962-0A03

Next, use the list command (ls) to list all the files on the storage media and press enter.
ls

terminal_ls

All your file names are listed with the ls command.

Backing up using a school server

You register your computer with a school server by clicking the XO icon in the Home view and choosing Register, then choosing Restart. Once your computer is registered, a backup job that runs once a day collects the activities in your Journal and stores them on a separate server computer known as the School Server.

If you think you have lost something, or you want to go back to a certain date and time, ask your teacher for the name of your School Server.

Launch the Browse Activity.

Enter the web address of the School Server followed by /ds-restore, such as http://myschoolserver/ds-restore.

In the listing of daily backup dates, click a date listing.

In the listing of the documents available for that date, click a document.

Depending on the type of document, it launches either in the Read Activity or in the Browse Activity. Sugar automatically stores it locally once it is launched.

Updating Sugar

You might want to periodically update the Sugar learning platform or your favorite Sugar Activities when new versions are released. The Sugar community actively evolves and improves the Sugar platform. New development releases are available on a daily basis. Stable releases are made every six months. Sugar Activities are also being improved.

The Sugar learning platform is most often updated as part of an operating-system upgrade; for example, in upgrading Ubuntu from Version 8.04 to 8.10, the Sugar release updates from Version 0.71 to Version 0.82. Typically, Sugar Activities are updated separately.

Updating Sugar Activities

You can keep your Sugar Activities up to date in four ways:

Through the Sugar Control Panel

Through the Browse Activity

Via USB storage device (removable media)

Via "yum" or "rpm" or "apt-get"

Sugar Control Panel

When you have an Internet connection, updating through the Sugar Control Panel is the easiest way to keep your Activities up to date.

1. Select the Control Panel from the hover menu on the Home View.

2. Click the Software update button.

3. Sugar searches for updates.

4. Click "Install selected" to install the updates.

Sugar shows the progress with a series of successive screens. After Sugar installs the updates, you can exit the Software update dialog by clicking the X on the upper-right corner of the panel.

Updating through the Browse Activity

You can update individual Activities by installing the latest versions through the web browser.

Find the Activity's .xo file in your browser (a good place to look is the Activity page in the OLPC wiki http://wiki.laptop.org/go/Activities).

Click an Activity's .xo file and it downloads into the Journal.

Opening the Activity from the Journal automatically installs the new version.

For more detail, please refer to the chapter on Installing New Activities.

Updating via USB storage device (removable media)

You can update an Activity .xo file from removable media by copying it to your Journal.

Insert your removable media into your computer.

Open the Journal.

Select the view for your removable media by clicking its icon at the bottom of the screen.

Click the .xo file and Sugar installs it.

Updating via "yum" or "rpm" or "apt-get"

If you are comfortable using the Terminal Activity, you can use Linux commands to install and update Activities.

On Fedora-based systems, use the "yum" command.

On Debian-based systems (including Ubuntu), use the "apt-get" command.

Updating Sugar (and the underlying operating system)

Instructions for OLPC XO laptops (Fedora)

You can update Sugar and the underlying operating system without losing any data. You can update Sugar one of these three ways:

If you have a wireless Internet connection, you can use the connection and the Sugar Control Panel to request a software update.

If you have a wireless Internet connection and would like to use the Terminal Activity, you can update by entering commands from the Terminal Activity.

If you do not have a wireless Internet connection, you can use an image file on an external storage device to update Sugar.

Note: The update process takes about 30 minutes.

Updating through the Terminal

Refer to wiki.sugarlabs.org for the most recent version number and for information about updates and reasons for updating. 

To determine what version of Sugar you are currently running, hover the pointer over the XO icon on the Home View and go to Control Panel, and then click About my XO.

With an Internet connection

Plug the XO laptop into an electrical outlet.

Connect to the Internet.

Open the Terminal Activity.

Open a "root shell" by typing:

su -l

and then press enter.

Run the update by typing

olpc-update build-number

and then press enter. (You should replace the string "build-number" with the number of the build you would like to upgrade to, for example, 8.2-757.) Alternatively, you can use the --latest flag to get the latest build, for example,

olpc-update --latest stable

Once your updates are complete, reboot your computer.

Without an Internet connection

Before you begin, you need to download two files to a USB stick. You can find the osNNN.usb and osNNN.toc files at http://download.laptop.org/xo-1/os/official/, where NNN is the version number you want to install.

Plug the XO into an electrical socket.

Insert your USB stick.

Open the Terminal Activity.

Open a "root shell" by typing:  

su -l

and then press enter.

Run the update by typing

olpc-update --usb

and then press enter.

Reboot your computer.

Instructions for Ubuntu

Follow the standard process for updating Ubuntu to the latest release. The new Sugar packages should be included as part of the upgrade.

Updating Sugar without updating the operating system

You can update the system files without updating the underlying operating system.

Instructions for Fedora

Connect to the Internet.

Open the Terminal Activity.

Open a "root shell" by typing:

su -l

and then press enter.

Run a yum update by typing

yum -y update

and then press enter.

Run a yum install sugar by typing

yum install sugar

and then press enter.

Once your updates are complete, reboot.

Instructions for Ubuntu

Connect to the Internet.

Open the Terminal Activity.

Open a "root shell" by typing:

su -l

and then press enter.

Run an update by typing

apt-get -y update

and then press enter.

Run the command "apt-get install sugar" by typing

apt-get install sugar

and then press enter.

Once your updates are complete, reboot.

Conserving Disk Space

You have a limited amount of space for files. When your computer runs out of storage space, you should delete some items by using the Journal Activity.

To clear out space for more files, follow these steps.

1. Open the Frame and click the Journal icon in the top row.

2. Look for files that you can delete, such as old files or large files that you may have stored on another computer so you don't need it on this computer.

3. Click the file and then click the Erase button (minus sign) to delete the file.

Extending Sugar

Once you get comfortable using Sugar, the real fun begins. This is because Sugar gives you the freedom to create your own Activities, modify existing ones, and even modify how Sugar itself works. The goal of this section is to help you get started integrating new Activities into the Sugar environment, build your own Sugar Activities, and learn how to modify the base Sugar environment.

An overview of the core components of Sugar

The Sugar learning platform was originally designed for the One Laptop per Child XO-1 laptop. Sugar Labs was created in order to port Sugar to additional computer hardware and operating systems. Its goal is to make Sugar available to a wide range of students, parents, and developers. Sugar Labs also oversees the further development of the base Sugar environment and Sugar Activities.

Base Sugar environment (glucose)

Sugar is the minimal environment that must be added to a standard GNU/Linux distribution in order to enable Sugar Activities to run. This includes the Python code and graphics files that implement the Sugar shell as well as the Journal.

Sugar Activities (fructose)

Sugar Activities are GNU/Linux applications that have been integrated into the base Sugar environment.

Sugar learning platform (sucrose)

The Sugar learning platform includes the base Sugar environment and a core set of Sugar Activities. (Glucose and fructose combine to make sucrose.)

Operating system

Sugar runs on many GNU/Linux-based operating systems. Please see wiki.sugarlabs.org/go/Supported_systems for a current list of supported systems. If your favorite distribution is not yet supported, please contact the Sugar team by email (mailto:sugar@lists.laptop.org).

Security system

Rainbow is a component of the Bitfrost (wiki.laptop.org/go/Bitfrost) security system. Rainbow provides a level of isolation of Activities from the underlying file system in order to prevent malicious programs from doing irreparable harm. When creating your own Activity or installing standard GNU/Linux applications, you may need to consider some of the restrictions imposed by Rainbow.

Some important technologies underlying Sugar

Python

Sugar is written in Python. Python is one of the few programming languages that is both simple and powerful, useful to beginners and experts.

There are a number of freely available guides to programming in Python, including:

The Byte of Python (www.swaroopch.com/notes/Python)

How to Think Like a Computer Scientist: Learning with Python, 2nd edition (openbookproject.net/thinkcs/python2e.php)

Python for Fun (www.openbookproject.net/py4fun/)

Python Bibliotheca (www.openbookproject.net/pybiblio/)

Dive into Python (diveintopython.org/)

Hands-on Python Tutorial (www.cs.luc.edu/~anh/python/hands-on/) 

Snake Wrangling for Kids (www.briggs.net.nz/log/writing/snake-wrangling-for-kids/)

The PyGame website (www.pygame.org/)

X Window System

The X Window System is a framework for building graphical user-interfaces. X provides primitives for drawing and moving windows on a screen and interacting with input devices.

Window manager

A window manager is framework for controlling and placing windows within a windowing system. Sugar runs on any window manager that implements GTK+.

Matchbox

Matchbox is a lightweight window manager. Matchbox is not dependent on any particular GUI Toolkit

GTK+

GTK+ is a cross-platform toolkit for creating graphical user interfaces. GNOME is built on top of GTK+. GTK+ has bindings for many languages.

Pango

Pango is a software library for laying out and rendering text. Pango is designed with an emphasis on internationalization.

Cairo

Cairo is a software library used to provide a vector graphics-based, device-independent API. It is designed to provide drawing across a number of different back-ends.

Python D-Bus

D-Bus is a message bus system. D-Bus enables applications to talk to one another. In addition to inter-process communication, D-Bus helps coordinate process life-cycle. D-Bus allows developers to code a single instance application or daemon and to launch applications and daemons on demand when their services are needed.

Telepathy

Telepathy is a unified framework for real-time communications. Telepathy uses the D-Bus messaging system to provide an interface for client applications.

Avahi

Avahi is a system which facilitates service discovery on a local network. Avahi allows you to plug your computer into a network and be able to instantly view other people who you can chat with, find printers to print to or find files being shared.

GStreamer

GStreamer is a framework for developing multimedia applications. GStreamer serves a host of multimedia applications, such as video editors, streaming media broadcasters, and media players.

CreatingActivities < Sugar < TWiki

Creating Activities

Activity Structure

You create a new Sugar Activity by placing the source code, images, and other files into a directory tree. Keeping the files related to the activity in one place makes it easy to package and distribute your activity.

In this chapter you can see how Activities are built. The file structure for the Helloworld activity that we create in this chapter is listed below.

Helloworld.activity
|-- MANIFEST
|-- activity                                       # Contains information Sugar needs to run this Activity
|   |-- activity-helloworld.svg
|   `-- activity.info
|-- helloworld.py                               # Driving source file from which the Activity runs!
|-- icons                                           # Store icons/images used in your Activity here
|   |-- edit-custom.svg
|   |-- next-page.svg
|   |-- ok-button.svg
|   `-- prev-page.svg
|-- locale                                           # For Activity localization
|   `-- es
|       |-- LC_MESSAGES
|       |   |-- es.mo
|       |   `-- org.laptop.HelloworldActivity.mo
|       `-- activity.linfo
|-- po                                                 # For Activity localization
|   |-- Helloworld.pot
|   |-- POTFILES.in
|   `-- es.po
`-- setup.py

Creating an Activity

Step 1: Designing an Activity

Anytime you want to build something, you must architect it. Building code is much like building a structure. The way you design your code may depend on the intricacies of Sugar.

Just like building a small structure to practice before building a larger one, it helps to gain some experience by building simple Sugar Activities or looking through existing work before designing a large-scale project. Look through the source code of popular activities like Read and Browse to see how activities are designed and structured in Sugar. Start by looking in the /home/olpc/Activities directory for "tours" of larger structures to model yours after.

For our example, we create an activity that displays the message "Hello World". Below is a mockup of roughly what our activity window looks like on the screen when it's running:

Step 2: Creating the directory structure

First, create the base directory that contains your activity's contents. Then create the "Helloworld.activity" directory. Create the "activity" directory within that. The activity directory contains two files:

An image file in ".svg" format that contains the icon for your activity. Sugar uses this image to allow users to launch your activity by clicking on it.

The activity.info file, which tells sugar what the name of your activity is and how to run it.

Below is the activity.info file created for our Helloworld activity:

[Activity]
name = Helloworld
service_name = org.laptop.HelloworldActivity
class = helloworld.Helloworld
icon = activity-helloworld
activity_version = 1
show_launcher = yes

The first line of the file should always read [Activity]. The next two lines identify the activity:  name=Helloworld, service_name=org.laptop.HelloworldActivity.  The "class = helloworld.Helloworld" line tells Sugar that the initial startup class is Helloworld in helloworld.py. The activity tree, printed earlier, lists the helloworld.py file. Within this file, we define a class called Helloworld.

The next line specifies the activity's icon. This is the name of the .svg file you also saved in the Helloworld.Activity/activity/ directory. For help creating icons, see http://wiki.laptop.org/go/Making_Sugar_Icons. The show_launcher option ensures that Sugar displays your activity icon so that users can launch your activity in the main Sugar window. 

You can specify other options in activity.info to control how the activity interacts with Sugar. For a complete listing, see chapter 3 of the Sugar Activity Handbook online at http://www.olpcaustria.org/mediawiki/upload/a/a1/Handbook_200805.pdf.

After you have created your activity.info file, you should include a MANIFEST file describing the contents, and a setup.py file in your activity directory. These files are fairly generic. You can copy them from another activity and make modifications. For the localization directories, you should look at some existing references for making your activity usable in multiple languages:

http://wiki.laptop.org/go/Internationalization_in_Sugar

http://wiki.laptop.org/go/Python_i18n

Finally include the images and icons that you plan to use in the the Icons directory. The example tree shows a few icons that could be used in the Activity.

Step 3: Writing the code for Your Activity

Below is helloworld.py source code that implements our Activity.

from gettext import gettext as _
import logging
_logger = logging.getLogger('helloworld-activity')

import pygtk
pygtk.require('2.0')
import gtk
from sugar.activity import activity

class Helloworld(activity.Activity):

    #### Method: __init__, initialize this Helloworld instance
    def __init__(self, handle):
         activity.Activity.__init__(self, handle)

        #Create the main toolbox for this activity and
	#rely on _createToolBox() to populate with any
	#additional toolbars that may be needed.
        tlbx = activity.ActivityToolbox(self)
        self.set_toolbox(tlbx)

        main_canvas = gtk.HBox()

        #Create a "Hello World" Label and add it to the UI
        hello_label = gtk.Label("Hello World!")
        main_canvas.pack_start(hello_label)

        self.set_canvas(main_canvas)
        self.show_all()

def main():
    win = gtk.Window(gtk.WINDOW_TOPLEVEL)
    t = Helloworld(win)
    gtk.main()
    return 0

if __name__ == "__main__":
    main()

Copy the activity directory tree to /home/olpc/Activities and restart Sugar (Control-Alt-Erase) to have Sugar recognize It. The Activity can be launched from the Home View. Activities can be edited in place, but after making changes you want to restart Sugar before launching the Activity. Any text output, like error messages, can be viewed with the Log activity.

When you launch the Helloworld activity, you see a new window:

The toolbar is created by the activity.ActivityToolbox object and the set_toolbox function call. The ActivityToolbox is a standard toolbox that includes a toolbar with controls for closing the activity, sharing it with other users and saving the activity to the journal.  For more information on creating and extending toolbars, see the Sugar Almanac online at http://wiki.laptop.org/go/Sugar.graphics.toolbox. 

Packaging and Sharing Your Activities

After implementing and testing your Activity, package it in a zip file with a ".xo" extension. For our example, we create a "Helloworld.xo" file that contains the entire contents of Helloworld.Activity. This packaged file can then be shared with others.

The easiest way to share a package is to publish it on OLPC's Activities page. Navigate to http://wiki.laptop.org/go/Activities  and you find many activities. With a wiki login, you can upload your Activity package, then link to it from the Activities page. You can also download and install existing Activities.

Resources to Help You Build Cooler Activities

Now you know what is needed to create a successful and engaging Activity. Hopefully, your next Activity does more than just say "Hello World". Among the issues and ideas you may want to consider when designing your activity are:

What Activity state do I want to store so that users can resume work at different times? How can I use the Sugar Datastore to save state?

How can I integrate cool technologies like GStreamer (for audio and video) or Pango (for customized fonts) into my Activity?

Will users be able to share in an activity over the mesh network? If so, how will they interact and what data will need to be shared?

How can I get my Activities to interact with different pieces of hardware on my laptop?

There are many resources out there to help you implement Activities around the ideas above. Some recommended references are:

The Sugar Almanac - http://wiki.laptop.org/go/Sugar_Almanac

OLPC Austria's Activity Handbook - http://www.olpcaustria.org/mediawiki/index.php/Activity_handbook

API Reference - http://wiki.laptop.org/go/API_Reference#Sugar_Specs

RunningLiuxApplications < Sugar < TWiki

Running GNU/Linux applications

To install GNU/Linux applications on your computer running Sugar, you will need to be familiar with using GNU/Linux text-mode commands. (Please refer to the chapter describing the Terminal Activity for more information about the GNU/Linux shell.)

Caveats:

Sugar has security restrictions which may prevent some GNU/Linux applications from running.  The Terminal Activity has additional privileges, therefore GNU/Linux applications are often run from the command line in the Terminal Activity.

Sugar uses a simplified window manager.  Applications that need full-featured X Windows System support may not function, or may act in unexpected ways.

For many GNU/Linux applications, the installation process will try to insert programs or data into protected system areas. You will have to have "root user" privilege to be able to install these applications.

Applications are packaged differently for different GNU/Linux distributions, You'll need to use the version of the application that matches your distribution. OLPC-XO users should look for applications that are available as a Fedora .rpm package. Debian (and Ubuntu) users should look for .deb packages.

Installing Fedora packages

If the application is available as a Fedora .rpm package:

While connected to the Internet, use "yum install package-name".  Yum is a package manager, which automatically fetches a package plus additional resources needed by that package.

An example of the install command as entered by the user:

bash-3.2# yum install gqview

This results in the following  output (some lines deleted for brevity):

Resolving Dependencies

--> Running transaction check
---> Package gqview.i386 0:2.0.4-6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==============================================
 Package                 Arch       Version          Repository        Size
==============================================
Installing:
 gqview                  i386       2.0.4-6          olpc_development  870 k

Transaction Summary
==============================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 870 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): gqview-2.0.4-6.i386.rpm  | 870 kB  00:03
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : gqview               [1/1]

Installed: gqview.i386 0:2.0.4-6
Complete!
bash-3.2#

You should consider whether the size of what yum wants to fetch would use up too much of the storage space on your computer. Before downloading, yum asks for permission – if you do not like the total impact of what you asked for - tell yum "no".

If you later decide that you do not want a yum-installed package on your system, use "yum erase package-name" to remove it from your computer.  Doing this will not remove any additional resources that were fetched when that package was installed.

If the application is available as a non-Fedora .rpm package:

The same discussion as for Fedora packages applies, except that you will be using "rpm -ivh package-name" to install. Rpm is a simple package manager – it tells you if dependencies are missing, but you yourself will have to download them.

If the application is available in .xo bundle format:

If the Application was packaged into an .xo format bundle, install it the same as you would a Sugar Activity. If you want to learn more about installing an Activity, go search for that topic.

If the application package does not use .rpm or .xo format:

Follow the directions that came with the package. Since you are not using a package manager, it is your responsibility to check that the resources needed by that application are available at your computer.

You can run the Linux command "ldd" against each executable binary installed for that application.  This gives an overview of whether some system services that the application relies upon are missing.  If so, it is up to you to locate and install the necessary software.

The following example shows that the libXp dependency required by the nview application is not currently provided on this Sugar system.

bash-3.2# ldd /usr/local/bin/nview
	linux-gate.so.1 =>  (0xb7fa8000)
	libXt.so.6 => /usr/lib/libXt.so.6 (0xb7f46000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0xb7e45000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0xb7e35000)
	libXp.so.6 => not found
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7d3d000)
	libm.so.6 => /lib/libm.so.6 (0xb7d14000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7d05000)
	libc.so.6 => /lib/libc.so.6 (0xb7b9c000)
	libSM.so.6 => /usr/lib/libSM.so.6 (0xb7b94000)
	libICE.so.6 => /usr/lib/libICE.so.6 (0xb7b7a000)
	libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb7b78000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7b5c000)
	libdl.so.2 => /lib/libdl.so.2 (0xb7b56000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0xb7b53000)
	/lib/ld-linux.so.2 (0xb7fa9000)
	libuuid.so.1 => /lib/libuuid.so.1 (0xb7b4f000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7b49000)

The user then might (on a Fedora system) enter

bash-3.2# yum provides */libXp.so.*
libXp-1.0.0-11.fc9.i386 : X.Org X11 libXp runtime library
Matched from:
Filename    : /usr/lib/libXp.so.6.2.0
Filename    : /usr/lib/libXp.so.6

which would tell him that he needs to install the libXp package to satisfy the missing dependency.

Debian (and Ubuntu)

The instructions are identical to those for a Fedora system, except you will be using "apt-get -i package-name" to install for .deb packages.

Special run-time needs

GNU/Linux applications often need to be configured.  The application may provide a panel for you to enter values.  Be sure that any locations thus specified are correct for where things actually are on your computer.

Many applications call upon general-purpose "library modules" to provide services for their own executables.  An application package may supply some "library modules" if it is unlikely the base system would already have those.

Rarely, a package might place "library modules" somewhere not normally accessed by the system. The application might have to be launched with a special-purpose script, which indicates where the needed "library modules" are located.

Running GNU/Linux applications from the X Activity

The X Activity launches an X Window System environment from which you can run standard Linux applications. This is particularly useful for applications that open multiple windows, such as Skype.

Gnumeric running from within the X Activity

Sugarizing GNU/Linux applications

A standard GNU/Linux application does not appear on your Home View. However, if you "Sugarize" the application, then it appears on your Home View and you can launch it by clicking its icon.

Caveat: Sugar Activities have less privilege than the Terminal Activity. Therefore, Sugarized applications have more restrictions on where they can store data than applications launched from Terminal. If a GNU/Linux application cannot meet these restrictions, it will have to be modified before it could be considered suitable for Sugarization.

Sugarize an application by constructing a wrapper:

The wrapper needs to appear the same to Sugar as a native Activity.  See http://wiki.laptop.org/go/Activity_bundles for a description of what an Activity must provide to Sugar.

A wrapper often depends upon a specialized "library module", which transforms the Linux-format requests issued by the application into Sugar-format requests and vice versa. (A Sugar community member has released a general-purpose version of this module.  Get it from http://www.catmoran.com/olpc/libsugarize.so.)

This community member has in addition released a Sugarization script that can be used to install the wrapper. Get it from //http://www.catmoran.com/olpc/sug. A good description of how to use this script appears in http://olpcnews.com/forum/index.php?topic=1555.0. (Keep in mind that this description applies to the way Sugar screens looked in 2007.)

Examples of files created for the wrapper:

Here is an example of a shell script which, together with the specialized "library module", forms the "active" part of a wrapper that can be used to launch Opera from the Home View screen:  

#!/bin/sh
while [ -n "$2" ] ; do
      case "$1" in
          -b | --bundle-id)     export SUGAR_BUNDLE_ID="$2" ;;
          -a | --activity-id)   export SUGAR_ACTIVITY_ID="$2" ;;
          -o | --object-id)     export SUGAR_OBJECT_ID="$2" ;;
          -u | --uri)           export SUGAR_URI="$2" ;;
          *) echo unknown argument $1 $2 ;;
      esac
      shift;shift
done
export LD_PRELOAD="$SUGAR_BUNDLE_PATH/lib/libsugarize.so"
export NET_WM_NAME="Opera"
exec opera -notrayicon -personaldir $SUGAR_ACTIVITY_ROOT/data &

Actually, the "active" part of the wrapper can take many forms. For instance, some applications have been Sugarized by compiling special programs to provide the wrapper function. Here is a python script which forms the "active" part of the first wrapper made to launch Opera from the Home View screen:

import logging
from sugar.activity import activity

import sys, os
import gtk

class OperaActivity(activity.Activity):

    def __init__(self,handle):
        activity.Activity.__init__(self,handle)

        self.set_title('Opera Activity')

        os.system('opera -notrayicon -personaldir $SUGAR_ACTIVITY_ROOT/data &')

Linux applications that run in Sugar

Adobe Reader

FBReader

Firefox

GQview

Mplayer

Opera

RealPlayer

Skype 

Gnumeric

You can install Wine (a compatability layer that allows Windows programs to be run in Linux) in order to run commercial applications such as the SeaClear boat navigation system on a Sugar system. (Wine itself has been turned into a Sugar Activity.)

DevelopSugar < Sugar < TWiki

Modifying Sugar

Sugar is meant to be changed by you. Sugar is written in Python, an interpreted programming language, so that you can access the underlying code to see how things work. You can customize the Sugar platform however you like. In the spirit of free and open-source software, we hope that you share your improvements with the Sugar community.

In this chapter, we walk you through an example of changing Sugar:

changing the Home View from a circle to a spiral

changing your XO icon

Our hope is that you go beyond this example; learning something in the process.

Other things you might want to try include:

changing the home page of the Browse Activity

changing the start-up animation

"reskinning" Sugar

Changing the Home View

Revealing hidden views

The Home View defaults to a circular ring of Activity icons, but other patterns are available. There are preprogrammed patterns in Sugar and you can create your own.

1. You need to familiarize yourself with the Terminal Activity before you begin. Please refer to the chapter on the Terminal Activity for details on the GNU/Linux shell.

2. Open the Terminal Activity.

3. Since the Sugar source code is in a protected part of the system, you'll need to get a "root shell" in order to make changes. Type this command and press enter:

su -l

Note: This is a lower case L (an l), not a one (1).

4. The Home View code is in /usr/share/sugar/shell/view/Home. Type this command and press enter:

cd /usr/share/sugar/shell/view/home

5. It is always a good idea to make a backup copy of your code before making changes. Type this command and press enter:

cp favoritesview.py favoritesview.py.bak

6. Use vi (or your favorite text editor) to open favoritesview.py. Type this command and press enter:

vi favoritesview.py

Tip: Some basic commands for using the vi editor:

i (enter insert mode)

esc (exit insert mode)

:w (write/save your changes)

:q (quit vi)

7. You want to uncomment the code that unlocks the preprogrammed patterns by removing the # symbol (lines beginning with # are comments in Python).

Before:

_LAYOUT_MAP = {RING_LAYOUT: favoriteslayout.RingLayout,
               #BOX_LAYOUT: favoriteslayout.BoxLayout,
               #TRIANGLE_LAYOUT: favoriteslayout.TriangleLayout,
               #SUNFLOWER_LAYOUT: favoriteslayout.SunflowerLayout,
               RANDOM_LAYOUT: favoriteslayout.RandomLayout}

After:

_LAYOUT_MAP = {RING_LAYOUT: favoriteslayout.RingLayout,
               BOX_LAYOUT: favoriteslayout.BoxLayout,
               TRIANGLE_LAYOUT: favoriteslayout.TriangleLayout,
               SUNFLOWER_LAYOUT: favoriteslayout.SunflowerLayout,
               RANDOM_LAYOUT: favoriteslayout.RandomLayout}

8. Restart Sugar (by pressing ctrl + alt + erase). You can enjoy three new layouts for your Sugar Activity icons. (Tip of the hat to C. Scott Ananian for programming the "hidden" views.)

Creating a new view

You can also create your own view. Circles, squares, and triangles are nice, but a spiral is fun. In this example, we add some new code to two files: favoritesview.py and favoriteslayout.py.

The equation for an Archimedean spiral is

r = a + bθ

where r is the radius or distance from the center; a is the minimum (starting) radius of the spiral; and bθ is the increase of radius based on the increase in the angle of rotation.

1. Open the Terminal Activity. 

2. Again, you'll need to get a "root shell" in order to make changes. Type this command and press enter:

su -l

3. Go to /usr/share/sugar/shell/view/Home. Type this command and press enter:

cd /usr/share/sugar/shell/view/home

4. It is always a good idea to make a backup copy of your code before making changes. Type this command and press enter:

cp favoritesview.py favoritesview.py.bak
cp favoriteslayout.py favoriteslayout.py.bak

5. Use vi (or your favorite text editor) to open favoriteslayout.py. Type this command and press enter:

vi favoriteslayout.py

6. Add a new method at the end of the file:

class MyLayout(RingLayout):
    """Spiral layout based on Archimedean spiral: r = a + b*theta."""

    __gtype_name__ = 'MyLayout'

    icon_name = 'view-mylayout'
    """Name of icon used in home view dropdown palette."""

    profile_key = 'my-layout'
    """String used in profile to represent this view."""

    def __init__(self):
        RingLayout.__init__(self)

    def _calculate_radius_and_icon_size(self, children_count):
        """Stub out this method; not used in `My Layout`."""
        return None, style.STANDARD_ICON_SIZE

    def _calculate_position(self, radius, icon_size, index, children_count):
        """ Increment the radius as you go; decrease the angle of rotation
        as the radius increases to keep the distance between icons constant."""
        width, height = self.box.get_allocation()
        # angle decreases as the radius increases
        angle = index * (2 * math.pi / (12.0 + index / 6.0)) - math.pi / 2
        # radius is proportional to index/children_count
        myminimum = _MINIMUM_RADIUS * .67
        newradius = ((_MAXIMUM_RADIUS - myminimum) * (index * 1.1) / children_count) + myminimum
        x = newradius * math.cos(angle) + (width - icon_size) / 2
        y = newradius * math.sin(angle) + (height - icon_size - style.GRID_CELL_SIZE) / 2
        return x, y

7. Use vi (or your favorite text editor) to open favoritesview.py. Type this command and press enter:

vi favoritesview.py

8. Add your new layout by modifying these two lines:

RING_LAYOUT, BOX_LAYOUT, TRIANGLE_LAYOUT, SUNFLOWER_LAYOUT, MY_LAYOUT, RANDOM_LAYOUT = \
             xrange(6)

_LAYOUT_MAP = {RING_LAYOUT: favoriteslayout.RingLayout,
               BOX_LAYOUT: favoriteslayout.BoxLayout,
               TRIANGLE_LAYOUT: favoriteslayout.TriangleLayout,
               SUNFLOWER_LAYOUT: favoriteslayout.SunflowerLayout,
               MY_LAYOUT: favoriteslayout.MyLayout,
               RANDOM_LAYOUT: favoriteslayout.RandomLayout}

9. You will need an icon for your new layout. You can copy an existing icon:

cd /usr/share/icons/sugar/scalable/action
cp view-radial.svg view-mylayout.svg

Or you can modify the icon by following the discussion of Sugar icons in the section below.

10. Restart Sugar (by pressing ctrl + alt + erase).

Tip: If something goes wrong, which invariably it will, you can switch to one of the other Home Views, go back into the Terminal Activity and debug your code. If for some reason you even cannot launch the Terminal Activity, open the console by typing ctrl + alt + f1. From the console, you can restore your backup files (created in Step 4 above).

cd /usr/share/sugar/shell/view/home
cp favoritesview.py.bak favoritesview.py
cp favoriteslayout.py.bak favoriteslayout.py

Here's an example of the new spiral layout for your Home View.

The modified files are found here:

sugarlabs.org/go/User:Walter/favoriteslayout.py

sugarlabs.org/go/User:Walter/favoritesview.py

The icon used in the above example is found here:

sugarlabs.org/go/User:Walter/View-mylayout.svg

Changing your XO icon

Your XO icon is stored as a scalable vector graphics (SVG) file. By modifying this file, you can change the appearance of your XO icon.

About SVG

SVG is a language for describing two-dimensional graphics and graphical applications in XML. The SVG format allows Sugar to dynamically scale and color icons without any degradation in quality. The World-wide Web consortium (W3C) has an over of SVG at www.w3.org/Graphics/SVG/About.

There is a tutorial on preparing SVG files for Sugar at wiki.laptop.org/go/Making_SVG_Icons_for_Sugar.

You can edit SVG files using a variety of available tools, including www.inkscape.org/. (See The Inkscape Manual for details on how to use Inkscape).

Creating a simple icon by hand

Sugar defines the standard width and height of an icon canvas to be 55 pixels. The recommended width and height of the graphics is 45 pixels.

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <svg xmlns="http://www.w3.org/2000/svg" width="55" height="55">
     <rect x="5" y="5" width="45" height="45" stroke="#666666" fill="#FFFFFF" stroke-width="3.5"/>
 </svg>

generic_icon
The icon defined above is a simple square.

Defining entities

Sugar uses "entities" in order to dynamically change icon colors.

add the entity declaration block inside the DOCTYPE.

replace all occurrences of colors within the body of the SVG.

Entity references begin with an ampersand (&) and end with a semi-colon (;), the entity name is in the middle (e.g., "&stroke_color;").

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
     "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
     <!ENTITY stroke_color "#666666">
     <!ENTITY fill_color "#FFFFFF">
 ]>
 <svg xmlns="http://www.w3.org/2000/svg" width="55" height="55">
     <rect x="5" y="5" width="45" height="45" stroke="&stroke_color;"
         fill="&fill_color;" stroke-width="3.5"/>
 </svg>

Your SVG icon is now Sugar-enabled.

Replacing the XO icon in the Home View

Follow these steps to replace the XO icon on your Home View with your own creation:

Make a Sugar-enabled icon as per the instructions above.

Name your file "my-xo.svg" and copy it onto a USB storage device.

Start the Terminal Activity and enter these commands:

su -l

cp /media/*/my-xo.svg /usr/share/icons/sugar/scalable/device/

Use vi (or your favorite text editor) to open /usr/share/sugar/shell/view/home/MyIcon.py.

vi /usr/share/sugar/shell/view/home/MyIcon.py

Change the icon_name to "my-xo".

class MyIcon(CanvasIcon):
    def __init__(self, size):
        CanvasIcon.__init__(self, size=size,
                            icon_name='my-xo',
                            xo_color=profile.get_color())

Restart Sugar (by pressing ctrl + alt + erase).

Your icon appears in the center of the Home View instead of the standard XO icon.

Replacing the XO icon everywhere

In the previous section, we replaced the XO icon on the Home View. If you would like to replace it everywhere, you need to make one additional change.

Sugar looks for the XO icon in the file stored here:

/usr/share/icons/sugar/scalable/device/computer-xo.svg

Follow these steps to replace the XO icon with your own creation:

Make a Sugar-enabled icon as per the instructions above.

Name your file "computer-xo.svg" and copy it onto a USB storage device.

Start the Terminal Activity and enter these commands:

su -l

cp /usr/share/icons/sugar/scalable/device/computer-xo.svg
/usr/share/icons/sugar/scalable/device/computer-xo.svg.bak

cp /media/*/computer-xo.svg
/usr/share/icons/sugar/scalable/device/computer-xo.svg

Restart Sugar by pressing ctrl + alt + erase.

Note to parents and teachers

Sugar is designed to be modified by the user. Rather than build a "hardened" but brittle and opaque platform, Sugar is easy to change—but also easy to recover in case you make a mistake. Sugar takes computing "beyond black boxes". Look inside, make changes, and learn through debugging. You may find it frustrating at first, but you will be amply rewarded for your efforts as you learn to master the machine, rather than have it master you. Try it, you'll like it.

Troubleshooting < Sugar < TWiki

Troubleshooting Guide

This chapter offers a guide for finding solutions when you have problems with Sugar.

Getting Started

Where do I get support?

Both Sugar Labs and OLPC have support communities that can help you. They have written documentation such as this manual. They also offer live chat support, interactive web forums, and regional user groups. Please refer to http://wiki.laptop.org and http://wiki.sugarlabs.org for further information.

Can I print from the XO laptop?

Currently there is no printer support in the Sugar user interface.

How do I access a GNU/Linux command prompt?

Please refer to the chapter on the Terminal Activity.

What does "Register" (in the Home View hover menu) do?

"Register" is for children that are connecting to School Server. It serves no function outside of that context. Please see the School Identity Manager page in the OLPC wiki for further explanation.

Why is there no windowing system?

The Sugar user interface sits on top of the X Window System. Sugar uses a zoom metaphor instead of an overlapping windows metaphor so the presence of the windowing system is less apparent.

How do I learn the XO Sugar Environment?

Sugar differs from traditional PCs and Macs. We hope you not only "learn by doing", but also seek others to collaborate with you in the learning process. You can find an in-person local user group by searching online, or find an online community to help you learn.

How do I change my nickname? my XO's colors?

You can change your nickname and colors from the Sugar Control Panel found on the hover menu on the Home View when viewing the ring view.

How do I set the date and time on my laptop?

You can set the date and time as follows:

Connect to the Internet.

Start the Terminal Activity.

Start a "root" process by typing:

su -l

At the command prompt, enter the following commands:

/usr/sbin/ntpdate time.nist.gov
/usr/sbin/hwclock --systohc

In response to the ntpdate command, if it successfully contacts this US government official time server, the system outputs a line displaying the correct date and time.

How do I  set the timezone on my laptop?

You can set the timezone using the Sugar Control Panel.

What are the functions of all the keys on the keyboard?

F1 Neighborhood View

F2 Group view

F3 Home View

F4 Activity View

Shift-Alt-F Toggle Frame visibility

Alt-Tab cycles forward through running Activities

Shift-Alt-Tab cycles backward through running Activities

Ctrl-Tilde cycles forward through running instances of the current Activity

Shift-Ctrl-Tilde cycles backward through running instances of the current Activity

Ctrl-c Copy to clipboard

Ctrl-v Paste from clipboard

Ctrl-x Cut (and copy to clipboard)

Ctrl-a Select all (current input/dialog/text box)

Ctrl-q Quit Activity

Ctrl-Esc Quit Activity

Alt-Enter Toggle full-screen mode

Alt-Space Toggle tray visibility

Ctrl-u View source in Browse Activity (opens copy of source in Write Activity)

Fn-Space View source (system wide, although not enabled in all applications yet)

Ctrl-Alt-Erase Restart Sugar

Alt-1 Screen capture; saved to Journal as a PNG file named "Screenshot"

Ctrl-Alt-F1 Open Console 1

Ctrl-Alt-F2 Open Console 2

Ctrl-Alt-F3 Open X Windows

The OLPC-XO keyboard has a number of keys dedicated to the Sugar interface. Please see  http://wiki.laptop.org/go/Keyboard_Shortcuts for details. 

Internet, Connectivity, Email, Chat

How can I access the Internet?

Our Connectivity Quick Start Guide answers most questions about Internet Connectivity.

What if I cannot get online?

Do you have wireless Internet/WiFi nearby?

Is your WiFi access point locked? If yes, you must have the password in order to connect.

Have you connected to your WiFi access point?

You can go to the Neighborhood View and click the circle that represents your WiFi access point.  The name of an access point appears when you hover over a circle. After you click the circle, its center should blink. When you are connected, the center blinking stops and a circle icon for the connection appears in Frame bottom right. If your access point is locked, you are prompted to insert a key.  Select the proper key format for your access point from the pull-down menu.  You can confirm that you are connected by hovering over the network status circle in the Home View.  Please see the chapter on Connecting.

How do I disable wireless when flying?

To disable wireless when flying, refer to the Network panel in the Sugar Control Panel and clear the Radio checkbox under Wireless.

What is a mesh network?

A mesh network allows nearby laptops to talk to one another directly (wirelessly) without the need for a traditional Internet Service Provider (ISP).

Is there an email program?

There is not a native email client for Sugar. You can use the Gmail Activity to access your email, if you have a @gmail.com account; or you can simply use Browse to access most web-based email programs.

Can I install other software, such as Flash, Java, AIM, MSN Messenger, or Skype?

Please refer to the chapter on Installing GNU/Linux applications.

File Access

How do I save my work?

Your work is automatically saved in the Journal.

How can I backup my work?

You can backup your work onto a USB storage device. When you insert a USB storage device, it is automatically mounted and appears as an icon in the Journal (at the bottom of the screen). You can drag and drop Journal entries onto the icon to transfer them to the USB device. When you are finished, use the hover menu to unmount the device.

How can I add new programs and content to the laptop?

OLPC maintains an Activities page with links to many additional programs. You can install new programs directly from the web browser. Activities are "bundled" in files with a .xo suffix. Clicking a bundle causes it to download from the Internet into the Journal. Launching the bundled Activity from the Journal installs it in the List View of the Home View. Similarly, you can download content, such as PDF or DOC files, videos, and music into the Journal.

You can also install software and content from a USB storage device from within the Journal.

Finally, you can install software and content from the Terminal Activity, which gives you access to the Linux command shell.

How do I load a file on the disk into the Browse Activity?

Open the Browse Activity. In a window in the middle of the top of the Browse Activity page you see the words OLPC Library. Click that and you see the url: file:///home/olpc/.library_pages/search/bundle__index.html in the window and the contents of the file: .library_pages/search/bundle_index.html are loaded in the browser. If you replace that filename in the window with the name of the file you want to load, and have it display, let us say: file:///home/olpc/upload-file.html and press enter, the file upload-file.html is loaded from your home directory into the Browse Activity.

How do I save or retrieve files from a USB drive or SD (Secure Digital) card?

Please see the complete instructions for using a USB storage device (sometimes known as a flash drive or USB key or USB stick).

How do I delete a file?

Go to the Journal, which you can access from the Frame. Click the notebook icon to open the Journal. Find the file to be deleted by scrolling up and down the list. Open the detail view for the entry by clicking the name of the file. From within the detail view, press the "minus" button at the top of the screen to delete the entry.

Activities

How do I close an Activity (program)?

Most Activities have an "Activity" tab with a close button found at the top-right of the display; select the Activity tab and click the close button to close the Activity. For most Activities, the keyboard shortcuts ctrl + q or ctrl + esc can also close the Activity. Alternatively, on the Frame, hover the pointer over the Activity icon to bring up a menu; click "Stop" to end the Activity.

How do I download and run Activities (programs)?

There are many Activities the community has developed for download. From the Browser Activity on the XO laptop, go to Activities and click an .xo file you find there.  This downloads and installs the Activity to your laptop. When it is finished installing, click OK. Press the Home key (fifth key from the upper left) to see the Home View. Click the List View icon in the upper right of the Home View to see all the Activities. Scroll the list down if necessary until you see the icon for the Activity you just installed. Click the Activity's icon to start it.

All Activities on the laptop have been developed in the open-source community by volunteers. OLPC encourages all laptop owners to contribute to this effort.

How do I use a camera?

A camera can be used with the Record Activity.

How do I take a screenshot?

Press alt + 1 (hit the 1 key while holding down the alt key at the same time). Go to the Journal. The screenshot should be the first item in the Journal. You can then copy the screenshot to the clipboard and open it with the Browse, Paint, or Etoys Activity, or drag it on to an inserted USB memory stick for transporting it to another computer. This quick screenshot hack also makes it easier to capture and upload multiple screenshots to a web server.

Read: How do I read PDF files?

Click on a PDF file to automatically launch the Read Activity, either through the web browser (Browse Activity) or from a USB storage device (Journal Activity).

Browse: How do I bookmark a website and browse it later?

Click the star in the upper-right corner to bookmark the website. The website is saved in the Journal Activity for future use.

Browse: How can I protect my children from objectionable content?

The best thing you can do to keep your children safe is to participate in their education. For example, explain to them the kinds of threats they may encounter online and appropriate behavior, don't give out personal information such as an address, phone number, or other personally identifying information over the Internet.

There are possible third-party solutions, such as http://DansGuardian.org available.

Activity Development

How do I begin to write programs for the XO laptop?

You can find information on how to create your own programs for the XO at Getting started programming, and look for details at http://wiki.laptop.org/go/Developers. For those already familiar with both Linux and Python, the Activity tutorial is a step-by-step guide to building a Sugar Activity.

How do I report a bug?

We are very interested in bug reports. Please report bugs by sending email to help at laptop.org. Developers, please continue to file bugs in our tracking system.

We are also interested in your suggestions for enhancement to our system.

Community input and collaboration is vital to the success of OLPC. Thank you for your participation.

Glossary < Sugar < TWiki

Glossary

Access point (AP)

A device that connects wireless devices together to form a network. Usually connects to a wired network and relays data between wireless devices and wired devices. Several APs can link together to form a larger network.

Active kill

A mechanism  for remotely shutting down a laptop that has been reported stolen when the laptop connects to the Internet.

Activation

In order to use your laptop for the first time (or after a "reflash" of the operating system), it must be unlocked by an activation key.

Activation key

Key that unlocks an XO laptop.

Activity

An application that has an icon in the taskbar, for example, Write, Record, Browse; Activities engage you in taking a picture, reading a book, creating a page, annotating a page, animating a drawing, making sounds and music, measuring and sensing, sharing your favorites, inviting your friends, surfing on the web, and many, many other things. Has a .xo suffix

Activity view

A view used by the current Activity that is running on the laptop.

BitFrost

The OLPC security platform.

Build

A version of the operating system, designated by category and number; for example, Ship.2-656; Update.1-698; Joyride-1792.

Click

The action of positioning the pointer over an object such as a menu item or icon and then pressing and releasing a "mouse" button. To "left click", you click with the left-hand mouse button. To "right click", you click with the right-hand mouse button.

Content

The books, music, movies, photographs, drawings, and other objects that are created on the laptop or downloaded to the laptop. Stored in an .xol file.

Datastore

Component that manages the access to the data displayed in the Journal; these data are stored in individual files; an index that contains the metadata and speeds up searches.

Developer key

If the boot firmware sees a developer key, it makes the XO laptop work just like any ordinary PC-style laptop, in the sense that it will let you interrupt the boot process and enter commands; and it will try to boot and run any program you supply to it, no matter whether the OLPC organization has tested or signed it. (The laptop also works this way if its firmware security is disabled.)

Double click

Click two times in rapid succession. In many graphical user interfaces, double click is used as a different gesture than two separate single clicks. Sugar does not use double clicks.

Drag and drop

The combination of dragging an object and then dropping onto a region of the screen. To drag an object: (1) position the pointer over the object; (2) press and hold the mouse button; and (3) move the pointer without releasing the mouse button. To drop an object, release the mouse button. In Sugar, drag and drop is used to copy items from the clipboard into an Activity.

Email list

A collection of email addresses—an efficient way to send email to a group of people who share an interest.

Firmware, Wireless

The wireless firmware is software that controls the operation of the wireless radio. It is downloaded into the wireless radio by the operating system.

Firmware, System

The system firmware is made up of two parts: The EC and OFW. The first part is the software that runs the embedded controller (EC). The EC handles the processing of the keyboard, touchpad, game buttons, power button, and charging the battery. The second part is OpenFirmware (OFW). OFW is responsible for initializing the hardware and booting the operating system. OFW also handles boot security so that it will only load "official" OLPC operating systems.

Frame

The Frame, which can appear in any view, holds system status (battery, speaker, network), a clipboard, the list of open Activities, navigation controls, and list of "buddies" (collaborators).

Group view

A view of your friends with whom you are working on shared projects.

Home view

View of installed Activities from which you launch them—the Home view is the starting view on the laptop.

Hover over

To move the pointer over something on the screen (such as an icon) and leave it there for a moment. Often, hovering over an object's icon activates a menu of options for that object.

Infrastructure mode

Network connectivity through a WiFi access point, for example, 802.11b.

Internet Relay Chat

IRC/chat is real-time text chat used by the development and technical support communities (and hopefully the learning community as well).

Jabber

A protocol that the laptop uses for collaboration.

Journal

Activity where you can see your previous work. You can also resume the work done at those Activities.

Jumpdrive

A small, external storage device that plugs into one of the USB ports on a computer. They can store between 16MB (enough to hold several music files) up to 4GB (enough to hold several high quality full-length movie files) and a wide range in between. Jump drives are easily purchased at any electronics store starting as low as $5 to $10.

Key generation

Process of generating both activation and developer keys.

Lease

When a laptop is activated, the activation has an expiration date. The period between activation and expiration is the lease period. The lease period is determined during the key-generation process; the laptop can be reactivated after the lease has expired.

Library

Content that is created on the laptop is accessed through the Journal; preloaded content is stored in a library and is accessed through the Browse Activity.

Malware

Malware is software designed to infiltrate or damage a computer system without the owner's informed consent. Linux is relatively robust in light of malware and Rainbow provides additional protections above and beyond the standard Linux defaults.

Memory stick

See: Jumpdrive

Mesh Channel

The laptops use three channels for communication: 1, 6, and 11; in simple mesh mode, the laptops can only see other laptops on the same channel; in a School Server mesh, laptops on all channels are visible.

Mesh Network

A wireless mesh network is a communications network made up of radio nodes in which nodes can forward information on behalf of each other so that even nodes that are not in direct radio contact can communicate via nodes that are between them. The collective coverage area of the radio nodes working as a single network becomes a mesh cloud.

Mesh Mode

Network connectivity through a mesh network, for example, 802.11.

Mesh Portal Point

A mesh node that serves as a gateway (portal) to a network external to the mesh.

Mouse button

Originally  referring to a button on a computer mouse, the term is now used to refer to a button on any pointing device, such as a touchpad or pointing stick.

NAND Flash

Internal storage in some laptops, including the OLPC XO. 

Neighborhood View

A view of who is on the network with you and what Activities and content are being shared.

Operating system

(OS) - The low-level system that manages the various files, processes, etc. needed to operate the laptop; the OS used by the XO laptop is the RedHat Fedora distribution of Linux.

Palette

A black box that appears when the mouse hovers over an object; a palette can contain the name of the control, some details about it or some related actions.

Passive kill

Currently unsupported, this is a mechanism that uses the lease mechanism to require laptops to periodically ask for a renewed activation. Without the renewal, the lease will expire and the laptop will be locked.

PO file

A file containing the instance of translated strings for a single language based upon a POT file.

Pootle

A server that is used to store and manage translation templates and files.

POT file

The master translation template for a project.

Power adapter            

Each laptop comes with a power adapter to allow it to be plugged into a power socket.

Presence

A discovery service for finding other laptops on the network.

Rainbow

Rainbow implements the isolation shell implicitly described in the Bitfrost security specification. This means that it isolates Activities (and eventually system services) that it is asked to run from one another and the rest of the system.

Reflash

The process by which a fresh build is installed in the laptop; reflashing overwrites all files, including files in the Journal and /home/olpc. And so, it should be done with caution.

Request Tracker (RT)

Web site: http://rt.laptop.org/ This is a Support ticket tracking system. Read: http://bestpractical.com/rt/ for more information.

Resume

To return to a normal state of operation after suspending.

Rollover

See: Hover over

School server mesh mode

A mesh network that is mediated by a School Server.

SD card

Secure Digital (SD) is a flash (non-volatile) memory card format used in portable devices, including digital cameras, handheld computers, PDAs, and mobile phones. SD card capacities range from 8 MB to 32 GB.

Signed/unsigned builds

OLPC produces both "signed" and "unsigned" builds of the operating system. Signed builds are release builds that have undergone QA testing. Unsigned builds are development builds, which are used for testing new features and bug fixes. You cannot run an unsigned build in your laptop unless you have either a developer key or security has been turned off (as in the case of the G1G1 laptops).

Simple mesh mode

A mesh network that is running between laptops without a School Server.

Single click

Click one time. In many graphical user interfaces, multiple clicks are used as a different gesture than single clicks. Sugar does not use multiple clicks.

Sugar UI

The Sugar user interface.  It consists of four views, the Frame, and the Journal.

Suspend

To cause a computer go into a standby state in order to save power.

Thumb drive

See: Jumpdrive

Toolbar

A user-interface element that can contain several buttons, text entry fields, drop-down menus, and other elements, that is usually contained in a toolbox; common examples of toolbars include: Activity, View, and Edit.

Toolbox

A user-interface element that appears in the top part of most Activities and contains one or more toolbars.

Tubes

A protocol for passing data between computers.

Update/olpc-update

The process by which incremental changes to system software are installed. 

USB drive/USB stick/USB storage device

See: Jumpdrive

View

Instead of a desktop, Sugar maintains four views: Neighborhood, Group (Buddy), Home, and Activity.

Virus

A computer program that can copy itself and infect a computer without permission or knowledge of the user, a type of malware.

Wiki

A collaborative website that allows for community contributions and editing, for example, http://wiki.laptop.org and http://wiki.sugarlabs.org.

XO-1

A low-cost, power-efficient, durable laptop computer designed for education in developing countries by One Laptop per Child. The XO-1 features mesh networking and a dual-mode, low power, sunlight readable display.

XS school server

An XS or school server extends the amount of  storage available to children.  It also serves as a local library and a mesh portal to the Internet.

Credits < Sugar < TWiki

Credits and License

All chapters copyright of the authors (see below). Unless otherwise stated all chapters in this manual licensed with GNU General Public License version 2

This documentation is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this documentation; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Authors

ACTIVITY VIEW
© adam hyde 2008
Modifications:
David Cramer 2008
David Farning 2008
Janis Grinbergs 2008
Tom Boyle 2008
Walter Bender 2008

BACKING UP
© Anne Gentle 2008
Modifications:
adam hyde 2008
David Farning 2008
Walter Bender 2008

BEYOND ACTIVITIES
© Anne Gentle 2008
Modifications:
adam hyde 2008
Tom Boyle 2008

COLLABORATING
© Walter Bender 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
David Farning 2008
Janet Swisher 2008
Tom Boyle 2008

CONNECTING
© Walter Bender 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
David Cramer 2008
David Farning 2008
Janis Grinbergs 2008
Tom Boyle 2008

CONSERVING DISKSPACE
© Anne Gentle 2008
Modifications:
adam hyde 2008
David Farning 2008

CREATING ACTIVITIES
© Faisal Anwar 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
David Farning 2008
Douglas Ridgway 2008
Tom Boyle 2008
Walter Bender 2008

CREDITS
© adam hyde 2006, 2007, 2008

EXITING ACTIVITIES
© Walter Bender 2008
Modifications:
adam hyde 2008
David Farning 2008
Janet Swisher 2008
Janis Grinbergs 2008
Tom Boyle 2008

ACTIVITY SAMPLER
© Walter Bender 2008
Modifications:
adam hyde 2008
Janet Swisher 2008
Tom Boyle 2008

GLOSSARY
© David Farning 2006, 2008
Modifications:
adam hyde 2006, 2007, 2008
Janet Swisher 2008
Seth Woodworth 2008
Tom Boyle 2008
Walter Bender 2008

GROUP VIEW
© adam hyde 2008
Modifications:
David Farning 2008
Janet Swisher 2008
Morgan Collett 2008
Walter Bender 2008

HOME VIEW
© Walter Bender 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
David Farning 2008
Janet Swisher 2008
Janis Grinbergs 2008
Tom Boyle 2008

GETTING SUGAR
© Walter Bender 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
David Farning 2008
Luke Faraone 2008
Morgan Collett 2008
TWikiGuest 2008
Tom Boyle 2008
Yama Ploskonka 2008

INSTALLING ACTIVITIES
© Aaron Konstam 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
David Farning 2008
Janet Swisher 2008
Morgan Collett 2008
Tom Boyle 2008
Walter Bender 2008

ABOUT THE USER INTERFACE
© Walter Bender 2008
Modifications:
adam hyde 2008
Brian Jordan 2008
David Farning 2008
Janet Swisher 2008
Rob Mason 2008
Tom Boyle 2008

WHAT IS SUGAR
© Walter Bender 2006, 2008
Modifications:
adam hyde 2006, 2007, 2008
David Farning 2008
Emily Kaplan 2008
Janet Swisher 2008
Luke Faraone 2008
Rita Freudenberg 2008
Rob Mason 2008
Tom Boyle 2008

LAUNCHING ACTIVITIES
© Walter Bender 2008
Modifications:
adam hyde 2008
David Farning 2008
Janet Swisher 2008

MODIFYING SUGAR
© Brian Jordan 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
David Farning 2008
Tom Boyle 2008
Walter Bender 2008

NEIGHBOURHOOD VIEW
© Walter Bender 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
David Farning 2008
Janet Swisher 2008
Janis Grinbergs 2008
Morgan Collett 2008
Tom Boyle 2008

OVERVIEW
© Faisal Anwar 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
David Farning 2008
TWikiGuest 2008
Tom Boyle 2008
Walter Bender 2008

PERSONALISING SUGAR
© Christoph Derndorfer 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
Brian Jordan 2008
Charles McCarthy 2008
David Farning 2008
Janet Swisher 2008
Tom Boyle 2008
Walter Bender 2008

GNU/LINUX APPLICATIONS
© Janis Grinbergs 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
David Farning 2008
Luke Faraone 2008
Tom Boyle 2008
Walter Bender 2008

SWITCHING ACTIVITIES
© Walter Bender 2008
Modifications:
adam hyde 2008
David Farning 2008
Janet Swisher 2008
Tom Boyle 2008

THE FRAME
© Walter Bender 2008
Modifications:
adam hyde 2008
David Farning 2008
Janet Swisher 2008
Janis Grinbergs 2008
Tom Boyle 2008

THE JOURNAL
© Walter Bender 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
David Cramer 2008
David Farning 2008
Janet Swisher 2008
Janis Grinbergs 2008
TWikiGuest 2008
Tom Boyle 2008

TROUBLESHOOTING
© Walter Bender 2008
Modifications:
adam hyde 2008
Anne Gentle 2008
David Farning 2008
Janis Grinbergs 2008
Rob Mason 2008
Sandy Culver 2008
Tom Boyle 2008

UPDATING
© Anne Gentle 2008
Modifications:
adam hyde 2008
Brian Jordan 2008
David Farning 2008
Tom Boyle 2008
Walter Bender 2008

WHAT IS AN ACTIVITY
© adam hyde 2008
Modifications:
Aaron Konstam 2008
Anne Gentle 2008
David Farning 2008
Janis Grinbergs 2008
Tom Boyle 2008
Walter Bender 2008

Free manuals for free software

General Public License

Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS