Archive | December, 2011

Open Source tools for education

I’ve been asked to speak at the annual technology conference of the Association of Independent Kentucky Colleges and Universities. While this is a huge honor, it’s also rather intimidating. I’ve observed that we, as technology professionals, tend to go into various places and tell experts how to do their jobs better with technology without actually understanding the underlying problem space.

One of the great things about Open Source is that it’s not just a company imposing a technical solution on you from outside, but you’re able to participate in the solution yourself and make changes to the end product. I’ve witnessed this first-hand with Moodle when we used it as our online learning platform at Asbury University, and I was able to make changes to Moodle which then went back into the upstream product.

These are some of our most popular educational tools, ranging from online learning to self-tutoring to educational games. I’d love to hear your take on Open Source educational tools, both from Sourceforge and elsewhere.

  • Moodle Moodle Moodle is a Course Management System (CMS), also known as a Learning Management System (LMS) or a Virtual Learning Environment (VLE). It is a Free web application that educators can use to create effective online learning sites.
  • Schoolplay Schoolsplay Schoolsplay is a collection of educational activities for children.
  • Open Teacher OpenTeacher OpenTeacher is an opensource application that helps you learning a foreign language vocabulary. Just enter some words in your native and foreign language, and OpenTeacher tests you.
  • Brain Workshop Brain Workshop Brain Workshop is a Python implementation of the Dual N-Back mental exercise. This exercise is the only mental activity that has been scientifically shown to improve your short-term memory (working memory) and fluid intelligence.
  • Logisim Logisim An educational tool for designing and simulating digital logic circuits, featuring a simple-to-learn interface, hierarchical circuits, wire bundles, and a large component library. As a Java application, it can run on many platforms.
  • Celestia Celestia Celestia is an application for real-time 3D visualization of space, with a detailed model of the solar system, over 100,000 stars, more than 10,000 galaxies, and an extension mechanism for adding more objects. (I spent way too much time playing with this one.)

The Anvil Podcast: Mardao

I recently spoke with Ola Sandström from the Mardao project and the interview is below.

You can subscribe to this, and future podcasts, in iTunes or elsewhere, at http://feeds.feedburner.com/sourceforge/podcasts, and it’s also listed in the iTunes store.

If the embedded player doesn’t work for you, you can also download the audio in
mp3 and ogg formats.

Rich: I’m speaking with Ola Sandström, and we’re going to talk about the Mardao project.

Could you tell us what this project is, how it works, how it fits together, and how people use this in the real world.

Ola Sandstrom

Ola: Mardao is a tool that helps the database developer get the data out of the database into the application or the website, depending on what the app is. Mardao generates the data access objects, so that the developer doesn’t have to worry much about SQL statements, or relations, and so on. And it also saves the developer a lot of time and effort writing boilerplate code.

R: How did you get started with this project? What kind of a problem were you trying to solve?

O: In the first place, we wanted something more effective than similar techniques such as Hibernate. I also had a colleague who had generated similar stuff, but taking a different approach. It was for a specific project that I created the more general tool.

R: Do you have a feel for how large your user community is?

O: I know how many downloads there have been, and I see how many downloads there are when we make each release. That varies between 50 and 100 downloads. Maybe the recurring usage is about ten or fifteen users. Hopefully the number of production systems is about the same.

It’s not a big community, but it is my first Open Source project, so I’m ok with that.

R: The developer community is just you? You’re the only person who works on this? Is that correct?

O: No, there is one more developer – a former colleague – who has focused on one of the implementing techniques. You can use Mardao either for Spring, or you can use in on top of JPA, or on Google App Engine. This former colleague of mine implemented the JPA port.

R: What do you have planned for future versions of the project?

O: The biggest thing right now is to support Android applications. There is a nice SQL Light database on each Android device. It’s a very good fit to generate code for those databases. I think we’ll have a next versions early next year.

I’ve been quite happy hosting at Sourceforge, because I think you get the necessary tools, such as the Wiki and the issue tracker and so on. I certainly would consider starting another project there.

R: If someone wanted to get involved in an Open Source project, and they have some Java skills and database skills, what sort of an opening might there be on your project for such a developer? Is there a need that you have that you might welcome another developer for?

O: They certainly would be very welcome to join and commit. I think that if the user base grows a little bit – if I get more feedback, there would certainly be more areas where we would need to improve and so on. I’m not sure right now what the next big thing to focus on, but I’m sure any developer would come up with ideas if they start using it.

R: Thank you very much.

O: Thank you. Bye.

Podcasting with Open Source

For the last couple of weeks, I’ve been posting podcasts to the Sourceforge blog. (You can subscribe to our podcast HERE or in the iTunes store.)

Almost everything that I do in the process relies on Open Source software developed at Sourceforge, so I wanted to take a moment to thank those projects.

Recording and editing: Audacity

I record with a Blue Snowball with a shock mount, which is a USB mic that I can plug directly into my laptop. If you’re looking for a mic to get started with, I recommend this one. It’s easy to use, and gives excellent sound quality.

Usually I record the calls using Skype and Call Recorder. This is the one piece of non-free software that I use in the process. It’s free, in the sense that I didn’t pay for it, but it is closed-source. While there are alternatives, it’s not always reasonable to expect the person that I’m calling to install and configure new software just so that they can talk with me for ten minutes. Pragmatism has its place.

The editing is all done in Audacity. I’ve long been a big fan of Audacity. I have other recording programs, including some commercial ones, but haven’t yet found anything that beats Audacity for either functionality or ease of use. Some of the commercial apps do more, but so far it hasn’t been anything that I needed to do. Also, their documentation is simply wonderful, including detailed explanations of even simple features. Additionally, there are numerous community-created howto videos showing how to do various tasks.

Until recently, I was using GarageBand for one particular part of the podcast creation process involving merging several different tracks seamlessly, and found a video showing me how to do this in Audacity.

So, I use Audacity to clip out the smalltalk, the um’s and ah’s, and try to edit the conversation down to the essentials, so that you’re not forced to listen to a lot of extras. I know that I have trouble finding the time to listen to the few podcasts I follow, and if it’s much more than 10 minutes, I tend to move on. I try to respect your time in the same way.

Audacity exports in MP3 and Ogg Vorbis formats, which many commercial tools don’t do.

Editing ID3 tags: kid3

When necessary, I use Kid3 to update the ID3 tags on the MP3 and Ogg files. This is a final sanity check to make sure that the files we push out all have consistent tagging, so that they’ll show up in the same place in your various audio programs. Kid3 is one of those delightful pieces of software that just works. No unnecessary extras. It’s small and fast and efficient, and gets the job done.

Uploading: Filezilla

Yes, I could just use command-line scp, and often I do. But Filezilla integrates well into my workflow, so I use it sometimes to copy these resulting audio files up to the staging area so that the folks I’ve been interviewing can review the recording before I push it out to the blog. Filezilla is another piece of software that just works. It is intuitive and doesn’t require a great deal of setup or explanation in order to get it to do what you need.

That’s all

Sure, it’s not a big toolchain for this task. And I continue to look for ways that I can replace non-free components of it with Open Source software. I have, for example, come across a few references to projects that were presumably Open Source implementations of the Skype protocol. Unfortunately, they all seem to be abandoned projects, which was sad. However, as I said above, pragmatism has its place, and one has to get the job done.

The Anvil Podcast: XOOPS

Rich: On today’s Sourceforge podcast, I’m speaking with Michael Beck, from the XOOPS project. XOOPS is a php content management system. You can use it to create and manage your website. It has a sophisticated admin interface, and it is over a decade old. This is a solid and mature project. Michael has been with the project for quite some time, and he’s going to talk with me about the project, the community, and how you can get involved.

Thanks for listening.

You can subscribe to this, and future podcasts, in iTunes or elsewhere, at http://feeds.feedburner.com/sourceforge/podcasts, and it’s also listed in the iTunes store.

If the embedded player doesn’t work for you, you can download the audio in
mp3 and ogg formats.

Michael: Hi, Rich, how are you?

R: Doing great. Thanks for talking with me today.

Tell me something about XOOPS, and how you got started with it, and what sort of problem space the project addresses.

M: OK. XOOPS, this year, celebrates its ten year anniversary, so it’s been around a long time. In Internet age, it’s kind of like eight centuries. It started ten years ago as a content management system – helping people create websites with dynamic content. It’s based on PHP and MySQL. It’s very similar to other content management systems like Joomla, like Drupal, or WordPress.

R: How many people do you have working on developing this? I see seven names in the admin list, but how large is the development community?

Admin list

M: As any Open Source project, developers are coming and going. It depends on their work load and how much time they have. We have actively probably around 20 to 40 people who contribute currently. Because XOOPS is very modular, there is one group that is focusing strictly on the core, and then anybody else can contribute on modules, or on themes. There are some designers who are doing work on themes. And anybody can work and create new modules. The typical style, could be a calendar, can be news, a blog, typical daily applications which users can use on their website.

R: This runs on PHP. Does it require a particular version of PHP? Does it run on the latest?

M: It runs on the latest, but the minimum required is PHP 5.2. The next release is going to be completely compatible with 5.3, and we also tested it on 5.4 RC, and it is strict compliant, and it should not generate any errors from that perspective.

R: How about yourself? How long have you been involved with the project?

M: Well, I’ve been a user, starting in 2004. In 2007 I got involved in the management side of XOOPS. That required a little more heavy involvement.

R: What part of the system do you work on? You work on the core, or modules?

M: Most of my time I am involved in marketing and community involvement. I’m involved in modules, but the main responsibility I have is marketing and community support.

R: Tell me about some of the sites that are using your product.

M: One of the things we’re really proud of is that XOOPS is very international, and we have contributors from all of the world. Some of the original developers were from Japan, China, Germany and the US. So that set the stage for a very international Open Source project. That’s reflected in the websites. We have websites which have won different awards in China, Taiwan, in Japan, and Argentina and even Libya. That’s creates a very international community.

Some of the sites that have used XOOPS very successfully, for example: The government of the state of Paraná in Brazil – they have probably 200 or 300 websites created using XOOPS; Computer World in Denmark is using XOOPS; PC Magazine in Greece is using XOOPS. There are a lot of different newspapers and government agencies which are using it.

We have very successful websites in Taiwan where the whole county school system is using XOOPS.

Anybody who needs a content management system, XOOPS is a very good solution for that. And you can develop very specialized applications on top of XOOPS like the school system in Taiwan proved.

R: How much time do you put into this project? Is it evenings and weekends, or is it a substantial part of your time?

M: Pretty much weekends and evenings. This is something we love to do – the whole group. Of course some people try to make money with it, and hopefully we’ll get more successful at that. We try to address that by putting better a marketing message behind it and trying to market us better so that people get jobs with it. Of course, the dream for us is to make XOOPS enabling people to make a living out of XOOPS. If we can succeed with that, that will make us very happy. There’s nothing better than people who love working with XOOPS and being paid for that, and not worry about paying for rent or other bills, and saying, I have a passion for XOOPS, I spend all my time on that, and it provides my living. So that’s something we’re looking forward to.

R: I personally feel very lucky that I’ve been able to find a job where I do Open Source and get paid for it. It seems almost unfair, almost.

M: Well, I don’t say unfair. I think that’s what everybody strives for, and if you’re lucky enough that’s what you’re going to be doing. It’s one of the highest levels of happiness to do what you have a passion for and not worry about expenses because you’re getting paid for that.

R: So, this project … I’ve spoken with a number of projects in the last few days, and one of the things that’s unique about your project – your developer community spans multiple continents and time zones. How do you manage project communication without conflict when someone is 18 or 20 time zones away.

M: I would say it’s just time management. Thankfully, with the Internet, we can communicate via email, so there’s really no need to be in person to have conversations. And because it’s a very international project we cannot expect that everybody has perfect English. Therefore some people don’t feel comportable being on Skype or online discussions, because they would like to use a translator to translate the content of the message they receive, and then respond in their native tongue and translate it into English. Skype or online conversations are very hard, so when we have email conversation it works the best for us. Some of the core members try, once a month, to have a conversation on Microsoft Messenger or Google Talk so that we can have a conversation about the project.

R: What is planned for upcoming versions?

M: The next version is going to be 2.6, and is going to be a totally refactored core. The aim we have is … in previous versions our focus was making sure that the core was compatible with all the versions of the modules. As a result of that we had a lot of code which is legacy code. 2.6 is a major cleanup, removing all old code, all PHP 4 compatible code, and making it totally PHP 5 oriented, so we can focus on 5.2, 5.3, and 5.4, so that’s going to be the major thing – making sure that we take advantage of the latest developments in the PHP world, that we optimize the code, that we test it with MySQL and make sure that we have the minimum number of queries. An updated, top-notch content management system.

R: If I’m looking to get involved in an Open Source project, where can I get involved in your project, and what sort of skills would I need.

M: As with any other Open Source project, you can get engaged with anything which you like to do.

Starting with development: If you’re really really good, you can join the core team. If you just want to play around, you can start developing modules. If you’re a designer, you can design themes. We’re always looking for those. If you’re a user, you can help us with documentation for other users. For example you’re using XOOPS for your website, and you’re becoming an expert in using certain modules, and there’s no documentation for those modules, or the documentation is outdated, then you can say, I’m going to share some of my experiences, I’ve got some really cool shortcuts on how to make it work better, faster, and more user friendly, and I want to share this with the community.

One thing about us is that our community is very friendly, and regardless of what part of the world you come from we embrace anybody. We don’t care how good your English is, we welcome everybody.

We also have local support websites in local languages. China, Taiwan, Russia, France, Germany, Netherlands, Spain. So all the major languages are covered. If somebody doesn’t feel comfortable in English, they are welcome to contribute locally. Our moderators and leaders in those local communities share the experiences of their local communities into the larger, worldwide community, so we try to funnel some of the good ideas which could be created in Germany, France, or some other local support site, and share this on our main International site.

As any other Open Source project, we live and die with contributors, so once again we hope that people will check it out, will give it a try. Hopefully they will like it, and hopefully they will like our community and give that a try. Of course we are always open to suggestions, feedback, if anybody has any questions please contact us on XOOPS.org, and we’ll be glad to help you with setup of XOOPS and making sure it works correctly, and then hopefully we can collaborate together.

R: Thank you very much.

M: Absolutely.

Project Summary Page contest – The winners

The Project Summary Page contest was announced the contest at the end of November and last week we pawed back through the database to determine which projects had taken us up on it. The list was prodigious, and we ended up selecting three winners. (The winners were selected by a few lines of Perl.) The admins on these projects each won a $50 gift certificate to ThinkGeek.

The winners are:

  • JFire – Free ERP & Trading Platform

    JFire is a trading platform including ERP, CRM, accounting (full double-entry) and cross-organisation-trading written in Java based on J2EE, JDO and the Eclipse RCP. See http://www.jfire.net for more information.

  • facetracknoir

    Headtracking program that uses the SM FaceAPI. Movements of the head are registered by a simple web cam: no additional hardware is required! Supports Free-track, FlightGear, PPJoy and TrackIR, SimConnect and FSUIPC protocols. The new V160 contains the latest faceAPI, which supports the latest CPU’s. A new user-interface was created and a mouse-look protocol added.

  • jNetMap

    jNetMap is a graphical network monitoring and documentation tool. It will ping all registered devices every x minutes, updating the status according to the result of the ping.