Outage

The new server was inaccessible for at least half an hour just now.  The domain's primary nameserver was inaccessible too and my local nameserver was acting weird too (it was pointing to the old server).  Anyway, everything is working again mysteriously.  Server itself was running so it must have been some network problem.  Weird.

BTW, you can send me e-mail by click on my face.  I'll see about restoring the mail icon.

Picture Bubbles, Wiki Toons, Stage Page

Picture Bubbles

Take a picture on the web, any picture will do as long as its accessible by a URL, and attach a comment to all or parts of the picture which is displayed in a cartoon bubble.  The bubble can also be set to pop-up on mouseover or mouseclick.

Wiki Toons

Start with a large picture or a series of related pictures placed on a wiki page in a row, a column, or a grid.  Allow people to change or comment on all or parts of the pictures using tools on the web page.  Put four in a row and let people create a toon by filling in the bubbles.

Stage Page

Fill top half of a page with a large image.  That's the stage.  Fill the bottom half with images of characters and props.  Let people play with the characters and props and share the experience with other players and spectators.  Record positions in time and let people replay one scene at a time.  For kids and adults only.

Pruning Blogroll

I am cleaning up my blogroll just now, self-discovering blog feeds one by one.  Esther Dyson and Halley Suitt's blogs at Blogspot are apparently gone so I have removed them for now.  This feels too much like housecleaning.  Urgh.

Just finished N.  Choo-choo!  Are we there yet?  Choo-choo!  This is how a highly paid, amazingly creative, and supposedly well-respected consultant/visionary/guru spends the last day of a year.  My wife and I are not going anywhere tonight which leaves us wondering what we are going to eat for dinner.  I don't really care what I eat — I hardly eat much of anything — but my wife defines her life by what she ate and where she went.  So I care by proxy.

More DasBlog Hacking

Although my recent optimization changes improved DasBlog performance drastically, enough for me to defer switching from file-based storage to MySQL or Berkeley DB XML, I had to do something about RSS feeds being generated dynamically.

These feeds don't change unless content changes, so it makes more sense to generate them only when content changes.  Besides, I needed to preserve URLs to my feeds so I needed a way to detect change to content automatically and force regeneration of those feeds.

To do this, I used System.IO.FileSystemWatcher to watch DasBlog's content directory and fire ContentChanged events which RSS builders and secondary data structures like CategoryCache and EntryIdCache instances listen to and react accordingly.  Now I can make changes directly to files in the content folder and those changes are reflected in both the web pages and the feeds.  Nice.

Classes like FileSystemWatcher has to be used carefully because many events firing over a short span of time will force unnecessary updates.  For protection, I used delayed update as a cheap event folding mechanism.  This technique doesn't protect against recursions which happens when a ContentChanged event listener makes change to the content directory.

Social Networks as Data Networks

Social network is a network where nodes are people and connections are positive relationships — I guess negative relationships can also be used to build social networks but they are not very useful.  Current upswelling in the interest about social software can be divided into two:

  1. Forming new connections and nurturing old connections
  2. Sending and receiving data through social connections

Companies like Friendster and LinkedIn are focused on the first.  Bloggosphere is all about the second.  I tend to favor the second because the first reminds me of the sneaker net and because relationships are easy to stress and difficult to create.

Seeing social networks as a data networks like the Internet or intranet helps me see new opportunities.  One I recently thought about involves distribution of favors, Favor Network if you will.

Think of what you need, whether its information or something more tangible, turn it into a packet of bits and send it to the immediate nodes in a social network using whatever communication medium you share like e-mail or IM.  Each of the receipients can take whatever action on the favor request including ignoring it.  Some will choose to forward it to appropriate immediate nodes.  In the end, it will get dropped or reach people who have the desired information or objects.

Rising up a level and looking at the Favor Network again at an angle, it's like Google over social network, a search engine that uses people as servers or routers.  Interesting.

Accounting of favor giving and receiving will promote such use of social networks.  So the sender rates his request in favorpoints which places a value on the favor.  The final receiver who fulfills a favor receives majority of the favorpoints.  Those who participated in routing of the favor to that person shares the remainder.

To prevent abuse, each node's balance of favorpoints must be recorded somewhere and provided on request or attached to the favor request.  If a person asks favors all the time, people will learn not to do any more favors for that person.  If a person does a lot of favors for others, others will be more likely to help that person out.  Favorpoints received are added to a person's favorpoint balance.  Favorpoints spent are subtracted.

Will it work?  I'll do you a favor and find the answer if you got a few million dollars.  ;-p