Re: Fred's EVER GROWING Linux Annoyance List THREAD; take out EVER GROWING THREAD for the original Subject!

"Jones, Gregory James" <[email protected]> Thu, 16 Oct 2003 15:46:19 -0500
Newsgroups gmane.linux.usability.annoyances
Message-ID <[email protected]>
> Date: Thu, 16 Oct 2003 12:38:41 -0400
> From: "Fred P." <[email protected]>
> Subject: Re: [Annoyances] Fred Linux Annoyance List.
> To: [email protected]
> Message-ID: <BAY2-F94NnEthw0ENBP00013f8b-PkbjNfxxIARBDgjK7y7TUQ@public.gmane.org>
> Content-Type: text/plain; format=flowed
> 

<<<Snipped>>>

> > > 2) You're a junior programmer that never worked on large scale
> >production
> > > system,
> > >      I'll be scared to death maintaining it if you ever did !!!
> > >      and you have a .gov addesss HAAAAAA!
> >
> >I've never worked on a large scale production system.  You got me 
> >there.  This is a national research lab.  But thanks for playing.
> 
> Linux and X11 is a large scale production system.
> 
> The problems I was mentionning won't happen for "small scale" 
> projects, 
> hacks and stuff like that.
> 
> The problem with large scale system is that it takes years to 
> fully get the 
> big picture,
> since you cannot read the entire code base to verify your patch.
> 
> For instance, let say you read pretty fast let say 36000 LOC 
> per day, that's 
> 13 MLOC per year,
> which means in one year you can read lets say the entire 
> Linux repository. How many times you normally read some code 
> to verify changes? 1,2,5,10,20 
> times?
> Which means it would take on average 5 years to change let 
> say your "rect" 
> entity.
> That's why Linus ain't alone working on the code, he can't 
> simply follow 
> everything,
> he simply trust peers and do some small code review, which is normal.
> 

The classic Open Source argument is "GIVEN (I emphasize this as it is
ofter dropped) enough eyes, all bugs are shallow".

This may or may not be inherently true.  It is hard to prove after all,
but anecdotal evidence seems to support the claim.

A case in point is the "Ping of Death" debacle that affected pretty much
every operating system around at the time because of the BSD (I think)
code they all incorporated to handle this simple network functionality.

Once the exploit was confirmed in the wild, Open Source projects (made
up mostly of volunteers) fixed and distributed patches in hours (under
10 if I remember correctly)(patches that worked) whereas proprietary
offerings measured their response time in DAYS.

Because of the openness of the code AND an obvious threat, enough eyes
were brought to bear on the code that fixing the problem proved to be
shallow.  Proprietary code bases on the other hand can bring only a
limited number of eyes to the project making bug fixing less than
trivial.

This is just one example... there are many others.

Does that mean all bugs are gone from the software? No.  Does that mean
that critical bugs are probably more likely to be found and fixed in a
timely manner? Its likely.

It has been shown a number of times that Linux has more documented
vulnerabilities than Microsoft.  The key word here is "documented."
People find them because the code is open.

Generally they fix them faster as well.


> > > > >
> > > > >     Now ask a newbie what the following means WITHOUT 
> thinking 
> > > > > at
> >all
> > > >(Homer
> > > > > simpsons after 6 beers):
> > > > >     dd, df, ln, ls, su, uname, ld, ldd, xxd, sg, shar
> > > > >
> > > > >     Now ask a newbie what the following alias means without 
> > > > > thinking
> >at
> > > >all:
> > > > >     diskcopy, diskusage, filelink, dir, chuser, printsysinfo,
> >linker,
> > > > > dllinfo, hexdump, execgroup, shellarchive
> > > > >
> > > > >     Too long to type?
> > > > >     Alias the other way around!!!!
> > > > >     Having a alias dd='diskcopy' that would make way 
> more sense.
> > > > >     BAD BAD BAD UNIX design...

Seriously... As this same question about the following DOS commands to
the _average_ Windows user (and even some "advanced" users) and they
cringe:

_A_
Append
Arp 
Assoc 
At 
Atmadm 
Attrib 

_B_
Break 
Buffers 

_C_
Cacls 
Call 
Chcp
Chdir 
Chkdsk 
Chkntfs 
Cipher 
Cls 
Cluster
Cmd 
Codepage 
Color 
Comp 
Compact 
Convert 
Country 

_D_
Del
Device 
Devicehigh 
Devinfo 
Diskcomp 
Diskperf 
Doskey 
Driveparm 

_E_
Echo 
Edlin 
Endlocal 
Evntcmd 
Exe2bin 
Expand 

_F_
Fc 
Fcbs 
Findstr 
Finger 
Ftp 
Ftype 

_G_
Graftabl 

_I_
Ipconfig 
Ipxroute 
Irftp 

_J_
Lastdrive 
Libpath 
Loadfix 
Loadhigh
Lpq 
Lpr 

_M_
Mkdir
Mode 
Mountvol 

_N_
Nbtstat 

Net (command options) <--- Don't get me started with these... You have
to have a book open to remember what the second command option is and
guessing doesn't always help.

Netsh
Netstat 
Nlsfunc 
Nslookup 
Ntcmdprompt 

_P_
Path 
PathPing 
Pax 
Pentnt 
Ping 
Popd 
Portuas 
Protshell 
Pushd 

_R_
Rcp 
Rem 
Rexec 
Rmdir 
Route 
Rsh 


_S_
Setver 
Subst 

_T_
Tcmsetup
Tftp 
Tracert 
Tree 

_U_
Ver 
Verify 
Vol 

_X_
xcopy

DOS is just as "inconsistent" as the *nix command line.  As others have
argued, users _may_ just be more familiar with DOS because that is what
they used first or have more experience with.

Even the commands that are full words in DOS can be confusing.  What
does "tree" do (rhetorically channeling an average user)? There really
is no indication.

Heck, half the users that I work with are confused by the idea of
Directories because they are so used the the windows/real world metaphor
of Folders.  Ask someone which directory they save their data in and you
get blank looks, ask them which folder and they are right with you.

Why can't "rexec" be named "remoteexecute"?  Well, because if you had to
type that out 50 times in a row multiple times in a week, you'd be put
into hospital with really serious carpal tunnel syndrome.

What the hell does "pax" do? Quick, without looking?  Well, it starts
the Portable Archive Interchange (P A I... no, wait, I mean X).  The
command's acronym isn't even correct!

DOS AND Linux are guilty of this, but it is for a reason.  A user might
not be familiar with Linux's reason (and, trust me, the same number
wonder why Microsoft's software engineers chose the names they did as
well), but that doesn't mean they are necessarily bad.  They were design
decisions that were made.  Now it is up to the user to learn them.

And looking up the answer isn't a bad thing.  That's how you learn and
get comfortable with them.

Finally, as has been pointed out, should a user want to, they can always
customize the names THEY use for commands via the alias commands and
their login scripts.  I think you can find a DOS translation alias file
on the net without much difficulty, but why you'd want to change from
one set of enigeering decisions to another set is beyond me.  It is
probably just better to learn both and not rely on that crutch.



> > > >
> > > >We like it that way.  You can remember the ones you use, 
> and it's 
> > > >no
> >fun
> > > >to type long commands.
> > >
> > > You don't like long commands, then use alias, I have no 
> problem with
> >that.
> > > How come all my friends never remember if it's df, dd, 
> du, etc to do
> >what
> > > they need
> > > even if they did it a weekago, because it's hard to 
> remember! voila.
> >

So they look it up... so what.

df --help
du --help
du --help

never hurt anyone.

How do you get command line/syntax help in DOS again?

/?

That's not too intuitive either... but it is there when you need it.


> >Actually, you don't like short commands, so YOU use alias.  
> We already 
> >have the short commands and we like them very much, thank you.  Unix 
> >was designed to be easy to use after you learn it.
> 
> IT'S NOT EASY TO USE, even AFTER you learn it.
> If your head is under the soil and you can't figure that out, 
> let me know.
>

Neither is DOS... I guess that's my point.  There is a reason it was
abandoned by the general populace.  It is also the reason why
"graphical" file manipulation shells, and Menu systems were so popular
in DOS (anybody remember DougMenu?)... because the average everyday user
HATED DOS, they wanted it DEAD, and they have fully embraced graphical
computing.  
> 
> >If you optimize the
> >design for people who don't know how to use it, then once 
> they learn, 
> >they will be unhappy.
> 
> They won't be unhappy, they'll customize it to fit there 
> needs, and they can always rely on the easy long solution of 
> typing extra 
> characters
> if they forgot which alias it was...
> 

Your argument doesn't make sense.  Many distributions alias common
commands to match DOS (even though most users haven't used DOS in years,
but that's a different argument) or the user can do it themselves (SuSE
used to tell you how to do this in the printed documentation that came
with the computer).  So you're saying that the default commands should
be longer and can be aliased to shorter command names as the user gains
experience.

If all users are eventually going to be experienced users, wouldn't make
sense to just to leave the system defaults as the short "advanced"
names?  Then only the subset of commands that a novice uses should be
aliased for the novice.  Once they advance they don't have to re-alias
every command on the system, they just drop the aliases of the commands
they now know how to use.

Your argument is just one of reversal. 

>
> >It's better this way.  Trust me:-)
> 
> Okay, I gave you an F for Usability 101.
> 
> The client is always right, the programmer is always wrong. 
> Make the client happy, unless it doesn't make sense or it's 
> impossible to 
> fabricate.
>

So pre-alias a subset of commands to be like DOS (which they never used
either).  Many distributions do this already.  Check that one completed.

> 
> > > >Did you ever use VMS?
> > >
> > > That's a flamebait, saying hey there's WORST, why aren't 
> you happy? 
> > > You're not happy with your broken car, hey in my time we used to 
> > > walk 3miles in the snow without boots every morning!
> >
> >No, it's an example of just what you proposed.  It is a very well 
> >thought-out, consistent, command syntax that uses 
> descriptive names for 
> >all of the commands.
> 
> Okay, I never used VMS.
> 

When I started College, we programmed and worked on the VMS system.  I
won't miss how sore my hands were after even a little use.  Having to
type everything, EVERYTHING, out ever time stinked.  You could alias the
commands to shorter syntaxes, but it you helped someone else out on
their login there was no consistency.

VMS was a wonderful powerful system, but when I discovered UNIX, even
though the initial stages were tough going (its always hard to learn
something new), I was so thankful for the shortened syntaxes.


>
> >Unfortunately, you do a lot of typing.  I prefer
> >the short commands because it's quicker.  But when I switched, I was 
> >unhappy with Unix commands for a short time because they 
> were cryptic.
> 

>
> See? They ARE cryptic, therefore, difficult to learn.
> That's a bad design. You could have a standard set of alias 
> on every Linux 
> system

Cryptic is the wrong word here.  DIFFERENT would be better.

If you want to see cryptic, back in VMS which had a much more
descriptive command set than DOS or UNIX, try copying a directory of
files and switching between directories was always confusing.  That's a
simple operation, but (believe me) it was strange.  I was so happy to be
able to just type "cd <directory name>" instead of having to not only
tell VMS that I was changing the directory but tell it that I wanted to
tell it the username that held the directory.

Yeah.

not fun...

AND A HELL OF A LOT OF TYPING.  My hands hurt just thinking about it.

> for ultra-geeks or the other way around for newbies.
> 

I still say, put a non-DOS using newbie (some kid that has only been
raised on Windows) in front of DOS and it won't be easy for them either.

Try it.  I will eat my hat if they are productive without help.

> > > >You could always
> > > >understand what the command would do, it was extremely 
> consistent, 
> > > >but it took FOREVER to type long commands.
> > >
> > > Most guru use tons of alias and shell script anyway, so having 10 
> > > mores
> >to
> > > save you typing ain't an issue.
> > >
> > > Hey, I got 300 aliases on my .cshrc and 300 batch file in DOS.
> >
> >And you, being a guru, would know.  I used to do that 
> myself, about 15 
> >years ago.  But the problem is that you learn your own personal 
> >customized environment, and then when you go to a new machine (not
> >yours) you can't use it because you don't have your 300 line alias 
> >file.
> 
> That's why FTP, CD and floppy exists... if not rely on the 
> long command.
>

Your kidding, right?

So I need to carry around the "advanced" optimizations with me.  If DOS
is so easy to use, why can't the newbie carry around the optimizations
for the 1/10 of the standard system that they use and let advanced users
have a good default system from scratch?

If I have to support their system, it is less productive (when there are
problems) for me to first configure the system for me, do the work, and
then set it back for them).  

If the defaults are for the advanced users, I can use those WITHOUT
having to reconfigure the system as they will work even WITHOUT changes
to the system.  They don't affect the newbies aliases AT ALL.

Again MOST NEWBIES HAVE NEVER AND WILL NEVER TOUCH DOS.  This is moot
argument.

Have you ever done computer support?

> 
> >Most experienced people I know don't have many aliases for 
> this reason.  
> >It is the same reason that I still know vi.  No matter where I go, 
> >there is always vi.  I prefer SciTE, but not many other 
> people have it 
> >on their machines.
>

Praise Be!  Someone with a clue.

The theoretical (because it ain't DOS) Newbie Wonder System that we are
talking about is fine if you are the only user to ever touch it.  Find
me a 100 computers in the same business that ONLY one person ever
touches (EVER) and I think this would work.

Otherwise... Forget it.  Since NO NEWBIE USER USES DOS THIS ARGUMENT IS
MOOT!

> 
> Now, I know who you are... you're a vi freak, that's why 
> you're so borned. vi is completely unusable, trust me.
> 

Huh?

Are you sure it is COMPLETELY unusable.  COMPLETELY?

> I rely on pico, else some GUI editor, else emacs else vi.

I noticed you didn't say that that's why you rely on the DOS editor.
Hmmm?  Why is that?  Is it because it isn't full featured.

Personally, I write most of my documents in Notepad, Kate, Abiword,
Word, Open Office Writer, Wordpad, notetab.

If I am on the command line, I use vi (though vim for Windows is a great
safe way to look at potentially hazardous files).

I find vim to be very usable.  How do you remember all of the
CTRL-META-Command key combinations in emacs?  Hmmm... could it be that
you have learned them over time?  And if you forget them, I bet you have
to look them up... thought so.

> I'll stick to MS Office, thank you,
> it seems to also works through Wine or something like that.
>

Wordperfect exists for Linux and so do a number of other free/commercial
office suites, like GoBe Productive, Abiword, Kwrite, Kate, Hancom
Office... among others.

Also the New Open Office is quite nice.  Time is on its side.

> 
> > > > > 6) Finding what is the damn parameter for that application 
> > > > > inside a
> > > >config
> > > > > file is a nightmare.
> > > >
> > > >But you understand the Windows Registry in depth, know 
> what all of 
> > > >the parameters are for, and can easily fix it when it gets 
> > > >corrupted.

Yeah right.  Minor corruptions sure.  Major corruptions.... no way!

It is VERY hard to corrupt a simple text file.  It is amazingly easy to
irrepairably corrupt a binary file (like the registry).  The fact that
there are no (default) tools to hand repair a corrupted registry from
the command line is mindboggling.

That's funny because, given the right misconfiguration of the registry,
Windows will not boot to allow you to use the graphical tools to fix the
problem.

A simple text editor (like vi for instance) can be easily used to hand
repair a misconfigured config file.

> > >
> > > In most case, it's straight-forward.
> > > In most case, you don't need any regedit, just use 
> Tools->options... 
> > > If you need regedit, it's mostly in HKLM->Software->Company->app
> >
> >But when the registry breaks, you often have to reinstall 
> all of your 
> >software or even the entire OS + software packages.
> 
> You never EXPORT regedit the entire registry on 
> C:\backup\yyyymmjj.reg ? If it BREAKS you can fall back using 
> DOS, forget WinXP.
>

Like forever.  You mean if XP fails because of a registry corruption
that you can't import the backup of... and we know you can't use
regedit... then you will just continue working in DOS.

huh?  

You wouldn't reinstall the operating system and be mad that you could
just fix the registry from DOS?

Just use DOS!?!  Funny, because of NT/2000/XP's security model, you are
going to have a hard time (a) creating any files (b) reading any files
not in the Windows (or winnt) directory or (c) copying any files off the
system.  You also are only be able to use the edit command (I am not
even sure that that will work).  I really don't think you are going to
be productive.  But if that is what you do, that is what you do.  I am
amazed.

When registry corruptions happen to ME... AND the backups don't work, I
make sure I have all my data (oh... I have to use a Linux Boot CD to be
able to copy off anything that wasn't already backed up) and then I
reinstall Windows and ALL of my applications and THEN I restore my
backups... all the time cursing the fact that a simple registry edit
would have fixed the problem and the fact that no DOS tools exist for
this.  Luckily some Linux based tools are coming out (there are
non-linux tools out there, but they cost thousands of dollars) that will
allow you to edit the registry from the command prompt.  Still a little
iffy for me, but they are improving all the time... good thing I have
the Linux command line experience.

Now, when my Linux systems screw up do to config-badness, I again boot
with Linux CD (those things are darned handy... and Knoppix is graphical
too) and then I edit the appropriate config text file and then I reboot
the system and I am back up and running in minutes... all the while
praising Linux Torvalds and Open Source Hackers everywhere for such an
amazing operating system.

> 
> >That is the beauty
> >of the config files.  You can always just edit the config file.  You 
> >can also boot something like knoppix and mount your disks 
> and fix them 
> >that way.
> 
> You can also boot DOS and fix it also, again WinXP DOS is 
> more primitive 
> than DOS 1.0
> 

Exactly.  You can't do anything with it... which further amazes me that
you would use this instead of just reinstalling Windows XP.  Again, I
bow before your tolerance.

> > > > > 7) Trying to find what's the man page for that damn obscure
> >parameter
> > > > >      for that application inside a config file is a nightmare.
> > > > >

Hmmm... I just read the config file's comments.  The examples usually
explain everything nicely.

Back on the topic of the rigestry... what exactly does the CSLID
0043e-x34580-xdpw94-0034ds registry key do again?  I can't seem to find
it in Windows or DOS help and the book at the library was only for
Windows 98's registry and I am using XP.  I could buy an updated book
but it costs $50 bucks, I have the problem right now, AND it gets
terribly reviews on Amazon.com.

Talk about an obscure nightmare.

> > > > > 8) Trying to find all the DLL dependancy for that application,
> > > > >      so I can kill it safely... and reload it is a nightmare.
> > > > >

You're talking Windows right?

The process list for Windows is FLAT!  How can I tell what started what?
Even the Linux ps command line lets me see things as a process tree
(with the proper command line options)!  Then Parent Child process
relationships are a breeze to riddle out!

This single thing drives me the most insane when working on a Windows
machine with run-away processes.

> > > > > 9) Having more than one DLL version on one system without 
> > > > > breaking
> >all
> > > > > application.


This affects Windows too.  

> > > > >
> > > > > 10) Where is it!? /usr/local/bin /usr/bin /bin /opt /opt/bin 
> > > > > /home
> >/var
> > > >/etc
> > > > > /etc/rc.d
> > > >
> > > >whereis APP or type APP will tell you where it is.  Also 
> try locate
> >APP.

Even better, type:

which APP

That will tell you what exact binary you are using.

> > >
> > > Admit, it's stupid. I know the origin of this tree.
> > >
> > > /bin = boot minimum
> > > /usr = mounted server
> > > /usr/local = local mount
> > > /opt = optional mounting stuff
> >
> >You don't like it, but it isn't stupid.  It's just not what you are 
> >used to.  I don't care where the app goes.  I put my stuff in the 
> >/usr/local tree.  Redhat likes to put everything in /usr.  
> SuSE puts a 
> >lot of stuff in /opt.  I can live with either one.
> 
> The problem is that there should be a standard and all distro 
> use that 
> standard.
>

Yes and it is called the Linux Standards Base project
(http://www.linuxbase.org/).  This is supported more and more with each
new version of many many Linux distributions.

Next.

> 
> > > > > 11) In 6 years, I never got one ./configure && make && make 
> > > > > install
> > > >working
> > > > > at all.
> > > > >     Mostly fails at configure or make with pages of errors and
> > > >undescribable
> > > > > messages.
> > > > >     It needs to be compiled ==> means I'm screwed if 
> there's no
> > > >package...

Not one!

I have completely new student users who have been able to do this.
Generally you have to remind them to change to the root user before
attempting.  They also read the README and CONFIG files before starting.

Wow... not one.

On the other hand... I almost never have to do this with a straight
install of the systems that I use.  I haven't compiled an application in
over a year and then it was because I wanted a feature that wasn't in
the version that shipped with the distribution.

> > >
> > > > > 12) All Linux distribution should be EASY to install, 
> like Knoppix.
> > > > >     It boots, it works, it's configured. No hassle.
> > > > >

One of the guys in my office (a complete Linux AND Unix newbie)
installed Red Hat (fearing that it was going to be hard) on a system and
was SHOCKED how easy it was... including setting up dual booting (by
default it does this when it finds Windows already there) with Windows
XP on an NTFS file system...

Linux installation IS easy.

He said that he had more problems with setting up XP on some systems.

> > > > > 13) Most problem with Linux distro including Knoppix,
> > > > >     is that you need BADLY that application 
> unsupported at all 
> > > > > on
> >your
> > > > > distro.
> > > > >     Knoppix cannot really be installed on hard disk... =(
> > > >
> > > >Wrong.  google for this one.  there are a couple of easy 
> ways to do 
> > > >it.

It's been able to be installed on the hard drive for at least a year.

> > >
> > > It's not supported by default, it's a geek-hack, read the website.
> >

Yeah it is supported by default.  Check www.knoppix.net.  Just open a
command prompt and type knx-hdinstall.  Answer a couple of questions and
it installs very easily.

<<<snipped>>>

> 
> I read those:
> 
> W. Richard Stevens,
> Unix Network Programming: Networking APIs: Sockets and XTI,
> 2nd ed., Vol. 1,
> Prentice-Hall,
> ISBN 0-13-490012-X.
> 
> W. Richard Stevens,
> TCP/IP Illustrated, Volume 1 The Protocols,
> Addison-Wesley Publishing Company,
> ISBN 0-201-63346-9
> 
> W. Richard Stevens,
> TCP/IP Illustrated, Volume 2 The Implementation,
> Addison-Wesley Publishing Company,
> ISBN 0-201-63354-X
> 
> NOT NETWORK PROGRAMMING, NOT PIPE, NOT SOCKETS,
> I'm talking about message passing like in QNX4/6.
> 
> The only thing I could find for Linux is MPI which is a MESS.

Linux isn't a micro-kernel (then again...neither is Windows)...

for more on the debate as to why read the argument between Tannebaum
(creator of the micro-kernel based minix... which Linus used as a
jumping off point for Linux) and Linus (creator of the monolithic kernel
based Linux):

http://www2.educ.umu.se/~bjorn/mhonarc-files/obsolete/

You want Linux to be something that it is designed not to be.

Use HURD (http://www.gnu.org/software/hurd/) or QNX (as you have
stated).  MACH (OS X) is also a microkernel.

> 
> Sincerely yours,
> Fred.
> 
> _________________________________________________________________
> Protect your PC - get McAfee.com VirusScan Online  
> http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
> 
>