Downtime

5:25 pm: Disqus is currently experiencing downtime due to a problem affecting all customers at our host. We are working hard to fix it and I’m sure they are too. If you are using our Wordpress plugin, your site should automatically revert to builtin comments. I will post updates here as we have them.

Update 5:35 pm: The issues at our host seem to be resolved. We are continuing to investigate the situation and preparing ways to respond to similar events in the future. We apologize to everyone for the interruption of service.

Update 5:50 pm: What happened is that a server room went offline at our host, and when it came back up all internal networks were disabled. More details as they emerge.

Comments

andrewbadr on August 21st 2008 in disqus

Update: Disqus for WordPress 2.01 released

To get the new plugin, just go to your website’s integration page and select WordPress (or download the zip directly here. If you already have 2.0 installed, you should be prompted to update when you visit your WordPress admin panel.

Not a Disqus member yet? No time like the present — come check it out.

The 2.01 update addresses a number of issues that some people were experiencing after installing the 2.0 release. It also adds back in a number of features that were missing from the previous release, so we highly recommend that everyone update.

We are constantly adding to our WordPress documentation for details and support.

Comments

Daniel on August 15th 2008 in disqus

Notes about the new plugin

We’ve had a lot of great interest in the Disqus for WordPress plugin 2.0, with many websites syncing their old comments up with Disqus. While the large majority went through the import process successfully, there was a significant number of people who were experiencing issues. These issues were:

  • Not being able to leave legacy mode
  • Importing only some of the comments
  • Issues with the RSS feed (FeedBurner)
  • Complete importing/exporting failure

Most of these issues are now fixed. You can get the latest repackage of the 2.0 release on the integration page.

If you’ve received an error during the process, we know about it. You will personally receive an email from Disqus when these issues are resolved for your website.

Finally, we will be releasing a 2.01 release of the plugin which everyone should update to. I apologize for the troubles and thank you for the great patience and feedback.

Comments

Daniel on August 13th 2008 in disqus

Introducing the New DISQUS


With this latest update, we are making Disqus easier, faster, and more portable. Simple enough, right? Let’s begin.
DISQUS
In reverse order!

Portable

WordPress Plugin 2.0

We’ve been working on improving integration with platforms. Available now, the new WordPress-Disqus plugin 2.0 features the following:

  • Comments are indexable by search engines (SEO-friendly)
  • Export and import of comments
  • Automatic synchronization between Disqus.com and your WordPress comments
  • Uses the new Disqus API
  • Moderate/administer your blog right from the WordPress admin

This update makes it easier than ever to try Disqus out.

Note about import: Comments imported into Disqus will be initially unclaimed. People can merge these comments with their Disqus profiles simply by claiming the comments.

The WordPress plugin is just one of the first uses of our new, revamped APIs, which we built to open Disqus up to developers. There are currently some developers using our API for custom integrations or connecting web applications with the Disqus network. We are still polishing up our public documentation, but they will be available soon.

Faster

Disqus now has a new look. The look itself isn’t faster — it’s accessing your stuff that is now speedier. The entire interface was retooled to improve how you use Disqus. Not only is using Disqus faster, we’ve worked on making the entire service quicker. We know many people trust our service to be fast and reliable so we spent some time making sure we’re delivering on this.

The New Homepage for Commenters

The new Disqus homepage is completely focused on you, the commenter. From the homepage, you are able to view your and friends’ comments, track replies, and manage everything from a single interface.

Adding and Following Friends

Following people’s comments has been improved. On someone’s profile, click “Follow”. You can view view all of your friends’ comments by toggling the button on the homepage.

Easier

New Admin Interface for Bloggers

Publishers, bloggers, or website owners have a hard job. The new Admin interface makes it much easier to moderate commenters and administer settings. We feel that the new Disqus.com is much more useful; we hope you take a look around and will agree with us.

Comment Blogs

Disqus also has new profiles for commenters. While familiar, the new profiles have one big difference: we’re treating them as comment-blogs. Many people don’t have a blog, but comment regularly all over the place. A comment blog is their place to collect and show off their thoughts. We have big plans for this, including customization.

Welcome

With 30,000 websites signed up, this network of connected, cross-platform discussions has been growing faster than ever. We intend for Disqus to grow alongside the great communities it’s helping bring together.

So, welcome to the new DISQUS.

Jobs

Disqus is hiring. We’re looking for smart developers to help take Disqus and online discussion to the next steps. If you’d like to join a fun, small and growing startup in San Francisco, send us your resume or portfolio to jobs@disqus.com.

Comments

Daniel on August 12th 2008 in disqus

Testing Django Applications

Tessie the Test Machine

So I’ve been here at Disqus for a month or so now. The biggest project on my plate had been testing. Because of the breadth of the Disqus software, my testing has to cover several different approaches to the platform.

The first two are fairly simple and well documented. The in-browser testing, less so.

The first two are easily supported in Django’s test framework. I can write python unittest classes that inherit from unittest.TestCase and Django test classes that inherit from django.test.TestCase and Django handles the rest. A quick python manage.py test is all it takes.

Selenium complicates things.

Since Selenium is scripting an actual browser, it needs a live web server to connect to and run tests against. I could run a webserver in a static location and point all Selenium tests at that server. This option, however, leaves us lacking in a couple of features that the Django test framework has left us accustomed to.

Django tests are run independently. A fresh database is created and optionally loaded from xml dumps between every method of tests in the test suite. As a result, one test has no effect on another. Simplifying cleanup and expected state.

If I run a static web server, I lose this benefit since the web server cannot use the test suite’s test database that gets recreated between every test.

This is a deal breaker. It makes Selenium tests much harder to write and maintain. As anyone who’s done testing knows, the harder tests are to write and maintain, the more likely they are to be ignored.

Enter Django Live Test Server Support

So I want to bring up a live server when starting every Selenium test. Turns out there was an existing Django ticket for this functionality posted two years ago.

So we here at Disqus decided this would a perfect opportunity to give something back to the Django community and help out anyone else setting out to do testing similar to ours. Along those lines, I’ve written a patch that adds the functionality to start and stop a test server in the Django TestCase class. Which we can use as follows:

class SampleLoginTest(TestCase):

    def setUp(self):
        self.start_test_server('0.0.0.0', 8000)
        self.selenium = selenium('localhost', 4444, '*pifirefox', 'http://127.0.0.1:8000')

    def tearDown(self):
        self.selenium.stop()
        self.stop_test_server()

    def test_login_fail(self):
        self.selenium.open('/')
        self.selenium.click('link=Login')
    ...

And so on.

We’re now using this patch on our internal copy of Django to manage our Selenium tests helping us keep a better eye on keeping everything working as expected.

We thought we’d share. If you’re setting out on writing tests for a Django application give the patch a try and let me know what you think. Questions and comments welcome at the usual place.

Happy testing!

Comments

Devin on July 21st 2008 in disqus

Message Flooding

One Disqus-enabled website was the recipient of an automated message flooding attack this morning. While malicious, it’s a bit different from what commercial spam is.

This attack put some stress on the Disqus service and a number of people may have had issues with accessing Disqus this morning. The entire incident, until all was completely smooth, lasted under 30 minutes. This was an isolated case and we’re implementing ways to address this moving forward.

Thanks,
Team Disqus

Comments

Daniel on July 15th 2008 in disqus

Claiming Your Unverified Profile and Comments

If you’ve posted a comment anonymously and now have a Disqus account, you can merge those old comments into your registered profile.

Head to the claim page to locate and claim your comments. Read on for a some information on how this works.

When a comment is posted, it can be one of two types:

  • a) Verified, posted by a registered member of Disqus
  • b) Unverified, posted “anonymously” by filling in some basic information (Name and email)

These comments are attached to a Disqus profile, which is also one of two types: either Verified or Unverified. To be verified, you must register an account so we know who you are.

A registered, verified account allows you more control and functionality: manage your past comments, receive email notifications, bypass most moderation, and rate other comments.

An unverified profile is indicated as this screenshot shows. If you come across your own unverified profile, click the “Claim” button to be taken to the Claim page.

That’s all, folks. Let us know if you run into any problems.

 

Comments

Daniel on July 7th 2008 in disqus

A Few Things For Thursday

Happy Thursday, friends. Here’s a few new (and short) things we wanted to point out.

  • For comments where a down arrow will not suffice, you can now allow people to explicitly flag inappropriate comments. It looks something like this:

    Toggle this under Access & Moderators.

  • If you would like to disable the short excerpt of your blog post from appearing on your Disqus community page, you can now toggle that under Extras.

  • Our pals at joomlaworks have released a Disqus plugin for the Joomla! CMS.

  • Clickpass, the service we use to power our OpenID support, has made some updates. You can now log into Disqus with other accounts such as Google and Facebook. You can see the new button on the login page:

Comments

Daniel on June 26th 2008 in disqus

New: Enable Support for Trackbacks in Disqus

Trackbacks? We haz it. I won’t waste your precious time — here’s how you enable it.

Go to the Configure tab and scroll down to General Settings. Check the box and let it do its thing. This is our support for standard Trackbacks. More fun Linkback implementations still to come.

And since this is such a short post, I’ll round it off with the latest Wallstrip episode which features Disqus.

I know — you came for feature news and you’re greeted with that mug. Sorry guys, but it is how it is.

Comments

Daniel on June 17th 2008 in disqus

MintCache (simple version)

MintCache is a caching scheme Disqus has recently implemented. We posted Disqus’ implementation of MintCache for others to use.

From the original MintCache posting:

The purpose of this caching scheme is to avoid the dog-pile effect. Dog-piling is what normally happens when your data for the cache takes more time to generate than your server is answering requests per second. In other words if your data takes 5 seconds to generate and you are serving 10 requests per second, then when the data expires the normal cache schemes will spawn 50 attempts a regenerating the data before the first request completes. The increased load from the 49 redundant processes may further increase the time it takes to generate the data. If this happens then you are well on your way into a death spiral

MintCache works to prevent this scenario by using memcached to to keep track of not just an expiration date, but also a stale date The first client to request data past the stale date is asked to refresh the data, while subsequent requests are given the stale but not-yet-expired data as if it were fresh, with the undertanding that it will get refreshed in a ‘reasonable’ amount of time by that initial request.

Link: MintCache (simple version)

Comments

Daniel on June 11th 2008 in Django, Python, disqus