Slashdot Mirror


A Good Resource for Learning XUL & Javascript?

RJabelman asks: "I'm trying to write a Mozilla extension, but I can't find a decent resource to learn from. Tutorials abound for packaging up an extension, and the web's littered with Javascript snippets to pretty up a web page, but there seems to be very little authoritative information for doing serious work with Javascript, XUL and Mozilla (and more specifically, manipulating XML). I can find my one true resource for every other language or API I've learned: but not this. Can anyone point me to theirs?"

82 comments

  1. OReilly book by mrblah · · Score: 5, Informative

    There's an OReilly book, if that helps.

    1. Re:OReilly book by Anonymous Coward · · Score: 0

      You can legally download that book from mozdevm as it's published under the OPL, though of course if you find it useful, buying it from O'Reilly is preferred.

    2. Re:OReilly book by jalefkowit · · Score: 4, Insightful

      Yes, there is. And it sucks.

      I bought that #*#$@ing book when it first came out. And proceeded to waste prodigious amounts of time trying to make even the simplest code samples from it work. It turned out that the code samples were riddled with typos that made them un-runnable.

      The book is, quite honestly, a waste of your time and money. Maybe they've since gone back and fixed the errors, but considering that it's still in the 1st edition (which targeted Mozilla 1.0 -- god only knows how much has changed between that and Firefox 1.0) I seriously doubt it.

  2. A start by LittleK · · Score: 3, Informative

    You can always start at mozilla and xulplanet

    mozilla
    xulplanet

    As for the more advanced stuff, I'm not sure where.

    1. Re:A start by Curtman · · Score: 2, Informative

      mozillaZine is a great resource too. Especially the knowledge base , forum, and #mozillazine on irc.mozilla.org

  3. non-logged browsing mode extension request by Anonymous Coward · · Score: 0

    This is slashdot after all, probably the best place to ask for this: Someone should make a "non-logged" (read: pr0n) browsing mode extension for firefox. :)
    Creating a revertable point in history, cookies, and other saved information would be better than just turning off all additions to those.

    Clearing history, cache and the likes afterwards is a nuisance and loses all information on visits to other sites.

  4. Roachfiend Tutorial by sunilonline · · Score: 2, Informative
    A few seconds with google brought up this tutorial: http://extensions.roachfiend.com/howto.php

    It's targeted for Firefox extensions, but should serve your purpose pretty well.

    1. Re:Roachfiend Tutorial by sunilonline · · Score: 2, Informative

      XULplanet also looks like a good resource to me.

    2. Re:Roachfiend Tutorial by forgotten_my_nick · · Score: 1
      There is also a build kit for use in ANT based off that site. Basically allows you to create your plugin without having to go rummaging through all the files.

      Latest Build kit is here.

  5. RAD With Mozilla, Bruce Perens OSS series by LOBOestepaRIO · · Score: 5, Informative

    It's fairly good, and available for free in PDF. http://phptr.com/promotion/1484?redir=1

    1. Re:RAD With Mozilla, Bruce Perens OSS series by Anonymous Coward · · Score: 0

      I actually did not find "Rapid Application Development With Mozilla" all that useful as a learning tool. It contains a lot of information, but arranged in ways that only an insider could love. Furthermore it seemed to emphasize a fair amount of minutia, at the expense of "so how do I use this?" type inforamtion. The first time I read "To understand this material, you need to download and read the spec" I thought it was a joke. After a few chapters, I realized the author was serious.

    2. Re:RAD With Mozilla, Bruce Perens OSS series by Anonymous Coward · · Score: 0

      "To understand this material, you need to download and read the spec"

      How do you expect to develop an application using a framework with specs you never read?

      You probably write VB and think you are a developer.

  6. XulPlanet by thasmudyan · · Score: 4, Informative

    Try XulPlanet, it's the only resource on XUL that is actually working, for me at least. In my company, we're regularly delivering apps with XUL as a frontend and all developers use XulPlanet.

    On the down side, welcome to the land of magic and wonder, where arcane bugs haunt the long forgotten planes of DOM...

    1. Re:XulPlanet by Jerf · · Score: 5, Insightful

      On the down side, welcome to the land of magic and wonder, where arcane bugs haunt the long forgotten planes of DOM...

      Yeah, I dug into Mozilla development gung ho over the past year or so, and I've completely abandoned it... well, I'm in the process of creating a replacement XBL, but after that's done, I'm out. In painfully slow succession, I've tried in a serious way Moz's RDF support, XUL, and XBL, and in every case I have rapidly exceeded their capabilities (to the tune of segfaults) and gone back to JS + DOM. (For RDF, I now dump out my data as a JS file and use XMLHttpRequest to retrieve it and "eval" to run it; this is what Google Suggest uses. I beat them by about a month, I know others beat them by more :-) but it works and you'll be stunned how fast it is, even for many kilobytes of data; by far the fastest solution I've found, even independent of the fact that loading any sort of XML in Moz causes a huge stall of some kind and tends to cause crashes and memory leaks in nothing flat.)

      I'm preparing a series of half rants, half detailed indictments on why the Mozilla specific technologies are not just poorly implemented at the moment for any task other than being a web browser, but why Javascript + DOM is usually, on the balance, a superior solution. ("On the balance" means that while my JS implementation of XBL is neither a subset nor a superset of "true" XBL, on the whole the benefits level out in favor of my JS implementation... and if I were willing to go pure Moz instead of cross-platform it would be a total win.) I don't want to repeat them here in toto, but, well, that's actually the basic argument: Me, a single schmoe, can replicate most of XBL in a couple of weeks, in Javascript, and it is actually much more reliable too, for reasons that will only make sense if you used Moz's XBL support for anything serious, like widgets that can load remote data or include other widgets in interesting ways. How much time has been spent on XBL, which is still behind?

      Unless you need a XUL widget like "popup" that has no good HTML replacement, you're just better off with JS and DOM. Most people don't understand how powerful JS really is, and I've found it to be surprisingly speedy, too.

      (To show I'm not just spouting off randomly, here is my current XBL in JS implementation. Still in development, but it oughta show I'm serious about this, and even now I'm finding it more pleasing to work with overall than real XBL. What stops me from releasing the rants right now is, well, there's some writing to be done yet, but instead of just bitching I want to have some constructive solutions as well; xbl.js is a big part of that, and right now I'm working on the POPUP element because I need that for my app. Ranting is great but I find they are even more powerful when they are not purely negative.)

      Details forthcoming at a later date, but next time you're reaching for XUL or XBL, if it isn't for a Mozilla extension, stop and make sure you don't really want to do it in cross-platform JS + DOM. See, the thing is, those libraries are well tested and optimized in a variety of situations; I'm not encountering bugs hourly like I felt like I was in Moz.

      Finally, to preempt some of the obvious responses, I'm not saying XBL or something was a bad idea; in fact the idea is so good I'm re-implementing it. I'm saying the implementation right now is so dodgy it isn't worth playing with when there is another less cool, but more functional, alternative available today in the form of JS + DOM.... and what advantages XUL or XBL have over my JS implementation are only a few small hooks away from being exposed to the JS as well.

    2. Re:XulPlanet by rycamor · · Score: 1

      I agree completely with you in regard to RDF and the whole idea of using Mozilla's data-management components. Mozilla/XUL should be looked at as a front-end only. Whatever method you use to get and store the data, simple javascript is the answer to manipulating it in memory. RDF, and all other XML-oriented data management techniques are incredibly overcomplicated and offer no special benefit, other than being able to say you are using "XML datasources".

      For web-based apps, XMLHttpRequest is a good way to handle remote datasources, although it is even possible to work easily with sockets, if you install JSLib.

      In my current Mozilla-based project, I am using JSlib sockets to talk directly to PHP (CLI mode) daemons, in order to get access to data. I have found this method to be extremely fast, and allows me the benefit of all PHP's database modules, as well as PHP's mature back-end system interaction capabilities.

  7. Dynamic menus by Earlybird · · Score: 4, Interesting
    The XUL/Mozilla/Firefox documentation is scattered all over the place. You survive on bits and pieces, little tutorials someone cooked up on their own time, the Mozilla reference, existing extensions, etc. Documentation is often written for the old Mozilla suite, and thus out of date with respect to, say, Firefox' new extension-loading conventions.

    What I want to know, which nobody seems to document, is how to create menus dynamically in Firefox. Instead of specifying the menus statically in XML, I want to create them at runtime -- specifically, I want to create a top-level menu item and populate its submenu at runtime based on HTTP queries or something similar. I know it's possible, but I have not figured out how.

    1. Re:Dynamic menus by pjay_dml · · Score: 1

      If you find the answer to that one, I would be interested in knowing about your solution :)

    2. Re:Dynamic menus by Raster+Burn · · Score: 1

      Does this help?

    3. Re:Dynamic menus by Earlybird · · Score: 2, Informative

      Apparently XUL templates is the way to go, but I don't know how to supply the datasource implemented with JavaScript.

    4. Re:Dynamic menus by Earlybird · · Score: 1

      Thanks, I already knew about it. But it doesn't provide all the pieces of the puzzle.

    5. Re:Dynamic menus by rycamor · · Score: 1

      What you need is appendItem and friends, or such methods as "insertItemAt", "insertBefore" and "removeAllItems" for the menulist element, along with addEventListener.

      I agree that it is unfortunate there is no nice collection of HowTos for XUL/JS. To really document and explain all of the possibilities, it would take several books.

    6. Re:Dynamic menus by Earlybird · · Score: 1
      • What you need is appendItem and friends, or such methods as "insertItemAt", "insertBefore" and "removeAllItems" for the menulist element, along with addEventListener.

      Alas, menulist has nothing to do with menus. Correct me if I'm wrong, but I believe menulist is the XUL equivalent of HTML select dropdowns; the elements used for window menus are menu, menubar, menuitem and so on.

      I'm starting to figure out how to do this with XUL in-memory datasources now, though; see the first example on this page.

    7. Re:Dynamic menus by rycamor · · Score: 1

      Why 'alas'?

      Yes, if you are referring strictly to toolbar menus, then menupopup , as well as menu, menubar, etc... are the elements you need. These also have a nice list of Javascript methods that can be called, including 'insertBefore' and 'insertAfter', while many more methods such as 'appendChild' can be called on individual menuitem elements in the menu.

      I personally shy away from RDF and the use of mozilla datasources, because they don't really offer that much of use to me. Their performance is not very good, and they really overcomplicate the whole idea of data management. I would much rather simply interact with a regular database and use Javascript to populate menu and list items. If I need to maintain simple lists in memory, Javascript arrays do the job quite well.

    8. Re:Dynamic menus by Myen · · Score: 1

      SmartSearch populates its menu from JavaScript (it grabs them out of your bookmarks, but you don't have to care about that part); you may want to look at its source. I assume example code is always good :)

      It makes a <menuitem> (via document.createElement) then appends it to a <menupopup>.

  8. Essential XUL Programming by AlXtreme · · Score: 3, Informative
    Grabbed a copy of Essential XUL Programming a few years back, it was quite ahead of its time and a good way to start off imo. The Open XUL Alliance has some more recent additions, might be worth a look.

    Nothing a quick google-search wouldn't pick up. But that hasn't stopped ask /. in the past, I guess.

    --
    This sig is intentionally left blank
  9. XUL links by nitro322 · · Score: 5, Informative

    If you're just starting out with XUl, you may want to brish up on your JavaScript first. Although XUL itself is a rather straightforward markup language (albeit with many, many quirks), in order to make your app actually do anything, you'll need to write some JavaScript to control it. There are many, many Javascript resources out there, and I also recommend JavaScript: The Definitive Guide from O'Reilly.

    Once you have that down, here are a few XUL sites I recommend:

    Creating Application with Mozilla - Online version of O'Reilly's book. Great resource for beginners to follow through, but some of the examples no longer work due to changes in the APIs since the books release.

    XUL Planet - An excellene resource for XUL developers of any level. This site contains a great tutorial for getting started and becoming familiar with the environment, as well as a definitive reference guide for XUL and XPCOM objects and functions.

    XUL Planet Forum - This forum is also housed at the XUL Planet website, but it deserves separate mention. This is the only forum/newsgroup/list I've been able to find that's still active and populated with friendly and helpful souls. I've received helped there several times on problems I'd been working on for weeks or months.

    There are also a few XUL-related newsgroups on mozilla's usenet server (eg, news://news.mozilla.org:563/netscape.public.dev.xu l), though not too many people use those groups anymore.

    There's also Mozilla official XUL Programmer's Reference. This is a great reference resource, but it's not geared for beginners.

    And finally, the mother of all example sites: http://www.hevanet.com/acorbin/xul/top.xul If you can't figure out how something work, this most likely has a working example.

    Good luck!

    1. Re:XUL links by Matt+Perry · · Score: 1

      Instead of having to buy a book, isn't there an official Javascript reference on the net? Sort of like how php.net/manual is the definitive reference on PHP, is there anything like that for Javascript?

      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    2. Re:XUL links by elmegil · · Score: 1
      I would argue that Creating Applications with Mozilla is not much use to most people unless 1) there's a second edition somewhere or 2) that online edition *is* corrected from the original text and on its way to becoming the second edition. The first edition I bought was confusing and broken on the day it was published, so commenting that the API has moved on since then is no defense for the myriad things wrong with it.

      I suppose if you like "tutorials" that are all forward reference you might get something out of it, but me, I expect tutorials to actually explain small things and then build up to the context necessary to explain big things. This book doesn't go anywhere near that concept.

      --
      7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
    3. Re:XUL links by Anonymous Coward · · Score: 0

      Troll? Fuck you, you web "developer" with mod points. Any language with multiple incompatible implementations is poorly specified. Python, Perl or Ruby would be much better choices (even better if they were all available).

    4. Re:XUL links by Curtman · · Score: 1

      And finally, the mother of all example sites

      The mother of all example sites would be over here. Unzip the extensions, and examples abound.

    5. Re:XUL links by Curtman · · Score: 2, Informative

      isn't there an official Javascript reference on the net?

      Devedge used to be the place, but AOL seems to have killed it. See bugzilla.mozilla.org #264184. (Their bugzilla doesn't allow referals from slashdot)

      Mirrors here:
      JavaScript Guide
      JavaScript Reference

    6. Re:XUL links by Anonymous Coward · · Score: 0

      Any language with multiple incompatible implementations is poorly specified.

      Surely you mean Python vs. Jython vs. IronPython, no?

      JavaScript, OTOH, has an international standard.

    7. Re:XUL links by Anonymous Coward · · Score: 0

      Jython is different to Python by intent, and the name reflects that.

      Javascript on IE is different to Javascript on Opera which is different again to Javascript on Mozilla, which is (surprisingly) different to Javascript on Konqueror, and on and on and on, yet they are all called Javascript, and no-one seems to be able to point at a spec and say "This is the correct way to do it".

    8. Re:XUL links by bcrowell · · Score: 1

      Creating Applications with Mozilla is listed here on theassayer.org, and a user-submitted review would be very welcome!

    9. Re:XUL links by Kristoffer+Lunden · · Score: 1

      Just wanted to say thanks you, there was a few links there that I hadn't seen before. :)

    10. Re:XUL links by Anonymous Coward · · Score: 0

      Er. JScript is what it's called on IE, microsoft deliberately avoided the word "java" (pretty sensible, seeing as the language, being prototype-based, really has fuck all to do with classes-and-objects java apart from c-syntax similarities).

    11. Re:XUL links by Anonymous Coward · · Score: 0

      What?

      Sure JScript is what IE called their implementation of Javascript, but the wider issue of whether it should avoid the word "Java" because of prototyping, classes and objects, isn't true because Sun (when they developed Javascript 1.0 with Netscape) wanted it to be called JavaScript. I don't think there's any evidence of microsoft avoiding it because of the difference with Java. It's just Sun naming everything Java like their Java Desktop.

  10. A book by Nigel McFarlane... by danbeck · · Score: 1

    Try Rapid Application Development with Mozilla by Nigel McFarlane, published by Prentice Hall.

    It goes pretty in depth and covers a lot of ground about a lot of the parts of XUL: XBL, XPCOM, XML, etc.

    I would recommend it highly.

    1. Re:A book by Nigel McFarlane... by Anonymous Coward · · Score: 0

      That you 'would' implies that something is preventing you from doing so. Why won't you recommend the book?

    2. Re:A book by Nigel McFarlane... by danbeck · · Score: 1

      Were you trying to be funny?

      I recommend the above book.

      There... are you happy? You twit.

  11. Re:Heck I don't know by Saeed+al-Sahaf · · Score: 0, Offtopic
    I wonder if I can ask the slashdot crowd other meaningfull things like; what is better, seti or folding?

    Probably not since Slashdot is primarily a Fantasy Film and Gamer site. You should probably seek out a forum that deals with science on a more regular basis.

    --
    "Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
  12. Javascript, good for beginners and reference by CosmicDreams · · Score: 2, Informative

    For Javascript I have that O'reily's The definitive Guide on Javascript to be exeptional. I mostly use it today for referencing specfic methods and functions, but it's also a good book to start with.

    With XUL nearly all of the dynamic aspects are controlled by javascript, so its good to get a good grounding in that subject before you start in with the XUL tags.

    I recently coded an XUL tree that loads links at the click event. Sounds easy but it took me a long time to figure out how to bubble up the right event.

    The only way I figured it out was with the help of that javascript book.

    --
    Go Gusties
    1. Re:Javascript, good for beginners and reference by mgkimsal2 · · Score: 1

      Would you care to share your tree code?

    2. Re:Javascript, good for beginners and reference by CosmicDreams · · Score: 2, Informative
      Sure, here's the entire page. Note that the page consists of a menubar, checkbox, tree, and iframe. The menubar is dynamically built by XUL's use of RDF datasources. All of this was built based off what I learned from XULPlanet's tutorials and examples.

      Actual urls have been removed to protect my friends from slashdotting.

      <?xml version="1.0"?>

      <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

      <window id="child-recurse-menus"
      xmlns="http://www.mozilla.org/keymaster/gatekeeper /there.is.only.xul">

      <script type="application/x-javascript">
      <!-- /*
      loadURL takes an event and pulls a new url from it. Then it loads that new url into the mainpage iFrame.

      loadURL2 takes a tree object then walks through it to find the treeitem that caused the event. Then it pulls the new url from the treeitem and loads that url into the mainpage iFrame.
      */
      function loadURL(event) {
      var contentFrame = document.getElementById('contentFrame');
      var url = event.target.getAttribute('value');

      if (url) contentFrame.setAttribute('src', url);
      }
      function loadURL2(tree) {
      var contentFrame = document.getElementById('contentFrame');
      var index = tree.currentIndex - 1;
      var treeitem = tree.lastChild.firstChild.firstChild.childNodes.it em(index);
      var url = treeitem.id;

      if (url) contentFrame.setAttribute('src', url);
      }
      -->
      </script>

      <toolbox>

      <menubar id="menubar" datasources="mozmain.rdf" ref="RDFref" oncommand="loadURL(event);">
      <template>
      <rule parent="menubar">

      <menu uri="rdf:*" label="rdf:rdfURLandREFgoeshere" id="topmenu"/>
      </rule>
      <rule iscontainer="true">
      <menupopup>
      <menu uri="rdf:*" label="sameRDFandREF" id="submenu"/>
      </menupopup>
      </rule>
      <rule>
      <menupopup>

      <menuitem uri="rdf:*" label="nameFromRDF" value="valueFromRDF" />
      </menupopup>
      </rule>
      </template>
      </menubar>
      <toolbar id="toolbar">
      <checkbox label="Help"/>
      </toolbar>
      </toolbox>

      <box flex="1">

      <!-- OK HERE STARTS THE TREE STUFF --->
      <box>
      <tree id="tree" flex="1" seltype="single" width="150" height="200" onselect="loadURL2(event.target);">
      <treecols>
      <treecol id="name" label="Members" primary="true" flex="1"/>
      </treecols>

      <treechildren>
      <treeitem container="true" open="true" label="Nullset" position="1">

      <treechildren>
      <treeitem id="friend1" label="bbarker"/>
      <treeitem id="friend2" label="kefka"/>
      <treeitem id="friend3" label="Kagewaiidesu"/>
      <treeitem id="friend4" label="luckyboy"/>
      <treeitem id="friend5" label="gandalf"/>
      <treeitem id="friend6" label="tangent"/>
      <treeitem id="friend7" label="katana"/>
      <treeitem id="friend8" label="acetate"/>

      <treeitem id="friend9" label="cosmicdreams"/>
      <treeitem id="friend10" label="jawz"/>
      </treechildren>
      </treeitem>
      </treechildren>
      </tree>
      </box>

      <iframe id="contentFrame" src="mainpage" flex="1" />

      </box>

      </window>

      If you have any questions please ask.

      --
      Go Gusties
    3. Re:Javascript, good for beginners and reference by CosmicDreams · · Score: 1

      Reading this later I realize I should have creditied Mozilla's Javascript debugger. Without it I would not of discovered that I was passing a tree with the event and not a treeitem.

      The Javascript Console and Javascript debugger are essential for XUL development, in my opinion. They also come in handy for general web development as well, as they can accurately reveal and test javascript issues.

      --
      Go Gusties
  13. Javascript is nice, but by Dracos · · Score: 2, Interesting

    When will we be able to write XUL apps in PHP, like can be done with Perl, Python, and Ruby?

    1. Re:Javascript is nice, but by Anonymous Coward · · Score: 0

      Uh, PHP isn't an elitist language so it isn't allowed to join the club. Anything that is perceived as "easy" or "popular" is automatically disqualified in OSS.

    2. Re:Javascript is nice, but by Anonymous Coward · · Score: 0

      umm.. the Javascript thing is because its client-side. When we have client-side PHP you will be able to write XUL apps in PHP.

    3. Re:Javascript is nice, but by eurleif · · Score: 1

      PHP is commonly used on the server side, JavaScript is commonly used on the client side. But no magical force binds them to their respective sides.

    4. Re:Javascript is nice, but by eurleif · · Score: 1

      It has nothing to do with "elitist languages", it has to do with PHP being a "minute to learn, lifetime to debug" language.

    5. Re:Javascript is nice, but by rycamor · · Score: 2, Interesting

      Don't underestimate Javascript. In some ways, Javascript is actually a more elegant and well-thought-out language than PHP. See Crockford's rant.

      Many *implementations* of Javascript are lacking, but Mozilla applications turn Javascript into a full-featured scripting language, including the ability to use sockets, read/write files, run other executables, and in general do just about everything you would need to do for a XUL "front end" application. For more serious back-end integration, just use sockets to talk to other processes, which can be written in PHP, C, Python, whatever.

  14. LAME by drfrog · · Score: 1, Insightful

    propietary web browser language

    need i say more?

    --
    back in the day we didnt have no old school
    1. Re:LAME by dn15 · · Score: 1

      At risk of sounding like a hair-splitting Mozilla fanboy, I disagree.

      Mozilla offers a framework for building applications, which is why there's an entire O'Reilly book on the subject. One of the primary functions of the Mozilla application is that of a web browser, but it's not accurate to say that XUL is a proprietary web browser language. A bowser is just one of the many things you could create within that framework, as evidenced by the existence of mail and news, IRC, composer, calendar and other components as well as the standalone Firefox, Thunderbird, Sunbird and Nvu apps.

    2. Re:LAME by rycamor · · Score: 1

      XUL was not intended to be a proprietary "web browser language". It was intended as a completely open-source, and open-standard way to create GUI components (mostly it was aimed at creating client-side applications, such as the browser itself). In that sense it is not, nor was ever intended to be a proprietary replacement for DOM/HTML. In fact, Mozilla/Firefox is more DOM/HTML compliant than any other browser available.

      I use XUL all the time in my work creating client-side touchscreen applications. I would never use XUL for a web application open for the general public, although I might be tempted to use it for an internal company web app (if I have control over the browsers being used).

    3. Re:LAME by drfrog · · Score: 1

      so if its not proprietary how does one using IE or opera or whatever view these web based apps?

      they can't!

      ANY browser technology that segregates netizens based on applications for a piece of market share really removes themselves from what the net and 'cyberspace' mean, at least to me.

      Cyberspace being a form of communication that is ubiq, REGARDLESS of platform, or browser of choice

      --
      back in the day we didnt have no old school
    4. Re:LAME by Jussi+K.+Kojootti · · Score: 1
      Parent is currently modded Insightful, and I just can't see why.

      1. proprietary? It's freely available. Maybe you meant it's not standardized?
      2. web browser? It's a UI definition language for the mozilla platform, nothing to do with browsers per se.

    5. Re:LAME by drfrog · · Score: 1

      proprietary:

      just because its freely available doesnt mean its not proprietary.
      if third party developers use the same code base to build other applications of off then its still proprietary

      only when someone build an new XUL engine from the ground up will it start out on the road to being anything close to a standard

      I do concede though, that is the vision of XUL

      web browser:
      what is the mozilla platform?
      first and formost it is a suite of open source internet applications

      ok design your desktop in xul, i guess its possible, but then what will it do?

      handle mostly internet comminications, correct?

      fine i conceed it could be used to do neet gui's, thats not what i was debating at all, the best would be for intranet based applications and kiosks, such as where the browser is locked down as part of the spec as someone previously stated

      --
      back in the day we didnt have no old school
    6. Re:LAME by dn15 · · Score: 3, Insightful
      so if its not proprietary how does one using IE or opera or whatever view these web based apps?
      That's the thing, they're not supposed to because we're not talking about making web-based apps at all. We're talking about creating software within a framework that also happens to be host to a web browser. You could write something that extends the browser's functionality but you could also write something that has nothing to do with browsing at all and doesn't even need to access the Internet. If appropriate you could spin it off as a separate app that does not integrate browsing functionality, like the Sunbird project.
    7. Re:LAME by Donoho · · Score: 1

      Don't blame the browser, blame the coder.

      I started off building internal apps with full knowledge that I had some control over what browser they were going to be used with, but over time sibling aplications extended to the outside world and I didn't code down to standards. That was my mistake. I don't think any browser should be criticized for it's extra features (which is different from deviating from standards *cough* IE *cough*)

      The responsibility of universally accessible web based applications lies with the developer, not the tools (s)he uses.

    8. Re:LAME by Ambush_Bug · · Score: 1

      eh... this may be splitting hairs again here, but
      isn't it possible to build a XUL engine from the ground up if you wanted to? I think that makes it distinctly *not* proprietary.... I mean,the w3c has all sorts of standards, some of which haven't even been implemented at all -- are they proprietary until at least two engines are built to handle them?

    9. Re:LAME by glazou · · Score: 1
      " propietary web browser language "

      Nice troll, indeed :-)

    10. Re:LAME by Vo0k · · Score: 1

      Moderator is currently metamoderated unfair.
      Satisfied? :)

      --
      Anagram("United States of America") == "Dine out, taste a Mac, fries"
    11. Re:LAME by Anonymous Coward · · Score: 0
      Well take RTF for example. Microsoft document it and anyone can download the spec and implement it. But they control it and The Community[tm] can't move it along with subsequent versions, and they can't openly debate features and get them implemented. RTF is open and proprietary, because proprietary means sole ownership.

      You need more abstraction between the designer of the spec and the implementations to be non-proprietary. Right now XUL is whatever's implemented in Mozilla, not against the XUL spec (the XUL spec is more documentation of what's been done, but the leadership comes from Mozilla, not from the XUL specs).

      Now there are some bits of the XUL model (it was it just the XUL box model?) in Safari but I don't think anything will come of it.

      I'm not saying that it's a good or a bad thing - that XUL is open and proprietary, but that's what I think it is.

  15. Ted's Extension Developer extension by Earlybird · · Score: 1

    You will want Ted's Extension Developer extension if you're going to develop Mozilla (including Firefox/Thunderbird) extensions. Incredibly useful.

    1. Re:Ted's Extension Developer extension by luserSPAZ · · Score: 1

      Yeah, it'll be great once it's done. :)

    2. Re:Ted's Extension Developer extension by Kristoffer+Lunden · · Score: 1

      So join and help get it done then. ;-)

      Actually, I'm actively using it as it is, mainly to build/install extensions during development, but also for some of the other features. It has ways to go, yes, but it is already very useful. And I try to not only report bugs but provide fixes too, hoping that what little I do helps getting it from useful to really useful as soon as possible. :)

  16. Bruce Perens Open Source book by Anonymous Coward · · Score: 0

    Best source on mozilla development:

    http://www.informit.com/content/downloads/perens /0 131423436_pdf.zip

  17. Go for... by sabit666 · · Score: 2, Interesting

    Laszlo
    http://www.openlaszlo.org/

  18. Go for...Laszlo Solutions. by Anonymous Coward · · Score: 0

    I was wondering when someone was going to mention this. Two things. One XUL and SWF could be combined for a richer experience. Two there's nothing to the possability to modifying the server so that it presents a higher-level model to javascript, and XUL, spitting out XUL, Javascript, and anything else plugins allow. e.g PDFs.

    Don't forget there's ...Curl as well.

  19. LAME-XAML. by Anonymous Coward · · Score: 0

    "ANY browser technology that segregates netizens based on applications for a piece of market share really removes themselves from what the net and 'cyberspace' mean, at least to me."

    Then you're going to hate XAML then.

  20. Learn from code by Anonymous Coward · · Score: 2, Informative

    I can't believe noone has said this:

    use the source, luke!

    (links blatantly stolen from the mozilla amazon link page)

    But seriously, disassemble other peoples code is the best way to learn. See how they do thing. Javascript is easy enough to understand and there are millions of tutorials on the subject alone, but if you want to see how it interacts with XUL applications this is your best bet. And hey, all those applications are zero install and can run in the browser, how cool isn't that!? =P

    1. Re:Learn from code by Anonymous Coward · · Score: 0

      Oh my god I hate you.

      Seriously. You are what's wrong with Open Source today.

      Ever program in Java? Ever use the references at Sun's web site? Ever program in QT? Use the references at Trolltech's site?

      There's no comparison. Mozilla's docs are terribly lacking! If this is going to be a development platform, it needs to catch up big time.

  21. documentation sucks by the+quick+brown+fox · · Score: 4, Informative
    I spent a few months this year writing probably one of the most complicated and hairy Firefox extensions out there. The documentation in XUL-land, including (or especially) the books, is pretty poor. There's plenty of info, but an astonishing amount of it is outdated, and there's nobody to tell you what pages are outdated and what pages are not. There are pages on mozilla.org that are years old and say "this information is subject to change, watch this space".

    For example, the most difficult thing for me was trying to figure out how to package up my XUL/JS in a form that Firefox would take it. All the tutorials talked about install.js, installed-chrome.txt, and regxpcom, all of which are outdated. (Hint: Since Firefox 0.9, install.rdf is the key to the whole thing, so any tutorial that doesn't mention it is outdated.)

    Once you've gotten the basics (probably by reading the O'Reilly book--the Nigel MacFarlane book may have a lot of useful info, but it was so poorly written I couldn't get through it), you really want to do yourself a favor and install Venkman, the Javascript debugger. The only place I've been able to find that has this little gem for Firefox is here.

    Then, as you inevitably run into walls trying to get things done in the browser, cozy up to the source. There's not much you can do with XUL/JS that hasn't already been done in the Firefox source, and the search tools available on LXR will often lead you right to them.

    And here are some source files you're definitely going to need to look at:
    browser main window
    browser menus and commands
    browser main logic

    Also, shamelessly unzip and dissect other people's XPI's; they probably won't mind anyway.

  22. Javascript reference guide by kermy · · Score: 1

    There used to be a language specification on the netscape.com site, but where is it now? You should also read some things on Javascript and prototyping.

  23. Can you read Japanese? by Anonymous Coward · · Score: 0

    http://piro.sakura.ne.jp/xul/xul.html#tips
    Please transrate from Japanese to English...

  24. First learn XPCOM by Kion · · Score: 1

    First you must understand how components work in mozilla. I read the book "Creating XPCOM Components" from the mozilla site. I found it a great resource. It explains the mozilla architecture, how to create extensions, install and deploy them, and interact with other components in mozilla. I think it is a great starting point. You must have some C++ knowledge to understand it.

  25. Don't forget the development tools Mozilla has by Anonymous Coward · · Score: 0


    Honestly, documentation is the dark horse of Mozilla development (I know, because I have on-again, off-again pushes to write docs for mozilla.org and friends).

    http://books.mozdev.org has the online version of "Creating Applications With Mozilla" from the O'Reilly crew.

    Last, but not least, if you have a really simple question that hasn't been answered by one of the above resources, consider searching Bugzilla for bugs that are unfixed and bugs which have been marked fixed or invalid. You can learn a lot that way.

    Alex Vincent
    http://weblogs.mozillazine.org/weirdal
  26. Documentation the next challenge for Mozilla by Anonymous Coward · · Score: 1, Interesting

    Right now the platform documentation hasn't been compiled into a form that's accessible for external (to the Mozilla project) developers.

    Now Firefox 1.0 is out, and the Mozilla / XUL runtime is speading, hopefully we'll see the Mozilla team setting up something approaching PHP's documentation (which is a big part of PHP's success as a technology for the masses). Part of that is having a supporting documentation team, willing to keep it complete and up-to-date. Spreadfirefox.com shows it's possible for Mozilla to develop that kind of community.

    The other challenge is making "remote XUL" (launched from a website) a reality. Right now it equates almost to a different technology to "local XUL" such as that used in a Firefox extension, thanks to a very restrictive (and poorly documented) security model. Mozilla, so far, have opted for the script-signing approach - that fact that Amazon did not sign their A9 Firefox extension says it all...

    Anyway - a good place to trawl for links is http://del.icio.us/tag/xul - otherwise it's a matter of learning XUL like you learnt HTML years ago.

  27. In spanish by Anonymous Coward · · Score: 0
  28. Update: New Sourceforge project by Jerf · · Score: 1

    If anyone happens to read this and is interested, I've created a sourceforge project for it.