Archive | Project of the Month RSS for this section

April 2014 Project of the Month, Free Pascal

For our April Community Choice Project of the Month, our community has selected Free Pascal, an advanced open source compiler for Pascal and Object Pascal. The project founder, Florian Klaempfl, tells us about the project’s history, purpose, and direction.

SourceForge: Tell us about the Free Pascal project please…
Florian Klaempfl: Free Pascal is an OSS pascal compiler supporting different pascal dialects including modern Object Pascal (for more details see theFree Pascal Homepage). It is written itself in Object Pascal, so users do not have to learn another language if they want to improve their compiler.

SF: What made you start this?
FK: In the early nineties, I wrote chess programs using Turbo Pascal. TP was a 16 bit compiler so it didn’t take advantage of the i386 getting popular at this time. After trying some alternatives, none of them made me happy, I decided to write my own compiler. This was in 1992. The current code base
of FPC was started in 1993. Sounds like Linux at the beginning of Linux, right :) ?

SF: Has the original vision been achieved?
FK: In the sense having a 32 bit compiler pascal compiler yes, in the sense to use it for my chess programs, no. I never ported my chess programs to FPC.

SF: Who can benefit the most from your project?
FK: I think there are multiple groups who can benefit from it:

- People who want to learn only one programming language which allows them to use it for almost everything: FPC can be used to do big database applications but it can be also used to program embedded devices. It can used to write numerical applications but also to code for mobile devices.
- People who have a large Pascal/Object Pascal code base
- People who are interested in a programming language which offers a compromise between high
productivity and the advantages of native code.

Obviously, the most can benefit people who are part of all three groups.

SF: What is the need for this particular programming language?
FK: Modern Object Pascal supports most language features which are expected from an OOP language. In combination with its good readability it is a very powerful language.

Further, the concept of modern pascal allows very fast turn around times. While some people might say this does not matter with today’s machines, I still think it makes a difference: FPC rebuilds its own compiler sources (i386: ~330k lines) on an i7-4770 in 4.2 s. So no need for a cup of coffee while compiling a project.

SF: What’s the best way to get the most out of using Free Pascal?
FK: Using it in combination with Lazarus: a RAD built on top of FPC.

SF: What has your project team done to help build and nurture your community?
FK: I think the most important thing which helps to build and nurture the community is stability in
different aspects:
- we try to break never people’s code, so backward compatibility is an important thing
- we do heavy automated regression testing to avoid bugs being reintroduced, every night, regression tests are run with >100 different configurations and the results are collected in a central database. Developers get a daily summary of the
tests with information if regressions appeared.

Further, FPC tries to give everybody being interested in an working on an OSS pascal compiler a “home”. So the development directions are mainly driven by the contributors as long as two basic rules are obeyed: FPC is a pascal* compiler and other people’s code may not be broken**. Recent example: revived m68k support. It makes little sense to do so to get a lot of new users of FPC, but if somebody implements it, he is free to do so.

*This is subject to be discussed, “wirthian language” compiler might be also ok.
**Of course, sometimes this cannot be avoided.

SF: Have you all found that more frequent releases helps build up your community of users?
FK: FPC has a very slow release cycle: during the last years it is approx. one release per year. There are multiple reasons for this:
- FPC is almost 21 years old, so it has a certain maturity
- Building FPC from development head is not hard and normally done, see above, within a few minutes
- Due to its maturity and a development model grown over years, the development head is normally also very stable.
- We normally prepare binary releases and these binary are not just compiled, packed and uploaded but also tested. Due to the amount of platforms this takes considerable time so each release cycle eats also time which could be spent in other things.

SF: What was the first big thing that happened for your project?
FK: For me it was when the compiler was able to build its own sources, this was in 1995 after almost two years of work.

SF: What is the next big thing for Free Pascal (and/or feel free to talk more in depth about the “write once, compile anywhere” concept, sounds interesting)?
FK:The next big thing for FPC will be the 3.0 release: Besides a lot of new language features, bug fixes and improvements, 3.0 will extend the compile anywhere concept further. It is expected to be the first FPC release version which can output jvm code as well as i8086 code and maybe also the avr port will be in a usable shape.

SF: How long do you think that will take?
FK: We expect to release 3.0 in 2015.

SF: Do you have the resources you need to make that happen?
FK: Normally yes, the only question is what will be in 3.0.

SF: If you had it to do over again, what would you do differently for Free Pascal?
FK: Actually not much.

SF: Is there anything else we should know?
FK: I think the most interesting aspect is that FPC has no company in the background: it is developed by a community of people having either a need for it or having just fun working on it as their hobby.

March 2014 Project of the Month, Universal Media Server

For our March Community Choice Project of the Month, our community has selected Universal Media Server, a Multi-OS DLNA-compliant UPnP Media Server for streaming videos and other media over a network. The project founder, SubJunk, tells us about the project’s history, purpose, and direction.

SourceForge: Tell me about the Universal Media Server project please…
SubJunk: Our program serves media (video, audio and images) to many devices like TVs, gaming consoles, smart phones and more.

SF: What made you start this?
SJ: I started this project when I was working on another project called PS3 Media Server, so just a quick background on that: I had used PS3MS for years, and the project founder and developer shagrath – who is not only a very talented programmer but also a very cool guy – eventually lost interest since he didn’t use the program himself anymore. I started to make builds of it for myself and published them on the forum, and SharkHunter did his own builds too. Our builds became popular and that led to me and another developer, chocolateboy, being added as official developers to keep the project going. We made some great progress and further down the line more developers were added. Unfortunately this introduced instability in the program and I was spending more time fixing new bugs than anything else, and after a few releases with major bugs I decided to branch the project off to create Universal Media Server (and was joined shortly after by SharkHunter) with more of a focus on stability, and as the name suggests, support for a wider range of devices. Now we have a core team of 6: SharkHunter, valib, skeptical, DeFlanko, Optimus_prime and myself, as well as other frequent contributors who help with code and translations.

SF: Has the original vision been achieved?
SJ: I think so. We’ve fixed a lot of old bugs and implemented better quality control methods into our process which results in better stability, we have manual and automatic tests that are run before new releases, and we have a great community who are generous enough to give us useful feedback when we make a mistake so we can fix it pretty quickly.

SF: Who can benefit the most from your project?
SJ: It’s a great tool for anyone who wants to just use a media server program with no hassle. Many competing programs require you to wait for a media library to be built, which can take hours for those with lots of videos, but UMS is ready to use straight away with no configuration needed. We have lots of advanced features as well for those who want to use them, but I think our biggest advantage is that it just works.

SF: What is the need for this particular media server?
SJ: Aside from the things mentioned above, we have so many advantages! We offer subtitle support on every device, whether it supports subtitles or not, and we even support adding subtitles on the fly so you don’t have to find and download them yourself. We can output full quality DTS audio, which most servers compress, we interface with iTunes and DVDs, and there are many more specific benefits on our comparison page.

SF: What’s the best way to get the most out of using Universal Media Server?
SJ: To take advantage of our ability to stream media at top quality, it helps to have an audio receiver that can take DTS. Having a wired network is also useful for the best stability and quality, since the highest quality videos can sometimes need to be compressed for smooth transfer over wireless networks.

SF: What has your project team done to help build and nurture your community?
SJ: We are very grateful for our community, and our project members use our forums and issue tracker a lot. We give credit where it’s due by featuring the names of community members who help us in our release threads and readme files.

SF: Have you all found that more frequent releases helps build up your community of users? (Please provide insights if this is the case)
SJ: We have definitely found this. There are a lot of media servers out there, and a lot of them have been abandoned or are inactive, so it’s important to us to keep releasing new versions regularly to show our community that we are very active and will therefore be a good investment of their time.

SF: What is the next big thing for Universal Media Server?
SJ: We have been working hard on a web interface, which will allow us to support devices even without DLNA support. There is really no excuse for a modern device to not have DLNA support, but sometimes companies cut corners and that’s not the user’s fault, so we want to remedy those situations. We also have lots of other things in the works!

SF: How long do you think that will take?
SJ: It is already working and we are working on making it better, and will hopefully release a new alpha version with the web interface in the next month.

SF: Do you have the resources you need to make that happen?
SJ: We are a free program and we all do this out of pure motivation to improve the program. Sometimes people show their generosity by donating and thanks so much to everyone who has, it helps to cover our hosting costs.

March 2014 Staff Pick Project of the Month, Win32 Disk Imager

The Win32 Disk Imager project is a father (Tobin) / son (Justin) team, plus another developer, Jeff. Tobin is a regular in our IRC channel (Freenode: #sourceforge). This is a pretty cool story. Read on!

SF: Tell us what the Win32 Disk Imager project can do for folks…

Tobin:  Win32DiskImager is a tool to take filesystem images and raw files and write them to memory devices (USB memory sticks, SD/CF cards, etc).  It can also read from the device and save the image as a backup.

SF: What was the problem you were trying to solve with this effort?

Tobin:  This tool was originally developed for the Ubuntu 9.04 (Jaunty) Netbook release, targeting users of Netbooks with Windows preloaded.  At the time, Ubuntu only shipped CD ISO images and Netbooks don’t have a CD drive.  This was created as an easy to use solution for Windows users interested in trying the Ubuntu.  I should note that the program went from concept to working release in a weekend.  Justin can comment more on this.

Justin: Tobin simply called me up on a Thursday after school (Senior year of high school if I remember correctly), and needed a screenshot by the end of the weekend so they could do preliminary documentation. I sent a screenshot only a few minutes later (gotta love developing with Qt) and then had to learn the win32 API *shudder* and by Friday night I had a fully functional prototype.

SF: Has your original vision been achieved?

Tobin:  For the targeted release, it went quite well.  After it was released in April, 2009, Ubuntu changed the format of their ISO images and combined the Desktop and Netbook images, so the tool was no longer needed for this purpose.  At this time, it was all but abandoned.

Justin: My original vision for it was simply a temporary tool for a temporary problem, that had other uses as well. After being asked to allow Ubuntu to take over the project and turn it into an Ubuntu specific tool, I kindly refused since I wanted to keep it a generalized tool with a wide range of uses. I didn’t quite imagine that that decision is what would ultimately allow it to explode in popularity like it has done.

SF: Who can benefit the most from Win32 Disk Imager?

Tobin:  Anyone that is using Windows based systems to do development work on embedded systems or users that want to test the latest Cyanogenmod on their Android devices.  I have also heard from users that use it to just back up their SD cards from their cameras.

SF: What’s the best way to get the most out of using Win32 Disk Imager?

Tobin:  The program is very simple in design.  The first thing to remember is to backup any important data you may have on your memory device before writing to it.  And also, read the readme.txt file.  If you have questions, please ask.  We try to answer all questions that we can.

SF: What is the Win32 Disk Imager release philosophy; do you all use the release early, release often precept?

Tobin:  There are currently two people actively maintaining it (Justin is focusing on another project also hosted on SourceForge).  We also have received a few translations from other users, which is great. Unfortunately, we don’t spend nearly as much time on it as we probably should.  We try to outline what features or bugs we want to resolve in the next release, then work towards that goal.  My biggest issues are the constantly changing API’s in Windows, and having to find out how to integrate them in when something breaks.

SF: If not or if so, why?

Tobin:  Time and resources are the biggest factors here.

SF: What are the key features from your most current release?

Tobin: As of v0.9, we support generating MD5 checksums for image verification (helpful for downloaded images), Drag and Drop images from Windows Explorer, and the ability to define a default directory for images through an environment variable (defaults to the user’s Downloads directory).  This works quite well in Windows XP, but we have seen issues in newer Windows releases due to API changes.

SF: What did the project team do to make sure these were completed in a timely manner?

Tobin:  Timely???  Due to our sporadic release cycle, just getting an updated release out was challenging enough.  :P

Justin: As a side note here the first release was dubbed the “Truck Stop” release since one of the guys debugging it was doing so from a truck stop since we had very little time to get the project ready for the initial release.

SF: What was the first big thing that happened for your project?

Tobin:  It wasn’t until mid-2010 when I had bought a Nook Color from Barnes and Noble that I discovered other interests in this program.  The guy selling the Nooks was trying to also sell a book on using the Nook. I told him I was a Linux developer and could pretty much figure it out on my own.  Then he showed me the chapter on “Rooting your Nook”. Glancing through it, I saw a screenshot of our program along with a url to the Wiki page instructions that I had written.

I immediately ran a Google search and found an entire community of users, mainly in the Android Hacker community, but also developers of embedded Linux systems and other types of devices.  There were also a large amount of open bugs.  Since Justin had moved on to other projects, I took over as lead maintainer, and along with Jeff, we have cleaned up all of the original bugs and added some new features along the way.

The other major event was moving the project to SourceForge (YEA!!!). This has helped out a lot, both in exposure and in the tools now available to us to make this project more noticeable. Since moving (and subsequently being targeted as a SF Project of the Week), our user base has grown a lot.  Last time I was at Barnes and Noble, I found 6 different publications recommending our tool to their target audiences.

SF: What helped make that happen?

Tobin:  For the first part, word of mouth, I guess.  I can definitely say that just being on SourceForge has been a big thing.

Justin: It’s quite interesting that this project had received such worldwide fame despite having zero forms of advertising on our part. I guess that’s what you call going viral.

SF: What was the net result for that event?

Tobin:  I recently received an email from a German magazine editor, saying they were going to write a feature on our project.  I have also seen countless reviews, blogs, and even several video tutorials on Youtube.  Downloads are continuously growing week over week (I check the stats daily while sipping my morning coffee).

SF: What is the next big thing for Win32 Disk Imager?

Tobin:  We have a lot planned for upcoming releases.  First and foremost is to move to either a newer release of mingw or something equivalent, as there are a lot of new API issues in Windows that aren’t addressed in the release we currently build against.  Once we get that resolved, we have a wish list of features we want to integrate, starting with image compression/decompression on the fly.

Justin: A couple things I’ve been experimenting with outside of the project was to possibly have the drop-down-box show not only the drive letter but also the label on the device (for example mine might show up as “F: TuxDrive”). This would help a lot of people I think since my own personal experience of safely removing the drive on XP where it only tells you the letter has been annoying when the computer has 3 or 4 different removable devices plugged in. Also, it would be nice to eventually support batch processing of multiple images since the program is now also being used a lot in major tech companies where they’re flashing dozens of cards all hooked up to one system.

SF: How long do you think that will take?

Tobin:  Hard to say.  We already missed our soft target of 1.0 for the end of 2013.  But we do have an installer in the tree now.  That was one of my goals for 1.0. Right now I am focusing on an updated tool base that supports the newer APIs for Windows 7/8.

Justin: As for the pieces I’d like to see, it might be difficult as I’m tiding up other projects, most notably my Open RPG Maker, before going off to college this fall. However, I may be able to squeeze enough time in there to get those two small parts easily done.

SF: Do you have the resources you need to make that happen?

Tobin:  We could definitely use more help.  We are always open to contributions. We have already received a few translations from users, along with some code contributions.  I would also like to thank Jeff B (skydvr68) for his contributions in both code and with the questions forum.

SF: If you had it to do over again, what would you do differently for Win32DiskImager?

Tobin:  I’ll let Justin answer the next few.

Justin: I don’t really think there is anything I’d do differently since the initial release, while a bit buggy, was still fully functional.

SF: Is there anything else I should know?

Tobin: If we can get our development environment issues resolved, 2014 will be a great year for new features.  Hopefully.

Justin: Really awesome to have this project recognized as project of the month, especially seeing some of the other projects that usually get nominated. Feels pretty awesome to have played a part in getting this project there.

February 2014 Project of the Month, Clover EFI Bootloader

Here is the interview we conducted with our latest Project of the Month winner, Clover EFI Bootloader (CEFIB). The community has picked a pretty interesting project in this one.

SF: Tell me about the Clover EFI bootloader project please…

CEFIB: Clover is a graphical boot loader that can run on both (U)EFI and legacy firmwares. It can auto-detect (U)EFI and legacy installations of Windows, Mac OS X, multiple flavors of Linux, and tools, such as the EFI shell. There is also the ability for custom entries and tools. Theming is another feature which is currently expanding and producing some very nice animated menus, thanks to some dedicated users. Clover also has the ability to expand OEM firmware capabilities with EFI drivers which makes it quite powerful and universal.

SF: What made you start this?

CEFIB: It started as a more future proof Mac OS X boot loader and evolved into more than that out of necessity and want to remove multiple chain loads, which shortens boot times and reduces the risk of failure.

SF: Has the original vision been achieved?

CEFIB: Yes the project is becoming quite mature and we’re starting to add features that catch the eye instead of perform a vital function, but we still haven’t lost the focus either!

SF: Who can benefit the most from your project?

CEFIB: Anyone who boots multiple operating systems can benefit from Clover, or anyone who might want a themeable and powerful graphical boot loader.

SF: What is the need for this particular bootloader?

CEFIB: One thing that sets Clover aside from other boot loaders is that it can natively run Mac OS X on PC hardware.

SF: What’s the best way to get the most out of using Clover EFI bootloader?

CEFIB: By trying it out!

SF: What has your project team done to help build and nurture your community?

CEFIB: We try to communicate with our user base as much as possible and solve any issues they might have quickly. Whether it’s by adding features, fixing bugs, or just helping them configure or understand what’s happening during parts of the boot process.

SF: Do you all follow the release early release often (RERO) model?

CEFIB: We try to release any time a new feature or bug fix is out, there are also tools out there that help build the source from the repository. As often as possible while still trying to maintain a stable pathway through the releases.

SF: Have you all found that more frequent releases helps build up your community of users?

CEFIB: I’m not sure, sometimes we find new users with issues who are using ancient versions, although I’d like to think it does.

SF: What was the first big thing that happened for your project?

CEFIB: Just getting it started and out there.

SF: What helped make that happen?

CEFIB: Slice (not sure he wants his real name out there) and that other boot loaders development seemed to be dying or already dead.

SF: What was the net result for that event?

CEFIB: Lots and lots and lots of time reading debug output, lol, and eventually a great boot loader!

SF: What is the next big thing for Clover EFI bootloader?

CEFIB: There are a few things that some users would like to see such as secure boot and implementing firmware features that are not present like target disk mode and file vault.

SF: How long do you think that will take?

CEFIB: Hopefully not long, lol.

SF: Do you have the resources you need to make that happen?

CEFIB: Ingenuity, and discussion amongst the community usually gets it done!

SF: If you had it to do over again, what would you do differently for Clover EFI bootloader?

CEFIB: I think everyone working on the project would probably say something different here, but I’m going to say that I wish the GUI was written from scratch instead of using rEFIt as a base.

SF: Why?

CEFIB: It’s just not sufficient for multicore cpus that could be using one core for system actions and another for graphics. This would allow for more seamless graphical operation and animation of entries as they are found, like usb disks.

SF: Any reason you can’t do that now?

CEFIB: It’s definitely possible but I think that may be a large undertaking at this point and may not have the reward to cost ratio that would merit it.

SF: Is there anything else we should know?

CEFIB: We hope that everyone finds our project useful and uses it! You can also visit‘s clover topics, and of course source forge for help, feature requests, or just to talk about Clover. Thanks!

Project of the Month Changes…

Hi folks,

As most of you know, we have been doing a Project of the Month on SourceForge since October of 2002. When we feature a project, it’s a little like the Colbert Bump, projects get some visibility, and often, good things happen for these projects.

Starting this month, we are making a change in the program. We have recently returned to a Project of the Month voting process where you in the community have the power to select a project from a set of nominees we draw based on project growth, releases, and other data. This project is the “Community Choice.”

We are adding an additional project that is selected by our team, we’re calling the “Staff Pick.” Simply put, a member of our team generally comes across a project they have used, one they love, or one that solves an interesting problem. We consider such nominations from our team and pick one to highlight.

Both projects will get featured on the SourceForge front page. As well, we’ll do a blog post about them both, and continue to track them in our running PoTM historical list. As usual, we’ll also mention these in our monthly newsletter.

Many thanks to you all for your contribute to OSS; the Project of the Month has become what is is because of your contributions to making software that is important to you and that others love.