September 2015, “Community Choice” Project of the Month – PSeInt

For our September “Community Choice” Project of the Month, the community elected PSeInt, a pseudo-code interpreter for Spanish-speaking programming students. Pablo Novara, PSeInt Lead Developer, shared his thoughts about the project’s history, purpose, and direction.

SourceForge (SF): Tell me about the PSeInt project please.
Pablo Novara (Novara): Learning how to program involves learning about algorithms, variables, expressions, functions, flow control, data structures, etc. And, in order to test these ideas, you also need to understand a programming language, and about compilers or interpreters, plus how to setup a project in an IDE. However, many non-English speakers also have an additional barrier – language.

Many books start with some kind of pseudocode or flowchart to let the student focus on the logic behind the algorithm and keep all the other complexities hidden. PSeInt is a tool for Spanish speaking students that implements these ideas and allows them to experiment and play, providing a very simple pseudocode and flowchart editor and interpreter with features specifically designed for classroom usage.

SF: What made you start this?
Novara: In a programming course during my first year of college, I saw students struggle to write their first algorithms in a very simple pseudocode proposed by our instructors. Being that we were using a mock language with no real implementation, we were dependent on our instructor’s review to learn if we had succeeded. With just a few teachers and many students, it occurred to me that we needed a tool to see if the algorithms’ outputs were correct.

SF: Has the original vision been achieved?
Novara: Yes, I just wanted be able to run an algorithm with that particular pseudocode and get the output. This was a very limited vision and I achieved that goal handily.

SF: Who can benefit the most from your project?
Novara: Students and teachers.

SF: What core need does PSeInt fulfill?
Novara: The system does a lot more now than just running the pseudocode and that’s why students get so much useful feedback. PSeInt helps them find and correct errors, and keeps them motivated through experimentation and play. The teacher gets a tool to present practical examples and explain how something works.

SF: What’s the best way to get the most out of using pseint?
Novara: A teacher should explore it completely in order to know what can be done with it and to design lessons and activities to take advantage of PSeInt’s features. It is specifically designed to assist both the student and the teacher, but it is not a replacement. It is not a tool that teaches programming by itself.

SF: What has your project team done to help build and nurture your community?
Novara: I am the team. For many years the project had a very small community of users so all the communication was done by email. Eventually, when I realized that PSeInt was growing, I worked to boost this trend. This is where SourceForge, along with some other SourceForge projects, played an important role. Following the advice and ideas from Rich Bowen’s posts and slides, I rethought the website, improved the documentation, started using the forums system, and encouraged users to do the same. I also made the git repository public.

Another nice idea was to blog freely about anything I wanted to let the community know. I’ve taken this idea from SuperTuxKart. I always read their development blog and to find useful material, so I wanted something like that for my project.

SF: Have you all found that more frequent releases help build up your community of users?
Novara: I’m a big fan of Eric Raymond’s RERO philosophy. Being an extremely small development team, I rely on users to fill the gaps. I try to release often to keep them active and interested, but “often” can also means “too early”, so they respond with a lot of bug reports, suggestions, new ideas, and all kind of useful feedback.

SF: What was the first big thing that happened for your project?
Novara: In college I had to develop a piece of software to pass a programming exam, so I started PSeInt. After the exam I abandoned it for more than a year. Then came a chance to include it in a free educational software compilation, which revived and jump-started the next phase of the project.

SF: What helped make that happen?
Novara: I heard about some free software groups that were building that compilation. I wrote to them saying something along the lines of “I’ve got this in case you might like.” And they did. This led me to register the project here, provided me with some very valuable feedback, and gave PSeInt some initial diffusion.

SF: What was the net result for that event?
Novara: I don’t know if PSeInt would have been revived without that feedback and motivation. So I have to thank mainly to Adrian Staffolani and Roman Gelbort for not letting that work die.

SF: What is the next big thing for PSeInt?
Novara: I don’t know. Some users ask for an Android version, others want it for different languages, still others would like to see it handle heterogeneous data structures and graphics.

SF: How long do you think that will take?
Novara: These ideas require a lot of work and internal refactoring and none of them are planned in the short term. Actually there is no plan. Maybe tomorrow someone points me in the direction of another big idea that gets implemented in just a few weeks. It depends on what it takes to get it done. Two ideas can look similarly complex yet require very different amount of work.

SF: Do you have the resources you need to make that happen?
Novara: The most important resource here is time. I do it for free, and my free time is shared with two other free projects (ZinjaI and MotoGT), along with some other hobbies.

SF: If you had it to do over again, what would you do differently for PSeInt
Novara: I would take this more seriously from the beginning.

SF: Why?
Novara: My original vision about what it was supposed to be has evolved a lot. When I realized about the real purpose of such a tool, I saw many new possibilities. The language became more flexible, the GUI has been simplified, the flowchart editor became a first class citizen, some debugging-like features were added, and the editor was modernized. Also many live-coding ideas, inspired in Bret Victor’s “Inventing on Principle” and “Learnable Programming”, were implemented with others still to come. I now see many reasons to consider PSeInt a very interesting project, but my lack of vision had made me think that there was nothing more left to add.

SF: Any reason you can’t do that now?
Novara: No. I think I’ve learned a lot in this ten years and I won’t say it’s every finished again. I now expend a lot of time reading and watching talks about this topic, and I work to constantly widen my point of view and catch new ideas.

SF: Is there anything else we should know?
Novara: I’m mostly a technical person. So, handling the social part of the project is a challenge. I frequently disagree with users requests, complain about how they communicate their ideas or problems, or get frustrated about some reactions. But feedback is an invaluable resource for any small free project and I really believe that users are vital actors in this process. So thanks!

[ Download PSeInt ]

September 2015, “Staff Pick” Project of the Month – gnuplot

For our August “Staff Pick” Project of the Month, we selected gnuplot, a portable, multi-platform, command-line driven graphing utility. gnuplot’s Ethan Merritt shared his thoughts about the project’s history, purpose, and direction.

SourceForge (SF): Tell me about the gnuplot project please.
Ethan Merritt: gnuplot was conceived and born more than 30 years ago as an open source data visualization tool. Of course, that was before “open source” had any particular meaning.

The original authors, Colin Kelley and Thomas Williams, posted an initial version that must have filled a need because a user community coalesced around it immediately. A slightly more polished version 1.0, reflecting input from many people, was circulated in 1986. Please note that although the GNU project was also incubating and was announced during this same time frame, the “gnu” part of “gnuplot” is just a naming coincidence. It must have been something in the zeitgeist.

The scope of the project quickly expanded to include support for the huge profusion of output devices (pen plotters, atari/amiga game machines, character cell terminals, etc.) that we all made do with in those days. The sort of cheap and beautiful graphics displays we take for granted now had yet to be invented.

Version 2.0 was released in 1990. In those days, a major feature of gnuplot was that it would run on practically anything and could produce output for practically anything else.

The project has been hosted on SourceForge since 1999.

SF: What made you start this?
Merritt: What I’ve told you so far is ancient history. I didn’t become involved until later. gnuplot was still supporting a huge variety of output modes but had fallen a bit behind the state of the art.

I had been working with ray-tracing and 24bit color displays to generate scientific images for my work, mostly PNG or TIFF output, and it seemed a pity that I couldn’t pair those with graphs of similar quality. So I wrote and contributed a revised PNG driver to the gnuplot project. Things kind of escalated from there.

SF: Has the original vision been achieved?
Merritt: Well yeah. By about 25 years ago, I’d say. The challenge since then has been to stay relevant.

Pretty much all the physical hardware we originally supported is now gathering dust in some museum. These days the diversity of output comes from supporting integration into desktop environments (e.g. wxWidgets Qt), scientific publishing (PostScript/PDF/latex), and interactive web display (svg/javascript/HTML5).

SF: Who can benefit the most from your project?
Merritt: I am continually surprised by how often I see graphs produced by gnuplot in scientific literature, in people’s presentations at meetings, on the Web, and so on. It’s also interesting to see the support requests and questions sent to the various gnuplot forums.

For instance, I learned that gnuplot is used to make weather maps when we got a request to support placement of “wind barbs”. I learned that it is run on handheld devices to graph data collected in the field when someone contributed a driver for a micro printer attached to such a device. And a few people apparently still do have those dusty museum relics like pen plotters that they want to use.

Me, I use it mostly as a back end for computational Web services. Gnuplot can generate either client-side or server-side interactive visualizations of uploaded data.

SF: What’s the best way to get the most out of using gnuplot?
Merritt: Dig in. Look through the on-line demo collection. If you run into problems, ask questions on one of the mailing lists or user forums.

SF: Have you all found that more frequent releases helps build up your community of users?
Merritt: I think so, yes.

For 20 years or so the project would put out a new release “when needed”, which effectively meant “not very often”. I became personally involved in orchestrating releases about 10 years ago and eventually took over the job. Now I try to package up an incremental release every 6 months “whether it’s needed or not”.

SF: If you had it to do over again, what would you do differently for gnuplot?
Merritt: The graphics capability that everyone has on their desk, their phone, or for that matter on their car dashboard or toaster oven, was unknown and largely undreamed of in 1980. I can only guess that if the original gnuplot developers had looked 30 years forward in a crystal ball they would have designed in 3D display from the start. But they didn’t.

The program is architected in terms of 2D display coordinates. Even when drawing beautiful 3D surfaces with hidden line removal, it’s all calculated as a 2D projection.

SF: Any reason you can’t do that now?
Merritt: We’ve talked about it. But it would require a huge rewrite. If you really need a 3D visualization tool, as opposed to 2D display of 3D objects, I think gnuplot is not where you would start. Having said that, both the printed page and the screen you are reading this on are 2D surfaces. And gnuplot handles those just fine.

[ Download gnuplot ]

Project of the Week, August 31, 2015

Here are the featured projects for the week, which appear on the front page of SourceForge.net:


TripleA

TripleA is a turn based strategy game and board game engine, similar to Axis & Allies or Risk. Free to play online, TripleA comes with multiple games, and over 100 more games can be downloaded from the user community. Supports single player vs AI, hot-seat, Play by Email and Forum, and also a hosted Online lobby for live play. Recreate Napoleon’s march across Europe, or Rome defeating the Carthaginian Empire, or Sauron conquering Middle Earth, or even Zombies taking over America! If you have ever played a game where you push little plastic/virtual pieces around, roll dice, conquer the lands of your enemy, & produce new pieces to conquer with, you will be able to jump right into TripleA!
[ Download TripleA ]


Q4OS

Q4OS is a fast and powerful desktop operating system designed to offer a classic style user interface, long-term stability, and a strong foundation for complex third party applications. We focus on security, reliability, and a conservative integration of verified new features. The system is distinguished by speed and very low hardware requirements, and runs great on brand new machines as well as legacy computers. It is also very applicable for virtualization and cloud.
[ Download Q4OS ]


DavMail POP/IMAP/SMTP/Caldav to Exchange

Ever wanted to get rid of Outlook? DavMail is a POP/IMAP/SMTP/Caldav/Carddav/LDAP gateway allowing users to use any mail client with Exchange, even from the internet through Outlook Web Access on any platform. It has been tested on MacOSX, Linux, and Windows.
[ Download DavMail POP/IMAP/SMTP/Caldav to Exchange ]


Virtual MIDI Piano Keyboard

VMPK is a virtual MIDI piano keyboard for Linux, Windows, and OSX. Based on Qt and Drumstick, the program is a MIDI event generator using the computer’s alphanumeric keyboard and the mouse. It may also be used to display received MIDI notes.
[ Download Virtual MIDI Piano Keyboard ]


gramps

Gramps is a genealogy program for Linux, Windows, Mac, and FreeBSD, that allows you to easily build and keep track of your family tree. It supports the GEDCOM standard, allows fine grained privacy controls, and can generate many different types of reports (descendant trees, graphs, connection diagrams, etc.).
[ Download gramps ]


Shareaza

Shareaza is a very powerful multi-network peer-to-peer file-sharing client supporting Gnutella² G2, Gnutella, eDonkey2000/ eMule, DC++, HTTP, FTP, and BitTorrent/ DHT protocols for Windows or Wine.
[ Download Shareaza ]


uniCenta POS

uniCenta oPOS is a multi-lingual – 17 languages – POS (Point-Of-Sale) application designed for Touchscreens. It supports industry standard hardware and is capable of running on display sizes from as little as 800×600 and upwards. Installing uniCenta oPOS is simple and fast, and it comes packaged with its own built in Apache Derby Embedded database. It’s also multi-terminal, multi-location, and supports a range of proven commercial grade databases, such as Apache Derby Client/Server, MySQL, HSQLDB, PostgreSQL, and Oracle 11g. It has a thriving and active self-serve Community here on Sourceforge.
[ Download uniCenta POS ]


Super Audio CD Decoder

Super Audio CD Decoder input plugin for foobar2000. The Decoder is capable of playing back Super Audio CD ISO images, DSDIFF, and DSF files. It is also capable of direct DSD playback for compatible devices.
[ Download Super Audio CD Decoder ]


BluestarLinux

Bluestar is a GNU/Linux operating system, built to provide an up-to-date kernel with rolling releases, fast performance, a wide variety of applications with current versions, a full development desktop and multimedia environment, and an Arch Linux based distribution.
[ Download BluestarLinux ]

Update: How to migrate from Google Code to SourceForge

As many of you already know, Google Code was set to read-only mode on August 24, 2015 in preparation for Google Code’s final farewell on January 25th, 2016. If you just caught the news, SourceForge has been offering Google Code projects a path to easily migrate from Google Code to SourceForge since March 2015, when Google announced their plans to progressively deprecate their free hosting and download service. Our importer, which Google mentioned in a page dedicated to support tools, has already been used for over 2000 imports since then.

Screen Shot 2015-08-26 at 12.09.03 PM

What can I expect when migrating to SourceForge?

While the GitHub importer converts any SVN or Mercurial project to Git, only SourceForge offers a migration path from Google Code that allows you to keep your Git, Mercurial, or SVN project repos intact. And the SourceForge importer converts all your wiki pages, issues including attachments, and download files.

We welcome you to migrate from Google Code to SourceForge today! And let us know if you have any questions at communityteam@sourceforge.net.

Video Demo

For additional information, see: How to sync a GitHub or Google Code repo to a SourceForge project.

How to customize your project’s tickets, wiki, and discussion forum

SourceForge lets you customize some of its popular developer tools, such as tickets, wikis, and discussion forums. So let’s take a look at how to customize some of the more popular project tools.

While all of a project’s settings are found under the Admin link in your project’s menu, you can now locate the settings for the current tool (e.g. Wiki, Tickets) in the left side panel where they are much easier to find.

Every tool has a few settings in common. For example, you can change a tool’s label; maybe you want to call your wiki “Documentation” for example.  You can also set fine-grained permissions to control who can view, edit, and post comments. You can also delete tools that you don’t need.

Admin sidebar

 

Wiki Settings

Wiki options include the ability to set the default home page, as well as enable or disable per-page discussion comments.  If you want to make more room for your content, there are also options to hide the left sidebar and hide page metadata from showing.

Ticket Settings

Admin sidebar of tickets tool

Tickets have many customizable options.  Click on “Field Management” to customize the fields used for each ticket.  You can modify the open & closed ticket statuses, add additional custom fields, and select which fields show up in list views.  The “Edit Searches” page lets you save specific searches.  “Options” lets you enable voting on tickets, control email settings, and add custom messages to the New Ticket and main ticket listing pages.

Discussion Forum Settings

Admin sidebar for discussion forums

Discussion settings are mostly within each of the “Forums” in the tool.  You can have different forums for different topics, such as General, Help, Development, Translations, Plugins, etc.  Each forum can have its own view and post settings.