Ubuntu Installfest for Local Schools this Weekend

Reminder: Find us on Google+

This Saturday from 10:30 to 3:00, there will be a triagefest at the Creative Arts Charter School at 1601 Turk Street at the corner of Pierce Street in San Francisco. This is the school that had that huge fire on 12/22/11.  More about that fire here:

The purpose of this triage fest is to separate good equipment from bad equipment.  Volunteers with a pick-up truck for moving equipment 3 blocks would be particularly appreciated.  Pizza will be served at 12:30 p.m.

Please bring with you everything that you would need to test a computer and its peripheral equipment, and to take a computer apart and put it back together.  It would also be good to bring Ubuntu 10.04 on a flash drive, since we will be installing that distro on some machines.

This public charter school relies on our Linux computers heavily for the work that their students do, so they will definitely appreciate the work!  Thanks in advance to all volunteers!

My search findings on Learning C/C++ Programming and Using an IDE

My search findings on Learning C/C++ Programming and Using an IDE


I’ll have to preface my search findings on these subjects, by mentioning that according to Risto S. Varanka’s Programming Languages mini-HOWTO: Programming Languages ;

C, Lisp and Perl are traditional hacking languages in the
GNU/Linux culture; Python, PHP, Java and C++ have gained new
ground recently

Furthermore, and mostly according to Veranka’s mini-HOWTO and to forum threads such as this one at ;
A. Perl is a great first programming language to learn for Beginners; Perl has the advantage of being an interpreted language instead of a language that requires a compiler and linker for creating binaries. Perl is an Object Oriented Programming (OOP) language that is especially powerful for handling text and strings. Perl is commonly used for scripting, for sysadmin-type tasks, and for web server tasks.

B. Python and Java are also great first programming languages for Beginners to learn; both Python and Java are modern up-to-date OOP languages used on web servers and for web-processing tasks. Python is especially useful for more general and application-specific scripting while Java is especially useful for cross-platform applications.

C. as appropriate 😉
C and C++ are apparently NOT languages for Beginners to first learn programming. Although executable binaries created from C or C++ generally run faster than interpreted source code, executable binaries (i.e., the actual applications) require the EXTRA steps of compilation and linking from original C/C++ source code, not to mention any necessary required debugging and optimization steps. Both C and C++ programming languages are especially useful for creating applications. C is more of a Procedural than an OOP language such as C++, and many describe C as being the MOST suitable for the system and in-depth OS tasks that Linux distros rely upon using the GNU Compiler Collection’s ‘gcc’.
* Note that “GCC” is the acronym for the overall GNU Compiler Collection whereas “gcc” is the specific acronym specifically for the GNU Compiler Collection’s C compiler itself.

From my own limited experience, I would probably place Perl and maybe Bash shell-scripting ahead of C and C++ for Beginners first learning how to program. I would guess that many of us who have already programmed using Perl and Bash shell-scripting could probably use a refresher or two in these :-).
A good “Perl tutorials” web search using the privacy-minded search engines ixquick and/or Startpage should yield worthwhile hits very similar to these handful :

grantbow has a collection of good Bash shell scripting tutorials and resources within his Learning the Command Line webpage, and also helpful in this regard is chapter 7 of the Rute User’s Tutorial and Exposition.

With all that being said, here are some working links I have found regarding learning and compiling C/C++ programs.

I. Tutorials to learn C/C++

II. Simple C/C++ Compilation

The simplest and probably the best initial manner of learning C/C++ programming in Linux using these tutorials on the command line is to:

  1. Type in and edit your C/C++ source code using whatever text editor you most prefer (e.g., vi/vim/nvi, nano/pico, gedit, nedit, leafpad, mousepad,…whatever else) and then save the file with the suffix `.c’ for C programs or one of the suffixes `.C’, `.cc’, `.cpp’, `.CPP’, `.c++’, `.cp’, or `.cxx’ for C++ programs.
  2. Compile and link your properly-suffixed source code file from the command line using the typical ‘gcc’ or ‘g++’ command+options for C and C++ respectively.
  3. Run the default executable file by entering ‘./a.out’.

For getting more familiar with using gcc and g++ in steps 2 and 3, there are:

  •’s aptly-titled gcc compiler and g++ compiler webpages.
    Quick, simple, and these provide appropriate mention of the GNU Debugger, ‘gdb’.
  • develvid’s YouTube video Compiling with GCC (probably should be “gcc” instead)
    This video shows sequence of command line screenshots using the vim editor and a few ways to use gcc to compile and run a pair of simple C programs. Covers the above steps 1 through 3 in a quick 4 1/2 minutes.
  • Brian Gough’s An Introduction to GCC for the GNU Compilers gcc and g++ with a Forward written by RMS.
  • The FSF’s Invoking GCC – GCC Command Options.
    Given that the entire site,, is the’s official guides to GNU compilers, this webpage is as fully complete and as up-to-date as the FSF can make it. It seems a bit too complex for Beginners to proceed very far beyond the basic ‘Invoking GCC – GCC Command Options’ though.
  • The gcc(1) and g++(1) man[ual] reference pages.
    Their SYNOPSES and DESCRIPTIONS sections seem to be the most useful, although their OPTIONS sections can be overwhelming with the vast number of listed options for both gcc and g++.

III. Using an IDE

Instead of creating and testing C/C++ programs through the three-step manual method just described above, I have also discovered a few Integrated Developmental Environments (IDEs) for Linux to handle C/C++ program development all the way from editing C/C++ source code to correcting syntax, compiling, linking, full debugging amd code optimizations.
Using a C/C++ IDE also goes a long way to relieving the need for Beginners to venture too heavily into the more Advanced-level programming processes of contimually running the gcc/binutils toolchain, ‘make’ and ‘gdb’ to create Linux system binaries.



Good and better recommendations & suggestions regarding these are always welcome 🙂

Go Open Source Software Bears!