1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

In-Journal:
LJ Extras:
Planets:
View previous entry View newer entry

Chris Schmidt's Journal


[info]crschmidt

photogeek
8th August, 2004 at 12:56 pm

An open letter to the CodingMonkeys

The CodingMonkeys are the members of the team who have created the incredibly successful SubEthaEdit program. Recieving high praise from all users of the program, this truly is the "Killer app" of Pair Programming or Extreme Programming over long geographic distances.

However, there is no equivalent program on any platform other than OS X.

Almost any programmer that has used SEE can attest to its usefulness - and how the lack of a similar program on other platforms has been, if not a burden, at least a distinct lack.

This lack can not remain unfulfilled forever. Personally, I would like to see the SubEthaEdit protocol publicly documented, so that other programs of a similar nature can communicate with SubEthaEdit. I have written a proposal to the CodingMonkeys as to why the SubEthaEdit protocol should be documented and released.




An open letter to the CodingMonkeys:

The SubEthaEdit protocol is based on BEEP, an open protocol designed to be easily extensible. However, the SubEthaEdit profile URIs do not contain information on the format of these messages as described the by the BEEP. Additionally, there is no published protocol describing how SubEthaEdit communicates with other clients. This lack of documentation is limiting in many ways. Releasing protocol documentation would be useful to the community at large, as well as to the installed and possible future userbase of the SubEthaEdit program.

SubEthaEdit is a valuable community tool. It offers the ability to do distributed PairProgramming - a valuable ability in an open source world where programmers are increasingly distributed over large geographical distances. It is, without a doubt, the killer application in its field - there is no competition, and there is no doubt that SEE has established itself as an invaluable tool in the Macintosh world. However, the major complaint regarding SubEthaEdit is the fact that there is no client which can connect to SEE servers on other platforms. As such, the creation of a tool similar to SubEthaEdit for other platforms is inevitable.

It is clear that creating and maintaining other versions of SubEthaEdit is beyond the scope and realm of the CoderMonkeys, which would only detract from further SubEthaEdit development. This is apparent in the FAQ - no efforts at developing a product for other platforms are in the works, and there is no movement elsewhere on the web towards creating this type of application. The CoderMonkeys team creating alternative versions is not ideal. Instead, if the development could be passed off to a set of experienced developers in other arenas: Gtk, Visual Basic, etc. - the application could be extended, with no need to detract from the original SubEthaEdit.

The opening up of the SubEthaEdit protocol would be a way to encourage development of other, compatible applications, which in turn will only lead to increased use of the SubEthaEdit program itself. As a larger installed userbase exists, the program will become popularized, and so long as all clients cross platform can communicate with each other using the same protocol, there will be an increased desire for each application on each platform - which includes SubEthaEdit. As the CoderMonkeys have no desire to develop on other platforms, no revenue stream for these platforms is lost.

If the SubEthaEdit protocol remains closed, there is a possibility that SubEthaEdit will remain the sole editor on the platform. However, due to the need for a cross-platform editing tool of this nature, it seems unlikely that an editor of this type will maintain its position as the sole editor of its kind. By opening the SubEthaEdit protocol, the CodingMonkeys will provide a valuable resource to the community, while making their applicatoin far ahead of the game both in cross platform compatibility - which will become important - and UI, which it has already proven itself to be well in control of.

For this reason, we respectfully request that the protocol SubEthaEdit uses to communicate is made public, so that the community at large, as well as the CodingMonkeys in particular, can benefit from this protocol and the applications derived from it.

Regards,
Christopher Schmidt




If you wish to add your voice into this debate, feel free. I would be interested in hearing thoughts on either side of this issue - for or against the public release of such a protocol. However, it should be made clear that such a tool will exist on other platforms eventually, with or without the help of the originators of SubEthaEdit.

| Comment | Read 14 | Link

+1

From: (Anonymous)
Date: August 8th, 2004 - 12:23 pm (UTC) (Link)
if this was a petition, i'd sign it :)

michael/eaon
(Reply) (Thread)

Re: +1

From: [info]marnanel
Date: August 25th, 2004 - 07:38 am (UTC) (Link)
Same here.

I'd love to have a subetha-mode in Emacs.
(Reply) (Parent) (Thread)
From: [info]nostrademons
Date: August 8th, 2004 - 07:20 pm (UTC) (Link)
It is, without a doubt, the killer application in its field - there is no competition, and there is no doubt that SEE has established itself as an invaluable tool in the Macintosh world.

This may actually work against you, because you're calling attention to how much of an asset they're holding. The "get rich quick" bells would start going off if I was their CEO. And you also say that there's no competition, and it's an invaluable tool in the Mac world. Why would they want to make more competition and provide assistance to them?

It is clear that creating and maintaining other versions of SubEthaEdit is beyond the scope and realm of the CoderMonkeys, which would only detract from further SubEthaEdit development.

This sounds like a borderline attack on their programmers' competency. I know that it's not, but a quick reading might give that impression, particularly because "scope and realm" are not well defined terms.

However, due to the need for a cross-platform editing tool of this nature, it seems unlikely that an editor of this type will maintain its position as the sole editor of its kind.

Beware of this sounding like a threat. It actually kinda is...if they don't release the program, we or someone else is inevitably going to come up with something else that's equivalent but incompatible. But we want to work with them, if at all possible, and that's easier if they don't see us as a threat to their revenue stream (which we aren't, but "someone else" likely is).

Also. Some of the sentences were really worder awkwardly, like "and UI, which it has already proven itself to be well in control of." I couldn't really parse this sentence, but I didn't need to because of context.
(Reply) (Thread)
From: [info]nostrademons
Date: August 8th, 2004 - 07:30 pm (UTC) (Link)
I was going to suggest a new wording for the letter here, but I don't really have time to draft something. Here're some points to consider though.

1. Instead of making an "open letter" (which sounds suspiciously like a manifesto) extolling the killer-appness, you may want to make it into a simple request for information. We're a group of hackers, we're interested in creating a pair-programming editor for Windows/Linux/Java (we are, right? I was actually going to include this with my cool-new-programming-language-that-I'll-probably-never-get-around-to-finishing's IDE, though I could be up for an Eclipse plugin), and rather than invent our own protocol, we'd rather interoperate with SubEthaEdit. The FAQ states that there won't be a Windows or Linux version, but would they consider opening the protocol so that the inevitable Windows/Linux pair programming editors could work with SubEthaEdit.

2. Since we aren't developing for Mac, we won't be competing with them.

2. Mention Metcalfe's Law (the usefulness of a network increases in proportion to the square of users). This means that their product could become significantly more useful, at zero cost to themselves, simply by opening the protocol.

That's all I can think of for now. The key idea is to work with them and increase the value of their product. It's premature for threats or predictions of doom if they don't comply, though if they don't, perhaps oblique references might be appropriate.
(Reply) (Thread)
From: [info]nostrademons
Date: August 8th, 2004 - 08:13 pm (UTC) (Link)
Lastly, I gave some thought to how we'd implement this protocol if they don't open it up. It's a non-trivial, though probably soluble, problem.

There is a huge potential for race conditions. If the remote party edits the document, and you edit the document, and your edits get applied first, that will shift all later positions down. A naive position-based insert would then insert the text into the wrong area.

We need something like Emacs "markers" that move automatically as text is inserted. Even this doesn't completely solve the problem. Markers aren't completely general: unless you want a marker for every possible position (not practical, for efficiency reasons), they won't be able to uniquely specify a place. So you'd need a relative offset from that, and could potentially have problems editing the same region of the document.

So basically, each edit needs to carry around which version of the document it's referring to (what the user was seeing at the time they typed), and somehow that needs to get merged in. The problem is a lot like merging branches in CVS, except it happens in real time. This worries me a bit, because CVS is sometimes unable to resolve conflicts automatically.

What do we do, for example, if two people are editing in the exact same spot at the exact same time?
(Reply) (Thread)
From: [info]coderman
Date: September 18th, 2004 - 12:15 am (UTC) (Link)
It's a non-trivial, though probably soluble, problem. ... There is a huge potential for race conditions. If the remote party edits the document, and you edit the document, and your edits get applied first, that will shift all later positions down. A naive position-based insert would then insert the text into the wrong area.

There are two things which would assist greatly in this regard. The first is the familiar patch / diff mechanisms to intelligently apply changes to a file based on surrounding context. This would handle line number changes as long as the text around them was consistent.

Regarding race conditions and mutual exclusion / conflict resolution: the distributed systems approach can provide the mechanisms to accomplish this between arbitrary numbers of networked participants.

Specifically things like flat and heirarchal two-phase commits to keep things coherent. Optimistic concurrency control to speed things up. Shadow versions and well defined transactions to handle failures gracefully. etc, etc.
(Reply) (Parent) (Thread)

Cross-platform approach: DocSynch

From: (Anonymous)
Date: September 15th, 2004 - 06:24 am (UTC) (Link)
[...] and there is no movement elsewhere on the web towards creating this type of application.

That's not true, I am working on DocSynch, which will offer the same functionality (but does not yet). Read more on the homepage: http://docsynch.sourceforge.net (http://docsynch.sourceforge.net)

- Alex K.
(Reply) (Thread)

leon, unix subetha

From: (Anonymous)
Date: February 4th, 2005 - 04:06 pm (UTC) (Link)
He Chris check this out:

http://ryalias.freezope.org/souvenirs/leon

-joeldg
(Reply) (Thread)

Re: leon, unix subetha

From: [info]crschmidt
Date: February 4th, 2005 - 04:15 pm (UTC) (Link)
Only if you check out MoonEdit.

You ever coming back to IRC?
(Reply) (Parent) (Thread)

Gobby

From: (Anonymous)
Date: May 7th, 2006 - 07:09 am (UTC) (Link)
There's also Gobby, (http://gobby.0x539.de/) which seems to be the best hope for such a thing. The editor already runs on Windows/Mac/Linux, and the protocol is open, fairly documented, and simple to implement.

In fact, I implemented it in Emacs Lisp in only two days: http://dev.technomancy.us/phil/wiki/ebby

I think working on supporting this protocol in more editors would be far more fruitful than trying to either reverse-engineer SEE or talk sense into the codingmonkeys.
(Reply) (Thread)

Re: Gobby

From: (Anonymous)
Date: July 19th, 2006 - 03:49 pm (UTC) (Link)
I agree completely. Gobby has separated the shared-editing bit and the editor interface completely, by providing the Obby protocol. Supporting Obby in SubEthaEdit is the way to go.
(Reply) (Parent) (Thread)

SynchroEdit

From: [info]christophera
Date: May 13th, 2007 - 05:37 am (UTC) (Link)
You may want to take a look at synchroedit.com -- it is free, open-source, and cross-platform any place that Firefox works, i.e. Mac, Linux, PC. And it supports rich text, and there is a demonstration to show how it works with mediawiki (what wikipedia uses) for simultaneous wiki page editing too.
(Reply) (Thread)

naisioxerloro

From: (Anonymous)
Date: November 28th, 2007 - 09:30 pm (UTC) (Link)
Hi.
Good design, who make it?
(Reply) (Thread)

Cool quote

From: (Anonymous)
Date: May 6th, 2008 - 10:44 am (UTC) (Link)

After any salary raise, you will have less money at the end of the
month than you did before.


----------------------------------------------------------------------------------------------------
http://wilsongregoryrx.easyjournal.com
(Reply) (Thread)
Tags: 4th of july (2) * alicia (2) * allston st. (5) * apartment (1) * apple (1) * awesome things (3) * bills (1) * biodiesel (1) * birthdays (1) * blasphemy (1) * boston (2) * boy scouts (1) * butterflies (1) * cambridge (7) * cambridge public schools (1) * camping (2) * canobie lake (1) * cars (1) * champaign (1) * christmas (1) * church (1) * commune (5) * communities (1) * commuting (2) * concert (1) * condolences (1) * conferences (3) * coolidge (1) * daily life (39) * ddr (1) * development (1) * diving (1) * drinking (2) * drumm (1) * easter (1) * eating out (1) * education (1) * eeepc (5) * erie st. (1) * erik (1) * evilwm (1) * family (8) * fathers day (2) * firefly (1) * first parish (1) * flickr (1) * flying (2) * foss4g (1) * foss4g2008 (1) * friendly's (1) * friends (1) * gdd07 (1) * geeky (1) * geo (1) * gifts (1) * girls (2) * grand cayman (1) * growing up (2) * hacks (1) * harry potter (1) * head of the charles (1) * hiking (1) * home (1) * hospital (3) * humor (1) * ice cream (1) * internet (2) * introspection (1) * ipod (3) * jess (9) * jessica (1) * jetta (1) * julie (3) * jury duty (1) * kitties (2) * lausanne (1) * license (1) * linux (1) * location (1) * locative (1) * ma (1) * mac (1) * massachusetts (1) * media (1) * meetup (2) * meme (4) * memories (3) * meta (10) * mobile (3) * moving (6) * musem (1) * music (2) * n95 (3) * netflix (1) * new experiences (3) * new house (1) * ning (5) * nokia (1) * office (1) * oneaday (1) * openguides (2) * openlayers (3) * openstreetmap (1) * os x (2) * osm (1) * out and about (1) * packing (1) * parking (1) * party (3) * personal (2) * pete (1) * photography (6) * photos (4) * polls (2) * ponderings (4) * powerbook (1) * presents (1) * python (1) * questions (1) * random (1) * reading (1) * rmv (1) * roller coasters (1) * roy (1) * s2 (1) * s60 (1) * sappy (1) * school (1) * schuyler (1) * sfo (1) * skating (1) * sopranos (1) * spoiler (1) * stc (1) * stupidity (1) * switzerland (1) * tech (12) * the commune (1) * thoughtful (3) * tired (1) * tokyo (1) * travel (7) * travelling (1) * triad (1) * twitter (1) * ubuntu (2) * unpacking (1) * upxiii (1) * usenet (1) * vacation (1) * visa (1) * voting (1) * weather (1) * wedding (4) * wii (3) * work (23) * x (1) *
View previous entry View newer entry

Copyright 2003-2005, Christopher Schmidt