From: jrodman Date: 04:00 on 17 Oct 2006 Subject: GTK, KDE, GNOME, etc and standard error So, in the land of UNIX, there exists three normal channels from the outside world to a program: standard in, standard out, and standard error. Standard in is where a program can expect to recieve keystrokes. Standard out is where a program can send its normal output. Standard error is where a program can send messages about unusual conditions and situations. In this simplistic but effective system it is possible to run programs, feed them input, see the output, and seperately find out about problems along the way. Modern toolkit authors seem to be suffering from some kind of cargo cult mentality. They noticed that a datastream existed for finding out about unusual conditions, and decided that this data channel is actually a good place to put any and all possible messages relating to potential problems which may not even exist or matter. Thus, in a modern KDE or GTK/GNOME application, standard error no longer actually represents errors. It in fact is full of status of lunched subdaemons, errors parsing some tree of mime types 8 libraries away from your application, warnings about slightly incorrect type declarions, complaints about buttons that are slightly the wrong size, and so on. The best part of all this spew is that if your program actually _does_ encounter something that you would need to know about "programname: error opening your_letter.doc: permission denied", it is buried in pages of spew, and you'll never see it. Even better is that of course the x console is totally useless. There is no way you would ever see an error produced by the X system itself, because any directly launched gui bits are all spewing in parallel to the same stderr inherited by the X server. So after suffering with this idiocy for many years, I decided to file a clear and cogent request for the GTK developers to address the issue. http://bugzilla.gnome.org/show_bug.cgi?id=362749 The response of course was, to paraphrase: Well, these messages indicate a buggy program, therefore our action is correct. So, to dissect this reducto-ad-absurdism style. If glib notices the program is running has a bug, it should detonate a nuclear warhead in downtown Manhattan. After all, once it is clear you are dealing with a buggy program, there is no need to actually consider whether your response is reasonable, helpful, or useful, it is self-justified because it is a response to a bug! Q. E. D.
From: dom (Dominic Mitchell) Date: 11:34 on 17 Oct 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error On Mon, Oct 16, 2006 at 08:00:09PM -0700, jrodman@xxxx.xxxxxxxxxx.xxx wrote: > Modern toolkit authors seem to be suffering from some kind of cargo cult > mentality. They noticed that a datastream existed for finding out about > unusual conditions, and decided that this data channel is actually a > good place to put any and all possible messages relating to potential > problems which may not even exist or matter. Thus, in a modern KDE or > GTK/GNOME application, standard error no longer actually represents > errors. It in fact is full of status of lunched subdaemons, errors > parsing some tree of mime types 8 libraries away from your application, > warnings about slightly incorrect type declarions, complaints about > buttons that are slightly the wrong size, and so on. I love the phrase "lunched subdaemons". It seems to mandate daemons that are out to lunch, which I suspect is more than a few of them. -Dom
From: Peter da Silva Date: 11:58 on 17 Oct 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error I've had hate for this particular absurdity since I first encountered it in TeX.
From: A. Pagaltzis Date: 12:35 on 17 Oct 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error * jrodman@xxxx.xxxxxxxxxx.xxx <jrodman@xxxx.xxxxxxxxxx.xxx> [2006-10-17 05:05]: > The response of course was, to paraphrase: Well, these messages > indicate a buggy program, therefore our action is correct. In principle, I would even agree with them, if it wasn't for the fact that a) most GUI app developers never see those messages (I'm certainly guilty) and b) there's no facility to filter the spew à la syslog. Regards,
From: Earle Martin Date: 12:55 on 17 Oct 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error T24gMTcvMTAvMDYsIEEuIFBhZ2FsdHppcyA8cGFnYWx0emlzQGdteC5kZT4gd3JvdGU6Cj4gKiBq cm9kbWFuQGhhdGUuc3BhbXBvcnRhbC5uZXQgPGpyb2RtYW5AaGF0ZS5zcGFtcG9ydGFsLm5ldD4g WzIwMDYtMTAtMTcgMDU6MDVdOgo+ID4gVGhlIHJlc3BvbnNlIG9mIGNvdXJzZSB3YXMsIHRvIHBh cmFwaHJhc2U6IFdlbGwsIHRoZXNlIG1lc3NhZ2VzCj4gPiBpbmRpY2F0ZSBhIGJ1Z2d5IHByb2dy YW0sIHRoZXJlZm9yZSBvdXIgYWN0aW9uIGlzIGNvcnJlY3QuCj4KPiBJbiBwcmluY2lwbGUsIEkg d291bGQgZXZlbiBhZ3JlZSB3aXRoIHRoZW0sIGlmIGl0IHdhc24ndCBmb3IgdGhlCj4gZmFjdCB0 aGF0ICBhKSBtb3N0IEdVSSBhcHAgZGV2ZWxvcGVycyBuZXZlciBzZWUgdGhvc2UgbWVzc2FnZXMK PiAoSSdtIGNlcnRhaW5seSBndWlsdHkpIGFuZCAgYikgdGhlcmUncyBubyBmYWNpbGl0eSB0byBm aWx0ZXIgdGhlCj4gc3BldyDDoCBsYSBzeXNsb2cuCgpJJ3ZlIG5ldmVyIGRldmVsb3BlZCBhIEdV SSBhcHAgaW4gbXkgbGlmZSBhbmQgdGhvc2UgbWVzc2FnZXMgYW5ub3kgdGhlCmNyYXAgb3V0IG9m IG1lIGJlY2F1c2UgdGhleSdyZSBjb21wbGV0ZWx5IGlycmVsZXZhbnQgdG8gbXkgdXNlcgpleHBl cmllbmNlLiBUaGV5IHdvdWxkIHN0aWxsIGFubm95IHRoZSBjcmFwIG91dCBvZiBtZSwgZXZlbiBp ZiBJCndhc24ndCBhIHByb2dyYW1tZXIgYXQgYWxsLiBJc24ndCB0aGF0IGp1c3RpZmljYXRpb24g ZW5vdWdoIGZvciBudWtpbmcKdGhlbSBmcm9tIG9yYml0IHdpdGggZXh0cmVtZSBwcmVqdWRpY2U/ IEhhdGUuCgotLSAKRWFybGUgTWFydGluCiAgICAgICAgICAgIGh0dHA6Ly9kb3dubG9kZS5vcmcv Cmh0dHA6Ly9wdXJsLm9yZy9uZXQvZWFybGVtYXJ0aW4vCg==
From: Joshua Rodman Date: 05:32 on 18 Oct 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error Related: shutup_glib.c: typedef char gchar; typedef void* gpointer; typedef enum { /* log flags */ G_LOG_FLAG_RECURSION = 1 << 0, G_LOG_FLAG_FATAL = 1 << 1, /* GLib log levels */ G_LOG_LEVEL_ERROR = 1 << 2, /* always fatal */ G_LOG_LEVEL_CRITICAL = 1 << 3, G_LOG_LEVEL_WARNING = 1 << 4, G_LOG_LEVEL_MESSAGE = 1 << 5, G_LOG_LEVEL_INFO = 1 << 6, G_LOG_LEVEL_DEBUG = 1 << 7, G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL) } GLogLevelFlags; void g_log_default_handler (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer unused_data) { return; } prompt> gcc -shared -fpic -ldl -o shutup_glib.so shutup_glib.c prompt> export LD_PRELOAD=./shutup_glib.so This gets rid of the lion's share of the spew. Sad that I'm reduced to this. -josh
From: Peter da Silva Date: 11:30 on 18 Oct 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error On Oct 17, 2006, at 11:32 PM, Joshua Rodman wrote: > Related: > > shutup_glib.c: [...] I hate glibc. One day we're going to discover that glibc has become to Linux what cygwin is to Windows.
From: Aaron J. Grier Date: 01:39 on 01 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error On Wed, Oct 18, 2006 at 05:30:34AM -0500, Peter da Silva wrote: > I hate glibc. One day we're going to discover that glibc has become to > Linux what cygwin is to Windows. what is cygwin to windows? (let the cygwin hate begin!)
From: Daniel Pittman Date: 05:18 on 01 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error "Aaron J. Grier" <agrier@xxxxxxxxx.xxx> writes: > On Wed, Oct 18, 2006 at 05:30:34AM -0500, Peter da Silva wrote: >> I hate glibc. One day we're going to discover that glibc has become to >> Linux what cygwin is to Windows. > > what is cygwin to windows? (let the cygwin hate begin!) The worst possible implementation of a badly designed and poorly thought out case of "not invented here" the world has yet seen? Not only does the design ignore the existing POSIX layer for Windows entirely, it then went on to introduce such wonders as zero-security shared memory segments containing trusted data for all Cygwin code. It managed, somehow, to actually hurt *more* in terms of DLL skew than Windows applications did, which is impressive. This is probably connected with the previous comment. It managed to screw up implementing any real POSIX networking while also managing to screw up network performance, all of which was done in the face of a stack that did actually map fairly well to the semantics they needed. Daniel
From: H.Merijn Brand Date: 07:18 on 01 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error On Tue, 31 Oct 2006 17:39:58 -0800, "Aaron J. Grier" <agrier@xxxxxxxxx.xxx> wrote: > On Wed, Oct 18, 2006 at 05:30:34AM -0500, Peter da Silva wrote: > > I hate glibc. One day we're going to discover that glibc has become to > > Linux what cygwin is to Windows. > > what is cygwin to windows? (let the cygwin hate begin!) One way to make a windows PC at least 'a bit' useable. I have not found a better way so far. With Cygwin I can now run KDE on a windows machine, use xterms and scp/ssh to go to *real* servers and workstations. Cygwin might be far from perfect, but at least it is a *free* way to make an unuseable machine useable.
From: Matt McLeod Date: 07:30 on 01 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error On 11/1/06, H.Merijn Brand <h.m.brand@xxxxxx.xx> wrote: > Cygwin might be far from perfect, but at least it is a *free* way > to make an unuseable machine useable. Cygwin is such a hack that it makes a marginally-usable machine unusable. If you want real xterms and KDE, run a full-screen VNC viewer on the Windows box. It's far less painful while still leaving plenty of room for hate. The only "safe" use I can find for Cygwin which is better than the alternative is for running an rsyncd to use for backups. And even then it interacts with Windows in ways which mean you can't run any other Cygwin-based apps unless they link to exactly the same shonky old version of the Cygwin DLL. Hate hate hate. xterm is over-rated. PuTTY is less hateful than xterm, even though it confounds expectations in similar ways. Give me PuTTY and a virtual desktop doover -- because tabbing seems beyond PuTTY -- and Windows can be a perfectly adequate sysadmin desktop. Just make sure you compartmentalise all the wacky toys you want via VMware or the like. Matt (gradually moving from OS X to XP for work thanks to the number of dumb host-management tools that don't work on a Mac.)
From: peter (Peter da Silva) Date: 10:37 on 01 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error > The only "safe" use I can find for Cygwin which is better than the > alternative is for running an rsyncd to use for backups. And even > then it interacts with Windows in ways which mean you can't run any > other Cygwin-based apps unless they link to exactly the same shonky > old version of the Cygwin DLL. Hate hate hate. Interix. > (gradually moving from OS X to XP for work thanks to the number of > dumb host-management tools that don't work on a Mac.) Parallels.
From: Matt McLeod Date: 10:39 on 01 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error On 11/1/06, Peter da Silva <peter@xxxxxxx.xxx> wrote: > > The only "safe" use I can find for Cygwin which is better than the > > alternative is for running an rsyncd to use for backups. And even > > then it interacts with Windows in ways which mean you can't run any > > other Cygwin-based apps unless they link to exactly the same shonky > > old version of the Cygwin DLL. Hate hate hate. > > Interix. I've got an rsyncd binary that works, I don't really care beyond that. I'm not using the wannabe-UNIX environment for anything else anyway. > > (gradually moving from OS X to XP for work thanks to the number of > > dumb host-management tools that don't work on a Mac.) > > Parallels. G5 iMac, got a spare Opteron workstation sitting around but can't get money for a new machine. Matt
From: Chris Devers Date: 02:46 on 02 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error On Nov 1, 2006, at 5:39 AM, Matt McLeod wrote: > On 11/1/06, Peter da Silva <peter@xxxxxxx.xxx> wrote: > >> > (gradually moving from OS X to XP for work thanks to the number >> > of dumb host-management tools that don't work on a Mac.) >> >> Parallels. > > G5 iMac, got a spare Opteron workstation sitting around but can't > get money for a new machine. So run the Opteron headless & access it via VNC or Apple Remote Desktop. Or run the (free) Windows Remote Desktop client for Mac to remote- control a terminal server session on the Opteron. Or pull the trick where you control both desktops with one keyboard & mouse, *not* with a KVM switch, but by putting a 1 pixel, full height VNC session along the margin of one display, and whenever the mouse cursor hits it, jumps to the other one. I forget if it's that simple to set it up, but it's a clever trick for this kind of scenario.
From: Matt McLeod Date: 02:52 on 02 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error On 11/2/06, Chris Devers <cdevers@xxxxx.xxx> wrote: > So run the Opteron headless & access it via VNC or Apple Remote Desktop. I love how everyone knows how to do my job better than I do. Right now the Opteron is effectively-headless (it has a ten-year-old CRT attached) and I use it with RDC displaying to the iMac. Which leads to the discovery that PuTTY is far less dreadful than Terminal.app. And that while RDC is OK for occasional stuff, the redraws are too slow for serious work. This split-platform stuff is a pain in the neck, I want one desktop, not two. It's too jarring switching between the two environments, and as most of my work is done either in a web browser or a terminal session the underlying OS doesn't matter that much. So we're getting a cheap LCD for the Opteron and that'll become my primary machine. Running XP. Without Cygwin. Matt
From: seph Date: 13:18 on 02 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error Chris Devers <cdevers@xxxxx.xxx> writes: > Or pull the trick where you control both desktops with one keyboard & > mouse, *not* with a KVM switch, but by putting a 1 pixel, full height > VNC session along the margin of one display, and whenever the mouse > cursor hits it, jumps to the other one. I forget if it's that simple > to set it up, but it's a clever trick for this kind of scenario. http://synergy2.sourceforge.net/ seph
From: peter (Peter da Silva) Date: 15:27 on 02 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error > Chris Devers <cdevers@xxxxx.xxx> writes: > > Or pull the trick where you control both desktops with one keyboard & > > mouse, *not* with a KVM switch, but by putting a 1 pixel, full height > > VNC session along the margin of one display, and whenever the mouse > > cursor hits it, jumps to the other one. I forget if it's that simple > > to set it up, but it's a clever trick for this kind of scenario. > http://synergy2.sourceforge.net/ http://x2x.dottedmag.net/trac/do http://fredrik.hubbe.net/x2vnc.html http://www.opendarwin.org/projects/osx2x/ These have the advantage that you can save an extra daemon and use the remote window/desktop system you already have running anyway.
From: Daniel Pittman Date: 09:00 on 01 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error "H.Merijn Brand" <h.m.brand@xxxxxx.xx> writes: > On Tue, 31 Oct 2006 17:39:58 -0800, "Aaron J. Grier" <agrier@xxxxxxxxx.xxx> > wrote: > >> On Wed, Oct 18, 2006 at 05:30:34AM -0500, Peter da Silva wrote: >> > I hate glibc. One day we're going to discover that glibc has become to >> > Linux what cygwin is to Windows. >> >> what is cygwin to windows? (let the cygwin hate begin!) > > One way to make a windows PC at least 'a bit' useable. > I have not found a better way so far. Well, you sure haven't looked. Here is a nickle kid, go buy yourself a real POSIX layer for an OS with a solid core design well capable of running one. http://www.microsoft.com/downloads/details.aspx?familyid=896C9688-601B-44F1-81A4-02878FF11778&displaylang=en It even has a writeup on WikiPedia that fails to suck as much as they usually do: http://en.wikipedia.org/wiki/Microsoft_Windows_Services_for_UNIX > With Cygwin I can now run KDE on a windows machine, use xterms and > scp/ssh to go to *real* servers and workstations. With SFU you can have a POSIX layer that works, with little things like performance, integration and security. You even get case sensitive filenames on NTFS for free. Amaze your friends, confuse your Win32 tools, all for the price of entry! Daniel
From: peter (Peter da Silva) Date: 10:45 on 01 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error > http://en.wikipedia.org/wiki/Microsoft_Windows_Services_for_UNIX They don't say it there, but it works just fine on Windows 2000 Pro as well. Just leave the NFS crap out and run Samba on your UNIX boxes, because the NFS crap is part of the old horrible pre-Interix SFU that nobody sane ever used... just install Interix and stop there. And save a copy on your Master Windows Toolkit disks alongside the key service packs and hotfixes, so you can keep on using it the next time Microsoft shoves it behind a broken "you must run this magic ActiveX component to get me" wall.
From: peter (Peter da Silva) Date: 10:35 on 01 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error > One way to make a windows PC at least 'a bit' useable. > I have not found a better way so far. Interix.
From: David Cantrell Date: 17:42 on 01 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error On Wed, Nov 01, 2006 at 08:18:36AM +0100, H.Merijn Brand wrote: > On Tue, 31 Oct 2006 17:39:58 -0800, "Aaron J. Grier" <agrier@xxxxxxxxx.xxx> > wrote: > > On Wed, Oct 18, 2006 at 05:30:34AM -0500, Peter da Silva wrote: > > > I hate glibc. One day we're going to discover that glibc has become to > > > Linux what cygwin is to Windows. > > what is cygwin to windows? (let the cygwin hate begin!) > One way to make a windows PC at least 'a bit' useable. > I have not found a better way so far. Hear hear! Preach it Brother Brand! I imagine that all the problems noted only really matter if you're trying to use it as a development environment, which would, to be blunt, be a really fucking stupid thing to do. If you want to write code for Unix, then write code *for Unix*. If you want to write code for Windows, then use the Windows tools. Approximately no-one should write code for cygwin, for its goal is to provide a set of user tools, not to be a development platform. It succeeds in meeting that goal. It is of course hateful in certain matters, like how it treats the roots of filesystems.
From: peter (Peter da Silva) Date: 00:33 on 02 Nov 2006 Subject: Re: GTK, KDE, GNOME, etc and standard error > I imagine that all the problems noted only really matter if you're > trying to use it as a development environment, which would, to be blunt, > be a really fucking stupid thing to do. Yes, you should use Interix. Also if you're running applications that work with untrusted documents. Like just about anything. > If you want to write code for Unix, then write code *for Unix*. I want to write *portable* code. That means writing code using UNIX tools to the UNIX API whenever possible, because that is the only even vaguely sane portable API. I've written software for CP/M, MS-DOS, AmigaDOS, Win32, VMS, OS/9, RSX-11, and of course a whole variety of UNIX variants using the UNIX API. Even on NT, using the POSIX subsystem is infinitely better than using the native Win32 calls. > If you want to write code for Windows, then use the Windows tools. I hope to be in heaven half a day before the devil realises I've never written code using the Windows tools. Supported developers stuck with that godforsaken API. Fixed their code. Figured out how to work around its abominable limitations. But never sat down and started from scratch using it. Starting from scratch I write for the Unix Programmer's Manual sections 2 and 3, because I don't want to write it twice. > Approximately no-one should write code for > cygwin, for its goal is to provide a set of user tools, not to be a > development platform. It succeeds in meeting that goal. For me, a compiler *is* a user tool.
Generated at 10:27 on 16 Apr 2008 by mariachi