Ubuntu QA:
BlogBrainstormPackage status
Log in
Ubuntu QA
The Ubuntu community has contributed 17459 ideas, 107690 comments, 2263278 votes
Idea sandbox Idea sandbox
Popular ideas Popular ideas
Ideas in development Ideas in development
Implemented ideas Implemented ideas
Idea #11677: Allow users easily modify and contribute code of any installed software.

Written by fukanchik the 31 Jul 08 at 08:49. Category: Others. Related project: Nothing/Others. Status: New
Rationale
I propose lowering entrance level for casual developers who able and want to "scratch their own itch", or just want to help or, probaly, receive high rating from ubuntu users.

There are many programmers and geeks among ubuntu users. I myself for one. And there is some tension (correct word?) which prevents us from contributing code to ubuntu - one have to install development tooling, development packages of necessary libraries, find somewhere and checkout source code, modify at last, build, test, find the person or community responsible for software and communicate with them to patch to be acceptable and so on... You all know how it goes. Not very encouraging for average person who engaged on full-day work.

And i noticed two menu items which help contribute for translators and testers: Help->Translate This Application... and Help->Report a Problem. And i thought: Ubuntu needs similar item for programmers: Help->Modify This Application...

When someone selects this item:
* development tooling packages are installed (gcc, emacs, make, svn, you name it..);
* -dev packages for libraries, required by this particular application, are installed;
* build system is installed;
* source code for this particular application is checked out from ubuntu repository;
* and programmer now can easily modify and build software;
* and probrably contribute modifications back to ubuntu community through software maintainer probably.

Ubuntu is free software and it should encourage it's users to participate in development. We just need to make it easy for average user.

And as a next step, you can extend this idea with community integration:
* allow to see "List of tasks/ideas related to this software";
* making popular tasks (from brainstorm for example) person will increase his/her own rating;
* make list of most rated people on your site;
* and so on, and so on, there are much you can do here!

And as a next step you can extend this idea on musicians and artists.
Tags: contribute

60
votes
up equal down
Solution #1: Auto-generated solution of idea #11677
Written by fukanchik the 31 Jul 08 at 08:49.
Ubuntu Brainstorm was updated in January 2009. Since the idea #11677 was submitted before this update, its rationale and solution are not separated. Please vote accordingly, and if you have the necessary rights, please separate the rationale from the solution. Thanks!

Propose your solution

Attachments
No attachments.


Duplicates


Comments
Arnaudus wrote on the 31 Jul 08 at 11:51
Reading your ideas, I have the feeling you think that all pieces of software are developed by Ubuntu, which is totally wrong. Otherwise I can't understand your idea.

IMO, the only thing Ubuntu can do properly is to send you to the site of the application. The main problem in your idea is that the versions of the softs proposed by Ubuntu are (fortunately) stable versions, sometimes years older than the current development version. Most bugs fixed this way were probably fixed a long time ago in the development version, but not backported in the stable one because of many possible reasons (not critical...).

The tools used to develop and compile an application must remain the decision of the development community, i.e. NOT Ubuntu. Diversity is a huge advantage for free software, and any kind of normalization would probably be constrains on the freedom of the devs. If Ubuntu may have a role in this process, it would be a kind of buffer between the end user and the development teams.

fukanchik wrote on the 31 Jul 08 at 12:04
This is just idea. I'm not talking about implementation here. I can't say how they implement it.

Will they send patches upstream or accept only to own repo? I don't know.

Will they dictate tools which are used to develop software, or give you a freedom to choose your favorive one? I don't know.

vexorian wrote on the 31 Jul 08 at 14:37
All of this is already possible, man, just download dev packages, build essentials, etc. There's really no reason really to include all that stuff in the default CD, though an Ubuntu developers edition would be awesome, I am planning one day to become a translator cause some programs have very silly Spanish translations...

Eldmannen wrote on the 31 Jul 08 at 16:52
Yes, I am an novice who would like to contribute to Ubuntu but found it to be far too difficult.

I often have trouble finding the source code and getting it to compile and knowing where to send patches, etc.

Ubun2ideas wrote on the 31 Jul 08 at 16:53
I'm thinking about Eric S Raymond's seminal book "The Cathedral and the Bazaar". The long term success of open source software, in my opinion, depends on moving closer to a level playing field for all participants.

I dream of a day where Brainstorm says:
"The Ubuntu community has contributed 11259 ideas, 51766 comments, 1093522 votes, **and 21093522 code contributions**."

If we truly want linux to be ubiquitous, we need to take a page out of the old Volkswagen Beetle playbook, and make it more easily maintainable by the masses.

Right now you're reading this in your browser. There are millions of people who build for this window on your screen (the content section of the browser where the webpage is displayed) - we call them 'web developers'. If we take one step out, we look at the window that is the browser itself, and now instead of millions of developers, there's probably thousands of people who contributed code that makes up your web browser. Then we take another step out and look at the desktop (GNOME, KDE, XFCE, whatever), and now that audience is much smaller, maybe several hundred developers wrote the code that powers your desktop environment. The point I'm trying to make is that the web succeeds because it is relatively easy enough for people to program for it. Linux needs to focus on making it simpler and easier for people to contribute the actual changes they are requesting (here on Brainstorm), otherwise, to use Mr. Raymonds' metaphor, we're moving away from the more even playing field of the Bazaar, and back to the top-down hierarchy (think Microsoft) of the Cathedral.

Thanks for listening.

Bender2k14 wrote on the 1 Aug 08 at 04:17
@Ubun2ideas

So you are saying that even though Canonical/Ubuntu uses DVCS, if they do not make it easier for more people to contribute, then the process is still too much like Raymonds' Cathedral?

snadrus wrote on the 1 Aug 08 at 15:55
Any IDE for the purpose is good enough. Imagine if:

"Help" --> "Modify this application" (downloads and) opens an IDE in debug mode from a checked-out launchpad BZR stream

The IDE has:
- a debugger & code color & typeahead (for this language)
- Compile, test, Submit to BZR branch

Preferences --> "preferred IDE" may be unnecessary because that working setup allows pieces replaced later.


Ubun2ideas wrote on the 1 Aug 08 at 21:06
@Bender2k14: I guess I'm saying DVCS is good, but just one part in addressing the larger issue.

Currently, if you want to add some functionality on a website you're building, there's such a large pool of talent that you can turn to. This is because so many people are familiar with the tools and standards for building web pages. Conversely, if you want to add or change some functionality on your Linux desktop (as indicated by the volumes of Brainstormer's ideas), then the pool of talent that can take that idea and bring it to reality is much much smaller.

In my opinion, if Linux is to really be 'free' it needs to move out of the ivory tower and into the streets (or out for the Cathedral and into the Bazaar). Currently we have "The Ubuntu community has contributed 11294 ideas". Say 1% of those are good ideas. Of those, maybe half will be noticed by someone who can do anything about it, and maybe half of those will actually get implemented. (Correction: Appearently I was being overly optimistic. According to http://brainstorm.ubuntu.com/idea/11692/ only 0.0023% of all Brainstorm ideas get implemented.)

What's missing here? The freedom of users to implement the changes they want to see in their own systems themselves. The freedom of users to have the same powers currently awarded to those with specialized technical know-how.

What I'm pointing at is a movement, a determined choice to make software and systems that are more easily modified and maintained by those who use it. Linux as a self-maintaining. Users as contributors.

Do you see what I'm getting at?

nsanz wrote on the 2 Aug 08 at 06:21
I'm one of this persons, I want to contribute sometimes but it's make me very difficult to understand all the protocol to contribute.

@vexorian: isn't necessary include anything in the CD, I understand that @fukanchik are saying is if I click on the menu for modify this application helps me to do this, by installing the necessary thinks and maybe recommendations of first steps, tutorials, thinks that helps the newbies to star.

KIAaze wrote on the 3 Aug 08 at 11:12
Just two commands to get program dependencies and source code:
apt-get build-dep
apt-get source

Unfortunately, the above method doesn't always simplify things because some packages don't use the standard configure/make/make install process.
ex: xorg/X11 stuff

The other problem is of course that you don't get the latest source code this way. Only the code of the currently used version.

So in the end, it's more up to the program developers (not ubuntu) to help other programmers get into the code with for ex:
-good documentation
-commented code
-helper scripts
-development environments
-IDE project files

But I still like the idea of a "help modify this software" button, so +1. :P

Endolith wrote on the 22 Aug 08 at 20:16
Unfortunately most people just don't know how to write code, so they have to learn that first, which is arguably more difficult than figuring out how to contribute their changes.

That said, apt package manager should have mandatory URLs for a packages main website and for their development site, bug tracker and SVN/CVS/whatever. Then this could be more automated and not take forever to track down which project uses which bug tracker and which patch contribution mechanism.

Endolith wrote on the 22 Aug 08 at 20:19
You might look into what the One Laptop Per Child project is doing about this. I know they use Python for everything because it's easy for the kids to make changes to and see the results of their changes immediately.


Post your comment