Archive for the ‘Browse My Computer Project’ Category

Trying out Drupal

8 August 2011

I had a bunch of little notes hanging around on my desk.

I didn’t want to lose the data on them entirely, but I could think of no easy way to enter it on my computer. It took a while for me to think of using a “content management system” (CMS) for this purpose. Using a CMS gives the internet user the ability to pull up a site, log in, and enter as much data as he or she desires (within limits) by typing directly into the browser. I finally realized that this would be a good way to get the data on these slips of paper into my computer and the paper in the trash (or shred).

One of the most-used CMS packages in the word is Drupal.

The name Drupal, pronounced “droo-puhl,” derives from the English pronunciation of the Dutch word “druppel,” which means “drop.”

(It all started when the founder of Drupal typed “drop” instead of “dorp” (Dutch for “village”) when choosing a name for his first hosted site.)

So the originating concept of Drupal was to create a virtual “village” on the internet where members of the group could exchange news and information without being physically close.

This original idea has evolved into a system that uses a database to store almost all of its content. It displays and saves content based on the choices made by each user. It is extremely versatile, in the sense that it can be set up exactly the way the site designer wants. It is all based on open-source systems that are offered by developers at no charge. (Apache Web Server, PHP scripting language, and mySQL database manager.)

Does this come with instructions?

I had a bit of trouble figuring out how to use Drupal. Once it is installed, you pull it up in a browser to use it. If you do the default install, you get a very sparse screen with an administrative menu along the top (if you are logged in) and a couple of links saying “add content.” The sidebar contains a search form and an empty menu. And that’s about it. No instructions on how to proceed.

So I clicked on “add content.” It took me a while to realize that “add content” is a totally generic function in the basic version of Drupal. You can add any kind of content that your system allows. Drupal handles all content basically the same way. The content will be called to view when the link pointing to it is clicked. That link could appear on a menu, in search results, or in a specialized menu such as the one used to navigate forums. Just about any content can have tags (assigned keywords) and can have a link on a menu, and can take attached comments.

After finding no way to give the menu a branching structure, and failing to figure our the “book” content type, I settled on the “forum” module and had all my little notes added as comments to forum topics in a matter of minutes.

As good as it gets?

Drupal is used very widely.

Its PHP system files are in plain text and can be edited to suit the needs of a particular developer (though this is heavily discouraged). There is a standard way to add custom modules (which is the preferred way to add or modify functionality) and many custom modules have been developed. The look of the site can be significantly controlled using Style Sheets, which can be implemented using standard or custom modules.

But.

If you are used to developing in the usual way and decide to develop in Drupal, your world will be turned upside down. The Drupal core concentrates on functionality. I am used to developing sites where layout and functionality are intimately related. In Drupal they become two totally distinct issues. Each piece of content (called a “node” in Drupal) can be styled and placed in its own way. Normally all nodes of the same content type (that is to say, generated by the same module) are styled and placed in a consistent manner. But there is no overall integrating document (or I haven’t found it yet) where you can set up how you want that part of the site to look and work.

If a CMS exists that delivers this, I’m still looking for it.

Browse My Computer: Integration with a database.

27 July 2011

Too Serious

In this phase of the project, I have somewhat fallen prey to the purveyors of SERIOUSNESS.

I apologize.

Creating a machine system that can be used with the same sort of ease and effectiveness as a good mental system is not easy. And though many are working on it, you could almost say it’s stupid. Why try to perfect a machine system when we have a mental system that already works so much better? All the mind really needs is a few “tweaks” and it could replace all these stupid machines entirely!

These are the sort of thoughts that go through the head of a Scientologist working with MEST technologies. The sense that there are other games probably much more worth playing, if only one could gain access to them, becomes very palpable after listening to the whole PDC plus the Phoenix Lectures!

But working with computers does give one some insight into how mental systems were developed in the first place… An insight many IT professionals undoubtedly miss.

Why Use a Database?

If the ultimate goal is to really have the file system and its contents become the database, why bother to develop a separate one?

The simple answer is that I’m just not that close yet. I have too many lessons to learn about how data can be linked together before I can try applying a relational model directly to my files.

And this has a lot to do with what some people call “semantics.”

Semantics: study of the meanings of speech forms, or contextual meaning.

In semantics, the correct concept for the word “hot” depends on the context it is used in. This is particularly true of acronyms or simple symbols that have no real meaning, but could mean almost anything depending on their context.

And so it is necessary in an information system to link some data, or a name for it, to a context. And that linking is accomplished mechanically (or mathematically, you could say) using a relational database.

Database Technologies

The world has settled on a basic system for communicating with database management software called “SQL.” According to ANSI, the letters S-Q-L no longer stand for anything. They are just traditional letters used to describe the most common way for communicating to database management systems.

I actually learned about databases on a “non-relational” (or “flat file”) system called Lotus 1.0. It was a great system, and it had commands, but they weren’t SQL, even though they were similar.

Access is a commonly-used Microsoft database application that also doesn’t use SQL. Except that it really does. It just tries to hide it all from you. To do this it comes up with all sorts of clever graphical ways to help you write SQL without realizing it. I think it’s better just to learn SQL.

Unfortunately, each major database management system on the market implements SQL a little differently. So you have to learn how to use it for each different DBMS you use. Bummer.

A “real” relational database implements ways to define the relationships between its various tables. This is cool but makes system development a bit more complicated. MS SQL Server is a good example of this type of system. Oracle is another. MySQL on the other hand, started out without this capability. It is available from Oracle in an open source version and thus is the only good DBMS within my reach. It is very widely used in web-based applications.

Web-Based Database Applications

The way the web works totally enforces on the application developer the client-server model used by all modern DBMS software. So you can use your application to enforce your table relationships, rather than programming them into the tables themselves.

In order to do this, you populate a menu control in a form with data from the table that links to the field that you will use that form to fill. Follow?

So if I have a table that links a name to an occupation (I do), then I fill that table from a form that contains a list of all the possible names (from my table of names) and all the possible occupations (from my table of occupations).

In my particular case, I also have a third linking field: Context.

Context

Context is a way to simplify a relational system. This makes for some interesting possibilities. For example, people know me, if they do, by my name, Larry. But that name, even it were unique in the set of all known proper names (which of course it isn’t) is actually being used to refer to at least three separable things, or distinct contexts. It refers to my body. When my body dies, “Larry” will be “dead.” But it also refers to my mind, or to the idea of Larry. And when my body dies, that idea will continue on. On top of that, it is being used as a temporary moniker for ME. The being currently known as “Larry.” And when that body dies, that being will go on and pick up a new body and begin inventing a whole new idea of “Larry”. Except that the idea will have a new name attached to it. (See what happened to James Leininger for an example of what happens when you get a name you’ve had before.) The bodies are only related by me having occupied them. The ideas are related by their potential continuity in my own mind, and the beings are related by being the same.

So I give Larry the context of “be-human” which signifies that we are only talking about the current being-mind-body complex and what it can manage to remember about itself. If I were treating only the subject of my body, which I normally would not in my particular system – might in a medical system, then that data would be in context “be-animal.” I also have a context for beings, though I don’t use it much, as data in this area is thin and unreliable. It is called “be-free.” And so it goes.

Class versus Object

In computer programming we have the terms “class” and “object.” A class defines a framework that can be used to create a unique object. This concept is useful so I have implemented it in my system.

As it turns out, in the world of biology we almost always talk about classes and seldom about objects. Each blade of grass is an object, but who cares? They are almost impossible to tell apart and there isn’t much utility in thinking of them as separate. So from the grand scheme of biological phyla down to every distinct species and variation, it’s still all classes we are talking about; no objects involved at all. On the other hand, I consider a distinct person to be an object.

Classes are subject to great overarching theories about this that and the other thing. But it can take just one object to prove all those theories wrong. So I try to keep objects and classes separated in my system, except to link each object to the class (or classes) which supposedly define all its basic actions and characteristics.

Classes exist in a hierarchical system. Each lower class inherits the actions and characteristics (methods and attributes) of its parent classes. I wanted to store this data in just one table. That table, using words as it does (one could make a graphical database; would be an interesting exercise) also requires a context field. I decided, after studying object-oriented programming a bit, that I would only need four other fields in this table: parent (a name gotten from a table of names), aspect (just a few choices relating to graph theory), type (corresponding roughly to the parts of speech) and name (gotten from that same table of names, or words, really).

The hierarchy can only be extracted from this table by relating names and parents within the same context. In this application, “context” “language” and “thought system” are seen to almost equate, which is one of the interesting results of doing this. This rough conceptual equivalence, by the way, has been noted in psycho-linguistics. Look up the work of Lera Boroditsky.

Filling the Tables

I had two important tables to fill, and that is a work in progress.

I wanted to base their contents on the actual contents of my computer, and I remembered a great little freeware application called YourDir that can create a text listing of every single file path on your computer, or various subsets of this, so I used that to make my context list. It’s an odd list. It has about 500 entries.

In a similar manner I filled my list of proper names (objects – almost all human individuals).

I have yet to attack my list of names, which will be the longest. It could easily have 100,000 entries. But if I make it that big I will have to find ways to limit the number of choices that come up in my form for filling in the linking table.

But with a list of proper names and contexts done, I figured I was ready to start linking those names to categories, in this case, occupations (or “hats”). The first words, then, in my long table of words, describe occupations.

Writing applications (in PHP) to fill a linking table with data to be linked is not super-simple. But I did have the code I wrote for my school assignments along with what I did on my last job, so it wasn’t too bad. This is a whole subject that we just started to touch on in my programming classes. There are methods you can use to help you design a web application of this type. I have not found it written up anywhere, so I am developing it as I go along.

One thing I have noticed about programmers is their tendency to go straight from the head to the computer. It’s a very direct approach, but it can waste a lot of time. I would never think of building an electronic circuit without sketching it out first. But I have not found a programming analog to the electronic engineer’s schematic. There is the “program flow chart.” But I seldom see it used by programmers. And it is really only good for demonstrating logical algorithms. What we really need is a graphical way to show how functional blocks are attached together, just like they do in electronics schematics. I’m working on it.

Browse My Computer – File Structure

28 June 2011

The Librarian’s Dilemma

Every document is different. Every document writer has his or her own viewpoint and purpose. How do you match documents up with readers or students?

Almost all library systems are based on a combination of document type and subject matter.
Maps have to be stored differently than magazines which have to be stored differently than large reference books that don’t circulate which are handled differently than audio recordings, etc. etc. But on the computer everything is just a digital file. So the choice seems obvious: Organize by subject.

Well, that might work for non-fiction, but what about novels, poetry, artwork? These are usually organized by author/artist and genre. OK for most people. Unless you’d like to read a novel about time travel set in Boston in the late 1800’s. Unless you happen to know that Edward Bellamy wrote such a book, you’d need a good cross-reference system to find that one.

And there are similar problems with non-fiction. You will find books that cover the theory of a technology along with instructions on how to use it and sample projects. Other books may cover only theory while others may have only sample projects. Do you put them all together under the same subject?

Graph Theory

The above term is meaningless to most people, but I love its mystic ambiguity. Graph theory is a mathematics that seeks to describe the connections between the various elements of a system. Most subject systems and file systems, more or less by necessity, use a tree structure to relate their elements. In a tree structure, there is only one unique path to each element from the root. This works for trees, but in a real tree the end node of every single path is a leaf. In a system of data, you don’t have that kind of uniformity between nodes.

I know of no basic computational system that has overcome this. The closest I know about are computer networks. And the logic involved to make these things work is quite intricate. Yet it is intuitively obvious that in the real world there are an endless number of possible paths between point A and point B. The choice of which path to take is a very human activity. It involves intuition, guessing, luck, hard choices, possibly even physical violence.

A system of data may not be that dramatic, but the point is that without human choice, it’s just a big pile of undifferentiated data.

Importances

LRH says in Logic 10 “The value of a datum is established by the amount of alignment (relationship) it imparts to other data.”

So I looked at various LRH basics to see which ones might be useful in helping me align the kinds of data I was working with.

I knew I wanted to use the Dynamics. These can be used to assign scope to a document. They also provide an outline for a list of subjects. I would try to use both characteristics of this scale in my scheme.

The cycle of action in its many forms also seemed like a useful concept. This gives a general context to a document. Is it about beingness, or doingness, or havingness? But I also had to factor in the concept of abstractness.

Two Dimensions

Using the analogy of a map, it is difficult for us to locate something in more than 2 dimensions at a time. And while there are ways to communicate a third dimension, they don’t work will if the upper layers mask the lower ones. Therefore, it is relatively easy to show mountains on maps, but relatively difficult to show caverns.

On top of this, the human-computer interface remains two dimensional. And while you can simulate the exploration of a 3d space on a computer, the software is complex and it is difficult to indicate how exactly to get to the desired destination.

Thus, 2 dimensions, with only an indication of a third, was as complex as my basic navigation system could be.

Mapping

If you use certain kinds of software very much, you will run into the concept of mapping. In abstract terms, this involves taking one structure, such as a table, and creating a correspondence between every point (or node) in it to a point on a different structure, say a tree. The term, I suppose, comes from map making. The problem there is usually to represent a curved surface (the earth) on a flat sheet of paper. In this case, the mapping can be accomplished through a rather straightforward deformation function. This is topology. I haven’t studied it.

But what I needed to do was map a table, or grid, to folders in a file structure. If your grid is 5 by 9 (as mine currently is) this means you have 45 nodes in a lattice configuration to 45 nodes in a tree configuration. These are the 45 top-level nodes in my data structure, so I wanted them all to be top-level branches in my tree. Since I needed both structures to be human-friendly as much as possible, I wanted folder names that would preserve the basic order of the system when they were arranged alphabetically.

180 degrees

LRH has a saying that the physical universe always works 180 degrees different from your own universe. In your own universe, if you want something you get it and if you create something it’s yours. In the physical universe if you want something you can’t have it and if you create something you have to sell it in order to survive.

And so it is with human subjects. Theoretical physics would seem to be a specialized subject buried deep below many layers of “easier” subjects, yet it is the subject that comes closest to describing the most basic characteristics of all reality. In general, subjects are studied backwards, starting with the effects that are most easily noticeable and working back towards suspected causes. This is 180 degrees from how things are created, and I wanted to follow a creation-based paradigm for all my data. That’s what I am used to in engineering, and I didn’t want to change the paradigm in other fields just because they are not yet as easy to apply or understand as engineering is.

My first shot at a system

The dynamics start with 1, self, the effect, and go up to 8, god, the cause. I wanted to reflect this in my system, but also retain a distinction between the “old” gods and the “new” ones. So I modified the dynamics into a list of effects: universes, stars, planets, mockups or societies, machines, life forms, humans. Then added to these freedom and a new civilization.

Then I came up with five aspects for these effects (I could have had more): beingness, theory, mathematics, parts and systems.

I based this on what I experience as the sequence of making something. One starts by deciding to be the maker, one then gets an idea of what one wishes to make, predicts its operation (by mathematical simulation), fabricates its parts and then assembles them into a working system.

Mapping these to a set of alphabetical words expressing similar concepts I came up with:
be, idea, math, part, system for my set of first key words, and
anew, freedom, human, lifeform, machine, mockup/society, planet, star, universe for my set of second key words.

Deciding what subjects or items should fit into each of these 45 top-level combinations has been a real challenge. And it is actually a kind of philosophical exercise. Was psychology used before humans ever existed? I say “yes.” So that puts it under ideas-social, not ideas-human. Interestingly, art (taking my cue from The Factors) begins as a subject up at the universe creator level. That doesn’t mean that I will put all examples of human art in that category, though! It is assumed that concepts that show up “high” in the data structure will apply to all levels beneath them. Thus there is art in stars, planets, societies, machines, life forms, and even humans. I consider that the fact that this is recognized is more important than the confusion caused by having to decide where to put a particular file that has to do with art.

After working with this system for a few days, and making a printed table to help me keep track while I move my files from a more traditional structure to this new one, I am getting more comfortable with it. And initial experience indicates it will result in a more balanced distribution of files among the categories with better integration of subject matter. These are important considerations to making the whole system workable.

Browse My Computer – Media Players

8 June 2011

Media players work together with browsers to play audio and video files.

Most of the major media players offer “plugins” for Firefox and other browsers to allow the browser to play media files in a window or by popping up the application.

I tried Media Player (Microsoft), Real Player and Quick Time (Apple). I have also used VLC in this way.

Formats

The major formats I was interested in were MP3 audio and MP4 video. I also have a lot of FLV video files, which I pull down a lot with the help of a freeware application called Download Helper. But I know those are a little problematic.

Many many videos are available from You Tube in MP4 format, so this is a crucial format to get working. And of course MP3 is totally ubiquitous.

Tags

My automated pages create “a” tags for all files, targeted into an inline frame. The browser automatically renders txt, html, gif, png, jpg, etc. without any help. In my original setup, I had a VLC plugin in Firefox which played flv files in a new window (or frame) but with no playback controls. I also had the Quick Time plugin installed, which did the same thing with MPx files WITH playback controls displayed. I also had some Real Player plugins which seemed to work similar to Quick Time. I was confused about which plugin was doing what, so disabled all of them and started over.

I decided to make a test page and thought I’d try the HTML”5″ tags that are already getting support in most browsers.

HTML5

Firefox supports these new tags, but only with media that have open-source codecs. That’s almost all OGG format. MPx files aren’t supported. Opera was supposed to be better, so I downloaded it and tried it. I did not find it any better. So next I downloaded Safari with Quick Time.

Safari

Safari is in a class by itself. Apple has been working on their design values more than any other major supplier of hardware and software. Safari defaults to a “3D” home page displaying 9 of your favorite pages (it can be reduced to 6) in an interesting concave shape with a cute reflection at the bottom.

I loaded the test page into Safari, and the MP4 and MP3 HTML5 tags worked great. MP3 in an “a” tag also worked.

Back to Firefox

With Quick Time back on my computer, I had that plugin back in Firefox. Now Firefox worked very similar to Safari. Except that I could put both MP3 and MP4 files in “a” tags and they would open in an embedded Quick Time player with controls. So it looks like this was as good as I was going to get.

OGG

This open source streaming media format (or “container”) is not well-used on the internet, but works quite well. I wanted to convert a small MP4 file I had to OGG to see how it would work. Well, that was a rough one. I discovered that the only freeware player that could do this was good old VLC. I installed VLC in the ZIP way (no installer script – no updating of file associations) and then used it to do the conversion. The OGG file worked fine in Firefox. Not in Safari, though!

So I think Firefox with Quick Time does the best job at this point. But I like that Safari look!

Browse My Computer – First System

7 June 2011

Design Challenges
Contents of the site can change, so the site pages need to be created dynamically.
But diverse content can be related. How do you show that?
And the site already has a structure that I don’t want to change.
Also, amount of content is huge, so there is no way to display it all on just a few pages.

Technology for creating pages dynamically
A technology that is accessible and easy to implement is PHP. It’s open source and well-supported in the web world.
And I found a great little PHP program that creates a list of links for the contents of any directory. It is recursive, so picks up contents of all sub-directories, too. A short piece of Java Script can be added to make the list automatically collapse, then expand at each node when it is clicked.

PHP works similar to other server-side scripting languages, but is easy to add to pages and systems without special development environments. A special code tag for PHP can be added anywhere on an HTML page where you want to add code. Then when the server gets to that code, it will execute the code and if it produces output, will put that output on the page in place of the code. External PHP files containing commonly-used functions (or classes) can be placed anywhere in the file system and pointed at with a PHP INCLUDE statement. Just put in the “include” before you run the function that it covers.

My First Attempt

Index.php: I list out the roughly 20 major folders in my “site.”
The links use the query string (href=”pagename.php ?variablename=variablevalue) to send the name of the directory to by scanned to the next page. This page also has “More detail” buttons. The directory links point to a file viewing page named tree-any-classic.php. The “classic” part means it uses plain Java Script, not a JQuery script.
The More Detail button links point to special folder view pages.
Detail pages: There are about a half dozen detail pages. They run a modified version of the file tree program that only lists directories. All the directories on this page point to a different file viewing PHP page.
File viewers: One viewing page lists full trees and populates the list with links that point the document to an on-page inline frame (iframe) which is used to view the documents. The iframe is fixed to the browser so it is always available while the listing can be scrolled through. The other viewing page lists only the files from one directory at a time. Otherwise, it works the same as the more versatile page.

Limitations
Website files need to have names without spaces. Fortunately I had a habit of naming files without using spaces, but I have many files that don’t comply with this requirement. If I don’t find a workaround, I will have to rename all such files. Fortunately, my Free Commander file manager has a bulk rename feature that comes in handy for this.

You can’t click on a regular link and open any type of file in a browser. This only works with HTML and some image files. Adobe provides a plugin for PDF files. And Microsoft provides a plugin for WMV and a few other Windows Media file types. Real Player has plugins that will automatically download many media files and open them in Real Player on your computer. Apple Quick Time also has such a plugin. I haven’t explored all my options for implementing this functionality yet.

Browse My Computer Project – 1st post

6 June 2011

Project Overview

I have a lot of information on my computer. This is intentional. I wanted to have an electronic library and file system so that I wouldn’t have to carry a lot of paper around with me. But how to make it usable?

On Windows, a desktop (graphical) app named “Explorer” is the tool provided to navigate the file system. It basically just shows you the file tree and gives you ways to move around on it. You can even make it show you little previews of files when you select them, if you know how to set that up.

But I was not happy with this. I have been learning how to combine related files from several different locations into a single document that covers a particular subject. I wanted those files to be an active part of my file system, and Explorer didn’t seem to have the browser functionality to pull this off.

Initial Discoveries

Personal Web Server
I knew from my school projects that I could have a web server on my own computer. It couldn’t serve pages to the internet, but it could serve them to my own browser, and to an intranet (local network) if I had one. I also knew that the browser could view web-compatible files locally without a server.

Index Page Strategies
I thought I would need to build HTML index pages just to view lists of all the different files on my machine. This would have to be a dynamic page. I thought it would have to exist outside of the document root, so couldn’t use PHP. But Java Script does not support interrogation of the local file system from the browser (for good reason) though there are ways to build upload forms that do this. So it had to be a server-side (PHP for me) solution. I found that you can use PHP to scan directories that are outside of the document root. But anchor tags made in this way don’t work right. You can’t do hypertext jumps outside of the Document Root when your browser is talking to a web server.

Where to put document root?
At school we uploaded our files to a Linux server that contained an active user directory for every IT student that needed one. This setup took advantage of an Apache Web Server feature known as “userdir.” However, this feature was not explained to us. It was just noted that if we wanted a file to be “public” (And they WERE public! Anyone on the internet could access those school sites.) then the files had to go in a folder named “public_html.” Non-public files should go in other directories. I mimicked these folder names on my own computer so that adjusting path names would not be too difficult.

But at that time I didn’t understand what the documentroot setting in Apache Web Server was all about.

Most Common Pattern
After some reading I began to see that we were not using a “normal” setup at school. It’s a little hard to find this info on the web, because most sites either assume you don’t know much and really don’t want to or assume you know it all. But I found an Australian site devoted to web site administrators that discussed this more thoroughly. Most commonly, the server is set up to serve just one site. On a public site, the server name is usually some version of the web site’s domain name. You set aside one directory on that machine for your public files (html) and that’s your document root. Program files, etc, usually reside on the same machine, often on the same drive (and in Linux it’s all one big file system anyway), and the server will not allow any public access to those files if they are not in its document root folder.

Developer Environment
So what does the developer do? He or she can set up a “development” server that has the exact same file structure as the “production” server. The site can be developed either locally, then uploaded, or directly on the “dev” server, then moved over to the “prod” server when the time comes to do that.

What if the developer wants to work on several sites on the dev machine that will each be deployed to a single-site server later? One answer is to employ virtual servers. Most modern web servers can actually serve several different web sites on the same physical computer. This is dome by setting up virtual servers on the web server. Each server gets its own name, which would be the name that the browser would use to access it. This is similar to how “userdir” works on Linux machines, but takes a little more setup.

But if the developer’s machine is not on a public network, or at least behind a firewall, then the security issues that exist with a real public server are not that important. So you have the option in this case to push back the document root deeper into the file system.

Being inside Document Root
Expanding the number of files in the document root has some interesting advantages:
1) Any directory without in INDEX.HTML (or INDEX.PHP) file in it will have a temporary index made for it by the browser. This gives you basic navigation functionality similar to Windows Explorer.
2) Any HTML found will be served as a web page.
3) Any PHP scripts will also work, if you have PHP (etc.) on that web server.
4) Everything in Document Root can be part of any page. It’s like a mini WWW on your own computer. You can also call any WWW resource, if your have a good internet connection.

My Set-up

I have all my data on a separate drive on my computer. So right now, that’s my document root. I can navigate the drive via my browser by going to http://localhost. Any html and most image files and media files will render and play right in the browser. I’m looking into the best ways to view Word docs and spreadsheets. For now I am using Universal Viewer as one way to have a viewing app that is a little lighter than a full file editing app. I think browsers should be able to handle any XML-type file without adding anything, but currently it doesn’t work that way.

SO that’s where things stand right now. More news later!