GRASS originated on a VAX Unix environment and was ported to various Unix flavors during the 1980s. The project leader Bill Goran and the software architect L. Van Warren initially assumed that other commercial GIS systems would be easily accessible, and that they would be able to adapt such systems to the Pentagon's needs. After some analysis, they realized that no existing GIS system would meet the Pentagon's standards; they decided to create GRASS mostly from scratch, although existing Unix libraries were used wherever possible. GRASS was released as public domain software in 1985. The project received feedback from other development groups working at federal and institutions and universities.
In 1996, version 5 was in the making, but USA-CERL decided to withdraw support from the public domain version of GRASS, and collaborated with several commercial entities to create the non-free GRASSLANDS and other derivatives. In 1999 GRASS was released under the GPL while under the leadership of the University of Baylor and Markus Neteler, then at the University of Hanover. Various ports to a number of Linux flavors and non-Intel architectures have come into existence since.
These days the stable 5.4 version is available for Linux, Mac OS X, and Windows NT/2000/XP under Cygwin. It is possible to run GRASS on a number of Unix systems, but one would be well advised to compile from source, since, despite assurances to the contrary, binaries are not always available. The same advice applies to version 6.0.0, so far there are only beta and development versions available.
The internationalization framework for GRASS is has been fully implemented, and character sets which are part of the Unicode standard can be used to implement new localization projects. The display routines now support the multi-byte character sets used in East Asian languages.
GRASS is huge, there are currently more than 1 million lines of C code. Binary versions weigh in between 30 and 150 MB, depending on the options enabled at compile time and the operating system target. C++ support is being added, although it is not clear to what extent future modules should be written in C++.
All GIS tool chains rely on databases to handle their spatial data. Internally, GRASS relies on dBase, although interfaces to external databases engines like MySQL, PostgreSQL and ODBC-based database engines exist, and are well supported. Anyone writing new modules for GRASS database access will not have to pay attention to the specifics of the database engine. For users and programmers, a basic Unix-type sub-directory structure with pre-configured directory names has to be created first, since it is hard coded into the GRASS installation and configuration files.
Multiple GRASS sessions can now be started from the same installation. This is particularly useful for instances where users might want to work on different versions of the same dataset. It is even possible to start 5.4 sessions and 6.0 sessions concurrently without having to worry about version conflicts.
GRASS supports both raster-based and vector-based data management; but unlike many other GIS systems, it supports a large variety of image processing modules, the creation of maps using the PROJ.4 cartographic projections library, and data visualization. Grass can process 2D and 3D raster data in 40 different formats including the bmp and jpeg formats as well as the less common JDEM format. The GDAL library supports many formats, although many of the more obscure formats can only be read, not created. 3D raster (voxel) volumes have been folded into GRASS quite recently with the 5.7 development version. Routines from the scriptable NVIZ package make it easy to visualize the same 3D raster data, since it includes new 3D display routines.
Vector data handling has been the subject of a complete rewrite. GRASS 6.0.0 is now able to handle topological vector data fully, and the vector geometry engine uses a data format that can live on 32 and 64-bit processors. Internal data structures have been rewritten in such a way that vector data can be accessed much more quickly. Vector data include non-spatial attributes that are best processed by traditional SQL-driven database management systems, a factor in the decision to include external database support.
GRASS can also handle PostGIS geographical objects stored on PostgreSQL. PostGIS objects are accessed as a vector file format. They are made available through the OGR Simple Features Library, which is a part of the GDAL package.
The number of interfaces, scripting routines, visualization packages as well as its stability and scalability make GRASS a truly unique addition to the stable of Linux applications. GRASS has also become the focus around which several Linux distributions have been built, including GIS Knoppix and Quantian. Enjoy!
Audio Projectslatest changes from the Planet CCRMA audio utility packaging project include the addition of Qjackctl 0.2.15-1, the 2.6.10 kernel for Fedora Core 2 and 3, ZynAddSubFX 2.1.1-2, and Pd externals for Fedora Core 3.
Database Softwarehas been announced. "In order to address a potential security hole recently identified with the "LOAD" option, the PostgreSQL Global Development Group is announcing the release of new versions of PostgreSQL going back to the 7.2.x version." looks at SQLMaps on O'Reilly. "Hibernate is great--if your DBA will let you run generated database queries on his or her system. Sometimes you need to keep the option of hand-optimized queries open. Sunil Patil introduces SQLMaps, a framework that allows you to do just that." MySQL-python, the Python interface to the MySQL database, is out. "MySQL-3.22 through 4.1 and Python-2.3 through 2.4 are currently supported." explores MySQL triggers on O'Reilly. "MySQL 5.0, the alpha version of MySQL that's available for testing new features, has trigger support. This is no surprise, as triggers were promised in the MySQL Development Roadmap, but it's a novel experience to work with one of the big "MySQL can't do that" features and watch MySQL doing it."
InteroperabilityThis is the latest stable release of Samba. This is the version that production Samba servers should run for all current bug-fixes."
Networking Toolsis available. "This release includes major enhancements. With the growth of internet enabled devices, the IPv4 addressing range will be used up soon. Jeremy T Bouse has integrated IPv6 support into our networking utilities, so you can now monitor your next generation network."
Peer to PeerWASTE "is an anonymous, secure, and encrypted collaboration tool which allows users to both share ideas through the chat interface and share data through the download system." Version 1.5 beta 3 of WASTE has been announced. "This new release features a brand new installer, a mini version for those with a low bandwidth connection (excludes documentation), and the first release of WASTE in other languages."
Web Site Developmentis available. "Current ATutor users are encouraged to upgrade their systems to take advantage of the many new features that have been added to this release." This version features several changes related to components and component rendering, the TAL/YACLML template and formatting languages, backends, documentation, and more."
Accessibilityapplies XML to captioning on O'Reilly. "It's taken a while for movie producers and distributors to catch up to the closed-captioning capabilities of the hardware, but they're almost there. Yet in one important area, content is still all too often obscured from my earnest attention: computerized multimedia. From games to Flash and Shockwave animations to Quicktime and Windows Media clips, what's going on on my PC is frequently just flat-out lost on me. Computers... text... hmmm. You'd think XML might come to the rescue here. And so it does."
Business Applicationshas been announced. "Compiere to date, has been available on Oracle. We are pleased to announce that it is now also available on Sybase. Several independent open source projects have ported Compiere to different databases."
Data VisualizationGmsh, a three-dimensional finite element mesh generator, has been announced. "In addition to the usual bug fixes, Gmsh 1.59 adds support for discrete surfaces, introduces several new default plugins, and improves the solver interface."
Desktop EnvironmentsEquinox Desktop Environment is a new lightweight desktop system that is based on FLTK, the Fast, Light ToolKit.
EDE Version 1.0.2 was announced this week, it promises stability improvements and new features.an announcement for the new GNOME 2.10 Beta 1 Public Testing Release. "Also known as 2.9.90, GNOME 2.10 Beta 1 is the first pre-release intended for wide public scrutiny before the final release in March. It is packed full of tasty GNOME goodness, so if you're itching to find out what we've been doing, and can't wait to finish building it, take a look at Davyd's Sneak Peek this release".
ElectronicsOpen Collector include QOscC 0.1.6 (software oscilloscope), SC2V 0.3 (SystemC to Verilog synthesizable subset translator), and Confluence 0.10.2 (declarative functional programming language for the design and verification of synchronous reactive systems). XCircuit, an electronic schematic drawing package, is available. This version features fixes for several bugs.
Financial Applicationsis out. "Eclipse Trader is a set of plugins for the Eclipse RCP (Rich Client Platform) dedicated to the building of an online stock trading system. This release adds a simple alerts system that may be used to receive notifications when a stock item reaches a predefined price level, and a new plugin for the Directa Trading (Italy) service. This plugin provides realtime data and trading feature for Directa customers."
Gameshas announced version 0.2.0 of Ember. "Ember is a 3d client for the WorldForge project. It uses the Ogre 3d graphics library for presentation and CEGUI for it's GUI system. This is the first release of Ember since it's fork from the Dime codebase. The focus has been on getting a working client out of the door. Games such as Mason are fully playable." PyGame site has been mysteriously quiet for a few months, now there's an explanation: "As you might have noticed, Pete has been MIA recently. A group of Pygame users (Bob Ippolito, Rene "illume" Dudfield, Joe "piman" Wreschnig, and others in #pygame) are trying to organize the 1.7 release in his absence. If you know of any bugs in Pygame 1.6.2 that haven't been fixed in CVS (if you don't know and don't know how to check, assume they aren't), please stop by #pygame on irc.freenode.net".
Graphicshas been announced. "The 6.05 beta 2 release includes new support for the 3DS file format, 2D and video rendering, optional wxWidgets integration, workarounds for bugs in old graphics cards, and major performance improvements in the networking API. It is also the first release to support the new g++ 3.4 on Linux and has a Win32 installer for easy setup."
Instant Messagingapplies a speech synthesizer to IRC on O'Reilly. "This article will show you how to create a multi-platform IRC bot (an automated client) that uses the FreeTTS Java speech synthesizer library to convert IRC messages into audible speech."
InteroperabilityWine Traffic is online, take a look for the latest developments in the Wine project.
Music Applicationsblepvco is a LADSPA plugin library containing three anti-aliased, minBLEP-based, hard-sync-capable oscillator plugins. The oscillators are intended to be used with modular synthesis systems, such as Alsa Modular Synth (a couple example AMS patches are included)."
ScienceMathomatic is out. "Mathomatic is a highly portable, general purpose CAS (Computer Algebra System) written entirely in C. It is totally free software (GNU LGPL license). This is a console mode application that compiles and runs under any operating system with a C compiler. It has been under development since 1986 and now stands at 15,000 lines of code."
Web Browserscovers the latest Mozilla Development Roadmap announcement. "Following on from the recent Mozilla Firefox Roadmap update, the main Mozilla Development Roadmap has also been revised. The big news is that there will be a second Mozilla 1.8 Beta release in March." The minutes from the January 24, 2005 mozilla.org staff meeting are online. The MozillaZine summary says: "Issues discussed include Mozilla 1.8 Alpha 6, Mozilla Firefox 1.0.1, Mozilla Firefox 1.1, deploying Hendrix and the broken website tool." announced the February 7, 2005 edition of the Mozilla independent status reports. "The latest set of independent status reports includes updates from Journal, Link Visitor, Spurlbar, biobar, cuneAform, Figaro, Research Buddy, Abacus MathML Editor, IE View, ConQuery, Launchy, viewbgplus, Searchsidebar and Flashblock." reports on the availability of version 1.0 of the XForms plugin for Mozilla and Firefox. "The Mozilla Foundation today released a beta version of its XForms plugin for Gecko-based browsers. XForms 1.0 is a W3C recommendation that allows web page authors to take advantage of structured data and client-side validation when designing forms. XForms is designed to be embedded in XML documents, such as XHTML 1.0. Mozilla XForms support has been developed over the last several months by IBM, Novell, and independent contributors."
Miscellaneouscarries the announcement of the first official release of the Sunbird calendaring program from the Mozilla Project. For the curious, screenshots can be found on the Sunbird page.
Languages and Tools
Javamanipulates bits with Java in an O'Reilly article. "Flipping bits on and off is the lowest level of computing, and most Java developers are totally isolated from it. But maybe they shouldn't be. In this article, Glen Pepicelli introduces the idea of bitsets--ints and longs whose bitwise representation are the data you're interested in--and how they can be used with mathematical and logical operators to write faster code." introduceTMAPI on O'Reilly. "There are several software packages for Java developers when they need to develop applications using XML Topic Maps. There are some proprietary software vendors and also open source packages like TM4j, tinyTIM, and a few others. In the Java tradition to standardize interfaces, the TMAPI project has proposed a set of Java interfaces which particular Topic Map implementations may choose to adhere to. The obvious advantage for the application developer is to use only that single set of interfaces and to choose a particular implementation on other merits." discusses tools for Aspect-oriented programming on IBM developerWorks. "AOP is a technology whose time has come, but how do you choose the right tool for your projects? In this first article in the new AOP@Work series, aspect-oriented programming expert Mik Kersten compares the four leading AOP tools (AspectJ, AspectWerkz, JBoss AOP, and Spring AOP) to help you decide which one is for you. In Part 1 of this two-part discussion, the author focuses on the tools' language mechanisms and the trade-offs imposed by the different approaches."
Part two of the series is also available.writes about the Hansel and Gretel code coverage tools on IBM developerWorks. "Unit tests provide a great technique for making sure that code performs to specifications. But the quality of unit tests is up to the test writer, and the results from unit tests are only as good as the quality of the tests. How can you make sure your unit tests deliver the quality you need? In the first article of this new series dedicated to classworking tools, regular developerWorks contributor Dennis Sosnoski discusses how code coverage tools provide one important quality check for your tests."
LispBill Clementson has written a new weblog entry in a series about parallel computing in Lisp. The latest entry, posted on 25 January 2005, deals with the feedback he got on the previous ones. Bill started posting weblog entries in this series in April 2004. They discuss the various approaches, dialects and tools for parallel computing in Lisp."
PerlThis Fortnight in Perl 6 is online with another collection of Perl 6 topics. discusses the Remote Procedure Call under Perl. "In the Perl world there are several modules that offer different kinds of RPC, including RPC::Simple, RPC::XML, DCE::RPC, and more. In this article I'll explain how to use Perl-specific features to develop a compact RPC implementation that I will name Perl-centric Remote Call (PerlRC). As the name suggests, it will run only with Perl clients and servers."
PythonSimpleXMLRPCServer vulnerability. This is the last planned update for Python 2.3. part two. "The goal of test-driven development is not to produce tests; they're merely a helpful by-product. The real goal is to produce elegant, working code. Jason Diamond demonstrates how test-driven development can improve the design of code."
RubyRuby Weekly News is available with the latest news and discussion from the ruby-talk mailing list.
XMLdiscusses the XPath 2.0 data model on O'Reilly. "As XSLT 2.0 and its companion specification XQuery 1.0 approach Recommendation status, it's time to step back and look at a more fundamental difference between 2.0 and 1.0: the underlying data models. A better understanding of the differences gives you a better understanding of what you can get out of XSLT 2.0 besides a wider selection of function calls." shows how to Generate SQL with XSLT on IBM developerWorks. "Learn to use the cutting-edge features of XSLT 2.0 and generate PHP code from an abstract data model. In Part 1 of this two-part series, Jack Herrington uses a robust multilevel transform technique to show you how to take a simple model of a target database and generate the SQL for the database server."
Version Controlchange log file for details.
Page editor: Forrest Cook
Next page: Linux in the news>>
Copyright © 2005, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds