Version 14 of Google Code of Summer 2007 Proposals

Updated 2007-03-13 13:45:29

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:

tkosiak <tkosiak at gmail dot com>

  • multiplatform (unix/windows/embedded) embeddable multithreaded application web server in pure Tcl - modular, supporting http/1.1 mechanisms like pipelining, caching, streaming data,
  • (smaller part of above) Full HTTP/1.1 support in core http library
  • full bindings in Tcl for DDEML (Dynamic Data Exchange Management Library - MS Windows IPC used in many SCADAs), especially scada application, dde servers, serial communication facilities build into tcl how easy is to build competing products to these [L1 ]
  • efective implementation of serial Tcl channel for Windows using overlapped i/o so handling 60+ serial ports in Tcl will be no problem for moder hardware
  • Tcl/tk framework for building database/form-based application a'la Borland Delphi: compose sample application form 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.