This will be a short entry. My writing here lately has been constrained because (a) I have been busy at work (b) having Google abandon my blog has made it more difficult to get inspired (c) I have been busy doing phpBB modifications work for clients and (d) I have been up to my armpits with rehosting issues.

Thankfully, the rehosting issue is finally solved. I went through a tedious process of moving over my two phpBB message boards (Oak Hill Virginia Online and The Potomac Tavern) but the last domain, this blog, has proven daunting. Thankfully with a help from my friend Jim Goldbloom, calls to the tech support people here at, and helpful users in their forums, plus a lot of the troubleshooting common sense skills acquired from being in this business 20 years, this blog is now rehosted too.

So hopefully I will feel a bit more inspired, Google will put me back in their index and clients will not need my services as much, so I will have more leisure time to get back to the sober and well crafted blogging I hope I do so well.

Thank you for your patience.

Spam Solutions for phpBB and MovableType

I was pleased to discover two real spam solutions for phpBB and MovableType recently.

phpBB is open source forum software. As you might expect it is written in the PHP programming language, which is installed by default on virtually every UNIX or Linux based web server. I run a message board using phpBB as well as earn some spare change installing and writing modifications to this popular software. However, spam has been a real problem lately for phpBB message boards. Spammers have created software that automatically creates and registers phony users for phpBB message boards. Their software is clever enough to defeat the Visual Confirmation modification, which is now integrated into phpBB. (This modification shows a word embedded in an image that you have to enter into the registration form in order to register.) Once “registered” these spam robots sometimes post spam as topics on the message board. They always place in the “Interests” and “Home Page” fields or the Member List pointers to spam sites.

My workarounds to date have had limited success. That is until I found the Anti-bot Question Modification. This is a clever solution. It requires, as part of the registration process, that the user answer a question that only a human could answer. Since I have installed it, I have had zero spam registrations. (I used to get dozens a week.) One small problem is that the modification was written in German. The English translation is workable, however. Therefore, if you have spam and a phpBB forum then installing this modification should be a no-brainer. In the event that the spam robots learn how to defeat the standard questions, simply create your own. You can also change the name of the registration form variable that collects the answer to the question easily through the Administrator Control Panel, further adding complexity which will drive away spam robots.

MovableType is the software I use to run this blog. With MovableType, the problem has been comment spam. The solution I found is mt-keystrokes. It uses Javascript to infer that a human entered information into a comment field. When a user types information into the comment text field, it triggers a Javascript event. This in turn causes the value of a hidden field posted with the form to change. This plug-in then has to check for the correct value in this field. If it has not changed, it assumes the form was submitted by a robot and is consequently spam. Otherwise, it assumes a human entered the comment. So far, it has worked flawlessly. As a result, my Junk Comments folder has been gloriously empty. There is no reason to sift through it looking for that one comment that might be legitimate. However, I was unable to get it to work correctly unless I used the form variable they provided. Consequently, this solution may be a temporary balm.

Now if only I could permanently banish email spam from my life. I have found a combination of solutions, but nothing that guarantees me that I will not miss a legitimate message or two. I strongly suspect the whole email architecture of the Internet will have to change before that problem is solved.

Pocket Money, Part Two

This is a follow up to my entry Pocket Money published on April 28th. In that entry I said I was thinking of selling my web services for money, since I was getting regular interest.

Over the last month, I have earned $119 from customers on the Internet. In my real job, it would not even pay for three hours of my time. Nevertheless, this is real money. It is not funny money that some alleged “barrister” in Sierra Leone wants to send me (if I can just let them use one of my accounts). As we speak, it is sitting in my checking account. It is urging me to spend it on something frivolous. I have already succumbed. I spent part of that money buying Seasons 2 and 3 of The West Wing. The rest will be blown on other frivolities, perhaps when we visit Paris next month. Yes, there is money to be made online. It can be done from the comfort of your home computer. You can do it in your boxer shorts while eating Cheetos if you want. It may not be a boatload of money, but it is money nonetheless.

Since you rarely meet your customer face to face over the Internet, you generally want a financial broker to transfer money. My broker is the only one I know about: PayPal. They charge a small percent of any money that I receive.

For that money, I have installed the phpBB Digest modification that I wrote two years ago on three different web sites. The Digest modification sends an email digest to phpBB forum users on either a daily or a weekly basis. In addition to my Digest modification, I have installed the phpBB Attachment modification twice. This modification is popular because it allows users to upload photos, documents and the like to the forum to share with others. Like my Digest modification, it is a pain to install, but a truly neat feature once it is installed.

It is a good thing that I learned early in my career (when I sold lawn and garden equipment for Montgomery Ward) that the customer is always right. Okay, they are not always right. Sometimes they are dead wrong. Still, if you want repeat customers and something like a positive reputation, it helps to go that extra mile. It also helps not to be squeamish. One of my customers runs a gay oriented site. Apparently, there are some gay men that are into dirt, urine and body odor and he is one of them. He asked somewhat tentatively whether I would do the work because of the mature theme of his site. Of course, I told him. How he and his friends get their jollies may not my cup of tea, but it puts money into my bank account. If it is not blatantly illegal, why allow my squeamishness over a particular sexual fetish get in the way of my financial enrichment? Business is business after all, and these sorts of moral dilemmas never kept a Republican from getting rich. Ask Pat Robertson about his Nigerian investments.

My first customer is already a repeat customer. After installing the Digest modification, he saw my phpBB site and liked the way I added a column to the right hand side on the main index. It shows post per day, recent posts, recent visitors and integrated RSS news feeds. Could I do the same thing for his site? Not a problem: $65 please and I included 30 days of support in case something needed tweaking.

One thing I am learning from this kind of Internet commerce is that no software is truly free. The “free” open source software model (which is how phpBB is licensed) provides the illusion of free software. Yet money there is still money to be made from free software. MySQL, the open source database vendor, figured it out: give out the database for free (at least for non-commercial use), but offer paid support regardless. Only if you do not value your time does open source software really become free. MySQL is quite profitable, and it is making bigger and proprietary vendors like Oracle sweat bullets. Some, like Computer Associates, have followed the MySQL model. The Ingres database, owned by CA, is now also open source, and has been renamed OpenIngres.

Another thing I am learning is that this kind of work on the Internet requires risk. The risk is not on my end, since I require cash up front. Once the money is in my PayPal account, it might as well be in the bank. However, it is risky to my customer. Can they trust me? For to do the work I need administrator access to their web servers. Will they give me, a total stranger, sensitive information like this? Apparently, yes. Fortunately, I have no malicious intent. However, if I wanted to I could install viruses, or even erase their whole site. By building up a referenced clientele, I hope to assuage such concerns.

I am still not sure how long that I will stay in this business. It may be that I will lose interest, or customers will dry up. If so, I do not need the income. Perhaps that is the best part of this work: I can take it or leave it. However, at least in my case, it amounts to more than pocket money.

Pocket Money

It used to be that adjunct teaching was my source of pocket money. Unfortunately, I have not had the opportunity to teach for about a year. I travel on business a fair amount. I do not feel that it was fair to my students to commit to teaching a weeknight course if I were likely to miss a class or two during a semester. Therefore, I have been looking for Saturday courses to teach instead. However, usually there are not enough students to fill a Saturday class, so the class gets canceled.

Fortunately, I do not need the money. Still there was something nice about the extra money coming in. While I certainly spend money on items for my own amusement, it seems like there are more important things I should do with my money. Or perhaps I should I say our money. I am a married man, after all, the primary breadwinner and there are many bills to pay.

With my adjunct teaching money (which as any adjunct teacher knows does not amount to very much) I felt like this extra money was all mine. I could spend it on whatever whim I wanted. Most of the time I would use the monies to buy expensive trifles for myself I was otherwise too cheap to purchase. My digital camera was one of these trifles.

Sometimes genuine financial opportunities knock on your door. You just have to be mindful of them. I get a couple of unsolicited requests per month from distant strangers on the internet who want me to do computer work for them. Unlike my wife, who can take apart, rebuild and build computers for people, they do not want me for my hardware expertise. This is good because I have none. I am a software guy. I do however have modest skills doing things on web servers. This is good because I manage a large, complex, dynamic web site for a living. It pays the bills. Since these requests keep coming in, I am thinking in lieu of teaching that maybe this could be a new source of pocket money.

phpBB is forum software that is widely used on the web. Although you may not know the name, you see it everywhere. You see it because it is open source (i.e. free to own and modify) and of very high quality. I started running a phpBB forum of my own in 2002. It was very useful out of the box. However, since I can program, I could not leave well enough alone. I began to tinker with it. Actually, I have done a lot of tinkering. Moreover, I have written some significant modifications to phpBB. Yes, of course there is a whole community of phpBB developers out there. They extend phpBB to meet uses never envisioned by its creators. Of course, this is also true of thousands of other open source software projects as well.

My innovation back in 2003 was to create the first usable digest software for phpBB. Most phpBB modifications are pretty small and straightforward. The digest modification though was a big modification. While there are certainly bigger modifications out there, (the Attachment mod comes immediately to mind) and even some wholesale rewrites, the Digest mod filled an important niche. It allowed people to get emails containing posts in the forums they wanted. To make it work I had to learn a lot about the way phpBB is written.

I have also made my own custom modifications for my forum. For example, I have integrated news from other sources into my forum. I have done other neat things like putting up real time graphics showing the total posts per day. More recently, I completed a modification I call Smartfeed (not to be confused with this Smartfeed effort). It allows phpBB forums to be accessed using RSS or Atom newsfeed protocols.

Still, demand for enhancements to phpBB keep coming in. phpBB may be free, but it is like buying a stripped down car. Those with the requisite skills add their favorite modifications from the phpBB modifications database, or the phpBB Hacks site. Many others though simply do not have the skills, or do not want to bother. In addition, they are having a hard time finding someone to install these modifications and maintain the site for them. Moreover, some of them are willing to part with money to keep their “free” board patched and feature rich.

Just last night I got such a request. A forum for PhDs wanted me to install my digest modification. So far, I had said, “no way”. I do not run a charity ward. Then I started thinking about it. Maybe there was a way to make some money from these requests. I said I would install it for free, but warned them that if they wanted more modifications or needed maintenance applied, it was going to cost money. I warned them there was a long-term cost to having a forum. Still, it is often irresistible to get something for free up front (my labor) and still discount the long-term costs.

This work is not too hard for someone with my skills. Actually, it is somewhat boring and tedious. Nevertheless, someone has to do it. In addition, there seems to be a persistent demand out there for phpBB modifications. As long as I do a bit of it on the side, and do not turn it into a second career it may be a great way to pick up some pocket money.

And truth be told, since a friend showed me her video iPod, I have been sort of wanting one of my own. Perhaps I have found a guilt free way to buy one.

The Coding Vacation

I must be a nerd. I am spending a significant part of my two weeks off programming.

While theoretically I can program at work, as a manager I usually do not have the leisure.
Therefore, I do it on my vacation as something of a hobby. The rest of the year, I cannot seem to work up the energy. For me to find joy in programming, I really need plenty of time without major interruptions or distractions. I also need to a project that might actually turn into something meaningful, both for myself in the form of knowledge, and for a community of people.

My first project involves another phpBB modification. phpBB is forum software written in the (ta da!) PHP programming language. Two years ago, I created a popular E-Mail Digests modification for phpBB. It sends out a customized digests of posts on a phpBB forum. It became so popular that it became something like a second job for which I was not compensated. Fortunately, a small community of phpBB open source zealots eventually took over the project. What a job they have done! Their latest version 1.3 is amazing. For me it was a learning experience in the value of open source collaboration. If you have a good enough idea, others will often collaborate with you, or even take over the project when you get sick of it. If it is not interesting enough it will simply join the voluminous list of dead open source projects, such as can be found at and

This new project is a variant of my E-Mail Digests modification. It is also considerably smaller in scope than the E-Mail Digests modification. As readers know, I am fascinated by syndication technology. The way I learn a new technology best is to try to build it from the ground up myself. There are a variety of competing news syndication formats out there including RSS 1.0, RSS 2.0 and Atom. Each format has its evangelists but in practice, all are being used. Most newsreaders can read any of the formats.

A half dozen or so phpBB modifications have already been created to allow phpBB forums to be syndicated using these XML protocols. phpBB sites allow forums to be restricted to special user groups. You probably do not want the Google search engine scanning these protected forums. However, with the emergence of news feeds, many people would like to get access to these restricted forums using a standards complaint newsreader. As best I can tell, none of the phpBB syndication modifications keeps users out of protected forums. In that sense, they are violating the architecture of phpBB. I made it my mission to figure out a secure way to allow authenticated members of a phpBB site to get content in protected forums as a news feed.

The trick is to authenticate the user. How to do this when news feeds are accessed as a simple URL? The solution was more challenging than I thought. Somehow you have to put in the URL both your username and password. That is not secure. You do not want your password bookmarked as part of the URL. phpBB helps by actually encoding the password into its database. However, it is easily decoded by simply studying the phpBB source code and writing a simple PHP script. Consequently, the password has to be further encrypted somehow.

My solution was not elegant, but it works. I mixed the password in the database with the database password using a hash algorithm. The database password is about the only thing guaranteed to be unique on a phpBB site, so it was a good encryption key. While it does not meet NIST encryption requirements, it is reasonably secure. I even figured out a way to roll in the user’s IP address into the authentication parameter. I made this optional, but if they select it, the news feed will only be served to the originating IP address.

I also wanted to dig into the mechanics of the various syndication protocols. I even bought a book to help. I came away from the experienced thinking that each protocol has its virtues and that people should pick the protocol they need. RSS 1.0 appears to be the most extensible, yet most complex. RSS 2.0 seems to have the most built in features. Atom seems the most thought through. I try not to reinvent the wheel if possible. I hunted for existing PHP classes that created news feeds. The best I found was this class, extended by many authors. You simply pass as a parameter to the class the type of feed you want. As good as it was I discovered a few minor problems. For example, the Atom 1.0 news feed did not properly validate HTML content. That was easily solved by modifying one line of the class. In addition, the class ignored some limitations of RSS 0.91, including the 15-item limit and length limits for the contents of certain tags. I coded around these too, and used to make sure my feeds were valid.

I will likely keep tweaking the modification in the weeks ahead, but eventually it will be provided to phpBB as a modification. Whether it will be embraced like the E-Mail Digest modification remains to be seen. My payoff is that I now know that I truly understand news feeds. What I have learned is that creating news feeds is pretty darn easy. Therefore, there is little reason not to keep promoting them where I work. I get regular requests from the public requesting our data in a news feed format. Since it is easy to do, I will try to allocate some of my team’s time for the project. (This is always a challenge since they are asked to do too much.)

Similarly, I am fascinated by web services. Web services allow data encapsulated in XML to be requested like an Application Programming Interface (API) over the Internet. Arguably, news feeds are a low-tech web service. This observation alone has been one of my biggest discoveries. While there are times when the orchestration of web services are needed and consequently you need SOAP protocols, 95% of the time low tech XML over HTTP is fine. Rather than reinvent the wheel, if possible serve your content by riding on top of an existing XML technology. RSS and Atom news feed formats are obvious examples, since there are so many consuming applications out there.

I also spent about a day trying and succeeding, in using server side XML technologies. Could I get data out of a database as XML? Could I then transform the XML data using XML style sheets and serve it as HTML? In short, could I replace the traditional plumbing in server side scripting languages to use these new methods?

Yes, I could, but it sure was neither elegant nor efficient. Since I am comfortable with PHP, I did not venture into the Perl, Python or Java worlds. The first problem was that MySQL has no inherent way to render SQL queries as XML. I am sure that will come in time. Therefore, I went hunting for a class library to do just that. I found a number of solutions, all very primitive. The XML that came out was rather inelegant, but at least it was XML. The problem turned out to be transforming the XML into HTML using a style sheet engine. The one currently built into PHP was primitive. It did the job but it required both the XML and the style sheet to be in files. It would be much more efficient to do it all in memory. So while viable, it hardly looks like a way to save CPU and bandwidth. There are already elegant solutions like Hibernate for the Java world, but those of us in a LAMP environment are still quite constrained. I am sure these solutions will appear in time. As I remarked a couple months ago, ActiveGrid looks like one such solution.

I do not see much value in doing all this work on the server side. It strikes me as inefficient. Therefore, I would let the other scripting template engines, or the application server for those who can afford one, do the dirty work using much more efficient methods. However, when transforming database information into something more than HTML, then these tools should be given heightened consideration. If, for example, a business were to implement a true SOAP compliant web service then these technologies should be used. For an ordinary dynamically driven web site serving HTML, the overhead of transforming data from a relational database into XML, then transforming it again into HTML is simply not worth the hassle.

With six days left in my vacation, I hope to keep experimenting with web services, and to carry my practical knowledge forward into my work during 2006.

Writer’s Block

I’ve been drawing a blank lately in the insight department. Life seems to be keeping me pretty busy.

Here’s a snapshot of what I am doing and thinking about the last week or so.

I’ve been trying to help Lisa and the many people who host their blogs off her site get moving again, without much success. Lisa is the one who turned me on to blogging and we’re both using this Moveable Type software. Unfortunately she went first and configured her blog to use DBM for a database, whereas I put mine in a MySQL database. She is experiencing weird DBM problems and can’t seem to fix them — no surprise since she is not a techie. I tried to move her entries into MySQL but even that failed due to an error somewhere in her DBM database. She’s working on the problem but the prognosis doesn’t look great. As a last resort I can blow away her installation of Moveable Type and reinstall into a MySQL database but a lot of the people hanging off her web space might lose their content. I can’t export a number of her user’s entries.

My email digest modification for phpBB forum software continues to gather a lot of interest. As I mentioned I use phpBB to power my forum, The Potomac Tavern. So I keep making modifications to my modification, some done by other users, then testing and republishing my modification. The digest is being well received. It’s hard to know how many people out there in Internet-land are getting daily digests of messages, but if I were to guess the numbers would now be in the hundreds or thousands. Ah, the power of clever code. I wish there was money in this.

I’m also reworking my other domain, This is a domain I created a couple years ago but which has remained rather dormant, mainly because I don’t have the energy to market it. It is for the people in the community I live, zip code 20171, otherwise known as “Oak Hill” due to the name of our post office (we are not incorporated.) However, I discovered I was collecting email from folks and it wasn’t getting forwarded. Now that I’ve read it I realize there is some interest in my domain, but people want interactivity. So I blew away the PostNuke content management system and replaced it with phpBB forum software instead, and I am customizing it to add dynamic features that I prototyped on The Potomac Tavern. I plan to integrate an online business directory soon and other dynamic features, and this time I hope I can actually find the energy to market the site. This may require me digging into my pocket to pay for a little advertising. The long-term prognosis for making any profit off the site is slim, but anything is possible. I live in a new community and this is a new market so it might take off.

This week finds me in training. I am taking a course in Oracle Application Server, mainly because we use it at work and I figure I need to know a lot more about it if I am to do my job adequately. It’s a good course but it’s all the way over in Rockville and traffic is a bear. Meanwhile I find I am increasingly bored and unchallenged in my job and I am thinking of applying for some other jobs in Club Fed. Another one of these ideal jobs opened up in nearby Reston that I will apply for. It’s at the U.S. Geological Survey. I’ve done this before though and I don’t have much hope. I have excellent qualifications but it hasn’t seemed to matter in the past. Usually I don’t hear anything and when I do it’s just a report that I wasn’t selected. I strongly suspect most jobs at USGS go to insiders and I’m doomed to spend the rest of my federal career on long commutes into D.C. So I’m looking at other jobs; some in Arlington for the Transportation Security Administration look interesting primarily because there are a lot of openings and I suspect TSA, being a new agency, hasn’t developed the bureaucracy that kills the sole of creative types like me. Anyhow, I am increasingly disenfranchised with my agency. The people are good but the management doesn’t manage. They have no idea whether I am optimized or not, and currently I am not. My attempts to garner more work for myself largely fall on deaf ears or involve weeks of waiting for people’s schedules to clear to work through the issues.

And I’m doing the youth counselor thing for the Unitarian Church I attend in Reston. I don’t know whether we will be able to get a critical mass of youth together to do UU stuff, but I will try again like we did last year. Youth these days are so darn busy, but it would be nice to help these kids in a positive way through the teenage years. We’ll see.

As Atomic Tom would say today is a day to “empty the desk drawer of my mind.”

The joy of coding

I’m a software engineer and a project manager so I don’t do much in the way of coding software anymore. In truth most code writing and testing isn’t that much fun. I was kind of glad to be lead out of the programming hole I was stuck in some ten years back. I realized I was writing the same code over and over again. It was getting boring. How many times can one code variations on the same do/while loop without pulling your hair out? It was better to give the work to some programmer grunts and work at a higher lever of abstraction. Project management pays better anyhow and college tuitions will be coming due in a few years.

Programmers may dispute this assessment, but they are the blue collar people of the information age. We coders are software mechanics, really. At some point I was led out of the software garage and into the manager’s office because others thought I had bigger fish to fry. I try to keep a toe or two back in the garage though. It feels more real than project management. Programming feels tangible and something I can take to the bank. Being a project manager feels ephemeral. I’m not sure I will have enough work to keep me busy a year from now. But I can always hang out my sign “Will code for food” if need be. I doubt “Will manage projects for food” will have the same marketing appeal. So I try, but don’t always succeed, in keeping up my programming skills. This is a market that moves very quickly. I’ve done some programming in the Java language, for example, but need to do a lot more. I won’t be asked to code Java servlets in my job, however. I may need to assign people to do the work for me however.

I took up teaching web page design partially to force myself to keep up with new technology. It worked and I now can create validated XHTML, can write cascading style sheets without usually consulting a reference manual, code cross browser Javascript and have good working knowledge of some hot server side scripting languages like PHP and ASP.

This blog is one place I practice. The underlying software is Moveable Type, which is written in a programming language called Perl. If necessary I can go in and tweak the code, but it’s not necessary. Setting up this place was pretty straightforward. Fortunately I also get to play with the PHP server scripting language on my forum, The Potomac Tavern.

My forum is based on open source bulletin board software written in PHP called phpBB. About the time I installed it I also ordered some manuals so I could learn to write PHP. phpBB also requires a database. A database called MySQL comes free from my web host so I used that and ordered a book on MySQL. The combination of the server operating system (Linux), PHP and MySQL is a zero cost option for creating extremely robust and reliable web based systems. And it turns out you don’t have to be a programming guru to do serious stuff in this environment. Much like those at the start of the PC revolution who put together HeathKit personal computers in their garages, the hobbyist with decent understanding of programming languages can do it themselves and have some fun. No need to work on a car in your garage anymore for amusement. Program some scripts for the web instead!

A lot of programming is boring for me because it doesn’t mean that much. I’ve done a lot of patching and upgrading of systems written by others in my career, and it’s definitely not that interesting. It’s necessary work, just like the mechanic who has to replace your muffler, but it is boring. Most programmers would like to write something original and all their own. It gives them a feeling of ownership and that they have created something meaningful. Unfortunately unless you do it for your own amusement, such experiences tend to be fewer and further between. Sadly, much of this work can be outsourced to India instead of keeping Americans gainfully employed as programmers.

So it’s a joy to find such a coding project recently that was both creative for me and actually useful for a large number of people. Back in May I was looking at the phpBB forum software and thinking “Why can’t it have digests? It works for Yahoo! Groups!” I frankly expected someone to have done it before but no one had. So I began work on a “mod” or “modification” to the official blessed phpBB software. With my modification you don’t get sent every email to your group, as happens with Yahoo! Groups. Rather, this software allows you to fine tune the digest you get to pick particular forums of interest, and to set a fairly wide variety of options. It is customized for you. It was a great mod that I installed on my own forum. I learned a lot about the phpBB architecture and how to write good PHP code in the process. Eventually I packaged up the whole thing in a ZIP file and posted it on the phpBB web site. I figured it would get people excited.

But it didn’t. It just sat there and got ignored. I didn’t understand it because it was a great idea. But I guess its time hadn’t come then. A week or two back I started getting inquiries about my modification. Is it going to be finished? Will it be submitted as an official phpBB modification?

It’s time has come. Now it has garnered a lot of interest and my spare time has been kept increasingly busy making more modifications to it and getting feedback from the developer community. Shortly it will be submitted as an official modification and when it shows up on the list of approved phpBB software modifications, as I hope it will, I suspect it will be pretty popular.

No, there is no money in this work. When building on top of an open source platform you just give it away. But there is a vicarious thrill and pride in ownership of not only writing some very cool and efficient code optimized for this phpBB software, but to garner some fleeting low level fame among this community of people. These people are appreciative of my work. It reflects not only a needed enhancement to phpBB, but from the feedback I am getting it is also very well designed and thought out.

And that makes me feel happy and gives me a tangible feeling of accomplishment. Some people are jumping the gun and won’t wait for the final release. One guy from Brazil has been writing me with questions. I’ve been helping him out. When I took a look at his site though I realized that I was really helping out … a low level pornographer!

Well, why am I not surprised? Who were the pioneers on the internet? Not Bill Gates, that’s for sure. No, it was the smut merchants who figured out how to turn a profit on from the internet first. If a pornographer or two finds a way to use my software modification to push down adult content to some horny end users looking for some cheap thrills, that’s part of the deal. I’m sure it will find more legitimate uses in time.

It’s still a damn fine set of code. And I’m glad to know I still got the right stuff.