Neil's Place

February 7, 2003

7:50 PM The future looks bleak

Let's say that you have a block of text in a file and you need to add a paragraph tag around it. Thus, you want to add <p> at the beginning and </p> at the end, and put the result in a new file. Sounds easy right? Of course. Since we have so many great new technologies at our disposal, here's one way I've seen it done recently:

  • Set up a Java Servlet engine on a Web server somewhere. The process begins when a user loads a specific URL in a browser.
  • The code starts by reading a configuration file which lists classes to be used during the process which are later dynamically instantiated as needed.
  • One such class parses the text file into an abstract in-memory object.
  • Another class takes the abstract object and serializes it into XML.
  • The XML is parsed.
  • A second configuration file is loaded which contains a reference to the location of an XSLT file.
  • The XSLT file is loaded and parsed.
  • The XML is translated using the XSLT template.
  • The resulting content is then serialized and saved into a file.
  • That file is copied into another directory.

We've come a long way since the early days of computing. I mean, thirty years ago we would have done that task using something extremely cryptic such as this:

(echo '<p>'; cat file.in; echo '</p>') > file.out

Or, unfortunate programmers would have had to resort to using a couple of lines of sed. Thank goodness we don't have to use these old technologies any more, now that we have all these great new advances.

Comments ( 6 )

February 6, 2003

9:24 PM Hmmm.

I had started writing about this very idea, part of a larger document about my ideas for the Semantic Web and Weblogs and dealing with information and how to put them all together into something really useful.

I haven't had much chance to work on this stuff lately as I've been distracted by other things. In just over a week though the distractions should go away and I hope to put my ideas down in writing.

Comments ( 28 )

February 2, 2003

6:12 PM Comments

I really didn't want to do this, but all the other Mozilla weblogs are doing it, so I added a place to add comments.

Comments ( 24 )

January 30, 2003

11:33 PM Babies!

Today, pictures of co-worker's kids have been hung up around the office. And that is all I have to say today.

Comments ( 21 )

January 29, 2003

11:48 PM XULPlanet Poll

What what you like to see on XULPlanet?

More Examples
XUL Forums
XUL Tip of the Week
Details about how to get trees to work with RDF
XUL development utilities
Pictures of Blake Ross naked

Comments ( 2 )

January 25, 2003

9:44 PM The Amazing Rechromeifier

You've probably encountered sites that open up new windows without menu bars or toolbars and so on. With this little Mozilla trick, you can press Control+F5 to get your chrome back. Or, press Shift+Control+F5 to get back the chrome in all browser windows, which is useful if someone has disabled the keyboard in a window. First, add the following to userChrome.css in your profile's chrome directory:

tabbrowser {
  -moz-binding: url('file:///stuff/rechrome.xml#tabbrowser');
}

You may use a different path if you wish. Here, /stuff/rechrome.xml is used. Then add the following to that file:

<?xml version="1.0"?>
<bindings id="rechromeBindings"
   xmlns="http://www.mozilla.org/xbl"
   xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <binding id="tabbrowser" extends="chrome://global/content/bindings/tabbrowser.xml#tabbrowser">
    <handlers>
      <handler event="keypress" keycode="VK_F5" modifiers="control">
        window.top.document.documentElement.setAttribute("chromehidden","");
      </handler>
      <handler event="keypress" keycode="VK_F5" modifiers="shift,control">
        var wm=Components.classes["@mozilla.org/appshell/window-mediator;1"].getService();
        wm=wm.QueryInterface(Components.interfaces.nsIWindowMediator);
        var wlist=wm.getEnumerator(null);
        while (wlist.hasMoreElements("navigator:browser")){
          var docelem=wlist.getNext().document.documentElement;
          if (docelem.hasAttribute("chromehidden"))
            docelem.removeAttribute("chromehidden");
        }
      </handler>
    </handlers>
  </binding>
</bindings>

Feel free to change the keys to something else. Not that this trick may require a fairly new version of Mozilla. Slight changes may be needed for older versions or for Phoenix.

Comments ( 23 )

January 22, 2003

6:33 PM Interesting new feature

Put in UI to expose dynamic profile switching

Now that this is complete, this might be useful for some people doing development and testing.

Comments ( 8 )

January 21, 2003

6:42 PM Customizable toolbars coming to Mozilla soon?

[We are concentrating] our efforts on porting the Phoenix [toolbar customization] over and adapting it - UI Spec [PDF]

Comments ( 4 )