Slashdot Mirror


How To Turn Your Pile of Code Into an Open Source Project

Esther Schindler writes "You've written some code, you think it would be useful to the world, and you'd like to give back to the open source world. But how do you do it? Andy Lester provides a checksheet for developers for how to release an open source project and get it noticed. For instance: Before you release the project to the wild, write some documentation, create a mailing list, create an issue tracker, and so on. 'Users require releases of your software. It’s a disservice to your users to point at the Git repo and say “Just pull from the master branch and install it.” Users don’t want to have to use version control just to get a release of the code. Create a proper tarball (.tar.gz) that is easily downloadable by anyone. Announce each release. Your announcements should not assume that the reader is familiar with your project.' You think he's missing anything?"

176 comments

  1. You think he's missing anything? by Osgeld · · Score: 5, Insightful

    yea, don't make a sourceforge page saying that "this will be" having written a grand total of a comment in a .h file

    1. Re: You think he's missing anything? by Anonymous Coward · · Score: 0

      I have seen quite a few projects like that, and no update since 2006. You need to have a working model before going to sourceforge or anywhere else.

    2. Re: You think he's missing anything? by Anonymous Coward · · Score: 4, Insightful

      Also, he has the order wrong. First, make sure that you have something that works. Then, make sure, it is well documented. This includes both good user documentation (and not just "some documentation", good documentation is even more important than good code!), and good developer documentation, as well as a short description that tells people what your code actually if good for. (this seems trivial, but I've seen open source projects where even after browsing the web site for ten minutes or more, I still had not the slightest idea what they actually try to accomplish). Then make sure it has at least a minimal test suite. And then, write up a roadmap where you want the project to go (it may well be a very rough roadmap, but it should be there).

      And if all that is done, then you can start thinking about setting up a public code repository, web site, mailing list, bug tracker, etc.

    3. Re: You think he's missing anything? by Anonymous Coward · · Score: 0

      I don't think there's any harm in setting up some subset of that stuff before the code/docs/tsts are ready. Certainly having a public code repository from the outset is often the easiest way to actually work privately on the code, and on my projects i tend to use the bug tracker as a personal to-do list until I'm ready to announce.

      I think the most important part of the article is the idea that you should delay your announcement until you have something of significance to announce. If people stumble across your project then that's fine, but generally you only get one chance to do an announcement and get the attention of blogs and possibly hacker news, slashdot, etc.

      (Actually, what am I saying? You can get coverage on slashdot three times in one day if you play your cards right!)

    4. Re: You think he's missing anything? by Anonymous Coward · · Score: 0

      It is a shame that Linux is one of the most thoroughly documented projects of any size, otherwise your inanity might be amusing.

    5. Re: You think he's missing anything? by Anonymous Coward · · Score: 0

      half assed comments in a dozen languages on referring to code that no longer exists does not count as documentation, neither does the block of commented out garbage in the source.

    6. Re: You think he's missing anything? by Anonymous Coward · · Score: 0

      Wow, that was the most ignorant and stupid thing I have read in a while, good work!

  2. Approachable download for the way! by billyswong · · Score: 5, Insightful

    Create a proper tarball (.tar.gz) that is easily downloadable by anyone.

    Finally someone mentioned that. Git repositories asks users install extra software before even trying your code. Hate it a lot.

    1. Re:Approachable download for the way! by Anonymous Coward · · Score: 4, Insightful

      You can usually download archives from github and sourceforge.

    2. Re:Approachable download for the way! by mwvdlee · · Score: 2

      How about compiled binaries (for Windows users). How difficult is that...?

      Either it's difficult enough that the developers didn't want to spend the time and money to make their code compatible with the most incompatible OS currently available or it's easy enough that you can already download compiled binaries. Know any example of a Windows-compatible open source project that doesn't distribute binaries?

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    3. Re:Approachable download for the way! by miroku000 · · Score: 4, Informative

      Know any example of a Windows-compatible open source project that doesn't distribute binaries?

      Almost all of the ones I have downloaded recently don't distribute binaries for Windows. Usually someone else forks the project and makes their own installer like http://rubyinstaller.org/ for example. Or, http://www.activestate.com/activeperl/downloads or http://strawberryperl.com/ or http://dwimperl.com/windows.html . The makers of popular languages like Perl and Ruby don't bother making installers. They just put up links to other people who do it. Some times other projects lag significantly behind the main project.

    4. Re:Approachable download for the way! by Joce640k · · Score: 1

      Either it's difficult enough that the developers didn't want to spend the time and money to make their code compatible with the most incompatible OS currently available

      I don't mean stuff that isn't compatible with Windows, I mean actual Windows programs where the authors expect you to compile it yourself with a particular version of VC++, or even with command-line gcc and makefiles (VC++ is a free download, what Windows developer in their right mind uses gcc?)

      Why don't they just post a binary? There's only one Windows 'distro' (yes, there's various versions but they're all compatible).

      It's like they don't want people to use their software.

      --
      No sig today...
    5. Re:Approachable download for the way! by Anonymous Coward · · Score: 0

      Noone expects you to do anything. But you can if you want to. Perhaps not everybody can be bothered to port their stuff to and create binaries for platforms they don't use and/or cannot test.

    6. Re:Approachable download for the way! by Anonymous Coward · · Score: 0

      Fuck windoze and its users.

    7. Re:Approachable download for the way! by Anonymous Coward · · Score: 2, Interesting

      Having done this for a project, and spending a month of my life struggling with MSI and WIX to get a localized and MSI-compliant installable, I can say it's not easy. However, since it was targeted at beginners and the Windows version ended up being 90+% of the downloads (the other version was a Debian binary package), it was probably worth it.

    8. Re:Approachable download for the way! by Anonymous Coward · · Score: 0

      If you don't have Windows: Very difficult.

    9. Re:Approachable download for the way! by Anonymous Coward · · Score: 0

      What's wrong with using gcc on windows? The last time I tried to code in c++ (admittedly a few years ago) I took care to do everything by the book, try to code cross-platform and against standards, but as soon as I tried to port it to windows, VS gave a hissy fit because it got confused by perfectly valid code, it was missing basic STL stuff and for some reason they even marked some standard string manipulation functions as obsolete for some reason, which resulted in a ton of warnings because it felt I should be using 'their' new and improved variants only available on their platform. Don't even get me started on hunting down libraries compatible with edition X of VS. Compiling the same project on different systems and compilers is a royal pain in the arse, which is just one of the reasons I no longer use c++.

    10. Re: Approachable download for the way! by Alkonaut · · Score: 1

      I think "tarball" makes very few people enthusiastic. Most people run windows (honestly people who know what "tarball" is are a rounding error) and prefer a zip or installer for applications, and a zip or package (nuget/npm/gem/etc) for source. When running Linux I don't care whether I get a git repo url or a tgz, they are about equally cumbersome.

    11. Re:Approachable download for the way! by Jaruzel · · Score: 1

      ...code compatible with the most incompatible OS currently available

      Also the most widely used on the desktop, which makes your argument invalid.

      Unlike Linux, Windows enjoys (typically) a compile once, run anywhere model. Hence the desire from Windows users to obtain pre-compiled binaries - why should I waste time compiling source into the same binary that countless other Windows users have already got?

      I want to enjoy using my platform of choice, not waste endless hours watching packages download, and compilers run.

      -Jar

      --
      Together, We Can Make Slashdot Better. I Do NOT Mod ACs. - Check Me Out
    12. Re:Approachable download for the way! by Anonymous Coward · · Score: 0

      > what Windows developer in their right mind uses gcc?

      Any that wants to use C99 features like designated initializers (a real big one) and many more?
      If you want to do pure C, the Microsoft compiler is shit stuck in the last century.
      Also, gcc allows you to cross-compile from Linux, so you can provide binaries even if you don't use Windows yourself.

    13. Re:Approachable download for the way! by Anonymous Coward · · Score: 0

      So both. It's difficult enough that the developers didn't want to spend the time and money to make Windows builds, AND easy enough that you can already download Windows binaries. It's just that the Windows binaries were made by people with Windows and Windows compilers, rather than by the people with Linux and Linux compilers.

    14. Re:Approachable download for the way! by TheRaven64 · · Score: 1

      What's in it for them? The point of releasing open source code is not to gain users, it's to gain contributors. If you're someone for whom having to download a tarball and build it is too high a barrier to entry, then you're probably not someone who is likely to contribute patches either (and if you don't already have a dev environment set up, then you're almost certainly not going to contribute code). Given that they have limited time to spend on the project, does it make more sense to spend that time catering to you, or to people who will build from source?

      --
      I am TheRaven on Soylent News
    15. Re:Approachable download for the way! by semi-extrinsic · · Score: 1

      This. When a company says "our compiler will never support all of C99", that's a clue to avoid it like the plague, as it won't support all of either. C++11, I'm looking at you.

      --
      for i in `facebook friends "=bday" 2>/dev/null | cut -d " " -f 3-`; do facebook wallpost $i "Happy birthday!"; done
    16. Re:Approachable download for the way! by semi-extrinsic · · Score: 1

      Aaand /. eats up yet another "insert here". Jeez.

      --
      for i in `facebook friends "=bday" 2>/dev/null | cut -d " " -f 3-`; do facebook wallpost $i "Happy birthday!"; done
    17. Re:Approachable download for the way! by Anonymous Coward · · Score: 0

      If you don't know how to pull from a git repo I don't want you using my code. You're not smart enough to understand it.

    18. Re:Approachable download for the way! by jellomizer · · Score: 1

      Well I would say you actually try to get a few binaries.
      Windows 32bit
      Windows 64bit
      a DEB package and RPM for Linux
      and OS X.

      The problem with a lot of open source projects especially ones made by a single person. Is that when they code it, many don't really know which library are part of the standard set, and what is placed on the OS for your convenience.

      So if someone tries to compile your program that you wrote in say Fedora and say used a library that isn't used in Debian. Then the Debian user who is going off of source code may get stuck. With a rather unhelpful error message because the OS really doesn't know where or what that Library is.

      I had this problem back when Perl was popular. If I downloaded a Perl program, and tried to run it on Solaris, It would say oh you need this library and that library. Because it was coded on a system that used a Linux Distribution with a bunch of Perl defaults loaded while Solaris has the base Perl installed.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    19. Re:Approachable download for the way! by aitikin · · Score: 1

      This is a great point. Another point I'd like to make is the people asking for a binary are far more often the people who will NOT be able to provide a decent bug report (as in, "Every time that I run the application within these conditions on kernel X.x.x in the foo environment, I reach error 42." and not a bug report of "It's not working! FIX IT PLZ!"). Most people who want something enough to follow instructions on how to compile it are at least technical enough to be able to provide a minimum of good bug reports.

      --
      "Don't meddle in the affairs of a patent dragon, for thou art tasty and good with ketchup." ~ohcrapitssteve
    20. Re:Approachable download for the way! by Anonymous Coward · · Score: 0

      I must say that's a Solaris problem. Everything is assbackwards on that system. Unless you rebuild your own gcc with pretty much the entire GNU ecosystem, it's often very difficult to compile any open source projects under Solaris (even stupid little things like gnu screen, or vim don't compile straight away with ./configure && make, etc.)

    21. Re:Approachable download for the way! by neonmonk · · Score: 1

      I disagree. I am someone that could easily become a contributor, but that's not my original intention. My original intention is to use some software. If I have to compile it then I'll most likely move on.

      If your intention is provide some useful code to other developers then it's fine. If it's because you think your software is good for users then have binaries available.

    22. Re:Approachable download for the way! by dotancohen · · Score: 1

      Know any example of a Windows-compatible open source project that doesn't distribute binaries?

      Gimp and Krita for two.

      For a precompiled binary of a decent image-editing application on Windows, only Photoshop and Paint.net come to mind. I'm not even sure if Blender currently has Windows binaries.

      --
      It is dangerous to be right when the government is wrong.
    23. Re:Approachable download for the way! by jellomizer · · Score: 1

      Well not necessary.
      If you use say Slackware, BSD, or something else. And that App uses some crazy library that other OS's or distributions don't add by default.

      Now the configure && make does work most of the time. However often for those little home single developer projects sometime they just assume what is in their linux distro works for everything.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    24. Re:Approachable download for the way! by tlhIngan · · Score: 3, Insightful

      What's in it for them? The point of releasing open source code is not to gain users, it's to gain contributors. If you're someone for whom having to download a tarball and build it is too high a barrier to entry, then you're probably not someone who is likely to contribute patches either (and if you don't already have a dev environment set up, then you're almost certainly not going to contribute code). Given that they have limited time to spend on the project, does it make more sense to spend that time catering to you, or to people who will build from source?

      Users ARE contributors. First off, just using the program means they find it useful for their needs and thus find things that seem odd (aka bugs). Or insufficient (like documentation). They're also your best asset at marketing (yes, marketing - unless you want your project to die on the vine, you need to advertise and ensure it's known). Getting more people means you grow a community and the chance to attract further developers.

      The problem with OSS in general it seems is that it overvalues developers at the expense of everyone else. Think "you have the source - there's the documentation!" or "don't file a bug, fix it!" type mentalities.

      Unfortunately, the reality of the world is - like an author of a book, the source code isn't the only thing in the world. There's a whole world of other people with soft or non-technical skills that are required. For tiny little command line utilities, sure a lot of this isn't required (and perhaps where the mentality comes from), but larger non-trivial projects really do need contributions from technical writers, designers (especially UX), and sometimes, unrelated experts who find your program actually solves one of their problems (science is full of examples where one field inadvertently creates progress in another because the principles apply).

      And sometimes, there are projects that are useful for users but the software is so mature that very little further development is needed.

      Well I would say you actually try to get a few binaries.
      Windows 32bit
      Windows 64bit
      a DEB package and RPM for Linux
      and OS X.

      Why would you do a 64-bit Windows build? There's very little reason to do so except:

      * Your program is library that plugs into an existing 64-bit Windows program
      * Your program routinely deals with huge datasets that a 3GB user area is guaranteed to be insufficient.
      * Your program is a Windows device driver (which eliminates the need for Linux/OS X binaries)

      64-bit Windows can run 32-bit Windows code just fine. In fact, after getting a computer where 64-bit Windows was necessary, most binaries run on it are still 32-bit - even large ones like Firefox (due to compatibility).

    25. Re:Approachable download for the way! by Anonymous Coward · · Score: 0

      Considering none of my projects are developed for windows... Very difficult.

    26. Re:Approachable download for the way! by Anonymous Coward · · Score: 0

      One thing I like about Github is the "Download ZIP" button on the bottom of the right-side navigation when you are in a repository homepage.

      If I want to grok something on a machine that does not have Git installed, I can just download this file and off I go.

    27. Re:Approachable download for the way! by suutar · · Score: 1

      You are correct, the Gimp team does not distribute Windows binaries. But (in case you want one) they do have a link on their page to someone who does: http://www.gimp.org/downloads/ Blender does distribute Windows binaries, as zip archives and installer programs: http://www.blender.org/download

    28. Re:Approachable download for the way! by The+Snowman · · Score: 1

      What's wrong with using gcc on windows?

      Lack of Unicode (seriously, it's been what, 15 years?), lags well behind Linux gcc, lacks old features, lacks new C++0x features, etc.

      The last time I tried to code in c++ (admittedly a few years ago) I took care to do everything by the book, try to code cross-platform and against standards, but as soon as I tried to port it to windows, VS gave a hissy fit because it got confused by perfectly valid code, it was missing basic STL stuff and for some reason they even marked some standard string manipulation functions as obsolete for some reason, which resulted in a ton of warnings because it felt I should be using 'their' new and improved variants only available on their platform.

      Must have been VC6. Newer versions are fairly standards-compliant and ship with a fully-compliant STL/Standard Library. VC is also pretty good about supporting new standards as they emerge. Might not have everything or lead the pack, but it is competitive. Visual Studio also has a kick-ass debugger with excellent multi-threading support assuming you are not using Express.

      --
      24 beers in a case, 24 hours in a day. Coincidence? I think not!
    29. Re:Approachable download for the way! by Anonymous Coward · · Score: 0

      Who the fuck uses windows these days?

      Fuck windows users, fuck them in their stupid asses.

    30. Re:Approachable download for the way! by vilanye · · Score: 1

      Not one of those are programs that your average user is going to install. If you want to program, learn to compile or get a better OS. If you are going to write programs in any non-MS language, use a proper OS. Especially Ruby, where many of the gems written at least in part in C are not likely going to run on Windows anyway. Good luck getting something like RMagick up and running in Windows.

      There is a reason Ruby & Perl devs don't use Windows and it is because Windows is a subpar development environment for non-MS operating systems.

      Open source software intended for end-users do provide binaries.

      Firefox has Windows binaries, as well as Thunderbird.

      Amarok has a Windows installer, and Gimp, Scribus, OpenOffice, LibreOffice, Inkscape, the list just goes on.

      What you won't find is a lot of libraries precompiled and that is a good thing!

  3. No .tar.gz, Get a package manager by Kahn_au · · Score: 4, Informative

    Just releasing a .tar.gz is not enough for most users. To ease adoption of your "amazingProjectX" you really need to package it so someone can just yum install X || apt-get install X ect.

    While I personally dont mind rpmbuild myself other tools exist like FPM (https://github.com/jordansissel/fpm). After that get it into a repo like fedora/epel/etc and your users will love you (maybe...)

    1. Re:No .tar.gz, Get a package manager by Arker · · Score: 3, Insightful

      If it's in any way difficult for you to install from a proper tarball then there is something wrong. Perhaps you should try a sane distribution?

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    2. Re:No .tar.gz, Get a package manager by Anonymous Coward · · Score: 0

      I woudn't mind compiling from the source if there was an easy way to uninstall an application afterwards.

    3. Re:No .tar.gz, Get a package manager by Anonymous Coward · · Score: 0

      Install it in a special directory in your home so you can just delete it?
      Though for most simpler programs: why would you want to install anything anyway? Compile, run from where it created the binary should work for most, this obsession with "installing" a single-file program is a Windows disease I wished would go away.

    4. Re:No .tar.gz, Get a package manager by buchner.johannes · · Score: 2

      Sorry, but it *is* difficult to get from a compilable program to a distributable program that Linux users can try out easily.

      You suggest tarballs, meaning configure && make && make install. That means you need to deal with automake and friends which are insanely obscure and hard to learn.

      The alternative is to make packages and get them into the offical repos. You have to do that for a couple of distributions, and probably test the installation on them as well. That is a large effort for a developer.

      I think it is fine for developers to publish well-commented code with a README or documentation, without releasing installable packages. It's too hard. If the demand is there, that should be the business of package managers, who know best how to do it.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    5. Re:No .tar.gz, Get a package manager by TheRaven64 · · Score: 3, Insightful

      The tarball is not for casual users. The tarball is for packagers. Having a stable tarball (i.e. one with a published URL whose hash won't change between downloads) makes it much easier to create the package.

      --
      I am TheRaven on Soylent News
    6. Re:No .tar.gz, Get a package manager by semi-extrinsic · · Score: 1

      Use ArchLinux. There, you take the PKGBUILD template file, modify it to download the correct source (it even supports git and hg nicely), tell it how to make/configure, and you're done. Running makepkg on this PKGBUILD will then build and tar-up the result into a .tar.xz file which can be installed (and later uninstalled) using the system package manager (pacman).

      --
      for i in `facebook friends "=bday" 2>/dev/null | cut -d " " -f 3-`; do facebook wallpost $i "Happy birthday!"; done
    7. Re:No .tar.gz, Get a package manager by Arker · · Score: 1

      "Sorry, but it *is* difficult to get from a compilable program to a distributable program that Linux users can try out easily."

      A bare assertion with no logic or evidence behind it that directly contradicts experience.

      "You suggest tarballs, meaning configure && make && make install. That means you need to deal with automake and friends which are insanely obscure and hard to learn."

      What 'deal with?' What on earth do you mean. You type a command and press enter, a command simple enough you embedded it in your first sentence. If that is 'difficult' for you to 'deal with' I suggest you try something a little simpler than a general purpose computer.

      And anyway I said only tarballs I didnt say anything about source tarballs. Binary tarballs are another very easy way to install a program, even easier than source tarballs, although compatibility may be more limited.

      "The alternative is to make packages and get them into the offical repos. You have to do that for a couple of distributions, and probably test the installation on them as well. That is a large effort for a developer."

      No, as a developer, you should not be making packages (except possibly for the distro you personally use.) Many distributions these days are crufty with proprietary junk and keeping up with all the little peculiarities of each distribution IS actually a lot more effort than typing 'make'. That job is best left in the hands of people who are intimately familiar with their distribution and have the motivation to tolerate its insanities.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    8. Re:No .tar.gz, Get a package manager by aitikin · · Score: 1

      Sorry, but it *is* difficult to get from a compilable program to a distributable program that Linux users can try out easily.

      You suggest tarballs, meaning configure && make && make install. That means you need to deal with automake and friends which are insanely obscure and hard to learn.

      I thought those were inherent to Linux users. I have never had a Linux install going for longer than a month where I hadn't at least once dropped to command line to put in some variant of configure && make && make install and get a new program running...

      Guess this is my get off my lawn post...

      --
      "Don't meddle in the affairs of a patent dragon, for thou art tasty and good with ketchup." ~ohcrapitssteve
    9. Re:No .tar.gz, Get a package manager by buchner.johannes · · Score: 1

      "You suggest tarballs, meaning configure && make && make install. That means you need to deal with automake and friends which are insanely obscure and hard to learn."

      What 'deal with?' What on earth do you mean. You type a command and press enter, a command simple enough you embedded it in your first sentence. If that is 'difficult' for you to 'deal with' I suggest you try something a little simpler than a general purpose computer.

      I was consistently talking about the developers perspective, not the user! You ignored the reference to automake which made that obvious. If you think editing configure.ac and Makefile.am files is easy to learn, I bow to your brilliance, but myself and many others don't share this experience.

      And anyway I said only tarballs I didnt say anything about source tarballs. Binary tarballs are another very easy way to install a program, even easier than source tarballs, although compatibility may be more limited.

      "The alternative is to make packages and get them into the offical repos. You have to do that for a couple of distributions, and probably test the installation on them as well. That is a large effort for a developer."

      No, as a developer, you should not be making packages (except possibly for the distro you personally use.) Many distributions these days are crufty with proprietary junk and keeping up with all the little peculiarities of each distribution IS actually a lot more effort than typing 'make'. That job is best left in the hands of people who are intimately familiar with their distribution and have the motivation to tolerate its insanities.

      Binary tarballs, as you say, are limited/useless, and don't solve anything (dependency hell, different architectures). Nor is it clear where each directory is supposed to go to (e.g. libs), as this is distribution-specific. In this paragraph you seem to agree with me.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    10. Re:No .tar.gz, Get a package manager by Arker · · Score: 1

      "I was consistently talking about the developers perspective, not the user! "

      OK.

      "If you think editing configure.ac and Makefile.am files is easy to learn, I bow to your brilliance, but myself and many others don't share this experience."

      I dont think it's any harder than lots of other things that developers have to do routinely. Certainly in my experience it is much easier than trying to grapple with e.g. RPM packaging.

      "Binary tarballs, as you say, are limited/useless"

      I didnt say that at all. They are great! But not all distros are compatible. And it's not the developers job to fix the broken distribution.

      " (dependency hell, different architectures)"

      Different architectures require recompilation, obviously. Make is the best tool for that. Dependency hell? If I understand you correctly that is a package manager problem. It used to drive me nuts years ago trying to get RedHat to work, but I have used Slackware for decades without seeing anything like it.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    11. Re:No .tar.gz, Get a package manager by Anonymous Coward · · Score: 0

      That means you need to deal with automake and friends which are insanely obscure and hard to learn.

      You pretty much have to use autoconf anyway if you want any kind of portability. Yes, it is a pain, but doing without it by expecting the user to edit the makefile just to specifiy a different installation prefix (like his home dir) is much worse. Don't shift the work on the user! If you really can't figure out autoconf, at least try one of the many simpler substitutes available.

  4. Missing anything? by Anonymous Coward · · Score: 0

    What about DEB/RPM files? Not everyone wants to build everything from source.

    1. Re:Missing anything? by Anonymous Coward · · Score: 0

      I refuse to, its not my place to do a developers job

    2. Re: Missing anything? by corychristison · · Score: 2

      Any distro with a repository, its up to the distro package managers.

      In some cases this is the developer of the software, but usually not. Dependencies can be tricky.

  5. "Before..." by gmuslera · · Score: 2

    Some of those things can come after it got released. You probably want to build a community around it, and that community could do some of that work, or have better ideas and feedback on how to do them. Be sure that don't contain anything that is not meant to be public, release and announce it. You could build some momentum before releasing it, gathering people very interested on it as betatesters or to give feedback before going fully public. I.e. Docker had some showing in presentations giving a hint of what it did, and how, and some weeks later released the base code, and documentation, tutorials, extra tools, and community contributions piled up with time. Delaying till everything is ready and perfect risk not releasing it at all.

  6. Ensure it is licensed by Anonymous Coward · · Score: 1

    GPL, LGPL, MIT, etc etc

    1. Re:Ensure it is licensed by Anonymous Coward · · Score: 3, Interesting

      And bear in mind that the license you choose may impact your target audience. Many devs who may want to use your project are working for companies in which the dev has little or no say about what licenses are acceptable. (Permissive licences like MIT/BSD/Apache2.0 are more likely to be acceptable, whereas in my experience GPL is more likely to meet resistance, or even immediately block people out).

    2. Re:Ensure it is licensed by Anonymous Coward · · Score: 0

      Agreed. The type of license can dictate who can and will use the code. The key though is that it needs to have a license in the first place. If it doesn't specify one and I go ahead and use it, and a license is later slapped on it that conflicts with my existing code base, I'm in a difficult position. More likely is that I won't touch if it is unlicensed, because I don't know where I stand.

    3. Re:Ensure it is licensed by EvanED · · Score: 1

      More likely is that I won't touch if it is unlicensed, because I don't know where I stand.

      If it's unlicensed, it's very easy to know where you stand: nowhere, and legally speaking you have no permission to do anything with it.

      (If it's on Github you have some token rights like the ability to look at the code and fork the repository -- whatever that means -- but probably don't have the right to, say, distribute it outside of Github. IANAL, YMMV.)

    4. Re:Ensure it is licensed by petdance · · Score: 1

      You're absolutely right, and that was an oversight on my part. I never think about licensing when I start a project, because I always go with Artistic License 2.0. When next I update the article, I will be sure to put in a bullet about license.

  7. Missing one thing... by djupedal · · Score: 1

    It's your code.describe best how to test it, log it and bug it so it won't go untended as it grows.

  8. Prepare for Debian by G3ckoG33k · · Score: 5, Insightful

    Prepare for Debian instead of Ubuntu so, that more users can enjoy your freedom. Starting our preparing for Debian will definitely reach out to more users. Ubuntu and Mint and many other distros are in many cases directly or indirectly based on one of the latest versions of Debian Sid. Preparing for Ubuntu directly is less attractive for that and other reasons.

    1. Re:Prepare for Debian by Anonymous Coward · · Score: 1

      Also, consider planning for multi-arch as well. Both 32- and 64-bit intel, at least, in the source. Don't make people have to choose now, and then be stuck with it.

    2. Re:Prepare for Debian by Jezral · · Score: 4, Informative

      I'd love to do that, but getting a package into Debian is a nightmare that I have simply given up on. Even the simple guides are 50 pages long and a mass of not quite up-to-date information.

      Ubuntu makes it trivial. Even if you can't or don't want to get into Ubuntu base, you can just make a PPA on Launchpad and get automatic building for all supported editions and archs of Ubuntu.

    3. Re:Prepare for Debian by Arker · · Score: 5, Insightful

      That's bad advice. Publish a proper tarball and let Debian customise it for Debian, Ubuntu for Ubuntu, etc. Do one job well, dont try to do everything.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    4. Re:Prepare for Debian by Anonymous Coward · · Score: 1

      Ubuntu now reject new packages and tell people to put packages into Debian, which isn't that hard now:

      http://mentors.debian.net/intro-maintainers

    5. Re:Prepare for Debian by Warbothong · · Score: 1

      Getting a package into Debian is hard, but it's perfectly acceptable to release Debian packages standalone alongside your tarballs, or to host your own repository. The package format itself is pretty simple, and making them can be as easy as arranging your files, writing a few lines in a control file and running "dpkg-deb -b". I do this when I make changes to my system, since it makes them easy to undo.

      The 50 page guides are for Debian's own standards, which you must follow to get a package into Debian. If you're providing it from your site, you don't have to follow them at all, although they contain good advice. Also note that the guides contains lots of optional sections: if your program doesn't use Python, Perl, compilation, setuid, etc. then you can skip those sections.

  9. Build environment by Anonymous Coward · · Score: 4, Insightful

    Clearly documenting the required build environment and tools is a must - poor build environment documentation is a huge barrier to anyone wanting to jump in and make some small (but worthwhile) improvement, thus defeating a large part of the point of open source.

    Too many O.S. projects take the attitude of "it builds fine on my setup", leaving potential contributors with a frustrating guessing game trying to work out what that setup might be.

    1. Re:Build environment by leuk_he · · Score: 1

      The problem there is that a lot of developers do not understand their build environment. It just works. They are not aware that they use libray X Y and Z. You only need to be aware of that if something is not running.

      But a few lines in the readme hinting what environment was used can get you a long way.

    2. Re:Build environment by UnknownSoldier · · Score: 1

      I can't agree more!

      1. There are some great open source programs out there -- unfortunately if I can't freaking compile _your_ code _I_ can't help verify that my patches actually work! Result? Not even going to waste my time trying to compile your crap.

      2. Give me a freakin SUMMARY of WHAT problem your open source program solves.

      3. Use a GOOD coding style with _descriptive_ variable names. Have a wiki or page that DESCRIBES the coding standard used by the project.

      4. List what LICENSE the code is. Is it GPL? BSD? MIT? Apache? Public Domain? NOCC? etc. Code Available =/= Open Source =/= Free!

    3. Re:Build environment by Anonymous Coward · · Score: 0

      You should just be able to run "make" (or "mk" if you are plan9). Anything more complicated than this is sin.

  10. Tarballs? Go Back to the 80's by Anonymous Coward · · Score: 1

    I deliberately eschew tarballs. Especially for a young project, having the repo bootstraps the contribution process. Found a bug? Fork it and issue a pull request. Even if the maintainer gets hit by a bus at least you now have a sane way of tracking your customizations and bug fixes.

    It's infinitely more useful. Tarballs make me think of shitty sourceforge days.

    Packages OTOH can be nice. Until you can't figure out where the hell the Ubuntu package maintainer decided to put the config files. Until you're affected by a bug and need a bleeding edge release. Then you're back to downloading and compiling from source (or finding a 3rd party PPA) anyway.

    In fact, I'd encourage others to compile from source so that you can work out any discrepancies there. For an open source project you want to breed as many contributors as you can. Get as many people running your test suite as you can in case there's oddball environment differences that mean you're the only person alive capable of compiling it.

    1. Re:Tarballs? Go Back to the 80's by TheRaven64 · · Score: 2

      Tarballs make me think of shitty sourceforge days. Packages OTOH can be nice.

      Tarballs are the input for most packaging systems. If you don't publish a tarball, then I have to create one before I even start packaging your code. So you get moved to the bottom of my list. And that's probably fine for a fast-moving project, where you don't want people running an old version and sending reports for bugs that are already fixed, but for a more mature project make sure you make life easier for packagers. That means:

      • Provide the tarballs
      • Provide a list of dependencies (don't make me run configure / CMake scripts, parse their output, and chase things down).
      • Ensure you specify minimum / maximum versions of dependencies for things you depend on, if they matter.
      • Ideally, provide a list of files you will install and where for each build configuration (I can generate this automatically if it's fixed, but it's harder if it's depends on the build configuration)
      • Provide a concise description of your project, both as a single-line summary and as a few paragraphs, for the descriptions in the packages.

      If you provide all, or even most, of these then I can probably package your software in 5-10 minutes.

      --
      I am TheRaven on Soylent News
  11. Re: you forgot windows by Anonymous Coward · · Score: 1, Interesting

    Tar.gz is nice, and .deb is even better, but the hard truth is that most users use windows, so you really need to publish an MSI or an EXE.

    Look into WiX or NSIS to create an installer for Windows.

  12. Write a clear, concise definition by Anonymous Coward · · Score: 5, Insightful

    If you can't write one sentence that describes it and one paragraph that explains what it does, nobody will ever know what it is. Write for someone who doesn't have your experience, doesn't know how to code, but has the same problem. Specifically, include on the description page phrases that could describe the problem you're solving so that google will point people there.

    The other big thing, write accesible error message. Today's best example. eLAIX is an extension to libreoffice that converts ODTs to EPUBS (see that easy to google phrase there). It barfed all over a word document that I imported into libreoffice. Known bug. However, google has no results for the error message. After an hour of searching, I figured out that it's a known issue with word documents, and that cut/paste as RTF into a new libreoffice writer will clear the whatever breaks it. If the error message had been "googleable" or the error message given a "this might be a word document import that failed" then I would have saved an hour chasing this down.

    Yes, your users will break it in unimaginable ways.

    1. Re:Write a clear, concise definition by Anonymous Coward · · Score: 0

      If the error message had been "googleable" or the error message given a "this might be a word document import that failed" then I would have saved an hour chasing this down.

      One note specifically about this bit, sometimes known bugs aren't able to be detected separately from unknown ones. For example, let's say a third-party Java library has a method that throws IOException when something goes wrong. It is known that it happens with .docx files. This doesn't mean it is known to not throw it for all other file types.

      Granted, you could still write up a more useful error message than "somethin' dun brokeded". :)

  13. Post it to Slashdot! by gentryx · · Score: 4, Funny
    --
    Computer simulation made easy -- LibGeoDecomp
    1. Re:Post it to Slashdot! by bored_engineer · · Score: 1

      I'm sorry to say that I've no use for what you've put together; I really wish I did, though. You made me chuckle at the end of a series of really long days. Thank you very much.

    2. Re:Post it to Slashdot! by gentryx · · Score: 1

      Thanks, I appreciate it!

      No worries though. I'm currently in the technology transfer phase of my PhD, meaning that the project has achieved most of its scientific goals and I'm now rolling it out to the users. We already have a couple of users and the project even gathered a certain momentum recently, so I'm fine. But attracting more obviously wouldn't hurt.

      --
      Computer simulation made easy -- LibGeoDecomp
    3. Re:Post it to Slashdot! by bored_engineer · · Score: 1

      . . .transfer phase of my PhD. . .

      I That's farther than I guessed you were.

      . . .couple of users. . .

      You've astounded me further. My first guess after looking over your project was that you would be lucky to get any users at all. I'm not, by any possible stretch an expert in your field, so don't take my opinion with even a grain of salt. (I design safety improvements for roads in an arctic environment. It seems possible, though, that somebody might use your specialty to help with mine. I love convergence.)

      Good luck with your project, and thanks for the hearty chuckle.

      p.s. You inspired me to take a second look. Now, I *really* wish I had a use for your project. You've been extremely thorough. I couldn't finish your FAQ without other references, and I seriously doubt that I have even a rudimentary understanding of what you're doing. Again, I wish you luck, as you've clearly worked hard to make your own (luck.)

    4. Re:Post it to Slashdot! by StripedCow · · Score: 1

      Very interesting. Do you use multigrid methods to solve the equations?

      --
      If Pandora's box is destined to be opened, *I* want to be the one to open it.
    5. Re:Post it to Slashdot! by Anonymous Coward · · Score: 1

      It looks decent, though I go to the FAQ, and I see "Please look here for a short review of how it relates to the competition.", and I go to that link, and there is no information about "the competition". And... "So far no one has come up with a language/compiler/library that could automatically parallelize any sequential code on any hardware."... have you seen Chapel? It is not perfect, and it looks like you have a nicer polish to some things, but is actually quite good for many things. (I just code to MPI directly... I don't see what the big deal is for parallel processing for the vast majority of things, but I see why there would be a niche for what you do. Best of luck.)

    6. Re:Post it to Slashdot! by gentryx · · Score: 1

      The library is really built with the mindset "one grid to rule them all". Also, it's not limited to solvers. But yeah, you definitely can use it to write multigrid solvers. It's a bit unorthodox though, so I guess anyone trying that should send me an email so I can explain the methodology. The basic idea is simple: 1. define the iteration scheme, 2. create multiple grids (or levels), 3. couple them (for interpolation), 4. run :-)

      --
      Computer simulation made easy -- LibGeoDecomp
    7. Re:Post it to Slashdot! by gentryx · · Score: 3, Interesting

      It looks decent, though I go to the FAQ, and I see "Please look here for a short review of how it relates to the competition.", and I go to that link, and there is no information about "the competition".

      Ah, sorry. As the text evolved, that paragraph was buried. I changed the layout and link so that it is more visible.

      And... "So far no one has come up with a language/compiler/library that could automatically parallelize any sequential code on any hardware."... have you seen Chapel? It is not perfect, and it looks like you have a nicer polish to some things, but is actually quite good for many things.

      Yes, I'm aware of Chapel. This is a good example for the current state of generic auto-parallelization: it works well, as long as the user augments his sequential code so that the compiler/runtime/whatever can distill the parallelism from it. That's still not possible without augmentation. So the user needs to understand how a parallel system works and how his algorithm might be mapped to it. Trivial for someone who does this for his daily living, but difficult for someone who's new to parallel computing.

      Also, for many applications the optimal algorithms to be used on the various target hardware architectures differ significantly (e.g. for stencil codes a 2.5D wavefront on multi-cores, but a horizontal iteration with 32-wide stride on GPUs...) Such different algorithms can't be "discovered" by some generic software (at least no one, not even the Chapel developers have achieved this), so those algorithms have to be encapsulated in specialized libraries. Which is what we do for our domain "computer simulations".

      (I just code to MPI directly... I don't see what the big deal is for parallel processing for the vast majority of things, but I see why there would be a niche for what you do. Best of luck.)

      Thanks. :-) Users of my library are mostly scientists who want to simulate something big, without having to spend months learning OpenMP and MPI and CUDA and so on. So yeah, there is a niche. And thanks to the stagnating clock speeds and growing heterogeneity of HPC hardware, that niche is growing fast. Exiting times.

      --
      Computer simulation made easy -- LibGeoDecomp
    8. Re:Post it to Slashdot! by semi-extrinsic · · Score: 1

      I must say I am intrigued by your project. However, the main requirement for me (and many other scientists with semi-legacy codes) is Fortran interoperability. Can I use your project with my Fortran code? If not, that should be a goal for the project IMO.

      --
      for i in `facebook friends "=bday" 2>/dev/null | cut -d " " -f 3-`; do facebook wallpost $i "Happy birthday!"; done
    9. Re:Post it to Slashdot! by Anonymous Coward · · Score: 0

      Yes, I'm aware of Chapel. This is a good example for the current state of generic auto-parallelization:

      It would be the perfect thing to put into this FAQ... "here's the alternatives... ___ ... here's what we do better than them. here's another alternative ... ___ ... here's what we do better than them. here's an alternative ___ and it's very good, if you want to do this somewhat different thing, maybe see them, but that's not our goal here". When you do this, someone searches for one of these other things, they'll come across your project, and if it's really better, you might get other users to switch. And if you're really better than the others, you won't lose anyone. And then your website becomes a respected resource instead of some niche product.

      Also, I second the comment below about Fortran, especially if you can provide a simple example -- If you're targeting scientists that don't want to learn new libraries or new languages, that would be critical.

      Users of my library are mostly scientists who want to simulate something big, without having to spend months learning

      ...one of these other libraries? (facepalm)

      OpenMP and MPI and CUDA and so on

      Providing CUDA functionality to existing Fortran code without learning CUDA would be a godsend to many people, and people who use GPUs in science are absolutely the most open to new ideas. And as best I understand it, there is no point in combining OpenMP and MPI anymore -- for years MPI has been sufficiently fast on shared memory systems to be indistinguishable in performance -- the advantage to OpenMP is just ease of use.

      And finally, one thing that seemed bizarre after looking at your website for a while... there is no list of people involved. One can guess from looking at the publication list and such, but there is no "Developers: John Public, Jane Smith" anywhere.

    10. Re:Post it to Slashdot! by gentryx · · Score: 1

      Yes, I'm aware of Chapel. This is a good example for the current state of generic auto-parallelization:

      It would be the perfect thing to put into this FAQ... "here's the alternatives... ___ ... here's what we do better than them. here's another alternative ... ___ ... here's what we do better than them. here's an alternative ___ and it's very good, if you want to do this somewhat different thing, maybe see them, but that's not our goal here". When you do this, someone searches for one of these other things, they'll come across your project, and if it's really better, you might get other users to switch. And if you're really better than the others, you won't lose anyone. And then your website becomes a respected resource instead of some niche product.

      That's a great suggestion. I've updated the FAQ to include this. Thanks!

      Also, I second the comment below about Fortran, especially if you can provide a simple example -- If you're targeting scientists that don't want to learn new libraries or new languages, that would be critical.

      I've compiled a quick example on how Fortran kernels can be used from within the library. It's not perfect but should get people started.

      Users of my library are mostly scientists who want to simulate something big, without having to spend months learning

      ...one of these other libraries? (facepalm)

      To be fair: learning any of these tools (LibGeoDecomp, Physis, whatever) greatly reduces the effort for parallelizing a simulation code, even IF you already know MPI and/or CUDA. Not to mention if you DON'T know either.

      OpenMP and MPI and CUDA and so on

      Providing CUDA functionality to existing Fortran code without learning CUDA would be a godsend to many people, and people who use GPUs in science are absolutely the most open to new ideas.

      This appears to be really tricky. Currently there is no freely available CUDA capable Fortran compiler, which is efficiently a show stopper for us. PGI is probably the only vendor to do so. We have a PGI license and could probably build some interface on top of Fortran CUDA, but then: who would use it? Very few, if any. I'd delay this until s/o clamors for it.

      And as best I understand it, there is no point in combining OpenMP and MPI anymore -- for years MPI has been sufficiently fast on shared memory systems to be indistinguishable in performance -- the advantage to OpenMP is just ease of use.

      Right. There is one benefit though: if your code can exploit the shared CPU caches. There are such algorithms for stencil codes, e.g. in this paper.

      And finally, one thing that seemed bizarre after looking at your website for a while... there is no list of people involved. One can guess from looking at the publication list and such, but there is no "Developers: John Public, Jane Smith" anywhere.

      Good point. Since I'm so involved with the project, this is something I never looked for. I'll add it to the website, too. Thanks!

      --
      Computer simulation made easy -- LibGeoDecomp
  14. Sign those releases! by Anonymous Coward · · Score: 0

    Some of us are more paranoid than others. I prefer my software to be signed with PGP, or at the very least, accompanied by a SHA-2 hash. It disappoints me how few open source projects regularly do this.

  15. Entitlement by Anonymous Coward · · Score: 1

    It's nice to set up mailing lists, etc., but it's hardly something you should feel any obligation to do. If you have a relatively small, well-written, self-documenting library or utility, it's already a gift. If you've finished with the code, and you're no longer willing to invest time and effort beyond bug fixes, well, maybe that's an opportunity to take donations, or leave it in the wild for others to do with it as they please.

  16. "Before you release ... write some documentation" by Anonymous Coward · · Score: 0

    He he. Ha ha ha. HAHAHAHA! Oh, my lord, that killed me. Ahhh, too funny. Oh my goodness, my sides hurt. Please, no, here I go again... HAHAHAHAHAHA!

  17. And ship a goddamned executable by Anonymous Coward · · Score: 2, Insightful

    Nobody wants to track down 85 dependencies, half of which will no longer work with the rest of the code base, in order to run whatever software you are releasing. It's 2013, and you can afford to bloat the .tar.gz file with a precompiled build. It's not like you're paying for your own bandwidth. /rant

    1. Re:And ship a goddamned executable by Anonymous Coward · · Score: 0

      I can only agree, noone (including me) want to trackdown 85 dependencies.
      Please, is it to much to ask to actually develop your own code.
      I understand it goes faster to include massive with 3pp libraries.
      It's also very unintresting when you can not fix bugs, since the bugs is in the 3pp.
      I'm sure you dont use 90% of the 3pp anyway.
      Please, you do not need all these dependencies, I really mean it.
      Use standard libraries, and only when you really need them.

    2. Re:And ship a goddamned executable by Chemisor · · Score: 1

      If the project will no longer compile with the lastest versions of the 85 dependencies, the precompiled binary will not run with the latest versions of the 85 dependencies. We ship the source code precisely so you can build it to match what you have installed.

    3. Re:And ship a goddamned executable by Chemisor · · Score: 1

      I can only agree, noone (including me) want to trackdown 85 dependencies. Please, is it to much to ask to actually develop your own code.

      Well, yes, it is too much to ask. Your average programmer is not qualified to rewrite absolutely everything from scratch. When he tries, he often makes bugs that have long been fixed in the available libraries, resulting in lower quality product for you. Reinventing the wheel this way also takes longer, which makes the product more expensive.

  18. Documentation, documentation, documentation by emblemparade · · Score: 2

    Writing (and maintaining) good documentation can easily take as much time as writing and testing the code, if not longer. But it's worth doing. Please, please document. Many more people will flock to your product, in turn giving you more influence and fame. It's worth it!

  19. Re:Compiled Windows Binaries by Joce640k · · Score: 1

    In most cases it's easy if you already know how and have the environment set up.

    So...basically nobody. Way to alienate a lot of potential users.

    --
    No sig today...
  20. No by drwho · · Score: 2, Insightful

    Please don't. The world has enough crap code as it is. Unless your code is GOOD, keep it to yourself. You may think 'well, it may be bad, but someone will find a use for it' - but the very existence of bad code to solve a problem can keep goo code form evolving, as people adopt the crap. Please, fix your code before posting it for public consumption. If you can't, then find someone who can or mark it as 'crap code please fix - do not deploy!'. People will respect your for your honesty.

    1. Re:No by petdance · · Score: 1

      Open source thrives *because* of the unfettered uploading of shit, not in spite of it.

    2. Re:No by rubycodez · · Score: 1

      you're confused, all the major project started out as shit that was widely distributed then improved: Linux, gnu compiler collection, apache http server, sendmail...

      meanwhile, in the closed source world, same model followed. windows 1.0 sucked too

    3. Re:No by Anonymous Coward · · Score: 0

      started out as shit. and are still shit, just bigger shits.

    4. Re:No by rubycodez · · Score: 1

      said your mother

  21. Build a community around your product. by Anonymous Coward · · Score: 0

    Just having a mailing list is not enough, you need to build a community, which means 1. you need to be active on that mailing list and 2. provide support as well.
    To get your project noticed, you'll likely have to shamelessly promote it. Your project is probably not the only one of its kind (typically, you're not that special). If you're building an open source alternative to a closed source project, you may want to join an existing mailing list of the closed source project to humbly announce your own; this worked well enough for Linus' little OS kernel as well, if I recall.

    You may want to go a few steps further than releasing on git or building a tar ball. Releasing pre-compiled versions Windows and Mac can contribute greatly to the success of your project. Just think where popular open source projects such as Firefox would be if their users had to compile it themselves.

    Write a manual, and make it available online - ideally not (only) as PDF but as a set of HTML pages. Users are not going to read it - most of them anyway, but you'll be able to link to the relevant sections when responding to frequently asked questions so you don't have to waste too much time supporting your software. Just don't be arrogant about things, "Jeez can't you people RTFM?" is quite blunt.

    Finally, that song "Sing" is actually not from Sesame Street but by the Carpenters.

  22. It's quite alarming that... by rippeltippel · · Score: 2

    ...He didn't mention how to choose an appropriate software license!

    That's definitely something that impacts the popularity of any open-source project.

    1. Re:It's quite alarming that... by AHuxley · · Score: 1

      Yes get that aspect down from day one :)
      Get your anti-DRM clauses in early.

      --
      Domestic spying is now "Benign Information Gathering"
    2. Re:It's quite alarming that... by StripedCow · · Score: 0

      Simple. Choose GPL if you want your project to be one day superseded by one which has a more liberal license.

      Otherwise, choose a BSD license.

      --
      If Pandora's box is destined to be opened, *I* want to be the one to open it.
    3. Re:It's quite alarming that... by Anonymous Coward · · Score: 0

      Simple. Choose GPL if you want your project to be one day superseded by one which has a more liberal license.

      Otherwise, choose a BSD license.

      Yeah, that must be why the BSDs have superseded Linux almost everywhere ... oh, wait ...

    4. Re:It's quite alarming that... by petdance · · Score: 1

      You're absolutely right. It was an oversight on my part because I never think about it myself. I always just use Artistic License 2.0, so licensing choices are not on my radar. When I update the article, I will add a bullet point about licensing.

  23. Re:Compiled Windows Binaries by Samantha+Wright · · Score: 5, Interesting

    Oh yeah, just let me download and build all these libraries your project requires... oh, what's that? One of the libraries requires Visual Studio 2003 Ersatzpress Edition to compile? And another one needs gcc-mingw-0.0.1-super-alpha-pre-release-dinosaur-version? Okay, let me just... get on that...

    If Windows binaries aren't provided, it means no one on the dev team could get them to build. (Maybe they can't figure out how to un-#pragma the #pragging #pragma correctly?) That's a big warning sign.

    --
    Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
  24. Re:Compiled Windows Binaries by Anonymous Coward · · Score: 4, Insightful

    If Windows binaries aren't provided, it means no one on the dev team could get them to build. (Maybe they can't figure out how to un-#pragma the #pragging #pragma correctly?) That's a big warning sign.

    Or maybe it means no one on the dev team uses Windows. Pretty much the same reason why you don't see a binary for Mac either.

    What made your platform so damn special that we need to provide a binary for your platform when we don't provide binaries for any other platform?

  25. Re:Compiled Windows Binaries by Samantha+Wright · · Score: 1, Insightful

    How does "not remotely POSIX compliant and hence generally not source compatible" sound?

    --
    Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
  26. Re:Compiled Windows Binaries by Anonymous Coward · · Score: 1

    How does "not remotely POSIX compliant and hence generally not source compatible" sound?

    It sounds like your platform sucks, that's how.

    If you want me to provide a binary for your crappy platform, are you at least willing to donate the money needed so I can purchase a license for the platform? Maybe even money for hardware too.

  27. Re:Compiled Windows Binaries by Samantha+Wright · · Score: 5, Insightful

    Hey, you're welcome to say Windows isn't supported. That's totally your choice. Just don't say something is supported when it isn't. There are a lot of half-assed OSS projects out there that do this. (That being said, you don't need the hardware; VMware Player is close enough to native performance. And to some extent, even WINE and ReactOS can provide an alternative to getting a Windows licence if the software's simple enough.)

    --
    Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
  28. Don't wait, post the code now! by Anonymous Coward · · Score: 1

    Pick your FOSS license and get that code out there, don't wait. You can do all that other stuff, but if you want to contribute, get your code out there now!

  29. Windows and Mac binaries: difficult by xiox · · Score: 4, Informative

    It can be very difficult. My scientific plotting package, veusz, was written using Python and Qt, so it should be easily portable. However setting up a sensible developer environment on Windows to compile the Python C extensions was a nightmare. Windows is pretty developer-hostile if you're used to Linux. Trying to find and install the correct version of Visual Studio Express was difficult. I had to learn far too many things about the registry, DLLs, building installers, etc. Mac OS X was rather more difficult, however. You have to download the massive Xcode and the non-standard way that Mac OS packages executables and libraries was very difficult to understand. It took a long time to get fat binaries working.

    You do get a different class of user on Windows and Mac OS X, however. The Linux people are closer to being knowledgeable about development, whereas Windows and Mac OS people are primarily users, wanting more help and hand-holding.

    1. Re:Windows and Mac binaries: difficult by MobyDisk · · Score: 1

      Allow me to help.

      Trying to find and install the correct version of Visual Studio Express was difficult.

      Well, there's Visual Studio Express 2005, 2008, 2010, and 2012. That's not so hard. You will want to use 2012 since that is the latest.

      I had to learn far too many things about the registry, DLLs, building installers, etc

      Don't use the registry. DLLs = .so, installers = installers. That's about it.

    2. Re:Windows and Mac binaries: difficult by Anonymous Coward · · Score: 0

      Now all the 3rd party libraries.

      It's usually easier to use a MinGW cross compiler in Linux than to set up a Windows (MSVC) development environment.

    3. Re:Windows and Mac binaries: difficult by xiox · · Score: 1

      Well, there's Visual Studio Express 2005, 2008, 2010, and 2012. That's not so hard. You will want to use 2012 since that is the latest.

      In theory, though Python is compiled with a particular version of Visual Studio. It's rather hard to compile for yourself, as the latest versions aren't supported. Extensions have to be compiled with the same version as Python or you get cross-compatibility C library problems. This makes it tricky if you want to link a Python extension (an old Visual Studio version) against Qt (perhaps mingw when I looked at it). I ended up having to compile everything against the version of Visual Studio that Python was built with.

      Don't use the registry. DLLs = .so, installers = installers. That's about it.

      I try to avoid the registry, but you have to at least register file types there and Qt uses it to store settings be default. DLLs weren't too bad until I got to the stage of manifests and conflicting crt versions.

    4. Re:Windows and Mac binaries: difficult by dotancohen · · Score: 1

      It can be very difficult. My scientific plotting package, veusz, was written using Python and Qt, so it should be easily portable. However setting up a sensible developer environment on Windows to compile the Python C extensions was a nightmare.

      I would love if you would expand on how you did set up. I'm working on a small Python / Qt (pyside) application that I would love to make available, but I would need to know how to create a Windows installer. I do have other open-source software on Github, by the way, but it is all libraries.

      --
      It is dangerous to be right when the government is wrong.
    5. Re:Windows and Mac binaries: difficult by xiox · · Score: 1

      It's not so difficult if it's pure Python and you're not compiling anything. The main problem was getting Qt to compile so I could compile my extensions. For your project, I'd make a virtual machine with something like WinXP (this makes it easier to make new releases if nothing changes), install Python and the associated PySide. Install any other modules you need. I used PyInstaller to make the runnable exe file. See e.g. here for my pyinstaller file. I then used NSIS to make an installer using this configuration file.

    6. Re:Windows and Mac binaries: difficult by dotancohen · · Score: 1

      Thank you! I've now got some homework to do...

      --
      It is dangerous to be right when the government is wrong.
    7. Re:Windows and Mac binaries: difficult by MobyDisk · · Score: 1

      Well put.

      Hmmm... yeah, I can see the problem with different C runtime versions. Why does Microsoft have a different CRT with each edition of the compiler? (That's probably rhetorical)

      I find it annoying when projects don't build with the latest C compilers. If your C code can't build against the latest version of the standard, that's as good as a bug. Although that is why so much OSS uses gcc instead of the Microsoft compiler. You don't have to know what subset of the standard the MS compiler enforces.

  30. Solve a problem that needs solved. by tlambert · · Score: 5, Interesting

    Solve a problem that needs solved.

    For example, a guy wrote a Microsoft LAN Manager clone and talked about it on usenet. I spent six months harassing him to get the source pulled together and released so that I could run it on an Ultrix box for a lab full of AT&T PCs that our lab got as part of a grant from AT&T. The guy's name was Andrew Tridgell. His first message to me after that was "Help! I can't handle the volume of email I'm getting asking about it now!", so I suggested he set up a mailing list and let the people talk to each other instead of him.

    But it all started because he wrote code that solved a problem I needed solved, and then talked about it in a forum I happened to read. Without actually solving a problem, it would have gone nowhere.

    So your number one mission: Solve a problem that needs solved. Otherwise, you are just navel gazing.

    1. Re:Solve a problem that needs solved. by Xyrus · · Score: 1

      ...Otherwise, you are just navel gazing.

      There's an app for that.

      --
      ~X~
    2. Re:Solve a problem that needs solved. by c0d3g33k · · Score: 1

      Best /. post ever. Thanks.

  31. And do not use a Wiki by Nemosoft+Unv. · · Score: 1

    Against Lester's suggestion, do not use a Wiki. I have seen way too many projects with a half-baked or even empty Wiki, since the programmer believed that if he created a Wiki, the documentation will be written "magically" by the users. That is not going to happen, period. The one and only who can actually write the documentation (be it the API spec, examples or user manual) is you, the original programmer. Everybody else is just a beginner...

    --
    "Fix it? It has been disintegrated, by definition it cannot be fixed!" - Gru in Despicable Me.
    1. Re:And do not use a Wiki by Anonymous Coward · · Score: 0

      There's nothing wrong with using a Wiki. What is wrong is to assume that just because you have a Wiki, content will magically appear. But that's the same as with any technology. If you assume just because you've set up a public repository, code will magically appear, you've got the exact same problem.

      The problem is not using this or that technology. The problem is you expecting others to do the work for you. If you don't put enough work into it yourself, most likely nobody else will do either.

  32. Re:Compiled Windows Binaries by Anonymous Coward · · Score: 1

    Actually most software you can compile on Linux using MinGW64 and do a basic test using WINE.
    Yes, your users might run into unexpected issues. But if you want your project to be popular it is a good thing to do, getting a development environment working on Windows is a pain even for advanced users IMHO. And yes, that is entirely Window's fault, the reason Windows works reasonably well is because of all the people investing time into working around its issues.
    And concerning tarballs: git often allows you to download snapshot tarballs directly from the web interface.

  33. Understand the commitment you're making by paj28 · · Score: 1

    So many bad open source projects come from the author underestimating the work in making a project work. It's easy to think "hey I wrote this, somebody gotta find it useful" It's a huge amount of work to make it an effective project. And you have to ask WHY you want to do this - it's a similar amount of work to making your software a viable commercial prospect, which would have the added benefit of putting food in your cupboard. His suggestions are a good start, but in this day and age you need to do more. For example, you really need video tutorials of your software. And once you start putting them together, you start to see more shortcomings in your software, so you stop the video, make some coding improvements, and continue. This is a long process! A lot of people think "hey, when people see this, I'll get contributors to help me" But if you really want things to work out, you need to project manage the contributors. Everyone has their own priorities, and the project lead needs to get everyone working in the same direction. And you've got some tough decisions. If someone sends you a useful patch that's lacking in tests and documentation, what do you do? It's a pain to reject it, but a pain to accept it too. What the project really needs is leadership, and that is a massive commitment.

    1. Re:Understand the commitment you're making by rubycodez · · Score: 1

      but plenty of near-abandonware has been picked up by others and made into something popular and useful. lob the shit out and see what sticks....

  34. No, but. Re:No by leuk_he · · Score: 1

    Think again. why REALLY why do you want to put your source on the internet?

    -Recognision. Your name? --> Then only post excellent code.

    -To get some work done? -> post it, document it, expect notthing.

    -Someone lese to debug your code? -> unlikely, but possible. Users are more likely to recompile and look for the
    #define NUMBEROFBUGS 9
    and change that value. Making a good build environment available helps a lot if you want more people compiling your code. Please include as much depenancies in your tar.gz as possible, even if that is not your code.

    Do not expect miracles however. For every 1000 binary downloads, 30 people will bitch about the colors, 20 will put in feature request that are not feasable, 10 people will download the source, 5 will compile it, and 1 will give you really useful feedback on the source or patch it.

    You can focus on makeing that "1000" number much bigger, or make the percentage of usefule feedback better. The latter requires documentation.

    1. Re:No, but. Re:No by leuk_he · · Score: 1

      By the way, the number 1% download the source is from observations on sourceforge 5 years ago, never looked in this numbers in these GIT days.

  35. required reading by umafuckit · · Score: 1

    TFA really should be required reading for anyone developing a significant open source project. An area which seems particularly in need of help is OS projects in the sciences. Some are very good, but others (sometimes important ones) fail most of the items on the list. They end up being developed by one or two people, no mailing list, minimal docs, no issue tracker, and erratic to zero response from the developer(s). The result is that others download the code, fix the obvious bugs or implement improvements, but these fixes never get incorporated back into the original project because there's no mechanism for doing it. Everyone's reinventing the wheel.

  36. Re:Compiled Windows Binaries by Anonymous Coward · · Score: 2, Insightful

    What made your platform so damn special that we need to provide a binary for your platform when we don't provide binaries for any other platform?

    Other than a 95% market share, nothing.

  37. Donations by jcrada · · Score: 0

    I think another step is to set up a donation account and cross your fingers for donations. In this respect, may be a PayPal account would do, although they require you to do legal paperwork to register as a non-profit, or else pay higher fees. It would be great to have better _world-wide_ alternatives.

  38. Prepare to handle support by jcrada · · Score: 1

    I have an open source project and people often sends me emails to my personal account instead of the community account. At first, I forwarded the emails to the community, but then I realized that it was a terrible practice as I never knew how confidential their information was. Nowadays, whenever I get an email to my personal account, I ask for donations if they wish to keep it confidential. Otherwise, I ask them to please forward the email to the community instead. I think it makes sense as I do not want to repeat myself over problems others have already had.

  39. subdirectory extracting by Anonymous Coward · · Score: 0

    Create a proper tarball (.tar.gz) that is easily downloadable by anyone.

    Oh and create a tarball that extracts in a subdirectory and not in the current one

  40. mailing lists by Anonymous Coward · · Score: 0

    Am I the only person who is put off by having to use mailing lists to communicate within open source projects?

    1. Re:mailing lists by rubycodez · · Score: 1

      plenty of (popular huge) projects use forum systems that cross post from email and/or newsgroups

  41. This just shows... by cjjjer · · Score: 1

    Create a proper tarball (.tar.gz) that is easily downloadable by anyone

    How much people still seem to think that OSS is still only for *nix / BDS flavor of OS's.

  42. Re:Compiled Windows Binaries by Greyfox · · Score: 1
    Hah! My process thingy uses fork and network socket I/O, monitors the state of its child process and tells you how it died! It does everything you ever wanted a process thingy to do on windows! Good luck getting it to compile there! Heh heh heh.

    Oh, hmm. I don't think I've actually written the process thingy up as a library yet. I probably should. It's a bit nicer than system(). Then all those bad programmers out there could do process_thingy("rm /tmp/some_file").wait() instead of system("rm /tmp/some_file"). That's a HUGE improvement. I'll add that to my to-do list for the weekend. Funnily enough I wanted exactly such a library a couple of jobs ago, but they were using Java for their application, and it's impossible to do this in Java without JNI. And my position is if you're using JNI in your java program, you've already defeated the reason you used java in the first place (Write once, run anywhere.) So you may as well use C for the entire project.

    I DID write my socket thingy as a library though, and posted it as a repo on github. You just implement a class that takes its owner, a file descriptor and a sockaddr_in pointer as constructor parameters and overload operator() to do work against the the file descriptor. Mostly it's an academic exercise, but I'll be leveraging it to do some neat things in the coming weeks. It uses pthreads and network socket I/O. Good luck getting that to compile on windows (Maybe you can with cygwin *shrug*.) I don't actually compile any code up there though. It's mostly just up there to illustrate how to do something. Maybe one of these days when I've done enough libraries like that, I'll write a book.

    Oh, yeah, and I don't do windows. I think that's what I was going to say right out the gate. Sorry about that. My bad.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  43. "Needs solved" by Anonymous Coward · · Score: 0

    FYI, it's "needs solving" or "needs to be solved". "Needs solved" is not valid English, and makes you sound uneducated (that's not meant to be an insult, just a FYI).

    1. Re:"Needs solved" by sootman · · Score: 1

      "needs solved" is a common construction in the northeast US. And while it might sound weird, think about it -- is it actually any worse than "needs solving", other than you're just not used to how it sounds?

      --
      Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
    2. Re:"Needs solved" by Anonymous Coward · · Score: 0

      "Needs solving" is actual English. "Needs solved" is what happens when people don't pay attention in school.

      The fact that a person doesn't understand why it's not valid English is precisely what makes a person uneducated. (Again, that's not an insult. I'm just trying to help.) It may be common where you are from, but that doesn't change the fact that to me (and most of the English-speaking world), you sound uneducated.

      Here in Florida, it's common to hear people use the phrase "I seen", which is equally as invalid as "needs solved". Ex. "I seen him yesterday" (which should be "I saw him yesterday") or "I seen him before" (which should be "I've seen him before"). The fact that people get this mixed up doesn't mean they have invented a new form of English -- it simply means they didn't pay attention in school.

    3. Re:"Needs solved" by TheSkepticalOptimist · · Score: 1

      Welcome to Slashdot! I see this is your first time visiting given your moral outrage over and needs solved to correct grammar.

      --
      I haven't thought of anything clever to put here, but then again most of you haven't either.
    4. Re:"Needs solved" by Anonymous Coward · · Score: 0

      Indeed. Here on slashdot, we don't got no problem at all with bad English.

    5. Re:"Needs solved" by sootman · · Score: 0

      http://en.wikipedia.org/wiki/Pittsburgh_English#Grammar

      The construction has been around and in use longer than you've been alive. It's regional, but it's as correct as any other regionalism. It just depends on which side of this fence you fall on.

      --
      Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
    6. Re:"Needs solved" by Anonymous Coward · · Score: 0

      Could be. Though I think in this case it may just be laziness on the part of the individual who could be saying "needs TO BE". But hey, if Joe Pittsburgh can do it, so can me... [error intentioned].

    7. Re:"Needs solved" by Anonymous Coward · · Score: 0

      It's not a "construction", which implies valid English. It's may be local slang, but it's definitely not valid English, any more than the "I seen" example given above. (What do you think of the "I seen" example yourself? If you were hiring somebody for 6 figures, would you consider such a candidate?)

      Again, to somebody outside your geographic area, it sounds like the person is simply uneducated. I certainly would not recommend using the phrase "needs -ed" in a silicon valley job interview. Speaking like that "implies uneducated", but writing like that "guarantees uneducated". ;)

  44. Re:YES by Chemisor · · Score: 1

    ALL my code is GOOD!

  45. Can Abandonware be made OpenSource? by ClassicASP · · Score: 1

    I have a small bit of of software that I think is pretty useful. However, the company that created it many years ago is long since out of business. As I understand it, the company's intellectual rights and other such software was acquired by a lawfirm of some sort. I've spoken with them about it, and they no longer have the original source code to the software, so they have no way to update and maintain it or create updates for it. I told them that its such an old piece of software that its very easy to decompile; we could just decompile and then move forward using that. But they said that even so, they still have no interest in making any attempt to do this because its just not something that they see as a profitable endeavor. So that pretty much makes it shelved and abandoned.

    So what I'm wondering now is if I would be breaking any laws or putting myself at risk of getting sued if I decompiled it and then created an open source project using the decompiled code.

    1. Re:Can Abandonware be made OpenSource? by Anonymous Coward · · Score: 0

      Basically, yes you are probably breaking copyright law. The question is less about whether you're within the law (unless the copyright has expired you're almost certainly not) but rather how you engage with the copyright owner. While they don't care today, your open source project might take off and then they might start to see the project as viable again. They might decide that they don't want the sort of publicity that might come from your sort of effort.

      Personally I wouldn't go down this avenue without advice from a good intellectual property lawyer and without making some sort of deal (in writing!) with the copyright holder that they are on board with you doing your project. There are too many ways that this can go wrong and so few ways that this can go right. If you care that much about the software in question, and the owner cares so little, perhaps you can convince them to let you buy it from them and then you can do as you please.

    2. Re:Can Abandonware be made OpenSource? by Grishnakh · · Score: 1

      IANAL, so take this advice with a grain of salt. You could release this bit of software as open-source, under a new name (and use a pseudonym for yourself just in case, so it's hard for them to figure out it's you). It's very unlikely this law firm will even notice it (is this software specifically for the law field, or something else entirely?). More importantly, however, is they don't even have the original source code: how can they prove that your open-source software is actually owned by them? You could make some cosmetic changes so that, upon running the two programs side-by-side, it's not immediately obvious they're the same, and then you can just claim that yours is a clone of theirs. Since they don't have any source code, they have no way to prove otherwise.

  46. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  47. You're kidding, aren't you ? by Anonymous Coward · · Score: 0

    How much software will compile out of the box in sourceforge without entering the D Hell Hell ?

    20 % ? less ?

    When I said 10% I mean on Linux X86. For other platforms (which are supposed to be supported) it should be 5% or less.

  48. Re:Compiled Windows Binaries by countach44 · · Score: 2

    That platform might not be so special, which is one of the main reasons to provide the binaries. (relative) Homogeneity is one of the strengths of that particular platform. Compiling software isn't a part of most Window's users workflow - if you truly are win-compatible (and know because someone has actually compiled it), providing the binaries will give your project visibility you wouldn't have otherwise. It is a sacrifice that you can make to really contribute your software to a large group of people.

  49. Do Not Make A Fucking Mailing List.... by Anonymous Coward · · Score: 0

    ...it is 2013. A mailing list is 1980's shit. Open source projects with mailing lists are ridiculous.

  50. need an host that set up everything for us by Anonymous Coward · · Score: 0

    host your project on gitlaunchzillaforgepad.com that will deal with every aspect for you.

    automatic build on x platforms (bin +doc in pdf/htm/chm/ebook...)
    PPA sources for bin/sources
    wiki
    mailing list
    irc
    bug tracking
    announces of new major versions or events on selected sites
    donation/crowdfunding
    webconf (blueprints)

  51. Lol, write some documentation!? by TheSkepticalOptimist · · Score: 1

    Actually means create an empty wiki.

    I don't know how many open source projects have little to no real documentation and just a bunch of community driven wikis and message boards (usually complaining) about the project.

    BTW aren't there services like SourceForge ang GitHub all set up to let you publish open source projects? I mean it sounds Andy Lester is about 10 years behind and fucking clueless of how people really publish open source code ( wtf is a mailing list in the 21st century?) Nobody wants you to pump their email with hundreds of useless messages, it the reason why RSS, wiki and community message boards were created in the first place, to supercede mailing lists.

    Why are open sourcers forever looking for a new way to do the same thing someone else has already solved?

    --
    I haven't thought of anything clever to put here, but then again most of you haven't either.
  52. Unfinished code is valuable by dcooper_db9 · · Score: 1

    The headline talks about a pile of code but the article is about assembling a project. They're not necessarily the same thing and I find great value in unfinished code. Yesterday I spent four hours trying to figure out why a simple mysql stored procedure had stopped working. This morning after reading slashdot I realized I was going about it backwards. The stored procedure was open-source. A quick google code search came up with four projects using the function. One of them had been updated. A quick read of the updated version and I understood what had changed. Copy, paste, done. The reference code was not documented or released, but it was open-source.

    --
    I do not block ads. I do block third party scripts.
  53. Re:Compiled Windows Binaries by Anonymous Coward · · Score: 0

    Not for servers...

  54. include a screenshot (or online demo) by Wycliffe · · Score: 1

    If it's graphical then include a screenshot or better yet an online demo.
    When I'm searching for a project the number one thing I'm looking for is
    whether it will fill my current need. The number two thing is whether it
    is more than just an alpha project. An online demo answers all this and
    more. I really don't care if something is somewhat complex to install
    AFTER I decide that it's worth using but I'm not going to spend a lot of
    time trying to find dependencies, etc... for software that might not even
    be what I want or need.

  55. Re:Compiled Windows Binaries by vilanye · · Score: 1

    To be fair, GCC is a cross-compiler unlike the compilers MS produces.

    Testing it is another matter, I am not sure testing Wine is good enough to say your app will run on Windows.

  56. Re:Compiled Windows Binaries by Anonymous Coward · · Score: 0

    What made your platform so damn special that we need to provide a binary for your platform when we don't provide binaries for any other platform?

    Because Windows users are pants-on-head retarded.

  57. Esther Schindler writes by snizzitch · · Score: 1

    "I could have done more . . . open source!"

  58. Re:Compiled Windows Binaries by Anonymous Coward · · Score: 0

    Your one man pet project on SF isn't touching my servers, don't worry.

  59. Bullshit, users love version control by Anonymous Coward · · Score: 0

    As long as it's git or Mercurial.

    Speaking as a user myself, nothing pisses me off more when trying to get some piece of software and finding I can't get it from git or hg. It simplifies my life, since I will inevitably have to patch deficiencies or bugs in the software, by using git to pull the source instead of a tarball, it makes it far easier for me to track local changes, to generate patches for sending upstream and to get updates and takes less bandwidth in a lot of cases*.

    Github is great it has issue trackers and wiki built in, and I don't care for some project that would rather waste time making fancy but useless websites than work on the code. Documentation is great, when it's up to date and correct, which it seldom is. Code on the other hand doesn't lie, it is what it is.

    Of course, totally sucks when a project uses svn, but then you know the code is going to be low-quality to medium-quality at best because of all the problems using svn will inevitably introduce to the development process itself, with it's one-big-merge model, totally broken.

    * at the cost of more bandwidth for the initial pull.

  60. Excellent question! by gentryx · · Score: 1

    I didn't know the answer myself so I investigated. We've never done this before, but yes: with a bit of glue it is possible. Please take a look here. It's just a quick functional prototype. Let me know if you need a boilerplate for a larger code.

    --
    Computer simulation made easy -- LibGeoDecomp
    1. Re:Excellent question! by semi-extrinsic · · Score: 1

      This is very interesting. I will definitely have a close look at LGD in the next weeks, I'll be sure to drop you an email if there are any questions :)

      --
      for i in `facebook friends "=bday" 2>/dev/null | cut -d " " -f 3-`; do facebook wallpost $i "Happy birthday!"; done