Mar 132010
 

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

Jun 012009
 
G1 Android Phone

G1 Android Phone

I’m not sure what the cause is, but I’ve developed a recent fascination with yet another toy I do not have. My toy-lust is legendary, at least in my household and I frequently have difficulty restraining myself in their acquisition. This compulsion to acquire and tinker with bits of hardware is of course partially linked to my nerd history, but it has grown more eclectic with age. While I could explain away some of my desire for these objects with a particular lack during adolescence, it doesn’t really help me to understand what now draws me towards objects that I can tinker with.

Thus enters the new fascination, which comes at a time when I more than enough work to complete without this new distraction to enter my life. “How to Ditch Your iPhone for Android (by Unlocking a G1),” combined with “Unlock Your Google Phone” had me intrigued enough that I had this page up thinking about all the reasons why I needed to have yet another device to litter my work space.

Of course I’ve had a day or two to mull on it and I haven’t hit the “Add to Cart” button quite yet. It has nothing to do with any lack of love for my iPhone, simply that my device hacking compulsion was triggered quite against my will during a late night surfing session this weekend. You wait right there Google phone. I’ll be back again I’m sure.

Apr 212009
 

I recently came upon an FT.com article, “Java looked upon as the hottest prospect,” to which I thought, “Java? Really?” In a world of AJAX, Ruby, Perl, Python, Lua, and numerous others, Java is still a topic? I know that Java is in wide use on the server side in many places and in many embedded devices like J2ME on cell phones. To quote the article:

Part of the reason, this person says, is that Oracle believes it can make far more from Java than Sun ever did. That is because Sun decided a decade ago virtually to give the software away to make sure it was widely adopted. Many of the Java licences – including one that Sun granted to Nokia – were for 10 years and come up for renewal next year, implying that, in future, Oracle will look to extract a higher price for the technology.

But, if the price is too high, many of these companies may go the way of Apple or Netbook makers and simply begin making devices closer to real computers. Then they can run Linux variants and full blown application development environments. Java was a magic platform bullet, that failed to really arrive, and even on J2ME devices platform variations plague development. What does Java really do that cannot be accomplished with the combination of other technologies? I don’t think very much.

What really amazed me about the article was that the real punch line was left for the final paragraph of the article, a mistake that I beat out of my students early in their classes with me. Never, ever, hide the real punch line.

The final big software prize is MySQL, the open-source database program Sun bought last year for $1bn. Oracle’s databases handle more massive workloads, but MySQL has been adopted rapidly by next-generation web companies looking to save on cost. With Oracle in charge of MySQL, it could reap revenue from related services contracts while ensuring that the programme does not develop into a more serious rival product.

Yes, MySQL is a much bigger prize than Java. Duh.

Mar 172009
 

I’m working on another post related to my efforts on finding useful frameworks and tools chains to use in my classes and independent game development here in Athens, GA. That is a longer post, but this seemed important enough to be its own post. I recently found the Popcap Developer Framework, which for independent 2D game development looks really exciting. It is my understanding that this framework was used in the development of games like World of Goo and of course many of Popcap’s games. What a boon to the community I thought! Then I clicked the download button, which sends me the following message:

Forbidden
You do not have access to this page.
You must be logged in to developer.popcap.com before downloading files

To which I dutifully clicked the “Register” link, which returns the following:

Sorry, registration has been disabled by the administrator.

I’ve sent several messages through the “contact us” link with no reply. I have found the alternative Tuxcap port of the library, but it is a little sad to see such a great community boon lost to the non-responsive industry ether that pervades in many cases. Of course I can’t ask the question on the Popcap developer forum because registration is closed. Thus I cry my tears into the Internet ether.

Jan 042009
 

My Google Alert for “Casey O’Donnell” or Google Ego Monitor notified me this morning of the re-emergence of my essay for the IEEE Transactions on Professional Communication. I wrote an essay entitled, “Making an Open Source Case for Offshoring.” Because the essay was shorter, short on data beyond my own observations, and a bit risque, it was labeled a “Commentary” piece, which I was not opposed to. It was a spin off an elaboration on an earlier essay that was somewhat schizophrenic, which was published in First Monday. That piece was titled, “A Case for Indian Insourcing: Open Source Interest in IT Job Expansion.” That essay was published along with several other essays from a 4S Meeting in Paris, France. Because it was schizophrenic, I broke it into two separate essays. One of those was the IEEE Commentary and the second was published in the IGI Global edited book, “Handbook of Research on Open Source Software.” That chapter was titled, “The Labor Politics of Scratching an Itch.” In the end, breaking the essay apart and expanding upon each section made each piece work better and I’m happy with the way it turned out. It is just funny what a Sunday morning Ego Alert will cause you to go back and investigate.

Actual citations are posted after the jump, if desired.

Continue reading »