General discussion

Locked

The SPS Weblog

By craig ·
Tags: Off Topic
blog root

This conversation is currently closed to new comments.

94 total posts (Page 5 of 10)   Prev   03 | 04 | 05 | 06 | 07   Next
Thread display: Collapse - | Expand +

All Comments

Collapse -

Learning Visual FoxPro Videos

by craig In reply to The SPS Weblog

<strong>
<p align=center>
<img src="http://www.sweetpotatosoftware.com/SPSBlog/content/binary/blog101.jpg" border=0>
</p>
</strong>
<p>
<strong>Not enough time<br>
</strong>It's been a week since my last entry into my blog. Between billable work,
articles that I'm writing, and getting ready for the <a href="http://www.swfox.net/">Southwest
Fox</a> conference, time has been an extremely precious commodity. If someone finds
a way to increase the number of hours in a day to 48 using an undocumented API call,
please let me know.
</p>
<p>
<strong>Increasing interest in Visual FoxPro<br>
</strong>As interest in Visual FoxPro increases (and it is increasing), there are
a number of developers out on the forums looking for beginner books for Visual FoxPro.
I've even seen a few people looking for a demo of Visual FoxPro that they can try
out before making a decision on whether to purchase it (other than an occasional public
beta, this just doesn't happen). And regrettably, there just aren't as many books
and resources for Visual FoxPro 9.0 as there are for some of the previous versions
of the product, and few of the books that are out there are geared toward the beginner
(<a href="http://www.amazon.com/exec/obidos/tg/detail/-/0965509338/103-8835161-**78263?v=glance">KiloFox</a> gets
my vote for the greatest VFP book ever written, but regrettably it's not the kind
of text a beginner would find easy to understand and follow).
</p>
<p>
<strong>Book idea Scrapped<br>
</strong>I started toying with the idea of writing a book on Visual FoxPro for beginners,
but that would require an extensive commitment in time, and as I've said, I don't
have a lot of time on my hands these days. I also realized that I didn't just want
to provide information for beginners, but also for intermediate and advanced Visual
FoxPro developers. The book idea was starting to look as if it would be at least 1200
pages... so, the book idea was obviously not feasible, but that didn't quench my desire
to provide something to the Visual FoxPro community that would perhaps be considered
useful.
</p>
<p>
<strong>Screencast to the rescue<br>
</strong>I've taken an interest in the videos provided at <a href="http://www.foxcast.org/">FoxCast</a>,
and found many of them very informative and useful. There's something about being
able to see and hear another developer make a presentation via <a href="http://en.wikipedia.org/wiki/Screencast">screencast</a> that
can't be duplicated in a book or through a <a href="http://en.wikipedia.org/wiki/Podcast">podcast</a>.
I'm not saying that a screencast is superior in every way, it has its place just as
the other types of medium do, but what appealed to me most was the ability to relay
a large amount of information in a short amount of time.
</p>
<p>
<strong>Learning Visual FoxPro is born<br>
</strong>I've also listened to Andrew MacNeill talk about screencasting on <a href="http://www.thefoxshow.com/">the
FoxShow</a>, as well as in <a href="http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,1f2c6632-536e-4552-a8a6-de8328ca0ff9.aspx">an
article he wrote</a>, and I've created a number of screencast for application that
I've developed. I've found it to be an incredibly easy way to train users and also
provide perspective users with a way to look at a product before they buy it. And,
Visual FoxPro is essentially just a software product like any other with developers
(especially those involved in data centric application development) as its target
audience.
</p>
<p>
So, I've begun creating a library of videos that will not only show off Visual FoxPro's
abilities, but will hopefully provide viewers with some useful information and insight
that can help them become better Visual FoxPro developers. The videos will
be broken down into 3 series. The 100 series (101, 102, 103...) will be for beginner-level
Visual FoxPro developers. The 200 series will be for intermediate-level Visual
FoxPro developers. And finally, the 300 series will be for advanced-level Visual
FoxPro developers.
</p>
<p>
<strong>Unscripted content<br>
</strong>The narrative for the videos is not scripted. I just have a short outline
of the subject matter I want to screencast about, open up Visual FoxPro and Go. This
provides the viewer with a raw look at how I develop in Visual FoxPro which I believe
is useful. It also allows me to create videos in the shortest amount of time possible.
It's sort of like watching a <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=78519">demo
Ken Levy has done</a> for <a href="http://channel9.msdn.com/">Channel 9</a>, except
that it's just my screen and voice.
</p>
<p>
In any event, the first video is "101: Creating a Project". As it is in the 100 series,
it is targeted toward beginners, but some intermediate developers may still find some
of the content useful. It will walk the viewer through creating a relatively simple
Visual FoxPro project from scratch to compile. It is nearly an hour long, so I've
busted it up into 3 seperate .swf files. Each .swf file is about 13 MB give or take
and the loader you'll see at the beginning will stay up until 30% of the .swf has
been loaded. In other words, if you are on Dial-up, forget it. (I did initially create
a .wmv of the video, but at an acceptable bit-rate the images and audio
were unacceptably degraded. The .swf was still smaller, with crisp images and
audio.). Below are the links to the 3 parts as well as a download link for the
source code that goes along with it. I'll be back with more videos, including the
200 and 300 series, and feedback both positive and negative is greatly appreciated.
I have no doubt that changes will be made in certain areas as I produce more videos,
so you're feedback is important and can help me improve the overall usefulness of
what I'm trying to accomplish here.
</p>
<p>
<strong>Learning Visual FoxPro<br>
</strong>101: Creating a Project<br>
<br>
<a href="http://www.sweetpotatosoftware.com/learningvfp/101/LVFP101_Part1.htm">Part
I</a> (19:33)<br>
<br>
<a href="http://www.sweetpotatosoftware.com/learningvfp/101/LVFP101_Part2.htm">Part
II</a> (21:06)<br>
<br>
<a href="http://www.sweetpotatosoftware.com/learningvfp/101/LVFP101_Part3.htm">Part
III</a> (18:15)<br>
<br>
</p>
<a href="http://www.sweetpotatosoftware.com/learningvfp/101/Source101.zip">Download
101 Source Code</a> (621 KB approx.)<br />
<hr />
This weblog is sponsored by <a href="http://www.sweetpotatosoftware.com">SweetPotato
Software, Inc.</a><p><div class="blogdisclaim"><a href="http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,2baba34c-ebd6-46a3-aabe-35a4d7348014.aspx">This post originally appeared on an external website</a></div>

Collapse -

Learning Visual FoxPro Videos

by yehuda In reply to Learning Visual FoxPro Vi ...

<p><strong>Well Done</strong>.</p>
<p>I am a foxpro 2.5 programmer supporting clients still in dos. and this video courses of yours realy gave me a jump start in my training.</p>
<p>a must see for anyone interested in foxpro.</p>
<p>waiting for the 200 AND 300 SERIES</p>
<p> </p>

Collapse -

Recent Visual FoxPro Articles

by craig In reply to The SPS Weblog

<p>
<strong>Shameless plug<br>
</strong>As I've said in a couple of my past entries, I've been writing articles for
FoxTalk 2.0 and FoxPro Advisor. I think as a community it's important that we support
these publications by subscribing to them and/or writing articles for them. They provide
a lot of bang for the buck and the quality of the Visual FoxPro material they present
is top-notch; written by some of the greatest Visual FoxPro developers in the world.<br>
<br>
<strong>GDI+ series in FoxTalk 2.0<br>
</strong>For <a href="http://www.pinpub.com/ME2/Audiences/Default.asp">FoxTalk 2.0</a>,
I've been doing a series on GDI+ and in the latest article, "<!--002-->GDI+ on VFP9
Forms: Working with Images", I show a number of advanced techniques for manipulating
and displaying images and for rendering content directly on a Visual FoxPro form without
painting over the controls. This article builds on the techniques presented in the
first article, and I can tell you, modesty aside, that this second article blows the
lid off. And, I'm just getting started... so if you're a FoxTalk 2.0 subscriber look
forward to more articles on GDI+ and its use in Visual FoxPro. And if you're not a
subscriber, I urge you to consider it.
<br>
<br>
Dave Stevenson is my editor at FoxTalk 2.0, and he works long and hard on these articles to
make sure that they are not only grammatically correct, but technically sound as well.
More than a few of the good ideas that have been presented in my articles came from
suggestions Dave made.
</p>
<p>
One of the things I like best about FoxTalk 2.0 is their willingness to provide
some of the really valuable content to the Visual FoxPro Community for free online
(it's usually the issue's feature article). For instance, last month they provided
my article, "<a href="http://www.pinpub.com/ME2/Audiences/dirmod.asp?sid=&nm=&type=Publishing&mod=Publications%3A%3AArticle&mid=8F3A7027421841978F18BE895F87F7**&AudID=301888DF3BCF483382FC8A1382F3050B&tier=4&id=43FF99C3289346189B14EAEA14573F3C">GDI+
on VFP 9 Forms: Solving the Paint Problem</a>", and then this month they freely provided
"<a class=LtBlueLinkCenter href="http://www.pinpub.com/ME2/Audiences/dirmod.asp?sid=&nm=&type=Publishing&mod=Publications%3A%3AArticle&mid=8F3A7027421841978F18BE895F87F7**&AudID=301888DF3BCF483382FC8A1382F3050B&tier=4&id=F4271EF23F6D4612A94C6B71DA63D838">
<!--001-->Extending the Report Builder's Multiple Selection Dialog</a>" by Colin Nichols.
You can find even more free FoxTalk articles from months and years past by doing
an online search (<a href="http://www.google.com/search?hl=en&lr=&safe=off&q=FoxTalk+Free+Article">Google</a>, <a href="http://search.msn.com/results.aspx?q=FoxTalk+Free+Article&FORM=QBHP">MSN</a>, <a href="http://search.yahoo.com/search?ei=UTF-8&fr=sfp&p=FoxTalk+Free+Article">Yahoo</a>,
etc.).<strong> </strong>FoxTalk has been doing this for a long time, and
I really feel they deserve our support. Enough said.
</p>
<p>
<strong>FLL series in FoxPro Advisor<br>
</strong>For <a href="http://foxproadvisor.com/">FoxPro Advisor</a> (FPA) I've
been doing a series on FLL creation and use. FLLs are Dynamic-Link Libraries written
in C\C++ that access the Visual FoxPro API (180 + functions). You can do some absolutely
amazing things with FLLs in Visual FoxPro and hopefully a few of the FLLs I've provided
here on the SPS Blog (such as the vfpencryption.fll) bear that out.
</p>
<p>
My first article, "Create and Use FLLs", is in this month's issue of FPA, and
I show the reader how to create an FLL in 10 easy steps using Visual C++ 6 or
7. I'm prevented from going into further details about upcoming articles by a NDA,
but they're intense and as a subscriber you definitely get your money's worth with
FPA. As with FoxTalk 2.0, FPA has some of the best and brightest writing for them.<br>
<br>
As a writer it's fun to write for FPA because they sometimes pass your article on
to the likes of Tamar Granor and/or Christof Wollenhaupt for editing. There's nothing
like having those two critique your article, ask questions, or offer suggestions.
In case you're wondering, I held my own. :)
</p>
<p>
<strong>Worth the price of Admission<br>
</strong>FoxTalk 2.0 is a bargain at $139 for <a href="http://www.qfie.com/ragan2/clsRAGANNewOrd2.asp?PubCode=FOXTLK&TrackCode=&strAspReason=102&AudID=301888DF3BCF483382FC8A1382F3050B">print
and online subscriptions</a> and $79 for an <a href="http://www.qfie.com/ragan2/clsRAGANNewOrd2.asp?PubCode=FOXTLK&TrackCode=WEB5E&strAspReason=102&AudID=301888DF3BCF483382FC8A1382F3050B">online
only subscription</a>. To get an idea of the kind of content you can expect, there
is a <a href="http://www.pinpub.com/Media/MediaManager/FT_Sample.pdf">Sample Issue</a> pdf
online, as well as the free online articles they've provided that I mentioned
above.
</p>
<p>
A <a href="http://advisorstore.com/as-ztmsvf.html">subscription to FoxPro Advisor</a> is
$99 per year and they offer a discount if you subscribe for two years ($90 per
year). They also provide some free articles from time to time, but those articles
are very seldom indicative of the level of information you will receive in the
articles available to subscribers only.
</p>
<p>
With both of these industry rags, FoxTalk 2.0 and FPA, it's not just the current
issues that make subscriptions valuable, it's also having access to all of the archives.
The Visual FoxPro resources and code that are in the back issues far outweigh
the subscription price for a single year any way you slice it.
</p>
<p>
If you're already a subscriber to these magazines, then you know what I'm saying is
true. And if you're not yet a subscriber, I hope that I've perhaps piqued your interest,
and that you may decide to subscribe to one or both. You won't regret it. Free online
resources are great, but sometimes a product or service is well-worth the price
of admission.
</p>
<p>
<strong>PS</strong> There's also the <a href="http://www.utmag.com/">Universal Thread
Magazine</a> and <a href="http://www.code-magazine.com/">CoDe Magazine</a>, which
both contain Visual FoxPro content, but I haven't written articles for either of them.
</p>
<br />
<hr />
This weblog is sponsored by <a href="http://www.sweetpotatosoftware.com">SweetPotato
Software, Inc.</a><p><div class="blogdisclaim"><a href="http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,623c5ba9-90f4-4123-8a49-5768e8c85daf.aspx">This post originally appeared on an external website</a></div>

Collapse -

Project LINQ - Can it be done in VFP?

by craig In reply to The SPS Weblog

<p>
<strong>Yag's blog entry on LINQ<br>
</strong>I was reading some blogs earlier today and I saw that Yag had posted an entry
out on the VS Data Teams Weblog entitled "<a href="http://blogs.msdn.com/vsdata/archive/2005/09/12/Announcing_Linq.aspx">Project
LINQ - Language INtegrated Query (by yag)</a>". Interesting stuff coming out of the
PDC for sure. He shows a query that is essentially dimensioning a Visual Basic variable
as a collection using a SQL statement.
</p>
<p>
I haven't seen LINQ yet or been able to play around with it, but I think I get the
gist of it pretty well from yag's description. So, that got me to thinking how hard
would something like that be to do in Visual FoxPro? There are some interesting aspects
to what yag's example...
</p>
<p class=Code>
<font face="Lucida Console"><span>Dim</span> SmallCountries = <span>Select</span> Country
_<br>
<span></span><span>From</span> Country <span>In</span> Countries _<br>
<span></span><span>Where</span> Country.Population < 1000000</font>
</p>
<p>
...and his description of LINQ show. Being able to use SQL to access objects, data,
and XML (still just data) and return collections of objects or perhaps other constructs
is interesting to me anyways. But implementing something similar in Visual FoxPro doesn't
strike me as terribly difficult (here again, bear in mind that I have not seen LINQ
and I could be talking out of my proverbial back-side right now... I'll know more
when I get my hands on it), in fact, given Visual FoxPro's ability to manipulate data,
XML, and objects, it is a perfect fit for this sort of extension. I don't
wish to take anything away from the hard work that MS did to come up with LINQ. I
merely wish to take that idea and run with it for a little bit in Visual FoxPro. Can
you blame me?
</p>
<p>
<strong>A few disclaimers<br>
</strong>Now the SQL Parsing engine they are using in LINQ is surely heads and shoulders
above what I'm about to show you, please remember that I've spent a total of about
1 hour on this and part of that time was spent getting a list of countries and stats
for the example. I just wanted to show a proof-of-concept for now. I'll let it roll
around in my head for a few days, and also look for feedback from the VFP Community, before
I decide whether I want to get down to some serious code writing with this thing or
not. And, this example only shows running queries against a collection. Data and XML
will come later, but I don't perceive any real stumbling blocks there either... some
tedious work perhaps, but no show-stoppers.
</p>
<p>
<strong>VOSQL, a proof-of-concept<br>
</strong>I call this thing "Visual FoxPro Object-Oriented SQL (VOSQL)". Copy-n-paste
the code below into a PRG and execute it from within VFP. There's a lot of code, but
most of it is just creating the extensive cursor of countries that I use to populate
the countries collection. If you look, the VOSQL class is rather short (almost laughable
for the amount of functionality it already gives). I've made this example a little
more difficult then Yag's, by adding an additional World collection to hold the countries
and showing some more complex SQL statements (I couldn't let the .NET family have
all the fun). Here's the code (be sure and try some of your own SQL statements as
well)...
</p>
<p>
<font face="Courier New" size=1>*!* Cut-N-Paste the following code into a PRG and
execute it<br>
PRIVATE oWorld AS world<br>
LOCAL loVOSQL AS VOSQL, loCountry as country</font>
</p>
<p>
<font face="Courier New" size=1>DO CreateCountryCursor && This is just to
give us some sample data from which to pull our countries</font>
</p>
<p>
<font face="Courier New" size=1>*!* Fill the World Collection<br>
oWorld = CREATEOBJECT("world")<br>
SELECT crsCountry<br>
SCAN ALL<br>
 oWorld.countries.ADD(CREATEOBJECT("Country", ALLTRIM(crsCountry.country), 
ALLTRIM(crsCountry.capital), crsCountry.area, crsCountry.population))<br>
ENDSCAN</font>
</p>
<p>
<font face="Courier New" size=1>USE IN SELECT("crsCountry") && close it now
that we're done</font>
</p>
<p>
<font face="Courier New" size=1>************************************<br>
*!* Example Queries using the VOSQL object<br>
************************************<br>
loVOSQL = CREATEOBJECT("VOSQL")</font>
</p>
<p>
<font face="Courier New" size=1>*!* Query #1<br>
colCountries = loVOSQL.ObjectQuery("SELECT Country FROM oWorld.Countries WHERE Population
< 1000000")<br>
FOR EACH loCountry IN colCountries<br>
 ?loCountry.cName + [ - ] + TRANSFORM(loCountry.population)<br>
ENDFOR<br>
?</font>
</p>
<p>
<font face="Courier New" size=1>*!* Query #2<br>
colCountries = loVOSQL.ObjectQuery("Select Country from oWorld.Countries Where 2500000
< Area AND (Population > 20000000 or alltrim(cName) = [Kazakhstan])")<br>
FOR EACH loCountry IN colCountries<br>
 ?loCountry.cName<br>
ENDFOR<br>
?</font>
</p>
<p>
<font face="Courier New" size=1>*!* Query #3<br>
colCountries = loVOSQL.ObjectQuery("SELECT Country FROM oWorld.Countries WHERE 2500000
< Area AND (Population > 20000000 or alltrim(cName) = [Kazakhstan])  ORDER
BY Capital")<br>
FOR EACH loCountry IN colCountries<br>
 ?loCountry.cName<br>
ENDFOR<br>
?</font>
</p>
<p>
<font face="Courier New" size=1>************************************<br>
*!* Classes we are querying against<br>
************************************<br>
DEFINE CLASS country AS CUSTOM<br>
 cName = "Unknown"<br>
 capital = "Unknown"<br>
 area = 0<br>
 population = 0<br>
 PROCEDURE INIT (tcName, tcCapital, tnArea, tnPopulation)<br>
  WITH THIS<br>
   .cName = tcName<br>
   .capital = tcCapital<br>
   .area = tnArea<br>
   .population = tnPopulation<br>
  ENDWITH<br>
 ENDPROC<br>
ENDDEFINE</font>
</p>
<p>
<font face="Courier New" size=1>DEFINE CLASS world AS CUSTOM<br>
 Name = "Earth"<br>
 ADD OBJECT countries AS countries<br>
ENDDEFINE</font>
</p>
<p>
<font face="Courier New" size=1>DEFINE CLASS countries AS COLLECTION<br>
ENDDEFINE</font>
</p>
<p>
<font face="Courier New" size=1>************************************<br>
*!* This is the actual object that does the work<br>
************************************<br>
DEFINE CLASS VOSQL AS CUSTOM<br>
 PROCEDURE ObjectQuery (tcOSQL)<br>
  LOCAL lcSelect, lcFrom, loFrom, lcWhere, lcOrderBy, lnDescending, lnAscending,
loReturn, loItem, lcReturnName, ;<br>
   lnCounter, lnPropCount, llWhereProcessed<br>
  lcFrom = STREXTRACT(tcOSQL, " FROM " , " WHERE ", 1, 3)<br>
  loReturn = CREATEOBJECT("Collection")<br>
  loFrom = &lcFrom<br>
  IF loFrom.COUNT > 1<br>
   llWhereProcessed = .F.<br>
   lcSelect = UPPER(STREXTRACT(tcOSQL, "SELECT " , " FROM ", 1, 1))<br>
   lcWhere = " " + STREXTRACT(tcOSQL, " WHERE " , " ORDER BY ", 1,
3)<br>
   lcOrderBy = STREXTRACT(tcOSQL, " ORDER BY " , "", 1, 3)<br>
   lnDescending = ATC(" DESC", lcOrderBy)<br>
   IF lnDescending > 0<br>
    lcOrderBy = LEFT(lcOrderBy, lnDescending - 1)<br>
   ENDIF<br>
   lnAscending = ATC(" ASC", lcOrderBy)<br>
   IF lnAscending > 0<br>
    lcOrderBy = LEFT(lcOrderBy, lnAscending - 1)<br>
   ENDIF<br>
   <br>
   FOR lnCounter = 1 TO loFrom.COUNT<br>
    loItem = loFrom.ITEM(lnCounter)<br>
    IF UPPER(loItem.CLASS) == lcSelect<br>
     IF !llWhereProcessed<br>
      THIS.processwhereclause(@lcWhere, loItem)<br>
      llWhereProcessed = .T.<br>
     ENDIF<br>
     IF EMPTY(lcWhere) OR EVALUATE(lcWhere)<br>
      IF EMPTY(lcOrderby)<br>
       loReturn.ADD(loItem)<br>
      ELSE<br>
       loReturn.ADD(loItem, TRANSFORM(EVALUATE("loItem."
+ lcOrderby)))<br>
      ENDIF<br>
     ENDIF<br>
    ENDIF<br>
   ENDFOR<br>
  ENDIF<br>
  IF !EMPTY(lcOrderby)<br>
   IF lnDescending > 0<br>
    loReturn.Keysort = 3<br>
   ELSE<br>
    loReturn.Keysort = 2<br>
   ENDIF<br>
  ENDIF<br>
  RETURN loReturn<br>
 ENDPROC</font>
</p>
<p>
<font face="Courier New" size=1> PROCEDURE processwhereclause (tcWhere, toItem)<br>
  LOCAL lnCounter, lnMax<br>
  lnMax = AMEMBERS(aryProps, toItem, 0)<br>
  FOR lnCounter = 1 TO lnMax<br>
   tcWhere = STRTRAN(tcWhere, " " + ALLTRIM(aryProps(lnCounter)), "
loItem." + aryProps(lnCounter), 1, -1, 1)<br>
   tcWhere = STRTRAN(tcWhere, "(" + ALLTRIM(aryProps(lnCounter)), "(loItem."
+ aryProps(lnCounter), 1, -1, 1)<br>
  ENDFOR<br>
 ENDPROC<br>
ENDDEFINE</font>
</p>
<p>
<font face="Courier New" size=1>************************************<br>
*!* This is just to produce data for this sample<br>
************************************<br>
PROCEDURE CreateCountryCursor<br>
 CREATE CURSOR crsCountry(country c(21), capital c(19), area I, population I)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Afghanistan",
"Kabul", 647500, 29928987)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Albania",
"Tirane", 28748, 3563112)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Algeria",
"Algiers", 2381740, 32531853)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Andorra",
"Andorra la Vella", 468, 70549)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Angola",
"Luanda", 1246700, 11190786)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Antigua
and Bar", "St. John's", 443, 68722)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Argentina",
"Buenos Aires", 2766890, 39537943)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Armenia",
"Yerevan", 29800, 2982904)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Australia",
"Canberra", 7686850, 20090437)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Austria",
"Vienna", 83858, 81846**)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Azerbaijan",
"Baku", 86600, 7**1974)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Bahamas,
The", "Nassau", 13940, 301790)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Bahrain",
"Al-Manamah", 665, 688345)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Bangladesh",
"Dhaka", 144000, 14431962<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Barbados",
"Bridgetown", 431, 279254)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Belarus",
"Mensk (Minsk)", 207600, 10300483)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Belgium",
"Brussels", 30510, 1036438<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Belize",
"Belmopan", 22966, 279457)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Benin",
"Porto-Novo", 112620, 7460025)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Bhutan",
"Thimphu", 47000, 22322**)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Bolivia",
"La Paz", 1098580, 8857870)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Bosnia and
Herz", "Sarajevo", 51129, 4025476)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Botswana",
"Gaborone", 600370, 1640115)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Brazil",
"Bras?lia", 8511965, 186112794)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Brunei",
"Bandar Seri Begawan", 5770, 372361)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Bulgaria",
"Sofia", 110**0, 7450349)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Burkina
Faso", "Ouagadougou", 274200, 13925313)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Burundi",
"Bujumbura", 27830, 6370609)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Cambodia",
"Phnom Penh", 181040, 13607069)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Cameroon",
"Yaounde", 475440, 16380005)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Canada",
"Ottawa", 9984670, 32805041)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Cape Verde",
"Praia", 4033, 418224)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Central
African", "Bangui", 622984, 3799897)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Chad", "N'Djamena",
1284000, 9826419)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Chile",
"Santiago", 756950, 15980**2)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("China",
"Beijing", 9596960, 1306313812)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Colombia",
"Bogat ", 1138**0, 42954279)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Comoros",
"Moroni", 2170, 671247)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Congo, Republic",
"Brazzaville", 342000, 303**26)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Congo, Democrat",
"Kinshasa", 2345410, 60085004)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Costa Rica",
"San Jose", 51100, 4016173)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Cote d'Ivoire",
"Yamoussoukro", 322460, 17298040)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Croatia",
"Zagreb", 56542, 4495904)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Cuba", "Havana",
110860, 11346670)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Cyprus",
"Nicosia", 9250, 780133)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Czech Republic",
"Prague", 78866, 1024113<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Denmark",
"Copenhagen", 43094, 5432335)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Djibouti",
"Djibouti", 23000, 476703)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Dominica",
"Roseau", 754, 69029)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Dominican
Repub", "Santo Domingo", 48730, 8950034)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("East Timor",
"Dili", 15007, 1040880)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Ecuador",
"Quito", 283560, 13363593)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Egypt",
"Cairo", 1001450, 77505756)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("El Salvador",
"San Salvador", 21040, 6704932)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Equatorial
Guin", "Malabo", 28051, 535881)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Eritrea",
"Asmara", 121320, 4561599)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Estonia",
"Tallinn", 45226, 1332893)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Ethiopia",
"Addis Ababa", 1127127, 73053286)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Fiji", "Suva",
18270, 893354)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Finland",
"Helsinki", 337030, 5223442)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("France",
"Paris", 547030, 6065617<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Gabon",
"Libreville", 267667, 1389201)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Gambia,
The", "Banjul", 11300, 1593256)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Georgia",
"Tbilisi", 69700, 4677401)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Germany",
"Berlin", 357021, 82431390)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Ghana",
"Accra", 239460, 21029853)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Greece",
"Athens", 131940, 10668354)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Grenada",
"St. George's", 344, 89502)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Guatemala",
"Guatemala City", 108890, 14655189)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Guinea",
"Conakry", 245857, 9467866)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Guinea-Bissau",
"Bissau", 36120, 1416027)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Guyana",
"Georgetown", 214970, 765283)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Haiti",
"Port-au-Prince", 27750, 8121622)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Honduras",
"Tegucigalpa", 112090, 6975204)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Hungary",
"Budapest", 93030, 10006835)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Iceland",
"Reykjavik", 103000, 296737)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("India",
"New Delhi", 3287590, 108026438<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Indonesia",
"Jakarta", 1**9440, 241973879)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Iran", "Tehran",
1648000, 68017860)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Iraq", "Baghdad",
437072, 26074906)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Ireland",
"Dublin", 70280, 4015676)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Israel",
"Jerusalem", 20770, 6276883)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Italy",
"Rome", 301230, 58103033)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Jamaica",
"Kingston", 109**, 2731832)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Japan",
"Tokyo", 377835, 127417244)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Jordan",
"Amman", 92300, 5759732)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Kazakhstan",
"Almaty", 2717300, 15185844)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Kenya",
"Nairobi", 582650, 33829590)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Kiribati",
"Tarawa", 811, 103092)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Korea, North",
"Pyongyang", 120540, 22**2177)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Korea, South",
"Seoul", 98480, 48422644)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Kuwait",
"Kuwait City", 17820, 233564<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Kyrgyzstan",
"Bishkek", 198500, 5146281)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Laos", "Vientiane",
236800, 6217141)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Latvia",
"Riga", 64589, 2290237)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Lebanon",
"Beirut", 10400, 382601<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Lesotho",
"Maseru", 30355, 1867035)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Liberia",
"Monrovia", 111370, 3482211)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Libya",
"Tripoli", 1759540, 5765563)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Liechtenstein",
"Vaduz", 160, 33717)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Lithuania",
"Vilnius", 65200, 3596617)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Luxembourg",
"Luxembourg", 2586, 468571)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Macedonia",
"Skopje", 25333, 2045262)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Madagascar",
"Antananarivo", 587040, 18040341)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Malawi",
"Lilongwe", 118480, 12158924)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Malaysia",
"Kuala Lumpur", 329750, 23953136)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Maldives",
"Male", 300, 34**06)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Mali", "Bamako",
1240000, 122**529)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Malta",
"Valletta", 316, 398534)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Marshall
Island", "Majuro", 181, 59071)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Mauritania",
"Nouakchott", 1030700, 3086859)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Mauritius",
"Port Louis", 2040, 1230602)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Mexico",
"Mexico City", 1972550, 106202903)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Micronesia,
Fed", "Palikir", 702, 108105)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Moldova",
"Chisinau", 33843, 4455421)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Monaco",
"Monaco", 2, 32409)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Mongolia",
"Ulan Bator", 1565000, 27**272)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Morocco",
"Rabat", 446550, 32725847)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Mozambique",
"Maputo", 801590, 19406703)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Myanmar
(Burma)", "Rangoon", 678500, 42909464)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Namibia",
"Windhoek", 825418, 2030692)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Nauru",
"Yaren", 21, 1304<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Nepal",
"Kathmandu", 140800, 27676547)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Netherlands",
"Amsterdam", 41526, 164074**)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("New Zealand",
"Wellington", 268680, 4035461)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Nicaragua",
"Managua", 129494, 5465100)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Niger",
"Niamey", 1267000, 11665937)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Nigeria",
"Abuja", 923768, 12877198<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Norway",
"Oslo", 324220, 4593041)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Oman", "Muscat",
212460, 3001583)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Pakistan",
"Islamabad", 803940, 162419946)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Palau",
"Koror", 458, 20303)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Panama",
"Panama City", 78200, 303**50)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Papua New
Guine", "Port Moresby", 462840, 554526<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Paraguay",
"Asuncion", 406750, 6347884)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Peru", "Lima",
1285220, 2792562<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Philippines",
"Manila", 300000, 87857473)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Poland",
"Warsaw", 312685, 38635144)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Portugal",
"Lisbon", 923**, 10566212)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Qatar",
"Doha", 11437, 863051)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Romania",
"Bucharest", 237500, 22329977)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Russia",
"Moscow", 17075200, 143420309)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Rwanda",
"Kigali", 26338, 8440820)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("St. Kitts
and N", "Basseterre", 261, 3895<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("St. Lucia",
"Castries", 616, 166312)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("St. Vincent
and", "Kingstown", 389, 117534)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Samoa",
"Apia", 2944, 177287)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("San Marino",
"San Marino", 61, 28880)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Sao Tome
and Principe", "Sao Tome", 1001, 187410)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Saudi Arabia",
"Riyadh", 1960582, 26417599)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Senegal",
"Dakar", 196190, 11126832)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Serbia and
Mont", "Belgrade", 102350, 1082**75)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Seychelles",
"Victoria", 455, 8118<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Sierra Leone",
"Freetown", 71740, 6017643)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Singapore",
"Singapore", 693, 4425720)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Slovakia",
"Bratislava", 48845, 5431363)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Slovenia",
"Ljubljana", 20273, 2011070)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Solomon
Islands", "Honiara", 28450, 538032)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Somalia",
"Mogadishu", 637657, 85**629)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("South Africa",
"Pretoria", 1219**2, 44344136)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Spain",
"Madrid", 504782, 40341462)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Sri Lanka",
"Colombo", 65610, 20064776)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Sudan",
"Khartoum", 2505810, 40187486)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Suriname",
"Paramaribo", 163270, 438144)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Swaziland",
"Mbabane", 17363, 1173900)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Sweden",
"Stockholm", 449964, 9001774)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Switzerland",
"Bern", 41290, 7489370)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Syria",
"Damascus", 185180, 18448752)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Taiwan",
"Taipei", 35980, 22894384)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Tajikistan",
"Dushanbe", 143100, 7163506)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Tanzania",
"Dar es Salaam", 945087, 36766356)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Thailand",
"Bangkok", 514000, 65444371)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Togo", "Lome",
56785, 5681519)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Tonga",
"Nuku'alofa", 748, 112422)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Trinidad
and To", "Port-of-Spain", 5128, 1088644)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Tunisia",
"Tunis", 163610, 10074951)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Turkey",
"Ankara", 780580, 69660559)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Turkmenistan",
"Ashgabat", 488100, 4952081)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Tuvalu",
"Funafuti", 26, 11636)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Uganda",
"Kampala", 236040, 27269482)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Ukraine",
"Kyiv (Kiev)", 603700, 47425336)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("United Arab
Emi", "Abu Dhabi", 82880, 2563212)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("United Kingdom",
"London", 244820, 60441457)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("United States",
"Washington, D.C.", 96290**, 295734134)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Uruguay",
"Montevideo", 176220, 3415920)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Uzbekistan",
"Tashkent", 447400, 26851195)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Vanuatu",
"Vila", 12200, 205754)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Vatican
City", "", 0, 921)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Venezuela",
"Caracas", **2050, 25375281)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Vietnam",
"Hanoi", 329560, 83535576)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Western
Sahara", "", 266000, 27300<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Yemen",
"Sana ", 527970, 20727063)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Zambia",
"Lusaka", 752614, 11261795)<br>
 INSERT INTO crsCountry(country, capital, area, population) VALUES ("Zimbabwe",
"Harare", 390580, 12746990)<br>
ENDPROC<br>
</font>
</p>
<br />
<hr />
This weblog is sponsored by <a href="http://www.sweetpotatosoftware.com">SweetPotato
Software, Inc.</a><p><div class="blogdisclaim"><a href="http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,8f61649c-c076-4420-b949-07ae7b32ac54.aspx">This post originally appeared on an external website</a></div>

Collapse -

Goodbye Drew

by craig In reply to The SPS Weblog

<p>
<img src="http://www.sweetpotatosoftware.com/SPSBlog/content/binary/drewandbrent.jpg" border=0>
</p>
<p>
<font size=3><font color=#000000><font face="Times New Roman">I offer my sincerest
condolences to Drew's family and friends for their loss. I wish there were more that
I could say or do. Truly a sad day. - Craig</font></font></font>
</p>
<br />
<hr />
This weblog is sponsored by <a href="http://www.sweetpotatosoftware.com">SweetPotato
Software, Inc.</a><p><div class="blogdisclaim"><a href="http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,3a67956b-442a-488f-ba8d-c3c9340b9972.aspx">This post originally appeared on an external website</a></div>

Collapse -

Visual FoxPro SP1 Available via Public Beta

by craig In reply to The SPS Weblog

<p>
Here's a chance for community members to pitch in and improve our beloved product.
Get your copy of the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=1C06E35D-10A2-4A05-84FC-495B3A73ECF7&displaylang=en">Visual
FoxPro SP1 Beta</a> and post your bug findings on the <a href="http://www.universalthread.com">Universal
Thread</a>. The actual service pack is due out in early December of this year, so
there isn't much time to make sure that bugs that are still in the product get addressed.
I encourage every member of the VFP Community to at least make an effort to find and
report bugs based on their findings in the SP1 beta. Not only will your efforts potentially
help improve the product, but they can also serve to show MS that Public Betas are
the way to go with Visual FoxPro. I'll be over here doing my part.
</p>
<br />
<hr />
This weblog is sponsored by <a href="http://www.sweetpotatosoftware.com">SweetPotato
Software, Inc.</a><p><div class="blogdisclaim"><a href="http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,ee827a83-f90b-4a3e-8c80-10e9781ff067.aspx">This post originally appeared on an external website</a></div>

Collapse -

October 2005 - Letter from the Editor

by craig In reply to The SPS Weblog

<p>
The latest <a href="http://msdn.microsoft.com/vfoxpro/letters/">Letter from the Editor</a> has
been posted by Ken Levy. They've put the <a href="http://foxcentral.net/microsoft/WhatsNewInVFP9.htm">What's
New in Nine</a> book online, and it seems I've been made a Visual FoxPro MVP.
Sorry I don't have longer to bore you all with an overly egotistical acceptance speech,
but I'm up to my neck in alligators at this end and as I recently told Bob
Kocher, if I don't stay buried in code I am liable to be eatin. Thanks to MS and the
VFP Community for the increasing prevalence of Visual FoxPro-related content
and resources online, and to whoever put my name in the hat and ultimately voted me
into the MVP fold. Now, if you'll excuse me I gotta go tend to some gators.
</p>
<br />
<hr />
This weblog is sponsored by <a href="http://www.sweetpotatosoftware.com">SweetPotato
Software, Inc.</a><p><div class="blogdisclaim"><a href="http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,73f2c4cd-b759-4f3f-8ef8-251daf5f7a37.aspx">This post originally appeared on an external website</a></div>

Collapse -

SPS Blog Referral Links Fixed

by craig In reply to The SPS Weblog

<p>
To anyone who was having problems accessing this site via a hyperlink, my apologies.
An errant referral blacklist was causing dasBlog to generate 404 errors when accessed
via a referral link on another site. Basically all hyperlinks, including the ones
from the SweetPotato Software site were down.
</p>
<p>
I first became aware of this problem by a post Vincent made over on the <a href="http://www.universalthread.com">Universal
Thread</a> and I spent a portion of yesterday tweaking this Blog and the server
trying to figure out what the problem was (which is why those of you that are using
news aggregators probably ended up with double entries for all the previous blog entries
- sorry about that). I was nearly to the point of reinstalling IIS on the server when
I decided to post a question regarding my problems over on <a href="http://www.tek-tips.com">Tek-Tips</a>.
Wullie, a Tek-Tips member, pointed out that the only thing that would be different
when using a hyperlink as opposed to accessing it via a news aggregator or putting
the URL in the address bar directly (both of which still worked) would be the referral.
So based on Wullie's suggestion I played with the settings for the referral blacklists
and the problem was solved in a matter of minutes. Wullie saved me countless hours
of work and left me wondering why I hadn't thought of that.
</p>
<p>
In any event, the SPS Blog referral links are now working, and my sincerest apologies
to any readers who experienced a problem accessing the site. Once again the online
forums have proved invaluable to me.
</p>
<br />
<hr />
This weblog is sponsored by <a href="http://www.sweetpotatosoftware.com">SweetPotato
Software, Inc.</a><p><div class="blogdisclaim"><a href="http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,01cdd6bc-5188-4001-9d51-c53173da7402.aspx">This post originally appeared on an external website</a></div>

Collapse -

Alex Feldstein awarded MVP 5th year in a row

by craig In reply to The SPS Weblog

<p>
Alex Feldstein has received the <a href="http://www.bloglines.com/blog/AlexFeldstein?id=534">MVP
Award for a 5th consecutive year</a>. Congratulations Alex! You definitely deserve
this award and please know that your contributions to the Visual FoxPro Community
are appreciated by far more than just Microsoft. Thank you for all your contributions
over the years and keep up the great work.
</p>
<p>
For anyone who may be unfamiliar with Alex (doubt there are many who haven't heard
of him or seen his work somewhere online) head on over to <a href="http://www.feldstein.net/">http://www.feldstein.net/</a>
</p>
<br />
<hr />
This weblog is sponsored by <a href="http://www.sweetpotatosoftware.com">SweetPotato
Software, Inc.</a><p><div class="blogdisclaim"><a href="http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,c8da4524-eaf1-438a-be13-93df1694eb7a.aspx">This post originally appeared on an external website</a></div>

Collapse -

Southwest Fox 2005

by craig In reply to The SPS Weblog

<p>
Other than having to run across the entire breadth of the Denver airport in ten
minutes to make my final connection to Phoenix, the trip down here was good. Though a
few other hurdles and minor inconveniences were waiting for me when I got here...
I won't bore you with the details of a car reservation debacle or the withdrawals
I was going through due to a lack of internet connectivity, I'll just say that I am
glad to be here, that the lobby of the Sheraton hotel has excellent wifi which they
are kindly allowing me to use at less than $10 per day and that I almost feel settled
in and ready for the festivities to start.
</p>
<p>
I'm not exactly sure yet how this whole thing is going to unfold but I will be <a href="http://www.utcoverage.com/Southwest/2005/">reporting
for the Universal Thread</a> starting tomorrow. So, please look there for my comments
and good Southwest Fox conference information as well as pictures (I brought my digital
camera and may even record some video if the mood strikes me). This will probably
be my only blog entry while down here as I don't want to take away from the value
of the content that I will be posting on the UT and I probably won't have much left
to say about the goings on down here once I am done typing up my daily report anyways.
Anything I posted here would be redundant I guess.
</p>
<p>
In any event, I am here and I expect to have my socks blown off by some of the other
presenters and the MS representatives that are attending... and hopefully I can do
the same. I am really fired up about this conference, about the content that is going
to be presented, and about the attendees/speaker list that has been created for it...
this conference should be awesome and perhaps a bit of a kick-off for things to come
in the next couple years for VFP. Have you ever had that feeling that things were
just about to get really interesting? If so, you know how I feel.
</p>
<p>
Well, I got a lot of stuff to do and get done now that I am online, so if you'll excuse
me. I'll be back on that UT page tomorrow with my first report from Southwest Fox
2005!
</p>
<br />
<hr />
This weblog is sponsored by <a href="http://www.sweetpotatosoftware.com">SweetPotato
Software, Inc.</a><p><div class="blogdisclaim"><a href="http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,69d172c4-dd48-427f-88a8-e8c921c2c0a1.aspx">This post originally appeared on an external website</a></div>

Back to After Hours Forum
94 total posts (Page 5 of 10)   Prev   03 | 04 | 05 | 06 | 07   Next

Related Discussions

Related Forums