Skip to content

SourceForge.net: Front page news
Syndicate content
What's new on SourceForge.net
Updated: 1 hour 47 min ago

The cascading effects of code constraints

Fri, 02/03/2012 - 15:39

Today’s post is a guest post by Bill la Forge, from the JActor project. The original post is here. I asked Bill to expand on something he’d written earlier, because I was struck by the simple yet deep truth that sometimes one change in your code has a cascading effect on other parts of the code - sometimes for good, and sometimes not. And when it’s for good, and unexpected, it’s delightful.

If you’d like to have any of your project blog entries republished on the SF blog, please let me know.

–Rich

Release 2.0.0 of JActor will be characterized as providing classifications of requests: constrained and initialization. Constrained requests can be invoked by the Internals.call or Actor.acceptCall methods, while “unconstrained” requests must be invoked by the Internals.send, Internals.sendEvent or Actor.acceptRequest methods. The big advantage of initialization and constrained requests (and events) being that we are free from having to deal with callbacks to handle responses. The call and acceptCall methods directly return the results (the results from sending an event being ignored).

There are two basic types of constrained request: synchronous (new) and concurrent. Synchronous requests can only be passed using a call or acceptCall method when the sender and receiver use the same mailbox; concurrent requests must be thread safe and can only access concurrent data structures.

Initialization requests (new) can only be passed during the initialization phase of an actor, and the initialization phase ends when an actor receives a “non-initialization” request. Initialization requests are processed on the same thread as the sender under the assumption that initialization requests are sent one-at-a-time, so thread safety is not an issue.

The result of classifying requests as constrained or initialization is that we can then classify more requests as constrained or initialization. This is a cascading effect that, in many cases, frees us from the mess inherent in using anonymous callback classes. It is also faster, as GC no longer needs to collect all those callback instances.

I have seen such cascading effects a number of times. They are always delightful, as the code ends up being ever so much simpler. Such cascades occur when you can identify constraints that simplify processing. A rich API that supports a number of constraints makes simple things fast and easy to use. This contrasts nicely with API that are rich in features, i.e. unconstrained.

Bill la Forge, JActor project

Categories: Open Source

February Project Of The Month - Boost C++ Libraries

Thu, 02/02/2012 - 18:45

Rich: Hi. This is Rich Bowen

SourceForge is delighted to announce that the February Project Of The Month is Boost. Boost provides free, portable, peer-reviewed C++ libraries. In order to tell us what that means, and what the goal of the Boost project is, and where it’s going in the future, I called Dave Abrahams, who’s been involved with the project almost since the beginning.

(See previous POTM winners.)

If the embedded player below doesn’t work for you, you can download the audio in mp3 or ogg format.





Related links:

Boost Project Page
BoostCon/C++ Now Conference
BoostPro Computing

Let’s start by defining what this project is. What is Boost? What does it do? What problems set does it try to solve?

Dave: Boost is a free collection of C++ libraries. Our original intention was to build libraries suitable for incorporation into the C++ language standard and we’ve actually been quite successful with that. Most of the libraries in the new C++ 11 standard came through Boost. The idea was to get the libraries into the hands of as many users as possible, so that we could make sure that what got standardized was actually well tested in the field. Boost has now grown well beyond our original idea for it. There are over 112 libraries in Boost 1.48. They cover all kinds of domains from ensure general utilities to frameworks for high performance computing. All kinds of stuff. Many of these things, we don’t ever expect to standardize. They’re maybe too specialized. But many C++ programmers consider Boost an indispensable tool. It’s become sort of a de-facto standard.

Rich: For those of us from a different sector of the programming community, would you say that this is kind of like CPAN or PEAR?

Dave: That’s really interesting. It’s different from CPAN and PEAR in one important way, which is that Boost has a peer-review process for adding new libraries to the collection. We don’t have the kind of incredible variety and sprawl of projects that you see in CPAN, but then again, we also have probably a higher standard of quality control. There’s certain requirements that everything needs to have to get into Boost. And we have an automated test that runs regressions for all of the libraries in the collection. It’s a little more organized than CPAN. And I think that made a huge difference in getting adoption, because people have really grown to rely on the stability and quality of the code in Boost.

Rich: Do you feel that’s what contributed to people adopting the non-standard libraries.

Dave: Yes, there’s that. The fact that it’s free, with non-viral licensing was a huge point. And the incredible community of programmers that grew up around this project - it’s made a huge difference in people wanting to use it and wanting to participate.

Rich: Were you involved all the way at the beginning?

Dave: The very beginning was started with Beman Dawes, who was the chairman of the C++ committee’s library working group at the time. He got a bunch of us together right after the first standard came out, and started to talk to us about where are we going to get the libraries for the next standard? Where are they going to come from, and where are we going to get libraries that actually have a lot of usage experience behind them? Because we wanted to be sure that those kinds of things were proven.

The very first participants in Boost were all people who were associated with the C++ committee. Since then it’s sprawled out into a community so big I can’t really keep track of it.

Rich: Looking at the list of libraries there are a huge number of them, and I’m downloading them … it’s 95 meg of source code.

Dave: <laughs>

Rich: Does the documentation tend to keep pace with this? Do people know which libraries they’re going to want?

Dave: That’s always hard. I do training in Boost. And when I do that, I tell people to take the libraries a few at a time. There’s a base set of very broadly useful libraries, that just about everybody will want. So if you start with those, it gets a lot more approachable.

Another thing that you can do that will help if you’re feeling it’s a bit of a hump to get over, we have a conference every year - BoostCon - which we’ve actually extended this year into “C++ Now” in honor of the new standard.

Rich: What kind of an audience is the conference geared towards?

Dave: It’s been geared towards the audience of interested and interesting people that show up around Boost. It’s kind of hard to define them. We’ve had people who are less experienced, but I would say that as a rule most of people that show up are extremely bright, and that makes for a really interesting conference. We do this every year in Aspen, Colorado, by the way, in the Spring, and it’s one of the best conferences that everybody says that they go to every year. We get the same people coming back over and over again. It’s geared toward anyone who’s a Boost user or a Boost developer. That’s where we get the face-to-face collaboration that so many of us miss when we’re doing the the online, remote collaboration thing.

Rich: With the new version of the C++ standard out last year, what are the plans of the Boost project with regards to that?

Dave: I think we’re going to keep on doing what we had been doing. We’re going to keep reviewing and accepting new libraries.

We’re going through a phase where the project has expanded so much that the original ways we had of thinking about things may not apply anymore. One of the things we’re trying to do is modularize it. You were talking about how there was 90 MB of downloads to get the source for Boost. One of the things that were working on right now is modularizing it, because most people don’t want to use every library all the time. People want to be able to pick and choose.

We also think that it will help decouple the development process for all of our developers a bit more. Make it a little more freeing to work in, because it’s a really big code base now.

Rich: Are there other projects that are in the same space? I’m kind of aware of the Apache standard C++ project but I don’t know much about it. Are they doing a similar thing, or is that different?

Dave: My recollection is that the Apache project was actually just trying to implement the existing standard, whereas Boost’s mission has always been about exploring what can be done with C++ libraries, and providing new things that aren’t in the standard.

So, let’s see, other libraries in this space? Well, actually, one thing that you might consider similar would be the Adobe Source Libraries. This is a set of Open Source libraries which are actually built on top of Boost. They cover the same sort of broad spectrum of different applications.

Rich: You’re part of a company called BoostPro, is that right?

Dave: That’s right.

Rich: You do training. What else do you?

Dave: We do both Open- and closed-source software development. We a lot of training - that’s one of our main things. We’re focusing a lot on training in C++ 11 because there’s new language standard out which changes everything. And we’re doing a lot of compiler development these days too, because one of our partners has a lot of experience with that, and a lot of connections in that world.

Rich: Thanks so much for speaking with me.

Dave: Thanks a lot, it was my pleasure.

Categories: Open Source

Yes, but what does it *do*?

Wed, 02/01/2012 - 18:59

Over the last three months, I have reviewed probably three hundred Open Source projects. When I say “reviewed”, this goes from installing and playing with it extensively (like Celestia and MuseScore) all the way down to reading the website, looking at the screen shots, and trying to figure out what it does.

This latter category is usually for projects that aren’t available for a platform that I use regularly.

Not pointing any fingers, but there have been times when I simply couldn’t figure out what the project was for.

In your project admin interface, you have three opportunities to describe what your project is, in three different ways.

You have a summary statement, which is 70 characters or less, and is intended to be one memorable phrase or sentence that best describes what your project is. Good examples of this are “TORCS - The Open Racing Car Simulator”, and “TuxPaint - Art software to let kids draw and paint. For children 3 to 12 years”, and “Arianne is an engine to develop multiplayer online games like Stendhal”. They are completely lacking details, but give you an immediate understanding of the central idea of the product.

Web usability folks tell us all the time that you have just a few seconds to get someone’s attention before they move on to the next link and forget about you. This summary statement is your opportunity to get their attention. Omitting it, or making it inscrutable, ensures that they’ll move on.

Next, you have the description. This is longer, and gives you the opportunity to describe what the project does. However, here too, you need to focus on what makes you distinctive. Saying that the project is Open Source is redundant. Saying that it is “full featured” is meaningless.

Imagine that you’re in an elevator with someone that is looking for a project to invest their money in. You’ve just met them, and you don’t know their level of technical expertise. They ask “what does your product do?” You have two minutes before they get to their floor and forget about you.

Ok, now go rewrite your project description. Tell me why I should choose yours over that other one, or what yours does that is unique or exciting. If I encounter another “free, open source, secure, easy-to-use and light-weight” product, I think I might scream.

(In the marketing business, they call this your elevator pitch, but’s also called the value proposition, or unique selling point, or the Big Idea. If you don’t know what yours is, then nobody else will either.)

Finally, you have the list of features. This is where you should throw around the technical terms that those in the know will be looking for. The acronyms, RFCs, and standards names. But here, too, you need to focus on what’s impressive, and what matters. Don’t tell me that your product is fast, responsive, secure, or error-free, because I assume those things.

Now, think of your friend or coworker who is least knowledgeable about your Open Source project, and show them your project page. Give them 60 seconds, and then ask them what your project is for. If they don’t know, go back and do it again.

Now, I know that you’re in this for the fun of developing the project, and sometimes, it doesn’t seem like marketing is something you want to spend that time on. But it’s more fun when more people are using it, and more people are playing along with you, and this is a worthwhile investment.

Also, please remember that this is my job, as well as my passion. If you want me to evaluate your project summary page, please JUST ASK. I’ll be brutal, and specific, and will even help you rewrite, if you want. I am a writer. And I want your project to succeed, because I love Open Source. Please just ask. It’s what I’m here for.

Special thanks to the members of the Arianne project, and especially Katie Russell, for discussion and suggestions on the #arianne and #sourceforge IRC channels (on freenode.net) which led to this article.

Categories: Open Source

The Anvil Podcast - Celestia

Fri, 01/27/2012 - 22:39

I recently spoke with Chris Laurel of the Celestia project. Celestia is a 3-D planetarium.

If the embedded player doesn’t work for you, you can download the audio directly in either mp3 or ogg format.





Rich: This is Rich Bowen and I’m speaking with Chris Laurel who is a member of the Celestia project. Thanks so much for taking the time to speak with me. Tell me something about Celestia. Tell us what it does and tell us how you got involved in this project.

Chris: Celestia is about 10 years old as of … well, actually it’s about 11 years old now, and I started it after leaving a job and taking some time off. I wanted to keep doing something related to my field, which is 3-D graphics programming. And I wanted to do something with 3D graphics that was something beyond just a game. I wanted to demonstrate that there’s some usefulness to the 3-D graphics beyond special effects for movies and games. And so, I decided to create Celestia. The other reason is that I’ve had a lifelong interest in astronomy and I always wondered what would be like actually stand on the surface of what the moons of Jupiter. This was right around the time that were starting to get some of these extrasolar planet discoveries and wondered what would the sky look like from the surface of these planets we were finding around other stars.

South America

And so the desire to make something useful with 3D graphics plus my interest in … wondering what it would look like to be in these places was what made me develop Celestia.

Celestia is a 3-D planetarium that lets you look at the universe from any point in space and at any particular time. So you can see the motions of planets around our sun. You can zoom away from our sun and see thousands of stars near by in 3 dimensions. You can zoom out further and see our galaxy and where it is located relative to other nearby galaxies. You can observe the motions of planets in time and the motions of binary stars orbiting each other. It’s really meant to give you this broad view of the universe - this visual experience

Rich: Where does your data come from?

Australia

Chris: We have a lot of sources. There’s no single catalog that covers all these different objects. Stars are from the European space agency Hipparcos mission. This is to date the only large catalog of stars that has their distances measured. It turns out that accurately measuring the position of star in the sky is very easy but measuring the distance requires extremely high precision. So far the only catalog available is the Hipparcos catalog.

The orbits of the planets come from different sources. There’s something called the VSOP 87 which is this complex theory for the orbits of the planets in our solar system. Then there are other theories for the orbits of the moons around planets.

The surfaces of the planets and moons are derived from images acquired by missions to various planets. Voyager, Cassini, the Viking Mission to Mars. Pretty much all the interplanetary missions in the last couple decades have contributed in some way to Celestia.

Moon

Rich: Is all of that data free?

Chris: Yes, it’s all free. This is all scientific data, and it’s all generated by these government supported agencies like NASA and the European space agency and JAXA from Japan. And they all make this data freely available so that scientists can analyze it and then write papers and learn things about our universe.

Rich: What kind of things do you have in the pipeline for future versions of Celestia.

Chris: I think one of the most important things right now is sorting out the user interface a little bit. A common complaint about the Celestia is that it’s extremely hard to figure out all the different non-obvious keyboard commands that are required to navigate around the universe. That’s an area where Celestia needs some development. And then we always want to improve the visual qualities of Celestia - just improve the graphics, make it look more realistic, take advantage of some of the new features are available in 3-D graphics hardware that were not available when we started 10 years ago.

Saturn

Rich: I noticed while looking through the release history that there’s a two year gap, about 2009 until early this year. What inspired you to pick the project back up and start releasing versions again?

Chris: It’s free software so I don’t make money from Celestia. There’s times when I have to work on other projects and I get busy with those. When I have more free time available, I do more work on the project. There are other people that are also working on Celestia. I’m certainly not the only developer. They have similar time constraints. We’re all doing this for fun. We don’t get paid. When we have time available, we work on it. But unfortunately as you’ve noticed, we don’t have enough time to be constantly updating it. So there’s gaps.

Rich: Yeah, one never does.

Rich: If someone wanted to get involved in your project, what sort of openings might there be?

Chris: Celestia supports these add-ons which are our packages of data about planets galaxies and stars, that you can use to expand the universe in Celestia. And so we’re always looking for people to take new data sets from planetary missions or from telescopic missions, and importing that into Celestia to expand the universe of Celestia. Make sure we have all the latest, and most accurate, and most complete data available.

Rich: Tell me some more about these plug-ins. How many contributors do you have for that? What sort of data they brought to the project?

Chris: Maybe 100 people or so have contributed add-ons and made them publicly available. I know they’re quite a few more people that create these things just for their organizations or for their own entertainment. There’s a site called the Celestia Motherlode where a lot of people have uploaded these add-ons. Things you can find there are high-resolution planet textures, 3-D models of asteroids and spacecraft, and the trajectories of the spacecraft. So you can follow the New Horizon’s mission to Pluto or the MSL - the Curiosity mission to Mars. Catalogs of comets. Then there are things that are more speculative, such as … people will take the known data about an extra-planetary system, and expand on it and produce their own imagined surfaces for these planets around other stars. And then there’s a lot of people that like to use it to take spacecraft from Star Trek or something like that …

ds9

Rich: [laughs] I was going to ask that.

Chris: Yeah. There are a lot of people doing that, and that’s certainly not something that we have in the base Celestia package which is all completely reality-based. If people want to use it to live their favorite science fiction series or movie that’s great.

Rich: That’s pretty cool. I was just going to ask if anyone was using it for fictional stuff.

Chris: Yeah, in fact some of the Star Trek models in particular have gotten very detailed, and really well done. It’s cool stuff, even though it’s not not my domain.

Rich: My wife and I are big Trek fans. Maybe I’ll play with that some.

Chris: You absolutely should. The Trek stuff is great. We have some very devoted Trek fans who are Celistia users.

excelsior

One thing I’d like to say is that we’re pretty careful about what data we allow in Celestia. We try to keep it very realistic and don’t enhance anything. But we have to make some guesses in a few places, such as these extrasolar planets. We have some speculation as to what they look like, but we can’t see them from Earth right now. We don’t have telescopes that are powerful enough. So we sort of have to make some guesses there. But in general, there’s very little speculation involved in the visuals in Celestia.

I always like to emphasize this is … just because I’m talking about Celestia doesn’t mean I’m the the sole developer by any means. We’ve had a lot of people contributing over the last decade on the project, and not just in creating add-ons, but a lot of work on the code a lot of work on the very complex process of taking these scientific data sets and turning them into something you can visualize in your PC. I always like to make sure that credit is given here.

Rich: Thanks so much for talking to me.

Chris: Thank you, and have fun exploring Celestia!

Categories: Open Source

Writing press releases for your projects

Fri, 01/27/2012 - 16:17

If you follow us on Twitter, you will have noticed an uptick in our activity there. (If you don’t follow us on Twitter, you should. @sourceforge)

Most of this activity comes directly from the projects that are hosted here.

So, this article is for two things. First, I want to tell you how to post a news item on your project. Then I want to give you a few pointers in writing a press release in this age of Twitter.

If your project is running on SourceForge Classic, items posted to the News page (Select News in the Develop menu, then click Submit) are aggregated in a place that I can get to them, and I then post as many of those to Twitter as seem to be release announcements, and that I have time for in a given day.

News

If your project is running the latest version of SourceForge (code-named Allura), anything you post in the project blog is also aggregated for me. The blog tool isn’t enabled by default on Allura projects. However, even if you already have a blog somewhere else, what I recommend is that you enable the blog tool (Click Admin, then Tools) and create a blog called “Release Notes”, or something similar, where you can post release announcements.

Allura

Which brings me to part two - what should you write?

The most important thing to keep in mind when you write release notes, or any kind of press release, is that it will be seen out of context. That is, your announcement is going to be taken and published elsewhere, and the person reading it may not be familiar with your project. Because of this, you should tell them everything they need to know, in every release note.

This may seem overkill when looking at a list of news items all of which describe your project. But when someone sees the message on Twitter, or on Facebook, or in a tech magazine, they don’t have your website in front of them, and you need to tell them everything.

Bad press release:

v1.34 released! Shiny stuff. Fixed bug #844.

Good press release:

Click Track version 1.3.0 released. Click Track is a Metronome and click track generator for Android. http://bit.ly/wxtBa7

* Change position of click track marker.
* Delete click track marker.
* Add click track marker.
* Added help.
* Added XML editor tool.
* Added WAV to MP3 tool.

As an added bonus, you’ll notice that the first paragraph is less than 140 characters, so I can immediately copy and paste it into Twitter. This has the benefit that it’s more likely to get picked up and retweeted by other people, and possibly eventually make it into some tech news aggregator or newsletter. The extra few minutes it takes to condense your good news into 140 characters can really pay off in getting new eyes on your project, and new participants in your community.

Of course, it also saves me a little time, which increases the chance that you’ll end up in the @sourceforge Twitter stream.

So, to summarize:

* Write good press releases
* Follow @sourceforge on Twitter
* Keep releasing awesome software

Categories: Open Source

Chris Tsai, Support Ninja

Thu, 01/26/2012 - 21:18

This week, Chris Tsai took a few days of vacation time, and I covered for him.

Let me clarify. When I say “I covered for him”, what I mean is that I tried, frantically, to keep up with the flow of email, tickets, and IRC queries, which Chris handles all day, every day.

Chris is our front-line technical support guy at SourceForge. He’s the guy that gets your complaints, comments, and bug reports, via the ticket system, email, and IRC. These queries vary from password reset requests and requests for documentation to requests for legal advice and help on getting some of our projects’ software working.

By the way, we are a project hosting company, and we have thousands of projects hosted here. We are not, and cannot be, experts on all of those projects, so requests for help on configuring FileZilla and editing audio with Audacity are redirected to those communities.

And we are not lawyers, and so request for legal advice are redirected to the Software Freedom Law Center.

I thought, when he showed me what I would need to do in his absence, that it would be a snap, and I would be able to get my own job done too. Not so. I quickly discovered that Chris is a support ninja, and that I can’t hope to measure up to his skills. It’s not that the volume of support requests was huge, but, rather, that because of the number of different developer tools we offer at SourceForge, Chris has to know an awful lot of things in order to answer the breadth of questions that are asked.

SourceForge offers revision control using Subversion, Git, and Mercurial. We have the ability to host various applications in your web space, as well as wikis, ticket trackers, databases, mailing lists, and discussion forums, and Chris supports all of these, with, as far as I can tell, a relatively small percentage of the inbound requests being escalated up to the second line of defense.

So, all of that to say, you are in good hands when you host your project at SourceForge.

Oh, and also, that Chris is never allowed to take a vacation again.

Categories: Open Source

PeaZip

Tue, 01/24/2012 - 18:37

[[Rich's Note: This entry was submitted by Giorgio Tani from the PeaZip project. If you'd like to write up something about your project and have it featured on the SourceForge blog, please email me directly at community@sourceforge.net.]]

The PeaZip project started in 2006, aiming to create a file archiver providing an unified, cross-platform GUI for many Open Source technologies (over the time it was added support for 7-Zip/p7zip, FreeArc, PAQ, UPX, etc…).

So, unlike classic Windows file archivers like i.e. WinZip and WinRar, PeaZip is structured as a frontend for multiple tools, like Ark and FileRoller does on Linux systems, this results in a comprehensive, modular tool, capable of handling all the most popular archive formats (130+ file types).

archive
(This is a preview of an upcoming release.)

Since the beginning of the project I chose Lazarus/FreePascal as development environment for PeaZip for many reasons: it is an Open Source project itself (and is assiduously developed, and can rely on a wide and active community), I appreciate Delphi language, and, most important, it allows to create cross-platform graphic applications using native GUI’s API of the target system, which means resulting application are fully integrated in the target system in terms of functionalities and look & feel.

This allows PeaZip source code to be compiled for Win32, GTK2 and Qt, and of course it opens endless possibilities of porting as Lazarus project progress and supports newer environments.

extract
(This is a preview of an upcoming release.)

Year after year, users’ feedback and suggestions actively shaped the evolution of the project, opening it to integrate a wide array of advanced file/archive management features (search, bookmarking, thumbnail viewer, hashing, find duplicate files…), especially focused on security (strong encryption, two factor authentication, encrypted password manager, secure deletion…).

The archive creation/conversion/extraction dialogs feature an innovative and easy to use interface, more similar to CD burners interfaces rather than to a classic file compressor.

peazip-gtk2

This design makes extremely simple to check (and update) items set for compression and extraction, integrating a full featured file manager component.

Tasks being created in the GUI, if desired, can be saved as batch scripts, in order to automate backup operations, or for fine tuning, or for learning purpose – a concept featured since the beginning of the project, aiming to bridge the gap between the ease of use of GUI applications and power and flexibility of console.

PeaZip is available for Windows and Linux, for both platforms either as installable and as portable software, not needing installation, an ideal choice for environments where it is not possible, or not desired, to modify the host system, or to have the application available in a removable device, or just to try it.

peazip

PeaZip for Linux is desktop neutral, and meant to run on Gnome and KDE as well as on different desktop environments.

Please note that Linux installers (DEB, RPM, and TGZ are available) are generic, meant to be compatible with as many distributions and versions as possible rather than integrating at the best with a specific distribution/version, so it is recommended to check repositories of your distribution for specific packages.

Categories: Open Source

The Anvil Podcast - MuseScore

Thu, 01/19/2012 - 21:39

Rich: I recently spoke with Thomas Bonte and Nicolas Froment about the MuseScore project.

As the name suggests, MuseScore is musical software for the creation and editing of musical scores. It has a wide variety of tools for creating scores with multiple instruments, multiple voices, inserting lyrics, and all sorts of related functionality.

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





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.

So here’s my conversation with Thomas and Nicholas.

Rich: I’ve been playing with MuseScore this morning and, I have to say I’m really impressed with it. I remember about 10 years ago looking for some exactly like this. A friend of mine was working with a small choir, and he was looking for a way to do this sort of score creation. We couldn’t find anything all. This would have been perfect at the time and it’s a very impressive piece of software.

Are you two the whole team or is there a larger team of developers working on this?

Thomas: There’s one more person who is missing. His name is Werner Schweer. He comes from Germany. He’s the lead developer of MuseScore, and he started with it in 2002, or something like that. So we are nine years, actually almost 10 years later. And now we have a contributor community of one hundred fifty people, or even more. Those are people contributing code, or translations, or documentation, or graphics, and so on and so on. So it’s quite a lot of people now.

Rich: I saw on the website a map of schools that are using this. What kind of stories do you have about people using this in instruction?

Thomas: Actually we don’t know that much about schools using MuseScore, other than, well, they just installed the software on their PCs or or even 100 PCs, or even more, and then they use it with the students. We do have some feedback sometimes. Some teachers shared a video with us while he was teaching MuseScore, but other that that it’s sometimes a lot of mystery for us how MuseScore is being used within classrooms. So other than the map, we don’t have that much feedback actually.

Rich: I’m always interested to see how open source is used specifically in education directly with the students. Do you have any of those students come back and participate in the community after having experienced the software?

Thomas: Yes. So, obviously, we have quitea vibrant community website on the MuseScore.org. We see lots of people asking questions there. But it’s not so much about the use-case being student or being teachers, just about while asking how the software works for doing this or doing that. So far we have, like, 20,000 people registered on MuseScore.org. The forum is very lively, so people by now know if they have a problem, they can post it, and within one hour they have answers. So that’s really great. The live support is probably one of our strongest points and that’s something that people don’t expect of Open Source software. They expect that they won’t be able to get support, and as soon as they have tasted the support, the live support of the community, it’s like, whoa, it’s super great. That’s one of the points we really excel on.

R I was looking for sheet music that I could download, and I found a lot of classical music that is in the public domain but do you see people using this for original composition as well?

Thomas: Yes, for both actually. Composition as well as for transcribing existing music by ear or copying it from paper, like lots of public domain stuff. It’s hard to say what the distribution is between the three of them, but we almost say it’s kind of equal. Mostly people who have their sheet music on paper, they want to do one thing, and it’s transpose. So they copy it over into MuseScore and transpose. Lots of music composition students who want to share the stuff online and get feedback on how they can improve and so on, and then people just transcribing by ear because they don’t have sheet music, and mostly these are teachers who want to transcribe and pass on the music to students. These are the three big groups that use MuseScore.

Nicholas: Maybe another one is … a lot of people arranging for choir, and glee, and marching bands, and churches. A lot of people use it in churches.

Rich: Are the two of you musicians yourselves?

Nicholas: Sure. I’m a drummer.

Thomas: I’m a piano player, and our lead developer is a piano player as well.

Rich: So you all are developing this for your own personal use, then?

Nicholas: Yes, sure.

Thomas: Indeed.

Rich: What sort of things are planned for future versions of the software?

Thomas: For MuseScore … what we call 2.0, it’s the next major release, we plan to broaden up our market a bit, in the sense that we don’t have the guitar players right now, because guitar players, a lot of them use tablature. Tablature will be supported in MuseScore 2.0. That’s obviously a large chunk of the market.

And then, on the other side, we also want to get a bit more into the high-end, and those are people composing or transcribing big orchestral scores, and for them we have linked part editing, which means that you can just edit one specific part while the full orchestral score just follows along if you want. So you have it all in and one score you can easily edit your whole orchestral score.

We cover all kinds of instruments and all kinds of instrument players, so MuseScore 2.0 is about targeting everyone. That’s the main goal for MuseScore 2.0.

Nicholas: Something we want to do as well is make it look nicer. Make a better design of the UI. We haven’t gotten complaints, but some people say it doesn’t look good. Or not good enough.

Thomas: We have to compete with commercial software, and of course commercial software like Sibelius and Finale are our biggest competitors, and they are in the market already 20 years now. So we’re still pretty young, and in order to appeal to all people, we have to make the software even more easy to use, and the UI and UX is something that we have to work on. And as often with Open Source, that’s something that doesn’t happen magically, like what is happening with the code itself. So we might have to push a bit on that. That means paying a designer. So if there are designers listening along and wants to help us on this, we might just start a KickStarter project, and raise some money from the community and pay a designer with it, because so far in all these years we haven’t had a professional designer stepping on board and trying to make the software better.

Rich: When someone is entering a piece of music what are the different ways that one can enter that music? Obviously you can edit it on the screen but there is a MIDI interface as well, is that correct?

Nicholas: That’s correct. You can do it with a mouse, you just click on the lines or between the lines, to put your notes. You can do it with the keyboard of the computer as well. You press the notes, C, D, E, F, and so on. And there are some shortcuts to change the octave, and move the notes on different lines. And you can do it with a MIDI keyboard. When you do it with a MIDI keyboard. When you do it with a MIDI keyboard, some people expect that you just play, and the music display on the screen magically. This is not the case. You play the chords, or you play the notes, and you change the rhythm with the computer keyboard.

Thomas: That’s called step entry mode.

To add something to your question of what’s next for the future - a the moment, MuseScore is a desktop app. It’s kind of limited, if you see that the mobile stuff is just taking off rapidly now. And so one of things that we envision as well for the future is that we bring MuseScore not only to mobile, but also to the Web. From the desktop, to the Web, to mobile, and launch some kind of hub. Actually last year we launched MuseScore.com, and it’s a sister website for MuseScore.org, where all MuseScore users can make an account and upload their sheet music to, and then share with the people they want to share with, and of course having all the sheet music in their proper account on MuseScore.com, could also be able then to load it into their mobile devices. Currently we’re making mobile applications for IOS and Android, and more is to come. And software is Open Source as well. So this is in fact a call to developers - if you want to make an app using sheet music, than they could use a library within the MuseScore project, which they can just use inside their own application in order to display the sheet music, to play it back, to transpose it, to play a few parts, and so on and so on. So that’s something for the future as well.

Categories: Open Source

Moving Furniture

Thu, 01/19/2012 - 16:08

I work from home, and our house is not enormous. When I first started working at home, we put a desk into our bedroom, and got a shoji screen to partition the room into two rooms. It’s worked pretty well, but there are some drawbacks to the room layout. The room felt rather cramped, and because the desk was just a couple of inches too tall, we could no longer open the window any more.

I’ve been working that way for a little over two years now, and a few days ago we decided to try to rearrange.

The trouble is, with a lot of bulky furniture, and not much maneuvering space, it’s not something you really want to experiment with.

Open Source to the rescue. We downloaded Sweet Home 3D, from SourceForge, measured all of the furniture in the room, and then started moving it around.

Sweet Home 3D has a library of furniture items that you can resize to exactly the right dimensions. You put the outlets on the wall, as well as the pictures, so that you can see whether furniture will block outlets, and whether you’re going to have to rehang any of the paintings. You can position things in three dimensions, so you can set lamps on top of tables, or stack crates, and you can see all of this in a 3D model so you know what it’s going to look like.

rearranged_room
Rather than spending a few hours hurting our backs, we were able to position things exactly as we want them, and plan out how we were going to get things there with the minimal amount of effort.

So, my desk is no longer by the window. (Yes, I could see the squirrels, and they were, indeed, merry.) but also the room feels much more open, and we’re not always dodging one another when we walk around the room. The lighting is better, and best of all, I don’t hurt all over from having to move the furniture two or three times to get it right.

In addition to the built-in objects, Sweet Home has a community website where people can contribute their creations. I imported an office chair from the website, because the one that was built in didn’t look right. There’s also trees, cars, and people, if you want to make a model of your entire house and surrounding land.

downloadable_objects

You can even create a video walkthrough of your room by selecting places to stand, and what direction to look. The software does the rest, connecting the positions smoothly to create a view of the room.

You can see an example of this below - the desk isn’t quite right, and I couldn’t find a shoji screen, but the general layout is right.

So, over all, four thumbs up from the Bowen moving team. I start work today in my “new” office, and although there’s still a lot of stuff still to be put away, it’s nice to have it done with so easily.

Categories: Open Source

SOPA, PIPA, and Open Source

Wed, 01/18/2012 - 16:43

With sites going dark all over the Internet today, in protest of the bills going through the United States legislature, we here at SourceForge are going to mostly leave it to our sister site, Slashdot, to keep you informed of the events of the day.

We are, of course, concerned at how these bills, or future versions of them, will affect Open Source, giving companies the ability to shut down projects and project hosting sites like SourceForge, with little or no evidence, and with no due process.

We encourage you, if you are a citizen of the United States, to educate yourself about these bills, and contact your legislators to let them know how you feel about them. The events of the past week show that they may in fact be listening.

Some useful resources include:

If you are not a US citizen, we encourage you not to be complacent. History shows us that other nations follow in the steps of US law, even when that law is not supported by the people of either country. Start now to educate your local, regional, and national leaders about the dangers of this kind of legislation, and encourage them to put pressure on their colleagues, and on other governments, to resist legislation that favors big business at the expense of the individual citizen.

Categories: Open Source

Featured projects, January 16

Tue, 01/17/2012 - 16:53

This week’s featured projects span many categories, from games to server benchmarking to 2D CAD. There’s lots of great software here, as well as lots of opportunity to get involved in interesting development communities.

  • GeoServer

    GeoServer is an open source software server written in Java that allows users to share and edit geospatial data. Designed for interoperability, it publishes data from any major spatial data source using open standards: WMS, WFS, WCS, WPS and REST

  • Server Benchmark

    Server Benchmark [s.b] allows server engineers and administrators to quickly complete the “burn in” phase of your server and VDI provisioning process.

    The software also allows users to benchmark processing and memory utilization by dynamically adding threads and building arrays to test memory capacity.

    Server Benchmark is also a great way to maximize capacity and test response from within your existing Citrix XenApp farm, and VDI infrastructure.

  • PeaZip

    PeaZip is a free file and archive manager utility that provides an unified portable GUI for many Open Source technologies like 7-Zip, FreeArc, PAQ, UPX.

    Create: 7Z, ARC, BZ2, GZ, *PAQ, PEA, QUAD/BALZ, TAR, UPX, WIM, XZ, ZIP

    Extract 130+ archive types: ACE, ARJ, CAB, DMG, ISO, LHA, RAR, UDF, ZIPX and more

    Features of PeaZip includes extract, create and convert multiple archives at once, create self-extracting archives, split/join files, strong encryption with two factor authentication, encrypted password manager, secure deletion, find duplicate files, calculate hashes, export job definition as script.

  • MantisBT

    Mantis is an easily deployable, web based bugtracker to aid product bug tracking. It requires PHP, MySQL and a web server. It is simpler than Bugzilla and easily editable. Check out the online Demo.

  • LimeSurvey - THE Online Survey Tool

    LimeSurvey is a PHP survey software to create online surveys. Features open/closed surveys, branching, participant administration, quotas, WYSIWYG HTML editor, email invitations & reminders, assessments, basic statistics and more.

  • Ditto-cp

    Ditto is an extension to the standard windows clipboard. It saves each item placed on the clipboard allowing you access to any of those items at a later time. Ditto allows you to specify what gets saved, text, images or html.

  • Dungeon Crawl Reference

    Dungeon Crawl Stone Soup is a free rogue-like game of exploration and treasure-hunting. Stone Soup is a continuation of Linley’s Dungeon Crawl. It is openly developed and invites participation from the Crawl community. See http://crawl.develz.org !

  • Project X - DVB demux Tool

    European digital radio & television uses the DVB standard to broadcast its data.
    Project X gives you a look behind the transmissions and tries its best to handle & repair many stream types and shows what went wrong on reception.

  • LibreCAD

    LibreCAD is a 2D CAD drawing tool based on the community edition of QCad LibreCAD has been re-structured and ported to qt4 and works natively cross platform OSX, Windows and Linux

Categories: Open Source

The Anvil Podcast: ProcessMaker

Fri, 01/13/2012 - 16:26

Rich: I’m speaking with Brian Reale who is with the ProcessMaker project.

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 below doesn’t work, you can download the audio in mp3 or ogg formats.





R: Thanks so much for speaking with me today.

Brian Reale

Brian: Yeah, thanks for having me.

R: Tell me about the ProcessMaker project: what sort of problem space you’re trying to address, and what your product does.

B: ProcessMaker is Open Source business process management tool, which is a discipline probably better known as workflow. ProcessMaker really focuses on automating approval based in a form driven workflows. Basically we;re sort of streamlining bureaucracies. Any time you’ve got an organization with 80 on up to thousands, people want to get things approved. They make requests and ProcessMaker generally looks for processes that have the word “request” or “approval” in it. So, a credit request or an employee onboarding request or leave of absence request. Anything that’s some kind of approval, request-based workflow is perfect for automating in ProcessMaker. It gives a business analyst, or business user, a visual environment for designing visually the process with the steps required - how it flows through the organization, and then adding in forms. Also the visual form designer outputs documents which might be these sorts of PDFs or Word documents, contract, invoices, things of that nature. So, it’s really about automating these kinds of approval workflows which happen again and again in enterprises.

R: Tell us about the relationship between the Open Source side and the commercial side and how that works together and what’s in one and not in the other.

B: There’s a company that I work for called Colosa. Colosa is the main sponsor of the project and has a core group of developers are part of Colosa. The primary product the full product is Open Source under the GPL version 3 license and then we also develop add-ons around it. Community members also develop add-ons as part of subscriptions where we’ll will provide support for the product and the additional add-ons to the product, and besides that we also provide services, as do many companies around the globe, that helped other companies automate their processes.

R: Do you have developers that work on the Open Source project full-time?

B: Yeah, we’ve got about eight developers currently that just work on the core Open Source product full time. Then we have another small team of probably two developers that developed these plug-ins. We have a specific plug-in architecture and then we look for areas where we can add some value and offer those as plug-ins inside of these enterprise subscriptions. Again them main purpose of enterprise subscriptions is so that those that want professional support around it can get it and also get some value added that with additional features.

R: Which came first: the Open Source product or the company?

B: Good question. The company came first. The company Colosa has been around since 2000. We were originally doing something else. It was related, and in the area of insurance. So we we originally worked on some insurance related projects and insurances is an industry that has a lot of workflows. So we realized that really what we were doing was developing workflows. So we decided in about 2006 to begin, trying to orient this a more generic and general fashion to create an Open Source product around it. And then it went on SourceForge in February 2008.

R: Was it Open Source to begin, or you you developed it in-house and then Open Source it?

B: We had developed parts of it in-house, and never explicitly had a license agreement around it so then we went back and redeveloped it and then said, let’s release this officially under a license. So we had developed parts of it but really not as as a coherent product. So that took a while to do, and then we released that.

R: I’m always interested in the process where a company take something internal and makes it Open Source. How did that go? Did you have lawyers that were nervous about it or was it pretty much smooth, or how did that process work out?

B: It was actually very smooth. I had had spent a lot of time the year prior going to different conferences and calling members and leaders of other Open Source projects to understand better how Open Source works, because I was kind of new to it at the time. And because we had been working mostly in PHP, that’s when we thought we were really part a larger community that does gravitate towards Open Source, and we should be participating in a bigger way in that. And so it was natural for us to do that. And because all the development we had done would have been very specific to clients, we sort of thought we had nothing to lose. There’s lots of literature out there saying what were the right reasons and the wrong reasons for looking towards open Source, but it worked very well for us.

R: Now you’re on the other side of that and the project is Open Source. Are the developers that work on the project … are they all from within the company or do you also have developers that contribute regularly that are outside the company.

B: We started of course the core development and now we have a community of about 5000 members. All of the language packs have been contributed by members. We are getting more add-ons and plug-ins contributed by members. A few contributions around the core - not too much yet but that’s starting to happen. So we’ve seen that process growing as users and developers become more involved. One of the interesting things about about ProcessMaker is, because it’s really a toolset for business analysts, we also have the ability for non technical people to contribute in the way of processes - contributing best practice processes and then sort of showing others how they’ve done maybe a credit request, or an employee onboarding process. So there’s two ecosystems of contributors there: one at the process level and one at the programming level. One of the unique things - there’s other workflow and business process management solutions and other Open Source ones - one of the interesting things is that this is a PHP based product and really the only one out there and so it kind of gives a different level of accessibility. We’ve seen developers and companies around the world who are gravitating towards ProcessMaker because they realize that there’s more talent, at a lower cost than say Java solutions out there. And our approach to is very different so as more developers are asked to develop systems with a CMS or based on another CRM, we become an interesting player there and an interesting solution because people can get up to speed very quickly and it looks and feels more like other things that worked in before.

R: Where is the product going in future revisions and specifically, if somebody wanted to get involved at this point, what sort of things might they be interested in working on?

B: We’re members of the organizations that are interested in BPM. One of them is the OMG. Another one is the workflow management coalition - the WFMC. There’s a standard around BPM called “Business Process Modeling Notation“. In August of 2010 OMG released BPMN 2.0. It’s interesting is that it’s explicitly a semantic language that not only allows you to visually draw the process but it’s meant so that providers that are doing the drawing can draw and then you could export that in BPMN 2.0 compliant XML and later import it into another modeler or another engine. So let’s say you wanted to use the ProcessMaker modeler, but Oracle’s BPM engine you can do that or vice versa, when everybody fully supports the standard. That’s still taking a while for big vendors. It’s taking them longer because they’ve got a big install bases. But it’s also creating a bigger ecosystem, so those that are interested more in simulation or analytics, this idea of exporting and importing and eventually getting to the level what you could export and import multiple times and eventually get what they call a round trip with your your BPMN model. It’s an exciting time for the industry because of that.

We now have in our beta have really the only BPMN 2.O. editor - JavaScript-based editor - in the world. It’s pretty interesting notation designed to really create a common language for those that are trying to design and describe processes. We’re working heavily on that and are putting that into the product. We’re also working on better support for multiple databases. Currently ProcessMaker runs on MySQL. It’s a PHP product, as I mentioned. The BPMN piece is kind of big area in the industry and that’s really what our main focus is, and I think that for those that want to get involved, there’s lots of opportunity. We’re always interested, and would welcome more contributions in the core.

The plug-in architecture, we’ve recently documented that, so I think now in our wiki - users have been screaming for that for years - now they can come study that and figure out how to develop plug-ins that can do other things. We’ve done things for - around digital signatures, around integration with other solutions, and I think there’s just a lot of ways that people can go with that.

R: What are some of the products in the commercial space that are doing what you’re doing?

B: Well the big players in the commercial space would be IBM, SAP, and probably Oracle. I think IBM claims to have the biggest lion’s share of the market. But it’s an extremely fragmented market and in fact I’d say the number one competitive element in the market is custom programs. So other people build things not realizing maybe they could build them more quickly, or maintain them more easily with with a business process management framework, or workflow product. So it’s an interesting arena because there are lots of different solutions but each one is a little bit different. They haven’t been very monetized at this point.

R: Tell me what particular applications you’ve seen this put to in the real world - how people are using it, and especially how people might be using it in ways you didn’t anticipate.

B: As I mentioned, it’s a product meant for large organizations and our sweet spot tends to be maybe 100 employees to maybe four or five thousand employees. So any larger organizations that have this problem of how to coordinate better between employees regarding approval-based processes. Outside the US we’ve found an interesting niche with ProcessMaker in banks. Large banks in Eastern Europe and Canada. A number in Latin America, a number in Africa. And they sort of drive value because they can put 10, 20, 30 different processes on the platform. Everything from a check approval request, to some kind of incoming wire transfer, conciliation requests, all these sorts of requests and approval-based processes on the platform. And a because you can develop custom processes, each one is doing something unique. And that’s why they need a platform that allows them to build what they currently have. That sector, government, lots of government projects. We just saw a big USAID projects in Peru with the Peruvian government done with ProcessMaker. We’re about … we have a Colosa customer in the UK that’s launching a big government project in UK right now. And then cross enterprize, so any kind of manufacturing company that wants to add value or do custom work on top of existing ERP’s that’s another big area. Telcos - we have a number of telcos in different countries around the world using it as well. And probably some of the bigger names - Lenovo, the laptop maker uses ProcessMaker. Toyota in India uses ProcessMaker. Those are probably some of the more recognizable names. Universities as well. Lehman College from Sunni systems is using ProcessMaker. Kind of across the board in any large organization.

R: Thanks for after speaking with me today, Brian.

B: Thanks, Rich.

Categories: Open Source

VOTE for the February Project Of The Month

Tue, 01/10/2012 - 15:41

TL;DR: Vote for the February POTM here: http://twtpoll.com/7vt4lq

In the past, the reasoning around the Project Of The Month has been somewhat obscure. We’ve chosen one, and we’ve told you about it, and that was the end of it.

There are some basic criteria that we’re using to select the pool of contestants, and they look something like this:

First, we look at the stats, and choose the 25 projects that have grown the fastest in the preceding month. “Grown fastest” refers to website traffic and number of downloads, as those are things that are very easy to track, but we’re looking at integrating more development-centric metrics.

Next, I look through those projects and identify the ones that have actually had a recent release, where the definition of “recent” could still use some discussion.

I tend to give extra credit to projects that, in my not-so-humble opinion, have a sustainable community, which I primarily define as having more than one developer who has been active in the last year.

And then we see which project is most responsive to our request for an interview, so that we can write up something about the project. That, in itself, can be something of a measure of how active the community is, as we get to see how they respond to the request, and how they go about delegating who’s actually going to do the interview.

We’d like to involve you a little more in this process, so that the POTM is actually a community-selected project. We’re probably going to still do the initial filtering in the ways described above, narrowing it down to the top five or so, but from there, we’d like to leave it to you.

Please consider the projects below and vote for the February Project Of The Month.

The following projects are candidates:

  • Aleph One: Marathon Open Source

    Aleph One is the open source continuation of Bungie’s Marathon 2 FPS game engine. Aleph One plays Marathon 2, Infinity, and 3rd-party content on a wide array of platforms, with (optional) OpenGL rendering, Internet play, Lua scripting, and more.

  • Boost C++ Libraries

    Boost provides free portable peer-reviewed C++ libraries. The emphasis is on portable libraries which work well with the C++ Standard Library. See http://www.boost.org

  • Minecraft Forge

    The goal of this project is to provide a compatibility layer to Minecraft mods along with advanced modding capabilities. It’s aimed at being developed and maintained by a community of modders.

  • PokerTH

    PokerTH is a poker game written in C++/Qt. You can play the popular Texas Hold’em poker variant against up to nine computer-opponents or play internet games with people all over the world. This poker engine is available for Linux, Windows and Mac

  • TurnKey Linux

    TurnKey Linux is an opensource project that aims to develop high-quality software appliances that are easy to deploy, easy to use and free. In a nutshell, we believe everything that can be easy, should be easy! http://www.turnkeylinux.org/

  • SamyGO

    This project created for research on Samsung TV Firmware Hacking

  • Redo Backup and Recovery

    Easy rescue system with GUI tools for full system backup, bare metal recovery, partition editing, recovering deleted files, data protection, web browsing, and more. Uses partclone (like Clonezilla) with a UI like Ghost or Acronis. Runs from CD/USB.

  • PeerGuardian

    PeerGuardian helps protect your privacy by blocking many ranges of aggressive IPs while you use P2P.

  • Freeciv

    Freeciv is a free turn-based multiplayer strategy game, in which each player becomes the leader of a civilization, fighting to obtain the ultimate goal: to become (or subvert) the greatest civilization.

  • Album Art Downloader

    The Album Art Downloader is a program designed to make life easier for anyone who wishes to find and update their album art for their music collection. The sources for the pictures can be defined by creating plugin scripts.

  • ettercap

    Ettercap is a multipurpose sniffer/interceptor/logger for switched LAN.
    It supports active and passive dissection of many protocols (even ciphered ones) and includes many feature for network and host analysis.

Once again, the place to vote is HERE, and the vote ends on the morning of the 23rd of January, so that we have time to interview the winners.

Categories: Open Source

Featured projects, January 9

Mon, 01/09/2012 - 22:10

Every week, we refresh the list of featured projects on the front page of SourceForge.net, choosing the projects that have grown the fastest in the preceding week, and which haven’t been featured on the front page in recent months.

This week we’re featuring the projects listed below. They span a wide variety of categories, community size, and code maturity. We’re proud to have each of them as part of the SourceForge community.

  • Boost C++ Libraries

    Boost provides free portable peer-reviewed C++ libraries. The emphasis is on portable libraries which work well with the C++ Standard Library. See http://www.boost.org

  • Minecraft Forge

    The goal of this project is to provide a compatibility layer to Minecraft mods along with advanced modding capabilities. It’s aimed at being developed and maintained by a community of modders.

  • winPenPack: Portable Software Collection

    winPenPack is a free project having as main objective research and development of portable software. All applications are optimized for use on a portable device (USB pen drive, portable Hard Drive, etc.) and do not require installation.

  • Waterfox

    Waterfox is a high performance browser based on the Mozilla Firefox source code. Made specifically for 64-Bit systems, Waterfox has one thing in mind: speed.

  • MKVExtractGUI-2

    Matroska (mkv) track extraction windows GUI tool for work with mkvtoolnix. *** Please, rate and review the project ***

  • PokerTH

    PokerTH is a poker game written in C++/Qt. You can play the popular Texas Hold’em poker variant against up to nine computer-opponents or play internet games with people all over the world. This poker engine is available for Linux, Windows and Mac

  • TurnKey Linux

    TurnKey Linux is an opensource project that aims to develop high-quality software appliances that are easy to deploy, easy to use and free. In a nutshell, we believe everything that can be easy, should be easy! http://www.turnkeylinux.org/

  • Ext2Read

    Ext2Read is an explorer like utility to explore ext2/ext3/ext4 files. It now supports LVM2 and EXT4 extents. It can be used to view and copy files and folders. It can recursively copy entire folders. It can also be used to view and copy disk and file

  • SamyGO

    This project created for research on Samsung TV Firmware Hacking

Categories: Open Source

IT at the University of Cincinnati

Fri, 01/06/2012 - 21:12

On Wednesday evening, I had the great privilege of being invited to the University of Cincinnati to attend the basketball game against Notre Dame, in the President’s box at the arena. In attendance, in addition to the President himself, were various people from, or connected with, the IT (Information Technology) program at the University of Cincinnati.

The IT program covers a broad range of computer technology related fields, and has specializations in networking, databases, programming, and various other areas. Students are exposed to a wide variety of computing platforms, so that they don’t get into a job interview situation and have to admit that they only have training on Microsoft products. Or only Linux products, for that matter. A breadth of experience is pure gold in an interview situation.

Hazem Said, the new head of that department, was my kind host at the game, and we talked about a variety of ways that Open Source can feature in an IT curriculum. I’m really excited about the kinds of things that are in the future for this program. We talked about having students participate in healthy, mature Open Source projects as part of their training. This would give them experience not only in software programming, but also in project management, cross-cultural communication, customer support, and marketing, among other things.

When I was in college - which wasn’t so very long ago - there were some computer classes, which were mostly programming, but nothing that covered the real discipline of Information Technology in the way that I saw on Wednesday. It gives me a great deal of hope for the next generation of IT professionals that come of this program, and other programs like it around the world.

By the way, if you’re ever invited to a basketball game by the head of a University department, do a little research, and don’t wear a shirt with the other team’s color. (Really, it was an honest mistake!)

Categories: Open Source

The Anvil Podcast: LEAF

Fri, 01/06/2012 - 18:20

This week I’m speaking with David Brooke from the LEAF project. LEAF is a very small, security-focused distribution of Linux ideal for running on very low-end hardware.

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 below doesn’t work, you can download the audio in mp3 or ogg formats.





Rich: This is Rich Bowen. I’m speaking with David Brookes from the LEAF project. Thanks for speaking with me today. Could you give us an overview of what the LEAF project is, and what its goals are, and how the project got started to begin with?

dmb

David: Sure, Rich. Let me have a go at doing that. I must point out that I’m one of the newbies on the project, so I can’t claim to have been around since the very inception. I’m going to try to speak on behalf of my co-developers, and give a view of what we’re trying to achieve with the LEAF project.

The first thing to say is that LEAF is an acronym. It’s stands for Linux Embedded Appliance Framework. Really those words do capture the essence of what we’re about doing.

Linux, obviously.

Embedded, as in, we do target running Linux on some fairly low-end machines. Right now we are looking only at X86 hardware. That’s what we run on. Pretty much the smallest X86 machine you can think of will happily run the LEAF distribution.

Right now we’re looking at the moment at expanding the supported hardware - CPU chipsets - to run on other devices. The X86 hardware isn’t really at the low end of the scale any more. There are other alternatives that are rather smaller, rather less resource-intensive in terms of power. But right now it’s X86. Really going back a few years when the LEAF project got started up - when it was spawned from other initiatives - it was targeting very low-end X86 hardware, and for a long time we had the ambition of running off of a single floppy disk. So it was fairly a low resource requirement, very small distribution, to fit and boot off of a single floppy, and then run from memory once it had booted, and make efficient use of the kind of hardware that was around, about the year 2000 kind of time scales.

Appliance is that although there’s a focus on firewalling, network routing, that kind of functionality, it is a more generic platform. So really anything you can do with Linux, you can do with a LEAF distribution.

The Framework part of the name touches on that same thing. It is extensible as a framework. It isn’t just for networking and firewalling, although those are focus for it. Other solutions, network based, around file servers, around PBX, voice over IP, other solutions based on the same platform are eminently feasible with the basic distribution.

In terms of what it will do - it will do anything that a standard Linux distribution will do. It is low-end in terms of its demands on resources. Pretty high performance, as best we can get it given those constraints, and pretty flexible.

It is tailored, in its bare distributions, for various network based purposes, but it is extensible beyond that.

R: I saw something on the website about wireless access points. I used to have a flashable WAP. Is it used for that as well?

D: It’s used for that kind of purpose. Not as part of any commercial offerings as far as I’m aware. But if you look at the technology that’s used, I certainly see equivalent componentry in terms of the software applications that run on access points from 3Com, other people, the same kinds of solutions get used that we have available within LEAF. And certainly people are successfully able to build wireless access points.

R: The other thing I noticed on the website is that you mention several forks of your code base, other distributions of it. What’s the philosophy there regarding other distributions of your base?

release-branch-flow

D: That’s a good question. It really dates back to the early days of the LEAF project - back to about the year 2000. There’s quite a nice diagram on the website that talks about how various projects have merged together and then forked away. One of the initial projects that we based the LEAF solution on was the Linux Router Project (LRP), and personally that’s how I came across LEAF. I initially started about 1999 using LRP to use my own router, and stuck with it for a while. Then I was aware that LRP wasn’t being actively developed, after the year 2000, or maybe 2001, and that the LEAF team were developing LEAF Bering that I then switched to.

There were then various evolutions. What tends to happen is that there’s an initiative to make a fairly major change. For example, there was a change from using conventional libc to micro libc or uclibc, which is now used for the main active branch of the project. These major changes happen, and then things stabilize. The developers and users get to be happy with what’s happening. Then there’s another requirement to change the status quo because maybe people have different ambitions. That’s happened quite recently.

My active involvement has been quite recent. Perhaps the last two years or so, where the version 3 of Bering uclibc was stable, working fine for a lot of people. Based on the Linux kernel version 2.4, which did impose certain constraints. It was constraining some of the functionality, especially around IPv6, and some of the firewalling. And some of the add-on applications were constrained in terms of the versions that were compatible with that 2.4 kernel.

The version 4 of the project now, which has the 2.6 kernel, has caught up with some of the key software components like Shorewall firewall. We were quite far behind in terms of the version of that we were using, and we’ve managed to catch up with that.

What we’ve found is that the footprint of the solution has grown quite dramatically. The 2.6 kernel is a lot bigger than the 2.4 kernel. The new versions of Shorewall actually rely on Perl. It’s a cut-down Perl installation but it is a Perl installation, which is more resource intensive both in terms of disk space and runtime space. That has meant that the aspiration of fitting on a single floppy disk has had to go out the window. But then again, there’s no real user-base out there that relies on floppy disks any more. We’re in a compact flash world, and other physical disk media have taken over.

That was a big change both in the developer community, and in the focus - not so much the focus of the project, but the focus in terms of removing some of the constraints and some of the policies of being very small, and focusing more on performance than on very very small size.

R: Where do you see the project going in coming years? What sort of additional functionality are you going to try to put in there.

D: Functionality-wise, I think we’re already pretty rich. I think in terms of the number of packages, it’s getting on to the 200 individual application packages that are available. We do find that people add to those, so as different developers have a requirement to run a new application, or maybe switch from one bit of technology to another bit of technology, they’ll add another package and grow the functionality that way. That’s organic evolution of extra bits of solution being added on, rounding out the the functionlity available in the framework.

There’s also the change of the lock-in to the X86 CPU set. That’s an active development right now, to go from compiling on X86 for X86 to compiling on X86 for ARM, or other processors. That will open up a much wider range of hardware. And actually rather cheaper hardware. One of the constraints right now is that for the low-power hardware, it tends to be quite expensive. Embedded X86 solutions tend to be reasonably expensive because they’re quite low volume production. Whereas there are other alternatives out there that are a lot more affordable. We’d like to target those. That does give us challenges in terms of the compillation environment. With all of the projects doing cross-compillation, we’re quite sensitive to how the developers of the applications have written their makefiles, and it’s tough to give a completely isolated build environment for some of the applications without the host libraries and other things leaking in. That is going to be a challenge for us to make that switch to a much more clean cross-compillation thing to do. That’s quite a keen thing to do, and I think it will open the project up to a wider userbase, and a wider set of use cases for different applications.

R: It’s always kind of cool for me to see these projects that have been around for ten plus years and are still active. I’m always kind of curious when a project decides that they’re done, and there’s nothing else to do. It’s cool to see that this project is not only active, but still bringing in new developers with fresh ideas.

D: It is cool, and I think that that’s what keeps it alive in some respects. What I’ve found is that the developers - there aren’t that many, we’d like to have more developers, I guess other projects would do - we all seem to have the same kind of ideas, we think the same way about things. As with many of these projects, it’s cool to work with people who have the same kind of ambitions. And we do work well together as a team. We’re quite complimentary in how we focus on different areas, we take responsibility in different areas, and then support each other in other areas.

It almost feels like there have been a number of generations of the LEAF project, handing over from one generation to the next as new developers come on board with new ideas, and the ability to spend quite a lot of time in some cases. Some of the guys devote quite a lot of time to developing the project. There’s a wider community that can benefit from their involvement and investment, and their work.

R: You mentioned that there’s always room for developers. What areas of the project are itching for that new blood?

D: There’s the things that I’ve got on my list:

I think projects always tend to struggle with documentation. That’s certainly one thing that I’ve been trying to contribute.

I’m not really a deep development person. I’ve done software development for about 25 years, or thereabouts. I don’t claim that I’m the world’s best software developer. Because of things I do in my real job, and the things that I do for myself … I’m using a new bit of technology, or a new system, I do tell myself to write down documentation for my own benefit, so that I don’t forget the next time, so I can reinstall something, or understand why I chose to configure things the way that I did. It’s quite a small step for me then to contribute that to the wider community, and write it for a wider audience. So I’ve done some work on the documentation, bringing it up to date for the new version 4 of the project.

We used to use the DocBook technology for our documentation. It’s good technology, but I think it puts quite a few people off from contributing to it. It wasn’t that easy to do a simple change. You had to change a file, and them make sure that it’s complient with the schema and that kind of thing.

We took a fairly bold step, which I instigated, to move to a wiki-based documentation platform, which makes it easier for people to contribute to, and easy to make minor changes to. I think that has proved quite valuable in terms of … I make a minor change if I spot a typo or some slight error I’ll go fix that, as do the other developers as well.

There is quite a lot of documentation. There are quite a lot of undocumented features. There’s quite a lot of packages without any documentation. And I moved across some of the older documentation without doing much in the way of validation of that or improvement of that.

So that’s one area where we can always use new people.

The other thing I’d say is testing. That’s one of our weakness. We don’t have a full test harness. We can do some fairly major surgery to the kernel, or other parts of the distribution, and we don’t have an easy way of checking that it still works for all of the wide range of functionality that we have. I’d be delighted if someone contribute something something more around a formal test harness, or some sort of regression test scripts. Either a very small contribution there, or a bigger contribution, would be pretty neat.

Other things, I’d say, which are open to contribution from other people, is that we were constrained by using the 2.4 kernel for a while. In moving to the 2.6 kernel we’ve had some of the brakes removed in terms of updates of some of the application packages. I’m aware that we haven’t actually gone around all of the packages and done the updates. Right now we are distributing some pretty old upstream application versions. It would be nice for someone to go through and just check on those, which ones are out of date, which ones could be updated.

And then the other thing that we are working on at the moment, that is maybe another top priority, is that there is a web interface for administration of a LEAF system which does give quite a good view of a running system in terms of status. It’s not fully featured in terms of administration updates. I tend to use a command line - I’ll ssh into a box and use the command line menus that we have for administration, as do many of the developers. In terms of entry point for new users, I know that the command line world does tend to put people off, and a lot of the users tend to rely on the web interface. We can always improve on that. I wouldn’t claim that it’s a very advanced web interface. It’s designed for low-power devices, so it’s not that clever in terms of the technology on the back-end. But I know some other projects have got something more flashy on the front end. So there’s some options there for lowering the bar for new users coming on board, because right now it’s not that friendly for a new user. The documentation is helping out in some respects on that, but there’s always more we can do to try and make it real easy for a new user to come on board and get up to speed quickly.

The other core developers … we’re all over the place. This is very much a global project. It’s not the case of there being a small team that has worked together. We’ve all come to LEAF and found LEAF as a good cause to contribute to. We have core developers in Germany and other parts of Europe. Some in the US. I’m based in England. It’s quite good to have people coming from different countries, different cultures, and contributing to the same goal.

The other thing I would say is that I have a day job. I’m not doing this as a day job. I have a day job working in IT. I have a bit of a history in software development. I’m not a developer any more.

One of the reasons I do contribute some time to this project is that it keeps me grounded. These days I’m specifying systems, working with other people, getting teams to do work on my behalf. I’m getting to be the more senior person in my day job. But it’s always good to know where the technology’s at, what’s practical in terms of availability or performance or reliability of solution. Certainly I’ve found that with Linux, it’s a solid platform. I think the industry has now woken up to that. For a while it was seen as a flaky, hobby kind of project, and it’s not the case really. And with LEAF I find that it’s a very stable platform.

Being a developer I do tend to rebuild to new versions pretty frequently, and reboot more often than others would do, but I know that a lot of users have had LEAF running for literally years on end without a reboot. It’s a pretty solid platform. And pretty secure. You can cut it down and be a very limited set of installed files, which therefore makes it quite secure, which is obviously great for a network based security focused installation.

I must thank one of my colleagues based in Germany who felt his English wasn’t good enough to actually speak up on this call. To be honest he does a lot more work on LEAF than I do and he gave me some very useful notes for this session, so I’m plagiarizing some of his comments, and using some of mine as well.

R: Thank you so much for your time.

D: Thanks, Rich, no problem at all. Good speaking with you.

Categories: Open Source

Introducing the SourceForge Open Source Mirror Directory

Tue, 01/03/2012 - 17:15


SourceForge is proud to announce a new neighborhood on our site - the Open Source Mirror Directory. This is an extension to our existing software directory, where we’ll be mirroring projects that are not hosted on SourceForge.

Why are we doing this?

We want the SourceForge software directory to be as useful as possible. When you come here to search for a piece of software, we want you to be able to find it. And if that software isn’t hosted on SourceForge, we still want you to be able to find it. Millions of people use SourceForge every day to search for Open Source software, and we want to give them the best experience possible, even if the best answer to their search is a project hosted elsewhere.

By mirroring these projects here, we come a step closer to that reality. And, in the process, we do those projects a small favor in return, providing another way to get to their website, and being part of their software distribution mirroring network. We’re putting your software in front of more than 40 million additional potential users a month.

Yes, there are a few other places that list free software products, but a number of them offer downloads that include unwanted addons like browser toolbars, install wrappers, and various other malware. This, in turn, undermines the trust and openness that should be at the core of free software, and that hurts everyone that cares about Open Source. We want to provide a place where you can trust that you’re only getting the exact product that was provided by the original packager.

SourceForge has always been about promoting Open Source, whether those projects are developed at SourceForge or elsewhere. Obviously, we prefer that projects are hosted on SourceForge, but mostly we love Open Source, and want to be part of promoting it in whatever ways we can.

What are we doing?

Starting immediately, we’re adding non-Sourceforge Open Source software projects to our software directory. This will include a description of the product, links to their official website, and a mirror of their software releases. We’ll be monitoring these projects so that we always have the latest releases available. You can see the complete current list of what we’re mirroring at https://sourceforge.net/mirror/projects/All/.

We’re starting slowly, adding projects from a number of different sources, and seeing what the impact is on our hosting infrastructure. So if your favorite project isn’t represented here yet, please be patient, we’re getting there.

You’ll be easily able to identify that a project is a mirror, rather than a SourceForge project, both by the URL, which will look like https://sourceforge.net/projects/hedgewars.mirror/, and by the the presence of the SourceForge Open Source Mirror Directory logo that appears in the top right corner of the page.

hedgewarsmirror

We want to hear from you.

If you have an Open Source project outside of SourceForge, we’d like to hear from you. If you want your project mirrored on our site, or if you don’t want your project mirrored on our site, please let us know. Or there’s any other service that we can extend to your project community, we’d like to hear that, too. Contact us at communityteam@sourceforge.net and we’ll be sure the message gets to the right people.

Categories: Open Source

Project Of The Month, January 2012 - HyperSQL Database Engine

Tue, 01/03/2012 - 15:52

We’re delighted to announce first Project Of The Month for 2012, HyperSQL Database Engine.

(See previous Project Of The Month winners)

The Project Of The Month is selected from the projects that grew the fastest in the previous month, based on the activity of the project community, on mailing lists and ticket trackers, and the commit and release activity of the project. In coming months (starting with February) we’re going to involve you, the SourceForge community, more in this process, by having a Twitter based vote on the POTM for February. Details coming soon.

HyperSQL DB is a database engine written in Java that can be embedded in Java applications, or it can be run as a standalone and connected to over JDBC. It also contains some tools for making JDBC connections to other databases.

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: Today I’m speaking with Fred Toussi and Blaine Simpson. Hello?


Blaine: Hi Rich.

Fred: Hello Rich.

R: So, without further introduction, here’s my conversation with the two lead developers of this project.

Well, let’s jump right in with the first question. How long have you been doing this project?

F: Eleven years.

R: And have the two of you been involved that whole time?

F: I’ve been involved since the beginning. Blaine joined after about a year.

B: Long timers.

R: How big is the overall developer community that you see patches and commits from?

F: At the moment there are three of us. In the past, there have been others. People join in, do some work, finish that work …

R: How does this database compare to other databases that people might be more familiary with, like PostgreSQL?

F: In general, the two differences: Our database can use memory very well …

R: So it’s really fast …

F: It can run completely in memory without any files.

B: And on portable devices too.

F: Exactly. Another aspect - our database compares very well with those well-known ones for small and medium-sized data, in terms of speed and so on. Now, the definition of small and medium is just going up as hardware gets faster, and more disk space, etc. So at the moment, several hundred megabytes I would say, it’s extremely fast, and compares extremely well to Postgres and MySQL.

B: And there are huge advantages to all of the java databases to integrate with Java applications. Not just HyperSQL, but JavaDB and Derby - those are a lot more efficient, and easier to integrate with Java applications.

R: So you sort of embed this in with your Java application? Is that how this works?

B: You can, and it’s very easy to either embed it in an application, or use a JDBC driver. All the popular databases have a JDBC driver. Even if it’s a completely C database, if it’s a popular database, it probably has a JDBC driver. It’s just a tiny jar file. So it’s very easy for any user, either a developer or someone just running a client, like running a spreadsheet, for them to get the JDBC driver. So we have a JDBC driver. They just get a jar, and they can use it with their Java app.

R: If somebody was looking to get involved in your project, what sort of openings do you have for someone has the right skill set.

F: Every area is open to development. More compatibility with other databases - commercial databases, so that people can port applications more easily. There are lots and lots of possibilities. But it takes a lot of knowledge of databases and SQL to participate in some of the areas of the database. But if there are some other areas where they probably need knowledge of some particular API. And a good knowldge of Java, of course. But there are openings and in the past we have had a few other core developers who have contributed to the project.

R: If there’s something you’re particularly passionate about on this project, what would that be?

F: Quality. Resilliance. Basically quality explains it all. Resilliance means it’s on 24/7. Nothing goes down, and it’s reliable.

B: Fred’s a tireless worker. If you look through the forum history, we’re on top of every problem. And as Fred says, he works very hard to keep everything reliable. He works on this full time, constantly. It’s a very solid product. We put a lot of effort in to make it very standalone. Most Java products that people want to integrate or embed a database into their product - it’s a lot of work, and a hassle dealing with all the interdependencies with other products. For example, if you just want to use a database for your Java product, so you pull down the jar for that database, usually you have to deal with all these interdependencies. It depends on these 12 libraries. They depend on another 100 libraries. And you have to … it’s a constant chore to make sure you’re at the right version. You don’t have that issue with hsqldb. It’s a single stand-alone jar. We don’t depend on anything else.

It means that some things are extra work. For example, for a tool, I have to generate some HTML. We have to do that from scratch, because we don’t want to depend on anything else. We don’t want to make that an extra chore for people who use the product.

F: I suggest Blaine describe the tool he’s working on, because it is a significant tool in its own right. It can be used with all other databases. So, Blaine, could you go ahead and describe that.

B: My main area of concentration with HyperSQL is the tool SQLTool, and it’s a generic JDBC client. JDBC is just accessing SQL databases over the Java protocol, JDBC. This tool can connect to any database that has a JDBC driver. Like I said a few minutes ago, all popular databases have a JDBC driver, so you can use this tool, SQLTool, to connect to and work with pretty much any relational database. It’s a command-line tool, so that means that if you’re looking for something graphical with buttons and pictures and graphical tables, this isn’t what you want. It’s for people who want to interactively work on the command line - type in SQL. And also for automation.

In that respect there are other tools that do the same thing like Derby’s IQL and Oracle’s SQL plus. It started as comparable to those tools, but it’s a lot more powerful for two reasons.

For one, those tools can’t work with just any JDBC database. They work with the database that they come with. SQLTool can work with any. You can write scripts and you can use the tool, the same exact commands, to work with any database.

The second advantage is that a lot of work has gone in to make it very stable and suitable for automation purposes. You can go to the command line, whether you’re on MacOS or Windows, or Unix, and right on the command line you can give a single command line with SQL in it. You don’t need to enter the program. You just give it on the command line. People who work with automation and scripting can recognize right away that that’s extremely useful.

A lot of work has gone in so that it gives a meaningful error status. It always ensures that it will return a success status if everything works. The developer has the control to use the default, which is if an error occurs just exit right away, depending on whether it’s interactive or not. But the error handling is intuitive. If you run it interactively and an error occurs, it tells you on the screen but it won’t exit. If you execute an SQL script with it, it will exit by default, and you’ll get an exit status. So it’s very easy to integrate that, put it in scripts or cron jobs, or autosys, or Windows scheduling systems, and send error notification through email or logging systems. Very suitable for automation tasks.

R: This sounds like it’s almost a full-time job. How much time do you all put into this project?

F: I’m working full time. Blaine has worked full time when he’s between assignments. He works part-time. There’s a lot of work that he has to do, to do with maintaining the code repository - version control - to do with releases - he has set up releases on Maven, on Sourceforge, etc, and with the documentation, with basic generation of documentation, because we use Docbook markup. There is a lot of logistics involved in releasing the new versions of the product, and Blaine has taken care of that as well as doing his SQLTools, and in the past he has also contributed code to the engine.

R: So you have commercial clients.

F: Yes, we have.

B: My time investment has been very sporadic, so even though I have been working steadily at regular daytime jobs, there have been several weeks when I have worked 40 hours on Hsqldb. I just finished up one of those marathon runs about a week ago, so there were about three weeks there where I would get back from my day job every day and crunch at hsqldb.

R: I’m curious about something here - this is more of a philosophy question. You have a full-time job here, and you have commercial clients. What is the rationale for making this Open Source as well?

F: Because it was Open Source to start with. The commercial clients like the fact that it’s Open Source. These people contribute financially to the project to keep it going, so they want it to be as it is.

I do also have another product which is not Open Source, but it’s only used by a small percentage of the commercial users. Most of them want the Open Source product, which is good enough for their use.

B: And for the SQLTool portion, that gets a lot more use because it is Open Source. Millions of people can benefit by connecting to commercial like Oracle, and Open Source databases like MySQL, and everything in between. I put a lot of work into the product, so I get a lot satisfaction from reaching a wider audience, being Open Source.

F: We’ve been in computing a long time - all three of us. I developed one of the early WYSISYG word processors in the late 80s and early 90s. And then the platform it was on disappeared. I thought that the next time I did something, it would be completely cross-platform, and Open, and it has a very long shelf-life. That was probably the main motivation.

B: We appreciate the social mechanisms - the forums and mailing lists - on Sourceforge, because for all these years it’s been nice to have that system in the background there working for us. I’ve spent minutes, adding up all the time, administering those communcations systems over the years. It’s nice to have that working so that I can concentrate on the code, and when people bring up problems, I can work on those problems and your communication and help systems take care of themselves.

F: We use the Sourceforge platform for bugs and for communication - the forums. We’ve used them from the beginning, and they are adequate for our needs.

R: Thank you all so much for your time. I really appreciate it.

F: You’re welcome.

B: Thanks very much Rich.

Categories: Open Source

Open Source tools for education

Thu, 12/29/2011 - 18:46

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.)
Categories: Open Source

The Anvil Podcast: Mardao

Fri, 12/23/2011 - 13:24

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.

Categories: Open Source