Re: Fred Linux Annoyance List.
Lawrence MacIntyre <[email protected]> Thu, 16 Oct 2003 09:51:54 -0400
| Newsgroups | gmane.linux.usability.annoyances |
|---|---|
| Organization | High Performance Information Infrastructure Group |
| Message-ID | <1066312314.1588.144.camel@nautique> |
Fred:
I get it. You're trolling. You took a c++ class in school and you
believed everything you heard and haven't learned anything since. I've
been on the Internet since before we called it the Internet, and I've
seen a lot of strange stuff, but I never thought I would see the day
when someone with a .hotmail.com address would diss someone for having a
.gov address. That has got to be a first!
On Wed, 2003-10-15 at 22:52, Fred P. wrote:
> By seeing your comment, I can tell that:
>
> 1) You hate Microsoft no matter what.
Untrue. I use Visio for diagramming lab setups, and we have windows 2k
and xp at home because my kids like the games.
> 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. See
above comment about the .gov remark (I still don't get that one...)
> 3) You have no clue what are proper software engineering techniques,
> I strongly recommend you read a lot on this field.
No. Actually I understand that different projects have different
needs. There are probably even valid reasons to use Visual Basic for
some of them. Who knows?
> 4) I might be clueless for some part of *nix systems,
> but I know far more than anybody I came accross to apart few *nix
> gurus/sysadmin.
You are. And you haven't been around anyone good, or you didn't
recognize them as such when you were.
>
> > > - I don't understand how you can accept patches
> > > that break stuff or doesn't even compile cleanly inside Linus
> > > kernel...
> >
> >You have GOT to be kidding. I've installed WAY more windows updates
> >than Linux security patches. Linux code is much higher quality than
> >microsoft code.
>
> Non issue. No matter what.
> Comparing Linux with microsoft is not a good way to approach such thing.
> Comparing Linux with "the perfect sofware goal" is much more constructive...
Hey! A good point! That was refreshing.
> >Did you happen to notice the word "test" in 2.6.test1? It is unlikely
> >that the person who applied the patches could attempt to build the
> >kernel with all combinations of options.
>
> Never heard of regression testing, unit testing and similar?
> You apply a patch then you fully test it RIGHT AWAY
> before propagating the changes.
Check out the .config file for your kernel. How long would it take to
regression check all combinations of options? That is the point of
testing. At a company, you would do it internally. With the Linux
kernel, we do it as a community. The maintainer posts the next test
version, and we download it and test it on our various machines.
> >That's one good reason to send
> >out a test version. I'm sure that the kernel would have compiled IF you
> >used the same .config file as Linux uses...
>
> Nope, did you check the statistic, this is daily automatic build.
> It was documented in some newspaper, that even at Microsoft,
> when someone break the "daily build" they are callable 24/7 to fix it
> until it compiles/test properly before the next day.
Right. But there is only one build. There is no equivalent of the
.config file with different options and modules. AND they are getting
paid to carry the pager home.
> > 2) Buffer overflows
> > > - Most GNU software still use char* when glibc string_t is out
> >there
> > > since years... WHY???
> > > - It should be prohibited to use any unsafe str*() calls and always
> >use
> > > strn*() variant.
> > > - Any C program should use get/set function to access data
> >structure
> > > like in C++ or pthread.
> >
> >C programs should not, in general, use get/set functions. C is for use
> >when you want to be efficient. Also, get/set functions are used when
> >you want to hide the implementation behind an interface. That isn't
> >always desired.
>
> You have the mentality for the perfect maintenance nightmare!
> Imagine you have ~1 million LOC, take X or Linux,
> now imagine that everywhere in the code you do rect.x++
> now imagine that for some reasons you need to change rect,
> to add lets say "persistant object using struct", all reference to rect.x
> must be changed. If you have a #define or inline function, it requires one
> line of change.
> In your case, you must audit all LOC to make sure everything works fine.
Imagine that you are writing C code (since that was the subject). The
reference to rect.x would have to be changed because the compiler won't
accept rect.x (that is C++).
Also imagine that your code does NOT have 1 million lines. OOP is
good. I use it when it is appropriate. However, it isn't always the
best tool for the particular job, anymore than you would use a hammer to
put a screw in a board. There are a lot of programming languages, and
most of them have strengths in some area that makes them ideal for
certain tasks.
> > > 3) #define inlining sickness
> > > - Xlib comes to mine, stop using #define and use inline
> >functions!!!
> >
> >They both have their purpose. Plus, Xlib is really old. Maybe they didn't
> >have inline then?
>
> No, someone just taught up that it would be nice to #define them,
> now X maintainers are complaining about it REALLY REALLY BAD.
> See the X fork thread stuff.
>
> > > 4) code that use TABS => USE 2, 3 or 4 SPACE!
> > > - Tabs aren't compatible, they are from 2,3,4,5,6,7,8,10,12 spaces
> > > they get mix up in different editors and things get messy.
> >
> >Wrong. I always use tabs because I like using 2 space indents, but lots
> >of people like different sizes. All you have to do is tell your editor
> >to display tabs as 2 spaces. Surely your editor can do that!
>
> I like 2 spaces also, but if I edit a file in emacs, vim, pico/nano,
> editplus, notepad, MS edit,
> Visual Studio, Borland C++ Builder, you can be sure that any tabs in one of
> them will get screwed:
> - Unaligned comments, code, { }, etc.
vi will let you change the size of a tab. Personally I use SciTE. It
does as well. If you use spaces, you have to edit the code to change
the indents. They only get unaligned when you use spaces sometimes and
tabs others, and then change the size of the tabs.
> > > 5) put some comments, clear and concise name and coding in english.
> >
> >Yes.
> >
> > > 6) Use external i18n translation facilities
> >
> >That's pretty new.
>
> Anything similar will do.
>
> > > USABILITY:
> > >
> > > 1) Man pages sucks, unreadable, unusable,
> > > you always get the wrong version of what your looking for,
> > > you have to guess which pages is it for that C function since you
> >get
> > > that Tcl/Tk manpages.
> >
> >Try man 3 for c functions.
>
> That's a pretty geek way of solving an issue.
Yeah, only geeks read man pages. You smart guys can just figure it out
from the context.
> > > 2) Some man pages are WAY too long, you scroll for years with zillions
> >of
> > > options, gcc comes to mind,
> > > and you cannot find the one you REALLY want.
> >
> >Either there's too much, or there isn't enough...
> >
> > > 3) Documentation make it concise lynx compatible HTML style with a
> >search
> > > engine,
> > > see http://www.qnx.com/developer/docs/
> > >
> > > 4) No standard GUI, means everybody develop for CONSOLE.
> > >
> > > 5) ncurse is unfriendly, undocumented and unusable:
> > > - document it and make it friendly.
> > >
> > > 6) Most applications are simply unusable, undocumented, no proper error
> > > code,
> > > they try to look funny, cartoonish, eye-candy, unknown RTFM
> > > feature-based, disturbing, etc.
> >
> >Windows apps are MUCH more likely to fit this description.
>
> Any X toolkit, Gnome icons, KDE icons, Windows XP Luna theme comes to mind.
>
> > > 7) Most applications are slick BETA version and if you're not happy,
> > > your stupid or just read the damn manual, hey BTW this crapt is
> >free!
> >
> >Untrue. (p.s. There is no t in the word crap.)
>
> Most application, that means including 80% of all unpopular ones...
Let's try limiting this to packages in widespread use. Say those
distributed by RedHat, SuSE, and/or Debian. If you count all of the
applications ever written, then your point is valid. Also, remember,
that any package under active development WILL have a Beta version. But
it will also have a stable version as well.
> > > 8) First thing you should all know:
> > > If you ever read a software manual,
> > > the application usability interface is broken by definition. QED.
> > > It should be intuitive for anybody,
> > > even someone who never used a computer before.
> > > Help should be provided without being "invasive" like a clip thingy,
> > > use beige bubble help, status bar and F1 key.
> > > 9) Application should have different user mode:
> > > - Newbie
> > > - Normal
> > > - Expert
> > > - User specify
> > >
> > > 10) Application should be installed/uninstalled
> > > like ActivePerl console based or Windows add/remove programs.
> > > One click or expert mode, straight-forward usage.
> > > Automatic dependancy resolver.
> > >
> > > 11) There are tons of version of different applications, but the one you
> > > need doesn't exist,
> > > you get one feature here, one feature there, but most apps don't
> >have
> > > everything you need.
> > > Some super-duper extremely popular applications are getting there
> > > perhaps.
> > >
> > > 12) Lost in the wood problem => GNOME/KDE.
> > >
> > > 13) Most Unix command line are really obscure and clueless, I mean DOS
> >was
> > > simple:
> > > copy, del, dir, backup, restore, chdir, rmdir, mkdir, echo, rem,
> > > diskcopy
> > >
> > > 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...
> >
> >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.
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. If you optimize the
design for people who don't know how to use it, then once they learn,
they will be unhappy. It's better this way. Trust me:-)
> >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. 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.
> >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. 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.
> > > 14) Most Unix commands makes use of RegExp, awk, sed, perl.
> > > The problem with RegExp requires a DFA/NFA CompSci hard theory
> >course
> > > and cannot be really self-taught.
> > > --> Make a newbish GUI RegExp builder tool?
> > > 15) Hide as much as you can from the user, make it "progressive".
> > > Don't INSTALL everything. Ask the user what he wants to install and
> >how
> > > he want it,
> > > in the worst kind of newbish installation program you can get.
> > > Think mIRC or Trillian or Install Shield: click, click, click, done.
> > >
> > > NO FREAKING:
> > > rpm -uvh
> > > configure && make && make install.
> > > apt-get
> > > whatever_your_taste_of_the_day_command_line
> > >
> > > See QNX6 installation packages (qrm/qpk) or Windows .msi download
> >link.
> > > http://www.openqnx.com/Topic11.html
> > >
> > > 16) TrueType Windows fonts!!!
> > > Who invented anti-aliasing for less than 18pt fonts ?
> > > I can't believe people use anti-aliasing for 8,10,12,14pt... are you
> > > dyslectic or what?
> > > Anti-Aliasing is only good for BIGGGG font like 36pt titles and
> >more...
> > >
> > > 17) All distro GUI/API are completely different:
> > > Writing a TODO step list to perform a simple task is nearly
> >impossible.
> > > Another reason why people rely on heavy command lines...
> > >
> > > PHILOSOPHY:
> > >
> > > 1) Unmarketable software, most paying software
> > > are low success see StarOffice vs OpenOffice and similar,
> > > since there is a highly "must get a free clone"
> > > mentality and "paying fee" is wrong.
> > > Therefore, most software lacks good programmers or lobbyist
> > > and most software company are discouraged to produce
> > > applications/games for such platform, where free clone is the way to
> >go.
> > > "Thank you to produce such good software but sorry
> > > I won't give you a dime for using it..." mentality.
> >
> >I use OpenOffice. It works for me.
>
> Not in all case, see StarOffice vs OpenOffice comparision.
>
> Last time, I tried OO 2 years ago, the excel equivalent was SO unusable.
Try it again. OOo 1.1.0 is much improved. I hear that the spreadsheet
is quite good now (I've never actually used a spreadsheet myself). If
you don't like that one, try gnumeric. I use OO Writer for papers, OO
Draw for diagrams, and OO Impress for presentations. They all work
quite well.
> > > 2) RTFM. Your such an idiot.
> > > Your not on the good forum,
> > > sorry there's no forum for your question just RTFM,
> > > even if it's not in the FM.
> > > I can't help you, I have no good answer but BTW your such an idiot.
> > >
> > > [P.S. Sometime after few hours(!), I finally find some nice person
> >who
> > > can actually help me...]
> > > [==== If they were the majority, Linux community would be a better
> >place
> > > to live... ]
> > >
> > > 3) Be nice and gentle and try to help people.
> > > See QDN or SVG "very nice" people community mailing list.
> > > Don't forget that today's newbies are tomorrow hackers
> > > helping you to debug that specific bug... you can't figure out.
> > >
> > > 4) I'm not a programmer, I'm an hacker. I produce lots of unreadable
> >code,
> > > it just have to compile somehow, no matter if it's usable,
> > > it's not my problem, it's yours, if your not happy go elsewhere or
> >do it
> > > yourself.
> > > Mentality.
> > >
> > > 5) Philosophy idiots, I mean zealots.
> > > Linux should not be a religion, no matter what.
> > > No OS for such matters. See Linus quote.
> > >
> > > 6) Use CONSOLE, don't use GUI, your such an idiot.
> > >
> > > 7) I can type 3000 commands in one line,
> > > but hey you shouldn't ask for one button to be click to do the same
> > > thing... mentality.
> > >
> > > 8) It's a hacker OS for hackers, it shouldn't be usable.
> > > If it ever becomes usable,
> > > I'll see if I can switch to some other OS or simply ensure it stays
> > > unusable...
> > > [Copy-Pasted from some slashdot post ]
> > >
> > > 9) Our OS is ultra secure, but if there is no easy patch for the latest
> > > rootkit/vuln.,
> > > just go CVS and try to patch your prod server yourself...
> > > Hey, if it doesn't work or compile ain't my problem... it works on
> >my
> > > machine.
> > > Why do you need an RPM, just CVS!!! You're so stupid.
> > >
> > > 10) Stop shouting about Microsoft:
> > > - Microsoft and Apple got one thing right: It's usable. Linux is
> >NOT by
> > > definition.
> > >
> > > 11) Stop shouting about money, profits and big corporations:
> > > - Big corporations are your friends,
> > > they bring big usable applications that people need and want to
> >buy.
> > > Don't work against them!
> > >
> > > 12) Stop making some new license:
> > > - I've heard of projects that can be distributed but couldn't be
> >compile
> > > because it use too many license and incompatible library
> >licenses...
> > > that's just plain wrong and crazy.
> > >
> > >
> > > CONFIGURATION:
> > >
> > > 1) Configuring Linux is a nightmare.
> > > 2) Configuring Linux application is a nightmare.
> > > 3) Finding where is the damn config file is a nightmare.
> > > 4) Finding what's the damn syntax for that config file is a nightmare.
> > >
> > > 5) Finding why that config file doesn't work in that config file order
> > > on that booting mode is a nightmare.
> > >
> > > 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.
>
> 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. 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.
> > > 7) Trying to find what's the man page for that damn obscure parameter
> > > for that application inside a config file is a nightmare.
> > >
> > > 8) Trying to find all the DLL dependancy for that application,
> > > so I can kill it safely... and reload it is a nightmare.
> > >
> > > 9) Having more than one DLL version on one system without breaking all
> > > application.
> > >
> > > 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.
>
> 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.
> > > 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...
> >
> >Perhaps you are clueless:-) (sorry, I just couldn't resist). If you
> >don't have the right versions of support packages, that can happen.
>
> That can happen too many times you mean.
> It's like last time I tried to compile Postgres the lastest STABLE release,
> couldn't get it compile, same thing with Perl CPAN module with C stuff.
I've done both recently. I had no problems. So did you post your
errors to the relevant lists? Both projects have excellent support.
> >I usually have a relatively recent RedHat version, and the only packages
> >that I have problems with are new KDE apps, because RH doesn't ship
> >recent versions of KDE.
>
> > > 12) All Linux distribution should be EASY to install, like Knoppix.
> > > It boots, it works, it's configured. No hassle.
> > >
> > > 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 not supported by default, it's a geek-hack, read the website.
This is a strange attitude for someone claiming to be a guru
programmer... You have to type knx-hdinstall and answer a few
questions. That sounds pretty simple to me.
> > > 14) Application should be easy to configure, intuitive,
> > > self-describing panels like Windows 9x or Mac OS X.
> > > You see it for the first time in your life, and you know
> > > what is what, what does what, and what changes what,
> > > without reading any help files, manuals, documentations or
> >whatever...
> > >
> > >
> > > FLEXIBILITY:
> > >
> > > 1) Micro-kernel like dependancy:
> > > a) update/patch your kernel without rebooting just
> > > (reload it in few microseconds: stop/start like a service)
> > > b) update/patch your device driver without recompiling any kernel
> >source
> > > (stop/start)
> > > c) update/patch any library (stop/start)
> > >
> > > # kernel --reload kernel-2.6.0-test6.bin
> > > # kernel --reload glibc-x.x.x
> > > # kernel --reload scsi-driver-x.x.x
> > > # kernel --stop lan-driver-x.x.x
> > > # kernel --start modem-driver-x.x.x
> > > # kernel --display driver
> >
> >Most of this is already there. If you have a driver in a module, you
> >can unload it and load the new one (unless it's being used). Reloading
> >a kernel, now that would be a good trick. I think you are just going to
> >have to reboot for that one. If you use modules for your drivers, you
> >can list them with lsmod. If you install a new glibc, the programs that
> >are already running will still be linked to the old one, but new
> >invocations will use the new one.
>
> Old invocations will still use the old one,
> even though there's a security breach in the library for instance...
> and that's why you installed the new version in the first place.
> Now you might have apps that break if you use the new version,
> again regression testing...
So restart the application. While it would be possible for the
application to reload shareable objects before using them on the
off-chance that a newer version has been loaded, that isn't a real
efficient method.
> > > 2) Have a friendly I/O interface: Game port, Parallel port, Serial port,
> > > Keyboard, Mouse
> > > without ROOT in/out assembly privileges or terrible TTY interface.
> > > It's horribly complicated in C, now imagine in assembly...
> > >
> > > Think /dev/port limited to these with a root:port 770 privilege:
> > > /dev/gameport
> > > /dev/serport
> > > /dev/parport
> > > /dev/kbdport
> > > /dev/mouseport
> > >
> > > /dev/sndport
> > > /dev/lanport
> > > /dev/hdport
> > > /dev/fdport
> > >
> > > Moreover, it may be nice to assign ACL privilege in the future.
> > > You may want an application to write to parport/serport without
> >being
> > > root,
> > > for security reasons.
> > >
> > > 3) Message passing within threads like QNX
> > > (badly needed to replace those UNIX signals crapt).
> >Message passing has been a part of linux for many years. Where have you
> >been?
>
> Where's your URL link with C code and documentation ?
Surely you, being a guru, have read Unix Network Programming, by Stevens
(published in 1990). It's probably the best Unix programming book ever
written. The examples are a bit dated now, as POSIX has been updated,
and we don't use K&R C anymore.
> > > 4) Provide some sort of XUL+JS programming interface for console-only
> > > application
> > > to provide a framework for ncurse/Qt/GTK GUI.
> > > http://www.xulplanet.com/references/elemref/quickref.html
> > >
> > > Example:
> > > dd with dd.xul
> > >
> > >
> > > CONCLUSION:
> > >
> > > Imagine a world where Linux works like Knoppix
> > > Auto-configure with good defaults
> > > Gets installed/uninstalled/configured like mIRC or Install Shield
> > > Intuitive non-intrusive non-disturbing nice graphical interface
> > > Very Very nice documentation
> > > It just works like a charm
> > > It gets patched easily
> > > You get the job done without fiddling with command lines, man pages and
> > > similar.
> > >
> > > Now that would be nice!!!!
> > >
> > > Sincerely yours,
> > > Fred.
> > >
> > > P.S. I'll try to find more...
> > > I'm a masochist guy that try really hard to love Linux,
> > > but Linux don't love me at all!
> > > _________________________________________________________________
> > Lawrence MacIntyre 865.574.8696 [email protected]
> > Oak Ridge National Laboratory
> >High Performance Information Infrastructure Technology Group
>
> _________________________________________________________________
> Protect your PC - get McAfee.com VirusScan Online
> http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
>
> _______________________________________________
> annoyances mailing list
> [email protected]
> http://michelangelo.renaissoft.com/mailman/listinfo/annoyances
--
Lawrence MacIntyre 865.574.8696 [email protected]
Oak Ridge National Laboratory
High Performance Information Infrastructure Technology Group
_______________________________________________
annoyances mailing list
[email protected]
http://michelangelo.renaissoft.com/mailman/listinfo/annoyances
signature.asc
(application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQA/jqJ6CNjP8rawCW4RAjJ9AJsEnwdgyVgGgz3biI4xvcZhKT5OjQCeNIRZ Z26DpEcPMzTIf/mPlMCBTZw= =mv86 -----END PGP SIGNATURE-----