EtherPad Blog Feed

The EtherPad Blog

As promised, we hereby release all the source code to EtherPad.

http://code.google.com/p/etherpad/

Our goal with this release is to let the world run their own etherpad servers so that the functionality can live on even after we shut down etherpad.com.

If you are just interested in running an etherpad server, these instructions should get you up and running.

If you are interested in digging into the code and improving etherpad, then we will try to support you in our spare time until we begin working full-time on Google Wave in February.

In other news, you may have noticed that etherpad.com has had a lot of downtime lately. That is because of new server load issues caused by the higher traffic following our announced acquisition by Google. We are doing our best to keep the site up and running, but it's clear that we will not be able to do so indefinitely. Our plan remains to discontinue the hosted service completely by March 31st, 2010. New public pad creation may need to be shut down sooner, depending on whether traffic continues to grow or taper off. As usual, you can export your pad data through the "import/export" tab on the pad page or the "download" link at the bottom of the pad list on pro domains.

Although etherpad.com will be shutting down, our hope is that others will find a way to host improved etherpad servers themselves based on the source code. For those ambitious hackers out there, perhaps it would even be possible to get etherpad servers to talk to one another, as well as Google Wave servers, via the Google Wave Federation Protocol.

Dear EtherPad Users,

Many of you were not super thrilled with the transition plan we announced in our last blog post, which I guess is really quite flattering. We have worked with Google and the Google Wave team to make the following changes to the plan, which I think you will appreciate:

  • We have re-enabled pad creation from the EtherPad home page.
  • We have begun planning how to open source the code to EtherPad and the underlying AppJet Web Framework. We will continue maintaining new pad creation from the EtherPad home page at least until we have open sourced the code, and work hard to make sure there will be no or minimal service disruption in the future.
  • We are working with the Google Wave team to get all EtherPad users a chance to try out the Google Wave preview within the next couple of weeks. We do realize (as does the Google Wave team) that Wave doesn't yet have all the functionality you rely on, and isn't yet as mature as EtherPad. We are confident that in the long term you will be really happy with Google Wave, though. That's why we decided to join them!

The team we are joining already gets open source, and we hope that by releasing the code to EtherPad we will not only help you transition your existing workflow, but also contribute to the broader advancement of realtime collaboration technology.

I am sorry for disrupting your productivity, and I hope that this new transition plan helps you out.

Sincerely,

Aaron Iba
Former CEO of AppJet

We are happy to announce that AppJet Inc. has been acquired by Google. The EtherPad team will continue its work on realtime collaboration by joining the Google Wave team.

Update: We hear your feedback, and have a new transition plan.

For Current Users and Customers:

What will happen to my account? Will I still be able to use EtherPad?

The EtherPad site will stay online through March 2010 with some restrictions.

If you are a user of the Free Edition or Professional Edition, you can continue to use and edit your existing pads until March 31, 2010. No new free public pads may be created. Your pads will no longer be accessible after March 31, 2010, at which time your pads and any associated personally identifiable information will be deleted.

We have added a feature to the Professional Edition that allows you to export all of your pads as one ZIP file archive. You can find a link to the zip archive at the bottom of the pad list after signing in to your Professional Edition account.

Professional Edition users will not be charged for the EtherPad service after December 4th, 2009.

Private Network Edition customers may continue to use the version of the product that they have downloaded. AppJet will continue to offer support and maintenance services through the current term of any existing support and maintenance contracts, though no contracts will be renewed.

Users who have registered an email address with EtherPad will be emailed an invitation to join the Google Wave preview. Emails will be sent out by December 31, 2009.

Will EtherPad accept new customers?

No, EtherPad is no longer accepting new customers.

What about information I've already created?

For free public pads, you can continue to export the pad data to various formats through the "Import/Export" tab at the top of the pad page.

For Professional Edition pads, you can export pads individually or download a single ZIP file of all your pad data by clicking the "Download all pads" link at the bottom of the pad list.

Will I be charged for EtherPad through March 31, 2010?

No. EtherPad will not charge it users, including Professional Edition users, from December 4, 2009 through March 31, 2010. We will discontinue the service on March 31, 2010. No refunds of previously-paid amounts will be granted.

Can I get refund for amounts I previously paid EtherPad?

No refunds of previously-paid amounts will be granted.



For further inquiries, please contact press@google.com.

Our customers have been asking to embed EtherPad in their websites ever since we launched. Today, we're excited to announce a preview release of Embeddable EtherPad for the developer community, which allows EtherPad documents to be embedded in other web pages.

We have big plans for Embeddable EtherPad, and there will be enhancements in the weeks and months to come that make EtherPad embedding easier. In the meantime, if you know a bit about iframe elements, you can get started right away.

Embedding How-To

There are two main ways to embed pads.

* Embedding an Editable Pad

The first option is to embed an entire editable pad. All your visitors will have full access to the pad, and can modify it, save revisions, and view its history.

To embed a pad in your web page, point an iframe's src to an EtherPad URL. For example:

<iframe width=630 height=400 src="http://etherpad.com/foobar?fullScreen=1" />

This works for Professional Edition pads too. (If the pad isn't public, your visitors will be prompted to log in.)

* Embedding a Read-Only Pad (Broadcasting)

The second option is to embed a read-only view of a pad that updates live. We refer to this live updating as "broadcasting". It is useful for, among other things, live-blogging to a wide audience.

To embed the live-upating view, point an iframe's src to the time-slider view of your pad. For example:

<iframe width=630 height=400 src="http://etherpad.com/ep/pad/view/foobar/latest?fullScreen=1" />

Note that the above iframe code gives away the URL of the pad, so anyone can go and change the pad's text! To get around this, go to the time-slider page and click "Link to read-only page." You'll be taken to a page whose URL you can safely give out and embed without allowing others to edit your pad.

Advanced Options

There are a few advanced options available for you to customize how pads appear.

  1. Append &sidebar=0 to your URL to hide the sidebar on the pad and read-only pages.
  2. Append &displayName=name to your URL to name your users. (The name you choose will only be applied if your user hasn't visited EtherPad before and set their own name.)
  3. Append &slider=0 to hide the time-slider from the read-only page.

Using Embeddable EtherPad

We're working hard to make it easier for our users to embed an EtherPad page, and we're really excited about some of the possibilities. We envision bloggers live-blogging with auto-updating posts right in their blogs, teachers including pads in their class websites, and authors including a time-slider view of their work right in their webpages. Tell us how you're using Embeddable EtherPad in the comments below!

Introducing the Time-Slider

Have you ever forgot to hit "save" and lost work? Ever wished you could go back to an earlier version of a document to see how the document evolved?

Time-Slider Screenshot

Now you can. EtherPad keeps track of all your typing in realtime. With our new Time-Slider, you can browse the complete history of a document using a familiar user interface.

When writing, I often find I have a solid draft, but as I continue to edit I realize that my editing made things worse. Or sometimes a co-worker will edit a document I started, and take it in a different direction, and I will want to go back to my version. I used to deal with this by using "Save As...", but this just creates a mess of different files. Now, instead of saving a separate file, I just create a "bookmark" in the document's timeline using the EtherPad Time-Slider.

We've also found the Time-Slider to be interesting for watching how a document got to where it is. For example, a while back we captured Paul Graham writing an essay about startups, now viewable in our time-slider UI.

How to publish your own time-slider

To publish your own document with a visible timeline, click the "Time-Slider" at the top of a pad page, then click "view read-only", and then give out that URL. (The "read-only" URL will prevent people from being able to go back and edit the pad.)

Other Uses for Time-Slider

This is a new technology, so we're interested in how it might be applied. One friend of the company suggested this might be used to prevent plagiarism for English assignments, because it provides the equivalent of "showing your work" in math. How else might the time-slider be interesting or useful? Let us know in the comments!

This Post

Naturally, this post was written using EtherPad. You can view the history here.

EtherPad Private Network Edition (PNE) is now available for a one-time fee of $49.00/user. Purchasing a license is easy and convenient at our online store.

EtherPad PNE allows organizations to host EtherPad on their servers and inside their firewall, providing maximum security and data protection to keep sensitive documents safe.

PNE also offers an array of features not available in the free version of EtherPad:

  • Company-Wide Global Pad Tracking so you and your organization can constantly update and reference your EtherPad Documents.
  • Password protection on each individual pad. Working on something sensitive? You can password protect each PNE pad, and invite only those with whom you want to collaborate to see and edit the pad.
  • Unlimited viewers and collaborators on every pad. The free version of EtherPad limits the number of collaborators and viewers to 16 people per pad. With PNE you can get your entire organization on the same page. Next time you have an all-hands meeting, try using EtherPad to connect, share, and collaborate!

Learn more about EtherPad PNE.

We have just released EtherPad Private Network Edition 1.1.0. This version has some major new improvements, including a global list of pads within your organization, password-protected pads, import/export from Microsoft Word and other formats, a brand new design, and a new System Administrator's Manual.

We are excited that Google announced Wave at their IO Conference, as a statement about the importance of real-time applications. We are excited for many reasons, but here are four:

  1. Many of the impressive really real-time editing and collaboration features which were in the Wave demo are available today with EtherPad. Google explained how really real-time collaboration can save enterprises time, money and resources. EtherPad customers are already able to take advantage of this and we are pleased that Google will be supporting this movement.

  2. The Google Wave team acknowledged EtherPad in their white paper as the existing web app that achieves the real-time experience they're seeking. Interestingly, the pace of really real-time innovation is such that the white paper is already out-dated a few days after its release. We rolled out rich text formatting for EtherPad a day after the Google press release.

    We are also excited that the "PlayBack" feature has found its way into Wave, where editing history can be played back in sequence. We posted a playback demo some months ago that animates an essay being written, letter by letter, as stored in EtherPad's edit history. This feature will find its way into EtherPad soon as an integrated tool for tracking contributions to a document.

  3. Google's investment in Wave is a major validation that the really real-time collaboration space is important and growing. Many of us are former Google employees and we love to see that Google is validating the space in such a big and public way. We believe that other large companies will follow as the writing is now on the wall that the collaborative web necessitates real-time software.

  4. Collaboration software sometimes belongs behind the Firewall. Many companies and universities want to be able to run software behind their firewall because of security or latency. EtherPad offers our customers a choice between the Private Network Edition and the On-Demand Edition because this choice is important. The Wave team acknowledged this choice as well, with plans to make Wave installations available for behind the firewall.

So how is EtherPad different from Google Wave?

First, the Google Wave project is the start of an ambitious platform for the really real-time web, and sounds to be months of testing and polishing away from release, whereas EtherPad is available now, so it is a bit premature to compare the two. But from the early sneak previews, it appears that the scope of the Wave project is much larger, including elements of public social collaboration, photo and video sharing, private messaging, etc., while we have a specific focus on document collaboration. We think that Wave's additions are neat and could imagine an EtherPad/Wave integration being quite powerful for certain use cases. However, when it comes to the kind of written work that most knowledge workers need to produce, we think that less is more.

Building on our track record of being the first web application to roll out really real-time collaboration and history playback, we will continue to pioneer innovation at a rapid pace. We have a lot of exciting features in the pipeline right now that we can't wait to release to our growing base of EtherPad enthusiasts.

We will be looking into the Wave platform with great interest. Interoperability with Wave is a possibility, if it fits with our mission of providing the best user experience we can. Make no mistake, we want the Google Wave platform to succeed! Our broader mission is to improve the state of real-time collaboration for people around the globe, and we feel the space is so large that there is more than enough room for multiple companies to create value. So we will continue to add value to our users by listening with big ears and partnering with innovative companies both large and small.

Many of my friends ask me, "How do you all figure out which features to build first at Etherpad?"

It is easy to imagine an idea lab where mad computer scientists sit around in rooms with white boards filled with multi-color graffiti art of an algorithmic nature and that inspiration comes after hours of solo contemplation and concentration.

The reality is that we tend to build collaboratively and iteratively. We prioritize features by following a few simple rules.

  1. As Keith Ferrazzi once said, "Listen to your customers with big ears." We spend a lot of time talking with Etherpad users all over the globe, most often using Etherpad or a combination of Etherpad and WebEx/Skype/or an IPhone.
  2. We ask a lot of questions about how users are using Etherpad to solve their problems, to exchange ideas across their companies, agencies, schools or other organizations, to respond to customers faster, to generate new ideas, to run meetings more efficiently, to get everyone to contribute during conference calls, and to give and receive feedback faster and better.
  3. The whole Etherpad team then reads notes from the discussions we have and the written feedback we get from our users at feedback@etherpad.com. We find it far easier to discern patterns when there is a written record. We all add our thoughts or ideas to an Etherpad Features page. We choose to Listen With Big Ears to the needs of our customers and then keep asking questions until we really understand the essence of the challenges they are currently facing. Then we build features to solve those challenges.
  4. We use Etherpad every day. When you use your own product all the time, you discover the little features which would make for big improvements.
  5. We talk with product visionaries. We have an extensive network of colleagues who have built world-class software products—guys like Paul Buchheit (creator of Gmail), Dustin Moskovitz (Founder of Facebook), David Jeske (engineering manager of eleven products at Google), Paul Graham (founder of ViaWeb and YCombinator), Barney Pell (Founder of Powerset), and Mitch Kapor (Founder of Lotus and Mozilla Foundation) who we meet with on a regular basis and who provide us with really useful advice and concrete feature suggestions.
  6. Talk to mom and dad. We want to build powerful collaboration products which are deadly simple to use. Software should not require huge manuals and we do not like seeing mom spending tons of time scrolling through help menus. So we use the Parent Test. If our parents cannot use a new feature, then we go back to the drawing board until they can.
  7. We talk with IT managers. IT managers have used just about every piece of software under the sun and they have a tremendous amount of knowledge about what is needed within their organizations. These discussions have led to new insights for both the Private Network Edition and the public version of Etherpad.

If you wish to become actively involved, please feel free to drop us a line at <feedback@e***rp*d.com> or invite us to your pad via an Etherpad URL. We would love to listen!

—Daniel

We are pleased to release a number of exciting new features which were heavily requested by EtherPad users. Here are the new features and changes:

Rich Text

We added some simple rich text formatting to pads (bold, italic, underline). This will allow you to add structure to your pads, such as headings.

Saved Authorship with Revisions

We now preserve authorship information with saved revisions, so when you restore a previous revision, the author colors get restored.

Import & Export Files

We have added Import and Export for PDF, Text, Microsoft Word, and other file formats. If your company typically saves documents in Word format, it is now incredibly easy to export and save your EtherPad to Word or to import a Word document into Etherpad and collaboratively edit with colleagues anywhere in the world, and then export it back to a word file. (Thanks to famfamfam.com for the file icons).

View Zoom

You can now bump up the font size to ease the strain on your eyes. Tip: you can use more browser width and height by clicking the "Full window width" button.

Testimonials

We have been delighted and humbled by the warm letters of appreciation from thousands of individuals who took the time to write about us and we decided to share a few of their contributions with you. Please take a look at the testimonials and if you have other thoughts to share, feel free to email <feedback@e***rp*d.com>.

Please stay tuned for more feature upgrades and a major new release of the Private Network Edition of Etherpad. Thank you again for letting us know your thoughts and helping us shape the future of really real-time collaboration.

—Daniel

Here at AppJet, we need to get text (SMS) alerts on our phones when one of our servers goes down. One way to programmatically send text alerts is to use free email-to-text gateways. For example, <number>@txt.att.net will send a text to <number> on the AT&T network. Unfortunately, these email-to-text gateways can delay messages by 15 minutes or more, and sometimes even drop them entirely.

Brainstorming other ways to send text messages, I thought, why not use Twitter as a text gateway?

  • Step 1: Create a twitter "alert account" for your alerts.
  • Step 2: Hook up your "is it down?" script to send status updates your new twitter account.
  • Step 3: Follow your alert account with your own twitter account, and configure it to send tweets straight to your phone.

Twitter has a web API, making it easy to tweet. You can even get libraries for common languages (we use Winterwell's jtwitter.jar) so you don't have to do raw HTTP gets and puts. And once your alert script is tweeting, you can configure your own account to receive updates by text. It's four out of four for fast, easy, free, and reliable. As reliable as twitter is, anyway, which is good these days.

Easy, right? That said, there are a few issues to keep in mind.

First, if you're like us, you'll want to receive texts frequently while your service is down, just in case you don't hear your phone the first time. But setting your alert account's status to the same string as the previous status doesn't trigger an update, and you won't get a new alert. If you want to get lots of tweets, add something that changes to your tweets. We added a counter, which also has the benefit of giving us an instant sense for how long the alert's been ringing.

Second, twitter limits tweets to 140 characters, so you'll have to keep your alert message short. For us, this isn't a big problem: on rare occasions where we want to send more data, we usually just send an accompanying email with anything extra.

Third, your alerts will only be as reliable as twitter is. You'll want some kind of backup mechanism so that you're still being notified even if twitter either has downtime or delays your messages. We use email for this purpose. It's true, email won't wake you up in the middle of the night, but at least if it's daytime and you're in front of a computer, you won't be blithely ignorant.

Fourth and last, your alerts will show up in twitter searches by default. Depending on how open your company is, you may want to disable that. Oh, and you may not want just anyone following your alert account, but you can configure that too.

-J.D.

We have now released the fourth beta edition of Enterprise EtherPad: Private Network Edition and made the 60-day trial download public!

Play around with it, and we'd love to hear what you think.

We have a new site design for etherpad.com! What do you think?

This is the beginning of an ongoing experiment with the look & feel of the site. We may be changing it around some more in the upcoming weeks and months, so your feedback helps us as we go.

We have now opened the EtherPad site to the public, so anyone can create or edit pads. No more signing up for a beta account and keeping track of beta URLs.

Now go tell all your friends about EtherPad!

We have completed our re-write of the EtherPad software, which has included major scalability improvements to the AppJet Web Platform. Last night we switched over etherpad.com to run the new software, and so far it seems to be working without problems. (Let us know if you encounter anything wacky).

With just a few more load tests and last-minute tweaks, we expect to re-open the site to the public early next week.

We look forward to having a stable and scalable system so we can concentrate on developing new features! We've been reading your feedback and have lots of fun stuff planned.

Thanks to our infrastructure improvements, we've been able to invite everyone who's requested a beta invitation so far. Going forward we hope to respond to new requests within a few days.

Though this is a milestone for us, we still consider the site to be in "closed beta" while we tune the infrastructure and address connection issues and editor bugs. We have high standards for web apps, and we're happy to say that we've kept the site online through all the back-end changes, avoiding any data loss or extended down-time. We can't wait to re-open the site, better than ever, in early 2009.

The process of writing EtherPad has meant evolving the AppJet platform a lot, while being both its producers and consumers. It's thanks to AppJet that the EtherPad app went from conception to launch so quickly. Can a platform like AppJet be both "easy and powerful", like we say on the AppJet homepage, and drive substantial apps like EtherPad? It will when we're done with it!

Over the past 2 weeks, we have been slowly letting people in to the EtherPad beta from the waiting list. If you still have not received an invite, then thank you for being patient. We are working as hard as we can to upgrade our systems to support more users.

It turns out that scaling EtherPad is challenging. In particular, the database behind EtherPad documents has some unique requirements. First, not only are your changes to pads reflected on other users' screens in realtime, they are also saved to our database in realtime. This way, you can open up an EtherPad document, type a few characters, and when you reload the page those characters will still be there. This pattern of usage involves frequent writes to the database.

We have a system design that is going to be extremely high performance, reliable, and massively scalable, but it's going to take another few weeks to implement. It's tempting for us to make short-term fixes and hacks to temporarily increase our capacity, but this ends up hurting the product in the long term. For example, there are some quick fixes we could make that would limit the possible new features we could develop. Or we could let more people into the beta but allow the latency for text changes to increase.

Instead of implementing these temporary measures, we're working towards building a rock solid foundation that will satisfy our needs for a while. Once we have our new architecture in place, we'll be able to focus entirely on features. We have been reading your feedback diligently, and keeping track of every single feature that has been requested, and we have ambitious plans for improving the product to address all of your wants, while maintaining the simplicity and ease of use that brought you to EtherPad in the first place.

To give you a specific idea of our timeline, we hope to be completely caught up with the waiting list within the next few weeks. After that, we will probably stay in "beta" (where you must sign up before creating new pads), but we will reduce the time between signup and getting an invite to less than a day.

Thanks again for being patient. Now we're going to get back to work.

-- The AppJet Team

Wow. We had a feeling people would love the EtherPad product, but we had no idea that our traffic would grow so rapidly just from the initial launch. Thanks to all the enthusiastic users who submitted great feedback and helped to report connection problems! We read each and every one of the thousands of messages, and we sincerely appreciate them.

In short, we got way more traffic than we anticipated [1]. We will be able to keep up with the growth in the long term, but the initial surge of interest has been wreaking havoc on our servers. We ran load tests before we launched, but we didn't simulate the systematic effects of thousands of simultaneous typers sustained over days.

It's been exciting keeping our servers alive for the past few days. We've been sleeping in shifts, and Aaron wrote a script to play the Dr. Octagon song "Technical Difficulties" through a boom box at full volume every time the site went down. But working in that interrupt-driven mode left no time to resolve some of the bigger unexpected architectural issues required to provide a good experience for many thousands of simultaneous typers.

To address these issues, we're going to take a step back for a moment and restrict new pad creation to a beta sign-up list. (Existing pads will continue to work for anyone). This will let us focus on fixing core problems instead of fighting fires.

We appreciate your patience and hope to have the site back open to the public in short order. In the meantime, you can sign up for the beta or follow our mini progress updates on the appjet twitter feed.

With Warm Regards,

The AppJet Team

--

[1]

Perhaps if we thought more about it, we could have guessed this would happen. A site like EtherPad has what marketers call a "viral" growth pattern: it's more useful to you if you invite your friends, and then it's more useful to them when the do the same, etc. 80% of all people who visited a pad got there from a direct link or email invitation, suggesting that people were indeed sharing pads with others. On the other hand, you never know before you launch a product quite how much interest there will be.

EtherPad was created and hosted using the AppJet Web Platform, a new platorm we have have developed for building realtime web apps.

Historically, many of the best developer tools have emerged from specific applications that required them. During development, the application and tool progressed symbiotically, each to the other's benefit. This is how we hope EtherPad and AppJet will evolve.

Although this new version of AppJet is not yet released, here is a preview of some of the cool components we are building into it.

AppJet Features:

JavaScript execution on both the client and server

This enabled us to be more productive by writing all of EtherPad in the same language, and shuttle data between the client, server, and database all using JavaScript objects.

Scalable, cross-browser persistent client sockets

EtherPad changes show up on everyone's browser in real-time, so we needed to maintain a persistent connection to push data to client at all times. We have client and sever libraries that support "Comet" connections in a scalable and browser-compatible way.

Flexible, memory-cached JavaScript object database

All the objects that the EtherPad application code works with are JavaScript objects, so why on earth would we convert them to and from any other format when storing them in the database? EtherPad stores all its data in the AppJet Database, which automatically scales and caches itself in memory as necessary. This makes it fast to implement EtherPad features, fast to change storage models, and fast to serve requests in production.

Access to the world's biggest collection of libraries: the JVM

There are more high-quality and well-documented libraries written for the Java VM than for any other runtime. We wanted access to all of them when building EtherPad, so we made an easy way to import Java libraries for use in JavaScript, based on Rhino's JavaScript/Java bridge.

Obsessive focus on performance

We named it AppJet for a reason. Part of why AppJet is so fast is that it uses Rhino to compile JavaScript to Java bytecodes, which in turn run on top of the JVM. Many man-decades have gone into optimizing the JVM, and all of that work makes AppJet faster. To make the database fast, we automatically cache frequently used segments in memory. The net result is a full-stack platform for building web apps that supports rapid development and rapid performance in production.

Release Timeline

Currently we are fully focused on making EtherPad the best document collaboration application on the web. Eventually, we may release the AppJet Web Platform as its own product, but we have no firm plans to do so at the moment.

Welcome to the EtherPad Blog! This blog will chronicle interesting product or technical stories about EtherPad.

You may also be interested in The AppJet Blog. AppJet is the company and platform behind EtherPad.

Stay tuned!