I am happy to report that this site receives 50 to 80 unique visitors per day on average, and that the PDF version is downloaded roughly 11 times daily. I posted my thesis on the Web under a Creative Commons license in the hope that people would find it useful, but never expected the site to be this popular. Most of my traffic comes from Wikipedia (and yes, I did add the links myself). I also get quite a few hits from Google, where this site does remarkably well for the more specific queries (such as “vtbl in component technology”). I’m happy that the time I spent creating a Web-ready version was time well spent.
I successfully defended my thesis today. The 30-minute presentation I used is available. I have also uploaded the final version of the thesis to this site, in both PDF and XHTML formats. The PDF version is licensed under the Creative Commons license Attribution-Non-commercial-NoDerivative Works 2.5 Sweden.
I will publicly defend my thesis on January 27 at the Department of Computer Science at Lund University, in room E:2116 at 2:15 pm.
Kevin Smith, the maintainer of plasTeX, has informed me that the feature additions I described earlier are now in the version control system used by plasTeX, CVS. If you use source code listings in LaTeX, or need to produce good-looking PNG images from your PDF source files on Linux, give the latest version of plasTeX a try.
The XHTML version of this thesis uses Kevin Smith’s Python-based plasTeX processing framework to convert my LaTeX sources to XHTML. I have made a few additions to plasTeX to enable it to successfully process my thesis. Notably, I have written a basic plasTeX version of the “listings” LaTeX package (for use by my source code listings), and a new “imager” (which in this case converts PDF images to the PNG format). My custom imager uses libpoppler’s pdftoppm to produce aesthetically pleasing output (libpoppler is often included in Linux distributions). (The one imager for converting PDF images to PNG that is included in plasTeX and which works on Linux is based on Ghostscript, and does not produce true anti-aliased output.)
Kevin has worked with me to iron out the kinks in these two new Python classes, and I have contributed them to the upstream project under the appropriate license. I’m hoping that they will be part of an official plasTeX release in the near future.
My advisor at Sony Ericsson sent me an e-mail today, informing me that they had reviewed my draft and had no complaints. (They wrote that they found it “well-founded” and “elegantly worded.”) As a result, I have posted the full draft version to this web site, including Chapter 6, “The (Sony) Ericsson way” and section 7.2, “Implementing execution tracing at Sony Ericsson.” This means that there’s nothing stopping me from defending my thesis in just a few weeks, and not in March as I had anticipated.
The thread I started in a Delphi newsgroup has evolved into an interesting argument, comparing the development style favored by many Delphi developers — linking software statically — to the one I discuss in this thesis (partitioning a software system into reusable components that are linked at runtime). It’s an interesting discussion for sure — feel free to join the conversation.
I have spent some time in forums related to the technologies I cover in Chapter 5, and have gotten useful feedback that will inform the next round of editing. (Some of the feedback has only been sent to me privately.) My .NET material seems to be correct, and that goes for the COM material as well (although COM supposedly does have mechanisms that allow a class to change its GUID, and still work for clients expecting an older version). There are some minor issues with the Visual Basic section that I must look into (supposedly, VBX components were available for 32-bit environments, for instance). My post in the Delphi forum garnered quite a few replies (and I spend some time discussing my take on components in this thread, if you’re interested) — the Delphi material seems to be free of errors. My post to the OSGi mailing list resulted in private replies that indicate that my take on OSGi is correct. I did not receive any replies to my post to a CORBA forum (indeed, it’s mostly filled with spam).
Also, my advisor at the Department of Computer Science at Lund University wrote me today, informing me that he had not been able to spot any errors. (He did critique my use of the English language, though, saying that my prose was too difficult for non-native speakers.) I’m now waiting for my advisor at Sony Ericsson to give his take, and will hopefully get to defend my thesis in March.
I have posted the first public draft of my thesis, primarily to get feedback I can use to weed out the most egregious errors before I am (tentatively) set to defend it in March. I plan on soliciting reviews from some of the communities that have formed around the technologies I discuss — namely, Visual Basic, COM, Delphi, CORBA, Java and OSGi as well as .NET.
The final revision will be made available under a Creative Commons license, enabling people to share the thesis freely (as long as no modifications are made, and it’s done on a non-commercial basis). There is a lot of confusion surrounding this field, and I’m hoping that my thesis will help straighten things out. Also, I hope to strip component technology of its veneer of complexity, by demonstrating the straight-forward technology that powers object invocations and by discussing the implementation of component models.
I’m appreciative of all feedback — please send comments through e-mail. Thanks!