Thursday, July 30, 2009

Two kinds of people?

There are two kinds of people in the world. Those who think there are two kinds of people in the world, and those who know better.

The content of this post is Copyright © 2009 by Grant Sheridan Robertson.

Tuesday, July 28, 2009

Box? What box?

Think as if the box were never there.

The content of this post is Copyright © 2009 by Grant Sheridan Robertson.

Sunday, July 26, 2009

Every Man For Himself?

I am often amazed by the simplistic thinking that goes into what some apparently believe to be "deep thoughts." In the signature line of this reply on Slashdot I found the following:

In free countries, how did the powerful become powerful? Have they done something you couldn't do?

To which I reply: Often they have done something (or a series of things) that most people wouldn't do, and that many believe one shouldn't do. It is rarely ever a simple matter of the ones with the power having been the ones who were merely more capable. Free countries still have social norms, standard ethical codes, and even laws that a few choose to ignore. That those few who choose to ignore the norms, codes, and laws sometimes gain power is not an excuse for the rest of us to ignore them as well. An "every man for himself" culture often sounds great until that "every man" happens to be someone who is willing or able to take from you to get what they want.

Update: 7/28/09 - I had a nice exchange of messages with the user of the signature and, as it turns out, he/she was attempting to spur others to think how they could work to become more powerful. He/she had no intention of encouraging others to cheat in order to gain power. So we discussed possible alternatives and he/she settled on "In free countries, how did the powerful become powerful? Have they done something you couldn't do (honorably)?" It may not be perfect but it does prevent him/her from appearing to condone cheating to get ahead. Kudos to him/her for encouraging others to improve their lives.

The content of this post is Copyright © 2009 by Grant Sheridan Robertson.

Saturday, July 25, 2009

Intelligent Epidemic Routing, Preliminary Notes

Previous work by two Duke professors proposes to transmit data between intermittently-connected, mobile devices by transmitting said data to all devices encountered, and also passing data along from previously encountered devices, such that the data will eventually get to its desired destination. This is called an "epidemic routing protocol" in the paper. Retransmission of data is limited to a specified number of "hops" in order to avoid overloading the "system" with infinite recopying of said data.

This post is an embellishment of that idea, using a rather convoluted means of tracking when and where other known devices may likely be encountered in the future. This allows the data to only be retransmitted to devices that have a high likelihood of successfully shuttling the data to its destination … eventually. This increases the "bandwidth" of the system at the cost of additional memory and compute time used on the individual mobile devices. In this system, content is transmitted as a unit, rather than being packetized, and it is transmitted in a store-and-forward manner, similar to the old Fidonet protocol. Therefore, each device carries a cache of data for possible retransmission to other encountered devices and the data is distributed according to algorithms that determine the best selection of other devices to retransmit said data to.

The proposed system, called an "intelligent epidemic routing protocol," is in no way meant to replace the internet. Nor is it expected to be fast or efficient. But it is a possible solution for situations where the internet may be unavailable (even through mesh networks), very intermittent, filtered (as in China, North Korea, or a future Texas), or untrustworthy (as in … um … now). It is accepted that it may take quite some time for requests to make their way through the system and then for the content to make its way back to the requester (on the order of weeks). The system works best for content that is not time sensitive and may be requested by more than one device but not necessarily all devices, such as for transmitting educational content that could likely be used by more than one person in the underserved region.

Ever since I invented DEMML™, I have been stewing on how to actually transmit and/or transfer the content by means other than a direct internet connection. While it would be easy to simply copy files into a directory, I wanted a means whereby someone could simply plug a thumb-drive into a computer and the computer would transfer the appropriate information. I recently began searching for "store and forward" technologies on the internet and came across the following article:
Amin Vahdat and David Becker, Epidemic Routing for Partially-Connected Ad Hoc Networks, Duke Technical Report CS-2000-06, Jul. 2000, available from
In this article, the authors discuss a method of transferring messages across disconnected systems of devices by simply copying the messages to every device encountered until the message finally reaches its destination. Naturally, the method is a little more sophisticated than that but you get the idea. The article does also allude to some additional measures that could be taken to make the system more efficient.
For example, under certain circumstances there may be locality to the movement patterns of mobile nodes. In this case, it would be worthwhile to exchange a list of the last n nodes encountered by a host during anti-entropy. This information can be utilized to once again identify appropriate carriers under the principal that if a particular host has been seen recently, it will be seen again in the near future. (page 12 of the .PDF)
Unfortunately, (or perhaps fortunately) I was not satisfied with the level of completeness in that statement. In fact, before even reading it, several ideas had already been simmering in my mind.
Over the course of several days I have attempted to organize those ideas into an outline. I had hoped to be able to write them up into a slightly more readable form but I just don't have the time or energy right now as I have home projects to do and a GRE to study for. (A chore which I am sure I will have more to say about later.) Therefore, I have decided to simply post the raw notes up as they sit right now. The following is nothing more than an outline for an idea. However, it is a rather thorough outline. Printed, it takes up about 12 pages. For those people who are interested in such esoteric things, I hope this helps. I hope my ideas can help spur more ideas for you or help in your research.

Thursday, July 16, 2009

Prior Art Combinator: A tool to preemptively invalidate troll patents.

As I understand it, in order to invalidate a claim in a patent, all the elements of the claim must appear together in the same published article. From what I have read, blog posts count as well. I have not been able to determine if all the concepts listed together in a book would count. I imagine that the Patent and Trademark Office (PTO) would require that the book specifically mention that all the elements listed in the book actually belong to the same invention.

Also, as I understand it, a patent claim may still be considered valid if it lists a limitation that is not listed in the prior art. What I can't figure out so far is: If the prior art lists more elements than the patent claim, does that invalidate the claim or can the very act of not listing elements be considered a limitation within the claim. In effect, allowing patent trolls to simply patent anything and everything they find in prior art simply by removing one element from the prior art and calling that their claim. This does not seem reasonable but then very little in patent law these days does.

Finally, I have not seen anything that says the prior art publication had to be written by a human.

So I have an invention to prevent the patenting of inventions. While that may sound onerous, I suspect that it will actually alleviate a lot of the trouble we have been having with patent trolls and return patents to the realm of real innovation.

I propose that we create a database of all possible discrete elements and limitations that have appeared in all existing patents and any other documentation anywhere. Heck, people could even add any additional elements or limitations as they see fit. Then use a simple computer program to generate and "publish" articles with every possible combination of element and limitation. I know, we are talking about trillions and trillions of articles. The program could never finish.

Therefore, I also propose the following additional, optional features:

  • Users of the system could vote on which would be the most important elements and limitations to make sure are covered in our "articles."
  • Users could add tags to elements indicating which fields they are most likely to be used in. This would reduce the number of "articles" about "Umbrellas with USB connectors sewn into the seats of their pants for control and monitoring of garage doors."
  • Users could then also vote on which tags are the most important to focus on.

I realize that this would likely require more web document storage space than is currently indexed by Google. Therefore, I also propose the following additional options for storing and "publishing" the "articles":

  • The web pages could actually be automatically generated by PHP or JSP scripts using variables to represent and insert the particular combination of elements and limitations specified for that "article." Each element and limitation in the database would necessarily have a unique code number or index key. The body of the web page could then simply list the codes as parameters and call the function to build the page. The script would then simply insert the appropriate text from the database in the appropriate location in the web page and send it out. Presto, we have a web page listing a specific set of elements and limitations. As far as the browser is concerned, the web page is static and has been "published."
  • It would also be possible to just use HTML server side includes and generate static web pages with various combinations of elements and limitations included. Naturally, this would require that all the elements and limitations be in separate .shtml files on the web server.
  • Here is an even more efficient, if ethereal proposition: Simply create one web page with some PHP or JSP in it to generate a page based on the codes given as parameters, just as before. However, the codes for the elements and limitations would actually be part of the URL and sent to the server in an HTML GET request. The script then takes the codes specified in the URL and automatically generates whatever combination of elements and limitations are specified in the URL. We get an actual web page sent back even though one never really existed before. Simply by posting that one web page and putting the elements and limitations in the database, we have statistically published all possible combinations at once. Anyone who wants to view an article with a particular combination of elements and limitations simply constructs the proper URL and they can see that the page is "there." It's like quantum computing without all those pesky sub-atomic particles. Like Schrodinger's Cat, every combination would "exist" simultaneously but only by observing it does it then become, well, observable. For prior art dating purposes, I suppose we would also have to list when each element and limitation was added to the database. Only if all the elements predate the offending patent would the "Schrodinger's Article" in question apply. Now, I don't know if the PTO would go for this reasoning but it would be worth a try. And it would certainly be fun.

Finally, assuming that the PTO would not fall for "Schrodinger's Article" idea, and that we might not be able to store all of these different combinations of elements on one server, we could spread the love around by providing a web site where users can generate source code for "articles" using any of the dynamic or static methods described above, then allow users to copy and paste the HTML code for that particular combination onto a page on their own web site or blog. People all over the world could set aside some spare space on their web server to "publish" a bunch of these articles. The database could remain on one central server (with read-only access allowed by all) so that volunteers would only need to devote the storage space for the codes rather than the entire elements. Volunteers who cannot use PHP on their site can download a static version of the article.

Unfortunately, I do not have the web-design or coding skills necessary to create the proposed database or web site. I don't know if anyone else has thought of this before. Hopefully, it hasn't been patented. Therefore, as far as I am legally able and as long as the idea doesn't already "belong" to someone else, I am hereby authorizing anyone to use this idea to build such a site. The text of the article is released under the following Creative Commons license:
Creative Commons License
Prior Art Combinator: A tool to preemptively invalidate troll patents. by Grant Sheridan Robertson is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.
Permissions beyond the scope of this license may be available at

Wednesday, July 15, 2009

Got GOT? : Using a multi-faceted, multi-leveled, multi-graph to analyze the interconnectedness of all things in a gigantic Graph-O'-Things

In this post I propose a simple - if tedious - means of calculating the interconnectedness between any two nodes in a multi-connected, multi-leveled, multi-faceted graph. The strength of a relationship or the amount of connectedness between two nodes can be calculated based on how many other - closely related - things each of the two have that are also related to each other. The calculation method is essentially nothing more than the same method used in calculating the total resistance in a network of simple electronics resistors. However, the vast size of the graph as well as the multi-leveled, multi-faceted nature of it both increase the number of the calculations and the complexity of task. At the same time, the clustered nature of most multi-graphs which represent the real world provides a means to simplify the calculations and perhaps take a few shortcuts.

I will expound upon this idea by elucidating several possible real-world uses for this technique, starting with the purpose for which it was invented: Organizing the graph of interconnectedness between all the possible topics in in the vast tree of all educational content that will eventually make up the DEMML™ content library. Then I will explain how additional levels (or 'branes) can be added to this gigantic multi-graph to facilitate the analysis and visualization of the interconnectedness between any and all research papers ever published as well as the authors who wrote them and the institutions in which they worked at the time.

Saturday, July 4, 2009

Picture Tests 2

I am doing some tests to determine why Blogger sometimes does not show pictures. I think it has to do with both the type of link and how the URL was generated. If you don't care about such things then you can just ignore this post. In this second experiment I am making sure to use a different image file for each test. In my previous test I just used the same image file for all the different kinds of links and I couldn't get it to break. I think this is because, once the image file was downloaded once for a good link, that the browser may have just used the good image for all the other links as well. I don't know enough of the details of how browsers choose to pull files out of their cache to say for sure. So, this time, I am using separate images to avoid that possibility.

NO a tag, URL

Ebbinghaus Chart 1

YES a tag, URL

This is the standard form of link that you get when you insert a picture the normal way that Blogger expects you to: Compose tab, Insert Picture button, Upload a file from your computer. Blogger sticks that file in a special, unlisted, album in your Picassa account and then links to it there. Interestingly, if you look at the HTML of the link below, you will see that the URL of the image comes from the domain instead of picassa or even In contrast, if you copy the URL from the Picassa web site (as I did for the next two tests) you get a URL from I can only guess that this is a domain used by Google for serving up these files via some kind of server redirection or virtual server technology which I won't get into here.

Ebbinghaus Curve 1

(If you already have posts where the images sometimes disappear and those images are on Picassa, then you can use the following trick:

  1. Download those images from Picassa to your computer.
  2. Delete those images from Picassa.
  3. Make sure the files on your computer have meaningful names.
  4. Create a new, bogus, post in Blogger. (You will not be publishing this post.)
  5. Insert all the images into the bogus post by going to the Compose tab, clicking on the Add Image button, then uploading the image. (This will then stick the image back into your Picassa album reserved for this blog but Blogger will then know the special URL that goes through the domain instead of that crazy domain.)
    • Blogger creates an <a> tag with some weird code in it and buries an <img> tag within that. You will want to use this entire thing in the next step.
  6. Copy those <a> tags with the <img> tag inside them and paste them into your original post in the appropriate locations.
    • I paste them above the original <img> tag then check to make sure I have the same height and width specified before deleting the original <img> tag.

NO a tag, URL

This image link is likely to be broken intermittently. For some reason Blogger does not always like accessing images from the domain. To ensure reliability, do not use this technique.

Ebbinghaus Chart 2

YES a tag, URL

This image link is likely to be broken intermittently. For some reason Blogger does not always like accessing images from the domain. To ensure reliability, do not use this technique.

Ebbinghaus vs. Calculated

Using the Embed link provided by Picassa:

From Ideationizing

Using a simple img tag with URL:

This image is stored on Picassa but in the album called Blogger rather than the album named for my blog. This seems to make a difference.

Using a simple img tag from some other domain:

This image is from my web site about the XML standard I am working on ( I am using it because I know I have the right to link to it.

Link created by referring to web based image in Compose tab insert image window, using URL from domain:

I used the URL obtained by right-clicking on the image in Picassa. Then I pasted that URL into the field where Blogger's Compose tab ; insert image dialog lets you paste a URL. If you look at the HTML below you will see that Blogger did not modify that URL in any way. The question is whether this image will show up later.

Update: July 9, 2009: This link did eventually break. This image is stored in my album in Picassa that is named for my blog. I have found that if I right click on any images that are in this album and use the resulting URL that the link eventually breaks. However, if I use an image that is in any of my other albums then the link doesn't break.


  • It seems as if there are only two major ways to get images in a Blogger blog such that they will not eventually disappear.
    • Upload the file from your computer using the Compose tab ; Add Image button. This will put the image in your Picassa album named for your blog and will use the domain in the link.
    • Create your own <img> tag in the Blogger post-editor's Edit HTML tab. However, be sure to use an image that is on Picassa but not stored in the album named for your blog. I have found that using the Picassa album called Blogger seems to work reliably. In this case, you can simply find the image in Picassa then right-click on it to get it's URL.
  • I have found that images which are stored on other web sites do not show up when using Internet Explorer.

You are free to copy this post and use it to do experiments on your own blog. Just make sure to change the links to images you control, rather than leaving the links pointing to my images. Please also give full attribution and link back to my original page.
Thank you.

Friday, July 3, 2009

A Word About Copyright and Plagarism

Unless otherwise specified in an individual post, I, Grant Sheridan Robertson retain the copyright for all of my posts. As many of these posts are papers I have written in college, some may be tempted to take these posts and turn them in as their own work. I warn you not to do it. If you can find this web-site then so can your teacher. In addition, I have a rather unique writing style and your teacher will probably recognize that my style does not match your own personal style. You are welcome to quote these papers, although none of them should be considered "academic" or "peer reviewed" because they have not been published in any official academic journals. However, you should feel free to use my list of references to add to your own research. That is always OK - and even encouraged - in academia.

This post is Copyright © 2009 by Grant Sheridan Robertson.

Hard Drive Troubles

I am making this post primarily to warn others about a particular model of hard disk drive. I realize that not many people will actually read this post but, hopefully, someone will find it when searching for information about this drive.

The drive is question is the Western Digital Raptor WD360ADFD 36GB 10000 RPM 16MB Cache SATA 1.5Gb/s 3.5" Hard Drive - OEM. I purchased two of these drives back in January of 2007. Both have now bitten the dust. The first died this April. The second (my C: drive) just died today. Western Digital no longer makes this drive but someone may still be selling them used or from back stock. DO NOT BUY THIS DRIVE. Granted, I am working from a statistical sample of N=2. But when 100% of the drives purchased goes bad within months of each other, that is a really bad sign.

If you do have this drive then be sure to back up your data almost every day and perhaps think about replacing it soon. I had no warning that the drive was going bad. It worked fine last night and then this morning all it did is click when I booted my computer.

Fortunately, Western Digital's tech support is very nice and did not hassle me at all. When I told them the sound it was making the young man simply said, "Wow" and started processing my RMA.

When I RMA'd the last drive they sent me a larger but slower drive. I did not mind. I expect that they will do the same and now I am glad because I don't want another of these drives in my computer again. When I purchased these drives I also purchased a similar model but in a 74 GB capacity. Now I am worried that it will also go bad on me. That one would be more trouble because it is the drive where I keep all my data. I guess I will have to start backing up a lot more often.

Additional Keywords: problem croaked issues

This post is Copyright © 2009 by Grant Sheridan Robertson.

Thursday, July 2, 2009

Basics of Blogger Template Structure

After digging through the Blogger help files I finally figured out what I think is the basics of the structure of a Blogger template. A Blogger template basically consists of regular HTML with special elements which the server will replace with content from the database. I have summarized the basic structure in a set of nested tables to better illustrate what fits where. Each box represents an element that must be put into the template as a unit. Comments about each element are in green under each element.


HTML (Any amount of HTML code of whatever type you like can go here, before the first <b:section> element.)

<b:section …>   (one or more)

<b:widget …>   (one or more)

<b:includable id='main'>   (required, only one)

Any mix of HTML and any of the following:



This is where the magic happens. The <data> elements are replaced with actual content from the Blogger database.


<b:loop var='identifier' values='set-of-data'>

[repeated content goes here]



<b:if cond='condition'>

[content to display if condition is true]


[content to display if condition is false]



<b:include name='IdOfExistingIncludable' data='i'/>

name attribute must match the ID attribute of one of the subsequent includables in this widget.

Value of data attribute is passed like a function parameter to the included-includable and is inserted anywhere the value of that included-includable's var attribute appears.



All the real work of bringing in the data from the Blogger database and arranging it is done inside the <b:includable> element.


<b:includable id='post' var='p'>

Same content allowed as in main includable.


var 'p' is replaced with value passed as data when this includable is included.




There can not be any HTML inside a <b:section> or <b:widget> element unless it is inside an <b:includable> element.


More HTML and/or sections.



  • You can include as much more HTML and or more <b:section> elements (as defined above) as necessary to complete the design of your template.
  • The <b:section> elements can be nested within HTML <div> tags or tables or whatever you prefer to use in order to position the <b:section> elements the way you want on the page.

Naturally, this post is not an attempt to explain everything about how Blogger templates work. However, I have yet to see any other description that lays things out graphically so that it is easy to see the whole thing at a glance. I hope this will be helpful for people who are having trouble putting all the pieces together.

This post is Copyright © 2009 by Grant Sheridan Robertson.

Grantism - 1

Sometimes I think of or just say (without thinking) weird but oddly profound things. Often they seem appropriate for a T-shirt or bumper sticker. I will just call them "Grantisms" for lack of any better term. Here is one I found while cleaning off my desk:

Some people think bein' smart's stupid, but they're dumb.

This post is Copyright © 2009 by Grant Sheridan Robertson.
Way back, last September I saw a great piece on Nightline about an isolated Amazonian tribe that was suffering because of the ranchers destroying the tribe's lands. (Jungle Journey: Living With an Isolated Amazon Tribe: Exclusive Access to a Remote Amazon Village Where No Reporter Has Been Before By DAN HARRIS Sept. 22, 2008). After watching the story, I came up with an idea that might help the tribe. I quickly wrote it down on a piece of paper and just as quickly lost it on my desk under a pile of other notes and magazines. So, I'm cleaning off my desk today (Yes, it has been over a year since I last undertook this arduous task.), found the notes, and finally posted my comment. Here is what I said:
I realize that this comment is a little late in coming. I just recently found my notes about this article while trying to dig out from under the pile of paper on my desk. Some members of the tribe should put together a presentation (Ala An Inconvenient Truth) and go on the lecture circuit Al Gore style. Who better to tell the world about their way of life, their philosophy, and what is happening to them than actual members of the tribe. they could use the money they earn from lecture fees and all the extra donations they receive to fight the ranchers and corrupt governments that let the ranchers ruin their land. Who knows, they and their philosophy of "Take only what you need and share it with others" may even help the rest of us save our world too.

This post is Copyright © 2009 by Grant Sheridan Robertson.