The Bearcave Links Page

The Exponential Trajectory of Knowledge

Human knowledge has become staggeringly huge. As my growing pile of unread books shows, we can't keep up even in areas we are interested in. I constantly find that curiosity leads me from one thing to the next (Richard I to the Knights Templar, Wavelets to signal processing to Kolmogorov complexity). I will not live long enough to delve into all of the areas of computer science and mathematics that I am interested in. This is one of the saddest parts of mortality.

The web is wonderful because it allows me to reference work that I would otherwise have a hard time getting access to or even learning about. The web also makes things worse in some ways too, as the web page demonstrates. I frequently find information that I might want to reference at some point in the future, so I make a note of it on this Web page.

This web page was started soon after www.bearcave.com came on-line, in June of 1995. Back then, everyone had a links pages, so we created a links page too. As with the rest of bearcave.com, this links page has evolved. Many of the links on this page I have added for myself, although the narrative is usually written for others. But as this Web page expands I feel a bit like Ted Nelson and his files (see The Curse of Xanadu by Gary Wolf, Wired Magazine, June 1995). There is a real danger that any system of notes and annotations will become useless as it grows to the point where finding material becomes difficult (then you need an index to the index). While this web page does not have an index (other than Google), it has acquired a disturbingly long table of contents (see Links to the Links, below). In fact, it is starting to resemble a sort of demented "blog".

Without better tools (see the links on Cyc, below) there may be a limit to human knowledge, not because there are not new things to discover, but because the human knowledge base becomes too unwieldy. Our lifetimes are limited, as is our brain capacity. From the point of view of intellectual work, upgrading the life span would be not very useful without upgrading our brain storage and retrieval capacity. As human knowledge grows there may come a time when people become so narrowly specialized that progress stops. Or that a person must spend their lifetime simply mastering what is known in a given field, without contributing anything new.

Links to the Links
The ANTLR Parser Generator
Bears Hate SPAM
The Bear Products International Spam Filter
Other Bear Web sites of various flavors
More Ursine Web Pages
Stuff (cool material items)
Companies Involved with Semantic Graph Software
Graphs and Semantic Graphs
PuTTY: An alternative to Windows Telnet
Subversive Software Developers
Snort: Protection from Subversive Software Developers
BSD UNIX: live free or die
CD-ROM and DVD-ROM Software for Linux
Miscellaneous Software Applications
Java Links
XML and Related Technologies
What is Microsoft .NET?
Computer Science Links
Art and Computer Science
Software
Computer Hardware
Programming Langauges
C++ Development and Debugging
Mathematics and Statistics Links
Agent Based Software and Modeling
Artificial Intelligence
Source Code Documentation Generators
Financial Literature
Market Information
Market Intra-day Data and Trade Execution
Time series data base support and the K language
Geospatial Information Systems
ISP's for UNIX Software Engineers
Literary Agents for Software Engineers and Computer Scientists
On-Line Libraries and literature sources
Local web site search engines
Google's Successor (fugetaboutit)
Some of our friends (hmm, not many friends)
Web Magazines and Periodicals
A Few Interesting People
Miscellaneous Links
Art Links
Wierd Stuff

The ANTLR Parser Generator

I have used the ANTLR parser generator to develop the Bear Productions International Java compiler front end. I have also written a fair amount about ANTLR on the bearcave.com web pages.

ANTLR has been used to create a wide variety of software tools. One interesting example is Ephedra, a C/C++ to Java translator developed by Johannes Martin in his PhD dissertaton.

Java has references, which are pointers, by another name. However, Java does not have references to references, which could be used to model pointers to pointers in C++. This is a problem when it comes to translating some C++ algorithms to Java. For example, translating the algorithm that supports binary tree delete.

Bears Hate SPAM

Anti-spam banner
Boycott Internet spam!

SPAM is the term applied to unsolicited e-mail sent out by mass junk e-mail advertisers. SPAM threatens to flood our e-mail accounts with junk mail, making them unusable. I started writing about SPAM here years ago, when the problem first started to appear. Here is something I wrote about the infamous Stanford Wallace an "innovator" in mass spamming:

One of the most despicable SPAMers is Stanford Wallace (known as SPAMford). Mr. Wallace runs a company called Cyberpromotions. Wallace believes that the more controversy he can stir up, the more attention he will get and that his business will increase as a result. Recently Wallace hosted a site registered with interNIC as godhatesfags.com. This is a "Christian" hate site mainly aimed at gay men and lesbian women. The site is also antisemitic and states that Jews are in league with gays and are damned as well.

Wallace hosted this fountain of pathalogical hate in the hope that it would attract media attention. Wallace is a good example of the kind of scum that take part in SPAM "marketing". Fight SPAM and don't do business with anyone who uses SPAM marketing. Don't do business with an ISP (Internet Service Provider) that allows their site to be a SPAM platform.

Things change fast in Internet time. SPAMford Wallace has been driven off the Internet. He lost several lawsuits and has been looking for some other way to scam bucks. Those wonderful "Christians" at godhatesfags.com are (or were) hosted by www.L7.net (or at least they were at the time of this writing). As a strong believer in the first amendment, I have to support their right to post their spew.

Ever the master of reinvention Spamford Wallace went legit. He is opened a nightclub, complete with go-go dancers. But as Wallace points out at the end of a Wired News article, the spam continues. Wallace's night club, Plum Crazy filed for bankrupcy in 2004. Ever the master of the quetionable businesses, Spamford apparently went back to his roots:

Spam King must step down: This might make you feel a little better the next time you have to close dozens of pop-up windows or spend an hour removing "spyware" or "mal-ware" from your computer: A federal judge has issued a temporary restraining order against Stanford Wallace, a man known as the "Spam King," which will force him to disable most of his software. Mr. Wallace's case is the first action launched by the U.S. Federal Trade Commission in its crackdown on ad-ware and spam. He has also allegedly been selling software called "Spy Wiper" and "Spy Deleter" that the FTC says doesn't work.
The Globe and Mail, Mathew Ingram's Globe and Mail Update, October 25, 2004

You don't have to be very smart to be a spammer, just totally lacking in morality. A great site that can be used to track SPAMmers down to their ISP or web provider is Sam Spade (dot org). I use this site frequently and am grateful to steve@blighty.com who hosts this site and keeps its software running in the face of outraged spammers.

At the time I wrote this some people estimate that the industry wide cost for SPAM is about $10 billion (US). The SPAM problem has been growning, day by day, week by week, month by month. We definitely see this at bearcave.com. Yet there are no laws that have any teeth that attack the SPAM problem, nation wide, in the United States. Why is this? An excellent answer is provided by Keith H. Hammonds in his Fast Company article The Dirty Little Secret About Spam (Fast Company, August 2003, Issue 73, Pg. 84). The sub-title is: What J.P. Morgan Chase and Kraft want is exactly what the guys peddling porn and gambling want: free access to your inbox. That's why there's no easy solution to a problem that could soon make the world's email system crash and burn.. The point made by Mr. Hammonds is that laws have not been passed because "direct marketing" companies and large corporations have fought any laws that might stop them from SPAMming.

Banks, morgages companies and other large comporations, like Kraft which sells the widely spammed "Gevalia Kaffe", pay for leads or affiliates that bring them buyers. Spammers provide these leads, sometimes through multiple "cutouts". In Who profits from spam? Surprise: Many companies with names you know are benefiting by Bob Sullivan (MSNBC, August 8, 2003) followed the path from spammer to the company that benifited (and ultimately paid the spammer). These companies all denied that they had anything to do with spam. But the system was set up so that they did not know who provided the "leads" or affiliate links.

Online references discussing spam

Don't send spam to people claiming you are a technical "guru"

Sending someone spam is the quickest way possible of demonstrating that you are a clueless Internet user who knows little about technology. In particular sending spam to people who, at one time, had e-mail addresses that had "!" characters in them is a quick way to become very unpopular. These people remember an Internet without spam. Spamming people like this with your resume is the quickest way to get identified as someone they don't want to work with, as a gentleman named Bernard Shifman demonstrates. Finally, as Mr. Shifman should have known, the Internet has a long memory (sometimes disturbingly so given Google's USENET archives). It is not a good idea to send anyone you are not intimate friends with e-mail that you would not want posted on a company bulletin board (you know, the old kind, made of cork).

The mass layoffs that resulted form the 2000/2001 "dotcom dieoff" has lead more desperate people than Mr. Shifman to send out their resume in spam e-mail. I suppose that it is now a phenomena, since there is a Washington Post article discussing resume spam.

There are a variety of reasons that bearcave.com exists, but one of them is to open professional doors for the humble author of this site. The lesson here is, content, not spam.

The Bear Products International Spam Filter

Since I registered bearcave.com, I have fought spam by tracking down those who sent my account spam and getting their accounts and web pages canceled. My efforts and the efforts of others in the anti-spam Jihad have had little effect. The tide of spam keeps rising. Currently I get between 50 and 100 spam e-mails a day. So I finally threw in the towel and wrote an e-mail filter for my UNIX shell account. The C++ source code for the mail filter, along with its documentation is published here. This mail filter not only gets rid of the vast majority of the spam, but it also gets rid of stupid bear mail (see below).

Send it to Gmail: a solution to the spam avalanche

The spam filter above allowed me to continue using my iank at bearcave.com email address. However, I still got vast amounts of spam: a few hundred junk emails in my junk "folder". My spam filter is pretty accurate, but once in a while it would throw valid email into the junk folder. When my junk email got into the hundreds of emails, I would frequently delete it. On a few occasions I lost emails that I would have wanted to read. These problems made it clear that yet another version of this spam filter would be needed. I was happy to discover a Google Gmail based solution.

Google's Gmail provides directions for setting up a Gmail account so that it handles domain email. For example, I have routed email to iank at bearcave.com to my Gmail account. The GMail directions include the MX record settings to give your ISP for forward your email.

References on filtering out SPAM

Other Bear Web sites of various flavors

Stupid Bear Mail

OK, some bears are way cool. Having said this, let me take a moment to comment on bearcave.org. This now defunct "bear" site once offered free Web e-mail accounts. Back then the ISP that hosted bearcave.com routed all of the email that went to bearcave.com to my email account. As it turned out, some of the bearcave.ORG users would enter .com when they meant .org. A few others intended to send their email to bearcave.net, the more intelligent "bear" site that at one time hosted several users (currently it seems to be exclusively Brian's web site).

There are those who don't really understand what domains are and think that it would be cool to have an address like clueless_dweeb@bearcave.com. One misdirected note had an enclosed picture of the guy's cock and asked the addressee to send him a picture of his. My only comment is that being gay does not excuse acting like a teenage boy. If you're sending e-mail like this out you should grow up or move to Palm Springs. For a selection of e-mail from bears trolling for other bears, click here.

In order to use my e-mail in the face of the massive stream of spam that gets directed to anyone with web pages and published e-mail addresses, I implemented a spam filter which put the misdirected "bear" mail in my junk "folder", along with the spam.

More Ursine Web Pages

Stuff (cool material items)

Companies Involved with Semantic Graph Software

Graphs and Semantic Graphs

(Graphs are also frequently called networks)

The idea of representing relationships as graphs is both very old and very new. The idea has been around for a long time, but people are just starting to structure database systems in this way. See my long review of the book Linked, which discusses self-organizing complexity and networks. This review includes links to related literature and links to graph (network) visualization software.

PuTTY: An alternative to Windows Telnet

PuTTY: an Open Source Telnet by Simon Tatham

At the Bearcave we do not use Microsoft's Outlook Express. This software is simply an invitation for viral infection (for some examples see my web page Why are there still e-mail viruses?). If we really, really need a Windows based e-mail program we use Eudora. Interestingly, Eudora is also the choice for the email program used at the Lawrence Livermore National Labs., where security is taken very seriously.

In general we read our e-mail on our shell accounts on Idiom. This means that we use Telnet a lot. This was no problem when we lived in California with its high Internet router density, but it became a problem when we moved to New Mexico, where there can be significant lag over the Internet. Telnet is particularly sensitive to this lag and the Microsoft Windows Telnet program has a habit of hanging up the connection while we are in the middle of an edit. Obviously this is pretty irritating, so I looked around for an alternative. One of my colleagues pointed me to PuTTY. I just started using this program. It seems to be slower than Windows Telnet. On a 56K baud connection I can type slightly faster than PuTTY sends and echos characters back. It handles window resizing properly, sending windows size information to the UNIX system properly.

Unfortunately it turned out that PuTTY was no more tolerant of network lag (timeout) than Microsoft's telnet. However, PuTTY supports a number of nice features, including SSH (encrypted) login. This makes it a good choice for network links that are monitored.

Subversive Software Developers

I think that breaking into computer systems and destroying information is both juvenile and criminal. I never cease to be amazed that the people who do this don't have something better to do with their time and talents. However, writing btp gave me an apprecation for client-server software. I'm also very irritated with Microsoft, which seems to take a very cavalier attitude toward system security. So I admire the work of the Cult of The Dead Cow. They have written a client-server program called Back Orifice 2000, which can be used to remotely and control a Windows PC over the Internet. This control can optionally be done covertly, which has lead to the controversy surrounding The Cult of the Dead Cow. Back Orifice is available as Free Source, which is the only way I would download it since The Cult of the Dead Cow notes:

1999-07-13:

BO2K Defcon CDs accidentally tainted with Chernobyl virus. We did it, it's our mistake. If you got a BO2K CD or downloaded the software from a 3rd party mirror, you need to scan your system for CIH v1.2 TTIT.

So look at the source code before you compile the program. There have been a number of cases where trojan horse code has shown up in open source software (for example, in DNS support code). Despite all this, the sophisticated features and Open Source make Back Orifice a nice program to learn from. Programs like Back Orifice would be much less dangerous if Microsoft paid any real attention to security. The fact that executable e-mail enclosures can install a trojan horse like Back Orifice on a Microsoft system is inexcusable on Microsoft's part. Given the current state of security on Windows NT, I would never use a Windows NT system as an Internet front end.

Update: January 13, 2000

The Cult of the Dead Cow web page seems to be a dead end. All that is seen is something that says "filling ditches with snitches, head up cDc 2000". I did not find any links to click elsewhere. The cDc folk are also associated with L0pht Heavy Industries. The L0pht folk have recently formed a venture funded company known as @Stake, which specializes in computer security issues.

Update: September 29, 2003

The company @Stake does not resemble the sort of company that I would have expected the CdC/L0pht people to be involved with. @Stake recently announced that they fired their Chief Technology Officer, Daniel Geer for co-authoring a report critical of Microsoft. Given that the L0pht fold wrote Back Orifice, this is a strange turn of events. I have moved my notes on Daniel Geer's firing and @Stake off this web page, since this web page is already so long. These notes can be found here.

Update: August 7, 2005

The Cult of the Dead Cow web page is back. I'm trying to get them to sell Cult of the Dead Cow teeshirts with the way cool graphic from the front page (La Vaca es Muerto).

Snort: Protection from Subversive Software Developers

Snort is a open source packet sniffer and intrusion detection package. It is described in the article Snort - Lightweight Intrusion Detection for Networks by Martin Roesch. Snort runs on both Unix systems and Windows systems.

Ethereal is another network sniffing program. Like many tools Ethereal can be used a number of ways. I've used it to track down network problems on my local network.

BSD UNIX: live free or die

Those who do not know history are doomed to repeat it.

The study of an academic discipline like computer science is, in large part, the study of history. We learn what others have done before. With Linux there seems to be an entire generation that is almost willfully ignorant of history. Linux has a monolithic kernel which is now so big that it is a struggle for anyone to understand it. Before Linux other operating systems like Mach, BSD Unix and even Windows NT were moving away from a monolithic structure into an operating system composed of components.

UNIX has a long history. The first version of UNIX that I used did not have virtual memory (e.g., System III). Once UNIX escaped from Bell Labs different versions started to develop. There was AT&T's version, System V, Sun's version (called SunOS back then), and the Berkeley version. The Berkeley version of UNIX had TCP/IP networking first and had a huge influence on the course of UNIX developement. Once the AT&T code was removed from UNIX, an open source version of the Berkeley Standard Development (BS) release was born. Versions of BSD calved off as well. James Howard has written a great article titled The BSD Family Tree which describes the various BSD versions and other BSD derived UNIXs.

CD-ROM and DVD-ROM Software for Linux

What ever the virtues of BSD UNIX, Linux has now become the UNIX standard. There are number of reasons I like to use Linux for development. The operating system is transparent and easier to understand than Windows (NT, 2000, XP or what ever Microsoft calls their latest release). But despite what the Slashdot crowd claims, all is not wonderful on Linux. There are not many options when it comes to software to burn CD-ROMs and especially DVD-ROMs. I purchased a Plextor DVD-RW drive so that I could back up my hard drives. Here are some notes on CD/DVD-ROM software for linux:

Miscellaneous Software Applications

This section includes links to various software applications that I've found useful.

Java Links

XML and Related Technologies

What is Microsoft .NET?

Somehow What is the Matrix is a more interesting question. But, like everything the evil empire foists on us (remember OLE, COM, DCOM and ActiveX), .Net is here whether we like it or not.

Microsoft .NET by DrPizza in ARStechnica, February 2002

Once Microsoft marketing gets ahold of something, it becomes entirely obscured by smoke, mirrors and the grand vision that Microsoft wants to sell you (which, of course, is only available on the Microsoft platform). This was certainly true of a now fading object technology called OLE. It is even more true of Microsoft's ".NET". As DrPizza (Peter Bright) writes at the start of his excellent and extensive article on Microsoft's .NET:

In a remarkable feat of journalistic sleight-of-hand, thousands of column inches in many "reputable" on-line publications have talked at length about .NET whilst remaining largely ignorant of its nature, purpose, and implementation. Ask what .NET is, and you'll receive a wide range of answers, few of them accurate, all of them conflicting. Confusion amongst the press is rampant.

The more common claims made of .NET are that it's a Java rip-off, or that it's subscription software. The truth is somewhat different.

What is impressive is that Mr. Bright seems to have written this article while an first year undergrad at the British Imperial College.

Microsoft's .NET seems to consist of two components: the common language interface (CLI), which is a compiler intermediate/virtual machine instruction set and Web services. The Web services are based on Microsoft's C# language and their web server technology. The real "point of the spear" as far as Microsoft is concerned is Web services, since this sells Microsoft operating systems and application software.

Microsoft .NET has not exactly taken the world by storm. There are several reasons for this. .NET is platform specific, although some componenets, like the CLI and C# are public standards. If you want to make use of .NET technology you pretty much have to do it on a Windows platform. However, a significant fraction of the web servers in the world use Apache or other non-Microsoft software. In most cases these non-Microsoft web servers run on UNIX or Linux. Java is also increasingly being used for Web services. Java has the advantage of running on UNIX, Linux and Windows. This appears to be a case where Microsoft attempted define a standard on the Windows platform and failed. .Net: 3 Years of the 'Vision' Thing by Peter Galli, eWeek, July 7, 2003, provides a brief discussion of the tepid adoption of .NET.

Computer Science Links

Art and Computer Science

Software

This section includes links to software libraries, software frameworks, system tools (e.g., compilers) and software that I find interesting from a computer science perspective.