Hydra: Rendezvous-Enabled Text Editing
Tokerat writes "It's incredible what some people dream up. A recent post on MacSlash brought this little gem to my attention, and I have a feeling some of you fellow /.ers will be screaming to get your hands on this: Hydra is a Rendezvous-enabled text editor, which allows several people to edit a text document at the same time. Imagine doing some extreme programming with this, with one person writing code and another following the first and correcting their mistakes & making optimizations simultaneously? It already works with Apple's Project Builder, supports syntax coloring, and the ability to manage access on a per-document basis. Future improvements will include support for RTF and much tighter integration with Project Builder. It looks to me like these guys are really on to something here."
That's very cool. Rendezvous is really coming into its own. I wrote up instructions on how to Rendezvous-enable pretty much anything you'd like, using any Unix box and a bit of C code and shell scripting.
.@.
Rendezvous, however, is unicasted, therefor noone on the lan needs to know anything about ips or networking in order to get it to work. That's really the only thing thats neet about it, the fact that two people turn on the program, and have it automagicly find the other programs running on the lan.
Rendevous is a 'framework' that enables an amazing array of functionality in many different applications. For instance, in iChat I can use rendevous to converse with others on my local network, devoid of going through a central authority (server) on the internet.
Rendevous is also open source. I think it has to be said that Apple is making great strides with open source for a commercial company with roots in strictly proprietary technology.
Future improvements will include support for RTF
Someone left off the "M" at the end.
Vote for global prefs bug
I am skeptical about doing pair programming remotely... From my (limited) experience you need to be physically next to the other person, and in fact the whole point is that there is one keyboard that you take turns on, not simultaneous typing.
In fact Kent Beck (inventor of XP) was at my school recently, and I asked him what he thought about this kind of "remote pair programming" stuff. His answer (paraphrased): "Forget it. You need to be able to smell the other person's farts".
Yes, indeed. Unfortunately, emacs shares the minibuffer between each frame, so if one user tries to start a search-and-replace, for instance, everything goes to hell. Even in this crippled state, though, I found this pretty useful. (I'm willing to bet that Hydra doesn't have the fancy features that Emacs has, anyway, so maybe they're on equal ground after all!)
I just downloaded Hydra and fired it up... and I'm really, really, really impressed. The program itself is very fast and clean, with an intuitive interface. Yes, other programs are capable of multiple users editing a single file, but I don't know of any programs that allow for this with a single mouse click.
We'll see how useful this actually is in time, but it is a neat little program.
-agent oranje.
You can also join via an IP address, for those times that you are not on the same subnet.
What, me worry?
Our php programming class has just started using this. It is going over pretty well, and easily works with the 20 students in the class all working on the same document. The teacher can pose questions to certain people in the group, who can then type the answer directly into the document.
This is one of those applications that can really show off what OS X can do. It's not only what's possible technology wise, but how simple it is to set up and use. It took all of 10 seconds to use Apple Remote Desktop to copy the Application to 24 machines in the room.
What, me worry?
Imagine doing some extreme programming with this, with one person writing code and another following the first and correcting their mistakes & making optimizations simultaneously? Oh, great, not only would the moron be breathing down my neck while I was typing, he'd be changing my code to! What a recipe for disaster, even when ignoring my revulsion to the idiocy that is Extreme Programming. Someone should not be making changes to your code while you are writing it. That's what a peer-review is for: when you have time to study at it in its entirely and understand the whole scope and logic of it. Second-guessing what you "think" he meant in a code fragment is a piece-o-crap wait to be written. And premature optimization has been proven to be very, very bad time and again! *shudder*
Anonymous Cowards suck.
since vi doesn't have it!
More to the point, what other editor *needs* a psychiatrist feature? Ok, maybe Word, but not if you can disable the "damned paperclip."
Rendezvous is a standards-based implementation of multicast DNS. It uses multicast transport of those packets to cover a campus network. Unicast would refer to a single IP address source and destination.
You're right and you're wrong.
The application uses multicast DNS to FIND the service, but then reverts to unicast for actual USE of the service. It'd be quite silly to send all of that information all over the network.
Mooniacs for iOS and Android
Sorry, that was my first thought...
-- @rjamestaylor on Ello
To use an analogy, just about everything done via USB can be done via legacy ports. However, USB makes it easier. That's what rendezvous brings to this process.
We have a project that has somewhat similar ambitions but with Java. Basically, we have integrated threaded messaging, revision control, group document editing, instant messaging, contact management, mailing lists, file management, and workflow into a single interface.
Currently, it does not have "live" group document editing because of lack of perceived demand. Quite frankly, my programming style is too unstructured for it to make sense for me. However, this is a fairly simple thing to add if enough people want it. We do have asynchronous group document editing.
The beta installer is available at http://www.suprasphere.com/sbeta. You will need java >1.4 to run it. It will download one update, and you will need to login again. We are working on using the OSGI component architecture so that modular updates can be achieved without needing to "reboot" the whole thing with every update.
We will do an open source release as soon as we finish the revision control engine. We want to be able to use SupraSphere to accept changes and manage its collaborative development as soon as we hit 1.0. The revision control will work somewhat like CVS, but you can set update "thresholds" for certain files that will require the voting approval and/or rating of certain group members. For example, you can require that an update to a common library must receive the approval of at least 60% of the project members, with an average rating of > 4.0/5.0.
You can also create builds with different versions of the source files, which will show up inside the interface immediately for others to test. Then, the specific files of those versions can be tagged as a cohesive update set for voting approval.
One strength with this project is the security. Everything is encrypted and secured with triple DES sockets and zero knowledge authentication. This makes it easy to pull from many different sources into one view. This way, if you're involved with many projects at once, you can query different source databases for only the files and discussions that are pertinent to you.
We would greatly appreciate your feedback on the beta before we go gold. There's a discussion engine with contextual highlighting (you'll see what I mean when you get in there). If there are some ideas of things you want, please let us know asap, as we're planning 1.0 source release at the end of April.
Thank you for your consideration.
David Thomson
SupraSphere Founder
Ok, so you pop an Xemacs frame up on my x server. What prevents me from doing 'esc-! cat ~/.ssh/*', or something more nefarious?
I wish I had a nickle every time someone said "emacs can do that."
_______
2B1ASK1
The application uses multicast DNS to FIND the service, but then reverts to unicast for actual USE of the service. It'd be quite silly to send all of that information all over the network.
I think you're confusing multicast with broadcast (Which, admittedly, a number of dumb switches tends to do as well. And of course, a hubbed network treats them the same as well). Multicast traffic only goes to those hosts that have actually joined the multicast group. In this particular case, that'd be anyone who's collaborating on a given editing process. Multicast would be a rather good way to go for this sort of project. In fact, a couple of multicast tools (wb for "whiteboard", nt for text editing) were created for just that purpose. And the great thing about doing something that way is that you could be working on a file in California, I could be working on it in Virginia, and twenty other people could be working on it elsewhere, and I'm only sending out a single copy of my packets, and only to the twenty-one people who actually are working on it as well.
If they're not using multicast for Hydra, it's a shame, because multicast would really be a great way to perform this type of operation.
Can you imagine the endless possibilities of fun in this? Just imagine two developers disagreeing about a piece of text, then fighting for minutes, one guy typing frenetically to outperform the other guy's continuous backspacing :)
A couple of things not yet mentioned here...
First of all, for pair-programming or whatnot, I would imagine that this would of course work best with the two programmers sitting next to each other. However, this would allow both programmers to select/enter/point out stuff to the other person without having to shuffle keyboards and mice around, which I think would be very convenient.
Secondly, the changes that occur to the documents can be color-coded in order to show who has made what changes. I assume this is lost when the document is saved, closed, and reopened, but it does provide good feedback on who has done what to the document. I would imagine that, like pair-programming, this could be a decent learning tool, if you have mistakes that you made pointed out right away in this manner.
Third, until the syntax coloring can be modified via preferences, this isn't as useful to me as it could be. I like to have the same syntax coloring at work, school, and home in order to make my life a lot easier - and each area has different editors for me to use. Once that can be done, I imagine this could become quite useful to me, at least.
Hydra works over the internet also. You don't have to be "sitting at a meeting", but you do need a Mac. Of course nothing stops you from buying a Mac if you want to.
Not sure what using LaTeX has to do with any of this. Hydra does support LaTeX color syntaxing and will eventually work with typesetting your documents too from what it says in the FAQ. Of course TeXShop already does that nicely on OS X. Getting edits from many users for a shared LaTeX file seems to work great with Hydra. I just had a friend share a paper I wrote on a machine across campus and I was able to find it instantly with Hydra (and Rendevous), add my LaTeX modifications and was done. A quick run of latex at the command line on his end and we were set!
I may not be understanding why Jabber "may" be so great for this type of work...someday in the future, but seems that Hydra is doing it today, and will only get better in future.
Cool tools like this that I can setup in seconds and teach ANYONE to use in a minute are why I'll never mess with Linux for desktop work again. My time is money!
Wilersh
.@.
Apple invented Firewire. They may have invited industry input, but it was their initiative.
Apple invented ColorSync. Similar things may have been done before but that is irrelevant. Did Honda not invent the Insight? I mean the Model-T came first and they are both cars.
Finally, repeat after me: "QuickTime is not a codec." QuickTime is a system for dealing with time-based data. It can store text, images, video, etc. It can even store objects with motion information. It can contain hyperlinks and even SWF content. Sorrenson is one of many codecs available for use in storing movie data in the QuickTime format.
Besides these three there are things like HyperCard, QuickDraw, etc. Both of those were many years ahead of their time. Clipping wasn't done until QuickDraw. Look at HyperCard then look at Director and Flash. Look at Revolution. Look at the web itself.
Lets have another. Looc at MacTV. Now look at all these "media PCs" being merketted as innovative. The MacTV is many years older than any of these. Give gredit where credit is due. There is nothing substantially different (given the technology of the time) between these media PCs and the MacTV.
Also, don't forget the innovations in the Newton and the Pippen. Apple has innovated more than most modern hardware or software manufacturers with a fraction of the income.
t'nera semordnilap