Joke Machine

From WorldWideWorkshop-OLPC wiki

Jump to: navigation, search

Image:GameLogo_joke.png

Summary
Tickets: Trac
Source: Git


Contents

To Do

  • Figure out why only alerts are being translated
  • Double check that all strings are gettexted
  • Use hippo.PACK_EXPAND to get rid of hardcoded sizes
  • Get a fix on memory useage
  • Create and set activity_version property for persistence.JokeMachineState.version
  • Split unit.py out into separate test cases
  • Sundry refactors
  • Figure out a safe way to clean out /activity_root/tmp on startup
  • Things waiting for the journal to settle
    • Filter ObjectChooser to only list images/audio -> https://dev.laptop.org/ticket/3060
    • Create sample Jokebooks in the journal on bundle installation
    • Insert sample laugh tracks into the journal on bundle installation
    • Fold image/image_blob into a single property
    • Fold sound/sound_blob into a single property
    • Bring up the last Jokebooks instead of starting from scratch when started from the frame
    • Don't persist if there are no jokebooks


Known Problems

  • i18n is only translating alerts at the moment for some strange reason
  • Deprecating theme_widget() for custom gtkrc fixes language combo but there are now faint hints of Irish in the activity frame :)


Screenshots


Design and Functionality

Children love to hear and tell jokes. Each culture has its own jokes which reflect a unique world perspective. Joke Machine allows kids to create a set of written jokes – a project that helps with reading, writing and cultural learning. Kids can enhance each joke by adding an image that they created with other XO activities, such as Paint, Camera and Cartoon Builder. They can also include one sound effect (to play with the punchline delivery) made with Tam Tam or the XO microphone.

“Jokebooks” can be shared with other XO users over the mesh. During the sharing process, users can submit jokes for one another’s jokebooks, thereby allowing a user to collect jokes. The jokebook author can delete or edit any submissions they receive.

This activity is loosely based on Poll Builder engine, but will be expanded to incorporate media files and to make use of explicit sharing via the mesh.

Version 1.0 (Create and edit original jokebooks locally on your XO)

  • Ability to create a jokebook with a title (i.e. Knock Knock jokes), cover image, short sound effect (played when punchline is revealed) and up to 25 (?) jokes.
  • Each joke entry is composed of text-based question and answer, and an optional image to accompany it.
  • Images can be imported and should be dynamically resized to fit a specified display area in the jokebook page.
  • Interface for creating and editing original jokebooks (title, cover image, sound effect, text for jokes, optional image for each joke.)
  • Ability to preview the jokebook and make further edits before publishing
  • Ability to delete a jokebook
  • Interface for selecting and reading jokebooks.
  • Joke sets will be stored in the Data Store to be accessible via the Journal. The storage space required for version 1.1 depends on the number of jokes. Need to determine number max. number of jokebooks and jokes that can be saved.
  • Integrated Language Chooser feature (same format as in Poll Builder)
  • Integrated Lesson Plan feature (same format as in Poll Builder)

Version 1.1 (Jokebooks can be shared, jokes can be submitted via the mesh)

  • Share Your Jokebooks - others can join a jokebook as a shared activity on the mesh.
  • While a jokebook is being shared, users can submit new jokes for it from their XOs.
  • Author’s XO will be updated with joke submissions during the shared activity.
  • If you disconnect or close the activity, others cannot submit jokes, but can still see the jokebook as it was when you disconnected.
  • Detect and include the name of the remote user who contributed a joke.
  • Provide submission interface with text fields for joke question and answer, option to browse journal to find an image file and import it for use on joke display page.
  • Images dynamically resized to fit a specified display area in the jokebook page.
  • Jokebook Editing Interface for Jokebook author will be enhanced with a screen for reviewing and approving remote joke submissions.
  • Once approved by author, new jokes will be merged back to onto the Joke set author’s XO. New jokes can be seen by other users next time the jokebook is shared.
  • Use Sugar Presence Service (Telepathy) and Tubes for interacting with other XOs.


Development

Current Status

Packages

Latest


History

  • JokeMachine-7.xo.zip history - Tested on update.1 678
    • Updated: Expanded copyright header on source files
    • Updated: Reflect changes in sugar.graphics.objectchooser
    • Fix: Widgets now render correctly on first expose event on XO hardware
    • Fix: Background color of sound selector is now right color on XO hardware
    • Fix: Lesson plans are no longer being opened as text by AbiWord on XO hardware
    • Fix: Cursor now changes to hand icon when over sound selector
    • Added: AUTHORS file
  • JokeMachine-5.xo.zip history - works on Trial 3 build 623 but requires joyride build 138 or newer to show mesh event alerts.
    • Feature: If no sound set, play default sound: laugh_attack.au
    • Fixed: Activity icon now adopts users color scheme
    • Fixed: Temp directory now rooted off activity.get_activity_root()
    • Fixed: Moved locale/ dir back to po/
    • Fixed: Temp filenames now created using more secure tempfile.mkstemp()
    • i18n: Changed pot files to utf-8
  • JokeMachine-4.xo.zip history - works on Trial 3 build 622 but requires joyride build 138 or newer to show mesh event alerts.
    • Feature: Initial Import w/ basic mesh support
    • Feature: Adapt UI depending on whether you are sharing or joining
    • Feature: Broadcast accepted submissions back to buddies
    • Feature: Select a sound to play on Joke punchlines
    • Feature: Put alerts up when joke submitted and approved over mesh
    • Feature: Put alert up advising patience when joining a shared jokebook
    • Feature: Made Lesson Plans button work
    • Feature: Safe fallback for builds without sugar.alert
    • Feature: Hooked LanguageCombo up
    • i18n: Created (a rough!) Afrikaans translation
    • Fixed: Rename Jokebook Info -> Edit Jokebook Cover
    • Fixed: Preview mode shows make jokebook button - it shouldn't
    • Fixed: Submit a Joke button -> only for buddies
    • Fixed: Deprecated theme_widget() in favor of a custom gtkrc
    • Fixed: Prepended Cover on preview
    • Fixed: Don't hardcode JokeEditor delete button position
    • Fixed: On read jokebook & empty -> "Edit My Jokes" -> Go to edit my jokes tab
    • Updated :Mesh code for dbus tubes changes

Lesson Plans

Research

Source Code

Personal tools