Advanced Web Application Development
These are advanced topics regarding use of Lisp for Web application development. The focus is on high performance with high availability.
If you're just starting or without a mentor to help answer questions, consider first starting with more introductory material.
Here's an excellent essay: why functional programs are inherently more secure. It eloquently covers the reality of avoiding bugs without the usual hype, urban legends or myths. It offers practical advice and explanations while also providing a bit of history and even social context.
More Lisp Books -- advanced topics
- Let Over Lambda (LOL)
- solid, contemporary tutorial on advanced Lisp topics such as deep macros
- Paradigms of AI Programming: Case Studies in Common Lisp (PAIP)
- This provides both ANSI and pre-ANSI code explanations. Includes topics such as advanced parsing with Lisp and constructing your own programming languages on top of Lisp beyond just "domain specific languages." Then go deeper into artificial intelligence with Norvig's other well known book, AI: A Modern Approach (AIMA).
- What Is Text Mining?
- What some of the potential applications and limitations are.
- A Closer Look At Characters in Common Lisp
An in-memory database may be free from relational tables or SQL syntax. Without such overhead, you should see huge perormance increases.
Issues include: saving objects and loading them back later; safeguard against crashes; too much data to keep in memory at once; portable data; etc.
- BKNR is a set of Common Lisp libraries which together form an environment suitable for serving HTTP clients from a persistent Lisp system and includes an in-memory db which is a fairly mature fork of Sven's Prevalence
- Common Lisp Prevalence
- by Sven Van Caekenberghe.
- Bit twiddling in ANSI Common Lisp
- Whether you're packing/unpacking C data structures or building
your own custom network protocols, most programmers don't realize how nice
Lisp is for manipulating bits. The idea is that you have an arbitrary set
of bytes from which you access in chunks of arbitrary bit lengths.
Compare Lisp versus C manipulating 5 bits from a sequence with 7 or more bytes:
Lisp C Extract
(ldb (byte 5 7) value))
(dpb bits (byte 5 7) value))
added Lisp favorites
- Yahoo! Developer Network
- AJAX Edit In Place (EIP) With Prototype
- HTTP Caching & Cache-Busting for Content Publishers
mod_images_never_expireand other tricks
User Interfaces for Web Applications
- Voice as User Interface using W3C's VoiceXML
- From the book, Software Engineering for Internet Applications (SEIA)
- and read their blog for more tips and examples
- There's a magic menu that must be enabled:
defaults write com.apple.Safari IncludeDebugMenu 1
Web Site Optimization
- Google code: speed
- Let's make the web faster
- Web Site Optimization
- Free tools and a book to help analyze page load performance and other web site factors within your control
- 14 Tips to Speed Up Your Web Pages
- Other techniques for loading in parallel
- Use of
- Details are actually in the
yet this is carried over into XHTML1.
Because it's not mentioned explicitly in the XHTML spec, it's often overlooked.
- Yahoo! performance research
- HTTP Content-Negotiation
- All file extensions in HREFs and URLs should be dropped (i.e., no more .html, .php, .cgi, etc.) in favor of content-negotiation. File extensions in URLs are so 1997...
- Optimizing Page Load Time
Web dev & debug tools
- Load Time Analyzer by Google
- Firefox plug-in that graphs page loading time of all components
- Tamper Data
- Plug-in for Firefox/Mozilla. Few features, but nice waterfall charts.
- Plug-in for Firefox/Mozilla. Beta but has some features equivalent to Fiddler.
- HTTP Pipelining
- Except Opera, browsers are only pipelining in multiple connections, one
GETa time. The HTTP 1.1 standard of multiple asynchronous
GETs in a single connection is really not supported widely (end of 2006).
- ClusterMaps and gVisit
- Visually track visitors to your website on a map