Archive for June, 2011

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.


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.


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.

What If #1: No Money

16 June 2011

What if nothing cost anything?

We take money for granted. But what purpose does it really serve?
1) It helps us keep accounts.
2) It is used to exclude people from society.

Purpose 1 is useful; possibly essential. Purpose 2 is a major 3rd dynamic aberration.

Could a society “work” without using money?

Animal societies have been getting along without money for aeons. But we aren’t “mere animals’ are we?

Well, what about the distant planet of Iarga? Dutch businessman, “Stefan Denaerde” (a pseudonym) relates in his book Contact from Planet Iarga that the civilization there runs without money. But with a social accounting system. Other contactees have reported similar social setups in other realms.

Here on earth, we only see such practices among those labelled “primitive.” In the West, it is only a dream dreamt by lonely idealists like Edward Bellamy in Looking Backward (1888) or Michael Tellinger in his interviews on “Contributionism.”

But what if you could implement the “rational” purpose for money while eliminating its irrational purpose? Big Brother would have to step forward out of the shadows and make his presence known. And his new job would be to keep the accounts. A system of ethics would have to be put in place to deal with persons who chronically fell into the minus.

— The discussion beyond this point in the original post is not considered important enough to retain —
— Larry 27 June 2018 —

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.


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.


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.


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 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.


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.

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!