Feed per SourceForge Community Blog
IT at the University of Cincinnati
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!)
The Anvil Podcast: LEAF
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?
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?
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.
Introducing the SourceForge Open Source Mirror Directory
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.
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.
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.
Project Of The Month, January 2012 - HyperSQL Database Engine
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.
Open Source tools for education
I’ve been asked to speak at the annual technology conference of the Association of Independent Kentucky Colleges and Universities. While this is a huge honor, it’s also rather intimidating. I’ve observed that we, as technology professionals, tend to go into various places and tell experts how to do their jobs better with technology without actually understanding the underlying problem space.
One of the great things about Open Source is that it’s not just a company imposing a technical solution on you from outside, but you’re able to participate in the solution yourself and make changes to the end product. I’ve witnessed this first-hand with Moodle when we used it as our online learning platform at Asbury University, and I was able to make changes to Moodle which then went back into the upstream product.
These are some of our most popular educational tools, ranging from online learning to self-tutoring to educational games. I’d love to hear your take on Open Source educational tools, both from Sourceforge and elsewhere.
- Moodle Moodle 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.
- Schoolsplay Schoolsplay is a collection of educational activities for children.
- 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 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 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 is an application for real-time 3D visualization of space, with a detailed model of the solar system, over 100,000 stars, more than 10,000 galaxies, and an extension mechanism for adding more objects. (I spent way too much time playing with this one.)
The Anvil Podcast: Mardao
I recently spoke with Ola Sandström from the Mardao project and the interview is below.
You can subscribe to this, and future podcasts, in iTunes or elsewhere, at http://feeds.feedburner.com/sourceforge/podcasts, and it’s also listed in the iTunes store.
If the embedded player doesn’t work for you, you can also download the audio in
mp3 and ogg formats.
Rich: I’m speaking with Ola Sandström, and we’re going to talk about the Mardao project.
Could you tell us what this project is, how it works, how it fits together, and how people use this in the real world.
Ola: Mardao is a tool that helps the database developer get the data out of the database into the application or the website, depending on what the app is. Mardao generates the data access objects, so that the developer doesn’t have to worry much about SQL statements, or relations, and so on. And it also saves the developer a lot of time and effort writing boilerplate code.
R: How did you get started with this project? What kind of a problem were you trying to solve?
O: In the first place, we wanted something more effective than similar techniques such as Hibernate. I also had a colleague who had generated similar stuff, but taking a different approach. It was for a specific project that I created the more general tool.
R: Do you have a feel for how large your user community is?
O: I know how many downloads there have been, and I see how many downloads there are when we make each release. That varies between 50 and 100 downloads. Maybe the recurring usage is about ten or fifteen users. Hopefully the number of production systems is about the same.
It’s not a big community, but it is my first Open Source project, so I’m ok with that.
R: The developer community is just you? You’re the only person who works on this? Is that correct?
O: No, there is one more developer - a former colleague - who has focused on one of the implementing techniques. You can use Mardao either for Spring, or you can use in on top of JPA, or on Google App Engine. This former colleague of mine implemented the JPA port.
R: What do you have planned for future versions of the project?
O: The biggest thing right now is to support Android applications. There is a nice SQL Light database on each Android device. It’s a very good fit to generate code for those databases. I think we’ll have a next versions early next year.
I’ve been quite happy hosting at Sourceforge, because I think you get the necessary tools, such as the Wiki and the issue tracker and so on. I certainly would consider starting another project there.
R: If someone wanted to get involved in an Open Source project, and they have some Java skills and database skills, what sort of an opening might there be on your project for such a developer? Is there a need that you have that you might welcome another developer for?
O: They certainly would be very welcome to join and commit. I think that if the user base grows a little bit - if I get more feedback, there would certainly be more areas where we would need to improve and so on. I’m not sure right now what the next big thing to focus on, but I’m sure any developer would come up with ideas if they start using it.
R: Thank you very much.
O: Thank you. Bye.
Podcasting with Open Source
For the last couple of weeks, I’ve been posting podcasts to the Sourceforge blog. (You can subscribe to our podcast HERE or in the iTunes store.)
Almost everything that I do in the process relies on Open Source software developed at Sourceforge, so I wanted to take a moment to thank those projects.
Recording and editing: Audacity
I record with a Blue Snowball with a shock mount, which is a USB mic that I can plug directly into my laptop. If you’re looking for a mic to get started with, I recommend this one. It’s easy to use, and gives excellent sound quality.
Usually I record the calls using Skype and Call Recorder. This is the one piece of non-free software that I use in the process. It’s free, in the sense that I didn’t pay for it, but it is closed-source. While there are alternatives, it’s not always reasonable to expect the person that I’m calling to install and configure new software just so that they can talk with me for ten minutes. Pragmatism has its place.
The editing is all done in Audacity. I’ve long been a big fan of Audacity. I have other recording programs, including some commercial ones, but haven’t yet found anything that beats Audacity for either functionality or ease of use. Some of the commercial apps do more, but so far it hasn’t been anything that I needed to do. Also, their documentation is simply wonderful, including detailed explanations of even simple features. Additionally, there are numerous community-created howto videos showing how to do various tasks.
Until recently, I was using GarageBand for one particular part of the podcast creation process involving merging several different tracks seamlessly, and found a video showing me how to do this in Audacity.
So, I use Audacity to clip out the smalltalk, the um’s and ah’s, and try to edit the conversation down to the essentials, so that you’re not forced to listen to a lot of extras. I know that I have trouble finding the time to listen to the few podcasts I follow, and if it’s much more than 10 minutes, I tend to move on. I try to respect your time in the same way.
Audacity exports in MP3 and Ogg Vorbis formats, which many commercial tools don’t do.
When necessary, I use Kid3 to update the ID3 tags on the MP3 and Ogg files. This is a final sanity check to make sure that the files we push out all have consistent tagging, so that they’ll show up in the same place in your various audio programs. Kid3 is one of those delightful pieces of software that just works. No unnecessary extras. It’s small and fast and efficient, and gets the job done.
Yes, I could just use command-line scp, and often I do. But Filezilla integrates well into my workflow, so I use it sometimes to copy these resulting audio files up to the staging area so that the folks I’ve been interviewing can review the recording before I push it out to the blog. Filezilla is another piece of software that just works. It is intuitive and doesn’t require a great deal of setup or explanation in order to get it to do what you need.
That’s all
Sure, it’s not a big toolchain for this task. And I continue to look for ways that I can replace non-free components of it with Open Source software. I have, for example, come across a few references to projects that were presumably Open Source implementations of the Skype protocol. Unfortunately, they all seem to be abandoned projects, which was sad. However, as I said above, pragmatism has its place, and one has to get the job done.
The Anvil Podcast: XOOPS
Rich: On today’s Sourceforge podcast, I’m speaking with Michael Beck, from the XOOPS project. XOOPS is a php content management system. You can use it to create and manage your website. It has a sophisticated admin interface, and it is over a decade old. This is a solid and mature project. Michael has been with the project for quite some time, and he’s going to talk with me about the project, the community, and how you can get involved.
Thanks for listening.
You can subscribe to this, and future podcasts, in iTunes or elsewhere, at http://feeds.feedburner.com/sourceforge/podcasts, and it’s also listed in the iTunes store.
If the embedded player doesn’t work for you, you can download the audio in
mp3 and ogg formats.
Michael: Hi, Rich, how are you?
R: Doing great. Thanks for talking with me today.
Tell me something about XOOPS, and how you got started with it, and what sort of problem space the project addresses.
M: OK. XOOPS, this year, celebrates its ten year anniversary, so it’s been around a long time. In Internet age, it’s kind of like eight centuries. It started ten years ago as a content management system - helping people create websites with dynamic content. It’s based on PHP and MySQL. It’s very similar to other content management systems like Joomla, like Drupal, or Wordpress.
R: How many people do you have working on developing this? I see seven names in the admin list, but how large is the development community?
M: As any Open Source project, developers are coming and going. It depends on their work load and how much time they have. We have actively probably around 20 to 40 people who contribute currently. Because XOOPS is very modular, there is one group that is focusing strictly on the core, and then anybody else can contribute on modules, or on themes. There are some designers who are doing work on themes. And anybody can work and create new modules. The typical style, could be a calendar, can be news, a blog, typical daily applications which users can use on their website.
R: This runs on PHP. Does it require a particular version of PHP? Does it run on the latest?
M: It runs on the latest, but the minimum required is PHP 5.2. The next release is going to be completely compatible with 5.3, and we also tested it on 5.4 RC, and it is strict compliant, and it should not generate any errors from that perspective.
R: How about yourself? How long have you been involved with the project?
M: Well, I’ve been a user, starting in 2004. In 2007 I got involved in the management side of XOOPS. That required a little more heavy involvement.
R: What part of the system do you work on? You work on the core, or modules?
M: Most of my time I am involved in marketing and community involvement. I’m involved in modules, but the main responsibility I have is marketing and community support.
R: Tell me about some of the sites that are using your product.
M: One of the things we’re really proud of is that XOOPS is very international, and we have contributors from all of the world. Some of the original developers were from Japan, China, Germany and the US. So that set the stage for a very international Open Source project. That’s reflected in the websites. We have websites which have won different awards in China, Taiwan, in Japan, and Argentina and even Libya. That’s creates a very international community.
Some of the sites that have used XOOPS very successfully, for example: The government of the state of Paraná in Brazil - they have probably 200 or 300 websites created using XOOPS; Computer World in Denmark is using XOOPS; PC Magazine in Greece is using XOOPS. There are a lot of different newspapers and government agencies which are using it.
We have very successful websites in Taiwan where the whole county school system is using XOOPS.
Anybody who needs a content management system, XOOPS is a very good solution for that. And you can develop very specialized applications on top of XOOPS like the school system in Taiwan proved.
R: How much time do you put into this project? Is it evenings and weekends, or is it a substantial part of your time?
M: Pretty much weekends and evenings. This is something we love to do - the whole group. Of course some people try to make money with it, and hopefully we’ll get more successful at that. We try to address that by putting better a marketing message behind it and trying to market us better so that people get jobs with it. Of course, the dream for us is to make XOOPS enabling people to make a living out of XOOPS. If we can succeed with that, that will make us very happy. There’s nothing better than people who love working with XOOPS and being paid for that, and not worry about paying for rent or other bills, and saying, I have a passion for XOOPS, I spend all my time on that, and it provides my living. So that’s something we’re looking forward to.
R: I personally feel very lucky that I’ve been able to find a job where I do Open Source and get paid for it. It seems almost unfair, almost.
M: Well, I don’t say unfair. I think that’s what everybody strives for, and if you’re lucky enough that’s what you’re going to be doing. It’s one of the highest levels of happiness to do what you have a passion for and not worry about expenses because you’re getting paid for that.
R: So, this project … I’ve spoken with a number of projects in the last few days, and one of the things that’s unique about your project - your developer community spans multiple continents and time zones. How do you manage project communication without conflict when someone is 18 or 20 time zones away.
M: I would say it’s just time management. Thankfully, with the Internet, we can communicate via email, so there’s really no need to be in person to have conversations. And because it’s a very international project we cannot expect that everybody has perfect English. Therefore some people don’t feel comportable being on Skype or online discussions, because they would like to use a translator to translate the content of the message they receive, and then respond in their native tongue and translate it into English. Skype or online conversations are very hard, so when we have email conversation it works the best for us. Some of the core members try, once a month, to have a conversation on Microsoft Messenger or Google Talk so that we can have a conversation about the project.
R: What is planned for upcoming versions?
M: The next version is going to be 2.6, and is going to be a totally refactored core. The aim we have is … in previous versions our focus was making sure that the core was compatible with all the versions of the modules. As a result of that we had a lot of code which is legacy code. 2.6 is a major cleanup, removing all old code, all PHP 4 compatible code, and making it totally PHP 5 oriented, so we can focus on 5.2, 5.3, and 5.4, so that’s going to be the major thing - making sure that we take advantage of the latest developments in the PHP world, that we optimize the code, that we test it with MySQL and make sure that we have the minimum number of queries. An updated, top-notch content management system.
R: If I’m looking to get involved in an Open Source project, where can I get involved in your project, and what sort of skills would I need.
M: As with any other Open Source project, you can get engaged with anything which you like to do.
Starting with development: If you’re really really good, you can join the core team. If you just want to play around, you can start developing modules. If you’re a designer, you can design themes. We’re always looking for those. If you’re a user, you can help us with documentation for other users. For example you’re using XOOPS for your website, and you’re becoming an expert in using certain modules, and there’s no documentation for those modules, or the documentation is outdated, then you can say, I’m going to share some of my experiences, I’ve got some really cool shortcuts on how to make it work better, faster, and more user friendly, and I want to share this with the community.
One thing about us is that our community is very friendly, and regardless of what part of the world you come from we embrace anybody. We don’t care how good your English is, we welcome everybody.
We also have local support websites in local languages. China, Taiwan, Russia, France, Germany, Netherlands, Spain. So all the major languages are covered. If somebody doesn’t feel comfortable in English, they are welcome to contribute locally. Our moderators and leaders in those local communities share the experiences of their local communities into the larger, worldwide community, so we try to funnel some of the good ideas which could be created in Germany, France, or some other local support site, and share this on our main International site.
As any other Open Source project, we live and die with contributors, so once again we hope that people will check it out, will give it a try. Hopefully they will like it, and hopefully they will like our community and give that a try. Of course we are always open to suggestions, feedback, if anybody has any questions please contact us on XOOPS.org, and we’ll be glad to help you with setup of XOOPS and making sure it works correctly, and then hopefully we can collaborate together.
R: Thank you very much.
M: Absolutely.
Project Summary Page contest - The winners
The Project Summary Page contest was announced the contest at the end of November and last week we pawed back through the database to determine which projects had taken us up on it. The list was prodigious, and we ended up selecting three winners. (The winners were selected by a few lines of Perl.) The admins on these projects each won a $50 gift certificate to ThinkGeek.
The winners are:
- JFire - Free ERP & Trading Platform
JFire is a trading platform including ERP, CRM, accounting (full double-entry) and cross-organisation-trading written in Java based on J2EE, JDO and the Eclipse RCP. See http://www.jfire.net for more information.
- facetracknoir
Headtracking program that uses the SM FaceAPI. Movements of the head are registered by a simple web cam: no additional hardware is required! Supports Free-track, FlightGear, PPJoy and TrackIR, SimConnect and FSUIPC protocols. The new V160 contains the latest faceAPI, which supports the latest CPU’s. A new user-interface was created and a mouse-look protocol added.
- jNetMap
jNetMap is a graphical network monitoring and documentation tool. It will ping all registered devices every x minutes, updating the status according to the result of the ping.
25 fastest-growing projects
In the December mailing, I listed the 25 fastest-growing projects. However, I neglected to say what those projects actually were. I listed the names and linked to them, and that was it. Several people wrote to complain about this omission. I’ll be sure not to repeat it in months to come. Meanwhile, here’s a more useful list. These are the 25 projects that grew the fastest in November, where “growth” is defined as downloads.
I acknowledge that this is not the most accurate way to measure project growth. Other factors, such as commits, number of participants on the mailing lists, number of tickets opened and closed, might more accurately reflect actual project growth. Downloads has the advantage of being easier to measure. We are, however, working on various ways to measure project health objectively, and hope to have something to show for it early next year.
Meanwhile, here’s the list:
- Orwell Dev-C++
A maintained verison of Dev-C++ which features an updated MinGW compiler and updated code.
- The OpenGL Extension Wrangler Library
The OpenGL Extension Wrangler Library is a simple tool that helps C/C++ developers initialize extensions and write portable applications. GLEW currently supports a variety of operating systems, including Windows, Linux, Darwin, Irix, and Solaris.
- PhotoFilmStrip
PhotoFilmStrip creates movies out of your pictures in just 3 steps. First select your photos, customize the motion path and render the video. There are several output possibilities for VCD, SVCD, DVD up to FULL-HD. Creates animated slideshows.
- eSpeak: speech synthesis
Text to Speech engine for English and many other languages. Compact size with clear but artificial pronunciation. Available as a command-line program with many options, a shared library for Linux, and a Windows SAPI5 version.
- OSClass for classifieds
Open Source Classifieds (OSClass) is for classifieds what WordPress is for publishing. It’s a free and open script to create your advertisement or listings site. Best features: Plugins, Themes, Multi-language, Captcha, Dashboard, SEO Friendly
- The Chakra Project
Chakra GNU/LInux is a free, user-friendly and extremely powerful liveCD and distribution using the award winning KDE SC and Plasma Desktop with a bundle system to use GTK-apps.
- XAMPPadmin
XAMPPadmin is software that makes xampp adminstration much easier and requires less typing than normal xampp adminstrative commands.
- NbuExplorer
Nokia NBU, NBF, NFB, NFC and ARC backup file parser, extractor and viewer. It can help you to check content of backup or extract files from it. Requires MS .Net Framework 2
- Pinguy OS
Pinguy OS an out-of-the-box working operating system for everyone, not just geeks.
- nsnam
Ns is a discrete event simulator targeted at networking research. Ns provides substantial support for simulation of TCP, routing, and multicast protocols over wired and wireless (local and satellite) networks.
- net-snmp
net-snmp provides tools and libraries relating to the Simple Network Management Protocol including: An extensible agent, An SNMP library, tools to request or set information from SNMP agents, tools to generate and handle SNMP traps, etc.
- Waterfox
The fastest 64-Bit variant of Firefox!
- simutrans
Simutrans is a transport simulation games. Planes, ships, trains, trams, trucks, busses, or monorails are at your disposal. But factories have contracts and passengers will only travel to their own destinations. Many graphic sets (paks) are available
- Caesium - Image Compressor
Caesium reduces the size of your picture up to 90%, preserving the original visual quality. Allows you to save a lot of space and easily upload your pictures on the web in a moment. The software is user-friendly with a simple and clear interface.
- HyperSQL Database Engine (HSQLDB)
HSQLDB is a relational database engine written in Java, with a JDBC driver, conforming to ANSI SQL:2008. A small, fast, multithreaded engine and server with memory and disk tables, LOBs, transaction isolation, multiversion concurrency and ACID.
- ListenArabic.com Music Download MP3
ListenArabic Music Download MP3 (beta) allows you to download free arabic music mp3 songs and works seamlessly with ListenArabic.com.
- iReport-Designer for JasperReports
iReport is the most popular visual designer tool for JasperReports Library and JasperReports Server (Business Intelligence). Supports all the most important output formats and virtually any data source.
- GO Contact Sync Mod
GO Contact Sync Mod synchronizes your Microsoft Outlook contacts with your Google Mail address book, including pictures, categories and notes. Since version 3.5.6 it also syncs your Outlook Notes on demand to Google Documents. This Mod fork adds many enhancements and bug fixes to the obviously dead project ‘Go Contact Sync’.
- Minecraft X-Ray
Minecraft X-Ray is a program whose primary purpose is to aid in finding valuable ores and resources inside a Minecraft world. This branch is based on code written by plusminus from the Minecraft forums.
- Weka—Machine Learning Software in Java
Weka is a collection of machine learning algorithms for solving real-world data mining problems. It is written in Java and runs on almost any platform. The algorithms can either be applied directly to a dataset or called from your own Java code.
- Advanced Onion Router
Advanced Onion Router is a client for OR network and is intended to be an improved alternative for Tor+Vidalia+Privoxy bundle for Windows users. It is able to “force” a program and its plugins to use the Tor proxy regardless of its configured proxy
- Process Hacker
Process Hacker is a free and open source process viewer and memory editor with unique features such as powerful process termination. It can show services, processes and their threads, modules, handles and memory regions.
- Parted Magic
The Parted Magic OS employs core programs of GParted and Parted to handle partitioning tasks with ease, while featuring other useful programs.
- 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. http://moodle.org/
Yes, you’re right, that’s only 24. Turns out that one of the fastest growing projects was someone who saw Sourceforge as free hosting for their files. Fortunately, our ever-diligent sysops noticed this violation of our terms of service, and put a stop to it.
The Anvil Podcast: Arianne
In our next podcast, I spoke with Katie Russell from the Arianne project. Arianne is a long-running project which develops a game server and various multiplayer games. they recently released a new version of the popular Stendhal game, and have even more exciting things planned for the future.
Incidentally, the music used in the intro is from the Stendhal game, and was composed by Storyteller.
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, you can download the audio here in mp3, or here in ogg format.
Rich: Hello, and welcome back to the Sourceforge podcast. Thanks for listening. My name is Rich Bowen and I am the Community Growth Hacker for Sourceforge, which means that I try to help Sourceforge projects grow and promote themselves. Today I’m speaking with Katie Russell, who is with the Arianne project on Sourceforge. Thanks for speaking with us today. Could you tell me a little bit about what this project is, and how it got started.
Katie: Hi there. Thanks for giving me the opportunity to talk. The Arianne project is a bit of an umbrella project. It’s a game framework at its core, for users to create online multiplayer games. As test cases for the game framework, over the years we’ve developed new games to try out new features, and one of the most popular ones of those is Stendhal, which is a RPG.
It started back in 1999. There was a post on a forum asking for “what I’d like to see in an RPG,” and it was in the Linux game forum. The founder saw the posting, and he founded the Arianne project to try to fulfil the needs of this post.
R: How many games have been developed on this platform? Is it just the ones that you’ve done, or are there others?
K: There are other games, by developers who have been looking for a framework to handle some of the internal aspects that they didn’t really want to have to worry about. For example, there’s a wrestling card game that’s been developed using Marauroa. Marauroa is the name of our game server behind Arianne. There’s also been forks of the game Stendhal that we’ve created as well. So I think that over the eleven or so years that the project has been running the Arianne team has created maybe a dozen games or more, and then I know of perhaps a similar number of games that have used the same framework.
It’s always interesting to discover new ones I haven’t come across before.
R: Are the games that you’re aware of listed on the website?
K: The Arianne website is linked to Sourceforge. It just lists the ones we’ve developed. We’re trying to keep it to the projects where we know of all the licensing background. Which is why we haven’t listed them. I think that’s something we could improve on. Also checking all the references to our Stendhal game as well. We try to keep track of all the places on the Internet where you can download the client, which might even be outdated, because people upload really outdated versions. We’re trying to keep track of all these websites that have indexed us, just so that we can keep them up to date as well. It’s an issue for us because we release so often with our games, so quite quickly the development cycle means that older versions can get out of date and obviously we prefer for people to be using the most up to date version.
R: How large is your development team>
K: It grows and shrinks. Perhaps 15 or 20. The core team is perhaps 4 or 5 developers.
R: How do people typically get involved in the project? Is it submitting patches, or they come to you with full games?
K: It’s really varied. Because it’s an umbrella project, and there’s so many different aspects to both the frame work and the various games, there’s a lot of ways people can get involved. So, for example, you may be a user, and you may have been playing Stendhal, the RPG, because you wanted a free game that runs on Linux, as well as Windows. You may not even have realized that it’s Open Source, but when you start to see the regular releases, and read our updates, and you see that you can get involved with what you can do, which may be a piece of art work you want to improve, or add some music to the game, or improve a description even, then they contact the development team from within the game. They find us, and tell us what they want to do. We try to mold those contributions into patches where possible. Or it may be a software developer that wants to use the engine, Marauroa, and he’s got an improvement that he wants to use on his version of the game. He might want, for example, another handling of the zones. And rather than just implement that in his version, he submits that back to us as a patch. There’s also lots of variation of that in between. But mainly the communication goes through our instant relay chat (IRC) channel. We try to take in the patches and analyze them quite promptly, and release often, so that any contributions that are made get seen really quickly by the person that made the contribution, because we’ve found that that helps keep people interested in the project, to see their contributions go in, and on the live version so quickly.
R: What do you have planned for upcoming versions.
K: For the engine, Marauroa … I’ll just explain a little bit about what that is, if that’s ok?
R: Yes, please.
K: The game framework is handling the communication between the game clients, which are running on the user’s own computer, and the game server, which is running on some host. Also, it’s taking care of storing game information to the database, because it’s an online multiplayer game that you want to have running all the time, or closed down, but you expect that when a character returns to the game, he can retrieve his progreess from where he was. So it takes care of client-server communication and database persistence, and defines all of the objects and rules and world in a bland way that you can then extend and make rich for your own game. It doesn’t know about any of the rules. It’s completely agnostic to the game.
At the moment, the clients may be written in Java, and there’s some limited support for Python. A new development is that there will be some support for HTML5 clients.
R: Cool!
K: Yeah! It is cool. They’ll actually be able to run on that same game server, and someone using an HTML5 client will be able to interact with someone using a traditional client. The main work for that has already been done, but it hasn’t been released yet, because we do try to keep the game framework really quite stable, so it needs some more testing. But the motivation for that is that we want something that works without a local Java installation and on mobile devices.
One of our development philosopies is to break big projects down into small steps, partly because we want to be able to release often, but also because big projects can get easily abandoned, especially when it’s a project that you’re working on in your spare time. But if you do break it down into small chunks, then I think it becomes a lot more manageable. Perhaps the big vision is, wow, wouldn’t it be great to be able to run our Stendhal game in a browser, with social integration to other websites like Facebook and so on. The first step of that was to be able to log into Marauroa games like Stendhal using OpenID, so you could use your Google account. We’ve integrated Tweeting from Stendhal and it’s based on events, so we’re connecting to their API. Those were the first steps, but the bigger step is getting all those clients working and interacting on the same server.
R: That’s really cool.
K: I hope so. I’d love to grow the user base for our games and make the game framework more attractive for other people to start using as well, and I think making the game able to run on more devices like mobile devices would be a really good step in that direction.
R: Thanks for speaking with me Katie.
K: You’re more than welcome. Take care.
R: Bye.
Support your local user groups
Last night I drove up to Cincinnati to the OINK PUG annual holiday get-together at the Brazenhead Irish Pub. OINK PUG stands for Ohio, Indiana, Northern Kentucky PHP User Group. While I’m mostly a Perl guy, I’ve spent quite a bit of time in the PHP world too, and there were several people that were going to be there that I wanted to talk to.
I live in Central Kentucky, and the meeting was way up on the north side of Cincinnati, so it was quite a drive. While I drove I was thinking back to the days when there was a Perl and PHP user group right here in Lexington, and I was regularly in attendance. The Perl User Group (aka Lexington.pm) fizzled out just over ten years ago due to insufficient interest, and, in retrospect, the fact that we were Doing It Wrong.
The Internet is great at disseminating technical information, but it’s not so great at personal interaction. For this reason, I personally prefer local user groups that are light on technical information, and heavy on personal interaction. That is, user groups that have fewer technical lectures and more beer tend to last longer. (Note: I’m certainly not saying that this is the only way to do things, but it seems to be, in my experience, what endures.) User groups built around technical presentations need to either be in areas where there’s an enormous wealth of technical companies (viz: Not central Kentucky), or they tend to degenerate over time into the same 2 or 3 people giving talks about stuff you could have learned on line.
Last night’s “meeting” was a great time of talking with old friends and making new ones, as well as a fascinating conversation with a developer from one of our Sourceforge projects, XOOPS. (I’ll be posting a podcast with him some time in the next two weeks.)
Writing code all day can be a very lonely occupation, particularly for those of us who are lucky enough to work from home. Getting out and rubbing shoulders with your fellow-geek is a great way to reconnect, swap ideas, and remind ourselves that we are social beings.
I strongly encourage you to find your local user groups, and attend once in a while. It can be hard to find one that has a schedule that works with your life, but it’s worth the effort.
The Anvil Podcast: Programming Without Coding Technology
In the first of what I hope are many project spotlights, I recorded an interview with Mahmoud Fayed, the lead developer of the Programming Without Coding Technology project. Here’s the audio, as well as a transcript of that conversation.
You can subscribe to this, and future podcasts, in iTunes or elsewhere, at http://feeds.feedburner.com/sourceforge/podcasts
If the embedded player doesn’t work, you can download the audio here in mp3, or here in ogg format.
Today I spoke with Mahmoud Fayed, of the Programming Without Coding Technology project, which is a visual programming languages framework. Mahmoud is the lead developer on that project, and I spoke with him about the origins and purpose of this project, and how one might get involved. So, without further introduction, here’s my conversation with Mahmoud.
Rich: First of all, thank you for speaking with me.
Mahmoud: Thank you very much. I’m happy to talk with you about the project. Giving the chance to developers to promote their project is a very good idea. Thank you.
R: Tell me a little about what your project does and how you got started.
M: The idea of my project is to present programming to every computer users, whether they are beginners or professionals. Beginners means that the tools of programming must be accessible - must be easy. So I decided to take coding out of programming.
And presenting programming to professional developers requires a tool that is productive and unlimited and can be extended.
With respect to how I started my project, six years ago I decided to achieve my goal, so I started with research, and introducing new ideas. Then I tested my ideas through implementation. After implementing ideas I can decide if it is a good idea or not. Most of my ideas were perfect, and the prototype of the project was ready to use, and I had achieved my first goal.
R: What other products in the market are comparable to what you are doing?
M: The domain of the problem is called “Visual Programming Languages.” There are many projects in this domain, but most of these languages are domain-specific languages that are used in education. For example, there is Alice and Scratch.
But with respect to general-purpose visual programming languages, there are few of them. There is Limnor and Tersus. But most of these languages use the drag-and-drop method. I am presenting a new method that can replace text-based languages as a practical option so we can forget coding in text languages forever.
R: Can you give me an example of how someone is using your product to create something.
M: I have many users. Some of them are using my software to create presentations and education software. Many users are using the software for business applications. At my side I have used the software to create a new programming language as a proof that the technology is productive and powerful and unlimited. This language is called the Supernova programming language, and it is a free, Open Source project hosted on Sourceforge. So the software can be used in many different applications.
R: If someone wanted to get involved in your project, what types of openings are there for additional developers.
M: I accept contribution at different levels, starting with testing the software and reporting bugs, then moving to creating and hosting some builds, tutorials, and movies. Also the contribution could be creating a new visual programming language that works inside our environment. Because the PWCT is a framework that can be used for creating new visual programming languages. The project itself comes with more than one language. We have four visual programming languages, and the system can be extended by the user to develop new visual languages. And this will be the most useful contribution, because we need to support most of the available programming languages.
R: What do you have planned for future versions? Is supporting other languages one of your main goals for that?
M: The next version will be in one year from now. It will be multi-platform, with support for Windows, Linux, and Macintosh. I also have plans to support web applications and mobile application, so we can have a platform that is ready to be compared to the most famous platforms available for developing new software.
R: How much time would you estimate that you put into this particular project.
M: I work on this project most of my time. Starting about six years ago, I was a student. So I had to balance my time between studying and the project. So at that time, I was working four hours per day. Now I work at least six hours per day on the project. If I continue to develop at this rate, in the future we will not need to create programs by coding at all. Because the Programming Without Coding Technology is equivalent to writing the code. For the professional programmers also, because when we use PWCT, we are using a method that is fully equivalent to coding by hand, but without coding. This method is called Coding Simulation Method. Using the Coding Simulation Method, the developer can develop any software with the same power as coding, and can work faster using keyboard shortcuts. For example, a simple “Hello World” console application can be created using PWCT faster than using other languages. So I think that the future is for visual proramming, and it is very soon. We are going to move away from text-based languages in the next five years. If big companies supported this project and started to create similar projects based on the same ideas, I think that we can say good bye to the text-based languages in the very near future.
R: Thank you very much for speaking with me.
M: You’re welcome. Thank you very much.
Upcoming …
The response to my request for participation last week has been overwhelming. I have two recordings so far of people talking about their projects. I have 3 more scheduled. And I have numerous people forwarding me blog articles, screencast videos and just in general asking how they can get their message out.
With any luck, by this time next week, you will all be doing my job for me.
So, in the coming days, we’ll be featuring articles by the Sourceforge community, about the interesting things you’re working on. And if you’d like to participate, please don’t hesitate to contact us by email, or on Twitter.
Now it’s your turn
One of my main goals, as Community Growth Hacker, is to help the projects on Sourceforge promote themselves and grow. Project growth means different things to different people. It might mean more downloads and more people using your software. But what I’m really interested in is community growth - a community of engaged users and developers working around the common goal of producing a great piece of software.
I’d like to offer you this platform from which to spread your message.
A few years ago, I started Feathercast, an unofficial podcast about the Apache Software Foundation, in order to answer the question “what the heck does that project do?” Apache had a few dozen projects, some of them doing very cool things, but they weren’t doing a good job of explaining what they were and why anyone should care.
So, a few years later, I’m here at Sourceforge, and we have tens of thousands of projects doing interesting things, and many of them aren’t doing a great job of telling the world what they’re doing. Part of my job is helping you get that message out.
If you’d like some space on the Sourceforge blog to get your message out, I’m looking for one of the following three things.
First, I’m looking for blog posts that tell us:
- What does your project do? How are real people using it? This should be more than just your one-paragraph description. Pretend you’re explaining to someone at a party what it is that you’re working on.
- How can I get involved? How can I use my skills, or learn new ones, and get involved in your community?
- What’s planned for the next version?
I reserve the right to edit your submission, and perhaps add a few screen shots.
Second, I’m looking for people who are willing to spend twenty minutes talking to me on Skype, or on the phone, about their project, answering questions of the same type as above, but with more leeway for me to pursue interesting side-conversations as they come up. This would then get edited down to about 10 minutes and published as a podcast here at Sourceforge. You would, of course, also be able to use the (raw or edited) audio for your own purposes under a permissive license like the Creative Commons (details under discussion).
Third, I’m looking for screencast style videos, showing how to do something useful with your project. I’m willing to do whatever post-editing is necessary, if you want to just capture something and send it on.
If you want to do any of the above, please contact me, and let me know.
Open Data
Sourceforge has 13 years worth of data relating to Open Source projects. This is everything from SCM commit logs to issue tickets to site usage data. I’ve had lots of people say to me, wow, that data would be really useful if someone could get hold of that and do some data crunching on it. When I started at Slashdot, I was really interested in getting access to the database, so that I could do some data digging of my own. But since everything we do here is open, surely the data should be as well?
So I did a little asking around, and here’s what I found out.
Turns out we already make that data available, and have done for years. (The data is scrubbed to a certain extent, so that your information as a user of the site is not made public.) We provide a data dump to the University of Notre Dame, on a regular basis, for them to do just that with. You can also request that data from them. Instructions for doing so are on that website.
There’s also a wiki, where various information about the data is available.
Archiving empty CVS repositories
In the next 24 hours, we’re going to be archiving empty CVS repositories.
We still support CVS, for projects that are actively using it, but there are a number of projects that have CVS repositories that they’ve never used. In an effort to reduce our disk storage footprint, we’ll be archiving these off to backup, and removing them from the live CVS server.
More of our favorite Sourceforge myths
After my article about Sourceforge myths a few days ago, several of the engineering and support team told me about other myths that they hear on a regular basis, so here’s a quick followup.
We’re not Open Source
Actually, Sourceforge itself is Open Source. About a year ago we launched a rewrite of the base Sourceforge dev tools, and they were Open Source from day one.
That rewrite is called Allura, and it’s under the Apache License. It’s an ongoing effort, so there are parts of it that are not yet under that Open Source umbrella. But we’re getting there, and it’s our goal to have the entire site running on Open Source components.
It’s hard to upload files
Like many of the complaints about Sourceforge, this one comes from many years ago. I guess that people used Sourceforge long ago, and assumed that nothing has changed since then. Not a very sensible assumption, if you stop and think about it, but one that most of us make at one time or another about something we used, once, long ago.
Uploading files is done via a standard HTTP file upload form. You know how to use those.
There’s also a button to add a folder inside the current folder, if you want to arrange your files into folders. That’s pretty easy to use, too.
In the old days, you had to use FTP or SCP to upload your files, and it was a little cumbersome, but those days are long past. Of course, if you still want to use those methods, those tools are still available, too.
We have anti-Iran export controls
Sourceforge is a US company, and, as such, is subject to US laws. One of those laws restricts the export of certain types of software to certain places.
When you register your project, we ask you if your software is one of those types. Specifically, it looks like this:
It is a legal requirement that we ask you this. If your software doesn’t fall into that category, you need to select no to that question.
If you don’t select “no”, then folks in Iran (and various other countries) won’t be able to download your project. This is not because we hate Iran, but rather because of the above-referenced law.
That was then …
Most of the myths about Sourceforge come from memories of long ago. Unfortunately, it’s awfully hard to dispel what people think they know. Take a look at Sourceforge now, and you’ll find that we’ve come a long way since those days.
We’re just as dedicated to Open Source as we’ve ever been, and we’re actively using our own tools to develop the next generation of the site.
Why an Open Source Forge Matters
A few months ago, I became “Director of Engineering” for SourceForge.net. It’s a big job that includes being “Product Owner” for the two development teams, managing support, and helping everybody do what we can to improve the site. We have over a decade of accumulated features, many of which are out of date, and little used. We have lots of technical debt. We have younger competitors with a lot of online buzz.
I’ve had random people come up to talk to me at conferences to ask what I’m doing at SourceForge. The basic message is always some version of this SourceForge has lost its way over the past few years.
And to some extent I believe that message but I believe those days of wandering in the wilderness are over. We’ve got new management that is very committed to growing open source, and revitalizing the sourceforge.net brand. And we’ve got world class development and community teams who keep impressing me with new things every day.
But that’s not why I’m here. Let me be clear, I believe SourceForge.net matters, and I believe what we are doing here is important, otherwise I wouldn’t have spent the last 2+ years of my life trying to make it better.
SourceForge is home to hundreds of thousands of open source projects, millions of registered users, and hundreds of new projects every week. A decade ago SourceForge.net was an important innovation in the community, and was a part of a movement that changed the IT world.
Sourceforge helped to bring open source to every datacenter, helped to fuel a communication and productivity revolution, and helped to fuel the Open Source revolution that changed everything from the way we keep in touch with relatives to the way we run our governments.
I think we can do it again in this decade. Which is why I took this job.
But more than that, I think we have a responsibility to the Open Source community to try.
You have entrusted us with your project data, and given us the responsibility of getting your project to millions of users all around the world. I think we owe it to you to do the best we can to provide you with the best possible tools to accomplish your individual missions.
And just as importantly I think the open source community deserves an open source forge.
We should not be stuck with proprietary platforms to collaborate around the development of our open source projects. We should have the opportunity to scratch our own itches, to review the code for security issues, and ultimately to take our destiny into our own hands.
So, I helped to build Allura, a new self hosted version of the SourceForge development tools, that we could give back to the community.
Our goal was not just to be open in name and licence only, but to create a flexible, pluggable platform that would be flexible enough to handle the needs of many different kinds of projects. A platform which could be easily be expanded by the community via the development of simple plugins.
And ultimately to provide the community with a fully open platform for the development of individual projects as well as larger communities. We created Allura with the belief that it is important to support small projects and large products all while to focusing on communities and conversations, not just code repositories.
We released it as an open source platform at PyCon 2011, and while it’s still a young project, we are very committed to growing it into the open collaboration platform that the open source community deserves, and that we need to continue to drive the open source revolution though this next decade. We’re seeing adoption of the Allura platform by companies, government organizations, and I’m very excited about what the next year is going to bring.
Project Of The Month, December 2011: TICO
December’s Project Of The Month is TICO, which is a tool for creating interactive communication boards, which help in the education of, and communication with, persons with severe disabilities.
You can read more about TICO in this interview with the project leaders.