<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-19158260</id><updated>2011-07-07T21:27:08.034-04:00</updated><category term='Windows'/><category term='VFP'/><category term='Utilities'/><title type='text'>Randy Jean's Blog</title><subtitle type='html'>Software Development, etc.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-19158260.post-8506607458227102007</id><published>2010-01-30T19:47:00.004-05:00</published><updated>2010-01-31T15:16:25.068-05:00</updated><title type='text'>Preparing for SQL 2008 and Beyond</title><content type='html'>Been doing some SQL maintenance to take care of some deprecated features in SQL. We want to change all text/ntext types to VARCHAR(MAX) or NVARCHAR(MAX).  We also made heavy use of Default Object Bindings in the past and want to change these to Default Constraints. While I'm at it I'll also check for any columns without defaults.&lt;br /&gt;&lt;br /&gt;Thought I'd share some useful SQL scripts in case you are embarking on the same adventure.&lt;br /&gt;&lt;br /&gt;Find all text/ntext columns in a database:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SELECT&lt;br /&gt;     e.name as table_name, c.name as column_name, t.name as type_name&lt;br /&gt;FROM  &lt;br /&gt;    sys.columns c&lt;br /&gt;JOIN&lt;br /&gt;    sys.tables e&lt;br /&gt;ON&lt;br /&gt;    e.object_id = c.object_id  &lt;br /&gt;LEFT JOIN  &lt;br /&gt;    sys.all_objects ex&lt;br /&gt;ON  &lt;br /&gt;    ex.object_id = c.default_object_id &lt;br /&gt;JOIN &lt;br /&gt;      sys.types t&lt;br /&gt;ON c.user_type_id = t.user_type_id  &lt;br /&gt;Where OBJECTPROPERTY(c.object_id, 'IsMsShipped')=0  &lt;br /&gt;and t.name in ('text','ntext')&lt;br /&gt;order by 1, 2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This is useful for finding any column type in your database just by changing the criteria.  Using this I quickly was able to create scripts to update our development, test and production databases.&lt;br /&gt;&lt;br /&gt;Find columns with NO defaults defined:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SELECT&lt;br /&gt;     e.name as table_name, c.name as column_name &lt;br /&gt;FROM  &lt;br /&gt;    sys.columns c&lt;br /&gt;JOIN&lt;br /&gt;    sys.tables e&lt;br /&gt;ON&lt;br /&gt;    e.object_id = c.object_id  &lt;br /&gt;LEFT JOIN  &lt;br /&gt;    sys.all_objects ex&lt;br /&gt;ON  &lt;br /&gt;    ex.object_id = c.default_object_id  &lt;br /&gt;Where OBJECTPROPERTY(c.object_id, 'IsMsShipped')=0  &lt;br /&gt;and ex.name is null&lt;br /&gt;order by 1, 2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now find all the bound Defaults:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SELECT&lt;br /&gt;     e.name as table_name, c.name as column_name,&lt;br /&gt;     ex.name as default_object&lt;br /&gt;FROM  &lt;br /&gt;    sys.columns c&lt;br /&gt;JOIN&lt;br /&gt;    sys.tables e&lt;br /&gt;ON&lt;br /&gt;    e.object_id = c.object_id  &lt;br /&gt;LEFT JOIN  &lt;br /&gt;    sys.all_objects ex&lt;br /&gt;ON  &lt;br /&gt;    ex.object_id = c.default_object_id &lt;br /&gt;Where OBJECTPROPERTY(c.object_id, 'IsMsShipped')=0  &lt;br /&gt;and ex.name in ('UW_NullDefault','UW_SpaceDefault','UW_ZeroDefault')&lt;br /&gt;order by 1, 2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And this script will automatically replace the bound default with a default constraint:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;DECLARE @FixList TABLE&lt;br /&gt;(&lt;br /&gt;Number INT NOT NULL PRIMARY KEY CLUSTERED,&lt;br /&gt;TableName SYSNAME NOT NULL,&lt;br /&gt;ColumnName SYSNAME NOT NULL,&lt;br /&gt;DefaultObject SYSNAME NOT NULL&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;INSERT @FixList&lt;br /&gt;(&lt;br /&gt;Number,&lt;br /&gt;TableName,&lt;br /&gt;ColumnName,&lt;br /&gt;DefaultObject&lt;br /&gt;)&lt;br /&gt;SELECT&lt;br /&gt; Number = ROW_NUMBER() OVER (ORDER BY e.name, c.name),&lt;br /&gt;     e.name as table_name, c.name as column_name,&lt;br /&gt;     ex.name as default_object&lt;br /&gt;FROM  &lt;br /&gt;    sys.columns c&lt;br /&gt;JOIN&lt;br /&gt;    sys.tables e&lt;br /&gt;ON&lt;br /&gt;    e.object_id = c.object_id  &lt;br /&gt;LEFT JOIN  &lt;br /&gt;    sys.all_objects ex&lt;br /&gt;ON  &lt;br /&gt;    ex.object_id = c.default_object_id &lt;br /&gt;JOIN &lt;br /&gt;      sys.types t&lt;br /&gt;ON c.user_type_id = t.user_type_id  &lt;br /&gt;Where OBJECTPROPERTY(c.object_id, 'IsMsShipped')=0  &lt;br /&gt;and ex.name in ('UW_NullDefault','UW_SpaceDefault','UW_ZeroDefault')&lt;br /&gt;order by 1, 2&lt;br /&gt;&lt;br /&gt; DECLARE @RowID INT, @SQL VARCHAR(1000)&lt;br /&gt; SELECT @RowID = 1, @SQL = ''''&lt;br /&gt; DECLARE @TableName SYSNAME&lt;br /&gt; DECLARE @ColumnName SYSNAME&lt;br /&gt; DECLARE @DefaultObject SYSNAME&lt;br /&gt; DECLARE @I INT&lt;br /&gt; SET @I = 1&lt;br /&gt;&lt;br /&gt;  SELECT @RowID = Number, @TableName = TableName, @ColumnName = ColumnName, @DefaultObject = DefaultObject FROM @FixList WHERE NUMBER = @I&lt;br /&gt;  WHILE @TableName IS NOT NULL&lt;br /&gt;  BEGIN&lt;br /&gt;      -- unbind default object&lt;br /&gt;   BEGIN TRY&lt;br /&gt;   SET @SQL = 'EXECUTE sp_unbindefault N''['+@TableName+'].['+@ColumnName+']'''&lt;br /&gt;&lt;br /&gt;   PRINT @SQL&lt;br /&gt;   EXEC(@SQL)&lt;br /&gt;   &lt;br /&gt;   BEGIN&lt;br /&gt;   IF @DefaultObject = 'UW_SpaceDefault'&lt;br /&gt;    SET @SQL = 'ALTER TABLE ['+@TableName+'] ADD CONSTRAINT DF_'+@TableName+'_'+@ColumnName+' DEFAULT ('''') FOR ['+@ColumnName+'] '     &lt;br /&gt;   ELSE IF @DefaultObject = 'UW_ZeroDefault'&lt;br /&gt;    SET @SQL = 'ALTER TABLE ['+@TableName+'] ADD CONSTRAINT DF_'+@TableName+'_'+@ColumnName+' DEFAULT (0) FOR ['+@ColumnName+'] '     &lt;br /&gt;   ELSE&lt;br /&gt;    SET @SQL = 'ALTER TABLE ['+@TableName+'] ADD CONSTRAINT DF_'+@TableName+'_'+@ColumnName+' DEFAULT (NULL) FOR ['+@ColumnName+'] '     &lt;br /&gt;   END&lt;br /&gt;&lt;br /&gt;   PRINT @SQL &lt;br /&gt;   EXEC(@SQL)&lt;br /&gt;   SET @I = @I + 1 &lt;br /&gt;    SELECT @RowID = Number, @TableName = TableName, @ColumnName = ColumnName, @DefaultObject = DefaultObject FROM @FixList WHERE Number = @I&lt;br /&gt;   IF @@ROWCOUNT = 0 BREAK&lt;br /&gt;   END TRY&lt;br /&gt;   BEGIN CATCH&lt;br /&gt;    PRINT 'Failed on table: '+@TableName+' Column: '+@ColumnName&lt;br /&gt;    BREAK&lt;br /&gt;   END CATCH&lt;br /&gt;  END&lt;br /&gt;&lt;br /&gt;END&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Update 1/31/2010:&lt;br /&gt;&lt;br /&gt;Just found this &lt;a href="http://www.sqlservercentral.com/scripts/sp_bindrule/69220/"&gt;post&lt;/a&gt; which I borrowed some ideas from to get this working.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-8506607458227102007?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/8506607458227102007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=8506607458227102007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/8506607458227102007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/8506607458227102007'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2010/01/preparing-for-sql-2008-and-beyond.html' title='Preparing for SQL 2008 and Beyond'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-4712219118600578413</id><published>2007-11-30T14:47:00.000-05:00</published><updated>2007-11-30T14:49:04.541-05:00</updated><title type='text'>Coincidence?  I think not...</title><content type='html'>&lt;div style="width:540px"&gt;&lt;br /&gt;&lt;a href="http://www.indeed.com/jobtrends?q=foxpro&amp;relative=1&amp;relative=1" title="foxpro Job Trends"&gt;&lt;br /&gt;&lt;img width="540" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=foxpro&amp;relative=1" border="0" alt="foxpro Job Trends graph"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="6" cellspacing="0" border="0" style="font-size:80%"&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.indeed.com/jobtrends?q=foxpro&amp;relative=1&amp;relative=1"&gt;foxpro Job Trends&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;&lt;a href="http://www.indeed.com/jobs?q=foxpro"&gt;foxpro jobs&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="width:540px"&gt;&lt;br /&gt;&lt;a href="http://www.indeed.com/jobtrends?q=vb.net&amp;relative=1&amp;relative=1" title="vb.net Job Trends"&gt;&lt;br /&gt;&lt;img width="540" height="300" src="http://www.indeed.com/trendgraph/jobgraph.png?q=vb.net&amp;relative=1" border="0" alt="vb.net Job Trends graph"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="6" cellspacing="0" border="0" style="font-size:80%"&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.indeed.com/jobtrends?q=vb.net&amp;relative=1&amp;relative=1"&gt;vb.net Job Trends&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;&lt;a href="http://www.indeed.com/jobs?q=vb.net"&gt;vb.net jobs&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-4712219118600578413?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/4712219118600578413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=4712219118600578413' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/4712219118600578413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/4712219118600578413'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/11/coincidence-i-think-not.html' title='Coincidence?  I think not...'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-5079059376968217395</id><published>2007-08-09T10:00:00.000-04:00</published><updated>2007-08-09T10:06:38.581-04:00</updated><title type='text'>De-Crappify part 2</title><content type='html'>As a follow-up to my last post, here are a couple utilities to aid in cleaning out the crap from XP:&lt;br /&gt;&lt;br /&gt;My Dad told me about this one: &lt;a href="http://www.windowsstartup.com"&gt;Startup Inspector&lt;/a&gt; - user friendly alternative to msconfig.  There is a "consult" button that goes out and pulls back info from a knowledgebase about known startup items, whether they are good, bad or ugly.&lt;br /&gt;&lt;br /&gt;And a co-worker told me about this: &lt;a href="http://www.ccleaner.com"&gt;Crap Cleaner&lt;/a&gt; - Cleans out the crap from your registry, temp files, cookies, etc.  Knows about different browsers, etc.&lt;br /&gt;&lt;br /&gt;So, with a little bit of regular housekeeping using these utilities as well as spyware scanning (ie. Adaware, etc.), virus protection and Windows updates you can keep your XP machine very happy and running lean and mean.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-5079059376968217395?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/5079059376968217395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=5079059376968217395' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/5079059376968217395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/5079059376968217395'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/08/de-crappify-part-2.html' title='De-Crappify part 2'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-1247729545024334869</id><published>2007-08-03T19:11:00.000-04:00</published><updated>2007-08-03T19:20:07.466-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Utilities'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>De-Crappify Your Windows XP PC</title><content type='html'>Video tutorial on turning off non-essential background programs, cleaning up spyware, cleaning your registry, etc.  Most of this I knew already (I am usually pretty anal about what I install to begin with) but was a good refresher and is motivating me to doing this stuff again as my PC's seem to be getting a little doggy lately. Anyway, just ran across this and thought some of my non-Vista friends and colleagues might get some use from this.  Enjoy!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.screencast.com/users/Featured/folders/Featured/media/6205791f-c012-4c5e-a053-01227cc6c97b"&gt;&lt;img border="0" alt="Click here to view the screencast" src="http://www.screencast.com/img/media_screencast.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-1247729545024334869?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.screencast.com/users/Featured/folders/Featured/media/6205791f-c012-4c5e-a053-01227cc6c97b' title='De-Crappify Your Windows XP PC'/><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/1247729545024334869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=1247729545024334869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/1247729545024334869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/1247729545024334869'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/08/de-crappify-your-windows-xp-pc.html' title='De-Crappify Your Windows XP PC'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-4983439826552627227</id><published>2007-06-28T18:32:00.000-04:00</published><updated>2008-12-09T09:24:29.390-05:00</updated><title type='text'>Xiine - All You Can Read</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_en6TH0KOfP4/RoQ9o240bDI/AAAAAAAAAAU/dSnXgSxz_UQ/s1600-h/XiineLogo.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_en6TH0KOfP4/RoQ9o240bDI/AAAAAAAAAAU/dSnXgSxz_UQ/s320/XiineLogo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5081254051718655026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just read about this on Claudio's &lt;a href="http://claudiolassala.spaces.live.com/Blog/cns!E2A4B22308B39CD2!305.entry"&gt;blog&lt;/a&gt; and thought I'd check it out.  I must say I am very impressed with this piece of software.  I have been a long-time user of &lt;a href="http://www.zinio.com"&gt;Zinio&lt;/a&gt; and subscribe to a couple of zines on that platform. Although I have not done a thorough side by side comparison I will say that &lt;a href="http://www.xiine.com"&gt;Xiine&lt;/a&gt; definitely has some features that I like.  The zooming is better.  You can rotate the zine in case your on a portrait monitor or tablet PC. Many options for layout if you don't like split pages you can read in a scrollable fashion, etc.  I was able to pull in several back issues of &lt;a href="http://www.code-magazine.com/"&gt;CoDe&lt;/a&gt; from my subscription.  Although, it only goes from Sept 2003 up to July/August 2004 for some reason...  (I better check my current subscription status although I'm sure if it lapsed it was recent...)  &lt;br /&gt;Anyway, kudos to the &lt;a href="http://www.eps-cs.com/"&gt;EPS&lt;/a&gt; team for creating this slick application using some of the latest technology.  Make sure to check it out and read more on Markus' &lt;a href="http://www.markusegger.com/Blog/Development.aspx?messageid=174e9385-af11-4899-97a3-ede9dcbd97b7"&gt;blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-4983439826552627227?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.xiine.com/' title='Xiine - All You Can Read'/><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/4983439826552627227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=4983439826552627227' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/4983439826552627227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/4983439826552627227'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/06/xiine-all-you-can-read.html' title='Xiine - All You Can Read'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_en6TH0KOfP4/RoQ9o240bDI/AAAAAAAAAAU/dSnXgSxz_UQ/s72-c/XiineLogo.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-2770803386081575306</id><published>2007-05-21T18:05:00.000-04:00</published><updated>2007-05-21T18:17:14.284-04:00</updated><title type='text'>Business Decision Regarding VFP?</title><content type='html'>Mike Feltman just posted on his &lt;a href="http://f1technologies.blogspot.com/2007/05/business-decision-regarding-vfp.html"&gt;blog &lt;/a&gt;a counter-point to Microsoft's &lt;a href="http://msdn2.microsoft.com/en-us/vfoxpro/bb308952.aspx"&gt;announcement&lt;/a&gt;.  He brings up some very interesting points as to whether this was truly a "business" decision based on facts.  I have been ranting for years (ask the people I work with) about the lack of respect VFP got from within Microsoft and the development community as a whole.  I mean seriously, VB (pre .NET) was their idea of a data-centric programming language?  And what about the horrible IDE called Visual Studio that it was packaged in.  Ugh!  If you ask me, they should have re-branded Visual Studio along with VB and those tools would probably be doing much better in the market place.  &lt;br /&gt;&lt;a href="http://weblogs.foxite.com/andykramek/archive/2007/05/19/3815.aspx"&gt;Andy&lt;/a&gt; hit the nail on the head when he talked about "the perception of the uninformed, marketing and buzz-word driven, benighted people who wouldn't dream of considering or using VFP anyway".  Microsoft helped to feed that perception, in my opinion, or at least did NOTHING to refute it. Perhaps an internal memo educating their own people in the development tools division might have done something. &lt;br /&gt;So yes, business decision it was, but I agree with Mike that this business decision was made long ago.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-2770803386081575306?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://f1technologies.blogspot.com/2007/05/business-decision-regarding-vfp.html' title='Business Decision Regarding VFP?'/><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/2770803386081575306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=2770803386081575306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/2770803386081575306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/2770803386081575306'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/05/business-decision-regarding-vfp.html' title='Business Decision Regarding VFP?'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-8330165831323671817</id><published>2007-05-21T14:33:00.001-04:00</published><updated>2007-05-21T14:36:59.850-04:00</updated><title type='text'>So, no more Visual FoxPro. Now what?</title><content type='html'>Great blog &lt;a href="http://weblogs.foxite.com/andykramek/archive/2007/05/19/3815.aspx"&gt;post by Andy Kramek&lt;/a&gt; on Microsoft's recent &lt;a href="http://msdn2.microsoft.com/en-us/vfoxpro/bb308952.aspx"&gt;announcement&lt;/a&gt; concerning VFP.  Andy's thoughtful insight is always refreshing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-8330165831323671817?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://weblogs.foxite.com/andykramek/archive/2007/05/19/3815.aspx' title='So, no more Visual FoxPro. Now what?'/><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/8330165831323671817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=8330165831323671817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/8330165831323671817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/8330165831323671817'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/05/so-no-more-visual-foxpro-now-what.html' title='So, no more Visual FoxPro. Now what?'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-4291409705724422791</id><published>2007-05-04T16:19:00.000-04:00</published><updated>2008-12-09T09:24:29.525-05:00</updated><title type='text'>It's a Good Day for Foxpro, etc.</title><content type='html'>Well, after all the hand wringing and gnashing of teeth the past few weeks over Microsoft's &lt;a href="http://msdn2.microsoft.com/en-us/vfoxpro/bb308952.aspx"&gt;announcement&lt;/a&gt; I've had a pretty good week business wise. &lt;br /&gt;&lt;br /&gt;First, we're being asked to help another software shop stabilize some legacy VFP code in some existing apps.  Not too glamourous, but it's work and it's VFP.  A re-write is not in the works due to $$$ but they are successfully deploying under the VFP9 Sp1 runtime.&lt;br /&gt;&lt;br /&gt;Second, I just did some really cool enhancements to an existing app that gets data through an ASP.NET web service.  In the same app I just added the &lt;a href="http://www.codeplex.com/VFPX/Release/ProjectReleases.aspx?ReleaseId=1644"&gt;Desktop Alerts Beta&lt;/a&gt; program from VFPx using a timer object to fire it off. - the best experience I've had with beta software in a long time. Client is very happy.&lt;br /&gt;&lt;br /&gt;Third, Tod McKenna &lt;a href="http://todmeansfox.blogspot.com/2007/05/take-that-microsoft.html"&gt;announced on his blog&lt;/a&gt; that their shop just purchased 5 new VFP9 licenses.&lt;br /&gt;&lt;br /&gt;And, the icing on the cake, we just got sign-off on our first significant .Net application.  We're going to try standardizing on &lt;a href="http://www.strataframe.net/"&gt;StrataFrame&lt;/a&gt; which I will be giving a small demo with at the upcoming &lt;a href="http://www.chicagofudg.com/"&gt;Chicago FUDG&lt;/a&gt; user group next Tuesday.&lt;br /&gt;&lt;br /&gt;So business is pretty good at the present moment, VFP development included.&lt;br /&gt;&lt;br /&gt;Not to mention, several MVP's have recently signed the &lt;a href="http://www.masfoxpro.com"&gt;MasFoxpro&lt;/a&gt; petition, which I agree, will probably not change Microsoft's position, but it sends a message that VFP is still a great tool and they are going to continue supporting the community and their clients.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_en6TH0KOfP4/RjuYajTWpHI/AAAAAAAAAAM/DV2jItnR0-Y/s1600-h/160280903_528859652_0.jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_en6TH0KOfP4/RjuYajTWpHI/AAAAAAAAAAM/DV2jItnR0-Y/s320/160280903_528859652_0.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5060806188201321586" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-4291409705724422791?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/4291409705724422791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=4291409705724422791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/4291409705724422791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/4291409705724422791'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/05/its-good-day-for-foxpro.html' title='It&apos;s a Good Day for Foxpro, etc.'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_en6TH0KOfP4/RjuYajTWpHI/AAAAAAAAAAM/DV2jItnR0-Y/s72-c/160280903_528859652_0.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-8982302796781333043</id><published>2007-04-17T22:13:00.000-04:00</published><updated>2007-04-18T09:48:36.473-04:00</updated><title type='text'>Exploring VFP on Rails</title><content type='html'>My friend &lt;a href="http://fox.wikis.com/wc.dll?Wiki~BrianMarquis"&gt;Brian Marquis&lt;/a&gt; recently showed some samples of his early concept design for &lt;a href="http://fox.wikis.com/wc.dll?Wiki~VFPonRails"&gt;VFP on Rails&lt;/a&gt; at the &lt;a href="http://www.chicagofudg.com/"&gt;Chicago Foxpro User Group&lt;/a&gt;.  Although the samples themselves were something you could do pretty easily with pure ASP or other web scripting tools, the underlying framework that he is creating is very intriguing. &lt;br /&gt;&lt;br /&gt;As the name implies, he is attempting to follow the same tenets and design patterns of the very popular &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt; framework.  The main RoR description states "Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern".  &lt;br /&gt;&lt;br /&gt;I am not a web developer (not even close!) and I have not used RoR, but I am a fan of well designed frameworks that make my job easier, which in turns makes my clients happier, etc.  That's why most of my VFP applications have been developed with the &lt;a href="http://www.f1tech.com/VFE/"&gt;Visual FoxExpress&lt;/a&gt; framework, which happens to be a very well designed framework with full nTier architecture and implements several design patterns in a very elegant way.&lt;br /&gt;&lt;br /&gt;So, just as an experiment, I decided to put &lt;a href="http://fox.wikis.com/wc.dll?Wiki~VFPonRails"&gt;VFP on Rails&lt;/a&gt; to the test and see how quickly I could create a search demo (based on Brian's simple customer search demo) that does not go directly at a VFP table, but rather requests data through an existing VFE business object through COM.  I mean, why shouldn't I be able to have access to the business objects I've already created from the web?  It turned out to be incredibly easy.  &lt;br /&gt;&lt;br /&gt;First, I created a new folder under Views to keep my VML files separate from the other samples. (VML is the extension Brian has assigned to the "view" or presentation layer scripts, not to be confused with VFP views.)  Then, I compiled one of my clients VFE apps as a DLL and registered it. (This app happens to have it's data in SQL Server)&lt;br /&gt;&lt;br /&gt;I then copied Brian's VML files and edited them to be specific to my search:&lt;br /&gt;&lt;br /&gt;Search.VML - Changed "say" in this line of code to "agents"&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Ajax.Request(&amp;quot;&amp;lt;&amp;lt;fullurl(oDispatchContext,'/agents/list')&amp;gt;&amp;gt;&amp;quot;, {&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;List.VML - just changed the cursor (alias) name and only display active records.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;table&amp;gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt;SELECT CurAgents&lt;br /&gt;SCAN &lt;br /&gt;  If Not CurAgents-&amp;gt;Inactive&lt;br /&gt;%&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;  &amp;lt;&amp;lt;CurAgents-&amp;gt;Ag_Name&amp;gt;&amp;gt;&lt;br /&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt;  Endif&lt;br /&gt;ENDSCAN&lt;br /&gt;%&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt;IF oDispatchContext.hasErrors()&lt;br /&gt;FOR EACH error in oDispatchContext.errors%&amp;gt;&amp;lt;&amp;lt;error&amp;gt;&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt;ENDFOR&lt;br /&gt;ENDIF&lt;br /&gt;%&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Agents.Prg - This is in the Controllers folder.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;DEFINE CLASS agents AS Custom&lt;br /&gt; greeting = ""&lt;br /&gt; HIDDEN oAgent&lt;br /&gt; oAgent = .NULL.&lt;br /&gt; HIDDEN oApp&lt;br /&gt; oApp = .NULL.&lt;br /&gt; lDestroyInProgress = .F.&lt;br /&gt; &lt;br /&gt; PROCEDURE Destroy&lt;br /&gt;  This.lDestroyInProgress = .T.&lt;br /&gt;  IF VARTYPE(This.oAgent) = "O"&lt;br /&gt;   This.oAgent.Release()&lt;br /&gt;   this.oAgent = .NULL.&lt;br /&gt;  ENDIF&lt;br /&gt;  IF VARTYPE(This.oApp) = "O"&lt;br /&gt;   This.oApp.Cleanup()&lt;br /&gt;   This.oApp = .NULL.&lt;br /&gt;  ENDIF&lt;br /&gt; ENDPROC&lt;br /&gt; &lt;br /&gt; HIDDEN PROCEDURE oAgent_Access&lt;br /&gt;  IF NOT This.lDestroyInProgress AND VARTYPE(This.oAgent) &lt;&gt; "O"&lt;br /&gt;   This.oApp = CREATEOBJECT('ptrak.ptrakapplicationobject')&lt;br /&gt;   This.oAgent = This.oApp.oBizObjs.Add("AgentsViewBizobj")&lt;br /&gt;  ENDIF&lt;br /&gt;  RETURN This.oAgent&lt;br /&gt; ENDPROC&lt;br /&gt; &lt;br /&gt; PROCEDURE hello&lt;br /&gt;  LPARAMETERS user&lt;br /&gt;  this.greeting = "Hello " + user&lt;br /&gt; ENDPROC&lt;br /&gt;&lt;br /&gt; PROCEDURE search&lt;br /&gt; ENDPROC&lt;br /&gt;&lt;br /&gt; PROCEDURE list&lt;br /&gt; &lt;br /&gt;  LOCAL loAgent, ;&lt;br /&gt;   lcXML, ;&lt;br /&gt;   lcCurrentDirectory&lt;br /&gt;  &lt;br /&gt;  loAgent = This.oAgent&lt;br /&gt;&lt;br /&gt;  IF NOT EMPTY(this.criteria)&lt;br /&gt;   * Set operator to contains (defaults to "Begins With")&lt;br /&gt;   loAgent.oCursor.Parameters.Item(2).cOperator = "Contains"&lt;br /&gt;   loAgent.SetParameter("VP_AG_NAME",this.criteria)&lt;br /&gt;  ENDIF&lt;br /&gt;  loAgent.Requery()&lt;br /&gt;  lcXML = loAgent.GetXML()&lt;br /&gt;  XMLTOCURSOR(lcXML,"curAgents")&lt;br /&gt;  loAgent = .NULL.&lt;br /&gt; ENDPROC&lt;br /&gt;ENDDEFINE&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I then just navigated to http://localhost/WebRoot/Default.aspx/agents/search and it works!&lt;br /&gt;&lt;br /&gt;Naturally, it's a bit more code to go at a COM server vs. native VFP data, but the point is, it was do-able using VFP on Rails.  I'm still a LONG way from being able to write a complete usable web application with full &lt;a href="http://en.wikipedia.org/wiki/Create%2C_read%2C_update_and_delete"&gt;CRUD&lt;/a&gt; features, but at least I know I don't have to worry about the business and data tier since I can use my favorite tool for this: VFP.  When it's time to get serious I can either learn some presentation layer tools or farm that part out to experienced web developers while I focus on the business logic.&lt;br /&gt;&lt;br /&gt;Brian is focusing on trying to keep the implementation and configuration as simple as possible.  Currently, it's as simple as creating a new web share in IIS and registering a single COM server.  No other configuration is required. Controller classes can be deployed without stopping the web server and I think there will be a new "autocompile" feature added soon so that you don't have to remember to compile PRG changes during development.&lt;br /&gt;&lt;br /&gt;I am aware of at least 4 other VFP based web tools. I'm not sure how this compares with those as I've not had the opportunity to try them.  Of course, this is in the very early stages and Brian is hoping to generate some interest from other developers before submitting to &lt;a href="http://www.codeplex.com/VFPX"&gt;VFPX&lt;/a&gt; on &lt;a href="http://www.codeplex.com"&gt;CodePlex&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-8982302796781333043?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://fox.wikis.com/wc.dll?Wiki~VFPonRails' title='Exploring VFP on Rails'/><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/8982302796781333043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=8982302796781333043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/8982302796781333043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/8982302796781333043'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/04/exploring-vfp-on-rails.html' title='Exploring VFP on Rails'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-3940781228592947364</id><published>2007-04-10T12:58:00.000-04:00</published><updated>2007-04-10T13:03:02.539-04:00</updated><title type='text'>Computerworld: FoxPro users petition to keep database language alive</title><content type='html'>&lt;a href="http://alexfeldstein.blogspot.com/2007/04/computerworld-foxpro-users-petition-to.html"&gt;Alex Feldstein&lt;/a&gt; Just blogged about this &lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;articleId=9015920"&gt;Computerworld&lt;/a&gt; article. I would agree that this is the best article on this I've read to date. Most other articles I've read are either ignorant of the facts or biased for or against VFP. I highly recommend you read this article if you have anything to do with Visual Foxpro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-3940781228592947364?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;articleId=9015920' title='Computerworld: FoxPro users petition to keep database language alive'/><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/3940781228592947364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=3940781228592947364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/3940781228592947364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/3940781228592947364'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/04/computerworld-foxpro-users-petition-to.html' title='Computerworld: FoxPro users petition to keep database language alive'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-4280977379257030443</id><published>2007-03-28T14:24:00.000-04:00</published><updated>2007-03-28T14:30:05.509-04:00</updated><title type='text'>I touched the Lombardy</title><content type='html'>&lt;a href="http://picasaweb.google.com/jean.connie/CodySouthBend/photo#5044162019809591602"&gt;&lt;img src="http://lh6.google.com/image/jean.connie/RgB2ocREgTI/AAAAAAAABF0/4E5rkhQmqJo/Go%20Colts%20006.jpg?imgmax=640"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-4280977379257030443?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/4280977379257030443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=4280977379257030443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/4280977379257030443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/4280977379257030443'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/03/i-touched-lombardy.html' title='I touched the Lombardy'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-4428122833564417140</id><published>2007-03-25T15:13:00.000-04:00</published><updated>2007-03-25T15:29:38.877-04:00</updated><title type='text'>COBOL</title><content type='html'>I just realized I did not mention in my last post that we still have people programming with COBOL at our company.  Don't know how many new projects are being started with COBOL as most of this  development was tied to the HP3000 platform.  The HP3000 is no longer supported by HP and yet there are still lots of companies running their business on these machines. We still have COBOL programmers to take care of them by providing support and enhancements to their applications.&lt;br /&gt;&lt;br /&gt;So what's my point?  I guess if I compare this to the recent Microsoft announcement about no future versions of VFP I feel a little more positive about my future with VFP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-4428122833564417140?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/4428122833564417140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=4428122833564417140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/4428122833564417140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/4428122833564417140'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/03/cobol.html' title='COBOL'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-1333460938754831564</id><published>2007-03-21T12:19:00.000-04:00</published><updated>2007-03-28T10:25:48.515-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VFP'/><title type='text'>Microsoft VFP Announcement</title><content type='html'>As I sit here at Chicago Midway airport putting my nephew on a plane back home, I am pondering my future as a VFP programmer.&lt;br /&gt;&lt;br /&gt;Microsoft has recently announced that they will not be releasing new versions of Visual Foxpro and will release their upcoming Sedna release, in addition to other non-core extensions, to the open-source community via &lt;a href="http://www.codeplex.com/VFPX"&gt;CodePlex&lt;/a&gt;.  They will be releasing a final service pack (SP2) sometime later this year which will address Vista compatibility issues as well as some .NET interop improvements and other miscellaneous fixes and enhancements.  However, Microsoft support for Visual Foxpro 9 will officially end in 2015.&lt;br /&gt;&lt;br /&gt;I've been reading a lot of articles and blogs trying to get a feel for how most are taking this news.  As expected, there is quite a mix of emotions and opinions.  Quite surprisingly, a lot of people who are highly regarded in the VFP and software development community are looking at this as generally positive news.  Myself, I'm a bit dubious.  Working for a software shop that uses several various technologies (VFP, Java, .NET, PHP, BEA, Oracle, SQL Server, etc.) there is an expectation that we look to "future proof" our work as much as possible.  Overall, the decision to use VFP on many, many successful projects has been a very good thing.  But now what do I recommend?  Of course we who use VFP every day can attest to it's technical and RAD capabilities, etc., but many of our corporate clients want to know that if we go away, or I get hit by a bus, etc. that they can find someone to support their apps.  Last time I checked, there was not a whole lot of VFP talent in South Bend, Indiana.&lt;br /&gt;&lt;br /&gt;Yes, VFP 9 is still a great tool for developing desktop, distributed and web applications and I’m sure will continue to work well beyond the 2015 support date.   I still have a client that is running Foxpro 2.6 for DOS under Windows XP and, although there are some occasional compatibility issues to deal with whenever he gets a new PC (like no parallel ports!), the software continues to do the job very well.&lt;br /&gt;&lt;br /&gt;I, like many others, am not surprised at all by this announcement.   However, it still leaves me feeling a bit sad and disillusioned.  I have been updating my skills the past several years, and will continue to do so, but it’s still sad.   It’s sad because as a software engineer, even when I know VFP may be the perfect fit for a new project, I'm also a consultant and I have to be pragmatic and may not recommend new projects use VFP.  Maybe it’s because I’m just getting tired of constantly fighting the negative spin and this news might make the fights harder to win. &lt;br /&gt;&lt;br /&gt;In my opinion (and many others in the community), the main problem with VFP has not been the tool itself but rather Microsoft’s apparent lack of marketing since they purchased Fox Software in 1992.  I’ve also encountered negative PR regarding VFP from Microsoft employees at user groups, etc.  I truly believe there has been a concerted effort by some to try and kill VFP by spreading false rumors and misinformation.  Many declared Foxpro dead since 1995 when Microsoft released their first 32 bit operating system: Windows 95.   This has left the impression in the technical and non-technical world that VFP is, at best, a legacy database management system and this has definitely made it a tough sell, especially in the corporate environments.  And yet, time after time, the Fox Team at Microsoft delivered one great version after the next.  And time after time, we’ve delivered ENTERPRISE solutions on time and on budget and continue to meet customers’ expectations using VFP.  And time after time, the VFP community has continued to be there for teaching, mentoring and great camaraderie.&lt;br /&gt;&lt;br /&gt;There’s nothing worse than implementing a successful project only to have the decision of the development tool questioned over and over, sometimes several years later, every time a new person (or manager) gets involved with the project.  Fortunately, I have clients that actually look at the results and know when to dismiss the undeserved negative remarks about VFP, but who knows about the next potential client….&lt;br /&gt;&lt;br /&gt;All I can say to anyone that has been secretly (or not so secretly) hoping for this day is “I hope you’re happy now” and I sure hope that you’re ready for some REAL competition now that there will be possibly many VFP developers switching to other tools.  Bring it on.&lt;br /&gt;&lt;br /&gt;In the meantime, I plan to continue maintaining and enhancing my existing clients’ VFP applications, possibly introducing .NET components over time where it makes sense.  I have already deployed ASP.NET Web Services, a socket server/listener using C# running as a multi-threaded service calling a VFP COM object, prototyping with &lt;a href="http://www.strataframe.net/"&gt;StrataFrame &lt;/a&gt;, etc. and have also been using SQL Server and other truly client server back-end databases for several years now. &lt;br /&gt;&lt;br /&gt;So, no, it's not that I'm afraid of change or learning something new; it's just that I know VFP is a very good, stable and mature tool – I'm really not sure the same can be said about all this other "stuff".&lt;br /&gt;&lt;br /&gt;Other links of interest and articles related to this announcement:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.developer.com/db/article.php/3665581"&gt;Developer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eweek.com/article2/0,1759,2103695,00.asp?kc=EWRSS03119TX1K0000594"&gt;EWeek 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eweek.com/article2/0,1759,2105307,00.asp"&gt;EWeek 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note: I question the validity of some of the comments in the above article.  I've heard a lot of people referring to this article with enthusiasm thinking the core of VFP will be open-sourced. As far as I know, this is not true.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.etecnologia.net/"&gt;Etecnologia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Blog Posts:&lt;br /&gt;&lt;a href="http://doughennig.blogspot.com/2007/03/microsofts-announcement.html"&gt;Doug Hennig&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rickschummer.com/blog/2007/03/yag-reaffirms-vfp-roadmap.html"&gt;Rick Schummer&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;a href="http://talkingfox.blogspot.com/2007/03/major-vfp-news-from-redmond-good-and.html"&gt;David Stevenson&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-1333460938754831564?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn2.microsoft.com/en-us/vfoxpro/bb308952.aspx' title='Microsoft VFP Announcement'/><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/1333460938754831564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=1333460938754831564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/1333460938754831564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/1333460938754831564'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/03/microsoft-vfp-announcement.html' title='Microsoft VFP Announcement'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-3892454116799958573</id><published>2007-01-11T23:18:00.000-05:00</published><updated>2007-01-16T19:12:11.403-05:00</updated><title type='text'>Tag! I'm it!</title><content type='html'>I've been tagged by &lt;a href="http://rickschummer.com/blog"&gt;Rick Schummer&lt;/a&gt; &lt;br /&gt;As I understand it, I am to tell 5 things about myself.  I'm not sure who to tag that hasn't already been tagged so I'm not going to do that now.&lt;br /&gt;&lt;br /&gt;I'm very busy with client work these days.  Doing a little bit of everything. VFP, .NET, classic ASP/VBScript, SQL Server and I'm also in the process of moving into a new office. (Getting out of the cubicle! Yeah!) Getting tagged came at a good time as it provides me with an opportunity to reflect on other aspects of my life.  Plus, I've not been blogging lately so this gives me something to blog.  I was actually considering shutting this blog down.  Maybe I'll keep it for a bit longer.&lt;br /&gt;&lt;br /&gt;So, here goes...&lt;br /&gt;&lt;br /&gt;1. I joined the Navy instead of going to college right out of high school.  I was a signalman on the &lt;a href="http://www.peleliu.navy.mil/"&gt;USS Peleliu&lt;/a&gt;.  Fortunately, I served during peacetime so I got to see many countries in the Far East. &lt;br /&gt;&lt;br /&gt;2. My first computer program was written in Basic. I wrote it on my Dad's Texas Instruments PC (complete with analog cassette drive) to teach myself Morse Code in preparation for being a signalman. It played the equivalent Morse Code sounds and also flashed the dit-dah's on the screen as you typed letters and numbers.  I was just "playing" and never thought I would actually do this type of thing for a living.&lt;br /&gt;&lt;br /&gt;3. I grew up in &lt;a href="http://www.oc.ca.gov/aboutoc.asp"&gt;Orange County, California&lt;/a&gt; and moved to North Central Indiana when I was 24, mainly because I was tired of living on &lt;a href="http://en.wikipedia.org/wiki/Cup_noodle"&gt;Cup O Noodles&lt;/a&gt;. I worked for an Elkhart, Indiana  based company which paid my moving expenses and hired me to manage their Netware 2.15 network, support and develop custom programs in Foxbase and implement the financial accounting package "SBT Series 6"  All this as a result of writing label printing and costing programs in Lotus 1-2-3.  Been doing mostly Fox development of one type or another ever since.&lt;br /&gt;&lt;br /&gt;4. I was a "skater" when I was a kid. I can still do a 360 and can "free-style" a bit, but have no idea how to do an "&lt;a href="http://en.wikipedia.org/wiki/Ollie_%28skateboarding_trick%29"&gt;ollie&lt;/a&gt;" and I think I'm too old to try.  I had a membership to one of the first skateboard parks.  It was called "&lt;a href="http://skatopia.net/"&gt;Skatopia&lt;/a&gt;".  I never made "&lt;a href="http://www.angelfire.com/ca/alva3/spin.html"&gt;Dogtown&lt;/a&gt;" status but knew a few people that were featured in &lt;a href="http://www.skateboardermag.com/"&gt;Skateboarder&lt;/a&gt; magazine that were "pool" skaters and some had half-pipe ramps in their backyards.  I was not into surfing but did a lot of "&lt;a href="http://www.boogieboard.org/"&gt;boogie boarding&lt;/a&gt;" at the beach. Now I just enjoy a round of golf every now and then.  I am also a video game nut.  I love playing multi-player 1st person shooters like &lt;a href="http://battlefield.ea.com/battlefield/bf/"&gt;Battlefield Series&lt;/a&gt; and &lt;a href="http://half-life2.com/"&gt;Half-Life&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;5. I've never been to any of the official "big" VFP conferences. (MS, Advisor, Southwest, etc.)  I hope to do this someday.&lt;br /&gt;&lt;br /&gt;Well, technically, that was more than 5 things, but who's counting?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-3892454116799958573?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/3892454116799958573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=3892454116799958573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/3892454116799958573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/3892454116799958573'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2007/01/tag-im-it.html' title='Tag! I&apos;m it!'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-115746632229423192</id><published>2006-09-05T10:04:00.000-04:00</published><updated>2006-10-12T23:01:06.919-04:00</updated><title type='text'>XFRX 12.1 just released</title><content type='html'>&lt;a href="http://www.eqeus.com/whatsnew/whatsnew121.html"&gt;XFRX 12.1 Info&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Mainly bug fixes but some nice new previewer features I'm anxious to try as well, including a progress bar option when exporting to PDF, etc. and showing up to 8 pages at a time.  Not only is this a great add-on for VFP reporting but Eqeus continues to provide excellent support and frequent enhancements to their product.  In my opinion it is well worth the small subscription price.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-115746632229423192?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/115746632229423192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=115746632229423192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/115746632229423192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/115746632229423192'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/09/xfrx-121-just-released.html' title='XFRX 12.1 just released'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-115628160721166561</id><published>2006-08-22T17:16:00.000-04:00</published><updated>2006-10-12T23:01:06.839-04:00</updated><title type='text'>XFRX 12 just released</title><content type='html'>The latest version of XFRX reporting addon for VFP has just been released.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eqeus.com/whatsnew/whatsnew120.html"&gt;XFRX 12 Info&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Previewer is now faster when paging forward and back.  Also has a nice bookmark page that comes up showing links to found items after searching.&lt;br /&gt;&lt;br /&gt;We've been using XFRX for almost a year and have incorporated it into the &lt;a href="http://www.f1tech.com/vfe"&gt;VFE&lt;/a&gt; framework.  If you want to easily allow your users to output to a variety of file types, this one of the best components I've seen for doing it quickly and easily and does not require using any other 3rd party components.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-115628160721166561?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/115628160721166561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=115628160721166561' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/115628160721166561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/115628160721166561'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/08/xfrx-12-just-released.html' title='XFRX 12 just released'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-114662651220748744</id><published>2006-05-02T23:17:00.000-04:00</published><updated>2006-10-12T23:01:06.775-04:00</updated><title type='text'>How to make Visual Foxpro cool</title><content type='html'>Great post by Craig Bailey on ideas for making VFP cool.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://craigbailey.blogspot.com/2006/05/vfp-how-to-make-visual-foxpro-cool.html"&gt;How to make Visual Foxpro cool&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I just spent a half day at a Microsoft seminar on new stuff in .NET 2.0, Enterprise Library, etc.  I must admit there was a lot of cool stuff but there were also several things that I thought "Wow, I've been doing that same thing with VFP (or &lt;a href="http://www.f1tech.com/vfe"&gt;VFE&lt;/a&gt;) for years now" - but the "perception" is that it's so much cooler doing it with .NET, and I guess I would say that it probably is more cool.  Unfortunately, my clients usually don't want to pay for "cool".  They expect that for free.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-114662651220748744?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/114662651220748744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=114662651220748744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114662651220748744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114662651220748744'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/05/how-to-make-visual-foxpro-cool.html' title='How to make Visual Foxpro cool'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-114389977116843834</id><published>2006-04-01T08:54:00.000-05:00</published><updated>2006-10-12T23:01:06.706-04:00</updated><title type='text'>Notre Dame's Rockne remembered 75 years after death</title><content type='html'>SOUTH BEND, Ind. (AP) -- Knute Rockne was one of the most prominent figures in America -- let alone the famous coach at Notre Dame -- when his plane crashed in a Kansas pasture 75 years ago Friday.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sports.yahoo.com/ncaaf/news?slug=ap-notredame-rockneanniversary&amp;prov=ap&amp;type=lgns"&gt;Click Here for Full Story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-114389977116843834?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/114389977116843834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=114389977116843834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114389977116843834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114389977116843834'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/04/notre-dames-rockne-remembered-75-years.html' title='Notre Dame&apos;s Rockne remembered 75 years after death'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-114313661429659995</id><published>2006-03-23T12:56:00.000-05:00</published><updated>2006-10-12T23:01:06.644-04:00</updated><title type='text'>SQL MythBusters – MSDE/SQL Express has a 5 concurrent user limit</title><content type='html'>Oh man, if I had a quid for every time this has been answered in the newsgroups or at conferences it would be time to retire for sure! While validating this myth does not require another history lesson it might be useful.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://blogs.msdn.com/euanga/archive/2006/03/09/545576.aspx"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/software/"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-114313661429659995?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/114313661429659995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=114313661429659995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114313661429659995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114313661429659995'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/03/sql-mythbusters-msdesql-express-has-5.html' title='SQL MythBusters – MSDE/SQL Express has a 5 concurrent user limit'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-114294861602103077</id><published>2006-03-21T08:43:00.000-05:00</published><updated>2006-10-12T23:01:06.584-04:00</updated><title type='text'>Wikipedia's List Of Portable Applications For Your USB Drive!</title><content type='html'>Check out Wikipedia's comprehensive list of portable applications for your USB drive or other portable device!&lt;br/&gt;&lt;br/&gt;&lt;a href="http://en.wikipedia.org/wiki/List_of_portable_applications"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/software/Wikipedia_s_List_Of_Portable_Applications_For_Your_USB_Drive_"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-114294861602103077?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/114294861602103077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=114294861602103077' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114294861602103077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114294861602103077'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/03/wikipedias-list-of-portable.html' title='Wikipedia&apos;s List Of Portable Applications For Your USB Drive!'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-114226247829039169</id><published>2006-03-13T10:07:00.000-05:00</published><updated>2006-10-12T23:01:06.524-04:00</updated><title type='text'>FoxPro Developers Prep for Microsoft 'Sedna'</title><content type='html'>Visual FoxPro developers, oft-overlooked by Microsoft, are about to get an infusion of new technologies aimed at making the FoxPro language interoperable with Windows Vista, Office 2007 and .Net.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.eweek.com/article2/0,1895,1932922,00.asp?kc=ewnws030206dtx1k0000599"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/programming/FoxPro_Developers_Prep_for_Microsoft_Sedna_"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-114226247829039169?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/114226247829039169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=114226247829039169' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114226247829039169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114226247829039169'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/03/foxpro-developers-prep-for-microsoft.html' title='FoxPro Developers Prep for Microsoft &apos;Sedna&apos;'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-114225586644507709</id><published>2006-03-13T08:17:00.000-05:00</published><updated>2006-10-12T23:01:06.457-04:00</updated><title type='text'>Microsoft's Best-kept Database Secret....</title><content type='html'>Visual Foxpro.  October 2000 article by Les Pinter.  Still relevant today (perhaps even more so) with the exception of VFP not part of Visual Studio anymore.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.foxprohistory.org/articles_4.htm"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/programming/"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-114225586644507709?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/114225586644507709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=114225586644507709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114225586644507709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114225586644507709'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/03/microsofts-best-kept-database-secret.html' title='Microsoft&apos;s Best-kept Database Secret....'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-114200267992825199</id><published>2006-03-10T09:57:00.000-05:00</published><updated>2006-10-12T23:01:06.393-04:00</updated><title type='text'>Screenshot of Microsoft.com's First Web Page</title><content type='html'>This is a flash back to the early days, when this sort of design would have been THE SITE.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.microsoft.com/misc/features/features_flshbk_hp1.htm"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/links/Screenshot_of_Microsoft.com_s_First_Web_Page"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-114200267992825199?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/114200267992825199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=114200267992825199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114200267992825199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114200267992825199'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/03/screenshot-of-microsoftcoms-first-web.html' title='Screenshot of Microsoft.com&apos;s First Web Page'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-114178314191071222</id><published>2006-03-07T20:59:00.000-05:00</published><updated>2006-10-12T23:01:06.331-04:00</updated><title type='text'>OFFICIAL: Firefox 2.0 Alpha 1 Release This Week!</title><content type='html'>Firefox 2.0 Alpha 1 is set to be released by the end of this week (in 3 - 4 days), after being delayed a month due to development issues!&lt;br/&gt;&lt;br/&gt;&lt;a href="http://wiki.mozilla.org/Firefox2/StatusMeetings/2006-03-07#Alpha_1_Status"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/software/OFFICIAL:_Firefox_2.0_Alpha_1_Release_This_Week_"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-114178314191071222?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/114178314191071222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=114178314191071222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114178314191071222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114178314191071222'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/03/official-firefox-20-alpha-1-release.html' title='OFFICIAL: Firefox 2.0 Alpha 1 Release This Week!'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-114178188464737745</id><published>2006-03-07T20:38:00.000-05:00</published><updated>2006-10-12T23:01:06.272-04:00</updated><title type='text'>Ten of the Biggest Mistakes Developers Make With Databases</title><content type='html'>Although fashions come and go in software development, some things stay remarkably constant. One of these is the use of databases...&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.developer.com/db/article.php/3589351"&gt;read more&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="http://digg.com/programming/Ten_of_the_Biggest_Mistakes_Developers_Make_With_Databases"&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-114178188464737745?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/114178188464737745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=114178188464737745' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114178188464737745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114178188464737745'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/03/ten-of-biggest-mistakes-developers.html' title='Ten of the Biggest Mistakes Developers Make With Databases'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-114159083415111785</id><published>2006-03-05T15:33:00.000-05:00</published><updated>2006-10-12T23:01:06.204-04:00</updated><title type='text'>Amazing Opera Kid</title><content type='html'>&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/h4ttiMhtrGE"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/h4ttiMhtrGE" type="application/x-shockwave-flash" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-114159083415111785?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/114159083415111785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=114159083415111785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114159083415111785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114159083415111785'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/03/amazing-opera-kid.html' title='Amazing Opera Kid'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-114080917775401078</id><published>2006-02-24T14:21:00.000-05:00</published><updated>2006-10-12T23:01:06.143-04:00</updated><title type='text'>avast! Wins SC Award</title><content type='html'>&lt;a href="http://www.avast.com/eng/avast_wins_sc_award.html"&gt;avast! Wins SC Award&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well deserved in my opinion.  My Dad recommended this to me a few years ago after I complained about McAfee wanting me to pay for upgrade to the their XP version when I had just purchased a subscription for Win2K before I realized I would be upgrading my OS.&lt;br /&gt;&lt;br /&gt;avast! is free for personal use so there is absolutely NO reason for not having adequate virus protection on your home PC's.  Their auto updating has always worked flawlessly for me.  I see a new virus data file update on almost a daily basis so you can be confident you are up to date and protected against the latest known viruses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-114080917775401078?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/114080917775401078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=114080917775401078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114080917775401078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/114080917775401078'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/02/avast-wins-sc-award.html' title='avast! Wins SC Award'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113925891568489030</id><published>2006-02-06T15:43:00.000-05:00</published><updated>2006-10-12T23:01:06.073-04:00</updated><title type='text'>RSSFeeder .NET Update</title><content type='html'>After using &lt;a href="http://rssfeederdotnet.sourceforge.net/"&gt;RSSFeeder .NET&lt;/a&gt; for a little over a month I've decided it's not quite ready for prime time.  I was noticing a lot of errors being sent behind the scenes and looking at the bug list on source forge it appears that's where they all wind up.  Then last week the app just stopped working completely.  I tried uninstalling, deleting all files (including Access database it uses) and re-installing and still could not get it to start up.  Just kept crashing with a cryptic error.  So, now that I'm addicted to RSS feeds of all sorts I've decided to go back to Newsgator online, if only temporarily, until I decide if to try out another RSS reader.  I'm using &lt;a href="http://www.apple.com/itunes/"&gt;iTunes&lt;/a&gt; for my podcasts and that is working really well for that so far.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113925891568489030?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113925891568489030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113925891568489030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113925891568489030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113925891568489030'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/02/rssfeeder-net-update.html' title='RSSFeeder .NET Update'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113856908491067877</id><published>2006-01-29T16:10:00.000-05:00</published><updated>2006-10-12T23:01:06.010-04:00</updated><title type='text'>Newsvine</title><content type='html'>If anybody has an extra &lt;a href="http://www.newsvine.com"&gt;Newsvine&lt;/a&gt; invite I would love to try it.  Thanks in advance!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113856908491067877?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113856908491067877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113856908491067877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113856908491067877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113856908491067877'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/01/newsvine.html' title='Newsvine'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113750500117103433</id><published>2006-01-17T08:27:00.000-05:00</published><updated>2006-10-12T23:01:05.947-04:00</updated><title type='text'>Pandora: Music Lover's Dream</title><content type='html'>&lt;a href="http://www.pandora.com"&gt;Pandora&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was just shown this by a co-worker that heard about it on the &lt;a href="http://www.thisweekintech.com/"&gt;Inside The Net&lt;/a&gt; podcast. (Podcasting is a whole different topic that I may blog about later...)&lt;br /&gt;&lt;br /&gt;I've recently started getting back into music listening with all the latest iPod craze and whatnot. &lt;br /&gt;&lt;br /&gt;Anyway, &lt;a href="http://www.pandora.com"&gt;Pandora&lt;/a&gt; is a great place to learn about new and different music that you might want to add to your collection.  You start by entering a song title or artist and what follows are audio streams from a huge library that try to match music to your taste.  I'm still playing with the technology but so far I'm pretty impressed and have discovered (and re-discovered) lots of great music so far.  Right now the service is free but they are planning on introducing more advertising space to offset costs.  You can pay a subscription to avoid the advertising. Check it out and let me know what you think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113750500117103433?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113750500117103433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113750500117103433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113750500117103433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113750500117103433'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/01/pandora-music-lovers-dream.html' title='Pandora: Music Lover&apos;s Dream'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113737093836575996</id><published>2006-01-15T19:17:00.000-05:00</published><updated>2006-10-12T23:01:05.880-04:00</updated><title type='text'>Software Engineering vs. Computer Science</title><content type='html'>Just sitting here enjoying some coffee at the local &lt;a href="http://www.panerabread.com/"&gt;Panera Bread&lt;/a&gt; and catching up on some reading. Came across this post on &lt;a href="http://digg.com/programming/Software_Engineering%2C_Not_Computer_Science"&gt;Digg&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stevemcconnell.com/SeIsNotCs.pdf"&gt;Computer Engineering vs. Computer Science (Original PDF)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Excellent article, but Steve McConnell usually hits the nail on the head.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113737093836575996?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113737093836575996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113737093836575996' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113737093836575996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113737093836575996'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/01/software-engineering-vs-computer.html' title='Software Engineering vs. Computer Science'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113685441168984613</id><published>2006-01-09T19:50:00.000-05:00</published><updated>2006-10-12T23:01:05.807-04:00</updated><title type='text'>MA Wins First BattleField 2 Season Championship!</title><content type='html'>&lt;a href="http://www.beml.org"&gt;BEML Website&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The BEML would like to congratulate the Mature Asskickers on winning the first BattleField 2 Season Championship. They capped off an undefeated season by defeating Indiana Vehicles on a closely played Strike at Karkand. A report by Dawg from =IV=:&lt;br /&gt;&lt;br /&gt;"On Friday 1/6/05, (MA) &amp; =IV= met in the (MA) server for the BF2 Championship. The 16 player Karkand map was selected and the teams fought it out 8 vs 8. In the first map, =IV=, on the USMC side was able to cap the Market and Hotel, but (MA) was able to hold them off for a 45-0 win. Second map, (MA), on the USMC side was able to cap the market, then the Hotel, and then flags were taken back and forth till =IV= was able to hold off (MA) for a 34-0 win.&lt;br /&gt;Final score - (MA) 45 =IV= 34"&lt;br /&gt;&lt;br /&gt;Thanks to all the teams that made this first season possible! Hopefully we'll have more of the same success with our next season.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113685441168984613?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113685441168984613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113685441168984613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113685441168984613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113685441168984613'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2006/01/ma-wins-first-battlefield-2-season.html' title='MA Wins First BattleField 2 Season Championship!'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113535602663019773</id><published>2005-12-23T11:29:00.000-05:00</published><updated>2006-10-12T23:01:05.745-04:00</updated><title type='text'>RSSFeeder .NET</title><content type='html'>Spending some time on my day off just trying to catch up on all the new stuff in the world of software and came across this little gem called RSSFeeder .NET:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rssfeederdotnet.sourceforge.net/"&gt;http://rssfeederdotnet.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/smartclient/rssfeeder.asp"&gt;http://www.codeproject.com/smartclient/rssfeeder.asp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was reluctant to purchase a license for &lt;a href="http://www.feeddemon.com/feeddemon/index.asp"&gt;Feeddemon&lt;/a&gt; until I knew if I would really use an RSS aggregator.  I had switched to using Newsgator online, which is nice (and free), but I missed the robustness of a client-side program.  Until I found RSSFeeder .NET.  I have not thoroughly explored this software yet, but so far, I am impressed.&lt;br /&gt;&lt;br /&gt;The article at codeproject goes into some interesting technical background on the development of RSSFeeder .NET - I'm hoping to learn a little more about Atom vs. RSS 2.0 in hopes of getting my Open Wiki to consume Atom feeds.&lt;br /&gt;&lt;br /&gt;Hope everyone has a very Merry Christmas and Happy Holidays!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113535602663019773?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113535602663019773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113535602663019773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113535602663019773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113535602663019773'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/12/rssfeeder-net.html' title='RSSFeeder .NET'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113509588540736779</id><published>2005-12-20T11:20:00.000-05:00</published><updated>2006-10-12T23:01:05.685-04:00</updated><title type='text'>Finding Text in Files Using Windows Search</title><content type='html'>I was growing increasingly frustrated at not being able to search for text using Windows XP search to search within .ASP or .PRG files. (But Visual Foxpro Filer works great!) Searching for text in specific files is a common task a programmer needs to perform from time to time. I had no idea why it wasn't working until a co-worker sent me this link today:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mostlycreativeworkshop.com/article59.html"&gt;http://www.mostlycreativeworkshop.com/article59.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I normally don't use registry "hacks" like this, but in this case I think it may be worth it.  Hope this helps another frustrated Windows developer out there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113509588540736779?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113509588540736779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113509588540736779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113509588540736779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113509588540736779'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/12/finding-text-in-files-using-windows.html' title='Finding Text in Files Using Windows Search'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113509538546661602</id><published>2005-12-20T11:15:00.000-05:00</published><updated>2006-10-12T23:01:05.628-04:00</updated><title type='text'>How to force SQL Server Query to be Case-Senstive</title><content type='html'>By default, SQL Server instances are non-case sensitive.  In order to force a case sensitive comparison to a literal value you need to change the collation.  To find out the valid collation values, use the following query:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;SELECT *&lt;br /&gt;FROM ::fn_helpcollations() &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Here is an example of getting a query to be case sensitive:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;select count(*) &lt;br /&gt; from tsfile &lt;br /&gt; where left(digitalphotoloc,2) = 'g:' &lt;br /&gt; collate SQL_Latin1_General_CP1_CS_AS&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113509538546661602?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113509538546661602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113509538546661602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113509538546661602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113509538546661602'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/12/how-to-force-sql-server-query-to-be.html' title='How to force SQL Server Query to be Case-Senstive'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113461143222376544</id><published>2005-12-14T20:49:00.000-05:00</published><updated>2006-10-12T23:01:05.565-04:00</updated><title type='text'>Robin Williams in Battlefield 2</title><content type='html'>Looks like some famous people like playing the same online video game as I do:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gametab.com/news/443268/"&gt;http://www.gametab.com/news/443268/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://thearchies.blogspot.com/2005/12/mork-me.html"&gt;http://thearchies.blogspot.com/2005/12/mork-me.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Way cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113461143222376544?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113461143222376544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113461143222376544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113461143222376544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113461143222376544'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/12/robin-williams-in-battlefield-2.html' title='Robin Williams in Battlefield 2'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113449112195441020</id><published>2005-12-13T11:17:00.000-05:00</published><updated>2006-10-12T23:01:05.506-04:00</updated><title type='text'>View Editor 3.6 Released</title><content type='html'>&lt;a href="http://whitelightcomputing.com/newsreleaseindividual.asp?iPK=39"&gt;White Light Computing News Release&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Well, this holiday season is bringing lots of new versions of software and White Light Computing's View Editor is no exception.  If you are a Visual Foxpro developer and are using local or remote views, this is a must have tool.  Rick Schummer has been doing an excellent job at supporting and enhancing this awesome program. &lt;br /&gt;Merry Christmas!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113449112195441020?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113449112195441020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113449112195441020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113449112195441020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113449112195441020'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/12/view-editor-36-released.html' title='View Editor 3.6 Released'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113445078029600659</id><published>2005-12-13T00:12:00.000-05:00</published><updated>2006-10-12T23:01:05.440-04:00</updated><title type='text'>Dean Gray Tuesday</title><content type='html'>&lt;A HREF="http://www.americanedit.org/" title="Dean Gray Tuesday" style="text-decoration:none;"&gt;&lt;IMG SRC="http://gray.alt.fm/graybanner.gif" BORDER="0" width="480" height="106" alt="Dean Gray Tuesday" /&gt;&lt;/A&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113445078029600659?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113445078029600659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113445078029600659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113445078029600659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113445078029600659'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/12/dean-gray-tuesday.html' title='Dean Gray Tuesday'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113414264637319938</id><published>2005-12-09T10:36:00.000-05:00</published><updated>2006-10-12T23:01:05.382-04:00</updated><title type='text'>Visual FoxPro 9.0 Service Pack 1 Released</title><content type='html'>&lt;a href="http://msdn.microsoft.com/vfoxpro/"&gt;Download Visual FoxPro 9.0 Service Pack 1 (SP1)&lt;/a&gt;. SP1 provides the latest updates to Visual FoxPro 9.0 combining various enhancements and stability improvements into one integrated package.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113414264637319938?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113414264637319938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113414264637319938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113414264637319938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113414264637319938'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/12/visual-foxpro-90-service-pack-1.html' title='Visual FoxPro 9.0 Service Pack 1 Released'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113400994543526466</id><published>2005-12-07T21:26:00.000-05:00</published><updated>2006-10-12T23:01:05.324-04:00</updated><title type='text'>FireFox &amp; Security</title><content type='html'>I've been a Firefox user for quit a while.  I was one of those "who needs anything but Internet Explorer" people ever since IE jumped past Netscape with version 5. But when I finally (reluctantly) installed and tried Firefox I've been a big fan ever since. &lt;br /&gt;&lt;br /&gt;However, tonight I learned about an unsettling "feature" that to me is MAJOR security hole.  I had used a friends PC to log on and get my email, check my newsfeeds at newsgator, etc. when I was in California last week. Now, I don't remember answering "Yes" to save any passwords, but that's besides the point.  He called me tonight and informed me there is an option under Security where you can actually "Show" the saved passwords and he just stumbled on it! He's not even a geek like I me so I was a little embarrassed to admit I didn't know about this.&lt;br /&gt;&lt;br /&gt;But, my embarrassment was really overshadowed by my shock: No application should EVER allow a user to see passwords and it should absolutely not be the default setting if it does! Fortunatetly, this was a friends computer and not a public one. You can set a master password that protects this password list from prying eyes and I highly recommend you do this immediately if you are a Firefox user. &lt;br /&gt;&lt;br /&gt;For all the talk about Windows and Internet Explorer having security flaws, to me, this hole in Firefox would be the easiest to exploit. I've never seen anything in Windows or IE that let's me actually view passwords! &lt;br /&gt;&lt;br /&gt;This type of exploit is what is commonly referred to as "&lt;a href="http://en.wikipedia.org/wiki/Social_engineering_(computer_security)"&gt;social engineering&lt;/a&gt;".  For instance: an office that has a lot of Firefox users is open to a major compromise of user passwords by someone just walking cubicle to cubicle and writing this information down.  In my opinion this "feature" should be taken out altogether.  It's just an awful, horrible idea to ever be able to "show" a password unmasked.  This is exactly the type of thing that scares me about "open source" software - who is accountable for this design flaw?  Who are the shareholders? And why would a company ever assume that only 1 person uses a computer with their software?&lt;br /&gt;&lt;br /&gt;I would be interested in hearing any feedback.  Are you as shocked as I am to know about this?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113400994543526466?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113400994543526466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113400994543526466' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113400994543526466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113400994543526466'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/12/firefox-security.html' title='FireFox &amp; Security'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113397998025188208</id><published>2005-12-07T13:20:00.000-05:00</published><updated>2006-10-12T23:01:05.264-04:00</updated><title type='text'>XFRX 11.2 just released</title><content type='html'>The latest version of XFRX reporting addon for VFP has just been released.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eqeus.com/whatsnew/whatsnew112.html"&gt;XFRX 11.1 Info&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now supports output to OpenOffice which uses OASIS (Open Document Format). Several other office application vendors use this same format.&lt;br /&gt;&lt;br /&gt;We've been using 11.1 for a little over a month and have incorporated it into the &lt;a href="http://www.f1tech.com/vfe"&gt;VFE&lt;/a&gt; framework.  If you want to easily allow your users to output to a variety of file types, this one of the best components I've seen for doing it quickly and easily and does not require using any other 3rd party components.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113397998025188208?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113397998025188208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113397998025188208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113397998025188208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113397998025188208'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/12/xfrx-112-just-released.html' title='XFRX 11.2 just released'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113392198156513650</id><published>2005-12-06T21:07:00.000-05:00</published><updated>2006-10-12T23:01:05.198-04:00</updated><title type='text'>VFP Cross Tab Query vs. Excel Pivot Table</title><content type='html'>Today I learned how to automate Excel from VFP to create pivot tables.  This totally rocks and is a much more powerful option than trying to output VFP cross tab data (created by the cross tab wizard or foundation classes) to FRX reports.  &lt;br /&gt;&lt;br /&gt;I was able to show my client how to easily create charts from the same pivot table in a variety of ways.  &lt;br /&gt;&lt;br /&gt;A great resource for getting started in doing this is the book &lt;a href="http://www.hentzenwerke.com/catalog/autofox.htm"&gt;Microsoft Automation with Visual Foxpro&lt;/a&gt;.  I used a combination of the examples in the book, recording Excel macros, etc.  &lt;br /&gt;&lt;br /&gt;The reason I needed a good cross tab solution was that a long time client of mine had used &lt;a href="http://www.foxfirereporting.com/"&gt;Foxfire&lt;/a&gt; for many years.  However, I just recently upgraded them to VFP9 and SQL Server and was evaluating the effort required to move to the next version of Foxfire which is still in beta.  Needless to say, I was not having much luck.  So, long story short, they needed the ability to run several reports from their new app ASAP.  Many of these were cross-tabs which Foxfire did a pretty good job of making easy (but not an option for now).  I wanted to keep it just as simple and was looking for a more dynamic alternative to Foxpro reports (FRX) to handle the output.  &lt;br /&gt;&lt;br /&gt;My co-worker &lt;a href="http://fox.wikis.com/wc.dll?Wiki~AndyNeedham"&gt;Andy Needham&lt;/a&gt; suggested I take a look automating Excel.  Great idea!  In a single day I had 5 cross-tabs created in Excel and the client loves it!&lt;br /&gt;&lt;br /&gt;Here is some sample code from the class I created: (Note: VFP cursor already loaded in Excel using COPY TO &lt;filename&gt; TYPE XL5 before this method is called)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;LOCAL llReturn, ;&lt;br /&gt; loExcel, ;&lt;br /&gt; loBook, ;&lt;br /&gt; loPivot, ;&lt;br /&gt; loSourceData, ;&lt;br /&gt; loDestination, ;&lt;br /&gt; lnLastLine&lt;br /&gt; &lt;br /&gt;llReturn = .T.&lt;br /&gt; &lt;br /&gt;lobook = GETOBJECT(This.cExcelfile)&lt;br /&gt;loExcel = lobook.Application&lt;br /&gt;loexcel.Visible = .T.&lt;br /&gt;lobook.Windows[1].Activate()&lt;br /&gt;loBook.Sheets[1].Range("A1").Select&lt;br /&gt;loExcel.ActiveCell.FormulaR1C1 = "Customer Name"&lt;br /&gt;loBook.Sheets[1].Range("A2").Select&lt;br /&gt;lobook.Sheets[1].Range("A1:C"+TRANSFORM(this.nlastline)).columns.Autofit()&lt;br /&gt;loSourceData = lobook.Sheets[1].Range("A1:C"+TRANSFORM(this.nlastline))&lt;br /&gt;loBook.Worksheets.Add(,loBook.Sheets[1])&lt;br /&gt;loDestination = loBook.Sheets[2].Range("A1")   &lt;br /&gt;loPivotTable = lobook.Sheets[1].PivotTableWizard(1,loSourceData,loDestination,This.cReporttitle,.T.,.T.)&lt;br /&gt;&lt;br /&gt;WITH loPivotTable&lt;br /&gt; .AddFields("Customer Name","order_month")&lt;br /&gt; .PivotFields(this.ccountcolumn).Orientation = 4&lt;br /&gt; .PivotFields("Order_Month").NumberFormat = "mmmm-yyyy"&lt;br /&gt;    .NullString = ""&lt;br /&gt;    .PageFieldOrder = 2&lt;br /&gt;    .PrintTitles = .F. &lt;br /&gt;    .RepeatItemsOnEachPrintedPage = .F.&lt;br /&gt;    .PrintTitles = .T. &lt;br /&gt;    .RepeatItemsOnEachPrintedPage = .T.&lt;br /&gt;    .PivotSelect("", 0)&lt;br /&gt; .Format(16)          &lt;br /&gt;ENDWITH&lt;br /&gt;&lt;br /&gt;WITH loBook.Sheets[2].Cells&lt;br /&gt; .Select&lt;br /&gt; .Range("A6").Activate&lt;br /&gt;ENDWITH&lt;br /&gt;&lt;br /&gt;loExcel.Selection.RowHeight = 16.5   &lt;br /&gt;&lt;br /&gt;WITH loBook.Sheets[2].PageSetup&lt;br /&gt; .PrintTitleRows = "$1:$2"&lt;br /&gt;    .PrintTitleColumns = "$A:$A"&lt;br /&gt;    .LeftHeader = "&amp;D&amp;T"&lt;br /&gt;    .CenterHeader = This.cReporttitle&lt;br /&gt;    .RightHeader = "Page &amp;P"&lt;br /&gt;    .LeftFooter = ""&lt;br /&gt;    .CenterFooter = ""&lt;br /&gt;    .RightFooter = ""&lt;br /&gt;    .LeftMargin = loExcel.InchesToPoints(0.25)&lt;br /&gt;    .RightMargin = loExcel.InchesToPoints(0.25)&lt;br /&gt;    .TopMargin = loExcel.InchesToPoints(.25)&lt;br /&gt;    .BottomMargin = loExcel.InchesToPoints(.25)&lt;br /&gt;    .HeaderMargin = loExcel.InchesToPoints(0.25)&lt;br /&gt;    .FooterMargin = loExcel.InchesToPoints(0.25)&lt;br /&gt;    .PrintHeadings = .F.&lt;br /&gt;    .PrintGridlines = .F.&lt;br /&gt;    .PrintComments = -4142&lt;br /&gt;    .PrintQuality = 600&lt;br /&gt;    .CenterHorizontally = .F.&lt;br /&gt;    .CenterVertically = .F.&lt;br /&gt;    .Orientation = 2&lt;br /&gt;    .Draft = .F.&lt;br /&gt;    .PaperSize = 1&lt;br /&gt;    .FirstPageNumber = -4105&lt;br /&gt;    .Order = 2&lt;br /&gt;    .BlackAndWhite = .F.&lt;br /&gt;    .Zoom = .F.&lt;br /&gt;    .FitToPagesWide = 1&lt;br /&gt;    .FitToPagesTall = .F.&lt;br /&gt;&lt;br /&gt;ENDWITH  &lt;br /&gt;&lt;br /&gt;loBook.Sheets[2].PrintPreview &lt;br /&gt;&lt;br /&gt;loPivotTable = null&lt;br /&gt;loSourceData = null&lt;br /&gt;loDestination = null&lt;br /&gt;loExcel = null&lt;br /&gt;loBook = null&lt;br /&gt;&lt;br /&gt;RETURN llReturn&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;A couple things to note: the structure of all these particular cross tabs is the same except for the count column (cu_name, order_month, my_count), so I set that to the cCountColumn property before calling this execute method.  nLastLine is set from the RECCOUNT() of my result set.  I change the header column of cu_name to Customer Name to make it look nicer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113392198156513650?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113392198156513650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113392198156513650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113392198156513650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113392198156513650'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/12/vfp-cross-tab-query-vs-excel-pivot.html' title='VFP Cross Tab Query vs. Excel Pivot Table'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113388507988350294</id><published>2005-12-06T10:47:00.000-05:00</published><updated>2006-10-12T23:01:05.135-04:00</updated><title type='text'>Fun with Hyperlinks and IE</title><content type='html'>I just got a call from a client saying that they were trying to email from their application and their PC had opened up hundreds of instances of Internet Explorer and was continuing to load IE windows even as you tried to close them. Very strange.&lt;br /&gt;&lt;br /&gt;The method we use for automatically opening a new email message window is based on a hyperlink class in the framework we use which instantiates IE and calls the navigate method.  If it starts with "mailto:" it's supposed to open a new mail message using the default mail client (in this case, Outlook 2000).  Here is the code that is called when the click the email label on the form:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;* NavigateTo method of hyperlink class:&lt;br /&gt;loBrowser = GETOBJECT("","InternetExplorer.Application")&lt;br /&gt;IF TYPE("loBrowser.Name") = T_CHARACTER&lt;br /&gt; WITH loBrowser&lt;br /&gt;  .Navigate(tcTarget, tcLocation, tcFrame)&lt;br /&gt;  * Do not display the browser if the URL is a mail to address.&lt;br /&gt;  IF NOT UPPER(LEFT(tcTarget,7)) == "MAILTO:"&lt;br /&gt;   .Visible = .T.&lt;br /&gt;  ENDIF&lt;br /&gt;  NODEFAULT&lt;br /&gt; ENDWITH&lt;br /&gt;ELSE&lt;br /&gt; DoDefault(tcTarget, tcLocation, tcFrame )&lt;br /&gt;ENDIF&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Notice if it sees MAILTO: IE should not be made visible.  This method has worked great for years.  So I had them reboot the machine and try again with the same email address.  Same thing. IE continued to load in some kind of endless loop fashion.  Tried from another PC with same email address and it worked fine.  Tried with a different email address on the PC with trouble and it worked fine, too.  So what was up with this email address?  It looked normal.  I checked the contacts in Outlook and it looked like a normal entry there, too.  Then my client noticed there was an email saved in the Drafts folder in Outlook. Lo and behold it was a blank email to this same address!  We deleted it from Drafts and the problem went away!  I tried re-producing the same thing on my development PC and could not get it to happen. &lt;br /&gt;&lt;br /&gt;Don't you love it? It seems I spend more time supporting these type of Windows/Office issues than I do writing code sometimes. Anyway, just another glimpse into the typical day of a VFP programmer.  Have a great day!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113388507988350294?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113388507988350294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113388507988350294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113388507988350294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113388507988350294'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/12/fun-with-hyperlinks-and-ie.html' title='Fun with Hyperlinks and IE'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113298235690023564</id><published>2005-11-26T00:11:00.000-05:00</published><updated>2006-10-12T23:01:05.069-04:00</updated><title type='text'>First Class All The Way!</title><content type='html'>Well, I wish we didn't live in a world with "classes" but... I decided to cash in some frequent flyer miles for first class this trip and boy howdy!  It was everything I thought it would be and more!  Actually, I have flown first class but it was quite a long time ago (my Dad is a retired airline mechanic).  Anyway, it sure beat paying $5 for a "snack" and having to beg for coffee refills.  Not to mention, the seats were actually pretty comfy.   My "lite" lunch started with complimentary nuts. Not the packaged nuts, but served warm in a little bowl and followed up with a nice hot towel.  I chose the shrimp chef salad over the grilled chicken breast.  For dessert: a fresh baked, very large, tollhouse cookie. Still warm and chips melty.   Definitely not the "airline" food I had come to expect.  Now I'm spoiled and dreading the flight back home which will be, as they put it, in "the main cabin".  Oh well, only a few thousand more miles until I qualify for my next upgrade.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113298235690023564?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113298235690023564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113298235690023564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113298235690023564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113298235690023564'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/11/first-class-all-way.html' title='First Class All The Way!'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113293760712167282</id><published>2005-11-25T11:47:00.000-05:00</published><updated>2006-10-12T23:01:05.006-04:00</updated><title type='text'>MS Outlook User Hostile Interface</title><content type='html'>Yes, I have lost most of my remaining gray hairs over this, too:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://paulmcnett.com/cgi-bin/blosxom.cgi/2005/05/11#MicrosoftOfficeOutlookPileOfCrap"&gt;MS Outlook hostile interface&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In fact, the client I'm on my way to seeing now is always at risk of seeing this dialog if they happen to install the service pack that implements this. I know there are lots of third party "hacks" to get rid of this in Office 2000, but why can't it just be a user preference that persists? And, as Paul points out, my automation logic is not even coming near the address book in Outlook. I just need to have an email sent automatically when the user clicks a button in their VFP app. Sure, we could switch to SMTP or something, but the users like to see it in their Sent folder, etc. Seems like they could have done something a little more creative than this dialog to "fix" the problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113293760712167282?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113293760712167282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113293760712167282' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113293760712167282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113293760712167282'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/11/ms-outlook-user-hostile-interface.html' title='MS Outlook User Hostile Interface'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113276797569251636</id><published>2005-11-23T12:09:00.000-05:00</published><updated>2006-10-12T23:01:04.943-04:00</updated><title type='text'>SQL @@SERVERNAME can sometimes return NULL</title><content type='html'>In our SQL Server applications we have the need of connecting to different servers (ie. development, test, production). In order to know which server/database we are connected to I have some code that executes at startup after connecting to append this information to the _vfp.caption.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;IF FILE("DEBUG.TXT") OR FILE("DISPLAYDBINFO.TXT")&lt;br /&gt;lnResult = SQLEXEC(lnHandle,"SELECT @@SERVERNAME AS servername","servernamecursor")&lt;br /&gt;IF lnResult &gt; 0&lt;br /&gt;   _vfp.Caption = _vfp.Caption + " - "+ALLTRIM(servernamecursor.servername)&lt;br /&gt;   USE IN servernamecursor&lt;br /&gt;   lnResult = SQLEXEC(lnHandle,"SELECT DB_NAME() AS db_name","dbnamecursor")&lt;br /&gt;   IF lnResult &gt; 0&lt;br /&gt;      _vfp.Caption = _vfp.Caption + "/"+ ALLTRIM(dbnamecursor.db_name)&lt;br /&gt;      USE IN dbnamecursor&lt;br /&gt;   ENDIF&lt;br /&gt;ENDIF&lt;br /&gt;ENDIF&lt;br /&gt;&lt;/pre&gt;This worked great for years until.... Not sure what SP or update caused it but @@Servername started returning NULL!&lt;br /&gt;&lt;br /&gt;We've found 2 possible solutions to this:&lt;br /&gt;&lt;br /&gt;1. Try using SELECT ServerProperty('servername') instead of SELECT @@SERVERNAME&lt;br /&gt;2. Perform the following in Query Analyzer:&lt;br /&gt;&lt;pre&gt;sp_dropserver 'MYSERVER'&lt;br /&gt;sp_addserver 'MYSERVER', 'local'&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;Note: this requires you to restart SQL Server before @@SERVERNAME is fixed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Additional info:  &lt;a href="http://www.sqlnewsgroups.net/group/microsoft.public.sqlserver.server/topic4087.aspx"&gt;http://www.sqlnewsgroups.net/group/microsoft.public.sqlserver.server/topic4087.aspx&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113276797569251636?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113276797569251636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113276797569251636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113276797569251636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113276797569251636'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/11/sql-servername-can-sometimes-return.html' title='SQL @@SERVERNAME can sometimes return NULL'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113258505524514843</id><published>2005-11-21T09:53:00.000-05:00</published><updated>2006-10-12T23:01:04.886-04:00</updated><title type='text'>FlyLady</title><content type='html'>Do you have a clutter problem at your house?  We sure do!  If you do too, then you should really check out &lt;a href="http://www.flylady.com"&gt;FlyLady.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My Mom told me about this yesterday and said it has helped her a lot.  So both my wife and I joined their mailing list.   Fly Lady uses a "baby steps" approach to helping you get clutter free and organized.  I'll let you know how it's working after a few months.  My Mom said the email can get overwhelming so I've set it to just send me a daily digest of the mails.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113258505524514843?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113258505524514843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113258505524514843' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113258505524514843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113258505524514843'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/11/flylady.html' title='FlyLady'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19158260.post-113252825550443601</id><published>2005-11-20T18:04:00.000-05:00</published><updated>2006-10-12T23:01:04.812-04:00</updated><title type='text'>Ready or not, here comes my Blog!</title><content type='html'>Well, after several months of "blog envy" (ie. really enjoyable reading) I've decided to launch myself into the blogosphere.&lt;br /&gt;&lt;br /&gt;Hopefully it will be much more successful than my &lt;a href="http://randyjean.no-ip.com/"&gt;wiki&lt;/a&gt;  launch a couple of years ago.  I think I got about 3 hits in the first 20 minutes and that's about it.&lt;br /&gt;&lt;br /&gt;So, stay tuned for weekly (I hope) postings. I'm planning to blog about a myriad of topics but will probably try to stay focused on Visual Foxpro and IT related stuff. I have been employed with &lt;a href="http://www.ogse.com/"&gt;Orion Group&lt;/a&gt; going on 9 years.&lt;br /&gt;&lt;br /&gt;I have been developing with Fox versions going back to Foxbase+ when I worked as a "computer operator" for an RV manufacturing company in 1988. I had a brief encounter with Dbase III+ but then soon discovered Foxbase, and the rest is history. About the only other database development tool I've worked with in that time (other than very limited Access work) was &lt;a href="http://www.uniface.com/"&gt;Uniface&lt;/a&gt;, which kind of gave me my first exposure to client/server databases as we used Oracle on the backend. This was for a mortgage servicing application.&lt;br /&gt;&lt;br /&gt;This has been a very busy couple of years for me at Orion Group.  Lots of new projects using &lt;a href="http://msdn.microsoft.com/vfoxpro"&gt;VFP 9.0&lt;/a&gt; as well as enhancements and maintenance of existing VFP apps.&lt;br /&gt;&lt;br /&gt;This week I will be travelling to a client in Ca. to do a system cutover. I have been supporting them since 1993 when I wrote their first line of business app in Foxpro for Windows 2.5 (not long after it was realeased) We just finished up their second re-engineering project (last time was 1999) which will get them up on VFP9, &lt;a href="http://www.f1tech.com/VFE/whatsnewinvfe2005.asp"&gt;VFE2005&lt;/a&gt; and SQL Server 2000. They have been running on Fox tables all this time and have never had to purge or archive! Their first app was written in FPW2.6 and I used the Codebook 2.0 framework which I enhanced with my own toolbar icons, etc. The last re-write used VFP6 and VFE5.5 (VFE6 was still in early beta at the time or I would have gone with that)  Oh yeah, and they also run Foxfire 3.0 and are eagerly awaiting the release of &lt;a href="http://www.foxfirereporting.com/"&gt;Foxfire 8&lt;/a&gt;.  This is just one example of the type of projects I am currently involved with at Orion Group.&lt;br /&gt;&lt;br /&gt;We are also keeping an eye on .NET and have been getting some people certified on that platform so we are ready when the right opportunity comes our way for that. In the meantime, VFP continues to provide a very rich development environment. I have also done some .NET interop (both ways) as well as published and consumed XML Web Services using VFP and .NET.&lt;br /&gt;&lt;br /&gt;Well, enough about "work".  In my "spare" time I am an avid Irish football fan. I live close enough to walk to the games. I've had season tickets the past 4 years and was at the&lt;a href="http://und.collegesports.com/sports/m-footbl/recaps/101505aaa.html"&gt; ND vs. USC&lt;/a&gt; game which many in the media are saying is one of the best football games they've ever seen. My seats are 12 rows back in the end-zone where Matt Leinert was "pushed" in by Reggie Bush. One moment I will never forget as long as I live. My nephew was the lucky one who got to go the game with me for his 17th birthday.&lt;br /&gt;&lt;br /&gt;When football season is over, I like to spend time tweaking my "gamer" PC and playing &lt;a href="http://www.battlefield2.com/"&gt;Battlefield 2&lt;/a&gt; (much to the chagrin of my loving and very understanding wife, Pauline).  I play with an online "clan" called "&lt;a href="http://matureasskickers.net/"&gt;Matureasskickers&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;Thanks for visiting and please come again.&lt;br /&gt;&lt;br /&gt;- Randy Jean&lt;br /&gt;&lt;br /&gt;P.S. Happy Thanksgiving!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19158260-113252825550443601?l=randyjean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randyjean.blogspot.com/feeds/113252825550443601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19158260&amp;postID=113252825550443601' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113252825550443601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19158260/posts/default/113252825550443601'/><link rel='alternate' type='text/html' href='http://randyjean.blogspot.com/2005/11/ready-or-not-here-comes-my-blog.html' title='Ready or not, here comes my Blog!'/><author><name>Randy Jean</name><uri>http://www.blogger.com/profile/09615727409347309685</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
