Friday, August 7, 2015

Open source is coming to campus

I wanted to share an upcoming open source software event that we are hosting at my campus, at the University of Minnesota Morris. Working with OpenHatch, we are connecting mentors with students and members of the community for a one-day event. We'll talk about what open source software is, and help people get started with their first contribution to open source software projects.

I will be there as a mentor, and I am already planning a few ideas:

1. Atomic Tanks
A trajectory-based tank warfare game, similar the old Scorched Earth game for DOS, or like a very simple version of Worms.

Project ideas:

Very little/no programming experience required:
The game has some typos and misspellings in the in-game text. These should be fixed and patches submitted. (For example: when selecting "Fuel" in the in-game "shop," the description is "Allows the tank to move across level terran." — should be "terrain.")

Some programming experience helpful:
I submitted some color palettes several years ago, and one (which I think of as the "clown" color scheme) is very hard on the eyes. Let's update the color palettes to use better-looking colors.

Moderate programming experience necessary:
The color scheme in the game for menus and other interface elements is not great. Yellow on blue for an info box, with black on a green gradient for the in-game "shop"? Let's pick some different colors. At the same time, can we update some of the icons and buttons and spacing around menus and info boxes so things are easier to read?

Advanced programming experience needed:
The game uses a very basic in-game font. It would be nice to modify the game to use a nicer-looking font.

2. GNU Robots
A programming game where you write a program for a simulated robot, then set him free and watch him explore a virtual world. Uses Guile (like Scheme) as an in-game robot programming language

Project ideas:

Some programming experience:
When I wrote GNU Robots, I provided only a few simple demo robot programs, and they weren't very smart. Another developer (Kyle) contributed two other demo robot programs: greedy.scm and mapper.scm. Let's write some better demo robot programs, robots that better demonstrate how to explore the space. Requires knowing Scheme, although a beginner knowledge should be sufficient.

Some graphics experience, no programming:
The game graphics are implemented as separate 16x16 XPM graphic images. These were very basic images that Eric, Tom, and I quickly put together, and always meant to fix later, but never did. If you know the GIMP or Photoshop, let's create some new XPM graphics.

Documentation experience - some programming experience helpful but not required
The Robots-HOWTO documentation is not very easy to read. I wrote it over lunch one day when I was getting ready to make a new release. Let's improve the Robots-HOWTO so it is more helpful to people who want to built GNU Robots, and those who want to write robot programs for it.

Helping others to get started in open source software is very important to me. I have been involved in open source software since about 1993, but I'm probably best known for FreeDOS, which I started in 1994 as a Free software alternative to MS-DOS. I wrote many of the original FreeDOS utilities, and several underlying libraries including implementations of getopt and catgets. FreeDOS is still going strong in 2015, although we have fewer active developers.

I also wrote several other open source programs, including GNU Robots. And contributed to dozens more including gtkpod, Atomic Tanks, GNU Emacs, Freemacs, and Hpcc.

More recently, I help with the usability of open source software. In Spring and Summer, I mentored an internship with the Outreach Program for Women, and Outreachy in examining the usability of GNOME. This Fall, I am teaching an online class at Morris on the usability of open source software, mostly following the model from the internships.

At work, I am the Director of Information Technology at the University of Minnesota Morris.
image: OpenHatch

No comments:

Post a Comment