<?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>Nurm's blog &#187; .net</title>
	<atom:link href="http://norman.rasmussen.co.za/category/development/net/feed/" rel="self" type="application/rss+xml" />
	<link>http://norman.rasmussen.co.za</link>
	<description>surfing on the bleeding edge of technology, food, and spirituality</description>
	<lastBuildDate>Mon, 15 Feb 2010 00:01:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Connecting to .Net 3.0/Soap1.2/WS-*/svc/WCF services from legacy .Net 2.0/Soap1.0/Soap1.1/asmx clients</title>
		<link>http://norman.rasmussen.co.za/132/connecting-to-net-30soap12ws-svcwcf-services-from-legacy-net-20soap10soap11asmx-clients/</link>
		<comments>http://norman.rasmussen.co.za/132/connecting-to-net-30soap12ws-svcwcf-services-from-legacy-net-20soap10soap11asmx-clients/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 12:43:06 +0000</pubDate>
		<dc:creator>Nurm</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[asmx]]></category>
		<category><![CDATA[legacy]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://norman.rasmussen.co.za/?p=132</guid>
		<description><![CDATA[Use BasicHttpBinding:
The BasicHttpBinding uses HTTP as the transport for sending SOAP 1.1 messages. A service can use this binding to expose endpoints that conform to WS-I BP 1.1, such as those that ASMX clients consume. Similarly, a client can use the BasicHttpBinding to communicate with services exposing endpoints that conform to WS-I BP 1.1, such [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:4d43e098fbddfe53d7df79cf8a8223476b81fcab'><p>Use BasicHttpBinding:</p>
<blockquote><p>The BasicHttpBinding uses HTTP as the transport for sending SOAP 1.1 messages. A service can use this binding to expose endpoints that conform to WS-I BP 1.1, such as those that ASMX clients consume. Similarly, a client can use the BasicHttpBinding to communicate with services exposing endpoints that conform to WS-I BP 1.1, such as ASMX Web services or Windows Communication Foundation (WCF) services configured with the BasicHttpBinding.</p></blockquote>
<p>We came across this one at work while trying to test our brand new WCF services using standard web service test tools that have not been updated to know about Soap1.2.  I finally figured it out after I read <a href="http://geekswithblogs.net/claeyskurt/archive/2008/04/22/121508.aspx">Kurt&#8217;s Post</a> comparing BasicHttpBinding to WSHttpBinding at the packet level.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://norman.rasmussen.co.za/132/connecting-to-net-30soap12ws-svcwcf-services-from-legacy-net-20soap10soap11asmx-clients/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chromeless Meebo gets a facelift</title>
		<link>http://norman.rasmussen.co.za/108/chromeless-meebo-gets-a-facelift/</link>
		<comments>http://norman.rasmussen.co.za/108/chromeless-meebo-gets-a-facelift/#comments</comments>
		<pubDate>Tue, 02 Jan 2007 19:51:05 +0000</pubDate>
		<dc:creator>Nurm</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[meebo]]></category>

		<guid isPermaLink="false">http://norman.rasmussen.co.za/108/chromeless-meebo-gets-a-facelift/</guid>
		<description><![CDATA[Meebo got a facelift back in October, but I didn&#8217;t have the time to update my Chromeless Meebo Browser at the time.  I found some time this weekend to sit down and figure out what needed doing, and went ahead and did it!
The new version doesn&#8217;t really have any new features compared to the [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:6e7f52c3cec161a7403c39dd4c76da173a07cd61'><p><a href="http://www.meebo.com/">Meebo</a> got a facelift back in October, but I didn&#8217;t have the time to update my <a href="http://norman.rasmussen.co.za/chromeless-meebo/">Chromeless Meebo Browser</a> at the time.  I found some time this weekend to sit down and figure out what needed doing, and went ahead and did it!</p>
<p>The new version doesn&#8217;t really have any new features compared to the previous one:  It supports the new meebo interface better, it has a new tray icon menu, with some new options.  The biggest change is that most of the code is now written in JavaScript loaded off my server.  This means that it&#8217;s much easier to change, and to deploy directly to all you guys.  It also means it&#8217;s easier for someone else to pick up a pre-compiled copy, change a few config settings, and start tweaking the source for themself (i.e. no need to recompile the .Net code)</p>
<p>As time allows, I will be adding new features, but for now enjoy!</p>
<p>(oh, the Mozilla control doesn&#8217;t support nearly enough methods to make this version work correctly, so it&#8217;s back to IE for now <img src='http://norman.rasmussen.co.za/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> . If you&#8217;ve been using the ClickOnce installer with the Mozilla control and want to keep using Mozilla, then you&#8217;ll need to download the offline version of v6)</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://norman.rasmussen.co.za/108/chromeless-meebo-gets-a-facelift/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>PreAuthenticate doesn&#8217;t</title>
		<link>http://norman.rasmussen.co.za/106/preauthenticate-doesnt/</link>
		<comments>http://norman.rasmussen.co.za/106/preauthenticate-doesnt/#comments</comments>
		<pubDate>Wed, 29 Nov 2006 15:04:44 +0000</pubDate>
		<dc:creator>Nurm</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://norman.rasmussen.co.za/106/preauthenticate-doesnt/</guid>
		<description><![CDATA[So we&#8217;ve been trying to interop with a web service at work that requires Basic authentication.  Unfortunately we get one of the following errors (depending on if we&#8217;re going via our ISA proxy server or not):

System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. &#8212;> System.IO.IOException: Unable to read data [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:4f6e2303b63d0edca384ffc8bd52e07f4593f62f'><p>So we&#8217;ve been trying to interop with a web service at work that requires Basic authentication.  Unfortunately we get one of the following errors (depending on if we&#8217;re going via our ISA proxy server or not):</p>
<ul>
<li>System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. &#8212;> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. &#8212;> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host</li>
<li>System.Net.WebException: The request failed with HTTP status 502: Proxy Error ( The specified network name is no longer available.  ).</li>
</ul>
<p>It turns out (thanks to <a href="http://www.ethereal.com/">ethereal</a>), that for some reason the .Net Framework is ignoring the &#8216;401 Access Denied&#8217; reply and assuming that the web service is usable.  Oddly enough Squid handles the request perfectly, so does just bouncing the request via another box &#8211; so there&#8217;s clearly something odd going on inside the framework.</p>
<p>So no problem, we&#8217;ll just set PreAuthenticate to true.  Except that only affects secondary requests:</p>
<p>&#8220;With the exception of the first request, the PreAuthenticate property indicates whether to send authentication information with subsequent requests to the specific Uri without waiting to be challenged by the server.&#8221;  </p>
<p><img src='http://norman.rasmussen.co.za/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /></p>
<p>The <a href="http://www.thescripts.com/forum/threadnav376018-2-10.html">solution</a> is rather hackish, but works while we wait for MS to code and test a real solution:</p>
<p><span id="more-106"></span>Paste this code into your web service proxy class, or preferably create a new file and extend the partial class.  This means your code won&#8217;t be erased when the proxy class is recreated when you update the web reference.<br />
<code><br />
protected override WebRequest GetWebRequest(Uri uri)<br />
{<br />
&nbsp;&nbsp;WebRequest webRequest = base.GetWebRequest(uri);<br />
&nbsp;&nbsp;NetworkCredential credentials = Credentials as NetworkCredential;<br />
&nbsp;&nbsp;if (credentials != null)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;string authInfo =<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((credentials.Domain != null) &#038;&#038; (credentials.Domain.Length > 0) ?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;credentials.Domain + @"\" : string.Empty) +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;credentials.UserName + ":" + credentials.Password;<br />
&nbsp;&nbsp;&nbsp;&nbsp;authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));<br />
&nbsp;&nbsp;&nbsp;&nbsp;webRequest.Headers["Authorization"] = "Basic " + authInfo;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return webRequest;<br />
}<br />
</code></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://norman.rasmussen.co.za/106/preauthenticate-doesnt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>chromeless meebo gets mozilla support</title>
		<link>http://norman.rasmussen.co.za/102/chromeless-meebo-gets-mozilla-support/</link>
		<comments>http://norman.rasmussen.co.za/102/chromeless-meebo-gets-mozilla-support/#comments</comments>
		<pubDate>Sat, 26 Aug 2006 22:43:15 +0000</pubDate>
		<dc:creator>Nurm</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[meebo]]></category>

		<guid isPermaLink="false">http://norman.rasmussen.co.za/102/chromless-meebo-gets-mozilla-support/</guid>
		<description><![CDATA[I&#8217;ve previously commented that I was working on Mozilla rendering support for my Chromeless Meebo Browser, well now it&#8217;s here.
To enable it you will need my upgraded version of the Mozilla ActiveX Control (As usual all the required files are in the distribution folder).  Source diff is attached to bugzilla bug 340277.
You will need [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:d69338ad8e8996f395badbb2b989bfa401dbfdc3'><p>I&#8217;ve <a href="http://norman.rasmussen.co.za/98/chromeless-meebo-20/#comment-3618">previously commented</a> that I was working on Mozilla rendering support for my <a href="http://norman.rasmussen.co.za/chromeless-meebo/">Chromeless Meebo Browser</a>, well now it&#8217;s here.</p>
<p>To enable it you will need my upgraded version of the <a href="http://www.iol.ie/~locka/mozilla/control.htm">Mozilla ActiveX Control</a> (As usual all the required files are in the <a href="http://norman.rasmussen.co.za/dl/meebo/">distribution folder</a>).  Source diff is attached to <a title="Mozilla ActiveX Control is unuseable as a subclassed control in .Net 2.0" href="https://bugzilla.mozilla.org/show_bug.cgi?id=340277">bugzilla bug 340277</a>.</p>
<p>You will need to hand edit the configuration file to change the Engine setting from Microsoft to Mozilla.  If you&#8217;re using ClickOnce to launch the Meebo Browser, then you can find the configuration file under &#8216;C:\Documents and Settings\YourName\Local Settings\Apps\2.0\RandomId\RandomId\Somewhere&#8217;, just look for the lastest configuration file you can find and edit that one.  I am planning to add a sort of configuration window to be able to change these settings from the frontend, once I&#8217;m happy that everything is working well.</p>
<p>Known Issues:</p>
<ul>
<li>There seems to be a problem with getting the cursor to appear in the text boxes so that you can log into you IM account.  The work around is to swap to another application (even Notepad), and then back to MeeboBrowser &#8211; sometimes I&#8217;ve had to do this two or three times to get the cursor to appear.</li>
<li>The tab key gets swallowed often, making it almost impossible to use.</li>
<li>Tooltips don&#8217;t show.</li>
<li>Clicked links don&#8217;t launch in a new browser window.  (You can right click and select &#8216;Open&#8217;, but then you&#8217;re logged out of Meebo <img src='http://norman.rasmussen.co.za/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> )</li>
</ul>
<p>These are all caused by bugs and missing code in the Mozilla ActiveX Control.  If you&#8217;d like to help out, please don&#8217;t hesitate.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://norman.rasmussen.co.za/102/chromeless-meebo-gets-mozilla-support/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Net Limiter 1.3 Access Violation Patch</title>
		<link>http://norman.rasmussen.co.za/100/net-limiter-13-access-violation-patch/</link>
		<comments>http://norman.rasmussen.co.za/100/net-limiter-13-access-violation-patch/#comments</comments>
		<pubDate>Mon, 29 May 2006 14:37:35 +0000</pubDate>
		<dc:creator>Nurm</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://norman.rasmussen.co.za/?p=100</guid>
		<description><![CDATA[If you&#8217;re using Net Limiter 1.3 (I do &#8211; it&#8217;s fast and has most of the features I need) and doing any .Net 2.0 remoting (GB-PVR does).  Then you should know that Net Limiter&#8217;s  nl_lsp.dll is what&#8217;s causing a lot of that crashing (NOD32 Antivirus&#8217;s imon.dll also does this).  I managed to [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:19e3fa466ab78d88c08bdbbc06d189dac27822eb'><p>If you&#8217;re using <a href="http://www.netlimiter.com/">Net Limiter</a> 1.3 (I do &#8211; it&#8217;s fast and has most of the features I need) and doing any .Net 2.0 remoting (GB-PVR does).  Then you should know that Net Limiter&#8217;s  nl_lsp.dll is what&#8217;s causing a lot of that crashing (NOD32 Antivirus&#8217;s imon.dll also does this).  I managed to track down the offending code and I&#8217;ve written a <a href="http://norman.rasmussen.co.za/dl/NetLimiterPatch.zip">quick patch</a> for it (sorry I don&#8217;t use NOD32 <img src='http://norman.rasmussen.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ).  I created the patch using <a href="http://www.datarescue.com/idabase/">IDA</a> and <a href="http://www.tibed.net/vpatch/">VPatch</a>, enjoy.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://norman.rasmussen.co.za/100/net-limiter-13-access-violation-patch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gb-pvr joins the .net 2.0 world</title>
		<link>http://norman.rasmussen.co.za/99/gb-pvr-joins-the-net-20-world/</link>
		<comments>http://norman.rasmussen.co.za/99/gb-pvr-joins-the-net-20-world/#comments</comments>
		<pubDate>Mon, 29 May 2006 00:56:27 +0000</pubDate>
		<dc:creator>Nurm</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gbpvr]]></category>

		<guid isPermaLink="false">http://norman.rasmussen.co.za/99/gb-pvr-joins-the-net-20-world/</guid>
		<description><![CDATA[The various GB-PVR enhancements have I have been working on over the last while have finally all been upgraded to .Net 2.0.  UncleJohnsBand was kind enough to upgrade the Enhanced Web Admin, and ubu upgraded the External Recording Plugin along with doing the first pass on the WDM Recording Plugin.  A few minor [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:4d7acc3d459539b12b830f8dd59bc424e4fc88d9'><p>The various GB-PVR enhancements have I have been working on over the last while have finally all been upgraded to .Net 2.0.  <a href="http://gbpvr.com/pmwiki/pmwiki.php/Profiles/UncleJohnsBand">UncleJohnsBand</a> was kind enough to upgrade the <a href="http://gbpvr.com/pmwiki/pmwiki.php/Utility/EnhancedWebAdmin">Enhanced Web Admin</a>, and <a href="http://gbpvr.com/pmwiki/pmwiki.php/Profiles/Ubu">ubu</a> upgraded the <a href="http://gbpvr.com/pmwiki/pmwiki.php/Plugin/ExternalRecorder">External Recording Plugin</a> along with doing the first pass on the <a href="http://gbpvr.com/pmwiki/pmwiki.php/Plugin/SoftwareRecorder">WDM Recording Plugin</a>.  A few minor .Net 2.0 differences later (I upgraded DShow&#8217;s UCOMInterface references to ComTypes.Interfaces, and had to fix an out/ref array parameter) and the WDM Recording Plugin is working on GB-PVR 0.97.  I even upgraded my <a href="http://gbpvr.com/pmwiki/pmwiki.php/Utility/DetectMultiRecordings">Detect Multi Recordings</a> utility (which only really required a single line of code change).</p>
<p>Except for a minor issue with <a href="http://www.netlimiter.com/">NetLimiter</a> 1.30 breaking some .Net 2.0 remoting, it looks like everything is working 100% <img src='http://norman.rasmussen.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://norman.rasmussen.co.za/99/gb-pvr-joins-the-net-20-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>chromeless meebo 2.0</title>
		<link>http://norman.rasmussen.co.za/98/chromeless-meebo-20/</link>
		<comments>http://norman.rasmussen.co.za/98/chromeless-meebo-20/#comments</comments>
		<pubDate>Sat, 27 May 2006 23:32:08 +0000</pubDate>
		<dc:creator>Nurm</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[meebo]]></category>

		<guid isPermaLink="false">http://norman.rasmussen.co.za/98/chromeless-meebo-20/</guid>
		<description><![CDATA[Update (Aug 28): I&#8217;ve created a Chromeless Meebo changelog page.
My chromeless meebo proof-of-concept got an upgrade this weekend (now at version 0.5).  It&#8217;s been fully upgraded to .Net 2.0, which means that there are no more external dependancies.  Also included are:

Saving of preferences.
Single clicking on the tray icon only toggles the buddy list [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:c12b6d4414078338d3ff23a0c36d247eb39efbbe'><blockquote><p>Update (Aug 28): I&#8217;ve created a <a href="/chromeless-meebo/">Chromeless Meebo</a> changelog page.</p></blockquote>
<p>My <a href="http://norman.rasmussen.co.za/97/chromeless-meebo/">chromeless meebo</a> proof-of-concept got an upgrade this weekend (now at version 0.5).  It&#8217;s been fully upgraded to .Net 2.0, which means that there are no more external dependancies.  Also included are:</p>
<ul>
<li>Saving of preferences.</li>
<li>Single clicking on the tray icon only toggles the buddy list &#8211; To toggle all Meebo windows, use double click.</li>
<li>Tooltips no longer rotate when you recieve a message from a contact &#8211; They appear once only.</li>
<li><a href="http://msdn.microsoft.com/netframework/windowsforms/learning/features/clickonce/">ClickOnce</a> magic &#8211; This means you can &#8216;install&#8217; Meebo Browser via a web interface, and updates happen automagically.</li>
<li>Splash Screen &#8211; With an AJAX loading widget provided by <a href="http://www.ajaxload.info/">Ajaxload</a>.</li>
</ul>
<p>So you can <a href="http://norman.rasmussen.co.za/dl/meebo/clickonce/">take it for a test drive</a> right now if you have the .Net 2.0 Framework installed (the ClickOnce page should detect if you don&#8217;t &#8211; and prompt you to install it).  If you&#8217;re a Firefox user, then you might want to install <a href="https://addons.mozilla.org/firefox/1608/">FFClickOnce</a> to &#8216;enable&#8217; ClickOnce functionality correctly in Firefox.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://norman.rasmussen.co.za/98/chromeless-meebo-20/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>chromeless meebo</title>
		<link>http://norman.rasmussen.co.za/97/chromeless-meebo/</link>
		<comments>http://norman.rasmussen.co.za/97/chromeless-meebo/#comments</comments>
		<pubDate>Fri, 17 Mar 2006 15:46:57 +0000</pubDate>
		<dc:creator>Nurm</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[meebo]]></category>

		<guid isPermaLink="false">http://norman.rasmussen.co.za/97/chromeless-meebo/</guid>
		<description><![CDATA[Update (Aug 28): I&#8217;ve created a Chromeless Meebo changelog page.  It will always have a link to the latest version.
Launching Meebo in a &#8220;chromeless&#8221; window has been a feature request for many Meebo users since almost day one.  Unfortunately because of the way web pages work, Meebo can&#8217;t really do this.  There [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:16d3120b28d31927b05ff7418936bd97991c9617'><blockquote><p>Update (Aug 28): I&#8217;ve created a <a href="/chromeless-meebo/">Chromeless Meebo</a> changelog page.  It will always have a link to the latest version.</p></blockquote>
<p>Launching <a href="http://www.meebo.com/">Meebo</a> in a &#8220;chromeless&#8221; window has been a <a href="http://wiki.meebo.com/doku.php?id=featureandbuglist">feature request</a> for many Meebo users since almost day one.  Unfortunately because of the way web pages work, Meebo can&#8217;t really do this.  There is a work around though.  Using window transparency it&#8217;s possible to get 99% of the way there.</p>
<p>A week or so ago I threw together a quick proof-of-concept, it&#8217;s now at build 3, and ready enough that I&#8217;m happy that &#8216;real users&#8217; can test it.  It requires the .Net 1.1 framework, and Internet Explorer to be installed.  Depending on what hardware you have it could run fast or slow.  There&#8217;s not much to tweak because <strong>all</strong> the heavy lifting is done by the OS.</p>
<p>Grab a copy of <a href="http://norman.rasmussen.co.za/dl/meebo/">Meebo Browser</a> today! (Source included, patches welcome!)</p>
<p>Notes: It can sometimes take a while before the Meebo log in page is visible, just give it time.  Use the system tray icon to change auto-on-top, and display of the &#8216;you are currently connected&#8217; text, and exit Meebo (after you&#8217;ve logged off).  If you click the icon it will bring the Meebo window to the front, clicking it repeatedly will hide and show the Meebo window.  You can edit the Meebo.exe.config file to change the defaults too.</p>
<blockquote><p>Update (Mar 26): If you get an error about &#8220;Microsoft.mshtml&#8221; missing, you need to install the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=3c9a983a-ac14-4125-8ba0-d36d67e0f4ad">Office 2003 Primary Interop Assemblies</a>.</p></blockquote>
<blockquote><p>Update (May 28): An updated <a href="/98/chromeless-meebo-20/">.Net 2.0 build</a> is now available.</p></blockquote>
</div>
]]></content:encoded>
			<wfw:commentRss>http://norman.rasmussen.co.za/97/chromeless-meebo/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>busy bee</title>
		<link>http://norman.rasmussen.co.za/96/busy-bee/</link>
		<comments>http://norman.rasmussen.co.za/96/busy-bee/#comments</comments>
		<pubDate>Sun, 26 Feb 2006 20:41:28 +0000</pubDate>
		<dc:creator>Nurm</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[gbpvr]]></category>
		<category><![CDATA[jabber]]></category>

		<guid isPermaLink="false">http://norman.rasmussen.co.za/96/hello-fworld/</guid>
		<description><![CDATA[I've been naughty, and haven't posted any update for almost two months now.  I thought that I should give at least a little feedback on what I'm up to: GB-PVR, Jabber/XMPP, Work and Home.]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:c9168468a1d9afbecab40250019f51e7906f1f5c'><p>I&#8217;ve been naughty, and haven&#8217;t posted any update for almost two months now.  I thought that I should give at least a little feedback on what I&#8217;m up to:</p>
<p><strong>GB-PVR: </strong><a href="http://gbpvr.com/pmwiki/pmwiki.php/Utility/EnhancedWebAdmin">WebAdmin</a>, <a href="http://gbpvr.com/pmwiki/pmwiki.php/Plugin/SoftwareRecorder">Software Recorder</a>, and less so <a href="http://gbpvr.com/pmwiki/pmwiki.php/Plugin/ExternalRecorder">External Recorder</a>, work continues.  The web admin is now fully themed using css, and is rapidly growing into a full featured web frontend and not just a recording management web page or two.  Two other side projects have spawned aiming to support <a href="http://forums.gbpvr.com/showthread.php?t=12015">Web Services</a>, and <a href="http://forums.gbpvr.com/showthread.php?t=13481">Proper Web Streaming</a>.  </p>
<p>The Software Recorder pluigin  is slowly sporting support for more and more capture cards.  The other day someone commented on the mamoth forum thread we have managed to build (almost 900 posts).  I find it quite satisfying that the top two threads (by number of posts and number of views) are for the WebAdmin and the Software Recorder &#8211; also other programmers are getting involved and are sending in patches and fixes <img src='http://norman.rasmussen.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>XMPP/Jabber:</strong> If you haven&#8217;t tried <a href="http://mail.google.com/mail/help/chat.html">gtalk in gmail</a> yet, where have you been living?  At work I&#8217;ve been looking to put in a IM server &#8211; Jabber based of course.  I use <a href="http://jabberd.jabberstudio.org/2/">jabberd 2</a> for darkskies.za.net, but it&#8217;s not quite ready to be used at the enterprise level on a windows box.  </p>
<p><a href="http://www.jivesoftware.org/wildfire/">Wildfire</a> to the rescue.  It has full LDAP integration, shared roster groups, a pretty web admin interface, a bunch of plugins, including an auto-updater for their <a href="http://www.jivesoftware.org/spark/index.jsp">Spark</a> client.  Only down side is that it&#8217;s java, but on the server that can be excused, on the client, not so much.  Using a client like Pandion makes that client side experience far richer, but then you loose your auto-updating capabilites *sigh*.  Pandion does feature <a href="http://en.wikipedia.org/wiki/Single_sign-on">Single-Sign-On</a> support though.</p>
<p>So my attention for the past weeks has been turned to adding SSO into a variety of XMPP servers, starting with xmppd.py for the rapid prototype approach, and proving that it can be done.  Then visiting Java&#8217;s <a href="http://java.sun.com/j2se/1.5.0/docs/guide/security/sasl/sasl-refguide.html">SASL</a> API, and trying to figure out how to hook it all up.  I&#8217;ve ended up with a bridge between Java&#8217;s SASL API&#8217;s and Windows&#8217; SSPI API&#8217;s.  So anything that SSPI supports, SASL can now use too.  A few minor tweaks to wildfire, and it too should be able to authenticate using GSSAPI (Kerberos), or NTLM (for Pandion).  </p>
<p>Of course <a href="https://mustang.dev.java.net/">mustang</a> is <a href="http://java.sun.com/javase/webnotes/6/features.html">supposed</a> to have native support for Kerberos and SPNEGO, but you can&#8217;t get into the RFE&#8217;s to see the details.  (I checked build 71, and it didn&#8217;t seem to have any new toys &#8211; I see the beta is out, and I&#8217;m busy downloading that to see if it does)</p>
<p><strong>Work:</strong> Terribly busy with a new semi-&#8217;proof of concept&#8217; security framework to be used across applications for multiple clients, etc.  The power outages haven&#8217;t helped &#8211; getting (back) to work at 4am to do a deployment for the previous project wasn&#8217;t exactly lots-of-fun.  We&#8217;ve (royal) decided to go with <a href="http://msdn.microsoft.com/vbasic/future/">VB</a> <a href="http://msdn.microsoft.com/netframework/future/linq/default.aspx">LINQ</a> for the new framework, and it seems to be everything it was promised to be.  Gone are the days where you have to build stored procdures for each and every database access (by hand or using tools like <a href="http://www.codesmithtools.com/">Codesmith</a>), <a href="http://en.wikipedia.org/wiki/Language_integrated_query">LINQ</a> does all of that for you &#8211; at run-time.</p>
<p><strong>Home:</strong> Bathroom renovations are progressing, I can&#8217;t wait for it to be all over, and we can stop walking around in cement laden carpets :p</p>
<p>Now just before I disappear off to sleep, let me point out that 150 million Firefox downloads are approaching fast &#8211; that&#8217;s about 50 millions downloads in 5 months &#8211; wow.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://norman.rasmussen.co.za/96/busy-bee/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Win32 Ansi</title>
		<link>http://norman.rasmussen.co.za/91/win32-ansi/</link>
		<comments>http://norman.rasmussen.co.za/91/win32-ansi/#comments</comments>
		<pubDate>Mon, 19 Sep 2005 18:53:09 +0000</pubDate>
		<dc:creator>Nurm</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[home]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[transports]]></category>

		<guid isPermaLink="false">http://norman.rasmussen.co.za/?p=91</guid>
		<description><![CDATA[I&#8217;m busy developing the irc-transport for xmpp.py and the debuging output is coloured via ANSI escape sequences.  This works great on a linux terminal, or via PuTTY, but not so great in a win32 console.  I searched quite hard on Google for a &#8216;modern&#8217; ansi.sys or ansi.com replacement, but couldn&#8217;t find anything.
So here&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:29d593c716fcf2defa101a2beea9d53fc5acd7e0'><p>I&#8217;m busy developing the <a href="http://xmpppy.sourceforge.net/irc/index.html">irc-transport</a> for <a href="http://xmpppy.sourceforge.net/">xmpp.py</a> and the debuging output is coloured via ANSI escape sequences.  This works great on a linux terminal, or via <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a>, but not so great in a win32 console.  I searched quite hard on Google for a &#8216;modern&#8217; ansi.sys or ansi.com replacement, but couldn&#8217;t find anything.</p>
<p>So <a href="http://norman.rasmussen.co.za/dl/ansi/">here&#8217;s</a> my attempt at making something work in win32.  </p>
<p><span id="more-91"></span></p>
<p>The executable will spawn a copy of the default command shell (from COMPSEC), unless you give it something to run on the command line.  Basically it pump&#8217;s stdout and stderr, and parses the ANSI escape codes into win32 console API calls.  For quick development I wrote it up in c#, but it looks like some of the .net console async pipe handling code blocks badly, so I may end up porting it to plain c.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://norman.rasmussen.co.za/91/win32-ansi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
