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."
For the sake of completeness, in Xemacs, the command is:
M-x make-frame-on-display
If at first you don't succeed, skydiving is not for you
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.
.@.
Although it is not used for programming, the wiki is an excellent method of collaborative editing. Take a look at the wikipedia. There are lots of other wikis around on the web. The great thing is that you don't need any special software, just a browser.
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.
Now everyone can know the fun of multiple personality disorder!
Shut up jerk! ^H^H^H^H^H^H^H^H^H^H^H^H^H
No, it's really a good ^H^H^H^H crappy idea!
Quit doing that! Ack!
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".
Why don't we have this in my office? Being locked out of text doccuments that I share with a half dozen other network users for the better part of a day has cost me a lot of productivity..
dreaming of a mac-equipped office.....
It works. One of the surprising results was that you don't actually need to 'pass the keyboard' explicitly: you wait for the other person to stop typing, a bit like you wait for someone to stop talking. If the rare case that you both start to type at the same moment, it still works out usually. The funny part is that you can see each other's typos in real time. It's a bit eery but fun to show around. :-)
We've speculated that using this with VoIP would make it even better, but it worked out pretty well. The shared account was in Finland, by the way; I logged in from Germany and it was still fast enough for interactive typing (ping between 50ms and 100ms).
I daresay it's not the same as face-to-face pair programming, but it's still pretty cool. And the morale is: Don't wait for Hydra! Use Unix tools today!
(We have not yet, I should note, found a way to make this work for collaboration between an emacs and a vi person-- that's a topic for future research... :-) )
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.
Of course, this also means the two programmers have to be on the same
LAN segment. Rendezvous doesn't route.
Doug Alcorn
Hydra appears to have been developed by a group called "Global Software Engineering." Apple isn't taking credit for anything here, except for their idiot-proof implementation of zeroconf as Rendezvous, and their rapid development tools.
Can you name any modern computer company that INVENTED, not just built off of, any technology?
Depending on how you look at it, not many have.
Actualy, no, because it's color-coded who typed what. :-)
Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
emacs/xemacs have been able to do it, but that's like saying "it's possible to shove your leg down someone's throat."
It may be true, but it's not something you want to do normally.
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!
Geek1: *Types some code*
Geek2: *Makes a few changes*
Geek1: 'wtf you doing??!!!'
Geek2: 'ure code is shiat, my variables pwn'
Geek1: 'stfu steve!' *deletes other geeks function*
Geek2: 'ben you bastard that took me 15mins to write!!!'
Geek3: *types 'PWN j00 BASE!!!!' 15 times*
Colaborative programming requires much more than just a text connection. There is a great deal of information conveyed in pacing and tone of voice that just can't be easily communicated through typing.
I'm thinking that without simultanious audio, such collaboration would be more of a hinderance than a benefit.
This Rendezvous editor looks great for "a bunch of macheads sitting at a meeting"...but Until Rendezvous is extended to more platforms and actively used, this is useless for most people- I serve as 'editor' of a large manual, and nobody else in the group of about 12 has a Mac(I use Lyx/Latex for the manual...and that makes getting edits in from people is a total PITA.)
something Jabber based would be much cooler, since there are clients for everything...and it'll work over a WAN, the internet, etc...not just a local LAN...which means we could have a collaborative worksession, despite Everyone in the club being spread out across New england and lower canada.
That said, I can't find any info about any editors that actually use Jabber yet, though...
Please help metamoderate.
Sorry, that was my first thought...
-- @rjamestaylor on Ello
Why wouldn't an app written in Java using *either* Rendevous not be cross platform?
:D
Apple has released the source to Rendevous already; Tibco has not
GPL Deconstructed
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.
To be truly useful for multi-user editing, wouldn't it be helpful to have some sort of version control built in?
What kind of undo facility does it have? Does it keep a history journal of which user makes edits so that edits can be rolled back?
How about a way to lock parts of the document?
This sounds like it could drive a programmer insane. Can you imagine trying to not only keep track of what you're doing in real time but also all the other developers in the project? You might as well get rid of version control and such. Oops my new function doesn't work because Dick Hayde over there changed something in that function over there while I was working on this function.
Having a shared view with other programmers that can IM you and add notes to the code (just in the view, not the actually source) would be useful. Having them live edit the same document as you are is just crazy. If you want others to be able to view your work as you code then try vnc or something like that.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
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
Apple. IEEE-1394.
Apple. ColorSync.
Apple. QuickTime.
There's three off the top of my head. Inventions are rare in the computer industry, yes, but Apple is the exception. And, they've gotten rid of their aversion to "not invented here", allowing them to use good technology (USB, IDE, PCI, etc.) from other sources.
Do I like Apple? Yep. Sure do. Can't wait to be able to afford one of their machines. : )
Why yes, I AM a rocket scientist!
This guy is just trying to bait somebody so that he can scream... "nuh uhh... Apple the OS from Xerox" Meanwhile, he doesn't realize that Xerox was compensated for the code Apple used, and that Apple totally re-invented the technology that Xerox had in the labs. He makes it sound like Apple had an instant GUI once the transaction was made. (For those that don't know, the IP that was purchased from Xerox amounted to little more than a window with a few icons in it. The windows didn't scale (at least not on the fly, they didn't overlap, there was no desktop, there was no trash can, there wasn't even drop down menus! Apple invented all that! Regardless, this guy is implying that Apple hasn't invented anything, which simply isn't true.
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 :)
AH HA!
More convincing forgeries! I knew something was up.
Eve Fairbanks says I drive a hybrid!LOL
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.
Rendezvous uses link-local multicast, not broadcast.v ous/
"Multicast DNS Responder (mDNSResponder), the component that listens for and responds to DNS-format query packets, sent via IP Multicast to UDP port 5353" From: http://developer.apple.com/darwin/projects/rendez
I don't see why Rendezvous could not be enabled to use global multicast. Apple could use a GLOP address (http://www.faqs.org/rfcs/rfc2770.html) for each application that wants to have a global presence.
Anyway, Rendezvous != Broadcast.
Link-Local Multicast != Broadcast
Exactly, two people editting the same document at the same time is a recipe for disaster. I don't mind collaborating, but you can bet that I want some tools that will allow me to keep a revision history of any editting done. The last thing I would want is some hoser editting out the last 4 hours of my work.
There is more to QuickTime than Sorensen. And Apple was the first company to include video playback that's as easy to use as editing a text doc.
/LOT/ of development effort went into QuickTime (and QuickTime VR etc.)
A
Why yes, I AM a rocket scientist!
Dude, you're wrong all over the place.
p
FireWire: http://www.pcmag.com/article2/0,4149,848866,00.as
ColorSync: Implementation is half the battle, but they didn't invent color matching. They made it work transparently.
QuickTime: QuickTime is more than just a codec. It's a time-based media framework that is unlike anything that came before it. Sorenson is just a piece of the puzzle, like M-JPEG and Cinepac.
How about network autodiscovery and physical networks that anyone could use? (AppleTalk and LocalTalk).
Or simple and obvious multiple monitors? Plug another video card in and get a bigger desktop. In 1987!
Perhaps you're blinded by the hatred you have for something that is pretty trivial in the scheme of things.
It's just a media player with a codec
Was that the most ill-informed comment on Slashdot evah? You certainly don't know much about QuickTime - come back once you've done some reading. I guess you think the Mercedes S-Class is a hunk of steel with an engine?
--
Reverse outsourcing: it's the future
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
Okay, granted. It's good to have choice, isn't it? Hydra looks easier to use for many people.
At microsoft it appears NetMeeting is frozen back at Win98 / NT4, which is less good. I code for web in a Windows shop (Mac at home); I'll look into NetMeeting more.
It's already cool as a 1.0 product, it's FREE, and it may help inspire a more collaborative workflow. (For some kinds of work, for some people, some of the time.)
Not into it? Scroll down instead of taking the time to complain. Jeez.
je ne suis pas un fou
...we used to do the same thing when they had the IBM PCjr demo machines at K-Mart. We'd grab an extra wireless keyboard and stand behind the people using the machine and "correct" their typing, much to their consternation.
...in real time doesn't mean the rest of us are also incapable.
I personally have never had a problem with pair programming. A lot of the time it's like having a second pair of eyes and two extra brain hemespheres, depending who you are working with...
Pair-Programming obviously isn't for you.
I've even found pair programming to be beneficial when sitting with someone who's either learning, or lacks experience as it forces me to explain coherantly what I'm doing and why I'm doing it, which I find helps give me perspective.
Like I said, Pair-Programming obviously isn't for you.
"Communism is like having one [local] phone company " - Lenny Bruce
Rendezvous basically allows all "nearby" copies of Hydra to find each other without any intervention from the users. So, it saves a config step and, especially with wireless networking, becomes a very convenient way to set up networks in general.
If you're really confused about what Rendezvous is, try substituting the words "Universal Plug and Play" or "Zero-conf networking" for Rendezvous and see if it helps...
Clear, Dark Skies
Suddenly, my iChat windows are full of "Message from Llama69: Hi! I'm from Hong Kong! What are you wearing?"
The whole point of Rendezvous is to support creating small short-lived networks. Why would you want a global presence for such a thing?
Clear, Dark Skies
Having just studied the Cocoa text system I'd be willing to bet they simply hooked up another field editor class to project builder's text system.
Cocoa's text system is, shall we say, different when compared with other toolkits. It exposes this amazing API that lays the fondation for text editors, word processors, desktop publishing, web browsers (Berners-Lee used cocoa's predecessors), and anything else which does any kind of text management or layout.
The only drawback I can see to it is that a programmer who expects to do one-off writing of text to a drawing surface is really in for a surprise. However, I'm in the process of porting wxWindows to run atop of Cocoa and have found that even one-off text drawing hardly takes much effort once you realize how the classes (NSTextStorage, NSLayoutManager, and NSTextContainer) interact with each other.
No, there were multiple wheel mouse vendors that predated them. MS was the first one to popularize the wheel mouse, and to get it working well with lots of apps.
May we never see th
Yeah, tons.
- Sun: NFS
- Sun: NIS/NIS+
- Sun: NSS/PAM
- Intel and others: USB
- AMD and others: Hypertransport
- Sun: Java
Yeah, there's a lot of Sun in there, because I know their stuff better, but come off it. Companies invent stuff all the time, it just doesn't always turn into a viable product, and it doesn't often show up as a unique, identifiable thing.Hell, everything in linux was invented by someone; the free software people sure as hell didn't think of it. ;)
Speaking as the Debian maintainer for screen, I can tell you that multiple displays showing the same window works fine in any recent version (3.9.x).
This is a one-up to such a system. This allows people to do the editing at the same time, and one person's edits affect the other's document and vice versa. I think this might be a nice addition to a CVS system where is someone has a file checked out, you can open it "with" them and do work, and this pretty much resolves any conflict issues CVS needs to deal with.
CAn'T CompreHend SARcaSm?
I've seen alot of negative comments here about Hydra being Mac only. There is talk of making Hydra open source, perhaps you should contact the Hydra team and express intrest in porting Hydra to your favorite OS? If they do make it open source it's surely going to be because of intrest in the project and, as stated on their page, it surely will be a large undertaking due to the fact that it's written entirely in Objective C and Cocca. Unfortunately this means a complete re-write will be needed, but you didn't have anything to do this weekend, did you?
Also, if you want to get active about making Rendezvous a reality on more that just the Mac (which is what Apple and Zeroconf are hoping for), Zeroconf.org is a good place to start, and there is a SourceForge project devoted to Zeroconf on Unix and Linux as well.
CAn'T CompreHend SARcaSm?
Oh yeah another thing - who the hell programs in Objective C?
Only the people who know the difference..
why doesn't Cocoa offer Java and C++ direct integration
There's a tremendous impedance mismatch between Cocoa and C++. It's quite feasible for Obj-C apps to use legacy C++ code, but writing cocoa apps in C++ would be rather horrific.
Have a look at this link if you want to read about why Obj-C beats C++.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
Because C++ is not sufficiently dynamic. The Cocoa runtime needs to invoke dynamically determined methods on arbitrary objects. Objective C does this very easily, Java can do it with a bit of coaxing, C++ not at all.
How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
He was making a struct that overloaded a lot of operators. He would write the declare in the struct and then move down to the actual function. I was basically just following along (I'm still learning; he's teaching) at first, but then I started writing the declarations as he did the functions. So he got to really stick to what was actually the 'important' bits without any break in workflow, trusting that I'd get the 'clean-up' done. .cpp file--because we were just testing everything out.
This all happened in the same file--the wrong file, even ignoring the fact that it should have been done in a header and a
After that we went on to doing some design changes in two other files, a header and a .cpp. He modified my structs in the header while I changed all the code to reflect what he was doing.
So, yeah, it works in the real world. Obviously not for everyone, but it, for me, brought a new level of fun to coding, and also allowed me to watch someone better than me at work. And it was less work and less time for both of us. I can easily see this going places if you'd give it a nice thorough try.
dalamcd
moer liek CELtroid prime!!@1!
I haven't read *every* comment to see if this was already mentioned. But I saw some people disappointed that it 'only supported rendezvous' .. Please note that this application allows you to just join a session by specifying a host/ip as well, so it's not JUST rendezvous enabled.
Cheers,
-JD-
Nope. GNUstep.
Three of us used Hydra extensively this weekend, preparing editorial material for the next issue of our fanzine, Plokta. It's certainly much more than a demo, as some have suggested. We found it very straightforward and effective to use, and much simpler than any collaborative editing tool I've previously encountered. We were working in a single room on a wireless LAN. Hydra is a relatively simple text editor, with syntax colouring for a range of languages (as it has HTML, it satisfies my limited requirements in a text editor, too). Document owners can choose to share them (and whether to control user access to shares), and LAN users can see a list of all shared documents and ask to join those they're interested in working on. Once shared, text created by each participant is separately coloured. Participants are handily identified with iChat icons and the position of their cursor is noted. It works as advertised; it's possible to work fully interactively and edit simultaneously, which takes some getting used to. When editing editorial text, we would have found it helpful for deleted text to be indicated with strikethrough rather than just deleted. Otherwise Hydra was extremely handy. It both sped up and simplified the process of writing and re-writing material, and version control risks were eliminated. When material was ready to be imported to the laid out document, it could be cut-and-pasted from Hydra, rather than the usual process of saving a copy to the server and then opening on the machine on which the layout was being done. Only other drawback; those of the team not using Mac OS X were disenfranchised (it's taking advantage of Cocoa), and we just can't afford to buy those PowerBooks fast enough. We've also done a test session over the Internet; sharing documents (through our various firewalls) is slightly more fiddly. Once participants and documents are identified, the program remains as easy and straightforward as on Rendezvous. Our wishlist item; that this collaboration system is fully incorporated in Apple's rumoured forthcoming OS X native word processor. Bottom line; it's very useful indeed, and it's free.