Mutable default parameter values in Python

In Python, everything is an object. Variables are technically names for references to objects. Therefore, when passing an argument to a function, what is in fact being passed is the value of the reference. This leads to some useful techniques. Read more…

Jul 22nd, 2008 | Filed under Programming
Tags:

Commenting

Artful Code is going back to Haloscan comments rather than trying to keep up with moderating comments or adding my own verification. Comments from the old system are lost, but that’s OK because most were spam anyway :)

Jul 19th, 2008 | Filed under Site news
Tags:

In defense of newLISP

newLISP receives an unexpected level of hostility from lispers. Languages like Arc and newLISP share an enmity that stems from the assumption that these languages are in some way attempting to replace Common Lisp. This is not the case. Read more…

Jul 15th, 2008 | Filed under Soap box
Tags: ,

SQL library for newLISP

The newLISP SQL library is a set of classes and functions to ease generation of SQL code in newLISP. The module is not yet feature-complete but is in a usable state. Read more…

Jul 14th, 2008 | Filed under Programming

newLISP modules section

I have added a new area to the site specifically for newLISP modules. I am in the process of documenting all of my libraries and adding them to that page. A couple of notable modules:

  1. CSV – a module for parsing CSV files
  2. Mysql – a wrapper for the standard MySQL module, with some helpful additions
  3. Http – a simple, bare-bones HTTP 1.0 library
  4. SocketServer – an extensible socket server framework
  5. Xmlrpc-server – an XML-RPC server using SocketServer and Http
  6. generics – generic functions for newLISP in the style of CLOS
  7. locks – FOOP classes for process synchronization

There is also a utilities library, which contains functions and classes required by the other libraries.

newLISP 9.4.2 is required for several of these (util.lsp requires 9.4.2 due to a dictionary syntax bug in 9.4.1).

Update (2008-07-09): I’ve moved a few modules from the projects page to the modules page, most notably the request, response, and xml modules.

Update (2009-02-10): Several of these modules have disappeared (SocketServer and locks) and have been replaced. The new modules are sockets, which is more generalized and powerful than SocketServer was, and MP,  which is a full-featured multi-processing module.

Jul 8th, 2008 | Filed under Site news, Software