Week 7 Sugar Familiarization

Getting Set Up

What is Sugar?

Sugar is a children's graphical user interface, written in python, and built on top of Linux (the XO laptop runs Fedora, but Sugar is available for Ubuntu and Debian as well). Sugar is the UI that all XO laptops come stock with, and will be the UI that you will be designing programs for.

Ideally, we'd be developing from within Sugar and testing all of our applications on the XO. Unfortunately, this is not the case for several reasons. First, the XO laptops are not very powerful and don't lend themselves towards software development. Sugar comes with an IDE activity called Develop, but this IDE is only good for making last minute changes to code, and not meant to be used to make full activities. Developers looking to make full applications will likely want to use an IDE that's more powerful and one with which they've already become familiarized. Additionally, XO laptops are somewhat expensive and can be difficult to come by (at this point in time), making them a less than ideal hardware solution.

Emulation is the solution to all of these problems. The following section is devoted to setting up an XO virtual environment that you can use for developing activities for the XO.


  • What is emulation? Emulation is the ability of a computer program to emulate another computer program or system. We're going to be using virtualization software like VMWare to emulate the Sugar environment on our own computer.
  • What does it enable us to do? Emulation enables us to develop software for the XO without actually having an XO. We can write and test all of our code and see how it will act before deploying our activity to be used on an XO.
    • No new hardware (in this case an XO) is necessary. All development can be done on a standard computer.
    • We can run this side-by-side with our normal operating system (development platform)
    • Bonus question: what's the difference between emulation and virtualization?

Installing the Emulator and Image

Diving into Sugar

Learning the laptop

  • The images do not come preloaded with activities
    • Do this to keep the developer images "clean"
  • Can, however, easily add more applications
  • Can also download an activity pack (multiple activities at once)
  • Take a look around, familiarize yourself with the look and feel of different applications
    • Do you see similarities or standards? What kinds?
  • Example of standards
    • No words on buttons - why? (language independent)
    • Everything a shade of gray. Why? (grayscale laptop support)
    • Limited options - why? (child friendly)

Learning about the user interface

Preparation for Programming

Emulator customizations

SSH within Qemu

  • We want to be able to send files between the development OS and Sugar
  • We can do this through SSH
  • This allows us to make changes locally to our activities, within an IDE, then push the changes over to Sugar
  • Connect through SSH/SFTP
    • Simply:
      • WinSCP (Windows), Fugu (OS X), ssh/scp (command line Unix)
    • More complexly (mounts as a drive)
      • FUSE, MacFUSE


Get your own computer up and running with Sugar and the above customizations. Get to know the interface and start thinking about what kind of application you may want to create. Create a mockup for the UI, taking into consideration the guidelines that you read about.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License