I'm trying to set up a list environment for typesetting a problem set.  I'd like to be able to input something like the following:

\begin{pset}
\item First solution.
\item[2.2] Second solution.
\end{pset}


and have it come out as:

Problem 1. First solution.
Problem 2 (2.2). Second solution


with the optional argument to \item being typeset in parentheses if it's present.  I assume I should be able to \renewcommand{\makelabel} somehow, but I can't figure out how to do it.  I can't get anything like the following to work:

\newcommand{\makepsetlabel}[1]{some if/then involving #1, checking if empty}
\newlist{pset}{enumerate}{1}
\setlist[pset]{
   before={\renewcommand\makelabel[1]{\makepsetlabel{##1}}
}


What's the right way?


Question: GIS Software Choice for a small university research centre
Answer: Based on your requirements, you may need a GIS stack: server, database, presentation, and then the analysis tools. I'd recommend GeoServer (http://www.geoserver.org)  for server, PostgreSQL with PostGIS extension for database (http://postgis.net). 

This combination can enable easy distributed authoring/analysis and publishing using WFS, WPS, and WMS, which are OGC standards. You can use the tools mentioned above for analysis. In addition to QGIS, you can also use uDig (http://udig.refractions.net) for editing. For presentation, you may use OpenLayers or GeoExt.