|
|
Subscribe / Log in / New account

Development

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]

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>>


Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds