The Darcs Revision Control System
Darcs is a relatively new revision
control system that was written in Haskell by physicist David Roundy.
The system is designed around a "theory of patches" which has its roots
in quantum mechanics. Darcs has been released under version 2 of
the GNU General Public License.
The
Darcs manual
explains the project in more detail:
Darcs is a revision control system, along the lines of CVS or arch. That means that it keeps track of various revisions and branches of your project, allows for changes to propagate from one branch to another. Darcs is intended to be an ``advanced'' revision control system. Darcs has two particularly distinctive features which differ from other revision control systems: 1) each copy of the source is a fully functional branch, and 2) underlying darcs is a consistent and powerful theory of patches.
The manual further describes these two distinctions:
Functional Branches -
"This has several advantages, since you can harness the full power of darcs in any scratch copy of your code, without committing your possibly destabilizing changes to a central repository."
The Theory of Patches -
"This patch formalism means that darcs patches have a set of properties, which make possible manipulations that couldn't be done in other revision control systems. First, every patch is invertible. Secondly, sequential patches (i.e. patches that are created in sequence, one after the other) can be reordered, although this reordering can fail, which means the second patch is dependent on the first. Thirdly, patches which are in parallel (i.e. both patches were created by modifying identical trees) can be merged, and the result of a set of merges is independent of the order in which the merges are performed. This last property is critical to darcs' philosophy, as it means that a particular version of a source tree is fully defined by the list of patches that are in it, i.e. there is no issue regarding the order in which merges are performed."
Darcs differs from other revision control systems:
"In the world of darcs, the source tree is not the fundamental object, but rather the patch is the fundamental object. Rather than a patch being defined in terms of the difference between two trees, a tree is defined as the result of applying a given set of patches to an empty tree. Moreover, these patches may be reordered (unless there are dependencies between the patches involved) without changing the tree. As a result, there is no need to find a common parent when performing a merge. Or, if you like, their common parent is defined by the set of common patches, and may not correspond to any version in the version history."
Here is a brief list of Darcs
features:
- The ability to record changes locally.
- The ability to perform interactive record operations.
- The ability to un-record a non-published change.
- A full set of interactive commands.
- Support for integrating test suites into a repository.
- Support for multiple repository server protocols including http, ftp, and ssh.
- User-defined repository write access.
- Symmetric repositories, all darcs repositories are equal.
- Support for repository browsing via a web server CGI script.
- Cross-platform capable with support for Unix, Mac OS-X, and Windows.
- History is preserved when files and directories are moved around.
- Support for token replacing allowing global variable and function name changes.
- Per-user and Per-repository default setting capabilities.
Darcs version 1.0
was released
this week, the Linux kernel is being used as a test of the system
on a large project.
"With the release of 1.0, Roundy is also
making available a copy of the Linux kernel as a darcs repository. With
this proving ground, darcs is expected to soon scale to perform well on the
largest projects as well."
Darcs could prove to be a very useful tool for numerous open-source
development projects. Project leaders should certainly consider
its adoption.
Comments (9 posted)
System Applications
Database Software
Berkeley DB 4.3 released
Sleepycat has announced the availability of Berkeley DB 4.3. Many of the
improvements appear to be performance related; this release also includes
in-memory transaction logging. Click below for the details.
Full Story (comments: 2)
knoda 0.7.2-test3 released
Version 0.7.2-test3 of knoda, a database frontend, has been released.
Changes include index support for SQLite2 and SQLite3,
database preselection for the Postgres and the ODBC drivers,
Tri-state TRUE/FALSE/NULL support for boolean fields,
and more.
Full Story (comments: none)
MaxDB PHP extension released
The MaxDB PHP extension
has been released.
"
Compared to the previous version that worked over php's odbc extension, the new driver offers good benefits. Firstly, the extension supports the MaxDB native interface, and thus delivers significantly better performance. Secondly the extension offers a broader feature set (which is mostly compatible to PHP's mysql and mysqli extensions) compared to the earlier driver's limited ODBC functionality.
The new driver enables an easy migration of existing PHP application or solutions to MaxDB."
Comments (none posted)
Interoperability
Samba 3.0.8 Available for Download
Samba 3.0.8 has been released with new features and several bug fixes.
Included is a fix for a
remote denial of
service vulnerability.
Full Story (comments: none)
Libraries
libDSP 5.0.0 announced
Version 5.0.0 of libDSP has been announced.
"
libDSP is a C++ library of digital signal processing functions.
It also contains a wrapper for C. Assembler optimizations for E3DNow!,
SSE2 and x86-64 (SSE2)."
Full Story (comments: none)
libxklavier 1.11 announced
Version 1.11 of libxklavier, the X keyboard utility library,
has been released.
"
Another development release in 1.1x series of the library is out. The
most important thing is significant internal reogranization, further
separation of XKB-dependant code - which eventually (soon?) would
allow putting some xmodmap support in."
Full Story (comments: none)
Mail Software
Beat spam using hashcash (IBM developerWorks)
David Mertz
discusses hashcash as a spam prevention method
on IBM developerWorks. "
Built on the widely available SHA-1 algorithm, hashcash is a clever system that requires a parameterizable amount of work on the part of a requester while staying "cheap" for an evaluator to check. In other words, the sender has to do real work to put something into your inbox. You can certainly use hashcash in preventing spam, but it has other applications as well, including keeping spam off of Wikis and speeding the work of distributed parallel applications. In this article, you'll meet David's own Python-based hashcash implementation."
Comments (2 posted)
Web Site Development
Easy web publishing for GNOME users (GnomeDesktop)
GnomeDesktop.org has
an announcement
for GPWS, the
GNOME Personal Web Sharing
project.
"
For those unfamiliar with Mac OS X, Personal Web Sharing lets you publish web pages or share files on the internet — or on your company’s (or school’s) local area network from a folder on your hard disk. You can get your website up and running in no time.
GNOME Personal Web Sharing works very similarly, a folder named website is created after you install it where you can put your web pages or any other files you want to share. All you have to do to get your own web server up is run the program."
Comments (none posted)
mnoGoSearch-php 3.2.6 is out
Version 3.2.6 of mnoGoSearch-php, the PHP frontend to the
mnoGoSearch web site search
engine, is available with bug fixes. See the
Change Log
for details.
Comments (none posted)
UnCommon Web 0.3.2 released
Version 0.3.2 of UnCommon Web, a Common Lisp web application
development framework, is available.
"
This version features a new
component class hierarchy and new components, better documentation, an
interface to the SLIME inspector, an improved session.value API, and
more."
Full Story (comments: none)
Zope X3 3.0.0 final released
The long-awaited final release of Zope X3 3.0.0 is out. It is a complete
rewrite of the Zope application server based around a component-oriented
architecture. Note that "Zope X3" is not quite the same as
"Zope 3", which will include backward compatibility with Zope 2.
See
the
Zope X3 FAQ for more information.
Full Story (comments: none)
Which Open Source Wiki Works For You? (O'Reilly)
Shlomi Fish
reviews a number of Wiki implementations on O'Reilly.
"
The purpose of this article is to give an overview of several popular Wiki implementations and see how they fare. It is not trivial to switch from one Wiki implementation to the other, because this will usually require translating all of the pages from the old syntax to the new one. Thus, choosing a Wiki engine requires some care, taking possible future developments into account."
Comments (none posted)
Miscellaneous
Xen 2.0 released
Xen 2.0 has been released. Xen is a virtual machine implementation which
allows the running of Linux and BSD instances on a virtual system. New
features included improved virtual I/O configuration for virtual machines
and "live migration" of system images across a cluster. Click below for
the announcement, or see
the Xen project home
page for more information.
Full Story (comments: none)
Desktop Applications
Accessibility
gok 0.11.15 is available
Version 0.11.15 of GOK, the GNOME Onscreen Keyboards Suite,
is available with bug fixes and improvements to the dynamic
accessibility keyboards.
Full Story (comments: none)
Business Applications
GanttProject 1.10.2 (SourceForge)
Version 1.10.2 of GanttProject
is out.
"
It is a bugfix release which fixes
several annoying bugs. Ganttproject lets you plan projects using a Gantt
chart. It is written in Java. GanttProject use a XML file format. It can
export the project in HTML Web pages or PDF document (using XSLT) or image
files. It support 21 languages."
Comments (none posted)
Desktop Environments
GNOME 2.9.1 Development Release
GNOME 2.9.1, the GNOME development branch, is out.
"
This is our first of our 2.9 development series releases, working
towards GNOME 2.10 in March 2005. There are a number of new features present
in this release..."
Full Story (comments: none)
gnome-panel 2.9.1 is available
Version 2.9.1 of gnome-panel has been released.
"
This is the "Mieux vaux tard que jamais" release: it comes way too late
for the GNOME 2.9.1 release, but we want people to be able to test this
unstable release without waiting for GNOME 2.9.2."
Full Story (comments: none)
KDE CVS-Digest
The November 5, 2004 edition of the
KDE CVS-Digest
is online. Here's the content summary:
"
KDevelop adds extension support. kommander improves signal and slot editor. Kwallet is now asynchronous. Juk adds support for GStreamer 0.8. KPasswordDialog adds password strength meter."
Comments (none posted)
Electronics
gEDA News
The
latest releases
from the
gEDA project include
new versions of gspiceui, a GUI frontend to several Spice circuit simulators,
and Confluence, a language for synchronous reactive system design.
Comments (none posted)
Open Collector Releases
The latest new electronics applications on
Open Collector
include Oregano 0.3.3 (a schematic capture and simulation application),
InFormal 0.1.0 (a Verilog and PSL formal verification utility),
and NuSMV 2.2 (a reimplementation and extension of SMV model checker).
Comments (none posted)
Games
Eris 1.2.1 Released
Version 1.2.1 of Eris
has been released by the WorldForge game project.
"
Eris is a client library designed to simplify client development. This release adds support for libsigc++ 2.0.x in addition to libsigc++ 1.2.x supported by the previous release. It is only of interest for people wishing to build software against libsigc++ 2.0.x".
Comments (none posted)
GNOME War Pad 0.3.4 announced
Version 0.3.4 of GNOME War Pad, A VGA Planets client for GNOME,
is out. Changes include bug fixes, a new Magallanes version,
new constellations, and more.
Full Story (comments: none)
GUI Packages
FLU 2.14 released
Version 2.14 of FLU, the FLTK Utility Widgets,
are available
with some bug fixes and feature enhancements.
Comments (none posted)
Gtk# 1.9.0 released (GnomeDesktop)
Version 1.9.0 of Gtk#, the GNOME 2.6 bindings to .Net,
is out.
"
Announcing release 1.9.0 of Gtk#. This is an unstable development
release for the GNOME 2.6 bindings. It is parallel installable with the
latest stable release, 1.0.4."
Comments (none posted)
Java-Gnome 2.8.2 and 2.9.1 announced
Two new versions, a stable and development release, of Java-Gnome are
out with numerous changes. Click below for the details.
Full Story (comments: none)
Interoperability
Wine Traffic
The November 5, 2004 edition of
Wine Traffic is online with the latest news from the Wine project.
Comments (none posted)
Mail Clients
Thunderbird 0.9 released
Version 0.9 of the Thunderbird mail client is out. Major new features include saved search folders, message grouping, better POP3 support, and more; see
the release notes for details and download information.
Comments (5 posted)
Music Applications
DSSI 0.9 released
Version 0.9 of DSSI, an audio plugin API designed for software
instruments with custom user interfaces, is available.
"
The main improvements in 0.9 are to the reference host implementation
and sample plugins.
The 0.9 API itself is binary compatible with the previous 0.4 release.
A new convention for plugin-global (rather than instance-local)
configuration data and a convention for setting a plugin's project
working directory have been introduced, and 0.9 clarifies certain
implementation points in the documentation."
Full Story (comments: none)
dssi-vst 0.3 announced
Version 0.3 of dssi-vst, a DSSI plugin wrapper for VST effects and
instruments, has been released.
"
The main improvement since the initial 0.1 release is that dssi-vst
now works correctly with plugins with complex GUIs that use
back-channel information to communicate things like patch data to
the audio plugin. In practical terms, this means that VSTs with
test keyboard widgets, patch load and save, and other natty features
in their GUIs should work properly as DSSI plugins without losing
automatability for the true automatable parameters."
Full Story (comments: none)
Wired: music production and composition software for Linux (GnomeDesktop)
GnomeDesktop
looks at Wired, a
music production and composition system for GNOME.
"
Wired aims to be a professional music production and composition software running on Linux. It is using the GTK+ widget set (via wxWidgets) for better integration with the Gnome desktop.
It brings musicians a complete studio environment to compose and record music without requiring expensive hardware."
Comments (none posted)
Peer to Peer
Gnomoradio 0.15 announced
Version 0.15 of Gnomoradio, a peer to peer music playing system,
is available.
"
The release of version 0.15 makes Gnomoradio the first player to be able to import playlists based on the new XSPF file format (www.xspf.org). Other changes to 0.15 include migration to gtkmm 2.4 and a few bug fixes."
Gnomoradio 0.15.1
was announced
a few days later, it adds more bug fixes.
Full Story (comments: none)
Digital Photography
digikam 0.7 released
Version 0.7 of digikam,a digital photo management application for KDE,
is available.
This release features a metadata database backend, improved
photo tagging support, a built-in image viewer with numerous
plug-ins, and much more.
Full Story (comments: none)
Video Applications
avideomux 2.0.34-test1 released
Version 2.0.34-test1 of avideomux, a graphical video editing tool,
has been announced.
"
Let's put it that way : 2.0.30 was awful. 2.0.32 was just bad. Most audio processings were broken. 2.0.34 is not average, it is good. All bugs are fixed and the version is globally good.
So please drop 2.0.30 and 2.0.32 and use 2.0.34."
Comments (1 posted)
Web Browsers
Firefox 1.0 released
At last, Firefox 1.0 is out. Changes since the last release candidate
consist mostly of bug fixes, but there is also an improved facility for
controlling how links opened by other applications are handled. See
the release
notes for details and download information.
Comments (10 posted)
GNOME-Fx 0.10.1: "GNOME Firefox themes"
Version 0.10.1 of GNOME-Fx, the GNOME Firefox themes, are out.
"
The GNOME-Fx themes try to make Firefox look like a native
GNOME application. Version 0.10.1 is a huge improvement because the
themes use more native looking GTK widgets and also the help is GNOMEized."
Full Story (comments: none)
Miscellaneous
Alexandria 0.4.0 is out
Version 0.4.0 of Alexandria, a GNOME book collection management application,
is available.
Changes include support of several new library formats,
CueCat barcode scanner support, manual editing of books, and much more.
Full Story (comments: none)
Coaster 0.1.0 announced
Version 0.1.0 of Coaster, a disc burning application for GNOME,
has been released.
Full Story (comments: none)
GNOME Comics Organizer 0.5.0 is out
Version 0.5.0 of GNOME Comics Organizer, a comic book collection
tracking utility, has been released. This is a major rewrite, it
adds support for the latest GNOME/GTK, an XML file format,
and more.
Full Story (comments: none)
Languages and Tools
C
GCC 3.4.3 Released
Version 3.4.3 of GCC, the Gnu Compiler Collection,
has been released.
"
This release is a bug-fix release, containing fixes for regressions in GCC 3.4.2 relative to previous releases of GCC."
See the
Changes document for details.
Comments (none posted)
gcc newsletter #14
The November 3, 2004 edition of the
gcc newsletter
is online.
Topics include release schedules, version-specific speed regressions,
language extensions, optimization tests, the Ada frontend, and more.
Comments (none posted)
Groovy
Practically Groovy: Unit test your Java code faster with Groovy (IBM developerWorks)
Andrew Glover
unit tests Java with Groovy, a Java-based scripting language,
on IBM developerWorks.
"
Not long ago, developerWorks contributor Andrew Glover penned an article introducing Groovy, a new proposed standard language for the Java platform, as part of our alt.lang.jre series. Reader response was fantastic, so we've decided to launch this column to offer a practical guide to using this hot new technology. This first installment introduces a simple strategy for unit testing Java code with Groovy and JUnit."
Comments (none posted)
Java
Using SSL with Non-Blocking IO (O'ReillyNet)
Nuno Santos
shows how to use SSL with the Java 1.4 non-blocking IO package.
"
Previously, the IO support in Java was limited to stream-based, blocking IO, which although elegant and simple, is significantly impaired in terms of scalability, requiring one active thread for each network connection. Java NIO introduced support for IO multiplexing and non-blocking IO, which are necessary tools to build highly scalable applications."
Comments (none posted)
What's new in JAXP 1.3? (IBM developerWorks)
Neil Graham and Elena Litani
review JAXP 1.3 in part one of an IBM developerWorks article.
"
For a mature technology, the XML space is surprisingly active. Java™ API for XML Processing (JAXP) 1.3 was recently finalized, and is the conduit through which many of the newest open standards relating to XML will enter the J2SE platform. In this installment of a two-part article describing the JAXP 1.3 API, authors Neil Graham and Elena Litani provide a brief overview of the JAXP specification, give details of the modifications to the javax.xml.parsers package, and describe a powerful schema caching and validation framework."
Comments (none posted)
Lisp
ECL 0.9d released
Version 0.9d of ECL (Embeddable Common-Lisp) is out.
"
This version features support for shared libraries under Windows and
Mac OS X, includes a working CLX library, provides a pretty printer,
and more."
Full Story (comments: none)
Perl
This Fortnight on Perl 6 (O'Reilly)
The November 4, 2004 edition of
This Fortnight on Perl 6 is online. Take a look for the latest
Perl 6 discussions.
Comments (none posted)
Perl 6 grammars and regular expressions (IBM developerWorks)
Teodor Zlatanov
compares Perl 5 and 6 regular expressions on IBM developerWorks.
"
Perl 6 is finally coming within reach. In this article, Ted gives you a tour of the grammars and regular expressions of the Perl 6 language, comparing them with the currently available Parse::RecDescent module for Perl 5. Find out what will be new with Perl 6 regular expressions and how to make use of the new, powerful incarnation of the Perl scripting language."
Comments (none posted)
PHP
PHP Weekly Summary for November 8, 2004
The
PHP Weekly Summary for November 8, 2004 is out. Topics include:
./configure, SuSE and the AMD64,
Negative string offset continued,
spl interfaces,
Reflection API,
PDO meeting at phpconf,
isset and the new VM,
localeconv not working,
serialize (again),
Upload progress meter,
new overloading feature?,
__call interceptor and static methods,
MySQL win32 libraries,
PostgreSQL and Boolean values, and
make test and rfc1867.
Comments (none posted)
Conduct Web experiments using PHP, Part 2 (IBM developerWorks)
Paul Meagher has written
part two of an IBM developerWorks series on PHP web experiments.
"
In Part 1 of this two-part series, Paul Meagher showed you how to improve the quality of your Web offers by developing PHP-based tools to set up and run Web experiments. In Part 2, you focus on simulating and analyzing the contingency table data arising from these Web experiments."
Comments (none posted)
Python
Python 2.4 beta 2 released
The beta 2 version of Python 2.4 has been released.
"
Python 2.4b2 is a beta release. We'd greatly appreciate it if you could
download it, kick the tires and let us know of any problems you find,
but it is probably not suitable for production usage."
Full Story (comments: none)
urwid 0.8.2 announced
Version 0.8.2 0f urwid, a curses-based UI/widget library for Python,
is available.
"
New in this release:
- Re-released under GNU Lesser General Public License. Enjoy!"
Full Story (comments: none)
Python Memory Management
Evan Jones
explores
the issues behind Python's appetite for system memory.
"
Hence, the Python interpreter uses a variety of optimized memory allocation schemes. The most important one is a malloc implementation called pymalloc, designed specifically to handle large numbers of small allocations. Any object that is smaller than 256 bytes uses this allocator, while anything larger uses the system's malloc. This implementation never returns memory to the operating system. Instead, it holds on to it in case it is needed again. This is efficient when it is used again in a short time, but is wasteful if a long time passes before it is needed."
Comments (none posted)
Tcl/Tk
Dr. Dobb's Tcl-URL!
The November 8, 2004 edition of Dr. Dobb's Tcl-URL! is online
with the week's Tcl/Tk article links.
Full Story (comments: none)
XML
Hacking iTunes (O'Reilly)
Niel Bornstein
works with the iTunes music player on O'Reilly. "
In this article I'll explore ways to work with the iTunes Music Library file, an XML document, for fun and education, including transforming the library into an HTML page using various technologies, and querying Amazon and Google's web services for other suggested recordings and related information."
Comments (none posted)
Editors
Conglomerate 0.7.16 Released
Version 0.7.16 of Conglomerate, an XML editor, has been released.
"
This is still an unstable release; there are still some known repeatable
crash bugs. Please download it and test that no new bugs have been
introduced!"
Full Story (comments: none)
MlView 0.7.1 released
Version 0.7.1 of MlView, a generic XML editor for GNOME,
has been released. This is a bugfix release in the stable branch.
Full Story (comments: none)
Page editor: Forrest Cook
Next page: Linux in the news>>