Monday, March 18, 2019

Minimizing West Wind HTML Help Builder Uploads

I’ve been using West Wind HTML Help Builder for about twenty years (it’s hard to believe it’s been that long, but I checked) and still love it as much as ever. I looked at a lot of HTML Help generating tools over the years and it’s still the best one in my opinion.

One of the features I love about it is the ability to generate not just a CHM file for a desktop application but also HTML files for a web application or to post the documentation on a web site. For example, we provide online versions of the developer and end-user documentation for our products (for example, for the Stonefield Query report designer), both so prospective customers can review it before they buy and so we can point customers asking support questions to the relevant topic with a simple URL instead of “open the help, then navigate to …”.

At a recent conference, I was asked if there’s a way to reduce the number of files needed to be deployed to a web site to provide online help. I used to deploy the files directly from the project folder so I wrote some code that uploaded only those files that are actually required because there are a ton of files that aren’t. Fortunately, I don’t need to do that anymore because a new feature in Help Builder does this automatically: after building the help, click the Copy to Folder button to create a deployment folder with only the required files, then use something like FileZilla to upload the contents of that folder to the web site. FileZilla and other FTP programs are typically faster than homegrown code like mine or the code used for the FTP Web Upload function in Help Builder, likely because they use multithreading to upload several files or chunks of files at once rather than one at a time.

However, even the Copy to Folder function copies a few more files than necessary. Here are files you can delete from the deployment folder before uploading (which of course you could automate with a PRG or PowerShell script):

  • bmp: any images for topic types you aren’t using, such as classcontructor.png. Typically, the only ones I keep are folder.png, header.png, index.png, topic.png, and whatsnew.png. Also, the contents of the image subdirectory of the bmp folder aren’t used anywhere and can be deleted.
  • html: this folder is empty and can be ignored.
  • images\images: the only file in this folder is wwhelp.png and it doesn’t appear to be used anywhere (there’s another copy of this file in images, which is used in the various HTML documents unless you customize the templates to not use it as I have).
  • templates\scripts: ww.jquery.js: this is the unminified version of ww.jquery.min.js.
  • templates\scripts\bootstrap\dist\css: bootstrap.css, bootstrap.css.map, bootstrap-theme.css, bootstrap-theme.css.map: these are unminified versions of other files or map files which aren’t needed.
  • templates\scripts\bootstrap\dist\js: bootstrap.js, npm.js: unminified or unneeded files.
  • templates\scripts\highlightjs\styles: any css file you aren’t using, as determined by the Theme setting in the Content Editor page of the Options dialog. I typically use vs2015.css in my projects so I delete the rest.
  • templates\scripts\jquery: jquery.js, jquery.min.map: unminified or map files.

Removing unused files saves about 1.5 MB, which may not sound like much in these days of large hard drives, but that shaves a bit of time off the upload process.

Wednesday, March 13, 2019

New FoxMock Project on VFPX

Christof Wollenhaupt’s FoxMock project is now available on VFPX. FoxMock is an object mocking framework that works with testing tools such as FoxUnit to make it easy to define objects without having to create specific test classes. Christof discussed FoxMock in one of his sessions at Southwest Fox 2012.

Tuesday, February 19, 2019

Southwest Fox 2019 Call for Speakers

We've issued the Call for Speakers for Southwest Fox 2019. If you are interested in presenting, please read the document referenced in that page and consider submitting sessions via the Geek Gatherings Submission Web site.

Thursday, January 24, 2019

Update to VFPX Upsizing Wizard

I released an update to the VFPX Upsizing Wizard today. It has a couple of changes:

  • It handles large tables better. The bulk XML load process, which is by far the fastest way to upsize the records in a table, creates an XML file using CURSORTOXML and then uses the SQLXML COM object to process that file. With a large table, the XML file could be more than 2 GB, which causes CURSORTOXML to fail, so the Upsizing Wizard reverts to using a slower mechanism. In this update, the bulk XML load routine now processes large tables in batches so the XML file never gets bigger than about 1 GB.
  • It renames the built-in tables Keywords.dbf, ExprMap.dbf, and TypeMap.dbf to have an underscore prefix to avoid conflict with tables using those names in the database to be upsized (this was an issue someone ran into).

Note: since SQL Server 2008, the SQLXML module that supports bulk XML load is no longer automatically installed, so if you find bulk XML load isn’t being used, it may be because the COM object doesn’t exist. In that case, download it from https://docs.microsoft.com/en-us/sql/relational-databases/sqlxml/what-s-new-in-sqlxml-4-0-sp1?view=sql-server-2017.

Tuesday, October 23, 2018

Southwest Fox 2018

Once again, Southwest Fox 2018 exceeded all of my expectations. Everyone seemed really excited about the sessions and being back to meet old and new friends. I met a couple of people who I only knew online so it was nice finally meeting them in person. And of course there’s nothing like hanging out with old friends, some of whom I’ve known for more than 20 years.

I almost lost my voice before the start of one of my sessions but fortunately Christof Wollenhaupt gave me a package of Fisherman’s Friend, which those in attendance can attest worked quickly and amazingly well. I’m taking Christof’s suggestion and keeping some in my backpack from now on just in case.

Congratulations to the 2018 VFPX Administrators Award winner Tore Bleken for all of the work he did on documentation for Thor, IntelliSenseX, and Win32API.

We announced dates for next year's conference already: October 24 - 27, 2019. I hope to see you in Phoenix next year!

Update: the keynote presentation can now be viewed online.

Thursday, September 27, 2018

New VFPX Project: Log4VFP

I released a new project on VFPX this week: Log4VFP. Log4NET is a powerful diagnostic logging library for .NET applications. Log4VFP provides a VFP wrapper for Log4NET, allowing you to add advanced logging features to your VFP applications. I’ll be showing it in my VFPX 2018 Edition session at Southwest Fox next month.

Wednesday, July 25, 2018

Southwest Fox 2018: Early-bird deadline approaches

Simple quick reminder: save $50 by registering before the early-bird registration deadline next Tuesday, July 31st.

If you still need to register, please head over to the registration Web site today: http://geekgatherings.com/Registration

Every registered attendee gets admission and white papers to all regular conference sessions. Don't miss this chance to learn from the best and mix with your peers.

See you in October!

Friday, July 06, 2018

Southwest Fox 2018 is a go!

We have some good news to share. Thanks to the support of the Visual FoxPro community, a very generous supporter who made a large donation, and our many sponsors, Southwest Fox 2018 will proceed as planned October 18-21, 2018 in Gilbert, AZ.

We really appreciate all the support people have shown for the conference with early registrations! That said, the decision comes with a serious calculated risk because we are still many registrations short of the breakeven point. Please continue to spread the word to your colleagues, clients, user groups and anywhere else Visual FoxPro is spoken.

If you haven't yet registered, there's still room for you. Register before August 1st for a $50 early-bird discount.

Thursday, June 28, 2018

The Fox Show #83

Listen to Andrew MacNeill’s FoxShow podcast featuring Rick, Tamar, and I talking about Southwest Fox 2018.

Monday, June 25, 2018

Southwest Fox 2018 Super-Saver Deadline Approaches

Registration for Southwest Fox 2018 has been open for a few weeks and there’s less than a week until the Super-Saver Registration deadline. If you register before the end of June, you save $125 and we’ll throw in a pre-conference session worth $99. Not only that, but you’ll be entered in the drawings for a scholarship that will reduce your cost even more and a license of Stonefield Query SDK, a $2,500 value. Check out the speakers and topics on the conference website.

Please beat the rush so we still have some fingernails left when July begins! No need to wait, we won’t charge your card or cash your check until the middle of July!