Version 91 of Project Ideas for Google Summer of Code 2010

Updated 2011-03-11 03:55:27 by AK

SEH: The brainstorming starts now: Project Ideas for Google Summer of Code 2011


Ideas from Last Year

These are things that weren't accepted then. See Project Ideas for Google Summer of Code 2009 for full descriptions.

Idea pageNotes
GSoC Idea: Tk - Factor Photo Image Handling
GSoC Idea: Tcl state machine back-end module for XMLVMGSOC2010:Tcl state machine back-end module for XMLVM
GSoC Idea: Gnocl
GSoC Idea: TkPath
GSoC Idea: Computational geometry for glyph outlines
GSoC Idea: Themed Tk on UnixGSOC2010:Themed Tk on Unix
GSoC Idea: Garbage Collection for Tcl Values
GSoC Idea: Parsing mathematical expressions
GSoC Idea: Wrapping numerical libraries
GSoC Idea: Tcl FireFox Scripting and DOM access
GSoC Idea: More mtmtcl structures
GSoC Idea: Implement More Mikroconf Modules
GSoC Idea: Megawidget development
GSoC Idea: Auto Documentation Tool for Tcl
GSoC Idea: Continue BLT Library Refactoring
GSoC Idea: Create Free-standing Slate Widget
GSoC Idea: Fossil Tk Client
GSoC Idea: Controlling (numerical) computations and simulations
GSoC Idea: SCORM Compliant Run-Time Environment for OpenACSGSOC2010:SCORM Compliant Run-Time Environment for OpenACS
GSoC Idea: MapReduce Algorithm Using Scripted Channels and Threads
Tcl: Better string sentence and title case handling
Tk: Demo Expansion
Tcllib: XLS Read/Write
Tcl Application Server
Tclhttpd: refurbish
Tk: Curses implementation of Tk
Tk: Icon Themes
AOLserver: libpurple integration
Tcl[?]: Complete TclScript project for IE scripting
Tcl/Tk Browser Plugin: User-Privileged Security
Tcl/Tk Browser Plugin: OSX Port
Improving dotLRN
Tcl: Constraints
Tk: Drag-n-drop for Aqua
OpenScripting Tcl
Glade XML to Tk translator
Cicero refurbish

From Things holding Tcl back:

  1. Printing support!
  2. Add Drag and Drop support for Mac.
  3. Support for more textured backgrounds in Tk and Tile on Mac. Pinstripe's terribly unfashionable. Ideally, we should be able to define our own background images.
  4. Alpha transparency in widget backgrounds.
  5. A KDE theme for Tile, incorporated in the base Tile download.
  6. A Gnome theme for Tile, also incorporated in base Tile.

New suggestions:

  1. Fix binary-support with low-level tempfile-creation API, so that 'exec ... << "$data"' doesn't fail with \0-bytes - very long overdue.

Loading shared libraries from memory

A project to allow loading of libraries without recourse to a filesystem location was partially completed in GSoC 2008 GSoC 2008 . More work remains to be done on Linux, and Windows is yet to be tackled. Ability to do this would be very beneficial, so the project should be considered for revival. See here for description of work accomplished in the 2008 project.


OpenStreetMap and related

The first part is a package(s) for handling OpenStreetMap data in convenient form, which will automatically translate between internal and XML forms, communicate with server, and give easy access to all objects. Also, it needs to have some abstraction to give ability to manipulate virtual ways, so-called segments, as suggested by somebody on IRC (#osm-ru@oftc).

The second part would be an OpenStreetMap editor in Tk, utilizing the package(s) from the first part, and the segmented approach.

Another option would be a stand-alone public transport routes editor, as currently editing routes is not an easy task, and it is not visualized enough.

Currently, there are some GIS-related packages for Tcl and Tk, some of them can be used in this project.

andrewshadoura 2010-03-17

AK Some references to related things.

  1. Improve GIS support in Tcl by Alexandros Stergiakis
  2. Access to slippy-based map tile servers , also http://docs.activestate.com/activetcl/8.5/tcllib/map/map_slippy.html , and http://docs.activestate.com/activetcl/8.5/tcllib/map/map_slippy_cache.html
  3. The demo for http://docs.activestate.com/activetcl/8.5/tklib/canvas/canvas_sqmap.html is a map display using osm tiles.

Wub + OpenACS + TDBC

Wub is a showcase technology for Tcl with its speed and use of coroutines. OpenACS is also a Tcl success story, but it is limited on one end by AOLServer and on the other by dependence on Oracle/PostgreSQL. The goal of this project would be to enable an alternative (nearly) pure-Tcl OpenACS stack and replace the specific database dependencies with TDBC, which would ease install and deployment, and enable use of OpenACS modules in a wider range of contexts. Project steps would consist of:

  1. Comparing Wub and AOLServer for performance and suitability for hosting OpenACS modules
  2. If Wub is found suitable, writing bridge code/APIs to allow Wub to serve OpenACS modules
  3. Replacing OpenACS code that specifically targets Oracle and Postgres with TDBC interface code, making it possible to choose any database with a TDBC driver

These steps could comprise one or several individual student projects.

Benefit for student: get experience with web technology and performance testing, high-demand database technology, threading.

Benefit for community: leverage strong but under-utilized code base with cutting-edge new Tcl innovations, and vice versa. Liberate OpenACS code to be used in new contexts. Make it easier to create and deploy new custom OpenACS configurations.

The nstcl project may be relevant for this. Also, a similar partially-executed project is described at http://www.jsequeira.com/projects/portable.nsd/

CMcC asides that since TDBC requires tcl8.6, one means of satisfying the community benefits of this project would be to treat it as a software archeology and restoration projecct: take those bits of OpenACS which work well, and rewrite them to (1) provide a more abstract interface to the underlying web facilities (much as TDBC provides an abstract DB layer), (2) use tcl8.6 facilities (I'm thinking dict, here for representing data.) The first would liberate the useful facilities for broader use, the second would probably make the code cleaner than it is now. It's the same project, really, but turned inside-out.

sisusimple thinks another way round: is it possible to make a library for TCL of AOLserver? Benefit: mature http server, easier integration with other TCL code.

SEH: Wub is pure Tcl. AOLServer is a mix of Tcl and C, and thus presents issues of portability, maintainability and deployability. One of the goals of this project would be to make OpenACS more portable and deployable. It might be interesting to see if one could turn AOLServer into a stubs-enabled loadable library. But I think that would be a separate project.