My Broken Links

One wants to find bad links on one’s sprawling disorganized site. The best thing I found was the truly excellent XENU’S LINK SLEUTH, but it wouldn’t find broken bookmarks! ... The author emailed it would be “a lot of work” — i.e., finding each and every single bookmark could get tedious in http time I suppose.... But all I want to do is find bad bookmarks on my own pages in hard-drive time, so here’s my LINKOID (~50K with C source), which will find missing bookmarks and other local links on my local site — but not on yours, unless you are very very lucky. ... Now I can turn Xenu loose on my actual site up there in cyberspace, content in the probably totally-unreliable assurance that Linkoid has found my broken bookmarks. (Thursday, July 19, 2001 11:26 am: Got that right, i.e. wrong; apparently linkoid wasn’t finding some of my broken bookmarks! ... Work ongoing.... Ok all fixed now 12:02 pm, version ngi is perfect! // And then Tuesday, July 24, 2001 3:29 pm version ngn I fixed missing files on a different server that honored case differences I hadn’t been detecting!)

JGWRAP: Mutilate Your HTML

Just to be complete, here is my first and most-recent HTML utility JGWRAP (includes C source) — I wrote it twice, this later version of course incomparably superior to my original feeble effort. ... It wraps HTML to reasonable lengths so it can be mutilated with ease in an ASCII text editor — because all HTML editors like to produce enormous long lines, the excuse being efficiency — you save all those CRs every time you exchange a CRLF for a space — but in reality they just don’t care and, in the case of the average public-spirited concern, they’d just as soon it was difficult to edit the stuff so you don’t go in there and learn things you shouldn’t....

JGWRAP also converts boring straight quotes into cute little curly quotes — and so much more. ... But then (12/6/03) I ran across some web snoot who explained how unutterably repulsive curly quotes are and indeed offers a “demonorizer” program to get rid of them! Just can’t please ’em all. ... Whatever; JGWRAP, like all the Owen Labs software, is guaranteed to format your hard drive and set your pets on fire, so advance as always with caution. ... And indeed the poor little thing did mutilate much of this site as it merrily broke-open quoted strings inside angle brackets, which it wasn’t supposed to do. All fixed now of course. ... And then Friday, April 12, 2002 it was occasionally erasing the file it was supposed to be including into. ... Well I just don’t know. ... Caveat emptor.... Yeah and it was also sticking leading spaces into links where it shouldn’t....

“The Semware Editor” aka “TSE” née “Qedit” $130

Rounding out our scenic journey through webbery, I should mention my favorite ASCII aka “programmer’s” editor, available at www.semware.com. An Owen Recommended Buy — even at the $130 first-purchase price.

My days with Qedit started some years ago with their free shareware edition. A major feature, for me, is its ability to emulate the revered “WordStar Diamond” i.e. move the cursor with control-E, S, D, X; these were wondrous things in ancient times. ... If I must, I’ll change — but I don’t see any reason why the computer shouldn’t change instead; they cost enough. ... I upgraded to the 32-bit TSE version because a few text files I’m fond-of got too big for Qedit’s real-mode memory — and that’s because I loathe databi, using text files in preference for lists of archived magazine articles, diskettes, etc. (I should note that I bought the first-time version because I couldn’t comprehend the upgrade policies, but then the company went through the trouble to contact me by phone and reduce my price from $130 to $60!)

The latest greatest renamed “TSE” version of the editor is a Windows console program, and it still can use those control keys instead of insisting on the “standard” Windows usages (i.e. where control-X is delete-block, etc.) — as opposed to every Windows editor I’ve encountered. I was pleased-enough with the software when I got it but, contrary to most of my experiences (see the rest of these rants), it seemed to get better as I used it. ... It has a nice complete powerful rational un-tarted-up macro language (no object orientation I can detect!) which I’ve used, as the days pass, to make it ever more like my existing fairly-customized Qedit — and so much more!

And this just in (Thursday, May 27, 2004 11:40 am): I finally got around to trying Semware’s non-console Windows version — I’ve had it since 10/02, so I figured it was time — and it worked! It took only a few hours with a difference tool to get my very own macros upgraded to a genuine windows program; he kept practically everything! I had been afraid that, as is all too typical, he’d just dump that junky DOS stuff, and force us to use Windows-compliant keystrokes & etc — but no, he kept the faith!...

... So continuing our story, the truly amusing delight was when I edited one of my HTM files, and by golly it has a perfectly nice HTML syntax colorer! I was shocked and amazed. And since it deals with fairly long lines, it may well wind-up as my favorite nuts ’n’ bolts HTML editor. ... And now — Spell Checking! ... It turns out TSE makes a good HTML spell-checker! Why? ... Because

  1. The supplied spell-checker macro recognizes HTML pages (by the file extension) ignoring at least some of the HTML formatting in them.

  2. I can edit the user word list to include my “cute” apostrophe contractions, i.e. which appear in HTML like “wouldn’t” (for “wouldn’t”). ... Gosh this Semware guy is good.....

  3. And best of all, I can edit the code for the spell checker! (And I just corrected the spelling of “checker” with it!) I taught it to honor my “cute quotes” (where I use HTML “ ” for “curly” quotes) and deal with cute possessives (apostrophes) in sensible ways. Oh what joy!

And What Was All That Stuff About Components?

The short story: in my careful years of tests, I have learned you should never develop components for your own software. Components should be purchased just like other software: carefully and infrequently.

Naturally the books, stupid magazines, vendors — definitely including Borland — told us all how wonderful it would be to develop your own components. ... So once when the world was dewey with newness I did a Delphi component, only to discover over the weary years that when you change the version of Delphi — hey presto chango your component automatically updates — NOT!!! ... Nope sorry folks, you have to laboriously rewrite, and of course now and then they change something so you can’t! — this from the Delphi 5 README [with my comments]:

    DSGNINTF and deployment [in Delphi 5]

    DSGNINTF.DCU is no longer shipped with Delphi [apparently it’s used by many components including mine, at least judging by pitiful complaints on the web, and was shipped with previous versions; at least with my version 3]. Thus, component developers should consider segregating design-time code into separate units from runtime code. Runtime code should not refer to those units [i.e. rewrite your component].

    If this approach is not feasible, you do have the option of compiling DSGNINTF.PAS (located in your \source\toolsapi\directory). This should be considered a stopgap measure, however, and may not be available as an option in future releases. [We’ll screw you anyway; and in any case, the source is not available in the standard aka “cheap” version: i.e., pay up or we’ll destroy your existing component.]

    You are also reminded that under the terms of your license agreement, you are not permitted to distribute DCUs based on source code owned by Inprise Corporation, no matter how that code might be made available to you. For complete details on licensing restrictions, see the LICENSE.TXT and DEPLOY.TXT files that accompany this release. [we’ll sue you if you actually try to use your component, even if you figure-out how to get around our sabotage.]

There we have it. Another progressive company spits on its customers. ... So sad. ... This might explain why Anders Hejlsberg went over to the dark side.

So, What About Components?

It’s really like fixing your own car; even if you know what you’re doing, you still don’t have parts, insurance, or economies of scale. The guys who flog components do it full-time — or at least they’d better, which is why you should be just as careful if not more picking components as picking compilers/programming environments.

So What About All Those Other Components?

Here in my declining years, it occurs to me it’s all a scam. ... Java, Delphi, ActiveX, NET — are all elaborate code reuse techniques that provide obvious benefits and hidden costs. ... I.e. it’s the same dubious idea as code-reuse in general, which is that someone can build just the right general-purpose transmission to use in any car, and then no-one will have to design a transmission again.

... It’s not that you can’t re-use code. ... It’s that every time you have to think i.e. work: you have to make a careful decision, and by no means assume that re-use is the right answer. But the software companies and their suck-up magazines don’t want you to do that: they want you to take the EZ fun route — but while components look cute, they’re not cute to fix or maintain or, as I found out, heaven forbid you should want to use the next edition of your compiler/IDE/visual environment with yesterday’s component. ... It’s just another variety of the planned obsolescence exemplified by the Parade of Windows, except directed at programmers instead of end-users. ... So go ahead! Use these intimately-coupled gadgets in your product and it’ll look really cool, work with all kinds of software (i.e. ActiveX yammer yammer Word/Excel/etc. automation) and do anything — and it’s so inexpensive! ... Except for the minor possibility that your entire company will depend on the component vendor next month....

... And they all do it. To state this problem another way, cute plug-in components are cool; both Visual Basic and Delphi were wonderful because of them; but they have hidden costs which the vendor can activate pretty-much at will or random, whenever he feels like making your life miserable and your code obsolete. ... Obviously Microsoft has more power in this area than Borland — but that doesn’t stop the latter from trying! ... And even without vendor malevolence, component complexity means they will decay even by themselves; they require more support from the vendor or someone, so even if they just feel like moving-on — as Microsoft is obliged to do with NET — too bad about all that incredibly complicated stuff you bet the company on!

... I knew I should’ve stuck with assembler....

// And now Wednesday, June 27, 2001 12:20 pm my favorite troublemaker Ron Burk editor Windows Developer’s Journal:

The Doomed-To-Repeat-It award this month goes to InfoWorld, for their May 4 article announcing that code reuse is about to start happening Real Soon Now. ... My hat’s off to publishers who are willing to pay people to write the same article over and over again until it comes true. Best quote from this year’s rerun is “developers have toyed with the concept of reuse for nearly as long as software has existed”. Thank god that “toying” phase is over, and we finally know how to do it right!

— page 6, From the editor, WDJ 7/01

Of course Mr. Burk departed WDJ after the next issue....

//Monday, July 21, 2003 11:09 am. From Visual Studio Magazine: Buyers Guide ... 2003, page 20:

The software industry has been embroiled in the great buy-vs.-build debate through the last decade.... Is it better — more time-efficient, cheaper, or more reliable — to buy prepackaged, generic components in which someone else has invested the development and testing effort? ... Or, is it better to develop components in-house, allowing you to customize them for a specific purpose? ...

This in aid of a “third-way” derive alternative now possible in the exciting new super NET environment. ... But notice what no sane with-it responsible up-to-date programmer is even capable of thinking: none of the above, just say no, avoid components. ... One would hardly expect less in an issue devoted to extensive advertisements for software components, and to a certain extent it’s probably true that it’s impossible to program for Windows anymore without some kind of components. But that doesn’t mean you have to like them....

The OwenShow Components

And then while wrestling with my precious OwenShow, I sadly learned yet again the component lesson. The “CLX” (Windows/Linux) Delphi 7 components aren’t bad; but not nearly as good as the normal Delphi bunch. ... And today Tuesday, November 16, 2004, I finally conceded defeat to the CLX TListView; I had been fixing this and that weird behavior with even weirder code, but finally I just couldn’t go on and gave up. The OwenShow file select will wander a bit forever; I can struggle no more. ... (Actually I went back and fixed it some more, but it is definitely the weirdest code in the program ... which is saying something....)

Of course, all the Delphi components, CLX or not, are probably going away, demonstrating the other thing wrong with components. ... Borland will enhance them no more, and in the next edition of Microsoft’s operating system — or Linux — or the one after, they will falter, and finally fail. ... Well maybe not?...


Firefox: Working Tabs

Thursday, July 15, 2004 12:18 am. Firefox is the latest greatest stripped-down racing lean mozilla browser. But the thing I like most about Mozilla is I can set it so that when I click with the middle button on a link, it opens the link in a new tab (edit / preferences / navigator / tabbed browsing). So convenient! ... I can do that in Firefox (I think it comes that way?) — but it doesn’t switch to the new tab! That is, it creates the new tab, and starts loading the link in the background — but stays on the page on which you clicked the link; you have to switch to it by clicking on the tab. This makes a single-click operation into a 2 click one, and takes all the fun out of it.... (And I can now report, after extensive research, it probably does it that way because Opera does....)

Until another slashdot news for nerds item tipped me that there’s a slew of configurations you get with the url “about:config” and I discovered on my very own that one of them — browser.tabs.loadInBackground — corrects the stupid tab behavior when set to false!

You see how EZ it all is....


ebay Stole my Firefox google!

Yup; I was foolish enough to use the ebay search function, and like inviting the vampire in, that was enough for them. To put it back, goto the magic page “about:config”, find “browser.search.selectedEngine”, and replace whatever slime they put there — “ebay” something — with “google”.

Q. When does 3 to 5 days take two weeks? A. When you’re ordering a Dell! ... + Other Carping Complaints

Yes I forgot! ... The last time this happened years ago, I cancelled my desktop order, after of course a half hour of agonizing form-filling; on that occasion I believe the shipping time miraculously exploded to 30 days.

This time, I was wondering why Dell’s refurbished notebook was reasonably priced — but foolish forgetful me; they had to take a week or so to “configure” it.... At least I didn’t take the extra charge super-fast shipping which, I believe, would’ve worked out to 12 instead of 14 days — although it’s impossible to tell, since it is a scam, and therefore deliberately concealed! ... Really sharp....

Then I discovered that there are new Dell notebooks costing less than my refurbished bargain! — so I tried to cancel the order, but then in a unique clever twist, they had already shipped it! ... So I guess the moral here is, if you think Dell has screwed you on the delivery time — just try cancelling the order! That should do it. ... In the event, it arrived a week after I ordered; which is 5 business days I guess....

No System Restore

So I returned it. Apparently Dell doesn’t include system-recovery aka “wipe” CDs; so that after the computer goes crazy, as all Windows systems do within a year or two, there is no easy way to restore the thing to the as-shipped condition. ... What was included were numerous CDs including XP install, which of course required activation — an unspeakable agony I had been spared until now, when the Dell went crazy a little ahead of schedule because of some mis-step of mine. ... I actually sat there talking to a robot repeating 20-digit numbers! And the result, of course, didn’t fix my XP problems, maybe because I guessed the “recommended” “upgrade” choice, when perhaps I should have gone for “new install” — but anyway, to restore the entire system, Dell apparently thinks I should proceed to install the other 5 or 6 product CDs, some of which also include the charming Microsoft activation torture. This is totally unacceptable, especially since Dell itself undoubtedly uses a system recovery mechanism when they prepare these systems for shipping. ... All the other computers here at the lab, including an XP emachine, came with system-recovery disks that don’t require activation....

Of course there may be recovery disks, perhaps at the Dell web site for $20 or something, like my pitiful now-broken HP notebook — although it’s unlikely, considering the numerous per-product CDs included. ... But whatever, the charming “Ann”, a confused Indian subcontinent dweller who provided my CRA “Customer Return Authorization” number, couldn’t wait to help me get rid of the thing, and even offered to pay for shipping, under the misguided impression that the lack of the wipe disk was a factory defect (I didn’t take her up on that, even ’though I really agree). ... Of course getting numbers and addresses was in some ways worse than communing with the Microsoft robot — through no fault of Ann, who speaks perfectly good Indian subcontinent English; but her rendering of “Austin Texas” — it sounded something like “aTin exAs” — among other original locutions, was startling. ... So you see, Dell is punished for outsourcing by too-cooperative customer assistance, which is fine by me since I’ve never obtained any useful information from such sources, whatever continent they inhabit....

Turn-off Amnesia

And just to round things out, the Dell shared with my poor wrecked HP notebook the tendency to disable screen-off. ... This is the feature where you can set Windows notebooks so the LCD screen is turned-off after a few minutes of inaction — which turns off the flourescent lighting, which is the thing they say that eventually fails with notebook LCD screens and therefore should be turned-off. The feature works fine with my Toshiba W98 laptop, but not with my HP XP unit; I have to keep turning it on again. ... And now the Dell joins the fold, so I guess it’s an XP feature, so more people will buy more notebooks. ... Although I must admit I haven’t managed to use any laptop long-enough to encounter a failed flourescent. ... (time passes) ... SP2 seems to fix this; actually SP2 also seemed to fix a crashing emachine T1090....

I will say the Dell had a nice truck-like feel; it probably would survive the airplane baggage assassins. ... Which brings us to ....

Free Owen Travel Tip: Don’t Check-through the Notebook

Just don’t; take it with you on the plane in your carry-on luggage. ... In this post 9/11 total-annoyance air travel era, it makes sense to check-through as much as you can, depending on the airline at any rate. ... Of course it may well never reach your destination, but on the other hand the less carry-on luggage, the shorter the interminable security check-through. ... So I have resolved in the future to only carry-on (1.) necessities and (2.) breakables, i.e. my precious notebook computer — i.e., I don’t plan to throw my luggage two or three stories onto a cement runway....