January 2002

01/29/2002 Tuesday

In the project I am currently working on, the client and server communicate via XML (mostly). I use Javascript and the XML DOM to parse the XML and dump the data into pre-existing nodes in an HTML page. For some reason, it isn't as exciting as it should be. I mean, this stuff is from the future! Then I came across a link to a Javascript library for cross platform XML parsing at Glish. And it was exciting. And Scott Andrew has been talking about XML in DOM 3 and more Javascript XML parsing. And that's exciting too. I think it might have something to do with standards and cross-browser. The stuff I am working on now is for IE6. I can use .htc files and viewlink and MSXML and all sorts of IE-specific stuff but it makes my teeth itch. You know how you feel when someone asks you to do something a particular way but tells you to keep it secret because no-one else likes it done like that - that's how I feel. But I like standards. And I like cross-browser. Maybe it's the conformist in me.
20:05 permalink

About a year / year-and-a-half ago, I used to be pretty interested in usability and information architecture. Now I'm not so into it. I think it might be partly because the practice and the theory are so far separated because of both technical limitations and the dogmatic ignorance of the bulk of the industry. I'm also not in a position to apply anything that I learn (except here). I still read articles along those veins but not as much. Anyways, expect more concentration on scripting - I want to get back to the core of what I like to do. I feel myself being left behind and I want to catch up. There was a time when I was there, on the edge. But not anymore. I need to focus.
20:05 permalink

I'm well behind in my email, posting and updates. I've been working offsite at a client's place and when I'm not at work, I just don't want to go near a computer. There's some updates to the 1K DHTML API coming (thanks to the contributors). Also updates to some scripts in the offing. Soon.
20:05 permalink

Today's inventive spam: Alarm! Virus found in message to you!.
20:00 permalink

01/16/2002 Wednesday

Taz keeps sending me IE6 vulerabilities. Apparently, you can embed objects that run in a high privilege space in popup windows which allows you to run local applications. See Osioniusx for more info and an example. Some people make their living from finding / fixing / avoiding Microsoft-created problems. Actually, lots of people do.
08:55 permalink

Scott Andrew has lots of links to dhtml / dom stuff. 13th Parallel, in particular, is interesting - a DHTML-oriented web-zine thing with advanced how-tos and interviews.
08:45 permalink

01/14/2002 Monday

Another IE6 vulerability from Taz:

<script type="javascript">
function exploit() {
   while(1) {

While it's similar to the old infinite-popups annoyance, the modeless popups will continue to be spawned even after the iexplorer process has been shut down and will consume 100% of resources. (via Taz via SecuriTeam mailing list)
18:30 permalink

I spent some time this weekend methodically looking up all the local web shops listed in the yellow pages (not something you want to ever do - took many hours). Web design gets lumped in the Internet - Services Other Than Access section which also includes marketters, hosting and co-location services, dot-coms, traditional advertisers and designers. It wasn't entirely boring as I managed to find gems such as:

EWRX Internet Systems Inc
Formerly Europa Resources Inc., a mining investment firm. The CEO bought North Fork WebWRX, a Washington state web firm, and a number of developed sites and domains targetting the aftermarket automotive market. Despite top-notch management (most executives had 25+ years of experience, many with Fortune 500 companies), EWRX and all it's properties appear to have disappeared from the web (though the stock still appears to be active). The Bull And Bear provides a decent summary of the company and you can get more detail from Yahoo Finance.
Bidder Communications
Bidder Communications decided to get out of the online auction business and into the natural gas pipeline business. Perhaps not the most natural of business focus shifts but probably a wise one. Better than EWRX's, anyways.
Homeflyer Information Systems Inc
The world has been waiting for Homeflyer's website for 5 years. Why would a company that appears to have given up on business in 1997 advertise in the 2001 yellow pages?

18:20 permalink

01/11/2002 Friday

I am now starring on a Puerto Rican wrestling fansite. I don't know what it says. I tried translating it with Babelfish but that didn't help.
18:55 permalink

01/10/2002 Thursday

Youngpup on the future of DHTML (scroll to "01.08.02 | 19:20" - dude gotta get some permalinks).
08:30 permalink

Epiphany: Taking time to make more better internets.
08:25 permalink

NS6 and Flash don't play nice. Probably of the most concern is that NS6 doesn't support FSCommands. (via Sang)
08:20 permalink

01/08/2002 Tuesday

Not only does delete allow you to remove properties from objects, you can also use it to delete any global variables not declared in a var statement. The return value of a delete operation is a bit odd, too. It'll return true if the property was deleted succussfully, or if the property didn't exist in the first place or if the thing that you are trying to delete is not a property, array element or variable. You get a return value of false any other time.
08:40 permalink

01/04/2002 Friday

Resolution the First: Check spelling, grammar, HTML, and links on my posts.
Resolution the Second: Try to follow Resolution the First as much as possible.
Resolution the Third: Stop making resolutions that I probably won't follow.
19:10 permalink

A Teleguide terminal. This is what I was looking for.
19:00 permalink

Assigning a function reference to an event handler in Javascript
In the examples below, object is a reference to an element within the document, funcX, where X is a number, is the name of a previously defined function, and arg is either a static, literal value or a reference that a function takes as an argument. In cases where an argument appears, the examples use a single argument but can be generalized for multi-argument situations.

  • Function that takes no arguments
    object.onclick = func1;
  • Function that takes a static literal argument or a reference that is valid when the function is called
    object.onclick = function() { func2(arg); };
  • Function that takes a reference argument that is valid at define time
    object.someProperty = arg;
    object.onclick = function() { func3(this.someProperty); };

That last form is handy when you are using a loop to apply functions to event handlers (for instance, when you are building a DHTML menu from arrays). In this case, the loop index which you would be using to determine the correct argument for the function is only valid at definition time and not when you call the function through the event handler. Instead, you just create a property in the object and store the argument value in that property. When the function is called, it extracts the argument value from the object.
08:40 permalink

Brent found an old Department of Communications announcement about Telidon terminals which appears to be the system used in the Toronto tourism kiosks.
08:20 permalink

01/03/2002 Thursday

When I was in England about 12 years ago, I discovered ceefax / teletext - each tv channel had a parallel, menu-driven text service. You could select short articles (usually news, sports, entertainment-type stuff) to read from a menu. The information-on-demand gave it a web-like feel. Much more user-centric than anything North America had at the time (scrolling news text with no interactivity usually found on local cable information channels along with tv schedule information). Blatext should give the uninitiated an idea of what it was like. Along the same lines was a network of tourist information kiosks I remember seeing around Toronto in the early-to-mid 80s. A number pad allowed you to select items from a hierarchical set of menus and view information on a variety of tourist-related places in the area including attractions, restaurants, stores, etc. The text was accompanied by simple graphics drawn in a Logo-esque fashion (everyone remembers the computer language Logo, right?). The processing power was limited so you watch the screen graphics being built gradually. The coolest thing about the kiosks was that typing in random 5 digit numbers would take you to random locations. Like a pasta restaurant in Scarborough or an art shop in Yorkville. Can't find anything about them on the web, though. Anyone else remember them? (via B3TA)
18:45 permalink

Been re-reading Joel's Getting Things Done When You're Only a Grunt column. And I have a couple problems with the assumptions he has made in coming up with his suggestions:

A low score on the Joel test is probably symptomatic of a deeper problem.
Source control, a bug database and regular builds aren't secrets of a 33rd degree adept. If a company doesn't implement these processes, there will be some lame excuse. Like they are "too busy". Can't launch the lifeboats because they are too busy rearranging the deck chairs to account for the changing cant of the deck of the Titanic. And it doesn't matter if your local bit of steerage class is in ship-shape if the boat is sinking.
Trying to fix a company doesn't make much sense if you are going to leave before you have a chance to finish the job.
Lots of people have bad company stories. And, like many of those who posted their stories to the article forum, those stories are told in the past tense - they left that situation for greener pastures. In some cases, whole teams left. At some point, whatever is keeping you in the company will be outweighted by the disadvantages. Waiting for the options to vest or avoiding the move to another city isn't worth the frustration, the lost opportunities, your lack of growth and learning, time away from family and friends, and the sacrifice of what you originally loved to do. It only makes sense to put in the extra, pointless effort if you want something good for your resume.
If your company is "too busy", you won't get time to fix things.
Murphy's Law says that any given amount of work will grow to fill the time allotted to it. A corollary is that even if you get things done early, someone will find more work to fill your time. If you code for 7 hours with the plan to use one extra hour to improve process, somehow, you will end up using that last hour to code. No matter how long you make your day, you won't find that extra time. If you put in 12 hour days, people will expect 12 hours of work out of you.

Update: Three problems. I have three problems with the assumptions he has made in coming up with his suggestions...
18:40 permalink

Well, that resolution lasted about 15 minutes.
18:30 permalink

01/02/2002 Wednesday

Joel provides an easy way to rate a development team / environment (more useful than the checklist I provided earlier). Also supplied are ways to Fix Things when you are but a cog in the machine.
20:35 permalink

Some javascript compression / obfuscation utilities:

The browser-based apps tend to be really slow for big files. Of the others, I've only used JSCruncher (which uses the same process as the Brainjar app) and found it excellent. Compressing your code means more steps when authoring but I can get 25% smaller filesizes which can be important when your .js files start running 100K.
20:30 permalink

I resolve to spell check more often.
20:15 permalink