Below is my sandbox --tkosiak
Click here for more info on formatting rules or here to go to the home page
% hello Hello World
hello.c Tcl_HelloObjCmd
Hello_Init { Tcl_CtreateObjCmd (hello, Tcl_HelloObjCmd) }
hello.c => hello.so
tclsh load hello.so hello
---
https://wiki.tcl-lang.org/20887 - tothttpd = TheOneTclHTTPD (''the one to rule them all'')
Using Tcl you can construct simple web server in hundred lines of code so in this wiki there are many examples of such simple HTTP servers. TclHttpd and Wub are fairly complex web servers written in pure Tcl which aspire to be general purpose HTTP servers. There are also quite a few Apache modules which allow to build dynamic websites in Tcl. Finally there is AOLserver - developed in C, multithreaded, Tcl-enabled, high performance web server used for large scale, dynamic web sites.
The problem is that simple Tcl-only web servers are rather feature-crippled. They usually have no support for handling multipart/form-data POSTs, HTTP methods other then GET/HEAD/POST, international encodings, other auth schemes than basic, custom errors and multi-threading, Even established Tcl-only projects like TclHttpd and Wub doesn't support fully support HTTP/1.1 advanced mechanisms like persistent connections, request pipelining, chunked encoding, byte ranges, deflate & gzip transfer encodings, resource caching headers (e-tag, if-modified-since, expire). AOLserver on the other hand is overkill for embedding into application. So there is a need for another Tcl-only HTTP server suitable for easy web enabling application. Nowadays it has to support rich web applications (build with AJAX & Flex) that often require mentioned capabilities to achieve best user experience.
Therefore this summer (2008) I and my former student (who analyzed those problems in his last year master degree dissertation) plan to further enhance prototypes we've already build - unfortunately only as a part time assignment. We seek highly motivated student to join our team (full time) so we could direct to him/her implementation of selected problems. His role would be also to write automated test cases so in this process we expect to refine standard Tcl HTTP client library to fully support HTTP/1.1 (see http).
Medium experience in web app development (for example with PHP), basic knowledge of Tcl & HTTP. Earlier HTTP/1.1 standard self studies. Being able to meet personally in the early stages of the project or communicate in polish is a big plus.
Gaining very practical insight into HTTP/1.1 protocol internals and its usage in RIA, mastering advanced Tcl coding techniques, especially network programming.
Unification of existing Tcl-only servers into HTTP/1.1 functional one. We will try to provide compatibility API for AOLserver ns_* so any application could be upsized to full blown web server in C if needed. Further Tcl-only HTTP/1.1 client library advancement (we plan to start with http2.6 from tclsoap project at [L1 ]
https://wiki.tcl-lang.org/20889
Tcl/Tk toolkit with Tile (theming support) allows building cross-platform GUI with native look & feel for MS Windows, Linux & Mac OS X. Recent TIP #308: Tcl Database Connectivity (TDBC) proposes standard SQL database API for Tcl. Selection of high quality tabular widgets combined with excellent retrospection capabilities of Tcl allowing to effortlessly create (like in Ruby on Rails) editing forms, provides basis for a framework for building database applications and their user interface GUI. Unlike in popular RAD (ex. Borland Delphi) we would like to build GUI by generating code not visually - as this is a recommended way to create GUI with Tcl/Tk.
First step in this project is to gain real life experience in cross platform Tk/Tile development by building simple time tracker like gtimelog (used further to track project progress). Next step is an attempt to port to Tcl/Tk/Tile selected fragments of quite complex business application UI build with RAD. This process should lead to choosing appropriate widgets, showing how to use and glue them together with database API.
Mentioned commercial database application will be provided by a mentor, who has full access to its source code and its primary authors.
Experience with some kind of RAD, database bindings, good SQL knowledge, basic Tcl & Tk knowledge and high motivation. Being able to meet personally in the early stages of the project or communicate in polish is a big plus.
Getting to know Tcl/Tk toolkit with native widget support by Tile extension (integrated in Tk as ttk::* namespace commands).
Verification and consolidation of separate components needed to build very common kind of application.
https://wiki.tcl-lang.org/20887 - tothttpd = TheOneTclHTTPD (''the one to rule them all'')
Using Tcl you can construct simple web server in hundred lines of code so in this wiki there are dozens examples of such simple HTTP servers. TclHttpd and Wub are fairly complex web servers written in pure Tcl which aspire to be general purpose HTTP servers. There are quite a few Apache modules which allows Finally there is AOLserver high performance webserver developed in C with ... Tcl is used to enhaced application with scripting - it can be used to web enabled by sourcing pure Tcl HTTPd implementation. Elegent implementation for minimum feature complete applications server modular design extensible with modules to handle complexity There is missing simple - feature - crippled there are many possible tasks in that area for students - clarification - sistematization - writing test cases testing features and implementation - like db what is [AOLserver] what is [GD] what we've got and where where is a problem to be solved possible tasks
Consolidate best practices from existing custom-built Tcl web servers into one multiplatform (unix/windows/embedded) embeddable, multi-threaded application web server in pure Tcl - modular, supporting HTTP/1.1 mechanisms like pipelining, caching, streaming data. Something like Mongrel for Ruby or Simple for Java. wub and tclhttpd should be considered in the plan
Full HTTP/1.1 support in core http library (smaller part or counterpart of above tothttpd) This problem is already discussed in the wiki http. There is also an implementation http2.6 in tclsoap project at [L2 ]
Experience in HTTP protocol internals, developing an Tcl API for very common problem, multi-threaded development in Tcl Practical insight into HTTP/1.1 protocol internals. Building API in Tcl to solve very common problem. Network programming.
There will be one fully functional HTTP server to embed in Tcl application instead of many non functional ones. Web application written to it's API could be ported to AOLServer (fully blown web server developed in C) as we plan to provide with compatibility API.
Currently Tcl http library supports only HTTP/1.0. Supporting HTTP/1.1 out of the box will allow to easily use from Tcl advanced mechanism like streaming, chunk transfer encoding, persistent connection, etc.
https://wiki.tcl-lang.org/20889
based cross platform framework for development of database application UI (like build with RAD's such as Borland Delphi)**
Tcl/Tk/Tile 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 accomplish database UI application in Tcl with native look & feel.
Medium experience in web app development (for example with PHP), basic knowledge of Tcl & HTTP. Earlier HTTP/1.1 standard self studies. Being able to meet personally in the early stages of the project or communicate in polish is a big plus.
Getting to know Tcl/Tk toolkit with native widget support by Tile extension (integrated in Tk as ttk::* namespace).
Consolidation of separate components needed to build very common kind of application.
THIS IS stolen TEMPLATE for GSoC 2008
[tothttpd] TheOneTclHTTPd
what is [AOLserver] what is [GD] what we've got and where where is a problem to be solved possible tasks