Angular.js is dead, so let's talk about everything else


  • Banned

    @blakeyrat said:

    64-bit CPUs don't support running 16-bit apps. The CPU dropped support, not Microsoft.

    If it was true, this wouldn't happen.

    @blakeyrat said:

    I know people like irrationally hating Microsoft for shit, but at least hate Microsoft for stuff they actually do.

    I don't do that. I only blame them for what they actually do. Forcing metrosexuality on desktop Windows users, taking advantage of monopoly in office software market, using the wrong convention with command line switches and path separators, future-compatible-my-ass design of WinAPI, etc. Up until now, I also criticized them for dropping support for 16-bit apps, but...

    @blakeyrat said:

    You can run them in XP Mode, in Windows 7.

    Forgot about that too. You are right, they're even less evil than I thought (and I have pretty good opinion about them; even better since they announced C# for Linux).



  • @Gaska said:

    If it was true, this wouldn't happen.

    Really poor videos by German idiots who don't have screen capture hardware nor, apparently, even a book to set the camera down on?

    Seriously, though. I just said it's perfectly possible to run 16-bit Windows apps on a CPU running in 32-bit mode. Gee, do you think maybe that's what that awful video is demonstrating? The thing I just said was easily doable?

    @Gaska said:

    Forcing metrosexuality on desktop Windows users,

    You are legitimately insane, aren't you?

    @Gaska said:

    using the wrong convention with command line switches and path separators,

    At the time they selected it, there was no "convention". And if the "convention" was determined by anything criteria other than "boy howdy do I love Linux, guyzzz!" Microsoft's would have won, being vastly more popular.

    @Gaska said:

    future-compatible-my-ass design of WinAPI,

    Huh? What does that even mean?



  • @Gaska said:

    Imagine what would our culture be like if we couldn't listen to music from 30 years ago.
    And I do feel the pain of not being able to play RoboSport, SpaceBucks, and all the other games from my youth. But those are games, not line-of-business applications. Aside from embedded systems where you're not supposed to change the OS anyway, what LOB app has been around unchanged for the past 20 years that's still useful?@blakeyrat said:
    I dunno if 8 runs XP Mode but who cares really.
    If you installed it under Windows 7, you can import the VM into Hyper-V (and lose all Start Menu shortcuts). If you didn't, then it is no longer available.@Gaska said:
    If it was true, this wouldn't happen.
    Congratulations, you just demonstrated that all x86 processors start up in 8086-compatibility ("real") mode. Have yourself a cookie, read the documentation, and learn about how turning on 64-bit locks you out of real mode until the next reboot.@Gaska said:
    Forcing metrosexuality on desktop Windows users,
    Flagged.@Gaska said:
    taking advantage of Windows monopoly to affect office software market,
    That was true in 1993, 1996, 1999, 2002. Not so much now. Also FTFY.@Gaska said:
    using the wrong convention with command line switches and path separators,
    Try again. It used the convention of Digital Research CP/M, which was the OS it was intending to compete with. It wasn't originally (1981! 33 years ago!) supposed to compete with UNIX.@Gaska said:
    future-compatible-my-ass design of WinAPI,
    This says it better than I can:@blakeyrat said:
    Huh? What does that even mean?


  • Discourse touched me in a no-no place

    @blakeyrat said:

    XP Mode isn't a virtualization, it's a full 32-bit CPU emulator.

    It's just a Windows XP virtual machine. VirtualPC (or the recent versions at least) is virtualisation.


  • Banned

    @blakeyrat said:

    Really poor videos by German idiots

    That's racist. Although, does racism applies to insulting German people?

    @blakeyrat said:

    Seriously, though. I just said it's perfectly possible to run 16-bit Windows apps on a CPU running in 32-bit mode.

    No, you said something totally opposite - that CPU vendors dropped the support for 16-bit apps. In other words, that it's absolutely impossible to run 16-bit code of any kind without emulation layer because the processors cannot cope with it anymore. Or did you mean something totally else by "64-bit CPUs don't support running 16-bit apps"?

    PS x86-64 have a dedicated mode for "64-bit system but 16-bit application" scenario.

    @blakeyrat said:

    You are legitimately insane, aren't you?

    No, I'm perfectly sane - I don't like the new Windows 8 look after all. And if you can't handle figurative speech by puns, that's your problem.

    @blakeyrat said:

    At the time they selected it, there was no "convention".

    There were several, to be precise. Their choice of which one to go with was totally arbitrary. Turns out, in hindsight, they have chosen wrong. While it's not their fault things turned out like they did, it was totally their deliberate action that they chose this and not anything else. I can hate them for that just like I can hate that t-shirt for being blue.

    @blakeyrat said:

    Huh? What does that even mean?

    WinAPI tried to be future-compatible but failed tremendously, and the outcome is an API that would be much, much better if they totally disregarded the future - great many unused parameters that have to always be zero, and many functions being duplicated because the older one doesn't have sufficient argument list to hold all the stuff that's needed in the newer one. Future compatibility my ass.

    @TwelveBaud said:

    And I do feel the pain of not being able to play RoboSport, SpaceBucks, and all the other games from my youth. But those are games, not line-of-business applications.

    The generalized term for both is "application". And I was arguing about applications in general, not some subset of it (even though one subset suffers much more than the other), because solving the problem for one subset solves it for the whole set.

    @TwelveBaud said:

    what LOB app has been around unchanged for the past 20 years that's still useful?

    Total Commander, if by "unchanged" you mean "still useful as it was", not literally unchanged (because all useful apps get messed with).

    @TwelveBaud said:

    Congratulations, you just demonstrated that all x86 processors start up in 8086-compatibility ("real") mode. Have yourself a cookie, read the documentation, and learn about how turning on 64-bit locks you out of real mode until the next reboot.

    I wouldn't point out the obvious if @blakeyrat didn't say the opposite. Also, protected mode 16-bit apps can still be run in 64-bit mode.

    @TwelveBaud said:

    That was true in 1993, 1996, 1999, 2002. Not so much now. Also FTFY.

    It was most notable in 2007, when those dickweeds passed their new-fangled file format as "standard". I was talking about Office and not Windows for a reason.

    @TwelveBaud said:

    Try again. It used the convention of Digital Research CP/M, which was the OS it was intending to compete with. It wasn't originally (1981! 33 years ago!) supposed to compete with UNIX.

    See above.


  • 🚽 Regular

    @Gaska said:

    using the wrong convention for [...] path separators,
    I rather have \ as a path separator than /. / is an actual punctuation mark I would sometimes like to use in filenames.

    Filed under: Vote ¶ for path separator



  • How about not having path separators and having paths be an array of strings?

    That way, there are no illegal characters in filenames and no filesystem vulnerabilities with \0 in filenames and everyone's happy.



  • @ben_lubar said:

    How about not having path separators and having paths be an array of strings?

    That way, there are no illegal characters in filenames and no filesystem vulnerabilities with \0 in filenames and everyone's happy.

    How would the former prevent the latter in, say, C/C++ which uses \0 to terminate strings?



  • C++ doesn't terminate strings with \0. In this scenario, C was designed without all the crazy bad stuff because the filesystems and Unix were as well.



  • @Gaska said:

    Or did you mean something totally else by "64-bit CPUs don't support running 16-bit apps"? PS x86-64 have a dedicated mode for "64-bit system but 16-bit application" scenario.
    Yes, he did, and no, it doesn't. The CPU starts in 16-bit mode for compatibility with 16- and 32-bit operating systems. But once a 64-bit operating system flips the Big Red Longlong Switch, no more 16-bit code can be run that boot. Ever.@Gaska said:
    WinAPI tried to be future-compatible but failed tremendously, and the outcome is an API that would be much, much better if they totally disregarded the future - great many unused parameters that have to always be zero, and many functions being duplicated because the older one doesn't have sufficient argument list to hold all the stuff that's needed in the newer one. Future compatibility my ass.
    You're seriously whining about lpReserved? Really?@Gaska said:
    The generalized term for both is "application". And I was arguing about applications in general, not some subset of it (even though one subset suffers much more than the other), because solving the problem for one subset solves it for the whole set.
    The defining feature of games is that they're drop-kicked out the door with limited if any support, "The Sims" notwithstanding, yet continue to be fit for purpose (amusement) years later. Business apps tend to have 5-10 years of support, but continue to grow and evolve over their history to meet new business needs.@Gaska said:
    Total Commander, if by "unchanged" you mean "still useful as it was", not literally unchanged (because all useful apps get messed with).
    Total Commander has a 32-bit edition, and has since at least version 6 (when the 16-bit version was frozen 6 years ago). There is an upgrade path. You won't lose anything. Let go.@Gaska said:
    Also, protected mode 16-bit apps can still be run in 64-bit mode.
    None of them have ever existed for DOS or Windows. (Even protected-mode DOS applications had a real mode "extender", and relied on real-mode OS calls.)@Gaska said:
    It was most notable in 2007, when those dickweeds passed their new-fangled file format as "standard". I was talking about Office and not Windows for a reason.
    And guess what? It wasn't actually a standard, and enough people using ClarisWorks, AppleWorks, StarOffice, and Open Office bitched that in 2009 Microsoft capitulated and added load/save for OpenDocument to Office.@Gaska said:
    There were several, to be precise. Their choice of which one to go with was totally arbitrary.
    No it wasn't. They went with the one of the OS they were replacing. Learn.@ben_lubar said:
    C++ doesn't terminate strings with \0. In this scenario, C was designed without all the crazy bad stuff because the filesystems and Unix were as well.
    All strings are Pascal strings? I... could actually get used to that.



  • @TwelveBaud said:

    The defining feature of games is that they're drop-kicked out the door with limited if any support, "The Sims" notwithstanding, yet continue to be fit for purpose (amusement) years later. Business apps tend to have 5-10 years of support, but continue to grow and evolve over their history to meet new business needs.

    Most indeed are -- some, like C&C Renegade, got drop-kicked out the door half-baked, even! The one class of counterexamples I can think of are long-lived MMOs.

    @TwelveBaud said:

    And guess what? It wasn't actually a standard, and enough people using ClarisWorks, AppleWorks, StarOffice, and Open Office bitched that in 2009 Microsoft capitulated and added load/save for OpenDocument to Office.

    Almost -- turns out that Office doesn't support the 'flat' single-XML-file form of OpenDocument documents. Not a huge deal, though.


  • Discourse touched me in a no-no place

    @TwelveBaud said:

    All strings are Pascal strings? I... could actually get used to that.

    They're not true Pascal strings, where the length was encoded in a leading byte of the array of characters. But they're the approximately equivalent concept; production string implementations (across many languages) have a few fields internally. In particular, they have a pointer to a buffer of characters (of appropriate size), the length in terms of characters and the capacity, which is the size of the buffer (which can be larger than the length, allowing some operations — concatenation especially — to be much more efficient). They might have many more, depending on just how sophisticated the string implementation really is. (They might also use something really complex like ropes under the cover, though it's not entirely clear that that's actually more efficient with real data on real machines.)

    Strings are serious business, but there's some pretty good understanding out there now on how to implement them well.



  • @Gaska said:

    That's racist. Although, does racism applies to insulting German people?

    No; every nation and race has idiots.

    @Gaska said:

    No, you said something totally opposite - that CPU vendors dropped the support for 16-bit apps.

    I wasn't as clear as I could have been but I did say:

    It wasn't Microsoft's decision to remove the CPU features that allow 16-bit apps to run when the CPU is running in 64-bit mode,

    @Gaska said:

    No, I'm perfectly sane - I don't like the new Windows 8 look after all. And if you can't handle figurative speech by puns, that's your problem.

    Maybe the problem is you aren't aware that metrosexual is a word which has a meaning that has absolutely nothing to do with Microsoft?

    @loopback0 said:

    It's just a Windows XP virtual machine. VirtualPC (or the recent versions at least) is virtualisation.

    The "VirtualPC" product is both; it has a full emulator (the thing used to run on PowerPC, in fact, that's where they got their start: providing 486-compatibility for PPC-owning Mac users), and they've also created a version that uses virtualization.

    Microsoft bought it, I believe, because they strategically anticipated itanium would require them to include an x86 emulator to be able to run any actually useful software. When itanium cratered, that need became moot.


  • Discourse touched me in a no-no place

    @blakeyrat said:

    The "VirtualPC" product is both; it has a full emulator (the thing used to run on PowerPC, in fact, that's where they got their start: providing 486-compatibility for PPC-owning Mac users), and they've also created a version that uses virtualization.

    Microsoft bought it, I believe, because they strategically anticipated itanium would require them to include an x86 emulator to be able to run any actually useful software. When itanium cratered, that need became moot.

    Yeah, you're right (I know - DUH!) - I'd misread it before.



  • @ben_lubar said:

    C++ doesn't terminate strings with \0. In this scenario, C was designed without all the crazy bad stuff because the filesystems and Unix were as well.

    If you're using std::string that may be true, but if you're using a char[] or char* then it most certainly does.


  • Discourse touched me in a no-no place

    It's a shame there's nothing in C++ to allow string literals to be of real type const std::string (or some variant thereof) instead of having to bootstrap them from C string literals. I know why this is done that way, and would choose the same in the circumstances, but that doesn't stop it from being a shame.



  • If I take a language like Java and I make a new string class that uses null termination and an arbitrary-sized byte[], does that mean the standard library string class is no longer the language's string class?



  • ben@australium:~$ cat wtf.cpp
    #include <string>

    int main() {
            const std::string paula = "Brillant!";
            return 0;
    }
    ben@australium:~$ g++ -Wall -Wextra -pedantic -Dickweed wtf.cpp
    ben@australium:~$

  • Discourse touched me in a no-no place

    @ben_lubar said:

    If I take a language like Java and I make a new string class that uses null termination and an arbitrary-sized byte[], does that mean the standard library string class is no longer the language's string class?

    Not in Java, as the arrays there always know their size (and are always bounds-checked unless the runtime can prove the unnecessary-ness of the check) and "string literals" are defined to be of type java.lang.String


  • FoxDev

    🚩

    👍



  • @ben_lubar said:

    If I take a language like Java and I make a new string class that uses null termination and an arbitrary-sized byte[], does that mean the standard library string class is no longer the language's string class?

    Totally moot point if the stdlib itself doesn't use the stdlib string class.

    Which C++ doesn't. Both ifstream.open and ofstream.open take filenames of type const char*, which are good old-fashioned C-style null terminated strings.

    Edit: Apparently C++11 added the option to use std::string args instead to those functions, but up until then you didn't have a choice but to use char*



  • @Gaska said:

    Official support of legacy apps has ended.

    It hasn't - it's just confined to 32-bit Windows.
    @blakeyrat said:
    64-bit CPUs don't support running 16-bit apps. The CPU dropped support, not Microsoft. I know people like irrationally hating Microsoft for shit, but at least hate Microsoft for stuff they actually do. It wasn't Microsoft's decision to remove the CPU features that allow 16-bit apps to run when the CPU is running in 64-bit mode, that was AMD's decision. Bitch at AMD, and at Intel who adopted AMD's scheme.
    NTVDM supported running 16-bit DOS and Windows application on non-Intel CPUs without any problems through the use of x86 emulators (there's still references to SoftPC in XP's NTVDM). If Microsoft wanted, they could've easily ported that support to IA64 and x64, but they decided it's not worth the hassle.
    @blakeyrat said:
    XP Mode isn't a virtualization, it's a full 32-bit CPU emulator.
    It's virtualization really. Originally XP mode didn't even work without hardware virtualization support (although that was later changed).
    @blakeyrat said:
    I dunno if 8 runs XP Mode but who cares really.
    Windows Virtual PC is only supported on Windows 7 (and only on Pro, Enterprise and Ultimate versions). 8 has Hyper-V instead, which is an entirely different beast.
    @Gaska said:
    If it was true, this wouldn't happen.
    Blakey is still right - while you can run 16-bit code directly, or in v86 mode in 32-bit protected mode, v86 is not supported when running in long (x64) mode.
    @Gaska said:
    Imagine what would our culture be like if we couldn't listen to music from 30 years ago.
    Good luck trying to find an 8-track player.


  • ♿ (Parody)

    30 years ago was mostly cassette tapes and the early days for compact discs.


  • Banned

    @Zecc said:

    I rather have \ as a path separator than /. / is an actual punctuation mark I would sometimes like to use in filenames.

    Aside the fact you can't have / in filename even on Windows, ?, " and : are all invalid characters too. The problem isn't just the existence of path separator; the problem is handling the paths in general, in all apps, on pretty much every level. Ideally, filenames should be separate from file identifiers; this would allow any character in name, but would turn everything we know about shell scripting upside down.

    ...Wait a minute; don't modern filesystems use inode numbers for file identifiers already?


    @TwelveBaud said:

    Yes, he did, and no, it doesn't. The CPU starts in 16-bit mode for compatibility with 16- and 32-bit operating systems. But once a 64-bit operating system flips the Big Red Longlong Switch, no more 16-bit code can be run that boot. Ever.

    ORLY?

    Compatibility mode supports binary compatibility with existing 16-bit and 32-bit code. Long-mode doesn't support obsolete real mode or obsolete virtual-8086 mode and it also doesn't support hardware task switching.


    @TwelveBaud said:

    You're seriously whining about lpReserved? Really?

    Yes. It's really an awful feeling to write four NULLs for every three actual parameters. I'm not saying it's unusable; I can totally bear it, just like I can bear C macros expansion order that requires facade macro every time you want to use another macro as argument. I could probably also work fine with all the 65536 PHP fuckups, although I never tried. I can also live with SFINAE insanity in C++ templates and fifty-pages-long error messages; it takes some practice, but they're fairly easy to read once you know where to look.

    @TwelveBaud said:

    Total Commander has a 32-bit edition, and has since at least version 6 (when the 16-bit version was frozen 6 years ago). There is an upgrade path. You won't lose anything. Let go.

    You asked for a still useful application, not one that doesn't have a newer version or can be easily replaced with alternatives - and I've gave you exactly an example of that. I've been around in this world for probably less time than you have been married (disclaimer: I know nothing about you; it's just a pure guess for the sake of narrative), and I don't remember DOS being used for anything but launching games - I don't know any business applications of that time. Also, I'm not arguing anything practical - when I say "it's bad", I mean "the world would be better if they did otherwise". Overfeeding pets is bad, despite the fact it totally doesn't matter to anyone in the world and there are absolutely no consequences of this.

    @TwelveBaud said:

    None of them have ever existed for DOS or Windows. (Even protected-mode DOS applications had a real mode "extender", and relied on real-mode OS calls.)

    \http://en.wikipedia.org/wiki/Protected_mode
    Windows 3.0, when switching to protected mode, decided to preserve the single privilege level model that was used in real mode, which is why Windows applications and DLLs can hook interrupts and do direct hardware access. That lasted through the Windows 9x series.

    Although this might be not relevant; I'm too young to know what it was actually like in those days.

    @TwelveBaud said:

    And guess what? It wasn't actually a standard

    Formally, OOXML is a standard. ISO/IEC 29500-1:2008

    @TwelveBaud said:

    No it wasn't. They went with the one of the OS they were replacing. Learn.

    OK, one of the choices was far more preferable than the others. They still had a choice. Kinda like a soldier on war has a choice, except soldier is in far, far worse position. Unless DOS absolutely had had to keep the shell exactly the same as CP/M (which I seriously doubt, but it might have been a case). Point is, if they made it like UNIX, many problems with inter-system cooperation wouldn't exist - and they're very real problems apparently, since Windows half-implements / as path separator and - as command switch prefix.


    @blakeyrat said:

    No; every nation and race has idiots.

    And why exactly that guy from the video is an idiot? Because he installed DOS on i7?

    @blakeyrat said:

    Maybe the problem is you aren't aware that metrosexual is a word which has a meaning that has absolutely nothing to do with Microsoft?

    Or maybe the problem is that you're not aware that this kind of misusing a word is legal in English, and even has a fancy scientific term (malapropism)?


    @powerlord said:

    If you're using C++ that may be true, but if you're using C then it most certainly does.

    FTFY


    @dkf said:

    It's a shame there's nothing in C++ to allow string literals to be of real type const std::string (or some variant thereof) instead of having to bootstrap them from C string literals.

    C++11 operator"" anyone?


    @ender said:

    It hasn't - it's just confined to 32-bit Windows.

    Point taken.

    @ender said:

    It's virtualization really. Originally XP mode didn't even work without hardware virtualization support (although that was later changed).

    Wikipedia says it recompiles code on the fly. That's closer to emulation than virtualization.

    @ender said:

    Blakey is still right - while you can run 16-bit code directly, or in v86 mode in 32-bit protected mode, v86 is not supported when running in long (x64) mode.

    Yeah, I agree I was wrong here. Though I was still partially right - protected mode 16-bit is still supported. How big is my righteousness depends on how much market share protected mode had compared to real mode. Does someone have some data for that? Google has failed for me.

    @ender said:

    Good luck trying to find an 8-track player.

    http://www.ebay.com/sch/8-Track-Players-/14999/i.html



  • @Gaska said:

    Aside the fact you can't have / in filename even on Windows, ?, " and : are all invalid characters too.

    On Mac Classic, only colon (and control characters, and linefeeds and carriage returns you pedantic dickweeds I am pre-empting your asses!) was reserved. So you could name a file after a date. Whee.

    @Gaska said:

    ...Wait a minute; don't modern filesystems use inode numbers for file identifiers already?

    Yeah but badly-written applications don't.

    One of my rude shocks on moving to Windows from Mac Classic is if you had a file open, then renamed the file, then hit "save" in the editor, it'd write a new file with the old name. Whaaa? That'd never happen on Mac Classic. It took me years to adjust my workflow to that annoying bug. And I've had long debates with idiot Windows/DOS users who think it's not a bug. (It is.)

    @Gaska said:

    Formally, OOXML is a standard. ISO/IEC 29500-1:2008

    It's just a really shitty one that only supports a fraction of the features of Microsoft Office, and is therefore unusable by Office.

    @Gaska said:

    And why exactly that guy from the video is an idiot? Because he installed DOS on i7?

    No because he uploaded that shitty-ass video. I said as much the first time I called him an idiot.

    @Gaska said:

    Or maybe the problem is that you're not aware that this kind of misusing a word is legal in English,

    I wasn't even aware English had a police force!


  • Discourse touched me in a no-no place

    @blakeyrat said:

    I wasn't even aware English had a police force!

    What did you think the Grammar Police were?


  • Banned

    @blakeyrat said:

    On Mac Classic, only colon (and control characters, and linefeeds and carriage returns you pedantic dickweeds I am pre-empting your asses!)

    So there's still room for improvement.

    @blakeyrat said:

    So you could name a file after a date. Whee.

    @blakeyrat said:

    Yeah but badly-written applications don't.

    That's my point.

    @blakeyrat said:

    One of my rude shocks on moving to Windows from Mac Classic is if you had a file open, then renamed the file, then hit "save" in the editor, it'd write a new file with the old name. Whaaa? That'd never happen on Mac Classic. It took me years to adjust my workflow to that annoying bug. And I've had long debates with idiot Windows/DOS users who think it's not a bug. (It is.)

    Bug is when a feature is supposed to work but doesn't. What you're talking about is bad design. Though... why would you want to change the name of file you're editing? I can't think of any workflow where it's important, and postponing it to after edit (or saving under new name and deleting the old one afterwards) is serious issue.

    @blakeyrat said:

    It's just a really shitty one that only supports a fraction of the features of Microsoft Office, and is therefore unusable by Office.

    That's why it was a dick move.

    @blakeyrat said:

    No because he uploaded that shitty-ass video. I said as much the first time I called him an idiot.

    So everyone without professional recording equipment is an idiot? Or is it that all people who don't have a strong sense of aesthetics are idiots? Either way, apparently I'm an idiot. Why are you arguing with an idiot?

    @blakeyrat said:

    I wasn't even aware English had a police force!

    When did I say anything about police? All I did is use word "legal", which has multiple meanings, one of which is "conforming to or permitted by (...) established rules" (Merriam-Webster's definition 3).



  • @Gaska said:

    Bug is when a feature is supposed to work but doesn't.

    If the application is referring to the file by it's name instead of it's inode ID/handle/whatever the OS gives it, that's a bug.

    @Gaska said:

    Though... why would you want to change the name of file you're editing? I can't think of any workflow where it's important, and postponing it to after edit (or saving under new name and deleting the old one afterwards) is serious issue.

    Oh hey, look, a Linux user reply! "You don't need to do that. We know better than you."

    @Gaska said:

    That's why it was a dick move.

    Why what was? Getting their own file format standardized instead?

    @Gaska said:

    So everyone without professional recording equipment is an idiot?

    Of course not. You idiot.

    @Gaska said:

    Or is it that all people who don't have a strong sense of aesthetics are idiots? Either way, apparently I'm an idiot. Why are you arguing with an idiot?

    Because I'm waiting to go home from work.


  • Banned

    @blakeyrat said:

    If the application is referring to the file by it's name instead of it's inode ID/handle/whatever the OS gives it, that's a bug.

    No it's not a bug it's a design flaw. A design flaw of assuming path is file identifier (which was actually true at some point on some systems).

    @blakeyrat said:

    Oh hey, look, a Linux user reply! "You don't need to do that. We know better than you."

    No, not Linux user reply - a typical user reply "why the fuck would you need to rename the file you're editing". BTW as soon as you'll explain this part, I'll stop being full of WTF about this.

    @blakeyrat said:

    Why what was? Getting their own file format standardized instead?

    OOXML is the one they have standarized. They even named it similar to OpenDocument to create more confusion. I have no proof, but I think it was deliberate on their side.

    @blakeyrat said:

    Of course not. You idiot.

    So everyone without aesthetics sense is an idiot, then. Good to know.

    @blakeyrat said:

    Because I'm waiting to go home from work.

    It's almost midnight over here. Timezones are funny.



  • @Gaska said:

    No it's not a bug it's a design flaw. A design flaw of assuming path is file identifier (which was actually true at some point on some systems).

    Right; but that assumption and thinking is wrong. The file's path and name is just another bit of meta-data, like it's "last updated" date. Do you think a program should save a second copy of the file if I change its "last updated" date while it's open? The answer is no. Why would the answer be any different for the file's name/path?

    If I take a file containing the screenplay of The Tempest and renamed it to "poop.txt" and move it to the desktop, it's still the screenplay of The Tempest. I didn't change anything except meta-data.

    @Gaska said:

    No, not Linux user reply - a typical user reply "why the fuck would you need to rename the file you're editing". BTW as soon as you'll explain this part, I'll stop being full of WTF about this.

    Because halfway through editing it, I think, "oh wait, this document is more about my car than the freeway, I should rename it" and you're saying, "no you can't rename it until you're finished!" And I'm saying, "well why not!?"

    @Gaska said:

    OOXML is the one they have standarized. They even named it similar to OpenDocument to create more confusion. I have no proof, but I think it was deliberate on their side.

    Oh right, I had them mixed up. Fair.

    @Gaska said:

    Timezones are funny.

    Hilarious.


  • Banned

    @blakeyrat said:

    Right; but that assumption and thinking is wrong.

    That's what I'm saying too. Bro do you even read?

    @blakeyrat said:

    The file's path and name is just another bit of meta-data, like it's "last updated" date. Do you think a program should save a second copy of the file if I change its "last updated" date while it's open? The answer is no. Why would the answer be any different for the file's name/path?

    Path is equivalent of primary key in SQL. The flawed design strongly binds the filename and path to file's identity. Under this flawed design, changing filename is by definition creating a new file with same content. It shouldn't be right that, but it is, and the design is consistent, and it works as intended.

    @blakeyrat said:

    If I take a file containing the screenplay of The Tempest and renamed it to "poop.txt" and move it to the desktop, it's still the screenplay of The Tempest. I didn't change anything except meta-data.

    You're right - the file still has the same data. But technically, if you had FAT filesystem, you created a new file and copied its content from old place, and also, if you're using Windows, you changed the type of data it holds. On other filesystems and/or operating systems, this might not be true - for example, under Linux on ext4, you would have created a new link to the same file; depending on how MIME type is detected, you might or might not have changed the type of data. In either case, the bytes are all intact.

    @blakeyrat said:

    Because halfway through editing it, I think, "oh wait, this document is more about my car than the freeway, I should rename it" and you're saying, "no you can't rename it until you're finished!" And I'm saying, "well why not!?"

    Real life example please. Also, don't put your shoulder aliens' words in my mouth. I would say "save it as new file and take care of the leftover one later, or if you really care, save, close, rename and reopen". My documents are also usually named "Unnamed" until I'm done, but that's just me; it's definitely not the only way to go, and probably one of the worst (though not the worst of the worst).

    @blakeyrat said:

    Oh right, I had them mixed up. Fair.

    I'm gonna print this and put in a copper frame over my bed because it's so rare when you admit you stand corrected.

    Gonna hit bed now. Cheers to y'all, have a nice day! Say hi to @henke37!


  • ♿ (Parody)

    @Gaska said:

    I don't remember DOS being used for anything but launching games

    I remember when my dad brought a copy of Lotus 1-2-3 home from work and we used it to keep track of Little League batting averages. Good times. You had to have a specific Lotus printer "driver" for your printer.


  • ♿ (Parody)

    @Gaska said:

    Or maybe the problem is that you're not aware that this kind of misusing a word is legal in English, and even has a fancy scientific term (malapropism)?

    He "pretends" to misunderstand all sorts of things.



  • @Gaska said:

    Formally, OOXML is a standard. ISO/IEC 29500-1:2008

    Yeah, and it only took Microsoft until Office 2013 to implement it.
    @Gaska said:
    Wikipedia says it recompiles code on the fly.
    Then Wikipedia is wrong (or maybe it's referring to the original VirtualPC for MacOS that ran on PowerPC, which was an emulator).
    @Gaska said:
    Though I was still partially right - protected mode 16-bit is still supported.
    That it is, but you won't be able to run 16-bit DOS and Windows programs with just that (they need real mode, if for nothing else for the non-standarized loader that switches to protected mode). Then again, I doubt there were many 16-bit protected mode programs - certainly fewer than those that ran in 32-bit protected mode, either through DPMI, or through some earlier implementation (not that you could run any of these either, since you can't know that they're 32-bit until the real-mode loader runs).



  • @ben_lubar said:

    document.write

    document.wrong


  • Discourse touched me in a no-no place

    @Zecc said:

    I rather have \ as a path separator than /. / is an actual punctuation mark I would sometimes like to use in filenames.

    [pjh@dellxps-pjh tmp]$ cd tmp
    [pjh@dellxps-pjh tmp]$ ls
    [pjh@dellxps-pjh tmp]$ touch a∕b
    [pjh@dellxps-pjh tmp]$ ls -a
    ./  ../  a∕b
    [pjh@dellxps-pjh tmp]$ ls -l
    total 0
    -rw-r--r-- 1 pjh pjh 0 Dec 24 14:00 a∕b
    [pjh@dellxps-pjh tmp]$ echo "hello world" > a∕b
    [pjh@dellxps-pjh tmp]$ cat a∕b 
    hello world
    [pjh@dellxps-pjh tmp]$ rm a∕b 
    rm: remove regular file ‘a∕b’? y
    [pjh@dellxps-pjh tmp]$ ls -l
    total 0
    [pjh@dellxps-pjh tmp]$ 
    

    Ok - I cheated slightly..



  • @Gaska said:

    But technically, if you had FAT filesystem, you created a new file and copied its content from old place, and also, if you're using Windows, you changed the type of data it holds.

    This is all wrong. Moving a file to another location on the same drive = renaming in FAT. Changing the extension (which is what I buttume you're talking about in the second part) only changes what program Windows launches when you double-click the file.



  • @Gaska said:

    Path is equivalent of primary key in SQL. The flawed design strongly binds the filename and path to file's identity. Under this flawed design, changing filename is by definition creating a new file with same content. It shouldn't be right that, but it is, and the design is consistent, and it works as intended.
    @Gaska said:
    But technically, if you had FAT filesystem, you created a new file and copied its content from old place
    Uh, no? On FAT you add the starting cluster number to a new directory entry and remove the old directory entry; on NTFS you change the file's $I30 attribute, or one of them if it has many. In neither case is there a new file.@blakeyrat said:
    If the application is referring to the file by it's name instead of it's inode ID/handle/whatever the OS gives it, that's a bug.
    Some software does keep the handle open for as long as the file's being edited, and it's what most programmers first do. Unfortunately, it's been sledgehammered into their heads that this is Bad and Wrong and Buggy (most programmers don't know or care about how to lock and unlock files properly, saving to the same file might corrupt it if the write is interrupted, reads can fail at any time due to surprise removal of the file's underlying volume, ...) so most software reads the whole file to RAM on load, writes to a temp file and renames it on save -- breaking any hard links -- and only remembers the path name.@Gaska said:
    MIME type


  • Java Dev

    @TwelveBaud said:

    Some software does keep the handle open for as long as the file's being edited, and it's what most programmers first do. Unfortunately, it's been sledgehammered into their heads that this is Bad and Wrong and Buggy (most programmers don't know or care about how to lock and unlock files properly, saving to the same file might corrupt it if the write is interrupted, reads can fail at any time due to surprise removal of the file's underlying volume, ...) so most software reads the whole file to RAM on load, writes to a temp file and renames it on save -- breaking any hard links -- and only remembers the path name.

    Those are really two issues though. And the latter is really choosing between evils: Either you write to a temp file and rename, but then hardlinks are broken. Or you write directly to the file, but then the file may be corrupted if the writing application crashes.
    The 'write directly to target' option may be mitigated by using backup files, or incorporating some transactional mechanism into the file format.



  • @Gaska said:

    You can't run legacy apps anymore. Simple as that.

    Except for about a hundred ways to actually run legacy apps.

    @Gaska said:

    If they promoted DOSBox as the way to run legacy apps, it would be OK. But they didn't. Official support of legacy apps has ended. This isn't OK.

    So what? Would you rather use a kludge MS put in to somewhat facilitate the move to a newer platform, or an actual emulator that works perfectly, but doesn't have Microsoft's Stamp Of Approval?

    If the former, I think even Blakey would call you out on this one.

    @Gaska said:

    And they will eventually come up with a better code.

    Yes. Also, cure for cancer. And full decoding of human DNA. And a way to transcendent reality and become gods.

    The point is, you don't have infinite time and money. And software development is all about trade-offs and making the code good enough in given time, so that the venture stays profitable.

    @Jaloopa said:

    Who needs the Beatles

    QFT. Most overrated band ever.

    @Gaska said:

    That's racist. Although, does racism applies to insulting German people?

    "German" was not a race last time I checked (despite what that guy with funny mustache wants you to believe).

    @TwelveBaud said:

    And I do feel the pain of not being able to play RoboSport, SpaceBucks, and all the other games from my youth.

    Haven't we just stated that you can, in multiple ways? You can't run them natively, but then again, you couldn't run most of them natively since we stepped up from 386s or 486s or so and suddenly every game which timed itself with processor clock became unplayable. Not to mention other hardware problems.

    NTVDM was a just barely working kludge from the get-go. There's barely any excuse not to use a proper emulator - speed is pretty much not a concern.



  • @Maciejasjmj said:

    So what? Would you rather use a kludge MS put in to somewhat facilitate the move to a newer platform, or an actual emulator that works perfectly, but doesn't have Microsoft's Stamp Of Approval?

    If the former, I think even Blakey would call you out on this one.

    There's also the whole, "actual paying customers of Microsoft aren't asking for this shit, only grumpy Slashdot-posting MS-haters who pirate their products while pretending to use Linux."

    I can guarantee, guarantee, that XP Mode existed in 64-bit Windows 7 specifically because some large client of Microsoft's (a.k.a. actual paying customers) desired it. And I can practically guarantee it's not in Windows 8 because all the paying companies who previously desired it had updated their shit and no longer do.



  • @blakeyrat said:

    I can guarantee, guarantee, that XP Mode existed in 64-bit Windows 7 specifically because some large client of Microsoft's (a.k.a. actual paying customers) desired it.

    It was fairly useful not only for 16-bit emulation, but also for programs for which compatibility mode didn't work. I remember having to use XP Mode for NetMeeting's remote desktop, because we still had some Win2k workstations and servers with no proper Remote Desktop.

    @blakeyrat said:

    And I can practically guarantee it's not in Windows 8 because all the paying companies who previously desired it had updated their shit and no longer do.

    Perhaps. That still excludes the customers who still use DOS-based programs, but aren't big enough to have that kind of dealings with MS (or just don't care). I've seen people in front of text screens on my post office not long ago.

    The point is still moot, because there are other, better ways to run 16-bit programs.


  • Banned

    @TwelveBaud said:

    On FAT you add the starting cluster number to a new directory entry and remove the old directory entry

    OK, I admit, I got it wrong. Data isn't physically copied over, but the file entry (ie. file identity) is brand neew, as opposed to modern filesystems.

    @Maciejasjmj said:

    So what? Would you rather use a kludge MS put in to somewhat facilitate the move to a newer platform, or an actual emulator that works perfectly, but doesn't have Microsoft's Stamp Of Approval?

    I'm not looking for a way to play Daggerfall. I'm justifying my hatred for Microsoft. INB4: I hate Linux as much as Windows, if not more.

    @Maciejasjmj said:

    Yes. Also, cure for cancer

    Do you have a proof? Because I have a formal proof of my claim.

    @Maciejasjmj said:

    "German" was not a race last time I checked

    Neither are Romanians. Doesn't matter for Tom Fox News.



  • @Gaska said:

    Do you have a proof? Because I have a formal proof of my claim.

    Assume that a document describing cure for cancer exists and is of finite, non-zero length c and consists of symbols from a finite, non-empty set S, and assume that a monkey is a random generator able to generate a symbol from S in finite, non-zero time t with uniform probability distribution.

    For simplicity, let's employ the monkey in an arguably inefficient way, having it generate c symbols from set S, then evaluating the result to determine whether it's a cure for cancer (which also takes finite time t2). Then, generating c symbols from the set S and evaluating the result takes finite time c*t + t2, and the probability of the generated symbols being a cure for cancer is 1 / |S|^c. It's obvious that this represents a real number that is strictly greater than zero and less or equal one.

    Now, in time T, we can conduct floor(T / (c*t + t2)) tries. The probability of getting no cure for cancer in that time follows from binomial distribution and is equal to (1 - (1 / |S|^c)) ^ floor(T / (c*t + t2)).

    As T tends to infinity, given c*t + t2 is finite and greater than 0, floor(T / (c*t + t2)) tends to infinity. Then, since 1 / |S|^c represents a number between 0 and 1, 1 - (1 / |S|^c) is less than one, and therefore the probability of getting no cure for cancer in time T, as time tends to infinity, tends to zero, which means it's certain for cure for cancer to be found in infinite time, Q.E.D.


  • Discourse touched me in a no-no place

    @Maciejasjmj said:

    we still had some Win2k workstations

    Snort. TRWTF.


  • Banned

    @Maciejasjmj said:

    Assume that a document describing cure for cancer exists

    Why would I assume such thing? All the studies so far suggest otherwise.


  • Java Dev

    I think your assumptions are off. Although you may assume a cure for cancer exists, you cannot assume a cure can be described in a document of any specific size c.

    The set of documents of length c of characters from finite set S is finite. However, the set of all documents of finite length, made up of characters from set S, is countably infinite.

    What that does for the probability of a single monkey (or pool of monkeys) hitting it is something I'm not sure of.



  • With all the different types of cancer, you're probably not going to find a cure...


  • Java Dev

    Agreed. I meant to say @Maciejasjmj wasn't solving the problem he said he was solving. He was solving an attack on a finite solution space, I am just saying even if you assume the paper exists, it is in a countably infinite solution space, which definitely affects the rest of the calculation.


  • BINNED

    @Maciejasjmj said:

    I've seen people in front of text screens on my post office not long ago.

    Sure it was DOS and not something mainframe or similar?


Log in to reply