Older blog entries for mx (starting at number 41)

berend : COM, used simply, isn't all bad (nor is it all good). But binary interfaces, especially for a machine-to-machine RPC proxy, are weak. The founders of the net protocols (who we too easily forget) knew what they were doing with their simple, text-based protocols. And that was before gigabit storage, cpu, and bandwidth.

The reasons for binary interfaces are good, but the problem with COM is that it is used for everything, and it was a poorly-extended design. It started out mostly-sane, later morphing into the pile of twisted pain it is today. It works, is fairly efficient, but damn ... it is a mess. But it works, which merits some respect.

But I think CORBA stinks too, from a complexity POV. There are places to use such complexity, but complexity has to be placed very carefully. We've probably all seen the results of misplaced complexity, and yet it continues to plague software today (just think of the children!).

Performance is important, as is something actually working ... COM accomplishes these. But simplicity, and some semblance of forethought could have prevented a lot of quirky software, warped developers, and the need to replace it all less than 10-years later.

mikehearn: thanks for the great overview/rant on COM woes. I've used many aspects of COM over the years in my day job, and everything you say is true.

I took a peek at Mark Finlay's most recent gnome-scanner ui ... nice work. The crop tool looks a lot like the one suggested in one of the Cooper books, and the interface is uncluttered (nice!). The quick-mock-ups and feedback loop are really how great software is developed. Take a look at the progress he's made in the mock-ups if you don't beleive me.

I finally got a shelf. I didn't think it would be significant, but I can finally see all of my textbooks again. The effort of re-shelving my pda-bought collection reminded my that my job is actually quite amazing. I wouldn't have been able to read (and re-read) these amazing piles of trees if it weren't for the corporate slavery I hate when I'm not on vacation. Too bad vacation ends this weekend.

Reshelving also uncovered a few books I've not read in a while. So I'll have a few books to keep my brain churning over the next few weeks until, that is, my next order of work-paid books comes in.

4 Sep 2003 (updated 4 Sep 2003 at 20:48 UTC) »

I'm back to using epiphany again. I must be getting fussy in my old age, but Galeon is just too slow on my system, and its bookmark system is just plain broken (1.3.5). And I had switched to Galeon because it was a small, light browser. Weird ...

So far this brush with Ephipany is very positive. The bookmark system is really well thought out, which is the opposite impression I got with .0.6-1. Having the bookmarks in a flat table, which can be viewed 'virtually' is really smart, similar to how Evolution does virtual folders (sort of anyway). Flat data is good. My only suggestion for the Epiphany team is that the 'Edit bookmarks' dialog swallows the 'properties' dialog ... at least optionally. Often when I bother to open the bookmark view, it is to power-edit bookmarks, and opening a blasted properties window for each is a PITA.

I read Havoc's call for Making Hardware Just Work. Funny thing, actually, I pulled out a few dust-gathering USB devices the other day, plugged them in, and they Just Worked (rh9/xd2). The devices were a Wacom tablet, and a memory stick. Simple devices, I know, but I was suprised -- in the good way. Havoc's right, that stuff should just work, as when it does it's damned nice.

The tablet driver does have a few odd behaviours, but it wasn't obvious when peeking at the driver source. I'll have to do some testing against the 2k driver, and see if I can guess at what's happening in the hardware there.

I was also reading Mark Finlay's blurb on scanning software. I've actually been quite impressed with xsane, especially compared to Epson's 2k driver. Even my wife (non-geek) found xsane easier to use than epson's driver, and was really impressed that it supported our hp scanner as well (she didn't have to learn yet-another-scanner UI. Windows is actually quite behind in that sort of thing, as many driver-interfaces are driven by vendors, and are not consistent between devices (scanners, video cards, scanners, etc.). Good OCR would be nice, though.

The first part of my wee side-blog add-a-link app is done It's used to post links and blurbs to the side-bars of my site using a browser interface, allowing link-logging to be done by any number of people (in any number of locations). I took my time with this script to try a few different approaches ... and discovered several things about CGI, CSS, and Unix in the process.

Link data is stored in a tab text file per side-blog which is transformed into HTML when links are saved. The web interface is built as a Perl script and template (stored separately) The interface is styled with CSS to make it more like a real application (the text fields resize with the browser window). The side-bars are added to the main pages of the site using Apache server-side includes. This allows the side-bars to be updated independently of the site.

I'm planning on adding a few more features to the scripts before posting the source, including simpler installation and better security. I'm also thinking about adding an interface for editing the database (remove/update entries).

It's funny how much I don't know, and how I fear the unknown. I pretend that I don't fear the unknown, but for certain topics, where I feel especially inadequate, my baseless fear hinders learning. It's all in my head, of course.

This week I was reminded how little I don't know about how certain parts of dns and name-serving work. It's mostly because I've alway had admins around to take care of the details, so I've been too lazy to dig in and read about it. The worst thing is that my lack of knowledge made it more difficult to get the stuff into my head, even though it is all fairly simple stuff. I was avoiding playing with a few things, absurdly simple things.

I'm over that now, but I have to watch for that fear. The fear, or stupidity, is really retarded. And it is always worse to see it in myself, as I've always detested it in others. I've always seen those people who don't know something that they should, and thought less of them. I'll have to remember that I can be as retarded as anyone, and that it just takes a gentle nudge, and a bit of momentum, and the knowledge flows.

Anyway, I learned a lot about apache this week, and about the different categories of dns records, and how it all relates to hosting at home effectivly. It's all simple, and well documented, which is really a beautiful thing about how the forefathers set up the great net of ours.

It's funny too, I was around for the birth of the public internet, with my first account starting in about '90. I've been fairly ignorant about the bulk of what strings it all together, outside of the few bits I've used in my code-slaving. That's the way it works, I guess.

So my personal site is back up, and hosted at home. It's backed on blosxom now, which is easily one of the most intelligent blog-tool designs I've seen (zen-like even). Now I just hope that my ISP doesn't give me grief about it, as the volume is so paltry ... even though it does violate the TOS. I guess if they do get annoying about it, I can switch to dsl, as that carrier is quite happy to let people host at home.

My sites are all moved now, and I'm between oss projects. Work is ok, but I'm bored. Other prospects are still there, but delayed (a year now). But, holidays are comming soon.

Burn-out sucks.

This is one of those reflective summers. I killed my pet projects, nixed my vhosting account, and am leaning towards learning to write better. Any software I work on will probably be related to writing, or Perl, or both. I don't think I'll work on developing blogging s/w anymore, there's enough of that out there, and some of it damned fine software.

I spent most of the week rebuilding a test right to simulate a customer network problem. It has a strange topology, so scaling it to a reasonable testing size was a challenge. The resulting mountain of embedded PCs, simulation PCs and networking equipment dissipates a few hundred watts of heat, and in one of the hottest weeks of the year. Then there's the noise, from dozens of tiny fans doing their best to save the many CPUs from meltdown. Hardware scales so poorly.

I think this is the reason I ended up loving software so much -- the total disconnect from the complexities and limitations of the real world. Not that software is simple, but inter-connecting 10 items is only marginally simpler than with 10,000 items. Now imagine connecting 10,000 network devices? Hardware complexity scales at some inverse proportion to software complexity.

The setup I've been working on simulates a handful of discrete networks, each with a few levels of hubs, switches, and routers. I have no idea why hubs play into this mix, but they do. It's been a long time since I've seen a hub too, since switch prices have been so reasonable in recent years. And factoring the limitations of hubs into the bandwidth capacity is really quite a job too, as it has been a while since I thought about what a limited networking device they are. The difference in bandwidth can be incredible, a few orders of magnitude more than would seem obvious. That depends on where the hub is, of course.

I was also reminded how broad the field of networking is. I ran into several technical aspects of networking that I had never considered before, and I've set up several networks in the past. Not that I'm a network guy, but I know a few things. Luckily we have a good admin in our other office, so my dumb questions were answered quickly. Experts are important to an organization, as is knowing who they are.

It was also interesting to go back in time to Windows NT4 and 98. My potpourri of simulation PCs include a few 98-laden laptops, and some NT4-ridden 'embedded' units. All of the actual test hardware is 2k or better, but the simulation stuff is old. Another testament to my very short memory: network configuration has really improved in newer versions of Windows. Microsoft really does improve things. This all would have been easier to set up, of course, with BSD or some Linux variant. But that's probably because I prefer that approach to network configuration, not because it is simpler. Nothing is hidden, it is all there in plain site, in plain-old-text, and in well documented form. I really do hate it when things are obscured.

The network setup ended up taking much longer than it should of. We have piles of hardware and cables, organized in our store rooms, and the many test rigs around the office. But, a recent 100mph project derailed most of our meticulous organization, and mixed up the piles of RJ45 ethernet cabling with the piles of RJ45 serial-line cabling (not to mention the various types of cross-overs). I know you're not supposed to use RJ45 for serial-cabling, but it ends up everyone in this industry does -- and there is no standard pinnout amongst the vendors we buy serial equipment from. So, much of my week was spent finding cables that were actually useful for ethernet networks. A small example of why standards are good, and how sometimes the users of something are more aware of what is useful than the standards bodies are. RJ45/CAT5 make for damned convinient serial cables. They look a lot like ethernet cables too.

This sort of hardware setup isn't actually complicated, but it is certainly tedious if done properly. Each step of a setup needs to be validate, at the granularity of individual PCs and connections. Add to that the OS and software setup, and a week disappears into the ether.

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