Older blog entries for garym (starting at number 20)

2 Nov 2002 (updated 2 Nov 2002 at 16:38 UTC) »

I quit.

Yes, that's right, I'm self-employed, but I've had it. After 20 years coding compromised crap for a living, after 7 months of doors slammed in my face and blank stares for daring to suggest that some (ok, most) websites I encounter could (ahem) use a little work, or that things could be simpler, or could take advantage of the past 10 years of technical advancement, well, I've had it. The only people who want webservices will only buy them from an IBM/Accenture suit (at twice the price I might add), the only people interested in XML standards haven't a penny in their pockets.

Ok, I'm sure there are decent projects out there, perfect clients, people with a clue or two are probably reading this right now, but I do know that I no longer know how to connect with such people. It used to be easy, it used to be that they found me and we'd chat and next thing we knew we were sitting down to do good stuff, but that doesn't happen any more. I just meet other unemployed techies or people soaking corps for $500/day training seminars on topics they themselves barely understand, and even of those I have met over the past 20 years, well, it sounded great in the chat and great on the design table, but once we presented it to the inmates in charge of the asylum, it almost universally went horribly wrong. There's been exceptions, real professionals I've had the pleasure of working with, but they are the exceptions.

I'm going to go learn to drive a fork-lift or some other real job that my family and neighbours can actually understand and appreciate, one that actually helps people ... instead of inventing new and novel ways of carving up demographics to serve eyeballs to advertisers and pussyfooting around self-appointed demi-gods who fear most being accidentally exposed for what they are.

The turning point? A number of things of which the constant rejection by headhunters and potential clients and universal exclusion because I won't use Microsoft where it's not an appropriate choice, these are only a part. One camel's straw was the big news service provider who's chief web programmer had never seen either Perl or a CGI before, and when faced with a constant called "$day" and taking the notion he wanted a cutoff of 5-minutes instead of a day, well, redefines the length of a day thereby creating more work for himself (for which he is lucratively paid) -- the script I gave him took me an hour to write, but has taken over 40 hours and still counting to get installed ... and yet he's employed and I'm persona non grata.

I don't want to single him out because he's the norm and I'm; the freak. This industry has no use for the likes of me. My questions underline the failings of the demigods, my code challenges them to keep abreast of the technology, and we can't have anyone questioning their authority.

So ... I no longer get referrals, and I get no business, and that's it, we're out. I have been an actor out alone, a ruthlessly small business on the bleeding edge of computer possibilities and internet innovations, and, well, it seems no one does this sort of stuff this way anymore.

What do I have to show for it? A long string of two decades of projects where I advised one way, the in-house-tenured demi-gods insisted it had to go another way, and a year or two later, the project fails because of the demi-god's unnecessary constraints, and while they've moved on up the corporate ladder, I'm left holding the keys to another failing IT project. So long as I do this for a business, I'm doing it for money and that means the people with the money call the shots. I do wonder, if they were so expert in the first place, why pay me big money in the first place?

I'm no longer interested in answering that question. I'm no longer interested in contributing to this facade and farce called the Digital Economy. I might dabble here and there as a hobby, but the domain now belongs firmly to the big corporate interests or to tiny personal labour-of-love unfunded micro-projects. Maybe it's just mid-life crisis of looking back over a life spent doing all the things I didn't want to do, but to feed the family and feed my soul, I've got to find me a job that is actually of real service to people, that helps make this planet a better place, and that does some good with my life. Because I ain't doing that sitting in this chair day after day.

Interesting set of powerpoint slides at PHP Con on the move by Yahoo! to convert the world's most trafficked website to PHP. Most interesting highlights:

  • The only argument against Java is the argument of a fundamental flaw in BSD

  • Effective PHP requires oodles of programmer discipline

  • "Perl was never intended as a web scripting language"

As someone who hates perl but tends to side with it, and as one who has coded dozens of large complex PHP sites (but not the millions-of-LOC cited behind Yahoo!) I had all but given up on PHP last year, and still find it's library functions and documentation support, well, sucks (compared with CPAN and perldoc) but with the very most recent PHP coupled with Zend, I'm starting to re-evaluate. I agree with Yahoo!, that it is still a huge great whopping amount of discipline, and 99.99% of the PHP lib modules and code you find lacks any discipline at all, but from a purely engineering point of view, PHP may be a language who's time is yet to come.

Now this is hip -- Notes on Postmodern Programming is both a treatise on their theory of programming methodology and a forerunner of the true postmodern technical treatise where the anti-hero author and ourselves as their audience discover the technology answer together ... as opposed to the classical heroic tale style of the current ubergeek-netgod authored proclamations alledged always to be handed down from above.

Way back in 1999 I predicted to the acquisition editors at Pearson that the future of trade books would belong to the post-modern "Windows by a Dummy" books where the author is no aloof unapproachable guru, just our peer, our co-worker, just as clueless about the topic as the reader. Their only advantage is in being bold enough to go exploring and congenial enough to take us with them; this conveys more than net-god knowledge as it also teaches how technical knowledge is acquired (teach a man to fish you feed him forever) -- as the tutorial unfolds, we discover the answers together. I hope Tim O'Reilly is listening...

29 Oct 2002 (updated 29 Oct 2002 at 04:15 UTC) »

Mandrake 9.0's kernel is definately broken, and very broken. Sound playback of mp3 or ogg files drops songs mid-file, May can't run mozilla and openoffice at the same time on a 256M machine, and my USB flash reader was flaky beyond belief -- it was sad: our linux machines had dropped from the envy of the office to the bottom the barrel in reliability and usefulness, and for May (who's not a programmer) she was beginning to wonder if it was even worth the bother.

I'm happy to report that doing what I should have done in the first place (ie "compile from source!") fetching the tux.org sources and doing the whole xconfig thing from scratch (geez that thing is getting long in the tooth!) fixed all our problems 100%.

Yeah, I know. Hacker 101 basic training rule #3, compile from sources and flee from all package managers, but I so want package managers and pre-built binaries to work out because that's (so far) the only way we have to get updates and new software out to Linux users who may not be that comfortable with tweaking Makefile rules. So I get what I deserve, but I also learn that Unix for the masses, at least from Linux, is maybe not quite there yet. Yeah, I know, I'm going to get flamed by the Apologists for that one. Take a tip from a cop who does: Don't bother, I've heard it before and it's still lame.

Someone posted an article a few days ago lamenting the loss of the SGI Magic Desktop when the proprietary vendor abandoned it. Here's something else the SGI Irix systems had c.1991 that blows everything else away: When you first turned on your brand new SGI machine, or if you changed any hardware or did an OS upgrade, the sash-shell boot screen would detour into a long self-diagnostic routine that ended with a complete and fully automated kernel reconfiguration and recompilation.

If you ask me, and you didn't, that's what we have to shoot for for package delivery! Forget all this package nonesense, machines are just too varied and tweaked for one size to fit all. What we need is autoconf on steroids, to fetch the source and run it through the ./configure script, build it for that machine and then, if all goes well, (optionally) wipe the sources and pronounce the software installed. No more shipping every conceivable option, no more lowest common denominators. Shit, we're opensource so why hide the source? Just because we don't want to frighten people? Tuning to bind perfectly to the bare metal is one of the hallmarks of Unix, and IMHO, we're losing it trying to be more Windows-like.

Wait a minute. We already have that source-package installer! It's called CPAN! Once again, Perl is annoyingly way ahead of the pack.

here's an example of bad design in an editorial workstation. The task is the most basic and frequent of all, to moderate a submitted news item:

  1. login - painless and standard procedure. cookies aid it.

  2. select Submission</em> - not obvious; it's the most common task for an editor, yet it's twelfth in the list of menu items, and 'logout' is the first (go figure). Why is Submission used to add stories to the lineup, but Add Story used to queue a submission?

  3. Select your story - the menu shows the submissions in order of receipt, the checkbox is to delete them in bulk, and you can click the email address, or click the title to go to the edit screen; nothing tells you, but to approve it, you have to go the the edit screen, but not the title or 'View' edit screen -- you have to know to use "edit as story". again, the most common task, and it's second last of 4 items, rendered in small font inconspicuously in the story line in the submission table. ok ...

  4. Edit/Comment - set the dept, modify any of the metadata or split the story, edit it or whatever. No spellcheck, no one-click to insert markup at the point, and if they'd submitted the story as text, it's rendered here with all the HTML in it, so your editor much be comfortable hand-editing HTML. There's an option for 'extended' as a data type for the story, but no mention what that means.

  5. Save - there's no actual 'save' option, because Save really means "Post" ... you can't edit and return to it later, you can only preview or post. If you've gone back to edit a story through submissions and the story was already posted, you get two of them posted.

  6. and then? ... - what does an editor do? They edit articles and decide what goes into the lineup. what does this thing do when you click "post"? it sends you to a list of posted articles. You can modify, preview or delete them. Nice, but ... what does an editor do? they get all the submissions and they edit them, but here, after each and ever one, you have to click back on Submissions on the main menu and start the sequence all over again.

Now, this is not to complain, it's just an illustration that we can do a lot better in matching software to the task if we match the software to the task, if we look at "how is this thing used?" rather than just feature-list "what should this thing do?" and splatter the interface with buttons and options. Oh, there were lots of other issues with phpSlash, not the least of which was the lack of a really, really simple template that someone could just extend (instead of having to delete so much just to get started), but there's also a lot of good work in there just screaming to get out ... if only the interface allowed it.

I'm going back to b2 ...

phpslash: it's not a blog engine, it's a hulking editorial workstation for moderating anonymous contributions. it's really just as it claims to be, a PHP plug-in replacement for Slashdot, and best suited to that sort of site. To it's credit, the pages may be 1995-vintage HTML, but the PHP code is reasonably well put together (from what I've seen from one day's looking). Installation was not totally painless, but it was smooth enough; it's unclear if you need to use their scripts or phplib's, and if you do the phplib, you have to edit the phpslash SQL or mysql won't take it.

whoo-hoo! ...
Internet Society wins control of ".org" domain
Reuters: Monday October 14, 11:26 am ET

WASHINGTON, Oct 14 (Reuters) - A group of computer professionals on Monday won control of the ".org" Internet domain, home to millions of nonprofits and community groups.

The Internet Society, a group of 11,000 engineers and other networking experts known familiarly as ISOC, won final approval from a domain-name regulator that had sought bids to manage the Internet's fifth-largest domain.

Still evaluating GPL blog tools. Tonight I tried sunlog and b2. Both offer the usual bells and whistles such as trackback, pings, rss alternates, based on templates and stylesheets, xmlrpc. Here's a brief first-thoughts review on each:


pretty sparce in the documentation; supports 'englisch' and german, and i18n is at least intrinsic to the design. Installs itself once given the mysql database, but I couldn't get past the login screen; just cycles back to the login with the correct password. No diagnostics in the logs. that seemed a good indication it wasn't worth pursuing the login problem. three stars.


A very elegant blog if you can do with different pages for each categoryall categories showing up on the mainpage; I want the main page to track some categories, other categories to be on their own page (such as personal blogs). It's small enough I might be able to do what I want by keeping distinct tables and scripts for each sub-blog.

  • The template language is stripped down by having all tags done as inline PHP -- after all, why re-parse something that PHP is already parsing?

  • lots of features in a tiny package. you can also do different styles for any number of pages since all you do is create PHP pages that call the various methods to fill in the data.

  • File layout is a bit ugly, with all of the files in your root directory instead of done as PHP include modules. If I did run multiple blogs, it's not clear if it's possible to have them all share parts or if it has to be a complete installation (probably just need to hack some paths since its just PHP include statements to 'include' a plugin file.

  • no page caching, which means it's not a good choice for anyone who's likely to get slash-dotted.

b2 has no concept of teaser-pages, so the complete story goes inline in the main page. That's a bit ugly too. Overall, though, b2 is my best candidate to date.

I'm evaluating the phpSlash next; it looks promising, but has an awkward non-SGML tag syntax that's going to be a pain.

Don't know how the double post happened that happened today; my browser timed out and I checked for a posting on the main page, and when none appeared after a few minutes, I clicked the submit again --- probably an indication that advogato could do with a "retract" button on the blog postings ;)

polvo and I were just musing on IRC: rdf newsgroups transmitted over NNTP ... highly distributed, push-model (listener/observer) pattern, can be edited, retracted, expired ... highly scaleable ... MIME friendly ... you can drop or edit an item or insert a new one; it still needs to be able to move one item across to some other cateogory or post to multiple categories...

What's the acronym for an RDF describing a list of RDF feeds? That's what you'd get via XOVER, then use message IDs to pull in unread RDF messages or tune your RDF aggregator to receive the incoming NNTP feed updates.

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