<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Kevin Ragsdale's FoxPro Blog</title>
    <description>Thoughts on Visual FoxPro, software development, and the occasional rant.</description>
    <link>http://kevinragsdale.net/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.5.0.6</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://kevinragsdale.net/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.kevinragsdale.net/syndication.axd</blogChannel:blink>
    <dc:creator>Kevin Ragsdale</dc:creator>
    <dc:title>Kevin Ragsdale</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/feedburner/vfUv" /><feedburner:info uri="feedburner/vfuv" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>35.500068</geo:lat><geo:long>-86.084144</geo:long><item>
      <title>Desktop Alerts Tip: Building App-Specific Alert EXE’s</title>
      <description>&lt;p&gt;When I first wrote the Desktop Alerts, I pictured a perfect world where everyone had one set of VFP runtimes and the Desktop Alerts would be installed, once, on every computer in the world.&lt;/p&gt;
&lt;p&gt;Alas, the world is not perfect. Some apps install VFPALERT.EXE to the app folder, some do not. Some developers add new functionality and recompile the VFPALERT project, some do not. Some recompile it in VFP9SP2, some do not.&lt;/p&gt;
&lt;p&gt;To make things easier on yourself and your fellow developers, I recommend compiling your own application-specific version of the Desktop Alerts for each application, and including it (along with ALERT.WAV) with your installer.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s say I&amp;rsquo;ve written the following three software products, and I want to include Desktop Alerts functionality with all three:&lt;/p&gt;
&lt;p&gt;ABC Accounting   &lt;br /&gt;BCD Bookkeeper    &lt;br /&gt;CDE Customer Manager&lt;/p&gt;
&lt;p&gt;On the one hand, I could install the Desktop Alerts to one specific location, and all three products would use that one install.&lt;/p&gt;
&lt;p&gt;But, if my customer is using software from another vendor that also uses the Desktop Alerts (and, especially a modified/recompiled version), I may not get the same functionality I expected.&lt;/p&gt;
&lt;p&gt;So, since I have three different products, I&amp;rsquo;m going to create three versions of the Desktop Alerts COM EXE Server, and install each one with its respective product.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MAKE SURE TO SELECT REGENERATE COMPONENT IDs IN THE PROJECT BUILD WINDOW IF YOU ARE DOING THIS!!!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=build.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="build" src="http://kevinragsdale.net/image.axd?picture=build_thumb.png" border="0" alt="build" width="244" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll take the original source code (&lt;a href="http://vfpx.codeplex.com/releases/view/79034" target="_blank"&gt;from the VFPAlert.zip file from VFPX&lt;/a&gt;), and compile it three times (&lt;strong&gt;with new Component IDs for each one&lt;/strong&gt;) using the following filenames:&lt;/p&gt;
&lt;p&gt;ABCALERT.EXE   &lt;br /&gt;BCDALERT.EXE    &lt;br /&gt;CDEALERT.EXE&lt;/p&gt;
&lt;p&gt;Then I can distribute each one with their respective product.&lt;/p&gt;
&lt;p&gt;In the ABC Accounting software, I would use:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: 'Courier New';"&gt;oAlertMgr = CREATEOBJECT("ABCAlert.AlertManager")&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Instead of the usual "VFPAlert.AlertManager".&lt;/p&gt;
&lt;p&gt;This also frees me up to recompile the alerts in VFP8 (if my app is written in VFP8), without having to rely on installing VFP9SP2 runtimes along with my app just to support the alerts.&lt;/p&gt;
&lt;p&gt;All I need at this point is to add ABCALERT.EXE and ALERT.WAV to my ABC Accounting app installer (and make sure to run ABCALERT.EXE with the REGSERVER flag during the install) and I have an all-new, app-specific version of Desktop Alerts just for my app &amp;ndash; without having to worry about another vendor&amp;rsquo;s application "taking over" the Desktop Alerts.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=QFcK47L_f8g:bVhtOR4kwaE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=QFcK47L_f8g:bVhtOR4kwaE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=QFcK47L_f8g:bVhtOR4kwaE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/QFcK47L_f8g" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/QFcK47L_f8g/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2011/12/20/Desktop-Alerts-Tip-Building-App-Specific-Alert-EXE’s.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=aa568640-1e01-458a-a8b4-08221e00711b</guid>
      <pubDate>Tue, 20 Dec 2011 19:57:00 +0300</pubDate>
      <category>foxpro</category>
      <category>foxpro programming</category>
      <category>visual foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=aa568640-1e01-458a-a8b4-08221e00711b</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=aa568640-1e01-458a-a8b4-08221e00711b</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2011/12/20/Desktop-Alerts-Tip-Building-App-Specific-Alert-EXE’s.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=aa568640-1e01-458a-a8b4-08221e00711b</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=aa568640-1e01-458a-a8b4-08221e00711b</feedburner:origLink></item>
    <item>
      <title>Desktop Alerts 1.0.0 (Production Release)</title>
      <description>&lt;p&gt;After 4 years in beta, I&amp;rsquo;ve posted a new version of the Desktop Alerts as a Production Release on VFPX.&lt;/p&gt;
&lt;p&gt;You can download the latest source code and whitepaper at:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://vfpx.codeplex.com/releases/view/79034" target="_blank"&gt;http://vfpx.codeplex.com/releases/view/79034&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The new version includes a couple of changes/enhancements for improved Vista/Windows 7 compatibility.&lt;/p&gt;
&lt;p&gt;There is a new property for the AlertManager class: cSettingsPath. This property can be filled by calling the new AlertManager method SetSettingsPath. Send in the full path of a &amp;ldquo;writeable&amp;rdquo; folder where the settings file should be written (DACONFIG.XML).&lt;/p&gt;
&lt;p&gt;Another new property of the AlertManager class is lCleanMemory. The default value is .F. &amp;ndash; if you set this value to .T. the AlertManager will attempt to reduce memory consumption by calling some code I &lt;span style="text-decoration: line-through;"&gt;stole&lt;/span&gt; leveraged from &lt;a href="http://www.berezniker.com/content/pages/visual-foxpro/lowering-memory-usage-application" target="_blank"&gt;Sergey&amp;rsquo;s blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I also updated the Settings window to default to Segoe UI, 9.&amp;nbsp; There are new settings in the VFPALERT.H file which can hold &amp;ldquo;fallback&amp;rdquo; font name and size for users on earlier (pre-Vista) versions of Windows.&amp;nbsp; The include file currently uses Tahoma,9 as the &amp;ldquo;fallback&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll be posting some new notes on the Codeplex site tomorrow. Basically, a FAQ sheet that answers some common questions about installing, etc.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;p&gt;Updated: Special thanks to Rick Schummer for the friendly reminder to release, and Art Bergquist for editing notes from the original whitepaper!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=v7RB0x3RgHQ:zipTxMppYGE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=v7RB0x3RgHQ:zipTxMppYGE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=v7RB0x3RgHQ:zipTxMppYGE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/v7RB0x3RgHQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/v7RB0x3RgHQ/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2011/12/18/Desktop-Alerts-100-(Production-Release).aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=3e383db1-8cfe-4076-b1ca-bc9e2144f37f</guid>
      <pubDate>Sun, 18 Dec 2011 16:36:00 +0300</pubDate>
      <category>foxpro</category>
      <category>foxpro programming</category>
      <category>visual foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=3e383db1-8cfe-4076-b1ca-bc9e2144f37f</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=3e383db1-8cfe-4076-b1ca-bc9e2144f37f</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2011/12/18/Desktop-Alerts-100-(Production-Release).aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=3e383db1-8cfe-4076-b1ca-bc9e2144f37f</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=3e383db1-8cfe-4076-b1ca-bc9e2144f37f</feedburner:origLink></item>
    <item>
      <title>Don’t Miss the Deadline</title>
      <description>&lt;p&gt;The &lt;a href="http://swfox.net" target="_blank"&gt;Southwest Fox 2011 Conference&lt;/a&gt; kicks-off Wednesday, October 26th with &lt;a href="http://swfox.net/sessions.aspx" target="_blank"&gt;four pre-conference sessions&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Whether you’re interested in &lt;a href="http://swfox.net/sessions.aspx#Boosting_Your_Client_Server_Application_Using_Stored_Procedures" target="_blank"&gt;client-server development&lt;/a&gt;, &lt;a href="http://swfox.net/sessions.aspx#FoxPro_on_Your_Smartphone?_A_Complete_Guide_to_Getting_Started" target="_blank"&gt;FoxPro and Smartphones&lt;/a&gt;, &lt;a href="http://swfox.net/sessions.aspx#Fly_in_the_Clouds_-_Preparing_an_Application_for_FoxInCloud" target="_blank"&gt;FoxInCloud&lt;/a&gt;, or getting started with &lt;a href="http://swfox.net/sessions.aspx#ASP.NET_MVC3_Jumpstart" target="_blank"&gt;ASP.NET MVC3&lt;/a&gt;, this year’s pre-conference schedule has something for everyone.&lt;/p&gt;  &lt;p&gt;And I know a way you can attend one of these half-day ($99) sessions for &lt;strong&gt;free&lt;/strong&gt;. Simply &lt;a href="http://swfox.net/register.aspx" target="_blank"&gt;register&lt;/a&gt; for Southwest Fox before July 1st.&lt;/p&gt;  &lt;p&gt;Want to be eligible to save even more $$$ on the conference? Check out the conference &lt;a href="http://swfox.net/scholarship.aspx" target="_blank"&gt;scholarships&lt;/a&gt; which will provide three very lucky people with a $150 “rebate” (see the website for rules and regulations).&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Scholarship drawing eligibility and the free pre-conference session are available only for those who register &lt;strong&gt;before July 1st&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;As of this writing (June 29th), there are 50 &lt;strong&gt;Super Saver&lt;/strong&gt; registrations still available. Super Saver registration is $645, a &lt;strong&gt;discount of $125 off&lt;/strong&gt; the regular conference rate.&lt;/p&gt;  &lt;p&gt;The clock is ticking… Save yourself (or your boss) some $$$ and reserve your spot for &lt;strong&gt;THE &lt;/strong&gt;go-to conference of the year!&lt;/p&gt;  &lt;p&gt;Southwest Fox 2011 Links: &lt;a href="http://swfox.net/sessions.aspx" target="_blank"&gt;Sessions&lt;/a&gt;, &lt;a href="http://swfox.net/scholarship.aspx" target="_blank"&gt;Scholarships&lt;/a&gt;, &lt;a href="http://swfox.net/register.aspx" target="_blank"&gt;Registration&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=S66jZUNwYoI:lpud7j8PKmc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=S66jZUNwYoI:lpud7j8PKmc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=S66jZUNwYoI:lpud7j8PKmc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/S66jZUNwYoI" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/S66jZUNwYoI/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2011/06/29/Don’t-Miss-the-Deadline.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=16a68514-bdbc-4485-9d6d-521925502c1d</guid>
      <pubDate>Wed, 29 Jun 2011 16:03:00 +0300</pubDate>
      <category>southwest fox conference</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=16a68514-bdbc-4485-9d6d-521925502c1d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=16a68514-bdbc-4485-9d6d-521925502c1d</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2011/06/29/Don’t-Miss-the-Deadline.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=16a68514-bdbc-4485-9d6d-521925502c1d</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=16a68514-bdbc-4485-9d6d-521925502c1d</feedburner:origLink></item>
    <item>
      <title>Southwest Fox 2011</title>
      <description>&lt;p&gt;Shortly after the &lt;a href="http://www.swfox.net/Speakers.aspx" target="_blank"&gt;speakers&lt;/a&gt; and &lt;a href="http://www.swfox.net/sessions.aspx" target="_blank"&gt;sessions&lt;/a&gt; for the &lt;a href="http://www.swfox.net" target="_blank"&gt;Southwest Fox 2011 Conference&lt;/a&gt; were announced, I received the following testimonial via email:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Dear Kevin,      &lt;br /&gt;      &lt;br /&gt;I saw your name in the list of speakers for Southwest Fox 2011 and I've got to say, Southwest Fox is &lt;strong&gt;THE GO-TO CONFERENCE OF THE YEAR!&lt;/strong&gt;      &lt;br /&gt;      &lt;br /&gt;Love,      &lt;br /&gt;Mom&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I’m really excited about this years conference, and I’ll be even better prepared thanks to &amp;quot;dependable&amp;quot; &lt;a href="http://doughennig.blogspot.com/2011/05/southwest-fox-2011-speakers-and.html" target="_blank"&gt;Doug&lt;/a&gt;! Registration stars June 1st!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=K2_bIvQ5isw:i3KdvbXU-kc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=K2_bIvQ5isw:i3KdvbXU-kc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=K2_bIvQ5isw:i3KdvbXU-kc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/K2_bIvQ5isw" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/K2_bIvQ5isw/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2011/05/29/Southwest-Fox-2011.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=9efdf1c8-ab1f-45e9-975f-a3e6e1d96078</guid>
      <pubDate>Sun, 29 May 2011 00:27:00 +0300</pubDate>
      <category>southwest fox conference</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=9efdf1c8-ab1f-45e9-975f-a3e6e1d96078</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=9efdf1c8-ab1f-45e9-975f-a3e6e1d96078</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2011/05/29/Southwest-Fox-2011.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=9efdf1c8-ab1f-45e9-975f-a3e6e1d96078</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=9efdf1c8-ab1f-45e9-975f-a3e6e1d96078</feedburner:origLink></item>
    <item>
      <title>SET PROCEDURE TO MyDll</title>
      <description>&lt;p&gt;I use the Microsoft Web Browser Control as the primary UI for an app. This means I need a ton of support files like cascading stylesheets, javascript files, images, etc.&lt;/p&gt;
&lt;p&gt;Typically, I create a subfolder in the Windows "Temp" (SYS(2023)) folder for the HTML files, then subfolders for each of the support file types (CSS, JS, IMG). I don't like to install the support files with the app, because there's always &lt;em&gt;&lt;strong&gt;someone&lt;/strong&gt;&lt;/em&gt; out there that wants to modify the files or just poke around to see how some things get done.&lt;/p&gt;
&lt;p&gt;In the past, I simply included the support files in the EXE and did a series of STRTOFILE()'s to copy the files to the temporary location. But as the app (and the number of support files it uses) grows, it really bloats the EXE. So I created a DLL which contained all the included files, with methods to do the file copying.&lt;/p&gt;
&lt;p&gt;During startup, the EXE instantiates the OLEPUBLIC classes in the DLL and fires the methods to copy the files. Works great, and it keeps the size of the EXE a bit smaller.&lt;/p&gt;
&lt;p&gt;Yep, works great. Except when the DLL doesn&amp;rsquo;t get properly registered during the install, and the instantiation fails. I get error reports from time to time where the DLL hasn&amp;rsquo;t been registered. Though I&amp;rsquo;ve been unable to recreate it here, it seems the common denominator is a particular anti-virus software solution &amp;ndash; I'm looking at &lt;em&gt;you&lt;/em&gt;, Kaspersky.&lt;/p&gt;
&lt;p&gt;So, I&amp;rsquo;m stuck with needing to manually register the DLL if it hasn&amp;rsquo;t been registered. I suppose I could use Reg-Free COM, manifest files, elevation, etc. to register the DLL programmatically, but I worry about going through all of that only to find that it still won&amp;rsquo;t register for the same reason it didn&amp;rsquo;t during installation (I'm &lt;em&gt;still&lt;/em&gt; looking at &lt;em&gt;you&lt;/em&gt;, Kaspersky).&lt;/p&gt;
&lt;p&gt;I stumbled on an idea earlier this week and thought I&amp;rsquo;d give it a try. The idea was to SET PROCEDURE TO MyDll. Why not create a DLL, then, instead of going through registering it, just SET PROCEDURE to it and call the methods?&lt;/p&gt;
&lt;p&gt;Duh. Can&amp;rsquo;t do it. It&amp;rsquo;s an object method, and I haven&amp;rsquo;t created the object.&lt;/p&gt;
&lt;p&gt;So I did a little refactoring on the DLL. It contains one OLEPUBLIC class, which is nothing more than a class definition &amp;ndash; no properties, no methods, no nothing. Then I split the methods out to simple FUNCTIONs.&lt;/p&gt;
&lt;p&gt;Recompiled the DLL, then got rid of the registration info that was added to the Windows Registry. Then I tried the SET PROCEDURE TO.&lt;/p&gt;
&lt;p&gt;The pseudocode looks like this:&lt;/p&gt;
&lt;p&gt;IF MyDll.dll Exists then   &lt;br /&gt;&amp;nbsp;&amp;nbsp; SET PROCEDURE TO MyDll.dll    &lt;br /&gt;&amp;nbsp;&amp;nbsp; MyFunction()    &lt;br /&gt;&amp;nbsp;&amp;nbsp; RELEASE PROCEDURE MyDll.dll    &lt;br /&gt;ENDIF&lt;/p&gt;
&lt;p&gt;And, it worked! No registration, just a simple check to see if the file exists. If it does, run the method. This assumes, of course, that the method exists (since there&amp;rsquo;s no PEMSTATUS I can check &amp;ndash; remember, no object or class exists).&lt;/p&gt;
&lt;p&gt;Now for the disclaimer (before the comments start rolling in):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Yes, I am well aware that SET PROCEDURE TO was not designed to be used this way.&lt;/li&gt;
&lt;li&gt;Yes, I know the best way to "fix" the problem is to determine what the problem actually is and find a "real" solution. &lt;/li&gt;
&lt;li&gt;Yes, I know this wouldn&amp;rsquo;t be considered "best practice".&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;On the other hand, though, my purpose for this is pretty specific, and was completed very quickly. Plus, with a little bit of coding on the app's update procedure, I can now update the DLL anytime I need to, without having to install a whole new update. Best of all, it appears that the problem has been solved.&amp;nbsp; I still try to instantiate the object first, but if it fails I fallback to the new "unregistered" DLL. Not a single error report since the last update.&lt;/p&gt;
&lt;p&gt;So far, so good&amp;hellip;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=hTB4vURrERY:UE_4osOflCI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=hTB4vURrERY:UE_4osOflCI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=hTB4vURrERY:UE_4osOflCI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/hTB4vURrERY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/hTB4vURrERY/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2011/05/28/SET-PROCEDURE-TO-MyDll.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=ee27219c-d0bf-47d7-a976-8293e47aee47</guid>
      <pubDate>Sat, 28 May 2011 17:20:00 +0300</pubDate>
      <category>visual foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=ee27219c-d0bf-47d7-a976-8293e47aee47</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=ee27219c-d0bf-47d7-a976-8293e47aee47</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2011/05/28/SET-PROCEDURE-TO-MyDll.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=ee27219c-d0bf-47d7-a976-8293e47aee47</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=ee27219c-d0bf-47d7-a976-8293e47aee47</feedburner:origLink></item>
    <item>
      <title>I’ve Seen This Before. It’s An Outlier.</title>
      <description>&lt;p&gt;I recently added some functionality to an app which allows the app to login to a web service with a username and password. Since I want to retain the login information (so the user doesn&amp;rsquo;t have to be prompted to enter their credentials every time), I store the username and password in an XML &amp;ldquo;settings&amp;rdquo; file.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been using &lt;a title="SPS Blog" href="http://www.sweetpotatosoftware.com/spsblog/" target="_blank"&gt;Craig Boyd&lt;/a&gt;&amp;rsquo;s excellent &lt;a href="http://www.sweetpotatosoftware.com/spsblog/2009/08/09/MajorVFPEncryptionUpdate.aspx" target="_blank"&gt;VFPEncryption FLL&lt;/a&gt; to encrypt/decrypt the password. The user enters her username and password, the password is encrypted, and the username and password are written to the XML file. It&amp;rsquo;s been working great on thousands of computers.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Except for four computers&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;When the app needs to retrieve the username and password, it opens the XML file, decrypts the password, and tries to login to the web service. But on these four computers, the decryption crashes with &amp;ldquo;API call caused an exception&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Working with a customer on this particular problem, I pointed him to the XML file and asked him if he would be willing to change his password for the web service &amp;ndash; just to see if maybe we could get past the crash.&lt;/p&gt;
&lt;p&gt;He changed a couple of characters in his password, and voila! &amp;ndash; it worked with no problem.&lt;/p&gt;
&lt;p&gt;So he went back to his original password and made note of the encrypted password which was stored in the XML file. Oddly, the encrypted password contained an embedded carriage return:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;PASSWORD&amp;gt;?-arP?&amp;shy;Z?=&amp;curren;&amp;uml;?? ;?&amp;yen;      &lt;br /&gt;?8??*&amp;ugrave;&amp;copy;y&amp;lt;/PASSWORD&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He changed a couple of characters, and made note of the encrypted password again:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;PASSWORD&amp;gt;&amp;eth;F'1L'|&amp;bdquo; žU&amp;shy;MU&amp;uml;&amp;egrave;&amp;circ;f&amp;acirc;&amp;sbquo;?T\&amp;Agrave;n &amp;Ccedil;v&amp;otilde;'U&amp;lt;/PASSWORD&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Freaky, huh? When I run the code from the app via the Visual FoxPro Command Window, including the STRTOFILE() and FILETOSTR() lines to write and read the XML file, it works with no problem.&lt;/p&gt;
&lt;p&gt;The customer, a former software developer, tried 16 more random passwords &amp;ndash; just to see what would happen. Every one of them worked flawlessly.&lt;/p&gt;
&lt;p&gt;So, after successfully trying 17 passwords he went back to the original. Same problem: an embedded carriage return in the stored encrypted password, and an API exception when decrypting it.&lt;/p&gt;
&lt;p&gt;The last thing he said to me was:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Then it hit me, not the first time I've seen this. &lt;strong&gt;It's an outlier&lt;/strong&gt;. There is a very good reason why this is happening. You may close the ticket now. The function is working fine.&lt;/p&gt;
&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=6OnsrvkAHlk:4TS-NIFsDpo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=6OnsrvkAHlk:4TS-NIFsDpo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=6OnsrvkAHlk:4TS-NIFsDpo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/6OnsrvkAHlk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/6OnsrvkAHlk/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2011/05/08/Ive-Seen-This-Before-Its-An-Outlier.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=6014546d-79cc-4068-8ade-f024f11083b1</guid>
      <pubDate>Sun, 08 May 2011 20:23:00 +0300</pubDate>
      <category>visual foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=6014546d-79cc-4068-8ade-f024f11083b1</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=6014546d-79cc-4068-8ade-f024f11083b1</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2011/05/08/Ive-Seen-This-Before-Its-An-Outlier.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=6014546d-79cc-4068-8ade-f024f11083b1</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=6014546d-79cc-4068-8ade-f024f11083b1</feedburner:origLink></item>
    <item>
      <title>FoxShow #71 : FoxInCloud</title>
      <description>&lt;p&gt;Andrew MacNeill has posted &lt;a title="The FoxShow Podcast" href="http://thefoxshow.com/" target="_blank"&gt;FoxShow #71&lt;/a&gt;, which includes an interview with Christophe Unrug from FoxInCloud.&lt;/p&gt;
&lt;p&gt;I had the privilege to meet &lt;a title="Thierry's page on the Fox Wiki" href="http://fox.wikis.com/wc.dll?Wiki~ThierryNivelet" target="_blank"&gt;Thierry Nivelet&lt;/a&gt; at last year&amp;rsquo;s &lt;a title="Southwest Fox Conference" href="http://www.swfox.net" target="_blank"&gt;Southwest Fox&lt;/a&gt; conference, and I hope he&amp;rsquo;ll be back at this year's conference.&lt;/p&gt;
&lt;p&gt;Very interesting (and impressive!) stuff they&amp;rsquo;re working on.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=gXB3S9Fbr_w:44QqoHPMpLo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=gXB3S9Fbr_w:44QqoHPMpLo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=gXB3S9Fbr_w:44QqoHPMpLo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/gXB3S9Fbr_w" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/gXB3S9Fbr_w/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2011/04/28/FoxShow-71-FoxInCloud.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=2795e782-4152-47dc-a992-e237bede8ba5</guid>
      <pubDate>Thu, 28 Apr 2011 23:12:00 +0300</pubDate>
      <category>visual foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=2795e782-4152-47dc-a992-e237bede8ba5</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=2795e782-4152-47dc-a992-e237bede8ba5</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2011/04/28/FoxShow-71-FoxInCloud.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=2795e782-4152-47dc-a992-e237bede8ba5</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=2795e782-4152-47dc-a992-e237bede8ba5</feedburner:origLink></item>
    <item>
      <title>Mis-InfoWorld Follow-up</title>
      <description>&lt;p&gt;Yesterday, I &lt;a title="Kevin&amp;#39;s Angry Blog Post" href="http://kevinragsdale.net/post/2010/11/12/Mis-InfoWorld.aspx" target="_blank"&gt;posted an angry response&lt;/a&gt; to an &lt;a title="Article" href="http://www.infoworld.com/t/development-frameworks/microsoft-casts-about-silverlight-converts-999?page=0,1" target="_blank"&gt;article&lt;/a&gt; which appeared in InfoWorld.&lt;/p&gt;  &lt;p&gt;I decided to email Woody Leonhard, the author of the article. Here’s what I sent him:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;I read your InfoWorld article titled “Microsoft casts about for Silverlight converts” today.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;I would like to know if you wrote the parts about FoxPro/Visual FoxPro and Visual FoxPro developers, or were those parts added by an incompetent editor?&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;Regards,       &lt;br /&gt;Kevin Ragsdale        &lt;br /&gt;Manchester, TN&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I was surprised last night when I received a response from Woody:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;Hi, Kevin –&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;I KNEW there were some FP veterans out there! &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;I love VFP. (Hell, I even like dBase!)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;It may be before your time, but I pitched, created the format for, and edited “Hacker’s Guide to VFP” many moons ago, fell in love with VFP. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;So, yes, guilty as charged…. What part did I get wrong? &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;Granted, I was poking a little fun at a great product – but that’s the point. Silverlight may well be the best programming environment ever created. I don’t know; never used it. But Microsoft is going to kill it, for precisely the same reason they killed VFP.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;- Woody&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;After posting my angry response and getting a little bit of history about Woody and his past involvement with FoxPro, I felt bad for the angry blog post. It became obvious to me that he had simply used FoxPro as an analogy in the article about Silverlight. I responded to Woody with this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;Hi Woody,&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;Thank you for replying!&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;Whil Hentzen reminded me yesterday about your involvement with the “Hacker’s Guide”, and several other developers questioned whether the FP comments were added by an editor.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;I think I may have read the analogy wrong in your article. Unfortunately, there are thousands of pointy-haired bosses out there that get *&lt;b&gt;most&lt;/b&gt;* of their technical information from publications like InfoWorld who will likely read the analogy wrong, too. And that paints me and thousands of other existing FoxPro developers even further into a corner.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;I’ll just make a couple of brief points that I felt were wrong in your article:&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;It reminds me a lot of the old FoxPro days. Microsoft bought Fox Technologies in 1992, worked on FoxPro for a while, then let it die on the vine.&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;Microsoft bought FoxPro in 1992, and released the final version (Visual FoxPro 9.0 SP2) in October 2007. I really wouldn’t consider 15 years of development to be “worked on FoxPro for a while, then let it die on the vine” – especially in this industry.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;Many people learned to love (or at least live with) FoxPro, but it was supplanted by Access. The two aren't completely congruent, but they both address the same market, solve the same problems, and FoxPro just didn't make the cut.&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;This sounds like FoxPro was taken over by a superior Access product, which simply is not true. I really don’t see how they “both address the same market” or “solve the same problems”.&amp;#160; Everyone in the Fox Community knows Microsoft killed FoxPro because they simply couldn’t make money with it. Let’s face it – for the cost of a Visual FoxPro license, I can create an unlimited number of royalty-free desktop applications, without the need of SQL Server licenses. Many, many FoxPro developers earn high six-figure incomes with&amp;#160; development tool that costs about $650. That’s not exactly Microsoft’s target market.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;Heck, you can still find Visual FoxPro developers. They're sitting right next to the CICS guys.&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;As I stated earlier, there are FoxPro developers earning high six-figure incomes with Visual FoxPro, and not just with maintenance and rewrites of existing apps. I’m *&lt;b&gt;still&lt;/b&gt;* creating new (and highly profitable) products with Visual FoxPro – and plan to for the next several years.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;While I agree 100% with the analysis of Silverlight in your article, I hope you can see where the analogy in your article could cause confusion (and anger) in the FoxPro Community. I’d love to see a follow-up article from you about the longevity and continued success of FoxPro. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;Regards,       &lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;Kevin&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font face="Tahoma"&gt;Whew, I feel better now.&lt;/font&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=tkdRpPqomeQ:4rCT_NivZeE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=tkdRpPqomeQ:4rCT_NivZeE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=tkdRpPqomeQ:4rCT_NivZeE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/tkdRpPqomeQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/tkdRpPqomeQ/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2010/11/13/Mis-InfoWorld-Follow-up.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=5161f6ec-7776-4f04-83d0-8c5cb2371dff</guid>
      <pubDate>Sat, 13 Nov 2010 17:50:00 +0300</pubDate>
      <category>foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=5161f6ec-7776-4f04-83d0-8c5cb2371dff</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=5161f6ec-7776-4f04-83d0-8c5cb2371dff</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2010/11/13/Mis-InfoWorld-Follow-up.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=5161f6ec-7776-4f04-83d0-8c5cb2371dff</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=5161f6ec-7776-4f04-83d0-8c5cb2371dff</feedburner:origLink></item>
    <item>
      <title>Mis-InfoWorld</title>
      <description>&lt;p&gt;An &lt;a title="Idiotic InfoWorld Article" href="http://www.infoworld.com/t/development-frameworks/microsoft-casts-about-silverlight-converts-999?page=0,1" target="_blank"&gt;article&lt;/a&gt; (by Woody Leonhard) popped up in my FeedDemon &amp;ldquo;foxpro&amp;rdquo; folder this morning. Here&amp;rsquo;s what it looked like:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=11-12-2010%208-11-22%20AM.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="11-12-2010 8-11-22 AM" src="http://kevinragsdale.net/image.axd?picture=11-12-2010%208-11-22%20AM_thumb.png" border="0" alt="11-12-2010 8-11-22 AM" width="506" height="177" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hmm&amp;hellip; Microsoft bought Fox Technologies in 1992, worked on FoxPro for a while, then let it die on the vine?&lt;/p&gt;
&lt;p&gt;Obviously, I decided to read the full article. Surely this author couldn&amp;rsquo;t possibly be this mis-informed, could he?&lt;/p&gt;
&lt;p&gt;Page 2 of the article contains the following paragraph:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It reminds me a lot of the old FoxPro days. Microsoft bought Fox Technologies in 1992, worked on FoxPro for a while, then let it die on the vine. Many people learned to love (or at least live with) FoxPro, but it was supplanted by Access. The two aren't completely congruent, but they both address the same market, solve the same problems, and FoxPro just didn't make the cut. I bet we see the same thing happen with Silverlight.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;ldquo;worked on FoxPro for a while&amp;rdquo; &amp;ndash; Let&amp;rsquo;s see: Visual FoxPro 9.0 Service Pack 2 was released October 11, 2007. Microsoft worked on FoxPro for &lt;strong&gt;FIFTEEN YEARS&lt;/strong&gt;, and the author (and InfoWorld) believes that constitutes &amp;ldquo;a while&amp;rdquo;? In this industry, I&amp;rsquo;d say 15 years is about 6 &lt;em&gt;lifetimes&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;it was supplanted by Access&amp;rdquo; &amp;ndash; Really? Who&amp;rsquo;s butt did the author pull that statement from?&lt;/p&gt;
&lt;p&gt;&amp;ldquo;they both address the same market&amp;rdquo; &amp;ndash; And who&amp;rsquo;s butt did he pull &lt;em&gt;this&lt;/em&gt; one from?&lt;/p&gt;
&lt;p&gt;&amp;ldquo;FoxPro just didn&amp;rsquo;t make the cut&amp;rdquo; &amp;ndash; There must be some really sore butts at the InfoWorld offices.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m picturing a game being played in a set of cubicles between the authors and editors. I&amp;rsquo;ll spare you the visual details&amp;hellip;&lt;/p&gt;
&lt;p&gt;One more quote from the article:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Heck, you can still find Visual FoxPro developers. They're sitting right next to the CICS guys.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Wow, this guy really doesn&amp;rsquo;t like FoxPro or Visual FoxPro developers, does he?&lt;/p&gt;
&lt;p&gt;I decided to post a comment, but you must be registered with the InfoWorld site to post a comment. When I tried to register, I saw this:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=11-12-2010%208-26-35%20AM.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="11-12-2010 8-26-35 AM" src="http://kevinragsdale.net/image.axd?picture=11-12-2010%208-26-35%20AM_thumb.png" border="0" alt="11-12-2010 8-26-35 AM" width="544" height="306" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Maybe they should hire a FoxPro developer to update their systems.&lt;/p&gt;
&lt;p&gt;In the meantime, if you&amp;rsquo;re not registered on their site, you can provide feedback via email at &lt;a href="mailto:feedback@infoworld.com"&gt;feedback@infoworld.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=-IoBS9mDODg:QClClyXw_74:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=-IoBS9mDODg:QClClyXw_74:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=-IoBS9mDODg:QClClyXw_74:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/-IoBS9mDODg" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/-IoBS9mDODg/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2010/11/12/Mis-InfoWorld.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=dd18a461-78c1-41b0-86cd-eeb4a6a10e9d</guid>
      <pubDate>Fri, 12 Nov 2010 17:30:00 +0300</pubDate>
      <category>foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=dd18a461-78c1-41b0-86cd-eeb4a6a10e9d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=dd18a461-78c1-41b0-86cd-eeb4a6a10e9d</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2010/11/12/Mis-InfoWorld.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=dd18a461-78c1-41b0-86cd-eeb4a6a10e9d</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=dd18a461-78c1-41b0-86cd-eeb4a6a10e9d</feedburner:origLink></item>
    <item>
      <title>Ceil Silver Ambassador Fund</title>
      <description>&lt;p&gt;One of my best highlights of last years &lt;a title="Southwest Fox 2010 Conference (October 14-17)" href="http://swfox.net" target="_blank"&gt;Southwest Fox&lt;/a&gt; conference was meeting &lt;a title="Emerson Reed Blog on Foxite" href="http://weblogs.foxite.com/emersonreed/default.aspx" target="_blank"&gt;Emerson Reed&lt;/a&gt;. Emerson is the creator of the &lt;a title="ThemedControls Blog Posts at Foxite" href="http://weblogs.foxite.com/emersonreed/search.aspx?q=themedcontrols&amp;amp;p=1" target="_blank"&gt;ThemedControls&lt;/a&gt; suite on &lt;a title="ThemedControls Project on VFPx" href="http://vfpx.codeplex.com/releases/view/7003" target="_blank"&gt;VFPx&lt;/a&gt;, a stunning set of visual controls which provide a modern UI for Visual FoxPro applications.&lt;/p&gt;
&lt;p&gt;He is also one of the nicest people I&amp;rsquo;ve ever met. Every minute I spent with Emerson at the conference was a great pleasure for me, and I&amp;rsquo;m very thankful for the opportunity to have met him in person.&lt;/p&gt;
&lt;p&gt;Emerson attended the conference as the first &lt;a title="Ceil Silver Ambassador Fund" href="http://swfox.net/ambassador.aspx" target="_blank"&gt;Ceil Silver Ambassador&lt;/a&gt; to Southwest Fox, representing the &lt;a title="Google Search for 'Brazilian FoxPro Community'" href="http://www.google.com/search?q=brazilian+foxpro+community" target="_blank"&gt;Brazilian FoxPro Community&lt;/a&gt;, and he truly was a wonderful ambassador.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve never heard of the Ceil Silver Ambassador Fund, here&amp;rsquo;s some info from the Southwest Fox Website:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Ceil Silver Ambassador Fund brings a developer to the Southwest Fox conference as an ambassador for the developers in his or her country. This gives the recipient the opportunity to meet and share experiences with developers attending Southwest Fox and gives other attendees the opportunity to learn about VFP development in the recipient's country. The Fund is financed by contributions from the VFP community, and from Geek Gatherings.&lt;/p&gt;
&lt;p&gt;The Fund is named in memory of Ceil Silver, a long-time member of the Visual FoxPro community, who passed away in January, 2009. Ceil served as Editor of FoxPro Advisor's Tips and Tricks column for many years and was the founder of the Westchester County FoxPro chapter of PADD, the Professional Association of Database Developers. She was also a contributing author to &lt;cite&gt;Special Edition Using Visual FoxPro 6&lt;/cite&gt;. Ceil understood the value of attending professional conferences, and continued to attend them until her failing health prevented it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At the conference, Emerson showed off the ThemedControls during one of the Show Us Your App sessions, including a new Office 2007-style ribbon control. Everyone in the audience was amazed at the capabilities of the ThemedControls.&lt;/p&gt;
&lt;p&gt;He also spent a lot of time answering questions from me. I&amp;rsquo;m sure I sounded like a total hack with some of the questions, but he was always gracious and patient, and never turned me away.&lt;/p&gt;
&lt;p&gt;When he showed the Ribbon control, he asked for help from the community in developing it. I told him I&amp;rsquo;d love to help. Unfortunately, thanks to limited time and resources (and by resources I mean &lt;em&gt;ability &lt;/em&gt;on my part), I&amp;rsquo;ve sadly been zero help at all.&lt;/p&gt;
&lt;p&gt;So if you have a hankering to help, please contact Emerson via his blog or the CodePlex site.&lt;/p&gt;
&lt;p&gt;&lt;a title="Southwest Fox 2009 - Emerson Reed's Blog on Foxite" href="http://weblogs.foxite.com/emersonreed/archive/2009/11/20/SouthwestFox2009.aspx" target="_blank"&gt;Emerson Reed &amp;ndash; Southwest Fox 2009 (From Emerson&amp;rsquo;s Blog)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This year there will be &lt;strong&gt;TWO&lt;/strong&gt; Ceil Silver Ambassadors at Southwest Fox: &lt;a title="C&amp;eacute;sar Chalom's Blog on Foxite" href="http://weblogs.foxite.com/vfpimaging/default.aspx" target="_blank"&gt;C&amp;eacute;sar Chalom&lt;/a&gt; (from Brazil) and &lt;a title="Bernard Bout's Blog on Foxite" href="http://weblogs.foxite.com/bernardbout/default.aspx" target="_blank"&gt;Bernard Bout&lt;/a&gt; (from Australia).&lt;/p&gt;
&lt;p&gt;Both C&amp;eacute;sar and Bernard are active bloggers on Foxite, and both have done tremendous work with GDIPlusX and showing us how to move our Visual FoxPro apps into the 21st century.&lt;/p&gt;
&lt;p&gt;Emerson, C&amp;eacute;sar and Bernard truly put the &amp;ldquo;&lt;strong&gt;Visual&lt;/strong&gt;&amp;rdquo; in Visual FoxPro.&lt;/p&gt;
&lt;p&gt;C&amp;eacute;sar also created the &lt;a title="FoxCharts Project Page on VFPx" href="http://vfpx.codeplex.com/releases/view/18515" target="_blank"&gt;FoxCharts&lt;/a&gt;&amp;nbsp;(on VFPx) and &lt;a title="FoxyPreviewer Project Page on VFPx" href="http://foxypreviewer.codeplex.com/releases/view/49471" target="_blank"&gt;FoxyPreviewer&lt;/a&gt; (a separate project on CodePlex). Both are sensational reminders of what is possible with VFP.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m really looking forward to meeting (and learning from) both of them this &lt;a title="Southwest Fox 2010 Website" href="http://swfox.net" target="_blank"&gt;October&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Updated: 11:32AM - Rick Schummer pointed out that FoxyPreviewer is not a VFPx project. It is a separate project on CodePlex. Thanks, Rick!&lt;/em&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=sG9QT3n7kok:eTvYH4XURv4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=sG9QT3n7kok:eTvYH4XURv4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=sG9QT3n7kok:eTvYH4XURv4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/sG9QT3n7kok" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/sG9QT3n7kok/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2010/09/03/Ceil-Silver-Ambassador-Fund.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=3a6d62bc-e420-4d63-8dec-382ddcd4b341</guid>
      <pubDate>Fri, 03 Sep 2010 09:22:00 +0300</pubDate>
      <category>southwest fox conference</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=3a6d62bc-e420-4d63-8dec-382ddcd4b341</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=3a6d62bc-e420-4d63-8dec-382ddcd4b341</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2010/09/03/Ceil-Silver-Ambassador-Fund.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=3a6d62bc-e420-4d63-8dec-382ddcd4b341</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=3a6d62bc-e420-4d63-8dec-382ddcd4b341</feedburner:origLink></item>
    <item>
      <title>Some Are PC’s. Some Are Macs. I’m A Fox.</title>
      <description>&lt;p&gt;The advertising campaign from Microsoft you never saw...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=imafox.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="imafox" src="http://kevinragsdale.net/image.axd?picture=imafox_thumb.png" border="0" alt="imafox" width="526" height="291" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=ZUzEv9hYymY:oi4WvLtg0j4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=ZUzEv9hYymY:oi4WvLtg0j4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=ZUzEv9hYymY:oi4WvLtg0j4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/ZUzEv9hYymY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/ZUzEv9hYymY/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2010/09/02/Some-Are-PCs-Some-Are-Macs-Im-A-Fox.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=07e7d2f1-326d-4298-9a17-1204cd05a9c1</guid>
      <pubDate>Thu, 02 Sep 2010 10:03:00 +0300</pubDate>
      <category>foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=07e7d2f1-326d-4298-9a17-1204cd05a9c1</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=07e7d2f1-326d-4298-9a17-1204cd05a9c1</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2010/09/02/Some-Are-PCs-Some-Are-Macs-Im-A-Fox.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=07e7d2f1-326d-4298-9a17-1204cd05a9c1</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=07e7d2f1-326d-4298-9a17-1204cd05a9c1</feedburner:origLink></item>
    <item>
      <title>My Favorite Teacher Is Speaking At Southwest Fox</title>
      <description>&lt;p&gt;&lt;a title="Southwest Fox 2010 Conference (October 14-17)" href="http://swfox.net" target="_blank"&gt;Southwest Fox&lt;/a&gt; 2005 was the first FoxPro Conference I attended. Though I was a wallflower for most of the conference and kept to myself, I was amazed at the amount of technical knowledge that permeated the air (I spent most of my time at the conference simply absorbing as much of the knowledge as I could).&lt;/p&gt;
&lt;p&gt;What I learned in one session that year practically paid for the entire conference, saving me tons of time in my own work. That year, &lt;a title="Rick Borup - Developer's Page" href="http://www.ita-software.com/foxpage.aspx" target="_blank"&gt;Rick Borup&lt;/a&gt; presented &lt;a title="Southwest Fox 2005" href="http://www.swfox.net/2005/rborup.aspx" target="_blank"&gt;Integrating RSS With Visual FoxPro Applications&lt;/a&gt;. I had been working on integrating RSS with a couple of apps, and had hit the proverbial brick wall. Everything I tried, failed. Miserably. The harder I worked on it, the worse it got.&lt;/p&gt;
&lt;p&gt;In a single 75-minute session, Rick opened the floodgates. My problems were solved &lt;em&gt;that very day&lt;/em&gt; as I went back to my hotel room with my laptop that night and started applying what I had learned from Rick to my apps.&lt;/p&gt;
&lt;p&gt;Flash forward to 2009. I was (finally) going back to Southwest Fox, and Rick was speaking again, presenting &lt;a title="Southwest Fox 2009 Session Information" href="http://www.swfox.net/2009/sessions.aspx#The_Show_Must_Go_On:_Disaster_Recovery_and_Business_Continuity_Planning" target="_blank"&gt;The Show Must Go On: Disaster Recovery and Business Continuity Planning&lt;/a&gt; and &lt;a title="Southwest Fox 2009 Session Information" href="http://www.swfox.net/2009/sessions.aspx#Quibbles,_Quirks,_and_Quickies" target="_blank"&gt;Quibbles, Quirks, and Quickies&lt;/a&gt;. Having promised myself that I would go to at least one of Rick&amp;rsquo;s presentations anytime I was attending a conference he was speaking at, I chose the Quibbles, Quirks, and Quibbles session.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t go to that session expecting to learn a whole lot (though I did, especially considering he wrote a 35-page whitepaper for the session). I went because I really appreciate Rick&amp;rsquo;s style of presenting. He is direct, informative, knowledgeable, and as well-prepared for a session as anyone I&amp;rsquo;ve ever seen.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s never any wasted moments in one of Rick&amp;rsquo;s sessions.&lt;/p&gt;
&lt;p&gt;And that reminds me of my favorite teacher in high school. An Air Force retiree, he taught Algebra, Geometry, and Calculus with an almost surgical precision. Never a wasted moment, always prepared, always something to learn (even when you think you already know everything there is to know).&lt;/p&gt;
&lt;p&gt;Rick is speaking again at Southwest Fox. A pre-conference session titled &lt;a title="Southwest Fox 2010 Session Information" href="http://www.swfox.net/sessions.aspx#An_Introduction_to_Ruby_and_Rails" target="_blank"&gt;An Introduction to Ruby and Rails&lt;/a&gt;, and a regular conference session titled &lt;a title="Southwest Fox 2010 Session Information" href="http://www.swfox.net/sessions.aspx#Design_Patterns_in_Visual_FoxPro" target="_blank"&gt;Design Patterns in Visual FoxPro&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s no way I&amp;rsquo;ll miss the Design Patterns session.&lt;/p&gt;
&lt;p&gt;This week, Rick was interviewed by Andrew MacNeill on &lt;a title="The FoxShow Podcast" href="http://thefoxshow.com/" target="_blank"&gt;The FoxShow&lt;/a&gt; podcast about his sessions for this years conference. As usual, his style was evident: direct, knowledgeable, and prepared.&lt;/p&gt;
&lt;p&gt;Rick is one more great reason to attend Southwest Fox this year.&lt;/p&gt;
&lt;p&gt;Not registered for the conference yet? &lt;a title="Southwest Fox 2010 Registration" href="http://www.swfox.net/register.aspx" target="_blank"&gt;Register Now&amp;hellip;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;"You never forget the things your favorite teacher taught you; keep learning and growing academically with highly qualified professors and consider getting an &lt;a href="http://www.regisdegrees.com/comp/information-assurance-masters-training.asp" target="blank"&gt;information assurance masters degree&lt;/a&gt; online."&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=FcMZ9bio9YQ:Y5bURtLC39I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=FcMZ9bio9YQ:Y5bURtLC39I:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=FcMZ9bio9YQ:Y5bURtLC39I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/FcMZ9bio9YQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/FcMZ9bio9YQ/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2010/09/02/My-Favorite-Teacher-Is-Speaking-At-Southwest-Fox.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=7744663d-c84c-4572-9037-f346aef02d0f</guid>
      <pubDate>Thu, 02 Sep 2010 08:34:00 +0300</pubDate>
      <category>southwest fox conference</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=7744663d-c84c-4572-9037-f346aef02d0f</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=7744663d-c84c-4572-9037-f346aef02d0f</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2010/09/02/My-Favorite-Teacher-Is-Speaking-At-Southwest-Fox.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=7744663d-c84c-4572-9037-f346aef02d0f</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=7744663d-c84c-4572-9037-f346aef02d0f</feedburner:origLink></item>
    <item>
      <title>Christof Is A Freaking Genius</title>
      <description>&lt;p&gt;A cool part of the &lt;a title="Southwest Fox 2010 Conference (October 14-17)" href="http://swfox.net" target="_blank"&gt;Southwest Fox&lt;/a&gt; conference last year was a couple of bonus sessions called &lt;strong&gt;Show Us Your App&lt;/strong&gt;, where several FoxPro developers were given an opportunity to spend 5 to 10 minutes showing off things they&amp;rsquo;ve worked on.&lt;/p&gt;
&lt;p&gt;I showed one of my apps, and focused primarily on how easy it was to add multi-threading capabilities to the app.&lt;/p&gt;
&lt;p&gt;Easy, because &lt;a title="Christof's Website" href="http://www.foxpert.com/" target="_blank"&gt;Christof Wollenhaupt&lt;/a&gt; made it easy.&lt;/p&gt;
&lt;p&gt;He answered a question in FoxPro Advisor (back when it was an actual magazine) about multi-threading in Visual FoxPro. In his answer, he talked about a &lt;a title="Click here to download DMULT.DLL" href="http://www.foxpert.com/download/DMULT.ZIP" target="_blank"&gt;DLL he had written&lt;/a&gt; which basically allows you to run code in a separate thread. That&amp;rsquo;s an understatement &amp;ndash; one day I&amp;rsquo;ll write an actual article about my experience and expand on it a bit.&lt;/p&gt;
&lt;p&gt;The app I showed uses the IE Web Browser control as it&amp;rsquo;s primary UI. There are a ton of hyperlinks on certain pages. You click a link and it fires off an HTTP request to collect information and save the collected info into a table.&lt;/p&gt;
&lt;p&gt;Since I just love to &lt;a title="Things I've Learned From Users - March 29, 2005" href="http://kevinragsdale.net/post/2005/03/29/Things-Ive-Learned-From-Users.aspx" target="_blank"&gt;control how the user uses the app&lt;/a&gt;, I displayed a modal window while this request was taking place.&lt;/p&gt;
&lt;p&gt;After reading Christof&amp;rsquo;s piece in Advisor, I decided to use his DLL and make the requests multi-threaded. &lt;strong&gt;Now&lt;/strong&gt; when you click a link, the HTTP request is fired (on a separate thread) and control is immediately returned back to the app. You can click another link while the first one is processing. And another, and another, and another. S-w-e-e-t!&lt;/p&gt;
&lt;p&gt;Anyway, during my Show Us Your App bit I mentioned for anyone in the audience that didn&amp;rsquo;t already know: &amp;ldquo;Christof is a freaking GENIUS!&amp;rdquo; (I suspect everyone in the room already knew that). I joked that I was planning to ask my boss to rename the app &amp;ldquo;Christof Is A Freaking Genius&amp;rdquo; in honor of the positive effect &lt;strong&gt;his&lt;/strong&gt; work had on &lt;strong&gt;my&lt;/strong&gt; work.&lt;/p&gt;
&lt;p&gt;Christof returns to Southwest Fox this year with a pre-conference session titled &lt;a title="Southwest Fox Session Information" href="http://swfox.net/sessions.aspx#TLAs_put_into_Practice:_Object_Oriented_Principles_in_VFP" target="_blank"&gt;TLAs put into Practice: Object Oriented Principles in VFP&lt;/a&gt;, and a regular conference session titled &lt;a title="Southwest Fox Session Information" href="http://swfox.net/sessions.aspx#How_the_Fox_is_Different" target="_blank"&gt;How the Fox is Different&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;He has presented at several Southwest Fox conferences. Last year, he presented &lt;a title="Southwest Fox Session Information" href="http://www.swfox.net/2009/sessions.aspx#Excelporting" target="_blank"&gt;Excelporting&lt;/a&gt; and &lt;a title="Southwest Fox Session Information" href="http://www.swfox.net/2009/sessions.aspx#Using_.NET_in_FoxPro_Applications" target="_blank"&gt;Using .NET in FoxPro Applications&lt;/a&gt;. Back in 2007, he presented the still-talked-about &lt;a title="Southwest Fox Session Information" href="http://www.swfox.net/2007/sessions.aspx#On_the_Dark_Side_of_FoxPro" target="_blank"&gt;On the Dark Side of FoxPro&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;He is also the creator of &lt;a title="Guineu Web Site" href="http://guineu.foxpert.com/" target="_blank"&gt;Guineu&lt;/a&gt; (an alternative runtime library for Microsoft Visual FoxPro 9.0 that runs on any Microsoft .NET compatible platform).&lt;/p&gt;
&lt;p&gt;Have a look at his website &lt;a title="Christof Wollenhaupt Whitepapers" href="http://www.foxpert.com/whitepapers.htm" target="_blank"&gt;whitepapers&lt;/a&gt;, &lt;a title="Christof Wollenhaupt Downloads" href="http://www.foxpert.com/downloads.htm" target="_blank"&gt;downloads&lt;/a&gt;, and &lt;a title="Christof Wollenhaupt Knowbits" href="http://www.foxpert.com/knowlbits.htm" target="_blank"&gt;Knowlbits&lt;/a&gt;. If you&amp;rsquo;ve ever wanted to learn more about Visual FoxPro (especially the internals of FoxPro), and you&amp;rsquo;ve read &lt;em&gt;anything&lt;/em&gt; Christof has written, I&amp;rsquo;m sure you will agree that &lt;strong&gt;Christof is a freaking Genius&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;He&amp;rsquo;s also a very friendly and helpful person. &lt;strong&gt;Definitely&lt;/strong&gt; a highlight of attending last year&amp;rsquo;s conference was the opportunity I had to meet and talk with him.&lt;/p&gt;
&lt;p&gt;Poor guy. I followed him around the conference like a puppy dog, making statements and asking questions that I&amp;rsquo;m sure made me sound like the hack programmer I am. He was friendly, patient, and extremely helpful. I&amp;rsquo;ll always be grateful for the time I got to spend with him.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m looking forward to seeing him again this &lt;a title="Southwest Fox Conference" href="http://www.swfox.net" target="_blank"&gt;October&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=6FZ_hVay8Iw:ukMmxX05j08:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=6FZ_hVay8Iw:ukMmxX05j08:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=6FZ_hVay8Iw:ukMmxX05j08:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/6FZ_hVay8Iw" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/6FZ_hVay8Iw/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2010/09/01/Christof-Is-A-Freaking-Genius.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=0b62e99e-f5b7-4564-8672-522e0878f28a</guid>
      <pubDate>Wed, 01 Sep 2010 09:10:00 +0300</pubDate>
      <category>foxpro programming</category>
      <category>southwest fox conference</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=0b62e99e-f5b7-4564-8672-522e0878f28a</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=0b62e99e-f5b7-4564-8672-522e0878f28a</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2010/09/01/Christof-Is-A-Freaking-Genius.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=0b62e99e-f5b7-4564-8672-522e0878f28a</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=0b62e99e-f5b7-4564-8672-522e0878f28a</feedburner:origLink></item>
    <item>
      <title>And Now You Can Run The App From The Command Window</title>
      <description>&lt;p&gt;What the heck does the title of this post mean?&lt;/p&gt;
&lt;p&gt;If you were at Tamar Granor&amp;rsquo;s &lt;a title="Session Information" href="http://www.swfox.net/2009/sessions.aspx#Getting_Your_Head_Around_Business_Objects" target="_blank"&gt;Getting Your Head Around Business Objects&lt;/a&gt; session at last year&amp;rsquo;s &lt;a title="Southwest Fox 2010 Conference (October 14-17)" href="http://swfox.net" target="_blank"&gt;Southwest Fox&lt;/a&gt; conference, you&amp;rsquo;d know exactly what it means.&lt;/p&gt;
&lt;p&gt;If you weren&amp;rsquo;t at last years conference, Tamar is another reason why you should go this year.&lt;/p&gt;
&lt;p&gt;Tamar&amp;rsquo;s session focused on business objects. She started with explanations of what business objects are, and delved a bit into the history of business objects in Visual FoxPro (think frameworks).&lt;/p&gt;
&lt;p&gt;She showed how she used business objects in a real-world application, and followed that with a Sudoku game, built with Visual FoxPro.&lt;/p&gt;
&lt;p&gt;We got a brief glance at the UI for the Sudoku game, then Tamar walked us through the classes (object hierarchy) she had built. One of the most interesting parts for me was how she had used collection classes for business objects.&lt;/p&gt;
&lt;p&gt;I really wanted to learn more about that, and I must be one of the luckiest people in the world: she&amp;rsquo;s presenting &lt;a title="Session Information" href="http://swfox.net/sessions.aspx#Collections:_Managing_Information_the_Object-Oriented_Way" target="_blank"&gt;Collections: Managing Information the Object-Oriented Way&lt;/a&gt; at this years conference.&lt;/p&gt;
&lt;p&gt;Most of the session was dedicated to building the &amp;ldquo;engine&amp;rdquo; for the application, using business objects. After she was done showing the classes, object hierarchy and how she linked the classes together, she said something that really kicked me in the gut &amp;ndash; a real &amp;ldquo;A-HA!&amp;rdquo; moment for me:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;And now, you can run the app from the Command Window.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If they gave awards for best quote of the conference, that quote would have won hands-down.&lt;/p&gt;
&lt;p&gt;And she was right. The entire game could have been played from the Visual FoxPro Command Window, with no UI. The rest of the session was spent showing us how to connect the business objects (the engine) with the user interface.&lt;/p&gt;
&lt;p&gt;I was stunned at the amount I had learned in 75-minutes. Even better, Tamar wrote a detailed 42-page whitepaper and provided the source code for the Sudoku game which she used as the example for the session.&lt;/p&gt;
&lt;p&gt;Going to a session by Tamar is like going to a class lecture that you &lt;em&gt;want&lt;/em&gt;&amp;nbsp; to attend. She is professional, informative and entertaining all at once. Which to me is a great combination of skills, and exactly what I look for when I&amp;rsquo;m selecting sessions to attend.&lt;/p&gt;
&lt;p&gt;Early-bird registration ends September 1st. If you haven&amp;rsquo;t registered for this years conference, stop reading my drivel and go. &lt;a title="Southwest Fox Registration" href="http://swfox.net/register.aspx" target="_blank"&gt;register&lt;/a&gt;. now.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=-yoAql2gVWI:2gXBHWpzMyA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=-yoAql2gVWI:2gXBHWpzMyA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=-yoAql2gVWI:2gXBHWpzMyA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/-yoAql2gVWI" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/-yoAql2gVWI/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2010/08/31/And-Now-You-Can-Run-The-App-From-The-Command-Window.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=35aa4027-d090-4ae1-8422-17504aae9e3a</guid>
      <pubDate>Tue, 31 Aug 2010 08:31:00 +0300</pubDate>
      <category>southwest fox conference</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=35aa4027-d090-4ae1-8422-17504aae9e3a</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=35aa4027-d090-4ae1-8422-17504aae9e3a</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2010/08/31/And-Now-You-Can-Run-The-App-From-The-Command-Window.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=35aa4027-d090-4ae1-8422-17504aae9e3a</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=35aa4027-d090-4ae1-8422-17504aae9e3a</feedburner:origLink></item>
    <item>
      <title>Two Great Reasons To Attend Southwest Fox This Year</title>
      <description>&lt;p&gt;This past Tuesday, I had an opportunity to go to Atlanta for the &lt;a title="Atlanta FoxPro Users Group" href="http://www.afug.com" target="_blank"&gt;AFUG&lt;/a&gt; (Atlanta FoxPro Users Group) meeting. &lt;a title="Moxie Data, Inc. Web Site" href="http://www.moxiedata.com/" target="_blank"&gt;Bo Durban&lt;/a&gt; and &lt;a title="SJE Consulting Web Site" href="http://www.sjects.com" target="_blank"&gt;Steve Ellenoff&lt;/a&gt; were each doing a &amp;ldquo;practice run&amp;rdquo; on one of their &lt;a title="Southwest Fox 2010 Conference (October 14-17)" href="http://swfox.net" target="_blank"&gt;Southwest Fox&lt;/a&gt; sessions.&lt;/p&gt;
&lt;p&gt;First up, &lt;a title="Moxie Data, Inc. Web Site" href="http://www.moxiedata.com/" target="_blank"&gt;Bo&lt;/a&gt; presented &lt;a title="Extending VFP Using the Web Browser Control" href="http://swfox.net/sessions.aspx#Extending_VFP_using_the_Web_Browser_Control" target="_blank"&gt;Extending VFP using the Web Browser Control&lt;/a&gt;. I was really looking forward to this session, because I&amp;rsquo;ve used the web browser control extensively in several applications and I&amp;rsquo;m &lt;em&gt;always&lt;/em&gt; looking for ways to improve. I&amp;rsquo;ve read &lt;a title="Internet Applications with Visual FoxPro" href="http://www.hentzenwerke.com/catalog/intvfp.htm" target="_blank"&gt;THE BOOK&lt;/a&gt; on the subject, every article I could get my hands on, and attended &lt;a title="F1 Technologies Web Site" href="http://www.f1tech.com" target="_blank"&gt;Mike Feltman&amp;rsquo;s&lt;/a&gt; sessions at &lt;a title="Southwest Fox 2009 Conference Sessions" href="http://www.swfox.net/2009/sessions.aspx#HTML_and_Visual_FoxPro" target="_blank"&gt;last years conference&lt;/a&gt; (the tips and tricks I learned from Mike&amp;rsquo;s sessions and whitepapers last year practically PAID for my entire conference trip).&lt;/p&gt;
&lt;p&gt;Going in, I asked myself, &amp;ldquo;How much I could possibly learn from Bo&amp;rsquo;s session, that I don&amp;rsquo;t already know?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;I got an answer to that question &lt;strong&gt;real&lt;/strong&gt; fast: at least four things I had no idea about in the &lt;em&gt;first 10 minutes&lt;/em&gt;. During Bo&amp;rsquo;s session, my mind was spinning with new ways of approaching the web browser control in my apps. I couldn&amp;rsquo;t wait to get home so I could start working on them. Some of them I&amp;rsquo;ve already tried, and the speed increase on displaying HTML in my app is incredible.&lt;/p&gt;
&lt;p&gt;And this means Bo&amp;rsquo;s session alone is worth the cost of the conference to me.&lt;/p&gt;
&lt;p&gt;Next up was &lt;a title="SJE Consulting Web Site" href="http://sjects.com/" target="_blank"&gt;Steve Ellenoff&lt;/a&gt;, presenting &lt;a title="Southwest Fox 2010 Conference Sessions" href="http://www.swfox.net/sessions.aspx#Creating_Database_Abstraction_Classes_in_VFP:_Switch_your_Back-End_with_Ease" target="_blank"&gt;Creating Database Abstraction Classes in VFP: Switch your Back-End with Ease&lt;/a&gt;. Attendees from last years conference may remember Steve&amp;rsquo;s 52-page whitepaper from his &amp;ldquo;Simulated Multithreading&amp;rdquo; session last year, and if I had to take a guess I&amp;rsquo;d say his whitepaper for this session will likely &lt;em&gt;dwarf&lt;/em&gt; last years.&lt;/p&gt;
&lt;p&gt;Steve showed how to switch the back-end data source for your Visual FoxPro app on-the-fly, with minimal code.&lt;/p&gt;
&lt;p&gt;Minimal, because he&amp;rsquo;s created classes which handle the complexities of working with different back-end data servers (including VFP data tables and database containers, MySQL, Microsoft SQL Server, and PostGreSQL).&lt;/p&gt;
&lt;p&gt;In short, Steve&amp;rsquo;s done a &lt;strong&gt;ton&lt;/strong&gt; of work that I have avoided like the plague.&lt;/p&gt;
&lt;p&gt;To me, his comparisons between VFP and other back-end data servers are worth the price of admission alone. The source code for the classes you&amp;rsquo;ll get with the session will certainly come in handy.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve seen Steve present several sessions in the past, and I&amp;rsquo;ve got to say he has improved with every session I&amp;rsquo;ve seen. He was top-notch Tuesday night and well prepared.&lt;/p&gt;
&lt;p&gt;I really enjoyed my time in Atlanta, so much so I sent in a membership application this morning. The sessions Bo and Steve presented really have me stoked for the great content at Southwest Fox this year.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m counting the days until October 14th (63 days, in case you&amp;rsquo;re wondering).&lt;/p&gt;
&lt;p&gt;Not registered yet? &lt;a title="Southwest Fox 2010 Registration Page" href="http://swfox.net/register.aspx" target="_blank"&gt;Register before September 1, 2010 for a $50 early-bird discount&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4cd50131-37fe-4fda-84cb-b7b29fd2fd05" class="wlWriterEditableSmartContent" style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/southwest+fox"&gt;southwest fox&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/foxpro"&gt;foxpro&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/visual+foxpro"&gt;visual foxpro&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/vfp"&gt;vfp&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/conference"&gt;conference&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/technical+conference"&gt;technical conference&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/foxpro+conference"&gt;foxpro conference&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=0o5bAFoaN2Q:PFKWHA-JWH8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=0o5bAFoaN2Q:PFKWHA-JWH8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=0o5bAFoaN2Q:PFKWHA-JWH8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/0o5bAFoaN2Q" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/0o5bAFoaN2Q/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2010/08/12/Two-Great-Reasons-To-Attend-Southwest-Fox-This-Year.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=89dab375-a4da-41d2-900f-02826a5793bc</guid>
      <pubDate>Thu, 12 Aug 2010 18:14:00 +0300</pubDate>
      <category>southwest fox conference</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=89dab375-a4da-41d2-900f-02826a5793bc</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=89dab375-a4da-41d2-900f-02826a5793bc</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2010/08/12/Two-Great-Reasons-To-Attend-Southwest-Fox-This-Year.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=89dab375-a4da-41d2-900f-02826a5793bc</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=89dab375-a4da-41d2-900f-02826a5793bc</feedburner:origLink></item>
    <item>
      <title>If You Write Visual FoxPro Apps…</title>
      <description>&lt;p&gt;If you’re a Visual FoxPro developer,   &lt;br /&gt;and you like to install the VFP runtime files in    &lt;br /&gt;the Windows\System32 folder,&lt;/p&gt;  &lt;p&gt;Please…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;STOP&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://kevinragsdale.net/post/2008/04/27/DLL-Hell-Rears-Its-Ugly-Head.aspx" href="http://kevinragsdale.net/post/2008/04/27/DLL-Hell-Rears-Its-Ugly-Head.aspx"&gt;http://kevinragsdale.net/post/2008/04/27/DLL-Hell-Rears-Its-Ugly-Head.aspx&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=0DMa3TV9md8:TFI4mzM-N9c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=0DMa3TV9md8:TFI4mzM-N9c:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=0DMa3TV9md8:TFI4mzM-N9c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/0DMa3TV9md8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/0DMa3TV9md8/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2010/03/13/If-You-Write-Visual-FoxPro-Appse280a6.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=bebb9981-c453-49e7-acfe-dafe7d713328</guid>
      <pubDate>Sat, 13 Mar 2010 17:03:00 +0300</pubDate>
      <category>visual foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=bebb9981-c453-49e7-acfe-dafe7d713328</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=bebb9981-c453-49e7-acfe-dafe7d713328</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2010/03/13/If-You-Write-Visual-FoxPro-Appse280a6.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=bebb9981-c453-49e7-acfe-dafe7d713328</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=bebb9981-c453-49e7-acfe-dafe7d713328</feedburner:origLink></item>
    <item>
      <title>Axialis 50% Off Sale Ends Today</title>
      <description>&lt;p&gt;&lt;a href="http://www.axialis.com" target="_blank"&gt;Axialis Software&lt;/a&gt;, makers of &lt;a href="http://www.axialis.com/iconworkshop/" target="_blank"&gt;IconWorkshop&lt;/a&gt;, are having a &lt;a href="http://www.axialis.com/purchase/" target="_blank"&gt;50% off Black Friday to Cyber Monday sale&lt;/a&gt; which ends today (November 30th).&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve been looking for a good program for creating icons for your apps or websites, I highly recommend IconWorkshop --- which you can purchase today for $24.95 --- that&amp;rsquo;s half off the normal price of $49.95.&lt;/p&gt;
&lt;p&gt;Plus, all Axialis products come with a lifetime license. Zero-cost upgrades for life!&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not affiliated in any way with Axialis. I&amp;rsquo;m just a satisfied user of IconWorkshop and wanted to share this deal.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=PJAHhzGJKC0:9XGNy6kpL6s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=PJAHhzGJKC0:9XGNy6kpL6s:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=PJAHhzGJKC0:9XGNy6kpL6s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/PJAHhzGJKC0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/PJAHhzGJKC0/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2009/11/30/Axialis-50-Percent-Off-Sale-Ends-Today.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=35b7ab5c-5790-44ca-8dee-81ccc4094478</guid>
      <pubDate>Mon, 30 Nov 2009 18:27:00 +0300</pubDate>
      <category>tools</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=35b7ab5c-5790-44ca-8dee-81ccc4094478</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=35b7ab5c-5790-44ca-8dee-81ccc4094478</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2009/11/30/Axialis-50-Percent-Off-Sale-Ends-Today.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=35b7ab5c-5790-44ca-8dee-81ccc4094478</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=35b7ab5c-5790-44ca-8dee-81ccc4094478</feedburner:origLink></item>
    <item>
      <title>Be There…</title>
      <description>&lt;p&gt;Southwest Fox 2010 Conference   &lt;br /&gt;October 14-17, 2010    &lt;br /&gt;Gilbert, AZ&lt;/p&gt;
&lt;p&gt;Updated - NEW LOCATION!!! More info &lt;a title="Southwest Fox Hotel Change" href="http://swfox.net/hotelchange.aspx" target="_blank"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=J8hK2IQhd6c:uq10lHRF33A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=J8hK2IQhd6c:uq10lHRF33A:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=J8hK2IQhd6c:uq10lHRF33A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/J8hK2IQhd6c" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/J8hK2IQhd6c/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2009/10/19/Be-Theree280a6.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=101cdfcc-bd02-4bad-b391-e1bb1a7cb6a7</guid>
      <pubDate>Mon, 19 Oct 2009 01:34:00 +0300</pubDate>
      <category>visual foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=101cdfcc-bd02-4bad-b391-e1bb1a7cb6a7</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=101cdfcc-bd02-4bad-b391-e1bb1a7cb6a7</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2009/10/19/Be-Theree280a6.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=101cdfcc-bd02-4bad-b391-e1bb1a7cb6a7</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=101cdfcc-bd02-4bad-b391-e1bb1a7cb6a7</feedburner:origLink></item>
    <item>
      <title>From A Hog To Just A Pig With A Simple Windows API Call</title>
      <description>&lt;p&gt;One of the first questions I got about the &lt;a href="http://kevinragsdale.net/?tag=/desktop+alerts" target="_blank"&gt;Desktop Alerts&lt;/a&gt; was, &amp;ldquo;How much memory and other system resources does this use?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;This was during the presentation in Chicago in December of 2006. My response was the typical, &amp;ldquo;Oh, not much at all. It&amp;rsquo;s very light.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Well, I fired up Task Manager (in front of everyone in the room), and was shocked to find this tiny little app using 10MB of memory --- &lt;em&gt;even when it was just sitting there, doing nothing&lt;/em&gt;!&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Hmmm,&amp;rdquo; I thought, &amp;ldquo;This thing is a hog.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Not a &lt;em&gt;huge&lt;/em&gt; issue, especially compared to a &lt;a href="http://kevinragsdale.net/post/2007/04/12/Catastrophic-Failure-and-Desktop-Alerts.aspx" target="_blank"&gt;Catastrophic Failure&lt;/a&gt;, so I put it on the backburner (which is to say I promptly forgot all about it --- if only my apps could free up memory as easily as my brain does).&lt;/p&gt;
&lt;p&gt;I recently worked on an app that uses the Microsoft Web Browser control on a Visual FoxPro form as the primary UI for the app. Works well for the most part, but checking memory usage in Task Manager showed a tremendous amount of resources being hogged by the app, even when the user is just sitting there looking at the screen and doing nothing.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Hmmm,&amp;rdquo; I thought, &amp;ldquo;&lt;em&gt;this &lt;/em&gt;thing is a hog, too.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;(I started looking at the app&amp;rsquo;s memory usage after a couple of users with &amp;ldquo;programming experience&amp;rdquo; mentioned it&amp;hellip;)&lt;/p&gt;
&lt;p&gt;Luckily for me, in January of this year &lt;a title="Sergey's Blog" href="http://www.berezniker.com/" target="_blank"&gt;Sergey Berezniker&lt;/a&gt; wrote about using the Windows API to &lt;a title="Blog post: Lowering memory usage by application" href="http://www.berezniker.com/content/pages/visual-foxpro/lowering-memory-usage-application" target="_blank"&gt;lower the memory usage of your application&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Simple, straightforward, and very simple to implement.&lt;/p&gt;
&lt;p&gt;I put it in the app, and was amazed by how much memory was saved by a simple function call. I went from about 60MB at application startup to about 8MB.&lt;/p&gt;
&lt;p&gt;After 6 months in production, I&amp;rsquo;ve seen no problems reported about the app that would indicate a problem with this function, so yesterday I decided to look at adding it to the Desktop Alerts.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a quick sampling of the results (Windows XP Professional Service Pack 3):&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. AlertManager Initialized, waiting for something to do:&lt;/strong&gt;&lt;/p&gt;
&lt;table style="width: 400px;" border="0" cellspacing="3" cellpadding="5"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Before Change (Hog)&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;After Change (Pig)&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=noalerts.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="noalerts" src="http://kevinragsdale.net/image.axd?picture=noalerts_thumb.png" border="0" alt="noalerts" width="240" height="47" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=noalerts2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="noalerts2" src="http://kevinragsdale.net/image.axd?picture=noalerts2_thumb.png" border="0" alt="noalerts2" width="240" height="46" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;2. First Alert created and visible:&lt;/strong&gt;&lt;/p&gt;
&lt;table style="width: 400px;" border="0" cellspacing="3" cellpadding="5"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Before Change (Hog)&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;After Change (Pig)&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=1stalert.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="1stalert" src="http://kevinragsdale.net/image.axd?picture=1stalert_thumb.png" border="0" alt="1stalert" width="240" height="43" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=1stalert2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="1stalert2" src="http://kevinragsdale.net/image.axd?picture=1stalert2_thumb.png" border="0" alt="1stalert2" width="240" height="44" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;3. Three alerts visible on screen:&lt;/strong&gt;&lt;/p&gt;
&lt;table style="width: 400px;" border="0" cellspacing="3" cellpadding="5"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Before Change (Hog)&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;After Change (Pig)&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=3alerts.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="3alerts" src="http://kevinragsdale.net/image.axd?picture=3alerts_thumb.png" border="0" alt="3alerts" width="240" height="48" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=3alerts2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="3alerts2" src="http://kevinragsdale.net/image.axd?picture=3alerts2_thumb.png" border="0" alt="3alerts2" width="240" height="37" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;4. All alerts cleared, AlertManager waiting for next command:&lt;/strong&gt;&lt;/p&gt;
&lt;table style="width: 400px;" border="0" cellspacing="3" cellpadding="5"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Before Change&lt;/span&gt; (Hog)&lt;/strong&gt;&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;After Change (Pig)&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=noalerts_1.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="noalerts" src="http://kevinragsdale.net/image.axd?picture=noalerts_thumb_1.png" border="0" alt="noalerts" width="240" height="47" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=noalerts2_1.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="noalerts2" src="http://kevinragsdale.net/image.axd?picture=noalerts2_thumb_1.png" border="0" alt="noalerts2" width="240" height="46" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;So, with &lt;a title="EmptyWorkingSet function" href="http://msdn.microsoft.com/en-us/library/ms682606(VS.85).aspx" target="_blank"&gt;one simple Windows API call&lt;/a&gt;, we&amp;rsquo;ve reduced the memory usage by almost 80%, turning this gigantic hog into a smaller pig. I&amp;rsquo;ve seen similar results in Vista, though the memory usage in Vista was much lower to start with than in XP, so the results of the change aren&amp;rsquo;t quite as dramatic.&lt;/p&gt;
&lt;p&gt;One interesting thing, though. See the User Name column in the screenshots? The user changed from &lt;strong&gt;Kevin Ragsdale&lt;/strong&gt; to &lt;strong&gt;SYSTEM&lt;/strong&gt;. So, not only has a hog become a pig, its name has been changed as well. In Windows Vista, the User Name stays put as Kevin Ragsdale.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Anyone that can explain this to me without causing my head to explode --- feel free to explain in the comments.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This API function is available in Windows 2000 and higher so, if you have any &lt;a title="When Do You Say You're App Is Not Supported?" href="http://kevinragsdale.net/post/2005/03/24/When-Do-You-Say-Your-App-Is-Not-Supported.aspx" target="_blank"&gt;OS stragglers&lt;/a&gt; you&amp;rsquo;ll want to bracket the function call with something like this:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;IF VAL(OS(3)) &amp;gt;= 5&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp; Skip if earlier than Windows 2000 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ** Do your thing &lt;br /&gt;ENDIF&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;And yes, I &lt;em&gt;do&lt;/em&gt; have a ton of code &amp;ldquo;out there&amp;rdquo; that uses this bracket a lot&amp;hellip;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=m1ON8ZS92SU:rNgnpyQ_p7s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=m1ON8ZS92SU:rNgnpyQ_p7s:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=m1ON8ZS92SU:rNgnpyQ_p7s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/m1ON8ZS92SU" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/m1ON8ZS92SU/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2009/07/26/From-A-Hog-To-Just-A-Pig-With-A-Simple-Windows-API-Call.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=f5e2c542-e3a2-4d05-80a6-07819f21f9c5</guid>
      <pubDate>Sun, 26 Jul 2009 19:50:00 +0300</pubDate>
      <category>visual foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=f5e2c542-e3a2-4d05-80a6-07819f21f9c5</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=f5e2c542-e3a2-4d05-80a6-07819f21f9c5</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2009/07/26/From-A-Hog-To-Just-A-Pig-With-A-Simple-Windows-API-Call.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=f5e2c542-e3a2-4d05-80a6-07819f21f9c5</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=f5e2c542-e3a2-4d05-80a6-07819f21f9c5</feedburner:origLink></item>
    <item>
      <title>Don’t Be So Hard On Yourself (or, ShellExecute() to the Rescue!)</title>
      <description>&lt;p&gt;I&amp;rsquo;ve got a bad habit of always trying to reinvent the wheel, even when I&amp;rsquo;ve got a perfectly good wheel right in front of me.&lt;/p&gt;
&lt;p&gt;I just wrapped up some work on a &lt;a href="http://msdn.microsoft.com/vfoxpro" target="_blank"&gt;Visual FoxPro&lt;/a&gt; app that uses a lot of rich-text format (RTF) files, and I was hitting a brick wall when it came to printing the documents.&lt;/p&gt;
&lt;p&gt;I tried the &lt;a href="http://fox.wikis.com" target="_blank"&gt;FoxWiki&lt;/a&gt;, &lt;a href="http://www.google.com/" target="_blank"&gt;Google&lt;/a&gt; searches, even went back to my &lt;a href="http://www.hentzenwerke.com/catalog/kilofox.htm" target="_blank"&gt;KiloFox&lt;/a&gt; book (excerpt &lt;a href="http://books.google.com/books?id=wKNfTHRNkLAC&amp;amp;pg=PA545&amp;amp;lpg=PA545&amp;amp;dq=rich-text+foxpro&amp;amp;source=bl&amp;amp;ots=_Z8-iQQj3E&amp;amp;sig=2fLHB3UCljJc_0bLBEnNEbh9HvY&amp;amp;hl=en&amp;amp;ei=_gVmSraRGaOBtweZl-UB&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=6" target="_blank"&gt;here&lt;/a&gt;), but I just couldn&amp;rsquo;t find the right method to make the program do what I wanted it to do.&lt;/p&gt;
&lt;p&gt;Then I thought, &amp;ldquo;Hmmm&amp;hellip; every Windows computer has an &lt;a title="WordPad" href="http://windowshelp.microsoft.com/windows/en-us/help/9f990a06-474a-42ab-8942-3917cd5d5ffe1033.mspx" target="_blank"&gt;RTF editor&lt;/a&gt;, right? And this editor has all the &lt;a title="Printing Your Document in WordPad" href="http://windowshelp.microsoft.com/windows/en-us/help/9f990a06-474a-42ab-8942-3917cd5d5ffe1033.mspx#section_8" target="_blank"&gt;print functionality&lt;/a&gt; built-in. V-e-r-y i-n-t-e-r-e-s-t-i-n-g&amp;hellip;&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Plus, if the user has word-processing software (Office, OpenOffice, etc.) and it&amp;rsquo;s properly registered as the handler for RTF files, it&amp;rsquo;ll have all the print functionality built-in, too.&lt;/p&gt;
&lt;p&gt;So, instead of pulling out the remaining few hairs on my head, I decided to go the &lt;a title="ShellExecute() Documentation on MSDN" href="http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx" target="_blank"&gt;ShellExecute&lt;/a&gt; route, and set the menu up to open the user&amp;rsquo;s default RTF application in two different ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EDIT mode -&amp;nbsp; (The Print menu item - the user can do what they want with the document, then select the printer, etc.)&lt;/li&gt;
&lt;li&gt;PRINT mode (The Quick Print menu item - open the app, and print the document to the default Windows printer)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=print.png"&gt;&lt;img style="display: inline; border: 0px;" title="print" src="http://kevinragsdale.net/image.axd?picture=print_thumb.png" border="0" alt="print" width="514" height="270" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So, I went from researching and trying all kinds of workarounds to this:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: xx-small;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;strong&gt;ShellExecute(FindWindow(0,_SCREEN.Caption),"Open",lcTempFile,"",JUSTPATH(lcTempFile),1&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: mceinline;"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: xx-small;"&gt;&lt;span style="font-family: mceinline;"&gt;&lt;strong&gt;ShellExecute(FindWindow(0,_SCREEN.Caption),"Print",lcTempFile,"",JUSTPATH(lcTempFile),1&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: mceinline;"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;And immediately felt relieved for being just a little less hard on myself&amp;hellip;&lt;/p&gt;
&lt;p&gt;On a side note, the app uses the &lt;a title="CommandBars Library Home Page" href="http://www.arg.kirov.ru/products/cmdbars/" target="_blank"&gt;CommandBars&lt;/a&gt; Library from &lt;a title="ARG-Software Design Lab Home Page" href="http://www.arg.kirov.ru/" target="_blank"&gt;Alex Grigorjev&lt;/a&gt;. I was lucky enough to still have an active subscription when he released Version 7.0 (which includes the Ribbon interface).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VERY HIGHLY RECOMMENDED!!!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;More info on the CommandBars library:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://thefoxshow.com/" target="_blank"&gt;FoxShow&lt;/a&gt; (Episode #8: &lt;a href="http://akselsoft.libsyn.com/index.php?post_id=6168"&gt;VFP Letter, Interfaces, CommandBars and Variables&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.aksel.com/screencasts/commandbars.html" target="_blank"&gt;Screencast&lt;/a&gt; on using the library from from &lt;a href="http://akselsoft.blogspot.com/" target="_blank"&gt;Andrew MacNeill&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=UA3vT-oVuaA:pTpcYFbgDG8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=UA3vT-oVuaA:pTpcYFbgDG8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=UA3vT-oVuaA:pTpcYFbgDG8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/UA3vT-oVuaA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/UA3vT-oVuaA/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2009/07/21/Dont-Be-So-Hard-On-Yourself-(or-ShellExecute()-to-the-Rescue!).aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=2bc479d4-fcb3-479f-a350-e08615e8a0bd</guid>
      <pubDate>Tue, 21 Jul 2009 13:53:00 +0300</pubDate>
      <category>visual foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=2bc479d4-fcb3-479f-a350-e08615e8a0bd</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=2bc479d4-fcb3-479f-a350-e08615e8a0bd</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2009/07/21/Dont-Be-So-Hard-On-Yourself-(or-ShellExecute()-to-the-Rescue!).aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=2bc479d4-fcb3-479f-a350-e08615e8a0bd</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=2bc479d4-fcb3-479f-a350-e08615e8a0bd</feedburner:origLink></item>
    <item>
      <title>Google Docs with Visual FoxPro</title>
      <description>&lt;p&gt;One of my earlier blog posts I could not recreate was about accessing the &lt;a href="http://www.google.com/" target="_blank"&gt;Google&lt;/a&gt; Docs API with &lt;a href="http://msdn.microsoft.com/vfoxpro" target="_blank"&gt;Visual FoxPro&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I re-did the screencast for it (watch it &lt;a title="Google Docs With Visual FoxPro" href="http://blip.tv/file/4092051" target="_blank"&gt;here&lt;/a&gt;), and also posted the code examples &lt;a href="http://kevinragsdale.net/Downloads/gVFP.zip" target="_blank"&gt;here&lt;/a&gt; (13.9 kb).&lt;/p&gt;  &lt;p&gt;You’ll need the West-Wind Client Tools to run the demo (you can download a shareware version &lt;a href="http://www.west-wind.com/files/wwClient.zip" target="_blank"&gt;here&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;I’m thinking about reworking the code to use &lt;a href="http://www.sweetpotatosoftware.com/SPSBlog/2008/12/05/VFPConnectionUpdateHTTPPostFTPCommandsAndMore.aspx" target="_blank"&gt;Craig Boyd’s VFPConnection FLL&lt;/a&gt;, and expanding the examples a bit.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=51xxTCLjWxQ:pQqOtVwj7S8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=51xxTCLjWxQ:pQqOtVwj7S8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=51xxTCLjWxQ:pQqOtVwj7S8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/51xxTCLjWxQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/51xxTCLjWxQ/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2009/07/19/Google-Docs-with-Visual-FoxPro.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=538926be-64d0-4e3e-ace9-b765fd5e60b9</guid>
      <pubDate>Sun, 19 Jul 2009 11:40:00 +0300</pubDate>
      <category>visual foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=538926be-64d0-4e3e-ace9-b765fd5e60b9</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=538926be-64d0-4e3e-ace9-b765fd5e60b9</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2009/07/19/Google-Docs-with-Visual-FoxPro.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=538926be-64d0-4e3e-ace9-b765fd5e60b9</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=538926be-64d0-4e3e-ace9-b765fd5e60b9</feedburner:origLink></item>
    <item>
      <title>“So, Where Ya Been?”</title>
      <description>&lt;p&gt;Over the past year or so, I&amp;rsquo;ve received a couple of emails from folks asking why my blog had disappeared.&lt;/p&gt;
&lt;p&gt;Last week, I found a post on &lt;a href="http://www.foxite.com"&gt;Foxite&lt;/a&gt; asking &amp;ldquo;What happened to Kevin Ragsdale?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;My response (&lt;em&gt;edited&lt;/em&gt; for this post) was:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I'm still alive, just been a bit less visible over the last couple of years due to personal and professional reasons.&lt;/p&gt;
&lt;p&gt;Professionally, I was bored. Bored with my &lt;em&gt;(non-FoxPro, all ASP.NET/VB6/SQL Server)&lt;/em&gt; job and uninspired to do anything. I spoke at the &lt;a href="http://kevinragsdale.net/?tag=/advisor+devcon" target="_blank"&gt;Advisor conference&lt;/a&gt; in early 2007 and was very disappointed in my preparation and delivery of the sessions (and non-delivery of session materials). Then I spoke at &lt;a href="http://kevinragsdale.net/?tag=/foxforward" target="_blank"&gt;FoxForward&lt;/a&gt; in September and was, once again, disappointed in my preparation.&lt;/p&gt;
&lt;p&gt;All of this built up and I felt I just didn't have anything interesting to say anymore.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;On the personal side&lt;/em&gt; I would have left my stuff online, but I deleted most everything based on my attorney's advice, during a child support and custody battle.&lt;/p&gt;
&lt;p&gt;It looked like the court would side with me, until my ex's attorney showed up with copies of all of my blog postings, screenshots of my websites, pictures of me speaking at conferences &lt;em&gt;(and enjoying more than a beer or two, or ten)&lt;/em&gt;, etc.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;My attorney --- worthless piece of garbage that he was --- folded like frightened child he saw this presentation of my &amp;ldquo;success.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;According to them, I was a highly successful, &lt;strong&gt;world-famous&lt;/strong&gt; (thanks to the &lt;a href="http://kevinragsdale.net/?tag=/desktop+alerts" target="_blank"&gt;Desktop Alerts&lt;/a&gt;) software developer who had taken a lesser job solely to reduce my child support payments.&lt;/p&gt;
&lt;p&gt;Of course, I knew I was barely scratching by on the only job I could find in a &lt;a title="Check out #5..." href="http://kevinragsdale.net/post/2007/01/11/Tagged.aspx" target="_blank"&gt;five-month job search&lt;/a&gt;, but according to them I was simply the worst of all deadbeat dads.&lt;/p&gt;
&lt;p&gt;Sometimes, an online profile just doesn't work out ;)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;In 2008&lt;/em&gt;, after attending a "town hall" meeting with my congressman, I decided to launch an independent run for Congress. For a few months, &lt;strong&gt;all&lt;/strong&gt; of my energy &lt;em&gt;(except the 40-hours per week at the job) &lt;/em&gt;was directed at that --- didn't work out too well, though --- I &lt;a href="http://kevinragsdale.net/post/2008/11/04/Spankede280a6.aspx" target="_blank"&gt;finished 4th out of 4&lt;/a&gt; candidates, behind a guy that said 'selective breeding is the solution to the health care crisis in America.'&lt;/p&gt;
&lt;p&gt;If I ever feel I've got something interesting to say, I'll start blogging again. I have a new job, this time all FoxPro, which has completely rejuvenated me!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So, it all boiled down to some really bad advice and an irrational response to an impossible situation&amp;hellip;&lt;/p&gt;
&lt;p&gt;Flattered that anyone showed any interest in my thoughts, I spent most of the day Saturday combing through the &lt;a href="http://www.archive.org/web/web.php" target="_blank"&gt;Wayback Machine&lt;/a&gt; and a couple of old external hard drives, picking out as many of the old blog posts I could find, and ended up recreating 74 of the old posts.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;As it turns out, &amp;ldquo;deleting&amp;rdquo; your &amp;ldquo;stuff&amp;rdquo; on the internet can be pretty doggone difficult, thanks to search engine caching and archives.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In the process of searching, I found that an &lt;a href="http://kevinragsdale.net/post/2005/03/24/Creating-a-Fading-Form.aspx" target="_blank"&gt;old blog post of mine&lt;/a&gt; was used as a &lt;a title="US Patent 7418668 - Glass appearance window frame colorization" href="http://www.patentstorm.us/patents/7418668/description.html" target="_blank"&gt;reference for a patent&lt;/a&gt; Microsoft was granted in August of last year.&lt;/p&gt;
&lt;p&gt;Freaky!&lt;/p&gt;
&lt;p&gt;Anyway, I&amp;rsquo;m now working full-time again with &lt;a href="http://msdn.microsoft.com/vfoxpro" target="_blank"&gt;Visual FoxPro&lt;/a&gt;, and I&amp;rsquo;m looking forward to sharing my new development experiences with you.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Visual FoxPro ROCKS!!!&lt;/strong&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=ngOqGCIguKQ:lTkT7YJwOsQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=ngOqGCIguKQ:lTkT7YJwOsQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=ngOqGCIguKQ:lTkT7YJwOsQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/ngOqGCIguKQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/ngOqGCIguKQ/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2009/07/19/So-Where-Ya-Been.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=b37d446b-04a5-457b-9696-81f7f279934f</guid>
      <pubDate>Sun, 19 Jul 2009 10:00:00 +0300</pubDate>
      <category>visual foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=b37d446b-04a5-457b-9696-81f7f279934f</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=b37d446b-04a5-457b-9696-81f7f279934f</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2009/07/19/So-Where-Ya-Been.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=b37d446b-04a5-457b-9696-81f7f279934f</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=b37d446b-04a5-457b-9696-81f7f279934f</feedburner:origLink></item>
    <item>
      <title>Spanked…</title>
      <description>&lt;p&gt;Nothing like a good old-fashioned spanking to get the programming juices flowing again. :)&lt;/p&gt;
&lt;p&gt;Beaten by a guy that looks a lot like the Tennessee flag...&lt;/p&gt;
&lt;p&gt;&lt;a href="http://kevinragsdale.net/image.axd?picture=electionresults_1.png"&gt;&lt;img style="display: inline; border: 0px;" title="electionresults" src="http://kevinragsdale.net/image.axd?picture=electionresults_thumb_1.png" border="0" alt="electionresults" width="300" height="336" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;This post originally appeared on &lt;a href="http://blogger.com" target="_blank"&gt;Blogger&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=obfJEy3WbY8:Cc2w3AYrPBY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=obfJEy3WbY8:Cc2w3AYrPBY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=obfJEy3WbY8:Cc2w3AYrPBY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/obfJEy3WbY8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/obfJEy3WbY8/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2008/11/04/Spanked.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=d02068ff-0d44-4c67-9b91-aae4de5be9fd</guid>
      <pubDate>Tue, 04 Nov 2008 23:02:00 +0300</pubDate>
      <category>politics</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=d02068ff-0d44-4c67-9b91-aae4de5be9fd</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=d02068ff-0d44-4c67-9b91-aae4de5be9fd</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2008/11/04/Spanked.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=d02068ff-0d44-4c67-9b91-aae4de5be9fd</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=d02068ff-0d44-4c67-9b91-aae4de5be9fd</feedburner:origLink></item>
    <item>
      <title>Wow, What a Response!</title>
      <description>&lt;p&gt;When I announced I was running for Congress, I had no idea the response would be so overwhelming.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Video no longer available...&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;This post originally appeared on &lt;a href="http://blogger.com" target="_blank"&gt;Blogger&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=h3n2Sjw1I0Y:AaQF8vHkQqE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=h3n2Sjw1I0Y:AaQF8vHkQqE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=h3n2Sjw1I0Y:AaQF8vHkQqE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/h3n2Sjw1I0Y" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/h3n2Sjw1I0Y/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2008/06/19/Wow-What-a-Response!.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=feb816bd-447d-40f3-afc5-f98a800d688b</guid>
      <pubDate>Thu, 19 Jun 2008 15:43:00 +0300</pubDate>
      <category>politics</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=feb816bd-447d-40f3-afc5-f98a800d688b</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=feb816bd-447d-40f3-afc5-f98a800d688b</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2008/06/19/Wow-What-a-Response!.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=feb816bd-447d-40f3-afc5-f98a800d688b</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=feb816bd-447d-40f3-afc5-f98a800d688b</feedburner:origLink></item>
    <item>
      <title>My HEROES happen {in Mesa, this October}</title>
      <description>&lt;p&gt;Went to the &lt;a href="http://www.microsoft.com/heroeshappenhere" target="_blank"&gt;HEROES happen {here}&lt;/a&gt; (Visual Studio 2008 Launch Event) in Nashville today.&lt;/p&gt;
&lt;p&gt;Overall, the event was pretty good (I attended the Developer Track) but to be honest, I &lt;em&gt;couldn't wait&lt;/em&gt; to get home and check the &lt;a href="http://www.swfox.net" target="_blank"&gt;Southwest Fox 2008&lt;/a&gt; web site.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Today was "announcement" day: they announced the &lt;a href="http://www.swfox.net/speakers.aspx" target="_blank"&gt;speakers&lt;/a&gt; and &lt;a href="http://www.swfox.net/sessions.aspx" target="_blank"&gt;sessions&lt;/a&gt;, and opened &lt;a href="http://www.swfox.net/register.aspx" target="_blank"&gt;registration&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Speaker list (in alphabetical order):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/MenachemBazian.aspx" target="_blank"&gt;Menachem Bazian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/RickBorup.aspx" target="_blank"&gt;Rick Borup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/CraigBoyd.aspx" target="_blank"&gt;Craig Boyd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/BoDurban.aspx" target="_blank"&gt;Bo Durban&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/MikeFeltman.aspx" target="_blank"&gt;Mike Feltman&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/ToniFeltman.aspx" target="_blank"&gt;Toni Feltman&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/TamarGranor.aspx" target="_blank"&gt;Tamar Granor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/DougHennig.aspx" target="_blank"&gt;Doug Hennig&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/AndyKramek.aspx" target="_blank"&gt;Andy Kramek&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/AndrewMacNeill.aspx" target="_blank"&gt;Andrew MacNeill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/BarbaraPeisch.aspx" target="_blank"&gt;Barbara Peisch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/CathyPountney.aspx" target="_blank"&gt;Cathy Pountney&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/RickSchummer.aspx" target="_blank"&gt;Rick Schummer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/AlanStevens.aspx" target="_blank"&gt;Alan Stevens&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/RickStrahl.aspx" target="_blank"&gt;Rick Strahl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.swfox.net/ChristofWollenhaupt.aspx" target="_blank"&gt;Christof Wollenhaupt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Looks like &lt;strong&gt;MY&lt;/strong&gt; Heroes happen {in Mesa}...&lt;/p&gt;
&lt;p&gt;Had a chance to chat with Alan Stevens for a few minutes today at the launch event.&amp;nbsp; We both talked about how much &lt;a href="http://cully.biz/2008/04/03/no-foxforward-2008/" target="_blank"&gt;we'll miss FoxForward&lt;/a&gt; this year.&amp;nbsp; &lt;a href="http://cully.biz/" target="_blank"&gt;Kevin Cully&lt;/a&gt; and his family did a great job with the FoxForward conference the last two years.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Start saving your nickels and dimes!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;This post originally appeared on &lt;a href="http://blogger.com" target="_blank"&gt;Blogger&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=gPi2rAj4zAc:0yrvjgDwSGM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=gPi2rAj4zAc:0yrvjgDwSGM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/feedburner/vfUv?a=gPi2rAj4zAc:0yrvjgDwSGM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/feedburner/vfUv?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/feedburner/vfUv/~4/gPi2rAj4zAc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/feedburner/vfUv/~3/gPi2rAj4zAc/post.aspx</link>
      <author>kevin@kevinragsdale.net</author>
      <comments>http://kevinragsdale.net/post/2008/05/02/My-HEROES-happen-7bin-Mesa-this-October7d.aspx#disqus_thread</comments>
      <guid isPermaLink="false">http://kevinragsdale.net/post.aspx?id=10676e75-d677-49b6-a0a9-f0bb6c72cbb3</guid>
      <pubDate>Fri, 02 May 2008 21:01:00 +0300</pubDate>
      <category>visual foxpro</category>
      <dc:publisher>Kevin Ragsdale</dc:publisher>
      <pingback:server>http://kevinragsdale.net/pingback.axd</pingback:server>
      <pingback:target>http://kevinragsdale.net/post.aspx?id=10676e75-d677-49b6-a0a9-f0bb6c72cbb3</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://kevinragsdale.net/trackback.axd?id=10676e75-d677-49b6-a0a9-f0bb6c72cbb3</trackback:ping>
      <wfw:comment>http://kevinragsdale.net/post/2008/05/02/My-HEROES-happen-7bin-Mesa-this-October7d.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://kevinragsdale.net/syndication.axd?post=10676e75-d677-49b6-a0a9-f0bb6c72cbb3</wfw:commentRss>
    <feedburner:origLink>http://kevinragsdale.net/post.aspx?id=10676e75-d677-49b6-a0a9-f0bb6c72cbb3</feedburner:origLink></item>
  </channel>
</rss>

