Re: Fred Linux Annoyance List.
Lawrence MacIntyre <[email protected]> Wed, 15 Oct 2003 10:15:08 -0400
| Newsgroups | gmane.linux.usability.annoyances |
|---|---|
| Organization | High Performance Information Infrastructure Group |
| Message-ID | <1066227307.1584.67.camel@nautique> |
Comments inline... On Wed, 2003-10-15 at 07:09, Fred P. wrote: > Hi everyone, > > I'm a VERY BADLY HEAVILLY FRUSTRATED occasional Linux user, here's a short > list why: > > > CODING: > > 1) Quality Assurance > - It compiles, let's ship it! > - Let's have user test the product for us > - How come compilation error for Linux Kernel 2.6 test 1 > had more than 100 fatal errors and 1400 warnings! > After how many 2.5.x series ??? > http://www.ussg.iu.edu/hypermail/linux/kernel/0310.1/0151.html > > - 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. 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. 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... > 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. > 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? > 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! > 5) put some comments, clear and concise name and coding in english. Yes. > 6) Use external i18n translation facilities That's pretty new. > > 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. > 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. > 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.) > 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. Did you ever use VMS? You could always understand what the command would do, it was extremely consistent, but it took FOREVER to type long commands. > 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. > 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. > 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. > 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. 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. > 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. > 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? > 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! > > _________________________________________________________________ > Add photos to your messages with MSN 8. Get 2 months FREE*. > http://join.msn.com/?page=features/featuredemail > > _______________________________________________ > 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/jVZrCNjP8rawCW4RAivyAJ4yG10RpMy/rFjPiVlsR3UXsrMtsACcDqpN NcCfQs0xHgW81+aVyExTAv0= =6Y35 -----END PGP SIGNATURE-----