Mailscreener and backup apps

If you have a cool piece of software to share, but you are not hosting it officially yet, please dump it in here. If you have code snippets that are useful, please donate!
Post Reply
Widgets
Ultimate wxWidgets Guru
Ultimate wxWidgets Guru
Posts: 534
Joined: Thu Jun 01, 2006 4:36 pm
Location: Right here!

Mailscreener and backup apps

Post by Widgets »

Please forgive the length of this post :-)
As I am swamped with some more important issues right now, I am considering posting a couple of my 'working-for-me-and-serving-my-current-needs' projects on wxCode, only to find out that it has been discontinued.
Up to now, I have only dabbled at the periphery of git & Github and am/have stuck with my local subversion repositories.
Posting my code on Github would therefore be also an issue for me for the stated reasons mainly because it would seem that I would have to spend more time becoming familiar enough with git than I can devote to these projects and git right now.

A third issue of concern is the potential limit on file sizes for this forum. Both of these projects are serving my needs, though they both have an extensive list of WIBNIs (Wouldn't It Be Nice If) and most likely a number of issues I have not encountered in my current environment.
Both projects currently target Windows and include solution files for MSVC 2010/2015, including basic help files and Inno based installer. Both use a copy of libcurl compiled for Windows, but not included in the source code tree.
The GUI's have been build using wxCrafter.

Of the two projects I am considering posting, one is a mail screener, inspired by a long ago freebie MailWasher - now a much evolved commercial package.
It uses the wxWidgets licensed copy of mimetic library (part of the project) as well as libcurl.
Some work has been done to compile it also on Ubuntu 16.04, but this work is in a very early and incomplete stage.

The second is my version of a backup utility with several differences/advantage IMHO over other packages, both commercial &free:
The resulting output is plain zipped up files, if necessary - no proprietary or no-longer available software needed to explore or restore old backups.
The utility can be set to simply back up files known to be already compressed and any of its content can easily be inspected and restored, either as a backup set or individually. Since individual files can be restored, there is no need to have sufficient disk space to restore a complete backup set.
It does have a rudimentary check for conflicting applications and can shut them down, such as for backup of Thunderbird data sets. No ability to restart these tasks on its own and no Shadow Copy facility.
One other major difference is that the output can be packaged to respect backup media size limits, such as CD or DVD sizes for different formats and fill them as completely as possible.
Included is some code to check for and report path and file names which exceed the restrictions imposed by some of the backup media, particularly CD & DVD formats.
Another aspect relates to the volatile nature of USB connected storage devices and their paths and drive letters. Currently some code has been included to give the user the option to handle source paths on USB drives to use either the source drive's serial number or its name, rather than the drive letter, which can change.
At the completion of a backup job, it can report the results via e-mail, including the current log file.

Aside from libcurl, both of these projects also depend on a couple of utilities adapted from code found on the internet. Even though these utilities will have a working Windows executable available or included, the source code for these can/could also become separate projects.

One of these utilities is used to update the resource version numbers - something which could be done (and probably would have to be done) in several other ways when compiling under Linux or any other OS.

The second utility is compiler for enum structures and was inspired by LLoyd Williamsen's EC
See: http://www.codeguru.com/cpp/cpp/cpp_mfc ... .php/c4001
Purpose: Generate intelligent C++ enumeration classes from standard enum declarations. This utility scans through files containing standard C++ source code (file which are typically given the suffix .e) for enums and outputs .cpp and .h files containing a C++ class per enum.


Just as the main applications, these utilities serve my current needs, but most likely still have some issues and could, no doubt, be improved.

What I am looking for is some comments on whether
a) this is the right place to raise this issue
b) if, so, how to best go about it, if any of it is of interest.

One final comment: all of this code was build up over years and at various stages of my understanding of C++, wxWidgets and threads, and while some of it my be 'ugly', it works for me and YMMV :-)

As it is, I would be able to commit myself to help getting the projects started, but not to further development by myself.
Environment: Win 10/11 64-bit & Mint 21.1
MSVC Express 2019/2022
wxWidgets 3.2.2
User avatar
doublemax
Moderator
Moderator
Posts: 19116
Joined: Fri Apr 21, 2006 8:03 pm
Location: $FCE2

Re: Mailscreener and backup apps

Post by doublemax »

Both sound like interesting projects =D>

If you actually want someone else to (re-)use your work, i think you'll have to put it on Github. If you just pack everything in a ZIP-file, upload it somewhere and post a link here, it will most likely get lost in space.

I would also suggest to take some time and write at least a minimal documentation on how to get started and where to find the main code parts.
Use the source, Luke!
Widgets
Ultimate wxWidgets Guru
Ultimate wxWidgets Guru
Posts: 534
Joined: Thu Jun 01, 2006 4:36 pm
Location: Right here!

Re: Mailscreener and backup apps

Post by Widgets »

doublemax wrote:If you actually want someone else to (re-)use your work, i think you'll have to put it on Github. If you just pack everything in a ZIP-file, upload it somewhere and post a link here, it will most likely get lost in space.
Thank you; I guess I'll have to bite the bullet and get enough familiarity with git and github.
doublemax wrote:I would also suggest to take some time and write at least a minimal documentation on how to get started and where to find the main code parts.
That should be possible and for anything I might miss I'll be ready and willing to answer questions as they come up. All of the projects 'come with' MSVC project and solution files, and before I post the projects, I will 'compartmentalize' them so that all dependencies are part of the package such that the project ought to compile assuming no more than having the MS freebie MSVC 2010/15 installed along with a specific wxWidgets version compiled with that same MSVC IDE.
Once I have it all set up, I'll start a new thread here because I'm sure it'll take me a 'few days' to beat it into shape and post the code.
Environment: Win 10/11 64-bit & Mint 21.1
MSVC Express 2019/2022
wxWidgets 3.2.2
Post Reply