<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9871714</id><updated>2011-04-21T23:01:53.363+03:00</updated><title type='text'>Rad &amp; Dot Net - Digital Warrior</title><subtitle type='html'>Assorted ramblings (and vents!!) from a techie on the sunny shores of Kenya, East Africa</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9871714.post-114311461955934608</id><published>2006-03-23T14:38:00.000+03:00</published><updated>2006-07-31T10:58:34.846+03:00</updated><title type='text'>Monad</title><content type='html'>I'm a HUGE Monad fan. In fact in many ways its better than bash, cash, dash and all those other ash shells.&lt;br /&gt;&lt;br /&gt;Why? Because I can access full objects from the command line and not just strings.&lt;br /&gt;&lt;br /&gt;This means I can tie together the file system, .NET, and the internet beautifully.&lt;br /&gt;&lt;br /&gt;I mean, I can even get my PC BIOS info from command line!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;get-WMIObject win32_BIOS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;SMBIOSBIOSVersion : R01-C1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Manufacturer      : Phoenix Technologies, LTD&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Name              : )Phoenix - Award WorkstationBIOS v6.00PG&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;SerialNumber      : PSPSTD643434602408W&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Version           : AWARD  - 42302e31&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I can even start Internet explorer&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;$ie = new-object -com "InternetExplorer.Application"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;$ie.Visible=$true&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;$ie.Navigate2("cnn.com")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Is that cool or what?&lt;br /&gt;&lt;br /&gt;Though a question begs to be asked -- instead of coming up with a whole new language why not use an idle one like JScript.NET?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-114311461955934608?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/114311461955934608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=114311461955934608' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/114311461955934608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/114311461955934608'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2006/03/monad.html' title='Monad'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-114121295926987938</id><published>2006-03-01T14:32:00.000+03:00</published><updated>2006-03-01T14:35:59.280+03:00</updated><title type='text'>MSDN</title><content type='html'>If you have the money get yourself an MSDN subscription!&lt;br /&gt;&lt;br /&gt;Got a large parcel from Microsoft -- all the technical resources you can think of are included -- MSDN, development tools, operating systems, sdks, servers (some of which I have never even heard of), webcasts ....&lt;br /&gt;&lt;br /&gt;Nirvanah&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-114121295926987938?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/114121295926987938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=114121295926987938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/114121295926987938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/114121295926987938'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2006/03/msdn.html' title='MSDN'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-113932509587831712</id><published>2006-02-07T18:04:00.000+03:00</published><updated>2006-02-07T18:11:35.890+03:00</updated><title type='text'>Virtualization</title><content type='html'>Good news, good news. Those of us who want to test software, esp betas without touching the sanctity of our rock solid OS and do not wish to pay for &lt;a href="http://www.microsoft.com/windows/virtualpc/default.mspx"&gt;Virtual PC&lt;/a&gt; can take a look at &lt;a href="http://www.vmware.com"&gt;VMWare's&lt;/a&gt; new  VMWare server.&lt;br /&gt;&lt;br /&gt;Which is free.&lt;br /&gt;&lt;br /&gt;Get the &lt;a href="http://www.vmware.com/products/server/"&gt;beta here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-113932509587831712?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/113932509587831712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=113932509587831712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/113932509587831712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/113932509587831712'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2006/02/virtualization.html' title='Virtualization'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-113862091261400791</id><published>2006-01-30T14:32:00.000+03:00</published><updated>2006-01-30T14:35:12.626+03:00</updated><title type='text'>Dialogzzz</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.flickr.com/24/93053419_33bc2bf67a_o.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://static.flickr.com/24/93053419_33bc2bf67a_o.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now, why on earth doesn't this dialog have a &lt;span style="font-weight: bold;"&gt;No To All&lt;/span&gt;, since it alreay has a &lt;span style="font-weight: bold;"&gt;Yes To All?&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-113862091261400791?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/113862091261400791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=113862091261400791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/113862091261400791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/113862091261400791'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2006/01/dialogzzz.html' title='Dialogzzz'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-113802434147400550</id><published>2006-01-23T16:26:00.000+03:00</published><updated>2006-01-23T16:52:21.503+03:00</updated><title type='text'>Personalized Menus</title><content type='html'>I'm sure I'm not the only one who found personalized menus a ludicrous concept, that made an application even harder to learn by novices who at every machine they sat down at found different menus in different orders!&lt;br /&gt;&lt;br /&gt;Happily, this ridiculous feature will be &lt;a href="http://blogs.msdn.com/jensenh/archive/category/11720.aspx"&gt;turned off by default&lt;/a&gt; in the next version of office.&lt;br /&gt;&lt;br /&gt;Sanity prevails!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-113802434147400550?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/113802434147400550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=113802434147400550' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/113802434147400550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/113802434147400550'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2006/01/personalized-menus.html' title='Personalized Menus'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-113739633194177520</id><published>2006-01-16T10:20:00.000+03:00</published><updated>2006-01-16T10:25:31.953+03:00</updated><title type='text'>Internet Exploder</title><content type='html'>The problems i have with IE are not few. After each time I am forced to use IE I close it with my dislike for it having grown that little bit much more.&lt;br /&gt;&lt;br /&gt;The reasons I dislike it for general browsing is the stuff for another day. My gripe today is its use for debugging. The following images tell the story themselves:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/48026419@N00/87261598/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/37/87261598_7658756f34_o.gif" alt="ie error" height="72" width="331" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Problem loading the page. No problem. Let me see what the problem is&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/48026419@N00/87261597/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/39/87261597_e5202cdbe3_o.gif" alt="ie error info" height="290" width="437" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;OK, line two. Let's view source&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/48026419@N00/87261599/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/43/87261599_79dbcde5c7_o.gif" alt="ie view source" height="112" width="507" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Whoa! No code on or anywhere near line 2!&lt;br /&gt;&lt;br /&gt;Speechless!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-113739633194177520?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/113739633194177520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=113739633194177520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/113739633194177520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/113739633194177520'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2006/01/internet-exploder.html' title='Internet Exploder'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-113689818544010690</id><published>2006-01-10T15:45:00.000+03:00</published><updated>2006-10-24T18:40:30.766+03:00</updated><title type='text'>Yahoo Mail  2</title><content type='html'>I've been playing about with the yahoo mail beta for the better part of a month now. So far it looks pretty good -- solid interface, excellent design. Though personally I think too much screen real estate is wasted in the right bar for advertisements, which is about the same width as the inbox pane. (Cropped from the screenshot)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/48026419@N00/84802160/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/39/84802160_cfbb91c774.jpg" width="500" height="233" alt="yahoo2" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, if you don't have a very fast stable connection do not bother.&lt;br /&gt;&lt;br /&gt;In my opinion - gmail had better look out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-113689818544010690?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/113689818544010690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=113689818544010690' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/113689818544010690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/113689818544010690'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2006/01/yahoo-mail-2.html' title='Yahoo Mail  2'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-113653075107859649</id><published>2006-01-06T09:55:00.000+03:00</published><updated>2006-01-06T09:59:11.080+03:00</updated><title type='text'>Pleasant Surprises</title><content type='html'>Opening my inbox yesterday had this pleasant surprise:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2959/738/1600/mvp.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/2959/738/320/mvp.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Joining the ranks of Visual C# MVPs is yours truly&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-113653075107859649?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/113653075107859649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=113653075107859649' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/113653075107859649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/113653075107859649'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2006/01/pleasant-surprises.html' title='Pleasant Surprises'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-112255536524800673</id><published>2005-07-28T15:56:00.000+03:00</published><updated>2005-07-28T15:56:05.256+03:00</updated><title type='text'>Windows Vista</title><content type='html'>Windows Vista? Could they come out with a more ridiculous name if they tried? They should have stuck with Longhorn. Still, the&lt;a href="http://www.pcmag.com/slideshow/0,1206,pg=0&amp;s=26945&amp;a=156757,00.asp" title="PC Magazine Screenshots" target="_blank"&gt; screenshots look neat&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Got SQL 2005 and VS 2005 up and running finally. So far i'm quite impressed ....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-112255536524800673?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/112255536524800673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=112255536524800673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/112255536524800673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/112255536524800673'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/07/windows-vista.html' title='Windows Vista'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-112195467061591461</id><published>2005-07-21T17:02:00.000+03:00</published><updated>2005-07-21T17:04:30.623+03:00</updated><title type='text'>Preparing for VS 2005</title><content type='html'>Well! Long time no blog!&lt;br /&gt;&lt;br /&gt;I will be presenting at the next &lt;a href="http://www.africadotnet.org"&gt;AfricaDotNet &lt;/a&gt;user group meeting this weekend.&lt;br /&gt;&lt;br /&gt;Also tomorrow am going to buy an 80GB hard disk and 512 MB of RAM so that I can install VS 2005 and all its associated plumbing....&lt;br /&gt;&lt;br /&gt;Do Microsoft have shares in Seagate???&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-112195467061591461?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/112195467061591461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=112195467061591461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/112195467061591461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/112195467061591461'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/07/preparing-for-vs-2005.html' title='Preparing for VS 2005'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-111632783067726086</id><published>2005-05-17T14:03:00.000+03:00</published><updated>2005-05-17T14:03:50.693+03:00</updated><title type='text'>AfricaDotNet</title><content type='html'>The AfricaDotNet site &lt;a href="http://www.africadotnet.org" title="http://www.africadotnet.org" target="_blank"&gt;http://www.africadotnet.org&lt;/a&gt; is back up again after a small snafu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-111632783067726086?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/111632783067726086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=111632783067726086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111632783067726086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111632783067726086'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/05/africadotnet.html' title='AfricaDotNet'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-111581930009580146</id><published>2005-05-11T16:48:00.000+03:00</published><updated>2006-01-16T14:20:52.023+03:00</updated><title type='text'>Charting</title><content type='html'>Like I said before, graphing in .NET is much tricker than it sounds. You need to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Find out the largerst and smallest values in order to draw the axes&lt;br /&gt;&lt;/li&gt;&lt;/li&gt;&lt;li&gt;Adjust your thinking from a 0,0 in the bottom left to one on the top left&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Plot the axes&lt;/li&gt;&lt;li&gt;Cater for positive and negative values while doing this&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Plot the axis labels&lt;/li&gt;&lt;li&gt;Establish what is being plotted against what&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Calculate the points to draw the lines/rectangles for the charts&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Draw the lines and graphs&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Where appropriate, convert the lines to splines&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Measure the width of the strings labelig the axis (if text or date) and rotate to fit on the axes&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Plot the major and minor gridlines&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Render the data points&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Render the labels&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So far so good. I've cracked then all apart from rendering the axis labels. Here is a very rough sample or my preliminary work&lt;br /&gt;&lt;img src="http://photos11.flickr.com/13407255_07c18a74e6_m.jpg" border="1"&gt;&lt;br /&gt;Here is another sample with spaces between the bars&lt;br /&gt;&lt;img src="http://photos9.flickr.com/13407254_60270f7845_m.jpg" border="1"&gt;&lt;br /&gt;Here is a version with overlapping bars. Notice i've implemented transparency&lt;br /&gt;&lt;img src="http://photos9.flickr.com/13407256_e5f709b238_m.jpg" border="1"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-111581930009580146?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/111581930009580146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=111581930009580146' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111581930009580146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111581930009580146'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/05/charting.html' title='Charting'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-111570923203584512</id><published>2005-05-10T10:13:00.000+03:00</published><updated>2005-05-10T10:15:08.353+03:00</updated><title type='text'>Graphing GDI+</title><content type='html'>A project i'm working on requires quite  a bit of charting. Which is no biggie. There are lots of free solutions. However I want to do some rather exotic things with the charts including&lt;br /&gt;1) Multiple axes&lt;br /&gt;2) More than one chart type superimposed on another e.g. bar on a line on an area&lt;br /&gt;3) Render to web and screen&lt;br /&gt;4) Support transparency&lt;br /&gt;5) Support simple interactivity i.e. drill down&lt;br /&gt;6) Output SVG, PNG and JPEG&lt;br /&gt;&lt;br /&gt;Of all the existing one most can be eliminated because&lt;br /&gt;- They don't do what I want esp 1,3 and 5&lt;br /&gt;- Licencing issues (Excel, OWC). If you use this method on the web, every connecting client should have an office licence. Yikes!&lt;br /&gt;- Cost&lt;br /&gt;- Some problem or the other (ZedChart, NGraph, ChartDirector, etc)&lt;br /&gt;&lt;br /&gt;The closest one i've found is- &lt;a href="http://dundas.com" title="Dundas Chart" target="_blank"&gt;Dundas Charts&lt;/a&gt;. But the price has to be seen to be believed.&lt;br /&gt;&lt;br /&gt;So i'm doing it myself with GDI+.&lt;br /&gt;&lt;br /&gt;It's actually easier than I thought -- .NET support for drawing is simply first rate. The only annoying thing is that the origin, 0,0 is the top left corner. So the code to render the bars, lines, etc needs to factor this in when plotting the co-ordinates. But it's running like poetry.&lt;br /&gt;&lt;br /&gt;So far so good - i've got bar charts running so next is the line, scattergram and pie&lt;br /&gt;&lt;br /&gt;Drawing graphs is much trickier than it sounds, especially the approach i have taken -- doing it in layers. More on that later&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-111570923203584512?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/111570923203584512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=111570923203584512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111570923203584512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111570923203584512'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/05/graphing-gdi.html' title='Graphing GDI+'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-111562719286373670</id><published>2005-05-09T11:26:00.000+03:00</published><updated>2005-05-09T11:26:32.910+03:00</updated><title type='text'>Bonjour</title><content type='html'>Apple have some spectacular looking technology that allows you to network without running after IP addresses http://developer.apple.com/networking/bonjour/index.html&lt;br /&gt;&lt;br /&gt;Tres cool!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-111562719286373670?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/111562719286373670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=111562719286373670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111562719286373670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111562719286373670'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/05/bonjour.html' title='Bonjour'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-111469405182031794</id><published>2005-04-28T16:14:00.000+03:00</published><updated>2005-04-28T16:14:11.820+03:00</updated><title type='text'>Microsoft Metro</title><content type='html'>Apparently Microsoft is &lt;a href="http://www.pcmag.com/article2/0,1759,1789581,00.asp" title="Metro" target="_blank"&gt;developing a new document printing specification&lt;/a&gt;, at present called Metro. Which raises a couple of interesting issues:&lt;br /&gt;1) So it's XML based. SO WHAT?&lt;br /&gt;2) Exactly what problem is it trying to solve that postscript has not already solved&lt;br /&gt;3) How are they going to get it adopted? No point in my generating metro documents if you cannot read them. So who'll take the first step?&lt;br /&gt;&lt;br /&gt;Is it just me or are they doing it just because they can?&lt;br /&gt;&lt;br /&gt;Conspiracy theory: suppose they want to&lt;br /&gt;- Come up with a universal document format for EVERY DOCUMENT regardless of type -- html, word processing, text, etc&lt;br /&gt;- Go into the printer business&lt;br /&gt;- Attempt to challenge Photoshop and Pagemaker in the media creation business?&lt;br /&gt;&lt;br /&gt;Hmm....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-111469405182031794?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/111469405182031794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=111469405182031794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111469405182031794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111469405182031794'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/04/microsoft-metro.html' title='Microsoft Metro'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-111382477264317437</id><published>2005-04-18T14:45:00.000+03:00</published><updated>2005-04-18T14:46:12.643+03:00</updated><title type='text'>AdobeMedia / MarcoAdobe</title><content type='html'>&lt;a href="http://macromedia.com/macromedia/proom/pr/2005/adobe_macromedia.html" title="HUH?" target="_blank"&gt;Adobe is acquring Macromedia&lt;/a&gt;. This is NOT a good thing for the industry, beause this is another monolith that controls the image manupulation and web desgin software sector&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-111382477264317437?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/111382477264317437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=111382477264317437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111382477264317437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111382477264317437'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/04/adobemedia-marcoadobe.html' title='AdobeMedia / MarcoAdobe'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-111354872011443910</id><published>2005-04-15T10:05:00.000+03:00</published><updated>2005-04-15T10:10:15.970+03:00</updated><title type='text'>Africa Dot Net Meeting</title><content type='html'>There will be an Africa Dot Net user group meeting on the 16th. I'll be presenting something on "Development for the Broke". Alternatives to Visual Studio .NET, SQL Server, etc. Come one, come all. Microsoft EA at I&amp;M Bank. Bring a friend while you're at it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-111354872011443910?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/111354872011443910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=111354872011443910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111354872011443910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111354872011443910'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/04/africa-dot-net-meeting.html' title='Africa Dot Net Meeting'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-111149758724105068</id><published>2005-03-22T16:19:00.000+03:00</published><updated>2005-03-22T16:19:47.240+03:00</updated><title type='text'>New Releases</title><content type='html'>&lt;a href="http://www.rssbandit.org" target="_blank"&gt;RSS Bandit 1.3.0.26&lt;/a&gt;, one of the finest (and cheapest :) RSS reader is out. Next best thing to &lt;a href="http://bradsoft.com" title="FeedDemon" target="_blank"&gt;FeedDemon&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-111149758724105068?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/111149758724105068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=111149758724105068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111149758724105068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111149758724105068'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/03/new-releases.html' title='New Releases'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-111087358763747839</id><published>2005-03-15T10:58:00.000+03:00</published><updated>2006-01-16T14:40:05.423+03:00</updated><title type='text'>Encrypting SQL Server Data</title><content type='html'>There's an upcoming project for which for security reasons I wish to encrypt every last row and column in the DB&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Options&lt;/b&gt;&lt;br /&gt;- Stored procedure that encrypts the data as it is being encrypted for storage&lt;br /&gt;- Second stored procedure that encrypts the data as it is being decrypted for viewing&lt;br /&gt;- Function(s) that does the actual encryption and decryption.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Rationale&lt;/b&gt;&lt;br /&gt;- The sa account must be emasculated&lt;br /&gt;- Too may smartasses like peeking directly into the database&lt;br /&gt;- Very sensitive data beign stored that can be identified by other attributes e.g. money (The app is financial)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Caveats&lt;/b&gt;&lt;br /&gt;- I shall NOT, repeat, NOT write any DLLs in C++ and then register them with SQL. I am not a fan of C++&lt;br /&gt;- How do I mangle fields like ints and money???!!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Workarounds&lt;/b&gt;&lt;br /&gt;- Tinker with my SQL Express Beta, memory hog as it is by wrtiting said logic in C# and System.Cryptography&lt;br /&gt;&lt;br /&gt;Hmmm. Need to ruminate a bit more&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-111087358763747839?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/111087358763747839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=111087358763747839' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111087358763747839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111087358763747839'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/03/encrypting-sql-server-data.html' title='Encrypting SQL Server Data'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-111087219045020591</id><published>2005-03-15T10:36:00.000+03:00</published><updated>2005-03-15T10:36:30.450+03:00</updated><title type='text'>Stored Procedures</title><content type='html'>I come to find that i am pushing more and more of my logic into the database.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pros&lt;/b&gt;&lt;br /&gt;- Much simpler coding&lt;br /&gt;- Fewer database hits&lt;br /&gt;- Great logic for handling related updates e.g. when adding an order item, creating an order first&lt;br /&gt;- CURSORS! (Yes, there are times when a cursor is a GOOD thing!)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Cons&lt;/b&gt;&lt;br /&gt;- Portability out the window (but then again, database choice is a decision not made lightly!)&lt;br /&gt;- Aah -- can't quite think of another!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-111087219045020591?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/111087219045020591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=111087219045020591' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111087219045020591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/111087219045020591'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/03/stored-procedures.html' title='Stored Procedures'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110785893088655586</id><published>2005-02-08T13:35:00.000+03:00</published><updated>2005-02-08T13:35:30.886+03:00</updated><title type='text'>3D Desktop</title><content type='html'>Are people getting crazier by the day/ Who on earth would want a 3D Desktop! 2D is cluttered enough as it is! Why would you want &lt;a href="http://www.sun.com/software/looking_glass/details.xml" title="Looking Glass" target="_blank"&gt;this&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110785893088655586?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110785893088655586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110785893088655586' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110785893088655586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110785893088655586'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/02/3d-desktop.html' title='3D Desktop'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110743671754665931</id><published>2005-02-03T16:18:00.000+03:00</published><updated>2005-02-03T16:24:34.516+03:00</updated><title type='text'>Assorted Gotchas</title><content type='html'>After wasting an entire day debugging one stored procedure, let me share my newly gained wisdom&lt;br /&gt;&lt;br /&gt;1) When declaring nvarchar variables never forget to specify the size. If you don't it defaults to one then you will wonder why&lt;br /&gt;&lt;br /&gt;&lt;div style="word-wrap:break-word;margin:10px;padding:10px;border:2px ridge white;background-color:#eeeeee;font-family:Courier New;font-size:10pt"&gt;&lt;br /&gt;&lt;font color='blue'&gt;select&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;*&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;from&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;users&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;where&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;username&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;=&lt;/font&gt;&lt;font color='black'&gt;@username&lt;/font&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;returns nothing&lt;br /&gt;&lt;br /&gt;2) When you have a stored procedure that calls another, the latter of which returns a value in an ouput paramer, do it like this&lt;br /&gt;&lt;br /&gt;&lt;div style="word-wrap:break-word;margin:10px;padding:10px;border:2px ridge white;background-color:#eeeeee;font-family:Courier New;font-size:10pt"&gt;&lt;font color='blue'&gt;declare&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;@ProductID&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;int&lt;br /&gt;&lt;br /&gt;exec&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;[Products.&lt;/font&gt;&lt;font color='blue'&gt;Insert&lt;/font&gt;&lt;font color='black'&gt;]&amp;nbsp;&lt;/font&gt;&lt;font color='maroon'&gt;1&lt;/font&gt;&lt;font color='black'&gt;,&lt;/font&gt;&lt;font color='#808080'&gt;'ACME'&lt;/font&gt;&lt;font color='black'&gt;,&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color='#808080'&gt;'A&amp;nbsp;generic&amp;nbsp;ACME'&lt;/font&gt;&lt;font color='black'&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color='maroon'&gt;1&lt;/font&gt;&lt;font color='black'&gt;,&amp;nbsp;@ProductID&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;output&lt;br /&gt;&lt;br /&gt;select&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;@ProductID&lt;/font&gt;&lt;br /&gt;	&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;and not like this&lt;br /&gt;&lt;br /&gt;&lt;div style="word-wrap:break-word;margin:10px;padding:10px;border:2px ridge white;background-color:#eeeeee;font-family:Courier New;font-size:10pt"&gt;&lt;font color='blue'&gt;declare&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;@ProductID&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;int&lt;br /&gt;&lt;br /&gt;execute&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;[Products.&lt;/font&gt;&lt;font color='blue'&gt;Insert&lt;/font&gt;&lt;font color='black'&gt;]&amp;nbsp;&lt;/font&gt;&lt;font color='maroon'&gt;1&lt;/font&gt;&lt;font color='black'&gt;,&lt;/font&gt;&lt;font color='#808080'&gt;'ACME'&lt;/font&gt;&lt;font color='black'&gt;,&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color='#808080'&gt;'A&amp;nbsp;generic&amp;nbsp;ACME'&lt;/font&gt;&lt;font color='black'&gt;,&amp;nbsp;&lt;/font&gt;&lt;font color='maroon'&gt;1&lt;/font&gt;&lt;font color='black'&gt;,&amp;nbsp;@ProductID&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&lt;br /&gt;&lt;br /&gt;select&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;@ProductID&lt;/font&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The difference is the OUTPUT. If you fail to include that little word the output parameter is never populated!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110743671754665931?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110743671754665931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110743671754665931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110743671754665931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110743671754665931'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/02/assorted-gotchas.html' title='Assorted Gotchas'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110672240200014825</id><published>2005-01-26T09:53:00.000+03:00</published><updated>2005-01-26T09:53:22.000+03:00</updated><title type='text'>Delphi 2005</title><content type='html'>Installed all 900MB of &lt;a href="http://borland.com/delphi" title="Borland Delphi" target="_blank"&gt;Delphi 2005&lt;/a&gt; yesterday. It apparently can write Win32 apps, Delphi.NET apps and C# apps.  Watch this space!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110672240200014825?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110672240200014825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110672240200014825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110672240200014825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110672240200014825'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/delphi-2005.html' title='Delphi 2005'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110630968184914346</id><published>2005-01-21T15:14:00.000+03:00</published><updated>2005-01-21T15:14:41.850+03:00</updated><title type='text'>Africa Dot Net</title><content type='html'>Make sure you come for the &lt;a href="http://www.africadotnet.org" title="Africa Dot Net" target="_blank"&gt;AfricaDotNet &lt;/a&gt;user group meeting at the Microsoft offices this Saturday (22 January)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110630968184914346?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110630968184914346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110630968184914346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110630968184914346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110630968184914346'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/africa-dot-net.html' title='Africa Dot Net'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110570978155979743</id><published>2005-01-14T16:36:00.000+03:00</published><updated>2005-01-14T16:51:20.013+03:00</updated><title type='text'>RSS Readers</title><content type='html'>In the search for a good RSS reader i've run through a number and dismissed them all. Basically in my opinion these are the best:&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://www.bradsoft.com/feeddemon/index.asp" title="Feed Demon" target="_blank"&gt;FeedDemon&lt;/a&gt; - very impressive and comprehensive, with a search engine and a newspaper view. Very Outlook like interface and very intuitive. Problem is it ain't free!&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://rssbandit.org" title="RSS Bandit" target="_blank"&gt;RSS Bandit&lt;/a&gt; - Next best thing, also with the all important newspaper view. You can also get the source code and tinker to your satisfaction&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://rssowl.org" title="RSS Owl" target="_blank"&gt;RSS Owl&lt;/a&gt; - the newspaper view requires additional keystrokes but also pretty functional&lt;br /&gt;&lt;br /&gt;Honourable mention also goes to &lt;a href="http://jetbrains.com" title="Omea Reader" target="_blank"&gt;Omea Reader&lt;/a&gt;. Looks pretty good but still has the look and behaviour of a Version 1 type thing.&lt;br /&gt;&lt;br /&gt;Yes yes, i've also tried out SharpReader, RSS Reader, FeedReader, NewsDesk and a host of other and found them wanting&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110570978155979743?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110570978155979743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110570978155979743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110570978155979743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110570978155979743'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/rss-readers.html' title='RSS Readers'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110535119356252821</id><published>2005-01-10T12:59:00.000+03:00</published><updated>2005-01-10T12:59:53.563+03:00</updated><title type='text'>Undeletable Files?</title><content type='html'>I deleted a bunch of directories on my WinXP machine and strangely enough even after emptying the recycle bin the available disk space did not change. I had turned off that system restore nonsense a long time ago, and emptied the folders again just to be sure but no cigar. &lt;b&gt;300MB that should have been freed from deleting the folders was not freed&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;The answer came to me while I was writing a small utility to backup my current projects, and in the course of it's activities it built the directory structure in a treeview. There, to my amazement, was a bunch of folders in the recycler folder. (Note that the recycle bin shows empty!). Opening these folders (which had lengthy cryptic names indeed) revealed the folders I had just deleted. Writing code to nuke these was but a few seconds work.&lt;br /&gt;&lt;br /&gt;However an easier option is there - using &lt;a href="http://ahead.de" title="Nero" target="_blank"&gt;Nero Burning ROM&lt;/a&gt;. Open the explorer and navigate to Recycler. Nero will show you everything that is in in there and will let you delete them. Oddly enough, they will go to the recycle bin and appear there properly, and then you can empty the bin&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110535119356252821?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110535119356252821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110535119356252821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110535119356252821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110535119356252821'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/undeletable-files.html' title='Undeletable Files?'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110510351565601008</id><published>2005-01-07T16:11:00.000+03:00</published><updated>2005-01-07T17:04:51.956+03:00</updated><title type='text'>VB.N(OT) (Y)ET?</title><content type='html'>Accoring to some interesting statistics, VB 6 Developers are deeply in love with their VB.&lt;b&gt; 80% prefer VB 6&lt;/b&gt; as opposed to &lt;b&gt;17% on VB.NET&lt;/b&gt;. &lt;b&gt;2% &lt;/b&gt;are still sticking to &lt;b&gt;VB 5&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;The complete survey is at &lt;a href="http://visual-expert.com/us/info/survey_vb_2004_results.htm" title="Visual Expert Survey" target="_blank"&gt;Visual Expert&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Of course you know what they say about statistics ....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110510351565601008?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110510351565601008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110510351565601008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110510351565601008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110510351565601008'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/vbnot-yet.html' title='VB.N(OT) (Y)ET?'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110509776117361477</id><published>2005-01-07T14:36:00.000+03:00</published><updated>2005-02-15T13:27:01.616+03:00</updated><title type='text'>Python Update</title><content type='html'>My experiment with &lt;a href="http://python.org" title="Python" target="_blank"&gt;Python&lt;/a&gt; is moving along excellently. Now I know where the inspiration for the C# &lt;code&gt;foreach &lt;/code&gt;construct came from.&lt;br /&gt;&lt;br /&gt;The  use of indentation to delimit construct scope is also sheer genius. In one stroke the application is easy to read, and you are forced to be organized when the logic is complex for instance with nested loops, if statements and so on.&lt;br /&gt;&lt;br /&gt;Another interesting thing is that everything is an object,&lt;b&gt; including functions!&lt;/b&gt; Whoa!&lt;br /&gt;&lt;br /&gt;Python can import a particular class or function from a module (package / namespace). So from the &lt;a href="http://www.python.org/doc/2.3.4/lib/module-sys.html" title="sys module" target="_blank"&gt;sys&lt;/a&gt; (system)  module you can import just the argv (arguments) object. This may not be a big deal for desktop apps but when someone gets round to porting python for use on a phone, the implications will be great.&lt;br /&gt;&lt;br /&gt;Also, if python also straddles a fine line between being &lt;b&gt;interpreted &lt;/b&gt;and being &lt;b&gt;compiled&lt;/b&gt;. In cases where you import from another file or class,  compiled code is generated to enhance performance. The kicker thing is this compiled code is&lt;b&gt; cross platform&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You can also&lt;b&gt; &lt;a href="http://www.python.org/search/hypermail/python-1994q3/0131.html" title="Delete" target="_blank"&gt;delete&lt;/a&gt; objects&lt;/b&gt; from namespaces when you're done with them.&lt;br /&gt;&lt;br /&gt;And oh, python is nothing to do with snakes but rather it was named after Monty Python.&lt;br /&gt;&lt;br /&gt;However theres some upcoming development going under the delicious name of &lt;a href="http://boa-constructor.sourceforge.net/" title="Boa Constructor" target="_blank"&gt;Boa Constructor&lt;/a&gt;. This is an interesting project and as far as I can tell it's a complete IDE for Python written in python.&lt;br /&gt;&lt;br /&gt;definitely worth investigation!&lt;br /&gt;&lt;br /&gt;As for ability, someone has written a P2P type application in &lt;a href="http://www.freedom-to-tinker.com/tinyp2p.html" title="TinyP2P" target="_blank"&gt;TinyP2P in 15 Lines of Code&lt;/a&gt;. Yikes!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110509776117361477?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110509776117361477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110509776117361477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110509776117361477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110509776117361477'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/python-update.html' title='Python Update'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110508781750342813</id><published>2005-01-07T11:50:00.000+03:00</published><updated>2005-01-07T11:50:17.503+03:00</updated><title type='text'>Excel  Dilemmas</title><content type='html'>Tinkering around with Excel and VBA has led me to some pretty interesting discoveries.&lt;br /&gt;&lt;br /&gt;If you enter the following formula in a cell&lt;br /&gt;&lt;br /&gt;	&lt;div style="word-wrap:break-word;margin:10px;padding:10px;border:2px ridge white;background-color:#eeeeee;font-family:Courier New;font-size:10pt"&gt;&lt;font color='blue'&gt;=&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;-4^4&lt;/font&gt;&lt;br /&gt;	&lt;/div&gt;&lt;br /&gt;It returns the value &lt;b&gt;254&lt;/b&gt;, which is correct as far as elementary mathematics is concerned. -4 squared is +254&lt;br /&gt;&lt;br /&gt;However the same expression if executed through code, either VB proper or C# or even VBA,&lt;b&gt; the exact same expression yields -254&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;And if you think about it, the second expression is also correct insofar as most languages have the &lt;b&gt;precedence &lt;/b&gt;of power as higher than that of the negative.&lt;br /&gt;&lt;br /&gt;Which is to say if you drive Excel using VBA and calculate cell values using &lt;b&gt;both &lt;/b&gt;VBA and Excel forumulae, you are in for the high jump.&lt;br /&gt;&lt;br /&gt;The dilemma is that changing this behaviour in Excel could precipitate riots in the the current user base of Excel which runs in the millions if not billions who will probably not take kindly to having to change their worksheets and macros. Any attempts to do this will result in the same gymnastics along the lines of the different base dates (January 1, 1900 and January 2, 1904) that Excel supports. Talk about being between a rock and a hard place!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110508781750342813?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110508781750342813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110508781750342813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110508781750342813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110508781750342813'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/excel-dilemmas.html' title='Excel  Dilemmas'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110491024758711222</id><published>2005-01-05T10:30:00.000+03:00</published><updated>2005-01-05T10:30:47.586+03:00</updated><title type='text'>Java.NET?</title><content type='html'>I wonder ... I wager it is just a matter of time before a compiler that can take &lt;b&gt;java &lt;/b&gt;source code and spit out &lt;b&gt;MSIL &lt;/b&gt;will make an appearance, as is one that will take &lt;b&gt;.NET source code &lt;/b&gt;and spit out&lt;b&gt; java bytecode&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;Better yet, a&lt;b&gt; cross compiler&lt;/b&gt; that can take MSIL and spit out java bytecode (cutting out the horrendous task for catering for VB.NET. J#, C#, Cobol.NET, etc, and going right to a unified MSIL), and vice versa. This will be a killer tool that will enable you to&lt;b&gt; use a java class from a .NET app and a .NET class from a java app&lt;/b&gt;. It's bound to be quite an &lt;b&gt;awesome beast&lt;/b&gt; because it will have to cater for features that are in one language but not the other and substitute viable workarounds (particularly the totally different&lt;b&gt; event handling mechanisms&lt;/b&gt;). There are huge implications to something like this, but if man can go to the moon, this is a distinct possibility.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110491024758711222?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110491024758711222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110491024758711222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110491024758711222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110491024758711222'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/javanet.html' title='Java.NET?'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110490851002411260</id><published>2005-01-05T10:01:00.000+03:00</published><updated>2005-01-05T10:01:50.026+03:00</updated><title type='text'>Python</title><content type='html'>Developers all over the globe have almost &lt;b&gt;militant &lt;/b&gt;attachment to their tools of choice (self included) and are always willing and ready to take pot shots at other tools. In this regard you can find almost vitriolic opposition to Java, C#, VB, Delphi etc by proponents of some tool or the other&lt;br /&gt;&lt;br /&gt;However the strange thing is that almost everyone thinks highly of &lt;a href="http://python.org" title="Python" target="_blank"&gt;Python&lt;/a&gt;. In fact, if you know Python you are halfway to getting a job at &lt;a href="http://www.google.com/jobs/eng/reli.html" title="Google" target="_blank"&gt;Google&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are also a couple of interesting projects in various states of completion, the most intriguing being &lt;a href="http://jpython.org" title="JPython" target="_blank"&gt;JPython&lt;/a&gt; (think Python for Java, able to use java classes and generate bytecode) and Python.NET (same thing, but for .NET).&lt;br /&gt;&lt;br /&gt;I'm playing around with it right now and all I can say it's pretty interesting. The syntax is almost english like and there are no irritating END IFS, END DO, BEGIN, etc -- all that is done by indentation!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110490851002411260?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110490851002411260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110490851002411260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110490851002411260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110490851002411260'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/python.html' title='Python'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110483439314919114</id><published>2005-01-04T13:26:00.000+03:00</published><updated>2005-01-04T17:33:20.376+03:00</updated><title type='text'>Visual Basic.NET</title><content type='html'>A project I'm enhancing, done in &lt;b&gt;VB.NET&lt;/b&gt; brought back all the memories, good and bad, of VB. Circa &lt;b&gt;2000 AD&lt;/b&gt; I was an ardent fan on VB until I did a project that required intelligent clients and a central server. Reporting was done through Crystal Reports. The hair I &lt;b&gt;ripped from the roots&lt;/b&gt; trying to figure out why the exact same installation failed to work on two machines with identical specifications is one of my starkest memories.&lt;br /&gt;&lt;br /&gt;Another is of why the Crystal Reports DLLs &lt;b&gt;refused &lt;/b&gt;to register, either through the installation or regsvr.&lt;br /&gt;&lt;br /&gt;Yet another is the &lt;b&gt;&lt;font color="#FF0000"&gt;7,898,909&lt;/font&gt;&lt;/b&gt; versions of the VB runtime that I found on the assorted machines, some of which refused to run the application, others which swiftly and ruthlessly decided that components like &lt;b&gt;report viewers, common dialogs,&lt;/b&gt; etc. were a mistake on my part, and what I had actually wanted were&lt;b&gt; picture boxes&lt;/b&gt;, proceeding then to &lt;b&gt;convert &lt;/b&gt;them accordingly.&lt;br /&gt;&lt;br /&gt;The wild eyed look in my eye prompted a chap of mine, Tim, to again demonstrate the virtues of &lt;a href="http://borland.com/Delphi" title="Delphi"&gt;Borland Delphi&lt;/a&gt;. In fact on that note we used to have furious debates on the merits and demerits of VB and Delphi, but on that particular day my &lt;b&gt;spirit had been crushed&lt;/b&gt; after an entire week trying to get an application installed and running on 12 clients.&lt;br /&gt;&lt;br /&gt;After a half hour tour of Delphi, suffice it to say that particular project was the last time I laid eyes on VB. I &lt;b&gt;unistalled VB, installed Delphi &lt;/b&gt;and never looked back. Of course the&lt;b&gt; Visual Studio 2002 beta &lt;/b&gt;appeared soon after and I have been swimming in two pools ever since :)&lt;br /&gt;&lt;br /&gt;Until now of course. The DLL woes are gone, and there is finally structured exception handling, and object orientation. However I cannot help but get the felling that it has been &lt;b&gt;'hacked' &lt;/b&gt;for lack of a better word to get it CLS compliant. And even before you flame me 'hacked' is not necessarily a bad thing! The &lt;b&gt;festival of keywords&lt;/b&gt; is impressive, reminding me of my days as an &lt;b&gt;unwilling schoolboy learning the periodic table  &lt;/b&gt;but on the bright side the concepts of OOP are refreshed every time you type MustInherit.&lt;br /&gt;&lt;br /&gt;But so far all i can say is that compared to it's predecessor, VB.NET is the &lt;b&gt;Homo Sapiens&lt;/b&gt; to VB6's &lt;b&gt;amoeba&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Gripes:&lt;br /&gt;&lt;br /&gt;1) The sheer amount of &lt;b&gt;typing &lt;/b&gt;to be done!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;War And Peace&lt;/i&gt;&lt;br /&gt;&lt;div style="word-wrap:break-word;margin:10px;padding:10px;border:2px ridge white;background-color:#eeeeee;font-family:Courier New;font-size:10pt"&gt;&lt;br /&gt;&lt;font color='blue'&gt;Public&amp;nbsp;ReadOnly&amp;nbsp;Property&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;ID()&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;As&amp;nbsp;String&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Get&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;m_ID&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color='blue'&gt;End&amp;nbsp;Get&lt;br /&gt;&lt;br /&gt;End&amp;nbsp;Property&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;i&gt;Puss In Boots&lt;/i&gt;&lt;br /&gt;&lt;div style="word-wrap:break-word;margin:10px;padding:10px;border:2px ridge white;background-color:#eeeeee;font-family:Courier New;font-size:10pt"&gt;&lt;font color='blue'&gt;&lt;br /&gt;public&amp;nbsp;string&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;ID{&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/font&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color='blue'&gt;get&lt;/font&gt;&lt;font color='black'&gt;{&lt;/font&gt;&lt;font color='blue'&gt;return&amp;nbsp;&lt;/font&gt;&lt;font color='black'&gt;m_ID&lt;/font&gt;&lt;font color='blue'&gt;;&lt;/font&gt;&lt;font color='black'&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) The &lt;b&gt;convoluted &lt;/b&gt;way of coding for the events. There must be a less ridiculous way than those &lt;b&gt;two combo boxes &lt;/b&gt;at the top of the code view! Since imitation is the sincerest form of flattery it would be nice for the &lt;b&gt;C# property grid&lt;/b&gt; with it's events pane migrated.&lt;br /&gt;&lt;br /&gt;Also, is there a way to get &lt;b&gt;Enter &lt;/b&gt;to do the same work as &lt;b&gt;Tab&lt;/b&gt;? I've not had time to explore too much but my heavy C# bias and usage has accustomed me to use that key to autocomplete. It must be an option buried somewhere&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110483439314919114?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110483439314919114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110483439314919114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110483439314919114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110483439314919114'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/no-longer-basic-visual-basicnet.html' title='Visual Basic.NET'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110475423812438245</id><published>2005-01-03T15:10:00.000+03:00</published><updated>2005-01-03T15:14:40.766+03:00</updated><title type='text'>SharpDevelop</title><content type='html'>Been playing around with SharpDevelop 1.02 and from what I can see it's &lt;b&gt;REALLY COOL!&lt;/b&gt; They've clearly borrowed ideas heavily from VS but hey - flattery is the sincerest form of imitation! The built in Unit Testing, disassembly viewer and Profiler are a great idea. Similar results, at least as far as Unit Testing are concerned can be obtained from installing &lt;a href="http://testdriven.net" title="TestDriven.NET"&gt;TestDriven.NET&lt;/a&gt; if you use any Visual Studio (including Whidbey)&lt;br /&gt;&lt;br /&gt;It has a fully featured forms designer, caters for C# and VB.NET, as well as C++ and ILASM.  Hats off to you if you code in the latter.&lt;br /&gt;&lt;br /&gt;I distinctly recall that some early builds had &lt;b&gt;Java &lt;/b&gt;support but this seems to have fallen by the wayside. Sense always tends to prevail. Even &lt;a href="http://borland.com" title="Borland"&gt;Borland&lt;/a&gt;, who do some amazing things with their editors have not attempted an IDE that caters &lt;b&gt;fully &lt;/b&gt;for both Java and any of their other development platforms (Delphi, C++ Builder, etc). But that said and done the specs for Delphi 2005 are &lt;b&gt;impressive&lt;/b&gt;. And were anyone to pull it off it would be implemented pretty much as two separate projects. This would save on developers' pulled hair and smashed keyboards, symptoms of frustrated developers.&lt;br /&gt;&lt;br /&gt;It also has neat stuff like a colour picker you can use in the code view. So if you don't know the difference between &lt;b&gt;Airforce, navy &lt;/b&gt;and &lt;b&gt;marine &lt;/b&gt;blue (&lt;i&gt;97% of the male species&lt;/i&gt;) you can simply select the colour you want and the code is dumped for you in the editor.&lt;br /&gt;&lt;br /&gt;Maybe it's just me but I can't seem to find all those things that I'm used to like breakpoints and  debug windows and output windows. Which makes me wonder what &lt;br /&gt;&lt;div style="word-wrap:break-word;margin:10px;	padding:10px;border:2px ridge white;background-color:#eeeeee;font-family:Courier New;font-size:10pt"&gt;&lt;br /&gt;Trace.WriteLine()&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;will do!&lt;br /&gt;&lt;br /&gt;ASP.NET developers are left in the cold, without so much as a match. &lt;a href="http://asp.net" title="Web Matrix"&gt;Web Matrix&lt;/a&gt; is pretty good but if you are used to the CodeBehind way of doing things, you're buggered.&lt;br /&gt;&lt;br /&gt;Otherwise it's pretty able and when it comes to value for money (&lt;b&gt;FREE!!, including source code&lt;/b&gt;) it rules. Try it out &lt;a href="http://www.icsharpcode.net/OpenSource/SD/download/" title="Sharp Develop"&gt;Sharp Develop&lt;/a&gt; And in fact on that note I see a new build is available.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110475423812438245?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110475423812438245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110475423812438245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110475423812438245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110475423812438245'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/sharpdevelop.html' title='SharpDevelop'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110474042197422552</id><published>2005-01-03T10:37:00.000+03:00</published><updated>2005-01-03T11:29:59.326+03:00</updated><title type='text'>Null  Dates &amp; Typed Datasets</title><content type='html'>Making heavy use of the typed dataset generally works 99.99% of the time, but things get unglued when you run into a situation where you define one that has &lt;span style="font-weight: bold;"&gt;DateTime &lt;/span&gt;property that you want to be nullable.&lt;br /&gt;&lt;br /&gt;Setting &lt;span style="font-weight: bold;"&gt;minOccurs &lt;/span&gt;to 0 is fine, but the instant you define the null value as null, it refuses to compile. If you leave it as blank it will compile, but if you fill the dataset and the DateTime field happens to be null, a runtime error is thrown!&lt;br /&gt;&lt;br /&gt;Hmmm.&lt;br /&gt;&lt;br /&gt;So as a workaround, you have to put something in the field to make sure everything runs. My workaround is to use a certain date to represent a null value, so I happily did this:&lt;br /&gt;&lt;div   style="border: 2px ridge white; margin: 10px; padding: 10px; background-color: rgb(238, 238, 238);font-family:Courier New;font-size:9pt;"&gt;&lt;br /&gt;&lt;span style="color:black;"&gt;ProductData.ProductRow row &lt;/span&gt;&lt;span style="color:blue;"&gt;= &lt;/span&gt;&lt;span style="color:black;"&gt;New.ProductData.ProductRow()&lt;/span&gt;&lt;span style="color:blue;"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:darkgreen;"&gt;//not using SelectedValue becuase you might run into a 1.0 runtime!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;row.ProductID &lt;/span&gt;&lt;span style="color:blue;"&gt;= int&lt;/span&gt;&lt;span style="color:black;"&gt;.Parse(cbProductID.SelectedItem.Value)&lt;/span&gt;&lt;span style="color:blue;"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;row.Name &lt;/span&gt;&lt;span style="color:blue;"&gt;= &lt;/span&gt;&lt;span style="color:black;"&gt;Utils.ParseText(txtName.Text)&lt;/span&gt;&lt;span style="color:blue;"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;row.Description &lt;/span&gt;&lt;span style="color:blue;"&gt;=  &lt;/span&gt;&lt;span style="color:black;"&gt;Utils.ParseText(txtDescription.Text)&lt;/span&gt;&lt;span style="color:blue;"&gt;;&lt;br /&gt;&lt;br /&gt;if&lt;/span&gt;&lt;span style="color:black;"&gt;(txtStartdate.Text &lt;/span&gt;&lt;span style="color:blue;"&gt;== &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;""&lt;/span&gt;&lt;span style="color:black;"&gt;)&lt;br /&gt;&lt;br /&gt;row.Startdate &lt;/span&gt;&lt;span style="color:blue;"&gt;= &lt;/span&gt;&lt;span style="color:black;"&gt;DateTime.Parse(Utils.ParseDate(txtStartdate.Text))&lt;/span&gt;&lt;span style="color:blue;"&gt;;&lt;br /&gt;&lt;br /&gt;else&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;row.Startdate &lt;/span&gt;&lt;span style="color:blue;"&gt;= &lt;/span&gt;&lt;span style="color:black;"&gt;DateTime.MinValue&lt;br /&gt;&lt;br /&gt;row.EndDate &lt;/span&gt;&lt;span style="color:blue;"&gt;= &lt;/span&gt;&lt;span style="color:black;"&gt;DateTime.Parse( Utils.ParseText(txtEndDate.Text))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Problem with this is that SQL Server and .NET do not agree on what the smallest date should be, and so it throws a runtime error, since the .NET minimum date is too small to be stored in SQL server. As far as .NET is concerned, the smallest date value is just about&lt;span style="font-weight: bold;"&gt; 0AD &lt;/span&gt; (&lt;span style="font-style: italic;"&gt;Which makes storage of Roman Census data a bit of a problem! Is this backward compatibility with the abacus or what?!!&lt;/span&gt;).  As far as SQL server is concerned the smallest date value possible is about &lt;span style="font-weight: bold;"&gt;1st january 1753&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;So to work around this little snafu instead of DateTime.MinValue create a new date as above.&lt;br /&gt;&lt;br /&gt;Now the only thing left is to modify the UI code to behave itself when presented with this particular date, since it strictly means there is no data. A quick and dirty workaround is to handle the &lt;span style="font-weight: bold;"&gt;OnDataBinding &lt;/span&gt;method, and reset the date to the current date.&lt;br /&gt;&lt;br /&gt;By the way, is it just me or is the &lt;span style="font-weight: bold;"&gt;DatePicker's &lt;/span&gt;method of handling a lack of data too &lt;span style="color: rgb(255, 0, 0);"&gt;awkward&lt;/span&gt;? That funny little checkbox, as far as I'm concerned is not intuitive at all! If it is checked does it mean that it is &lt;span style="font-weight: bold;"&gt;null &lt;/span&gt;or that it&lt;span style="font-weight: bold;"&gt; has data&lt;/span&gt;? And the reason that our OnDataBinding override is set to the current date is to spare the more arthritic among us from clicking themselves into the grave shifting the date from when &lt;a href="http://en.wikipedia.org/wiki/1753"&gt;we begun celebrating New Year's Day&lt;/a&gt; to the current date&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110474042197422552?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110474042197422552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110474042197422552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110474042197422552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110474042197422552'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/null-dates-typed-datasets.html' title='Null  Dates &amp; Typed Datasets'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110473307895699340</id><published>2005-01-03T09:01:00.000+03:00</published><updated>2005-01-03T09:17:58.956+03:00</updated><title type='text'>Lethargy 2003</title><content type='html'>Yup. Office 2003 also insists on spelling &lt;b&gt;Mombasa&lt;/b&gt; as &lt;b&gt;Mombassa&lt;/b&gt;. But look on the bright side. At least there's  consistency, which is something WordPerfect and Lotus ought to investigate!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110473307895699340?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110473307895699340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110473307895699340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110473307895699340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110473307895699340'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/lethargy-2003_03.html' title='Lethargy 2003'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110466180548548227</id><published>2005-01-02T13:17:00.000+03:00</published><updated>2005-01-02T13:30:05.486+03:00</updated><title type='text'>More on Dictionaries</title><content type='html'>And more on that note, it cannot be too much of an effort for someone to sit down, collate a list of the most known of Kenya's cities (Nairobi, Nakuru, &lt;b&gt;Mombasa&lt;/b&gt;), some key personalities (Kenyatta, Koinange, Kimathi), some landmarks (Tsavo, Mara), a date format of d MM yyyy, a currency symbol of Kshs, throw in most of the UK dictionary and bits of the US (our English is mostly the Queen's English) and package the lot as English (Kenya).&lt;br /&gt;&lt;br /&gt;This way we can stop being patronized by being forced to choose between English (UK) and English (US) and having to spend most of our time removing dollar and pound signs and being forced to write extra code to format currencies and dates!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110466180548548227?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110466180548548227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110466180548548227' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110466180548548227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110466180548548227'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/more-on-dictionaries.html' title='More on Dictionaries'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110466010426129984</id><published>2005-01-02T13:05:00.000+03:00</published><updated>2005-01-02T13:40:31.786+03:00</updated><title type='text'>Lethargy 97, 2000, XP, etc</title><content type='html'>Those of us who are Kenyans I feel sure feel the same sense of outrage when after working on an Office Document and hitting F7, the spell checker helpfully offers &lt;b&gt;Mombassa&lt;/b&gt; as an alternative for the accurate spelling, &lt;b&gt;Mombasa&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I can't offhand recall if this same ridiculous behaviour manifests in Office 2003 but am willing to take wagers that it does! I'll check as soon as I'm out of this cybercafe whose machines seem to be running Windows 98 Build 1 and office 97&lt;br /&gt;&lt;br /&gt;And on that note when it comes to spelling dictionaries we have English (Australian), English (New Zealand), English (UK), English (US), English (South Africa), English (Zimbabwe). Strangely there is no &lt;b&gt;English (Kenya)&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Oh, and did I mention that Microsoft have  &lt;b&gt;regional office&lt;/b&gt; in Kenya?!!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Bonus!&lt;/i&gt;&lt;br /&gt;There is a certain road in the quiet suburbs of Upper Hill called &lt;b&gt;Matumbato Road&lt;/b&gt;. Type that in Word, spell check and marvel at the suggestions :)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110466010426129984?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110466010426129984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110466010426129984' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110466010426129984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110466010426129984'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2005/01/lethargy-97-2000-xp-etc_02.html' title='Lethargy 97, 2000, XP, etc'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9871714.post-110450513207879812</id><published>2004-12-31T17:56:00.000+03:00</published><updated>2004-12-31T17:58:52.076+03:00</updated><title type='text'>At Last</title><content type='html'>I've finally caved in and gotten around to being one of those annoying people with a weblog :) &lt;br /&gt;&lt;br /&gt;But that aside I hope now I can vent with the best of them!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9871714-110450513207879812?l=raddotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://raddotnet.blogspot.com/feeds/110450513207879812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9871714&amp;postID=110450513207879812' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110450513207879812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9871714/posts/default/110450513207879812'/><link rel='alternate' type='text/html' href='http://raddotnet.blogspot.com/2004/12/at-last.html' title='At Last'/><author><name>M</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
