What Aspects of Open Source Projects Do You Avoid?
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?"
The obligatory annoying irc channel of people asking questions already answered via a web search.
As long as I don't have to make freindly with the natives, the headhunters, and the unwashed masses, I'm happy.
"Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
I've picked up an open source project that doesn't have comments. There's major chunks of it that the code is such a mess that I have no idea what it does, yet I'm supposed to be fixing it.
... I try to avoid it.
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! ;)
Do daemons dream of electric sleep()?
In developing (I work with a company doing _mostly_ web-based applications; perl, php, asp, all that gibberish) I steer clear of projects and software with a troublesome license. I am very pro-open source, I am very pro-freedom, and I am very pro-FREE FOR NON-COMMERCIAL USE, so don't get the wrong idea, but I mainly steer clear of anything GPL when it comes to the point of including GPLd software in the projects I work with. Simply: it spells nothing but trouble to me. Please do discuss, debate, don't just f***ing go all nazi gpl/linux/grandma on this by modding it "troll".
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!
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".
Deleted
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.
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.
The only thing it restricts is your ability to fork a open project and close the source. I don't know if I'd call changing that an improvement...
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.
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!
Morals differ. It's a bit like the discussion regarding free speech, where lots of people say "oh I'm all for free speech, alright, AS LONG AS IT'S ABOUT SOMETHING NICE". That's what free speech is for; to allow even the uncomfortable topics to get their breath of air in the public debate in order to illuminate, understand and handle them. Either you accept this, and thus being for free speech, or you don't, and then you're simply not for free speech AT ALL. I have the same perspective of free, and freedom; either you're for freedom, or you're not for freedom at all as is the case with the GPL license ("oh I'm for freedom, alright, AS LONG AS ONLY THOSE I WANT WILL BENEFIT FROM IT"). GPL doesn't extend full freedom to the developers of the software, only to the end-users, and by that definition GPL is not freedom at all. PERIOD.
The GPL is not troublesome when it comes to developing web based applications, unless you really want to charge royalties or forbid your users from modifying the source code (legally, that is); it does not sound like either is the case for you. On the other hand, the GPL prevents others from engaging in those same activities with your code -- if that is an issue for you, I would be very interested in knowing why (why would you want to leave open the option of others collecting royalties on your code if you yourself do not seek them?).
Why do you feel that the GPL spells trouble?
Palm trees and 8
One way of stopping a wildfire is to use a controlled burn to burn off the area before the wildfire can reach it. Fighting fire with fire works.
I think the answer is obvious - what most developers avoid like the plague is documentation.
#DeleteChrome
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 is over the project doesn't get completed.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Working on fixing the site...
|/usr/games/fortune
I try to avoid the rabid advocates who seem to think (or at least they project) that using anything that isn't open source is some kind of affront to the entire open source movement.
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.
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 (at least that is the spirit of the license). Not to push another GPL-vs.-BSDL flamewar, but history shows that this level of restriction is prudent and protects the freedom of developers at later levels of redistribution; both Microsoft and Apple have taken BSD licensed code and turned it into proprietary software, which restricts the freedom of developers who receive copies of the BSD licensed code from Microsoft or Apple. The only people who really see more freedom from BSD licensing are people who want the freedom to restrict the freedom of others; how exactly does the BSD license benefit freedom in that case?
Palm trees and 8
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.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
There can be only one!
"You should always go to other people's funerals; otherwise, they won't come to yours." -- Yogi Berra
What makes you think that corporate programmers are necessarily going to do drudge work better than volunteers? I guess you have only ever worked with big name proprietary software, where a lot of care was taken; 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. So, where is the proprietary advantage?
Palm trees and 8
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.
A Pirate and a Puritan look the same on a balance sheet.
unless you want your project to become GPL. that's the rule. how hard is it to follow?
--
Stay tuned for some shock and awe coming right up after this messages!
Some of my projects I have involve security through obscurity. Obviously this gets hacked eventually, but making it Open Source would get it hacked immediately and harder. I run a game of hack and counter hack in my projects like an escalating war. If I'm lazy and want to release early, I may not put a lot of counter hacks in.
I know the counter argument that releasing a project will let it become secure. But there are some things which simply cannot be made more secure. An example of this would be Starcraft 1 which transfers the data between both clients so you can't prevent the map hack. 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. But if the information of the counter hacks was made public, hackers would work around them and not be identified and banned.
So there are times when you want your code secretive instead of publishing to Open Source.
God spoke to me.
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,
You can all read the links now, thanks to Coral cache for the blog post, and memcached on our server.
Whee!
|/usr/games/fortune
> 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
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 system, even if they only have disadvantages because of it, and even if in the long run, it would help them getting free from closed source. In the case of (graphics) drivers, much more people would use Linux, if they could use all their hardware like on Windows. Which would force other companies to support Linux more. Which would strengthen open source as a whole, and also put more pressure on the still closed drivers, who now would be the worse working ones.
2) The Gnome team, who think they know better than me, what I want to do with my system and how I want to do it, and therefore only include options they think I should use. They even remove options that they don’t want me to use. Only cattle, fanboys and themselves can stand that in the long run. Since others will run into differences. A good programmer also allows options that he does not like. Because he cares for his users. That’s why they are options. He can still make his choice the default. (Yes, KDE4 also fell for this a bit. And Apple practically invented it.)
Any sufficiently advanced intelligence is indistinguishable from stupidity.
My CS undergrad program has UI design as an obligatory second year course.
Emotions! In your brain!
Most hippyware users don't pay for the code. When you use off-the-shelf software, there is a clear relationship between users and the project. Both users and developers are contributors - the users contribute money and the developers contribute code. With hippyware, a lot of the users are freeloaders. I don't have a problem with that - I don't lose anything from their use of the software - but I'm much more likely to bother listening to the opinions of other contributors than freeloaders.
Being a contributor doesn't always mean contributing code. Artwork, translations, bug fixes, and especially test cases can be contributed by people who aren't programmers (well, in the last case you might need some programming experience, but not much). If you've contributed any of these things, I'll pay a lot more attention to your feature requests. The same goes, of course, if you want to pay me for a bit to add a feature.
I am TheRaven on Soylent News
Could you please tell me your projects, so I can avoid them and hence breaking my system? ^^
Any sufficiently advanced intelligence is indistinguishable from stupidity.
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).
How many people can read hex if only you and dead people can read hex?
I'd have liked my school to do the same.
"If you keep doing what you've always done, you'll keep getting the results you've always gotten."
On a related note, the thing I really dread is support and testing for Windows. I have an open-source app I wrote that is cross-platform. I use it on Linux, but it also runs on Windows. Since I don't own a Windows machine and don't know anything about Windows, it makes it a real pain to test on Windows or reproduce bugs that only occur on Windows. Packaging for Windows is also a hassle. Of course there is wine, but testing in wine isn't the same thing as testing on a real Windows box. And even if I do succeed in reproducing a Windows-specific bug in wine, that doesn't mean that I understand enough about the Windows environment and APIs to be able to fix it.
Find free books.
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.
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.
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.
You can't handle the truth.
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.
What about the Apache? or Sun? Or Apple licenses?
Personally I write stuff to the Beerware 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.
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.
That were five words, retard.
Yes, because every girl dreams of giving a blowjob to guy that 1) works for free 2) sits on computer all day long 3) just goes on and on about the wonders of open source 4) doesn't make any money
I think there will be a huge line of girls waiting!
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, but I'm still having trouble figuring out what constitutes "other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program", if the engine puts specific requirements on those files.
Well you see, now you got it. The odds of that happening are about the same as what parent post suggested:
- Programmers must learn UI designing also
- We need more UI designers to join us
You can't handle the truth.
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.
What Aspects of Open Source Projects Do I Avoid? The part where I get yelled at by a developer for filing a bug that I tried diagnose to the best of my ability but didn't mange to fix myself. Because, as we know, you shouldn't even USE open source software unless you're willing to DEVELOP it as well. Pffft.
Ubuntu is planning to integrate the ability to purchase non-free software in the Ubuntu Software Center by October 2010 (Ubuntu 10.10)
Dilbert RSS feed
Human-Computer interaction was an option (which I took) on my postgrad CS course. What I think we're showing is that some programmers do know a bit about UI -- although what I think I know is "enough to talk intelligently to a human-factors expert", not to do it myself.
Quidnam Latine loqui modo coepi?
I think that's part of it.. but not all of it..
Implementing a graphical interface is often a chore.. and I think a lot of coders (myself included) are looking for functionality over usability when they write something.
If you're developing software to sell.. then there is an incentive to put in the work and put a graphical front-end on the thing.. but if you are working on something for fun.. what incentive is there to make it more accessible to others? (besides bragging rights of being the author of a widely used piece of software).
Both MySQL and ExtJS have, to put it diplomatically, "unconventional" ideas about how the GPL works. It's striking that, out of all the GPLed projects out there, you would pick two that are both unconnected to each other and do not represent mainstream GPL usage.
Bogtha Bogtha Bogtha
RMS
Glad to hear it. Linux projects seem to get the whole Free-Libre and Free-As-In-Beer thing hopelessly confused, as a rule. A software distribution tool that has no way of paying for things seems like a half-way house, even if you only plan on serving open-source software.
Personally I have no problem with the concept of paying for software, even though I'm a huge open-source fan. I'm even happy with the concept of closed-source software, within certain circumstances. Some way of including it in the mainstream software management, and not treating it like some unwanted add-on, is much welcome.
I avoid all the parts where anyone evangelizes any part of it being "open source" or has any sense of entitlement.
I'll work on my project, or contribute to someone else's if I feel the itch, and that's about it. If I make my project open source, that's that.
I dislike OSS nazis who have this hippie "give back" attitude. I've released software. Some of it is open-source. I couldn't give a rat's ass if anyone "gives back" - I only expect that if you use the software *I* wrote, you abide by the terms I released it under.... whatever those terms are.
I don't do a project for the sake of being open-source - I do it because it's interesting, and if I make it open-source, it's because I want to share. I don't appreciate anyone reading any more than that into it.
Your ideas intrigue me and I wish to subscribe to your newsletter.
You need to remove or conceal the features that are rarely used.
Sometimes simply reorganizing them makes all the difference.
Case study: the Pitbull3 and Pitbull4 unit frame addons for WoW. 3 was notorius for scaring away new users with the sheer magnitude of options you can configure: it was all presented ad-hoc, mostly glued on to the menu as new features were added I believe.
Pitbull4 introduced the concept of layouts, cleaned up the options menu, and the initial setup time went down from an all-nighter to 15 minutes to get the same result from scratch. And the fun part: it actually became more configurable.
- Programmers must learn UI designing also
- We need more UI designers to join us
I am a software engineer who specifically did a focus in user-interface design.
When I first started the focus, I thought to myself, "Self, I know this stuff. How hard can it be to make an application look good?" And, unfortunately, there are many developers who think the same thing. However, after going through five courses on HCI and spending the next 10 years doing UI design, testing, etc, it is FAR more than that. The unfortunate (or fortunate, depending on who you are) part is UI design is a mix of art, psychology, and programming. It seems that very few people enjoy all three of those topics (or at least, working in all three of those areas). Heck, simple question - how many people actually test their user-interfaces to determine problem areas in usability? I know I didn't on my first job where I designed a new interface system into a company's payroll system. Holy cow - that was a good lesson learned.
The other problem is that FOSS projects are very particular about their UI, even if they don't know what they're doing with it. UI's start some of the biggest holy wars. I tried to get into FOSS doing UI work one time. I quickly left when I spent a good long while in IRC trying to understand why an option on a menu (that is used fairly frequently) was buried four levels deep. I have had similar experiences in two other projects. I would love to help a project, but, as it is volunteer effort, I won't go through hell to do it.
Personal experience, of course. YMMV
The "not getting paid" part. All the rest of it, I'm down with!
I've abandoned my search for truth; now I'm just looking for some useful delusions.
I like downloading and using free software, but i liked my time to be payed for. So in 27 years of programming (since age 12), i've never writing anything to be open sourced. This is very ungratful of me, but i can't see me becoming less greedy.
contributing.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Has open source like, ever campaigned to UI designers? I mean, seriously.
Imagine you're a graphics designer looking to go into UI design in a recession. What better way to fill out your portfolio than have stuff you can show to a future employer that's actually being used in the real world?
What's the worst that can happen by taking on a newbie? They colossally fuck up, well, that's why SVNs have the ability to revert.
Random Thoughts From A Diseased Mind (Not For Dummies)
You can always go back to school, even for one course. Don't think because you have your sheepskin that it isn't worth it to go back to college. Expand your mind, man!
Random Thoughts From A Diseased Mind (Not For Dummies)
Quote: "... FOSS projects are very particular about their UI, even if they don't know what they're doing..."
I've had the same experience with documentation. I've tried to help, but some FOSS programmers don't want their inadequate, poor quality explanations changed.
...and I really dread arguing with religious people, free market advocates and American loyalists.
While it's important to constantly that those categories of people are completely morally bankrupt, stupid and plain evil, it's like diving with a snorkel into an enormous vat filled with decomposing brains. Can someone else do it?
Contrary to the popular belief, there indeed is no God.
...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.
Yeah, no mention of us 800k'ers I noticed. What have you got against us?
Trying to write us out of history won't work...we'll fight back!
*slaves massive array of USB controlled Nerf Missile Launchers to cluster of 486's and 586's for targeting control, then starts passing out torches and pitchforks*
Down With Slashdot BETA!!! I've been around the corner and seen the oliphant; you can only abuse me from your perspecti
So were those! Pattern, perhaps?
Random Thoughts From A Diseased Mind (Not For Dummies)
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.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Yes, and there are photographers on craigslist that are willing to give their models a head shot in exchange for free modeling. More often than not, it's a bad deal for the model.
If you are a good model or a good graphic designer you aren't likely to increase your chances for paid work by establishing that you are willing to work for free.
Software developers may be willing to do it out of some cultish sense of ethics, but graphic designers aren't part of the cult, so they don't get it.
If somebody took your BSD code, added nothing to it, and resold it, they didn't steal from you. At least, that's what a BSD opponent would have to agree, in order to avoid being a hypocrit. In general, Free Software advocates don't believe information can be "stolen", so surely you can't be suggesting that your BSD code was stolen in this case.
What if they took your BSD code, added "something" to it, and resold it? Are you suggesting that you have a right to "something"? On what basis do you lay claim to "something" since it's their work, not yours?
Finally, even though I strongly prefer BSD to GPL, I've contributed to GPL. I don't believe in allowing ideology to become a brick wall between me and other programmers.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
Project Names
Lightning = Calendar ?
Funambol = syncml ?
Duckling ?
Squid = Proxy Server
Gnome
Filezilla
Great Fun Names , but a bit hard to Explain to Management or Customers !
Type unto others as you would have them type unto you.
I've experienced this myself with submitting patches to projects such as bzr-upload. Even though I have fixed a particular issue and proposed my changes for merging it just sits there because the upstream author disagrees with the particular feature that users have been requesting. This case in particular is the ability to allow an upload to continue even though it errors trying to delete files or folders on the server that don't exist. This feature can be useful when your online revision becomes out of sync because someone deleted the file online and then deleted it locally in the repo.
The upstream author disagrees with this "--force" option I added because (as he explains in the bug report) the online copy should always mirror your local copy and if it becomes out of sync you should be required to upload everything again. Many others and I disagree with this line of thinking because it is silly to upload over 1 Gig simply because you deleted a folder or file online.
My point with this little story is that it doesn't just happen to just UI designers in open source projects. It happens to everyone including programmers. If the upstream author disagrees with your changes there's nothing you can do, even though there's a large backing of people who want your UI design in.
I'm leading a project to remake an old game called Hardwar and I'd love to have some professional UI developers to help flesh out the details of my editor UI and Main Menu screen. Right now the editor menu looks horrible however it's not my area of experience.
www.hardwar.org - A remake of the old classic Hardwar
It's true that there is no way to purchase software using the package manager. However, there is no reason that you couldn't integrate the package manager into a purchasing system such as steam.
One way you could do it is by shipping a debian file with the binaries only. When the debian file is installing you can call a script to enter a license key or make it call a DRM server for online activation. I think there are lots of things you could do using the underlying systems on linux which would be more difficult to do on windows if you were writing everything from scratch.
All your steam app would have to worry about is providing a list deb files to only logged in users and not unauthorised users.
"Windows has several app stores for games alone"
Note that I said "apps store" as Apple is pushing it; Microsoft is not pushing any apps stores, and so the only ones you see in Windows are for specific markets, like games. The distros in Fedora or Ubuntu are much more general -- not just games, but also office suits, browsers, various little utilities, programming environments, libraries, plugins, and many other categories. Apple's "apps store" is similarly general, but Apple refuses to allow certain software into the apps store, including any software that would allow a user to install software from other sources (unlike a Linux distro, where such software would commonly be called a "text editor").
"The difference is that the repository model used by popular GNU/Linux operating environments is intended for use with free software or at least freely redistributable software. Distros like Fedora and Ubuntu currently lack anything like Steam, a repository of non-free commercial software."
Well, there is this:
http://fedoraproject.org/wiki/Releases/FeatureCodecBuddy
Mainly, Fedora wants to avoid pushing non-libre software whenever possible, since the aim of Fedora is to be a libre distro; CodecBuddy was an attempt to make a prudent compromise, since users were turned off to the idea of not having MP3 support (and others).
Palm trees and 8
Hey now, we cannot have it both ways. If we want to push community support, that means that we have to be ready to answer the same novice questions over and over again
We do answer again and again. We've got it down to a fine art. A single answer: RTFM!
These posts express my own personal views, not those of my employer
Depends on the size of the project. I haven't worked on any large-scale projects, so I can only really give a perspective from one-man itchscratch programs to those with a dev team of 3 or so... my least favorite parts:
1) Documentation
I write it, and try to make it informative, but...people don't read it. Certainly some do, but there is that percentage who quit reading (and start emailing you questions that are answered in the friendly manual) because the documentation is too technical, and that other percentage who quit reading at the 3rd page because it isn't technical enough. And you also have to assume some minimum level of proficiency for you user/implementor, which is just a guess at best (and the skill level of the userbase may change dramatically as the project progresses or it gains popularity/promotion in specific circles, think "featured on AOL News"). You can't really include an entire semester of CS101 in your documentation. Not even to mention all the users that cry at you because they speak a language you don't, and you haven't provided a Turkish/etc. version.
Which leads into...
2) Tech Support
I don't just mean the emails from users who didn't/couldn't RTFM (you can use the delete button for this, at the expense of disgruntled users publicly slamming your project/self/lineage), but the gruntwork of providing support infrastructure. Somebody's gotta keep on top of the spammers in the forums and wiki you set up. Somebody's got to keep up with the patches / security advisories on them, and clean up the mess when they get hacked. Somebody's got to staff the IRC channel, if applicable.
3) PR
Of course, if you don't stop coding and start pumping the project, nobody's going to know about it. Who is a great coder, excellent technical writer AND a people person? Or marketing person, for that matter. This might well be my least favorite task.
Caveat Emptor is not a business model.
Separate UI from logic by well defined interface and the UI will come. Or not, but at least you learned probably something about MVC :)
You don't know what you don't know.
Yes agree, but happily I have a (mainly) web based project: http://www.hughbarnard.org/content/alternative-currency-software and use Selenium: http://seleniumhq.org/. I also export the tests to Perl to give me a large, very ugly (I don't publish it currently) monolithic regression test. When someone finds something broken, I fix it and add another test for that...
I bit the bullet about two years ago and sat down and wrote a user manual, it needs restructuring now though. I use Perltidy: http://perltidy.sourceforge.net/ to automate some degree of developer documentation.
I think my point is that, even for small projects, it helps to set up a little bit of organisation and use of tools, takes some of the pain away.
On y va, qui mal y pense!
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 anyone can just fire up a text editor and read it.
To make matters worse, sometimes you are forced to rewrite a portion of your code. When you do that, if you already have some documentation written then you are forced to go back, find any reference to that particular behaviour and rewrite it to reflect your changes. And pray to God that you don't have to yet again rewrite everything all over again (or write a new copy of the docs) to reflect a minor version. Tools like Doxygen do help mitigate this problem but they are only good enough to handle code references, and they do that at expense of filling the project with long winded comments which, if you happen to use an editor which doesn't support code folding all that well, make up reading and writing code a bit needlessly complicated.
Ignoring some other nasty aspects of writing/maintaining a documentation, at least to me documentation boils down to wasting your time. It's a task which doesn't have any noticeable positive feedback and it always feels like you are completely wasting your time with fluff tasks. After all, if you've written an excellent documentation then your users will simply read it and go on with their lives while you never get to hear about it.
But although that's my personal view regarding producing documentation I also understand the need for it. It's extremely important to provide (and also have available) a decent documentation. Without it your users (and sometimes even you) are left disoriented and forced to waste time with basic things. But that won't make the job of generating it any more enjoyable than it already is.
Slashdot, fix your code or at least hire someone who is competent at it to do it for you.
SuSE tried this. Oh, dear lord, it was bad: the YaST installation tool would completely ruin installations of NVidia drivers or Microsoft fonts, and what it did to multiple kernel installations was unspeakable. The issue was that the vendors refused to actually use, or allow, RPM package managed installations, and attempts to wrap it up in bad shell scripting invariably broke. And Sun still does this with their amazingly foolish "rpm.bin" installers for Java, designed to force you to agree to their licenses before doing the actual installation. And HP, for various drivers, and other vendors.
There are repositories that have more correctly organized such packages: the "Penguin Liberation Front" has done so for Mandriva, for various emulation tools and MPEG and DVD decoders, and the old "Livinia" repository for various other drivers, including VMWare tools. There are patent and DMCA legal issues using such tools in the USA, but it's awfully handy when overseas to be able to review what's actually in those packages.
This is the kind of thinking that creates unbearable to use UI's.
"You're a user, you annoy me with your presence, so you must be punished and ridiculed!"
Don't forget that you're making a UI for the user to like. Not so they'll leave you the fuck alone.
Whoosh!
Quidnam Latine loqui modo coepi?
I'm not seeing it myself.
My bad. Your message did seem authentic, though.
I have been utterly scathing of the ribbon interface here in the past, but I appreciate that most of us don't get our names recognised so you weren't to know that.
Quidnam Latine loqui modo coepi?
I've thought about that angle... and there is one thing that sticks out as a potential legal puddle.
When I write some code from scratch, I can license it however I want, to whoever I want, in as many ways as I want. It's *MINE*. If I make it an "OSS PROJECT" but require the submitters to assign copyright to me if they want me to keep things in my main project.... I retain that privilege. I can't take away what I've already licensed.. but I still *OWN* the code, and can re-license it.
Now - with BSD licensed stuff - I can still basically own it... modify it however I want, take back any changes anyone publicly gives, and even though I must retain copyright for them, and can still own MY tree, including contributions others CHOOSE to make
With GPL... If I release it under GPL, and someone else releases a patch somewhere, but doesn't assign copyright to me,I no longer own the code.. and should I also be implmenting the same feature, and be dual-licensing it, a nasty battle could ensue.
GPL is so troublesome because in most companies there is no way in hell anybody will let you release the source code to the product. Hence, no GPL code can be included, but many developers don't bother looking up the license for the code they use, which causes later trouble for the company. It's as simple as that.
There are FIVE words!
Have you come across "Usability? But it's skinnable!" yet? Or "If you're so brilliant, YOU code it!"?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
I disagree, I shouldn't think it would be too difficult for programmers to do a bit of learning... The majorest open-source projects, kde, mozilla, etc. all have fairly professional developers and I'd be willing to bet there'd be some UI designers in there. The smaller projects would be the ones that would suffer the most in this regard, I think.
One thing I know, and that is that I am ignorant...
The thing that keeps me away from using many open source projects is the installation process. This was true when I used Windows and remains true since I switched to OS X. Far too many cool-sounding projects require me to go to 3 or 4 different sites, find the correct libraries for my platform, install them, then download the project I'm actually interested in and hope it finds them or even go through the hassle of compiling it myself.
For people heavily into system management this isn't a big deal, but my focus is on actually using the product, and I want the same instant gratification I get when I buy commercial software--double-click and go. If an installer for my platform isn't available it's no dealbreaker, but please make sure that your documentation on the installation process is good. More than once I have gotten 3/4 of the way through the process I mentioned above only to have something fail due to a missing library or whatever after carefully following the instructions outlined by the project's site. Other times, the "instructions" consist of "you will need to get X, Y, and Z before compiling this. Here's the source," with nothing else to tell you what goes where or how to build it.
End users should not be doing the packaging work of the project developers for them. That doesn't fly in a commercial environment, which is what free software is competing against. If you want more users, make sure they can easily get your software running on their system.
I realize this submission asked about contributors, but the overwhelming lack of focus given to the installation process makes me think that it's an aspect being avoided, or at least poorly handled, by the majority of developers.
Your brain is not a computer.
While I was in school, the programming textbooks that we had commented just about every single line, like this:
/*begin function foo, accepts bar as an argument */ /*multiplies bar with itself and returns the value*/ /*end function definition for foo */
int foo( int bar) {
return bar * bar;
}
That hurt my eyes quite a bit while I was trying to read code (especially since a lot of the students copied the style). You'd imagine that it would be fine for the introductory "Hello World" listings, but even when we're past pointers etc. the style still continued.
I'm all for good documentation of code, and I agree that it does need to be maintained, but there is such a thing as too much, I think.
Another thing that kind of drives me crazy is when the opening brace isn't on its own line, like in the example above. I like them to be nicely lined up underneath one another, but that's just me, I suppose.
One thing I know, and that is that I am ignorant...
A lot of *closed* source coders seem to avoid UI aspects and usability like a plague. In summary: "Almost all coders seem to avoid UI aspects and usability like a plague"
Please do not read this sig. Thank you.
Even Debian already installs closed-source drivers (from the non-free section) just fine. The news is that Ubuntu will include paid software.
Dilbert RSS feed
It's interesting that nobody else seems to have said it yet, but here goes:
What I avoid when working on open source projects is packaging. I'll do design. I'll write documentation. I'll write the code. I'll find and fix bugs. I'll communicate with users. I'll make it as easy as I know how to to get the program working on your system.
But I avoid making a package for any one particular system.
It would probably greatly improve how easy it is to get started with a particular program, but I still can't seem to get myself to do it. Whenever I create a package, it always feels like I'm taking sides, like the platform I'm making a package for is somehow more favored by me than other platforms. And the few times I have created packages, they have not been included in any of the canonical repositories. So nowadays, I pretty much don't bother anymore.
Even though I think that, detach, in particular, would really make a great addition to every Unix-like operating system.
Please correct me if I got my facts wrong.
They could just as easily release a proprietary binary-only patch to your BSD code, a proprietary-licensed patch with available source code, or a GPL patch to your BSD project. In any of those cases, you'd lose ownership of thbeir improvments. With the GPL, you'd not own their improvements (and legally you wouldn't "own" it under BSD anyway, although you'd have broader control of it). With the GPL, however, you'd always have the right to use and improve on the imrpovements to your work, but only under the GPL. It's a tradeoff of one set of freedoms for another.
Lots of GPL projects require that copyrights be assigned to the project team in order for code to be released in the mainstream project. That doesn't keep people form maintaining patch sets or making forks, but it does mean the project team can do lots of things with the code. Some offer a contract stating that the copyrights are held jointly with the team, and some require a full transfer. Some maintain a requirement that the project team always keep a GPL license, but there's no legal reason you'd have to offer that. Once you own the copyrights, you'd be free to relicense the project from that point however you want. Old releases would still carry the old license, just like with BSD.
At no point do you legally "own" the code some other person releases updating your codebase under the BSD. You get a license to do with it what you will just as much as any other BSD-licensed code, but the copyright holder still owns it. They can release it under as many licenses as they wish.
With the GPL, you can also release a program under two or more licenses as long as you hold the copyrights. Perl is dual-licensed under the GPL and the Artistic License. MySQL for years has been both commercially proprietary and GPL.
Many people find the LGPL more palatable than the GPL. It's less restrictive on those who want to improve your project, but protects the future openness a particular portion of the combinled project more than the BSD license does. It is basically the GPL for an identifiable separate module of a program, whether that's a library, the main code, the interface module, or whatever. It requires that updates to that protected portion are released under the LGPL, but it allows that portion to be used in a program which also contains code under other licenses. There is a lot of talk about "libraries" in the text of the license, but that's just because it was originally designed for libraries. "Library" is defined much more liberally in the license than you'd normally talk about as a library with other developers (including, in version 2,1, "or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License"). LGPL 3 is an addendum of additonal, relaxed terms for the GPL3. The FSF discourages the LGPL in favor of the GPL, but they still promote the LGPL as a choice for people who have ruled out the GPL.
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! ;)
That's the real advantage of TDD - it forces you to write a good test suite.
have you read the Moderation Guidelines Addendum?
Perhaps in your case a rolling release like Arch Linux (or -gasp- Gentoo) would be more suitable, then. I've yet to find a package manager that I like more than dpkg/apt, but portage is actually very nice once you get used to it.
Nothing lasts forever but the certainty of change.
The big barrier to getting more UI designers (and this also includes System Analysts, Tech Writers, Graphic Designers and, well, anything other than programmers) to join open source projects is that lots of open source projects use processes and collaborations tools that are are designed principally to support programmer-to-programmer collaboration.
If you're UI changes are implemented by someone checking in changes directly to the code, and not by someone changing a UI design artifact and then someone changing the code to implement that change, there's not a lot a UI designer can do on the project without first becoming a programmer, as well. The same absence of design documentation outside of the code itself is a barrier to most non-programmers participating effectively in many open source projects.