Difference between revisions of "User:Quozl"

From Sugar Labs
Jump to navigation Jump to search
Line 1: Line 1:
== Pippy Design Idea ==
+
== Pippy Design Idea 2011-03-10 ==
  
Purpose:
+
=== Purpose ===
 
*increase code sharing,
 
*increase code sharing,
 
*increase relevance to Python users,
 
*increase relevance to Python users,
 
*increase portability of code written.
 
*increase portability of code written.
  
 +
=== Data ===
 
A running Pippy instance will contain the following data:
 
A running Pippy instance will contain the following data:
 
*zero or more python zip bundles,
 
*zero or more python zip bundles,
Line 11: Line 12:
 
*unless the user has asked to edited the setup.py, it will not be shown, instead a default will be used, maintained by Pippy,
 
*unless the user has asked to edited the setup.py, it will not be shown, instead a default will be used, maintained by Pippy,
  
 +
=== Input ===
 
Pippy may read from:
 
Pippy may read from:
 
*a saved instance of Pippy, in the journal,
 
*a saved instance of Pippy, in the journal,
 +
*a zip bundle in the journal,
 
*example zip bundles included with Pippy,
 
*example zip bundles included with Pippy,
  
 +
=== Output ===
 
Pippy may write to:
 
Pippy may write to:
 
*a saved instance of Pippy, in the journal,
 
*a saved instance of Pippy, in the journal,
 
*a zip bundle in the journal.
 
*a zip bundle in the journal.
  
 +
=== Display ===
 
Display will contain:
 
Display will contain:
 
*toolbar,
 
*toolbar,
*a series of tabs, one for each bundle, and an add bundle button,
+
*a series of tabs, one for each bundle, an add bundle button, and an open example bundle button,
*within each bundle, a series of tabs, one for each file, and an add file button,
+
*within each bundle, a series of tabs, one for __doc__ that is not editable, one for each source file that is editable, and an add file button,
 
*within each file, a syntax highlighting text edit widget.
 
*within each file, a syntax highlighting text edit widget.
  
 +
=== Process ===
 
When run is pressed, display will contain:
 
When run is pressed, display will contain:
 
*toolbar,
 
*toolbar,
Line 30: Line 36:
 
*a stop button.
 
*a stop button.
  
List of changes:
+
=== Changes ===
 +
Partial list of changes to bring Pippy existing source to a state consistent with the design above:
 
*remove the examples widget from the main screen, provide it only as an "open an example bundle" function,
 
*remove the examples widget from the main screen, provide it only as an "open an example bundle" function,
 
*remove the output window from the main screen, provide it only when a program is run, and only if the program generates stdout or reads from stdin,
 
*remove the output window from the main screen, provide it only when a program is run, and only if the program generates stdout or reads from stdin,

Revision as of 20:00, 9 March 2011

Pippy Design Idea 2011-03-10

Purpose

  • increase code sharing,
  • increase relevance to Python users,
  • increase portability of code written.

Data

A running Pippy instance will contain the following data:

  • zero or more python zip bundles,
  • each python zip bundle will include a setup.py capable of creating the zip bundle output,
  • unless the user has asked to edited the setup.py, it will not be shown, instead a default will be used, maintained by Pippy,

Input

Pippy may read from:

  • a saved instance of Pippy, in the journal,
  • a zip bundle in the journal,
  • example zip bundles included with Pippy,

Output

Pippy may write to:

  • a saved instance of Pippy, in the journal,
  • a zip bundle in the journal.

Display

Display will contain:

  • toolbar,
  • a series of tabs, one for each bundle, an add bundle button, and an open example bundle button,
  • within each bundle, a series of tabs, one for __doc__ that is not editable, one for each source file that is editable, and an add file button,
  • within each file, a syntax highlighting text edit widget.

Process

When run is pressed, display will contain:

  • toolbar,
  • stdout stdin vte,
  • a stop button.

Changes

Partial list of changes to bring Pippy existing source to a state consistent with the design above:

  • remove the examples widget from the main screen, provide it only as an "open an example bundle" function,
  • remove the output window from the main screen, provide it only when a program is run, and only if the program generates stdout or reads from stdin,
  • enlarge the program text entry widget to be nearly full screen,
  • encapsulate the program text entry widget in tabs for files in a zip bundle,
  • encapsulate the bundle in tabs for zip bundles loaded into pippy instance,
  • on standard sugar save, save all zip bundles and files in a sugar journal entry,
  • provide an export zip bundle button that creates a sugar journal entry of type zip bundle, for sharing,
  • provide a way to import zip bundles from journal into the current pippy instance, using the object chooser,
  • on execution of a bundle, allow access to all other currently loaded bundles via import, and access to system bundles via import,

Discussion Log

<Quozl> pippy screen might contain a series of zip bundles.  each bundle might contain multiple files, including the setup.py perhaps hidden.  learner might load some bundles into pippy, then write a program as a new bundle that imports the other bundles.
<Quozl> i think the program output window might be separate to the main view ... something that pops up when "run" is pressed.
<Quozl> i think the series of examples takes up space unnecessarily.
<m_anish> Quozl yep, and an activity for a kid could be to use the existing examples in a bundle to write more complex code
<Quozl> yes.
<m_anish> Quozl agree
<Quozl> each of the samples would be a bundle.