Slashdot Mirror


Ask Slashdot: What Does the FOSS Community Currently Need?

First time accepted submitter d33tah writes "In the summer term of my final year of IT's bachelor's course in my university, every student is obliged to develop his own project; the only requirement is that the application would use any kind of a database. While others are thinking of another useless system for an imaginary company that nobody would actually use, I'd rather hack up something the FL/OSS community actually needs. The problem is — how to figure out what it could be?"

11 of 356 comments (clear)

  1. Re:Hmm... by JaredOfEuropa · · Score: 5, Insightful

    Good set of requirements, but where's the database?

    --
    If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  2. Re:Hmm... by ixarux · · Score: 5, Funny

    I second this. Hygienic unbearded ladies have always driven the motivations of men. (No offense to the bearded women...) We do need more of them.

  3. Re:Hmm... by Anonymous Coward · · Score: 5, Funny

    Fewer beards. Better grammar.

  4. Statistics by jevring · · Score: 5, Interesting

    How about something fun, like filesystem statistics? Keep track of the most used files to make sure you spread the disk and your mental load equally. Quite possibly useless, but could be fun to do. The hooks into the FS might be the hardest part about this, though.

    Write a generic ETL app. Quite useful. Might be many out there, though. Probably few good free ones..

    Or something that converts a (well known) log format into database entries for the purpose of easier statistics than what grep can provide?.
    For instance, take a webserver log, dump it into the database and generate something like a visitation path..
    The database isn't technically needed for this, of course, but with a large dataset, you can't keep it all in memory, so it would be useful..

    --
    Move sig!
    1. Re:Statistics by Anonymous Coward · · Score: 5, Insightful

      Wow! You've managed to make programming as much fun as...doing your taxes!

      Welcome to the world of real open source software development. It is real work trying to solve real problems of real users. Large projects that would provide real value are never 'fun' - they're a real commitment on the part of the contributors.

  5. The FSF has a page to answer this question by Anonymous Coward · · Score: 5, Informative
  6. You should think of what your teachers expect by PSVMOrnot · · Score: 5, Insightful

    You should really be thinking of what your course teachers expect from this project. From their point of view they are likely after their students building a basic CRUD program (create, retrieve, update, delete) to show that they understand the basics of designing and implementing a system and have some basic database skills.

    The thing is, CRUD programs are not really that interesting or really, that difficult to make. There will be dozens of them available open source, and these will likely cover all the high impact general cases. What you could contribute relatively easily is a a program for a specific case.

    For example: I play around with 3D printing, and I have lots of various coloured filament in varying quantities. I want to know how much I have of each so that I can use up the scraps on little prints, and save the longer lengths of filament for bigger prints. At present this means a little guesswork and some time with a tape measure.

    This problem could lead to a nice simple project: build a simple database backed system to monitor filament stock levels, which allows putting in info, saying "I have used x much of this spool to print" and asking "which is the shortest spool with enough for this print?". If you kept it to the assumption that it would be a light weight program not requiring an existing database environment that would make it easy to demo as well - jsut use one of those lightweight DBMSs that dumps it's stuff in a single file. Nice and simple, but extensible.

    The extensible bit is important, since it means if you get the basics done you can add on some features for extra credit. I don't mean shiny to the user features, but rather shiny to the markers features.

    For example: you could make it pseudo distributed, so that I could have it running on two machines independently and synch them at will; this would mean you could look into transaction systems where you store what was done on each and synch them by applying in time order (something that is useful in big commercial database setups such as retail management systems).

    Another example: you could have it capable of generating QR code labels linked to the particular spools records, and have a mobile app. Scan the QR code and have the phone call a web service front end to the database and look up exactly how much is left, and offer the option to mark it as printed with.

    Basicly: pick something which is simple, but lets you show off your technical skills. If you can help the OSS movement now that's just icing, but you're better off looking after yourself at the moment so that later you can help with less constrained projects.

  7. Write some documentation by Makali · · Score: 5, Insightful

    If you want to learn a lot about code, really help out the community, and get a lot of love, write some documentation for other people's code.

    Now how you work the database requirement into that, I don't know. Perhaps you could write a documentation request tracker for ReadTheDocs.org - their site is on GitHub at https://github.com/rtfd/readthedocs.org so you can fork it, write something that lets people request and prioritise projects that need docs, then submit a pull request.

    If you're really ambitious, write a web-based environment for writing, editing, and submitting documentation to projects on GitHub, BitBucket, etc.

  8. Re:Hmm... by Garridan · · Score: 5, Funny

    Idiot. Women are to be kept in binders, not databases.

  9. Matching contributors to needs by Anonymous+Brave+Guy · · Score: 5, Interesting

    If the OP really means what the community as a whole needs rather than one useful thing for part of that community, then ironically I think you've just nailed it: more than anything else, the community needs a way to match up willing and able contributors with projects that could benefit from their contributions.

    To do that, the OP could develop a simple database that understands things like:

    • different kinds of contribution ("I want to help with programming")
    • technical skills ("I program C++ pretty well, and a bit of Ruby")
    • application domains ("I like graphics-related projects")
    • levels of difficulty ("this is a million-lines project" => it will take a while to get into and might need significant infrastructure installed to work on it)
    • availability ("I can spare an hour or two a week" => probably better to help with small things on smaller, more accessible projects).

    Provide some sort of keyword store (extension: recognise related entries/common aliases) or defined scale for each property, let projects say what they need and volunteers say what they're willing to contribute, and help people get matched up.

    This has the handy advantage for the OP of being readily scalable from a simple proof of concept with a simple native or web-based UI right up to a full-blown and genuinely useful service if you can find a way of getting it hosted properly. It might help particularly with contribution in areas other than programming, which in practice is often where OSS projects run by volunteers for free start to fall behind commercial projects run by businesses with cross-disciplinary teams.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  10. RTFS by Anonymous Coward · · Score: 5, Interesting

    How many people here can't read the fucking summary? here's a shot at it. How about a de-duplicator for music/photos that would (nicely) hunt for media, throw the metadata in the database, search for identical and almost-identical files, and then beautifully show the output. Bonus points if you beat the standard interface to these things which is just a list of duplicated files. I'd suggestb bubble diagrams that show how many files in which folders are duplicates of others.