Wednesday, September 30, 2020

Time to register for Virtual Fox Fest

Thanks to all who have already registered for Virtual Fox Fest; we appreciate your support and our speakers are excited to share all their sessions with you all soon.

That said, we know there are procrastinators who have not registered and have good intentions to do so before the conference starts. Please, please, please do so sooner than later. Our hard working registration staff of one is also a presenter who is practicing and refining his session, and an organizer, and has more than a full-time job working on customer projects. If you all wait until the week of the conference to register, let’s just say you might not get the credentials in time to see the first session on October 15th. It literally takes minutes to register.

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

Virtual Fox Fest is October 15, 21, and 27, 2020!

Friday, September 04, 2020

Virtual Fox Fest 2020: GeekWear and Speaker Changes

We're pleased to announce GeekWear by Geek Gatherings. Order your Virtual Fox Fest gear from the options shown or create your own unique VFFwear.

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

Speakers and sessions for Virtual Fox Fest 2020 have been announced, and registration is open. Virtual Fox Fest is October 15, 21, and 27, 2020.

Friday, May 29, 2020

Virtual Fox Fest 2020 Speaker Deadline

Just a reminder that the deadline to submit session proposals for Virtual Fox Fest is next Monday, June 1st. You'll find details on our Call for Speakers page. We look forward to your ideas and session proposals.

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're disappointed to announce that due to COVID-19, the annual Southwest Fox Conference is on hiatus in 2020. However, we’re excited to offer you Virtual Fox Fest, an online conference presenting the latest in Microsoft Visual FoxPro development techniques and interoperability with other technologies. This conference provides a venue for VFP experts to come together virtually to learn more about how our fellow programmers are using and extending VFP. For details about Virtual Fox Fest, please see https://virtualfoxfest.com.

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

We understand you're probably not thinking much beyond the next few weeks or months, but we're still planning Southwest Fox 2020 on the assumption that the current crisis will be over by November. In light of that, we're extending the speaker submission deadline to Monday, April 13. If you have something to share with our developer community, read the Call for Speakers document (http://www.swfox.net/CallForSpeakers.pdf) and then use the Submission site (https://geekgatherings.com/Submission) to send us your session proposals. We look forward to your ideas.

Friday, February 28, 2020

Southwest Fox 2020 Call for Speakers

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

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.