Archive for September, 2008

yEnc Decoder Proxy

Friday, September 5th, 2008

When I invented the yEnc Decoder Proxy in 2002, yEnc was still new and hadn’t yet saturated Usenet.

The binary groups I frequented started getting a fair amount of yEnc posts.  About 10% of the posts were yEnc encoded.  I couldn’t read yEnc encoded attachments with my existing newsreader, so I simply conceded to the fact that I would miss out on the content.  However, as more and more of the valuable content was yEnc encoded, I either had to find a yEnc decoder, or keep missing out on the yEnc content.

My news reader, Forte Agent, did not decode yEnc attachments.  It only handled MIME and UUE.  I downloaded yEnc32.  In order to decode attachments with yEnc32, I had to first export the messages to text files, then processes those text files with yEnc32.  While this wasn’t very difficult to do, it was time consuming.

I am a software developer, and one of my specialties is developing web and network utilities.  As a network developer, I was able to apply the pipelining and streaming paradigm to this problem, yielding a proxy as a solution.

What is a Proxy?

A proxy is a generic term in networking for a utility that sits between a client and a server and acts on behalf of the client.  Generally, a proxy filters and/or caches some type of traffic that flows between the client and server.

The most common type of proxy related to the Internet is a caching web proxy.  A caching web proxy intercepts all web requests and attempts to fulfill the request from its cache.  For example, one person might request a photo from the Internet.  The web proxy retrieves the photo from the Inernet and delivers it to the client.  The second person that requests the photo from the proxy is sent a copy of the photo that had been saved to memory or disk.  This saves Internet bandwidth.

yEnc Decoder Proxy

A yEnc decoder proxy also sits between the server and the client, sending requests on behalf of the client.  When the client asks for a yEnc encoded attachment, the proxy requests the attachment from the server in yEnc format and converts it to a more accepted format before sending it to the client.

yDecoder Diagram

A yEnc Decoder proxy is also considered a plug-in because it’s a third party utility that adds functionality to an a separate program.

I figured a yEnc Decoder proxy would be the perfect solution to my problem.  The only problem, of course, was that there wasn’t such a thing.   I would have to write one.

yProxy: The Original yEnc Decoder Proxy

I wrote the first, beta, version of yProxy over the weekend and released it to the public.  I also alerted Forte so that they could recommend the free utility to their users until they added yEnc support to Agent.  Unfortunately, Forte never responded.  Yet, Forte did add yEnc support to Agent shortly after, and anyone with a recent version of Forte Agent has native yEnc support.

Still, the word about yProxy spread via the newsgroups and quickly became the yEnc Decoder solution for many people who either weren’t entitled to upgrades for their existing newsreaders, or whose newsreaders just plain didn’t support yEnc.  For example, the most popular free newsreaders are still Outlook Express, Windows Mail, and Mozilla Thunderbird.  None of those newsreaders support yEnc.

With a yEnc Decoder proxy between your newsreader client and the news server, you can continue using your existing newsreader and still be able to read yEnc content, even if your newsreader does not support yEnc natively.  Most yProxy users, therefore, are Outlook Express, Windows Mail, and Mozilla Thunderbird users.

Jurgen, the inventor of yProxy, became one of yProxy’s biggest advocates.  People who had previously complained that their newsreaders didn’t support yEnc were directed to use yProxy and stop complaining.

yProxy is the Leading yEnc Decoder Proxy

yProxy Pro’s biggest competition is the free version of yProxy, which is still available on the yProxy website via the FAQ page.

I stopped counting after one million people downloaded yProxy, which occurred within the first year that it was available.  There is even a French version that a considerate user translated.