Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

planning an exe port to Flex/AIR

Developers
2010-07-02
2013-04-15
  • Marielle Lange
    Marielle Lange
    2010-07-02

    Hi there, 

    I have looked into the feasibility of a port to Flex/AIR. One of the reason for this was that I was keen to fork eXe to create activities for mobile devices (html5). Initial investigation is most encouraging.

    Thanks to the webkit browser embedded within AIR, I can provide the exact same functionalities as eXe, with the tinyMCE editor embedded in an otherwise Flex UI. The advantage of AIR over exe is that they embed a fairly recent version of the webkit, one that supports HTML5. The Flex framework is open source (not the AIR one). Flash Builder, the eclipse based IDE, is free for educators/students https://freeriatools.adobe.com/.

    Look at the PhoneGap simulator in AIR http://blogs.nitobi.com/yohei/2009/04/01/phonegap-air-simulator-in-development/ for an example of what can be achieved.

    exeLearning is open source, so I don't really require permission to port ;-). However I would be interested to hear from both eXe developers and community members on their views of the value of such a port.  

    I really like the way eXe expressed the problem of exercise making in very simple ways, html editing for html output. But I am not too fond of the current architecture or limited abstraction in the code. Though it is open source, it is not that easy for third parties to contribute. All in all, I personally prefer to port to Flex than contribute to the Python code. Each language has pro and cons, of course. Flex makes it a lot easier to build rich user interfaces. Another reason is that Actionscript 3 is an object oriented language that let architecture the application in a way that makes it easier to maintain, upgrade, or for others to contribute 

    Architecture really is important. The difficult is always to find a tool that has both pedagogical value and is soundly designed. Not an easy feat. It requires very different sets of skills. A few years back, when an educator I grew frustrated with tools made available to me. I spent more and more time learning technology. I wrote some thoughts about the type of tools that I wanted as an educator: http://widged.com/wiki/doku.php?id=tags:exercist. Then I gave myself the skills that I needed to realize that project and pushed myself on the other side of the pyramid. I am now a professional Flex developer: http://widged.com/portfolio/.

    Though I prefer Flex, some of the work I intend to do will be to provide a real templating system for iDevices (a system so that inerfaces to edit the content of iDevices can easily be generated in different environments, with different programming languages).

    Let me know what your thoughts are. 

     
  • Marielle Lange
    Marielle Lange
    2010-07-03

    I take this as an encouragement to go ahead: Is eXe still an active project? "eXe is not being actively developed any longer.  I still fix the occasional bug or get it working on updated operating systems, but have no plans for any major further work."

    Investigating further, it is possible to create a truly modular solution for iDevices. iDevices are coded as Flex Modules that are dynamically loaded at runtime, either from a local file or from a remote location.  This opens up new opportunities.
    - An obvious one is a repository of modules that is centrally held. With the modules being completely independent from the main code base, new modules can be added by community members without requiring them to compile the full exe project (I have moved locale to the device folder). There is no requirement for any review on my part.
    - A less obvious one is that though the main architecture is open source, the modules don't need to be so. They are compiled into a swf. This makes it possible for professional quality modules to be contributed (free or paying).

     
  • Marielle Lange
    Marielle Lange
    2010-07-03

    Checking the license. GPL may make it difficult to have professional quality / paying iDevices. However, according to this discussion of Source Code Licenses and Flash/Flex, third party modules don't have to be open source if the modules are downloaded from a server by the user. "Note that server-side code is an exception because the application is never in the possession of the end user. "

    LGPL would be more practical.

    On the other hand, this is a not really a port but a complete rewrite from scratch of a learning activity player based on ideas I had before eXe was developed. I am keen to provide support for all current exe iDevices, but that will be along with a number of other modules allowing to define the content of learning objects. It can be seen as falling under this of the GPL license "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."

    I will have to think about this.

     
  • Marielle Lange
    Marielle Lange
    2010-07-10

    I created two projects on github.

    One for the AIR software that let you manage and edit learning activities. . I have seen that jQuery was distributed under a dual license, MIT or GPL. I will probably do the same.

    Another one for the activity modules . jQuery, will be the recommended option for contributing new activities. The license will be specific to each activity.

     
  • Noel Cosgrave
    Noel Cosgrave
    2010-08-12

    Marielle, have you made any further progress with this?

     
  • Marielle Lange
    Marielle Lange
    2010-08-12

    Hi Noel,

    Here is a quick overview of the progress.

    1. Widgeds

    A group of widgeds - widgets for education, similar notion as iDevice in eXe -, have been developed with jQuery. Demoed at:
    wikispaces

    I aimed for types of activities that are not yet available in the usual quiz packages as I really want this to be extensible. If you look at the racing widged, it really is  a multiple choice questionnaire. Only one better adapted to mobile environments. Rather than give everybody 10 questions to answer, it defines a number of correct questions to answer. The ones that are at mastery will be finished rapidly. The ones that are not will receive extra questions.

    The widgeds have been written so that the content can easily be modified by editing the html.

    <div class="wg-racingCar">
      <p class="item">UN + DEUX = 3 | 4 | 9 | 6</p>
      <p class="item">8 + 4 = 12 | 16 | 14 | 24</p>
     ...
    </div>
    
    QUESTION = CORRECT | DISTRACTOR | DISTRACTOR | DISTRACTOR
    

    Correct and distractor get shuffled at run time.

    Widgeds will work anywhere where a iFrame type of embed is accepted. Two deployment environments tested for the moment. Wikispaces and jsdo.it. Both let you easily fork the activities.

    Tested on desktop, iPad, iPodTouch, Android, OLPC.

    The source for the activities on github (note that /github.com/widged/exercist-widgeds has been changed to github.com/widged/widgeds to reflect the fact that it should be possible to edit and share widgets outside of the exercist framework).

    For now, none of the eXe type of activities are available. One reason for this is that eXe is under a license that is too restrictive, GPL. I have since discovered that jQuery was distributed under a dual GPL and MIT license. I will propose the same option for the widgeds. MIT for the ones I contribute but people would be free to keep the GPL license of the eXe modules.  Rapid evalution suggests that all of eXe modules can easily be added. There are javascript / jQuery libraries for pretty much anything you can dream off. Quizzes, charting, Math notation, magnification

    2. Exercist

    As shown above, editing a widged is no more difficult than editing HTML. Still, editing HTML can be confusing and time consuming. Difficult to spot the origiin of a problem (">") that has inadvertendly deleted.

    So, there is an application for the easy editing of widged, via an automatically generated form.

    It let you edit the widged content and organize the activity order on the page (pretty much what eXe does). Also export to different formats / environments (localfile and wikispaces embed for now). Currently in: Modular architecture. Localisation. Management of the different files adjoined to the activity.

    I will have an alpha ready by Monday. I have published an early demo at : http://widgeds.wikispaces.com/file/view/exercist_20100805.mov (3.9 MB)
    (I have to practice my videcasting skills).

    The video doesn't show the tinyMCE embed. It has been implemented and successfully tested.

    I will then try and find local testers, for rapid feedback. Over the next weeks, I will also look into competing products to evaluate if there are better ways of doing things. On my list are: eXe, Reload, LessonWriter (embedding of the Bloom taxonomy, automatic generation of activity based on a text provided), eLML, xerte. My

    My target user group is slightly different from Reload, eLML. For these "The target user group was technical staff within groups developing eLearning courses, with a relatively high level of technical knowledge". Here the initial target group is the teachers who are keen to use the web 2.0 apps, create their content, obtain the embed code, paste the embed code in their blog, wiki, etc.  The secondary target group is students, kids, who are given activity making as a way of learning. Because of that, IMS / SCORM compatibility is not yet a top priority. Though the solution adopted by eXe is quite simple to repeat.

    In the next round of development, I will be looking into adding just in time knowledge about instructional design, interaction design, game mechanics. At the very list quick info on how to write good successful activities like the matching activity pattern.

    In the round after that, I will be looking into an adaptive system. Let users define an activity flow. If student reached master at activity 1, present activity 3, if not, present activity 2. I am thinking about implementing it as wiring between boxes:  http://javascript.neyric.com/wireit/. I will also look a way for educators to easily mashup content created with web 2.0 apps. Not clear in what order yet. Will depend on demand / interest.

    Any thoughts? I know details are sparse for now. Hopefully, I will be able to engage the larger online community for the exercist part by early September. Still, have a go.

    Marielle

     
  • Marielle Lange
    Marielle Lange
    2010-08-12

    As this is not a strictly eXe-related discussion, consider using the discussion tab at widgeds @wikispace