<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>nklein software &#187; cl-growl</title>
	<atom:link href="http://nklein.com/tags/cl-growl/feed/" rel="self" type="application/rss+xml" />
	<link>http://nklein.com</link>
	<description>software development and consulting</description>
	<lastBuildDate>Thu, 22 Dec 2011 04:42:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Dusting off my Growl Library</title>
		<link>http://nklein.com/2011/12/dusting-off-my-growl-library/</link>
		<comments>http://nklein.com/2011/12/dusting-off-my-growl-library/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 04:42:24 +0000</pubDate>
		<dc:creator>pat</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[cl-growl]]></category>
		<category><![CDATA[iolib]]></category>
		<category><![CDATA[ironclad]]></category>
		<category><![CDATA[lisp]]></category>
		<category><![CDATA[usocket]]></category>

		<guid isPermaLink="false">http://nklein.com/?p=1782</guid>
		<description><![CDATA[I&#8217;ve spent the last few hours dusting off my Common Lisp Growl client library. The last time I worked on it was before the Mac Growl Application supported GNTP (Growl Notification Transport Protocol). Today, working on it, I&#8217;m not quite sure what&#8217;s up, but I am not succeeding in communicating with the server using encryption. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent the last few hours dusting off my <a href="http://nklein.com/software/cl-growl/">Common Lisp Growl client library</a>.  The last time I worked on it was before the Mac Growl Application supported GNTP (Growl Notification Transport Protocol).</p>
<p>Today, working on it, I&#8217;m not quite sure what&#8217;s up, but I am not succeeding in communicating with the server using encryption.  I&#8217;ll have to look more closely.  Last time that I worked on it, I extended <a href="http://method-combination.net/lisp/ironclad/">Ironclad</a>, but I never got those changes pushed fully into Ironclad&#8217;s main line.  But, I think I&#8217;m using the same version of Ironclad that I was using when I tested against the Windows Growl Application.  *shrug*</p>
<p>I&#8217;ve also run into a snag with the Callbacks.  Essentially, your Lisp program could get a callback when the user has clicked on your Growl notification.  This actually works except for the fact that I am calling <code class="codecolorer lisp default"><span class="lisp">READ-SEQUENCE</span></code> into a buffer that is longer than the message.  The server, I believe, is supposed to close the socket after the callback.  But, it does not.  So, I am stuck waiting for more bytes that will never come.</p>
<p>Now, I either have to do one of the following:</p>
<ul>
<li>refactor it to use <code class="codecolorer lisp default"><span class="lisp">READ-LINE</span></code> instead</li>
<li>switch from using <a href="http://common-lisp.net/project/usocket/">USocket</a> to using <a href="http://common-lisp.net/project/iolib/">IOLib</a> (and hope that <code class="codecolorer lisp default"><span class="lisp"><span style="color: #66cc66;">:</span><span style="color: #555;">dont-wait</span></span></code> works as expected)</li>
<li>extend USocket to support <code class="codecolorer lisp default"><span class="lisp">SOCKET-RECEIVE</span></code> even on TCP sockets</li>
</ul>
<p>Anyone have a preference?</p>
]]></content:encoded>
			<wfw:commentRss>http://nklein.com/2011/12/dusting-off-my-growl-library/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CL-Growl patched for CCL</title>
		<link>http://nklein.com/2010/04/cl-growl-patched-for-ccl/</link>
		<comments>http://nklein.com/2010/04/cl-growl-patched-for-ccl/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 14:27:05 +0000</pubDate>
		<dc:creator>pat</dc:creator>
				<category><![CDATA[Bug Fixes]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[cl-growl]]></category>
		<category><![CDATA[lisp]]></category>

		<guid isPermaLink="false">http://nklein.com/?p=1319</guid>
		<description><![CDATA[Alexandre Paes submitted a patch for my CL-Growl library so it now works with CCL (aka. Clozure, formerly OpenMCL), too. Here is the source tarball: cl-growl_1.1.2010.04.29.tar.gz and the corresponding GPG signature: cl-growl_1.1.2010.04.29.tar.gz.asc. For other ways to access this code, see the CL-Growl page. Thank you, Alex!]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.ponto-dot.com/">Alexandre Paes</a> submitted a patch for my <a href="http://nklein.com/software/cl-growl/">CL-Growl library</a> so it now works with CCL (aka. Clozure, formerly OpenMCL), too.</p>
<p>Here is the source tarball: <a href="http://nklein.com/wp-content/uploads/2010/04/cl-growl_1.1.2010.04.29.tar.gz">cl-growl_1.1.2010.04.29.tar.gz</a> and the corresponding GPG signature: <a href="http://nklein.com/wp-content/uploads/2010/04/cl-growl_1.1.2010.04.29.tar.gz.asc">cl-growl_1.1.2010.04.29.tar.gz.asc</a>.  For other ways to access this code, see the <a href="http://nklein.com/software/cl-growl/">CL-Growl page</a>.</p>
<p>Thank you, Alex!</p>
]]></content:encoded>
			<wfw:commentRss>http://nklein.com/2010/04/cl-growl-patched-for-ccl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CL-Growl Slides</title>
		<link>http://nklein.com/2010/04/cl-growl-slides/</link>
		<comments>http://nklein.com/2010/04/cl-growl-slides/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 04:45:13 +0000</pubDate>
		<dc:creator>pat</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[cl-growl]]></category>
		<category><![CDATA[lisp]]></category>
		<category><![CDATA[TC Lisp]]></category>

		<guid isPermaLink="false">http://nklein.com/?p=1303</guid>
		<description><![CDATA[On Monday, I am giving a lightning talk at the TC Lispers meeting about my Common Lisp Growl client library. Here are the slides with presenter notes and the accompanying sample code.]]></description>
			<content:encoded><![CDATA[<p>On Monday, I am giving a lightning talk at the <a href="http://tclispers.org/events/april-meeting-topic-web-frameworks">TC Lispers meeting</a> about my <a href="http://nklein.com/software/cl-growl/">Common Lisp Growl client library</a>.</p>
<p>Here are the <a href="http://nklein.com/wp-content/uploads/2010/04/CL-Growl-with-notes.pdf">slides with presenter notes</a> and the accompanying <a href="http://nklein.com/wp-content/uploads/2010/04/growl-test.lisp">sample code</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nklein.com/2010/04/cl-growl-slides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CL-Growl client library released</title>
		<link>http://nklein.com/2010/04/cl-growl-client-library-released/</link>
		<comments>http://nklein.com/2010/04/cl-growl-client-library-released/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 15:35:26 +0000</pubDate>
		<dc:creator>pat</dc:creator>
				<category><![CDATA[Initial Releases]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[cl-growl]]></category>
		<category><![CDATA[lisp]]></category>

		<guid isPermaLink="false">http://nklein.com/?p=1292</guid>
		<description><![CDATA[Growl is a notification system for Mac OS X. You run a Growl server on your machine. Then, applications can send notifications that will be displayed on your desktop. Growl supports a thin network protocol called Growl Talk that programs can use to send notifications to the Growl server (and hence, to your desktop). Growl [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://growl.info/">Growl</a> is a notification system for Mac OS X.  You run a Growl server on your machine.  Then, applications can send notifications that will be displayed on your desktop.  Growl supports a thin network protocol called <a href="http://growl.info/documentation/developer/protocol.php">Growl Talk</a> that programs can use to send notifications to the Growl server (and hence, to your desktop).</p>
<p>Growl is incredibly useful for any program that operates asynchronously with the user.  If you want to be notified when some portion of your job completes or when there is a critical error in your web application, Growl is a great tool to have at your disposal.</p>
<p>I wrote an implementation for Common Lisp of the client protocol.  Here is a simple example of how you might use it:</p>
<div class="codecolorer-container lisp blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><pre class="lisp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>growl<span style="color: #66cc66;">:</span>*growl-default-app* <span style="color: #ff0000;">&quot;My Lisp Application&quot;</span><span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#40;</span>growl<span style="color: #66cc66;">:</span>*growl-default-host* <span style="color: #ff0000;">&quot;localhost&quot;</span><span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#40;</span>growl<span style="color: #66cc66;">:</span>*growl-default-password* <span style="color: #ff0000;">&quot;my-growl-password&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>growl<span style="color: #66cc66;">:</span><span style="color: #555;">register</span> <span style="color: #66cc66;">:</span><span style="color: #555;">enabled</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> <span style="color: #ff0000;">&quot;Warn&quot;</span> <span style="color: #ff0000;">&quot;Error&quot;</span><span style="color: #66cc66;">&#41;</span>
                  <span style="color: #66cc66;">:</span><span style="color: #555;">disabled</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> <span style="color: #ff0000;">&quot;Info&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>growl<span style="color: #66cc66;">:</span><span style="color: #555;">notify</span> <span style="color: #ff0000;">&quot;Program starting up...&quot;</span> 
                <span style="color: #66cc66;">:</span><span style="color: #555;">notification</span> <span style="color: #ff0000;">&quot;Info&quot;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>unless <span style="color: #66cc66;">&#40;</span>connect-to-database <span style="color: #66cc66;">...</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>growl<span style="color: #66cc66;">:</span><span style="color: #555;">notify</span> <span style="color: #ff0000;">&quot;Cannot connect to database!&quot;</span> 
                  <span style="color: #66cc66;">:</span><span style="color: #555;">title</span> <span style="color: #ff0000;">&quot;Critical Error!&quot;</span>
                  <span style="color: #66cc66;">:</span><span style="color: #555;">notification</span> <span style="color: #ff0000;">&quot;Error&quot;</span>
                  <span style="color: #66cc66;">:</span><span style="color: #555;">sticky</span> t
                  <span style="color: #66cc66;">:</span><span style="color: #555;">priority</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div>
<p>For more complete usage information and to learn how to obtain the library, see <a href="http://nklein.com/software/cl-growl/">the CL-Growl web page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nklein.com/2010/04/cl-growl-client-library-released/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

