Brett's Blog
Edit     New

Wednesday, November 23, 2005

Success - Addendum and Misc. other ideas

Although this does not really relate to user-generated comments fields (at least non-public-wiki ones, the concept of adding a user-editable field would be very useful for book authors, I think. They could have an online version (perhaps supported by ads, or much less desirably, with fees) and then allow, in a wiki corresponding to the page in question (which they could view alongside it), notes to further references, suggested corrections, etc. (or a separate wiki for each type of comments which could then be viewable in an additional column or columns). This would be useful especially for time-dependent books such as programming books, in that the person reading the print book could be referred to the website to see updated information, further resources, etc. (optionally viewing only those pages which had wiki information added already) corresponding to the whole book or to a particular passage which seemed incomplete or incorrect. There could even be a discussion forum (or wiki) which allowed the posting of questions to the author pertaining to the section at hand (which would also be viewable, if desired, as an extra column alongside the book, and in addition, separately as an organized discussion forum without the book data). This would really allow (especially those authors who were concerned about giving a good value to their customers and didn't mind responding in a timely fashion) (maybe the questions wiki/discussion forum could be only for those who purchased the book--that would be fair enough)...(The discussion forum could automatically be set to generate pages or subforums according to each book or discussion of a particular paragraph, page, section, and/or chapter/unit.) The license at the wiki/discussion forum could allow the author to use the user-contributed contents in future editions of the print work under particular conditions (e.g., GNU, with pre-definable and/or negotiable compensation to the author, etc.) and allow donations to be made directly to the other contributors by anyone as well, such as if they were helpful in answering the user's questions.

As an aside, having a link to "donate" to this person's Paypal, etc. account (in any discussion forum--phpBB, for example, as well as in Mediawiki software alongside author's names) would be an ideal option to allow potentially some compensation--without over-monitizing by making it too prominent or required to make everyone guilty if they don't contribute but still allowing for these people who give their effort in such forums to find some compensation if their services are deemed worthwhile--even a defaultable $1.00 or $.50 or whatever might encourage piecemeal donations which could add up).

On another aside, if allows compensation for videos, why not or the equivalent sharing profits with the administrator (and, as mentioned above, with contributors--some of whom could be ideally employable through the wiki software) for wikis, an equivalent discussion forum hoster for discussions (discussion forums should allow user-definable infinite subforums to give forums the power of collaboration that wiki has such as having perpetual forums on well-organized topics and subtopics (e.g., for specific paragraphs of a specific book)--but, unlike wiki, without ever letting users destroy posts others have made (or destroy them in the order posted)), or a compensation system for music/audio (probably already is one for the latter--anybody know?)?

And, with Google ads searching content to determine ads, what about the idea of sophisticated pattern recognition software searching music, voice, or even video for patterns to determine relevant ads (even relevant ads for other music based on the same sound themes!)?

And while on the topic of pattern recognition, one of the coolest educational inventions of the future I believe will be pattern-recognition goggles (or implants) which will allow one to interact with one's environment--e.g., you are standing in front of a tree, and your goggles identify the type of tree, search Wikipedia (or the web--or a wiki from a particular angle such as one's religion) and give you information to learn more about it!

Success - Part III

The following is an implementation of the previous post (please read it for details). You must have followed the directions there in order for the following to work:

First, choose the website which has (simple) tabular data (in this case, here). (Note: these files have since moved to )

Second, choose a book (in this case, the Kitab-i-Aqdas, or "Most Holy Book" of the Baha'i Faith, here).

Third, add a range of verses (in this case, I have chosen verses 5 to 10).

Fourth, hit enter and then view the results once they load.

Fifth, choose the Javascript you have saved from the bookmarks menu.

Sixth, notice the extra column and cells in this column.

Seventh, edit the notes corresponding to each row of the table, being sure to save in each cell one has edited (the corresponding save button too).

Finally, if you repeat these steps exactly next time, you will see that your notes you have added are still waiting for you.

Addendum to last blog entry: One may notice that the script does not (cannot?) write out a longer URL than the length showing up...I may need to alter the script to fix this, but in the meantime, one might overwrite one's notes if the beginning of the URL (a lot of it) is the same as another set of notes one tries to set up.

Success - Part 2

A big disclaimer: What I am about to describe, you have to use this at your own risk. This could compromise the security of your system, so only try this if you are the risky type or know what you're doing. I am also a big novice at all this, so I may also be using very round-a-bout, inefficient, insecure, etc. means to achieve this. I hope others may either direct me to better solutions if there are any (as long as they are sufficiently powerful and sufficiently simple) as well as expand the ideas and implementations. This is mostly a proof-of-concept experiment (with hopefully some interim utility), though I do hope I can gradually make more secure and powerful versions.

So, continuing from my last post, in order to allow the user the freedom to choose to add notation alongside even specific columns of tabular data (I'm still working on the for-some-reason more difficult task of getting frames to work with having just one column successfully added alongside ANY webpage, with or without tabular data--the files I have been working on are here (the Javascript), here (the main PHP processing file) and here (an additional file I was not sure was necessary or not to facilitate loading of the data into the new frame/iframe), I developed this Javascript (visit the page then select all to copy the code). This code will not do anything successfully at this point. In this code, you will need to edit it to be able to work on your computer. Find the line "/Users/Brett/Sites/textarea/" in the Javascript above (you can copy the link then edit it in a text editor before pasting it into your bookmarks--it's handy to have on your bookmarks toolbar, if nothin else in a drop-down menu--I use one for all my Javascript bookmarklets) and then replace it with the base folder where you wish your notes to be saved (actually where the folders will be saved where your notes will be stored). You could just replace "Brett" with your user folder's name.

You will also need to have a number of items installed first for this to work (I have only implemented it on a Mactinosh OS 10.4, using the Firefox browser (see my sidebar to get it)). You will need to have PHP installed (the shareware "PageSpinner" has good instructions on how to do this) and Personal Web Sharing enabled on your computer (in Mac System Preferences under "Sharing"). You will also need to load this PHP file into the directory described above (For testing, you could also try this file as it is an HTML file with the Javascript already built in, and has a few more comments about my design of the script).

Once you have these items in place, you should be able to visit a website with tables (it seems to only work with simple tables... try and choose a small range of paragraphs from one of the books in the list (e.g., paragraphs 5 to 10 of the Kitab-i-Aqdas) and then run the javascript (called a bookmarklet) you copied and edited by placing it, after you have loaded the page with tabular data, in the URL window and hitting return. This will run the script against the current webpage. It should then add a column to the table with cells at the right-most end of each row which will allow you to store and save notes corresponding to that paragraph. Just type some notes and save them (for each cell you add data, click the "save" button in its window). They will persist there the next time you run the script on the same URL

One big disadvantage at this time is that the script only stores a folder for the exact URL (converting slashes into + signs since slashes are not allowed in Mac folder names) and doesn't intelligently sense out the data you are using. For example, if you do another search (let's say paragraphs 3-8 of the same book), it will start a new folder for these notes (since the URL is different for such a browse request), even though you are referring to some of the same contents. So, if you want to see these notes again, you will need to come back to the exact URL. At least this will in fact keep your notes there.

I do hope to add intelligent storage (e.g., using Javascript with specified wildcards to realize that a slightly different URL will still apply to the same book and then perhaps detect whether the number in the paragraph cell is the same as one already in storage). And as mentioned before, I also hope to create a script to just add one simple large textbox which could appear alongside any webpage. Ideally, I could also develop a Greasemonkey script which would determine whether this bookmarklet should be automatically run on websites that one wishes to use them for.

Although it is presently a little complicated, I think that this approach has a number of advantages (though I admit I am not familiar enough with dealing with its potential security risks--i.e., in mixing local content with web content--but I'm sure this can be surmounted in some way, since it is too powerful an opportunity to avoid by simply accepting this division as a unsacrificeable sacred cow). I also know that there are some Javasript tools to directly manipulate the file structure, but it is complicated for me (I just discovered this which apparently makes it easier for PHP users, but still).

The advantages of this overall approach of saving personal notes as individual files and folers into the file hiearchy include:

1) Allowing the user the ability to add notation even when the site's developer did not allow for this (and the notes can be stored locally rather than publicly if one is concerned about privacy, even for password-protected sites)

2) One could conceivably expand the features of this script to not only be able to save the notes, but actualy email them from the same interface, save the notes as a webpage, add categories (such as through a pop-up menu), add tasks (such as through a WYSIWYG Javascript expandable add an infinite number of tasks/calendar events pertaining to the textbox in question--this would be useful to store one's goals pertaining to a particular sacred verse, but also view it in one's task manager/calendar--ideally also a Mozilla product integrated into Firefox, as such a calendar-integrated-into-the-browser product is intended to be released in a future Firefox edition as I recall reading), etc. I desperately hope someone will answer my question here to allow us to transclude wiki pages here without all the extra sidebar junk (just converting the wiki code into formatted content (or getting a WYSIWYG one to work in these windows instead) and only adding back a few important links like "edit"/"save" and forward and backward links for the individual iframe (the main back/forward buttons on the browser will trace the exact sequence, and not allow tracing the sequence for an individual window--it may also bump one out of the framed setting entirely--note: Mediawiki servers must be manualy configured to allow frames--I have the webpage stored somewhere if anyone needs it). One could even have the PHP script write and open an Applescript to interface this data to send it to other scriptable programs such as an Instant Messaging program (though I hope fully open source programs can be made to work with it, especially within Firefox itself without needing the proprietary, albeit system-included Applescript).

3) One of the coolest advantages of this approach is that, especially using some of the extensions I mentioned in an earlier blog posting (which allow viewing the folder contents while also viewing the files themeslves--if HTML, images, text, PDF, etc.), one can use Firefox as a file browser. Thus, these notes that one is storing will also be accessible as individual files (as well as corresponding to individual files--you could even take notes about your notes!). In the future, I hope even better extensions may be developed for Firefox which allow convenient file browsing and previewing/editing (e.g., column/list-tree/icon views for websites and local files through Firefox itself--i.e., everything that Mac OSX can do and more!). Thus, if one saves other files in these URL-specific directories, one can choose to view all of one's files together. No more developing a category hierarchy separately for one's emails, for one's webpages, and for one's notes, etc. One can simply opt to view all of them together (and if good sorting options become available--some Javascript bookmarklets actually works when one browses the local file structure in Firefox--one of the most useful is to Sort tables--perhaps one could be developed to detect what type of data was being stored, and even add columns to indicate what type of file it is intended to be--e.g., an email, note, etc.--as it is now, you will notice that these comment fields can even be added to files--thus, one could take notes alongside one's specific files and view them later). Thus, one should be able to selectively view the fields (automatically (through Greasemonkey?) if, for example, one is choosing to only browse emails at the time) though one could also view all the data types together (if Greasemonkey's built-in wildcard search patterns are too simplistic, one could perhaps design a Javascript to run against all websites to make the determination itself as to whether the add-notes bookmarklet should be run against it).

4) If MySQL could be made to automatically store all files stored to this program-set's directory and subdirectories whenever a change was made (is this the support for "events" that I remember reading newer versions of MySQL support?), one could then design a PHP front-end to allow the user to perform sophisticated searches and sorts on these notes, categories, etc. (or other files stored in this hierarchy--potentially all files on one's hard-drive, I hope?!?) one had assigned to particular websites. Ideally, one could also use this to store information not pertaining to specific websites (though one could ideally also assign data after-the-fact to be cross-listed with the URL-sorted data).

The goal of all of this is to provide a fully open source (Firefox/XUL, PHP, Javascript) means of creating not only a cross-platform expandable web browser, but also file browser--one which might even be a bridge for those wishing to support and take advantage of full open source, but not (yet) willing to switch to Linux (and unlike Linux, as I understand it, Mozilla applications have not significantly forked away into being mutually incompatible). Rather than waiting or hoping for Apple or Microsoft to add the feature to one's desktop browser, this could, I imagine, perhaps be a powerful means to do so, only limited by one's familiarity with the above, fairly easy-to-learn-at-a-basic-level technologies, and one's imagination.

Please let me have any comments, especially if you decide to try this out (or if you are a developer and can anticipate problems, etc.).

Tuesday, November 22, 2005

Success - Part 1

Today was a day I should be particularly grateful for.

I have made very tangible progress on an idea for which I have been seeking a means of implementation for quite some time.

Looking back, the idea started with a response from the Universal House of Justice--a response which has really remolded my entire life.

In response to some psychological-type questions I had asked, they responded with an set of advice, the nature of which was quite unexpected by me. Rather than address my points like a psychologists, they urged me into practical matters of planning for service. Once absorbed in these suggested pursuits, I realized I had no such time for worrying about the other matters that had preoccupied me.

When they mentioned that "One should seek to identify practical steps in each important area of one's life and then make a plan to effect these...", in order to do this effectively, my questions then became "What is "each important area of one's life?'" and "What does the infallible guidance from our Writings have to say about each of these areas of life?"

I believe I was already working on an idea from college time to create a comprehensive handbook which could be used by future Baha'i Assocations. Although this format was not adopted by our NSA, the process led me to develop one for consideration of a framework of planning for life, especially from an individual's perspective, but also accommodating for community, administrative, family, etc. and on other institutional planning.

Although I had, for the college club book, attempted to incorporate a lot of my own ideas (or those of others) into the list (e.g., possible social activities such as pizza parties, coffee houses, etc.), and although I still think such a list has its place (possibly as a wiki), I realized that what was really lacking was a comprehensive, well-organized, and most importantly, as it turns out, expandable/updatable resource which showed us what the Writings already had to say about the subject--once we had this information, we could confidently make our own plans to fulfill them. For, if we were following our duty to read the Writings, were we just turning the page on the guidance and neglecting to implement what we had read? Having an easily expandable tool (which led me to wiki technology) would allow this to be possible. But would this resource simply be developed by an individual or even an institution and go undeveloped, when there were individuals out there who had the power to make contributions to enhance the work? In order to tap this full potential, it would thus be especially important for such a resource to be potentially collaborative (except perhaps in the component of personal notes and goal-making, though even these might collaborative, at least with granting of selective access to others) and have content that was free and could be open content (as in "open source" software). Again, this was wiki.

And although institutional questions have, at least for the present, led to this project being on hold, the other component, of allowing individuals the power to make goals alongside information they have collected (or alongside the Writings themselves) but accessible in different formats (such as integrated into one's calendar, categorizable to be also viewable according, for example, as to who the protagonist of the goal is), without requiring any duplication which would unduly increase the need for extra work and increase the likelihood of incomplete storage for any particular view (i.e., a real "unity-in-diversity" as our Writings put it--one which allowed for many differences, but which harmonized and tapped them effectively and efficiently) is still on my to-do list.

As I developed to serve as a user-manipulatable tool for choosing the Baha'i Writings one desired to view (with the potential to transclude these pages into other pages, such as discussion forums--especially with user-editable infinite subforums--and wiki pages) and showing alongside them any other relevant notations (whether public wikis we could produce or private notes), I also started to think that it was silly that one should expect that the user should be restricted to add relevant columns defined by the developer.

More to come...

Brett's Blog Web