Category Archives: Abacus

Verbosio: It’s time to ask for help.

Yesterday afternoon, I spotted a sentence in a Planet Mozilla Projects page which shocked me to no end.  Benoit Jacob was advocating the end of MathML in Mozilla code.  The thread has attracted a lot of responses, and the tone largely opposed to his proposal.

Personally, I’m opposed to it as well.  MathML is one of those frontiers which has immense unexplored potential.  Can you imagine writing e-mails to instructors with inline mathematics formulae, or including equations in an instant messaging chat?  I can and have imagined exactly that for as long as I can remember.  I tried once upon a time to bring MathML into Mozilla Composer with my Abacus project, but determined it was too hard and too hacky to be a true solution.

This is precisely why I’ve been working on my prototype XML editor, Verbosio.  It’s supposed to be a complete rewrite of how we create and edit web pages.  The idea is that a language like MathML is simply a Mozilla add-on to the editor.  Unfortunately I’ve been buried with both full-time work and college to make any real progress on my Verbosio project on my own.

I’ve said for years that I didn’t want to attract a larger audience on an unproven principle.  Maybe that’s the wrong decision in this open-source Mozilla community.  While I still believe in the idea, I’ve become my own bottleneck.  It’s far past time for me to swallow my pride and admit that.

What I need to continue development is some help – and I don’t care how junior that help is, as long as they’re capable of writing JavaScript and willing to learn.  Two to five people who can work with me by e-mail and are patient can achieve far, far more than I can on my own.  I can train other engineers in this technology.  I can teach and explain what I’m trying to do and why at a deep level.

We’ve seen major improvements to browsers over the last five years:  HTML 5 form controls, audio and video, faster JavaScript performance, etc.  All of these areas are attractive.  Editing web pages?  Not so much – except to me.  The ability to write efficiently is still as important as the ability to read efficiently.

So, if you’re a budding JavaScript developer who wants to get into something experimental with someone who won’t quit on the idea, please leave a comment.  I should’ve asked you years ago.

Work in progress: A tutorial on XTF

One of Abacus’s goals is to define and implement a XML language of analytic geometry. So I’m working on JS code to implement a subset of the language.
I’m also using the JS code as an example I’d like to write an article on, contrasting XBL and XTF for implementing XML languages. One emphasis of this article is on including more than one element in the language implementation.
There’s only one problem with picking a practical example. Namely, to make it work, you have to write a lot of code. Probably more than the article’s readers would want to wade through… I’ll cut a part of it for the article.
But, when I get it finished, I’ll have a nice long demo of how you can create XPI’s to install XML languages into Mozilla.
Now, where will I find a technical journal willing to buy the article… 🙂

Abacus 0.1.2 Released

First, install the newest JSLib (thank you very, very much, Mr. Collins — and sorry for lambasting your crew earlier). Then if you’re in the mood for something that works but will have a good deal of behind-the-scenes revamping soon, try out Abacus again.
I’ll probably do some work on it over the next few days, and if I’m lucky, Abacus 0.1.3 will come out mid-month.
Next on the hit list for Abacus? Just a nice XHTML editor.

Abacus 0.1.2 coming soon

Abacus 0.1.1 is broken in recent Mozilla builds. Sometime in the last six months, there was an upgrade to Mozilla’s XML parsing. The upgrade, thanks to some not-quite-sane sanity checking I did for 0.1.1, caused Abacus to hang Mozilla in an endless JavaScript loop.
I’ve fixed that in my local Abacus, and with another fix to JSLib I’ve posted a patch for, Abacus 0.1.2 should be available soon. No new features, just making it work again. (Really, it’s ready now, but I want to upload it directly to mozdev, not here.)
Then I’ll start work on Abacus 0.1.3, which will be a bit streamlined and support much more MathML.

Breaking stuff to fix stuff (2)

After much thought, I’ve realized that the internationalization efforts of editing MathML (not the application, but the generated markup) is really a waste of time. Not that many people in France will care to have markup in documents they edit to have, say, Mandarin presentations of the mathematics.
This means that a lot of the code I struggled to write will be rewritten and simplified. The end-user won’t notice, really, and the code will be easier to maintain. It’s also a big enough change that it’s a challenge, and I like challenges. They drive me.
So, Abacus is going to get a sizable rewrite in the next few weeks, and you’ll see a version 0.1.2 based on it, most likely.

Has Abacus been abandoned?

No, not really. I just need a good incentive to work on it again.
My incentive for working on version 0.1 (and 0.1.1, which I released when I realized 0.1 was broken) was the O’Reilly Open Source Convention 2004. Since then I’ve received e-mails about it from about a dozen people. That’s over the past six months.
It’s a little disheartening. 🙂
I’ve had other things take up my time, and not a lot of motivation to get Abacus going forward again. No one has filed bugs or offered patches to it, and no one’s indicated they’re actively testing it. (I’ve had a couple people, including one today, who said they want to see it working in N|vu, but there’s a N|Vu bug with XPInstall that stops Abacus in its tracks.) All the work I did on Abacus was on my dime. Nobody’s really reviewed the code.
Abacus is stagnating because it’s a community of one.
In a way, I suppose that’s my fault. Editing mathematics isn’t as “sexy” as IRC chat, user-friendly browsers and mail clients, Gmail notifiers, etc. I picked a niche, and I got a niche community. 🙂
(I should note my serverpost widget, which seems a lot more immediately useful to the Mozilla app developers crowd, is also a community of one…)
Oh, well. At least I haven’t gotten any real complaints about Abacus, either.

Bugs in Abacus vs Bugs in Mozilla

There are a number of (unfiled) bugs in Abacus, and there are some bugs in Mozilla which Abacus tries to work around. I’d really, really appreciate having some developers hammer with it a bit, file bugs as appropriate (in the right bug database), and start fixing them.
I really don’t want to be the only developer on Abacus. I’ve spent too much time on this alone, and there’s a lot to do. I really, really need help at this point.
On another note, one feature I would like to implement for Bugzilla would be a “transfer between installations” feature. It would probably be something like setting dependencies between one database and another. The easy part would be writing code and MySQL tables to store the dependencies. The hard part would be writing protocols for Bugzilla installations to talk to each other… including failure cases for when a cross-database dependency doesn’t take effect. I wouldn’t mind hearing opinions on how we could do this.
Incidentally, this is my 100th blog entry.

The website is up!!!
As of this moment, the XPI file for Abacus isn’t quite available yet (I don’t know why, it got checked in with everything else). I assume it is propagating to the download servers as we speak.
I am once again a happy man.
UPDATE: Yes, the XPI file is available. I have just tested the screenshots, and the files are horked on my local drive. I’m checking it now.
Incidentally, there is a Windows crash bug 258365 with Abacus right now. It appears to affect only Windows on 1.7+ builds. Be warned.
UPDATE 2: Screenshots have been fixed.

Abacus MathML Editor 0.1.1

Abacus 0.1.1 XPI
After a little floppy hell (I need a new computer badly), I managed to put this out for your consumption. The documentation and launch of the site should be underway (assuming pete@mozdev can grab the .tar.gz I put up for him too).
It doesn’t yet work in N|Vu (I don’t know why), and there is a Windows crash bug which this package reveals, but that’s the best I could do.

Now I know why it’s called “ah_crap_handler”, part two…

A few weeks ago, I griped about a crasher bug involving DOM appending a node, a bunch of XBL bindings being constructed (descendant nodes of the appending node), and JS not being directly responsible. Fortunately, it was a side case that I could do without for Abacus 0.1.
I didn’t want to, but I didn’t have a whole lot of choice.
So, in releasing Abacus 0.1, I managed to foul up the directory structure for the .tar.gz and zip releases (which is why it didn’t work). It was an ancient bug I’d forgotten about and manually hacked to make work. I put together an XPI for Abacus, and decided I’d better rerelease it as Abacus 0.1.1 — acknowledging that I goofed on the 0.1 version.
That XPI is finished, and I’m working on the website for a simultaneous release and documentation of the project.
Except that nagging little crash is back… and this time, it affects me every time I click the “Apply Template” button. Such is a critical piece of the Abacus user-interface, and failure is not (much of) an option here.
Now, here’s the weird part: On my Mandrake Linux 9.1 o.s., it never crashes at the same part in my code. So my attempts to get a stack trace detailing the problem are somewhat useless.
Needless to say, I am even less happy than before.
Abacus 0.1.1 will be released concurrently with the launch of in a few days.