Re: Fred Linux Annoyance List.
"Fred P." <[email protected]> Wed, 15 Oct 2003 22:52:17 -0400
| Newsgroups | gmane.linux.usability.annoyances |
|---|---|
| Message-ID | <[email protected]> |
By seeing your comment, I can tell that:
1) You hate Microsoft no matter what.
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!
3) You have no clue what are proper software engineering techniques,
I strongly recommend you read a lot on this field.
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.
> > - 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...
>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.
>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.
> > 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.
> > 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.
> > 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.
> > 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...
> > 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.
>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!
>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.
> > 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.
> > 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
> > 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
> > 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 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.
> > 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...
> > 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 ?
> > 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