What Aspects of Open Source Projects Do You Avoid? 344
paulproteus writes "I'm a Debian developer and a part-time contributor to a few smaller projects. I do a lot of free software-y and open source-y things. Sometimes, though, I don't do them. I figure some other Slashdotters might have similar hang-ups — we contribute to a project, but there are parts that we really dread thinking about. So I wrote a post about having these hang-ups, and I made a place on the web to share how others can help your project. What are the parts that, in your projects, you would be relieved if someone else looked at for you?"
irc.freenode.net (Score:2, Informative)
Re:irc.freenode.net (Score:5, Insightful)
We may find it annoying, but we absolutely should not avoid it. In fact, we should being doing it more often.
Re: (Score:3, Interesting)
The "app store" concept might help a lot in this regard.
Re: (Score:2)
In any case, we will see how that goes over the next few years. The overwhelming majority of novice users are coming from a Windows background, and so "apps store" is still a concept tha
Re: (Score:2)
I don't think you could do that sort of lock-in in Linux even if you wanted to. Apple can only do it because the iPhone/iPod Touch/iPad are themselves locked down. Even that doesn't really stop people.
Anyway, if there were to be a Linux "App store", I would think it would just be a different front-end for the same package managers we already have. I'm on Ubuntu right now, and when I go to "Synaptic Package Manager" (which itself might not be completely obvious to novices as "the way to install software"
Re: (Score:2)
Note the essential qualification, "that Apple is pushing". Windows is completely unrelated, and Apple's app store is exactly as described. And Apple's model is very much what is shaping the public perception of such things. For the average person, game download services like you mentioned don't seem to fall into the same category as 'app stores' any more than music download services do.
Re: (Score:2)
It surprises me a little in a way.
i find installing things using a package manager in linux far simpler than installing something in windows but they need to capitalise on that more.
Re: (Score:2)
if we are unwilling to answer such basic question, people will just get scared (and subconsciously assume that "Linux is not ready for the desktop").
That's not an assumption, that's a conclusion.
Re: (Score:2)
Not necessarily "we", though, slightly more knowledgeable newbies work just as well. In fact that's how large communities tend to operate in the long run, CmdrTaco doesn't go on spreading Slashdot's standards of netiquette to the ~1.5m UID newbies, it's the ~1m UIDs who do so who were in turn trained by us 900k'ers, which we learnt from the 700k'ers and so on.
Re: (Score:3, Interesting)
You could make documentation....
One of the reasons I avoid all this open source stuff is that most of it is badly documented, and quite often there is an almost hostile tone towards people "Just learn unix you scrubs" - no thank you.
If you want your stuff to be used by a lot make simple instructions and a userfriendly interface - if you just make it for your self feel free to ignore this.
Re:irc.freenode.net (Score:5, Interesting)
One of the reasons I avoid all this open source stuff is that most of it is badly documented
THIS
IRC channels, wikis, blogs, mailing lists (and their archives), a set of web pages... none of these is a valid substitute for actual documentation that a user can actually find an answer in. Fine, if you feel the need to be high-tech, edgy, l33t, or whatever, make it a pdf or downloadable html pages. Do not force users to have to jump through any 'extra' hoops to try and get help with a problem they may be having. I'd also add:
Re: (Score:3, Insightful)
Re: (Score:2)
Don't forget the obligatory #projectname-help channel where any questions are answered with some variation on "RTFM" even though the project documentation is a standard README file, a CHANGELOG file, some GPL info and an uncommented listing of the various classes and functions that's seemingly intended for those actually developing the software (and which is practically useless to the end user even when the end user is another developer since knowing there a Foo class, a Bar class and Frongle class doesn't
Re: (Score:2)
That's weird. Each time I joined a dev/support channel to ask a question I got a reasonable answer. I guess it depends on the project.
try this (Score:3, Funny)
Don't bother with IRC. Insist on email instead.
Then train a bayesian classifier (bogofilter) to answer the questions for you.
You just have to remember Bayesian classifiers are good at yes/no classifications (e.g. spam/notspam), so I have several corpuses and test incoming emails serially against them, tagging with the ones which match. Then process the email according to the tag. FAQ should be fairly easy. Use a procmail rule to answer, "thanks for your question, please have a look here".
Re: (Score:2)
You might not know it, but there are things that can’t be searched with a web search. For example if you don’t know the words other people use to describe it in the first place. If it can’t be put in words that simply. There are things only a human can recognize as something. Things that defy being put in query form.
So while you might be able to find them, that doesn’t mean someone else can.
It’s like answering the questions of Family Feud. Harder than it looks.
I only go to IRC
Re: (Score:2)
Oh, it's much worse than that -- this one's actually dim enough to be using Palin-speak!
public relations (Score:3, Insightful)
As long as I don't have to make freindly with the natives, the headhunters, and the unwashed masses, I'm happy.
Adding comments (Score:4, Informative)
Re:Adding comments (Score:5, Funny)
There's the Commentator [cenqua.com] for that.
Anybody have an implementation of that for *nix?
Writing tests, user-level docs, and finding bugs (Score:5, Insightful)
Please, for the love of God, somebody come along and write a test suite for my project. I'm sick of breaking code by accident! ;)
Re:Writing tests, user-level docs, and finding bug (Score:2)
Re: (Score:2, Insightful)
Could you please tell me your projects, so I can avoid them and hence breaking my system? ^^
Re: (Score:2)
Plug alert.
You should have a closer look at Phoronix Test Suite. The infrastructure is the half of the hard part in testing, so then it comes down to just writing the tests.
One thing I don't do is troublesome licenses (Score:2, Interesting)
Re:One thing I don't do is troublesome licenses (Score:5, Insightful)
You could say "I choose to respect the GPL in situations where I am not prepared or legally able to do the work necessary for compliance."
GPL is not troublesome (Score:2)
Re:One thing I don't do is troublesome licenses (Score:4, Insightful)
Going off on not wanting to be called a troll without explaining why GPL is so troublesome to you doesn't help the discussion that you're supposedly trying to have here.
OF COURSE you don't put GPL code on your projects (Score:2)
unless you want your project to become GPL. that's the rule. how hard is it to follow?
Re: (Score:2, Informative)
Have you ever read Slashdot before? There are tons of people who don't like the GPL on here, some with reasonable opinions, some frothing lunatics.
Re: (Score:2, Insightful)
People can use GPL code without giving anything back. They just can't modify it and hide those modifications from their users.
Re: (Score:2)
For very limited uses only, and it can be quite impractical to keep up.
If it's code you only use internally, then nobody knows of your modifications and the codebase can evolve in ways that make it difficult to keep patching. And the moment you distribute it you have to give the code to anybody you distributed to who asks.
You may be able to play tricks like Tivo if you release a physical product, but that doesn't mean you can omit giving the source, and there's the GPL3 for that case. The AGPL covers the we
Re: (Score:3, Informative)
And the moment you distribute it you have to give the code to anybody you distributed to who asks
No you don't. You just have to give it to the people that you give binaries to. The GPL explicitly does not require you to give anything back, it requires you to give freedoms forward. In practice, this often means community-driven development with people contributing their changes upstream. They do this because it's cheaper than maintaining a fork though, not because the license compels them to. And, guess what? That economic incentive applies to permissive licenses too.
Compare, for example, Yahoo
Re: (Score:3, Informative)
Exact same thing I said. You have to give the code to anybody you gave the binaries to who asks for it.
Yes, but Google had to necessarily give the source for their changes for Android, while just try and get the source
Re: (Score:3, Informative)
Which is exactly what he said... Swap "distributed" with "give" and it's nearly the same sentence.
This is just misleading enough to be untrue... While the GPL doesn't force you to contribute "back" (only "forward", as you've called
Re: (Score:2)
Oh, misunderstood what you said.
Use without modification is something that's mostly neutral from my point of view. My interest is in development.
Re: (Score:2)
Wow, what a way to miss the point.
It's GPL licensed. People are free to use it all they want. If 1000 people use it, all the better, it makes more likely somebody will contribute or want to pay me.
It seems a very fair exchange to me -- you can have my code if I can have your.
Trivia (Score:2)
I'm struck by two small things that make me wonder. First, you seem to be using HTTPS for pages that don't need it; not an optimal config. Second, the first project you discuss is a text mode email client!
Re: (Score:2)
Nothing wrong with using HTTPS for normal sites too. It's actually quite stupid that web traffic by default is all in plain-text, even login boxes on most sites.
Cost of certificate and dedicated IP address (Score:2)
Nothing wrong with using HTTPS for normal sites too.
Until your certificate expires.
It's actually quite stupid that web traffic by default is all in plain-text, even login boxes on most sites.
A public HTTPS site requires a hosting plan with a dedicated IPv4 address and a certificate issued by a major CA. You usually don't get those with a typical $35 per year entry-level shared hosting plan from a host like Go Daddy.
Re: (Score:2)
Re: (Score:2)
HTTPS is a nicety for our users. End-to-end cryptography is a great thing; let's have more of it!
I happen to like alpine and text-mode email reading in general.
When you say this makes you wonder, do you just mean I'm clearly some sort of bizarro nutjob? (Nothing to wonder -- that one's probably true.) Or is there something specific you wonder? If so, say what it is, and I can possibly answer. (-:
real hackers don't dread (Score:5, Insightful)
Ahhh, can't resist...
Real hackers don't dread unpleasant tasks. They write code that (perhaps write code that) does the unpleasant task for them.
Re: (Score:2)
Beautiful Code - Chapter 28 "Automated Debugging"
Why aren't we all using that eh? Incredible stuff, data-mining CVS commits and nailing the exact line that causes the bugs.
Beautiful Code indeed.
Re:real hackers don't dread (Score:4, Funny)
How do you write code to do PR/create docs? Please, be my hero.
Simple, you obviously just need to write a program capable of passing the Turing Test.
Of course when you finish you probably want to give it some interesting tasks besides just PR/documentation, last thing you want is for it to get pissed off and go all Skynet.
Re:real hackers don't dread (Score:5, Funny)
Sorry, but I tried that already. It was an incredible AI, so I assigned it the process of documenting my latest project. Unfortunately that was too unpleasant of a task for it, so now it's working on code to create PR docs. I guess I'll just see what it comes up with.
Re: (Score:3, Funny)
See? If you had licensed your code as OSS he wouldn't be obliged to re-invent the wheel! You're a bad parent*.
*If the AI is Turing-test passable, is it considered a being?
Someone avoided performance optimizations (Score:2, Interesting)
Someone avoided performance optimizations on openhatch.org
If you have tough time deciding if you should do those, ask slashdot - that will clear up things!
From a user perspective (Score:5, Insightful)
I think the answer is obvious - what most developers avoid like the plague is documentation.
Re: (Score:3, Interesting)
Too true.
Hey! Unemployed tech writer here! Anybody got something juicy for me to work on? I particularly enjoy API references and programming guides.
Also true from a programmer's perspective (Score:3, Insightful)
I run a couple of small FLOSS projects and I have to confess that producing documentation is by far the most painful task that I need to accomplish. It basically demands that you put down in writing something which, as you've just spent a considerable slice of time which may amount to years writing it, to your own eyes is so blindingly obvious to use that you shouldn't be wasting your time writing about it. Adding to that, it's frustrating to document code because as the source code is easily accessible a
An advantage of Closed Source (Score:2)
This is a real problem with Open Source Software... There is some parts about creating a program that just isn't fun. When you are in a corporate environment you kinda have to go threw the drudge work to get your job done. Now for large open source projects with a good corporate backing this isn't much of an issue as say the IBM Drone will be forced to get the job done in time. However most open source projects don't have the corporate backing and is based only on the joy of the project. When fun stuff
How are volunteers unique here? (Score:5, Insightful)
Re: (Score:2)
I have seen many proprietary software packages that are barely usable, but they are niche products with little competition and thus there is no incentive for anyone to do a good job.
I want to say something snarky about barely usable proprietary operating systems and word processors...I just can't think of anything that's actually funny (as usual).
Re: (Score:2)
What makes you think that corporate programmers are necessarily going to do drudge work better than volunteers?
Because programmers aren't the only people that contribute work to a product. Name three well-known video games made entirely of free software [gnu.org] and free cultural works [freedomdefined.org].
Re: (Score:3, Insightful)
You have a point about Freeciv, but the other two projects you mentioned aren't exactly poster children for the kind of project I was thinking of: well-known even among the non-Linux-using majority and under a free license since first publication. Yes, I know this is a no-true-Scotsman fallacy, but I'm looking for some way for Free gaming to compete on the same level as non-free gaming. If a proprietary platform can have a system seller (e.g. Mario series or that Xbox game that Beyonce sings about), a Free
Re:How are volunteers unique here? (Score:4, Insightful)
What makes you think that corporate programmers are necessarily going to do drudge work better than volunteers?
Judging from the quality of 99% of the FLOSS software out there, I would say that primary difference is that corporate programmers actually do the drudge work whereas the volunteers don't. Or, more specifically, no one volunteers for the drudge work so it doesn't get done.
Re: (Score:2)
Non-toy open source projects have significant corporate backing.
Re: (Score:2)
%s/open source/volunteer-developed/ig
Also, paid developers do the tasks they are assigned, but that doesn't mean the tasks get done well. And if they are not assigned a task, paid developers will often not do it (if they did, they would be wasting money, after all).
So what you see in practice is that, for commercial development, when things get tight, everything besides coding gets dropped, and the code gets sloppy.
But you are right. Volunteer efforts usually end when the volunteers lose interest. That's us
Thanks for Slashdotting me (Score:5, Funny)
Working on fixing the site...
Re:Thanks for Slashdotting me (Score:5, Informative)
The blog post can also be read at http://www.asheesh.org.nyud.net/note/debian/avoiding-working-on.html [nyud.net]
Re: (Score:2)
When you make your stew without beef, do not complain that it is not filling.
Re: (Score:2)
Thanks for visiting my blog as I requested when I submitted my Ask Slashdot question
There, fixed that for you.
Re: (Score:2)
I'm not saying I *mind* the attention. I agree that I was unprepared. (-:
Redirects and aggressive caching (Score:2)
You can all read the links now, thanks to Coral cache for the blog post, and memcached on our server.
Whee!
Unreproducible bugs (Score:5, Insightful)
What are the parts that, in your projects, you would be relieved if someone else looked at for you?
How about unreproducible bugs?
I hate the whole situation.
The bug reports; "Uh, I got an error or something when I tried to run it" "OK, what was the error" "I don't know" "So how do you know theres a problem?"
Failing to reproduce the error. This ties in with the "prove a negative" problem. When to give up? Just document what I'm doing and hope for the best, I guess.
Problems that are probably specification failures but you can't prove it. Closely tied to mystery black boxes that do something, but no one is entirely certain what. Even funnier when there isn't really a spec, just kind of a goal. Best of all, when two groups make opposing policy decisions and want you to consider each other's design to be a bug.
When to close out the hopeless bug. Well, it doesn't hurt anything to keep it open. But bean counters like easily counted beans, like how many open bugs. Will I insult the submitter by closing it? Some 3rd party weirdos like to get involved at that stage, "I'm morally superior to you because I never give up on a bug like you did, ha ha ha" while the reality of the situation is they merely have more spare time, a poor self image, and a desire to very publicly display it. aka the "ticket ss" "I am morally superior and I say we will have order here! Order! Achtung!"
Finally, last but not least, circumstantially, crazy/insane people seem to encounter more unreproducible bugs than typical people. Don't know if they're more ornery so the tend to report more, or more creative so they tend to find more, but I do know they're a pain to deal with.
Other than that, its not so bad.
Re:Unreproducible bugs (Score:4, Insightful)
Here's some advice that I find useful when reporting bugs:
http://www.chiark.greenend.org.uk/~sgtatham/bugs.html [greenend.org.uk]
There are some non-obvious things in there, such as trying things that clearly won't work, if asked to by the programmer:
Somebody reported a bug to me once, and I asked him to try a command that I knew wouldn't work. The reason I asked him to try it was that I wanted to know which of two different error messages it would give. Knowing which error message came back would give a vital clue. But he didn't actually try it - he just mailed me back and said "No, that won't work". It took me some time to persuade him to try it for real.
Re: (Score:2)
I just want to comment on that even if the bug isn't reproducible, it can be very real and very annoying. For example, an application I worked with had random cases of "things stop working". Restart services and the problem is gone - for a while. Increase memory and it's gone for a while longer. Turns out that finally, when they dug it out it was a issue with the caching system that'd not evict and insert properly under some race condition.
Another was a strange case of things going read only, but whenever a
support and testing for Windows (Score:2)
Evangelism. (Score:2)
But I avoid that for everything.
Like preaching close-minded people, who think that they are much more open-minded than you just because they oppose what they perceive as the majority opinion. When they are really religiously locked on the exact opposite view, even sometimes imitating the opposite.
Or in short: People that don’t think for themselves and people that try to force their reality upon me.
Two examples would be
1) Those that completely and totally avoid putting anything closed-source on their s
Documentation and comments. (Score:2)
I wish I had a dollar for every time an OSS project spat out something like "ERROR: 0947445" with no mention anywhere of what aforementioned error code meant or how to fix it, then upon further dredging through a hundred uncommented lines of code to find out what was going on it turns out that the root cause was that I hadn't installed some-package-to-do-something-2.4-beta (which should have been a prerequisite, but isn't).
Open Source Nazis (Score:5, Insightful)
The Curse of "Patches Welcome" (Score:5, Insightful)
Interestingly, some projects could _really_ use a manager, but open-source projects are often begun by programmers who want to get away from having a manager.
There are a few floating managers disguised as QA people and community liaisons that manage to do a pretty good job at this without being recognized. Some of them read here. You're appreciated.
The aspect of open source projects I avoid is (Score:5, Funny)
contributing.
Re: (Score:2, Informative)
Re: (Score:2)
You are always at liberty to 'code as you see fit' so long as you don't try to sponge off of someone else and then ignore their wishes.
Re: (Score:2)
Better, but still not perfect. Even in a 2-clause BSD, I'm still not allowed to strip the copyrights or the license notice. That's controlling what I can do with the code.
I really wish the GPL zealots and the BSD zealots could realize that the world is big enough for two FOSS licenses. They each have their strengths and weaknesses. Which is better is only a matter of opinion and goals for one's project. There is no One True License.
Re: (Score:2)
There can be only one!
Re: (Score:2)
What about the Apache? or Sun? Or Apple licenses?
Personally I write stuff to the Beerware [wikipedia.org] license. I really don't give a flying fuck what you do with code I write because I normally write it for me. If you find it handy, congrats. If you turn it into a multi billion dollar industry, congrats. I don't care.
Re: (Score:2, Insightful)
And don't give me the "viral" lie. Boxee closed the code it wrote and left the GPL XBMC guts open just fine. You just can't close already open code.
Freedom is not binary (Score:2)
Re: (Score:2)
Really?
Suppose a BSD developer writes some code, and a GPL developer includes that code in his work. Now, unless the GPL developer explicitly also relicenses it under the BSD, the BSD developer is unable to make use of the changes the GPL developer has made.
Yes, I know, if the BSD developer were so concerned about that, he'd have licensed it under the GPL. Well, possibly. Sometimes your hands are tied. You have to use a given license because the parent project you are contributing to has that license (u
License incompatibility (Score:3, Insightful)
Actually, the GPL extends plenty of freedom to developers; the only restriction is that those developers cannot impose any further restrictions than those imposed by the GPL
Another problem is that a lot of works, even works under "permissive" licenses, are licensed incompatibly with the GPL. For example, how would one make a video game using engine code and scripts under the GPL with, say, textures under the Creative Commons Attribution License? One might claim that the game engine code, scripts, and non-program assets make up an "aggregate" under the GPL [gnu.org], but I'm still having trouble figuring out what constitutes "other separate and independent works, which are not by their n
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Of course you are basing your argument on false information. Microsoft did not, and has not used open source BSD licensed code in anything I am aware of.
They did *LICENSE* a network stack from Spider Software, who in turn had *LICENSED* the stack from UCB Berkely. This code predates the first open source version of BSD as witnessed by the copyrights present in the code.
In other words, the author of the code (UCB Berkely) gave Spider software explicit permission to use the code in their product, even relic
Re: (Score:3, Interesting)
Yes, precisely. Did you actually *do* it?
You’ll get back the following:
@(#) Copyright (c) 1983 The Regents of the University of California.Incidentally, on my FreeBSD server at home it shows a bit more up to date code:
strings /usr/bin/ftp | grep California
@(#) Copyright (c) 1985, 1989, 1993, 1994
The Regents of the University of California. All rights reserved.
Notice how the ftp in Windows predates the first copyright in FreeBSD. That copyright, 1985 also pre-dates the first open source version. T
Re: (Score:2, Funny)
Not to mention that the op is suggesting that one fights fir with fire, which would normally result in the fir being summarily consumed, immolated, if you will.
Unless the original fire is extremely small AND the fir is extremely green.
hth,
Re:Ego (Score:4, Informative)
Sorry guys 'n gals, but sometimes I need something now and can't wait for it to be included, supported or fixed in an open source solution. My clients aren't patient and don't really care about the necessity for creating an equal playing field for all software developers.
Re:Ego (Score:5, Insightful)
> A lot of open source coders seem to avoid UI aspects and usability like a plague
- Programmers write code.
- UI designers design UI
- Technical writers write user documentation
- Graphical designers draw buttons and icons
The problem is that majority of open source developers are programmers and UI designing is a completely different profession.
Two possible solutions:
- Programmers must learn UI designing also
- We need more UI designers to join us
Re: (Score:3, Interesting)
Re: (Score:2)
I think the problem is not just finding UI designers to join you, but also getting the programmers to accept the UI designers that you find.
Re:Ego (Score:5, Interesting)
Exactly. I'm a professional UI developer and I used to contribute to open source software quite a bit back in the day. I don't contribute much these days mostly because of lack of free time to do so, but this was a major point of contention for me.
The biggest problem is that the programmers have trouble accepting advice for changes to the product they've poured their blood, sweat, and tears into. I've found for the most part that many open source projects are over complicated. One of the best ways to improve the usability of a product is to simplify it. You need to remove or conceal the features that are rarely used. Unfortunately, those features tend to be the hardest to implement, so the person who implemented it wants to make sure people know about it. It's not unexpected that they wouldn't be happy if you suggest that it be removed.
Re:Ego (Score:5, Funny)
You are probably right, but I think open source programmers need more of one more thing , which they maybe not getting enough of. Blow jobs. I think free and open source programmers need more blow jobs. From hot women. We should get the hot women to join in on this idea somehow.
Re:Ego (Score:5, Funny)
So were those! Pattern, perhaps?
Re: (Score:3, Funny)
There are FIVE words!
Re: (Score:2)
Re: (Score:3, Funny)
The situation, of course, is that a player might simply lie about not knowing where enemy units are, or might substitute a different map, or might lie about which units he has killed or where his units are located.
When it comes time to show the cards (we will ignore the issue of exchanging cards; this is also possible to do, using a similar procedure), players 1 and 2 simple reveal their secret keys -- thus, cheating is easily detected, because player 2 can see if player 1 lied about his hand, and visa versa.
I don't think your plan would help detect players whom lie about enemy units.
Assuming the whole point is the actions are public but some items are hidden, and you want to prevent substitution, you'd just hash, sign, and share your interpretation of the gameboard at each move, and then at the end, when its time to reveal the board and tally up and see who won, you reverse engineer what the board should be at each step working backwards, recompute the hashes, and make sure the provided and calculated hashes m
Re: (Score:2)
What plan? I described a solution to a simpler problem, Poker, and said that similar logic may be applicable to a strategy game like Starcraft.
Assuming the whole point is the actions are public but some items are hidden"
A false assumption; in most RTS games, actions may be hidden as well (you can move your units in areas that your opponents cannot observe, you can build units without your opponents' knowledge, etc.). S
Re: (Score:2)
Any way you look at it, if both computers have the information of every unit, a hack can be made. Now you can have counter hacks by security professionals to identify hackers and ban them.
Good luck using technical means to identify the guys using a passive protocol analyzer to watch the data.
To catch any collusion, maybe over a telephone or whatever, analyze player behavior to see if they make the correct decision too often, as if using "hidden" data. Kind of like they do in Vegas. But that's not "counter hacking" by "security professionals" or whatever, that's just common sense. The really good cheaters will only cheat once per game at the most important moment... you'll never catch them