Older blog entries for tony (starting at number 21)

13 Jan 2001 (updated 13 Jan 2001 at 04:02 UTC) »
WindowMaker
WindowMaker has one distinct flaw in its icon-docking behavior. If you create a menu pick that rsh's to another server to run a program, and you then dock the icon on the wharf, the docked icon will try to launch the program as if it were local. So, if the WMRootMenu item is like this:

SHEXEC "rsh denali /usr/local/bin/netscape -display
$DISPLAY"

and then you dock the netscape icon, the docked icon will try to launch netscape with this command:

/usr/local/bin/netscape -display sunray:2

for instance.

This is an undesireable behavior, in a lot of cases.

Anyway, I have a work-around that works fairly well, but it's non-optimal.

Long Live Casbah
I hopped on over to #casbah at the casbah.org irc server, but noone was home. Sigh. I first saw this project almost 2 years ago, and thought it worthy. I finally have a use for it, and an excuse to dedicate some time, and I find it is dead. Another worthy project, dead and unremarked.

The road to software freedom is strewn with the husks of dead and desicated projects. Some are nothing (such as my own Gnome Filer project), killed by worthier projects (have I mentioned entity yet?); others died too young.

Such is Casbah.

Casbah promised to be a great and cohesive Java-based object-oriented buzzword-compliant object-service behemoth. It coulda been a contenda. It shoulda been a contenda.

Now it is dead.

Again, *sigh*.

Entity
I haven't contributed anything to Entity yet. I have started an HTML renderer similar to the GTK+ renderer; the idea being the same entity code that creates Gtk+ widgets on the screen can create an HTTP stream of HTML/JS widgets; that is, a web server that serves up Entity applications, and the applications can be designed and built using Stembuilder.

I haven't gotten very far.

It has nothing to do with Entity, which is well-designed (IMHO). I just don't have time for outside activities these days, it seems. Work takes a lot of time, as does the house (though I must say I am now proficient at drywalling).

Sounds like a cop-out, doesn't it? It's not, really. I can devote some time from work to coding, once I've knocked out a few of my current projects.

Sunrays
One of my current projects is the deployment of Sunrays across the consortium. We currently use NCD X terminals on most of the desktops (with a few PCs for the diehards), and Sun hardware in the back room. This has worked very well for us, but since NCD has stopped development on their X terminals, we've not had a good idea for their replacement. We tried Netwinders (which were OK, but expensive), iPAQs (ditto), and Sunrays. Of the bunch, the Sunrays look the most promising. Although they have their own drawbacks (they are true thin-clients, and every client has an X server running on a Sun box), they have a lot of potential, as well.

What I like: the Sunrays have a card slot. Each user is given a card. If you log in with the card in the slot, your session is tied to the card; you can remove your card from one Sunray, walk across the room (or across the hospital) and insert your card, and viola! your session appears at the new Sunray. And securing your session is as easy as removing the card and placing it in your pocket-- true physical security.

And, it allows us to use the Sunrays and X terminals in the same environment.

Also, I convinced my boss to use Windowmaker as the standard desktop. Cool.

What I dislike: I hate that it is tied to Sun hardware. I like Sun machines for the most part, but I dislike proprietary protocols.

Recent Events
Yeah, I know. It's been a long time.

Sitting here listening to Ben Folds Five, contemplating my keg of stout (which is finally ready for consumption), staring out the window at the alternating bands of blue and grey, I have to wonder: what the hell have I been up to these last few months?

Not much, really. I spent a couple of weeks contracted to TG Embedded in Cleveland, working on some semi-Linux related things. Fun stuff, really; I did some coding (though not much), some sysadmin (very little, really), and lots of hanging out pretending to earn my money. I did learn about kernel module programming, though. Now if only I could get some cool new hardware and become a kernel hacker.

After New Years, I went to a conference in Anchorage (which is really just a chunk of Down South grafted into the least-desirable bit of Alaska) concerning health care issues across the state, as it relates to Indian Health Services providers. (SEARHC, the company for which I work, is an IHS provider.)

The only thing everyone agreed on was this: we need high-speed reliable network access to the villages. Like we needed X-ray glasses to see that.

Anyway, I don't have anything brilliant to say today. (Yep. I know I don't have anything brilliant to say any day.) I just wanted to get back to Advogato, as it is my only active link to other geeks.

Gnome Filer
I am abandoning the gnome-filer project. I haven't done much with it in a long time, and it really is poorly designed (through no-ones fault but my own).

Instead, I am contributing what I can to Entity. Anyone interested in XML-based interface languages should check this out. This is how Gnome Filer should have been done in the first place-- the XML engine was perfected, then they started adding "renderers," DTDs based on whatever interface you require-- language (Perl, Python, Javascript, etc) or GUI (Gtk+ so far-- Tk is in the works, I've heard).

I always considered Javascript a toy language. Now that I've seen what it can do outside the limited environs of a web browser, I've changed my mind. It's not going to replace Perl anytime soon, but it isn't nearly as terrible as I'd supposed.

Entity
I just discovered entity, an interesting language framework. As I haven't done a damn thing with Gnome-Filer recently, perhaps I should look into providing a graphic interface, and gnome-db bindings. Could be fun. Perhaps this is exactly what gnome-filer needs.

Other Jobs
I have a technical interview tonight with a consulting company. I'm not too concerned; I posted my resume on Monster on a lark, and was surprised they contacted me at all. I am asking $90k, which is preposterous, but they seem ready to give it, should I prove as able as I claimed.

Does anyone else consider this astounding? I mean, *I* shouldn't be able to command such an outragous amount. It's nice knowing someone considers me worth that much, but... noone needs that much money.

Of course, I'm not leaving my current position for anything less. So I guess it's a moot point. Greed has nothing to do with it. I love Sitka-- I love hunting, and fishing, and hiking.

Anyway, it's been on my mind. Thought I'd rant a little.

Perl Whirl Pub Crawl
Last Wednesday, Geek Cruises' Perl Whirl swung through Juneau. I met them there for the Pub Crawl bit-- 40 geeks drinking beer at various places around Juneau.

This is the highlight of my year. I had been so isolated as a geek that I had forgotten what it was like to *be* a geek in geek society. We had discussions on inane topics (like the impact of Internet communications on society, and the nature of crop circles ("Two blokes with a bit of string.")) and topical (the nature of ideas wrt ownership of knowledge).

Mostly, though, we talked about simple technical matters, and about how good the beer was.

I'll post a couple of pictures sometime in the next few days.

gnome-filer
I've accomplished a little bit with gnome-filer, but I haven't committed most of my changes. Why? Because I'm not entirely happy with the code. I want to get back to the point at which it worked; that is, I want a user interface builder that uses pluggable language bindings. (I had all that last October.)

Life
Anyway, life has gotten in the way of coding. This is the summer of teenage girls; a friend of the family is staying with us for a week during the music festival (she's 13); my daughter comes to visit in July (she's 12); and then, a cousin (14) is coming to stay with us while her sister (17) has a baby.

Yikes.

Selfishness
Ryan, selfishness is very much a part of human nature, though not in any Randian way. Personally, I think it's rooted in our inability to see beyond ourselves in any meaningful way. We can't envision the world from our own viewpoint; it's almost impossible to see it from another's.

Of course, we're trained from childhood to be selfish. We are taught to keep to our own world, and not try to put ourselves in the worlds of strangers. Television teaches us that violence and brawn are good, and that intelligence and knowledge are bad.

It's not just television, of course. It's everything. That's why pop music is rarely good.

Harlan Ellison reported (in "The Glass Teat," I think) that a man broke into an apartment and locked himself and the woman there in the bedroom, where he repeatedly raped her for several hours. Her son started pounding on the door and crying, so the man said, "Go watch TV." The child did.

Yes, he was only a child. But isn't that what we do? When painful things happen, don't we turn our backs on it?

Anyway, that's my take on it.

gnome-filer
Cool. The tree object works as advertised. I'm very pleased.

I should go back and change the way I handle menus to mirror this method, as well, so trees and menus will have a consistent interface. (They are, after all, logically identical at a class level.)

gnome-filer
Added a (broken, so far) tree object. The current gtk+ tree implementation is a bit too obtuse for use in gnome-filer, so I've taken the liberty of wrapping the object up a bit tighter than usual. The new tree is managed using tree paths. So, to add a new item, you simply state the path to the location you wish the item to reside, like this:

	data_set (tree, "path", "/Tree/Subtree/Item");
	data_set_watchpoint (tree, "/Tree/Subtree/Item",
			     callback_func, data);

At this point, when the item selection is changed, the callback_func is called. (There should be a similar function for a double-click, too, but I haven't even started that.)

A couple of notes: when an item is inserted, subtrees are created if they do not exist. So you can add an entire group of nested subtrees at a blow. Also, I'm not sure whether I should track the changes to an item label. That is, should I change the path to "/Tree/Subtree/NewLabel" when the label is changed? I could do that automagically, I suppose.

MUMPS
Interesting. There is a Free version of MUMPS in the works-- FreeM. This presents interesting possibilities. I figure I will install it and see how well it works with VA Fileman. If it doesn't work, maybe I can contribute a little bit.

The ultimate goal would be to get RPMS running on it.

M is the most obtuse language in the universe (save for COBOL, perhaps). It shares one annoying "feature" with Python-- blocking is done with line prefixes. In Python, blocking is managed through whitespace; in M, it's periods (.). So you end up with code that looks like this:

 D  I $G(DIERR) K ^TMP("DDBLST",$J) D CLEAN Q
 .N DOC,DOCSA
 .S DOC=""
 .K ^TMP("DDBLST",$J)
 .F  S DOC=$O(@DDBDSA@(DOC)) Q:DOC=""  D
 ..S DOCSA=@DDBDSA@(DOC)
 ..D LOADCL^DDBR4(DOCSA,"",DOC)
 ..Q
 .Q

In spite of this, I'm beginning to like it.

12 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!