Forgot your password?
typodupeerror
Open Source

Ask Slashdot: What Does the FOSS Community Currently Need? 356

Posted by samzenpus
from the lend-a-hand dept.
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?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: What Does the FOSS Community Currently Need?

Comments Filter:
  • Hmm... (Score:5, Insightful)

    by LizardKing (5245) on Monday February 18, 2013 @05:13AM (#42933713)
    Better hygiene. Less beards. More women.
  • Re:Hmm... (Score:5, Insightful)

    by JaredOfEuropa (526365) on Monday February 18, 2013 @05:16AM (#42933723) Journal
    Good set of requirements, but where's the database?
  • by zakkie (170306) on Monday February 18, 2013 @05:19AM (#42933743) Homepage

    And for that matter, the big social networks and their apps or app-like interfaces. These are two sides to a common threat: the partitioning of the internet into a device- or social network-delineated series of ecosystems.

  • by Anonymous Coward on Monday February 18, 2013 @05:33AM (#42933799)

    You've identified a problem, the FL/OSS community need a database of applications that the FL/OSS needs.

  • by PSVMOrnot (885854) on Monday February 18, 2013 @05:46AM (#42933843)

    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.

  • by thegarbz (1787294) on Monday February 18, 2013 @06:01AM (#42933895)

    I actually find the documentation of most projects to be quite good. And honestly it has to be because what the FOSS community really needs is some human interface design lessons.

    Many of the apps are currently spread between the realms of so configurable and customisable that anyone but the smartest of power users can understand how to run the settings, and then on the opposite end of the spectrum with the whole uber user friend unconfigurable touch garbage like Unity.

  • by metlin (258108) on Monday February 18, 2013 @06:05AM (#42933901) Journal

    I do not know what the question is, but the answer is clearly more pr0n.

  • by Makali (13158) on Monday February 18, 2013 @06:08AM (#42933913) Homepage Journal
    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.
  • Re:Statistics (Score:4, Insightful)

    by bertok (226922) on Monday February 18, 2013 @06:50AM (#42934041)

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

    That's actually a very good idea, because I've found the exact opposite of your suspicion: there's few out there and they're all bad!

    The kind of insanity I see regularly:

    * Visual programming languages, which are known to be inefficient and just all-round bad. They promise a lot, but fail to deliver.
    * Poor re-use or re-factoring of common tasks, such as consistent handling of groups of columns from disparate sources.
    * Poor parallelism. I suspect that there's no ETL tool out there that can parse a CSV file in parallel. It's hard, because all but the first thread has to "hold" its results and potentially back-track. There are organizations out there that import multi-gigabyte text files!
    * Poor adherence to standards. For example, SQL Server 2008 R2 and earlier don't support the CSV standard. No joke!
    * Poor scaffolding or get-started-quick importing. Lots of ETL tools make you drag & drop at least each table once. Performing an "upsert" merge (or similar) between a database and a subset involving many tables is almost always months of fiddly work. God help you if you need to perform more complex merges...

    Essentially, writing an advanced ETL tool in a high-level and safe language like C# or Java wouldn't be too hard, and would be useful to a lot of people. There's also great tools [antlr.org] out there now for developing new Domain Specific Languages (DSLs), which would allow a full-fledged ETL language to be developed quickly.

    Lots of good programming practice in a project like that: parallelism, databases, and parsers. Yet, it's easy to get started, and even a very simple version might be useful for some things!

  • Re:Statistics (Score:5, Insightful)

    by Anonymous Coward on Monday February 18, 2013 @08:11AM (#42934363)

    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.

  • by Celarent Darii (1561999) on Monday February 18, 2013 @08:30AM (#42934517)

    From the submitter:

    I'd rather hack up something the FL/OSS community actually needs. The problem is — how to figure out what it could be?"

    Well, there we go, you already have a problem that needs fixing! So how about this:

    A database that keeps track of FL/OSS community needs. Some possible features:

    1/ People go to your website/program and input their software needs. Could be a form with relative requirements on each need. You put the requirements and users in a database, with some sort of relationship between user and need.
    2/ People with projects can put their project in the database by stating its goals, as well as state of completion. The state of completion implies (negatively) what requirements still need to be fulfilled for each project.
    3/ Your fancy program tries by some algorithm to match 1+2, using some sort of database. Your program brings people's needs and the projects needs together in some form that allows the needs to be fulfilled. Bonus points for making it some sort of social site. Your software is not only open source, but even "community driven".

    Actually your question points out a need - how about fulfilling that need? You have already tried to find something that would help you, but couldn't find it - how about doing something about it? This is the best way to do software - not by taking an arbitrary list of stuff from others, but actually experiencing the need yourself. Since you know the requirements in some degree, you should put your energies in fulfilling them. Would make an interesting and useful project.

    Good luck with whatever you decide to do.

  • Re:Hmm... (Score:4, Insightful)

    by tehcyder (746570) on Monday February 18, 2013 @11:15AM (#42936009) Journal

    The thing is, if you want to be swamped with women, you'll need to shave. My unscientific studies have lead me to believe that the only reason men shave is because the women in their lives (particularly girlfriends and wives, may they never meet!) require it of them.

    Sure there maybe some unmanly men who shave because they claim to dislike the scratching or itching or whatever, but they are just being silly. Let your facial hair grow for two weeks and it all goes away.

    Anyone who uses the word "unmanly" in an unironic way should probably seek counselling before offering advice on the internet.

You don't have to know how the computer works, just how to work the computer.

Working...