Tuesday, August 31, 2004

My Web Project Adventure

I have finished my part of web application project. It is a Online Campus System. The modules I handled are :
  1. Exercise / Examination - create, edit, delete and view exercise / exam details. It allows objective and fill in the blank type of question.
  2. Exam - Participate on particular exercise /exam. Answers would be verified by system automatically and show result. Students' level would be upgraded if he pass particular exam.
I was using VFP 8 OLEDB to access VFP table from ASP. It works quite well, except I failed to delete records from table exam - "Trigger Failed in ... ". In this table, I have stored procedure to do cascade delete. This stored procedure is generated by TaxRI.

At first, I suspected that exam has been participated by any student (business rule). However, that is nobody. Also, I can delete that exam from VFP command window without error. I tried to get helps from UT forum, Foxite.com, Tek-Tips.com, FoxAdvisor forum and also search from Yahoo and Google. I just can't get any related information.

After spent few hours for research without any solutions, I decided to write a VFP COM DLL which only contains code to delete record as workaround. Here I get another error message - "Operation is invalid for a Memo, Blob, General, or Picture field". My God!!!! What is that??? My Primary Key is an integer field. Is it problem of table structure? Since I use VFP9 to create the table, but I didn't use any new VFP9 field type. I tried to rebuild my tables but still the same.

Finally, I found that the parameter passed from ASP is object data type. Huh? Why object? Request.QueryString("myField") alway return string, doesn't it? Thank you for article Using VFP COM components with Active Server Pages by Rick Strahl.

In fact, in order to pass value of Request.QueryString() to the world outside of ASP, we got to Request.QueryString("myField").Item(). I changed my ASP code and it works.

Here is the database and ASP code to re-produce the error. Pls feel free to download and try it. If you found the cause, pls comments. Thank you.

After this project, I really feel that ASP.NET is the tool should go for web development. It provides various web control, support OOP for re-use. Design Web UI and writing ASP scripting language is really painful and time consuming.

I really hope VFP supports web development natively. Then, that may less headache for VFP developer. Alternately, there are some third party VFP Web Development framework such as, WebConnect, ActiveVFP, Voodoo, and Active FoxPro Pages which have very good comments from VFP community.

Saturday, August 28, 2004

WinFS, no more in Longhorn

MS decided to drop WinFS technology from upcoming version of Windows codename - Lognhorn to meet final release date in 2006. Addition, Avalon and Indigo components would be available for Window XP and Window Server 2003.

Full article from eWeek

[Source from Craig's Blog]

FAQ published in VFP August Monthly Letter
Q: How is VFP related to Longhorn?
A: VFP 9.0 is scheduled to be released in late 2004, and the schedule for Longhorn is not announced yet. We can only discuss how VFP relates to Longhorn once Longhorn is near complete and close to being released.

What would you think of the answer by Ken?

Whil is back

According to Hentzenwerke's newsletter, Whil will be coming back to Fox Development.

2. A couple of years ago I toured the country, visiting conferences and user groups, talking about some new opportunities for Fox developers. I had two primary themes: (1) Linux's continued maturity was going to result in acceptance on the desktop, which was going to lead to demand for Linux application developers, and (2) Microsoft's ongoing negligence towards marketing Fox outside of the Fox community meant a decline in the number of Fox developers, which in turn would result in long-term opportunities for maintenance of Fox apps. I indicated that at some point in the future, I'd be jumping back into the development gig.

And that time is September 1. If you're looking for help with Fox development, or if you're getting started with Linux apps, see my new development website at www.whilhentzen.com. If you're looking for someone closer to home to help with your Fox needs, check out our list of authors - many of them are available for part or full time consulting. Or give me a holler and I'll see if I can refer someone nearby.

Wednesday, August 25, 2004

TDD with FoxUnit Webinar

TTD with FoxUnit WebInar is recorded and available to download. The file size is about 300MB.

Monday, August 23, 2004

Conversion!

Are you planning to convert your VFP application to .NET to have better "future" or advanced technology?

VFP Conversion is where you should look at. You could find alot of .NET, VFP vs .NET and VFP related articles. You could also get consultant service from them (site owner) to convert VFP application to .NET.

OTOH, if you have spent alot of time on developing .NET application but not getting result as you expected, and plan to give up. www.efgroup.net/dotnetconversion is willing to help to convert it to VFP.

Has Conversion become trend or new opportunity for IT industry? :))

Friday, August 20, 2004

Why not migrate to .NET?

Rick Strahl blogged Why West Wind Html Help Builder is NOT a .NET Application. This article provides very good information on what considerations should be taken if you are planning to migrate your existing application (ex. VFP written) to .NET application.

What other peoples do, doesn't mean you should do it also ...

Thursday, August 19, 2004

The prove of VFP caching data

VFP caches data whenever it can to have light of speed performance is not something new to VFP developer.

That day when I was doing maintenance on my client database, I used my *KISS* table recovery steps to repair tables.
SELECT * ;

FROM myTable ;
WHERE .T. ;
INTO CURSOR myCursor NOFILTER

SELECT myTable
ZAP
APPEND FROM DBF("myCursor")
One of the table contains 500,000 records with size ~100MB.
Everything worked fine beside of I got to wait for about a minute in order to close the table. I saw WinXP networking monitor was showing something is acrossing the network. I think VFP is *flushing* data back to server.

The VFP caching is good in general, however it causes delay update. Which means you may not see changes made by another user or application immediately. This limitation actually causes my custom Data Replication program fails to get the latest data sometime. Turning Write Cache off, FLOCK() and issue FLUSH after TABLEUPDATE() are not alway help in my experience. My current workaround is asking my clients to run Data Replication when their shop open every day before any sales.

Thank you FoxTeam to enhance FLUSH command and SET REFRESH option in VFP9. According to documentation, these two enhancements should solve my problems above. However, I dare to test it in my client machine. (It never happen in my office's machines)

Wednesday, August 18, 2004

ASP code does not execute!

Anyone who is using HTML editor such as FrontPage to create and link web pages, make sure editor use "http://" in url path, but not "file://". Otherwise, ASP code will not be parsed or run.

How much should I charge?

Do you ever ask yourself a question - how much should you charge your customer for your software?

Eric Sink, founder of SourceGear has an article discussed about issues to consider when making decisions about the price of software products. Check out more at Eric's webblog.

VFP August letter is online

Ken Levy has posted his August Letter - Letter from the Editor

Tuesday, August 17, 2004

FoxPro DevCon in Philipines

It is great to hear that Philipines FoxPro user groups are working on FoxPro DevCon.

Check out more discussion at Foxite.com.
Devcon Philippines
Attention: Devcon Philippines (update Aug14)

Monday, August 16, 2004

VFP news in SDTimes

Microsoft Updates Visual FoxPro

Can anyone explan what does this message mean?
The return on marketing just isn’t there the way it is for Visual Studio.

Saturday, August 14, 2004

My workaround to Retrieve AutoInc Number using OLEDB

I am using ADO OLEDB to manipulate VFP8 table in ASP. I am looking a way to get last AutoInc Number after insert record to master table, and put it to child table as foreign key.

A new VFP9 function GettAutoIncValue() is what I am looking for. But, OLEDB for VFP9 is not available yet. For workaround, I give up the use of AutoInc Number data type in my table. I wrote my custom NewID() function and call it from ASP before I insert any master record.

Anybody has any other suggestion? Pls advise.

Book : Test Driven Development By Example

I was shopping at a local book store few days ago. I found the book Test Driven Development By Example in bookshelf. I have a look on it and check out the price. It is not too expensive, only RM 87.90 (~$23 US).

I told my friend who is working in that book store about the book, and I planned to buy it soon. She called me just now. She has bought it for me, and get 20% discount. Oh, thank you for her help. But, I didn't ask her to buy now !!!! :P

Anyway, I would get the book from her and place it to my bookshelf queue which is already fulled. I think I got to get new bookshelf. :) Hope I can finish them soon.

WinXP SP2 Installed

WinXP SP2 has been installed into my PII 266 machine. It took 1.5 hours to finish the installation. It didn't blaim my Windows is privated copy anymore... :P After system rebooted, Windows shown Security Centre at startup. Everything seem working fine, my norton antivirus was detected except virus definition is not detected correctly. It prompted "unknown virus definition". Since my Norton Antivirus LiveUpdate is set automatic, I just turned off "monitoring of antivirus" option in Security Centre.

After WinXP SP2 installed, I found that my system become abit slower. As many peoples said that MSN messager is not working well after that. It doesn't happen to mine. :)

OTOH, my colleague is not as lucky as me. His machine will be rebooted automatically if he try to launch Security Centre. He is looking for the cause. Anybody has any ideas, pls advise!

Thursday, August 12, 2004

Download FoxUnit 1.0 Official Release now!

Official FoxUnit Testing framework 1.0 is released and available to download, as promised. Let's download and try it. Post any bugs, problems and suggestions to Dicussion forum.

I first look at TDD from an article of FoxPro Advisor, but I never try it. I think I would get a copy of Test Driven Development: By Example by Kent Beck to get better understand of TDD approach. Anyway, I got to finish those books in my bookshelf first. Othwerwise, I would be like a lady, just buy but not actually use it. :P

I'll download FoxUnit and try it tonight. cheers ...

MSDN Article : ASP.NET 2.0 Internal

Thank you Rick Strahl for posting link to this great article.

This article doesn't show us how to code in ASP.NET 2.0. Instead, it explains what changes are made in ASP 2.0 compared to ASP 1.1. It also further explains the differences of work flow of both version of ASP.NET, reasons of changes, advanstages of new changes and how to gain benefit from them.

Personally, I feel more impress on new caching techniques. It allows us to cache part of our web page instead of whole page.

Beside, the new compilation options give us alot of flexibility on deploy our web application. One of the new options - Pre-Compilation which allow us to secure our source code by deploy only DLL assemblies. It reminded me a old story.

Two years ago, while .NET was still new to most of us (especially for me, and it still strange to me since I never develope any ASP.NET yet. I learn it as practices). I talked to an ISP vendor about hosting our ASP.NET web services. The ISP vendor told me that they support ASP.NET. However, they don't allow us to put any DLL files on their server for security reasons.

As what I know, VS.NET will compile our code to DLL assemblies in \bin directory. We have to ship these DLL files together either. I used to get helps from forum and local Microsoft speaker, they give me the same answer - that dll files is required. So, what does ISP vendor meant for the statement above? Or, are they expecting us to write code-inline?

Back to pre-Compilation of ASP.NET 2.0, any ISP vendor support this feature, allow us to deploy pre-compiled DLL assemblies to their web host server?

Wednesday, August 11, 2004

WinXP SP2

WinXP SP2 is available to download finally. I am downloading it now. It is a HUGE file - 272MB, larger than whole VFP application. Seem like there are quite alot of modification done to enhance Windows security.

Before this, I tried to install WinXP SP1 to my machine, but not successful. My WinXP is legal copy, which come with MSDN subscription CD (ISV Program). How come SP1 *think* my windows is a privated copy? Or, Microsoft send privated copy to ISV partner? :P

Hope SP2 will works in my machine.

Sunday, August 08, 2004

FoxPro Wiki has been hacked !

Hey, it is a great news! Why? At least Fox Wiki is well known enough otherwise these hackers won't hack it, right? :P

Anyway, Steven Black will be busy to fix the web site. Hope Owns Team (Hacker) didn't damage the FoxPro Wiki database.

I will post the screen shot of hacked FoxPro Wiki web site soon. Come back on tomorrow.

Updated : Screenshot here

Rich Client Application on Web

Recently, most users are complaining the poor user experience of web application today. They want the power of window applications work through the web.

The next version of Windows, code named Longhorn (XAML) will support this feature. However, It would only be available in 2006 - 2007.

If you need this feature but can't wait for Longhorn, you may take a look on some others OSS projects :

Thinlet is a GUI toolkit, a single Java class, parses the hierarchy and properties of the GUI, handles user interaction, and calls business logic. Separates the graphic presentation (described in an XML file) and the application methods (written as Java code). Thinlet runs with Java 1.1 (browsers' default JVM) to 1.4, Personal Java, and Personal (Basis) Profile. Swing isn't required.

Another one is XUL# : XUL (pronounced "zool") is a technology developed by the Mozilla development team. XUL is an XML based user interface markup language. It allows you to create GUIs with the same ease as one would create a web page.

[Original posted by Serena-Yeoh]

I have tried Thinlet demo. It is really cool! However, some of the demos is not work properly and cause "hang". I got to close all of my browser instances to continue. :(

Saturday, August 07, 2004

VFP 9.0 Beta Applications Refresh

MS VFP Team has posted a download file that contains of various updates/fixes of VFP9 Beta components, source code libraries which reported by VFP community. It also introduces some new FFC. One of them is GDI+ FFC as blogged. The download file size is about 3MB.

You may not see any news about this yet in MS VFP homepage. I think it would be mentioned in VFP August letter.

Thank you for Sergey Berezniker to post download link to UT forum.

Download it now!

Update : Refer to Ken Levy's blog for more info.

Thursday, August 05, 2004

Meme propagation in blogspace

This posting is a community experiment that tests how a meme, represented by this blog posting, spreads across blogspace, physical space and time. It will help to show how ideas travel across blogs in space and time and how blogs are connected. It may also help to show which blogs (and aggregation sites) are most influential in the propagation of memes. The dataset from this experiment will be public, and can be located via Google (or Technorati) by doing a search for the GUID for this meme (below).

Please join the test by adding your blog (see instructions, below) and inviting your friends to participate -- the more the better. The data from this test will be public and open; others may use it to visualize and study the connectedness of blogspace and the propagation of memes across blogs.

The GUID for this experiment is:

as098398298250swg9e98929872525389t9987898tq98wteqtgaq62010920352598gawst

The above GUID enables anyone to easily search Google or other search engines for all blogs that participate in this experiment, once they have indexed the sites that participate, which may take several days or weeks. To locate the full data set, just search for any sites that contain this GUID.

Anyone is free to analyze the data of this experiment. Please publicize your analysis of the data, and/or any comments by adding comments onto the original post (see URL above). (Note: it would be interesting to see a geographic map or a temporal animation, as well as a social network map of the propagation of this meme.)

INSTRUCTIONS

To add your blog to this experiment, copy this entire posting to your blog, and then answer the questions below, substituting your own information, below, where appropriate. Other than answering the questions below, please do not alter the information, layout or format of this post in order to preserve the integrity of the data in this experiment (this will make it easier for searchers and automated bots to find and analyze the results later).

REQUIRED FIELDS (Note: Replace the answers below with your own answers)

(1) I found this experiment at URL: http://www.bloglines.com/blog/AlexFeldstein

(2) I found it via "Newsreader Software" or "Browsing the Web" or "Searching the Web" or "An E-Mail Message": Browsing the Web

(3) I posted this experiment at URL: http://ckkiet.blogspot.com

(4) I posted this on date (day/month/year): 05/08/2004

(5) I posted this at time (24 hour time): 12:06

(6) My posting location is (city, state, country): Kuala Lumpur, WP, Malaysia

OPTIONAL SURVEY FIELDS:

(7) My blog is hosted by: Blogger.com

(8) My age is: 27

(9) My gender is: Male

(10) My occupation is: Sofware Developer

(11) I use the following RSS/Atom reader software: http://blogger.com/

(12) I use the following software to post to my blog: http://blogger.com/

(13) I have been blogging since (day, month, year): 19/06/2004

(14) My web browser is: FireFox 0.9.2

(15) My operating system is: Windows XP

Wednesday, August 04, 2004

INSERT ... SELECT SQL and APPEND FROM

I first use INSERT ... SELECT SQL statement in my application to append records from [cursor] A into [cursor] B. Before this, I used APPEND FROM for purpose mentioned above. Unfortunely, I got an error
Error no. : 2119
Error Message : The number of SELECT values doesn't match the number of INSERT columns.
The error message above is very clear. The number of resultset columns to be inserted MUST EXACTLY same with target cursor. Anyhow, I still go thru VFP help file to get *more* information. So dissapointed, error 2119 is not listed in VFP help file. Also, help topic of INSERT...SELECT doesn't mention about this *feature* either. (at least I didn't see any)

Therefore, I got to use APPEND FROM. Suddenly I make up my mind to test the performance of INSERT ... SELECT and APPEND FROM. Guess what result do I get in my testing?

APPEND FROM is 2X faster than INSERT ... SELECT statement.

What make APPEND FROM works faster?
Why does INSERT...SELECT be implemented to force both source and target cursor must have same columns number? Is it so to meet ANSI-92 SQL standard?

Sunday, August 01, 2004

Visual FoxPro Books in my Country.

I had been looking for VFP books such as What's new in VFP8 in my country - Malaysia for five years. I just can't get any since no book stores here know where to get VFP books. Even though I have told them about Hentzenwerke, but they just failed to get it. Therefore, usually I would purchase them from Amazon.com, or e-book directly from Hentzenwerke.

Yesterday, I saw the book 'Visual FoxPro to Visual Basic.NET' at one of local book store. Therefore, I simply key in keyword 'Visual FoxPro' at another local online book store search service for check pricing. So suprisingly, I got other VFP books found - not one but four.

1. What's New in Visual Foxpro 8.0(PAP)
2. Webrad : Building Database Applications on the Web With Visual Foxpro and Web Connection
3. .Net for Visual Foxpro Developers(PAP)
4. What's New in Visual Foxpro 7.0(PAP)

Update : 5. The Software Developer's Guide, 3rd Edition

In fact, I was not too suprise to see 'Visual FoxPro to Visual Basic.NET' here because it is .NET related and published by SAMS. However, VFP books from Hentzenwerke are available here is never in my expectation. It is a another good news for this year beside of enhancements of VFP9. Good start.

As we know, Hentzenwerke has worked very hard to get VFP books delivered outside of United State. Keep on your great Job! Thank you.

FoxUnit 1.0 to be released on 10th, August 2004

FoxUnit, Test Driven Development framework written in VFP by Vision Data Solution (VDS). It could be used seperately or it has been integrated into Visual MaxFrame Professional (VMP), a Visual FoxPro Development Framework also from same company.

You could download the latest released for free now.