mirror of
https://github.com/nbeaver/why-linux-is-better.git
synced 2025-08-22 21:42:59 +02:00
Line wrapping and formatting.
This commit is contained in:
435
readme.rst
435
readme.rst
@@ -53,7 +53,8 @@ This document will not cover servers, phones, or embedded devices.
|
|||||||
|
|
||||||
This document will not cover closed vs. open source development,
|
This document will not cover closed vs. open source development,
|
||||||
but will instead focus on functionality.
|
but will instead focus on functionality.
|
||||||
There is plenty of discussion of the advantages and disadvantages of open source elsewhere.
|
There is plenty of discussion
|
||||||
|
of the advantages and disadvantages of open source elsewhere.
|
||||||
|
|
||||||
(Besides, what is there to discuss
|
(Besides, what is there to discuss
|
||||||
when we now know that `even Microsoft loves open source`_?)
|
when we now know that `even Microsoft loves open source`_?)
|
||||||
@@ -217,7 +218,8 @@ are lightweight enough that they default to `running from a RAM disk`_,
|
|||||||
and consequently have much faster disk I/O
|
and consequently have much faster disk I/O
|
||||||
than an OS that must access a spinning hard drive.
|
than an OS that must access a spinning hard drive.
|
||||||
(This comes at the cost of disk space being limited by RAM.
|
(This comes at the cost of disk space being limited by RAM.
|
||||||
There's no reason you can't mount an internal or external drive to store files, though.)
|
There's no reason you can't mount an internal or external drive
|
||||||
|
to store files, though.)
|
||||||
|
|
||||||
.. _Puppy Linux: http://puppylinux.org/
|
.. _Puppy Linux: http://puppylinux.org/
|
||||||
.. _running from a RAM disk: https://en.wikipedia.org/wiki/List_of_Linux_distributions_that_run_from_RAM
|
.. _running from a RAM disk: https://en.wikipedia.org/wiki/List_of_Linux_distributions_that_run_from_RAM
|
||||||
@@ -309,7 +311,8 @@ Judging by the number of bug reports and complaints, the answer appears to be ye
|
|||||||
#. http://sumedha.blogspot.com/2011/01/svn-checkout-fails-windows-max-path.html
|
#. http://sumedha.blogspot.com/2011/01/svn-checkout-fails-windows-max-path.html
|
||||||
#. http://forums.mozillazine.org/viewtopic.php?f=29&t=263489
|
#. http://forums.mozillazine.org/viewtopic.php?f=29&t=263489
|
||||||
|
|
||||||
But the bigger issue is that many Windows developers are `so used to`_ `working around`_ the problem
|
But the bigger issue
|
||||||
|
is that many Windows developers are `so used to`_ `working around`_ the problem
|
||||||
that it has become deeply entrenched and may `never be fixed`_.
|
that it has become deeply entrenched and may `never be fixed`_.
|
||||||
|
|
||||||
.. _so used to: http://blogs.msdn.com/b/tomholl/archive/2007/02/04/enterprise-library-and-the-curse-of-max-path.aspx
|
.. _so used to: http://blogs.msdn.com/b/tomholl/archive/2007/02/04/enterprise-library-and-the-curse-of-max-path.aspx
|
||||||
@@ -332,18 +335,20 @@ when trying to resolve canonical file paths.
|
|||||||
.. _this limit is not enforced: http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html
|
.. _this limit is not enforced: http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html
|
||||||
.. _susceptible to buffer overflow: http://stackoverflow.com/questions/1171833/how-to-get-the-absolute-path-of-a-file-programmatically-with-out-realpath-unde
|
.. _susceptible to buffer overflow: http://stackoverflow.com/questions/1171833/how-to-get-the-absolute-path-of-a-file-programmatically-with-out-realpath-unde
|
||||||
|
|
||||||
The 2008 POSIX revision has `addressed the issue`_,
|
The 2008 POSIX revision has `addressed the issue`_, but prior to this
|
||||||
but prior to this the Linux kernel had to make non-standard modifications to avoid overflow,
|
the Linux kernel had to make non-standard modifications to avoid overflow,
|
||||||
and `warned about the problem`_
|
and `warned about the problem`_ in the ``realpath (3)`` man page
|
||||||
in the ``realpath (3)`` man page of the Linux Programmer's Manual.
|
of the Linux Programmer's Manual.
|
||||||
|
|
||||||
.. _addressed the issue: https://www.securecoding.cert.org/confluence/display/seccode/FIO02-C.+Canonicalize+path+names+originating+from+tainted+sources
|
.. _addressed the issue: https://www.securecoding.cert.org/confluence/display/seccode/FIO02-C.+Canonicalize+path+names+originating+from+tainted+sources
|
||||||
.. _warned about the problem: http://linux.die.net/man/3/realpath
|
.. _warned about the problem: http://linux.die.net/man/3/realpath
|
||||||
|
|
||||||
This illustrates that while the Linux kernel developers scrupulously avoid breaking external compatibility,
|
This illustrates that while the Linux kernel developers
|
||||||
|
scrupulously avoid breaking external compatibility,
|
||||||
they also intentionally expose false assumptions,
|
they also intentionally expose false assumptions,
|
||||||
since false assumptions tend to cause hard-to-fix bugs.
|
since false assumptions tend to cause hard-to-fix bugs.
|
||||||
This is why Linus Torvalds `chose an unusually high`_ timer interrupt frequency for Linux:
|
This is why Linus Torvalds
|
||||||
|
`chose an unusually high`_ timer interrupt frequency for Linux:
|
||||||
|
|
||||||
I chose 1000 originally partly as a way to make sure that people that
|
I chose 1000 originally partly as a way to make sure that people that
|
||||||
assumed HZ was 100 would get a swift kick in the pants. That meant making
|
assumed HZ was 100 would get a swift kick in the pants. That meant making
|
||||||
@@ -403,7 +408,8 @@ which could only fit a single alphabet.
|
|||||||
tant to be able to derive a 64-character, monocase alphabet, graphic
|
tant to be able to derive a 64-character, monocase alphabet, graphic
|
||||||
subset from the code by simple, not complex, logic.
|
subset from the code by simple, not complex, logic.
|
||||||
|
|
||||||
--- Charles E. Mackenzie, "Coded character sets: history and development" (1980), p.228
|
--- Charles E. Mackenzie, "Coded character sets: history and development"
|
||||||
|
(1980), p.228
|
||||||
|
|
||||||
In fact, the some of the committee members
|
In fact, the some of the committee members
|
||||||
wanted to reserve the remaining space for control characters.
|
wanted to reserve the remaining space for control characters.
|
||||||
@@ -421,7 +427,8 @@ wanted to reserve the remaining space for control characters.
|
|||||||
--- Ibid, p.232
|
--- Ibid, p.232
|
||||||
|
|
||||||
Though the comittee first formed in 1961,
|
Though the comittee first formed in 1961,
|
||||||
it wasn't until late 1963 that they finally agreed to include a lowercase alphabet,
|
it wasn't until late 1963
|
||||||
|
that they finally agreed to include a lowercase alphabet,
|
||||||
largely because of the influence of the
|
largely because of the influence of the
|
||||||
International Telegraph and Telephone Consultative Committee (CCITT).
|
International Telegraph and Telephone Consultative Committee (CCITT).
|
||||||
|
|
||||||
@@ -469,13 +476,15 @@ that enforcing filename case-sensitivity
|
|||||||
-- and even case-sensitivity in general --
|
-- and even case-sensitivity in general --
|
||||||
was a bad decision. [#against_case_sensitivity]_
|
was a bad decision. [#against_case_sensitivity]_
|
||||||
|
|
||||||
There are also passionate views to the opposite effect. [#against_case_insensitivity]_
|
There are also passionate views
|
||||||
|
to the opposite effect. [#against_case_insensitivity]_
|
||||||
|
|
||||||
Laying aside that argument for the moment,
|
Laying aside that argument for the moment,
|
||||||
why did Windows filenames end up case-insensitive?
|
why did Windows filenames end up case-insensitive?
|
||||||
|
|
||||||
Strictly speaking, modern Windows filenames could be case-sensitive,
|
Strictly speaking, modern Windows filenames could be case-sensitive,
|
||||||
but they aren't because the `Windows API for opening files`_ `is not case-sensitive`_,
|
but they aren't
|
||||||
|
because the `Windows API for opening files`_ `is not case-sensitive`_,
|
||||||
i.e. the `default call`_ to ``CreateFile``
|
i.e. the `default call`_ to ``CreateFile``
|
||||||
does not enable the ``FILE_FLAG_POSIX_SEMANTICS`` option.
|
does not enable the ``FILE_FLAG_POSIX_SEMANTICS`` option.
|
||||||
|
|
||||||
@@ -535,7 +544,8 @@ was optimized for its architecture.
|
|||||||
https://lkml.org/lkml/2002/7/30/257
|
https://lkml.org/lkml/2002/7/30/257
|
||||||
|
|
||||||
(CP/M was written for an eight-bit architecture,
|
(CP/M was written for an eight-bit architecture,
|
||||||
which is presumably why it used an 8.3 filename instead of a 6.3 filename.) [#8.3_filename]_
|
which is presumably why it used an 8.3 filename
|
||||||
|
instead of a 6.3 filename.) [#8.3_filename]_
|
||||||
|
|
||||||
Similarly, the RT-11 didn't use ASCII for filenames,
|
Similarly, the RT-11 didn't use ASCII for filenames,
|
||||||
but rather an encoding called RADIX-50,
|
but rather an encoding called RADIX-50,
|
||||||
@@ -549,6 +559,7 @@ endures to this day.
|
|||||||
The lack of agreement on filename case-sensitivity may seem insignificant,
|
The lack of agreement on filename case-sensitivity may seem insignificant,
|
||||||
but it has caused persistent difficulties
|
but it has caused persistent difficulties
|
||||||
in cross-platform development. [#tortoise_svn_case_sensitivity]_ [#openfoam_no_windows_port]_ [#common_lisp_filenames]_
|
in cross-platform development. [#tortoise_svn_case_sensitivity]_ [#openfoam_no_windows_port]_ [#common_lisp_filenames]_
|
||||||
|
|
||||||
Developers of cross-platform software try to `avoid making assumptions about filename case-sensitivity`_,
|
Developers of cross-platform software try to `avoid making assumptions about filename case-sensitivity`_,
|
||||||
but problems of this ilk crop up
|
but problems of this ilk crop up
|
||||||
when porting from Windows to Linux or vice-versa. [#valve_porting_source_to_linux]_
|
when porting from Windows to Linux or vice-versa. [#valve_porting_source_to_linux]_
|
||||||
@@ -622,13 +633,14 @@ For example, the Linux port of the `Unity engine`_ has `issues with case-sensiti
|
|||||||
|
|
||||||
.. [#against_case_sensitivity]
|
.. [#against_case_sensitivity]
|
||||||
|
|
||||||
Mac & Windows users have to have filenames read to them over the phone by
|
Mac & Windows users have to have filenames read to them over the phone
|
||||||
support techs. They have to be able to write little sticky notes to their
|
by support techs. They have to be able to write little sticky notes to
|
||||||
mothers about how to open up the mail program, without worrying about how the
|
their mothers about how to open up the mail program, without worrying
|
||||||
filenames are capitalized. Haven't you ever fumed over a URL with initial-caps
|
about how the filenames are capitalized. Haven't you ever fumed over a
|
||||||
in the folder names in the path, having to fiddle with capitalization until you
|
URL with initial-caps in the folder names in the path, having to fiddle
|
||||||
get a response that's anything but a 404? Haven't you ever been secretly
|
with capitalization until you get a response that's anything but a 404?
|
||||||
pleased that e-mail addresses aren't case-sensitive?
|
Haven't you ever been secretly pleased that e-mail addresses aren't
|
||||||
|
case-sensitive?
|
||||||
|
|
||||||
--- Brian Tiemann, *On Unix File System's Case Sensitivity* (2001)
|
--- Brian Tiemann, *On Unix File System's Case Sensitivity* (2001)
|
||||||
|
|
||||||
@@ -643,38 +655,40 @@ For example, the Linux port of the `Unity engine`_ has `issues with case-sensiti
|
|||||||
|
|
||||||
https://www.ma.utexas.edu/pipermail/maxima/2003/004483.html
|
https://www.ma.utexas.edu/pipermail/maxima/2003/004483.html
|
||||||
|
|
||||||
One of the most pernicious problems with C-based languages is that they're
|
One of the most pernicious problems with C-based languages is that
|
||||||
case-sensitive. While this decision may have made sense in 1972 when the
|
they're case-sensitive. While this decision may have made sense in 1972
|
||||||
language was created, one wonders why the sins of Kernighan and Ritchie have
|
when the language was created, one wonders why the sins of Kernighan and
|
||||||
been blindly perpetuated for the last thirty-three years.
|
Ritchie have been blindly perpetuated for the last thirty-three years.
|
||||||
|
|
||||||
[ . . . ]
|
[ . . . ]
|
||||||
|
|
||||||
Unless you have extremely compelling reasons to make something case-sensitive,
|
Unless you have extremely compelling reasons to make something
|
||||||
case insensitivity is a much more human being friendly design choice. Designing
|
case-sensitive, case insensitivity is a much more human being friendly
|
||||||
software that's easier for machines is questionable at best.
|
design choice. Designing software that's easier for machines is
|
||||||
|
questionable at best.
|
||||||
|
|
||||||
--- Jeff Atwood, *The Case For Case Insensitivity* (2005)
|
--- Jeff Atwood, *The Case For Case Insensitivity* (2005)
|
||||||
|
|
||||||
http://blog.codinghorror.com/the-case-for-case-insensitivity/
|
http://blog.codinghorror.com/the-case-for-case-insensitivity/
|
||||||
|
|
||||||
There is no longer any excuse for making humans learn and handle the quirks of
|
There is no longer any excuse for making humans learn and handle the
|
||||||
the way computers store upper- and lower-case characters. Instead, software
|
quirks of the way computers store upper- and lower-case characters.
|
||||||
should handle the quirks of human language.
|
Instead, software should handle the quirks of human language.
|
||||||
|
|
||||||
--- Brian Hauer, *Case-sensitivity is the past trolling us* (2014)
|
--- Brian Hauer, *Case-sensitivity is the past trolling us* (2014)
|
||||||
|
|
||||||
http://tiamat.tsotech.com/case-sensitivity-sucks
|
http://tiamat.tsotech.com/case-sensitivity-sucks
|
||||||
|
|
||||||
Since it appears to have manifested out of opinion rather than necessity, it
|
Since it appears to have manifested out of opinion rather than
|
||||||
could be said case-sensitivity is the worst way that modern technology sucks.
|
necessity, it could be said case-sensitivity is the worst way that
|
||||||
|
modern technology sucks.
|
||||||
|
|
||||||
--- Greg Raiz (2007)
|
--- Greg Raiz (2007)
|
||||||
|
|
||||||
http://www.raizlabs.com/graiz/2007/02/11/linuxunix-case-sensitivity/
|
http://www.raizlabs.com/graiz/2007/02/11/linuxunix-case-sensitivity/
|
||||||
|
|
||||||
This is really stupid, it causes a ton of problems and there is no longer
|
This is really stupid, it causes a ton of problems and there is no
|
||||||
any good reason to have case sensitivity in an OS.
|
longer any good reason to have case sensitivity in an OS.
|
||||||
|
|
||||||
--- Julian, OddThinking (2005)
|
--- Julian, OddThinking (2005)
|
||||||
|
|
||||||
@@ -701,18 +715,19 @@ For example, the Linux port of the `Unity engine`_ has `issues with case-sensiti
|
|||||||
|
|
||||||
https://www.reddit.com/r/sysadmin/comments/2w6c8g/case_insensitive_windows_rant/
|
https://www.reddit.com/r/sysadmin/comments/2w6c8g/case_insensitive_windows_rant/
|
||||||
|
|
||||||
Why are computer file names and conventions and protocols so messed up? It's
|
Why are computer file names and conventions and protocols so messed up?
|
||||||
bizarre -- and Microsoft has been one of the worst offenders with one of the
|
It's bizarre -- and Microsoft has been one of the worst offenders with
|
||||||
most powerful positions and opportunities to make it a better filename-naming
|
one of the most powerful positions and opportunities to make it a better
|
||||||
world.
|
filename-naming world.
|
||||||
|
|
||||||
[ . . . ]
|
[ . . . ]
|
||||||
|
|
||||||
And, Microsoft dares to allow mixed case naming, but does case insensitive
|
And, Microsoft dares to allow mixed case naming, but does case
|
||||||
handling of file names... don't even get me started about some of the bizarre
|
insensitive handling of file names... don't even get me started about
|
||||||
results and buggy behavior I've traced to that. I only wish I'd had a
|
some of the bizarre results and buggy behavior I've traced to that. I
|
||||||
chargeback code for all of the time I've spent fixing and debugging systems
|
only wish I'd had a chargeback code for all of the time I've spent
|
||||||
that all come back to the file naming. Sigh, again.
|
fixing and debugging systems that all come back to the file naming.
|
||||||
|
Sigh, again.
|
||||||
|
|
||||||
--- yagu (2006)
|
--- yagu (2006)
|
||||||
|
|
||||||
@@ -743,8 +758,9 @@ For example, the Linux port of the `Unity engine`_ has `issues with case-sensiti
|
|||||||
|
|
||||||
http://dosmandrivel.blogspot.com/2007/08/is-dos-rip-off-of-cpm.html
|
http://dosmandrivel.blogspot.com/2007/08/is-dos-rip-off-of-cpm.html
|
||||||
|
|
||||||
As I noted when I discussed the old MS-DOS wildcard matching rules, MS-DOS
|
As I noted when I discussed the old MS-DOS wildcard matching rules,
|
||||||
worked hard at being compatible with CP/M. And CP/M used 8.3 filenames.
|
MS-DOS worked hard at being compatible with CP/M. And CP/M used 8.3
|
||||||
|
filenames.
|
||||||
|
|
||||||
--- Raymond Chen (2009)
|
--- Raymond Chen (2009)
|
||||||
|
|
||||||
@@ -808,18 +824,18 @@ For example, the Linux port of the `Unity engine`_ has `issues with case-sensiti
|
|||||||
|
|
||||||
From a post on the comp.sys.tandy Usenet group:
|
From a post on the comp.sys.tandy Usenet group:
|
||||||
|
|
||||||
Of course, CP/M itself is an
|
Of course, CP/M itself is an almost exact knock off of DECs PDP-11 OS,
|
||||||
almost exact knock off of DECs PDP-11 OS, RT-11, an operating system that
|
RT-11, an operating system that dates back to the early seventies, and
|
||||||
dates back to the early seventies, and RT-11 shows its roots in TOPS-10,
|
RT-11 shows its roots in TOPS-10, which goes back another year or two.
|
||||||
which goes back another year or two. For some reason, all the historians
|
For some reason, all the historians tracing the source of MS-DOS
|
||||||
tracing the source of MS-DOS mysteriously stop at CP/M, even when command sets
|
mysteriously stop at CP/M, even when command sets and utility syntaxes
|
||||||
and utility syntaxes are compared side-by-side. Who had a PIP utility first?
|
are compared side-by-side. Who had a PIP utility first? Why, DEC, not
|
||||||
Why, DEC, not Digital Research.
|
Digital Research.
|
||||||
|
|
||||||
The joke in the seventies that "Digital Research" was a typographical error
|
The joke in the seventies that "Digital Research" was a typographical
|
||||||
and the companies real name was "Digital [Equipment Corporation] Rehashed",
|
error and the companies real name was "Digital [Equipment Corporation]
|
||||||
for RT-11, TOPS-10 and RSTS/E all predated CP/M by a lot and yet have the same
|
Rehashed", for RT-11, TOPS-10 and RSTS/E all predated CP/M by a lot and
|
||||||
command syntax.
|
yet have the same command syntax.
|
||||||
|
|
||||||
https://groups.google.com/forum/#!msg/comp.sys.tandy/EcfhcRv9gEU/fNu_h9fCe3AJ
|
https://groups.google.com/forum/#!msg/comp.sys.tandy/EcfhcRv9gEU/fNu_h9fCe3AJ
|
||||||
|
|
||||||
@@ -844,14 +860,14 @@ For example, the Linux port of the `Unity engine`_ has `issues with case-sensiti
|
|||||||
.. [#CPM_case_insensitive] CP/M did this conversion internally.
|
.. [#CPM_case_insensitive] CP/M did this conversion internally.
|
||||||
|
|
||||||
It should also be noted that all alphabetic lower case letters in file
|
It should also be noted that all alphabetic lower case letters in file
|
||||||
and drive names are always translated to upper case when they are processed by
|
and drive names are always translated to upper case when they are
|
||||||
the CCP [Console Command Processor].
|
processed by the CCP [Console Command Processor].
|
||||||
|
|
||||||
[ . . . ]
|
[ . . . ]
|
||||||
|
|
||||||
Further, recall that the CCP always translates lower case characters to upper
|
Further, recall that the CCP always translates lower case characters to
|
||||||
case characters internally. Thus, lower case alphabetics are treated as if
|
upper case characters internally. Thus, lower case alphabetics are
|
||||||
they are upper case in command names and file references
|
treated as if they are upper case in command names and file references
|
||||||
|
|
||||||
https://archive.org/stream/Intro_to_CPM_Feat_and_Facilities/Intro_to_CPM_Feat_and_Facilities_djvu.txt
|
https://archive.org/stream/Intro_to_CPM_Feat_and_Facilities/Intro_to_CPM_Feat_and_Facilities_djvu.txt
|
||||||
|
|
||||||
@@ -867,22 +883,22 @@ For example, the Linux port of the `Unity engine`_ has `issues with case-sensiti
|
|||||||
.. [#RADIX50]
|
.. [#RADIX50]
|
||||||
|
|
||||||
... files were located via the directory, which resided in a fixed
|
... files were located via the directory, which resided in a fixed
|
||||||
location at the beginning of the hard drive. The directory consisted of a
|
location at the beginning of the hard drive. The directory consisted of
|
||||||
single array of entries, each with a 6.3 character file name formatted in DEC’s
|
a single array of entries, each with a 6.3 character file name formatted
|
||||||
Radix-50 format. A file’s directory entry indicated the address of the first
|
in DEC’s Radix-50 format. A file’s directory entry indicated the address
|
||||||
block of the file.
|
of the first block of the file.
|
||||||
|
|
||||||
http://cryptosmith.com/2013/10/19/digitals-rt-11-file-system/
|
http://cryptosmith.com/2013/10/19/digitals-rt-11-file-system/
|
||||||
|
|
||||||
RADIX50 is a character coding system used in earlier Digital Equipment
|
RADIX50 is a character coding system used in earlier Digital Equipment
|
||||||
Corporation computers, such as the PDP-10, DECsystem-10 and DECsystem-20.
|
Corporation computers, such as the PDP-10, DECsystem-10 and
|
||||||
It was implemented as a way to pack as many characters into as few bits as
|
DECsystem-20. It was implemented as a way to pack as many characters
|
||||||
possible.
|
into as few bits as possible.
|
||||||
|
|
||||||
RADIX50 actually contains 40 codes, or 50 in octal. Because this is not a
|
RADIX50 actually contains 40 codes, or 50 in octal. Because this is not
|
||||||
power of two, the PDP-10 processor had instructions to pack several
|
a power of two, the PDP-10 processor had instructions to pack several
|
||||||
RADIX-50 words into a single 36-bit word or extract RADIX-50 words from a
|
RADIX-50 words into a single 36-bit word or extract RADIX-50 words from
|
||||||
36-bit word.
|
a 36-bit word.
|
||||||
|
|
||||||
http://nemesis.lonestar.org/reference/telecom/codes/radix50.html
|
http://nemesis.lonestar.org/reference/telecom/codes/radix50.html
|
||||||
|
|
||||||
@@ -915,10 +931,17 @@ For example, the Linux port of the `Unity engine`_ has `issues with case-sensiti
|
|||||||
.. [#valve_porting_source_to_linux] http://adrienb.fr/blog/wp-content/uploads/2013/04/PortingSourceToLinux.pdf
|
.. [#valve_porting_source_to_linux] http://adrienb.fr/blog/wp-content/uploads/2013/04/PortingSourceToLinux.pdf
|
||||||
|
|
||||||
- Linux filesystems are case-sensitive
|
- Linux filesystems are case-sensitive
|
||||||
|
|
||||||
- Windows is not
|
- Windows is not
|
||||||
- Not a big issue for deployment (because everyone ships packs of some sort)
|
|
||||||
|
- Not a big issue for deployment (because everyone ships packs of some
|
||||||
|
sort)
|
||||||
|
|
||||||
- But an issue during development, with loose files
|
- But an issue during development, with loose files
|
||||||
- Solution 1: Slam all assets to lower case, including directories, then tolower all file lookups (only adjust below root)
|
|
||||||
|
- Solution 1: Slam all assets to lower case, including directories, then
|
||||||
|
tolower all file lookups (only adjust below root)
|
||||||
|
|
||||||
- Solution 2: Build file cache, look for similarly named files
|
- Solution 2: Build file cache, look for similarly named files
|
||||||
|
|
||||||
|
|
||||||
@@ -955,10 +978,10 @@ due to their use in delimiting drive names like ``C:\``.
|
|||||||
This causes issues in sharing files across platforms.
|
This causes issues in sharing files across platforms.
|
||||||
|
|
||||||
For example, a UNIX file name can use a colon (:), but a Windows file name
|
For example, a UNIX file name can use a colon (:), but a Windows file name
|
||||||
cannot use a colon (:). If a UNIX user attempts to create a file with a Windows
|
cannot use a colon (:). If a UNIX user attempts to create a file with a
|
||||||
illegal character on a Windows Services for UNIX network file system (NFS)
|
Windows illegal character on a Windows Services for UNIX network file
|
||||||
share, the attempt is unsuccessful and the UNIX client computer receives an
|
system (NFS) share, the attempt is unsuccessful and the UNIX client
|
||||||
input or output error.
|
computer receives an input or output error.
|
||||||
|
|
||||||
https://support.microsoft.com/en-us/kb/289627
|
https://support.microsoft.com/en-us/kb/289627
|
||||||
|
|
||||||
@@ -991,15 +1014,17 @@ but such restrictions do not apply to filenames.)
|
|||||||
|
|
||||||
https://stackoverflow.com/questions/1976007/what-characters-are-forbidden-in-windows-and-linux-directory-names
|
https://stackoverflow.com/questions/1976007/what-characters-are-forbidden-in-windows-and-linux-directory-names
|
||||||
|
|
||||||
When Steve Bourne was writing his Unix shell (which came to be known as the
|
When Steve Bourne was writing his Unix shell (which came to be known as
|
||||||
Bourne shell), he made a directory of 254 files with one-character names, one for each
|
the Bourne shell), he made a directory of 254 files with one-character
|
||||||
byte value except ``'\0'`` and slash, the two characters that cannot appear in Unix file
|
names, one for each byte value except ``'\0'`` and slash, the two
|
||||||
names. He used that directory for all manner of tests of pattern-matching and tok-
|
characters that cannot appear in Unix file names. He used that directory
|
||||||
enization. (The test directory was of course created by a program.) For years after-
|
for all manner of tests of pattern-matching and tok- enization. (The
|
||||||
wards, that directory was the bane of file-tree-walking programs; it tested them to
|
test directory was of course created by a program.) For years after-
|
||||||
destruction.
|
wards, that directory was the bane of file-tree-walking programs; it
|
||||||
|
tested them to destruction.
|
||||||
|
|
||||||
--- Brian W. Kernighan and Rob Pike, "The Practice of Programming", Chapter 6: Testing, p. 158
|
--- Brian W. Kernighan and Rob Pike, "The Practice of Programming",
|
||||||
|
Chapter 6: Testing, p. 158
|
||||||
|
|
||||||
https://books.google.com/books?id=j9T6AgAAQBAJ&lpg=PP1&dq=the%20practice%20of%20programming&pg=PA158#v=onepage&q=When%20Steve%20Bourne
|
https://books.google.com/books?id=j9T6AgAAQBAJ&lpg=PP1&dq=the%20practice%20of%20programming&pg=PA158#v=onepage&q=When%20Steve%20Bourne
|
||||||
|
|
||||||
@@ -1019,12 +1044,12 @@ but such restrictions do not apply to filenames.)
|
|||||||
|
|
||||||
Dennis Ritchie has explained the `rationale for using a null-terminator`_:
|
Dennis Ritchie has explained the `rationale for using a null-terminator`_:
|
||||||
|
|
||||||
In BCPL, the first packed byte contains the number of characters in the string;
|
In BCPL, the first packed byte contains the number of characters in the
|
||||||
in B, there is no count and strings are terminated by a special character,
|
string; in B, there is no count and strings are terminated by a special
|
||||||
which B spelled ```*e'``. This change was made partially to avoid the limitation on
|
character, which B spelled ```*e'``. This change was made partially to
|
||||||
the length of a string caused by holding the count in an 8- or 9-bit slot, and
|
avoid the limitation on the length of a string caused by holding the
|
||||||
partly because maintaining the count seemed, in our experience, less convenient
|
count in an 8- or 9-bit slot, and partly because maintaining the count
|
||||||
than using a terminator.
|
seemed, in our experience, less convenient than using a terminator.
|
||||||
|
|
||||||
`Null-terminated strings do have some drawbacks`_,
|
`Null-terminated strings do have some drawbacks`_,
|
||||||
such as making certain optimizations more difficult,
|
such as making certain optimizations more difficult,
|
||||||
@@ -1057,11 +1082,13 @@ UDF (used for some CDs and DVDs),
|
|||||||
and the legacy FAT16/FAT32/exFAT family.
|
and the legacy FAT16/FAT32/exFAT family.
|
||||||
All other filesystems require installation of `third-party software`_.
|
All other filesystems require installation of `third-party software`_.
|
||||||
|
|
||||||
Linux has drivers for `almost all file systems`_ that can be legally mounted without paying royalties,
|
Linux has drivers for `almost all file systems`_
|
||||||
|
that can be legally mounted without paying royalties,
|
||||||
including ones that don't see much use nowadays, like `Amiga file systems`_.
|
including ones that don't see much use nowadays, like `Amiga file systems`_.
|
||||||
It can also mount FAT and NTFS filesystems,
|
It can also mount FAT and NTFS filesystems,
|
||||||
despite Microsoft's lucrative patent licensing deals and `ongoing`_ `litigation`_
|
despite Microsoft's lucrative patent licensing deals
|
||||||
against Android manufacturers and `other companies`_ that use the Linux kernel's FAT drivers.
|
and `ongoing`_ `litigation`_ against Android manufacturers
|
||||||
|
and `other companies`_ that use the Linux kernel's FAT drivers.
|
||||||
|
|
||||||
.. _third-party software: http://www.ext2fsd.com/
|
.. _third-party software: http://www.ext2fsd.com/
|
||||||
.. _almost all file systems: https://wiki.archlinux.org/index.php/file_systems
|
.. _almost all file systems: https://wiki.archlinux.org/index.php/file_systems
|
||||||
@@ -1072,19 +1099,19 @@ against Android manufacturers and `other companies`_ that use the Linux kernel's
|
|||||||
|
|
||||||
For the system partition,
|
For the system partition,
|
||||||
Linux users can choose among the usual ext3 journaling filesystem
|
Linux users can choose among the usual ext3 journaling filesystem
|
||||||
or
|
or up-and-coming filesystems like `Btrfs`_.
|
||||||
up-and-coming filesystems like `Btrfs`_.
|
|
||||||
Unlike FAT and NTFS filesystems,
|
Unlike FAT and NTFS filesystems,
|
||||||
ext3 and Btrfs `do not require defragmentation`_
|
ext3 and Btrfs `do not require defragmentation`_ to maintain good performance.
|
||||||
to maintain good performance.
|
(Realistically, though,
|
||||||
(Realistically, though, `defragmentation isn't that important for NTFS`_, either.)
|
`defragmentation isn't that important for NTFS`_, either.)
|
||||||
|
|
||||||
.. _Btrfs: https://btrfs.wiki.kernel.org/index.php/Main_Page
|
.. _Btrfs: https://btrfs.wiki.kernel.org/index.php/Main_Page
|
||||||
.. _NTFS and FAT: http://technet.microsoft.com/en-us/magazine/2007.11.desktopfiles.aspx
|
.. _NTFS and FAT: http://technet.microsoft.com/en-us/magazine/2007.11.desktopfiles.aspx
|
||||||
.. _do not require defragmentation: http://www.tldp.org/LDP/sag/html/filesystems.html#FRAGMENTATION
|
.. _do not require defragmentation: http://www.tldp.org/LDP/sag/html/filesystems.html#FRAGMENTATION
|
||||||
.. _defragmentation isn't that important for NTFS: http://blogs.msdn.com/b/e7/archive/2009/01/25/disk-defragmentation-background-and-engineering-the-windows-7-improvements.aspx
|
.. _defragmentation isn't that important for NTFS: http://blogs.msdn.com/b/e7/archive/2009/01/25/disk-defragmentation-background-and-engineering-the-windows-7-improvements.aspx
|
||||||
|
|
||||||
Finally, Linux permits unprivileged users to run their own filesystems via FUSE.
|
Finally, Linux permits unprivileged users
|
||||||
|
to run their own filesystems via FUSE.
|
||||||
This has many practical benefits,
|
This has many practical benefits,
|
||||||
such as accessing cloud storage as if it were an ordinary directory.
|
such as accessing cloud storage as if it were an ordinary directory.
|
||||||
|
|
||||||
@@ -1205,7 +1232,8 @@ because the `folder it is in cannot have a read-only status`_.
|
|||||||
In Linux, by contrast, a read-only directory cannot have files added to it,
|
In Linux, by contrast, a read-only directory cannot have files added to it,
|
||||||
and files in such a directory cannot be moved, renamed, or deleted
|
and files in such a directory cannot be moved, renamed, or deleted
|
||||||
without first removing the read-only status from the directory they are in.
|
without first removing the read-only status from the directory they are in.
|
||||||
Modifications of the contents of the files depend on the individual file permissions.
|
Modifications of the contents of the files
|
||||||
|
depend on the individual file permissions.
|
||||||
|
|
||||||
.. [#unix_groups] Unix permissions, for example, are not a panacea: https://unix.stackexchange.com/questions/164303/single-user-for-sharing-vs-multiple-users
|
.. [#unix_groups] Unix permissions, for example, are not a panacea: https://unix.stackexchange.com/questions/164303/single-user-for-sharing-vs-multiple-users
|
||||||
.. [#ntfs_permissions_flaw] NTFS permissions have their own issues, e.g. https://serverfault.com/questions/31709/how-to-workaround-the-ntfs-move-copy-design-flaw
|
.. [#ntfs_permissions_flaw] NTFS permissions have their own issues, e.g. https://serverfault.com/questions/31709/how-to-workaround-the-ntfs-move-copy-design-flaw
|
||||||
@@ -1255,8 +1283,8 @@ http://new.office-watch.com/2008/make-a-consistent-drive-letter-or-path-to-a-rem
|
|||||||
|
|
||||||
Fortunately, there is a solution: NTFS mount points.
|
Fortunately, there is a solution: NTFS mount points.
|
||||||
|
|
||||||
Volume mount points are robust against system changes that occur when devices
|
Volume mount points are robust against system changes that occur when
|
||||||
are added or removed from a computer.
|
devices are added or removed from a computer.
|
||||||
|
|
||||||
https://technet.microsoft.com/en-us/library/Cc938934.aspx
|
https://technet.microsoft.com/en-us/library/Cc938934.aspx
|
||||||
|
|
||||||
@@ -1281,15 +1309,15 @@ Unfortunately, Windows doesn't use mount points by default
|
|||||||
for external hard drives or flash drives,
|
for external hard drives or flash drives,
|
||||||
possibly because mount points behave slightly differently than drive letters.
|
possibly because mount points behave slightly differently than drive letters.
|
||||||
|
|
||||||
The problem is the recycle bin. This "undo" option is maintained with a hidden
|
The problem is the recycle bin. This "undo" option is maintained with a
|
||||||
system file that is on the partition that holds the files being deleted.
|
hidden system file that is on the partition that holds the files being
|
||||||
Unfortuantely, when the command to delete a folder is given, the system
|
deleted. Unfortuantely, when the command to delete a folder is given, the
|
||||||
attempts to delete the folder using the mount point folder's Master File Table,
|
system attempts to delete the folder using the mount point folder's Master
|
||||||
and not the subfolder's Master File Table. The mount point folder's MFT
|
File Table, and not the subfolder's Master File Table. The mount point
|
||||||
doesn't host the record, and an access denied message is kicked back to you for
|
folder's MFT doesn't host the record, and an access denied message is
|
||||||
having the temerity to try and recycle a directory which apparently doesn't
|
kicked back to you for having the temerity to try and recycle a directory
|
||||||
even exist! The only solution for this is to not recycle subfolders and
|
which apparently doesn't even exist! The only solution for this is to not
|
||||||
directories, but to outright delete them.
|
recycle subfolders and directories, but to outright delete them.
|
||||||
|
|
||||||
http://getyouriton.blogspot.com/2009/08/serious-gotchas-with-mounted-drives-or.html
|
http://getyouriton.blogspot.com/2009/08/serious-gotchas-with-mounted-drives-or.html
|
||||||
|
|
||||||
@@ -1360,7 +1388,8 @@ not the trash in the user's home directory.
|
|||||||
|
|
||||||
However, the motivations for such a scheme go back further.
|
However, the motivations for such a scheme go back further.
|
||||||
One of the most influential time-sharing systems,
|
One of the most influential time-sharing systems,
|
||||||
CTSS, recognized the need for accessing files independently of their disk location.
|
CTSS, recognized the need for accessing files
|
||||||
|
independently of their disk location.
|
||||||
|
|
||||||
All files kept on the disk (and drum) are known to the
|
All files kept on the disk (and drum) are known to the
|
||||||
user only by name: the supervisor disk control module keeps
|
user only by name: the supervisor disk control module keeps
|
||||||
@@ -1380,18 +1409,19 @@ not the trash in the user's home directory.
|
|||||||
Unix was developed on relatively small disk drives,
|
Unix was developed on relatively small disk drives,
|
||||||
so it was useful to be able mount drives anywhere on the filesystem.
|
so it was useful to be able mount drives anywhere on the filesystem.
|
||||||
|
|
||||||
You know how Ken Thompson and Dennis Ritchie created Unix on a PDP-7 in 1969?
|
You know how Ken Thompson and Dennis Ritchie created Unix on a PDP-7 in
|
||||||
Well around 1971 they upgraded to a PDP-11 with a pair of RK05 disk packs (1.5
|
1969? Well around 1971 they upgraded to a PDP-11 with a pair of RK05
|
||||||
megabytes each) for storage.
|
disk packs (1.5 megabytes each) for storage.
|
||||||
|
|
||||||
When the operating system grew too big to fit on the first RK05 disk pack (their
|
When the operating system grew too big to fit on the first RK05 disk
|
||||||
root filesystem) they let it leak into the second one, which is where all the
|
pack (their root filesystem) they let it leak into the second one, which
|
||||||
user home directories lived (which is why the mount was called /usr). They
|
is where all the user home directories lived (which is why the mount was
|
||||||
replicated all the OS directories under there (/bin, /sbin, /lib, /tmp...) and
|
called /usr). They replicated all the OS directories under there (/bin,
|
||||||
wrote files to those new directories because their original disk was out of
|
/sbin, /lib, /tmp...) and wrote files to those new directories because
|
||||||
space. When they got a third disk, they mounted it on /home and relocated all
|
their original disk was out of space. When they got a third disk, they
|
||||||
the user directories to there so the OS could consume all the space on both
|
mounted it on /home and relocated all the user directories to there so
|
||||||
disks and grow to THREE WHOLE MEGABYTES (ooooh!).
|
the OS could consume all the space on both disks and grow to THREE WHOLE
|
||||||
|
MEGABYTES (ooooh!).
|
||||||
|
|
||||||
http://lists.busybox.net/pipermail/busybox/2010-December/074114.html
|
http://lists.busybox.net/pipermail/busybox/2010-December/074114.html
|
||||||
|
|
||||||
@@ -1454,7 +1484,8 @@ and observe how it responds to various kill signals.
|
|||||||
There are plenty of Windows programs similar to ``gdb`` and ``strace``, [#gdb_for_Windows]_ [#strace_for_Windows]_
|
There are plenty of Windows programs similar to ``gdb`` and ``strace``, [#gdb_for_Windows]_ [#strace_for_Windows]_
|
||||||
but they don't come installed by default,
|
but they don't come installed by default,
|
||||||
whereas both ``strace`` and ``gdb`` come with almost all Linux distributions,
|
whereas both ``strace`` and ``gdb`` come with almost all Linux distributions,
|
||||||
so system administrators can rely on being able to use them on nearly any Linux box.
|
so system administrators can rely on being able to use them
|
||||||
|
with nearly any Linux box.
|
||||||
|
|
||||||
.. [#gdb_for_Windows]
|
.. [#gdb_for_Windows]
|
||||||
https://msdn.microsoft.com/en-us/library/windows/hardware/ff551063
|
https://msdn.microsoft.com/en-us/library/windows/hardware/ff551063
|
||||||
@@ -1546,11 +1577,11 @@ https://stackoverflow.com/questions/3848558/what-is-the-api-to-create-applicatio
|
|||||||
Sometimes it isn't the API, either;
|
Sometimes it isn't the API, either;
|
||||||
on Windows 8 it is impossible to disable the dwm window compositor.
|
on Windows 8 it is impossible to disable the dwm window compositor.
|
||||||
|
|
||||||
In Windows Vista and Windows 7, desktop composition is disabled in a number of
|
In Windows Vista and Windows 7, desktop composition is disabled in a number
|
||||||
scenarios. In Windows 8, DWM desktop composition is a core operating system
|
of scenarios. In Windows 8, DWM desktop composition is a core operating
|
||||||
component and cannot be disabled. With a few exceptions, desktop composition is
|
system component and cannot be disabled. With a few exceptions, desktop
|
||||||
always on; it’s started before the user logon and remains active for the
|
composition is always on; it’s started before the user logon and remains
|
||||||
duration of a session.
|
active for the duration of a session.
|
||||||
|
|
||||||
--- Windows Dev Center documentation
|
--- Windows Dev Center documentation
|
||||||
|
|
||||||
@@ -1583,27 +1614,30 @@ in the same way that the Windows API is.
|
|||||||
since KDE uses the cross-platform Qt framework.
|
since KDE uses the cross-platform Qt framework.
|
||||||
|
|
||||||
The KDE on Windows Initiative is an ongoing project to port the KDE
|
The KDE on Windows Initiative is an ongoing project to port the KDE
|
||||||
applications to MS Windows. Currently supported versions of Windows are XP,
|
applications to MS Windows. Currently supported versions of Windows are
|
||||||
Vista and 7.
|
XP, Vista and 7.
|
||||||
|
|
||||||
https://windows.kde.org/
|
https://windows.kde.org/
|
||||||
|
|
||||||
This is not without difficulties, however.
|
This is not without difficulties, however.
|
||||||
|
|
||||||
The current implementation of KDE is designed in a unix specific way, which is
|
The current implementation of KDE is designed in a unix specific way,
|
||||||
partially different from the Windows way. Examples for this are:
|
which is partially different from the Windows way. Examples for this
|
||||||
|
are:
|
||||||
|
|
||||||
* Process creating - Using the Unix way of fork and exec.
|
* Process creating - Using the Unix way of fork and exec.
|
||||||
|
|
||||||
* It isn't available on Windows, this difference requires a redesign of the related parts.
|
* It isn't available on Windows, this difference requires a redesign of
|
||||||
|
the related parts.
|
||||||
|
|
||||||
* Its missing Windows api counterparts.
|
* Its missing Windows api counterparts.
|
||||||
|
|
||||||
* KDE uses Unix domain socket for high speed data transfer betwen kioslave
|
* KDE uses Unix domain socket for high speed data transfer betwen
|
||||||
slaves and its parent process and for the communication to/from the dbus
|
kioslave slaves and its parent process and for the communication
|
||||||
deamon. On Windows there are no Unix domain sockets. They could be emulated
|
to/from the dbus deamon. On Windows there are no Unix domain sockets.
|
||||||
by tcp sockets with the costs of slower bandwidth and additional patches to
|
They could be emulated by tcp sockets with the costs of slower
|
||||||
deal with Unix domain socket files exchanged between processes.
|
bandwidth and additional patches to deal with Unix domain socket files
|
||||||
|
exchanged between processes.
|
||||||
|
|
||||||
--- Ralf Habacker, KDE developer
|
--- Ralf Habacker, KDE developer
|
||||||
|
|
||||||
@@ -1635,10 +1669,11 @@ i.e. ``WS_THICKFRAME`` is not enabled by default.
|
|||||||
.. TOOD: source
|
.. TOOD: source
|
||||||
.. TODO: is it even possible to prevent resizing?
|
.. TODO: is it even possible to prevent resizing?
|
||||||
|
|
||||||
In some cases, you want to display something in a response window but you also
|
In some cases, you want to display something in a response window but you
|
||||||
want this window to be resizable in order to let the user resize this window to
|
also want this window to be resizable in order to let the user resize this
|
||||||
display the info the way he or she wants. Normally, response windows are not
|
window to display the info the way he or she wants. Normally, response
|
||||||
resizable and this is also the Microsoft standard behaviour.
|
windows are not resizable and this is also the Microsoft standard
|
||||||
|
behaviour.
|
||||||
|
|
||||||
--- Eric Aling, April 13, 2000
|
--- Eric Aling, April 13, 2000
|
||||||
|
|
||||||
@@ -1669,64 +1704,78 @@ that watches for window creation and mouse click events.
|
|||||||
[#ResizeEnable]_
|
[#ResizeEnable]_
|
||||||
|
|
||||||
The README is not directly linkable via URL,
|
The README is not directly linkable via URL,
|
||||||
so here are some of the salient parts::
|
so here are some of the salient parts:
|
||||||
|
|
||||||
=============================================================================================
|
=====================
|
||||||
What is ResizeEnable
|
What is ResizeEnable?
|
||||||
=============================================================================================
|
=====================
|
||||||
It's a very ugly system hack that sits in your system tray and attempts to make windows
|
|
||||||
that can't usually be resized, resizeable.
|
|
||||||
|
|
||||||
|
It's a very ugly system hack that sits in your system tray and attempts to
|
||||||
|
make windows that can't usually be resized, resizeable.
|
||||||
|
|
||||||
=============================================================================================
|
===================
|
||||||
Why was it written?
|
Why was it written?
|
||||||
=============================================================================================
|
===================
|
||||||
It was written following a request from a friend. He runs his PC at a screen resolution above
|
|
||||||
1280x1024, and was fed up with having to pick items from a list that could only display three
|
It was written following a request from a friend. He runs his PC at a
|
||||||
items because the window didn't take into account the screen resolution, hence only occupying
|
screen resolution above 1280x1024, and was fed up with having to pick items
|
||||||
about 20% of the desktop 'real-estate'.
|
from a list that could only display three items because the window didn't
|
||||||
|
take into account the screen resolution, hence only occupying about 20% of
|
||||||
|
the desktop 'real-estate'.
|
||||||
|
|
||||||
|
|
||||||
=============================================================================================
|
=================
|
||||||
How does it work?
|
How does it work?
|
||||||
=============================================================================================
|
=================
|
||||||
ResizeEnable sits in the background and attaches itself into Windows via three 'Hooks'.
|
|
||||||
The first hook is so that it can see which windows are created/destroyed, in which it attempts
|
|
||||||
to alter the window's style so that it can be resized.
|
|
||||||
The second hook intercepts all messages for every single window to see if it is a message
|
|
||||||
associated with resizing a window that it has previously altered the style of. If the message
|
|
||||||
is associated with sizing, it then resizes all the child windows (Buttons, Edit boxes and so on)
|
|
||||||
simply by scaling them to fit the new windows size. Its ugly, but most of the time it works ok.
|
|
||||||
The third hook spots whether the mouse has been pressed in the 'sizing area' of a window and
|
|
||||||
takes care of doing all the work of resizing the window. This hook didn't exist in v1.0 but
|
|
||||||
has been added to make even more windows resize properly.
|
|
||||||
|
|
||||||
There are some drawbacks to this approach::
|
ResizeEnable sits in the background and attaches itself into Windows via
|
||||||
|
three 'Hooks'. The first hook is so that it can see which windows are
|
||||||
|
created/destroyed, in which it attempts to alter the window's style so that
|
||||||
|
it can be resized. The second hook intercepts all messages for every
|
||||||
|
single window to see if it is a message associated with resizing a window
|
||||||
|
that it has previously altered the style of. If the message is associated
|
||||||
|
with sizing, it then resizes all the child windows (Buttons, Edit boxes and
|
||||||
|
so on) simply by scaling them to fit the new windows size. Its ugly, but
|
||||||
|
most of the time it works ok. The third hook spots whether the mouse has
|
||||||
|
been pressed in the 'sizing area' of a window and takes care of doing all
|
||||||
|
the work of resizing the window. This hook didn't exist in v1.0 but has
|
||||||
|
been added to make even more windows resize properly.
|
||||||
|
|
||||||
=============================================================================================
|
There are some drawbacks to this approach:
|
||||||
|
|
||||||
|
==============
|
||||||
Known problems
|
Known problems
|
||||||
=============================================================================================
|
==============
|
||||||
1) Most applications will respond to having their windows resized ok. Well, applications that
|
|
||||||
have followed the guidelines will. <grin>
|
1) Most applications will respond to having their windows resized ok. Well,
|
||||||
2) Some applications have, shall we say, problems, when their window has been resized and all
|
applications that have followed the guidelines will. <grin>
|
||||||
sort of visual chaos will be revealed.
|
|
||||||
|
2) Some applications have, shall we say, problems, when their window has
|
||||||
|
been resized and all sort of visual chaos will be revealed.
|
||||||
|
|
||||||
3) Some applications won't respond at all, which is rather strange!
|
3) Some applications won't respond at all, which is rather strange!
|
||||||
4) Certain windows will 'jiggle' as you attempt to resize them, seemingly resizing and then
|
|
||||||
snapping back to their original size. This is annoying, but we're not sure what is
|
4) Certain windows will 'jiggle' as you attempt to resize them, seemingly
|
||||||
causing it.
|
resizing and then snapping back to their original size. This is annoying,
|
||||||
5) Some versions of Internet Explorer, coupled with certain version of Windows98/NT seemed to
|
but we're not sure what is causing it.
|
||||||
crash with v1.0 of ResizeEnable. We don't have that setup on any of our test machines
|
|
||||||
so we can't test it. But, we have done a little bit more work so ResizeEnable is a
|
5) Some versions of Internet Explorer, coupled with certain version of
|
||||||
bit more choosy as to which windows it can work with. So it -might- not crash anymore.
|
Windows98/NT seemed to crash with v1.0 of ResizeEnable. We don't have that
|
||||||
If it still crashes, then all we can suggest at the moment is that you upgrade to
|
setup on any of our test machines so we can't test it. But, we have done a
|
||||||
Internet Explorer 6. We're not Microsoft pushers, but Internet Explorer 6 has better
|
little bit more work so ResizeEnable is a bit more choosy as to which
|
||||||
error reporting and shouldn't just explode without warning.
|
windows it can work with. So it -might- not crash anymore. If it still
|
||||||
6) Some Microsoft applications have dialogs that can be resized, but none of their contents
|
crashes, then all we can suggest at the moment is that you upgrade to
|
||||||
move. This is down to the fact that the contents of the dialog ARE NOT STANDARD
|
Internet Explorer 6. We're not Microsoft pushers, but Internet Explorer 6
|
||||||
MICROSOFT CONTROLS! They are some bastardisation written specially for the application.
|
has better error reporting and shouldn't just explode without warning.
|
||||||
They may look like normal buttons/drop downs, but they sure as heck aren't! Hence,
|
|
||||||
ResizeEnable can't tell them to move or resize. Yet again, Microsoft ignore their own
|
6) Some Microsoft applications have dialogs that can be resized, but none
|
||||||
codebase and reinvent the wheel. And people wonder why their applications are so big..
|
of their contents move. This is down to the fact that the contents of the
|
||||||
|
dialog ARE NOT STANDARD MICROSOFT CONTROLS! They are some bastardisation
|
||||||
|
written specially for the application. They may look like normal
|
||||||
|
buttons/drop downs, but they sure as heck aren't! Hence, ResizeEnable can't
|
||||||
|
tell them to move or resize. Yet again, Microsoft ignore their own codebase
|
||||||
|
and reinvent the wheel. And people wonder why their applications are so
|
||||||
|
big..
|
||||||
|
|
||||||
.. [#resize_non_resizable_windows] http://www.thewindowsclub.com/resize-non-resizable-windows
|
.. [#resize_non_resizable_windows] http://www.thewindowsclub.com/resize-non-resizable-windows
|
||||||
.. [#turn_non_resizable_windows] http://www.howtogeek.com/howto/11799/turn-non-resizeable-windows-into-rezieable-windows/
|
.. [#turn_non_resizable_windows] http://www.howtogeek.com/howto/11799/turn-non-resizeable-windows-into-rezieable-windows/
|
||||||
|
Reference in New Issue
Block a user