Free and open source concept map app for Moodle

Concept MapI’m pleased to announce that the  Concept Map app is now available on my repository as a free and open source project. It works with the SWF Activity Module for Moodle 1.9 and 2.5+ and a compiled version of the app is included pre-installed with the latest version of the SWF Activity Module for Moodle 2.5+.

What does the Concept Map app do?

Learners are presented with a blank page and drawing and writing tools with a limited palate of colours and shapes. Limiting the colour and shape options is intended to reduce the time and effort that learners spend on those aspects and hopefully focus their attention more on their learning objectives. Learners can draw and write and move the drawn lines, shapes, and text. The app works with all the usual input tools such as mouse, keyboard, and touch screen.

When learners are ready, they can click on the camera icon button to send a copy of the image to the server which gets saved as a PNG image file. Subsequent camera icon button clicks will overwrite the existing image for that particular activity for that particular learner. However, if you’d like to keep a history of images, the service script that saves the images can be modified to do that. If it’s deployed in Moodle, a corresponding grade book entry is created for the learner and the image is embedded in the grade book feedback column. The saved concept map can then be viewed and graded by teachers. In addition, learners with the appropriate permissions can view their concept maps in the grade book or in the File System repository and embed them in other Moodle activities.

Free and open source

As a free and open source project, it’s free to download, use, edit, and redistribute under the terms of the GPLv3 licence. This means that you can develop the project further to perform more or different functions according to your learners’ particular needs and learning ideas. The project is configured to work with FlashDevelop, a free and open source Actionscript and Flash integrated development environment (IDE) but can also be edited and compiled with other Flash and Actionscript IDEs.

Useful links

Greenwood College SchoolAcknowledgement

The interactive whiteboard SWF idea was conceived at Greenwood College School as a means to further personalize the learning experience for its students. Greenwood is excited to be partnering with Matt Bury on this project because this module enhancement will help educators using Moodle to track student progress using a flexible, online input method.

Greenwood College School

Update to SWF Activity Module for Moodle 1.9

SWF Activity Module logoThis is a quick update anouncement for the SWF Activity Module for Moodle 1.9. It fixes some issues that some users were experiencing with sending grades to Moodle’s grade book and some other functions. You can find the latest version released today on the project downloads page at Google Code.

What was the bug?

PHP 5.3 and above are becoming more widely used on servers that are hosting Moodle. Some of the old legacy core Moodle code contains functions that are deprecated in PHP 5.3 (some 400 or so instances of code) and are unlikely to be fixed. These deprecated functions trigger PHP to generate deprecation warnings, which in Moodle sometimes returns unexpected results that were interfering with the SWF Activity Module AMFPHP service classes. The result was that sometimes, grades weren’t being sent to Moodle’s grade book, and snapshot images from the Avatar camera and Concept Map MILAs weren’t being saved. It was an intermittent bug and difficult to track down but now, hopefully, everything should work for everyone all the time.

You can see some demos of the SWF Activity Module used to deploy Multimedia Interactive Learning Applications (MILAs) on the MILAs demo course on my R&D Moodle. You can login as a guest so no Moodle account is required.

SWF Activity Module for Moodle 2.5+

On a related topic, I’m nearing completion of a beta testing version of the SWF Activity Module for Moodle 2.5+. Please stay tuned for updates in the near future. You can subscribe to posts from this blog by clicking on the Follow tab on the bottom right of this page.

New Avatar (profile picture) Camera app

New Avatar (profile picture) Camera appIntroducing a new Flash app for the SWF Activity Module for Moodle that is possibly the quickest easiest way for learners and teachers to change or update their avatars (profile pictures). Using your computer or mobile device’s webcam, the app saves your photo directly to Moodle without saving images to your desktop or uploading.

When you’re creating online communities of learning and teaching, the ease at which learners and teachers can personalise their user accounts so that they can recognise each other while communicating and collaborating is vital for success. Indeed, many papers, journal articles have been written and presentations given on the importance of sociability and usability.  However, Moodle’s user profile pages are notoriously difficult for users to find and edit and then learners and teachers are left with the responsibility of taking or finding their own photos, editing them to a suitable size and uploading them. Some learners and teachers  don’t have the time or the facilities needed and just don’t get round to doing it. So the Avatar Camera at least resolves this issue. Using it couldn’t be easier.


  1. Enter an instance of the Avatar Camera activity where it’s deployed in a Moodle course.
  2. On the Adobe Flash Player Settings dialogue box, select “Allow” to activate your webcam.
  3. The app will show your current avatar and a live feed from your webcam.
  4. Click on the camera icon button as many times as you like to take photos.
  5. The photos will appear, in sequence, on your screen.
  6. To save the photo you want, click on it.
  7. The app will overwrite your current avatar with the new one.

Please note: Moodle course, forum, glossary, message, etc. pages don’t handle caching very well so you may need to click the refresh button on your web browser to see the changed avatar.

Where can I see it?

An Avatar Camera demo is up and running on my Moodle on the Multimedia Interactive Learning Applications (MILAs) course. Guest access is allowed but guests can’t save avatar photos. It’s best deployed with the latest version of the SWF Activity Module for Moodle but, with a some programming know-how, it can also be deployed in other learning management systems (LMS) and content management systems (CMS).

SWF Activity Module now supports conditional sequencing

SWF Activity Module now supports conditional sequencingThe latest build of the SWF Activity Module for Moodle includes support for conditional sequencing between SWF course module instances. This means that teachers and course content developers can require learners to successfully complete one SWF Activity Module instance before moving on to the next.

What is conditional module sequencing?

Normally, on any given Moodle course, learners have the freedom to access any activity modules and resources that are available in any order. Although teachers can hide activities or specify time frames for when they’re available, there’s no provision for only allowing access to an activity when a learner has completed the previous one. Say, for example, a course has six SWF Activity Module instances:

Module 1 – Meeting for the first time
Module 2 – Arranging an appointment
Module 3 – Conducting interviews
Module 4 – Holding meetings
Module 5 – Following up meetings
Module 6 – Dealing with problems

And we want learners to complete three module instances in order, e.g. Module 3 -> Module 4 -> Module 5. All a teacher or course content developer has to do is change the Conditional sequencing parameter in each module instance to “true”. In this case, learners can attempt any of the other module instances, 1, 2 and 6, at any time in any order but Modules 3, 4 and 5 can only be attempted in that order.

How does it work?

SWF Activity Module conditional sequencingFrom a learner’s perspective it works like this:

  • A learner attempts an instance of the SWF Activity Module that is included in the course conditional sequence.
  • If the module instance is the first uncompleted one in the sequence, the module continues to the Flash activity as usual.
  • If the module instance is not the first uncompleted one in the sequence, the module displays a summary of the sequenced modules and a button to navigate to the appropriate module instance (see illustration).
  • When the learner has completed all the modules they are directed to the summary of sequenced modules with a message that they have successfully completed them all if they re-attempt any of the modules in the sequence.

From a teacher or course content developer’s perspective it works like this:

  • Deployed Flash learning applications must be capable of saving grades in Moodle’s grade book, otherwise SWF Activity Module instances cannot be completed.
  • Only one group of SWF Activity Modules can be sequenced per course.
  • Only SWF Activity Module instances that have Grading > Conditional sequencing > true selected are included in the sequence.
  • The order of the sequence is the same as the order of appearance of the module instances on the Moodle course page.
  • Learners must complete the first uncompleted module instance before they can attempt the next in the sequence.
  • Learners are shown a summary page of the sequenced module instances if they attempt a module instance out of sequence with a button that takes them to the next one in the sequence.
  • If the order of the modules is changed or added to before learners have completed all of them, they are simply required to do the first uncompleted module(s) in the new sequence. They do not have to re-attempt already completed module instances.
  • Doesn’t work with guest access, teachers or admins. You must login as a student to test it.

There’s documentation and examples on the SWF Activity Module project site here.

Thoughts on Flash…

Thoughts on FlashOK, here’s a geeky rant. I’ve heard and read the same unfounded rumours, hearsay and conjecture about Flash so many times it’s starting to sound like urban myths. Let’s put this on the record for once and for all. So, here goes… (deep breath)…

Flash is as secure as any other web technology

In his open letter in April 2010, Steve Jobs wrote, “Symantec recently highlighted Flash for having one of the worst security records in 2009. ” In Symantec’s annual security reports, security risks from Flash are a long way below other web technologies like Active-X, Java, Adobe Reader and Quicktime. Yes, you read that right, Adobe Flash Player is more secure than Apple’s Quicktime and Mr. Jobs remarks were misleading to say the least. Check the 2009 Symantec report out for yourself. The latest reports are available here.

Flash doesn’t use any more memory than any other web technology

Memory hog? Why not run your own comparison to find out. Here’s a direct link to the high resolution version of a video from TED Talks:

If you click on this, it should play directly in your browser either as native video playback or with a browser plugin such as Apple’s Quicktime. When it starts playing, press Ctrl + Shift + Esc to start Windows Task Manager and select the Performance tab (Check your documentation for how to do this with a Mac). You’ll see some live graphs of CPU and memory usage. Make a note of their averages. Alternatively, if your browser supports HTML5 video tags and H.264 (IE and Safari), you can check directly:, your browser does not support HTML5 video tags

Now try watching the exact same video in Flash and watch your CPU and memory performance. Results will vary depending on your operating system, hardware and browser:

For independent benchmark tests of HTML5 vs. Flash video performance, check out these two articles:

Flash is as stable as any other web technology

In an emotional outburst at a public meeting in February 2010, Steve Jobs claimed that, “Apple does not support Flash because it is so buggy. Whenever a Mac crashes more often than not it’s because of Flash.” In response, Shantanu Narayen, Adobe’s CEO, gave an interview with Alan Murray for the Wall Street Journal.

Flash will run on Unix-like OS’ (Linux, OpenBSD, iOS, OS X)

Flash happily runs on over 95% of computers and devices connected to the internet, probably including your set-top box. That’s a conservative estimate based on median values of operating system market share – Adobe claims 99%. In fact, Adobe had Flash Player for iOS on iTunes and ready to roll before Apple’s announcement to block it. The only reason that Flash isn’t allowed on iPhone or iPad is because of Apple’s business strategies. The ability to access Flash rich internet applications (RIAs) would reduce iTunes’ app store profits because developers and content distributors would be able to avoid paying Apple’s 30% commission on everything that passes through them. Apple are currently facing anti-trust investigations on both sides of the Atlantic because of this. Brian Chen wrote an astute opinion article for Wired Magazine in November 2008.

Flash and Actionscript are open source, not proprietary

For those who are open source, open format advocates, I salute you and keep up the good work, you make the web a better place for everyone. I develop and distribute open source projects (Actionscript and PHP) myself. Flash and Actionscript are open source. Adobe distribute a free SDK and anyone can create Flash extensions for modular IDEs or even create their own Flash IDEs. Flash Builder/Flex is built on Eclipse. Anyone can build a Flash runtime into their browser. Microsoft, Apple, Google and Firefox choose not to and instead rely on Adobe to maintain and distribute the plugin. Here’s an article from Adobe’s founders on their open web philosophy.

Update: There’s also a free and open source Flash and Flex IDE available called FlashDevelop. The Flex SDK has been made a priority open source software project by the Apache Software Foundation, now called Apache Flex.

Flash works on touchscreens without any modification

If you still have any doubts, here’s an old demo video of unmodified Flash apps on a touch screen made by Lee Brimelow when this rumour first circulated in May 2010. There are more videos and articles on Flash and using all the latest features of  touchscreens and motion detectors on his blog.

HTML5 isn’t going to kill Flash

They get along fine. There’s no ill-will between them. They’re complimentary web technologies and it’s up to developers to make well-informed decisions about which is more appropriate for a particular instance. In my opinion, there are many things that HTML5 should do instead of Flash, where Flash has been “filling in” while HTML technology caught up. Flash and HTML5, while there is some overlap, essentially do different things. One pundit commented that using HTML5 to replace Flash is like taking a time-machine that takes you back to the year 2000 (I wish I could find the source of that quote!).

Flash works with, not against Javascript

Again, Flash and Javascript are complimentary technologies. SCORM packages require a Javscript API wrapper to communicate with the LMS on the server, and FlowPlayer and JW Player, the most commonly used media players on the web, both have extensive Javascript APIs. Flash and Javascript are harmonious and at one with each other.

Flash doesn’t leave your toilet seat up

It’s respectful, considerate and understands how that can make some people feel.

Flash doesn’t sleep with your girlfriend/boyfriend/wife/husband/partner

Adobe Flash, that is. I can’t speak for any 3rd parties who call themselves “Flash”.

Flash hasn’t got cooties

Although a lot of girls use Flash eCards to spread them, which is much worse than any virus.

And finally…

Please don’t rely on Apple or Apple fans for information or news about Flash. It’s a bit like relying on Fox News (News International) for news about the Democratic party in the US. The following is an entertaining TED Talk about why it’s important to challenge improperly presented arguments or evidence: Ben Goldacre: Battling Bad Science. Ben Goldacre also writes a regular blog for the UK’s Guardian newspaper.

There, I’ve said it.


Steve Jobs has just died (5/10/2011) aged 56. He was a great man, a great innovator and will be greatly missed.

[update 2012-09-13]

Now the dust has settled somewhat and everyone has had a chance to offer up their take on the situation, here’s a snapshot of the community’s view:

Apple controversy

In April 2010, Steve Jobs, former CEO of Apple Inc. published an open letter explaining why Apple wouldn’t allow Flash on the iPhone, iPod touch and iPad, citing the following technical reasons:

Openness:  Jobs wrote “Adobe’s Flash products are 100% proprietary”. Some portions of the Flash Player and its related SDKs are open-source, including the Adobe Flex SDK which compiles SWF files from source code, the Tamarin JIT Virtual Machine for ActionScript 3, and the recent Open Screen Project which removes licensing fees and opens data protocols for Flash. The Flash community is also supported by open-source projects, such as FlashDevelop (IDE), MTASC (Compiler) and Gnash; Gnash is an alternative Flash Player, however it is not fully compatible with the proprietary Adobe Flash Player.

Access:  Jobs claimed that a large percentage of the video on the internet is supported on iOS, and writes “almost all this video is also available in a more modern format, H.264”. H.264 is a proprietary specification and encumbered by patents, which makes it a closed standard. Many popular video sharing websites such as YouTube have also published video content in an HTML5 compatible format, enabling videos to playback in mobile web browsers even without Flash Player.

Security:  Jobs wrote “Symantec recently highlighted Flash for having one of the worst security records in 2009”. Adobe responded by pointing out that “the Symantec Global Internet Threat Report for 2009 found that Flash Player had the second lowest number of vulnerabilities of all Internet technologies listed (which included both web plug-ins and browsers).”

Performance:  Jobs wrote “Flash has not performed well on mobile devices”. Adobe optimized current versions of Flash Player and Flash Lite to use hardware acceleration for video and graphics playback on many devices, including desktop computers. Performance is similar to HTML5 video playback. Also, Flash Player has been used on multiple mobile devices as a primary user interface renderer.

There has been speculation that Steve Jobs rejected Flash for business reasons, rather than the technical reasons he mentions in his letter.

“Allowing Flash, which is a development platform of its own, would just be too dangerous for Apple, a company that enjoys exerting total dominance over its hardware and the software that runs on it. Flash has evolved from being a mere animation player into a multimedia platform capable of running applications of its own. That means Flash would open a new door for application developers to get their software onto the iPhone: Just code them in Flash and put them on a web page. In so doing, Flash would divert business from the App Store, as well as enable publishers to distribute music, videos and movies that could compete with the iTunes Store.”

—”Why Apple Won’t Allow Adobe Flash on iPhone,” Wired Magazine, (2008)

“This is not about technology. The criticisms from Apple about Flash can also be applied to many other systems that Apple has not directly opposed. Therefore Apple’s stance appears driven by their business need to protect the iPhone platform against the threat of a cross-platform competitor.”

—Ray Valdes, V.P. of Gartner Research – “Why Adobe Flash on mobile isn’t dead” (2010) [link unavailable]

“[Apple is] very, very keen to keep control of the end-to-end experience and therefore having a separate runtime in the form of Adobe is a problem, One could argue it could be detrimental to Apple’s business model because there’s a lot of Adobe games, or games that are delivered in Flash, which are free and therefore that would detract from people downloading [paid gaming content] from the App Store.”

—Ben Wood, Director at CCS Insight [link unavailable]

In 2011, Flash Player had emerged as the de facto standard for online video publishing on the desktop, with adaptive bitrate video streaming, DRM, and fullscreen support. On mobile devices however, after Apple refused to allow the Flash Player within the inbuilt iOS web browser, Adobe changed strategy enabling Flash content to be delivered as native mobile applications using the Adobe Integrated Runtime.


See also

Jonathan Gay, one of the original developers of Flash, gave an interview with the BBC’s Jonathan Frewin about Flash media and the Apple vs. Adobe debacle. In it he stated,

“Apple is building their tightly controlled application platform to push the mobile internet world to a model like traditional mobile phone and cable TV businesses, where there is a gatekeeper who controls the platform and gets a fee from all the transactions on the platform. This would drive a very profitable business for Apple… “

“Flash grew from the PC and Web era where players are free, run on lots of devices, and there are no gatekeepers controlling what developers could do with the platform. As a consumer, I’d much rather see the PC and web model move to mobile phones than the closed mobile phone world taking over rich applications on the mobile internet…”