Forum OpenACS Q&A: Google Summer of Code Projects

Collapse
Posted by Matthew Burke on

All,

Google has announced the student proposals which have been accepted. Following are brief descriptions of the 9 Tcl projects that will take place this summer. Student projects will be worked on roughly 40 hours/week between May 26th and August 18th. From now until May 26th we will be working with the students to help them get acquainted with the Tcl community.

To that end, the students will be posting email introducing themselves and I encourage you to help make them feel welcome, help them get grounded in our code base and styles of doing things, etc.

Also, of course, don't hesitate to send them suggestions, requests, (constructive) criticism on their projects. I will post later on information for how you can track their progress over the summer.

Best,

Matt

Project Descriptions

Loading Shared Libraries from Memory and/or Tcl Channels

Student: Daniel Hans
Mentor: Andreas Kupries

The main objective of this project is to provide an enhanced mechanism of loading shared libraries from Tcl Virtual Filesystems by Tcl programs.

---

Tcl FUSE Language Binding

Student: Alexandros Stergiakis
Mentor: Stephen Huntley

The goal of this project is to produce a fully-functional Tcl language binding to FUSE virtual filesystem kernel module, making it possible to create FUSE filesystems using Tcl. It will ensure the binding works on all or most operating systems supported by FUSE, and provide detailed document the result.

---

TclDTrace

Student: Remigiusz Modrzejewski
Mentor: Daniel A. Steffen

The main objective of this project is designing and implementing a Tcl binding to the libdtrace API. This would allow all of gathering user input, compiling, running and processing the results of D scripts inside Tcl.

---

Audio Input and Output Library and Extension

Student: Mohamed Abderaouf Bencheraiet
Mentor: Youness El Alaoui

This project will consist in merging libao's interface (http://xiph.org/ao) with libao2's drivers (http://mplayerhq.hu) and make it into a single, standalone library, as well as creating an audio input equivalent and writing a Tcl extension to wrap the library, thus providing the Tcl community with a new, more powerful audio input and audio output library. This will allow the creation of new real-time audio processing Tcl applications.

---

Tcl/Tk Printing Support

Student: Blicharski Krzysztof
Mentor: Clif Flynt

I would like to take up the "printing support" project. As I consulted with the mentor, it consists of four major parts:

  1. Convert the contents of the Tcl/Tk application to a printable format. This may be Postscript, PDF, Gif, or printer commands.
  2. Transmit the intermediate format data to a printer, interacting with whatever facilities are offered by the operating system.
  3. Code layer interfaces for application developers. This could include adding print subcommands to all Tk widgets, or a print subsystem capable of understanding the contents of all widgets.
  4. User layer interface that a developer can include in an pplication to give users access to printing.
---

Update Tk Test System

Student: Ania Pawelczyk
Mentor: Jeff Hobbes

The tcltest package provides several utility commands useful in the construction of test suites for code instrumented to be run by evaluation of Tcl commands. Notably the built-in commands of the Tcl library itself are tested by a test suite using the tcltest package.

The Tk test system still uses primarily tcltest v1, and would benefit from an update to tcltest v2 and a full reexamination of out-dated tests. The test suite should gain independence from the system's settings that test is made on. This all leads to improvement of testing capabilities.

---

Graph Manipulations

Student: Alejandro Eduardo Cruz Paz
Mentor: Steve Landers

The tcllib package provides functionality for creating and manipulating graph data structures in Tcl/Tk. Although the package is fairly flexible (e.g. allows attaching arbitrary attributes to graphs, arcs, and nodes), there are a number of useful functions that could be added such as finding connected components, determine (shortest) path between two nodes, etc.

---

A Business Rule Management System based on the high-level object oriented scripting language XOTcl

Student: Franz Wirl
Mentor: Gustaf Neumann

High level object oriented scripting languages like XOTcl can be perfectly used to implement Charles Forgy's Rete algorithm. An algorithm that has been developed and tested to match between more than a thousand patterns and objects. Implementing this fast algorithm into/with XOTcl will provide a fast and dynamic Rete library in XOTcl.

An object oriented implementation allows a natural expression of rules. Object oriented interfaces to the algorithm improve its flexibility and allows usage in many different domains.

---

AOLserver-GD Integration

Student: Matthew Gagen
Mentor: Matthew Burke

The goal of this project would be to get the latest version of nsgd working with AOLserver 4.x, further rationalize its API, allow sharing of graphics among server threads, build graphing and sparkline packages using this module and use of autoconf to improve the build process. Further, I will investigate the use of SWIG in order to more easily track improvements in GD.