Open source project management
July 6, 2004 8:40 PM   Subscribe

How would you start an open source project? (A greater amount of detail will be presented upon clicking below.)

How would you start an open source project?

For weeks now, I've been getting lots of requests to remove various problematic programs (malware including viruses, trojans, adware and spyware) from peoples Windows computers. My experience using commercially available software has been frustrating to say the least. The good news is that the experience gave me time to think of a better way to resolve problems caused by this kind of software.

My idea is to create free software, which a Windows user could:
  1. Download
  2. Verify
  3. Execute
When executed, the software would:
  1. Create a bootable CD (or partition on the HDD using UMSDOS, for example)
  2. Instruct the user to reboot
  3. Boot into a minimal Linux install
  4. Fix the problems from Linux, without booting Windows
  5. Verify the problems were fixed and reboot back to Windows
This solution would minimize frustration and the time a machine is compromised. With existing software, several of the machines took hours spread over several days to actually identify and fix all of the problems.

For example, my parents were without a machine for nearly a week because they couldn't get Norton, McAfee or AVG installed or to work. Even with Adaware, Spybot S&D and some vendor specific AV software installed before the machine was compromised, their machined got owned like the first time you played Doom.

My research yields that such a solution is possible, but it would require the effort of people with a wide variety of skills and experience. For best results, the project might even need to develop relationships with one or more existing projects, like ClamAV. I lack the experience of organizing such a task outside the parameters of a for profit environment.

While I am happy to donate the time and effort drive the start of the project, through at least the exploratory phase, I don't know where best to sink my energy. There are literally hundreds of questions to be asked, but I don't believe a single AskMe thread or even AskMe itself is the appropriate forum. To get to the point where interested parties can share ideas and information, I need to make the decision on where to start. What would you advise?
posted by sequential to Computers & Internet (4 answers total)
Rule number one: produce some code.

Seriously. You'll only attract interest -- which translates into assistance -- when you've got some code, preferrably some code which can be useful to people.

Once you've done that, release it, get a mailing list up and running, and start taking end user feedback.

Building distributions, or code to create them, is an easy problem. Take a look at what some of the other projects that produce Linux boot CDs: BBC-linux uses its own tangle of makefiles, vaguely resembling the BSD ports system. It's neat, but a bit complex. floppyfw is a good base for building single-purpose Linux distributions, I've used it a couple of times.

The problem you've come up with is pretty straightforward: produce an ISO or something that'll fire off from SYSLINUX and run a script left behind on the contaminated filesystem. Write some Win32 code to diagnose the problem, emit some shell script, and instruct the user in the ways they can get the machine booted to run it.

Apart from the ENORMOUS task of cataloging malware fix techniques, the code itself is a weekend's work.
posted by majick at 8:56 PM on July 6, 2004

I guess you've read The Cathedral and the Bazaar?

I've got a few users of my software but I don't get much feedback. It has a high learning curve, which doesn't help (familiarity with xslt, xml pipelines). The software is ready for a big site, but most big sites already have an engine and aren't looking to switch. If anyone has any ideas on this I'd appreciate it.

posted by holloway at 11:20 PM on July 6, 2004

I don't understand why you've both made your projects so unnecessarily complex.

sequential: What advantage do you get from all this Linux bootdisk stuff? I just know you're going to run into all sorts of problems with this approach (Linux is rubbish at writing to NTFS partitions, for example, and doesn't support it at all by default). Why couldn't you make a piece of software that starts under Windows but just kills absolutely everything else when it runs -- or perhaps something that runs at boot time (Partition Magic does this, and so does Windows' own chkdsk).

holloway: Why have you used XSLT, XML pipelines, and the rest? Your software wouldn't have such a high learning curve if you hadn't unnecessarily acronym-filled it. Basic XHTML output with CSS probably would have sufficed, with maybe a simple template in XML if that's really your thing -- but what you've done is just far, far too complicated for just about everyone's purposes. If you want people to use it without overhauling what you've got, I reckon that you should probably put in some kind of "easy" templating system to act as a wrapper for the more complicated stuff, whether it's a small XML meta-file or some kind of GUI configurator.
posted by reklaw at 11:56 PM on July 6, 2004

reklaw: The idea was that to use XSLT as the templating language, rather than inventing my own (as I did in the previous versions). XSLT is a good programming language for themes, and moving data around the page, but it's a bit complex to start with. XML pipelines... well, it's just because the alternative is kludging the xslt together into one big file, so xml pipelines let you seperate that into multiple files. It's complex, but I think as a core the architecture makes sense and I didn't create the ideas -- they've shown their worth elsewhere.

You're so right that's a steep learning curve, so I need to put a friendly face on it. I'll work on that easier templating system next. Thanks reklaw!
posted by holloway at 1:08 AM on July 7, 2004

« Older User/Password Error Keeps Cropping Up with WebCam...   |   High Plains Drifter screenshots needed Newer »
This thread is closed to new comments.