Monday, January 28, 2008

5 Ways to Contribute to Open Source Projects Without Coding

Maybe you've seen many good Open Source projects that are no longer maintained. One of the many reasons for that may be lack of contribution. In fact, there are many one-man projects out there. Most of any program's users are just that, users, not developers. Nevertheless, average users still can contribute to Open Source programs to make them better.

I made a search for ways to contribute before writing this and I didn't find much. However, I found two very good articles: "How to Contribute to Open Source Without Coding" and "HOWTO Pay for Free Software". These articles explain how to contribute to Open Source. I summarize the information in this post, with a little info added by me.
  1. Contribute quality: help to make a better project, better looking and with new features
    • Submit bug reports
    • Suggest new features and options
    • Suggest ways to improve the framework (maybe comparing it to similar OS or comercial projects)
    • Submit some artwork (icons, backgrounds, logos) to use in the program
    • Correct spelling and grammar mistakes in documentation
    • Help maintain a web site for an Open Source project

  2. Contribute documentation: Some Open Source projects have a poor or insufficient documentation
    • Help write good documentation
    • Translate the documentation (and program text) into another language
    • Read existing documentation, follow the examples, and make corrections
    • Create diagrams, screen-shots, and graphics for documentation
    • Develop spelling and grammar style conventions for documentors
    • Build a glossary of technical terms (so non geek people can understand)
    • Convert documentation into more useful formats (i.e. DocBook)

  3. Contribute support: everybody need it at least once. Let programmer do their work while you help other people
    • Answer questions on forums, mailing lists or IRC channels
    • Contribute to (or start) an online support group
    • Help other people learn how to use the program (or programming library)
    • Write HOWTOS and post them in related forums or your own blog (you can find more info in "How To Write a Good Howto" post)

  4. Contribute money: many Open Source projects have a donate button or a shop where to buy related products, but there are other ways to contribute money
    • Send a developer, project or company some money
    • Buy a Free Software product, or associated products
    • Hire Free Software developers
    • Contribute hardware
    • Contribute bandwidth
    • Advertise in their web site if they show ads
    • Buy products from companies that support Free Software

  5. Contribute publicity: If the project gets popular there will be more people wanting to contribute
    • Package the application for a particular Linux distro (or other OS)
    • Convince people to chose Open Source products when possible
    • Write reviews
    • Write about new ways of using an Open Source program

  6. Contribute appreciation: it's an extra way to contribute but may be the most important
    • Express your appreciation to developers (through email or forum post)
    • Send the programmers post cards
    • Give a project or developer a gift (some have wish lists for this)
    • Be polite when reporting bugs or asking for new features; developers has no obligation to do it after all
Although most of the list is self-explanatory I plan to post more in depth info in the future.

Finally, this list is in no way complete. You can read the mentioned articles for more information or add more tips in the comments.

Sunday, January 20, 2008

Emacs: Comment Commands

Comment Commands

The comment commands in this table insert, kill and align comments.
They are described in this section and following sections.

Insert or realign comment on current line; alternatively, comment
or uncomment the region (`comment-dwim').

`C-u M-;'
Kill comment on current line (`comment-kill').

`C-x ;'
Set comment column (`comment-set-column').

Like followed by inserting and aligning a comment

`M-x comment-region'
Add or remove comment delimiters on all the lines in the region.

The command to create or align a comment is `M-;' (`comment-dwim').
The word "dwim" is an acronym for "Do What I Mean"; it indicates that
this command can be used for many different jobs relating to comments,
depending on the situation where you use it.

If there is no comment already on the line, `M-;' inserts a new
comment, aligned at a specific column called the "comment column". The
new comment begins with the string Emacs thinks comments should start
with (the value of `comment-start'; see below). Point is after that
string, so you can insert the text of the comment right away. If the
major mode has specified a string to terminate comments, `M-;' inserts
that too, to keep the syntax valid.

If the text of the line extends past the comment column, then the
comment start string is indented to a suitable boundary (usually, at
least one space is inserted).

You can also use `M-;' to align an existing comment. If a line
already contains the comment-start string, `M-;' reindents it to the
conventional alignment and moves point after it. (Exception: comments
starting in column 0 are not moved.) Even when an existing comment is
properly aligned, `M-;' is still useful for moving directly to the
start of the text inside the comment.

`C-u M-;' kills any comment on the current line, along with the
whitespace before it. To reinsert the comment on another line, move to
the end of that line, do `C-y', and then do `M-;' to realign it.

Note that `C-u M-;' is not a distinct key; it is `M-;'
(`comment-dwim') with a prefix argument. That command is programmed so
that when it receives a prefix argument it calls `comment-kill'.
However, `comment-kill' is a valid command in its own right, and you
can bind it directly to a key if you wish.

`M-;' does two other jobs when used with an active region in
Transient Mark mode (Note: Transient Mark). Then it either adds or
removes comment delimiters on each line of the region. (If every line
is a comment, it removes comment delimiters from each; otherwise, it
adds comment delimiters to each.) If you are not using Transient Mark
mode, then you should use the commands `comment-region' and
`uncomment-region' to do these jobs (Note: Multi-Line Comments). A
prefix argument used in these circumstances specifies how many comment
delimiters to add or how many to delete.

Some major modes have special rules for indenting certain kinds of
comments in certain contexts. For example, in Lisp code, comments which
start with two semicolons are indented as if they were lines of code,
instead of at the comment column. Comments which start with three
semicolons are supposed to start at the left margin. Emacs understands
these conventions by indenting a double-semicolon comment using ,
and by not changing the indentation of a triple-semicolon comment at

;; This function is just an example
;;; Here either two or three semicolons are appropriate.
(defun foo (x)
;;; And now, the first part of the function:
;; The following line adds one.
(1+ x)) ; This line adds one.

In C code, a comment preceded on its line by nothing but whitespace
is indented like a line of code.

Friday, January 18, 2008

How to Install Compiz in Debian

Compiz is a compositing window manager that uses 3D graphics acceleration via OpenGL. It provides various new graphical effects and features on any desktop environment, including Gnome and KDE.

Compiz Features

Easily extendible through plugins.

A growing, friendly community of users.

Increases productivity and enjoyment.

Impress your family and friends.

Compiz is actively developed.


The bare minimum is 3D capable Graphic’s card and atleast 512 MB of ram.

Install Compiz in Debian

#apt-get install compiz

this will install compiz along with its dependencies.

Configuring Compiz

Now you need to manually edit the /etc/X11/xorg.conf file

#emacs /etc/X11/xorg.conf

then added these two lines under the “Screen” section

Option “XAANoOffscreenPixmaps”
Option “AddARGBGLXVisuals” “true”

then added these lines under “Device”

Option “AllowGLXWithComposite” “true”
Option “RenderAccel” “true”

added one line under “Server Layout”

Option “AIGLX” “on”

Finally at the end of the file add these lines

Section “Extensions”
Option “Composite” “Enable”

After making the following chages you need to save and exit the file.

Add “compiz –replace” to “Desktop -> Preferences -> Sessions -> Startup Programs”.

Now restart the Xserver, Better is to restart the whole system.

After you login you will directly be in a compizified environment.


“comiz –replace” i.e.


replace {space} with blank space
and {minus} with “-”

this command is used to replace the windows manager with compiz.

if you find problems using compiz or if you are stuck,


“metacity –replace” for GNOME

“kwin –replace” for KDE

and you will get your default windows manager back.

in BERYL and now COMPIZ FUSION this can be done by taskbar icon.