Dotfiles from 1993

I was cleaning out some boxes from my parents’ garage and found a bunch of 1.44MB floppy disks. Most of them were garbage, but I found one of them that contained a dotfiles.tar from October 1993. Here’s a few examples of the time-warp material I found inside:


I plan to make a more original plan someday.

Login: mradwin        			Name: Mike-bo Radwin

Directory: /thayer/hole-in-the-wall	Shell: /vdub/pasta/sauce

Last login Mon Sep 27 on ttyp1 from


I plan to make a more original plan someday.

I think this was funny at one point in time. I’ve seen many examples of folks who added false finger protocol stuff to their .plan file to make you think that you were reading another entry, and it looks like I was part of the same big Unix inside joke. Apparently I also had an obsession with food; Hole In The Wall was one of my favorite sandwich shops in Providence and the Vee-Dub was the nickname of Verney-Woolley dining hall.


alias time 'telnet tsoft 13'

alias bye logout

alias b 'exit'

alias allps "ps -aux | grep -v root | sort | more"

alias nasanews "finger"

alias webster "telnet 2627"

alias rutgers "telnet"

alias freenet "telnet"

alias readers "telnet"

alias hytelnet "rlogin -l hytelnet"

alias bahamud "rlogin"

alias ww "ps -au | sort"

alias dir "ls -slgFL"

alias ls "ls -sF"

alias ll "ls -slagFL"

alias e jove

alias undos 'tr -d "\015"'

alias eal ntalk

alias emlee ntalk

alias rot13 'tr A-Za-z N-ZA-Mn-za-m'

alias rn trn -M -hDist -hSend -hFollow -hOrg -hExp -hRef -hLines -hNNTP -hReply

alias 43 stty rows 42

Looks like I had a buddy list of exactly two people. And that’s what bookmarks/favorites looked like in the pre-Web days.


Newsgroups: tellink.general

Subject: c compiler





Distribution: local

Organization: tellink -- the final frontier


does cc use SYS V syntax only?  because I was trying to compile something

that I wrote which conforms to ANSI C standards, using prototypes for

functions, and cc choked on it.

it also didn't like function(void), something that the wonderful product

turbo C++ absolutely loves.

An article I posted to an internal newsgroup of my ISP. Even 10 years ago I was a standards freak.

PayPal fraud, part two

[PayPal Donate] I mentioned last week that I received a strange payment via PayPal that appeared to be fraudulent. I rejected the payment, and then the buyer decided to send me $1.20 instead of $0.20. I accepted that payment just to see what would happen.

Sure enough, it was fraud. I got email from PayPal today confirming my suspicion.

Dear Michael Radwin,

It has come to our attention that you may be the recipient of potentially fraudulent funds. We have initiated an investigation into this event. In the meantime, we have placed a pending reversal on the funds in question until the investigation is complete. This pending reversal will show as a deduction in your available balance. In the meantime, you are free to continue transacting using your PayPal account.

Transaction Date: Mar. 8, 2004 21:03:59 PST

Transaction Amount: $1.20 USD

In the past couple of weeks I’ve received several of these transactions (more recently they seem be sending $1.00 instead of $0.20), and many have the distinguishing feature that the person sending the money’s name is spelled out in CAPITAL LETTERS only.





Moreover, all of them have email addresses. If you’re going to try to commit fraud, you’ve gotta do a better job of looking like a legit user.

Advanced PHP Programming

Advanced PHP Programming I just got a copy of Advanced PHP Programming by George Schlossnagle. It’s the first good book published for PHP5, and an excellent read even for folks who are still using PHP4.

The book isn’t just about PHP. It covers many aspects of the development process used to produce a robust, fast, maintainable website. George covers a range of topics you won’t frequently find in a typical PHP book. For example, in Chapter 7 he spends a couple of pages discussing the different techniques for distributing files from your development environment into your production environment. He spends a large portion of the book discussing regression and unit testing, load testing and profiling/benchmarking. This isn’t an ordinary PHP book.

The last hundred pages of the book are for really advanced users. George covers the PHP extension APIs in more detail than the online documentation at You’ve gotta be a C/C++ hacker to appreciate this stuff.

My only possible complaint about the book is that it’s a little OO-centric. Most of the examples George presents use classes to provide some organization of data and grouping of functionality. His use of OO is a lot more palatable to me than the huge object hierarchies you find in some projects. I’ve never understood why people want something like log4php which adds 10k LOC to your application and adds little value over the built-in syslog().

$0.20 PayPal fraud?

[PayPal Donate] Recently I’ve been receiving a number of $0.20 PayPal donations via the Jewish calendar website that I maintain. I think this has got to be part of some sort of fraud.

Since PayPal charges up to $0.30 in fees, these donations don’t make me any money. Luckily, I’m not losing 10 cents apiece (PayPal is generous enough to charge only a 20 cent fee on these transactions), but it’s essentially a waste of my time if the donation is less than $1. I’ve been processing refunds manually, but I’m wondering if I need to go thru the effort to set up IPN and automatically reject them.

HTTP Caching and Cache-busting

oscon-logo.gif I have been invited to speak about HTTP caching and cache-busting at the O’Reilly Open Source Convention in July 2004.

Abstract of my talk:

A user’s web experience can often be improved by the proper use of HTTP caches. This talk discusses when to use and when to avoid caching, how to employ cache-busting techniques most effectively, and how to diagnose problems with caches.

In particular, this talk will cover:

  1. Overview of HTTP caches
    • Shared caches vs. private caches

    • Proxy caches and HTTP server accelerators
  2. How to encourage caching for static content
    • Reduction of network bandwidth usage

    • Improved browsing and page-rendering speed by avoiding network round-trips
  3. How to discourage caching for personalized or frequently-changing content
  4. How to disable caching for sensitive content
    • Cache-busting for accurate hit-metering and advertising statistics
    • Cache-busting for sensitive information (e.g. personal financial data)
  5. “Expires” vs. “Cache-Control” and other HTTP headers
  6. The best of all worlds: unique URL tagging techniques that defeat proxy caches but work gracefully with browser caches
  7. Sending HTTP headers
    • Apache’s mod_headers and mod_expires modules
    • PHP’s header() and mod_perl’s $r->header_out() functions
    • Using HTML <meta> tags
  8. Debugging HTTP caching problems
    • Using the Web Developer and Live HTTP Headers extensions for Mozilla
    • Diagnosing MSIE with Ethereal
    • Text-based debugging
    • Rolling your own HTTP proxy

Hope to see you there.

An ode to TastyBite Indian Food

TastyBite Kashmir Spinach A couple of weeks ago UPS dropped off a 30 lb. box of Indian food from TastyBite. Every box has been absolutely delicious.

My personal favorites are the Kashmir Spinach, Madras Lentils, and the recently discontinued Curried Mashed Potatoes. They’re about $3 a box in the local supermarkets, but you can get them for as low as $2.09 a box when you buy them by the 6-pack online. And they do free shipping on orders of $50 or more. Twenty-four meals for fifty bucks is a pretty good bargain.

Most importantly, all of TastyBite’s vegetarian Indian foods are 100% Kosher. We’re hoping that someday they’ll also get rabbinic supervision for their vegetarian Thai products, too.

I’m not a big fan of the Malabar Mixed Vegetables. We bought a dozen of those because they were on sale for $1.25 apiece, but we haven’t enjoyed those as much as the more mainstream dishes. They’re a little too rich and creamy for my taste.

It’s a shame that TastyBite is no longer selling their Curried Mashed Potatoes dish. Those were absolutely fantastic. Fortunately, there are no shortage of recipes for Pav Bhaji available on the Net.

The Caffeine Advantage

The Caffeine Advantage: How to Sharpen Your Mind, Improve Your Physical Performance, and Achieve Your Goals--the Healthy Way Last night I finished reading The Caffeine Advantage, a book claims that caffeine is actually good for you: “The Caffeine Advantage offers step-by-step programs that show you how caffeine can improve your IQ, memory, mood, athletic ability, physical condition, and performance at work.”

One of the most bold claims is that caffeine can make you smarter. In chapter 4 the authors state that taking a small to medium dosage of caffeine (i.e. 50 – 150 mg) before taking an IQ test will likely improve your score. Since IQ is the generally accepted measure of how smart one is, caffeine makes one smarter. I’d like to get my hands on a copy of the book that mentions that study (Caffeine and Behavior). Looks like the UCLA Biomed library has a copy, so perhaps I’ll ask Ariella to check it out for me.

The book also states that if you consuming too much caffeine can actually have an inverse affect on performance. For many people, having more than 600 mg of caffeine a day can make the drug less effective.

I’m a big fan of espresso (especially Illy, which is almost never bitter) but I occasionally drink drip coffee as well. I learned several years ago from the Caffeine FAQ that a shot of espresso has less caffeine than a cup of coffee (~100 mg vs. ~150 mg), so I figure that my morning double-shot is about equivalent to a 12 oz. cup of regular coffee. What I didn’t realize how little the average 6 oz. cup of green tea has: only 15 mg! Given the rough guideline of consuming < 600 mg a day, I guess I can drink as much green tea as I’d like.

This book is a refreshing perspective compared to the anti-caffeine rhetoric prevalent in the health community. It’s unfortunate that the authors don’t have more impressive credentials. I’d love to believe everything in the book, but I know full well that it’s written by a couple of quacks.

Would you believe an ID phishing scam like this?

I just got an identity theft lure via e-mail today:

Dear_ Citibank Cardholders,

This EMAIL was se-nt by-the Citibank server to

veerify your_ _EMAIL address_.

You must cptleome this pcseors by clicking on_the_link

beloww and enntering in the litlle window_ your CITI_bank

Atm_ card number and _PIN that _you use on_the Atm machine.

That is done for-your poterction -w- becouse some_of our

memebrs no lgoenr have acecss to their email adesedsrs

and we must verify it.

To veerify your _e-mail_ addres and accees your CITI_bank

account, click on_the link _bellow_.


Of course it looks completely fake (what bank would send out official email like this with so many misspellings?) yet American consumers lost $5 billion last year to ID theft [Public Enemy No. 1: Identity Theft, Wired 12.02, pp. 44-45].

There may be some good news. The latest IE 6 patch released by Microsoft this week disables the http(s)://username:password@server/resource.ext syntax in URLs. They shoulda done that years ago.