We don’t want you to miss all the details about the conference we are sharing over the next couple of weeks. We want you to have a chance to read white papers and download the examples once we release them before the conference starts. We’d hate to see you miss the opportunity to get a head start on all the goodies. Go get registered! Now, really, don’t waste another minute. Here is the link: http://geekgatherings.com/Registration
Wednesday, September 30, 2020
Time to register for Virtual Fox Fest
We don’t want you to miss all the details about the conference we are sharing over the next couple of weeks. We want you to have a chance to read white papers and download the examples once we release them before the conference starts. We’d hate to see you miss the opportunity to get a head start on all the goodies. Go get registered! Now, really, don’t waste another minute. Here is the link: http://geekgatherings.com/Registration
Friday, September 04, 2020
Virtual Fox Fest 2020: GeekWear and Speaker Changes
Unfortunately, because of family matters, Cathy Pountney had to withdraw from presenting this year. Fortunately, John Ryan offered to present "Visual FoxPro Advanced and VFP C++ Compiler: a New Lease of Life for VFP".
Wednesday, July 15, 2020
Virtual Fox Fest 2020: Speakers, Sessions, and Registration
Friday, May 29, 2020
Virtual Fox Fest 2020 Speaker Deadline
Virtual Fox Fest is October 15, 21, and 27, 2020!
Wednesday, May 13, 2020
Virtual Fox Fest 2020: All new virtual Fox conference in October
We've issued the Call for Speakers for Virtual Fox Fest. If you are interested in presenting, please read the document referenced in that page and consider submitting sessions. If you previously submitted sessions for Southwest Fox 2020, you don’t need to resubmit for Virtual Fox Fest (but feel free to delete or revise your prior submissions or submit new sessions).
Friday, March 27, 2020
Southwest Fox 2020 Call for Speakers Deadline Extended
Friday, February 28, 2020
Southwest Fox 2020 Call for Speakers
Wednesday, January 15, 2020
Hacker’s Guide to Visual FoxPro is now Open Source
I am pleased to announce on behalf of the authors of “Hacker’s Guide to Visual FoxPro” (Tamar Granor, Ted Roche, Della Martin, and me, with contributions from Steven Black) that the book is now open source: https://hackfox.github.io/.
Most people consider HackFox to be the “bible” for VFP developers because it goes far beyond the VFP help and tells you how VFP really works. It advises which commands and functions to use, which to avoid, and the best way to accomplish certain tasks.
HackFox has gotten a little long in the tooth since it wasn’t updated after VFP 7. Hopefully making it open source will allow it to flourish as people in our community update existing topics and add new topics for VFP 8 and 9. Also, the online content currently closely matches that of the book but that may change over time so it can become a better online resource.
Monday, January 13, 2020
Stonefield Database Toolkit is now Open Source
Inspired by Steve Black open sourcing INTL, I’ve decided to open source Stonefield Database Toolkit (SDT).
SDT was originally created in 1995 and Stonefield Software sold a ton of copies of it over the years, making it one of the most popular add-ons for Visual FoxPro ever. However, nearly 25 years later, my baby has grown up and it’s time to open it up and share it freely with the VFP community that has supported us all this time.
You can find the open source version of SDT at https://github.com/DougHennig/StonefieldDatabaseToolkit. It includes all source code, documentation (as a CHM file, including West Wind HTML Help Builder source; I didn’t convert it to Markdown), and tutorial files. Enjoy!
Thursday, December 19, 2019
Project Explorer: Automatically Digitally Signing an EXE After Building
When a customer reports a bug, we usually fix it immediately and send them a “hot fix”, which is usually just an updated EXE. Because it doesn’t go through our usual build process, the EXE isn’t digitally signed, which can cause issues on some machines. I created a batch file to sign the EXE but most of the time forget to run it before sending the EXE to the customer. Then it occurred to me I could automate that process using Project Explorer.
I created the following program and added it to the Addins subdirectory of the folder where Project Explorer exists:
lparameters toParameter1, ;
tuParameter2, ;
tuParameter3
local laStack[1], ;
lnRows, ;
lnI, ;
lcApp, ;
lcDescription, ;
lcCommand, ;
lcFolder, ;
loAppRun
* If this is a registration call, tell the addin manager which method we're
* an addin for.
if pcount() = 1
toParameter1.Method = 'AfterBuildProject'
toParameter1.Active = .T.
toParameter1.Name = 'Sign EXE after building'
return
endif
* This is an addin call, so if we built an EXE, sign it.
if tuParameter2 = 3
lnRows = astackinfo(laStack)
for lnI = 1 to lnRows
if 'projectexplorerui.vct' $ laStack[lnI, 2]
lcApp = fullpath('..\projectexplorer.app', laStack[lnI, 2])
endif 'projectexplorerui.vct' $ laStack[lnI, 2]
next lnI
lcDescription = inputbox('Description', 'Description for EXE')
text to lcCommand textmerge noshow pretext 1 + 2
"SignToolPath\signtool.exe" sign /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 /f CertificatePath /d "<<lcDescription>>" /p Password "<<tuParameter3>>"
endtext
lcFolder = justpath(tuParameter3)
loAppRun = newobject('APIAppRun', 'APIAppRun.PRG', lcApp, lcCommand, ;
lcFolder, 'HID')
loAppRun.LaunchAppAndWait()
endif tuParameter2 = 3
return .T.
Substitute SignToolPath with the path to SignTool.exe, CertificatePath with the path and name of the certificate file, and Password with the password.
This program is a Project Explorer addin that’s called after a project is built successfully. This code checks whether it was an EXE (we’re not going to sign an APP) and if so, finds the location of Project Explorer so it can use the built-in APIAppRun class to call SignTool.exe to digitally sign the EXE.
Now, whenever I build an EXE in Project Explorer, it’s automatically signed so I don’t have to remember to do it.
