I&#39;m not sure about Gears, but I have worked with the Flash persistence stuff before - you&#39;re right, it&#39;s quite convenient.&nbsp; It would be great to build support for finding the storage file and copying it to/from the Journal.&nbsp; <br>
<br>It could even be done automatically by the WebActivity class (or else a separate FlashActivity class if we want to avoid loading Firefox) class, making it transparent to the Flash programmer.&nbsp; <br><br>-Wade<br><br><div class="gmail_quote">
On Fri, Jan 2, 2009 at 2:46 PM, Bryan Berry <span dir="ltr">&lt;<a href="mailto:bryan@olenepal.org">bryan@olenepal.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
this is neat Wade.<br>
<br>
It is a little more heavy weight for some activities. both google gears,<br>
flash, and the flash framework flex have some nice lightweight<br>
persistence functionality.<br>
<div><div></div><div class="Wj3C7c"><br>
On Fri, 2009-01-02 at 14:32 -0500, Wade Brainerd wrote:<br>
&gt; The work we did for WikiBrowse (the WikipediaES and WikipediaEN)<br>
&gt; activities would make a good starting point.<br>
&gt;<br>
&gt; First of all the Browse code should be integrated into Sugar. &nbsp;This<br>
&gt; has been discussed before, and makes sense since you guys are<br>
&gt; maintaining the Browse activity anyway.<br>
&gt;<br>
&gt; The Browse code would be provided as a base<br>
&gt; sugar.activity.webactivity.WebActivity class. &nbsp;Currently, &quot;web-based&quot;<br>
&gt; activities (not content bundles) need to manually find the path to the<br>
&gt; Browse installation (assuming there is one!) and import its modules<br>
&gt; which feels rather hacky.<br>
&gt;<br>
&gt; The sugar.activity.webactivity module should also provide a WebServer<br>
&gt; class. &nbsp;This class is a SimpleHTTPServer derivative which supports<br>
&gt; iterating and finding and returning an unused local port to serve<br>
&gt; over. &nbsp;The server would &nbsp;handle GET/POST requests to a special<br>
&gt; &#39;/journal/&#39; URL prefix, allowing DHTML scripts access to the<br>
&gt; activity&#39;s Journal entry.<br>
&gt;<br>
&gt; Finally, a web-activity launcher script should be created. &nbsp;This<br>
&gt; script launches the Sugar Browse code and supports a variety of<br>
&gt; command line options to control what parts of the Browse UI are<br>
&gt; enabled, and to set the home page. &nbsp;It should be possible to launch a<br>
&gt; Browse instance with nothing but the Activity toolbar for example.<br>
&gt;<br>
&gt; These steps will allow for three (or more!) different variations on<br>
&gt; &quot;web-based&quot; activities:<br>
&gt;<br>
&gt; 1) Static HTML and/or DHTML ala the existing .xol system. &nbsp;A<br>
&gt; collection of .html, css and .js files can be bundled as a .xo file.<br>
&gt; The included <a href="http://activity.info" target="_blank">activity.info</a> exec line calls web-activity with<br>
&gt; appropriate command line options.<br>
&gt;<br>
&gt; The advantage of this approach over .xol files is that the &quot;web-based<br>
&gt; activity&quot; appears as a first class object in the Sugar UI with an<br>
&gt; independent icon on the Home view. &nbsp;Further, since the<br>
&gt; sugar.activity.webactivity.WebServer is used, DHTML code can<br>
&gt; read/write from the activity&#39;s Journal entry.<br>
&gt;<br>
&gt; 2) Static HTML and/or DHTML with custom UI. &nbsp;In WikiBrowse, I<br>
&gt; subclassed WebActivity and added a new Search toolbar, which searches<br>
&gt; the wiki DB and retrieves a page of results. &nbsp;This is the same as<br>
&gt; variation 1, except instead of calling &quot;web-activity&quot;, a new Python<br>
&gt; activity class is derived from sugar.activity.webactivity.WebActivity<br>
&gt; and modifies the UI in some way - adding toolbars, etc.<br>
&gt;<br>
&gt; 3) Static HTML and/or DHTML with custom server. &nbsp;In WikiBrowse, a<br>
&gt; custom webserver attaches to a local port and serves wiki pages. &nbsp;It<br>
&gt; decompresses and formats wiki pages before serving them up as XHTML.<br>
&gt; So in this variation, a simple Python WebServer class is derived from<br>
&gt; sugar.activity.webactivity.WebServer and the appropriate page request<br>
&gt; handing methods are added. &nbsp;The base WebServer class additionally<br>
&gt; handles GET/POST request to access the Journal entry for the activity.<br>
&gt;<br>
&gt; Doing this work would allow us to rewrite WikiBrowse in a much cleaner<br>
&gt; fashion, and would allow a whole range of first class Web-based Sugar<br>
&gt; activities.<br>
&gt;<br>
&gt; Cheers,<br>
&gt; Wade<br>
&gt;<br>
&gt; On Fri, Jan 2, 2009 at 1:18 PM, Tomeu Vizoso &lt;<a href="mailto:tomeu@sugarlabs.org">tomeu@sugarlabs.org</a>&gt;<br>
&gt; wrote:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Hi,<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; without needing to get into what is better for our<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; deployments, I do<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; see value in making easier to make Sugar activities using<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; technologies<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; such as HTML, CSS, etc<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Bryan, can we get into a more detailed view on what it would<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; take<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; ideally to create a new activity using such activities? Which<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; would be<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; the steps that an experienced web designer would need to take<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; in order<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; to create a Sugar activity?<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; I&#39;m sure that someone with basic knowledge of python could<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; create some<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; tools that make it much more easier than it is today. Also<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; have some<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; ideas about how those activities could interact with the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; journal and<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; other Sugar features.<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Thanks,<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Tomeu<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; On Fri, Jan 2, 2009 at 02:50, Bryan Berry &lt;<a href="mailto:bryan@olenepal.org">bryan@olenepal.org</a>&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; wrote:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; This is a draft of a multi-part article I plan to post to<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; OLPC News.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; It is very long but I would very much appreciate your<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; opinions and<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; feedback. Your input will make it a better article once<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; published.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; This OLPC project seems to be going pretty well as of late<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; December<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; 2008. G1G1 v2 is well underway, there are a number of<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; successful pilots<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; going on, and a number of larger-scale pilots will come<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; online this<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; spring and coming summer.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Still, there is a big gaping whole in the middle of our<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; little education<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; project. There just aren&#39;t enough activities. Mind you, we<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; have some<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; seriously awesome activities such as Etoys, Scratch, TamTam,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; and others.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; We have tremendous depth but very limited breadth.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; By breadth, I mean interactive activities for language,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; history,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; geology, health, etc. In order to expand the range of<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; activities, we<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; need to recruit a lot more activity developers and make it<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; dead-simple<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; for them to contribute.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &lt;strong&gt;But Which Developers?&lt;/strong&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Let&#39;s think about who we want to recruit. We&#39;re talking<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; about breadth<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; here so we need experts on Nepali grammar, Pashto<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; vocabulary, Philippine<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; history, and Andean &nbsp;geography. The good news is that there<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; are<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; technically-oriented people out there that know these things<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; and want to<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; help.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; We already have a hardcore team of dedicated hackers. We<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; need them for<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; the work that hackers excel at: building infrastructure,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; testing the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; limits of new systems. But now we need a different class of<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; developer,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; those that are focused on the presentation, game play and<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; not system<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; internals.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Based on these characteristics, let&#39;s call these people<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &lt;u&gt;designers&lt;/u&gt;. The good news is that there are lots of<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; designers-particularly in developing countries-that want to<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; contribute<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; to OLPC. The bad news is that they don&#39;t know python. or GTK<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; +. They may<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; not even be familiar with linux. They do know HTML, CSS,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Javascript, and<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Adobe Flash. Allow me to explain.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Due to rise of the Internet and related boom in outsourcing,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; the vast,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; vast majority of programmers in developing countries are web<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; developers<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; (according to my own grossly unscientific survey). The rise<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; of the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Internet has also led a lot of talented graphic designers in<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; developing<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; and developed countries to learn web technologies. I even<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; wager that CSS/HTML/Javascript will become the de facto GUI<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; technologies<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; in a few years time. &lt;a<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; href=&quot;<a href="http://en.wikipedia.org/wiki/Pygtk" target="_blank">http://en.wikipedia.org/wiki/Pygtk</a>&quot;&gt;PyGTK&lt;/a&gt; won&#39;t<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; take over the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; world nor will VB.net.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; The popular term for this triumvirate of technologies is &lt;a<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; href=&quot;<a href="http://en.wikipedia.org/wiki/AJAX" target="_blank">http://en.wikipedia.org/wiki/AJAX</a>&quot;&gt;AJAX&lt;/a&gt;, with the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; difference<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; that AJAX applications typically require communication with<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; a remote<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; server. I propose using web technologies for completely<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; offline<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; activities. Adobe&#39;s Flash is basically a variant of AJAX<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; that uses<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; dialects of Javascript (&lt;a<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; href=&quot;<a href="http://en.wikipedia.org/wiki/Actionscript" target="_blank">http://en.wikipedia.org/wiki/Actionscript</a>&quot;&gt;Actionscript&lt;/a&gt;) and<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; XML (&lt;a href=&quot;<a href="http://en.wikipedia.org/wiki/MXML" target="_blank">http://en.wikipedia.org/wiki/MXML</a>&quot;&gt;MXML&lt;/a&gt;).<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Very few programmers in the developed world get paid to<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; write desktop<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; linux apps. Still, open-source developers find learn and<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; build pygtk,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; mono, and KDE apps in their free-time. Developers in the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; developing<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; world are extremely enthusiastic about FOSS but not nearly<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; as prolific<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; in creating open-source software due to a phenomenon I<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; call the &quot;FOSS-Nepal Paradox.&quot;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; The &lt;a<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; href=&quot;<a href="http://wiki.fossnepal.org/index.php?title=The_FOSS_Nepal_Community" target="_blank">http://wiki.fossnepal.org/index.php?title=The_FOSS_Nepal_Community</a>&quot;&gt;FOSS Nepal&lt;/a&gt; community has &lt;a href=&quot;<a href="http://softwarefreedomday.org/Competition2008" target="_blank">http://softwarefreedomday.org/Competition2008</a>&quot;&gt;won the award&lt;/a&gt; for best celebration of Software Freedom day for two years in a running. &nbsp;Despite all this enthusiasm the FOSS Nepal community is not very prolific in producing open-source code. The reason for this is that Nepal is not a wealthy country and that Open-Source is &lt;em&gt;&lt;strong&gt;expensive&lt;/strong&gt;&lt;/em&gt; to produce.<br>

&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &lt;strong&gt;Open-Source is Expensive&lt;/strong&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Open-source software voraciously consumes a resource even<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; more valuable<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; than hard cash, programmer time. Linus Torvalds could afford<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; to spend<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; some of the most productive years of his life working<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; without immediate<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; financial benefit. He could slack off in his classes without<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; fear of<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; unemployment upon graduation. I doubt his parents were<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; counting on him<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; to support them financially once he got a job.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Most talented Nepali programmers I know do not have those<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; luxuries. They<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; are under a lot of pressure to support their parents and<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; extended<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; families, financially and otherwise. So Nepalis,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Bangladeshis, Peruanos,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; etc. certainly have the passion and ability to contribute to<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; open-source<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; but their free time is significantly more limited.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; This doesn&#39;t mean that we should rely on developers from<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; rich countries.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; We simply need to radically lower the amount of time<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; required to create<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; learning activities. I believe that many, many developers in<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; developing world can contribute 3-5 hours per week. To make<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; those few<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; hours productive we need to rework the default activity<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; framework.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &gt;From what I can tell, the primary design goals of the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; default PyGTK<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; activity<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; framework are as follows:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &lt;ol&gt;&lt;li&gt;Give the programmer maximum<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; flexibility&lt;/li&gt;&lt;li&gt;Fully exploit<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; the XO&#39;s hardware features &lt;/li&gt;&lt;li&gt;Mesh nicely with<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Sugar&lt;/li&gt;&lt;/ol&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; These three goals are laudable and their hacker roots are<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; obvious. The<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; problem is that these goals maximize the technology&#39;s<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; potential rather<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; than programmer productivity. We need reach beyond the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; vi/emacs crowd<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; (Note: I wrote this article using emacs) to thos folks that<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; the masters<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; of Photoshop, Adobe Illustrator, Eclipse, and GIMP.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; I propose a new set of design goals:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &lt;ol&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; &nbsp;&lt;li&gt;Allow activity designers to quickly build<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; activities utilizing<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; widely-used tools.&lt;/li&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; &nbsp;&lt;li&gt;Quickly reward effort with working behavior&lt;/li&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; &nbsp;&lt;li&gt;Mesh nicely with the Sugar UI&lt;/li&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &lt;/ol&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &lt;strong&gt;It&#39;s OK to be Opinionated&lt;/strong&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; We need an opinionated activity framework that makes<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; infrastructure<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; choices for the designer so that she can focus presentation<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; and<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; gameplay. Some may recognize this as the principle of &lt;a<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; href=&quot;<a href="http://en.wikipedia.org/wiki/Convention_over_Configuration" target="_blank">http://en.wikipedia.org/wiki/Convention_over_Configuration</a>&quot;&gt;Convention Over Configuration&lt;/a&gt;, a principle that two of the most popular web frameworks, Django and RubyOnRails, adhere to. Now a lot of geeks don&#39;t like Convention over Configuration--perl hackers especially--but they sure do allow you to create nice applications very quickly.<br>

&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Establishing an &quot;opinionated&quot; activity framework will in no<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; way limit<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; the freedom of those hackers who want to go their own way.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; They can<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; always build their own activities from whatever tools they<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; choose. The<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; whole point of a framework is to help people get started<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; quickly but it<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; doesn&#39;t constrain anyone.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; This concludes part I. Here are some tantalizing morsels<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; from Part II<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; of &quot;How to Make Activity Designers Happy,&quot;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &lt;ul&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; &nbsp;&lt;li&gt;Where it&#39;s at: HTML, CSS, Javascript, and *gasp*<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Flash&lt;/li&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; &nbsp;&lt;li&gt;Nepal&#39;s Content Development Experience&lt;/li&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; &nbsp;&lt;li&gt;Aren&#39;t Kids going to create all learning<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; activities so we don&#39;t<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; have to?&lt;/li&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &lt;/ul&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &lt;em&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Bryan Berry is the Technology Director of &lt;a<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; href=&quot;<a href="http://www.olenepal.org" target="_blank">http://www.olenepal.org</a>&quot;&gt;OLE Nepal&lt;/a&gt; and deadbeat<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; co-editor of<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; OLPCNews.com. Christopher Marin contributed his knowledge<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; about all<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; things web to this article&lt;/em&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; In part 1, I talked about the paradoxical<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; nature of open-source communities in developing countries,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; flaws in<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; the current default activity development framework, and the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; urgent<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; need for a new framework that makes activity designers<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;em&gt;happy&lt;/em&gt;.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; By happy, I mean that the framework rewards their efforts<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; almost<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; immediately (roughly 15 minutes of effort) and it lets them<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; focus on<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; presentation and gameplay rather than infrastructure. Last<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; time I<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; offered some vague ideas how this framework might function.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; This time<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; I will provide more details how this framework could work<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; and why.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Let&#39;s Ride The Internet Wave<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; The Internet is the 300-pound gorilla in the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; software-engineering room<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; it will eat virtually everything, including your favorite<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; desktop GUI<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; framework. All of the IDE&#39;s bend over backwards to support<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; coding of<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; webapps, whether it is emacs, eclipse, or even vim. The<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; software<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; industry is making huge investments into web technologies<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; that support<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; the triumvirate of HTML/CSS/Javascript, witness Google&#39;s<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; investment in<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &lt;a href=&quot;<a href="http://code.google.com/p/v8/" target="_blank">http://code.google.com/p/v8/</a> &quot;&gt;V8 javascript&lt;/a&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; compiler and<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Apple&#39;s investment in &lt;a<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; href=&quot;<a href="http://en.wikipedia.org/wiki/WebKit" target="_blank">http://en.wikipedia.org/wiki/WebKit</a>&quot;&gt;Webkit&lt;/a&gt;. I<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; speculate<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; that there are many, many more developers working on GUI<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; toolkits for<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; the web browser- such as JQuery, Prototype,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Script.aculo.us-than for<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; GNOME or KDE desktop frameworks.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; The web will keep innovating at a breakneck pace. We need to<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; ride that<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; wave of innovation.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; In the early days of OLPC, we all had a lot of grandiose and<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; impractical ideas. The educational systems of developing<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; countries<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; would change overnight into constructionist hotbeds. Kids<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; would build<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; their own activities, eliminating the need for large<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; investments in<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; content development. A million PyGTK apps with built-in<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; collaboration<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; and &quot;View-Source&quot; key would spontaneously bloom . . . Well,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; we&#39;re<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; older and wiser now. School systems anywhere are not blank<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; slates that<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; we can redraw from scratch using cheap laptops and Etoys.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Similarly,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; we cannot expect thousands of developers to flock to a<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; framework<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; (PyGTK) that is not commercially popular.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Developing Country Developer Economics<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; As I wrote in Part I, the economics of open-source in<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; developing<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; countries is quite different than that in the developed<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; world. Developers there have ample enthusiasm for<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; open-source but much<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; less time to contribute.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; We need to lower the barrier of entry significantly in order<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; to use<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; their talents. In fact, we need to entice non-programmers<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; such as<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; graphic designers. In my limited experience, graphic<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; designers are<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; much better at designing learning activities than<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; programmers. They<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; better appreciate aesthetics and visual story-telling.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Web designers layout their work using CSS and (X)HTML. They<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; implement<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; user interaction and animations using Javascript. They<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; design their<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; work using Photoshop, GIMP, Adobe Illustrator, and sometimes<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Eclipse. They know the features and dark areas of the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Firefox web<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; browser. Sugar infrastructure developers, these people are<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; your<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; customers. We need KARMA to enable them to quickly buidl<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; activities<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; for the XO without having to learn a whole new skillset.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; From a<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; programmatic point of view, Browse needs to behave as much<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; as possible<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; like Firefox. Any discrepancy will distract activity<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; designers from<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; the more rewarding parts of activity development.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Building Good KARMA<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Before we get too far, let&#39;s give this new activity<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; framework a name<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; so I can save us all a lot of excess verbiage. I call it<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;u&gt;KARMA&lt;/u&gt;,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; because the word is loosely-related to Nepal, my current<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; residence,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; and I like to think creating open-source learning activities<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; gives an<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; individual good karma. Coincidentally, it is also the first<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; two<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; syllables of Rabi Karmacharya&#39;s last name--an individual put<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; a ton of<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; hard work and personal sacrifice into the OLPC project in<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Nepal.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Well, I haven&#39;t actually made up my mind what the core<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; technologies of<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; KARMA<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; should be. I need your help to work it out. Before I get<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; into the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; technologies, here are my priorities. 1) These tools<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; maximize<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; programmer productivity and 2) are open-soure. Priority #1<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; is much<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; more important than #2. 100% purely open-source activities<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; that don&#39;t<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; exist don&#39;t help kids learn. The current pygtk framework is<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; purely<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; open-source but you have to become a unix programmer to use<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; it. As I<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; noted in Part I, the vast, vast majority of programmers in<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; developing world are web developers and a successful<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; activity<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; framework will allow them to re-use their existing skills<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; and tools.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; I have settled on HTML and CSS for the presentation but it<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; is tougher<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; to decide on the scripting toolset and on persistent data<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; storage. Flash handles animations really well and it is easy<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; to<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; integrate audio into the animations. Adobe sells some really<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; nice<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; WYSIWYG tools for editing animation and adding audio. A lot<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; of<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; developers know flash so there is a large pool of talent we<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; can draw<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; from. Did I forget to mention that Flash is proprietary?<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; The closed-source issue not withstanding, Flash is the tool<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; to<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; use. Some may be upset that Flash doesn&#39;t lend itself to<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &quot;View Source&quot;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; functionality but learning programming is not the sum total<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; of<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; education. Kids can do all the programming they ever want to<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; w/ the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; excellent Etoys and Scratch. Sorry to sound like a broken<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; record, but<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Afghani kids won&#39;t be able to view the source of Pashto<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; grammar<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; activities that don&#39;t exist, let alone interactively learn<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; the rules<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; of Pashto grammar.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Flash Ain&#39;t Open-Source<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Flash is not _as_ closed-source as other software<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; applications like<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Windows. The Adobe has published the specification for their<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; SWF file<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; format and the ActionScript 3.0 compiler is open-source.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;However, the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Adobe&#39;s development tools such as Adobe Animator,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Illustrator,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Photoshop, etc. are not open-source. Nor is Adobe&#39;s flash<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; player<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; plugin. There is the open-source Gnash player but it does<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; not fully<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; support Actionscript 3 or Flash version 9. Rob Savoye and<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; his team at<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Open Media Now do a great job but they seriously lack<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; resources. Note:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Rob<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Savoye, please correct my egregious errors.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Javascript Isn&#39;t Ready<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; I put in a good number of research hours into this article.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; I really,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; really wanted to find a pure javascript framework that could<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; compete<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; with Flash. I couldn&#39;t find one that does. There are<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; libraries like<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; DOJO, JQuery, and Processing.js<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; <a href="http://ejohn.org/blog/processingjs/" target="_blank">http://ejohn.org/blog/processingjs/</a>. Unfortunately, there<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; aren&#39;t any<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; IDE&#39;s that provide WYSIWYG animation editing for these<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; tools. Every<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; try to edit photos from a text editor? It&#39;s painful, really<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; painful. So while real programmers use emacs (or vi, joe,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; sam, etc.),<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; designers use WYSIWYG GUI&#39;s.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Sadly, Javascript can&#39;t use the Graphics Processing Unit<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; like Flash<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; can. Ouch, it&#39;s a pain in the ass to couple animations with<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; sound<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; files. Based on my research so far, pure javascript won&#39;t be<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; able to<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; compete with Flash for at least the next several years.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Please prove<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; me wrong. Please post a comment to this article linking to<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; some<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Javascript wonderfulness that pulls even with Flash.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; I will continue with the assumption that KARMA will use<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; flash. I will<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; happily revise this article ex post facto if someone in<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; cyberspace<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; points me to a pure javascript solution that makes activity<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; designers<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; happy.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Building Momentum for Gnash<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; I believe that the best way to increase interest in fully<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; open-source<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; flash is to make Flash more central in the evolving<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; open-source<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; education stack rather than minimizing its role. We<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; definitely cannot<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; wait for Gnash to fully support every feature of the<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; proprietary flash<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; before we begin using it. Open-Source starts when a single<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; developer<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; &quot;scratches an itch&quot; as the proverb goes. It follows then<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; that the best<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; way to bring Gnash up to speed we need to create a nasty,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; festering<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; sore that irritates the open-source community into action.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Moving the Conversation Forward<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Many people will likely hate my promotion of Flash for<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; learning<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; activities. It&#39;s OK if you hate me and Flash. I do hope you<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; recognize<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; that we need a more developer-centric activity framework<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; that uses web<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; technologies.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; I have a lot more to write about Nepal&#39;s experiences<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; developing<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; learning activities and my ideas on Convention over<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Configuration in<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; sugar activities. I will save those for another day.<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; --<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Bryan W. Berry<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; Technology Director<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; OLE Nepal, <a href="http://www.olenepal.org" target="_blank">http://www.olenepal.org</a><br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; _______________________________________________<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; IAEP -- It&#39;s An Education Project (not a laptop project!)<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; <a href="mailto:IAEP@lists.sugarlabs.org">IAEP@lists.sugarlabs.org</a><br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt; <a href="http://lists.sugarlabs.org/listinfo/iaep" target="_blank">http://lists.sugarlabs.org/listinfo/iaep</a><br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; _______________________________________________<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Sugar-devel mailing list<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; <a href="mailto:Sugar-devel@lists.sugarlabs.org">Sugar-devel@lists.sugarlabs.org</a><br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://lists.sugarlabs.org/listinfo/sugar-devel" target="_blank">http://lists.sugarlabs.org/listinfo/sugar-devel</a><br>
&gt;<br>
</div></div>--<br>
<div><div></div><div class="Wj3C7c">Bryan W. Berry<br>
Technology Director<br>
OLE Nepal, <a href="http://www.olenepal.org" target="_blank">http://www.olenepal.org</a><br>
<br>
</div></div></blockquote></div><br>