Its not that I don’t code any more… I do… Just not so profusely.
But it is strange when code that you wrote a long time ago continues to live on and run a life of its own. wxCURL is precisely one of those projects. The project started back in 2004 (and if the file’s time stamp is to be believed 09/18/2004 to be exact) because as much as I loved wxWidgets, its networking layer left a good deal to be desired, especially with respect to retrieving web content. At the time libCURL was by far the best (and fastest) URL retrieval library that also supported all the platforms I was developing for using wxWidgets.
The application was wxSync, which I wanted to support the WebDAV protocol. [I think I was also monitoring the “up and down” of sites like Penny-Arcade, which back then wasn’t as stable or well known…] Thus wxCURL was born. In 2007 I transitioned wxCURL from Sourceforge all alone to part of the wxCode-wxCURL project, in part because I was in graduate school and couldn’t devote the time to its maintenance.
Its funny. I have no idea how many projects have used wxCURL, but I suspect that it is more than I know. At least four to five times a year I am asked for “releases” from folks unable or unfamiliar with retrieving code from SVN or CVS, but today, that all ends. Along with the help of Francesco Montorsi (the current maintainer of the project) wxCURL reached version 1.0 today. So, happy first birthday wxCURL. Not too shabby for a side project of a side project. Much like wxMD5, which also lives on somewhere… In the words of the announcement:
Description:
wxCURL is a simplified and integrated interface between LibCURL and wxWidgets.As libCURL authors state, “libcurl is free, thread-safe, IPv6 compatible, feature rich, well supported, fast, thoroughly documented and is already used by many known, big and successful companies and numerous applications.”
wxCURL provides several sub-classes for simplified interfaces to HTTP, WebDAV, FTP and Telnet based resources, threads specialized for non-blocking downloads/uploads, stock download and upload dialogs.
ChangeLog
———1.0
– first release of wxCurl since it was moved to wxCode
– new bakefile-based build system which supports all possible wxWidgets build modes and allows an easy-build of libCURL also on Windows keeping a copy in thirdparty\libcurl
– removed #pragma interface for GCC which are not used anymore
– revised the code to make it compile against wxWidgets 2.9
– now EVT_CURL_* macros also take an ID which allows the same event handler to process events coming from different wxCurlBase sessions
– now wxCurlBase do not use anymore a boolean parameter to register if progress/begin/end events should be sent but rather the wxCURL_SEND_PROGRESS/BEGIN/ END_EVENTS symbols which allow users to write more readable code
– doxyfied the documentation of wxCURL
– splitted wxCurlProgressEvent into wxCurlDownloadEvent and wxCurlUploadEvent classes and added more getters GUI-oriented (e.g. GetHumanReadableSpeed, GetEstimatedTime, etc)
– added a wxCurlDownloadThread and a wxCurlUploadThread to ease non-blocking downloads/uploads
– added a wxCurlSizeQueryThread to query file sizes before downloading them
– added a wxCurlDownloadDialog and wxCurlUploadDialog for easier downloading/uploading
– added a wxCurlConnectionSettings[Panel|Dialog] to present stock connection options to the user