I finally have a job, a real job, though I don't start until May 9th. For a while after that I will have an overlap between my real job and my last contract job, but after that, I hope to finally have some time to spend with a clear conscience on my open source projects that I want to work on, especially Iron Lute which has been seriously neglected (though not quite ignored).
There is a very nice Javascript Console available at http://www.squarefree.com/shell/shell.html; I've ported it into XBLinJS to replace the hacky little one I had written. I've tweaked it up a bit and also removed a little bit of functionality; in particular you can't start up the Console from a bookmarklet in the context of the original page, and it is easier to create subclasses with customized shell commands and keyboard shortcuts.
This is in CVS, though I have not tested it in IE, which typically means it won't work there yet.
During a bit of development downtime here, I've been working on making XBLinJS work on any ol' DOM nodes, not just HTML ones. Which, most notably today, means that you can in theory use XBLinJS as a drop-in replacement for the actual, factual XBL. It also means it can be used with other document structures that use DOM and the same basic event structure, like perhaps SVG someday. If we're extra good developers, we may someday see widgets that successfully integrate both XUL and SVG at the same time. Maybe even cross-browser...? Please?
XBLinJS 0.4 Release Plans
Features are always in flux until such time as the release occurs, but here is the current plan for 0.4:
- XBLinJS currently is built on the assumption that if node is a Javascript-reflected DOM node, node.setAttribute(name, value) is the same as node[name] = value. Nope. I thought I was setting up a system whereby you could always say blah.setAttribute(name, value) and it would Just Work whether or not blah was a node or a Widget. Guess not.One way or another, I intend to resolve this in 0.4. I need to research what browsers do with what elements, with what attributes, and figure out what to do. The good news is that much of that should be automatable, the bad news is that it could produce some huge data files, the good news (again) is that huge data files are better than crashing Javascript. A pity it isn't this easy.Egregious example: In IE, node.style is a complicated object, and at least in my copy of IE, node.style = "background-color: #FFFFFF"; doesn't work. (I qualify that because it either worked for other people, or worked in past versions of IE, but it definately does not work for me.) You have to set the attributes in Javascript directly: node.style.backgroundColor = "#FFFFFF";. In Mozilla, you can use direct .style access just fine. I can flatten this difference out pretty easily, but if it gets much more complicated than that, things could get interesting.
- There are of course other widgets that can be included. A version of the drop-down widget that works in both IE and Mozilla should be included as I'm working on that right now. I might put out a simple ButtonWidget, just because I keep using buttons and it'd be nice to have an easy ButtonWidget for use in .content specifications. Depending on time, a Rich Text editor widget may get included, which could be interesting. (I'm actually converting somebody else's rich text widget, and it's serving as a good example of how XBLinJS can in theory provide a single unifying framework for a lot of extant Javascript libraries for various capabilities that currently do not integrate well.) I think that with either of those two, maybe even both, it'll start turning some heads on the demo page.
- Event handling at the moment is questionable. I had to get wacky to work with IE 6, and I'm not yet convinced things will work across frames like they are supposed to, or that widgets can attach to other widget's events like they are supposed to. Simple cases work. That will be better tested in 0.4.
- Finally, I intend to have some sort of tutorial up, which will also serve as a better explanation of what XBLinJS is if you don't already know what XBL is. I haven't worried too much about that up to this point because the library wasn't necessarily ready for that bunch of people, but I think it is getting there.
XBLinJS Version 0.3 Released
XBLinJS version 0.3 is released; get it at SourceForge.
A demo page is available, though at the moment I think it will still only impress serious Javascript programmers.
For people who don't really care about XBLinJS per se, but do care about web development issues, you may wish to check out my dangerously-close-to-rant statements about my experiences with Mozilla's technologies. (The only things saving them from being a rant is that I propose that XBLinJS, or at least something like it, is a solution to the issues I raise; I tend to think of rants as things with little or no constructive value.) This is why an XBLinJS release announcement is posted also on my blog's front page.
Why Should I Learn Math?
"Why should I have to learn math, when I don't use it much?" is a very good question.
If I've ever seen a really good answer to this question, I don't remember it.
But I've finally figured out how to express something that has been gestating in my head for a while. I know why you need to learn math.
First, what do I mean by math? By math, I here refer to actual mathematics, which in general looks like this:
I said it before when the EULA for Service Pack 2 came out, but it's time to say it again: It really is time to abandon Microsoft Windows. This time, I say this because of this sort of thing: Not only are the spyware authors developing faster than Microsoft can, they are now firmly venturing into the territory where Microsoft can't win, even in theory, without drastic measures that few users are going to take.
I'm kind of surprised that at least as of this writing, almost nobody seems to have mentioned the Daily Show's blog-stravaganza last night. Fortunately, one of the major exceptions here is providing downloads... well, trying at least. Maybe somebody'll mirror it. (I can't, that'd kill my bandwidth in an hour and this account is hosted as a favor to a friend; I try to avoid torturing it :-) .)
It was pretty good, as you'd expect, and definately the funniest take on the Eason and Gannon issues to date, showing that while the conventional media may not be adapting well, the conventional non-media seem to be doing pretty well. While this is the first time the Daily Show has directly covered blogs in a big way, there are several times they've done a bit on a story covered mostly in the blogs, before it penetrated to the mainstream. IIRC (and I may not be), they beat the mainstream press to the punch on Rathergate (or "Danron", which I still prefer on a number of levels, but oh well...). Clearly they've got someone with their eye on the blogs.
Here we go again; Google "Smart Tags"
Google today launched a new version of its toolbar that employs a new feature called Autolink that turns non-linked content on Web sites into hotlinks back to Google properties and other sites.... In addition to addresses, it will also add links for ISBNs, package tracking numbers, and vehicle identification numbers.
Here we go again, only this time, I have all my debate points all lined up. You want to know how I feel about this, read that.
It is often pointed out that the First Amendment does not let you force someone to listen. It is also worth pointing out that the First Amendment does not let you force someone else to speak.
Which reminds me, when and if I ever get to fully revising Communication Ethics, I ought to include something about this inability to compel others. (I have also finally figured out how to handle P2P issues in the context of that essay but have not had time to write it.)