views:

352

answers:

5

Hi, We are currently advertising for a team of programmers with in the society to develop an open source project, and we're hoping for a turnout of about 10 - 15 fairly good programmers. Although we need to see what type of a project our team would like to do, it would be great to get some opinions on what people feel is missing / incomplete from the world of open source software. We are looking to make a functional piece of software that would be useful to people, as opposed to just an educational project for us to learn on.

Any ideas would be greatly appreciated. Thanks

+2  A: 

Find something you're all familiar with, and build a better version! Nothing helps keep your interest like knowing that you'll actually get some use out of your final product.

Andy Mikula
Why was this downvoted? It makes sense to me. Many of the most successful projects were started to scratch an itch. Linus Torvalds wanted a kernel to play with, for example.
David Thornley
That's what I'm saying...if you pick a project for any other reason, it's going to feel like a job really quickly.
Andy Mikula
+1, the person who downvoted this answer should be read "The cathedral and the bazaar"
Agusti-N
+1  A: 

If you're looking for students to contribute, something I might consider would be a 'web portal' (for lack of a better term) that would track their grades/classes/registration etc. When I worked for my various University/College IT depts. I found that lots of students had trouble with the course registration systems that were in place at those schools I attended. The benefit of this is that it would be something that they've all used at some point or another, probably have an opinion on and is relevant to their lives, and could potentially go somewhere (imo, all of the current course registration systems are poop).

Otherwise it's really open ended and you'd be better just doing a brainstorming session with all of the people that attend the first talk/session/whatever.

SnOrfus
+1  A: 

The open source world needs a way to communicate between languages that is:

  • Very fast
  • Very efficient
  • IS NOT a protocol
  • IS a statically typed serialization format
  • Supports many languages (python, perl, ruby, java, c#, VB, php, erlang, javascript, etc...)
  • Takes into account the datatype differences in the languages, and makes that configuratble (ie. PHP Array -> Python Dict or List?)
  • Full support for binary types.
  • Streaming support.
  • Allows for static type specifications to be written once and re-used
  • Supports plugins for validation (although the library should not validate beyond basics, like Max Length)
  • Versioned so that it could be extended without breaking backward compatibility (within major versions)
  • Did I mention FAST?

This would be like throwing Google Protocol Buffers, Facebook Thrift, yaml, Python Pickle, PHP Serialize, json, xml schemas, and more into a pot... stew for 10 hours... and serve.


This really needs to be unified.

Here is an example type specification (written in XML) that we use at AppCove: This brings static aspects to dynamic languages (such as PHP and Python), while retaining the benefits of a dynamic language.

<Extruct>
    <Struct Name="Task.Select.I">
        <String Name="Ledger_MSID" />
    </Struct>
    <Struct Name="Task.Select.O">
        <String Name="Ledger_MSID" />
        <Int Name="Public_MNID" />
        <String Name="Type" />
        <String Name="Name" />
        <Int Name="Create_User_MNID" />
        <Int Name="Owner_User_MNID" />
        <Int Name="Assign_User_MNID" />
        <String Name="Detail_HTML" />
        <String Name="Note" />
        <String Name="StartDate" />
        <String Name="DueDate" />
        <Decimal Name="HourEstimate" />
        <Decimal Name="HourEstimate_Total" />
        <Decimal Name="TimeLogged" Nullable="1"/>
        <Decimal Name="TimeLogged_Total" Nullable="1"/>
        <Int Name="PercentComplete" />
        <String Name="Priority" />
        <Int Name="Status_MNID" />
        <String Name="Status_Name" />
        <Int Name="Hidden" />
        <Decimal Name="Markup" />
        <Int Name="Billable" />
    </Struct>
</Extruct>
gahooa
+1  A: 

The four areas I would focus on are
- ERP: There isn't a really good open source ERP system that I am aware of
- Accounting/Financial: Something that is not country specific
- Integration of various open source solutions: i.e. get Asterix to work with mail servers like sendmail so that voicemails can go to email, or you can "dial in" and it reads your mail to you?
- Adding LDAP support to applications so that they can really be one way of managing users (i.e. mailboxes in qMail should be directly linked with ldap accounts) and a way to push policies through ldap (like setting the firefox homepage via ldap - this is a major stumbling block of why corporates still prefer Microsoft software)

Robert MacLean
"- Accounting/Financial: Something that is not country specific"How about something specific to a different country?
Seun Osewa
A: 

This is a pretty general idea, but what about a tool for collaborative programming?

Something that would allow a small group of students or coworkers to all view, comment on and propose changes to a piece of code in real time, all without having to be in the same place. Seems like it could be built around existing source control systems. You could also integrate some sort of unit testing functionality that would allow one team member to write test cases in parallel with the other coding efforts.

Millhouse