The content of the community wiki is very impressive, it looks like a condensed world of ideas. I hope to share some more ideas or maybe bring some to life.
Old overloaded stocks-like graph still available.
To better explain my idea and early prototype around the auto discovery/emerging, two small drawings :
The first is about the initial concept, someone is coming into a jamming/contributing/prototyping session. The user start his wiki device/software and see already two people jamming in the same wiki pool called “today’s wiki”. This is possible by an announce message sent regularly about the wiki available by each active contributor (in my prototype, wiki name, source and hmac signature). The hmac signature can be verified if the user knows a private shared key in other word a common password among the participant. But he is free to not check the signature.
If the user wants to start to collaborate on the wiki, there are two options. Either the user is willing to contribute locally without sharing his own update (case 2 in the diagram), he is fetching the current wiki using git. Start to work locally… Or after a small period, he/she wants (case 3 in the diagram) to share his contribution. He/she just starts to announce the wiki sharing the same wiki name. That’s it.
All wikis using the same wiki name are equal and always merging any update from the other wiki. The current prototype is somehow doing that but really need improvement regarding usability, merging (especially in conflict resolution… git is mainly designed for source code not wiki “content”) and initial discovery. The current announce is using a broadcasted UDP message. So this is limited to directly connected network. But that can be enhanced using a global announce services… The idea is there but a lot of work remains.
A slightly different view of this challenge becomes apparent to me when I notice that I make increasing use of my Mobile (Cell phone, pocket computer (Outlook, which finally syncs reliably, for email), GPS, …) device. Given that I always carry this and also generally have a Laptop/server with me, it seems that all I need to improve my wiki use is to have the ability to run TiddlyWiki (which is for my Client-Side uses) on my mobile device. This makes the incremental hardware cost effectively $0.00. – Hans (who is finally introducing himself via this post).
This is actually a pretty nice idea. There are lots of pretty old cellphones with Java support. I play a roguelike game on mine, for example. I bet it’s not very hard to write a simple wiki-like software for this platform – maybe there even already are some. Synchronisation via bluetooth or irda with software running on PC and interfacing with a “real” wiki and voila, a pocket wiki. I guess more useful for reading than for writing, but still. And I bet one can buy such a used phone pretty cheaply nowadays.
Hi Alexandre. Welcome to our idea fourge.
Having fun counts, admitted.
Welcome to CommunityWiki, Alexandre Dulaunoy. I hope you enjoy what you read here. And I hope you help us learn a few more things.
Hello Alexander, I was hoping to meet you somewhere in the wiki space sooner or later. You see, I have stolen some theme ideas from your blog. I hope you don’t mind. Nice to meet you.
Hello, and welcome, Alexandre! Your WikiStacking idea is a great metaphor, and could be helpful in explaining to people why this MixedMode approach is useful for establishing shared meaning and trust via asynchronous collaboration within hypertext medium.
Wow, wikiri looks very interesting, thanks for the link. Myself, I was playing with an idea of using Mercurial for a wiki engine backend (it’s written in python, so no need to call external programs), which is similar to git. Wikiri looks a lot like an engine I wanted to write, and the code is very clean. Another option for cheap hardware would be old consoles – but there is a problem with connectivity. I vaguely remember that someone actually wrote a TCP/IP stack and a web server for GameBoy?, which was connected to network via the serial interface…
I’m sad to say I haven’t been working much online lately, and do not intend to do so in the near & mid-term futures; Read LionKimbro for reasons why.
Thanks a lot LionKimbro. I have included a small plot of the daily WCI in this page. I have encountered some interesting “problems” about the moving items contribution, the real value of a wiki page change and the various meaning of RSS feeds among the wiki software implementation. This is just an experiment but I’m planning to improve it.
I see your point regarding contribution on-line and off-line. A valuable collaborative information system is often the one bringing the more “value” to both society (virtual and physical). Good luck for your work.
Hello Alexandre! There has been some progress with VCS-backed wikis recently. In particular, there is this Google Summer of Code project by Paweł Pacana: Mercurial backend storage for MoinMoin Wiki (not to mention my own experiments with the Dandelion Wiki). I know that Mercurial is not Git, but it offers similar possibilities. I think the future looks bright.
Regarding your experiments with git-backend wikis – have you tried extremely heuristic methods such as “if there was a conflict within the last 24h, the last edit takes it all?” In my professional life I work as a consultant (requirements engineering) for customer relationship management software (CRM). Our solution uses Oracle as a database, and offers offline use using Oracle Lite. Thus, we need some kind of merging. As our objects (people, companies, projects) usually have a small number of actual users responsible in real life, we can live with suboptimal merging. Lotus Notes has excellent merging behaviour, for example: They keep duplicates and have a user interface for selective merging. This works for Lotus Notes because they have a document centered data model, where as we have modelled our objects very traditionally for a relational database – a table for people, a table for companies, a table for projects, mapping tables, extra info tables, and so on. That’s why we have no notion of “duplicate documents” but only duplicate rows. These we cannot keep for data consistency reasons in a relational database without a lot of extra effort. Using very simplistic journalling and “last edit takes all” strategies have proven to be a very cost effective solution. It’s suboptimal, but very cheap.
Thus: Consider EmacsWiki and its SVN repository. I just take a snapshot every 24h. I would not feel too bad about creating a separate instance of the wiki elsewhere, and having a script merge changes individually using timestamps, because –
This would not be too hard to implement on a per-page level (that is, changes merged from remote sites don’t have accurate log information, and that’s ok).
Then, if we find that there are some cross-site edit wars, we do not need to find technical solutions that allow us to do this in real time, we just need to find technical solutions that enable social (!) solutions. One example could be that we only check in pages that have not changed in the last 24h. For every such page, however, we already create page locks that make it read-only on remote sites. The user interface could then say “This page is currently being edited on a remote site (link)” and possibly redirect people who want to join right now.
OddMuse2Git is fantastic! Could be a great option for editing documentation, for instance. Not to mention the possibilities with working with merging and managing text and pages.
Thanks a lot Sam. I tried to merge to different (having different but also common pages) wikis using git and it worked quite well. Maybe we should come with a different merge strategy for wiki pages but the current merge strategies (especially the recursive) worked very well and it even found update between the wikis that I haven’t seen manually.
Regarding IkiWiki?, I like the concept of generating static pages but I was missing some Oddmuse features in IkiWiki?. Maybe we can directly use the input from oddmuse2git with IkiWiki? to use at the same time Oddmuse and IkiWiki? engine I didn’t try but seems possible.
Another nice thing I discovery while playing with OddmuseGit that it’s possible to use the git infrastructure to make nice staging method while the merging is complex or including spammers (something like git stash).
I recently discovered the jourknow project (a kind of notes taking application) but the project made a free software successor called list-it. The concept seems interesting especially that’s my use of Wiki(s) is often related to notes taking.
I also use wiki for note taking, then push it from my desktop wiki to whatever site is relevant. Like this:
Some people are not used that kind of incomplete and thus hard to understand, inprogress work, so I often not that at the top of the page. Yet, I am finding that doing this inspired others to take my wiki notes and work them into blog posts, or other polished stuff. In the case of http://localfoodsystems.org/wiki/local-economies I was using. Wagn as desktop. Trying to help wagn develop, so I am using it daily for a while, to see what I can add to it
Alexandre, in line with your mentioning of machine tags, (I feel like something of a librarian here you may be interested in TagsForTags, TagsVsMnemonics. Your use of duples reminds me of a conversation we had long ago, “TriplesBad.”
Thank you for adding the “git” references that point to your “gitorious” pages. Since I find your many DelIcioUs? bookmarks very useful, I’ll make a point of also looking at these “git” links.