I’ve published various posts and other writings I thought were worth highlighting, including some published before I had my present blog or published on other blogs.
Some IT-related documents and posts on technical topics:
- URI Rewriting and Canonical URIs. This is a detailed description of how to do URI rewriting in the Apache web server to support canonical URIs for both static and dynamic content. I wrote it in relation to the Blosxom blogging software (because I couldn’t find an in-depth discussion of this topic on the web) but it has general applicability for anyone using Apache to serve mixed static and dynamic content from the same site.
- Validating and Caching Dynamic Content. This is a companion piece to the above document, providing a detailed description of how web applications generating dynamic content can take advantage of HTTP/1.0 and HTTP/1.1 features to support content caching and conditional fetching of content.
- Cryptography 101. This presentation provides a technical overview of encryption, digital signing, SSL, S/MIME, and related topics. I originally created it to train other Netscape field sales engineers.
Some IT-related documents and posts on less technical topics:
- Setting Up Shop: The Business of Open-Source Software (also available in an abridged version). Probably the most well-known of my writings, this was a reworking of my internal Netscape proposal to release Netscape source code, corrected to reflect the realities of open source licensing and extended with some thoughts on the business models proposed in OSI’s Open Source: The Case for Business page.
- Open Source Licensing and Beyond. Anyone who’s ever been involved in open source has probably written something on open source licensing, and I’m no exception. This is a presentation I created for a workshop at the University of Michigan that I attended while at CollabNet. (I also created a training course on this topic while at CollabNet, but unfortunately that’s not a public document.)
- The Mozilla Experience. Another presentation I created for the University of Michigan workshop, this time summarizing my thoughts on the Mozilla project circa 2001 (i.e., well before Firefox and the Mozilla Foundation).
- Handling Disagreements in Open Collaborative Projects. This article is an outgrowth of my personal experiences as a participant in the Mozilla project working to create policies for the project that would be both reasonable in terms of addressing the presumed problem at hand and acceptable to the various people who have a perceived stake in how the problem is addressed. In the course of doing that I evolved my own personal approach to approaching the problem of creating policies in an environment where people might disagree deeply about what such policies should be.
SEfor short) is one of those unique professions made possible by specialization of labor in an advanced post-industrial economy. Simply put, SEs apply their technical expertise in support of the sale of complex technological products, typically computer hardware, software, and/or services.
Some mathematics-related posts from my math homework blog; I wrote these because in my (admittedly not exhaustive) searching I couldn’t find good treatments of these topics on the web:
- Multiplying block matrices. A proof of the standard formula for multiplying two block matrices.
- Definition of a block diagonal matrix. The introduction to a series leading up to a discussion of multiplying and inverting block diagonal matrices.
- Partitioning a matrix into block diagonal form. A multipart series (part 1, part 2, part 3, part 4, and part 5) on how to partition a matrix into block diagonal form. My goal was to show that any square matrix can be uniquely partitioned into block diagonal form with a maximal number of submatrices on the diagonal.
- Multiplying block diagonal matrices. A proof that the product of two identically partitioned block diagonal matrices is also a block diagonal matrix, identically partitioned to the original matrices, with each submatrix on the diagonal equal to the product of the corresponding submatrices in the original matrices.
- The inverse of a block diagonal matrix. A proof that a block diagonal matrix is invertible if and only if each of the submatrices on the diagonal is invertible.