This page is a continuation of BayleShanks’s homepage; it’s where I put stuff that I don’t want to clutter up the page “BayleShanks”, but which I still want to be publically visible to CommunityWiki (otherwise I’d just move it to my personal website).


Mid-term wiki goals

Not just for this wiki, for the wiki part of my life.

Slightly more specific agenda

See also

Summary: I only have a couple of hours a month for wikis right now, it seems, and those get spent on keeping up with new ideas and writing posts that I just can’t resist. But, should I ever have any wiki time, I will probably spend it on WikiGateway.

To be placed/half-written contributions



Lots of websites with community features implement a way for users to send messages to each other; in essence, each user gets a “mailbox” specific to that website.

For users who belong to lots of sites which they visit infrequently, messages can sit languishing in these mailboxes for months.

It would be better if every such site allowed each user the option to forward all received site messages to email.

Notable wikis should be mentioned somewhere.


In the past our systems of economic transactions have operated under a somewhat hidden limitation: each transaction needed to involve only a small amount of computation. No one ever considered the sorts of exchange system in which it would take hours to do the arithmetic required to buy a piece of gum. But now that we have computers, those hours of arithmetic can be done in milliseconds.

In addition, large amounts of information may be stored, transported, and exchanged equally easily.

Finally, many places are connected to the internet, making it possible for each participant in a transaction to check or to update some central database at the time of transaction.

Perhaps there are “better” systems of exchange that are now available to us that we haven’t noticed yet, systems that require large amounts of computation or information exchange upon each transaction.

Some ideas:


Bruce Sterlin, The Futures Of Money


(I haven’t created the page yet because i’m not quite sure what to call it. I think WikiNature is a good term but it will invite other discussions, whereas I’d like to focus on a short list of a few fundamental characteristics, and then point to a list of emergent characteristics arising from these).

Universal fundamental characteristics of the wiki medium:

Typical but non-universal fundamental characteristics:

Structures found in wiki:

Emergent WikiDynamics?:

unnamed half-baked idea

When you have a community so large that there are subcommunities with their own subcultures within a larger community, these subcultures can sometimes be “two steps ahead of everyone else” with respect to certain topics.

Possible examples:

Alan Kay in

“Perhaps it was commercialization in the 1980s that killed off the next expected new thing. Our plan and our hope was that the next generation of kids would come along and do something better than Smalltalk around 1984 or so. We all thought that the next level of programming language would be much more strategic and even policy-oriented and would have much more knowledge about what it was trying to do. But a variety of different things conspired together, and that next generation actually didn’t show up. One could actually argue—as I sometimes do—that the success of commercial personal computing and operating systems has actually led to a considerable retrogression in many, many respects.

You could think of it as putting a low-pass filter on some of the good ideas from the ’60s and ’70s, as computing spread out much, much faster than educating unsophisticated people can happen. In the last 25 years or so, we actually got something like a pop culture, similar to what happened when television came on the scene and some of its inventors thought it would be a way of getting Shakespeare to the masses. But they forgot that you have to be more sophisticated and have more perspective to understand Shakespeare. What television was able to do was to capture people as they were.

So I think the lack of a real computer science today, and the lack of real software engineering today, is partly due to this pop culture.

SF So Smalltalk is to Shakespeare as Excel is to car crashes in the TV culture?

AK No, if you look at it really historically, Smalltalk counts as a minor Greek play that was miles ahead of what most other cultures were doing, but nowhere near what Shakespeare was able to do.

If you look at software today, through the lens of the history of engineering, it’s certainly engineering of a sort—but it’s the kind of engineering that people without the concept of the arch did. Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.


 Yes, actually both Lisp and Smalltalk were done in by the eight-bit microprocessor—it’s not because they’re eight-bit micros, it’s because the processor architectures were bad, and they just killed the dynamic languages. Today these languages run reasonably because even though the architectures are still bad, the level 2 caches are so large that some fraction of the things that need to work, work reasonably well inside the caches; so both Lisp and Smalltalk can do their things and are viable today. But both of them are quite obsolete, of course.

The stuff that is in vogue today is only about “one- half” of those languages. Sun Microsystems had the right people to make Java into a first-class language, and I believe it was the Sun marketing people who rushed the thing out before it should have gotten out. They made it impossible for the Sun software people to do what needed to be done.SF What should Java have had in it to be a first-quality language, not just a commercial success?

AK Like I said, it’s a pop culture. A commercial hit record for teenagers doesn’t have to have any particular musical merits. I think a lot of the success of various programming languages is expeditious gap-filling. Perl is another example of filling a tiny, short-term need, and then being a real problem in the longer term. Basically, a lot of the problems that computing has had in the last 25 years comes from systems where the designers were trying to fix some short-term thing and didn’t think about whether the idea would scale if it were adopted. There should be a half-life on software so old software just melts away over 10 or 15 years.

It was a different culture in the ’60s and ’70s; the ARPA (Advanced Research Projects Agency) and PARC culture was basically a mathematical/scientific kind of culture and was interested in scaling, and of course, the Internet was an exercise in scaling. There are just two different worlds, and I don’t think it’s even that helpful for people from one world to complain about the other world—like people from a literary culture complaining about the majority of the world that doesn’t read for ideas. It’s futile.

I don’t spend time complaining about this stuff, because what happened in the last 20 years is quite normal, even though it was unfortunate. Once you have something that grows faster than education grows, you’re always going to get a pop culture. It’s well known that I tried to kill Smalltalk in the later ’70s. There were a few years when it was the most wonderful thing in the world. It answered needs in a more compact and beautiful way than anything that had been done before. But time moves on. As we learned more and got more ambitious about what we wanted to do, we realized that there are all kinds of things in Smalltalk that don’t scale the way they should—for instance, the reflection stuff that we had in there. It was one of the first languages to really be able to see itself, but now it is known how to do all levels of reflection much better—so we should implement that.

We saw after a couple of years that this could be done much better. The object model we saw after a couple of years could be done much better, etc. So the problem is—I’ve said this about both Smalltalk and Lisp—they tend to eat their young. What I mean is that both Lisp and Smalltalk are really fabulous vehicles, because they have a meta-system. They have so many ways of dealing with problems that the early-binding languages don’t have, that it’s very, very difficult for people who like Lisp or Smalltalk to imagine anything else.

Now just to mention a couple of things about Java: it really doesn’t have a full meta-system. It has always had the problem—for a variety of reasons—of having two regimes, not one regime. It has things that aren’t objects, and it has things that it calls objects. It has real difficulty in being dynamic. It has a garbage collector. So what? Those have been around for a long time. But it’s not that great at adding to itself.

For many years, the development kits for Java were done in C++. That is a telling thing.

We looked at Java very closely in 1995 when we were starting on a major set of implementations, just because it’s a lot of work to do a viable language kernel. The thing we liked least about Java was the way it was implemented. It had this old idea, which has never worked, of having a set of paper specs, having to implement the VM (virtual machine) to the paper specs, and then having benchmarks that try to validate what you’ve just implemented—and that has never resulted in a completely compatible system.

The technique that we had for Smalltalk was to write the VM in itself, so there’s a Smalltalk simulator of the VM that was essentially the only specification of the VM. You could debug and you could answer any question about what the VM would do by submitting stuff to it, and you made every change that you were going to make to the VM by changing the simulator. After you had gotten everything debugged the way you wanted, you pushed the button and it would generate, without human hands touching it, a mathematically correct version of C that would go on whatever platform you were trying to get onto.

The result is that this system today, called Squeak, runs identically on more than two dozen platforms. Java does not do that. If you think about what the Internet means, it means you have to run identically on everything that is hooked to the Internet. So Java, to me, has always violated one of the prime things about software engineering in the world of the Internet.

Once we realized that Java was likely not to be compatible from platform to platform, we basically said we’ll generate our own system that is absolutely compatible from platform to platform, and that’s what we did.

Anybody can do that. If the pros at Sun had had a chance to fix Java, the world would be a much more pleasant place. This is not secret knowledge. It’s just secret to this pop culture. “ “

WikiSym report

CommunityWiki-specific stuff



I was shocked to discover that not everyone on CommunityWiki is thinking the same thing I am about reworking. My opinion is that reworking (also called refactoring) is one of the great strengths of wiki. One of my goals for CommunityWiki is to create an awesome collection of documents that is OpenContent. For an example of the goal of quality documents, look at the SoftSecurity or ConflictResolution collection on MeatBall. I don’t think the quality of writing here is as awesome as it is on MeatBall, and I think that’s because the sum total manhours put into reworking here just isn’t as much yet (which is because we’re younger, I always assumed).

I think that one problem is that some of us (Lion and I are the worst offenders) like to write lots of new content, but don’t spend much time reworking. Brandon said that if we looked at how much time we spent on CommunityWiki, and then budgeted some percentage of that time for reworking, that would vastly improve the results that we get in exchange for that time, and I totally agree.

For me, the reason is that I have a lot of other things that are higher-priority than contributing here right now, therefore I don’t ever say “I’m going to spend an hour this week doing whatever is best for CommunityWiki” – the kind of time that I would otherwise budget for that, I now spend on WikiGateway (because I want to finish what I start – “finish” here being defined only as meeting a certain milestone in my mind, since WikiGateway will never be “finished”). The reason I’m here so much anyway is because I often read what other people post, and sometimes I reply, and sometimes I have something to say that I just have to get out. Maybe I should change my time allocation policy.

I thought it was the same for everyone else – we aren’t reworking because we don’t have time now, but we intend to do more of that in the far future (which isn’t totally unbelievable, after all, I spent lots of time tidying stuff up in the old days on MeatBall).

But I was wrong! Lion doesn’t believe that we need to do more reworking. He reworks pages only when he finds himself refering to them or recommending them to other people. Often, if he has a better way to say things, he’ll start a new page rather than reworking an old one. He believes that pages are a marketplace of ideas: pages with good ideas will live and be reworked, and bad ones will be forgotten about. He doesn’t care if there are plenty of “bad pages” lying around in the PageDatabase, because unless they are referenced, no one will see them.

To be added to WikiFeaturesWiki when its back up:

I’d like to write a short book on the upper level of internet stuff for programmers. Sort of the same content as ABusyDevelopersGuideToWebStandards, but in long form. Maybe in total it would be the length of a thin paperback.

The idea would be to help out programmers like myself who always hear about things like:

but don’t know:

I liked Eric Raymond’s answer in his The Art of Unix Programming, chapter 5, on Application Protocol Metaformats.

Thanks, I’ll check it out. Actually, I’ve started that book, but I haven’t gotten to chapter 5 yet.

Another short book idea; topics like “how life will change with InformationOverload” and “how life will change with wikis” (WikiAsYouLearn, etc).

I think Tarot cards are neat because they manage to break the world into fundamental components, but they have more than 2 or 3 “fundamentals”, unlike most human systems. Awhile ago I started thinking of what the cards would be for a “wiki tarot”. I started brainstorming a list, but never got back to it and finished it (the list isn’t nearly long enough yet) or divided it into major and minor arcana and suits, or created the mapping with the std tarot cards. But WikiParts reminded me of it, because the search for “wiki parts” is essentially the same in my mind as the search for “wiki tarot card ideas”. So I’ll post my old list here in the half-baked section


front page
new page
deleted page
name page
wiki life cycle
minor edit
major edit
explosion of new, related pages
semantic drift
war with a newcomer who refuses to follow some CommunalNorm
graffiti & spam
questioning of "consensus"

Links for open source network analysis/graph drawing:

From Google:Pajek+“open source”

to search: graphviz, “network analysis”, “graph drawing”, “graph layout”

To avoid violating the injuction against ShallowPages, I place this link here, although it belongs on a page called IntelligenceAmplification?:

But, if you think of this wiki as an OpenContent overlay to MeatballWiki, it makes sense to have pages which don’t “stand on their own”, but which do house OpenContent “freed” from MeatballWiki.

Of course, at some point it would be nice to round out such pages so that they can stand on their own.

This link should be put somewhere in CategoryInformationManagement (probably on the page InformationManagement, when it is created):

more pictures:

Here’s Katherine holding a whelk:

Here’s a giant keyhole limpet:

Old diary

Sep 22, 2008

My hands got worse and so I stopped typing for a few months. I wrote a small front-end to the Sphinx voice recognition system to use voice recognition to type, however it is slower than real typing so I am trying to do without it. Currently I am limiting my computer use to about 2 hours per day. Since I have to program at work, that’s most of it. We’ll see if I can work back up to many hours of typing, or if I end up going back to voice recognition.

The silver lining is that I get to spend more of my work time actually studying rather than just coding (my thesis work involves lots of coding). I love coding but it’s nice to read books too.

Feb 25, 2008

Haven’t said anything here for a long time, and don’t keep a diary-like blog anywhere right now (was planning to use LiveJournal for that, but haven’t done so yet), so I thought I’d check in.

What I’ve been doing:

Projects to-do eventually:


I’ve been slowly working my way through my neuroscience PhD? work. Spent a bunch of time thinking about P vs NP. Been spending much of my free time organizing my personal stuff, and some of it learning new things, rather than working on my projects or visiting CW. This will probably continue for the foreseeable future. Perhaps someday I will be able to work my online projects into my day job – until then I guess they will have to happen sporadically when other commitments allow.

CommunityWiki-specific stuff


To keep up with the community here, and to help the corpus by linking things together which are related, and/or simplifying and consolidating when I see an opportunity.

Midterm wiki-related goals

For more detail, see section “Mid-term wiki goals” on BayleShanksAttic.

Technical goals for wikis

License for my contributions

All of my contributions on CommunityWiki are hereby placed in the public domain unless otherwise indicated.

(I’m not going to include the PrimarilyPublicDomain link in each of my posts here, but you may assume it)

old about me:

todo: fix link:

todo: fix link: portrait:


Midterm wiki-related goals

For more detail, see section “Mid-term wiki goals” on BayleShanksAttic.

Technical goals for wikis

Old messages

that I’ve read but not completely followed up on in one way or another

Bayle, I’m excited about the fresh thinking on governance!

I’d like to engage with it and bring it into practice.

I don’t have the time at this minute, but I want to engage this weekend. I’m going to invite a friend (BrianRice) to participate in the conversation as well.

We have the Tools, We have the Technology...

Bayle, I was about to rewrite LessRedundancy. I decided against it, but I thought you’d get a kick out of what I had going.

Here it is:

:There is tremendous redundancy in our world. Right now, as you read this, one thousand people around the world are carrying out some tired argument that has already been recorded to it’s full extent in one hundred places. One thousand people are making new collaboration sites, hoping each that one thousand people will flock to their pages to record one thousand pieces of wisdom about the world. One thousand programmers want to create one thousand games, and are striving each to figure out ten key algorithms. One thousand professional authors are writing one thousand books, collectively writing the solution to one hundred problems. None of the books will appear on-line, until ten forward thinking individuals will write the one (or ten) books to address the lack.

:LessRedundancy is the call to stop the waste and madness of our duplication, triplication, googleplexification of effort. The idea appears in many forms, from the businessman’s checklist (ensuring she doesn’t repeat the labor of racking her brains for missing items), to the programmer’s refactoring (Wiki:OnceAndOnlyOnce), to the whole concept of education (saving civilizations from the labors of civilizations past.)

:In the wiki community, we find ourselves in a position to heed the call. For perhaps the first time on the web, on a relatively large scale, we can eliminate duplication, once and for all. We have the tools, we have the technology. We can remake the global information architecture, better than it was before.


I wrote a UnifiedRecentChanges macro. You can see a test of it on WikiFeatures:WikiSandBox?. It’s **** ugly, but it works. Look at the page source, and you can see how you add new feeds to it. Basically, you just give a name for an xml-rpc interface, and then it’s url. Won’t work on wiki gateways yet, because their calling syntax is a little different at the moment. – LionKimbro

C2 has a few helpful Java tips ( Wiki:LearningJava ). That’s where I learned about Wiki:JinxWiki , but JinxWiki seems unreliable – is there any other wiki focused on the Java language ? – DavidCary

Convenience links for me

Personal RCs

Short on time RC

Superset of GeneralAnnoucementsRCFilter.

My subscribed pages: CommunityWikiSoftware, DeletedPage, BayleShanks, WikiGateway, WikiWindow, BayleShanksHonorsThesis, AtomForWikis, CommunityProgrammableWiki, CommunityProgrammableWikiImplementations, CommunityProgrammableWikiIssues, CommunityProgrammableWikiMotivations, PublicScript, categories: CategoryThisWiki

These are just stuff that I would want to know about even if I had little time. They are either related to a current project of mine, or are general announcements.

Meta-CommunityWiki RC

My subscribed categories: CategoryHomepage

Other Projects RC

My subscribed categories: CategoryWhyWiki, CategoryIntroductionToWiki, CategoryInformationManagement, CategoryInterCommunity, CategoryVoting, CategoryLaw, CategoryOpenContent, CategoryBlog, RobertsRules, WikiRulesOfOrder, CategoryWikiCommunity, CategoryWikiProcess, CategoryWiki, ConflictCluster

Misc RC

My subscribed pages: ArrowsTheorem, AnewGo, InformationDerivativesMarket, LimitsOfHierarchies, WikiVoting, SmallGroupDiscussionSizeLimit SmallGroupScalingLimit?, SpaceForMetaDiscussion, SynchronousVsAsynchronousDiscussions, CategoryHardSecurity, CategoryWikiDynamics, categories: CategorySocialScience, CategoryDecisionMaking, CategoryCopyright


Short on time RC + TechnoRCFilter + Meta-CommunityWiki RC + Other Projects RC + Misc RC

My subscribed pages: CommunityWikiSoftware, DeletedPage, BayleShanks, WikiGateway, WikiWindow, BayleShanksHonorsThesis, AtomForWikis, CommunityProgrammableWiki, CommunityProgrammableWikiImplementations, CommunityProgrammableWikiIssues, CommunityProgrammableWikiMotivations, PublicScript, ArrowsTheorem, AnewGo, InformationDerivativesMarket, LimitsOfHierarchies, WikiVoting, SmallGroupDiscussionSizeLimit, SmallGroupScalingLimit, SpaceForMetaDiscussion, SynchronousVsAsynchronousDiscussions, CategoryHardSecurity, CategoryWikiDynamics, categories: CategoryThisWiki, CategorySocialSoftware, CategoryWebLog, CategoryKuroshin, CategorySlashdot, CategorySyndication, CategoryWikiTechnology, CategoryWikiEngine, CategoryUncommonWikiFeature, CategoryUnimplementedWikiFeature, CategoryWebTechnology, CategoryInformationVisualization, CategoryLinking, CategoryWebAnnotation, CategoryNameSpace, CategoryRatingSystem, CategoryIndexingScheme, CategoryInternetTechnology, ExperimentalTechnology, CategoryHomepage, CategoryWhyWiki, CategoryIntroductionToWiki, CategoryInformationManagement, CategoryInterCommunity, CategoryVoting, CategoryLaw, CategoryOpenContent, CategoryBlog, RobertsRules, WikiRulesOfOrder, CategoryWikiCommunity, CategoryWikiProcess, CategoryWikim, CategorySocialScience, CategoryDecisionMaking, CategoryCopyright, ConflictCluster

See also BayleShanks.



Define external redirect: SmallGroupScalingLimit PhD MeetingActivism WikiSandBox WikiFacade ReputationCurrency WikiDynamics CommunityNorms IntelligenceAmplification HyperLinks FacadeWiki

EditNearLinks: ForestFire JinxWiki HypeCycle SelfProgrammingWiki CategoryHardSecurity InformationManagement CamelCase RecentChangesJunkies MeatballWiki LiveJournal PageDatabase MeatBall OddMuse HardSecurity SubscribedChanges WebDav RatingGroups WikiFeaturesWiki HyperText EditWar DocumentMode PrimarilyPublicDomain UseMod ConflictResolution InterWikiWiki