(originally on CommunityRepository)
I am having a revived interest in this, even though Lion’s understandably froze it, due to apparent lack of interest and technical complexity. I’ve been interested in the basic concept of a data repository that allows content to be re-used in different ways.
I like the direction lion was going in, allowing different ways to send data into the database.
I think that darcs could still be a useful model for a system like this. It kind of makes me think of the early days of wiki, when people where building wiki engines that were really extensions of CVS repostories.
I’m interested in the SpontaneousBranches and PreparationBranches qualities of darcs.
I’m also interested in hw this all ties in with the CellularProgramming metaphor.
I think Xwiki might have the capabilities to tie into this “system”. Also, I’m interested in how this is related to SemanticWeb and hansWobbe’s MicroContribution/MicroBlock? and TransClusion ideas, which are basically a new way to write content, and dynamically re-use it later. Also, the ideas I have in my mind relate to ContentRouting discussions here, too.
Some of the experiments that I have done with MattisManzel regarding http://s4560.gridserver.com/cgi-bin/diki/FrontPage (Diki) could possibly inform this, too. “Diki” is basically objects that are based upon a “time” context. Substitute “time” for “semantic”, and maybe you can have a system that allows MicroBlock? contrubutions based on multifaceted semantic meaning. CommunityRepository then is able to pull this into a database, from wikis, blogs, wherever, and then post to wikis, blogs, wherever.
In order to really wrap my head around this, I believe that I’ll need to start creating content based on Hans’ way of creating MicroBlocks?, then working with TransClusion. This is something that can work both in OddWiki, and in DokuWiki as both have provision for TransClusion.
Immediate thoughts:
Sam, I’m very glad you’re into this, and look forward to the development of this thought.
I’ve never used DARCS, but I heard that it has an exponential-time worst case as currently implemented. Looks like it hasn’t been fixed yet. WikiPedia:Darcs#Bugs refers to some other bugs too. But you didn’t have problems with these in actual usage?
I am into this for sure. I like darcs as a database/application model.
Now, I could go the route of re-creating what Lion set up in darcs, and it wuld be a neat experiment to continue to grow for sure. But, what I am really interested is creating what I describe above, perhaps from scratch, with user interfaces that more people can use, that allows for distributed revisioning, and distributed merging of content, but applied towards text/audio/video/etc as well as computer code.
So, I’m interested in some of the concepts in darcs, and possibly re-creating some of those (maybe in ruby?) as a distributed database/application, but with simpler interface, and with the ability to import/export data right from/to other applciations, like wikis, blogs, rss readers, social bookmarking sites etc.
The concepts of SpontaneousBranches and PreparationBranches are along the lines of what I am thinking of, for letting people create content using open standards, then to somehow semantically tag that content in different ways and copy it to a database of their own, then merge their databases (or parts of them) together when desired, in a decentralized and distributed way.
So, I could be writing a wiki page locally on my computer, it would be copied to my personal repository, then merged with the community repository, and visible through selected wiki sites automatically, if desired, who “subscribe” to that database. I authored the wikipage in a wiki engine, not in emacs, not in html code. But, I could also import content from the database-stored wiki page into a blog post, a forum post, and email, a document, perhaps via XML, or some other way, by way of an easy TransClusion, instead of copy/pasting manually.
Wow, this looks cool. This looks like a good way to begin implementation of DistributedEditing and the distributed wiki. What can I do to help?
(May I ask why you picked “darcs”? I am learning about distributed version control systems. For some time now I have been mystified as to why there are so many different distibuted version control systems – SVK Monotone Mercurial GNU arch Git darcs Codeville Bazaar . From what little I know, any one of them would be adequate for this project. I would like very much to learn why people pick one over another. )
Sam & David… During the last week, I’ve had to write a report for some business associates. Since this was an interruption in my plans to spend more time integrating Content from the dozen or so wikis that I’m been working on for the past several years, I decided that I’d try for the proverbial “two birds with one stone”, and write the report using a combination of …oddmuse… servers.
Boy, was that an education!
David, maybe we can use OddMuse as prototype platform to explore these ideas over time?
Hans, I agree that the existing capabilities of OddMuse are great. They come very close to what I have been trying to describe. For those of us who are fluent in wiki usage, what you describe above can create some powerful capabilities.
I like your approach, and what I want to do is:
Plans?
Pretty much now my plans are described in the two points above. I’d like to go over a lot of what has come up in CW over the past couple of years, tie it all together into a sort of “Pattern” document. Discuss it for a while without dragging out the discussion too much, and then start to think about creating experimental code for different wiki engines that makes these “Patterns” more integrated into the software itself. First perhaps as Perl code for OddMuse, and perhaps as Python code for MoinMoin, and then possibly PHP code for Dokuwiki and/or PBWiki if they are open to these types of changes, and MediaWiki, and Ruby code for Instiki and/or Ruse. CommunityRepository might allow (potentially) any wiki engine, or blog, and possibly other applications, to be an “interface” for it. Does that seem crazy?
No, it’s not crazy, and I am intrigued. I can contribute to initial plans, and, if you think my ideas are agreeable, help leap to initial coding.
I want to tell you: If we can, I’d like to make a business out of it. But that’s not essential to me, especially in this early stage.
Here are some ideas that it would be interesting to play with:
I’m fishing for a basic system– think of the original WardsWiki– it was just that peculiar combination of RecentChanges, WikiSyntax, new page creation, that worked really well together.
Could we make something similar? A set of features, that in themselves, are features, and require coding, but that forms a stable pattern that work out really well together?
Is there something that it is really hard to do, that we could make really easy? In WardsWiki, that thing that was “really hard to do” was: “Create pages on the Internet.”
If we use a small virtual machine, we could include a fully configured database, web server, blogs, whatever, … Perhaps we should try to leverage that idea, to make a big system?
One idea I am forming, is the notion of ObjectOrientedContent? – editable, viewable, and sometimes intelligent content, that can interact with the user and it’s surroundings. But rather than little video game characters and such, it is instead text and image and so on.
What do you think?
A few thoughts…
Ok, lots of stuff to respond to here. First of all, I like all of the areas that Lion is interested in exploring in the page links that he left in his initial reply to me above.
So, what I was talking about was looking at “Patterns” of usage first, before making or modifying anything. This is what would help us find what we might improve upon, but based on real world usage patterns. Then, I was thinking about how OddMuse might be used as a way to quickly create and try “prototype” working examples of these improvements, get feedback, etc. Then, I thought at the same time, it might be possible to use this real world usage pattern feedback to inform a “ground zero” building of something.
Also, I like Lion’s idea of creating a business. I think this could be a way to try otu CommunityWikiBusiness?, or some other sort of OpenBusinessModel concept.
I definitely appreciate Hans’s sentiments about creating businesses based on OpenSource software, and also his sentiments about his desire to create a positive legacy. From my own perspective, I’d rather create a totally free gift, or create a for-profit business that is based on ethical principles, and based on OpenBusinessModel principles. After taking a hard look at non-profit business, I feel that if some type of business entity is needed at all, I’d rather make it for-profit, but ethics-based, than non-profit. The reason why I am averse to Non-profit is that Non-profit businesses are not self-sustaining. They rely mostly upon charitable funding. I work with many non-profits, and I see them struggle under the weight of their fixed positions.
Most people gravitate towards a Non-Profit business model be cause they want the focus to be on creating and distributing non-monetary wealth. And, depending upon the for-profit model you choose, you may be required by law to do your best to focus on monetary wealth creation.
This is the reason that I’ve been interested in exploring new types of for-profit, yet open business models (this is way off topic for CommunityRepository, and I’m moving this to CommunityWikiBusinessDiscussion, once I’m done typing it.)
So, I propose that, in the case of what we are talking about here, that we:
I don’t think I’d know how to operate as a free agent, though;
My understanding of businesses and companies is that it's all about the coordination of a diversity of talents..? (question mark, because I’m unsure of what I’ve just said)
(Hi everyone, new here, mostly lurking.)
I work on a free software project, that shares some of the same general ideas as have been talked about here on CommunityWiki (sharing information, creating new kinds of views on information, distributed work, collaborative work, etc.) and we’re looking for funding. Our proposed business model includes several aspects. One is “hard services”– that is– server and software infrastructure hosting (our software is a more complex than many Wikis). Another is custom work for people, mostly anticipating integration with current systems. Then there’s good old support contract (yearly fee to be on call and fix people’s problems and answer questions). There’s also always sponsor-a-feature. All of these things (except completely custom work) assume a certain amount of demand exists, for them to be needed. This is the tricky part. Our strategy here is to pick a few specific applications of our general technology and develop them out, and try to attract users to them.
So if anyone is interested in hearing more about our technology and is interested in working with us in developing applications, let me know.
Reed, welcome again. Are you talking about http://interreality.org above?
Lion, you are totally right. Basically, what I am talking about is something I am already doing right now with my own business:
I am teaming up with other small businesses, or sole-entreprenuers or even larger organizations, and creating a meta-organization. This “meta-organization” is an agreement between all of the companies to supply certain services, and to split up shares of revenue in certain agreed-upon ways. These “meta-organizations” that I have participated in have been temporary, on a per-“job” or per-“contract” basis. But, I have worked again with many of the participant organizations on other jobs or contracts. This has all of the benefits of a company, because you still apply best practices for organizing people and coordinating their talents, and hardly any of the overhead and weight or drawbacks, because everyone is their own “company”. This is the way that I prefer to work these days if possible.
Think about how construction jobs work. Lots of talent is coordinated, even though the work is done by many separate companies or corporations. It’s true that many company’s roles are as ‘sub-contractors’, and so there is often a ‘decision maker’ entity/company. this has also been the case in some of the work that I have done. I was “sub-contracted”. In other cases, I have intitiated and coordinated the other business entities (programmers, graphic designers, hosting company partners, etc).
I brought this up because it’s worked well for me, and because I thought it could fit well with groups of people who are working with non-rival knowledge and technology commons resources (knowledge released under CreativeCommons, and OpenSource software). The type of money that can be made with OpenSource software and KnowledgeCommons? lends itself well to these types of teaming up, if an infrastructure can be created that lends itself to the teamwork facilitating and organizing that Lion referred to with it's all about the coordination of a diversity of talents.. So, I personally think you are right about that, Lion. I just wanted to try and clarify what I am getting at.
Sam asked, “Are you talking about http://interreality.org above?” [Hey, how do you do a blockquote in this wiki?]
Yes. I should have been more specific too. Our main application of VOS is 3D virtual spaces (also 2D graphics), but I’m interested in using them for visualization and communication, not just hanging out in (a’la Second Life). So the diagramming and visual communication stuff here on CW is interesting to me. The other application is as a web content system. Eventually I want it to have wiki tools, so maybe that’s something that the CW users would also be interested in.
(Btw, I made a LocalName for MenAreCheaperThanGuns, on CommunityLocalNames.)
How can we convince the people that will pay dollars, and each other, that the team will be cohesive, that parts and intelligence will be supplied in time, and so on?
My job right now is very low risk. They go, “Here, Lion, here’s a bunch of money, in your bank account today.” Every two weeks, there it goes in. And they see me here, every day, banging on the code. They vetted me for a couple of weeks, to make sure they wanted to enter into this relationship.
If I write software, and I sell it to people, they go, “Oh, there’s the software. I downloaded the trial, and I see that it runs, and does what I want.”
This seems very different to me– building new software? Companies waiting for it? No established mold? Unknown actors?
So, how does it work? Do we start with small projects, and prove merit that way?
Question:How can we convince the people that will pay dollars, and each other, that the team will be cohesive, that parts and intelligence will be supplied in time, and so on?
A: The arrangement that I describe is usually referred to as a Wikipedia:Business_process_network. See also: http://www.onenetwork.com/bpn/ These are examples for generally larger corporations. Approaches for smaller independents can tend to be different, especially for groups creating mostly a digital product.
However, in all cases, there is usually a reputable and established business, or group of reputable and established businesses in the network that acts as the guarantor of the contract, and the orchestrator of the network (unless another entity among the group is more qualified to orchestrate). Many times, I am willing to put my own business forward as one of the guarantor businesses in these network relationships, because I’ve established the qualifications and experience/reputation to do so.
Sometimes in small business applications that I have participated in, the groups of businesses actually create a real legal business entity that is made up of their businesses. So, it’s a company without employees. A “De-jobbed” company, this moves all employees up to both partners in the meta business, and to a sub-contactor level. It can be risky, but I have found that I almost always stand to make more money than as an employee. But then again, personally, I do not hold the degrees that companies are often looking for when hiring higher payed employees. Yet, my business has a portfolio and experience that brings in a compensation that is at least equal to what I would receive if I did possess those degrees. This probably explains on a deeper pesonal level why I am so enthusiastic about being a MicroEnterprise? in well connected business process networks.
Also, I agree with much of MenAreCheaperThanGuns. It is easier to hire people, and coordinate them. Yet, as needs become more and more specialized, creating a felxible network that can quickly meet these ever changing and evolving needs on-demand becomes more and more important to beign competitive.
In the realm of software production, such a network could consist of:
When it’s done right, it’s an amazing thing. Also, it’s a bitironic to me that the OverHear software you are talking about creating would be an awesomely useful tool for such a network
.
Please excuse my long time in replying; I have to look up half these terms!
What it seems to me like you’re saying, is that there’s a group of people who all know each other, (or maybe they don’t, but word gets out somehow,) who agree to service contracts, (things that people noticed that somebody wanted,) implement them, and share the money between themselves (by some process, I don’t know.)
Can you point me to examples of such networks, that are working? Or completed contracts? Is there some way that I can see how they function?
I would be worried about claims of favoritism and cliquishness, for one thing. If it’s a small community, I understand how it can work. If it were 100+ people, I’d start to wonder, and I think others would as well!
Also, I ask myself: Is there a record of these groups inventing and selling new things?
I am attracted to the idea, but like I’ve said, I don’t clearly understand it, and I am sort of skeptical that it could work.
If you are confident that it can work, I’d be excited to “try it out” a few times, and watch it grow. I know many other people that would be interested, should this work. But I think I need to understand it, and if possible, do it.
If interesting activity online with friends can put money in the pocket, that’s a very cool thing, in my book.
An example of incomprehension:
I read this stuff, …
…and I think, “Gee, if I were in charge of 3 manufacturing plants, maybe this would make sense to me.”
But as it is, I just don’t get it, or it’s relevance to me…
I understand SOA, computer software buses, and so on. I ask myself, “Are they using OOP concepts as a metaphor here for what they’re doing in the material world with people?”
I get confused, when I try to read these things, and establish some sense out of it.
I must be doing a horrible job of explaining this, because I type out an explanation, and think to myself “yeah…that’s a great explanation…”, and pat myself on the back. But, then I come back and realize that if it really was a great explanation, then you wouldn’t be asking the questions that you are asking now. 
Also, I will not try to sell you on it, because I am intuiting that creating a business arrangement for OpenSource software creation based on a ProcessNetwork? might not appeal to you (LionKimbro). It’s kind of frustrating and a bit dis-heartening to me that you are so skeptical of something that is considered in the business world to be a very sound and proven concept.
Examples of very well known manufacturing companies that apply a closed or open form of the model I describe are:
So, those are two large companies that do this with manufacturing. How does this work on a smaller level, with people like us who have smaller businesses?
I thought this outline description might at least make it simpler:
This is I how I do this with other consultants, companies, contractors. I’ve been doing this for a few years now.
But, I’ll also try and create a story that might clarify. Although I think I am barking up the wrong tree with you on this, because I think that it might be easier for you to just start your own more traditional business without having to worry about all of this.
Anyway, the stories:
So, LionKimbro comes up with an idea for creating a suite of communication tools, all based on proprietary (NOn-Open Source) software. Lion decides he wants to start a business based around this suite of tools.
SamRose suggests that Lion could start his business, and that Sam’s business, Social Synergy could patrner with Lion’s business to create the software. SamRose and SocialSynergy? could bring, let’s say, marketing and market research abilities, and effective software usage training to the table. So, Sam and Lion create an agreement where Social Synergy finds markets and sells software, and Lion’s company makes the software, and Sam’s company tains people to use the software when needed.
Everything is cool. Sam’s company and Lion’s company are humming along making and selling software for a year. But then suddenly, Sam reports to Lion that customers are starting to ask for new features. Lion says: “Sorry, Sam. Our company will need at least 25,000.00 US$ up front to change our software in that way. Our programmers would have to spend a lot of time documenting and cleaning up the code and modifying it to make that set of features possible”. So, Sam realizes that none of the existing potential customers will be able to come up with 25,000.00 US $, and Sam decides that selling software made by Lion’s company is a dwindling market prospect, and that it is out of Sam’s reach to try and help Lion raise the 25,000.00 in investment that Lion’s company needs to upgrade his code to meet current market demands. Sam suggests “maybe you can open up the code, make it open source, and see if you can attract developers to help create the features people are looking for. Then maybe we can create a different business model based around services instead of software licenses, or based around upgraded features”.
Lion says: “No way. Me and my two programmer employees have way too much time invested to just open up this code and give it away. We need to make at least 500,000.00 US$ to break even on our investment of time over the past two years. Everyone in my company has too much riding on making a decent chunk of money within the next year or two, to take a chance like that right now. Sorry Sam.”
Sam’s company eventually moves on to partnering with another software provider that can provide what customers are looking for. Lion realizes the predicament he is in, and decides to sell his software company to a competitor. They make 250,000.00 US$, which is a lot less than what they were hoping for, but is something they can all live with. The new company that owns the technology created by Lion’s company injects the 25,000.00 US$ neeeded to create the technoligcal and documentation bridges that allow new features to be added, then they re-badge the software and combine it with their software, and make average sales numbers, some sales coming from the existing customers from Lion and Sam’s venture, who get the message that there is now an affordable path to upgrade with the new company. Life goes on…
LionKimbro comes up with an idea for creating a suite of communication tools. Lion is open from the beginning as to whether the software will be Open Source or not.
SamRose suggests that Lion could start his business, and that Sam’s business, Social Synergy could patrner with Lion’s business to create the software. SamRose and SocialSynergy? could bring, let’s say, marketing and market research abilities, and effective software usage training to the table. Sam suggests that first Social Synergy put together an OrganizedInquiry and detailed report that shows both what the best likely markets are now for this type of software, and what the best likely markets will be in the future. Sam sugegsts that this OrganizedInquiry be an open process, based around some different questions, whose answers will clarify this picture. As SamRose carries out this process, different people like HansWobbe, RadomirDopieralski, and DanielMacKay, and HelmutLeitner, and others offer some unique and interesting ideas. Sam looks into all of this, and then approaches Lion and shows him some convincing data that all of these people are right about what they are saying, and that they all have some interestign ideas about how to take Lion’s idea and modify it to address these unique market segments that they told SamRose about. Sam suggests that it might be possible to create a partnership with all of these people, and Sam’s company, and Lion’s company. They all meet and decide to do it.
So, they all create an agreement where Social Synergy finds markets and sells software, and Lion’s company makes the software, and all of the other people’s companies create add-on components to the basic core of the software, and they work with Sam’s company, and other locally connected re-sellers and marketers to sell the software. The group decides to work with a process that is very modular in nature, so that code can be re-used among the pariticipants very easily. Kind of like the way DjangoProject works. This alone overcomes quite afew issues that software companies have with being able to be flexible and grow and adapt their software. It also makes it possible for others to join the ProcessNetwork?, provided they are able to work with the modular framework.
Over a relatvely short amount of time, larger companies become interested in this software, and they contact Sam’s company. The larger company has lots of specialized needs, and they have a healthy amount of money they are willing to pay to meet those needs. They like what they see in the software, but they need some key changes, and they need them fast, and they need the software up and working and their people trained to use it, fast.
So, Sam and Lion talk to their network of people, and decide that they have all of the people and the timeframes necassary from all of the people named above. They create an agreement and work out who will fill which role, and how the revenue will be split up. They work out the workflow ahead of time. They cover pretty much all of their bases very well. They come up with a group price, which Sam’s company presents to the customer company. Customer company agrees, even though the price was higher than they originally said they’d be willing to pay. They agree because the network of software producers is able to rapidly create exactly what they are looking for, and they are presented with some insights into how this will produce some substantial ROI. SamRose is able to bring in a team of people, all of whom are independent companies who are part of the ProcessNetwork?, to quickly get the software up and running in the company’s global WAN, and very effectively train the company to use the software with their current processes.
Now, more companies line up. They want it, too! But they want this and that different. For each prospect, the group meets to determine if they can realistically meet the goals, and exactly how they’d go about doing it. Then, they create offers and execute it.
I hope this make things at least a teeny, tiny bit clearer. Both are based on true stories from experiences that I have had partnering my business with other businesses in the SocialSoftware industry.
Just so everyone knows that it didn’t end here;
SamRose and I talked in IM about this and OverHear and so on. 
ReedHedges, a little while back you wrote:
“All of these things (except completely custom work) assume a certain amount of demand exists, for them to be needed. This is the tricky part. Our strategy here is to pick a few specific applications of our general technology and develop them out, and try to attract users to them.”
I am about ready to launch an OpenBusiness StartUpProcess? for the http://extinctionlevelevent.com project, in conjunction with some people from BarCampBank.
What we are doing with ExtinctionLevelEvent? is posting our current business model and business plan for the formalizing, funding, etc of the project, then invitign a diverse array of people from different communities to come in and give feedback. We are planing on creating a timed process that will distill the best insights from many different people. This is similar in nature to the OrganizedInquiry process, but a little more centralized to one sight. We are also strongly considering using a process like ConsensusPolling to solidify a DynamicPlan? into a StaticContract?. The thing about this is that ExtinctionLevelEvent? as a business will not be bound by the community created business plan and business model, but it will be able to use it to inform it’s choices, judge demand, and it will be able to use the process to engage communities interested in it, and vice-versa.
I was thinking that this process is also something that InterReality might benefit from. The idea that I have is not about creating business start up “site”, but rather creating and refining a process that people can use, and being involved in helping people facilitate that process. If you are interested in this, perhaps we can talk on the phone sometime soon, just to save on massive amounts of typing?
Lion, I don’t know how you came to the conclusion that darcs requires non-null unique patch names, but that is not the case. A darcs patch name can be the empty string (that’s not exactly the same as not having a name at all, but I think it’s close enough), and patch names do not have to be unique, although it’s easier if they are since many darcs commands take an argument that selects a patch by name.