Back when this mistake was made, There was only one Phone Company, because they hadn't been broken up yet. Ted Bundy was still on the loose. Babe Ruth's home run record was about to fall.
It is 2018 and this error message is a mistake from 1974.
This limitation, which is still found in the very latest Windows 10, dates back to BEFORE STAR WARS. This bug is as old as Watergate.
Back when this mistake was made, There was only one Phone Company, because they hadn't been broken up yet. Ted Bundy was still on the loose. Babe Ruth's home run record was about to fall.
You could do neat things with it like copy data off the serial port into a text file, or print a textfile right from the command line!
You can get infinite zeros from /dev/zero, random bytes from /dev/random, etc!
So directories? you don't need 'em. Instead of directories, you just use different disks.
So they're just "everywhere", effectively.
So if you have FOO.TXT and need to print it, you can do "PIP LST:=FOO.TXT" which copies foo.txt to the "file" LST, which is the printer.
but what about extensions? Here's the problem: programs like to name their files with the right extension.
but the program might try to put .TXT on the end of your filename! LST.TXT isn't the printer, right?
Eh. It's a hack, but it works, and this is just on some little microcomputers with 4k of ram, who cares?
But it was big, so naturally IBM wanted it for some "PC" project they were doing in early 1980
MS purchased Tim Paterson's project and developed it into PC-DOS (which later became MS-DOS, if you're not aware)
It was definitely inspired by CP/M, in a lot of ways.
So QDOS and PC-DOS 1.0 have AUX, PRN, CON, LPT, etc, too!
You need them to keep your massive 10mb hard drive organized, obviously!
with directories, Microsoft could now make a C:\DEV folder... but they didn't.
Special files are in EVERY DIRECTORY with EVERY EXTENSION.
So your "DIR > LPT" trick to print the directory listing doesn't break because you're in C:\DOS instead of A:\
And when Windows 95 was released, it was built on top of DOS. So it naturally inherited this behavior. (Windows 1/2/3 similarly did, but Win95 was much more an OS than they were)
But Windows NT wanted compatibility with DOS/Windows programs. And XP merged the two lines.
So these special files still work, FORTY FOUR FUCKING YEARS LATER
aux.txt
prn.txt
it'll tell you NOPE
CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9
https://t.co/1eYQVBKO65
These special-device names are implemented at the OS level, rather than the filesystem level. So they're perfectly valid NTFS filenames, and I was using an NTFS drive in linux.
A couple follow ups:
1. The CP/M inventor's name is "Gary Kildall", not "Gary Kiddal".
Sorry, I posted this at 5am after being in the hospital for like... 8 hours?
It actually required them to be followed by a colon, as if they were a drive name.
So PRN: is the printer, PRN is not.
I didn't mean to imply CP/M did, just DOS, but I don't think I made this clear
PC DOS 1 did support copying to/from special files though, so my general point was correct, even if my example was confusing
It's like you're living on a space station and get trampled by a horse.
More from foone
More from Tech
BREAKING: @CommonsCMS @DamianCollins just released previously sealed #Six4Three @Facebook documents:
Some random interesting tidbits:
1) Zuck approves shutting down platform API access for Twitter's when Vine is released #competition
2) Facebook engineered ways to access user's call history w/o alerting users:
Team considered access to call history considered 'high PR risk' but 'growth team will charge ahead'. @Facebook created upgrade path to access data w/o subjecting users to Android permissions dialogue.
3) The above also confirms @kashhill and other's suspicion that call history was used to improve PYMK (People You May Know) suggestions and newsfeed rankings.
4) Docs also shed more light into @dseetharaman's story on @Facebook monitoring users' @Onavo VPN activity to determine what competitors to mimic or acquire in 2013.
https://t.co/PwiRIL3v9x
Some random interesting tidbits:
1) Zuck approves shutting down platform API access for Twitter's when Vine is released #competition
2) Facebook engineered ways to access user's call history w/o alerting users:
Team considered access to call history considered 'high PR risk' but 'growth team will charge ahead'. @Facebook created upgrade path to access data w/o subjecting users to Android permissions dialogue.
3) The above also confirms @kashhill and other's suspicion that call history was used to improve PYMK (People You May Know) suggestions and newsfeed rankings.
4) Docs also shed more light into @dseetharaman's story on @Facebook monitoring users' @Onavo VPN activity to determine what competitors to mimic or acquire in 2013.
https://t.co/PwiRIL3v9x
Ok, I’ve told this story a few times, but maybe never here. Here we go. 🧵👇
I was about 6. I was in the car with my mother. We were driving a few hours from home to go to Orlando. My parents were letting me audition for a tv show. It would end up being my first job. I was very excited. But, in the meantime we drove and listened to Rush’s show.
There was some sort of trivia question they posed to the audience. I don’t remember what the riddle was, but I remember I knew the answer right away. It was phrased in this way that was somehow just simpler to see from a kid’s perspective. The answer was CAROUSEL. I was elated.
My mother was THRILLED. She insisted that we call Into the show using her “for emergencies only” giant cell phone. It was this phone:
I called in. The phone rang for a while, but someone answered. It was an impatient-sounding dude. The screener. I said I had the trivia answer. He wasn’t charmed, I could hear him rolling his eyes. He asked me what it was. I told him. “Please hold.”
Wish I had the audio of Rush Limbaugh telling me off on the phone on his show when I was six. In the meantime, RIP.
— Shannon Woodward (@shannonwoodward) February 17, 2021
I was about 6. I was in the car with my mother. We were driving a few hours from home to go to Orlando. My parents were letting me audition for a tv show. It would end up being my first job. I was very excited. But, in the meantime we drove and listened to Rush’s show.
There was some sort of trivia question they posed to the audience. I don’t remember what the riddle was, but I remember I knew the answer right away. It was phrased in this way that was somehow just simpler to see from a kid’s perspective. The answer was CAROUSEL. I was elated.
My mother was THRILLED. She insisted that we call Into the show using her “for emergencies only” giant cell phone. It was this phone:
I called in. The phone rang for a while, but someone answered. It was an impatient-sounding dude. The screener. I said I had the trivia answer. He wasn’t charmed, I could hear him rolling his eyes. He asked me what it was. I told him. “Please hold.”
The 12 most important pieces of information and concepts I wish I knew about equity, as a software engineer.
A thread.
1. Equity is something Big Tech and high-growth companies award to software engineers at all levels. The more senior you are, the bigger the ratio can be:
2. Vesting, cliffs, refreshers, and sign-on clawbacks.
If you get awarded equity, you'll want to understand vesting and cliffs. A 1-year cliff is pretty common in most places that award equity.
Read more in this blog post I wrote: https://t.co/WxQ9pQh2mY
3. Stock options / ESOPs.
The most common form of equity compensation at early-stage startups that are high-growth.
And there are *so* many pitfalls you'll want to be aware of. You need to do your research on this: I can't do justice in a tweet.
https://t.co/cudLn3ngqi
4. RSUs (Restricted Stock Units)
A common form of equity compensation for publicly traded companies and Big Tech. One of the easier types of equity to understand: https://t.co/a5xU1H9IHP
5. Double-trigger RSUs. Typically RSUs for pre-IPO companies. I got these at Uber.
6. ESPP: a (typically) amazing employee perk at publicly traded companies. There's always risk, but this plan can typically offer good upsides.
7. Phantom shares. An interesting setup similar to RSUs... but you don't own stocks. Not frequent, but e.g. Adyen goes with this plan.
A thread.
1. Equity is something Big Tech and high-growth companies award to software engineers at all levels. The more senior you are, the bigger the ratio can be:
2. Vesting, cliffs, refreshers, and sign-on clawbacks.
If you get awarded equity, you'll want to understand vesting and cliffs. A 1-year cliff is pretty common in most places that award equity.
Read more in this blog post I wrote: https://t.co/WxQ9pQh2mY
3. Stock options / ESOPs.
The most common form of equity compensation at early-stage startups that are high-growth.
And there are *so* many pitfalls you'll want to be aware of. You need to do your research on this: I can't do justice in a tweet.
https://t.co/cudLn3ngqi
4. RSUs (Restricted Stock Units)
A common form of equity compensation for publicly traded companies and Big Tech. One of the easier types of equity to understand: https://t.co/a5xU1H9IHP
5. Double-trigger RSUs. Typically RSUs for pre-IPO companies. I got these at Uber.
6. ESPP: a (typically) amazing employee perk at publicly traded companies. There's always risk, but this plan can typically offer good upsides.
7. Phantom shares. An interesting setup similar to RSUs... but you don't own stocks. Not frequent, but e.g. Adyen goes with this plan.