Version 15 of Google Code of Summer 2007 Proposals

Updated 2007-03-13 13:55:54

This page serves as "Project Ideas" for Tcl/Tk Community participation as mentoring organization in Google Summer of Code 2007.

Tcl/Tk Community handles enhancement to Tcl/Tk code base with TIPs (Tcl Improvement Proposals - for details see http://tcl.tk/cgi-bin/tct/tip/ ) and SourceForge.net Tracker for Bugs/Feature requests/Patches - see http://sourceforge.net/tracker/?group_id=10894 ). There are also plenty ideas floating in this Tcler's Wiki (http://wiki.tcl.tk ) so you are encouraged to browse these links to see what is currently needed.

You will probably find a mentor for any reasonably defined project inspired by browsing mentioned resources. But this particular page is for mentors to publish outlines for proposed projects. That way it would be simpler for students to discuss, choose and apply with Tcl as mentoring organization. It would be best if goals of the Google Summer of Code 2007 student project will be finally described in TIP like fashion. But lets start with just the ideas which we've got now. For further project details contact the following mentors:

tkosiak <tkosiak at gmail dot com>

  • Consolidate best practices form plenty custom build Tcl web servers into one multiplatform (unix/windows/embedded) embeddable multithreaded application web server in pure Tcl - modular, supporting http/1.1 mechanisms like pipelining, caching, streaming data,
  • Full HTTP/1.1 support in core http library (smaller part of above)
  • Create full Tcl bindings for DDEML (Dynamic Data Exchange Management Library - MS Windows IPC used in many SCADAs). It will allow easy creation of data providers/consumers (dde servers/clients) doing for example serial communication with particular device type and DDE with HMI suide. What previously has to be accomplished by have commercial products - see [L1 ]
  • Efective implementation of serial Tcl channel for Windows using overlapped I/O so handling of 50 or more serial ports in Tcl under MS Windows will be no more a problem for modern PC hardware
  • Tcl/Tk framework for building form-based database application as pioneered by Borland Delphi. Project aim is to compose sample application from available components, integrating it and showing how to use and glue them together to accomplished database application in Tcl.
  • code tweeks enabling starkit/starpack Tcl apps deployment for multithreaded application under MS Windows with presence in the status bar and supervised by XYZNTservise/winserv/tclsvc like windows service tools
  • nstcl/nsdlib/mod_aolserver integration and tweaking AOLserver to allow it to be started from tclsh/wish as a package require
  • debugging and fixing poor AOLserver connection handling on oversaturated client links where Apache do it the right way

JH is always full of more ideas than time:

  • Add background exec (BLT's bgexec) to core Tcl (I have some code for this)
  • Font fallback mappings
  • Font alias control
  • Process signalling ([pid signal])
  • Support for named colors (similar to the existing named fonts, but potentially allow for things like patterns)
  • A full remapping of the plethora of wm transient/state/parent/etc into [wm attributes] options
  • [image put] support of "" for transparent pixels
  • Port tkdnd to OS X. X11 and Windows are done - OS X may or may not map into the existing API well.
  • Work on fine-grained locking/mutex issues in conjunction with pthread_atfork on linux/unix

DKF

I'd really like to see someone look at how to move Tk's text widget towards supporting the full CSS2 box model (even if not with the same syntax, and definitely *without* the HTML parsing!) That would be useful for so many things.

Either that or a webservice container (including a decent amount of security support infrastructure) as a starkit/starpack so I could just add services and key-pairs to make a full system, ready to go. That'd be really cool, and interesting to me in my professional capacity as well as my Tcl-hacker capacity.

Another thing would be to contribute more image formats (e.g. jpeg2000 or PNG) or faster image reader code to tkimg; I'm sure that would be appreciated, and it could all be done by leveraging other open code, which is a Summer-of-Code sort of thing to do.


SEH 20070312 -

  • Complete fuse vfs kernel module Tcl interface so it is fully read-write rather than read-only
  • Replace ical's C module with cross-platform Tcl script
  • Replace TkRat's C module with cross-platform Tcl script (thus making Postilion usable as well)
  • Update Minkowsky and replace its C server with cross-platform Tcl script

Accomplishment of the last three would instantly make Tcl/Tk a leader in personal productivity software.