Older blog entries for auspex (starting at number 42)

7 May 2003 (updated 7 May 2003 at 16:55 UTC) »

RossBurton, indeed, gnome-games is a scary module. I was told on IRC that it changes hands frequently. I shouldn't have included refactoring on my list of special days without mentioning a frequency of those days or at least a context. For code like gnome-games, refactoring would consume so much time that every day would be a "special" day for it. For a stable project, I think it would be good to have a day out of the year to check the code against its external dependecies. For instance, GObject will soon have a new way to handle instance-private data, so stable code might switch to that instead of using *priv as is common now.

I sometimes forget the number of some bug that interests me and look at all the open bugs for a project. For some there are very old bug reports that are no longer relevant, yet the report stays open. There are also forgotten patches. A project maintainer could handle many of these in less than a day, but I suspect that few maintainers use the web interface to bugzilla unless they must. Bugzilla sends email for every change to a bug, so the amount of bug mail for a project is at least twice the number of reported bugs. This has to make maintainership daunting. Except for that someone may incorrectly resolve a bug, it would probably be better for maintainers to ignore bugzilla mail and instead periodically check the bug list via the web.

GNOME Wishlist (cont.)

It would be great if we could rely on GError for alerts. I would still like to see GtkMessageDialog scrapped in favor of simple HIG-compliant widgets. Maybe I spend today writing some.

UI Debugging with grep (cont.)

In a short while I found and made patches for more than 50 instances of the same bug. Earlier today, I decided to look at gnome-games. With apologies to the current maintainer, this module is a mess. It changes hands often, so perhaps it's amazing that it hasn't completely collapsed. I'm tempted to refactor the whole thing. Correcting the misplaced-Close error is simple enough, but removing the Yes/No errors is not. Doing so requires rewording dialogs and changing the response handling code.

Suddenly, I feared the worst. Perhaps in the sed-corrected code there was something weird. I just checked every file by eye and did indeed find weirdness. I'm glad that none of the weirdness will dramatically affect program execution. The weirdness is a matter of style. I found at least 3 different ways of doing the same thing (presenting an error alert) and sometimes more than one way within a single file.

It is at least good that in some programs there is a special function that wraps this so correcting code once corrects the UI in infinite instances.

...

...

I'm so tired I can barely keep my eyes open. There are many quick fixes that I'd like to do now, but weariness compels me to wait.

Notes to self:

  • Does anyone systematically approach programming?
  • Does anyone set aside a day to refactor, to fix bugs, to close bugs, to look for bugs?
  • Am I such a freak for that I would?

UI Debugging with grep

While looking for the protocol violation bug in the GNOME notification area, I spied a UI bug in an error alert. Suspicious, in part because I've seen this UI bug elsewhere, I looked for it in gnome-applets. This was fairly simple. The UI bug is using Close where OK should be used. For some unknown reason, it frequently appears in error alerts. These are often made with GtkMessageDialog, which takes at least one GtkButtonsType argument. GtkButtonsType is an enumeration with GTK_BUTTONS_CLOSE as one of the values. This does not appear in any other code.* By using grep -r GTK_BUTTONS_CLOSE gnome-applets/, I found 20 instances of this bug.** Correcting this bug is trivial.
for i in `grep -l -r GTK_BUTTONS_CLOSE gnome-applets/`; do `sed s/GTK_BUTTONS_CLOSE/GTK_BUTTONS_OK/g $i > $i.tmp`; mv $i.tmp $i; done
For the maintainer to just do that and commit is simpler than me doing that, making a patch file, and filing a bug report for each applet. (I'm going to try to file one for the entire module.)

* If it did, then the grep parameter -B5 could be used to check that GTK_BUTTONS_CLOSE appears as an argument to gtk_message_dialog_new().

** Some instance of GTK_BUTTONS_CLOSE are in another type of alert. That doesn't matter because only instant-apply property or preference windows are supposed to have Close buttons.

Programming is like . . . ?

MichaelCrawford, thanks for the German lesson. I too wonder what programming ability is most like. Neither language nor mathematical ability seems to correlate.

Of course, they both help. I almost switched my major to CS once. I was shocked to find all but one other student used a loop to compute the sum of a range of counting numbers. (I dropped most of my courses that semester, but sank too deep in depression without resigning. My university makes a big deal out of dropping every course, so that one sits on my record with an F or a D.)

Complexity

As I've been building GnomeChat regularly from CVS, I've been exposed to a complex (read: common) build system of late. This has revealed other systemic cracks.

More than a year after Debian should have had an XML catalog, it still does not. Fortunately, I found a script by jamesh that solves the problem for me. It seems the Debian process provides all the bureaucracy of the U.S. Government without the service. I really hate it and I'm switching to something else as soon as I feel ready to archive $HOME and install another OS.

There are so many things that are more complex than they need to be that I don't feel like ranting about them; it would take too long.

GNOME Wishlist (cont.)

A panel applet is the wrong UI for some (most?) of the things the standard panel applets do. The inclusion of battfink is one half-step towards fixing this. (Removing the battery monitor applet is the other half.) Some other things:

  • Use check menu items for the items on the panel which should appear only once.
  • Be reasonable about what should appear how many times. Most of the applets should only have one instance per display or screen.
  • Confine launchers to a special object on the panel. The ill-named "Quick Lounge" applet is along the correct lines.

The Abyss

When any problem could be fixed by fixing a lower-level problem, where does one begin? Not answering this, perhaps more than anything else, depresses me. Even when I decide to work on one problem, the deeper ones annoy me. When solving the chosen problem gets hard, the futility of doing so given the underlying problem weighs in. I'm thinking of problems like those in The UNIX-HATERS Handbook, and also a number of social problems.

Wanting to solve problems instead of wanting to get paid for solving problems is one of my problems. Though I've tutored a little in recent years, I haven't charged for it in more than 6 years.

That tray

Icons in the tray are supposed to be handled much like any other window. You set your hints, and then either you take what you're given or you go away. E.g.:

  • You ask for a 1x1 space. You get a 16x16. Scale up.
  • You ask for a 128x128 space. You get a 24x24. Scale down.
  • You ask for a 1x128 space. You get a 32x32.
    1. Adjust.
    2. Take a little bit of time to look at the platforms that has been using such a thing for a few years (Windows, MacOS) and see if you can get it to sink in that you should use something sqaure.
    3. Realize that if you don't use something square, your design is probably wrong.

Windows appearing outside of the tray have been reported. Since only the tray is supposed to map these window and only after they are embedded, someone is violating the spec. Is the tray mapping before embedding? Is an app attempting to map its tray icon? Dunno.

Ich nien . . . uh, read German.

For years I've been amazed by the solution to the basic Gaussian integral. For most of the mathematical problems I've encountered, I've either had the insight to the solution myself, or had some idea how it was reached. (Mostly the latter, I'm sure.) But not so for the Gaussian integral. It is like a solution out of Looney Tunes; where Bugs Bunny reached into a portable "hole", Gauss reached into another dimension.

Some months ago, this started to really annoy me. The same day I decided I would endeavor to find some paper of Gauss explaining how he came to his solution, I was informed of the Gauss collection at NSU. This was entirely coincidental. I was speaking to a local high school teacher about my high school which is located on the campus of NSU. She'd days earlier learned of the Gauss collection there. Such good fortune! At the time, I already had a trip to there planned for my 10-year class reunion.

Now, I'm not going. While there are former classmates I'd like to see, there are none I'm going out of my way to see. The one I might travel for already told me she won't be there. The one I'd want a restraining order against probably will be going; damn ex-girlfriends.

But still, there's the Gauss collection. No matter what, that would be worth seeing. But I'd forgotten one thing, and the other day my father reminded me of it: I can't read German.

Confusion over Linux vs. GNU/Linux

The truth is that GNU is the kernel of the Emacs OS.

elanthis

(in re wishlist) A scary aspect of a GUI scripting language for GNOME is that it should work over the network. I wonder if that means an X dependency. *shudder*

If hacking the linker is required (I don't know that it is), then there's another benefit of the LinuxSTEP work. :-) As for "install" vs. "drop in place", the simple (so probably wrong) solution would be a daemon. Isn't what's needed really "drop in the right place"?

One thing that really worries me is that I don't see any communication between GNUStep/LinuxSTEP and freedesktop.org.

kz

Applying the CSS box model to Gtk sounds interesting. I suspect backward compatibility will be a large obstacle. The planned padding has not yet been added to GtkAlignment in CVS HEAD. I don't see or recall that adding it to GtkContainer was considered. You should perhaps bring this up soon on gtk-devel-list.

Pincushion

Being in what seems to be my worst episode of depression ever, and not having yet seen a doctor, and not taking any medication, I'm think that the neither of the antidepressants I'd been prescribed had any positive effect. Except for the side-effects, I'm almost exactly the same. "Almost" here is disturbing word; something is different, but I can't put my finger on it.

I'll probably see a doctor on Monday. I don't expect to be satisfied. I think satisfaction would require the opening scene of The Six Million Dollar Man - "We can rebuild him...." According to a PBS program, diagnostics are really good now with EEGs and NMRI.

The Six Million Dollar Man

Seems pretty cheap now. Doesn't the US military spend more than that on toilet seats?

NMRI

One of my professors had said that MRI is shortened from NMRI because people fear nuclear technology. That seems reasonable. Why worry a patient with images of Dr. Strangelove? However, someone else suggested a better and less cynical explanation. "En-Em-Ar" sounds a lot like "En-Em-Ah". I'd hate for the confusion to be resolved by coin toss.

What's with the randomness, dude?

My sleep schedule is . . . not. Being nocturnal or nearly so is normal for me. This week, I have no rhythm. I think anxiety about my sleep schedule is one of the reasons.

Sleep

Strange thing just occurred to me. I have two normal sleep schedules: asleep by about 10 PM or 4 AM, and awake 6 hrs. later. My abnormal schedule - the one that I fall into when depressed is to go to sleep at 10 AM. (It's after 2 PM now and I awoke last night at about 7 PM.) Er, maybe that's all stranger than what occurred to me.

My Nautilus Wishlist

  • Be like the spatial Finder.
  • Tell people who need functions like those in two-pane or Norton-style, or GMC-style (same as Norton, eh?), or IE-style (browseritis) file managers to use a file manager like that. (Linking to every bugzilla or mailing list request for these things would probably take forever.)

I seem to remember a time when most people used whatever file manager was the default and all the nerds used something else. Actually, that time is now: I know at least one person with a shortcut to some other file manager on his Windows desktop.

My GNOME Wishlist

I probably need a month to remember my whole list. I'll try to keep this down to things I don't see any progress on.

  • Straighten up the GConf keys. These have been done in a haphazard manner and it shows. Trying to fix one thing, I found no less than 3 keys that looked right - and the problem isn't fixed universally, though all are now the same. There's also a mess of near duplicates and no way to tell which is valid. Documentation is missing for many keys. There's at least one key called http_proxy that should be proxy/http (along with proxy/ftp, etc.)
  • All the control panels need Undo.
  • Have something like AppleScript and the tool that records actions. (This and Undo go together, IMO) It's important that this be smarter than just recording events or signals. Something like ButtonPress-PointerMotion-ButtonRelease needs to be compressed to Select or Move or Copy. Should scripting/recording be done through CORBA? ATK? (doesn't ATK use CORBA?) or something else?
  • Support bundles and use them.
  • Abandon FHS. Use LSFH. (OK. So this applies more to distributions than to GNOME, but how much of the infrastructure will it change?)
23 Apr 2003 (updated 23 Apr 2003 at 15:44 UTC) »

(Hmm. what happens when a second post is made the same day?)

Uraeus, I know next to nothing about DAV, sorry. I suspect the https problem may be a MIME problem instead. When I tried an https url in the Nautilus location bar, it downloaded the html file and displayed it with the Spanish Inquisition text view. I don't have a Nautilus html view installed, and I thought I'd finally set GNOME to always use Epiphany for web sites, but I guess I'm wrong. The only instance of the string "https" in the Nautilus source is a "/* BADHACK(tm) to make desktop web links work */"

Update: I was looking for the wrong thing. The problem mentioned on nautilus-list is surely at the VFS level. The message reported is from nautilus/src/nautilus-window-manage-views.c:determined_initial_view_callback(). This is called back from begin_location_change() in the same file by nautilus/src/nautilus-applicable-views.c:nautilus_determine_initial_view(). Here it gets murky. (I.e., I'm too lazy to follow all the functions, macros, callbacks, etc.) Somehow it gets a GnomeVFSResult of GNOME_VFS_ERROR_NOT_SUPPORTED which is eventually returned as NAUTILUS_DETERMINE_VIEW_UNSUPPORTED_SCHEME to nautilus/src/nautilus-window-manage-views.c:determined_initial_view_callback(). There the user is informed of an error.

Damn. I really need to sleep during the night, not at midday.

33 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!