Happy Software Freedom Day 2014!

Today is the 11th Software Freedom Day.

[ Happy Software Freedom Day 2014 ]

Happy Software Freedom Day 2014

Today is the right day to exercise your freedoms. Here are few things you can do today:

  • Share a copy of your favorite free/libre program with somebody.
  • Get the source code of your favorite free/libre program and skim through the source files.
  • Go to gnu.org/p and get inspired!

If you have suggestions of what can be done today, share them by commenting.

Newbie to gNewSense

I’m a new gNewSense user, but I am not new to GNU/Linux. In 1995, working in the Operations Center at Georgia State University, I read about the Linux kernel on a usenet newsgroup. At the time I was an operator on MVS and Unisys mainframes, and was interested in moving on to Unix, which seemed like a much more interesting environment. Excited that a free Unix-like OS existed, I spent a few days of lunch breaks downloading fifty HD disks of one of the early distributions. I remember it as SLS, but one of my coworkers, who borrowed the disks to install GNU/Linux on one of his own PCs, insists that it was Slackware. I’m inclined to take his word for it.

I’ve been using GNU/Linux ever since. I’ve tried Debian and its various derivatives, several Red Hat based distributions, and even dabbled in Suse. In general I prefer Debian-like systems, but my goal has always been to use the most consistently free distribution I could manage.

I had an Acer Aspire One netbook loaded with Windows 7 that had been essentially abandoned by my wife, and decided to shop for an appropriate GNU/Linux distribution to put it back in service. I’ve recently changed careers from IT  to journalism, and made a committment to myself to systematically build my tool set based on free software. In the spirit of mobile journalism, this laptop is going to be my primary computer.

Two days ago I downloaded gNewSense 3.1 with GNOME desktop for i386, and followed the instructions for creating a live USB. It was a quick and easy process. I then changed the boot order on the netbook, and booted into gNewSense.

My first concern when putting a distribution on a laptop is that the wireless work. It worked like a charm. My second concern is that the out-of-the-box system not be cluttered with things I don’t use. I always customize my environment, but I don’t want to have to do a complete renovation. I’d rather be spending my time adding software I need, than removing software I don’t need.

Every kind of software I use regularly seemed to work, so I backed up the Windows personal folders, and installed gNewSense onto the hard drive of the netbook. At this point the only additional thing I’ve added is GNU Emacs. A web browser and an extensible editor covers at least 90% of what I do with a computer. The other 10% mostly consists of presentation slides and work with spreadsheets, both of which are covered by OpenOffice.

All in all my first impression of gNewSense is very positive. I’m certain that I’ll run into snags along the way, particularly when I start configuring the system to serve as a station for mobile journalism. But it meets my criteria of free and uncluttered and everything I’ve tested works. I’ll continue to post updates as I use and modify the system with additional free software.

Learn Emacs Lisp!

Robert J. Chassell’s Introduction to Programming in Emacs Lisp is a good book to get started with this programming language (and programming in general).

So, why would you want to learn Emacs Lisp in the first place?

To answer that question Robert says:

Perhaps you want to understand programming; perhaps you want to
extend Emacs; or perhaps you want to become a programmer. This
introduction to Emacs Lisp is designed to get you started: to guide
you in learning the fundamentals of programming, and more
importantly, to show you how you can teach yourself to go further.

And Robert makes it very clear that this book was written for folks who are not programmers:

Firstly, I try to say everything at least three times: first, to introduce it; second, to show it in context; and third, to show it in a different context, or to review it.

Secondly, I hardly ever put all the information about a subject in one place, much less in one paragraph. To my way of thinking, that imposes too heavy a burden on the reader. Instead I try to explain only what you need to know at the time. (Sometimes I include a little extra information so you won’t be surprised later when the additional information is formally introduced.)

This book is intended as an approachable hill, rather than as a daunting mountain.

Now, if you’ve the slightest intent to learn Emacs Lisp, I encourage you to jump into this book and get your hands dirty.

First, if you’re not acquainted with GNU Emacs, install it:

# aptitude install emacs

Open Emacs, and do C-h t (hit h while pressing the control key, release both the keys, then press t) to get a nice introduction to Emacs.

Introduction to Programming in Emacs Lisp is best read from within Emacs as an Info manual. To install the book, just do:

$ wget http://cjarry.org/gnu-linux/gnewsense/parkes/gnu-doc_0.2-1_all.deb 

# dpkg -i gnu-doc_0.2-1_all.deb

In Emacs, go to the Info manual tree (C-h i), you’ll find a link to the book (Emacs Lisp Intro).

If you like reading from paper, you can buy the printed version of the book from GNU Press.

Give yourself a lot of time to read the book. Happy learning!

gNewSense 3.1 Released

gNewSense 3.1 Desktop

gNewSense 3.1 Desktop

I’m pleased to announce the release of gNewSense 3.1. This is a minor update to the current stable version with codename Parkes. These are the most important changes:

  • The correct country-specific package repository (instead of beta.gnewsense.org) is set at installation time.
  • Network-manager is included in the live image by default.
  • The expert installer no longer suggests to install Debian’s non-free repository.

Current users of gNewSense 3.0 don’t have to reinstall. They get all updates automatically. However, they should update their software sources, because the installer of gNewSense 3.0 erroneously set the URL of our beta repository as the software source. That repository will be disabled next week, in order to start development on gNewSense 4. I urge you to update your software sources to the correct ones as soon as possible. You can do this as follows:

  1. Open System -> Administration -> Synaptic Package Manager
  2. Go to Settings -> Repositories
  3. Click on each repository that has “beta.gnewsense.org” in the URI and replace “beta.gnewsense.org” with “xx.archive.gnewsense.org”, where “xx” is the code of your country.

So, Germans would replace




Expert users can of course edit their /etc/apt/sources.list directly.

Author: Sam Geeraerts, gNewSense Project Leader.

Usklo: Public Domain Graphics for Your Game

Screenshot from Usklo's website

If you are a game developer or are just starting, and don’t have graphics for your game or game tests, you can use Usklo.

Usklo is an art set for game developers including a race of little invaders from outer space and all their artifacts.

The latest released version includes one character with nine animations, props and one tile set. Usklo is made using free software only and it’s dedicated to the public domain. Its development will continue using gNewSense GNU/Linux.



pump it from pumpa

pump.io is an API rich stream server by E14N, it has the features that you expect from a social network.

If you’re not already on the pump.io network, you might want to sign up & give it a shot.


pumpa is a pump.io client which you can use to post/share/like stuff on the pump.io network, among other things.

The news is pumpa is now compatible with gNewSense!

setting up pumpa

First, install git if it is not already installed:

# aptitude install git git-doc

Next, install packages needed to build pumpa:

# aptitude install qt4-qmake libqt4-dev libqjson-dev libaspell-dev

Get a local copy of pumpa:

$ git clone git://gitorious.org/pumpa/pumpa.git

Build pumpa:

$ cd pumpa
$ qmake-qt4
$ make

Run it:

$ ./pumpa

Just follow the on-screen instructions to configure pumpa.

Happy pumping!

[ CC0: No Rights Reserved ]

Create wall calendars with PCAL

PCAL is a console application that allows you to generate wall calendars or organizers in PostScript and HTML formats. PostScript files can be viewed in any PDF reader. HTML files can be viewed in any Web browser. PCAL also allows you to print events in the calendar by defining the events in a flexible configuration file. Resulting calendars are ready for printing.

This article will show you how to:

  • Generate a one-page calendar.
  • Generate a multi-page calendar (a month per page).
  • Generate a multi-page calendar with events.

You can download a ready to use 2014 wall calendar if you don’t have the time to generate it by yourself.

Installing PCAL

Open a terminal by going to Applications → Accesories → Root Terminal and run the following command:

# apt-get install pcal

You can close the Root Terminal after installation, we will use a regular Terminal in the following sections.

Generate a one-page calendar

One-page 2014 calendar

One-page 2014 calendar

Open a terminal by going to Applications → Accesories → Terminal and run the following command:

$ pcal -w -o calendar.ps 2014

The command above means:

  • pcal: the name of the application.
  • -w: indicates that all the months of the year will appear in the same page.
  • -o calendar.ps: indicates the name of the generated file (.ps is the extension used for PostScript files).
  • 2014: indicates the year of the calendar. If you ommit it, pcal will print the calendar of the current year.

Download the resulting file.

Generate a multi-page calendar

First page of a multi-page calendar, January 2014

First page of a multi-page calendar, January 2014

Open a Terminal and run the following command:

$ pcal -P letter -l -o calendar.ps 1 2014 12


  • -P letter: indicates that the size of the generated document is “letter”.
  • -l: indicates that the document will have “landscape” orientation.
  • 1: indicates the first month in the resulting calendar (January, in this case).
  • 12: indicates that the calendar will have twelve months, starting from the month indicated above. In this case, all months of the year will be printed.

Download the resulting file.

Generate a multi-page calendar with events

July 2014 with daily events

July 2014 with daily events

PCAL can read “date files” or “configuration files” where you can specify the calendar formatting and events that will occur during the year. Configuration files are plain text files.

PCAL comes with a sample configuration file that can be found in the file system in /usr/share/doc/pcal/examples/pcal-cfg.txt.gz. But see the following example to make yourself an idea of how these files work.

Suppose you want to generate a 2014 workout calendar for your friend and it should have the following characteristics:

  • Printable in letter format with landscape orientation.
  • The text displays in Spanish.
  • Every day there will be an event: cardio workout.
  • Mondays, Wednesdays and Fridays, another event: strenght workout.
  • January 31st: a date with a dietitian.

To generate a calendar with the characteristics specified above, write the following configuration file and save it with any name you prefer (you can use Applications → Accesories → gedit Text Editor for this).

NOTE: When saving a configuration file that contains non-Latin characters, select “Western (ISO-8859-15)” in the “Character Encoding” field that appears in the “Save as…” dialog of the text editor you’re using. This way, calendars generated in languages different to English will display correctly. Using this encoding is necessary because PCAL doesn’t have support for UTF-8 yet, unlike most modern software (see “PCAL Shortcommings” in PCAL’s website).

gedit's Save as... dialog

gedit’s Save as… dialog

# ---------------------------------------------------------------------------
# Workout Calendar
# ---------------------------------------------------------------------------


# Paper size
opt -P letter

# Paper orientation
opt -l

# Text language
opt -a es

# First day of the week
opt -F Monday

# Font type
opt -d Times-Roman/18 -t Times-Roman/30 -n Times-Roman/10


# Cardio routine
all days       in all    Cardio

# Strength routine
all Mondays    in all    Fuerza
all Wednesdays in all    Fuerza
all Fridays    in all    Fuerza

# Dates
Jan 31 Dietista

Now run the following command in a Terminal replacing the text in capitals with the name you gave to your configuration file and the name you want for the resulting calendar:

$ pcal -f CONFIGURATION_FILE_NAME -o CALENDAR.ps 1 2014 12

Download the resulting file.

Remember that you can learn more about PCAL by reading its manual (you can close the manual pressing the Q key):

$ man pcal

If you know an easier, more flexible way to generate calendars, please let us know!