Projects

Alto Software creates, maintains, co-maintains and contributes to software projects that are officially part of GNU or support Free Software.

GNU G-Golf

G-Golf
GNOME: (Guile Object Library for)

G-Golf is a Guile Object Library for GNOME.

G-Golf is a tool to develop fast and feature-rich graphical applications, with a clean and recognizable look and feel. Here is an overview of the GNOME platform libraries, accessible using G-Golf.

In particular, libadwaita provides a number of widgets that change their layout based on the available space. This can be used to make applications adapt their UI between desktop and mobile devices. The GNOME Web (best known through its code name, Epiphany, is a good example of such an adaptive UI.

G-Golf uses GLib, GObject and GObject Introspection. As it imports a Typelib (a GObject introspectable library), G-Golf defines GObject classes as GOOPS (the Guile Object Oriented System) classes. GObject methods are defined and added to their corresponding generic function. Simple functions are defined as scheme procedures.

Here is an example, an excerpt taken from the peg-solitaire game, that shows the implementation, for the peg-solitaire game, of the GtkApplication activate signal callback in G-Golf:

(define (activate app)
  (let ((window (make <gtk-application-window>
                  #:title "Peg Solitaire"
                  #:default-width 420
                  #:default-height 420
                  #:application app))
        (header-bar (make <gtk-header-bar>))
        (restart (make <gtk-button>
                   #:icon-name "view-refresh-symbolic")))

    (connect restart
             'clicked
             (lambda (bt)
               (restart-game window)))

    (set-titlebar window header-bar)
    (pack-start header-bar restart)
    (create-board window)
    (show window)))

G-Golf comes with some examples, listed on the learn page of the G-Golf web site. Each example comes with a screenshot and has a link that points to its source code, in the G-Golf sources repository.

Active - Fund Raising
Pr. Admin. - Maintainer

GNU Guile-CV

Guile-CV
Image Processing and Analysis Guile
a Computer Vision functional programming library

Guile-CV is based on Vigra (Vision with Generic Algorithms), enhanced with additional algorithms (Image Textures, Delineate, Reconstruction and many more), all accessible through a nice, clean and easy to use high level API.

Guile-CV is natively multi-threaded, and takes advantage of multiple cores, using high-level and fine grained application-level parallelism constructs available in Guile, based on its support to POSIX threads.

Active - Fund Raising
Pr. Admin. - Maintainer

GNU Foliot

Foliot
a small and easy to use time keeping application

Active
Pr. Admin. - Maintainer

Guile-Lib

Guile-Lib
a down-scaled, limited-scope CPAN for Guile.

Guile-Lib is intended as an accumulation place for pure-scheme Guile modules, allowing for people to cooperate integrating their generic Guile modules into a coherent library.

Active
Pr. Admin. - Co-Maintainer

Guile-SQLite3

Guile-SQLite3 is a Guile wrapper for the SQLite database 3.0 API.

Active
Commiter

Tactus

Tactus is a simple yet powerful graphical planning and coordinating tool. Originally developed using Winterp and Motif, it will be redesigned and ported to Guile and G-Golf.

Planning - Fund Raising
Pr. Admin. - Maintainer

Grip

Grip
a Grip of Really Important Procedures

Grip is our Guile Scheme toolbox.

Active
Pr. Admin. - Maintainer

GNU Guile-GNOME

Guile-GNOME, a Guile wrapper for some of the GNOME core libraries, is retired (unmaintained) since 2017.

For your GNOME based graphical application(s) in Guile, prefer G-Golf or Guile-GI.

Retired (unmaintained)
Pr. Admin. - Co-Maintainer

GNU Guile-Clutter

Guile-Clutter, a Guile wrapper for the GNOME Clutter library, is retired (unmaintained) since 2017.

In February 2022, the development team announced that the project would be discontinued. Developers using Clutter are encouraged to port their applications to Gtk+ 4.0 and libadwaita.

For Gtk+ 4.0 and libadwaita based application(s) in Guile, prefer G-Golf or Guile-GI.

Retired (unmaintained)
Pr. Admin. - Co-Maintainer

G-Wrap

G-Wrap, a tool (and Guile library) for generating function wrappers for inter-language calls, used to generate Guile wrappers for C functions, mainly for Guile-GNOME and Guile-Clutter, is retired (unmaintained) since 2017.

Retired (unmaintained)
Pr. Admin. - Commiter

Unpublished

Software we created and maintain that support Free Software, but are unpublished, generally because they are too specific. We nonetheless list them because they do witness knowledge, experience and skills you might be interested in.

ThesisPUC

ThesisPUC
a LaTex document class

ThesisPUC is a LaTex document class (and bibtex style) for Phd and master thesis we have updated and maintain for the PUC-Rio.

Active
Pr. Admin. - Maintainer

Rg-Ergbd

Rg-Ergbd
Region Growing - Eucledian Red Green Blue Distance

Within the Digital Image Processing Laboratory, Materials Engineering Department of the PUC-Rio, we participate to the development of advanced algorithms for mineral (and agglomerates) microscopic image analysis.

Active
Pr. Admin. - Maintainer