Planet GNU

Aggregation of development blogs from the GNU Project

July 23, 2016

pspp @ Savannah

PSPP 0.10.2 has been released

I'm very pleased to announce the release of a new version of GNU PSPP. PSPP is a program for statistical analysis of sampled data. It is a free replacement for the proprietary program SPSS.

Changes from 0.10.1 to 0.10.2:

  • CROSSTABS implements a new COUNT subcommand to round case or cell weights.
  • Help will be opened as HTML in default browser if yelp is not available.
  • When plotting scatterplots with only one dataset (the simple case) the colour used for the dataset is now black. The previous default from the Tango palette was too faint to see easily.
  • The varible info dialog could previously only paste a single variable. Now it can paste multiple variables.
  • Bug fixes, including the following:
    • T-test with independent samples GUI crashed with string type variable as group variable.
    • The variable info dialog showed the previous selected variable superimposed with the currently selected one.
    • The GLM command did not properly deal with missing values. This has been fixed.

by Ben Pfaff at July 23, 2016 05:03 PM

July 22, 2016

parallel @ Savannah

GNU Parallel 20160722 ('Brexit') released

GNU Parallel 20160722 ('Brexit') has been released. It is available for download at:

Haiku of the month:

Pipes are fast and good.
Use them in your programs, too.
Use GNU Parallel
-- Ole Tange

New in this release:

  • env_parallel is now ready for wider testing. It is still beta quality.
  • env_parallel is heavily modified for all shells and testing has been increased.
  • Selectively choosing what to export using --env now works for env_parallel (bash, csh, fish, ksh, pdksh, tcsh, zsh).
  • --round-robin now gives more work to a job that processes faster instead of same amount to all jobs.
  • --pipepart works on block devices on GNU/Linux.
  • Bug fixes and man page updates.

GNU Parallel - For people who live life in the parallel lane.

About GNU Parallel

GNU Parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU Parallel can then split the input and pipe it into commands in parallel.

If you use xargs and tee today you will find GNU Parallel very easy to use as GNU Parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU Parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel. GNU Parallel can even replace nested loops.

GNU Parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU Parallel as input for other programs.

You can find more about GNU Parallel at:

You can install GNU Parallel in just 10 seconds with: (wget -O - || curl | bash

Watch the intro video on

Walk through the tutorial (man parallel_tutorial). Your commandline will love you for it.

When using programs that use GNU Parallel to process data for publication please cite:

O. Tange (2011): GNU Parallel - The Command-Line Power Tool, ;login: The USENIX Magazine, February 2011:42-47.

If you like GNU Parallel:

  • Give a demo at your local user group/team/colleagues
  • Post the intro videos on Reddit/Diaspora*/forums/blogs/ lists
  • Get the merchandise
  • Request or write a review for your favourite blog or magazine
  • Request or build a package for your favourite distribution (if it is not already there)
  • Invite me for your next conference

If you use programs that use GNU Parallel for research:

  • Please cite GNU Parallel in you publications (use --citation)

If GNU Parallel saves you money:


GNU sql aims to give a simple, unified interface for accessing databases through all the different databases' command line clients. So far the focus has been on giving a common way to specify login information (protocol, username, password, hostname, and port number), size (database and table size), and running queries.

The database is addressed using a DBURL. If commands are left out you will get that database's interactive shell.

When using GNU SQL for a publication please cite:

O. Tange (2011): GNU SQL - A Command Line Tool for Accessing Different Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32.

About GNU Niceload

GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.

by Ole Tange at July 22, 2016 10:45 PM

July 21, 2016

FSF Blogs

Friday Free Software Directory IRC meetup: July 22nd

Join the FSF and friends Friday, July 22nd, from 12pm to 3pm EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.

Participate in supporting the Free Software Directory by adding new entries and updating existing ones. We will be on IRC in the #fsf channel on freenode.

Tens of thousands of people visit each month to discover free software. Each entry in the Directory contains a wealth of useful information, from basic category and descriptions, to providing detailed info about version control, IRC channels, documentation, and licensing info that has been carefully checked by FSF staff and trained volunteers.

While the Free Software Directory has been and continues to be a great resource to the world over the past decade, it has the potential of being a resource of even greater value. But it needs your help!

If you are eager to help and you can't wait or are simply unable to make it onto IRC on Friday, our participation guide will provide you with all the information you need to get started on helping the Directory today! There are also weekly FSD Meetings pages that everyone is welcome to contribute to before, during, and after each meeting.

July 21, 2016 06:50 PM

July 20, 2016

FSF Events

Richard Stallman - "Free Software and Your Freedom" (Abstractions - Pittsburgh, PA)

The Free Software Movement campaigns for computer users' freedom to cooperate and control their own computing. The Free Software Movement developed the GNU operating system, typically used together with the kernel Linux, specifically to make these freedoms possible.

Richard Stallman will be speaking at the Abstractions (2016-08-18–20). His speech will be nontechnical and the public is encouraged to attend.

Please note that anonymous registration, i.e. in cash, will be possible, on the day of the event.

Location: The David L. Lawrence Convention Center, 1000 Fort Duquesne Blvd, Pittsburg, PA

Please fill out our contact form, so that we can contact you about future events in and around Pittsburgh.

July 20, 2016 01:50 PM

July 18, 2016

denemo @ Savannah

Release 2.0.10 is out!

New features
More Conditional Settings
Apply conditions to score directives
Create duplicate directives to be used conditionally
Use for page breaks between movements, margins etc
Lyrics Pane Improvements
Save directly from verse
Navigate verses from keyboard
Hidden Staff Improvements
Now auto-show when the cursor moves on them
Can be navigated with the mouse as well as keyboard
Settings stored with score
New Commands
Create Click-Track
Auto-filled with beats
Custom fill available
Create Intro
Handles upbeat
Create Multi-Measure rests in bulk
Create Palette Buttons for Object Instantiation
Chords and Standalone Directives
Clones fingerings, string numbers, ornaments etc
Swap chord notes
Applies to doubled notes (e.g. c c or c c#)
Eases editing of the notes
Use for fingerings, string number etc
Auto-open Source File
First link opened on file open
Bug Fixes
Nth time bar numbers match font
Layout sync fixed
Undo/Redo fixed for several bugs

by Richard Shann at July 18, 2016 04:08 PM

July 16, 2016

easejs @ Savannah

GNU ease.js 0.2.8 released

This is a minor release introducing transparent Error subtyping.

This release succeeds v0.2.7, which was released 26 October, 2015. There are no backwards-incompatible changes; support continues for ECMAScript 3+.

Changes between 0.2.7 and 0.2.8:
* Transparent Error subtyping
- Extending an ECMAScript Error constructor will transparently produce a Error subtype that performs all necessary boilerplate and strips itself from the stack trace. See manual for more information.

- Manual changes:
- Added "Error Subtyping" section.
- Removed recommendation to always use `public' keyword when defining public methods (which is the default), and warning that it might be required in the future. Omitting is fine (and preferred by some).
- Added "Class Caveats" section; documented `this.__inst'.

Release notes for past releases are available at:

More information, including an online manual, can be found on GNU's website:

by Mike Gerwitz at July 16, 2016 04:30 AM

July 15, 2016

Christopher Allan Webber

Will your tooling let me go offline?

I have been a happy man ever since January 1, 1990, when I no longer had an email address. I'd used email since about 1975, and it seems to me that 15 years of email is plenty for one lifetime.

Email is a wonderful thing for people whose role in life is to be on top of things. But not for me; my role is to be on the bottom of things. What I do takes long hours of studying and uninterruptible concentration. I try to learn certain areas of computer science exhaustively; then I try to digest that knowledge into a form that is accessible to people who don't have time for such study.

-- Donald Knuth on not reading email

Finally working again on tasks where I can "go offline" for periods of time. For a while I've been working on things where all the documentation I needed was "live" on the web, and it was too difficult to know what to pull down in advance. Now I'm going offline for periods to work on the thing I'm doing, and remembering just how much that helps. Sometimes I just can't focus with eternal streams of... everything.

I've found over time that I'm massively more productive working with software that has texinfo manuals or man pages, because I can "go offline" for a while and think through problems without the eternal distractnet affecting my ability to concentrate. (I know info manuals aren't great for non-emacs users. But for me, it really helps me focus. Plus, there's nothing like navigating through info manuals in emacs if you are an emacs user.)

I'm not claiming this is a full on accessibility issue, but given my really strong ADD, whether or not you provide good offline manuals affects how productive I am with your tooling.

This post was originally posted to the pumpiverse.

by Christopher Allan Webber at July 15, 2016 01:30 PM

July 14, 2016

guile @ Savannah

GNU Guile 2.0.12 released

We are delighted to announce the availability of GNU Guile 2.0.12, a maintenance release in the current stable 2.0 series.

This release packages together many bug fixes that have accumulated over the last two years while the Guile team was otherwise busy working on the upcoming 2.2 series and on building the Guix package manager and GNU system distribution.

See the release notes for a list of user-visible changes in this release and a download link.

by Andy Wingo at July 14, 2016 08:36 PM

July 13, 2016

health @ Savannah

GNU Health 3.0.2 patchset released !

Dear community

GNU Health 3.0.2 patchset has been released !

Priority: High

Table of Contents

  • About GNU Health Patchsets
  • Updating your system with the GNU Health control Center
  • Installation notes
  • List of issues related to this patchset

About GNU Health Patchsets

We provide "patchsets" to stable releases. Patchsets allow applying bug fixes and updates on production systems. Always try to keep your production system up-to-date with the latest patches.

Patches and Patchsets maximize uptime for production systems, and keep your system updated, without the need to do a whole installation.

For more information about GNU Health patches and patchsets you can visit

NOTE: Patchsets are applied on previously installed systems only. For new, fresh installations, download and install the whole tarball (ie, gnuhealth-3.0.2.tar.gz)

Updating your system with the GNU Health control Center

Starting GNU Health 3.x series, you can do automatic updates on the GNU Health and Tryton kernel and modules using the GNU Health control center program.

Please refer to the administration manual section ( )

The GNU Health control center works on standard installations (those done following the installation manual on wikibooks). Don't use it if you use an alternative method or if your distribution does not follow the GNU Health packaging guidelines.

Summary of this patchset

  • Issues with GTK client on MS, and performance improvements
  • GNU Health control now includes automatic download of security patches from its components[1]. There is always Security Advisory (SA) associated to the patch.
  • New site for GNU Health translation portal is now at GNU Health control has been updated to fetch the language packs from the new URL.
  • Bug fixes on reports, especially on dates, ages and date formats.
  • Gnuhealth-control has been updated. These tools are also packaged separately, with their own numbering, so you can always download the latest version without the need of applying a patchset.

Refer to the List of issues related to this patchset for a comprehensive list of fixed bugs.

Installation Notes

You must apply previous patchsets before installing this patchset. If your patchset level is 3.0.1, then just follow the general instructions. You can find the patchsets at GNU Health FTP site (

Follow the general instructions at

List of issues related to this patchset

client: #47583: Windows client crashes rendering SVG files
health_iss: #48491: Remove TimeDelta for age and use patient gender
health: #47983: Performance and scalability issues on party address
health_stock: #47739: Allow to use storage for pharmacy
gnuhealth-control : Update to 3.0.3. Use SSL for main GNU URL. Include automatic download of security advisories. Updated URL for translation portal (
health: #47562: Domain error when modifying a party name
health : #47312: Use Subdivision as label in DU
task #13904: Use user specific date format in reports. Include DoB validation
health_socioeconomics : remove TimeDelta function and use standard GNU Health age computation in Family and Socioeconomic assessment


For detailed information about each issue, you can visit

by Luis Falcon at July 13, 2016 04:31 PM

July 12, 2016

Lonely Cactus

Pip-Boy like terminal application in Guile, part 4: the terminal

This is the fourth in a series of articles where I try to recreate some Pip Boy like displays in GNU Guile and ncurses.

A Pip Boy is a fictional computer in the Fallout 4 computer games.  GNU Guile is an implementation of the Scheme language.  Ncurses is a library for creating text user interfaces on terminals like the Linux terminal, Xterm, or the Gnome Terminal.

One of the iconic experiences in Fallout 4 is using the in-game computers, which are bulky, green screen monochrome terminals not unlike a DEC VT100.  Actually a closer match is the Televideo TVI-912.  Generally they are used in two ways: displaying a text block with some selectable links, or playing a hacking minigame.  Today we'll look at the first.

The basic user experience is this:
  • When activated, the terminal will begin an animation where it is add adding text to the screen one glyph at a time at about ~75 characters per second.  There is a tick sound associated with each glyph appearing on the screen.
  • Clicking the mouse or pressing enter will interrupt this drawing animation and will make all the text appear on the screen.  There is a tick sound associated with this.
  • Once drawing is complete, any text surrounded by square brackets become a link.
  • The first link is highlighted.
  • Mousing over a link or using the arrow keys will move between links.  There is a tick sound associated with moving between links.
  • Clicking on a link or pressing enter will select the highlighted link and end the interaction.  There is a sound associated with selection.
So, here there is user interaction, audio cues, time-based rendering.  It actually is a fair bit of functionality, and it also is not too friendly to the paradigm provided by the ncurses toolkit.

So I put together three different code units
As a side note, Guile has had a complete set of bindings to the multimedia enving GStreamer, which I wanted to use, but, it appears to be in need of some maintenance.  I did look at it so see if I could patch it up, but, the binding is related to the Glib binding, and I didn't want to take the time to understand all that right now.  Pulseaudio is much lower level, but, also much simpler.  I had code lying around from some old game engine attempt.

If you've coded in QT or GTK, you know that a central function of a GUI toolkit main loop is to allow each widget to send out notifications and to have other widgets be able to subscribe and react to these notifications.  In QT, these are "signals" and "slots".  In GTK they are "signals" and "signal handlers".
To keep things somewhat simple, the primitive main loop works like this...
  • There are one or more event handlers. An event handler may have an associated widget.
  • The main loop checks for an event in the queue: either a keypress, a mouse event, or a signal sent out by one of the widgets. If it finds an event, it sends it to all the event handlers.  Every handler receives every event: there is no attempt to be precise.
  • If no event is ready, the main loop sends an "idle" event to all the signal handlers, does a single step in Pulseaudio's main loop, and then sleeps for a few microseconds.

This is familiar territory.  There's nothing new under the sun.

I had to choose between letting Pulseaudio run its own event loop in its own thread, or to merge Pulseaudio's event look in to my main event loop.  I chose the latter.

Put together, it all looks like this.  For the life of me, I cannot seem to record audio on my screengrab.  I blame Wayland.

The code, in its current form, is here.  It is not ready for use.

by Mike ( at July 12, 2016 01:45 PM

July 11, 2016

www @ Savannah

July 07, 2016

FSF Blogs

Friday Free Software Directory IRC meetup: July 8th

Join the FSF and friends Friday, July 8th, from 12pm to 3pm EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.

Participate in supporting the Free Software Directory by adding new entries and updating existing ones. We will be on IRC in the #fsf channel on freenode.

Tens of thousands of people visit each month to discover free software. Each entry in the Directory contains a wealth of useful information, from basic category and descriptions, to providing detailed info about version control, IRC channels, documentation, and licensing info that has been carefully checked by FSF staff and trained volunteers.

While the Free Software Directory has been and continues to be a great resource to the world over the past decade, it has the potential of being a resource of even greater value. But it needs your help!

If you are eager to help and you can't wait or are simply unable to make it onto IRC on Friday, our participation guide will provide you with all the information you need to get started on helping the Directory today! There are also weekly FSD Meetings pages that everyone is welcome to contribute to before, during, and after each meeting.

July 07, 2016 03:23 PM

gdbm @ Savannah

July 06, 2016

FSF News

Web DRM standard moves to next phase of development, FSF's Defective by Design campaign to continue opposition

EME (full text) is a proposed technological standard for Web-based Digital Restrictions Management (DRM), digital handcuffs that video-streaming services use to micromanage users' access to legitimately obtained media. As Web users asserted while protesting the W3C's meeting this March, DRM is coercive, disempowering and insulting to users. It also causes broad collateral damage to the health of our digital society. DRM's dark history — from the Sony rootkit malware to draconian anti-circumvention laws — demonstrates that integrating it into Web standards would be nothing but bad for the Web's users. It is predicted to stymie security research, curtail privacy, freedom, and accessibility, and set back the interoperability that is necessary for innovation on the Web. There is considerable dissent about EME within the W3C — staff member Harry Halpin has pledged to resign if it becomes an official standard.

Defective by Design is the FSF's campaign against DRM in all its forms and the aegis for its work against EME. Campaigns manager Zak Rogoff made this statement:

"The W3C and its director, Tim Berners-Lee, are abdicating their responsibility — as stated in their official design principles — to put users first in the design of the Web. We had hoped that Berners-Lee would uphold the vision of inclusion and empowerment that he articulated in his famous Tweet about the Web: 'This is for everyone.' But by allowing EME to continue, he has given license to Netflix, Google and media owners to warp the Web so that it works firstly for them.

We are inspired by the worldwide network of activists who have joined us in our struggle for the freedom-respecting Web we deserve. Defective by Design will continue to escalate our campaign, deploying new and creative forms of resistance until EME is stopped."

The EME standardization effort, sponsored by streaming giants like Google and Netflix, aims to take advantage of the W3C's influence over Web technology to make it cheaper and more efficient to impose DRM systems. As of yesterday, the EME proposal is now upgraded from Working Draft to Candidate Recommendation within the W3C's process. Under the W3C's rules there are at least three more chances to pull the plug on EME before it becomes a ratified standard, also known as a W3C Recommendation.

W3C member organizations wishing to join the campaign against EME are invited to contact Defective by Design at Concerned individuals can start by signing Defective by Design's petition or adding a protest selfie to the growing gallery.

About Defective By Design

Defective by Design is the Free Software Foundation's campaign against Digital Restrictions Management (DRM). DRM is the practice of imposing technological restrictions that control what users can do with digital media, creating a good that is defective by design. DRM requires the use of proprietary software and is a major threat to computer user freedom. It often spies on users as well. The campaign, based at, organizes anti-DRM activists for in-person and online actions, and challenges powerful media and technology interests promoting DRM. Supporters can donate to the campaign at

About the Free Software Foundation

The Free Software Foundation, founded in 1985, is dedicated to promoting computer users' right to use, study, copy, modify, and redistribute computer programs. The FSF promotes the development and use of free (as in freedom) software — particularly the GNU operating system and its GNU/Linux variants — and free documentation for free software. The FSF also helps to spread awareness of the ethical and political issues of freedom in the use of software, and its Web sites, located at and, are an important source of information about GNU/Linux. Donations to support the FSF's work can be made at Its headquarters are in Boston, MA, USA.

More information about the FSF, as well as important information for journalists and publishers, is at

Media Contact

Zak Rogoff
Campaigns Manager
Free Software Foundation
+1 (617) 542 5942 x31

July 06, 2016 08:38 PM

direvent @ Savannah

GNU direvent 5.1

GNU direvent 5.1 is available for download.

Changes in this release:

  • Globbing patterns in #include statement
  • New watcher option shell
  • Include search path
  • New command line option -I (--include)

See the NEWS file entry for a detailed discussion.

by Sergey Poznyakoff at July 06, 2016 03:29 PM


GnuTLS 3.5.2

Released GnuTLS 3.3.24, GnuTLS 3.4.14, and GnuTLS 3.5.2 which are bug fix releases in the old, current and next stable branches.

Added the GnuTLS-SA-2016-2 security advisory.

by Nikos Mavrogiannopoulos ( at July 06, 2016 12:00 AM

July 05, 2016

FSF Blogs

Protect your privacy: Resist mass cracking by US law enforcement

The changes will go into effect December 1, 2016, unless a bipartisan bill called the Stopping Mass Hacking Act* is approved. You can help stop this unprecedented and dangerous expansion of government cracking authority!

* "Hacking" is often misused to identify those who break computer security - we call them crackers.*

In 2014, the Judicial Conference of the United States, which frames policy guidelines for courts in the US, proposed changes to Rule 41 of the FRCrmP that gives federal magistrate judges the authority to issue warrants for cracking and surveillance in cases where the targeted computer's location is unknown. That means law enforcement could request warrants allowing mass cracking of thousands of computers at once. The Supreme Court, which oversees the Rules, submitted the changes to the US Congress in April. This is an unprecedented, broad government cracking authorization, and it is dangerous to the privacy and security of all Internet users.

The FSF opposes these changes and — in spite of its misleading use of the word "hacking" — supports the Stopping Mass Hacking Act (S. 2952, H.R. 5321), bipartisan legislation that would block the changes. The two bills are currently under review by the Judiciary Committees of the US Senate and House. Take action: Free software activists around the world can tell the US Congress to pass the Stopping Mass Hacking Act by using the EFF's No Global Warrants tool or by looking up your representatives if you're in the US. Not in the US? Raise your concerns with your government representative.

The changes to Rule 41 must not be allowed to go in to effect. They have the potential to touch every Internet user, allowing federal judges to authorize warrants that:

  • aren't limited by location, so law enforcement could crack any computer in the world if they wish;

  • implicate any computer whose location is "concealed through technological means," like using Tor or a VPN;

  • target computers that have been "damaged without authorization," including those infected with a virus or other damaging code;

  • and infiltrate computers that may be part of a botnet, further victimizing computer users whose computers have already been accessed with malicious intent.

Much like in our fight against bulk surveillance by government programs, including PRISM, we urge you to resist mass cracking by US law enforcement authorities, who should not sacrifice the privacy of all Internet users in an attempt to catch criminals.

This is a free software issue: the FSF aims to defend the rights of all software users, in part by promoting and supporting free software-licensed privacy tools like GnuPG for email encryption and decentralized Web applications that emphasize user control and privacy. The changes to Rule 41 target Internet users who take steps to protect their online privacy — this could discourage use of privacy tools, and even weaken their effectiveness by exploiting vulnerabilities in such tools rather than helping to fix them. Also, these new powers could be used to target people doing things we defend as moral even though they are currently illegal, such as sharing anti-circumvention technology to break Digital Restrictions Management schemes.

Stop the Rule 41 changes from threatening Internet users: contact US Congress, use privacy and decentralization tools, and subscribe to the Free Software Supporter for updates on this and other free software issues. You can also read EFF's letter to Congress, endorsed by a coalition of concerned digital rights organizations and tech companies, as well as the Center for Democracy & Technology's written statement on the issue.

July 05, 2016 03:20 PM

GNU Spotlight: Seventeen new GNU releases in the last month (as of June 24, 2016)

For announcements of most new GNU releases, subscribe to the info-gnu mailing list:

To download: nearly all GNU software is available from, or preferably one of its mirrors from You can use the url to be automatically redirected to a (hopefully) nearby and up-to-date mirror.

This month, we welcome Bob Weiner as the new co-maintainer of Hyperbole and Assaf Gordon and Jim Meyering as new co-maintainers of GNU sed.

A number of GNU packages, as well as the GNU operating system as a whole, are looking for maintainers and other assistance: please see if you'd like to help. The general page on how to help GNU is at

If you have a working or partly working program that you'd like to offer to the GNU project as a GNU package, see

As always, please feel free to write to us at with any GNUish questions or suggestions for future installments.

July 05, 2016 01:15 PM

July 02, 2016

unifont @ Savannah

Unifont 9.0.01 Released

Unifont 9.0.01 is now available at

This release includes all Basic Multilingual Plane and Supplemental Multilingual Plane scripts that are easily drawn in a 16-by-16 pixel grid up through all new Unicode 9.0 scripts. This release also incorporates changes to scripts that The Unicode Consortium altered. See the ChangeLog file for full details.

by Paul Hardy at July 02, 2016 07:43 PM

June 29, 2016

German Arias

Progress report from FísicaLab project

Many changes has been done internally to facilitate the aggregation of new modules. But at UI has been some changes too. One of them is at the contextual menu of conversion factors. Now the menu only display the conversion factors available for the selected field.


Also I’m working to add menu options to save/load problems. This will avoid add all the elements and data again, when you are working on one problem.

The Thermodynamics module is taking shape now. I take time to think how to organize the elements, since in thermodynamics there are equations for specific cases. For example, to calculate the work in different process of an ideal gas. But I did not want to add an element for each case. Which would have added a lot of elements. So I simply decided ignore some fields for specific cases. For example, the temperature data for an isothermal process. The image below show the solution of a problem of this case (isothermal).


I have no idea when might be ready the next version. But you can be sure that FísicaLab is in continuous development.

Remember that FísicaLab is a free software project, and needs your support to continue its development. So to donate or help in other ways (translations or help to publicize the project) visit the official website of GNU FísicaLab.

by Germán Arias at June 29, 2016 11:54 PM

GNUnet News

Byzantine Set-Union Consensus using Efficient Set Reconciliation

Dold F, Grothoff C. Byzantine Set-Union Consensus using Efficient Set Reconciliation. In: International Conference on Availability, Reliability and Security (ARES). International Conference on Availability, Reliability and Security (ARES). ; 2016.

by Christian Grothoff at June 29, 2016 08:41 PM

FSF Blogs

Friday Free Software Directory IRC meetup: July 1st

Join the FSF and friends Friday, July 1st, from 12pm to 3pm EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.

Participate in supporting the Free Software Directory by adding new entries and updating existing ones. We will be on IRC in the #fsf channel on freenode.

Tens of thousands of people visit each month to discover free software. Each entry in the Directory contains a wealth of useful information, from basic category and descriptions, to providing detailed info about version control, IRC channels, documentation, and licensing info that has been carefully checked by FSF staff and trained volunteers.

While the Free Software Directory has been and continues to be a great resource to the world over the past decade, it has the potential of being a resource of even greater value. But it needs your help!

If you are eager to help and you can't wait or are simply unable to make it onto IRC on Friday, our participation guide will provide you with all the information you need to get started on helping the Directory today! There are also weekly FSD Meetings pages that everyone is welcome to contribute to before, during, and after each meeting.

June 29, 2016 06:48 PM

GNUnet News

libbrandt GSoC midterm status update


the GSoC midterm evaluation finished this week and it's time for a status update on the libbrandt auctioning library project.

In the past few weeks we decided to switch from RSA like crypto to Ed25519 due to performance reasons and it's generally more modern approach. Therefore we don't use libpari anymore, but libgcrypt instead. Ed25519 also has no need to validate each input value from other protocol participants.

by Markus Teich at June 29, 2016 12:54 PM

GNUCash News

June 28, 2016

guix @ Savannah

GuixSD system tests

From its inception, Guix has had a thorough test suite—something that’s not only reassuring, but also the thing that allows for fearless evolution of the code. That we didn’t have this safety net when hacking on the whole operating system, GuixSD, made it uncomfortable and more risky. We are now addressing the problem with the introduction of system tests, closing one of the major roadblocks towards 1.0.

Before going into details, let me recap the sorts of testing that already occurred in Guix land.

Unit tests

Guix’s test suite currently contains almost 600 unit tests. Each one of these stresses one particular function or subset of the functionality of Guix. This covers core package management functionality such as package builds, utility modules such as monads or the public key infrastructure (PKI) used for authenticating binaries, maintenance tools such as lint and the importers, as well as the command-line interface.

Since Guix provides Scheme modules for use both in the package management front-end and on the “build side”, the latter is also tested. This includes part of the build systems, and helpers like our ELF validation module.

Package tests

Then come the software packages that Guix ships. All of the packages in the distro are under continuous integration on the 4 supported architectures (32-bit and 64-bit Intel compatible, as well as MIPS64 and ARMv7.) Our build farm serves the resulting binaries, which users can choose to download as substitutes for local builds. Our build server, which currently runs an instance of Hydra, always shows the number of succeeding/failing builds on its dashboard. That way, breakage introduced by changes in the package collection is always rapidly detected. This is a direct benefit of the functional packaging model.

Additionally, our policy is to always run each package’s test suite (typically “make check”) as part of its build process, unless there is a serious technical obstacle to doing that. That way, we can, and do catch integration issues, incompatibilities, and plain bugs before they hit users.

System tests

So far, so good. Now, what about GuixSD itself? GuixSD did not have an automated test suite until now. What it did have, though, is the ability to instantiate an operating system in a virtual machine (VM) or in a container. You would write your operating system declaration in a file, then run, say:

This gives you a script to launch a VM running an instance of the OS declared in ‘my-config.scm’. Already pretty convenient! And indeed, even more so back in the days when we were eating a fair amount of dog food. In fact, that’s how we ate our first dog food dishes, and the VM infrastructure was the fork and knife that made it more tolerable.

So what could we test exactly? Roughly, we want to test that the instantiated system behaves according to the source ‘operating-system’ declaration: that user accounts are all there, that system services are running as expected, that all of the configuration is taken into account.

To do that, we need to run the system under test in a VM, but we also need to instrument it. We use QEMU to run our VMs, and QEMU along with the Linux virtio-serial module nicely supports communication between the guest operating system and the host, a strategy also used by NixOS’ test driver. Concretely, we define a “marionette” service, which hooks a Guile read-eval-print loop (REPL) inside the guest. This allows the host to evaluate arbitrary code in the guest VM.

Now we can write build processes (aka. “derivations”) that will:

  1. instantiate an instrumented variant of the operating system configuration we want to test in a VM image;
  2. spawn the VM, run a series of tests on the guest OS, and return the test results.

Thus, a system test to make sure the ‘uname’ system call returns something that matches the OS declaration looks like this:

There are interesting things going on here. First, while this is all Scheme code, there are in fact three tiers or strata of code at play here: the code that produces the OS declaration and the derivation, the build code of that derivation—the test—embodied in a g-expression, and code sent from the host to the guest VM via ‘marionette-eval’.

Using Scheme all the way means we can share code, use the right tools such as the SRFI-64 test framework here, pass values from one tier to another, and so on. And of course, being a full-blown language rather than shell scripts or similar means we have a rich and semantically-clear interface at our fingertips: we can directly access the data structures that matter rather than grepping the output of high-level commands. As an example, we can directly query the system service manager right from Scheme, which is often useful in system tests.


Guix now includes the test infrastructure described above; running “make check-system” runs all the currently defined tests. Currently we have tests for basic functionality. This includes making sure that all the system services declared are available and running. We have tests for specific system services such as the mcron job scheduling daemon—inspired by your parents’ cron, but with a powerful Scheme interface—and Avahi and its name service switch (NSS) integration.

Last but not least, we have tests of the full GuixSD installation procedure, which turned out to be more involved than the other tests. This works by running the GuixSD installation image in a VM, using another VM image as the target installation media, and finally booting the newly-installed system.

All the tests are automatically run on our build farm (see here, here, or there), which provides quick feedback. One step closer to 1.0!

About GNU Guix

GNU Guix is a transactional package manager for the GNU system. The Guix System Distribution or GuixSD is an advanced distribution of the GNU system that relies on GNU Guix and respects the user's freedom.

In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. Guix uses low-level mechanisms from the Nix package manager, except that packages are defined as native Guile modules, using extensions to the Scheme language. GuixSD offers a declarative approach to operating system configuration management, and is highly customizable and hackable.

GuixSD can be used on an i686 or x86_64 machine. It is also possible to use Guix on top of an already installed GNU/Linux system, including on mips64el and armv7.

by Ludovic Courtès at June 28, 2016 11:44 AM

GNUCash News

June 25, 2016

Riccardo Mottola

DataBasin - object inspector and updates

First, the underlying DataBasinKit framework got an important update.
[DBSoap update] now supports setting fields to null. That was quite a major detail missing: you could reset to blank even string fields.
This required me to fiddle a bit to generate the fieldsToNull list. Every field passed with an empty string value is considered to null.

<update xmlns="...">
<sobject xsi:type="sf:Account">
<Name>New Name</Name>

The Object Inspector, the handy tool which allows you to inspect all field values of a record and knowing immediately their developer name given the Object Salesforce Id, how got update powers!

As the Screenshot (here on MacOS) shows, changed values show in a different color (non-updatable fields show in italics and their Cell is not editable). The total number of fields to be changed is summed up in the status field. Only fields marked as changed are updated when the Update button is pressed, other are left as-is and not overwritten for safety.

Further work has been done in the Inspector and full search filtering is now available!
Just entering a a sting will filter out the relevant rows. Both the Field Name or Developer Name are matched, as well as the content! It is thus super-easy to look for all fields (also fields not at layout) which have a certain Value. All fields false? easy as in the screenshot:

by Riccardo ( at June 25, 2016 07:36 AM

gnuzilla @ Savannah

IceCat 38.8.0 release

GNUzilla is the GNU version of the Mozilla suite, and GNU IceCat is the GNU version of the Firefox browser. Its main advantage is an ethical one: it is entirely free software. While the Firefox source code from the Mozilla project is free software, they distribute and recommend non-free software as plug-ins and addons. Also their trademark license restricts distribution in several ways incompatible with freedom 0.

The user manual pages are at
You can contribute by joining the wiki and editing the manuals.

Source tarballs, binaries for generic GNU/Linux systems and translations are available at
GPG key ID:D7E04784 GNU IceCat releases
Fingerprint: A573 69A8 BABC 2542 B5A0 368C 3C76 EED7 D7E0 4784

Changes since v38.7.1

  • LibreJS updated to 6.0.13
  • HTTPS-Everywhere updated to 5.1.6
  • Updated ssl cypher settings
  • Spoof user-agent on Android as Firefox Mobile

by Ruben Rodriguez at June 25, 2016 03:54 AM

June 24, 2016

FSF Blogs

Tell EU regulators: Net neutrality isn't just for the US and India!

Free software activists and allies are fighting for net neutrality rules country by country, and we've had important victories in the US and India during the last year and a half.

Now Europeans are fighting for the same rights. The Body of European Regulators of Electronic Communications (BEREC) has followed the US and India by releasing draft net neutrality protections that would cover all countries in the EU. But they've left huge holes allowing some instances of neutrality-violating known as zero-rating (allowing access to certain sites or applications without affecting a customer's allotted data usage) and traffic throttling (intentionally slowing Internet service). Thankfully, we have a chance to fix this: BEREC has asked the public, along with industry leaders and entrepreneurs, to give feedback on its draft rules.

BEREC accepts comments from everyone, not just Europeans. Even if you don't live in the EU, it's important for the global free software community to take action in solidarity with Europeans; winning net neutrality there will set an important precedent.

Wherever you live, submit a comment now, demanding strong Net Neutrality protections for Europe. You can use the submission form created by our allies at The form does not depend on proprietary JavaScript to work, but if you'd prefer to use email, you can send your comment to instead.

Do you administer a Web site or keep a blog? If so, we encourage you to join's symbolic "slowdown" by adding a loading icon that simulates an Internet slow lane in a future without net neutrality.*

Net neutrality is important to maintain free speech and a healthy economy on the Internet. But it's also crucial for free software's continued growth and success. Here's why:

Media distribution giants that use Digital Restrictions Management (DRM) and proprietary software to control what's on your computer have also been fighting to control the network. Without net neutrality, DRM-laden materials could be easier to access, while DRM-free competitors could be stuck in the slow lane. Web-based free software projects like GNU MediaGoblin could also suffer the slow treatment while competitors like YouTube shell out big bucks for speedier service. The bottom line -- an Internet where the most powerful interests can pay for speed advantages could push free software projects off the map and make it harder for decentralized projects to flourish. That's not good for free software, and it's not good for other innovative voices for change in the digital world.

Tell BEREC now: Europe needs real net neutrality.

* We recommend the animated gif version at the bottom of the page. As of the time of writing, the JavaScript version is freely licensed, but it does not work with LibreJS, so it is less friendly to those committed to preserving their freedom and security online. Don't know what we're talking about? Learn more about our Free JavaScript campaign and the LibreJS browser extension.

June 24, 2016 09:15 PM

June 23, 2016

FSF Blogs

Friday Free Software Directory IRC meetup: June 24

Participate in supporting the Free Software Directory by adding new entries and updating existing ones. We will be on IRC in the #fsf channel on freenode.

Tens of thousands of people visit each month to discover free software. Each entry in the Directory contains a wealth of useful information, from basic category and descriptions, to providing detailed info about version control, IRC channels, documentation, and licensing info that has been carefully checked by FSF staff and trained volunteers.

While the Free Software Directory has been and continues to be a great resource to the world over the past decade, it has the potential of being a resource of even greater value. But it needs your help!

If you are eager to help and you can't wait or are simply unable to make it onto IRC on Friday, our participation guide will provide you with all the information you need to get started on helping the Directory today! There are also weekly FSD Meetings pages that everyone is welcome to contribute to before, during, and after each meeting.

June 23, 2016 01:53 PM