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

<channel>
	<title>Storm Development Blog</title>
	<atom:link href="http://demo.storm-consultancy.com/blog/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://demo.storm-consultancy.com/blog/development</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 26 Feb 2010 13:36:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How To: Disable the Cache in Firefox</title>
		<link>http://demo.storm-consultancy.com/blog/development/tips-tricks/how-to-disable-the-cache-in-firefox/</link>
		<comments>http://demo.storm-consultancy.com/blog/development/tips-tricks/how-to-disable-the-cache-in-firefox/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 08:59:37 +0000</pubDate>
		<dc:creator>Adam Pope</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.storm-consultancy.com/blog/?p=311</guid>
		<description><![CDATA[Web developer? Want to turn off or disable the cache in Firefox for testing?  Well, by default you can't - but there is an easy solution!]]></description>
			<content:encoded><![CDATA[<p>Web developer? Want to turn off or disable the cache in Firefox for testing?  Well, by default you can&#8217;t &#8211; but there is an easy solution!</p>
<p><span id="more-311"></span>Grab a copy of the excellent <a href="https://addons.mozilla.org/en-US/firefox/addon/60" target="_blank">Web Developer Toolbar</a> (if you don&#8217;t have it already &#8211; <a href="http://www.storm-consultancy.com/blog/internet-news/top-web-development-firefox-extensions/">reviewed here</a>) extension for <a href="http://www.mozilla.com/en-US/firefox/personal.html">Firefox</a>.  On the far left-hand side you will find the &#8216;Disable&#8217; menu.  The top option will be &#8216;Disable Cache&#8217;.  Tick that option and away you go &#8211; cache turned off!</p>


<div class="taggington"><p><!--<img src="/blog/wp-content/themes/stormblog/images/tag.gif" alt="tag"/>&nbsp; -->Tagged in: &nbsp;<a href="http://demo.storm-consultancy.com/blog/development/tag/firefox/" rel="tag">Firefox</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/plugins/" rel="tag">Plugins</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/web-development/" rel="tag">Web Development</a></p></div><div class="relatedpostplugin">
<h3>You may also be interested in...</h3>
<div class="relatedlinks">
<a href="http://demo.storm-consultancy.com/blog/development/tools-plugins/top-web-development-firefox-extensions/" rel="bookmark">Top Web Development Firefox Extensions</a><!-- (8.97974)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/tools-plugins/top-web-browsing-firefox-extensions/" rel="bookmark">Top Web Browsing Firefox Extensions</a><!-- (7.87506)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/news/netcraft-toolbar-for-firefox-3-released/" rel="bookmark">Netcraft Toolbar for Firefox 3 Released</a><!-- (6.88349)--></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://demo.storm-consultancy.com/blog/development/tips-tricks/how-to-disable-the-cache-in-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pstopdffilter/pstocupsraster failed with err number -31000</title>
		<link>http://demo.storm-consultancy.com/blog/development/tips-tricks/pstopdffilterpstocupsraster-failed-with-err-number-31000/</link>
		<comments>http://demo.storm-consultancy.com/blog/development/tips-tricks/pstopdffilterpstocupsraster-failed-with-err-number-31000/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 14:26:12 +0000</pubDate>
		<dc:creator>Adam Pope</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Parallels]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.storm-consultancy.com/blog/?p=308</guid>
		<description><![CDATA[Trying to print from Windows using Parallels 4.0 under Mac OS X Snow Leopard and getting the infuriating and useless error message &#8220;pstopdffilter/pstocupsraster failed with err number -31000&#8243;?

I spent a fair while Googling for a solution to this before stumbling across the answer: turn your printer off and back on.   That&#8217;s it.  [...]]]></description>
			<content:encoded><![CDATA[<p>Trying to print from Windows using Parallels 4.0 under Mac OS X Snow Leopard and getting the infuriating and useless error message &#8220;pstopdffilter/pstocupsraster failed with err number -31000&#8243;?<br />
<span id="more-308"></span><br />
I spent a fair while Googling for a solution to this before stumbling across the answer: <strong>turn your printer off and back on</strong>.   That&#8217;s it.  No reinstalling drivers, adding or removing printers or playing with settings &#8211; just a good old fashioned power cycle.  It&#8217;s nice to know some things never change <img src='http://demo.storm-consultancy.com/blog/development/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Hat tip to <a href="http://www.wwco.com/~wls/blog/2009/08/12/printing-in-parallels/">Walt-O-Matic</a> for the answer.</p>
<p>I was printing from Microsoft Office Word, via a networked HP C4480 printer on Windows Server 2008 via an Airport Extreme.</p>


<div class="taggington"><p><!--<img src="/blog/wp-content/themes/stormblog/images/tag.gif" alt="tag"/>&nbsp; -->Tagged in: &nbsp;<a href="http://demo.storm-consultancy.com/blog/development/tag/mac/" rel="tag">Mac</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/parallels/" rel="tag">Parallels</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/windows/" rel="tag">Windows</a></p></div><div class="relatedpostplugin">
<h3>You may also be interested in...</h3>
<div class="relatedlinks">
<a href="http://demo.storm-consultancy.com/blog/development/random-bits/microsoft-action-pack-subscription-contents-maps/" rel="bookmark">Microsoft Action Pack Subscription (MAPS...</a><!-- (3.59816)--></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://demo.storm-consultancy.com/blog/development/tips-tricks/pstopdffilterpstocupsraster-failed-with-err-number-31000/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Classic Programming Quotes</title>
		<link>http://demo.storm-consultancy.com/blog/development/random-bits/classic-programming-quotes/</link>
		<comments>http://demo.storm-consultancy.com/blog/development/random-bits/classic-programming-quotes/#comments</comments>
		<pubDate>Thu, 14 May 2009 21:28:06 +0000</pubDate>
		<dc:creator>Adam Pope</dc:creator>
				<category><![CDATA[Random Bits]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.storm-consultancy.com/blog/?p=243</guid>
		<description><![CDATA[A selection of our favourite, classic programming quotes from the some of the industries biggest names.
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil
- C. A. R. Hoare

Walking on water and developing software from a specification are easy if both are frozen
- Edward V [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">A selection of our favourite, classic programming quotes from the some of the industries biggest names.</p>
<p style="text-align: left;"><span id="more-243"></span>We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil<br />
<em>- C. A. R. Hoare<br />
</em></p>
<p>Walking on water and developing software from a specification are easy if both are frozen<br />
<em>- Edward V Berard<br />
</em></p>
<p>It always takes longer than you expect, even when you take into account Hofstadter&#8217;s Law.<br />
<em>- Hofstadter&#8217;s Law<br />
</em></p>
<p>Some people, when confronted with a problem, think &#8220;I know, I’ll use regular expressions.&#8221; Now they have two problems<br />
<em>- Jamie Zawinski<br />
</em></p>
<p>Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.<br />
<em>- Brian Kernighan<br />
</em></p>
<p>Measuring programming progress by   lines of code is like measuring   aircraft building progress by weight.<br />
<em>- Bill Gates</em></p>
<p>PHP is a minor evil perpetrated and created by incompetent amateurs, whereas Perl is a great and insidious evil, perpetrated by skilled but perverted professionals.<br />
<em>- Jon Ribbens</em></p>
<p>On two occasions I have been asked, &#8216;Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?&#8217; I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.&#8221;<br />
<em>- Charles Babbage</em></p>
<p>Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.<br />
<em>- Rick Osborne</em></p>
<p>Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.<br />
<em>- Rich Cook</em></p>
<p>I don&#8217;t care if it works on your machine!  We are not shipping your machine!<br />
<em>- Ovidiu Platon</em></p>
<p>I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone.<br />
<em>- Bjarne Stroustrup</em></p>
<p>A computer lets you make more mistakes faster than any other invention in human   history, with the possible exceptions of handguns and tequila.<br />
<em>- Mitch Ratcliffe</em></p>
<p>If debugging is the process of removing software bugs, then programming must be the process of putting them in.<br />
<em>- E. W. Dijkstra</em></p>
<p>It is practically impossible to teach   good programming style to students   that have had prior exposure to BASIC.   As potential programmers, they are   mentally mutilated beyond hope of   regeneration.<br />
<em>- E. W. Dijkstra</em></p>
<p>In theory, theory and practice are the same. In practice, they&#8217;re not.<br />
<em>- Yoggi Berra<br />
</em></p>
<p>Two things are infinite: the universe and human stupidity; and I&#8217;m not sure about the universe.<br />
<em>- Albert Einstein</em></p>
<p>Perl &#8211; The only language that looks the same before and after RSA encryption.<br />
<em>- Keith Bostic</em></p>
<p>I love deadlines. I like the whooshing sound they make as they fly by.<br />
<em>- Douglas Adams</em></p>
<p>Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all genders<br />
<em>- Unknown</em></p>
<p>XML is like violence &#8211; if it doesn&#8217;t solve your problems, you are not using enough of it.<br />
<em>- Unknown</em></p>
<p>Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary.  No such faith comforts the software engineer.<br />
<em>- Fred Brooks</em></p>
<p><em>Do you know any other classics?  Please share them with us in the comments, we&#8217;d love to hear them! If you enoyed this post, please consider sharing it with your friends on Digg, Twitter, Facebook or Delicious!  Thanks for reading!</em></p>
<p><a title="Storm Consultancy on Twitter" href="http://twitter.com/stormuk">Follow Storm on Twitter</a> | <a title="Storm Consultancy on Facebook" href="http://www.facebook.com/pages/Storm-Consultancy/84297030875">Become a Fan on Facebook</a></p>


<div class="taggington"><p><!--<img src="/blog/wp-content/themes/stormblog/images/tag.gif" alt="tag"/>&nbsp; -->Tagged in: &nbsp;<a href="http://demo.storm-consultancy.com/blog/development/tag/funny/" rel="tag">Funny</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/programming/" rel="tag">Programming</a></p></div><div class="relatedpostplugin">
<h3>You may also be interested in...</h3>
<div class="relatedlinks">
<a href="http://demo.storm-consultancy.com/blog/development/code-snippets/perl-print-internal-server-errors-to-the-browser/" rel="bookmark">Perl: Print Internal Server Errors to th...</a><!-- (3.56757)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/tutorials/perl-basic-unit-testing/" rel="bookmark">Perl: Basic Unit Testing</a><!-- (3.00295)--></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://demo.storm-consultancy.com/blog/development/random-bits/classic-programming-quotes/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>Include Today in the Default Google Analytics Date Range</title>
		<link>http://demo.storm-consultancy.com/blog/development/tools-plugins/include-today-default-google-analytics-date-range/</link>
		<comments>http://demo.storm-consultancy.com/blog/development/tools-plugins/include-today-default-google-analytics-date-range/#comments</comments>
		<pubDate>Thu, 14 May 2009 13:03:58 +0000</pubDate>
		<dc:creator>Adam Pope</dc:creator>
				<category><![CDATA[Tools & Plugins]]></category>
		<category><![CDATA[Analytics]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Greasemonkey]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.storm-consultancy.com/blog/?p=227</guid>
		<description><![CDATA[<a rel="attachment wp-att-362" href="http://demo.storm-consultancy.com/blog/development/tools-plugins/include-today-default-google-analytics-date-range/attachment/screen-shot-2010-01-25-at-20-00-38-2/"><img class="alignleft size-full wp-image-362" title="Google Analytics" src="http://demo.storm-consultancy.com/blog/development/wp-content/uploads/2009/05/Screen-shot-2010-01-25-at-20.00.381.png" alt="Google Analytics" width="199" height="40" /></a>By default, Google Analytics shows you the statistics for a 30 day period up to the previous complete day.  For example, today is the 14th of May and Analytics is showing me stats for 14th April -&#62; 13th May.  Now, I don't know about you, but I'm a bit of a stats junky.  I like to know what's going on.  As a result, the first thing I do when I load up Google Analytics, is to open the date range picker and change it so that today's stats are included.]]></description>
			<content:encoded><![CDATA[<p>By default, Google Analytics shows you the statistics for a 30 day period up to the previous complete day.  For example, today is the 14th of May and Analytics is showing me stats for 14th April -&gt; 13th May.  Now, I don&#8217;t know about you, but I&#8217;m a bit of a stats junky.  I like to know what&#8217;s going on.  As a result, the first thing I do when I load up Google Analytics, is to open the date range picker and change it so that today&#8217;s stats are included.  This is a somewhat tiresome and repetitive task.  Currently, Google offers no way to set a custom date range, so I have developed a <a href="https://addons.mozilla.org/en-US/firefox/addon/748">Greasemonkey</a> script to automatically change the date range to include today.</p>
<p><span id="more-227"></span></p>
<p>The script will run when you enter a Google Analytics report and redirect you to the new date range, provided no custom date range has been selected.  This is achieved by appending the pdr querystring parameter to the URL.  Here&#8217;s the code:</p>
<pre class="brush: js">// ==UserScript==
// @name           Google Analytics - Include Today
// @author      Storm Consultancy
// @description    Include today in Google Analytic's default date
// @include        https://www.google.com/analytics/reporting*
// ==/UserScript==

// Function to add days to a date, use negative number to subtract
function addDays(myDate,days) {
  return new Date(myDate.getTime() + days*24*60*60*1000);
}

// Redirect the user to the new URL
function Redirect(newDateRange){
    //Only inject the new param is it's not in the querystring already 
    if(window.location.href.indexOf('&amp;pdr') &lt; 0){
        window.location.href += '&amp;pdr=' + newDateRange;
    }
    else if(document.referrer.indexOf('google.com/analytics/settings/') >= 0){
	// If the referrer is the main page, then it already sets the date
	// range we dont want. so we need to replace it
	var url = window.location.href.replace(/pdr=[0-9]{8}\-[0-9]{8}/,
                                        'pdr=' + newDateRange)
	window.location.href = url;
    }
}

// Build an array of the date components, formatted for the querystring
function BuildDates(date){
    var array = new Array();
    array['day'] = (date.getDate() &lt; 10) ?
                        '0' + date.getDate().toString() :
                        date.getDate().toString();

    array['month'] = (date.getMonth() &lt; 9) ?
                        '0' + (date.getMonth()+1).toString() :
                        (date.getMonth()+1).toString();

    array['year'] = date.getFullYear().toString();
    return array;
}

var dateToday = new Date();
var today = BuildDates(dateToday);
var past  = BuildDates(addDays(dateToday, -30));

var dateRange = past['year'] + past['month'] + past['day'] + '-' +
                  today['year'] + today['month'] + today['day']; 

Redirect(dateRange);
</pre>
<p>You can download the user script from here: <a href="http://www.storm-consultancy.com/blog/tools/google_analytics_date_range.user.js">google_analytics_date_range.user.js</a></p>


<div class="taggington"><p><!--<img src="/blog/wp-content/themes/stormblog/images/tag.gif" alt="tag"/>&nbsp; -->Tagged in: &nbsp;<a href="http://demo.storm-consultancy.com/blog/development/tag/analytics/" rel="tag">Analytics</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/google/" rel="tag">Google</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/greasemonkey/" rel="tag">Greasemonkey</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/javascript/" rel="tag">JavaScript</a></p></div><div class="relatedpostplugin">
<h3>You may also be interested in...</h3>
<div class="relatedlinks">
<a href="http://demo.storm-consultancy.com/blog/development/tutorials/perl-basic-unit-testing/" rel="bookmark">Perl: Basic Unit Testing</a><!-- (3.61245)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/tools-plugins/top-web-browsing-firefox-extensions/" rel="bookmark">Top Web Browsing Firefox Extensions</a><!-- (3.32355)--></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://demo.storm-consultancy.com/blog/development/tools-plugins/include-today-default-google-analytics-date-range/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Overriding maintainScrollPositionOnPostBack with GridView Pager links</title>
		<link>http://demo.storm-consultancy.com/blog/development/tutorials/overriding-maintainscrollpositiononpostback-with-gridview-pager-links/</link>
		<comments>http://demo.storm-consultancy.com/blog/development/tutorials/overriding-maintainscrollpositiononpostback-with-gridview-pager-links/#comments</comments>
		<pubDate>Tue, 12 May 2009 19:25:21 +0000</pubDate>
		<dc:creator>Adam Pope</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[VB.NET]]></category>

		<guid isPermaLink="false">http://www.storm-consultancy.com/blog/?p=195</guid>
		<description><![CDATA[Recently, I was dealing with a large dataset in ASP.NET.  I was using the GridView control to display the data to the user.  The user was required to scroll down the page and use pagination links to view all of the data.  Paging events are triggered as PostBacks. If you are using the smart navigation features of ASP.NET, this causes some serious user experience issues.  Here's how to fix it.]]></description>
			<content:encoded><![CDATA[<p>Recently, I was dealing with a large dataset in ASP.NET.  I was using the GridView control to display the data to the user.  The user was required to scroll down the page and use pagination links to view all of the data.  Paging events are triggered as PostBacks. If you are using the smart navigation features of ASP.NET, this causes some serious user experience issues.  Here&#8217;s how to fix it.</p>
<p>I&#8217;m using maintainScrollPositionOnPostBack=&#8221;true&#8221;, which is set in web.config.  This option returns the user to the same vertical position on the page after a postback.  My GridView requires the user to scroll down the page.  At the bottom they find the pagination links displayed by the GridView&#8217;s Pager.  By default, when a user clicks to view a new page, they are promptly returned to the bottom of the list.    Clearly, this is not good for the user.</p>
<p>I found the following <a href="http://stackoverflow.com/questions/616210/reset-scroll-position-after-async-postback-asp-net">question on StackOverflow</a> that gave code to reset the scroll position after a postback.  However, it required modification to work with the GridView Pager.</p>
<p>Through examination of the generated HTML and rampant use of Response.Write(mycontrol.ToString()), I discovered that the Pager has the following DOM structure:</p>
<pre>GridView Row
- GridView Cell
-- System.Web.UI.WebControls.PagerTable
--- Table Row
---- Table Cell
----- DataControlPagerLinkButton
---- Table Cell
----- DataControlPagerLinkButton
---- etc</pre>
<p>The System.Web.UI.WebControls.PagerTable type is an internal class and relatively undocumented.  Thankfully, it can be cast to a normal ASP.NET Table.  The table contains a single TableRow control and each pagination link is contained within a TableCell in this row.  Each link is of type DataControlPagerLinkButton, which you can cast to a standard LinkButton.</p>
<p>Armed with this knowledge we can now fix the problem.  First up, we need a very small piece of JavaScript to scroll to the top of the window (courtesy StackOverflow):</p>
<pre class="brush: js">// Scroll to the top of the Page
function ScrollToTop() {
  window.scrollTo(0,0);
}</pre>
<p>We can then implement the RowDataBound event for our GridView and manipulate the Pager.  Here&#8217;s the code:</p>
<pre class="brush: vb">Protected Sub GridView1_RowDataBound(ByVal sender As Object, _
          ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
  If e.Row.RowType.Equals(DataControlRowType.Pager) Then
    Dim pTableRow As TableRow = _
             CType(e.Row.Cells(0).Controls(0).Controls(0), TableRow)
    For Each cell As TableCell In pTableRow.Cells
      For Each control As Control In cell.Controls
        If TypeOf control Is LinkButton Then
          Dim lb As LinkButton = CType(control, LinkButton)
          lb.Attributes.Add("onclick", "ScrollToTop();")
        End If
      Next
    Next
  End If
End Sub</pre>
<p>So what does that all do?  Well:</p>
<pre class="brush: vb">If e.Row.RowType.Equals(DataControlRowType.Pager) Then
</pre>
<p>Checks that the current row of the GridView is in fact the Pager row.  Once we are inside the Pager, we can chain together a few calls to dig down the control hierarchy to extract the TableRow of the PagerTable:</p>
<pre class="brush: vb">Dim pTableRow As TableRow = _
  CType(e.Row.Cells(0).Controls(0).Controls(0), TableRow)</pre>
<p>From there, we simply loop over each TableCell and then over each Control within that cell, checking that the current control is indeed a LinkButton.  Finally, we add a custom onclick attribute to call our JavaScript:</p>
<pre class="brush: vb">lb.Attributes.Add("onclick", "ScrollToTop();")
</pre>
<p>So there we are, that&#8217;s how you override the default behaviour of GridView Pager links when using the maintainScrollPositionOnPostBack  property, to offer your users a better experience.  I hope that helps!</p>


<div class="taggington"><p><!--<img src="/blog/wp-content/themes/stormblog/images/tag.gif" alt="tag"/>&nbsp; -->Tagged in: &nbsp;<a href="http://demo.storm-consultancy.com/blog/development/tag/asp-net/" rel="tag">ASP.NET</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/tutorials/" rel="tag">Tutorials</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/vb-net/" rel="tag">VB.NET</a></p></div><div class="relatedpostplugin">
<h3>You may also be interested in...</h3>
<div class="relatedlinks">
<a href="http://demo.storm-consultancy.com/blog/development/tutorials/taking-a-screenshot-in-mac-os-x/" rel="bookmark">Taking a screenshot in Mac OS X</a><!-- (3.20725)--></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://demo.storm-consultancy.com/blog/development/tutorials/overriding-maintainscrollpositiononpostback-with-gridview-pager-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter to Crawl Tweeted Links</title>
		<link>http://demo.storm-consultancy.com/blog/development/news/twitter-to-crawl-tweeted-links/</link>
		<comments>http://demo.storm-consultancy.com/blog/development/news/twitter-to-crawl-tweeted-links/#comments</comments>
		<pubDate>Fri, 08 May 2009 09:17:54 +0000</pubDate>
		<dc:creator>Adam Pope</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Social Web]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.storm-consultancy.com/blog/?p=174</guid>
		<description><![CDATA[Twitter Search is widely considered as the most exciting aspect of Twitter, and it&#8217;s about to get a whole lot more interesting.
At a panel being moderated by WebWare&#8217;s Rafe Needleman, former VP Search Quality at Google Santosh Jayaram announced that Twitter is to start crawling and indexing the links people place in tweets.  This move [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://search.twitter.com">Twitter Search</a> is widely considered as the most exciting aspect of Twitter, and it&#8217;s about to get a whole lot more interesting.</p>
<p><span id="more-174"></span>At a <a href="http://news.cnet.com/8301-17939_109-10235360-2.html">panel</a> being moderated by WebWare&#8217;s Rafe Needleman, former VP Search Quality at Google Santosh Jayaram announced that Twitter is to start crawling and indexing the links people place in tweets.  This move is a game changer and catapults Twitter in the heat of the search battle.  No longer will Twitter simply provide a stream of tweets, but it will also have access to a massive body of human approved, quality web pages &#8211; in real-time!</p>
<p>Jayaram also mentioned that Twitter is working on a reputation system.  Searches for trend topics highlighted in the sidebar will use this reputation metric to partially rank results, bringing more authoritative tweeters to the top.</p>
<p>Lets just hope that Twitter has time to make good on these promising features and isn&#8217;t acquired by a jealous Google.</p>


<div class="taggington"><p><!--<img src="/blog/wp-content/themes/stormblog/images/tag.gif" alt="tag"/>&nbsp; -->Tagged in: &nbsp;<a href="http://demo.storm-consultancy.com/blog/development/tag/search/" rel="tag">Search</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/social-web/" rel="tag">Social Web</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/twitter/" rel="tag">Twitter</a></p></div><div class="relatedpostplugin">
<h3>You may also be interested in...</h3>
<div class="relatedlinks">
<a href="http://demo.storm-consultancy.com/blog/development/random-bits/follow-storm-consultancy/" rel="bookmark">Follow Storm Consultancy</a><!-- (6.25396)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/tutorials/perl-basic-unit-testing/" rel="bookmark">Perl: Basic Unit Testing</a><!-- (4.22253)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/random-bits/classic-programming-quotes/" rel="bookmark">Classic Programming Quotes</a><!-- (3.35816)--></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://demo.storm-consultancy.com/blog/development/news/twitter-to-crawl-tweeted-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Follow Storm Consultancy</title>
		<link>http://demo.storm-consultancy.com/blog/development/random-bits/follow-storm-consultancy/</link>
		<comments>http://demo.storm-consultancy.com/blog/development/random-bits/follow-storm-consultancy/#comments</comments>
		<pubDate>Thu, 07 May 2009 18:38:02 +0000</pubDate>
		<dc:creator>Adam Pope</dc:creator>
				<category><![CDATA[Random Bits]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Storm]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.storm-consultancy.com/blog/?p=92</guid>
		<description><![CDATA[You can now get updates from Storm Consultancy on Twitter and Facebook!]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-93 alignnone" title="twitter logo" src="http://www.storm-consultancy.com/blog/wp-content/uploads/2009/05/twitter_logo-300x110.jpg" alt="twitter logo" width="162" height="59" /></p>
<p>You can now get updates from Storm Consultancy on Twitter and Facebook:</p>
<p><a title="Storm Consultancy on Twitter" href="http://twitter.com/stormuk">Follow us on Twitter</a> | <a title="Storm Consultancy on Facebook" href="http://www.facebook.com/pages/Storm-Consultancy/84297030875">Become a Fan on Facebook</a></p>
<p>We hope to see you there soon!</p>


<div class="taggington"><p><!--<img src="/blog/wp-content/themes/stormblog/images/tag.gif" alt="tag"/>&nbsp; -->Tagged in: &nbsp;<a href="http://demo.storm-consultancy.com/blog/development/tag/facebook/" rel="tag">Facebook</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/social-media/" rel="tag">Social Media</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/storm/" rel="tag">Storm</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/twitter/" rel="tag">Twitter</a></p></div><div class="relatedpostplugin">
<h3>You may also be interested in...</h3>
<div class="relatedlinks">
<a href="http://demo.storm-consultancy.com/blog/development/random-bits/classic-programming-quotes/" rel="bookmark">Classic Programming Quotes</a><!-- (7.76002)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/news/twitter-to-crawl-tweeted-links/" rel="bookmark">Twitter to Crawl Tweeted Links</a><!-- (5.63697)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/random-bits/microsoft-action-pack-subscription-contents-maps/" rel="bookmark">Microsoft Action Pack Subscription (MAPS...</a><!-- (3.41146)--></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://demo.storm-consultancy.com/blog/development/random-bits/follow-storm-consultancy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Action Pack Subscription (MAPS) Contents</title>
		<link>http://demo.storm-consultancy.com/blog/development/random-bits/microsoft-action-pack-subscription-contents-maps/</link>
		<comments>http://demo.storm-consultancy.com/blog/development/random-bits/microsoft-action-pack-subscription-contents-maps/#comments</comments>
		<pubDate>Thu, 07 May 2009 18:10:11 +0000</pubDate>
		<dc:creator>Adam Pope</dc:creator>
				<category><![CDATA[Random Bits]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.storm-consultancy.com/blog/?p=83</guid>
		<description><![CDATA[Storm Consultancy have become an official &#60;a href="https://partner.microsoft.com"&#62;Microsoft Partner&#60;/a&#62; (which is free to registered companies).  One of the perks of membership  is access to the Microsoft Action Pack.  Finding the exact details of the content is quite tricky however, so we thought we'd share a list of what arrived in ours.  The list is quite impressive!]]></description>
			<content:encoded><![CDATA[<p><a href="https://partner.microsoft.com/"><img class="size-full wp-image-90 alignnone" title="Microsoft Partner Programme" src="http://demo.storm-consultancy.com/blog/development/wp-content/uploads/2009/05/30000140.gif" alt="Microsoft Partner Programme" width="285" height="45" /></a></p>
<p>Storm Consultancy have become an official <a href="https://partner.microsoft.com">Microsoft Partner</a> (which is free to registered companies).  One of the perks of membership  is access to the Microsoft Action Pack.  Finding the exact details of the content is quite tricky however, so we thought we&#8217;d share a list of what arrived in ours.  The list is quite impressive!</p>
<p>For just £199 + VAT we received a ring binder and CDs containing the following software:</p>
<ul>
<li>Windows Vista Business 32-bit*</li>
<li>Windows Vista Business 64-bit*</li>
<li><strong>Windows Vista Ultimate</strong> 32-bit*</li>
<li>Windows Vista Ultimate 64-bit*</li>
<li><strong>Microsoft SQL Server 2008 Standard</strong></li>
<li>Microsoft Windows Server 2003 Web Edition</li>
<li>Microsoft Exchange Server 2007</li>
<li><strong>Windows Server 2008 Standard</strong></li>
<li>Windows Server 2008 Standard 64-bit</li>
<li><strong>Microsoft Office Enterprise 2007</strong>. Which includes:
<ul>
<li>Word</li>
<li>PowerPoint</li>
<li>Excel</li>
<li>Acccess</li>
<li>Communicator</li>
<li>Groove</li>
<li>InfoPath</li>
<li>OneNote</li>
<li>Outlook</li>
<li>Publisher</li>
</ul>
</li>
<li>Microsoft Office Sharepoint Designer 2007</li>
<li>Microsoft Office Sharepoint Server Enterprise 2007</li>
<li>Microsoft Office Outlook 2007 with Business Contact Manager</li>
<li>Microsoft Office Project Professional 2007</li>
<li>Microsoft Office Visio Professional 2007</li>
<li>Microsoft Dynamics CRM 4.0 Workgroup Server</li>
<li>Microsoft ForeFront Client Security</li>
<li>Windows Live OneCare 2.0</li>
<li>Microsoft Virtual Server 2005 Enterprise Edition</li>
<li>Microsoft Office Communicator 2007</li>
<li>Microsoft Office Communications Server 2007</li>
<li>Microsoft Office Communications Server 2007 Standard (Speech Server Role)</li>
<li>Windows Essential Business Server 2008 Standard, Prerequisites Planning Tools</li>
<li>Windows Essential Business Server 2008 Standard, Security Server</li>
<li>Windows Essential Business Server 2008 Standard, Management Server</li>
<li>Windows Essential Business Server 2008 Standard, Messaging Server</li>
<li>Windows Small Business Server 2008 Standard</li>
<li>Windows Small Business Server 2008 Standard, Component Technologies for Server Repair</li>
<li>Microsoft System Center Essentials 2007</li>
<li>Microsoft System Center Data Protection Manager 2007</li>
<li>Microsoft System Center Data Protection Manager 2007 64-bit</li>
<li>Microsoft System Center Data Protection Manager 2007 System Recovery Tool</li>
<li>Windows Home Server</li>
<li>Windows Home Server Connector</li>
<li>Windows Home Server Restore</li>
<li>Microsoft Internet Security and Acceleration Server 2006</li>
</ul>
<p>(* Windows Vista licenses are upgrades only. You have to have a licensed copy of Windows XP Professional already)</p>
<p>The exact contents of the pack get refreshed every 6 months and subscribers receive quarterly updates of new goodies to play with.  The highlighted items alone are worth over £2500, so Storm has only one thing to say:  Thank you Microsoft!</p>
<p><!--amm_getMediaID('amm_post_product',13)--><br />
<!--amm_getMediaID('amm_post_product',26)--></p>


<div class="taggington"><p><!--<img src="/blog/wp-content/themes/stormblog/images/tag.gif" alt="tag"/>&nbsp; -->Tagged in: &nbsp;<a href="http://demo.storm-consultancy.com/blog/development/tag/microsoft/" rel="tag">Microsoft</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/software/" rel="tag">Software</a></p></div><div class="relatedpostplugin">
<h3>You may also be interested in...</h3>
<div class="relatedlinks">
<a href="http://demo.storm-consultancy.com/blog/development/tips-tricks/download-office-2007-file-extensionsmime-types-with-iis-60/" rel="bookmark">Download Office 2007 File Extensions/MIM...</a><!-- (8.28207)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/tips-tricks/pstopdffilterpstocupsraster-failed-with-err-number-31000/" rel="bookmark">pstopdffilter/pstocupsraster failed with...</a><!-- (5.10152)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/news/phishing-attack-hosted-on-uk-government-website/" rel="bookmark">Phishing Attack Hosted on UK Government ...</a><!-- (4.9405)--></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://demo.storm-consultancy.com/blog/development/random-bits/microsoft-action-pack-subscription-contents-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generic HashTable in C#</title>
		<link>http://demo.storm-consultancy.com/blog/development/code-snippets/generic-hashtable-in-c/</link>
		<comments>http://demo.storm-consultancy.com/blog/development/code-snippets/generic-hashtable-in-c/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 18:13:34 +0000</pubDate>
		<dc:creator>Adam Pope</dc:creator>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.izonedesign.co.uk/blog/?p=81</guid>
		<description><![CDATA[I had a bit of a brain fail earlier and couldn't remember how to create a &#60;strong&#62;HashTable&#60;/strong&#62; with generic type arguments. There was a Hashtable and a HashSet&#60;&#62; but neither were what I was looking for.]]></description>
			<content:encoded><![CDATA[<p>I had a bit of a brain fail earlier and couldn&#8217;t remember how to create a <strong>HashTable</strong> with generic type arguments. There was a Hashtable and a HashSet&lt;&gt; but neither were what I was looking for.  The answer was a <strong>Dictionary</strong>:</p>
<pre class="brush: csharp"> var myHashTable = new Dictionary&lt;TKey, TValue&gt;
</pre>
<p>Where TKey is the type of your key (possibly an int to represent the Id of your object or string for a username) and TValue is the type of the value. I hope that saves you some time!</p>


<div class="taggington"><p><!--<img src="/blog/wp-content/themes/stormblog/images/tag.gif" alt="tag"/>&nbsp; -->Tagged in: &nbsp;<a href="http://demo.storm-consultancy.com/blog/development/tag/c/" rel="tag">C#</a></p></div><div class="relatedpostplugin">
<h3>You may also be interested in...</h3>
<div class="relatedlinks">
<a href="http://demo.storm-consultancy.com/blog/development/code-snippets/scheduling-a-process-with-cron-and-crontab/" rel="bookmark">Scheduling a Process with Cron and Cront...</a><!-- (4.1625)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/code-snippets/perl-generating-a-random-number-with-rand/" rel="bookmark">Perl: Generating a Random Number with Ra...</a><!-- (3.4016)--></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://demo.storm-consultancy.com/blog/development/code-snippets/generic-hashtable-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sine Wave Frequency Sweep with Audacity</title>
		<link>http://demo.storm-consultancy.com/blog/development/tutorials/sine-wave-frequency-sweep-with-audacity/</link>
		<comments>http://demo.storm-consultancy.com/blog/development/tutorials/sine-wave-frequency-sweep-with-audacity/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 14:26:37 +0000</pubDate>
		<dc:creator>Adam Pope</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[DSP]]></category>

		<guid isPermaLink="false">http://www.izonedesign.co.uk/blog/?p=80</guid>
		<description><![CDATA[I was recently trying to create a sine wave frequency sweep audio sample file to test out a digital signal processing (DSP) filter I was trying to write.  Using Audacity, you can create plug-ins to achieve all sorts of cool effects.  After a little experimentation I came up with the following code:


;nyquist plug-in
;version 1
;type generate
;name [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently trying to create a sine wave frequency sweep audio sample file to test out a digital signal processing (DSP) filter I was trying to write.  Using <a href="http://audacity.sourceforge.net/" target="_blank">Audacity</a>, you can create plug-ins to achieve all sorts of cool effects.  After a little experimentation I came up with the following code:</p>
<p><span id="more-80"></span>
<pre class="brush: plain">
;nyquist plug-in
;version 1
;type generate
;name "Frequency Sweep"
;action "Producing frequency sweep..."
;info "by Adam Pope"

;control startf "Start Frequency (Hz)" real "" 1 0 20000
;control endf "End Frequency (Hz)" real "" 10000 0 30000
;control duration "Duration (secs)" real "" 20 1 300
;control type "Sweep scale [1=Linear, 2=Exponential]" int "" 1 1 2
;control other "I dont know what this does" real "" 5 0 100

(if (= type 2)
(fmosc startf (pwe duration endf other))
(fmosc startf (pwl duration endf other)) )
</pre>
<p>Copy this code into a <strong>frequencysweep.ny</strong> file and place it in your Audacity plug-ins directory.  You&#8217;ll need to restart audactity for it to register the new plug-in.  Once you&#8217;re back in, click on &#8216;Generate&#8217; on the menu bar and select &#8216;Frequency Sweep&#8217; from the list of options.  You will then be presented with a dialog containing sliders to play with the parameters of your sweep.  If any of the limits are too restricitve for you, simply change the values in the plug-in file!</p>
<p>If anybody can explain what the 3rd parameter of pwe and pwl does, I&#8217;d love to know!</p>
<p><strong>Update:</strong> Many thanks to Paul Schimmel who sent me this updated version which removes the unknown parameter and also adds output level control.</p>
<pre class="brush: plain">
;nyquist plug-in
;version 1
;type generate
;name "Frequency Sweep..."
;action "Producing frequency sweep..."
;info "by Adam Pope and Paul Schimmel"

;control startf "Start Frequency (Hz)" real "" 20 20 20000
;control endf "End Frequency (Hz)" real "" 20000 20 20000
;control duration "Duration (secs)" real "" 30 1 300
;control level "Level (dBFS)" real " " 0 -40 0
;control type "Sweep scale [1=Linear, 2=Exponential]" int "" 2 1 2

(if (= type 2)
(scale-db level (fmosc 0 (pwev startf duration endf))) (scale-db level (fmosc 0 (pwlv startf duration endf))) )
</pre>


<div class="taggington"><p><!--<img src="/blog/wp-content/themes/stormblog/images/tag.gif" alt="tag"/>&nbsp; -->Tagged in: &nbsp;<a href="http://demo.storm-consultancy.com/blog/development/tag/dsp/" rel="tag">DSP</a>&nbsp;&nbsp; <a href="http://demo.storm-consultancy.com/blog/development/tag/tutorials/" rel="tag">Tutorials</a></p></div><div class="relatedpostplugin">
<h3>You may also be interested in...</h3>
<div class="relatedlinks">
<a href="http://demo.storm-consultancy.com/blog/development/tutorials/taking-a-screenshot-in-mac-os-x/" rel="bookmark">Taking a screenshot in Mac OS X</a><!-- (3.56373)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/tutorials/secure-your-contact-form-against-spam-email-header-injection/" rel="bookmark">Prevent Contact Form Spam Email Header I...</a><!-- (3.51808)--><br /> 
<a href="http://demo.storm-consultancy.com/blog/development/news/netcraft-toolbar-for-firefox-3-released/" rel="bookmark">Netcraft Toolbar for Firefox 3 Released</a><!-- (3.39741)--></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://demo.storm-consultancy.com/blog/development/tutorials/sine-wave-frequency-sweep-with-audacity/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.687 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-07-31 12:52:57 -->
