>the only reason a shim is needed is because some other program did something 
>bad...

Which program is that for example, exactly?

If we were reading punched cards, would the keypunch be "bad"?

Or, in a modern context, which one is *bad*, Notepad or Wordpad? You suggest 
that Notepad is bad whereas it does exactly what you want, i.e. it does not 
modify the file, often leaving it unreadable.

When moving files between 'NIX and MS-DOS, with a "shim" that adjusts line 
endings as appropriate, which side is the "bad" one?

We're talking about transferring files between two systems, one of which is 
long obsolete, that are incompatible in various ways, including file names, 
character sets, EOF determination etc.; we know what the systems at each end 
are, so we can automatically make the necessary adjustments.

Considering how many people still have trouble transferring files as is, the 
simpler and straightforward we can make it for new users the better IMO.

The question that should have been asked in the very beginning: What 
alternative do you propose?


  ----- Original Message ----- 
  From: Brian White 
  To: [email protected] 
  Sent: Wednesday, February 13, 2019 9:02 PM
  Subject: Re: [M100] Weird "bug" with TS-DOS 4.0 (ROM version)


  That, (other systems), is a great example of yet another unpredicted yet 
valid situation.


  What if one reads the description on the tin for the tpdd emulator, which 
says it emulates a tpdd...
  So they try to use it with a Brother sewing machine. Is it harmless to 
upper-case the filenames or modify the contents of files in that case?
  Maybe the sewing machine doesn't happen to use files named *.DO, or maybe it 
does, or maybe the names can be anything including .DO with no special meaning?


  Someone also mentioned upper-casing the filenames. Since when is that an 
automatic safe assumption? I can create filenames with lower case letters 
perfectly fine on a real machine.



  All of the situations mentions where the munging is supposedly helpful, are 
what's called shims, and the only reason a shim is needed is because some other 
program did something bad, and now you have to do something bad as well, in the 
opposite direction, just to get the final result that is the same as if neither 
thing had done something bad, IE even the shim admirer is working towards 
un-munging data that someone else munged, and therefore admits the goal of not 
munging data!


  The text editor example is just like ftp. Ancient text editors did that (and 
really crappy current ones), like ancient ftp. Since then, the idea has been 
recognized as more harmful than helpful, and nobody does it any more. ftp 
clients still do it because they are just adhering to the original standard. 
But the standard is old, and newer standards don't do it. http does not do it. 
(http clients & servers may negotiate things like gzip compression in-flight, 
but the data going in one end comes out the other end faithfully)



  That behavior of some old text editors to re-write line-endings or append an 
eof, exists, but is also recognized as a *bad* thing, which is why anyone doing 
any kind of actual work with tex files, not just programmers but anything like 
examining EDI transactions or literally anything, are told not to use 
notepad.exe, but to install notepad++ or any "prgrammer" editor. none of vi, 
vim, emacs etc do such things, etc. Why not? Is it because in 40 years no one 
has gotten around to adding this clearly helpful feature?


  Wherever you feel a need for a shim, it's a necessity to correct for 
someone/something else's undesireable behavior, not a supporting argument for 
doing the same thing some more.



  It's bad enough that we do some other smoke & mirrors with special filenames 
in order to implement subdirectory support. I don't remember off-hand if foo.<> 
is a possible legal filename that a M100 could create or not. It's a very 
useful feature to be able to have subdirectories, but even this could 
theoretically screw something up that was otherwise legal. For instance, is it 
legal/possible for a program to create a file named foo.<> which is just used 
internally by the program, never loaded in TEXT or TELCOM etc? If so, next 
question can that file be saved & restored to a real disk the same as any other 
file? If so, then is that application simply broken and unusable with any tpdd 
emulators that implement TS-DOS directories? Are there any safe assumptions 
about filenames like that wrt other clients like sewing machines and 
synthesizers? It's such a useful feature, and it's been a de rigueur standard 
for so long by now that even *I* would not suggest that any sane tpdd emulator 
should remove it. :) 

  I don't remember from last time I was looking, maybe that theoretical 
possibility is actually allowed for by the tpdd server recognizing, or failing 
to, that the client supports or expects the feature, and maybe NOT treating 
those filenames specially, or sending filenames like that to show directories, 
if the client is not TS-DOS?



  -- 

  bkw




  On Wed, Feb 13, 2019 at 4:53 PM Kevin Becker <[email protected]> wrote:

    An option to not crash the system but also account for some of the 
scenarios Brian suggested would be to create a log file that details any file 
manipulations that happen during a transfer.  That could be useful to some 
developer trying to write a TPDD emulator for some other platform in the future.



      On Feb 13, 2019, at 4:30 PM, Gary Weber <[email protected]> wrote:




      Good point, Mike.   I actually think I support the opt-out feature, just 
as long as the name of the switch on the LaddieAlpha.exe command line is  
--allow_file_system_corruption



      On Wed, Feb 13, 2019 at 2:20 PM Mike Stein <[email protected]> wrote:

        Give up, John; just add a -EOF CLI option as requested and let the user 
guess which one will crash the system, or better yet a checkbox:

        "Crash system after loading (Y/N)?"

        Most ridiculous argument I've read in a long time; why burden an 
inexperienced user with a choice that he/she might not understand when one of 
the two options will crash the system?

        A good program IMO does its job with as little confusion and/or risk 
for the user as possible, regardless of some irrelevant CS101 "principle."

        Maybe just mentioning in the documentation that an inappropriate CTL-Z 
will be stripped and the extension changed if necessary will satisfy the 
zealots...

        Sheesh!
          ----- Original Message ----- 
          From: John R. Hogerhuis 
          To: [email protected] 
          Sent: Wednesday, February 13, 2019 2:14 AM
          Subject: Re: [M100] Weird "bug" with TS-DOS 4.0 (ROM version)


          "That places the obligation on the wrong party."

          It's not a legal issue. It's just functionality.

          Arguing on other turf (FTP, or checksum algorithms, etc) is to 
totally ignore the issue.

          But really, you're arguing on the basis of principle that I agree 
with in principle, but in real life an engineer weighs the issues and can set 
ANY principle aside. 
          Yes my decision will violate your assumptions in a hypothetical 
scenario. I guess.

          That's what I did here, I set a principle aside, because there is 
zero, or really, negative, value in inloading a character that crashes the 
machine.


          The exception to the rule serves the greater good, such as it is with 
our little hobby. But I make decisions just like this in work, and it is part 
of what makes me a good engineer.

          -- John.




      -- 

      Gary Weber
      [email protected]





  -- 

  bkw

Reply via email to