( summer of lisp )
( all projects )
SoC 2008 projects SoC 2007 projects SoC 2006 projects SoC 2005 projects
( lisp pride )
Shop LispNYC we've got cool items available at cafepress
Summer of Code 2008
LispNYC has officially been accepted as a mentoring organization for Google's Summer of Code! We have an exceptional track record with 88% of Google's funded proposals completing successfully! Plus, every year we have had additional offers of private funding.
Our deepest thanks to Google for continuing to fund this wonderful program and to the generosity of Ron Garret.
Featured Project Ideas
These projects have an independent funding offer. Yes, they important enough that people other than Google are willing to sponsor them.
- Lexicons First-Class Global Lexical Environments for Common Lisp. Mentorship and sponsorship by Ron Garret.
- Erlang-in-Lisp Implement the Erlang concurrency model in Lisp, including the most important correct/safe handling of asynchronous events related to process termination. Mentorship and sponsorship by Francois-Rene Rideau
Project Ideas
Send us an Idea or distribute our flier
We're looking for cool ideas that you think would be an asset to Lisp-based technology, we don't even require that you work on it!
If you'd like to discuss details in realtime, feel free to join #lisp or #summeroflisp at irc.freenode.net or just ask us a question.
Ideas submitted by the lisp community:
- Montezuma Search Engine: Support fuzzy, proximity and range searches. Dificulty level 3.
- SymbolicWeb: Add better GUI widgets. See demo of SymbolicWeb and IRC lib.
- Open AIR: RIAs via Ajax and Cells, and desktop apps via Cello, a la Adobe AIR. Requires skills in Lisp, Javascript, Ajax. Dificulty level 3. Mentorship offered by Kenny
- LISA: Add backward chaining support to LISA (Lisp-based Intelligent Software Agents). Difficulty level 3. Mentorship offered by author David Young.
- Rails-in-Lisp: create a functional and easy-to-use version of the rails framework that uses Lisp features (macros, CLOS) instead of Ruby ones (metaprogramming) to provide the same ease of development and use. Mentorship offered by Matt Knox
- Ironclad SSL: Add SSL support to Ironclad. Level 4. Mentorship offered by the author Nathan Froyd
- Ironclad Public Key Crypto: Add public key crypto to Ironclad. Level 4 Mentorship offered by the author Nathan Froyd
- cl-url A framework for connecting using uri's (think curl) and implement scheme specific parsing as specified by IANA. Required skills: common-lisp. Level 3. Mentorship offered by Arthur Smyles
- R6RS on Gambit Scheme: Finish an implementation of R6RS on Gambit Scheme. Requires skills in Scheme, Gambit, understanding of R6RS. Difficulty level: 3 Mentorship offered by Arthur Smyles
- LDMDL: Lisp Data Manipulation and Description Language. Dificulty level 5. Mentorship offered by Marco Antoniotti.
- DefDoc HTML Backend Write an HTML backend for DefDoc. Difficulty level 3. Mentorship offered by author Rahul Jain
- DefDoc PDF Backend Write a PDF backend for DefDoc. Difficulty level 4. Mentorship offered by author Rahul Jain
- Extensible sequences Port Christophe Rhodes's extensible sequences in SBCL to other implementations. Difficulty level 4.
- Berkeley-db: Add locking, logging, mutexes, replication and sequence support. Skills in CFFI, C, common-lisp, SWIG. Diffilulty level 3. Mentorship offered by Arthur Smyles
- Excribe: Extend Exscribe into a full-fledged document authoring system..
- cl-openid: OpenID implementation for Common Lisp (using Drakma and Hunchentoot most likely). Difficulty level 3.
- CL-Arc: Implement Arc in CL capable of running the YC Hacker News. Mentorship offered by Ron Garret
- Add multi-threading capability to CLISP - mentorship offered by CLISP maintainters Sam Steingold and Bruno Haible! Difficulty level 4.
- Windows threading in SBCL. Difficulty level 3.
- cl-typesetting: Improved math typesetting. Add ability for cl-typesetting to handle mathematics using Knuth's algorithms in TeX. Requires knowledge of TeX/LaTeX and typesetting. Difficulty level 4
- cl-typesetting: Add Add TeX's line-breaking algorithm to cl-typesetting.
- Vectorizing SBCL: Add automatic vectorization to SBCL's compiler for user code. Requires skills in compilers, data structures, assembly language. Dificulty level 5.
- CL-to-JS: Extend one of the existing CL-to-JS translators with advanced HOP-like functionality
- Celtk Jabber Client: Create a Jabber IM client library with Celtk
- GBBopen: Extend GBBopen blackboard system with fault-tolerance and security modules.
- Detailed Condition Hierarchy: Come up with a fleshed-out condition hierarchy and implement in sbcl, ccl, and clisp. Requires spec-reading, code forensics, CL conditions API. Difficulty level: 2
- JS for Clozure: Write an interpreter or compiler for the latest version of Javascript. Integrate it into the Closure web browser.
- Ajax McCLIM Backend: Provide an Ajax/Canvas Backend for the McCLIM UI framework. Dificulty level 4
- Write a Common Lisp plugin for Firefox, so that Lisp can be used instead of Javascript for client-side scripting. Difficulty level 4.
- Backtrace-Flow: Implement a GUI similar to iTune's CoverFlow to display stack backtraces. Requires an appreciation of Apple's UI, at least passing familiarity with Cocoa API's and Core Animation. Difficulty level: 3 Mentorship offered by Matt Emerson
- Storage engine for various databases. The Idea would be to produce a lib that is incorporated into other projects. to handle efficient storage on disk of data.
- Module system for CL Write a module system for CL, based on the PLT module system. Requires familiarity with macros, understanding of language semantics in general, and symbols and bindings in particular. Dificulty level 4.
- cl-amf or cl-flex or cl-BlazeDS: Adobe Flex backend for Common Lisp (AMF protocol implementation). Difficulty level 3.
(note difficulty levels: 1 - very easy, 3 - moderate, 5 - very hard)
Ideas submitted by the Axiom-lisp community:
- Axiom Integrate Graphics: One of the tasks is to integrate the existing graphics into the Firefox browser. The planned direction for this over the coming months is to write the graphics onto the new CANVAS object. This involves figuring out an interface to the graphics, working out the correct API, and constructing an AJAX interface that allows Axiom to manipulate the canvas.
- Axiom Affordance Design: There are several ideas being prototyped for the new crystal firefox interface. This project would involve reading in design (Winograd "Understanding Computers and Cognition. A New Foundation for Design"; Winograd "Bringing Design to Software", Alexander, "A Pattern Language", etc) and high level discussions. It also involves prototyping design ideas. You do not need to know how to write code but a strong background in design is important.
- Axiom Contextual Menus: The new Firefox interface now has menus similar to wxMaxima. However, in Axiom the menu items are not static but depend on the type of the current expression. For instance, "solve" does not exist for integers and thus should not be in the menu when the last result is an integer. A mechanism needs to be worked out to compute the menu-set for a given type. This will involve writing Lisp code to manipulate the category and type hierarchy of Axiom.
- Axiom Pamphlet Awareness: Axiom's native file format is the pamphlet, which is a literate program that combines latex and source code. There is a need to make the system pervasively aware of this format so that one can, for example, compile directly from the pamphlet or spool output directly to pamphlets. This involves Lisp programing and a working knowledge of Latex.
- Axiom Asdf Rewrite: Axiom will move away from Makefiles soon after the Firefox front end is fully viable. This will involve redesigning and reimplementing the current build architecture to use asdf rather than make as the primary organizing machine. This will involve several subtasks and assumes a strong ANSI lisp background and a working knowledge of asdf.
- Axiom Special Functions: Axiom lacks support for many special functions. These are implemented in either Lisp or Axiom. This requires a strong math background and an ability to program in common lisp.
Student Proposals
If you are a student and have either your own idea or see one of ours that you're interested in working on, submit a proposal! ...and no, you don't have to be from New York City, LispNYC works with students all over the planet.
The application is really the first step. LispNYC will work closely with you through the process of creating a well-formed proposal helping you out with everything from technical aspects of the idea to the grammar.
If you have any doubts, ask us a question!
Mentors
Sign up with Google and you'll also be added to the mentor discuss-list.
You'll then have access to Google's menor home.
Important Dates
- April 7: Student application deadline 5:00 PM PDT/8:00 PM EDT or 00:00 UTC April 8, 2008.
- April 21: Accepted student proposals announced at code.google.com/soc/ (12 noon PDT/15:00 EDT/19:00 UTC).
- May 26: Students begin coding for their GSoC projects.
- July 14: Mid-term evaluations deadline at 12 noon PDT/19:00 UTC
- August 18: Firm 'pencils down' date.
- September 1: Final evaluation deadline 12 noon PDT/19:00 UTC
- September 3: Students can begin submitting required code samples to Google
Resources