<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Robert F. Hill</title>
    <link>http://www.robertfhill.com/</link>
    <description>ASP.NUT!</description>
    <language>en-us</language>
    <copyright>Robert F. Hill</copyright>
    <lastBuildDate>Thu, 19 May 2011 16:04:26 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>bob@hampdentech.com</managingEditor>
    <webMaster>bob@hampdentech.com</webMaster>
    <item>
      <trackback:ping>http://www.robertfhill.com/Trackback.aspx?guid=020dec5c-8945-4a11-8125-5ede66f31072</trackback:ping>
      <pingback:server>http://www.robertfhill.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.robertfhill.com/PermaLink,guid,020dec5c-8945-4a11-8125-5ede66f31072.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.robertfhill.com/CommentView,guid,020dec5c-8945-4a11-8125-5ede66f31072.aspx</wfw:comment>
      <wfw:commentRss>http://www.robertfhill.com/SyndicationService.asmx/GetEntryCommentsRss?guid=020dec5c-8945-4a11-8125-5ede66f31072</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Thanks to <strong>Sean Roberts</strong> for posting this on his blog. Below are the
steps required to add a SQL Server Reporting Services 2008 Web Reference to your Visual
Studio application. 
</p>
        <ol>
          <li>
Right click on your Project and then choose  <strong>Add</strong><strong>Service
Reference</strong></li>
          <li>
Click on the <strong>[Advanced] </strong>button</li>
          <li>
Click on <strong>Add Web Reference</strong></li>
          <li>
Paste in the URL from your web service and at the end add <strong>/reportservice2005.asmx?WSDL</strong></li>
          <li>
For example <strong><a href="http://yourserver/reportserver/reportservice2005.asmx?WSDL">http://yourserver/reportserver/reportservice2005.asmx?WSDL</a></strong></li>
          <li>
Click the <strong>[Go]</strong> button</li>
          <li>
Click <strong>[Add Reference]</strong></li>
        </ol>
        <p>
A little background is required here. Apparently, the <strong>reportservice2005.asmx</strong> file
was left over, possibly for backward compatibility. That is why you need to specify
that even though you are using SSRS 2008. 
</p>
        <p>
With the Web Reference in place you can now interact programmatically with your Reporting
Server.
</p>
        <p>
Thanks Sean!
</p>
        <img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=020dec5c-8945-4a11-8125-5ede66f31072" />
      </body>
      <title>Adding an SSRS 2008 Web Reference</title>
      <guid isPermaLink="false">http://www.robertfhill.com/PermaLink,guid,020dec5c-8945-4a11-8125-5ede66f31072.aspx</guid>
      <link>http://www.robertfhill.com/2011/05/19/AddingAnSSRS2008WebReference.aspx</link>
      <pubDate>Thu, 19 May 2011 16:04:26 GMT</pubDate>
      <description>&lt;p&gt;
Thanks to &lt;strong&gt;Sean Roberts&lt;/strong&gt; for posting this on his blog. Below are the
steps required to add a SQL Server Reporting Services 2008 Web Reference to your Visual
Studio application. 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Right click on your Project and then choose&amp;nbsp; &lt;strong&gt;Add&lt;/strong&gt; &lt;strong&gt;Service
Reference&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Click on the &lt;strong&gt;[Advanced] &lt;/strong&gt;button&lt;/li&gt;
&lt;li&gt;
Click on &lt;strong&gt;Add Web Reference&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Paste in the URL from your web service and at the end add &lt;strong&gt;/reportservice2005.asmx?WSDL&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
For example &lt;strong&gt;&lt;a href="http://yourserver/reportserver/reportservice2005.asmx?WSDL"&gt;http://yourserver/reportserver/reportservice2005.asmx?WSDL&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Click the &lt;strong&gt;[Go]&lt;/strong&gt; button&lt;/li&gt;
&lt;li&gt;
Click &lt;strong&gt;[Add Reference]&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
A little background is required here. Apparently, the &lt;strong&gt;reportservice2005.asmx&lt;/strong&gt; file
was left over, possibly for backward compatibility. That is why you need to specify
that even though you are using SSRS 2008. 
&lt;/p&gt;
&lt;p&gt;
With the Web Reference in place you can now interact programmatically with your Reporting
Server.
&lt;/p&gt;
&lt;p&gt;
Thanks Sean!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=020dec5c-8945-4a11-8125-5ede66f31072" /&gt;</description>
      <comments>http://www.robertfhill.com/CommentView,guid,020dec5c-8945-4a11-8125-5ede66f31072.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.robertfhill.com/Trackback.aspx?guid=0297a349-fd8f-45d4-8b87-c67992a83d98</trackback:ping>
      <pingback:server>http://www.robertfhill.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.robertfhill.com/PermaLink,guid,0297a349-fd8f-45d4-8b87-c67992a83d98.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.robertfhill.com/CommentView,guid,0297a349-fd8f-45d4-8b87-c67992a83d98.aspx</wfw:comment>
      <wfw:commentRss>http://www.robertfhill.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0297a349-fd8f-45d4-8b87-c67992a83d98</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Okay, maybe this is no revelation for some of you out there, but here’s a quick, down-and-dirty
way of displaying an HTML-Encoded column in a GridView. By default, the GridView will
display bound columns with the HTML encoding so if you want to see the HTML formatting
you need to do an HTMLDecode operation.
</p>
        <p>
In the GridView.RowDataBound() event add the following line of code…
</p>
        <p>
          <font face="Courier" size="1">e.Row.Cells(4).Text = Server.HtmlDecode(e.Row.Cells(4).Text)</font>
        </p>
        <p>
Substitute the number (in this case 4) with the column that contains the HTML, unless
of course the column IS 4! You could also do an HTMLDecode on each column using the
following syntax.
</p>
        <p>
          <font face="Courier" size="1">For Each oCell As TableCell in e.Row.Cells</font>
        </p>
        <blockquote>
          <p>
            <font face="Courier" size="1">oCell.Text = Server.HtmlDecode(oCell.Text)</font>
          </p>
        </blockquote>
        <p>
          <font face="Courier" size="1">Next</font>
        </p>
        <p>
You are better off however if you simply decode the required columns because of performance.
Not every column in your GridView is likely to contain HTML.
</p>
        <p>
That’s all folks!!
</p>
        <p>
 
</p>
        <p>
          <font size="1">
          </font>
        </p>
        <img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=0297a349-fd8f-45d4-8b87-c67992a83d98" />
      </body>
      <title>GridView Tip of the Month</title>
      <guid isPermaLink="false">http://www.robertfhill.com/PermaLink,guid,0297a349-fd8f-45d4-8b87-c67992a83d98.aspx</guid>
      <link>http://www.robertfhill.com/2009/10/23/GridViewTipOfTheMonth.aspx</link>
      <pubDate>Fri, 23 Oct 2009 15:44:29 GMT</pubDate>
      <description>&lt;p&gt;
Okay, maybe this is no revelation for some of you out there, but here’s a quick, down-and-dirty
way of displaying an HTML-Encoded column in a GridView. By default, the GridView will
display bound columns with the HTML encoding so if you want to see the HTML formatting
you need to do an HTMLDecode operation.
&lt;/p&gt;
&lt;p&gt;
In the GridView.RowDataBound() event add the following line of code…
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Courier size=1&gt;e.Row.Cells(4).Text = Server.HtmlDecode(e.Row.Cells(4).Text)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Substitute the number (in this case 4) with the column that contains the HTML, unless
of course the column IS 4! You could also do an HTMLDecode on each column using the
following syntax.
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Courier size=1&gt;For Each oCell As TableCell in e.Row.Cells&lt;/font&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;font face=Courier size=1&gt;oCell.Text = Server.HtmlDecode(oCell.Text)&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;font face=Courier size=1&gt;Next&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
You are better off however if you simply decode the required columns because of performance.
Not every column in your GridView is likely to contain HTML.
&lt;/p&gt;
&lt;p&gt;
That’s all folks!!
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=1&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=0297a349-fd8f-45d4-8b87-c67992a83d98" /&gt;</description>
      <comments>http://www.robertfhill.com/CommentView,guid,0297a349-fd8f-45d4-8b87-c67992a83d98.aspx</comments>
      <category>Programming</category>
      <category>VB.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.robertfhill.com/Trackback.aspx?guid=5333c579-850d-4167-9cf2-a1eea468e24b</trackback:ping>
      <pingback:server>http://www.robertfhill.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.robertfhill.com/PermaLink,guid,5333c579-850d-4167-9cf2-a1eea468e24b.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.robertfhill.com/CommentView,guid,5333c579-850d-4167-9cf2-a1eea468e24b.aspx</wfw:comment>
      <wfw:commentRss>http://www.robertfhill.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5333c579-850d-4167-9cf2-a1eea468e24b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The latest tool offered for Public Housing Agencies is our Website Designer. This
tool allows agencies to create their own websites with no website design or programming
experience. 
</p>
        <p>
The PHAnetwork Website Designer (<a href="http://sitemanager.phanetwork.com" target="_blank">click
here to visit the site</a>) uses simple content editing and multiple selection to
create a powerful, advanced and professional presence on the web. The user can choose
from a variety of template designs and pick and choose what pages to include.
</p>
        <p>
The available pages include links to Properties, Program information, Resident Services,
Board of Commissioners, Staff, an FAQ page, a Contact page and a Documents page where
users can upload documents and forms of value to their site visitors. The user can
also setup up to 3 additional custom pages for other types of content. If that’s not
enough, image galleries can be added to highlight resident activities, construction
updates or just about any other pictorial information that needs to be conveyed.
</p>
        <p>
Unlike other tools, the PHAnetwork Website Designer is targeted specifically to Public
Housing Agencies. To see a sample site click <a href="http://brandenburg.phanetwork.com" target="_blank">here</a>.
</p>
        <p>
For more information click on the link above. To sign up go to <a href="http://www.phanetwork.com" target="_blank">PHAnetwork.com</a> and
click the <strong>Join</strong> link.
</p>
        <img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=5333c579-850d-4167-9cf2-a1eea468e24b" />
      </body>
      <title>Website Designer for Public Housing Agencies</title>
      <guid isPermaLink="false">http://www.robertfhill.com/PermaLink,guid,5333c579-850d-4167-9cf2-a1eea468e24b.aspx</guid>
      <link>http://www.robertfhill.com/2009/04/04/WebsiteDesignerForPublicHousingAgencies.aspx</link>
      <pubDate>Sat, 04 Apr 2009 19:23:27 GMT</pubDate>
      <description>&lt;p&gt;
The latest tool offered for Public Housing Agencies is our Website Designer. This
tool allows agencies to create their own websites with no website design or programming
experience. 
&lt;/p&gt;
&lt;p&gt;
The PHAnetwork Website Designer (&lt;a href="http://sitemanager.phanetwork.com" target=_blank&gt;click
here to visit the site&lt;/a&gt;) uses simple content editing and multiple selection to
create a powerful, advanced and professional presence on the web. The user can choose
from a variety of template designs and pick and choose what pages to include.
&lt;/p&gt;
&lt;p&gt;
The available pages include links to Properties, Program information, Resident Services,
Board of Commissioners, Staff, an FAQ page, a Contact page and a Documents page where
users can upload documents and forms of value to their site visitors. The user can
also setup up to 3 additional custom pages for other types of content. If that’s not
enough, image galleries can be added to highlight resident activities, construction
updates or just about any other pictorial information that needs to be conveyed.
&lt;/p&gt;
&lt;p&gt;
Unlike other tools, the PHAnetwork Website Designer is targeted specifically to Public
Housing Agencies. To see a sample site click &lt;a href="http://brandenburg.phanetwork.com" target=_blank&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
For more information click on the link above. To sign up go to &lt;a href="http://www.phanetwork.com" target=_blank&gt;PHAnetwork.com&lt;/a&gt; and
click the &lt;strong&gt;Join&lt;/strong&gt; link.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=5333c579-850d-4167-9cf2-a1eea468e24b" /&gt;</description>
      <comments>http://www.robertfhill.com/CommentView,guid,5333c579-850d-4167-9cf2-a1eea468e24b.aspx</comments>
      <category>PHAnetwork.com</category>
      <category>Programming</category>
      <category>Public Housing</category>
    </item>
    <item>
      <trackback:ping>http://www.robertfhill.com/Trackback.aspx?guid=bc2a3099-cad5-4f7b-920a-03b622a2cbf5</trackback:ping>
      <pingback:server>http://www.robertfhill.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.robertfhill.com/PermaLink,guid,bc2a3099-cad5-4f7b-920a-03b622a2cbf5.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.robertfhill.com/CommentView,guid,bc2a3099-cad5-4f7b-920a-03b622a2cbf5.aspx</wfw:comment>
      <wfw:commentRss>http://www.robertfhill.com/SyndicationService.asmx/GetEntryCommentsRss?guid=bc2a3099-cad5-4f7b-920a-03b622a2cbf5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I’ve been a Microsoft SQL Server user for about 12 years now going back to the SQL
6.5 version so it was a bit surprising when I encountered numerous problems installing
the SQL 2005 client on my new Windows Vista workstation. While trying to connect to
my production SQL server I received an error similar to the following.
</p>
        <blockquote>
          <p>
An error has occurred while establishing a connection to the server.  When connecting
to SQL Server 2005, this failure may be caused by the fact that under the default
settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces,
error: 26 - Error Locating Server/Instance Specified)
</p>
        </blockquote>
        <p>
Well I was sure the Server was allowing remote connections since other workstations
including my older Windows XP workstation and my Windows XP notebook were connecting
fine. After temporarily disabling my <strong>Windows Firewall</strong> I discovered
that the connections went through fine. The culprit was found! 
</p>
        <p>
Nevertheless, I googled (yes this is a valid verb now) the error message and found
the following suggestions to be useful. 
</p>
        <p>
The first thing you need to make sure of is that SQL server is in fact setup to accept
remote connections. To check and/or set this you need to use the <strong>Server Surface
Area Configuration </strong>tool. When this opens, choose <strong>Surface Area Configuration
for Services and Connections</strong>. Under the appropriate server (if more than
one server is listed) click on the <strong>Database Engine</strong> node and expand
it. Click on <strong>Remote Connections. </strong>Make sure that <strong>Local and
remote connections</strong> is selected. You can also choose <strong>Using TCP/IP
and named pipes</strong> if you want to make sure that the SQL server is listening
for all protocols, but setting it to <strong>Using TCP/IP only</strong> should be
fine. 
</p>
        <p>
The next thing you need to determine is whether the SQL Server instance is using a <strong>Static
Port</strong> or <strong>Dynamic Ports</strong>. By default, the static port is selected
during the SQL Server installation process and set to port number <strong>1433. </strong>Here’s
how to determine if you are using static or dynamic ports. 
</p>
        <p>
Open up the <strong>SQL Server Configuration Manager</strong>. Under <strong>SQL Server
2005 Network Configuration</strong>, click on the entry that shows <strong>Protocols
for <em>&lt;server&gt;</em></strong><em></em>where the server is the name of your
server instance. On the right, <strong>TCP/IP</strong> should be enabled. Double-click
on this entry. When the dialog opens, click on the <strong>IP Addresses</strong> tab.
You should see each IP address associated with the server as well as the loop-back
IP Address of 127.0.0.1. If the entry next to <strong>TCP Dynamic Ports</strong> is
zero or another integer value then your SQL server instance is setup for Dynamic Ports. 
</p>
        <p>
Another way to determine what ports SQL server is using is to try the <strong>netstat</strong> command
line utility. Try the following syntax in the command line and look for the IP address
of the SQL server. 
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <strong>netstat -n</strong>
          </p>
        </blockquote>
        <p>
The problem with Dynamic Ports and your Windows Firewall is that it is definitely
possible that the dynamic port assigned by SQL server will be blocked by any communication
attempting to come through your Firewall. You request access to the SQL server and
it attempts to return information through the Firewall, except that the assigned port
is blocked. You could figure out what port has been assigned by checking the Configuration
Manager (mentioned above) and open that port through your Firewall, however the port
will be reassigned the next time SQL server is restarted. 
</p>
        <p>
The best solution is to find a unique port that works on SQL server. The easiest thing
to do is to use the last dynamically assigned port number since you are certain that
this port is unique. In the <strong>IP Addresses </strong>tab, clear out the port
number next to each <strong>TCP Dynamic Ports</strong> entry. Then assign the new
port number to each <strong>TCP Port</strong> entry. Then click the <strong>[Apply]</strong> button.
Finally, stop and restart your SQL server instance. 
</p>
        <p>
Next, you need to open the new port on your Windows Firewall. To do this. go to the <strong>Control
Panel</strong> and open up the <strong>Windows Firewall. </strong>Click on the <strong>Change
Settings</strong> link and then click on the <strong>Exceptions </strong>tab. Click
on the <strong>[Add Port]</strong> button. For the name enter <strong>Static TCP Port. </strong>Enter
the port number that you assigned in the Configuration Manager and then select <strong>TCP</strong> for
the protocol. Finally, click the <strong>[OK]</strong> button to complete the exception.
This will allow SQL Server traffic to flow through your Firewall. 
</p>
        <p>
Now you can test your remote SQL server connection and if you’ve followed the instructions
above, everything should work fine. 
</p>
        <img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=bc2a3099-cad5-4f7b-920a-03b622a2cbf5" />
      </body>
      <title>SQL 2005 and Vista</title>
      <guid isPermaLink="false">http://www.robertfhill.com/PermaLink,guid,bc2a3099-cad5-4f7b-920a-03b622a2cbf5.aspx</guid>
      <link>http://www.robertfhill.com/2009/01/24/SQL2005AndVista.aspx</link>
      <pubDate>Sat, 24 Jan 2009 23:40:08 GMT</pubDate>
      <description>&lt;p&gt;
I’ve been a Microsoft SQL Server user for about 12 years now going back to the SQL
6.5 version so it was a bit surprising when I encountered numerous problems installing
the SQL 2005 client on my new Windows Vista workstation. While trying to connect to
my production SQL server I received an error similar to the following.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
An error has occurred while establishing a connection to the server.&amp;nbsp; When connecting
to SQL Server 2005, this failure may be caused by the fact that under the default
settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces,
error: 26 - Error Locating Server/Instance Specified)
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Well I was sure the Server was allowing remote connections since other workstations
including my older Windows XP workstation and my Windows XP notebook were connecting
fine. After temporarily disabling my &lt;strong&gt;Windows Firewall&lt;/strong&gt; I discovered
that the connections went through fine. The culprit was found! 
&lt;p&gt;
Nevertheless, I googled (yes this is a valid verb now) the error message and found
the following suggestions to be useful. 
&lt;p&gt;
The first thing you need to make sure of is that SQL server is in fact setup to accept
remote connections. To check and/or set this you need to use the &lt;strong&gt;Server Surface
Area Configuration &lt;/strong&gt;tool. When this opens, choose &lt;strong&gt;Surface Area Configuration
for Services and Connections&lt;/strong&gt;. Under the appropriate server (if more than
one server is listed) click on the &lt;strong&gt;Database Engine&lt;/strong&gt; node and expand
it. Click on &lt;strong&gt;Remote Connections. &lt;/strong&gt;Make sure that &lt;strong&gt;Local and
remote connections&lt;/strong&gt; is selected. You can also choose &lt;strong&gt;Using TCP/IP
and named pipes&lt;/strong&gt; if you want to make sure that the SQL server is listening
for all protocols, but setting it to &lt;strong&gt;Using TCP/IP only&lt;/strong&gt; should be
fine. 
&lt;p&gt;
The next thing you need to determine is whether the SQL Server instance is using a &lt;strong&gt;Static
Port&lt;/strong&gt; or &lt;strong&gt;Dynamic Ports&lt;/strong&gt;. By default, the static port is selected
during the SQL Server installation process and set to port number &lt;strong&gt;1433. &lt;/strong&gt;Here’s
how to determine if you are using static or dynamic ports. 
&lt;p&gt;
Open up the &lt;strong&gt;SQL Server Configuration Manager&lt;/strong&gt;. Under &lt;strong&gt;SQL Server
2005 Network Configuration&lt;/strong&gt;, click on the entry that shows &lt;strong&gt;Protocols
for &lt;em&gt;&amp;lt;server&amp;gt;&lt;/em&gt;&lt;/strong&gt;&lt;em&gt; &lt;/em&gt;where the server is the name of your
server instance. On the right, &lt;strong&gt;TCP/IP&lt;/strong&gt; should be enabled. Double-click
on this entry. When the dialog opens, click on the &lt;strong&gt;IP Addresses&lt;/strong&gt; tab.
You should see each IP address associated with the server as well as the loop-back
IP Address of 127.0.0.1. If the entry next to &lt;strong&gt;TCP Dynamic Ports&lt;/strong&gt; is
zero or another integer value then your SQL server instance is setup for Dynamic Ports. 
&lt;p&gt;
Another way to determine what ports SQL server is using is to try the &lt;strong&gt;netstat&lt;/strong&gt; command
line utility. Try the following syntax in the command line and look for the IP address
of the SQL server. &lt;blockquote dir=ltr style="MARGIN-RIGHT: 0px"&gt; 
&lt;p&gt;
&lt;strong&gt;netstat -n&lt;/strong&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The problem with Dynamic Ports and your Windows Firewall is that it is definitely
possible that the dynamic port assigned by SQL server will be blocked by any communication
attempting to come through your Firewall. You request access to the SQL server and
it attempts to return information through the Firewall, except that the assigned port
is blocked. You could figure out what port has been assigned by checking the Configuration
Manager (mentioned above) and open that port through your Firewall, however the port
will be reassigned the next time SQL server is restarted. 
&lt;p&gt;
The best solution is to find a unique port that works on SQL server. The easiest thing
to do is to use the last dynamically assigned port number since you are certain that
this port is unique. In the &lt;strong&gt;IP Addresses &lt;/strong&gt;tab, clear out the port
number next to each &lt;strong&gt;TCP Dynamic Ports&lt;/strong&gt; entry. Then assign the new
port number to each &lt;strong&gt;TCP Port&lt;/strong&gt; entry. Then click the &lt;strong&gt;[Apply]&lt;/strong&gt; button.
Finally, stop and restart your SQL server instance. 
&lt;p&gt;
Next, you need to open the new port on your Windows Firewall. To do this. go to the &lt;strong&gt;Control
Panel&lt;/strong&gt; and open up the &lt;strong&gt;Windows Firewall. &lt;/strong&gt;Click on the &lt;strong&gt;Change
Settings&lt;/strong&gt; link and then click on the &lt;strong&gt;Exceptions &lt;/strong&gt;tab. Click
on the &lt;strong&gt;[Add Port]&lt;/strong&gt; button. For the name enter &lt;strong&gt;Static TCP Port. &lt;/strong&gt;Enter
the port number that you assigned in the Configuration Manager and then select &lt;strong&gt;TCP&lt;/strong&gt; for
the protocol. Finally, click the &lt;strong&gt;[OK]&lt;/strong&gt; button to complete the exception.
This will allow SQL Server traffic to flow through your Firewall. 
&lt;p&gt;
Now you can test your remote SQL server connection and if you’ve followed the instructions
above, everything should work fine. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=bc2a3099-cad5-4f7b-920a-03b622a2cbf5" /&gt;</description>
      <comments>http://www.robertfhill.com/CommentView,guid,bc2a3099-cad5-4f7b-920a-03b622a2cbf5.aspx</comments>
      <category>Programming</category>
      <category>VB.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.robertfhill.com/Trackback.aspx?guid=f31e144b-2b34-469b-931c-6a3c74b4e323</trackback:ping>
      <pingback:server>http://www.robertfhill.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.robertfhill.com/PermaLink,guid,f31e144b-2b34-469b-931c-6a3c74b4e323.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.robertfhill.com/CommentView,guid,f31e144b-2b34-469b-931c-6a3c74b4e323.aspx</wfw:comment>
      <wfw:commentRss>http://www.robertfhill.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f31e144b-2b34-469b-931c-6a3c74b4e323</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well, here's my first attempt at editing an onboard video. The video was taken using
a FlyCamOne camera mounted on a Mutliplex Easy Star RC plane. I mounted the camera
under the right wing. 
</p>
        <p>
The quality of the video is not bad for a $100 camera. I did the editing with Microsoft
Movie-Maker. In case you don't recognize the soundtrack, it is <strong>Dreams</strong> by <strong>Van
Halen</strong>. No this isn't original, the video for this song when it came out featured
the Blue Angel's Demonstration team. 
</p>
        <p>
Anyway, enjoy!
</p>
        <p>
 
</p>
        <div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:4d79df11-27ff-4c37-8d2a-6cf872c95572" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">
          <div>
            <embed id="VideoPlayback" style="WIDTH: 400px; HEIGHT: 326px" src="http://video.google.com/googleplayer.swf?docId=-5277138080192523073&amp;hl=en" type="application/x-shockwave-flash" flashvars="">
            </embed>
          </div>
        </div>
        <img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=f31e144b-2b34-469b-931c-6a3c74b4e323" />
      </body>
      <title>Onboard Video</title>
      <guid isPermaLink="false">http://www.robertfhill.com/PermaLink,guid,f31e144b-2b34-469b-931c-6a3c74b4e323.aspx</guid>
      <link>http://www.robertfhill.com/2008/08/25/OnboardVideo.aspx</link>
      <pubDate>Mon, 25 Aug 2008 14:17:29 GMT</pubDate>
      <description>&lt;p&gt;
Well, here's my first attempt at editing an onboard video. The video was taken using
a FlyCamOne camera mounted on a Mutliplex Easy Star RC plane. I mounted the camera
under the right wing. 
&lt;/p&gt;
&lt;p&gt;
The quality of the video is not bad for a $100 camera. I did the editing with Microsoft
Movie-Maker. In case you don't recognize the soundtrack, it is &lt;strong&gt;Dreams&lt;/strong&gt; by &lt;strong&gt;Van
Halen&lt;/strong&gt;. No this isn't original, the video for this song when it came out featured
the Blue Angel's Demonstration team. 
&lt;/p&gt;
&lt;p&gt;
Anyway, enjoy!
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div class=wlWriterSmartContent id=scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:4d79df11-27ff-4c37-8d2a-6cf872c95572 style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;
&lt;div&gt;&lt;embed id=VideoPlayback style="WIDTH: 400px; HEIGHT: 326px" src=http://video.google.com/googleplayer.swf?docId=-5277138080192523073&amp;amp;hl=en type=application/x-shockwave-flash flashvars=""&gt; &lt;/embed&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=f31e144b-2b34-469b-931c-6a3c74b4e323" /&gt;</description>
      <comments>http://www.robertfhill.com/CommentView,guid,f31e144b-2b34-469b-931c-6a3c74b4e323.aspx</comments>
      <category>RC Flying</category>
    </item>
    <item>
      <trackback:ping>http://www.robertfhill.com/Trackback.aspx?guid=d18c5568-fdea-44a7-ad0e-3a242093b553</trackback:ping>
      <pingback:server>http://www.robertfhill.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.robertfhill.com/PermaLink,guid,d18c5568-fdea-44a7-ad0e-3a242093b553.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.robertfhill.com/CommentView,guid,d18c5568-fdea-44a7-ad0e-3a242093b553.aspx</wfw:comment>
      <wfw:commentRss>http://www.robertfhill.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d18c5568-fdea-44a7-ad0e-3a242093b553</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When I started this this blog I decided that I would make at least 2 entries each
month. There's nothing worse than a <strong>static</strong> blog. Needless to say,
several months have passed with no blog entry. So I thought I would take this time
to update the projects and activities that have been taking up my time.
</p>
        <h3>PHAnetwork.com Update
</h3>
        <p>
There has been a lot of progress in the latest version of PHAnetwork.com. Originally,
we had planned to release this in June but now it looks more like late July. A lot
goes into completing and installing a software release and we want to make sure we
hit the ground running with this one. 
</p>
        <p>
We've also added more features and reports to the new release which has delayed things
a bit. In addition, the online help and training tutorials have taken more time than
we anticipated. Suffice it to say however, when the new release is in our users will
benefit greatly. Stay tuned for a release date and some release documentation.
</p>
        <h3>ASP.NET 3.0
</h3>
        <p>
Since updating to Microsoft Visual Studio 2008, I have done very little .NET development.
I've been firmly entrenched in the new release of PHAnetwork.com and haven't had an
opportunity to spend much time there. Once the release is done (and vacations are
over) I can focus on some projects that have been put on the back burner. I'm also
awaiting the 3.0 update to Paul Sheriff's PDSA framework which will be the basis of
many future applications.
</p>
        <h3>Leisure Time
</h3>
        <p>
No, there hasn't been much leisure time lately, but with the warmer weather, one thing
I do look forward to is Radio Controlled flying. I've been interested in building
and flying models since I was a kid but I just got back into this last summer. This
is a hobby that I share with my 10-year-old son. We're not talking about toys here
either. The planes that we fly range in wingspan from 40" to 54" and we're planning
to go bigger. I have also experimented with an onboard video camera that produces
some amazing video. I may post a sample here in the future. 
</p>
        <p>
Okay, there's my blog entry for June. See you next month!!
</p>
        <img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=d18c5568-fdea-44a7-ad0e-3a242093b553" />
      </body>
      <title>Long Time No Blog</title>
      <guid isPermaLink="false">http://www.robertfhill.com/PermaLink,guid,d18c5568-fdea-44a7-ad0e-3a242093b553.aspx</guid>
      <link>http://www.robertfhill.com/2008/06/26/LongTimeNoBlog.aspx</link>
      <pubDate>Thu, 26 Jun 2008 13:04:53 GMT</pubDate>
      <description>&lt;p&gt;
When I started this this blog I decided that I would make at least 2 entries each
month. There's nothing worse than a &lt;strong&gt;static&lt;/strong&gt; blog. Needless to say,
several months have passed with no blog entry. So I thought I would take this time
to update the projects and activities that have been taking up my time.
&lt;/p&gt;
&lt;h3&gt;PHAnetwork.com Update
&lt;/h3&gt;
&lt;p&gt;
There has been a lot of progress in the latest version of PHAnetwork.com. Originally,
we had planned to release this in June but now it looks more like late July. A lot
goes into completing and installing a software release and we want to make sure we
hit the ground running with this one. 
&lt;/p&gt;
&lt;p&gt;
We've also added more features and reports to the new release which has delayed things
a bit. In addition, the online help and training tutorials have taken more time than
we anticipated. Suffice it to say however, when the new release is in our users will
benefit greatly. Stay tuned for a release date and some release documentation.
&lt;/p&gt;
&lt;h3&gt;ASP.NET 3.0
&lt;/h3&gt;
&lt;p&gt;
Since updating to Microsoft Visual Studio 2008, I have done very little .NET development.
I've been firmly entrenched in the new release of PHAnetwork.com and haven't had an
opportunity to spend much time there. Once the release is done (and vacations are
over) I can focus on some projects that have been put on the back burner. I'm also
awaiting the 3.0 update to Paul Sheriff's PDSA framework which will be the basis of
many future applications.
&lt;/p&gt;
&lt;h3&gt;Leisure Time
&lt;/h3&gt;
&lt;p&gt;
No, there hasn't been much leisure time lately, but with the warmer weather, one thing
I do look forward to is Radio Controlled flying. I've been interested in building
and flying models since I was a kid but I just got back into this last summer. This
is a hobby that I share with my 10-year-old son. We're not talking about toys here
either. The planes that we fly range in wingspan from 40" to 54" and we're planning
to go bigger. I have also experimented with an onboard video camera that produces
some amazing video. I may post a sample here in the future. 
&lt;/p&gt;
&lt;p&gt;
Okay, there's my blog entry for June. See you next month!!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=d18c5568-fdea-44a7-ad0e-3a242093b553" /&gt;</description>
      <comments>http://www.robertfhill.com/CommentView,guid,d18c5568-fdea-44a7-ad0e-3a242093b553.aspx</comments>
      <category>Other Stuff</category>
      <category>PHAnetwork.com</category>
      <category>Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.robertfhill.com/Trackback.aspx?guid=344c718e-12b2-4420-87f5-bf4c3e580dd3</trackback:ping>
      <pingback:server>http://www.robertfhill.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.robertfhill.com/PermaLink,guid,344c718e-12b2-4420-87f5-bf4c3e580dd3.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.robertfhill.com/CommentView,guid,344c718e-12b2-4420-87f5-bf4c3e580dd3.aspx</wfw:comment>
      <wfw:commentRss>http://www.robertfhill.com/SyndicationService.asmx/GetEntryCommentsRss?guid=344c718e-12b2-4420-87f5-bf4c3e580dd3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While ASP.NET has been a boon to developers and web application projects alike, it
stands to reason that several "classic" ASP applications are still out there needing
support and updating. I can speak from experience. I have a very large application
that will remain an ASP application for many years to come. The cost-benefit ratio
just doesn't justify migrating this application to ASP.NET. That doesn't mean that
you can't take some steps to spice up those applications and give them similar features
to ASP.NET applications. Here are a few tips to do just that.
</p>
        <h3>Use JavaScript for Form Validation
</h3>
        <p>
When the first ASP applications were launched, developers couldn't count on the availability
of JavaScript to perform form-level validation, but today, almost every browser is
perfectly capable of executing JavaScript code. I use JavaScript to validate dates
as they are entered, to validate and reformat dollar figures and to enable or disable
form controls based on selected options. This makes the user experience much better
when working with data entry forms.
</p>
        <p>
Try standardizing your validation functions to make them as portable as possible.
For example, to create a generic date validation routine, pass the name of the control
to the function as a parameter along with the error message you want to display (or
you can just use a generic error message). Below is an example of what this function
might look like.
</p>
        <p>
 
</p>
        <p>
          <a href="http://www.robertfhill.com/content/binary/WindowsLiveWriter/SupportingClassicASPApplications_7DC8/jsvalidatedate_2.gif">
            <img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="365" alt="jsvalidatedate" src="http://www.robertfhill.com/content/binary/WindowsLiveWriter/SupportingClassicASPApplications_7DC8/jsvalidatedate_thumb.gif" width="461" border="0" />
          </a>
        </p>
        <p>
The <strong>RTrim()</strong> and <strong>isDate()</strong> functions are not standard
JavaScript functions but rather functions that I have written, but you get the general
idea. In the control's <strong>onChange</strong> event you call this function passing
the name of the control, the error message you would like to display and the default
value you would like to assign to the date control in the event that it is invalid.
For example...
</p>
        <p>
&lt;input type="text" size="12" maxlength="10" name="txtDate" id="txtDate" onChange="return
validateDate('txtDate', 'The date entered is not valid', '03/01/2008');"&gt;
</p>
        <p>
Using JavaScript with your ASP applications can greatly enhance the user's experience.
You can extend this technology to validate dollar amounts and reformat them for the
user. While performing form validation using JavaScript is not nearly as simple as
with ASP.NET, there's still no excuse for not introducing some level of control to
your applications.
</p>
        <h4>
        </h4>
        <h3>Use Include Files to Standardize Pages
</h3>
        <p>
In ASP.NET, developers have benefited tremendously from the introduction of Master
pages. Master pages allow you to define one or more master, template pages that all
pages in the application inherit from. When content is changed in the master page,
all descendent pages reflect those changes.
</p>
        <p>
This can be done to a lesser degree in classic ASP with include files. In my applications,
I typically setup a standard banner at the top of the page that identifies the user
logged in along with some standard links. I set this up in a separate ASP and include
this below the opening &lt;Body&gt; tag in every page. For example...
</p>
        <blockquote>
          <p>
&lt;!-- #include file="pageHeading.asp" --&gt;
</p>
        </blockquote>
        <p>
In the "pageHeading.asp", make sure not to include any &lt;HTML&gt;, &lt;HEAD&gt;
or &lt;TITLE&gt; tags since the sole purpose of this file is to be included in other
pages that already contain these elements. Other than that, you can include any HTML
you like and you can also reference external style sheets. You can also include ASP
code that performs tasks such as looking up the user's name in a database or logging
activity.
</p>
        <p>
Although you may be saddled with the task of maintaining ASP applications, there's
no reason you can't enhance these to improve the user experience and to make the management
of the code simpler. 
</p>
        <img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=344c718e-12b2-4420-87f5-bf4c3e580dd3" />
      </body>
      <title>Supporting Classic ASP Applications</title>
      <guid isPermaLink="false">http://www.robertfhill.com/PermaLink,guid,344c718e-12b2-4420-87f5-bf4c3e580dd3.aspx</guid>
      <link>http://www.robertfhill.com/2008/03/21/SupportingClassicASPApplications.aspx</link>
      <pubDate>Fri, 21 Mar 2008 12:23:27 GMT</pubDate>
      <description>&lt;p&gt;
While ASP.NET has been a boon to developers and web application projects alike, it
stands to reason that several "classic" ASP applications are still out there needing
support and updating. I can speak from experience. I have a very large application
that will remain an ASP application for many years to come. The cost-benefit ratio
just doesn't justify migrating this application to ASP.NET. That doesn't mean that
you can't take some steps to spice up those applications and give them similar features
to ASP.NET applications. Here are a few tips to do just that.
&lt;/p&gt;
&lt;h3&gt;Use JavaScript for Form Validation
&lt;/h3&gt;
&lt;p&gt;
When the first ASP applications were launched, developers couldn't count on the availability
of JavaScript to perform form-level validation, but today, almost every browser is
perfectly capable of executing JavaScript code. I use JavaScript to validate dates
as they are entered, to validate and reformat dollar figures and to enable or disable
form controls based on selected options. This makes the user experience much better
when working with data entry forms.
&lt;/p&gt;
&lt;p&gt;
Try standardizing your validation functions to make them as portable as possible.
For example, to create a generic date validation routine, pass the name of the control
to the function as a parameter along with the error message you want to display (or
you can just use a generic error message). Below is an example of what this function
might look like.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.robertfhill.com/content/binary/WindowsLiveWriter/SupportingClassicASPApplications_7DC8/jsvalidatedate_2.gif"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=365 alt=jsvalidatedate src="http://www.robertfhill.com/content/binary/WindowsLiveWriter/SupportingClassicASPApplications_7DC8/jsvalidatedate_thumb.gif" width=461 border=0&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The &lt;strong&gt;RTrim()&lt;/strong&gt; and &lt;strong&gt;isDate()&lt;/strong&gt; functions are not standard
JavaScript functions but rather functions that I have written, but you get the general
idea. In the control's &lt;strong&gt;onChange&lt;/strong&gt; event you call this function passing
the name of the control, the error message you would like to display and the default
value you would like to assign to the date control in the event that it is invalid.
For example...
&lt;/p&gt;
&lt;p&gt;
&amp;lt;input type="text" size="12" maxlength="10" name="txtDate" id="txtDate" onChange="return
validateDate('txtDate', 'The date entered is not valid', '03/01/2008');"&amp;gt;
&lt;/p&gt;
&lt;p&gt;
Using JavaScript with your ASP applications can greatly enhance the user's experience.
You can extend this technology to validate dollar amounts and reformat them for the
user. While performing form validation using JavaScript is not nearly as simple as
with ASP.NET, there's still no excuse for not introducing some level of control to
your applications.
&lt;/p&gt;
&lt;h4&gt;
&lt;/h4&gt;
&lt;h3&gt;Use Include Files to Standardize Pages
&lt;/h3&gt;
&lt;p&gt;
In ASP.NET, developers have benefited tremendously from the introduction of Master
pages. Master pages allow you to define one or more master, template pages that all
pages in the application inherit from. When content is changed in the master page,
all descendent pages reflect those changes.
&lt;/p&gt;
&lt;p&gt;
This can be done to a lesser degree in classic ASP with include files. In my applications,
I typically setup a standard banner at the top of the page that identifies the user
logged in along with some standard links. I set this up in a separate ASP and include
this below the opening &amp;lt;Body&amp;gt; tag in every page. For example...
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&amp;lt;!-- #include file="pageHeading.asp" --&amp;gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
In the "pageHeading.asp", make sure not to include any &amp;lt;HTML&amp;gt;, &amp;lt;HEAD&amp;gt;
or &amp;lt;TITLE&amp;gt; tags since the sole purpose of this file is to be included in other
pages that already contain these elements. Other than that, you can include any HTML
you like and you can also reference external style sheets. You can also include ASP
code that performs tasks such as looking up the user's name in a database or logging
activity.
&lt;/p&gt;
&lt;p&gt;
Although you may be saddled with the task of maintaining ASP applications, there's
no reason you can't enhance these to improve the user experience and to make the management
of the code simpler. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=344c718e-12b2-4420-87f5-bf4c3e580dd3" /&gt;</description>
      <comments>http://www.robertfhill.com/CommentView,guid,344c718e-12b2-4420-87f5-bf4c3e580dd3.aspx</comments>
      <category>Programming</category>
      <category>VB.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.robertfhill.com/Trackback.aspx?guid=44de6013-4d01-41cc-8838-c2f4a6577c75</trackback:ping>
      <pingback:server>http://www.robertfhill.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.robertfhill.com/PermaLink,guid,44de6013-4d01-41cc-8838-c2f4a6577c75.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.robertfhill.com/CommentView,guid,44de6013-4d01-41cc-8838-c2f4a6577c75.aspx</wfw:comment>
      <wfw:commentRss>http://www.robertfhill.com/SyndicationService.asmx/GetEntryCommentsRss?guid=44de6013-4d01-41cc-8838-c2f4a6577c75</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <h3>Cenozoic Period
</h3>
        <p>
In previous posts I described my historical computer background during the Paleozoic
and Mesozoic periods. In this section, I present the Cenozoic period and bring you
up to the current time.
</p>
        <h4>Clipping Along
</h4>
        <p>
Shortly after leaving Genesis Business Systems, I went to work in the family construction
business putting my accounting skills to work as the company comptroller. I also put
my computer skills to work to automate the company. I started by putting in Accounting
Software (early version of DAC Easy Accounting) and some job costing software. I also
learned professional construction estimating and attended a school to learn the finer
points. It was interesting work and I later put bids together for some large construction
projects including schools and hotels. 
</p>
        <p>
While learning my estimating skills I realized that software would greatly improve
the estimating process. I had been working with Ashton-Tate's dBase III while awaiting
the release of dBase IV when I heard about a dBase III compiler called Clipper. I
did some reading about Clipper on CompuServe (remember that!) and discovered that
it might be worth the investment. I went to the nearest Egghead Software store (remember
them also!) and purchased a copy of Nantucket Clipper '87. 
</p>
        <p>
          <a href="http://www.robertfhill.com/content/binary/WindowsLiveWriter/ADinosaurComesofAgePartIII_77AC/clippers87_2.jpg">
            <img style="border-width: 0px;" alt="clippers87" src="http://www.robertfhill.com/content/binary/WindowsLiveWriter/ADinosaurComesofAgePartIII_77AC/clippers87_thumb.jpg" border="0" height="244" width="197" />
          </a>
        </p>
        <p>
Clipper took dBase III code and compiled it into a standalone executable that could
be distributed royalty free. More importantly, the resulting programs executed much
faster than their interpreted dBase III counterparts. I worked through some of the
examples and quickly started to make progress. With the help of a Clipper guide written
by Art Fuller, I was able to put together pull-down menus, selection grids and reports.
The end result of my efforts was <strong>Ideal Estimator.</strong> This application
was an assembly-based estimating system for drywall and plastering contractors that
would handle construction assemblies, take-offs, material lists, estimated labor reports
and bid quotes. I tried briefly to market this but found out early on that there was
genuine apprehension when it came to computers in the construction industry, particularly
with subcontractors.
</p>
        <p>
Nevertheless, the family business continued to use the product up until a few years
ago and it did build some very important job skills that would land me my next job.
</p>
        <h4>Back to the Industry
</h4>
        <p>
After about 2 years in the family business I decided I needed re-enter the job market.
I went to a placement specialist (aka head hunter) and got 2 interviews. The first
was with a small startup company that was developing a product in dBase IV. After
my first interview in years, I left totally convinced that I had the job. The interviewer
was impressed with my background and with my software development experience. However,
for some unknown reason, he went in a different direction and I was left looking for
the next interview.
</p>
        <p>
That interview came in the form of a Gas Utility Company in Boston. They were looking
for a Clipper Programmer. During my first interview, I demonstrated <strong>Ideal
Estimator</strong> and from that point on the company was sold. After 2 more interviews
I was hired and started work for Algonquin Gas Transmission Company (AGT) in January
of 1991. 
</p>
        <p>
AGT was a small fish in a big pond of Natural Gas Utility companies. They had been
purchased twice in the previous 10 years. Nevertheless, they had an amazing amount
of autonomy and the development environment there was rich. I started working on Purchasing
Applications since Purchasing was a huge part of their business. I worked almost exclusively
on Purchasing applications for the next 2 years and honed my skills in Clipper 87
and eventually Clipper 5.01 and Clipper 5.2. Through AGT, I attended 3 Clipper development
conferences where I learned even more and was able to interact with Clipper Developers
from all over the world. The Clipper community was dedicated to their toolset and
to this day, they are proud to announce their heritage. It was during my Clipper days
that I first met Paul Sheriff (PDSA, Inc.). 
</p>
        <p>
After 2 years at AGT, I started to see the writing on the wall. More and more control
was gradually taken away from AGT from their parent company. The prospects of staying
at AGT until retirement quickly eroded and I decided to make my break at the end of
1992. In January of 1993, I made the transition from employee to consultant. As is
often the case, AGT hired me back as a consultant and paid me a much higher hourly
rate. As fate would have it, the IT staff at AGT was quickly reduced until eventually,
I was the only programmer working on AGT applications. This went on for about 8 years.
</p>
        <h4>Public Housing Beckons
</h4>
        <p>
In 1993, my long-time friend (and brother-in-law) joined my consulting firm. We had
the brilliant idea of developing a Real Estate application aimed at residential Real
Estate firms. The application was designed as a combination of software and service
where subscribing agencies would receive updated listings nightly and would then be
able to present those to their clients each day. The software included a slide-show
of the home's interior and exterior and the agency could print out a full-color report
showing the specifications on the home as well as all of the images. It was fairly
advanced for it's time (circa 1994) but we quickly found out that Real Estate agencies
didn't like to work that way. 
</p>
        <p>
While the application seemed doomed, a friend of ours happened by our booth at a trade
show. We gave him a quick demo and the wheels in his head started turning. He was
an employee of a Housing Authority and it was his job to find software to manage their
facilities. He was looking for a custom-built solution but his main requirement was
that the software be easy to use. He brought an employee to our office to view the
Real Estate application and within minutes the employee was at ease. He could use
software like that.
</p>
        <p>
We submitted a proposal to develop 3 modules for the Brockton Housing Authority. They
accepted the proposal and from that point on our feet were firmly entrenched in the
Public Housing Industry. The initial applications were developed in Visual Basic 3.0
and utilized a handheld computer with an integrated barcode scanner to facilitate
the transfer of Inventory. 
</p>
        <p>
Three years later, we entered into an agreement with Brockton to develop a full-financial
and tenant management application. The software was developed in Borland's Delphi,
a Pascal-based 32-bit Windows development environment. Pascal was very easy for me
to adapt to since it was the base language used at Bridgewater State College.
</p>
        <p>
After several years working with Public Housing Agencies we began to look for alternative
ways for smaller agencies to utilize information technology. That brought us to the
Internet. PHAnetwork.com was born in 2002 as a tool to allow smaller Housing Agencies
(with likewise smaller budgets) to manage their day-to-day operations. It was (and
still is) written using Active Server Pages (ASP), JavaScript and a host of 32-bit
Windows modules written in Visual Basic 6. The application has far exceeded our expectations
at the outset and at this juncture in 2008 we are on the verge of unleashing it nationwide. 
</p>
        <h4>From All Fours to Standing Tall
</h4>
        <p>
The evolution is complete but there are still hurdles ahead. Today, I develop in ASP.NET
using VB.Net. I use an application framework developed by Paul Sheriff and Associates
(see Clipper days above) which provides a solid foundation for developing Web applications.
If you are an independent ASP.NET programmer, I strongly recommend you check it out.
</p>
        <p>
This has been an enjoyable exercise for me as I recall the times, tools and people
from my computer programming past. Some areas I hadn't thought about in over a decade
seem like just yesterday. I'm sure years from now, the memories of writing these articles
will have the same effect.
</p>
        <p>
Please feel free to comment on this series of articles. I can take it. As Dirty Harry
said, "Go ahead, make my day!"
</p>
        <img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=44de6013-4d01-41cc-8838-c2f4a6577c75" />
      </body>
      <title>A Dinosaur Comes of Age (Part III)</title>
      <guid isPermaLink="false">http://www.robertfhill.com/PermaLink,guid,44de6013-4d01-41cc-8838-c2f4a6577c75.aspx</guid>
      <link>http://www.robertfhill.com/2008/03/08/ADinosaurComesOfAgePartIII.aspx</link>
      <pubDate>Sat, 08 Mar 2008 12:22:19 GMT</pubDate>
      <description>&lt;h3&gt;Cenozoic Period
&lt;/h3&gt;
&lt;p&gt;
In previous posts I described my historical computer background during the Paleozoic
and Mesozoic periods. In this section, I present the Cenozoic period and bring you
up to the current time.
&lt;/p&gt;
&lt;h4&gt;Clipping Along
&lt;/h4&gt;
&lt;p&gt;
Shortly after leaving Genesis Business Systems, I went to work in the family construction
business putting my accounting skills to work as the company comptroller. I also put
my computer skills to work to automate the company. I started by putting in Accounting
Software (early version of DAC Easy Accounting) and some job costing software. I also
learned professional construction estimating and attended a school to learn the finer
points. It was interesting work and I later put bids together for some large construction
projects including schools and hotels. 
&lt;/p&gt;
&lt;p&gt;
While learning my estimating skills I realized that software would greatly improve
the estimating process. I had been working with Ashton-Tate's dBase III while awaiting
the release of dBase IV when I heard about a dBase III compiler called Clipper. I
did some reading about Clipper on CompuServe (remember that!) and discovered that
it might be worth the investment. I went to the nearest Egghead Software store (remember
them also!) and purchased a copy of Nantucket Clipper '87. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.robertfhill.com/content/binary/WindowsLiveWriter/ADinosaurComesofAgePartIII_77AC/clippers87_2.jpg"&gt;&lt;img style="border-width: 0px;" alt="clippers87" src="http://www.robertfhill.com/content/binary/WindowsLiveWriter/ADinosaurComesofAgePartIII_77AC/clippers87_thumb.jpg" border="0" height="244" width="197"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Clipper took dBase III code and compiled it into a standalone executable that could
be distributed royalty free. More importantly, the resulting programs executed much
faster than their interpreted dBase III counterparts. I worked through some of the
examples and quickly started to make progress. With the help of a Clipper guide written
by Art Fuller, I was able to put together pull-down menus, selection grids and reports.
The end result of my efforts was &lt;strong&gt;Ideal Estimator.&lt;/strong&gt; This application
was an assembly-based estimating system for drywall and plastering contractors that
would handle construction assemblies, take-offs, material lists, estimated labor reports
and bid quotes. I tried briefly to market this but found out early on that there was
genuine apprehension when it came to computers in the construction industry, particularly
with subcontractors.
&lt;/p&gt;
&lt;p&gt;
Nevertheless, the family business continued to use the product up until a few years
ago and it did build some very important job skills that would land me my next job.
&lt;/p&gt;
&lt;h4&gt;Back to the Industry
&lt;/h4&gt;
&lt;p&gt;
After about 2 years in the family business I decided I needed re-enter the job market.
I went to a placement specialist (aka head hunter) and got 2 interviews. The first
was with a small startup company that was developing a product in dBase IV. After
my first interview in years, I left totally convinced that I had the job. The interviewer
was impressed with my background and with my software development experience. However,
for some unknown reason, he went in a different direction and I was left looking for
the next interview.
&lt;/p&gt;
&lt;p&gt;
That interview came in the form of a Gas Utility Company in Boston. They were looking
for a Clipper Programmer. During my first interview, I demonstrated &lt;strong&gt;Ideal
Estimator&lt;/strong&gt; and from that point on the company was sold. After 2 more interviews
I was hired and started work for Algonquin Gas Transmission Company (AGT) in January
of 1991. 
&lt;/p&gt;
&lt;p&gt;
AGT was a small fish in a big pond of Natural Gas Utility companies. They had been
purchased twice in the previous 10 years. Nevertheless, they had an amazing amount
of autonomy and the development environment there was rich. I started working on Purchasing
Applications since Purchasing was a huge part of their business. I worked almost exclusively
on Purchasing applications for the next 2 years and honed my skills in Clipper 87
and eventually Clipper 5.01 and Clipper 5.2. Through AGT, I attended 3 Clipper development
conferences where I learned even more and was able to interact with Clipper Developers
from all over the world. The Clipper community was dedicated to their toolset and
to this day, they are proud to announce their heritage. It was during my Clipper days
that I first met Paul Sheriff (PDSA, Inc.). 
&lt;/p&gt;
&lt;p&gt;
After 2 years at AGT, I started to see the writing on the wall. More and more control
was gradually taken away from AGT from their parent company. The prospects of staying
at AGT until retirement quickly eroded and I decided to make my break at the end of
1992. In January of 1993, I made the transition from employee to consultant. As is
often the case, AGT hired me back as a consultant and paid me a much higher hourly
rate. As fate would have it, the IT staff at AGT was quickly reduced until eventually,
I was the only programmer working on AGT applications. This went on for about 8 years.
&lt;/p&gt;
&lt;h4&gt;Public Housing Beckons
&lt;/h4&gt;
&lt;p&gt;
In 1993, my long-time friend (and brother-in-law) joined my consulting firm. We had
the brilliant idea of developing a Real Estate application aimed at residential Real
Estate firms. The application was designed as a combination of software and service
where subscribing agencies would receive updated listings nightly and would then be
able to present those to their clients each day. The software included a slide-show
of the home's interior and exterior and the agency could print out a full-color report
showing the specifications on the home as well as all of the images. It was fairly
advanced for it's time (circa 1994) but we quickly found out that Real Estate agencies
didn't like to work that way. 
&lt;/p&gt;
&lt;p&gt;
While the application seemed doomed, a friend of ours happened by our booth at a trade
show. We gave him a quick demo and the wheels in his head started turning. He was
an employee of a Housing Authority and it was his job to find software to manage their
facilities. He was looking for a custom-built solution but his main requirement was
that the software be easy to use. He brought an employee to our office to view the
Real Estate application and within minutes the employee was at ease. He could use
software like that.
&lt;/p&gt;
&lt;p&gt;
We submitted a proposal to develop 3 modules for the Brockton Housing Authority. They
accepted the proposal and from that point on our feet were firmly entrenched in the
Public Housing Industry. The initial applications were developed in Visual Basic 3.0
and utilized a handheld computer with an integrated barcode scanner to facilitate
the transfer of Inventory. 
&lt;/p&gt;
&lt;p&gt;
Three years later, we entered into an agreement with Brockton to develop a full-financial
and tenant management application. The software was developed in Borland's Delphi,
a Pascal-based 32-bit Windows development environment. Pascal was very easy for me
to adapt to since it was the base language used at Bridgewater State College.
&lt;/p&gt;
&lt;p&gt;
After several years working with Public Housing Agencies we began to look for alternative
ways for smaller agencies to utilize information technology. That brought us to the
Internet. PHAnetwork.com was born in 2002 as a tool to allow smaller Housing Agencies
(with likewise smaller budgets) to manage their day-to-day operations. It was (and
still is) written using Active Server Pages (ASP), JavaScript and a host of 32-bit
Windows modules written in Visual Basic 6. The application has far exceeded our expectations
at the outset and at this juncture in 2008 we are on the verge of unleashing it nationwide. 
&lt;/p&gt;
&lt;h4&gt;From All Fours to Standing Tall
&lt;/h4&gt;
&lt;p&gt;
The evolution is complete but there are still hurdles ahead. Today, I develop in ASP.NET
using VB.Net. I use an application framework developed by Paul Sheriff and Associates
(see Clipper days above) which provides a solid foundation for developing Web applications.
If you are an independent ASP.NET programmer, I strongly recommend you check it out.
&lt;/p&gt;
&lt;p&gt;
This has been an enjoyable exercise for me as I recall the times, tools and people
from my computer programming past. Some areas I hadn't thought about in over a decade
seem like just yesterday. I'm sure years from now, the memories of writing these articles
will have the same effect.
&lt;/p&gt;
&lt;p&gt;
Please feel free to comment on this series of articles. I can take it. As Dirty Harry
said, "Go ahead, make my day!"
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=44de6013-4d01-41cc-8838-c2f4a6577c75" /&gt;</description>
      <comments>http://www.robertfhill.com/CommentView,guid,44de6013-4d01-41cc-8838-c2f4a6577c75.aspx</comments>
      <category>Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.robertfhill.com/Trackback.aspx?guid=8890975c-9b90-4c51-bd00-bb83a31faa6e</trackback:ping>
      <pingback:server>http://www.robertfhill.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.robertfhill.com/PermaLink,guid,8890975c-9b90-4c51-bd00-bb83a31faa6e.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.robertfhill.com/CommentView,guid,8890975c-9b90-4c51-bd00-bb83a31faa6e.aspx</wfw:comment>
      <wfw:commentRss>http://www.robertfhill.com/SyndicationService.asmx/GetEntryCommentsRss?guid=8890975c-9b90-4c51-bd00-bb83a31faa6e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <h3>Mesozoic Period
</h3>
        <p>
In the first part of this series I discussed my introduction to the world of computers
and computer programming. In this section, I continue with my college days and my
early days developing business software.
</p>
        <h4>
          <strong>The computer gets "Personal".</strong>
        </h4>
        <p>
With the proliferation of the personal computer in the early 1980's, and on the recommendation
of a friend, I purchased my first personal computer, the Commodore 64. The built-in
language was Commodore Basic, and as a Computer Science major at Bridgewater State
College we were told that "BASIC" was not a real programming language, so I kept my
new purchase to myself. 
</p>
        <p>
          <a href="http://www.robertfhill.com/content/binary/WindowsLiveWriter/ADinosaurComesofAgePartII_6DFD/commodore64_2.jpg">
            <img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="138" alt="commodore64" src="http://www.robertfhill.com/content/binary/WindowsLiveWriter/ADinosaurComesofAgePartII_6DFD/commodore64_thumb.jpg" width="244" border="0" />
          </a>
        </p>
        <p>
In no time I was writing and saving programs. One of my first projects was a program
that tracked team statistics for my softball team. Coincidentally, I lead the team
in RBI that season! (hmmm). My friend (and current business partner) was also cranking
out programs on the Commodore. To his credit, he had a checkbook manager before Intuit
hit the market with Quicken. His claim to fame was a program to select the winning
dog at the dog track. Suffice it to say, the coin flip was just as effective.
</p>
        <p>
With the purchase of a rinky-dink modem, I was connecting to the Bridgewater State
College computer network from the friendly confounds of my bedroom. This was a huge
benefit as computer time in the lab was limited and the hours of operation were fairly
restricted. This gave me unlimited access and the ability to complete assignments
when the lab was closed. 
</p>
        <h4>Time to Make a Living
</h4>
        <p>
As my senior year was winding down, it was time to start thinking about getting a
real job programming computers. Fortunately, my long-time friend's brother was starting
a new computer company (Genesis Business Systems) and he needed programmers. I did
my Senior Intern with his company developing business software on the Qantel Minicomputer
using (guess what) the BASIC programming language. Qantel was a California-based company
that had it's own version of BASIC called QIC-Basic (QIC standing for Qantel Interactive
Code). The software we developed was for the long-term care industry.
</p>
        <p>
One of my additional duties during my Internship was volunteering for backup duties.
The Qantel system was backed up each night on magnetic real-to-real tapes. The tape
machine was about the size of a dishwasher and the write-speed was incredibly slow.
The backup of the entire system spanned a little more than 2 tapes and took about
3 hours. Needless to say, I had plenty of time to complete school assignments while
waiting for each tape to reach its end. 
</p>
        <p>
After graduation I stayed on at Genesis and slowly climbed the corporate ladder. The
software wasn't very flashy but we could control screen positioning which meant we
could layout screens and incorporate software standards. The users had plenty of choices
too. They could choose either a green screen or an amber screen! 
</p>
        <p>
In early 1987, I purchased my first IBM-compatible computer (nobody actually bought
in IBM PC did they?). It was from a startup computer maker from Texas called PC's
Limited (shortly after they would change their name to simply Dell Computer). It had
8MB of memory and a whopping 20MB hard drive. The processor was an 80286 processor
running at 8/12mHz. Let me tell  you, it was a screamer! 
</p>
        <p>
I started writing small applications in <strong>C</strong> and even created a small
device driver that allowed personal computers to be used as terminals on Qantel Systems.
(Thinking back, had I marketed that I may have made hundreds of dollars!). One of
the nice features of this early Dell computer was that at any given time it could
freeze-up at the drop of a hat. It was also very noisy, especially when writing to
the fixed disk. The slurring sound of the 5-1/4" disk drive was soothing though!
</p>
        <p>
The following year, Dell started shipping more powerful computers and I convinced
my company to become one of the first Value Added Resellers (VAR) for Dell Computer.
Some of the key players from Dell came out to our offices to give us the run-down
on the Dell VAR program and invited us to visit their headquarters and to meet Michael
Dell (who was still a virtual unknown). Along with some of the first 80386 computers
we received was a software application from Microsoft called Windows. After a cursory
glance at the box, I came to the conclusion that it was insignificant and tossed it
onto a shelf where it continued to collect dust. (To my defense, Windows never became
a really useful tool until version 3.0 and even at that, it was an MS-DOS shell).
</p>
        <p>
Around that same time, Genesis got involved in the retail automation business. I started
working with a handheld data collection device that used an acoustic modem to transmit
data to a Qantel system. In order to transmit the data, the device had to be strapped
to the mouthpiece of a standard phone. Then, the number was dialed and the transmission
went through. Unfortunately, the phones in our own office did not work with the modem
in the device so in order to do my testing, I had to drive to the nearest strip-mall
and use a pay-phone to send a data transmission. My first test each time was usually
interrupted by the receptionist answering the data line ("Good Morning, Genesis Business
Systems") at which point I'd have to shout over the acoustic coupler "Hang up and
don't answer next time"). 
</p>
        <h4>Quite an Impact
</h4>
        <p>
I would be remiss if I didn't mention the fun we had with the wide-carriage impact
printers of the 1980's. The printers were slow and noisy and they required great precision
to get the paper aligned so that it would feed properly through the carriage. My favorite
office printer was a Manessman-Tally printer that was very fast for it's day. It was
also liked to eat and shred green-bar paper. When the printer was at full-speed it
did a sort of horizontal dance similar to an out-of-control washing machine. 
</p>
        <p>
To make things really interesting, we had the pleasure of dealing with multi-part
forms. I remember one such occasion printing W2 forms for a client. It took 2 of us
to complete the job for this client (with over 100 employees). One had to watch the
forms to make sure they didn't come off-line from the pins and the other had to be
ready to toggle the "on-line" button so the printer would stop. Then we'd have to
adjust the forms back in place to the precise location where it went out of align
and hit the on-line button to resume the printing. This occurred about once every
10 forms.
</p>
        <h4>Departure
</h4>
        <h4>
        </h4>
        <p>
After a little over 2 years with Genesis, I started to get itchy feet. I needed a
change and so I wrote my first-ever letter of resignation. I had learned a lot in
those years with Genesis but in retrospect I still had a lot more to learn. 
</p>
        <p>
In the next article I discuss my introduction to the Clipper programming language
and my first attempts at Windows Applications.
</p>
        <img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=8890975c-9b90-4c51-bd00-bb83a31faa6e" />
      </body>
      <title>A Dinosaur Comes of Age (Part II)</title>
      <guid isPermaLink="false">http://www.robertfhill.com/PermaLink,guid,8890975c-9b90-4c51-bd00-bb83a31faa6e.aspx</guid>
      <link>http://www.robertfhill.com/2008/03/01/ADinosaurComesOfAgePartII.aspx</link>
      <pubDate>Sat, 01 Mar 2008 12:59:35 GMT</pubDate>
      <description>&lt;h3&gt;Mesozoic Period
&lt;/h3&gt;
&lt;p&gt;
In the first part of this series I discussed my introduction to the world of computers
and computer programming. In this section, I continue with my college days and my
early days developing business software.
&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;The computer gets "Personal".&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
With the proliferation of the personal computer in the early 1980's, and on the recommendation
of a friend, I purchased my first personal computer, the Commodore 64. The built-in
language was Commodore Basic, and as a Computer Science major at Bridgewater State
College we were told that "BASIC" was not a real programming language, so I kept my
new purchase to myself. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.robertfhill.com/content/binary/WindowsLiveWriter/ADinosaurComesofAgePartII_6DFD/commodore64_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=138 alt=commodore64 src="http://www.robertfhill.com/content/binary/WindowsLiveWriter/ADinosaurComesofAgePartII_6DFD/commodore64_thumb.jpg" width=244 border=0&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
In no time I was writing and saving programs. One of my first projects was a program
that tracked team statistics for my softball team. Coincidentally, I lead the team
in RBI that season! (hmmm). My friend (and current business partner) was also cranking
out programs on the Commodore. To his credit, he had a checkbook manager before Intuit
hit the market with Quicken. His claim to fame was a program to select the winning
dog at the dog track. Suffice it to say, the coin flip was just as effective.
&lt;/p&gt;
&lt;p&gt;
With the purchase of a rinky-dink modem, I was connecting to the Bridgewater State
College computer network from the friendly confounds of my bedroom. This was a huge
benefit as computer time in the lab was limited and the hours of operation were fairly
restricted. This gave me unlimited access and the ability to complete assignments
when the lab was closed. 
&lt;/p&gt;
&lt;h4&gt;Time to Make a Living
&lt;/h4&gt;
&lt;p&gt;
As my senior year was winding down, it was time to start thinking about getting a
real job programming computers. Fortunately, my long-time friend's brother was starting
a new computer company (Genesis Business Systems) and he needed programmers. I did
my Senior Intern with his company developing business software on the Qantel Minicomputer
using (guess what) the BASIC programming language. Qantel was a California-based company
that had it's own version of BASIC called QIC-Basic (QIC standing for Qantel Interactive
Code). The software we developed was for the long-term care industry.
&lt;/p&gt;
&lt;p&gt;
One of my additional duties during my Internship was volunteering for backup duties.
The Qantel system was backed up each night on magnetic real-to-real tapes. The tape
machine was about the size of a dishwasher and the write-speed was incredibly slow.
The backup of the entire system spanned a little more than 2 tapes and took about
3 hours. Needless to say, I had plenty of time to complete school assignments while
waiting for each tape to reach its end. 
&lt;/p&gt;
&lt;p&gt;
After graduation I stayed on at Genesis and slowly climbed the corporate ladder. The
software wasn't very flashy but we could control screen positioning which meant we
could layout screens and incorporate software standards. The users had plenty of choices
too. They could choose either a green screen or an amber screen! 
&lt;/p&gt;
&lt;p&gt;
In early 1987, I purchased my first IBM-compatible computer (nobody actually bought
in IBM PC did they?). It was from a startup computer maker from Texas called PC's
Limited (shortly after they would change their name to simply Dell Computer). It had
8MB of memory and a whopping 20MB hard drive. The processor was an 80286 processor
running at 8/12mHz. Let me tell&amp;nbsp; you, it was a screamer! 
&lt;/p&gt;
&lt;p&gt;
I started writing small applications in &lt;strong&gt;C&lt;/strong&gt; and even created a small
device driver that allowed personal computers to be used as terminals on Qantel Systems.
(Thinking back, had I marketed that I may have made hundreds of dollars!). One of
the nice features of this early Dell computer was that at any given time it could
freeze-up at the drop of a hat. It was also very noisy, especially when writing to
the fixed disk. The slurring sound of the 5-1/4" disk drive was soothing though!
&lt;/p&gt;
&lt;p&gt;
The following year, Dell started shipping more powerful computers and I convinced
my company to become one of the first Value Added Resellers (VAR) for Dell Computer.
Some of the key players from Dell came out to our offices to give us the run-down
on the Dell VAR program and invited us to visit their headquarters and to meet Michael
Dell (who was still a virtual unknown). Along with some of the first 80386 computers
we received was a software application from Microsoft called Windows. After a cursory
glance at the box, I came to the conclusion that it was insignificant and tossed it
onto a shelf where it continued to collect dust. (To my defense, Windows never became
a really useful tool until version 3.0 and even at that, it was an MS-DOS shell).
&lt;/p&gt;
&lt;p&gt;
Around that same time, Genesis got involved in the retail automation business. I started
working with a handheld data collection device that used an acoustic modem to transmit
data to a Qantel system. In order to transmit the data, the device had to be strapped
to the mouthpiece of a standard phone. Then, the number was dialed and the transmission
went through. Unfortunately, the phones in our own office did not work with the modem
in the device so in order to do my testing, I had to drive to the nearest strip-mall
and use a pay-phone to send a data transmission. My first test each time was usually
interrupted by the receptionist answering the data line ("Good Morning, Genesis Business
Systems") at which point I'd have to shout over the acoustic coupler "Hang up and
don't answer next time"). 
&lt;/p&gt;
&lt;h4&gt;Quite an Impact
&lt;/h4&gt;
&lt;p&gt;
I would be remiss if I didn't mention the fun we had with the wide-carriage impact
printers of the 1980's. The printers were slow and noisy and they required great precision
to get the paper aligned so that it would feed properly through the carriage. My favorite
office printer was a Manessman-Tally printer that was very fast for it's day. It was
also liked to eat and shred green-bar paper. When the printer was at full-speed it
did a sort of horizontal dance similar to an out-of-control washing machine. 
&lt;/p&gt;
&lt;p&gt;
To make things really interesting, we had the pleasure of dealing with multi-part
forms. I remember one such occasion printing W2 forms for a client. It took 2 of us
to complete the job for this client (with over 100 employees). One had to watch the
forms to make sure they didn't come off-line from the pins and the other had to be
ready to toggle the "on-line" button so the printer would stop. Then we'd have to
adjust the forms back in place to the precise location where it went out of align
and hit the on-line button to resume the printing. This occurred about once every
10 forms.
&lt;/p&gt;
&lt;h4&gt;Departure
&lt;/h4&gt;
&lt;h4&gt;
&lt;/h4&gt;
&lt;p&gt;
After a little over 2 years with Genesis, I started to get itchy feet. I needed a
change and so I wrote my first-ever letter of resignation. I had learned a lot in
those years with Genesis but in retrospect I still had a lot more to learn. 
&lt;/p&gt;
&lt;p&gt;
In the next article I discuss my introduction to the Clipper programming language
and my first attempts at Windows Applications.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=8890975c-9b90-4c51-bd00-bb83a31faa6e" /&gt;</description>
      <comments>http://www.robertfhill.com/CommentView,guid,8890975c-9b90-4c51-bd00-bb83a31faa6e.aspx</comments>
      <category>Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.robertfhill.com/Trackback.aspx?guid=0cfcfd60-05fd-4916-942b-f9a438a9e8d5</trackback:ping>
      <pingback:server>http://www.robertfhill.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.robertfhill.com/PermaLink,guid,0cfcfd60-05fd-4916-942b-f9a438a9e8d5.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.robertfhill.com/CommentView,guid,0cfcfd60-05fd-4916-942b-f9a438a9e8d5.aspx</wfw:comment>
      <wfw:commentRss>http://www.robertfhill.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0cfcfd60-05fd-4916-942b-f9a438a9e8d5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <h4>
        </h4>
        <h3>Paleozoic Period
</h3>
        <p designtimesp="21534">
I am a Dinosaur! Like Dirty Harry was a Dinosaur to his law enforcement peers, I am
a Dinosaur to my computer programming peers. I discovered this the other day when
talking with another (cough) younger programmer who was amazed to find out that I
actually went to college to learn computer programming. I didn't have the stomach
to admit to him that in college my assignments were turned in on wide, green-bar paper!
</p>
        <p designtimesp="21535">
          <br designtimesp="21536" />
I have been writing computer programs professionally for 22 years now. To put this
archeological period in perspective, if I were a piece of mail, at the outset I would
have been delivered by the Pony Express whereas today I am delivered but Jets and
hybrid vehicles (albeit to the wrong address)!
</p>
        <p designtimesp="21537">
          <br designtimesp="21538" />
I find that a little self-perspective is helpful so at this juncture in my long career
I felt it beneficial to review my humble beginnings. My first exposure to computers
was my sophomore year in high school (circa 1978) when we were asked to type in basic
programs on a teletype machine. If you've ever seen an old movie (Dr. Strangelove
comes to mind) and a government official is awaiting news, a noisy typewriter starts
to rattle and shake as it spits out a continuous feed of rolled paper with barely
decipherable print. That is the teletype machine.
</p>
        <p designtimesp="21539">
          <img src="images/teletype.jpg" />
        </p>
        <p designtimesp="21539">
          <br designtimesp="21540" />
Basically, you would type in a line of program code and then press a key and the characters
that you typed would be repeated on the page. If you mistyped you would have to completely
retype the line. This was done repeatedly until you had stored your basic program
in the computer's memory.  Then you would process the job (run the program in
today's parlance) and hope that everything executed properly and you got the desired
results, again in the form of type-written output.
</p>
        <p designtimesp="21541">
Most of the code written involved simple math problems or problem solving but we also
developed games and everyone's favorite, "banners". One task was to write a program
that would print out your last name in block letters formed by a series of repeated
X's. I felt bad for my friend John Poulioupolis but he was up for the task!
</p>
        <p designtimesp="21542">
The glamour of all of this inspired me to declare Computer Science my college major.
I enrolled at Bridgewater State College in (coincidently) Bridgewater, Massachusetts.
During freshman orientation we were taken to the computer lab for instructions on
logging into the campus computer network. The room was filled with Decwriters (the
successor to the teletype which I was familiar with) and a few small television screens,
which I only assumed was for keeping up with the latest on daytime television drama.
These devices couldn't possibly be used for computer access. I slid comfortably into
familiar territory at the console of a Decwriter and began testing my login.
</p>
        <p designtimesp="21543">
I continued to use the Decwriter for the first few weeks until one day they were all
in use and the only terminal available in the lab was one of those strange computer
screens. Feeling somewhat like Indiana Jones, I sat in front of the machine and stared
at the peculiar green blinking light (now known as a cursor). Apparently, this wasn't
a television but a Cathode Ray Tube (CRT) terminal. I started typing on the attached
keyboard and was able to logon. Suddenly the text appeared before me just as it had
on my faithful Decwriter. Well, now I was hooked! Imagine, interacting with something
other than a typewriter console. Now this was progress!
</p>
        <p designtimesp="21544">
During my sophomore year I had the distinct pleasure of experiencing the COBOL programming
language for the first time. In addition to learning this fascinating, English-based
language, I had the opportunity to work with IBM punched cards. Imagine my delight
when I was asked to type an entire COBOL program on punched cards including the data
source. If you didn't know (and how can you since COBOL is now in the Smithsonian
Institute) COBOL programs have a tendency of being very large. What would have been
an hour on a CRT took nearly four on the IBM machine. After this long exercise, I
had to enclose the large deck of cards in a piece of paper donning my name and student
ID. It was then deposited in a box where it would await processing. This was typically
a 24-hour process so if there was a single error in my program I wouldn't know until
the next day. Then I would have to correct the card or cards in error and resubmit
the job.
</p>
        <p designtimesp="21544">
          <img src="images\ibm026.jpg" />
        </p>
        <p designtimesp="21545">
My favorite professor at Bridgewater State College was Dr. Zon I. Chang. He was also
the most difficult. I remember his speech (in broken English) to us as freshman when
he warned us not to copy another student's program.
</p>
        <blockquote dir="ltr" style="margin-right: 0px" designtimesp="21546">
          <p designtimesp="21547">
"You copy program from friend, you better get job with friend, else you don't know
what you are doing!"
</p>
        </blockquote>
        <p dir="ltr" designtimesp="21548">
He was also a stickler for accuracy. Every program that we turned in had to be documented
a certain way. We would lose points on our assignments if comments were not accurate
and consistent. He did instill in me some very good programming habits which I carry
to this day.
</p>
        <p dir="ltr" designtimesp="21549">
The Computer Science program at BSC was difficult and thorough. For my freshman orientation
I sat in a room with about 150 other students. When I received my diploma, I was accompanied
by about 25. I take pride in having endured and fought through the difficulties and
challenges. 
</p>
        <p dir="ltr" designtimesp="21549">
The environment for the BSC Computer Science program was largely scientific and focused
very little on providing business solutions. Ironically, since graduation I have specialized
in the development of business systems. Our senior projects focused on building compilers,
assemblers and operating systems. We studied complex algorithms, data structures and
examined probability and statistics. It was a different world in the early 1980's
and the tools we used to solve problems seem like the hand axe to a modern carpenter.
</p>
        <p dir="ltr" designtimesp="21549">
So here we are back in 2008. I'm working on my blog, subscribing to RSS feeds and
reading and sending email on my cell phone. We develop applications that run entirely
on the Internet and work with handheld communications devices that allow users to
update information real-time wherever they are. Yes, I am a Dinosaur. A Dinosaur who
has evolved and escaped the tar pits. As I take the reigns of my keyboard today, I
stare my daily challenges square in the eye and say...
</p>
        <blockquote dir="ltr" style="margin-right: 0px">
          <p dir="ltr" designtimesp="21549">
"I know what you're thinking. Did I fire up 6 procedures or only 5. To tell you the
truth, in all the confusion, I forgot myself. But being as though this is Microsoft
Visual Studio, the most powerful software development tool in the world and will blow
your mind completely away, you have to ask yourself one question. Do you feel lucky?"
</p>
        </blockquote>
        <p dir="ltr" designtimesp="21549">
Well do you?
</p>
        <p dir="ltr" designtimesp="21549">
In part II, I'll discuss my early experiences in the business world developing software
for the "doomed" mini-computer!
</p>
        <p dir="ltr" designtimesp="21549">
        </p>
        <img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=0cfcfd60-05fd-4916-942b-f9a438a9e8d5" />
      </body>
      <title>A Dinosaur Comes of Age (Part I)</title>
      <guid isPermaLink="false">http://www.robertfhill.com/PermaLink,guid,0cfcfd60-05fd-4916-942b-f9a438a9e8d5.aspx</guid>
      <link>http://www.robertfhill.com/2008/02/27/ADinosaurComesOfAgePartI.aspx</link>
      <pubDate>Wed, 27 Feb 2008 14:04:43 GMT</pubDate>
      <description>&lt;h4&gt;
&lt;/h4&gt;
&lt;h3&gt;Paleozoic Period
&lt;/h3&gt;
&lt;p designtimesp="21534"&gt;
I am a Dinosaur! Like Dirty Harry was a Dinosaur to his law enforcement peers, I am
a Dinosaur to my computer programming peers. I discovered this the other day when
talking with another (cough) younger programmer who was amazed to find out that I
actually went to college to learn computer programming. I didn't have the stomach
to admit to him that in college my assignments were turned in on wide, green-bar paper!
&lt;/p&gt;
&lt;p designtimesp="21535"&gt;
&lt;br designtimesp="21536"&gt;
I have been writing computer programs professionally for 22 years now. To put this
archeological period in perspective, if I were a piece of mail, at the outset I would
have been delivered by the Pony Express whereas today I am delivered but Jets and
hybrid vehicles (albeit to the wrong address)!
&lt;/p&gt;
&lt;p designtimesp="21537"&gt;
&lt;br designtimesp="21538"&gt;
I find that a little self-perspective is helpful so at this juncture in my long career
I felt it beneficial to review my humble beginnings. My first exposure to computers
was my sophomore year in high school (circa 1978) when we were asked to type in basic
programs on a teletype machine. If you've ever seen an old movie (Dr. Strangelove
comes to mind) and a government official is awaiting news, a noisy typewriter starts
to rattle and shake as it spits out a continuous feed of rolled paper with barely
decipherable print. That is the teletype machine.
&lt;/p&gt;
&lt;p designtimesp="21539"&gt;
&lt;img src="images/teletype.jpg"&gt;
&lt;/p&gt;
&lt;p designtimesp="21539"&gt;
&lt;br designtimesp="21540"&gt;
Basically, you would type in a line of program code and then press a key and the characters
that you typed would be repeated on the page. If you mistyped you would have to completely
retype the line. This was done repeatedly until you had stored your basic program
in the computer's memory.&amp;nbsp; Then you would process the job (run the program in
today's parlance) and hope that everything executed properly and you got the desired
results, again in the form of type-written output.
&lt;/p&gt;
&lt;p designtimesp="21541"&gt;
Most of the code written involved simple math problems or problem solving but we also
developed games and everyone's favorite, "banners". One task was to write a program
that would print out your last name in block letters formed by a series of repeated
X's. I felt bad for my friend John Poulioupolis but he was up for the task!
&lt;/p&gt;
&lt;p designtimesp="21542"&gt;
The glamour of all of this inspired me to declare Computer Science my college major.
I enrolled at Bridgewater State College in (coincidently) Bridgewater, Massachusetts.
During freshman orientation we were taken to the computer lab for instructions on
logging into the campus computer network. The room was filled with Decwriters (the
successor to the teletype which I was familiar with) and a few small television screens,
which I only assumed was for keeping up with the latest on daytime television drama.
These devices couldn't possibly be used for computer access. I slid comfortably into
familiar territory at the console of a Decwriter and began testing my login.
&lt;/p&gt;
&lt;p designtimesp="21543"&gt;
I continued to use the Decwriter for the first few weeks until one day they were all
in use and the only terminal available in the lab was one of those strange computer
screens. Feeling somewhat like Indiana Jones, I sat in front of the machine and stared
at the peculiar green blinking light (now known as a cursor). Apparently, this wasn't
a television but a Cathode Ray Tube (CRT) terminal. I started typing on the attached
keyboard and was able to logon. Suddenly the text appeared before me just as it had
on my faithful Decwriter. Well, now I was hooked! Imagine, interacting with something
other than a typewriter console. Now this was progress!
&lt;/p&gt;
&lt;p designtimesp="21544"&gt;
During my sophomore year I had the distinct pleasure of experiencing the COBOL programming
language for the first time. In addition to learning this fascinating, English-based
language, I had the opportunity to work with IBM punched cards. Imagine my delight
when I was asked to type an entire COBOL program on punched cards including the data
source. If you didn't know (and how can you since COBOL is now in the Smithsonian
Institute) COBOL programs have a tendency of being very large. What would have been
an hour on a CRT took nearly four on the IBM machine. After this long exercise, I
had to enclose the large deck of cards in a piece of paper donning my name and student
ID. It was then deposited in a box where it would await processing. This was typically
a 24-hour process so if there was a single error in my program I wouldn't know until
the next day. Then I would have to correct the card or cards in error and resubmit
the job.
&lt;/p&gt;
&lt;p designtimesp="21544"&gt;
&lt;img src="images\ibm026.jpg"&gt;
&lt;/p&gt;
&lt;p designtimesp="21545"&gt;
My favorite professor at Bridgewater State College was Dr. Zon I. Chang. He was also
the most difficult. I remember his speech (in broken English) to us as freshman when
he warned us not to copy another student's program.
&lt;/p&gt;
&lt;blockquote dir="ltr" style="margin-right: 0px" designtimesp="21546"&gt; 
&lt;p designtimesp="21547"&gt;
"You copy program from friend, you better get job with friend, else you don't know
what you are doing!"
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir="ltr" designtimesp="21548"&gt;
He was also a stickler for accuracy. Every program that we turned in had to be documented
a certain way. We would lose points on our assignments if comments were not accurate
and consistent. He did instill in me some very good programming habits which I carry
to this day.
&lt;/p&gt;
&lt;p dir="ltr" designtimesp="21549"&gt;
The Computer Science program at BSC was difficult and thorough. For my freshman orientation
I sat in a room with about 150 other students. When I received my diploma, I was accompanied
by about 25. I take pride in having endured and fought through the difficulties and
challenges. 
&lt;/p&gt;
&lt;p dir="ltr" designtimesp="21549"&gt;
The environment for the BSC Computer Science program was largely scientific and focused
very little on providing business solutions. Ironically, since graduation I have specialized
in the development of business systems. Our senior projects focused on building compilers,
assemblers and operating systems. We studied complex algorithms, data structures and
examined probability and statistics. It was a different world in the early 1980's
and the tools we used to solve problems seem like the hand axe to a modern carpenter.
&lt;/p&gt;
&lt;p dir="ltr" designtimesp="21549"&gt;
So here we are back in 2008. I'm working on my blog, subscribing to RSS feeds and
reading and sending email on my cell phone. We develop applications that run entirely
on the Internet and work with handheld communications devices that allow users to
update information real-time wherever they are. Yes, I am a Dinosaur. A Dinosaur who
has evolved and escaped the tar pits. As I take the reigns of my keyboard today, I
stare my daily challenges square in the eye and say...
&lt;/p&gt;
&lt;blockquote dir="ltr" style="margin-right: 0px"&gt; 
&lt;p dir="ltr" designtimesp="21549"&gt;
"I know what you're thinking. Did I fire up 6 procedures or only 5. To tell you the
truth, in all the confusion, I forgot myself. But being as though this is Microsoft
Visual Studio, the most powerful software development tool in the world and will blow
your mind completely away, you have to ask yourself one question. Do you feel lucky?"
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p dir="ltr" designtimesp="21549"&gt;
Well do you?
&lt;/p&gt;
&lt;p dir="ltr" designtimesp="21549"&gt;
In part II, I'll discuss my early experiences in the business world developing software
for the "doomed" mini-computer!
&lt;/p&gt;
&lt;p dir="ltr" designtimesp="21549"&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.robertfhill.com/aggbug.ashx?id=0cfcfd60-05fd-4916-942b-f9a438a9e8d5" /&gt;</description>
      <comments>http://www.robertfhill.com/CommentView,guid,0cfcfd60-05fd-4916-942b-f9a438a9e8d5.aspx</comments>
      <category>Programming</category>
    </item>
  </channel>
</rss>
