<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Beakersoft Blog</title>
	
	<link>http://www.beakersoft.co.uk</link>
	<description>Blog about various IT related issues I encounter in the world of Newspapers!</description>
	<lastBuildDate>Fri, 19 Feb 2010 19:24:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image><link>http://beakersoft.blogspot.com</link><url>http://www.feedburner.com/fb/images/pub/fb_pwrd.gif</url><title>Powered By Feedburner</title></image>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BeakersoftBlog" /><feedburner:info uri="beakersoftblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><thespringbox:skin xmlns:thespringbox="http://www.thespringbox.com/dtds/thespringbox-1.0.dtd">http://feeds.feedburner.com/BeakersoftBlog?format=skin</thespringbox:skin><feedburner:emailServiceId>BeakersoftBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FBeakersoftBlog" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FBeakersoftBlog" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FBeakersoftBlog" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/BeakersoftBlog" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FBeakersoftBlog" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FBeakersoftBlog" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FBeakersoftBlog" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FBeakersoftBlog" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FBeakersoftBlog" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><item>
		<title>Folder2Page Plugin</title>
		<link>http://feedproxy.google.com/~r/BeakersoftBlog/~3/vEo-MwiiEm0/</link>
		<comments>http://www.beakersoft.co.uk/2010/02/11/folder2page-plugin/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 21:29:49 +0000</pubDate>
		<dc:creator>beakersoft</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.beakersoft.co.uk/?p=321</guid>
		<description><![CDATA[Just a quick post to point you in the direction of my latest (ok second ever!) plugin for wordpress. Its called folder2page, you can check out more info at beakersoft.co.uk/folder2page
Its a simple plugin that will allow you to use a directory of images you have on your web space as a simple gallery on page [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick post to point you in the direction of my latest (ok second ever!) plugin for wordpress. Its called folder2page, you can check out more info at <a href="http://www.beakersoft.co.uk/folder2page">beakersoft.co.uk/folder2page</a></p>
<p>Its a simple plugin that will allow you to use a directory of images you have on your web space as a simple gallery on page in your blog. There seemed to be a lot of plugins out there for getting images from flickr and other image hosting services, but not much if you wanted to get at the images your self.</p>
<p>Any comments, suggestions etc please let me know!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=vEo-MwiiEm0:AM7Ivt7PPc8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=vEo-MwiiEm0:AM7Ivt7PPc8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=vEo-MwiiEm0:AM7Ivt7PPc8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=vEo-MwiiEm0:AM7Ivt7PPc8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=vEo-MwiiEm0:AM7Ivt7PPc8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=vEo-MwiiEm0:AM7Ivt7PPc8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=vEo-MwiiEm0:AM7Ivt7PPc8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=vEo-MwiiEm0:AM7Ivt7PPc8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeakersoftBlog/~4/vEo-MwiiEm0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beakersoft.co.uk/2010/02/11/folder2page-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beakersoft.co.uk/2010/02/11/folder2page-plugin/</feedburner:origLink></item>
		<item>
		<title>Spiceworks 4.5 Review</title>
		<link>http://feedproxy.google.com/~r/BeakersoftBlog/~3/m44mH4WL6-Q/</link>
		<comments>http://www.beakersoft.co.uk/2010/01/08/spiceworks-4-5-review/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 19:52:17 +0000</pubDate>
		<dc:creator>beakersoft</dc:creator>
				<category><![CDATA[spiceworks]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://www.beakersoft.co.uk/?p=281</guid>
		<description><![CDATA[My post I did some time ago on Spiceworks has recently got quite a bit of attention, so i have decided to check out the latest version (4.5).
I haven&#8217;t used Spiceworks since version 2, I was quite impressed with it back then and I know the product has developed quite a lot in that time, [...]]]></description>
			<content:encoded><![CDATA[<p>My post I did some time ago on Spiceworks has recently got quite a bit of attention, so i have decided to check out the latest version (4.5).</p>
<p>I haven&#8217;t used Spiceworks since version 2, I was quite impressed with it back then and I know the product has developed quite a lot in that time, so I was hoping it has improved even more. As in the previous post i have done a few timings, and noted what the scanning of the network has managed to find.</p>
<p>This test was completed in a completely different environment than the previous tests, so its not really fair to compare this version with say version 2. Spiceworks was installed to a Dell 1850 server, running windows 2003 with 2gig ram. I scanned 6 subnets in all, containing lots of different devices (pc&#8217;s, phones, routers etc). Clients are mainly Dell optiplex&#8217;s running Win XP, printers mainly HP.</p>
<h2>Test Results</h2>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td width="37%" bgcolor="#e0fafe"></td>
<td width="24%" bgcolor="#e0fafe"><strong>Spiceworks 4.5 </strong></td>
</tr>
<tr>
<td>Total Network Scan Time</td>
<td>4 hours 15 mins</td>
</tr>
<tr>
<td bgcolor="#efefef">Total devices discovered</td>
<td bgcolor="#efefef">446</td>
</tr>
<tr>
<td>Workstations discovered</td>
<td>251</td>
</tr>
<tr>
<td bgcolor="#efefef">Servers discovered</td>
<td bgcolor="#efefef">77</td>
</tr>
<tr>
<td>Printers discovered</td>
<td>26</td>
</tr>
<tr>
<td bgcolor="#efefef">Unknown devices discovered</td>
<td bgcolor="#efefef">32</td>
</tr>
<tr>
<td bgcolor="#efefef">Other devices discovered</td>
<td bgcolor="#efefef">60</td>
</tr>
<tr>
<td>Total Software recognized</td>
<td>2155</td>
</tr>
<tr>
<td bgcolor="#efefef">Applications recognized</td>
<td bgcolor="#efefef">1123</td>
</tr>
<tr>
<td>Services recognized</td>
<td>457</td>
</tr>
<tr>
<td bgcolor="#efefef">Hotfixes recognized</td>
<td bgcolor="#efefef">575</td>
</tr>
<tr>
<td bgcolor="#e0fafe"></td>
<td bgcolor="#e0fafe"></td>
</tr>
</tbody>
</table>
<p></p>
<h2>Test Conclusions</h2>
<p><strong>Speed</strong><br />
The first thing to hit me was the scanning speed, I had given spiceworks a lot more work do to then in the previous tests, but i was still a little disapointed at the time it took to initially scan the network. There was a lot of kit to find and identify, but it took a little longer than I would have thought</p>
<p>That said, the initial scan is a one of event, and subsequent ones once the majority of devices have been found are nice and fast. I&#8217;m not sure if the speed is really that big an issue, I would prefer to sacrifice a bit of scan time to get more accurate results.</p>
<p><strong>Hardware Results<br />
</strong>So, did Spiceworks actually manage to identify all the hardware on the network, and work out what it was. For the most part, yes it did. Unless there was a connectivity problem with the machine, it did manage to work out what it was. I correctly identified all the workstations and servers, and managed to extract out the information on the hardware.</p>
<p>It does tend to class most of the network kit as &#8216;Other Devices&#8217;, i&#8217;m assuming this is because it cant authorise its self on the device, but i&#8217;m not sure, it just seems to see them as http devices. I was going to try and scan a test device, but there is no scanning option to pass a telnet password to a box, even if you could I&#8217;m not convinced it would be able to tell what it was</p>
<p>It did however, manage to recognise all the printer correctly, and in most cases it was reporting back information on the status of the device correctly</p>
<p><strong>Software Result<br />
</strong>This is one area where I found it difficult to tell if Spiceworks was working right or not, as I dont have an up-to-date list of the software on the machines. To try and test it I picked a couple of machines at random and looked at the software on them, it managed in both cases to get pretty close to what was on the actual box. I like the feature of the software list that tells you the oldest and newest versions of things, this would be very handy if you are rolling out some software and want to make sure everything has got the correct version</p>
<p><strong>Interface and Features<br />
</strong>As I have not used Spiceworks since version 2, i&#8217;m not sure what is new this version and what has been in for a while. I do like the time line function, it would be nice if it could update in real time but then you would be scanning your network all the time.</p>
<p>The reporting system seems a lot more customizable, as you can now not only decided what you want to see, but organise the columns on the reports as well, and filter down what you want to see. The export options are pritty standard, but I would have expected to see an xml option along with the others. It is missing some advanced reporting features (grouping, custom fields etc.) and has no support for generating graphs, but those are probably not that important.</p>
<p>The network map is a nice idea, but i&#8217;m not really sure what use it would be, normally you would probably only be interested in this information for your network kit, and Cisco already have some specific tools to do this.</p>
<p><strong>Summing Up<br />
</strong>While the product is not perfect by any means, for a free bit of software you cant really get much better for a small or medium size organisation. The hardware/software inventory is accurate, if a little slow and does seem to struggle with network kit.</p>
<p>The interface is very easy to use, and its easy to customise the dashboard so you can see the information that interests you. The adverts do get in the way a bit sometimes, but you can always pay to get them removed.</p>
<p>All in all this is another very good version, and if your in the market for some network auditing/reporting tools, for the (lack of) price this is one of the best.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=m44mH4WL6-Q:Ih34vZwirdk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=m44mH4WL6-Q:Ih34vZwirdk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=m44mH4WL6-Q:Ih34vZwirdk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=m44mH4WL6-Q:Ih34vZwirdk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=m44mH4WL6-Q:Ih34vZwirdk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=m44mH4WL6-Q:Ih34vZwirdk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=m44mH4WL6-Q:Ih34vZwirdk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=m44mH4WL6-Q:Ih34vZwirdk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeakersoftBlog/~4/m44mH4WL6-Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beakersoft.co.uk/2010/01/08/spiceworks-4-5-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beakersoft.co.uk/2010/01/08/spiceworks-4-5-review/</feedburner:origLink></item>
		<item>
		<title>My First Book Review</title>
		<link>http://feedproxy.google.com/~r/BeakersoftBlog/~3/TNQTc_RyFMo/</link>
		<comments>http://www.beakersoft.co.uk/2009/12/22/my-first-book-review/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 14:05:13 +0000</pubDate>
		<dc:creator>beakersoft</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[SQL Reporting Services]]></category>

		<guid isPermaLink="false">http://www.beakersoft.co.uk/?p=266</guid>
		<description><![CDATA[The good people over at packt publishing recently sent me a copy of Learning SQL Server Reporting Server 2008 Reporting Services by Jayaram Krishnaswamy. So here is my first ever book review. Hope you find it interesting -
SQL reporting services has been part of the SQL Server suite for a few years now, and this [...]]]></description>
			<content:encoded><![CDATA[<p>The good people over at <a href="http://www.packtpub.com">packt publishing</a> recently sent me a copy of<strong> Learning SQL Server Reporting Server 2008 Reporting Services by Jayaram Krishnaswamy. </strong>So here is my first ever book review. Hope you find it interesting -</p>
<p><a href="http://www.packtpub.com/learning-sql-server-2008-reporting-services/book/mid/11011006z007?utm_source=beakersoft.co.uk&#038;utm_medium=affiliate&#038;utm_content=blog&#038;utm_campaign=mdb_002046"><img class="alignleft" src="https://www.packtpub.com/images/100x123/1847196187.png" alt="" width="100" height="123" /></a>SQL reporting services has been part of the SQL Server suite for a few years now, and this book covers the latest version 2008. As stated by the back cover of the book, it is aimed at beginners, but also has plenty of useful information for old hands, with all of the topics covered in the book backed up by code examples and screen shots.</p>
<p>As with most books I have read on any reporting engines, a basic knowledge of SQL server, and the SQL language will always help a great deal when reading the book. Also a couple of the topics hit on using the reporting service from your own applications, so you will need some programing know how to get anything from these chapters.</p>
<p>The book is written in a very easy to read way, and unlike some technical books manages to seems light enough to enjoy reading, but everything is still explained in an accurate and concise manner.</p>
<p>There are 2 sections given over to using the new report Builder (something i have never used before), explaining how it is set out like excising Microsoft office application, and information and examples of all the other new features in this version. The section on using Crystal reports is interesting, and although i found it a little short, it is something i have never seen before in a SQL reporting services book, they never seem to touch on the subject at all.</p>
<p>The chapters at the end of of the book are about programing into/around the reporting engine, I found the one about Progammatically Creating a report particularly interesting, it takes you through all the necessary steps to create your own .rdl, using the XMLTextWritter class. Might not be very interesting if you just want to author reports in the builder, but if you wanted to take it to this level the information is very helpful, with full source code in the book.</p>
<p>As well as all the new features for 2008, all the existing one are covered (images, sub-reports, parametrised reports, datasets, formatting, graphs etc) in good detail, with examples and screen shots available for each topic.</p>
<p>All in all not only enjoyed reading this book, i took quite a bit of useful information out it as well, some of witch i think i would struggle to find in other publications. A good read all round.</p>
<p><a href="http://www.packtpub.com/learning-sql-server-2008-reporting-services/book/mid/11011006z007?utm_source=beakersoft.co.uk&#038;utm_medium=affiliate&#038;utm_content=blog&#038;utm_campaign=mdb_002046">Buy this book from Packt.com now!</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=TNQTc_RyFMo:4CAU2KTdZM8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=TNQTc_RyFMo:4CAU2KTdZM8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=TNQTc_RyFMo:4CAU2KTdZM8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=TNQTc_RyFMo:4CAU2KTdZM8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=TNQTc_RyFMo:4CAU2KTdZM8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=TNQTc_RyFMo:4CAU2KTdZM8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=TNQTc_RyFMo:4CAU2KTdZM8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=TNQTc_RyFMo:4CAU2KTdZM8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeakersoftBlog/~4/TNQTc_RyFMo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beakersoft.co.uk/2009/12/22/my-first-book-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beakersoft.co.uk/2009/12/22/my-first-book-review/</feedburner:origLink></item>
		<item>
		<title>Show/Hide Groups at run time</title>
		<link>http://feedproxy.google.com/~r/BeakersoftBlog/~3/1URetE5JU8o/</link>
		<comments>http://www.beakersoft.co.uk/2009/07/17/showhide-groups-at-run-time/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 18:32:15 +0000</pubDate>
		<dc:creator>beakersoft</dc:creator>
				<category><![CDATA[SQL Reporting Services]]></category>

		<guid isPermaLink="false">http://www.beakersoft.co.uk/?p=228</guid>
		<description><![CDATA[Recently quite a few of our users have been asking if they can show all of the report details at runtime, instead of having to drill down all the groups, opening and closing as they see fit. Well, the answer is yes, and its very easy to implement.
Parameters are you friend
The first thing to do [...]]]></description>
			<content:encoded><![CDATA[<p>Recently quite a few of our users have been asking if they can show all of the report details at runtime, instead of having to drill down all the groups, opening and closing as they see fit. Well, the answer is yes, and its very easy to implement.</p>
<h2><strong>Parameters are you friend</strong></h2>
<p>The first thing to do is create yourself a new parameter in the report, and call it something like <em>par_expand_groups</em>. Give it the following options:</p>
<p><img class="alignnone" title="param options" src="http://www.beakersoft.co.uk/img/ssrs_param_show_group1.jpg" alt="" width="456" height="435" /></p>
<p>Now, you need to make this parameter control weather or not the group is expanded as the report is ran, you do this by putting an expression into the <em>hidden </em>property of the row.</p>
<p>Normally if you have a group, when you run the report it will probably be hidden and the user has the option of showing the details, so the <em>hidden </em>property will be set to true. We are going to set it to the following expression:</p>
<p><em>=IIF(Parameters!par_expand_groups.Value = &#8220;True&#8221;, False, True)</em></p>
<p>This means that if the parameter is set to yes, the details will be shown, if its set to no they will remain hidden. Add this to each level of grouping on your report, and the user now has control over what they see</p>
<h2><strong>Slight Problem with the show/hide icons</strong></h2>
<p>Once you have added this to your report, you might notice a slight problem. If you run the report with the option of showing the group details, the little show/hide icon on the left used to toggle the details will be wrong. It will be showing the &#8216;+&#8217; even though the details are already showing, and if you press it to hide the details it will change to a &#8216;-&#8217;. They are the wrong way round!</p>
<p><img class="alignnone" title="Incorrect Icons" src="http://www.beakersoft.co.uk/img/report%5Ficons.gif" alt="" width="307" height="114" /></p>
<p>Obviously, this is going to confuse your users, and needs sorting. Well, thanks to a tip from <a href="http://www.lukehayler.com/2009/07/custom-visibility-toggling-in-ssrs">http://www.lukehayler.com/2009/07/custom-visibility-toggling-in-ssrs</a> its easy.</p>
<p>All you need to do is open up the properties of the text box that is the trigger for the show hide, and go into the <em>Visibility </em>tab. At the bottom is an <em> </em>option to set an expression for the toggle image. just enter:</p>
<p><em>=IIF(Parameters!par_expand_groups.Value = &#8220;True&#8221;, True, False)</em></p>
<p>As before, they is just looking at your parameter and setting the value of the toggle image. Now, when you run the report with the option to display the details, they icons for toggling the details should be correct.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=1URetE5JU8o:TA84KgTOvZQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=1URetE5JU8o:TA84KgTOvZQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=1URetE5JU8o:TA84KgTOvZQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=1URetE5JU8o:TA84KgTOvZQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=1URetE5JU8o:TA84KgTOvZQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=1URetE5JU8o:TA84KgTOvZQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=1URetE5JU8o:TA84KgTOvZQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=1URetE5JU8o:TA84KgTOvZQ:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeakersoftBlog/~4/1URetE5JU8o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beakersoft.co.uk/2009/07/17/showhide-groups-at-run-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beakersoft.co.uk/2009/07/17/showhide-groups-at-run-time/</feedburner:origLink></item>
		<item>
		<title>WordSlice – My First WordPress plugin</title>
		<link>http://feedproxy.google.com/~r/BeakersoftBlog/~3/HpYuRIG5XXg/</link>
		<comments>http://www.beakersoft.co.uk/2009/06/15/wordslice-my-first-wordpress-plugin/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 22:00:53 +0000</pubDate>
		<dc:creator>beakersoft</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[programing]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.beakersoft.co.uk/?p=220</guid>
		<description><![CDATA[
I while ago I wrote an artical (here)about the new Web slice feature in IE8. A few people have asked about a plugin for WordPress, and the other night I finally decided to have a go.
Head over to http://www.beakersoft.co.uk/wordslice for all the info, or to http://wordpress.org/extend/plugins/wordslice/ for the download and the install notes.
Hopefully in the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Webslice header" src="http://www.beakersoft.co.uk/img/wordpress_webslice-header.jpg" alt="" width="450" height="50" /></p>
<p>I while ago I wrote an artical (<a href="http://www.beakersoft.co.uk/2008/03/24/webslices-in-wordpress/">here</a>)about the new Web slice feature in IE8. A few people have asked about a plugin for WordPress, and the other night I finally decided to have a go.</p>
<p>Head over to <a href="http://www.beakersoft.co.uk/wordslice">http://www.beakersoft.co.uk/wordslice</a> for all the info, or to <a href="http://wordpress.org/extend/plugins/wordslice/">http://wordpress.org/extend/plugins/wordslice/</a> for the download and the install notes.</p>
<p>Hopefully in the not to distant future i will be add some extra features to it (its kind of limited at the moment) so stay tuned!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=HpYuRIG5XXg:sqCi3iPMmzw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=HpYuRIG5XXg:sqCi3iPMmzw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=HpYuRIG5XXg:sqCi3iPMmzw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=HpYuRIG5XXg:sqCi3iPMmzw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=HpYuRIG5XXg:sqCi3iPMmzw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=HpYuRIG5XXg:sqCi3iPMmzw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=HpYuRIG5XXg:sqCi3iPMmzw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=HpYuRIG5XXg:sqCi3iPMmzw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeakersoftBlog/~4/HpYuRIG5XXg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beakersoft.co.uk/2009/06/15/wordslice-my-first-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beakersoft.co.uk/2009/06/15/wordslice-my-first-wordpress-plugin/</feedburner:origLink></item>
		<item>
		<title>Tracking Down Conficker</title>
		<link>http://feedproxy.google.com/~r/BeakersoftBlog/~3/kxzwTxgT1iw/</link>
		<comments>http://www.beakersoft.co.uk/2009/04/14/tracking-down-conficker/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 20:35:40 +0000</pubDate>
		<dc:creator>beakersoft</dc:creator>
				<category><![CDATA[IT Info]]></category>
		<category><![CDATA[conficker]]></category>
		<category><![CDATA[Virus]]></category>

		<guid isPermaLink="false">http://www.beakersoft.co.uk/?p=209</guid>
		<description><![CDATA[
I have recently had the unfortunate experience of having to try and clean up a network that has been hit by the conficker virus.It is a pain to get of and caused us a lot of problems, this is a quick guide to how we went about cleaning it up. This might not work exactly [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Combat Conficker" src="http://www.beakersoft.co.uk/img/combat_conficker.jpg" alt="" width="450" height="102" /></p>
<p>I have recently had the unfortunate experience of having to try and clean up a network that has been hit by the conficker virus.It is a pain to get of and caused us a lot of problems, this is a quick guide to how we went about cleaning it up. This might not work exactly the same for you but it might give you some pointers.</p>
<h2>Accounts locking out</h2>
<p>This was the probably the biggest pain for us. One of the way the virus spreads it&#8217;s self is on smb shares, to it tries to access these shares by using accounts it finds on the active directory/local machine. It tries to brute force password crack the accounts, and if you have an account lockout policy in place (i would imagine most places do) then the accounts it finds will become locked very quickly.</p>
<p>To get round this rather large issue temporally we got a script that we ran every minute or so on each of the active directory boxes, it basically just goes through the entire domain and unlocks all the accounts. We ran it in the task scheduler as two separate users in case one was locked when the task ran.</p>
<p>Obviously this isn&#8217;t a long term solution and should be removed once you are reasonably happy its no longer locking accounts.</p>
<p>You can download the script <a href="http://www.beakersoft.co.uk/downloads/unlock_accounts.vbs">here</a></p>
<h2>Finding The Infections</h2>
<p>There are quite a few tools kicking around to find the infections, that all work with various degrees of success, the main tool we have used is one from eEye digital security, you can get it from <a href="http://www.eeye.com/html/downloads/other/ConfickerScanner.html">http://www.eeye.com/html/downloads/other/ConfickerScanner.html</a>. This one will scan a subnet and tell you what is infected and what is vulnerable (un-patched).</p>
<p>You can also use a beta version of <a href="http://nmap.org/">nmap</a>, this one also tells you what it thinks is infected and what is vulnerable to the virus, info about it at <a href="http://www.skullsecurity.org/blog/?p=209">http://www.skullsecurity.org/blog/?p=209</a></p>
<p>We have also used an in house tool that logs all the account lock outs into a database to track down the actual machines that are locking users out, this has been the most pro-active way of finding infected machines. You can read more about the system we use in a previous post <a href="http://www.beakersoft.co.uk/2008/02/07/where-has-that-account-been-locked-out/">here</a></p>
<p>On the actual infected machines there are various pointers, quite a few of the services get stopped (these include server, workstation,bits,windows update), the machine can end up being completely unresponsive due to the virus hammering the processor/memory.</p>
<p>Also on machines that aren&#8217;t necessarily infected you might get lots of new scheduled tasks Called <strong>AT#1</strong>, other infected machines on network will have probably created these. Most of the clean up tools don&#8217;t seem to delete them you have to kill them manually.</p>
<h2>Cleaning the Infections</h2>
<p>Once you have identified the machines infected you will need to clean them. In theory the anti virus software should just be finding it and putting the virus into quarantine, but in a lot of cases that&#8217;s not the case. When we found an infected machine this is the process we have used.</p>
<ul>
<li> First kill of the memory from memory. We have been using the Symantec  W32.Downadup Removal tool available <a href="http://www.symantec.com/security_response/writeup.jsp?docid=2009-011316-0247-99">here</a>. Re-name the app to something random so the virus doesn&#8217;t just kill it of, then run it. Once its got passed processing the apps in memory, cancel it. It will complain its not checked all the files, but it should kill the process out of memory and remove entries to it in the registry so it wont start on next reboot. It will ask you to reboot to clean up everything else but dont yet.</li>
<li>Before rebooting make sure you have got the patch on, download it from <a href="http://www.microsoft.com/technet/security/Bulletin/MS08-067.mspx">here</a>. Note that it appears you need to install at least service pack 2 on xp, 4 on 2000 and 1 on 2003 for the patch to install. Once you are patched reboot the machine</li>
<li>When the machine comes back, hopefully the virus wont have loaded back into memory. Update your virus software with the latest sig files (or install some if god forbid there is none installed!), then run a  full scan of your machine. This should find the files, and Quarantine them, allowing you to  delete them.</li>
<li>Look in the scheduled tasks and remove any that are called At#1 etc.</li>
</ul>
<p>Hopefully now, even if the machine gets the virus again the anti virus software will pick it up and stop it doing any harm.</p>
<p>If anyone else has anymore info for detecting/cleaning this beast up feel free to email me or leave a comment and i will update this post</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=kxzwTxgT1iw:eurfyLBxmLQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=kxzwTxgT1iw:eurfyLBxmLQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=kxzwTxgT1iw:eurfyLBxmLQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=kxzwTxgT1iw:eurfyLBxmLQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=kxzwTxgT1iw:eurfyLBxmLQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=kxzwTxgT1iw:eurfyLBxmLQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BeakersoftBlog?a=kxzwTxgT1iw:eurfyLBxmLQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/BeakersoftBlog?i=kxzwTxgT1iw:eurfyLBxmLQ:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeakersoftBlog/~4/kxzwTxgT1iw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beakersoft.co.uk/2009/04/14/tracking-down-conficker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.beakersoft.co.uk/2009/04/14/tracking-down-conficker/</feedburner:origLink></item>
		<item>
		<title>ASP.Net not seeing an SQL syntax error</title>
		<link>http://feedproxy.google.com/~r/BeakersoftBlog/~3/1vakK31LCEw/</link>
		<comments>http://www.beakersoft.co.uk/2009/01/25/aspnet-not-seeing-an-sql-syntax-error/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 17:10:15 +0000</pubDate>
		<dc:creator>beakersoft</dc:creator>
				<category><![CDATA[dotnet]]></category>

		<guid isPermaLink="false">http://www.beakersoft.co.uk/?p=201</guid>
		<description><![CDATA[I have been doing some work on an asp.net project that connects to a db with full text indexing enabled on a text field. We are building the app up so that users can run advanced searches using the info in this filed.
While debugging the app, i came across a problem that i thought i [...]]]></description>
			<content:encoded><![CDATA[<p>I have been doing some work on an asp.net project that connects to a db with full text indexing enabled on a text field. We are building the app up so that users can run advanced searches using the info in this filed.</p>
<p>While debugging the app, i came across a problem that i thought i was catching and trapping, but my app seamed to be ignoreing the problem and carrying on running so i was getting some strange results.</p>
<p>I was running some sql similar to this:</p>
<p><em>SELECT Count(title) as rec_count FROM tbl_text WHERE tbl_text.Title=&#8217;WXXX&#8217;<br />
AND Contains(tbl_text.page_text, &#8216;Tax Evasion&#8217; AND &#8216;Joe Blogs&#8217;)</em></p>
<p>In the sql i had constructed i just had an apostrophe out of place (i know rookie mistake), so the sql was failing to run. Problem was the try/catch loop it was in did&#8217;t seem to mind! I got out the sql and ran it in sql advantage, and sure enough i got this error:</p>
<p><em>Server: Msg 7631, Level 15, State 1, Line 1<br />
Syntax error occurred near &#8216;</em><em>Evasion</em><em>&#8216;. Expected &#8221;&#8221;&#8217; in search condition &#8216;</em><em>Tax Evasion&#8217; AND &#8216;Joe Blogs&#8217;</em><em>.</em></p>
<p>So sql advantage managed to trap the error, but the dotnet framework for some reason took no notice of it and carried on running. I got round the problem being checking my record set had rows before trying to use it, but i have no idea why an execption was not rasied in the first place. Anyone any ideas?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=ScMfs9uc"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?i=ScMfs9uc" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=MF75dA6o"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?i=MF75dA6o" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=UwVXO9RY"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?d=43" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=KkVVPX63"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?d=52" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=waBA0o81"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?i=waBA0o81" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeakersoftBlog/~4/1vakK31LCEw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beakersoft.co.uk/2009/01/25/aspnet-not-seeing-an-sql-syntax-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beakersoft.co.uk/2009/01/25/aspnet-not-seeing-an-sql-syntax-error/</feedburner:origLink></item>
		<item>
		<title>Branching Out</title>
		<link>http://feedproxy.google.com/~r/BeakersoftBlog/~3/6wlR2HnMNyY/</link>
		<comments>http://www.beakersoft.co.uk/2008/12/23/branching-out/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 21:16:08 +0000</pubDate>
		<dc:creator>beakersoft</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.beakersoft.co.uk/?p=199</guid>
		<description><![CDATA[
Me and a couple of the guys i work with a decided to have a good at writing our own software, and making it available online. We are going under the (rather good i think) name of we3soft, and you can get at our website by visiting www.we3soft.com
We have got quite a few ideas/applications in [...]]]></description>
			<content:encoded><![CDATA[<div class="moz-signature">
<p>Me and a couple of the guys i work with a decided to have a good at writing our own software, and making it available online. We are going under the (rather good i think) name of we3soft, and you can get at our website by visiting <a href="http://www.we3soft.com">www.we3soft.com</a></p>
<p>We have got quite a few ideas/applications in the pipeline, and hope to start working with some of our local businesses on some of there projects. At the mo we have only one application (and its in beta) avaialble for download on the website. It goes by the name of SwitchWatch.</p>
<p>Basiclly, you can use it to tell you what ports in cisco switches have been unused for a period of time you specifically, this will allow you to tidy up the rats next of cables that lives in your comms room. At the moment the application is still in beta, and will only report on the first 5 unused ports per switch. In order to encourage people to test the app, we are giving away 20 free licences once it comes out of beta.</p>
<p>All you have to do to quailfy for a free copy is head over to <a href="http://www.we3soft.com/switchwatch">www.we3soft.com/switchwatch</a>, download the app and tell us what you think about it in our <a href="http://www.we3soft.com/forum/index.php/board,2.0.html">forum</a>. Let us know if it worked fine, if you had any problems with it or if you have any feature requests. If your are in the first 20 to give us your comment we will send you a free licnece key as soon as we come out of beta, so head over there now!!</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=tAYDSLN5"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?i=tAYDSLN5" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=i4DouRQL"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?i=i4DouRQL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=hWT00uh2"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?d=43" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=4TiiY0pm"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?d=52" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=VcthBtMU"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?i=VcthBtMU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeakersoftBlog/~4/6wlR2HnMNyY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beakersoft.co.uk/2008/12/23/branching-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beakersoft.co.uk/2008/12/23/branching-out/</feedburner:origLink></item>
		<item>
		<title>Report Services Printer Control Problem</title>
		<link>http://feedproxy.google.com/~r/BeakersoftBlog/~3/nrxqMiFyTkA/</link>
		<comments>http://www.beakersoft.co.uk/2008/12/23/report-services-printer-control-problem/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 20:38:28 +0000</pubDate>
		<dc:creator>beakersoft</dc:creator>
				<category><![CDATA[SQL Reporting Services]]></category>

		<guid isPermaLink="false">http://www.beakersoft.co.uk/?p=195</guid>
		<description><![CDATA[Not sure how many of you have hit this, but recently we have had a problem with users not being able to print out reports from the browser. When they hit the print icon after runnig a report, they are given the message
&#8216;Cannot load client print control&#8217;
Turns out that one of the patches Microsoft issue [...]]]></description>
			<content:encoded><![CDATA[<p>Not sure how many of you have hit this, but recently we have had a problem with users not being able to print out reports from the browser. When they hit the print icon after runnig a report, they are given the message</p>
<p>&#8216;<em>Cannot load client print control&#8217;</em></p>
<p>Turns out that one of the patches Microsoft issue out (on a seemingly never ending basis) breaks(well, blocks) the activex. The patch in question is the ActiveX killbit one (i cant remember the kb number), there appears to be a problem with the old version of the print control activex, and when the latest patch is applied to the clients it stops the print control working.</p>
<p>The way to get it working again is basilcly to patch your reports server. This is something i am always a bit cautious of doing, as in the past i have had problems (service pack one removed the ability to do a multi select parameter) but this time i had a virtual server i could snapshot, patch then test.</p>
<p>To get it working again, i installed first of all SQL 2005 service pack 2 (<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=d07219b2-1e23-49c8-8f0c-63fa18f26d3a&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=d07219b2-1e23-49c8-8f0c-63fa18f26d3a&amp;displaylang=en</a>), then the latest hotfix rollup (<a href="http://support.microsoft.com/kb/956854">http://support.microsoft.com/kb/956854</a>). On a couple of the client machines this seemed to fix the problem without having to re-download the control, but on others we had to remove the control first, then re-install it and it worked a treat</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=K6xAmlFj"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?i=K6xAmlFj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=jeFFvNvs"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?i=jeFFvNvs" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=qQIV1H1E"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?d=43" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=3EZ1MYvu"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?d=52" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=5weI9h1p"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?i=5weI9h1p" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeakersoftBlog/~4/nrxqMiFyTkA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beakersoft.co.uk/2008/12/23/report-services-printer-control-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beakersoft.co.uk/2008/12/23/report-services-printer-control-problem/</feedburner:origLink></item>
		<item>
		<title>Creating a Check for update Routine</title>
		<link>http://feedproxy.google.com/~r/BeakersoftBlog/~3/F4hbX0JSbV8/</link>
		<comments>http://www.beakersoft.co.uk/2008/10/07/creating-a-check-for-update-routine/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 18:07:32 +0000</pubDate>
		<dc:creator>beakersoft</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Visual Basic]]></category>

		<guid isPermaLink="false">http://www.beakersoft.co.uk/?p=178</guid>
		<description><![CDATA[First off, i apologise for not blogging for a while, ive had quite a few other projects on over the summer, plus holidays so I&#8217;ve not really had time. Hopefully now I should be able to get back into it with a bit more frequency.
Anyway on to the topic of this post. Most applications nowadays [...]]]></description>
			<content:encoded><![CDATA[<p>First off, i apologise for not blogging for a while, ive had quite a few other projects on over the summer, plus holidays so I&#8217;ve not really had time. Hopefully now I should be able to get back into it with a bit more frequency.</p>
<p>Anyway on to the topic of this post. Most applications nowadays will automaticly go onto the web and check to see if there is a new version, and if there is offer to download/install/visit page etc. I was looking for a simple way to do this using the dotnet framework and Visual Basic.Net, and came across the <em>System.Net</em> class.</p>
<p>This class is extremely powerful, as it contains functions for network communication.  The main one we will use here is the <em>System.net.WebClient</em>. We are going to use this to pull a file down of our web server that will give us information about the latest version of our application.</p>
<h2>Information File</h2>
<p>So first of all, create a text file, we are going to look on our web server for this file and read information. In the file we will have the following info: App name, version and download location, delimited by a pipe (|) character. You could also add extra things like new features, release date etc to this file. The example file will look something like this.</p>
<p>1.1.0|TestApp|www.beakersoft.co.uk/downloads/</p>
<p>Once you have this file, save it as something like TestApp_Ver_Control.txt, and upload it to your web server.</p>
<h2>Downloading the Version information</h2>
<p>Now the file containing version information is on your web server, we can write a function in vb that will open the file up, get the information contained in it and use that information to decided if our application is the latest version or not. This is where the <em>System.net.WebClient</em> comes in. First of declare a couple of variables. One is the <em>WebClient</em>, one is the url of the file you have just uploaded and a string array to hold the details of the file.</p>
<pre class="vb.net:nocontrols:nogutter">Dim myWebClient As New Net.WebClient
Dim RemoteUri As String = "www.beakersoft.co.uk/TestApp_Ver_Control.txt"
Dim strFileInfo()As String</pre>
<p>Now, we can go and get the file of the web server, using the webclient and read the contents into a string. Then we can split the content of the string up using the pipe char, and there you have all the info you need to check the version.</p>
<p>All the code is wrapped up in a <em>try/catch </em>block to make sure we dont get any unhandled errors such as when there is no net connection, file missing etc.</p>
<pre class="vb.net:nocontrols:nogutter">	Try
	Dim file As New System.IO.StreamReader( _
                    myWebClient.OpenRead(RemoteUri))
        Dim Contents As String = file.ReadToEnd()

	'Split up the sections of the text based on the pipe (|) delimiator
	strFileInfo = Split(Contents, "|")

	'see if we need a new version
	If strFileInfo(0) &gt; Application.ProductVersion Then
		'if we have a new version, make sure the app name matchs from the file
                If strFileInfo(1) = application.ProductName Then

			'we have a new version! So throw up a message, set a flag ect

                End If
	End If

	'close the file stream and web client
	myWebClient = Nothing
	file.Close()

        Catch ex As Exception
	If InStr(ex.Message, "(404)") Then
		'404 means file not found on webserver
                Msgbox("Problem Finding the update information file - " &amp; vbNewLine &amp; ex.Message &amp; _
                        vbNewLine &amp; "Please contact the appliaction vendor")
	Else
                Msgbox("Problem getting update information - " &amp; vbNewLine &amp; ex.Message &amp; _
                        vbNewLine &amp; "Check your internet settings and try again")
	End If
End Try</pre>
<p>And thats pritty much it! This is a very bare bones way of doing it, and you probably want to add in support for using a proxy (you can do that using the <em>System.Net.WebRequest.DefaultWebProxy </em>class, and pass login credentials to <em>myWebClient.Credentials </em>using <em>Net.NetworkCredential</em> ) but as a very basic form this should work.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=krFkUWN2"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?i=krFkUWN2" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=JpBlThzK"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?i=JpBlThzK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=JJ8wyAfi"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?d=43" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=Ttj6wv7n"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?d=52" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/BeakersoftBlog?a=LMieDmws"><img src="http://feeds.feedburner.com/~f/BeakersoftBlog?i=LMieDmws" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BeakersoftBlog/~4/F4hbX0JSbV8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beakersoft.co.uk/2008/10/07/creating-a-check-for-update-routine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.beakersoft.co.uk/2008/10/07/creating-a-check-for-update-routine/</feedburner:origLink></item>
	</channel>
</rss>
