<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>AlphaOne Computing Knowledgebase</title>
      <link>http://www.alphaone-comp.com/kbase/</link>
      <description></description>
      <language>en</language>
      <copyright>Copyright 2007</copyright>
      <lastBuildDate>Fri, 16 Feb 2007 18:43:43 +0000</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/?v=3.2</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>Show HTTP Headers With Sam Spade</title>
         <description><![CDATA[<p>Further to my previous post, sometimes it's helpful to be able to see the full set of HTTP headers that are being sent from a web page.  This enable you to check on caching, cookies, redirects, etc.  The tool I use for this is the Browse Web feature in <a class="textlink" href="http://samspade.org/" target="_blank">Sam Spade</a>.  This is a free utility with various other useful features.  It's stated purpose is to help you track down the source of spam.  That doesn't really apply these days, since most email spam is now routed through zombie computers.  Nevertheless, it remain a handy item of software.</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2007/02/show_http_headers_with_sam_spa.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2007/02/show_http_headers_with_sam_spa.php</guid>
         <category>Web Development</category>
         <pubDate>Fri, 16 Feb 2007 18:43:43 +0000</pubDate>
      </item>
            <item>
         <title>View Cookies in Firefox</title>
         <description><![CDATA[<p>I'm experimenting with cookies at the moment, as I will be using them for sales tracking in a forthcoming development.  Here is a handy <a class="textlink" href="http://www.bitstorm.org/extensions/view-cookies/" target="_blank">Firefox Extension</a>.  Install this in Firefox and then you get an extra tab on Tools -> Page Info that shows you what cookies are set for the current page, plus their parameters.</p>

<p>Simple but effective.</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2007/02/view_cookies_in_firefox.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2007/02/view_cookies_in_firefox.php</guid>
         <category>Web Development</category>
         <pubDate>Tue, 13 Feb 2007 20:34:47 +0000</pubDate>
      </item>
            <item>
         <title>Private Folders Message When Connecting PC to a Domain</title>
         <description><![CDATA[<p>Generally when adding a PC to a SBS2003 domain you will want to base user profiles on existing profiles on the PC.  The wizard makes this easy to using the Current User Settings drop-downs on the form entitled 'Assign users to this computer and migrate their settings'.  However all too often when you click to continue you get error message 'The following settings are private', even when there is no obvious cause for this.</p>

<p>At this point what I do is to open Windows Explorer and navigate to the user profile in question in Documents and Settings.  Right click, select Sharing and Security, check 'Make this folder private' and click OK.  Now repeat this only this time unchecking the setting.  Now you will find that the wizard will work correctly.</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/07/private_folders_message_when_c.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/07/private_folders_message_when_c.php</guid>
         <category>Servers and Networks</category>
         <pubDate>Thu, 20 Jul 2006 17:13:56 +0000</pubDate>
      </item>
            <item>
         <title>Moving Files Between Hosting Accounts Using Wget</title>
         <description><![CDATA[<p>I'm currently in the process of transferring a number of web sites from shared hosting to my virtual server account.  I started out by downloading and uploading the files, but this proved to be cumbersome and slow.  Uploading across an ADSL connection is always a problem as the upload speed is always set at 256k irrespective of the download speed.  Plus, of course, it ties up your bandwidth in either direction.</p>

<p>The virtual server account has root access and the supplier recommends the use of the ftp command to move files directly from another location.  Unfortunately the ftp command doesn't recurse across subfolders.  However a bit of research unearthed wget which supports ftp in a recursive manner.  Furthermore it has features to control bandwidth usage, reducing the impact on other users on both the receiving and the sending server.  It worked very well.  The only consdieration was the need to temporarily give Telnet SSH access to the linux accounts associated with each hosting account.</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/07/moving_files_between_hosting_a.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/07/moving_files_between_hosting_a.php</guid>
         <category>Web Hosting</category>
         <pubDate>Tue, 18 Jul 2006 17:32:48 +0000</pubDate>
      </item>
            <item>
         <title>Instantaneous (Nearly) Host Switching</title>
         <description><![CDATA[<p>In this post <a class="textlink" href="http://www.alphaone-comp.com/kbase/2006/05/dns_made_easy.php">this post</a> I talked about how I use an external DNS supplier as part of my web hosting provision.  One of the major advantages that this provides is the ability to do near-instantaneous switching between hosts.  This avoids the usual 24-48 hour lag that is associated with nameserver changes and minimises the period of doubt during which you cannot be sure whether email for the domain will be delivered to the old host or the new.</p>

<p>To do this I use the template function in my DNS control panel to create templates for the old and the new hosts.  Then I set up the domain with the old host values for the DNS records and set the TTL value on the to 180 (3 minutes).  Then I switch the nameservers from the old host to the DNS supplier.  At this point nothing has changed.  </p>

<p>Once the nameserver change has propagated then I switch the domain from the old template to the new.  Because of the low TTL value the DNS servers around the net should not cache the old values from more than three minutes, so that is all it takes for the switch to be universal.  The beauty of this process is that if there is a problem with the new hosting then it is just as quick to switch back.  Finally once you are sure everything is as it should be then you can set the TTL values back to a normal setting (say 24 hours).</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/07/instantaneous_nearly_host_swit.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/07/instantaneous_nearly_host_swit.php</guid>
         <category>Web Hosting</category>
         <pubDate>Thu, 13 Jul 2006 15:01:37 +0000</pubDate>
      </item>
            <item>
         <title>The Strange Case of the Website with the Missing Piece</title>
         <description><![CDATA[<p>I recently completed a website for a client and put it on my test site from them to review.  They got back to say that it looked great on one machine, but part of the footer was displaced when viewed on another.  It was all looking fine at my end, so I had to visit them to check it out.</p>

<p>Viewing the site on their PC it became apparent that an image tag was being completely stripped out.  It was missing in Internet Explorer, Firefox and even SamSpade, so this was happening at quite a fundamental level.  The slice in question was a button used to open a pdf document in a new window (target="_blank").  This had to be some extreme form of pop-up blocking and it didn't take long for find the culprit.  Switching ZoneAlarm's Ad Blocking setting from High to Medium resolved the problem. </p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/07/the_strange_case_of_the_websit.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/07/the_strange_case_of_the_websit.php</guid>
         <category>Web Development</category>
         <pubDate>Tue, 11 Jul 2006 08:15:31 +0000</pubDate>
      </item>
            <item>
         <title>XP Style Buttons With Visual Studio 2005</title>
         <description><![CDATA[<p>Whilst working on a new Visual Basic 2005 application I was puzzled as to why the buttons were a pleasing XP-style rounded shape in the design environment but reverted to the old style rectangular shape when the application was run.  After a bit of research I discovered the changes were required in order to get the XP style buttons at run time.</p>

<p>First, the Application.EnableVisualStyles method has to be called.  More exactly it has to be called in Sub Main before Application.Run.  Here is my Main.vb<br />
Module Main<br />
&nbsp;&nbsp;Sub main()<br />
&nbsp;&nbsp;&nbsp;&nbsp;Application.EnableVisualStyles()<br />
&nbsp;&nbsp;&nbsp;&nbsp;Application.Run(New MainForm())<br />
&nbsp;&nbsp;End Sub<br />
End Module</p>

<p>Secondly if you are running with an earlier version of Visual Studio then the FlatStyle property of the button has to be set to System.  For VS 2005 you can leave this as Standard.</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/07/xp_style_buttons_with_visual_s.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/07/xp_style_buttons_with_visual_s.php</guid>
         <category>Programming</category>
         <pubDate>Thu, 06 Jul 2006 19:57:25 +0000</pubDate>
      </item>
            <item>
         <title>Company Name On Exchange Emails</title>
         <description><![CDATA[<p>One of my Exchange customers wanted the From: field in the emails sent via Outlook and Exchange to read as 'User Name - Company Name'.  That can't be hard I thought, but I should have known better!</p>

<p>After some research and experimentation I got a result using the following approach:<br />
1.  Select Properties for the user in Active Directory.  Leave the First Name field as is, but change the Surname field to 'Surname - Company Name'.<br />
2.  In AD right click the user, select Rename and take the defaults as presented.<br />
3.  Wait a while for the change to percolate from AD to Exchange.</p>

<p>I can't help but feel there must be a better way to do this, so please post comments if you know.<br />
</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/07/company_name_on_exchange_email.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/07/company_name_on_exchange_email.php</guid>
         <category>Servers and Networks</category>
         <pubDate>Tue, 04 Jul 2006 09:56:27 +0000</pubDate>
      </item>
            <item>
         <title>Our Web Development Process Part 2</title>
         <description><![CDATA[<p>Rather belatedly here is part 2 of our web development process, following on from <a class="textlink" href="http://www.alphaone-comp.com/kbase/2006/05/our_web_development_process_pa.php">this post</a>.  In this step we use ImageReady to create HTML and image files that will form the basis for subsequent work in Dreamweaver.</p>

<p>We use ImageReady to slice the design created in Illustrator.  The slices correspond to the following features of the resultant HTML page.</p>

<p>1.  By default ImageReady will produce image slices.  In Dreamweaver some of these slices will get converted to be HTML text slices.  This will always be the case for the main body of the page and sometimes for other areas such as sidebars.</p>

<p>2.  Some slices will form navigation buttons.  The slicing allows these to be individually clicked and also enables their rollover behaviours to be defined.</p>

<p>3.  Occasionally we might use a subtle piece of animation, so in this case the slice defines the area that will become an animated gif or a Flash component. </p>

<p>Our starting point will be the psd files produced in Part 1.  We open one of these, then use Place to add the other as a layer.  These are then organised into Layers Sets corresponding to the original layers in the Illustrator design.  Now we save this as a new psd file.  If, subsequently, the Illustrator design changes then you can repeat the extract process and use Place to position the exported psd layer files above the layers which are being replaced.</p>

<p>Now comes the slicing.  Set ImageReady to snap only to Guides and Boundaries, then set guides to mark the horizontal and vertical positions of the slice edges.  Now use the Slice tool to set the slices.  Once this is done you can use the features of ImageReady to define the slice properties such as rollovers, navigation link targets, alt text and optimisation settings.  </p>

<p>Now we're nearly ready to to do a Save Optimized to export the HTML and images.  But first we need to use the Group Slices into Tables feature that will ease the creation of HTML text slices.  That's a topic in itself, so we'll leave that for next time.</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/06/our_web_development_process_pa_1.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/06/our_web_development_process_pa_1.php</guid>
         <category>Web Development</category>
         <pubDate>Fri, 30 Jun 2006 13:06:49 +0000</pubDate>
      </item>
            <item>
         <title>Offsite Backups</title>
         <description><![CDATA[<p>One of the worst case scenarios that can afflict a small business is a fire at your premises.  This is traumatic enough but will be made worse by the realisation that all your PC's, servers and all your backup media have been reduced to charred remnants.  As long as you have some form of backup that survives this incident then you have some chance of picking up the pieces.</p>

<p>One option is to keep your backup media in a fire-proof safe.  Another is to ensure that  some backups are taken off-site on a regular basis.  If you are backing up onto a disposable medium such as DVD-R then this is no problem as you can just periodically take one of these off-site, say once a week.  </p>

<p>Alternatively you might be backing up onto some form of reuseable, removeable media - DVD-RW, tape or removeable hard drive.  In this case a simple approach is to establish a set of six tapes (or whatever) and to label these Monday, Tuesday, Wednesday, Thursday, Friday1 and Friday2.  Then use these on the appropriate day and every Monday take one of the Friday volumes off-site and return the other one.  In this way your off-site backup will never be more than six working days old.</p>

<p>Finally you might be backing up to non-removeable media, such as a separate hard drive or to another machine on the network.  In this case a good option might be to use two external hard drives and to rotate these on- and off-site in the same manner as the Friday tapes in the previous case.   </p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/06/offsite_backups.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/06/offsite_backups.php</guid>
         <category>PC General</category>
         <pubDate>Wed, 28 Jun 2006 15:16:12 +0000</pubDate>
      </item>
            <item>
         <title>Exchange Inbound Emails Not Working</title>
         <description><![CDATA[<p>Here's a very strange problem that caused us a lot of lost time.  I was setting up Exhange on a recently installed server for a customer on SBS 2003.  Outbound emails worked straight away, inbound didn't arrive.</p>

<p>I checked all the usual things, such as ensuring that the DNS MX record was pointing at the static IP address provided by the ISP.  I checked the port forwarding in the router.  I checked all settings for the SMTP Virtual Server Protocol against another which was known to work.  It all looked fine.</p>

<p>I created a PHP script that would open SMTP socket and send a EHLO to an IP address. I then ran network traces to see the effect of the script.  I could see the SMTP (port 25) request arriving at the server and I could see that the server responded to this.  But the response never arrived at the far end.  </p>

<p>Finally in desperation I took the server and router to my own premises so that I could swap components one by one until I found the culprit.  I plugged them in and made a single change to the router so that it would pick up my own broadband account.  I ran the PHP script.  It worked!</p>

<p>So the culprit was the client's ISP who were blocking inbound SMTP.  A quick phone call confirmed this to be the case.  But what was strange was that the initial SMTP packet did arrive, suggesting that the problem was at our end.  Lesson - always challenge your own assumptions.<br />
</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/06/exchange_inbound_emails_not_wo.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/06/exchange_inbound_emails_not_wo.php</guid>
         <category>Servers and Networks</category>
         <pubDate>Mon, 26 Jun 2006 06:36:53 +0000</pubDate>
      </item>
            <item>
         <title>Shadow Copies</title>
         <description><![CDATA[<p>This is the third post in a series that describes clincher arguments for preferring Small Business Server 2003 rather then Windows XP as a file server for a small businesses.  Today we will feature Shadow Copies.</p>

<p>One of the major benefits of installing a file server is that all important data is brought together in one place for the purposes of backup.  Your backups serve to get you out of trouble following disasters, major and minor.  A major disaster could be the physical failure of the hard drive.  A minor disaster could be that an individual file has been overwritten, accidentally deleted or corrupted.  In the latter case the file could be restored from the latest backup, but that generally requires the involvement of someone with expertise and knowledge of the backup program.  Shadow Copies allow users to perform this function themselves.</p>

<p>Shadow Copies can be enabled on any volume on a Small Business Server 2003 or Windows Server 2003 server.  Once enable then a user-defined schedule is established to copy files to a reserved area on the volume.  Up to 64 previous versions of any one file can be stored.</p>

<p>Shadow Copies are read-only but can be restored when the original file has been lost or corrupted.  A small piece of client software is required.  This is installed by default on Windows XP SP2 or the setup can be found at \\%systemroot%\system32\clients\twclient.  Once this is done the client will be able to access previous versions of files on shadow copied shared folders through the "Previous Versions" tab on the file's Properties dialogue box.</p>

<p>To emphasise, Shadow Copies should not be regarded as a replacement for a well-defined backup policy.</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/06/shadow_copies.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/06/shadow_copies.php</guid>
         <category>Servers and Networks</category>
         <pubDate>Fri, 23 Jun 2006 07:42:16 +0000</pubDate>
      </item>
            <item>
         <title>Offline Files</title>
         <description><![CDATA[<p>In the previous post we talked about Folder Redirection which allows files and folders stored in My Documents and the Desktop to be redirected to a server.  Now, you ask, what happens when the server is down or if you want to undock your laptop and use it away from the office?  Well the answer is that you can still access those redirected folders, courtesy of Offline Files.  Whilst the master version of the file is maintained in the shared folder, a local copy is cached on the client.  This copy is synchronised back to the server at logon or logoff time or you can explicit request a synchronisation on a file.</p>

<p>This all happens by default with Folder Redirection, but that's not the only use for Offline Files. Rather, it can be applied to any shared network folder whether on a Domain or a Workgroup  It's settings are controlled in the Offline Files tab in Folder Options in the Control Panel and it can also be switched on using Group Policy Management. Once Offline Files is switched on then you can make any shared folder or file available offline by right-clicking and selecting "Make Available Offline".</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/06/offline_files.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/06/offline_files.php</guid>
         <category>Servers and Networks</category>
         <pubDate>Wed, 21 Jun 2006 19:34:47 +0000</pubDate>
      </item>
            <item>
         <title>Folder Redirection</title>
         <description><![CDATA[<p>In <a class="textlink" href="http://www.alphaone-comp.com/kbase/2006/05/windows_xp_used_as_a_server.php">this post</a> I talked about some of the reasons why a proper file server running Small Business Server 2003 might be preferred over a Windows XP file server.  In the next three posts I will talk about two features, Folder Redirection and Shadow Copies, which further reinforce this argument.  The middle post will talk about Offline files, which isn't a specific SBS2003 feature, but which does have a big bearing on Folder Redirection.</p>

<p>Quite simply Folder Redirection allows the user to continue to store files and folders in My Documents and on the Desktop in such a manner that these files and folders are actually stored on the server.  (The contents of Start Menu and Application Data can also be redirected).  Very often when a small business elects to adopt a server they are migrating from a situation where many files are stored in these locations on the client machines.  In an ideal world these would be sorted into a set of shared folders on the server.  In practice most small businesses don't have the time for that, so Folder Redirection allows them to realise the security and recoverability benefits of the server whilst continuing in their current mode of working.</p>

<p>Folder Redirection is switched on through Group Policy User Configuration -> Windows Settings -> Folder Redirection.  My preference is to set up a security group called Folder Redirected users and then to use the setting 'Advanced - Specify locations for various user'.  In this way you can make Folder Redirection selectable for each user.  I use the Root Path location, using a specially created folder on the data volume.  One final tip is to ensure that you select 'Redirect the folder back to the user profile location when policy is removed' in case you want to switch off the feature at some later stage.  </p>

<p>More information can be found here: <a style="textlink" target="_blank" href="http://technet2.microsoft.com/WindowsServer/en/Library/a1b7ce04-708b-4145-830a-cadfc003acd31033.mspx?mfr=true">http://technet2.microsoft.com/WindowsServer/en/Library/a1b7ce04-708b-4145-830a-cadfc003acd31033.mspx?mfr=true</a> <br />
</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/06/folder_redirection.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/06/folder_redirection.php</guid>
         <category>Servers and Networks</category>
         <pubDate>Mon, 19 Jun 2006 08:03:45 +0000</pubDate>
      </item>
            <item>
         <title>Syntax Error on ADO.NET Update</title>
         <description><![CDATA[<p>Recently we hit a strange problem on a VB.NET 2005 application.  Stripped down to its bare essentials the code was as follows:</p>

<p>Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\LinkCheck\db.mdb"<br />
Dim sql As String<br />
Dim adapter As OleDbDataAdapter<br />
Dim cmdBuilder As OleDbCommandBuilder<br />
Dim dsLinks As New DataSet<br />
Dim rowcount As Integer</p>

<p>sql = "SELECT * FROM [Link] WHERE [IncludeInSearch] = True"<br />
adapter = New OleDbDataAdapter(sql, connectionString)<br />
cmdBuilder = New OleDbCommandBuilder(adapter)<br />
adapter.Fill(dsLinks, "Link")</p>

<p>With dsLinks.Tables("Link")<br />
&nbsp;&nbsp;For rowcount = 0 To .Rows.Count - 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;.Rows(rowcount).Item("IsIndexed") = "yes"<br />
&nbsp;&nbsp;adapter.Update(dsLinks, "Link")<br />
&nbsp;&nbsp;Next<br />
End With</p>

<p>The Update command failed with "Syntax error (missing operator) in query expression".  Now in this scenario that update command is built automatically by OleDbCommandBuilder.  My immediate thought was that there was a conflict between some of the field names and Access reserved words.  I changed any that looked to be possible candidates, but the problem remained.</p>

<p>After further research I discovered and added the following two lines:<br />
cmdBuilder.QuotePrefix = "["<br />
cmdBuilder.QuoteSuffix = "]"<br />
These set the beginning and ending character to use when specifying database objects whose names contain characters such as spaces or reserved tokens. This resolved the problem.</p>

<p><br />
</p>]]></description>
         <link>http://www.alphaone-comp.com/kbase/2006/06/syntax_error_on_adonet_update.php</link>
         <guid>http://www.alphaone-comp.com/kbase/2006/06/syntax_error_on_adonet_update.php</guid>
         <category>Programming</category>
         <pubDate>Fri, 16 Jun 2006 12:34:45 +0000</pubDate>
      </item>
      
   </channel>
</rss>
