17 ms·
“It is 2018 and this error message is a mistake from 1974”
- skissane 5y agoMaybe Microsoft could give apps a way to opt out of this legacy behaviour through the exe manifest, like they already do for long paths: https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd https://docs.microsoft.com/en-us/windows/win32/fileio/maximu... For system apps like cmd.exe or explorer.exe, a registry key would be a better solution. That way the end user or sys admin can turn it on or off, whereas the exe manifest is fixed at build time.
- p_l 5y agoIf you use UNC paths, it already happens. The issue is dealing with software that won't give absolute UNC (NT-native) path to an API. That said, it should be theoretically possible, but I believe any approach other than hooking into high level IO call will be problematic, and you'd probably lose access to many things like serial/parallel ports etc. (as applications wouldn't know the names you renamed them under).
- skissane 5y ago> and you'd probably lose access to many things like serial/parallel ports etc. (as applications wouldn't know the names you renamed them under). The big problem here is bare device names, and device names with an extension – e.g. "COM1", "COM1.TXT". Device names with a colon, e.g. "COM1:", are not such a big problem, because colon is not an allowed character in file names on Windows (it is reserved as syntax to specify a drive or stream.) And while colon is a valid character in Unix file names, it is rarely used in practice, so Windows not supporting it is less of a problem than Windows not supporting files named "aux" or "con" is. So if they still recognised the device names with a colon, that would work fine for some programs that already use the colon, and for those that don't it should be an easy fix to just add it before updating the EXE manifest to opt-in to this feature. Actually there is another fix – in Win32 programming you are recommended to prefix device names with "\\.\" anyway. That is actually mandatory when dealing with more than 9 serial ports (e.g there are multiport serial cards with more than 10 ports, or you might have two 8-port serial cards in your system). If you want to access COM10, you have to prefix it with "\\.\". And it is best practice to use those prefixes even with COM1-9. So programs already following that best practice would need no change. (And few programs directly use serial or parallel ports nowadays anyway.)
- PaulDavisThe1st 5y agoActually, colon (:) is allowed as part of a Windows file name. This changed at some point (presumably NT). However, almost all Windows tools will be incapable of dealing with a file name that includes a colon, even though the file exists on disk. We ran into this recently when a bug in Ardour ended up creating files on disk named like "recorder:N". They were created correctly on the disk, and in the Ardour instance that had created them and thus had file handles for them, they could be read without issues. But ... close the program and restart it ... errors about not being able to find the files. Fortunately, Notepad (I think) is one of the few applications that can handle these names (I have no idea why), and so it could be used to open and save the files under a "better" name. ps. after 35 years in computing, I have not used Windows for more than 30 minutes in total. This account is based on being a developer of a cross-platform application who reads bug reports and interacts with users.
- skissane 5y ago> Actually, colon (:) is allowed as part of a Windows file name. This changed at some point (presumably NT). However, almost all Windows tools will be incapable of dealing with a file name that includes a colon, even though the file exists on disk. I think you are getting confused by stream names. If you try to create a file called "foo1.txt:bar", some Windows tools let you. But that is not an example of a file name containing a colon. The filename is "foo1.txt". In Windows NT (and its successors), a file can be composed of multiple named streams, and ":" separates the file name from the stream name. So "foo1.txt:bar" is actually the the stream named "bar" of the file named "foo1.txt", not a file named "foo1.txt:bar"
- PaulDavisThe1st 5y agoThanks for the clarification. So let me rephrase. An application can attempt to create a file using the name "foo:bar" and this will result in a new entity in the filesystem that can sometimes be successfully accessed using the name "foo:bar", but generally not.
- 5y ago
- wvenable 5y agoThe problem is you could create the file in one program but not be able to read it the other. I wonder if they should only exist for command line apps although I wonder if there aren't still GUI apps that control industrial machinery by opening "COM1" as a file.
- int_19h 5y agoThis is already the case - if the app uses NT APIs directly rather than Win32, it can create files with "forbidden" names quite easily.
- skissane 5y agoYou don't even need to use the NT APIs directly. The Win32 APIs already do it if you use the \\?\ prefix. You can even demonstrate this with cmd.exe (which uses the Win32 API, it doesn't directly access the NT API) `mkdir c:\con` will not work, says `The directory name is invalid.` `mkdir \\?\c:\con` does work. But then to delete you have to use the \\?\ prefix again. And `cd \\?\c:\con\` doesn't work, you get the `CMD does not support UNC paths as current directories` error. (Win32 does, this is a cmd.exe limitation only) My proposal was to have a way of getting the `\\?\` behaviour without having to explicitly provide that prefix. Actually, not quite. There is one aspect of `\\?\` which is undesirable. The NT API only supports backslash as a directory separator. The Win32 API supports forward slash as well, it automatically converts forward slash to backslash. But `\\?\` turns that conversion off. I think you'd still want the forward to backslash conversion on, to maximise compatibility with Unix.
- int_19h 5y agoThe reason why it's not quite so simple is because any existing API that uses TCHAR[MAX_PATH] would be ABI-broken. Some of them are obvious, e.g. the WIN32_FIND_DATA struct used by FindFirstFile/FindNextFile. The less obvious part is that for a very long time, it has been a contract for all Win32 functions that return PATHs, that the maximum size of the returned path is MAX_PATH. So there are a lot of apps that basically allocate a buffer of that size and assume that it'll always be enough. So functions like GetFullPathName can't just start returning longer names, because it would break those apps. Instead, they rely on the presence of "\\?\" prefix in the input path as an indicator that the calling app understands those longer paths, and is ready to accept them as outputs as well.
- Asooka 5y agoI'd say the better solution is to restrict the feature to only cmd.exe and batch scripts. I am willing to bet that anyone who needs to use it outside of those two cases is running Windows on hardware that doesn't permit software updates and is probably not running anything newer than Windows XP (or even 95). If anybody knows of anyone using those special files in programs running on modern Windows, I'd love to hear about it.
- skissane 5y agoI reckon somewhere out there, is some obscure program used to control some piece of scientific or industrial equipment, and it talks to that equipment over COM1, and it is just opening "COM1" as opposed to "COM1:" or "\\.\COM1", and it still runs on Windows 10. Rare scenario, few people are going to be impacted by it, but probably somewhere out there is someone who will be. And making it a registry key or EXE manifest option helps to not break that rare software. And I wouldn't assume that systems connected to laboratory or industrial equipment don't get Windows updates; some don't, some do.
- sixothree 5y agoI very much wish Excel had a "I could not care less about legacy crap and I never ever want to see my number converted to scientific notation again for as long as I freaking live so help me I want to kick those devs in the goshdarn shin" mode.
- suzzer99 5y ago"1/2 cup margarine" - Excel: Is this a date? "2011-10-05T14:48:00.000Z" - Excel: I have no idea what this is.
- WorldMaker 5y agoThe "Number Format" panel is front and center in the Excel ribbon. Just use anything but "General" and you get the "I don't want you automatically guessing mode". Ctrl+A then Alt H N T E enter to make the whole spreadsheet "Text" by default instead of "General". (Or Ctrl+A Alt H N A enter to default everything to "Accounting" if you are just going to be typing in a bunch of dollar amounts, etc.) The tools are there to "opt out" of "I'm too lazy to set a data type so guess for me" mode and always have been.
- sixothree 5y agoI am so sick of these answers. I am tired of changing the formatting. So. Freaking. Tired. I never, EVER, want to see another number in scientific notation unless I tell it too.
- ldoughty 5y agoNot a huge fan of the blog-post-by-twitter-thread pattern.. read the first 6 posts, the. Need to click to read more, then find out it's 50+? tweets long? Might be interesting, but feels like the wrong format.
- jkingsman 5y agohttps://twitter.com/Foone/status/1066547670477488128 https://twitter.com/Foone/status/1066547670477488128
- mikestew 5y agoSomeone should consider taking the hint, then.
- gxqoz 5y agoIt's interesting that the author mentions ADHD as a reason to not post full blog posts. I don't have ADHD but I certainly find a Twitter thread much more distracting than a blog post to read. I need to untrain my mind that the entire message isn't done by the end of the tweet. And ignore all the other crap that Twitter is trying to get me to click on in the trending topics. I have to be extremely interested in a Twitter thread to read it. It's just a horrible format.
- nonbirithm 5y agoHN is basically what amounts to my blogging platform for the same reason as foone. It's the only place that I come back to consistently for enough novel scraps of textual information to hold my attention, the community and culture is welcoming enough for the most part, and the comment box is a single click from the home page. By the time my attention has shifted to article X and the following HN discussion, I usually have enough mental inertia to leave my thoughts at that point. It's a different mindset than if I had to use a separate website to write blog posts on, without any sort of original context. I remember there was an HN post about static websites and it was filled with comments about how people were wanting to get around to setting it up but they had to go through hosting and theming, and were ultimately sucked into the trap of overengineering. Depending on how your brain is built, for some people this kind of problem is not just a minor annoyance they could solve on any given day, but a persistent obstacle. But then I could just ask: "Do I actually care about writing?" I would say, to a certain extent, yes. I want recognition that my thoughts existed at one point, inside this mind that's a part of me, regardless of what medium they were conveyed with. If HN commenting is the only form of writing that holds my attention long enough for me to get my thoughts out of my head, then I don't see a problem with it. Otherwise a lot of the parts that make up my whole would die with me, all alone. I'm sure some of what I've written would make good blog posts if I got around to researching and editing for more than a single session. But because that's not how I write, if I want my voice to be heard then this is about the only way that works consistently enough for me: writing it all at once, before my interest fades and I forget about it later. So I have a lot of sympathy towards the author. I personally would not use Twitter for this purpose, because it feels like screaming into the void to me, and I wouldn't expect the same kind of responses I could receive on HN, but I share much the same sentiment.
- rx_tx 5y agoFor those who prefer a continuous "article", there are unrolling websites (not affiliated with the tool) https://threadreaderapp.com/thread/1058676834940776450.html https://threadreaderapp.com/thread/1058676834940776450.html A fun dive into windows history and backwards compatibility.
- lucb1e 5y agoAnd the TL;DR is that OP found com/aux/nul special names in Windows again. Which is a bit of a stretch to call it a 'mistake' if it was intentional and useful at the time (arguably still today, at least for 'nul'). I thought they found a bug in ALGOL60 code or something, which would have been funny as last week's pentest was written in an arcane language like that and likely last updated around the same time (not something we see every day; quite the opposite in terms of reinventing the wheel actually).
- toast0 5y agoI agree, it's not a mistake or a bug. It's an intentional feature, followed on with intentionally including the feature in further releases. It might not be a great feature anymore, but it's not a bug. A 40 year old bug is things like TCP didn't have timeouts in all states, so LAST_ACK sockets should stay around forever if you follow the spec, or that if the two peers get mixed up about where the seq and ack are, each ack will elicit an ack from the other side, and if the peers are near enough to each other, that can result in gigabits of useless ack traffic that never results in data exchange (thankfully this isn't a common state; I've only seen it as a result of a bug in one OSes syncookies that was fixed, and it is likely to end with a timeout)
- sellyme 5y ago> I agree, it's not a mistake or a bug. The error message says that the file is too large for the destination file system (despite being under 10KB). It's unambiguously a bug.
- 5y ago
- mikestew 5y agoYou know that famed backward-compatibility that some folks praise Microsoft for? Yeah, well, this is the dark side of that. I'm curious how much stuff would actually break if one were just allowed to create files called COM1. Sure, someone is out there bit-banging stuff to a serial port with the copy command, but must we all suffer so that those three people don't have to rewrite?
- deleted 5y ago[deleted]
- p_l 5y agoNot COPY, but software that runs on Win9x used those names still for opening devices. That's why they still work. For the same reason as other DOS Aliases, like C: If you use UNC paths, you can bypass alias names, because your path will be unambiguous - however if you write such name into one of the "classic" visible name spaces, software that uses classic paths (for example because people are familiar with them, and because rewriting all strings to ensure you use UNC is annoying) might... Find issues ;-)
- WorldMaker 5y agoOh there are plenty of batch files in DOS and Windows history that COPY SERIAL.TST COM1, just sending RS-232 bytes straight from file to COM1 via good old COPY.
- p_l 5y agoI sure expect a lot of them, hell it was one of the ways to use a plotter I had - same with printers. I was just pointing out that COPY was not the only use :)
- sildur 5y agoHah, I remember causing BSOD everywhere on IRC with that bug and CTCP SOUND when I was a kid. By the way, the list Microsoft published is not the full list of special files. I remember using at least one reserved word that isn't there. I remember using debug.exe on command.com to obtain the full list.
- unnouinceput 5y agoAhh, the fun of opening a diskeditor in DOS, renaming some folder I wanted to hide to AUX then no teacher could access it and see my hidden treasures. Furthermore they couldn't even backup students folder nor delete my folder, and it was DOS running over Novell Netware. My oh my, the talk I had to hear from University rector himself and the jaws they dropped when I rename it back to some other name so they can finally have access to it. 1996, good times.
- dugmartin 5y agoIn the Windows 3.1 days I saw someone try to save an .eps file of a gaming convention flyer as "con.eps". The screen filled with PostScript and they freaked out.
- kragen 5y agoAs I've pointed out before, I think this problem didn't exist in 01974, or in CP/M at all, ever; I think CP/M was perfectly capable of creating files named AUX.H, or PRN.H, RDR.H, CON.H, LPR.H, etc. IIRC, even CP/M PIP (which is what actually implemented the special device names) required the colon to indicate that you meant a device. So if you wanted to print FOO.DOC on the printer in CP/M PIP you could say PRN: = FOO.DOC but not PRN = FOO.DOC. You could also, I think, say B: = FOO.DOC to copy FOO.DOC onto drive B:. The problem was introduced, IIRC, in MS-DOS.
- anonymousiam 5y agoThe various DEC operating systems (RT-11, VMS, etc.) had PIP (Peripheral Interchange Program) which allowed you to copy files to devices (such as a printer). CP/M had PIP, but did not implement the devices in the filesystem, which MS/DOS did. The result of putting specially named files in the operating system was that files were not always files and strange behavior would occur in fringe use cases. The basename (without the extension) had certain reserved names such as CON, PRN, AUX, PTR, PUN, etc. Originally these names always had a trailing colon to identify them as devices, but MS/DOS dropped that. MS/DOS kept the trailing colons for disk drive identification, but not much else. This capability could be used to make a batch files (.BAT) without any editor on the system. One could type: COPY CON RUNME.BAT, and then type in the wanted lines of the batch file. The end-of-file character (^Z 0x1A) was the same on CP/M and DOS, unlike (^D 0x04) on Unix. https://gordonbell.azurewebsites.net/Digital/RT-11%20System%20Users%20Guide%201977.pdf https://gordonbell.azurewebsites.net/Digital/RT-11%20System%...
- dTal 5y ago>files were not always files and strange behavior would occur in fringe use cases. coughs in Unix
- anonymousiam 5y agoTrue, device nodes and other special files exist in Unix, but they are usually contained to special directories.
- shellac 5y agoOnedrive (or rather the Office365 variant, I don't know about the other) still complains about such things. Just amazing in this day and age.
- contravariant 5y agoRather than some removing this limitation I'd settle for the ability to have file paths longer than 260 characters. Also, why 260?
- wvenable 5y ago[drive][:\][path][null] is 1+2+256+1 or 260.
- contravariant 5y agoAh I see, and presumably path can't be empty so you just need a byte to denote the length?
- int_19h 5y agoIt's null-terminated, so there are no length bytes. You can have paths exceeding 260 chars for a long time now. The problem is that the older Win32 APIs that deal with files have structs with TCHAR[MAX_PATH] field in them, so changing that length would be a binary breaking change for apps. So the new APIs allow for longer paths, but code has to be specifically written to take advantage of them. Some languages and frameworks - e.g. Node.js and Python - had that support for a while; others are still catching up.
- Tempest1981 5y agoNotably, explorer.exe doesn't deal well with longer paths. But yeah, WSL may be the driving force.
- deleted 5y ago[deleted]
- Lammy 5y agoYou don't have to do anything if you're on Windows 10 ver 1607 or later, have `HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled` DWORD=1, and your application manifest declares itself `longPathAware`. Or for older Windows versions you can use UNC paths and skip the fixed-size Unicode normalization buffer than introduces the `MAX_PATH` limitation: https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats#skip-normalization https://docs.microsoft.com/en-us/dotnet/standard/io/file-pat...
- 1vuio0pswjnm7 5y agoIt seems like more and more links to Twitter being submitted to HN. This is inconvenient for me as I do not use Twitter's GUI. I do not like the way Twitter uses Javascript and tries to force users to enable it. Here is a temporary solution to I am using to fetch the JSON from the command line and make simple HTML. I did try Nitter but found that sometimes instances were exceeding rate limits. json_reformat is from https://github.com/lloyd/yajl https://github.com/lloyd/yajl this uses stunnel and nc but can easily be adapted to use openssl, bssl, haproxy, or whatever other ssl solution you prefer example usage - read twitter.com/foone 1.sh foone > 1.json 1.sh < 1.json > 1.htm firefox ./1.htm #!/bin/sh case $# in :) ;;0) # make simple html; sed -n /{\"data\"/p|json_reformat|tr -cd '\12\40-\176'|sed -n -e 's/ *//' -e 's/\\n/ /g' \ -e '/created_at/p;/sation_id_str/p;/full_text/p'|grep -B2 full_text \ |sed 's,https://[^ \"]*,<a href=&>&</a>,g;s/\",$/&<br>/g;s/^--/&<br>/' ;;1) # fetch json; M="GET"; V="HTTP/1.1";H="host: twitter.com";I="104.244.42.129:443";C="connection: close"; A="authorization: Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA"; P1="/i/api/graphql/Vf8si2dfZ1zmah8ePYPjDQ/UserByScreenNameWithoutResults?variables=%7B%22screen_name%22%3A%22$1%22%2C%22withHighlightedLabel%22%3Atrue%7D"; S1(){ printf "%s\n%s\n%s\n%s\n%s\n" "pid=$HOME/1.pid" "[ $$ ]" "accept=127.0.0.7:80" "client=yes" "connect=$I"|stunnel -fd 0;}; S2(){ kill -9 $(cat $HOME/1.pid);}; N(){ nc -n 127.7 80;}; S1;x=$(printf "%s %s %s\r\n%s\r\n%s\r\n\r\n" "$M" "/" "$V" "$H" "$C"|N|grep -o "gt=[^;]*"|sed 's/gt=//');t="x-guest-token: $x"; y=$(printf "%s %s %s\r\n%s\r\n%s\r\n%s\r\n%s\r\n\r\n" "$M" "$P1" "$V" "$H" "$A" "$t" "$C"|N|grep -o "rest_id\":\"[^\"]*"|sed 's/.*\"//'); p2="/i/api/graphql/Bn2jPG0Cy8VAOakAoyV_kA/UserTweets?variables=%7B%22userId%22%3A%22$y%22%2C%22count%22%3A500%2C%22withHighlightedLabel%22%3Atrue%2C%22withTweetQuoteCount%22%3Atrue%2C%22includePromotedContent%22%3Atrue%2C%22withTweetResult%22%3Afalse%2C%22withUserResults%22%3Afalse%2C%22withVoice%22%3Afalse%2C%22withNonLegacyCard%22%3Atrue%2C%22withBirdwatchPivots%22%3Afalse%7D"; printf "%s %s %s\r\n%s\r\n%s\r\n%s\r\n%s\r\n\r\n" "$M" "$p2" "$V" "$H" "$t" "$A" "$C"|N;S2; esac
- GiveOver 5y agoOne of those tweets prompted me to type "cat /dev/random" to see what happens. Mild panic as I was assaulted by a million lines of rapidly scrolling random text. Not sure what I expected.
- umanwizard 5y agoNot sure if it still works, but catting /dev/random to a sound device used to be a great way to test that your speakers were working by producing ear-splitting static noise.
- hpb42 5y agoYou can: cat /dev/urandom | aplay
- makeworld 5y agocat /dev/urandom | aplay Still works well on my machine, and I use it all the time to test :)
- umanwizard 5y agoAh, neat, but I seem to remember catting it to an actual device node, not to an executable.
- adamnew123456 5y agoYou're thinking of /dev/dsp, which was an OSS thing before the move to ALSA. It still exists on the BSDs AFAIR but has to be emulated on modern Linux: https://unix.stackexchange.com/questions/103746/why-wont-linux-let-me-play-with-dev-dsp https://unix.stackexchange.com/questions/103746/why-wont-lin...
- umanwizard 5y agoYep, that’s the one!
- xenadu02 5y agoNote that MS did implement this in DOS 2 as AVAILDEV. With AVAILDEV=FALSE special device files only existed in \DEV. They still existed on all drives but at least they were constrained to a special device directory. With that setting the console was at \DEV\CON, first serial port at \DEV\COM1, and so forth. I can only assume IBM pitched a fit and made MS remove it like they did with SWITCHAR. If you didn't know about SWITCHAR it allowed you to change DOS to use Unix's "-" switch delimiter instead of "/". This is why DOS/Windows also accepted either "/" or "\" as path separators (and still do).
- gpvos 5y agoMentioned recently: https://news.ycombinator.com/item?id=26272844 https://news.ycombinator.com/item?id=26272844 I wonder why the blame is put on IBM; what problem did they have with this?
- WorldMaker 5y agoIBM had massive style guides put together by committees and based on things they'd done for decades before. Some of what they wanted out of the PC was as a poor man's mainframe to potentially get more sales of their mainframes. They wanted DOS to look like the solid, stable System/360 and OS/360 they sold (well, leased in most cases), not some weird upstart UNIX clone from IBM's competitors.
- pwdisswordfish8 5y agoWhich isn’t such a great design either. DEV is after all a perfectly legitimate directory name. It would have been even weirder to be able to have a file named AUX.H in any directory except C:\DEV. I wonder why didn’t they instead add a switch to bring back the requirement of a colon after the device name.
- zinekeller 5y ago> Which isn’t such a great design either. I'll guess that you didn't knew that DOS 1.x don't have any concept of directories. It's essentially a novo terra for DOS applications, and makes sense considering that Unix also standardised at /dev.
- 0xbadcafebee 5y agoTwitter is a bad blogging platform.
- oh_sigh 5y agoI also need to always refresh the page 2-3 times before a tweet will show, otherwise it just says "Something went wrong".
- accelbred 5y agoSame issue here, fixed it by using the "Privacy Redirect" firefox extension to redirect twitter links to nitter.
- RobRivera 5y agoi was asked to verify my phone number and provide approval for data harvesting. honestly im done using the platform anyways. its all so tiresome
- ilammy 5y agoIf you're patient enough, you can not provide a phone number, then get your account blocked due to suspicious activity. Then you can appeal. Then get blocked again and appeal. Two-three times. Eventually they'll allow you to exist without a phone number. For some time.
- young_unixer 5y agoFacebook, Instagram, Twitter, they all ask for phone number now. That's the main reason I don't have social media.
- idbfs 5y agoI knew what this was going to be as soon as I saw "aux.h" in the screenshot. Some years ago I was working on an embedded system that involved DisplayPort. For those unaware, DP's control channel is called AUX. One day, my new co-worker who used Windows asked me, who used Linux, why my AUX-related code wasn't checked in - which it most certainly was. And that, folks, is how I learned about this absurd property of Windows that exists to this day.
- rrauenza 5y agoIt's all just a con. C:\>echo foo > con foo
- sixothree 5y agoI still use copy con on a regular basis to quick and dirty create files.
- SamBam 5y agoOS filename issues and checking in code reminds me of an 8-hour mess I got myself into due to OS X deciding that filenames are case-insensitive, and git knowing that they are not...
- pezezin 5y agoI have had funny experiences copying files from Linux to a NTFS partition, because NTFS is actually case-sensitive, but Windows itself is not, so you suddenly end up with two files that differ only by case and you can't delete or rename them (but funnily enough they show fine on Explorer).
- walrus01 5y agolp0 is on fire
- tardismechanic 5y agor/BarbaraWalters4Scale
- bb88 5y agoFWIW, foone asked Hacker News to stop linking to his twitter account. https://twitter.com/Foone/status/1310434318490034176 https://twitter.com/Foone/status/1310434318490034176
- Somasis 5y ago*their
- ridaj 5y ago*���� https://mobile.twitter.com/Foone/status/1067912348881408002 https://mobile.twitter.com/Foone/status/1067912348881408002
- decremental 5y agoDon't be that guy.
- rosstex 5y agoDon't be that guy.
- epistasis 5y agoBeing "that guy" in this scenario would mean using terms for some one that they would prefer not be used. It's not a big deal to correct pronouns, any more that it is to correct the spelling of some one's name. Acknowledge, move on, and forget.
- decremental 5y agoStop pushing your weirdo ideology on people. Just be normal.
- deleted 5y ago[deleted]
- DonHopkins 5y agoFrom a look at your posting history, you're just jealous because you ARE that guy, who goes out of his way to be an asshole, then pretends he's the victim, while actually being a childish bully. Your pathologically obsessive focus on certain other people's issues makes it transparently obvious to anyone who's not you, that you have a lot of your own deep issues that you haven't dealt with.
- tdeck 5y agoI thought it would be "LPT on fire"
- iaw 5y agoI'm sorry, normally I'm able to grok this stuff but could someone explain why this error arises? I did not follow the logic.
- dragonwriter 5y agoAUX (including AUX.*, in any directory on Windows ) is a special “file” representing a hardware device (by default, tue first serial port, same as COM1); trying to copy to or from a file name matching that pattern results in accessing the device instead. There are a bunch of these special files. [0] [0] A list is deep on this page: https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file https://docs.microsoft.com/en-us/windows/win32/fileio/naming...
- sixothree 5y agoTry saving any file as aux.txt in windows.
- ChrisSD 5y agoFor legacy reasons, any drive path that ends in a special name, such as `AUX` will be rewritten by Win32 as the NT path `\??\AUX`. This `AUX` is a special device, not a file on the filesystem. So, for example, `C:\Users\ChrisSD\AUX` will be resolved to `\??\AUX`. Even more surprisingly, any filename that starts with `aux.` will also be affected by this. E.g. `C:\Users\ChrisSD\aux.txt`.
- AnimalMuppet 5y agoIt's not a mistake from 1974. It's a reasonably good bit of design from 1974 that has persisted with very little change since then, even though it no longer is a good bit of design. Now it's sacrificing sanity on the alter of backward compatibility. But it wasn't insane to begin with. The insane part is never changing it.
- wvenable 5y agoNever break userland.
- BuyMyBitcoins 5y agoPersonally I can live with not being able to name a file con.txt, along with the other reserved terms. I guess it would be nice if I could, but I’m more likely to run some old programs than I am to name files using those keys.
- catblast01 5y agoOh look, an annoying to read Twitter thread with hipster geek melodrama that isn’t even historically accurate. How exciting.
- spankyspangler 5y agoYeah, it's tiresome and unfunny. Yes, things have bugs and design flaws. No, your painfully unoriginal caterwauling about how much you're pretend it vexes you does not make you interesting or intelligent.
- chungy 5y agoThe thread inaccurately describes the limitation of these special names being on the "OS level" -- it's actually one layer down, in the DOS and Win32 subsystems. Windows NT doesn't throw fits about these file names if the subsystem you run under (see: POSIX, LXSS, OS/2) doesn't care about them. Cygwin can even override the Win32 behavior by just passing all its file handlers through the native NT API instead of the Win32 API.
- ChrisSD 5y agoIndeed. And Win32 even gives you a way to bypass the legacy behaviour. You can use `\\?\` paths, which get automatically translated to `\??\` NT paths but are otherwise left untouched.
- spcebar 5y agoReminder that foone hates being linked on HN, so, before you start complaining about the Twitter format, as happens every time foone gets linked, remember that they didn't ask to be here. 99% of the time someone uses a thread unroller when the thread is finished, so if you can't stand going tweet to tweet, scroll down to the bottom and find an unrolled link. Also, foone is non-binary.
- cbanek 5y agoI really enjoy the end of the rant where he says he's been in the hospital for a number of hours in the middle of the night. It was a strange ending, but oddly fitting somehow.
- thanatos519 5y agoI used to keep my pr0n in a directory called "NUL" which I would temporarily rename to "XUL" with Norton Disk Editor. That was the only way to see or access the files, until my dad, wondering where the disk space had gone, ran a disk usage utility which read the disk directly instead of going through DOS.
- tsujp 5y agoAh yes harken back to the days of endless `pr0n` and `pr0n5` or `pr0ns` folders on a LAN DC Hub (DC++).
- chrischen 5y agoIt's 2021 and I just read an article broken into tiny chunks because of technology invented in 1984, and apparently still bound by its limitations even until this day...
- kalleboo 5y agoThe author chooses to use this medium as a way to share his findings without losing them to his ADHD - if he tried to write a long form blog post it would never be complete. https://news.ycombinator.com/item?id=20081056 https://news.ycombinator.com/item?id=20081056 > so given this is a choice between two options, I can either: 1. make rambly tweet-threads that some people hate and wish were blogs 2. make no blog posts > I am sorry that I am picking #1, but it's really best for everyone.
- tremon 5y agoazure-pipelines.yml This is the 1980s holdout that bothers me much more. It's 2021 and Microsoft still clings to three-letter filename extensions? Curiously, they did abandon the 8 in 8.3, but not the 3.
- micv 5y agoYou can use four or more letter extensions quite happily in my experience (.html works for example). Three is just convention.
- hendi_ 5y agoBack when uploading Warez to unintentionally open FTP servers was still a thing this was quite handy. Apparently some server software used some low level API to create directories, so you could create folders named LPT1, AUX etc. and put your stuff in there. Many server admins who would usually delete your uploads quickly weren't able to access or delete these folders, and your stuff was up longer.
- megablast 5y agoOr just use spaces or special characters.
- enriquto 5y agodoes not seem to be a mistake, it looks like it works as intended
- benibela 5y agoOn Windows 9x you could crash everything with a blue screen by trying to access c:\con\con Even remotely, <img src="file://c:/con/con"> on a website Those were fun times
- FerretFred 5y ago"Something went wrong. Try reloading" Yup, that's a timeless message :-)
- evilDagmar 5y agoSweet jesus. I really thought they'd killed this misfeature off after all the shenanigans we had with it in the late nineties.