Merging my near fanatical obsession of music and technology, Justin Frankel (he of WinAmp, Gnutella, Waste, and Shoutcast fame) has recently been toying with his new company (cockos.com) and created the Jesusonic in the process.
The Jesusonic is a guitar effects pad powered by a custom PC and application. It’s low latency, heavily extensible, and as Justin’s blog shows… being constantly improved.
This I like the idea of.
I’m no guitar player (having tried and realised that I really had no talent for instruments), but one thing that really got me was the cost of pedals and the quantity that you would need to have to produce the sounds you wanted.
Most bands already use computers onstage, could this software can be run from existing hardware with only mild modifications (home made pedals, cabling and interface)?
Too many of my musician friends are burdened by the cost of hardware, maintenance and the overheads of transportation when they do gigs. If this technology can be utilised to replace a lot of the existing pedals (reduce cost, lower maintenance and no more things to carry) whilst at the same time giving them more tools for their creative toolbox, then we might really start to see technology finding a way onto the stage and giving us a whole new sound.
Music for the moment: Sonic Youth - Pattern Recognition
I’ve frequently encountered the need to produce titles for XSLT produced tables.
For example, given the following XML:
<events>
<event date="2004-11-30 14:00:00" />
<event date="2004-11-30 14:00:00" />
<event date="2003-11-30 14:00:00" />
<event date="2002-11-30 14:00:00" />
</events>
To extract the values “2002″ and “2004″ to format a title such as “Events (2002 > 2004)”.
To do this effectively requires us to extract both the MAX and MIN values, for which we need an XSLT equivalent to the SQL SELECT MAX() and SELECT MIN() functions.
There is a neat trick to do this which can be summed up thus:
- Sort ascending and pick the first node and you have your MIN.
- Sort descending and pick the first node and you have your MAX.
Examples of both, given the above XML are here for your reference.
Obtaining the MIN:
<!-- Create a variable named $minEventDate containing the MIN date -->
<xsl:variable name="minEventDate">
<xsl:for-each select="event">
<xsl:sort select="@date" data-type="text" order="ascending" />
<xsl:if test="position() = 1">
<xsl:value-of select="@date" />
</xsl:if>
</xsl:for-each>
</xsl:variable>
Obtaining the MAX:
<!-- Create a variable named $maxEventDate containing the MAX date -->
<xsl:variable name="maxEventDate">
<xsl:for-each select="event">
<xsl:sort select="@date" data-type="text" order="descending" />
<xsl:if test="position() = 1">
<xsl:value-of select="@date" />
</xsl:if>
</xsl:for-each>
</xsl:variable>
One of the most frustrating things with WSS is the feeling that you’re not in control.
You work hard to develop a web part, have it deployed, and feel a surge of pride when it’s being used… but the day it breaks is the day you’re called on at the 11th, against the clock, to fix it. This is just when you don’t want to be staring at a Web Part Page that has an error, but doesn’t tell you where.
So the thing to do is to tell WSS to give us the error message.
To do this, simply edit the web.config file that applies to the site that the Web Part Page is on.
Apply the following XPATH logic to web.config to see the full Sharepoint error message:
//configuration/Sharepoint/SafeMode[attribute::CallStack='true']
Apply this if you haven’t yet configured the web.config to allow you to see error messages:
//configuration/system.web/customErrors[attribute::mode='Off']
If you also wish to see the form posted and environmental values of the HTTP request, then you can also modify your machine.config file as such:
//configuration/system.web/trace[attribute::enabled='true']
And for those of you who want the easy way out, you can access the Web Part Maintenance page by appending the following to the querystring of the Web Part Page:
Contents=1
Recent Comments