From 0317cf960887c1f6512311565a28ebe3f78c216a Mon Sep 17 00:00:00 2001
From: Robin Ward <robin.ward@gmail.com>
Date: Wed, 24 Jul 2013 17:15:21 -0400
Subject: [PATCH] Show topics as a list of topics on the User Stream.

---
 .../templates/site_settings.js.handlebars     |   2 -
 .../site_settings/setting_bool.js.handlebars  |  20 +-
 .../site_settings/setting_enum.js.handlebars  |  32 ++-
 .../setting_string.js.handlebars              |  32 ++-
 .../javascripts/discourse/components/url.js   |   3 +
 .../discourse/components/utilities.js         |   2 +-
 .../discourse/controllers/list_controller.js  |  10 +
 .../controllers/list_topics_controller.js     |  10 +-
 .../preferences_about_controller.js           |  48 -----
 .../controllers/preferences_controller.js     |  18 --
 .../preferences_email_controller.js           |  29 ---
 .../preferences_username_controller.js        |  29 ---
 .../controllers/user_activity_controller.js   |  79 -------
 .../javascripts/discourse/mixins/load_more.js |  39 ++++
 .../discourse/models/topic_list.js            |  34 ++--
 .../javascripts/discourse/models/user.js      |   1 +
 .../discourse/models/user_action.js           |   6 +-
 .../discourse/models/user_stream.js           |   2 +-
 .../discourse/routes/filtered_list_route.js   |   2 -
 .../discourse/routes/preferences_routes.js    | 119 +++++++++++
 .../discourse/routes/user_invited_route.js    |  21 --
 .../discourse/routes/user_route.js            |  56 -----
 .../discourse/routes/user_routes.js           | 192 ++++++++++++++++++
 .../templates/embedded_post.js.handlebars     |  32 ++-
 .../discourse/templates/list.js.handlebars    |  44 ++++
 .../list/basic_topic_list.js.handlebars       |  55 +++++
 .../templates/list/list.js.handlebars         |   4 +-
 .../search/category_result.js.handlebars      |   9 +-
 .../search/topic_result.js.handlebars         |   9 +-
 .../search/user_result.js.handlebars          |  11 +-
 .../templates/suggested_topic.js.handlebars   |  43 ----
 .../discourse/templates/topic.js.handlebars   |  17 +-
 .../templates/user/activity.js.handlebars     |   5 +-
 .../templates/user/stream_item.js.handlebars  |  43 ++--
 .../templates/user/topics_list.js.handlebars  |   1 +
 .../discourse/views/embedded_post_view.js     |   5 +
 .../views/list/basic_topic_list_view.js       |  12 ++
 .../discourse/views/list/list_topics_view.js  |  30 +--
 .../discourse/views/list/list_view.js         |  32 ---
 .../views/list/paginated_topic_list_view.js   |  20 ++
 .../views/list/topic_list_item_view.js        |   4 +-
 .../views/search/search_results_type_view.js  |  17 +-
 .../discourse/views/suggested_topic_view.js   |  13 --
 .../views/user/activity_filter_view.js        |   2 +-
 .../discourse/views/user/user_stream_view.js  |  37 ++--
 app/assets/javascripts/main_include.js        |   1 +
 .../stylesheets/application/topic.css.scss    |   8 +-
 .../stylesheets/application/user.css.scss     | 102 +++++-----
 app/controllers/list_controller.rb            |  10 +-
 config/routes.rb                              |   1 +
 lib/tasks/integration.rake                    |   2 +-
 lib/topic_query.rb                            |   8 +
 test/javascripts/fixtures/list_fixtures.js    |   6 +-
 test/javascripts/fixtures/static_fixtures.js  |   4 +-
 test/javascripts/fixtures/topic_fixtures.js   |   2 +-
 test/javascripts/fixtures/user_fixtures.js    |  16 +-
 test/javascripts/integration/user_test.js     |   2 +-
 57 files changed, 743 insertions(+), 650 deletions(-)
 create mode 100644 app/assets/javascripts/discourse/mixins/load_more.js
 create mode 100644 app/assets/javascripts/discourse/routes/preferences_routes.js
 delete mode 100644 app/assets/javascripts/discourse/routes/user_invited_route.js
 delete mode 100644 app/assets/javascripts/discourse/routes/user_route.js
 create mode 100644 app/assets/javascripts/discourse/routes/user_routes.js
 create mode 100644 app/assets/javascripts/discourse/templates/list.js.handlebars
 create mode 100644 app/assets/javascripts/discourse/templates/list/basic_topic_list.js.handlebars
 delete mode 100644 app/assets/javascripts/discourse/templates/suggested_topic.js.handlebars
 create mode 100644 app/assets/javascripts/discourse/templates/user/topics_list.js.handlebars
 create mode 100644 app/assets/javascripts/discourse/views/list/basic_topic_list_view.js
 delete mode 100644 app/assets/javascripts/discourse/views/list/list_view.js
 create mode 100644 app/assets/javascripts/discourse/views/list/paginated_topic_list_view.js
 delete mode 100644 app/assets/javascripts/discourse/views/suggested_topic_view.js

diff --git a/app/assets/javascripts/admin/templates/site_settings.js.handlebars b/app/assets/javascripts/admin/templates/site_settings.js.handlebars
index 14ac8847d67..cb8270b8ba3 100644
--- a/app/assets/javascripts/admin/templates/site_settings.js.handlebars
+++ b/app/assets/javascripts/admin/templates/site_settings.js.handlebars
@@ -13,5 +13,3 @@
 
 {{collection contentBinding="filteredContent" classNames="form-horizontal settings" itemViewClass="Discourse.SiteSettingView"}}
 
-<!-- will remove as soon as I figure out what is going on -->
-<p><small>Diagnostics: last_message_processed {{diags.last_message_processed}}</small></p>
diff --git a/app/assets/javascripts/admin/templates/site_settings/setting_bool.js.handlebars b/app/assets/javascripts/admin/templates/site_settings/setting_bool.js.handlebars
index fec6d5f39b4..53282604f1d 100644
--- a/app/assets/javascripts/admin/templates/site_settings/setting_bool.js.handlebars
+++ b/app/assets/javascripts/admin/templates/site_settings/setting_bool.js.handlebars
@@ -1,11 +1,9 @@
-{{#with view.content}}
-  <div class='span4 offset1'>
-    <h3>{{unbound setting}}</h3>
-  </div>
-  <div class="span11">
-    <label>
-      {{view Ember.Checkbox checkedBinding="enabled" value="true"}}
-      {{unbound description}}
-    </label>
-  </div>
-{{/with}}
+<div class='span4 offset1'>
+  <h3>{{unbound setting}}</h3>
+</div>
+<div class="span11">
+  <label>
+    {{view Ember.Checkbox checkedBinding="enabled" value="true"}}
+    {{unbound description}}
+  </label>
+</div>
diff --git a/app/assets/javascripts/admin/templates/site_settings/setting_enum.js.handlebars b/app/assets/javascripts/admin/templates/site_settings/setting_enum.js.handlebars
index b8e8addd955..710505e110c 100644
--- a/app/assets/javascripts/admin/templates/site_settings/setting_enum.js.handlebars
+++ b/app/assets/javascripts/admin/templates/site_settings/setting_enum.js.handlebars
@@ -1,19 +1,17 @@
-{{#with view.content}}
-  <div class='span4 offset1'>
-     <h3>{{unbound setting}}</h3>
+<div class='span4 offset1'>
+   <h3>{{unbound setting}}</h3>
+</div>
+<div class="span11">
+  {{combobox valueAttribute="value" content=validValues value=value none=allowsNone}}
+  <div class='desc'>{{unbound description}}</div>
+</div>
+{{#if dirty}}
+  <div class='span3'>
+    <button class='btn ok' {{action save this}}><i class='icon-ok'></i></button>
+    <button class='btn cancel' {{action cancel this}}><i class='icon-remove'></i></button>
   </div>
-  <div class="span11">
-    {{combobox valueAttribute="value" content=validValues value=value none=allowsNone}}
-    <div class='desc'>{{unbound description}}</div>
-  </div>
-  {{#if dirty}}
-    <div class='span3'>
-      <button class='btn ok' {{action save this}}><i class='icon-ok'></i></button>
-      <button class='btn cancel' {{action cancel this}}><i class='icon-remove'></i></button>
-    </div>
-  {{else}}
-    {{#if overridden}}
-      <button class='btn' href='#' {{action resetDefault this}}>{{i18n admin.site_settings.reset}}</button>
-    {{/if}}
+{{else}}
+  {{#if overridden}}
+    <button class='btn' href='#' {{action resetDefault this}}>{{i18n admin.site_settings.reset}}</button>
   {{/if}}
-{{/with}}
\ No newline at end of file
+{{/if}}
diff --git a/app/assets/javascripts/admin/templates/site_settings/setting_string.js.handlebars b/app/assets/javascripts/admin/templates/site_settings/setting_string.js.handlebars
index 935875be57d..647644cf9a1 100644
--- a/app/assets/javascripts/admin/templates/site_settings/setting_string.js.handlebars
+++ b/app/assets/javascripts/admin/templates/site_settings/setting_string.js.handlebars
@@ -1,19 +1,17 @@
-{{#with view.content}}
-  <div class='span4 offset1'>
-     <h3>{{unbound setting}}</h3>
+<div class='span4 offset1'>
+   <h3>{{unbound setting}}</h3>
+</div>
+<div class="span11">
+  {{textField value=value classNames="input-xxlarge"}}
+  <div class='desc'>{{unbound description}}</div>
+</div>
+{{#if dirty}}
+  <div class='span3'>
+    <button class='btn ok' {{action save this}}><i class='icon-ok'></i></button>
+    <button class='btn cancel' {{action cancel this}}><i class='icon-remove'></i></button>
   </div>
-  <div class="span11">
-    {{textField value=value classNames="input-xxlarge"}}
-    <div class='desc'>{{unbound description}}</div>
-  </div>
-  {{#if dirty}}
-    <div class='span3'>
-      <button class='btn ok' {{action save this}}><i class='icon-ok'></i></button>
-      <button class='btn cancel' {{action cancel this}}><i class='icon-remove'></i></button>
-    </div>
-  {{else}}
-    {{#if overridden}}
-      <button class='btn' href='#' {{action resetDefault this}}>{{i18n admin.site_settings.reset}}</button>
-    {{/if}}
+{{else}}
+  {{#if overridden}}
+    <button class='btn' href='#' {{action resetDefault this}}>{{i18n admin.site_settings.reset}}</button>
   {{/if}}
-{{/with}}
\ No newline at end of file
+{{/if}}
diff --git a/app/assets/javascripts/discourse/components/url.js b/app/assets/javascripts/discourse/components/url.js
index 6589e1a836f..3eeae173754 100644
--- a/app/assets/javascripts/discourse/components/url.js
+++ b/app/assets/javascripts/discourse/components/url.js
@@ -64,6 +64,9 @@ Discourse.URL = Em.Object.createWithMixins({
     if (this.navigatedToListMore(oldPath, path)) { return; }
     if (this.navigatedToHome(oldPath, path)) { return; }
 
+    if (path.match(/^\/?users\/[^\/]+$/)) {
+      path += "/activity";
+    }
     // Be wary of looking up the router. In this case, we have links in our
     // HTML, say form compiled markdown posts, that need to be routed.
     var router = this.get('router');
diff --git a/app/assets/javascripts/discourse/components/utilities.js b/app/assets/javascripts/discourse/components/utilities.js
index ce3bf0af612..ce603061632 100644
--- a/app/assets/javascripts/discourse/components/utilities.js
+++ b/app/assets/javascripts/discourse/components/utilities.js
@@ -87,7 +87,7 @@ Discourse.Utilities = {
   },
 
   userUrl: function(username) {
-    return Discourse.getURL("/users/" + username);
+    return Discourse.getURL("/users/" + username.toLowerCase());
   },
 
   emailValid: function(email) {
diff --git a/app/assets/javascripts/discourse/controllers/list_controller.js b/app/assets/javascripts/discourse/controllers/list_controller.js
index 7e8405c3141..0fb4fd9292e 100644
--- a/app/assets/javascripts/discourse/controllers/list_controller.js
+++ b/app/assets/javascripts/discourse/controllers/list_controller.js
@@ -24,6 +24,16 @@ Discourse.ListController = Discourse.Controller.extend({
     });
   }.property(),
 
+  createTopicText: function() {
+    if (this.get('category.name')) {
+      return I18n.t("topic.create_in", {
+        categoryName: this.get('category.name')
+      });
+    } else {
+      return I18n.t("topic.create");
+    }
+  }.property('category.name'),
+
   /**
     Refresh our current topic list
 
diff --git a/app/assets/javascripts/discourse/controllers/list_topics_controller.js b/app/assets/javascripts/discourse/controllers/list_topics_controller.js
index 827d95b8430..511d39669b7 100644
--- a/app/assets/javascripts/discourse/controllers/list_topics_controller.js
+++ b/app/assets/javascripts/discourse/controllers/list_topics_controller.js
@@ -81,11 +81,11 @@ Discourse.ListTopicsController = Discourse.ObjectController.extend({
   }.property('allLoaded', 'topics.length'),
 
   loadMore: function() {
-    this.set('loadingMore', true);
-    var listTopicsController = this;
-    return this.get('model').loadMoreTopics().then(function(hasMoreTopics) {
-      listTopicsController.set('loadingMore', false);
-      return hasMoreTopics;
+    var topicList = this.get('model');
+    return topicList.loadMoreTopics().then(function(moreUrl) {
+      if (!Em.isEmpty(moreUrl)) {
+        Discourse.URL.replaceState(Discourse.getURL("/") + topicList.get('filter') + "/more");
+      }
     });
   }
 
diff --git a/app/assets/javascripts/discourse/controllers/preferences_about_controller.js b/app/assets/javascripts/discourse/controllers/preferences_about_controller.js
index 20ff80bde49..bb80f52889d 100644
--- a/app/assets/javascripts/discourse/controllers/preferences_about_controller.js
+++ b/app/assets/javascripts/discourse/controllers/preferences_about_controller.js
@@ -1,51 +1,3 @@
-/**
-  The route for editing a user's "About Me" bio.
-
-  @class PreferencesAboutRoute
-  @extends Discourse.RestrictedUserRoute
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.PreferencesAboutRoute = Discourse.RestrictedUserRoute.extend({
-  model: function() {
-    return this.modelFor('user');
-  },
-
-  renderTemplate: function() {
-    this.render({ into: 'user', outlet: 'userOutlet' });
-  },
-
-  setupController: function(controller, model) {
-    controller.setProperties({ model: model, newBio: model.get('bio_raw') });
-  },
-
-  // A bit odd, but if we leave to /preferences we need to re-render that outlet
-  exit: function() {
-    this._super();
-    this.render('preferences', { into: 'user', outlet: 'userOutlet', controller: 'preferences' });
-  },
-
-  events: {
-    changeAbout: function() {
-      var route = this;
-      var controller = route.controllerFor('preferencesAbout');
-
-      controller.setProperties({ saving: true });
-      return controller.get('model').save().then(function() {
-        controller.set('saving', false);
-        route.transitionTo('user.index');
-      }, function() {
-        // model failed to save
-        controller.set('saving', false);
-        alert(I18n.t('generic_error'));
-      });
-    }
-  }
-
-});
-
-
-
 /**
   This controller supports actions related to updating your "About Me" bio
 
diff --git a/app/assets/javascripts/discourse/controllers/preferences_controller.js b/app/assets/javascripts/discourse/controllers/preferences_controller.js
index 99c817df05b..69c4618d791 100644
--- a/app/assets/javascripts/discourse/controllers/preferences_controller.js
+++ b/app/assets/javascripts/discourse/controllers/preferences_controller.js
@@ -1,21 +1,3 @@
-/**
-  The common route stuff for a user's preference
-
-  @class PreferencesRoute
-  @extends Discourse.RestrictedUserRoute
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.PreferencesRoute = Discourse.RestrictedUserRoute.extend({
-  model: function() {
-    return this.modelFor('user');
-  },
-
-  renderTemplate: function() {
-    this.render('preferences', { into: 'user', outlet: 'userOutlet', controller: 'preferences' });
-  }
-});
-
 /**
   This controller supports actions related to updating one's preferences
 
diff --git a/app/assets/javascripts/discourse/controllers/preferences_email_controller.js b/app/assets/javascripts/discourse/controllers/preferences_email_controller.js
index 0a272995836..e07506f8676 100644
--- a/app/assets/javascripts/discourse/controllers/preferences_email_controller.js
+++ b/app/assets/javascripts/discourse/controllers/preferences_email_controller.js
@@ -1,32 +1,3 @@
-/**
-  The route for editing a user's email
-
-  @class PreferencesEmailRoute
-  @extends Discourse.RestrictedUserRoute
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.PreferencesEmailRoute = Discourse.RestrictedUserRoute.extend({
-  model: function() {
-    return this.modelFor('user');
-  },
-
-  renderTemplate: function() {
-    this.render({ into: 'user', outlet: 'userOutlet' });
-  },
-
-  setupController: function(controller, model) {
-    controller.setProperties({ model: model, newEmail: model.get('email') });
-  },
-
-  // A bit odd, but if we leave to /preferences we need to re-render that outlet
-  exit: function() {
-    this._super();
-    this.render('preferences', { into: 'user', outlet: 'userOutlet', controller: 'preferences' });
-  }
-});
-
-
 /**
   This controller supports actions related to updating one's email address
 
diff --git a/app/assets/javascripts/discourse/controllers/preferences_username_controller.js b/app/assets/javascripts/discourse/controllers/preferences_username_controller.js
index d0b59895c9b..e011feeb0c1 100644
--- a/app/assets/javascripts/discourse/controllers/preferences_username_controller.js
+++ b/app/assets/javascripts/discourse/controllers/preferences_username_controller.js
@@ -1,32 +1,3 @@
-/**
-  The route for updating a user's username
-
-  @class PreferencesUsernameRoute
-  @extends Discourse.RestrictedUserRoute
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.PreferencesUsernameRoute = Discourse.RestrictedUserRoute.extend({
-  model: function() {
-    return this.modelFor('user');
-  },
-
-  renderTemplate: function() {
-    return this.render({ into: 'user', outlet: 'userOutlet' });
-  },
-
-  // A bit odd, but if we leave to /preferences we need to re-render that outlet
-  exit: function() {
-    this._super();
-    this.render('preferences', { into: 'user', outlet: 'userOutlet', controller: 'preferences' });
-  },
-
-  setupController: function(controller, user) {
-    controller.setProperties({ model: user, newUsername: user.get('username') });
-  }
-});
-
-
 /**
   This controller supports actions related to updating one's username
 
diff --git a/app/assets/javascripts/discourse/controllers/user_activity_controller.js b/app/assets/javascripts/discourse/controllers/user_activity_controller.js
index e07c1b9de0c..e6d86742c3e 100644
--- a/app/assets/javascripts/discourse/controllers/user_activity_controller.js
+++ b/app/assets/javascripts/discourse/controllers/user_activity_controller.js
@@ -1,82 +1,3 @@
-/**
-  The base route for showing an activity stream.
-
-  @class UserActivityRoute
-  @extends Discourse.Route
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.UserActivityRoute = Discourse.Route.extend({
-  renderTemplate: function() {
-    this.render('user_activity', {into: 'user', outlet: 'userOutlet' });
-  },
-
-  model: function() {
-    return this.modelFor('user');
-  },
-
-  setupController: function(controller, user) {
-    this.controllerFor('userActivity').set('model', user);
-
-    var composerController = this.controllerFor('composer');
-    controller.set('model', user);
-    if (Discourse.User.current()) {
-      Discourse.Draft.get('new_private_message').then(function(data) {
-        if (data.draft) {
-          composerController.open({
-            draft: data.draft,
-            draftKey: 'new_private_message',
-            ignoreIfChanged: true,
-            draftSequence: data.draft_sequence
-          });
-        }
-      });
-    }
-  }
-});
-
-Discourse.UserActivityIndexRoute = Discourse.Route.extend({
-  model: function() {
-    return this.modelFor('user').findStream(this.get('userActionType'));
-  },
-
-  renderTemplate: function() {
-    this.render('user_stream', {into: 'user_activity', outlet: 'activity'});
-  },
-
-  setupController: function() {
-    this.controllerFor('user_activity').set('userActionType', this.get('userActionType'));
-  }
-});
-
-Discourse.UserIndexRoute = Discourse.UserActivityRoute.extend({
-  renderTemplate: function() {
-    this._super();
-    this.render('user_stream', {into: 'user_activity', outlet: 'activity'});
-  },
-
-  model: function() {
-    return this.modelFor('user').findStream();
-  },
-
-  setupController: function(controller, model) {
-    this.controllerFor('userActivity').set('model', this.modelFor('user'));
-    this.set('model', model);
-  }
-});
-
-// Build all the filter routes
-Object.keys(Discourse.UserAction.TYPES).forEach(function (userAction) {
-  Discourse["UserActivity" + userAction.classify() + "Route"] = Discourse.UserActivityIndexRoute.extend({
-    userActionType: Discourse.UserAction.TYPES[userAction]
-  });
-});
-
-// // Build the private message routes
-Discourse.UserPrivateMessagesRoute = Discourse.UserActivityRoute.extend({});
-Discourse.UserPrivateMessagesIndexRoute = Discourse.UserActivityMessagesReceivedRoute;
-Discourse.UserPrivateMessagesSentRoute = Discourse.UserActivityMessagesSentRoute;
-
 /**
   This controller supports all actions on a user's activity stream
 
diff --git a/app/assets/javascripts/discourse/mixins/load_more.js b/app/assets/javascripts/discourse/mixins/load_more.js
new file mode 100644
index 00000000000..388fc2e938a
--- /dev/null
+++ b/app/assets/javascripts/discourse/mixins/load_more.js
@@ -0,0 +1,39 @@
+/**
+  This mixin provides the ability to load more items for a view which is
+  scrolled to the bottom.
+
+  @class Discourse.LoadMore
+  @extends Ember.Mixin
+  @uses Discourse.Scrolling
+  @namespace Discourse
+  @module Discourse
+**/
+Discourse.LoadMore = Em.Mixin.create(Discourse.Scrolling, {
+
+  scrolled: function(e) {
+    var eyeline = this.get('eyeline');
+    if (eyeline) { eyeline.update(); }
+  },
+
+  loadMore: function() {
+    console.error('loadMore() not defined');
+  },
+
+  didInsertElement: function() {
+    this._super();
+    var eyeline = new Discourse.Eyeline(this.get('eyelineSelector'));
+    this.set('eyeline', eyeline);
+
+    var paginatedTopicListView = this;
+    eyeline.on('sawBottom', function() {
+      paginatedTopicListView.loadMore();
+    });
+    this.bindScrolling();
+  },
+
+  willRemoveElement: function() {
+    this._super();
+    this.unbindScrolling();
+  }
+
+});
diff --git a/app/assets/javascripts/discourse/models/topic_list.js b/app/assets/javascripts/discourse/models/topic_list.js
index 808b6a8b410..52d09a94098 100644
--- a/app/assets/javascripts/discourse/models/topic_list.js
+++ b/app/assets/javascripts/discourse/models/topic_list.js
@@ -23,32 +23,37 @@ Discourse.TopicList = Discourse.Model.extend({
   },
 
   loadMoreTopics: function() {
-    var moreUrl, _this = this;
 
-    if (moreUrl = this.get('more_topics_url')) {
-      Discourse.URL.replaceState(Discourse.getURL("/") + (this.get('filter')) + "/more");
+    if (this.get('loadingMore')) { return Ember.RSVP.reject(); }
+
+    var moreUrl = this.get('more_topics_url');
+    if (moreUrl) {
+
+      var topicList = this;
+      this.set('loadingMore', true);
+
       return Discourse.ajax({url: moreUrl}).then(function (result) {
-        var newTopics, topics, topicsAdded = 0;
+        var topicsAdded = 0;
         if (result) {
           // the new topics loaded from the server
-          newTopics = Discourse.TopicList.topicsFrom(result);
-          topics = _this.get("topics");
+          var newTopics = Discourse.TopicList.topicsFrom(result);
+          var topics = topicList.get("topics");
 
-          _this.forEachNew(newTopics, function(t) {
+          topicList.forEachNew(newTopics, function(t) {
             t.set('highlight', topicsAdded++ === 0);
             topics.pushObject(t);
           });
 
-          _this.set('more_topics_url', result.topic_list.more_topics_url);
-          Discourse.set('transient.topicsList', _this);
+          topicList.set('more_topics_url', result.topic_list.more_topics_url);
+          Discourse.set('transient.topicsList', topicList);
+          topicList.set('loadingMore', false);
+
+          return result.topic_list.more_topics_url;
         }
-        return result.topic_list.more_topics_url;
       });
     } else {
       // Return a promise indicating no more results
-      return Ember.Deferred.promise(function (p) {
-        p.resolve(false);
-      });
+      return Ember.RSVP.reject();
     }
   },
 
@@ -109,6 +114,9 @@ Discourse.TopicList.reopenClass({
     categories = this.extractByKey(result.categories, Discourse.Category);
     users = this.extractByKey(result.users, Discourse.User);
     topics = Em.A();
+
+    console.log(result.topic_list);
+
     _.each(result.topic_list.topics,function(ft) {
       ft.category = categories[ft.category_id];
       _.each(ft.posters,function(p) {
diff --git a/app/assets/javascripts/discourse/models/user.js b/app/assets/javascripts/discourse/models/user.js
index 898bd881c7a..a21ffeb93c9 100644
--- a/app/assets/javascripts/discourse/models/user.js
+++ b/app/assets/javascripts/discourse/models/user.js
@@ -264,6 +264,7 @@ Discourse.User = Discourse.Model.extend({
         json.user.invited_by = Discourse.User.create(json.user.invited_by);
       }
 
+
       user.setProperties(json.user);
       return user;
     });
diff --git a/app/assets/javascripts/discourse/models/user_action.js b/app/assets/javascripts/discourse/models/user_action.js
index 1dfd4375736..975e6b92a40 100644
--- a/app/assets/javascripts/discourse/models/user_action.js
+++ b/app/assets/javascripts/discourse/models/user_action.js
@@ -99,7 +99,11 @@ Discourse.UserAction = Discourse.Model.extend({
   }.property('target_username'),
 
   targetUserUrl: Discourse.computed.url('target_username', '/users/%@'),
-  userUrl: Discourse.computed.url('username', '/users/%@'),
+  usernameLower: function() {
+    return this.get('username').toLowerCase();
+  }.property('username'),
+
+  userUrl: Discourse.computed.url('usernameLower', '/users/%@'),
 
   postUrl: function() {
     return Discourse.Utilities.postUrl(this.get('slug'), this.get('topic_id'), this.get('post_number'));
diff --git a/app/assets/javascripts/discourse/models/user_stream.js b/app/assets/javascripts/discourse/models/user_stream.js
index a10193fff11..3a15cece1c5 100644
--- a/app/assets/javascripts/discourse/models/user_stream.js
+++ b/app/assets/javascripts/discourse/models/user_stream.js
@@ -18,7 +18,7 @@ Discourse.UserStream = Discourse.Model.extend({
 
   findItems: function() {
     var me = this;
-    if(this.get("loading")) { return; }
+    if(this.get("loading")) { return Ember.RSVP.reject(); }
     this.set("loading",true);
 
     var url = Discourse.getURL("/user_actions.json?offset=") + this.get('itemsLoaded') + "&username=" + (this.get('user.username_lower'));
diff --git a/app/assets/javascripts/discourse/routes/filtered_list_route.js b/app/assets/javascripts/discourse/routes/filtered_list_route.js
index 402546d2fea..163a08400a9 100644
--- a/app/assets/javascripts/discourse/routes/filtered_list_route.js
+++ b/app/assets/javascripts/discourse/routes/filtered_list_route.js
@@ -47,5 +47,3 @@ Discourse.FilteredListRoute = Discourse.Route.extend({
 Discourse.ListController.filters.forEach(function(filter) {
   Discourse["List" + (filter.capitalize()) + "Route"] = Discourse.FilteredListRoute.extend({ filter: filter });
 });
-
-
diff --git a/app/assets/javascripts/discourse/routes/preferences_routes.js b/app/assets/javascripts/discourse/routes/preferences_routes.js
new file mode 100644
index 00000000000..6e6e14160ee
--- /dev/null
+++ b/app/assets/javascripts/discourse/routes/preferences_routes.js
@@ -0,0 +1,119 @@
+/**
+  The common route stuff for a user's preference
+
+  @class PreferencesRoute
+  @extends Discourse.RestrictedUserRoute
+  @namespace Discourse
+  @module Discourse
+**/
+Discourse.PreferencesRoute = Discourse.RestrictedUserRoute.extend({
+  model: function() {
+    return this.modelFor('user');
+  },
+
+  renderTemplate: function() {
+    this.render('preferences', { into: 'user', outlet: 'userOutlet', controller: 'preferences' });
+  }
+});
+
+/**
+  The route for editing a user's "About Me" bio.
+
+  @class PreferencesAboutRoute
+  @extends Discourse.RestrictedUserRoute
+  @namespace Discourse
+  @module Discourse
+**/
+Discourse.PreferencesAboutRoute = Discourse.RestrictedUserRoute.extend({
+  model: function() {
+    return this.modelFor('user');
+  },
+
+  renderTemplate: function() {
+    this.render({ into: 'user', outlet: 'userOutlet' });
+  },
+
+  setupController: function(controller, model) {
+    controller.setProperties({ model: model, newBio: model.get('bio_raw') });
+  },
+
+  // A bit odd, but if we leave to /preferences we need to re-render that outlet
+  exit: function() {
+    this._super();
+    this.render('preferences', { into: 'user', outlet: 'userOutlet', controller: 'preferences' });
+  },
+
+  events: {
+    changeAbout: function() {
+      var route = this;
+      var controller = route.controllerFor('preferencesAbout');
+
+      controller.setProperties({ saving: true });
+      return controller.get('model').save().then(function() {
+        controller.set('saving', false);
+        route.transitionTo('user.index');
+      }, function() {
+        // model failed to save
+        controller.set('saving', false);
+        alert(I18n.t('generic_error'));
+      });
+    }
+  }
+
+});
+
+/**
+  The route for editing a user's email
+
+  @class PreferencesEmailRoute
+  @extends Discourse.RestrictedUserRoute
+  @namespace Discourse
+  @module Discourse
+**/
+Discourse.PreferencesEmailRoute = Discourse.RestrictedUserRoute.extend({
+  model: function() {
+    return this.modelFor('user');
+  },
+
+  renderTemplate: function() {
+    this.render({ into: 'user', outlet: 'userOutlet' });
+  },
+
+  setupController: function(controller, model) {
+    controller.setProperties({ model: model, newEmail: model.get('email') });
+  },
+
+  // A bit odd, but if we leave to /preferences we need to re-render that outlet
+  exit: function() {
+    this._super();
+    this.render('preferences', { into: 'user', outlet: 'userOutlet', controller: 'preferences' });
+  }
+});
+
+/**
+  The route for updating a user's username
+
+  @class PreferencesUsernameRoute
+  @extends Discourse.RestrictedUserRoute
+  @namespace Discourse
+  @module Discourse
+**/
+Discourse.PreferencesUsernameRoute = Discourse.RestrictedUserRoute.extend({
+  model: function() {
+    return this.modelFor('user');
+  },
+
+  renderTemplate: function() {
+    return this.render({ into: 'user', outlet: 'userOutlet' });
+  },
+
+  // A bit odd, but if we leave to /preferences we need to re-render that outlet
+  exit: function() {
+    this._super();
+    this.render('preferences', { into: 'user', outlet: 'userOutlet', controller: 'preferences' });
+  },
+
+  setupController: function(controller, user) {
+    controller.setProperties({ model: user, newUsername: user.get('username') });
+  }
+});
\ No newline at end of file
diff --git a/app/assets/javascripts/discourse/routes/user_invited_route.js b/app/assets/javascripts/discourse/routes/user_invited_route.js
deleted file mode 100644
index 53fd4e0f4c1..00000000000
--- a/app/assets/javascripts/discourse/routes/user_invited_route.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
-  This route shows who a user has invited
-
-  @class UserInvitedRoute
-  @extends Discourse.Route
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.UserInvitedRoute = Discourse.Route.extend({
-
-  renderTemplate: function() {
-    this.render({ into: 'user', outlet: 'userOutlet' });
-  },
-
-  model: function() {
-    return Discourse.InviteList.findInvitedBy(this.modelFor('user'));
-  }
-
-});
-
-
diff --git a/app/assets/javascripts/discourse/routes/user_route.js b/app/assets/javascripts/discourse/routes/user_route.js
deleted file mode 100644
index 52c4d048837..00000000000
--- a/app/assets/javascripts/discourse/routes/user_route.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
-  Handles routes related to users.
-
-  @class UserRoute
-  @extends Discourse.Route
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.UserRoute = Discourse.Route.extend({
-
-  model: function(params) {
-
-    // If we're viewing the currently logged in user, return that object
-    // instead.
-    var currentUser = Discourse.User.current();
-    if (currentUser && (params.username.toLowerCase() === currentUser.get('username_lower'))) {
-      return currentUser;
-    }
-
-    return Discourse.User.create({username: params.username});
-  },
-
-  afterModel: function() {
-    return this.modelFor('user').findDetails();
-  },
-
-  serialize: function(params) {
-    if (!params) return {};
-    return { username: Em.get(params, 'username').toLowerCase() };
-  },
-
-  setupController: function(controller, user) {
-    controller.set('model', user);
-
-    // Add a search context
-    this.controllerFor('search').set('searchContext', user.get('searchContext'));
-  },
-
-  activate: function() {
-    this._super();
-    var user = this.modelFor('user');
-    Discourse.MessageBus.subscribe("/users/" + user.get('username_lower'), function(data) {
-      user.loadUserAction(data);
-    });
-  },
-
-  deactivate: function() {
-    this._super();
-    Discourse.MessageBus.unsubscribe("/users/" + this.modelFor('user').get('username_lower'));
-
-    // Remove the search context
-    this.controllerFor('search').set('searchContext', null);
-  }
-
-
-});
diff --git a/app/assets/javascripts/discourse/routes/user_routes.js b/app/assets/javascripts/discourse/routes/user_routes.js
new file mode 100644
index 00000000000..f3977032db1
--- /dev/null
+++ b/app/assets/javascripts/discourse/routes/user_routes.js
@@ -0,0 +1,192 @@
+/**
+  Handles routes related to users.
+
+  @class UserRoute
+  @extends Discourse.Route
+  @namespace Discourse
+  @module Discourse
+**/
+Discourse.UserRoute = Discourse.Route.extend({
+
+  model: function(params) {
+
+    // If we're viewing the currently logged in user, return that object
+    // instead.
+    var currentUser = Discourse.User.current();
+    if (currentUser && (params.username.toLowerCase() === currentUser.get('username_lower'))) {
+      return currentUser;
+    }
+
+    return Discourse.User.create({username: params.username});
+  },
+
+  afterModel: function() {
+    return this.modelFor('user').findDetails();
+  },
+
+  serialize: function(params) {
+    if (!params) return {};
+    return { username: Em.get(params, 'username').toLowerCase() };
+  },
+
+  setupController: function(controller, user) {
+    controller.set('model', user);
+
+    // Add a search context
+    this.controllerFor('search').set('searchContext', user.get('searchContext'));
+  },
+
+  activate: function() {
+    this._super();
+    var user = this.modelFor('user');
+    Discourse.MessageBus.subscribe("/users/" + user.get('username_lower'), function(data) {
+      user.loadUserAction(data);
+    });
+  },
+
+  deactivate: function() {
+    this._super();
+    Discourse.MessageBus.unsubscribe("/users/" + this.modelFor('user').get('username_lower'));
+
+    // Remove the search context
+    this.controllerFor('search').set('searchContext', null);
+  }
+
+});
+
+/**
+  This route shows who a user has invited
+
+  @class UserInvitedRoute
+  @extends Discourse.Route
+  @namespace Discourse
+  @module Discourse
+**/
+Discourse.UserInvitedRoute = Discourse.Route.extend({
+  renderTemplate: function() {
+    this.render({ into: 'user', outlet: 'userOutlet' });
+  },
+
+  model: function() {
+    return Discourse.InviteList.findInvitedBy(this.modelFor('user'));
+  }
+});
+
+
+/**
+  The base route for showing a user's activity
+
+  @class UserActivityRoute
+  @extends Discourse.Route
+  @namespace Discourse
+  @module Discourse
+**/
+Discourse.UserActivityRoute = Discourse.Route.extend({
+  renderTemplate: function() {
+    this.render('user_activity', {into: 'user', outlet: 'userOutlet' });
+  },
+
+  model: function() {
+    return this.modelFor('user');
+  },
+
+  setupController: function(controller, user) {
+    this.controllerFor('userActivity').set('model', user);
+
+    var composerController = this.controllerFor('composer');
+    controller.set('model', user);
+    if (Discourse.User.current()) {
+      Discourse.Draft.get('new_private_message').then(function(data) {
+        if (data.draft) {
+          composerController.open({
+            draft: data.draft,
+            draftKey: 'new_private_message',
+            ignoreIfChanged: true,
+            draftSequence: data.draft_sequence
+          });
+        }
+      });
+    }
+  }
+});
+Discourse.UserPrivateMessagesRoute = Discourse.UserActivityRoute.extend({});
+
+/**
+  If we request /user/eviltrout without a sub route.
+
+  @class UserIndexRoute
+  @extends Discourse.Route
+  @namespace Discourse
+  @module Discourse
+**/
+Discourse.UserIndexRoute = Discourse.UserActivityRoute.extend({
+  redirect: function() {
+    this.transitionTo('userActivity', this.modelFor('user'));
+  }
+});
+
+/**
+  The base route for showing an activity stream.
+
+  @class UserActivityStreamRoute
+  @extends Discourse.Route
+  @namespace Discourse
+  @module Discourse
+**/
+Discourse.UserActivityStreamRoute = Discourse.Route.extend({
+  model: function() {
+    return this.modelFor('user').findStream(this.get('userActionType'));
+  },
+
+  renderTemplate: function() {
+    this.render('user_stream', {into: 'user_activity', outlet: 'activity'});
+  },
+
+  setupController: function(controller, model) {
+    controller.set('model', model);
+    this.controllerFor('user_activity').set('userActionType', this.get('userActionType'));
+  }
+});
+
+// Build all activity stream routes
+['bookmarks', 'edits', 'likes_given', 'likes_received', 'replies', 'posts', 'index'].forEach(function (userAction) {
+  Discourse["UserActivity" + userAction.classify() + "Route"] = Discourse.UserActivityStreamRoute.extend({
+    userActionType: Discourse.UserAction.TYPES[userAction]
+  });
+});
+
+Discourse.UserPrivateMessagesIndexRoute = Discourse.UserActivityStreamRoute.extend({
+  userActionType: Discourse.UserAction.TYPES.messages_received
+});
+Discourse.UserPrivateMessagesSentRoute = Discourse.UserActivityStreamRoute.extend({
+  userActionType: Discourse.UserAction.TYPES.messages_sent
+});
+
+//Discourse.UserTopicsListView = Em.View.extend({ templateName: 'user/topics_list' });
+Discourse.UserTopicListRoute = Discourse.Route.extend({
+
+  renderTemplate: function() {
+    this.render('paginated_topic_list', {into: 'user_activity', outlet: 'activity'});
+  },
+
+  setupController: function(controller, model) {
+    this.controllerFor('user_activity').set('userActionType', this.get('userActionType'));
+    controller.set('model', model);
+  }
+});
+
+Discourse.UserActivityTopicsRoute = Discourse.UserTopicListRoute.extend({
+  userActionType: Discourse.UserAction.TYPES.topics,
+
+  model: function() {
+    return Discourse.TopicList.find('topics/created-by/' + this.modelFor('user').get('username_lower'));
+  }
+});
+
+Discourse.UserActivityFavoritesRoute = Discourse.UserTopicListRoute.extend({
+  userActionType: Discourse.UserAction.TYPES.favorites,
+
+  model: function() {
+    return Discourse.TopicList.find('favorited');
+  }
+});
diff --git a/app/assets/javascripts/discourse/templates/embedded_post.js.handlebars b/app/assets/javascripts/discourse/templates/embedded_post.js.handlebars
index b0d5e339670..0b1d9a70f09 100644
--- a/app/assets/javascripts/discourse/templates/embedded_post.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/embedded_post.js.handlebars
@@ -1,20 +1,18 @@
-{{#with view.content}}
-  <div class='row'>
-    <div class='topic-meta-data span2'>
-      <div class='contents'>
-        <div>
-          <a href='/users/{{unbound username}}'>{{avatar this imageSize="small"}}</a>
-        </div>
-        <h5 {{bindAttr class="staff new_user"}}><a href='{{unbound usernameUrl}}'>{{breakUp username}}</a></h5>
+<div class='row'>
+  <div class='topic-meta-data span2'>
+    <div class='contents'>
+      <div>
+        <a href='/users/{{unbound username}}'>{{avatar this imageSize="small"}}</a>
       </div>
-    </div>
-    <div class='span11 topic-body'>
-      <div class="topic-meta-data-inside">
-        <div class='post-info post-date'>{{unboundAgeWithTooltip created_at}}</div>
-        {{#if view.previousPost}}<a href='{{unbound url}}' class="post-info arrow" title="{{i18n topic.jump_reply_up}}"><i class='icon icon-arrow-up'></i></a>{{/if}}
-      </div>
-      {{{unbound cooked}}}
-      {{#unless view.previousPost}}<a href='{{unbound url}}' class="arrow" title="{{i18n topic.jump_reply_down}}"><i class='icon icon-arrow-down'></i></a>{{/unless}}
+      <h5 {{bindAttr class="staff new_user"}}><a href='{{unbound usernameUrl}}'>{{breakUp username}}</a></h5>
     </div>
   </div>
-{{/with}}
+  <div class='span11 topic-body'>
+    <div class="topic-meta-data-inside">
+      <div class='post-info post-date'>{{unboundAgeWithTooltip created_at}}</div>
+      {{#if view.previousPost}}<a href='{{unbound url}}' class="post-info arrow" title="{{i18n topic.jump_reply_up}}"><i class='icon icon-arrow-up'></i></a>{{/if}}
+    </div>
+    {{{unbound cooked}}}
+    {{#unless view.previousPost}}<a href='{{unbound url}}' class="arrow" title="{{i18n topic.jump_reply_down}}"><i class='icon icon-arrow-down'></i></a>{{/unless}}
+  </div>
+</div>
diff --git a/app/assets/javascripts/discourse/templates/list.js.handlebars b/app/assets/javascripts/discourse/templates/list.js.handlebars
new file mode 100644
index 00000000000..93a0534468a
--- /dev/null
+++ b/app/assets/javascripts/discourse/templates/list.js.handlebars
@@ -0,0 +1,44 @@
+<div id='list-controls'>
+  <div class="container">
+    <ul class="nav nav-pills" id='category-filter'>
+      {{each availableNavItems itemViewClass="Discourse.NavItemView"}}
+    </ul>
+
+    {{#if canCreateTopic}}
+      <button class='btn btn-default' {{action createTopic}}><i class='icon icon-plus'></i>{{createTopicText}}</button>
+    {{/if}}
+
+    {{#if canEditCategory}}
+      <button class='btn btn-default' {{action editCategory category}}>{{i18n category.edit_long}}</button>
+    {{/if}}
+
+    {{#if canCreateCategory}}
+      <button class='btn btn-default' {{action createCategory}}><i class='icon icon-plus'></i>{{i18n category.create}}</button>
+    {{/if}}
+
+  </div>
+</div>
+
+<div class="container">
+  <div class="row">
+    <div class="full-width">
+      <div id='list-area'>
+        {{#if loading}}
+          <div class='contents loading'>
+            <table id='topic-list'>
+              <tr>
+                <td colspan='8'>
+                  <div class='spinner'>{{i18n loading}}</div>
+                </td>
+              </tr>
+            </table>
+          </div>
+        {{/if}}
+
+        {{outlet listView}}
+      </div>
+    </div>
+  </div>
+</div>
+
+
diff --git a/app/assets/javascripts/discourse/templates/list/basic_topic_list.js.handlebars b/app/assets/javascripts/discourse/templates/list/basic_topic_list.js.handlebars
new file mode 100644
index 00000000000..60b0846a800
--- /dev/null
+++ b/app/assets/javascripts/discourse/templates/list/basic_topic_list.js.handlebars
@@ -0,0 +1,55 @@
+<table id="topic-list">
+  <tr>
+    <th>
+      {{i18n topic.title}}
+    </th>
+    <th>{{i18n category_title}}</th>
+    <th class='num posts'>{{i18n posts}}</th>
+    <th class='num likes'>{{i18n likes}}</th>
+    <th class='num views'>{{i18n views}}</th>
+    <th class='num activity' colspan='2'>{{i18n activity}}</th>
+  </tr>
+
+  {{#group}}
+    {{#collection contentBinding="view.topics" tagName="tbody" itemTagName="tr"}}
+      <td class='main-link'>
+        <a class='title' href="{{unbound lastReadUrl}}">{{{unbound fancy_title}}}</a>
+        {{#if unread}}
+          <a href="{{unbound lastReadUrl}}" class='badge unread badge-notification' title='{{i18n topic.unread_posts count="unread"}}'>{{unbound unread}}</a>
+        {{/if}}
+        {{#if new_posts}}
+          <a href="{{unbound lastReadUrl}}" class='badge new-posts badge-notification' title='{{i18n topic.new_posts count="new_posts"}}'>{{unbound new_posts}}</a>
+        {{/if}}
+        {{#if unseen}}
+          <a href="{{lastReadUrl}}" class='badge new-posts badge-notification' title='{{i18n topic.new}}'><i class='icon icon-asterisk'></i></a>
+        {{/if}}
+      </td>
+      <td class='category'>
+        {{categoryLink category}}
+      </td>
+      <td class='num posts'><a href="{{lastReadUrl}}" class='badge-posts'>{{number posts_count numberKey="posts_long"}}</a></td>
+
+      <td class='num likes'>
+        {{#if like_count}}
+          <a href='{{url}}{{#if has_best_of}}?filter=best_of{{/if}}'>{{like_count}} <i class='icon-heart'></i></a>
+        {{/if}}
+      </td>
+
+      <td {{bindAttr class=":num :views viewsHeat"}}>{{number views numberKey="views_long"}}</td>
+      {{#if bumped}}
+        <td class='num activity'>
+          <a href="{{url}}" {{{bindAttr class=":age ageCold"}}} title='{{i18n first_post}}: {{{unboundDate created_at}}}' >{{unboundAge created_at}}</a>
+        </td>
+        <td class='num activity last'>
+          <a href="{{lastPostUrl}}" class='age' title='{{i18n last_post}}: {{{unboundDate bumped_at}}}'>{{unboundAge bumped_at}}</a>
+        </td>
+      {{else}}
+        <td class='num activity'>
+          <a href="{{url}}" class='age' title='{{i18n first_post}}: {{{unboundDate created_at}}}'>{{unboundAge created_at}}</a>
+        </td>
+        <td class="activity"></td>
+      {{/if}}
+    {{/collection}}
+  {{/group}}
+
+</table>
\ No newline at end of file
diff --git a/app/assets/javascripts/discourse/templates/list/list.js.handlebars b/app/assets/javascripts/discourse/templates/list/list.js.handlebars
index 93e621f7727..93a0534468a 100644
--- a/app/assets/javascripts/discourse/templates/list/list.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/list/list.js.handlebars
@@ -5,7 +5,7 @@
     </ul>
 
     {{#if canCreateTopic}}
-      <button class='btn btn-default' {{action createTopic}}><i class='icon icon-plus'></i>{{view.createTopicText}}</button>
+      <button class='btn btn-default' {{action createTopic}}><i class='icon icon-plus'></i>{{createTopicText}}</button>
     {{/if}}
 
     {{#if canEditCategory}}
@@ -21,7 +21,6 @@
 
 <div class="container">
   <div class="row">
-
     <div class="full-width">
       <div id='list-area'>
         {{#if loading}}
@@ -39,7 +38,6 @@
         {{outlet listView}}
       </div>
     </div>
-
   </div>
 </div>
 
diff --git a/app/assets/javascripts/discourse/templates/search/category_result.js.handlebars b/app/assets/javascripts/discourse/templates/search/category_result.js.handlebars
index 0bf3bfba785..4b5219c2d15 100644
--- a/app/assets/javascripts/discourse/templates/search/category_result.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/search/category_result.js.handlebars
@@ -1,6 +1,3 @@
-{{#with view.content}}
-  <a href='{{unbound url}}'>
-    <span class='badge-category' style="background-color: #{{unbound color}}; color: #{{unbound text_color}};">{{unbound title}}</span>
-  </a>
-{{/with}}
-
+<a href='{{unbound url}}'>
+  <span class='badge-category' style="background-color: #{{unbound color}}; color: #{{unbound text_color}};">{{unbound title}}</span>
+</a>
diff --git a/app/assets/javascripts/discourse/templates/search/topic_result.js.handlebars b/app/assets/javascripts/discourse/templates/search/topic_result.js.handlebars
index 6e2fd5aee65..8455ef299b5 100644
--- a/app/assets/javascripts/discourse/templates/search/topic_result.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/search/topic_result.js.handlebars
@@ -1,6 +1,3 @@
-{{#with view.content}}
-  <a href='{{unbound url}}'>
-    {{unbound title}}
-  </a>
-{{/with}}
-
+<a href='{{unbound url}}'>
+  {{unbound title}}
+</a>
diff --git a/app/assets/javascripts/discourse/templates/search/user_result.js.handlebars b/app/assets/javascripts/discourse/templates/search/user_result.js.handlebars
index 92fa2dbbb4a..75e94c695b5 100644
--- a/app/assets/javascripts/discourse/templates/search/user_result.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/search/user_result.js.handlebars
@@ -1,7 +1,4 @@
-{{#with view.content}}
-  <a href='{{unbound url}}'>    
-    {{avatar this usernamePath="title" imageSize="small"}}
-    {{unbound title}}
-  </a>
-{{/with}}
-
+<a href='{{unbound url}}'>
+  {{avatar this usernamePath="title" imageSize="small"}}
+  {{unbound title}}
+</a>
diff --git a/app/assets/javascripts/discourse/templates/suggested_topic.js.handlebars b/app/assets/javascripts/discourse/templates/suggested_topic.js.handlebars
deleted file mode 100644
index 6fb2c16edc7..00000000000
--- a/app/assets/javascripts/discourse/templates/suggested_topic.js.handlebars
+++ /dev/null
@@ -1,43 +0,0 @@
-{{#with view.content}}
-  {{#group}}
-  <td class='main-link'>
-    <a class='title' href="{{unbound lastReadUrl}}">{{{unbound fancy_title}}}</a>
-    {{#if unread}}
-      <a href="{{unbound lastReadUrl}}" class='badge unread badge-notification' title='{{i18n topic.unread_posts count="unread"}}'>{{unbound unread}}</a>
-    {{/if}}
-    {{#if new_posts}}
-      <a href="{{unbound lastReadUrl}}" class='badge new-posts badge-notification' title='{{i18n topic.new_posts count="new_posts"}}'>{{unbound new_posts}}</a>
-    {{/if}}
-    {{#if unseen}}
-      <a href="{{lastReadUrl}}" class='badge new-posts badge-notification' title='{{i18n topic.new}}'><i class='icon icon-asterisk'></i></a>
-    {{/if}}
-  </td>
-  <td class='category'>
-    {{categoryLink category}}
-  </td>
-  <td class='num posts'><a href="{{lastReadUrl}}" class='badge-posts'>{{number posts_count numberKey="posts_long"}}</a></td>
-
-  <td class='num likes'>
-    {{#if like_count}}
-      <a href='{{url}}{{#if has_best_of}}?filter=best_of{{/if}}'>{{like_count}} <i class='icon-heart'></i></a>
-    {{/if}}
-  </td>
-
-  <td {{bindAttr class=":num :views viewsHeat"}}>{{number views numberKey="views_long"}}</td>
-
-  {{#if bumped}}
-    <td class='num activity'>
-      <a href="{{url}}" {{{bindAttr class=":age ageCold"}}} title='{{i18n first_post}}: {{{unboundDate created_at}}}' >{{unboundAge created_at}}</a>
-    </td>
-    <td class='num activity last'>
-      <a href="{{lastPostUrl}}" class='age' title='{{i18n last_post}}: {{{unboundDate bumped_at}}}'>{{unboundAge bumped_at}}</a>
-    </td>
-  {{else}}
-    <td class='num activity'>
-      <a href="{{url}}" class='age' title='{{i18n first_post}}: {{{unboundDate created_at}}}'>{{unboundAge created_at}}</a>
-    </td>
-    <td class="activity"></td>
-  {{/if}}
-
-  {{/group}}
-{{/with}}
diff --git a/app/assets/javascripts/discourse/templates/topic.js.handlebars b/app/assets/javascripts/discourse/templates/topic.js.handlebars
index 3c017d82630..95afda32679 100644
--- a/app/assets/javascripts/discourse/templates/topic.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/topic.js.handlebars
@@ -74,24 +74,9 @@
 
             {{#if details.suggested_topics.length}}
               <div id='suggested-topics'>
-
                 <h3>{{i18n suggested_topics.title}}</h3>
-
                 <div class='topics'>
-                  <table id="topic-list">
-                    <tr>
-                      <th>
-                        {{i18n topic.title}}
-                      </th>
-                      <th>{{i18n category_title}}</th>
-                      <th class='num posts'>{{i18n posts}}</th>
-                      <th class='num likes'>{{i18n likes}}</th>
-                      <th class='num views'>{{i18n views}}</th>
-                      <th class='num activity' colspan='2'>{{i18n activity}}</th>
-                    </tr>
-
-                  {{each details.suggested_topics itemTagName="tr" itemViewClass="Discourse.SuggestedTopicView"}}
-                  </table>
+                  {{basicTopicList topics=details.suggested_topics}}
                 </div>
                 <br/>
                 <h3>{{{view.browseMoreMessage}}}</h3>
diff --git a/app/assets/javascripts/discourse/templates/user/activity.js.handlebars b/app/assets/javascripts/discourse/templates/user/activity.js.handlebars
index 691e1147716..5887c6b9558 100644
--- a/app/assets/javascripts/discourse/templates/user/activity.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/user/activity.js.handlebars
@@ -57,6 +57,7 @@
   {{/if}}
 </div>
 
-
-{{outlet activity}}
+<div id='user-activity'>
+  {{outlet activity}}
+</div>
 
diff --git a/app/assets/javascripts/discourse/templates/user/stream_item.js.handlebars b/app/assets/javascripts/discourse/templates/user/stream_item.js.handlebars
index bd54a73287c..c0e22da011c 100644
--- a/app/assets/javascripts/discourse/templates/user/stream_item.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/user/stream_item.js.handlebars
@@ -1,24 +1,21 @@
-{{#with view.content}}
-  <div {{bindAttr class=":item hidden deleted moderator_action"}}>
-    <div class='clearfix info'>
-      <a href="{{unbound userUrl}}" class='avatar-link'><div class='avatar-wrapper'>{{avatar this imageSize="large" extraClasses="actor" ignoreTitle="true"}}</div></a>
-      <span class='time'>{{date path="created_at" leaveAgo="true"}}</span>
-      <span class="title">
-        <a href="{{unbound postUrl}}">{{unbound title}}</a>
-      </span>
-      <span class="type">{{unbound descriptionHtml}}</span>
-    </div>
-    <p class='excerpt'>
-    {{{unbound excerpt}}}
-    </p>
-    {{#each children}}
-      <div class='child-actions'>
-        <i class="icon {{unbound icon}}"></i>
-      {{#each items}}
-      <a href="{{unbound userUrl}}" class='avatar-link'><div class='avatar-wrapper'>{{avatar this imageSize="tiny" extraClasses="actor" ignoreTitle="true"}}</div></a>
-      {{/each}}
-      </div>
-    {{/each}}
+<div {{bindAttr class=":item hidden deleted moderator_action"}}>
+  <div class='clearfix info'>
+    <a href="{{unbound userUrl}}" class='avatar-link'><div class='avatar-wrapper'>{{avatar this imageSize="large" extraClasses="actor" ignoreTitle="true"}}</div></a>
+    <span class='time'>{{date path="created_at" leaveAgo="true"}}</span>
+    <span class="title">
+      <a href="{{unbound postUrl}}">{{unbound title}}</a>
+    </span>
+    <span class="type">{{unbound descriptionHtml}}</span>
   </div>
-{{/with}}
-
+  <p class='excerpt'>
+  {{{unbound excerpt}}}
+  </p>
+  {{#each children}}
+    <div class='child-actions'>
+      <i class="icon {{unbound icon}}"></i>
+    {{#each items}}
+    <a href="{{unbound userUrl}}" class='avatar-link'><div class='avatar-wrapper'>{{avatar this imageSize="tiny" extraClasses="actor" ignoreTitle="true"}}</div></a>
+    {{/each}}
+    </div>
+  {{/each}}
+</div>
diff --git a/app/assets/javascripts/discourse/templates/user/topics_list.js.handlebars b/app/assets/javascripts/discourse/templates/user/topics_list.js.handlebars
new file mode 100644
index 00000000000..54299a48fb3
--- /dev/null
+++ b/app/assets/javascripts/discourse/templates/user/topics_list.js.handlebars
@@ -0,0 +1 @@
+no
\ No newline at end of file
diff --git a/app/assets/javascripts/discourse/views/embedded_post_view.js b/app/assets/javascripts/discourse/views/embedded_post_view.js
index a7cbc247290..aff7e9e2cb4 100644
--- a/app/assets/javascripts/discourse/views/embedded_post_view.js
+++ b/app/assets/javascripts/discourse/views/embedded_post_view.js
@@ -10,6 +10,11 @@ Discourse.EmbeddedPostView = Discourse.View.extend({
   templateName: 'embedded_post',
   classNames: ['reply'],
 
+  init: function() {
+    this._super();
+    this.set('context', this.get('content'));
+  },
+
   didInsertElement: function() {
     Discourse.ScreenTrack.instance().track(this.get('elementId'), this.get('post.post_number'));
   },
diff --git a/app/assets/javascripts/discourse/views/list/basic_topic_list_view.js b/app/assets/javascripts/discourse/views/list/basic_topic_list_view.js
new file mode 100644
index 00000000000..d8c499cc632
--- /dev/null
+++ b/app/assets/javascripts/discourse/views/list/basic_topic_list_view.js
@@ -0,0 +1,12 @@
+/**
+  This view is used for rendering a basic list of topics.
+
+  @class BasicTopicListView
+  @extends Discourse.View
+  @namespace Discourse
+  @module Discourse
+**/
+Discourse.BasicTopicListView = Discourse.View.extend({
+  templateName: 'list/basic_topic_list'
+});
+Discourse.View.registerHelper('basicTopicList', Discourse.BasicTopicListView);
diff --git a/app/assets/javascripts/discourse/views/list/list_topics_view.js b/app/assets/javascripts/discourse/views/list/list_topics_view.js
index f101664e297..9bf5e51a5cc 100644
--- a/app/assets/javascripts/discourse/views/list/list_topics_view.js
+++ b/app/assets/javascripts/discourse/views/list/list_topics_view.js
@@ -4,34 +4,24 @@
   @class ListTopicsView
   @extends Discourse.View
   @namespace Discourse
-  @uses Discourse.Scrolling
+  @uses Discourse.LoadMore
   @module Discourse
 **/
-Discourse.ListTopicsView = Discourse.View.extend(Discourse.Scrolling, {
+Discourse.ListTopicsView = Discourse.View.extend(Discourse.LoadMore, {
   templateName: 'list/topics',
   categoryBinding: 'controller.controllers.list.category',
   canCreateTopicBinding: 'controller.controllers.list.canCreateTopic',
   listBinding: 'controller.model',
   loadedMore: false,
   currentTopicId: null,
+  eyelineSelector: '.topic-list-item',
 
   topicTrackingState: function() {
     return Discourse.TopicTrackingState.current();
   }.property(),
 
-  willDestroyElement: function() {
-    this.unbindScrolling();
-  },
-
   didInsertElement: function() {
-    this.bindScrolling();
-    var eyeline = new Discourse.Eyeline('.topic-list-item');
-
-    var listTopicsView = this;
-    eyeline.on('sawBottom', function() {
-      listTopicsView.loadMore();
-    });
-
+    this._super();
     var scrollPos = Discourse.get('transient.topicListScrollPos');
     if (scrollPos) {
       Em.run.schedule('afterRender', function() {
@@ -42,15 +32,10 @@ Discourse.ListTopicsView = Discourse.View.extend(Discourse.Scrolling, {
         $('html, body').scrollTop(0);
       });
     }
-    this.set('eyeline', eyeline);
   },
 
-  showTable: function() {
-    var topics = this.get('list.topics');
-    if(topics) {
-      return this.get('list.topics').length > 0 || this.get('topicTrackingState.hasIncoming');
-    }
-  }.property('list.topics.@each','topicTrackingState.hasIncoming'),
+  hasTopics: Em.computed.gt('list.topics.length', 0),
+  showTable: Em.computed.or('hasTopics', 'topicTrackingState.hasIncoming'),
 
   updateTitle: function(){
     Discourse.notifyTitle(this.get('topicTrackingState.incomingCount'));
@@ -76,9 +61,8 @@ Discourse.ListTopicsView = Discourse.View.extend(Discourse.Scrolling, {
 
   // When the topic list is scrolled
   scrolled: function(e) {
+    this._super();
     this.saveScrollPos();
-    var eyeline = this.get('eyeline');
-    if (eyeline) { eyeline.update(); }
   }
 
 
diff --git a/app/assets/javascripts/discourse/views/list/list_view.js b/app/assets/javascripts/discourse/views/list/list_view.js
deleted file mode 100644
index 8fef30e7308..00000000000
--- a/app/assets/javascripts/discourse/views/list/list_view.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
-  This view handles the rendering of a list
-
-  @class ListView
-  @extends Discourse.View
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.ListView = Discourse.View.extend({
-  templateName: 'list/list',
-  composeViewBinding: Ember.Binding.oneWay('Discourse.composeView'),
-
-  // The window has been scrolled
-  scrolled: function(e) {
-    var currentView;
-    currentView = this.get('container.currentView');
-    return currentView ? typeof currentView.scrolled === "function" ? currentView.scrolled(e) : void 0 : void 0;
-  },
-
-  createTopicText: function() {
-    if (this.get('controller.category.name')) {
-      return I18n.t("topic.create_in", {
-        categoryName: this.get('controller.category.name')
-      });
-    } else {
-      return I18n.t("topic.create");
-    }
-  }.property('controller.category.name')
-
-});
-
-
diff --git a/app/assets/javascripts/discourse/views/list/paginated_topic_list_view.js b/app/assets/javascripts/discourse/views/list/paginated_topic_list_view.js
new file mode 100644
index 00000000000..c61060ebef5
--- /dev/null
+++ b/app/assets/javascripts/discourse/views/list/paginated_topic_list_view.js
@@ -0,0 +1,20 @@
+/**
+  This view is used for rendering a basic list of topics.
+
+  @class PaginatedTopicListView
+  @extends Discourse.View
+  @namespace Discourse
+  @uses Discourse.LoadMore
+  @module Discourse
+**/
+Discourse.PaginatedTopicListView = Discourse.BasicTopicListView.extend(Discourse.LoadMore, {
+  topics: Em.computed.alias('controller.model.topics'),
+  classNames: ['paginated-topics-list'],
+  eyelineSelector: '.paginated-topics-list #topic-list tr',
+
+  loadMore: function() {
+    this.get('controller.model').loadMoreTopics();
+  }
+
+});
+
diff --git a/app/assets/javascripts/discourse/views/list/topic_list_item_view.js b/app/assets/javascripts/discourse/views/list/topic_list_item_view.js
index 8a2dcd9d66f..ca3d19f82f2 100644
--- a/app/assets/javascripts/discourse/views/list/topic_list_item_view.js
+++ b/app/assets/javascripts/discourse/views/list/topic_list_item_view.js
@@ -12,9 +12,7 @@ Discourse.TopicListItemView = Discourse.View.extend({
   classNameBindings: ['content.archived', ':topic-list-item', 'content.hasExcerpt:has-excerpt'],
   attributeBindings: ['data-topic-id'],
 
-  'data-topic-id': function() {
-    return this.get('content.id');
-  }.property('content.id'),
+  'data-topic-id': Em.computed.alias('content.id'),
 
   init: function() {
     this._super();
diff --git a/app/assets/javascripts/discourse/views/search/search_results_type_view.js b/app/assets/javascripts/discourse/views/search/search_results_type_view.js
index d6db3b50bfc..2a5248a142f 100644
--- a/app/assets/javascripts/discourse/views/search/search_results_type_view.js
+++ b/app/assets/javascripts/discourse/views/search/search_results_type_view.js
@@ -10,17 +10,14 @@ Discourse.SearchResultsTypeView = Ember.CollectionView.extend({
   tagName: 'ul',
   itemViewClass: Ember.View.extend({
     tagName: 'li',
-    classNameBindings: ['selectedClass'],
+    classNameBindings: ['selected'],
+    templateName: Discourse.computed.fmt('parentView.type', "search/%@_result"),
+    selected: Discourse.computed.propertyEqual('content.index', 'controller.selectedIndex'),
 
-    templateName: function() {
-      return "search/" + (this.get('parentView.type')) + "_result";
-    }.property('parentView.type'),
-
-    // Is this row currently selected by the keyboard?
-    selectedClass: function() {
-      if (this.get('content.index') === this.get('controller.selectedIndex')) return 'selected';
-      return null;
-    }.property('controller.selectedIndex')
+    init: function() {
+      this._super();
+      this.set('context', this.get('content'));
+    }
 
   })
 });
diff --git a/app/assets/javascripts/discourse/views/suggested_topic_view.js b/app/assets/javascripts/discourse/views/suggested_topic_view.js
deleted file mode 100644
index 4a2c901fdeb..00000000000
--- a/app/assets/javascripts/discourse/views/suggested_topic_view.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
-  This view is used for rendering a suggested topic
-
-  @class SuggestedTopicView
-  @extends Discourse.View
-  @namespace Discourse
-  @module Discourse
-**/
-Discourse.SuggestedTopicView = Discourse.View.extend({
-  templateName: 'suggested_topic'
-});
-
-
diff --git a/app/assets/javascripts/discourse/views/user/activity_filter_view.js b/app/assets/javascripts/discourse/views/user/activity_filter_view.js
index a238f0d4273..373e094b8ea 100644
--- a/app/assets/javascripts/discourse/views/user/activity_filter_view.js
+++ b/app/assets/javascripts/discourse/views/user/activity_filter_view.js
@@ -42,7 +42,7 @@ Discourse.ActivityFilterView = Discourse.View.extend({
   url: function() {
     var section = this.get('content.isPM') ? "/private-messages" : "/activity";
     return "/users/" + this.get('user.username_lower') + section + this.get('typeKey');
-  }.property('typeKey'),
+  }.property('typeKey', 'user.username_lower'),
 
   description: function() {
     return this.get('content.description') || I18n.t("user.filters.all");
diff --git a/app/assets/javascripts/discourse/views/user/user_stream_view.js b/app/assets/javascripts/discourse/views/user/user_stream_view.js
index af0c6f0a24a..60de6246b4f 100644
--- a/app/assets/javascripts/discourse/views/user/user_stream_view.js
+++ b/app/assets/javascripts/discourse/views/user/user_stream_view.js
@@ -4,45 +4,32 @@
   @class UserStreamView
   @extends Discourse.View
   @namespace Discourse
-  @uses Discourse.Scrolling
+  @uses Discourse.LoadMore
   @module Discourse
 **/
-Discourse.UserStreamView = Ember.CollectionView.extend(Discourse.Scrolling, {
+Discourse.UserStreamView = Ember.CollectionView.extend(Discourse.LoadMore, {
   loading: false,
-  elementId: 'user-stream',
   content: Em.computed.alias('controller.model.content'),
-  itemViewClass: Ember.View.extend({ templateName: 'user/stream_item' }),
+  eyelineSelector: '#user-activity .user-stream .item',
+  classNames: ['user-stream'],
 
-  scrolled: function(e) {
-    var eyeline = this.get('eyeline');
-    if (eyeline) { eyeline.update(); }
-  },
+  itemViewClass: Ember.View.extend({
+    templateName: 'user/stream_item',
+    init: function() {
+      this._super();
+      this.set('context', this.get('content'));
+    }
+  }),
 
   loadMore: function() {
     var userStreamView = this;
     if (userStreamView.get('loading')) { return; }
 
-    var stream = this.get('stream');
+    var stream = this.get('controller.model');
     stream.findItems().then(function() {
       userStreamView.set('loading', false);
       userStreamView.get('eyeline').flushRest();
     });
-  },
-
-  willDestroyElement: function() {
-    this.unbindScrolling();
-  },
-
-  didInsertElement: function() {
-    this.bindScrolling();
-
-    var eyeline = new Discourse.Eyeline('#user-stream .item');
-    this.set('eyeline', eyeline);
-
-    var userStreamView = this;
-    eyeline.on('sawBottom', function() {
-      userStreamView.loadMore();
-    });
   }
 });
 
diff --git a/app/assets/javascripts/main_include.js b/app/assets/javascripts/main_include.js
index 92336203447..6671a6f1a91 100644
--- a/app/assets/javascripts/main_include.js
+++ b/app/assets/javascripts/main_include.js
@@ -8,6 +8,7 @@
 //= require ./pagedown_custom.js
 
 // Stuff we need to load first
+//= require ./discourse/mixins/scrolling
 //= require_tree ./discourse/mixins
 //= require ./discourse/components/computed
 //= require ./discourse/views/view
diff --git a/app/assets/stylesheets/application/topic.css.scss b/app/assets/stylesheets/application/topic.css.scss
index b4e75cce7f1..67babb69fe6 100644
--- a/app/assets/stylesheets/application/topic.css.scss
+++ b/app/assets/stylesheets/application/topic.css.scss
@@ -282,6 +282,11 @@
     height: 20px;
   }
 
+  #topic-list {
+    th {
+      background-color: $topic-list-th-background-color;
+    }
+  }
 
   #suggested-topics {
     margin: 40px 0 40px 20px;
@@ -294,9 +299,6 @@
       color: darken($darkish_gray, 20%);
       margin-bottom: 10px;
     }
-    th {
-      background-color: $topic-list-th-background-color;
-    }
   }
 
   #topic-footer-buttons {
diff --git a/app/assets/stylesheets/application/user.css.scss b/app/assets/stylesheets/application/user.css.scss
index 8805aa21bef..b1b69be8f10 100644
--- a/app/assets/stylesheets/application/user.css.scss
+++ b/app/assets/stylesheets/application/user.css.scss
@@ -237,62 +237,64 @@
   }
 }
 
-#user-stream {
+#user-activity {
   width: 840px;
   float: left;
   margin-bottom: 50px;
 
-  .excerpt {
-    margin: 5px 0px;
-    font-size: 13px;
-    word-wrap: break-word;
-    color: lighten($black, 30%);
-  }
-  .item.moderator-action {
-    background-color: #eef0ff;
-  }
-  .item.deleted {
-    opacity: 0.8;
-    background-color: #ffcece;
-  }
-  .item.hidden {
-    display: block;
-    opacity: 0.4;
-  }
-  .item {
-    padding: 10px 8px;
-    background-color: white;
-    border: 1px solid #b9b9b9;
-    margin-bottom: 10px;
-    @include border-radius-all(4px);
-    @include box-shadow((0 1px 2px rgba($black, 0.07), inset 0 -4px 4px -4px rgba($black, 0.14)));
-  }
-  .type {
-    color: lighten($black, 40%);
-  }
-  span.name {
-    color: lighten($black, 40%);
-  }
-  .time {
-    display: block;
-    float: right;
-    color: silver;
-    margin-right: 8px;
-    font-size: 11px;
-  }
-  .avatar-link {
-    float: left;
-    margin-right: 10px;
-  }
-  .title {
-    display: block;
-    margin-bottom: 4px;
-    font-size: 14px;
+  .user-stream {
+    .excerpt {
+      margin: 5px 0px;
+      font-size: 13px;
+      word-wrap: break-word;
+      color: lighten($black, 30%);
+    }
+    .item.moderator-action {
+      background-color: #eef0ff;
+    }
+    .item.deleted {
+      opacity: 0.8;
+      background-color: #ffcece;
+    }
+    .item.hidden {
+      display: block;
+      opacity: 0.4;
+    }
+    .item {
+      padding: 10px 8px;
+      background-color: white;
+      border: 1px solid #b9b9b9;
+      margin-bottom: 10px;
+      @include border-radius-all(4px);
+      @include box-shadow((0 1px 2px rgba($black, 0.07), inset 0 -4px 4px -4px rgba($black, 0.14)));
+    }
+    .type {
+      color: lighten($black, 40%);
+    }
+    span.name {
+      color: lighten($black, 40%);
+    }
+    .time {
+      display: block;
+      float: right;
+      color: silver;
+      margin-right: 8px;
+      font-size: 11px;
+    }
+    .avatar-link {
+      float: left;
+      margin-right: 10px;
+    }
+    .title {
+      display: block;
+      margin-bottom: 4px;
+      font-size: 14px;
+    }
   }
 }
 
 // styling of bottom section
-#user-stream .child-actions {
+.user-stream .child-actions {
   margin-top: 8px;
   .avatar-link {
     float: none;
@@ -312,12 +314,12 @@
 }
 
 @include medium-width {
-  #user-stream {
+  #user-activity {
     width: 725px;
   }
 }
 @include small-width {
-  #user-stream {
+  #user-activity {
     width: 680px;
   }
 }
diff --git a/app/controllers/list_controller.rb b/app/controllers/list_controller.rb
index 69048ea828c..0f68d2a7ec3 100644
--- a/app/controllers/list_controller.rb
+++ b/app/controllers/list_controller.rb
@@ -1,6 +1,6 @@
 class ListController < ApplicationController
 
-  before_filter :ensure_logged_in, except: [:latest, :hot, :category, :category_feed, :latest_feed, :hot_feed]
+  before_filter :ensure_logged_in, except: [:latest, :hot, :category, :category_feed, :latest_feed, :hot_feed, :topics_by]
   before_filter :set_category, only: [:category, :category_feed]
   skip_before_filter :check_xhr
 
@@ -28,6 +28,14 @@ class ListController < ApplicationController
     end
   end
 
+  def topics_by
+    list_opts = build_topic_list_options
+    list = TopicQuery.new(current_user, list_opts).list_topics_by(fetch_user_from_params)
+    list.more_topics_url = url_for(topics_by_path(list_opts.merge(format: 'json', page: next_page)))
+
+    respond(list)
+  end
+
   def category
     query = TopicQuery.new(current_user, page: params[:page])
 
diff --git a/config/routes.rb b/config/routes.rb
index 028c1e1c110..3c4872e7692 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -201,6 +201,7 @@ Discourse::Application.routes.draw do
   post 't' => 'topics#create'
   post 'topics/timings'
   get 'topics/similar_to'
+  get 'topics/created-by/:username' => 'list#topics_by', as: 'topics_by', constraints: {username: USERNAME_ROUTE_FORMAT}
 
   # Legacy route for old avatars
   get 'threads/:topic_id/:post_number/avatar' => 'topics#avatar', constraints: {topic_id: /\d+/, post_number: /\d+/}
diff --git a/lib/tasks/integration.rake b/lib/tasks/integration.rake
index 5793ece5585..a08c48f0737 100644
--- a/lib/tasks/integration.rake
+++ b/lib/tasks/integration.rake
@@ -8,7 +8,7 @@ task 'integration:create_fixtures' => :environment do
     topic: ["/t/280.json"],
     user: ["/users/eviltrout.json",
            "/user_actions.json?offset=0&username=eviltrout",
-           "/user_actions.json?offset=0&username=eviltrout&filter=4",
+           "/topics/created-by/eviltrout.json",
            "/user_actions.json?offset=0&username=eviltrout&filter=5",
            "/user_actions.json?offset=0&username=eviltrout&filter=6,7,9",
            "/user_actions.json?offset=0&username=eviltrout&filter=1",
diff --git a/lib/topic_query.rb b/lib/topic_query.rb
index 1be360926d4..b3ac83cf86e 100644
--- a/lib/topic_query.rb
+++ b/lib/topic_query.rb
@@ -129,6 +129,14 @@ class TopicQuery
     create_list(:posted) {|l| l.where('tu.user_id IS NOT NULL') }
   end
 
+  def list_topics_by(user)
+    Rails.logger.info ">>> #{user.id}"
+    create_list(:user_topics) do |topics|
+      topics.where(user_id: user.id)
+    end
+  end
+
+
   def list_uncategorized
     create_list(:uncategorized, unordered: true) do |list|
       list = list.where(category_id: nil)
diff --git a/test/javascripts/fixtures/list_fixtures.js b/test/javascripts/fixtures/list_fixtures.js
index a6fbca5e837..1bbcd0bc9b2 100644
--- a/test/javascripts/fixtures/list_fixtures.js
+++ b/test/javascripts/fixtures/list_fixtures.js
@@ -1,4 +1,4 @@
 /*jshint maxlen:10000000 */
-Discourse.URL_FIXTURES["/latest.json"] = {"categories":[{"id":6,"name":"support","color":"b99","text_color":"FFFFFF","slug":"support","topic_count":358,"description":"Support on configuring, using, and installing Discourse. Not for software development related topics, but for admins and end users configuring and using Discourse.","topic_url":"/t/category-definition-for-support/389","hotness":5.0,"read_restricted":false,"permission":null},{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":443,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null},{"id":7,"name":"dev","color":"000","text_color":"FFFFFF","slug":"dev","topic_count":178,"description":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","topic_url":"/t/category-definition-for-dev/1026","hotness":5.0,"read_restricted":false,"permission":null},{"id":1,"name":"bug","color":"ae3a27","text_color":"FFFFFF","slug":"bug","topic_count":422,"description":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","topic_url":"/t/category-definition-for-bug/2","hotness":5.0,"read_restricted":false,"permission":null},{"id":5,"name":"extensibility ","color":"FE8432","text_color":"FFFFFF","slug":"extensibility","topic_count":34,"description":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility.  ","topic_url":"/t/category-definition-for-extensibility/28","hotness":5.0,"read_restricted":false,"permission":null},{"id":14,"name":"marketplace","color":"8C6238","text_color":"FFFFFF","slug":"marketplace","topic_count":5,"description":"About commercial Discourse related stuff: jobs or paid gigs, plugins, themes, hosting, etc.","topic_url":"/t/category-definition-for-marketplace/5425","hotness":5.0,"read_restricted":false,"permission":null}],"users":[{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":14,"username":"clay","avatar_template":"https://www.gravatar.com/avatar/e371bbd32ba2e9b27842e60ef5952d47.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":5912,"username":"jbruni","avatar_template":"https://www.gravatar.com/avatar/27dacda91150eca332526bf8a8ee7e03.png?s={size}&r=pg&d=identicon"},{"id":2602,"username":"georgekaplan59","avatar_template":"https://www.gravatar.com/avatar/503623c769903342cba73e722a364061.png?s={size}&r=pg&d=identicon"},{"id":3,"username":"supermathie","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon"},{"id":5651,"username":"tothetick","avatar_template":"https://www.gravatar.com/avatar/649ddc2b692a71e177e3fab7c806a231.png?s={size}&r=pg&d=identicon"},{"id":5564,"username":"Sjors","avatar_template":"https://www.gravatar.com/avatar/2fb09bd6501779802459a171d3f8fbd9.png?s={size}&r=pg&d=identicon"},{"id":5271,"username":"royguo","avatar_template":"https://www.gravatar.com/avatar/7e795755fe8a817981c3a81620faf359.png?s={size}&r=pg&d=identicon"},{"id":3695,"username":"novemberkilo","avatar_template":"https://www.gravatar.com/avatar/35bae7b4a1c41762e6cc252ee5198fff.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"Neil","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":5351,"username":"erlend_sh","avatar_template":"https://www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon"},{"id":2316,"username":"pakl","avatar_template":"https://www.gravatar.com/avatar/42910619ef3d550e37f7150caa0d94ff.png?s={size}&r=pg&d=identicon"},{"id":6099,"username":"iryna","avatar_template":"https://www.gravatar.com/avatar/8883e72c15c0f37815ef9c2954b2f5a5.png?s={size}&r=pg&d=identicon"},{"id":1580,"username":"ABillionSuns","avatar_template":"https://www.gravatar.com/avatar/3b0a7729f7a3b5e5dfa6a6968670ae3a.png?s={size}&r=pg&d=identicon"},{"id":4957,"username":"ben_a_adams","avatar_template":"https://www.gravatar.com/avatar/38980d692c0ec5158fb2298a6a6be8f1.png?s={size}&r=pg&d=identicon"},{"id":3681,"username":"Ajarn","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon"},{"id":3704,"username":"mojzis","avatar_template":"https://www.gravatar.com/avatar/90847dfc44c19a250e9000bcfc7d1507.png?s={size}&r=pg&d=identicon"},{"id":3667,"username":"RobertAndrews","avatar_template":"https://www.gravatar.com/avatar/9c4c8cc928020ba6394032bbb3b4bd02.png?s={size}&r=pg&d=identicon"},{"id":1854,"username":"mvy","avatar_template":"https://www.gravatar.com/avatar/b379cfe07bbf58aab9414128a6e159f8.png?s={size}&r=pg&d=identicon"},{"id":2817,"username":"ete","avatar_template":"https://www.gravatar.com/avatar/b16dbd95e850db4b8d7d5a3923e867c0.png?s={size}&r=pg&d=identicon"},{"id":5996,"username":"nouh","avatar_template":"https://www.gravatar.com/avatar/25577a69009089387965de8b57998832.png?s={size}&r=pg&d=identicon"},{"id":1496,"username":"cfstras","avatar_template":"https://www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon"},{"id":5294,"username":"madbomber","avatar_template":"https://www.gravatar.com/avatar/185cd842e5a13f2adc822ae20ffaa7bb.png?s={size}&r=pg&d=identicon"},{"id":471,"username":"BhaelOchon","avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon"},{"id":4529,"username":"deweydb","avatar_template":"https://www.gravatar.com/avatar/22f56e188ab515458522c3d2fb2214a5.png?s={size}&r=pg&d=identicon"},{"id":5983,"username":"JohnSReid","avatar_template":"https://www.gravatar.com/avatar/b93a1015848d6ca970d2ffcea1f5ab8b.png?s={size}&r=pg&d=identicon"},{"id":3987,"username":"Sander78","avatar_template":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s={size}&r=pg&d=identicon"},{"id":6069,"username":"dericpr","avatar_template":"https://www.gravatar.com/avatar/0e92fd38ba4c74c2bcca9de0082b3fb9.png?s={size}&r=pg&d=identicon"},{"id":5911,"username":"kousps","avatar_template":"https://www.gravatar.com/avatar/be78b6de536c9ff9eb72b27a64cb272c.png?s={size}&r=pg&d=identicon"},{"id":4457,"username":"Lee_Ars","avatar_template":"https://www.gravatar.com/avatar/eff1b72d56a97459a27161ccf7f20c89.png?s={size}&r=pg&d=identicon"},{"id":1621,"username":"bnb","avatar_template":"https://www.gravatar.com/avatar/1e54a178bf671227ea6142e93bf33b39.png?s={size}&r=pg&d=identicon"},{"id":2876,"username":"SBauch","avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon"},{"id":1353,"username":"sparr","avatar_template":"https://www.gravatar.com/avatar/7906663b1197829751673465948e0b05.png?s={size}&r=pg&d=identicon"},{"id":4851,"username":"jab","avatar_template":"https://www.gravatar.com/avatar/14f382feb5f0dd3d3700edf8d6156aa9.png?s={size}&r=pg&d=identicon"},{"id":6095,"username":"SneusGeek","avatar_template":"https://www.gravatar.com/avatar/4b530a41cde87422f732b7af66d8fb32.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":5628,"username":"JJames","avatar_template":"https://www.gravatar.com/avatar/f6641c8f283d4fc862da1b7e03d7fdd8.png?s={size}&r=pg&d=identicon"},{"id":2981,"username":"ian_carroll","avatar_template":"https://www.gravatar.com/avatar/76dd5343c6a95d7b2ce906fb9af94106.png?s={size}&r=pg&d=identicon"},{"id":6089,"username":"Juffin","avatar_template":"https://www.gravatar.com/avatar/1b65c915ecda3d3e1ae9338ee13147e2.png?s={size}&r=pg&d=identicon"},{"id":6093,"username":"jrc","avatar_template":"https://www.gravatar.com/avatar/20a3e7f9ffcbd4a10edd3811846f6d63.png?s={size}&r=pg&d=identicon"},{"id":5477,"username":"phanimahesh","avatar_template":"https://www.gravatar.com/avatar/42ca770299eab441ddabae5a1ad5f799.png?s={size}&r=pg&d=identicon"},{"id":5038,"username":"raly","avatar_template":"https://www.gravatar.com/avatar/11688c18986af7cf4b111e1dce13c3c7.png?s={size}&r=pg&d=identicon"},{"id":6096,"username":"sanbryan94","avatar_template":"https://www.gravatar.com/avatar/09150fd9b73a9404d2191f0b4183ef96.png?s={size}&r=pg&d=identicon"}],"topic_list":{"can_create_topic":false,"more_topics_url":"/latest.json?page=1","draft":null,"draft_key":"new_topic","draft_sequence":null,"topics":[{"id":1,"title":"Welcome to meta.discourse.org","fancy_title":"Welcome to meta.discourse.org","slug":"welcome-to-meta-discourse-org","posts_count":5,"reply_count":5,"highest_post_number":23,"image_url":null,"created_at":"2013-01-31T23:52:28-05:00","last_posted_at":"2013-02-07T16:50:41-05:00","bumped":true,"bumped_at":"2013-02-07T11:57:34-05:00","unseen":false,"pinned":true,"excerpt":"Welcome to meta, the official site for discussing the next-gen open source Discourse forum software. You&#x27;ll find topics on features, bugs, hosting, development, and general support here. \n\nDiscourse is early beta softwar&hellip;","visible":true,"closed":true,"archived":false,"views":10146,"like_count":89,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":null,"description":"Most Posts","user_id":19},{"extras":null,"description":"Frequent Poster","user_id":14},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8360,"title":"Server Error 500 after Discourse install in Ubuntu - where to look?","fancy_title":"Server Error 500 after Discourse install in Ubuntu - where to look?","slug":"server-error-500-after-discourse-install-in-ubuntu-where-to-look","posts_count":20,"reply_count":10,"highest_post_number":21,"image_url":null,"created_at":"2013-07-14T09:48:34-04:00","last_posted_at":"2013-07-15T15:00:10-04:00","bumped":true,"bumped_at":"2013-07-15T15:00:10-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":58,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":5912},{"extras":null,"description":"Most Posts","user_id":2602},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":3}]},{"id":8306,"title":"Replacing 'Reply as new topic' with a widget","fancy_title":"Replacing &lsquo;Reply as new topic&rsquo; with a widget","slug":"replacing-reply-as-new-topic-with-a-widget","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-11T21:11:09-04:00","last_posted_at":"2013-07-15T14:57:57-04:00","bumped":true,"bumped_at":"2013-07-15T14:57:57-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":49,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":5651},{"extras":"latest","description":"Most Recent Poster","user_id":5564}]},{"id":8393,"title":"Brazilian Portuguese translation","fancy_title":"Brazilian Portuguese translation","slug":"brazilian-portuguese-translation","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T13:56:34-04:00","last_posted_at":"2013-07-15T14:34:39-04:00","bumped":true,"bumped_at":"2013-07-15T14:34:39-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":10,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5912}]},{"id":7401,"title":"Shall we add category names in top_menu?","fancy_title":"Shall we add category names in top_menu?","slug":"shall-we-add-category-names-in-top-menu","posts_count":8,"reply_count":5,"highest_post_number":8,"image_url":null,"created_at":"2013-06-11T22:47:34-04:00","last_posted_at":"2013-07-15T13:17:59-04:00","bumped":true,"bumped_at":"2013-07-15T14:28:15-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":105,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5271},{"extras":null,"description":"Most Posts","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":2602}]},{"id":8392,"title":"Using gemoji for emoji","fancy_title":"Using gemoji for emoji","slug":"using-gemoji-for-emoji","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-15T13:05:13-04:00","last_posted_at":"2013-07-15T13:05:13-04:00","bumped":false,"bumped_at":"2013-07-15T13:05:13-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":18,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3695}]},{"id":7763,"title":"Translation Tools: Transifex? Localeapp?","fancy_title":"Translation Tools: Transifex? Localeapp?","slug":"translation-tools-transifex-localeapp","posts_count":16,"reply_count":10,"highest_post_number":16,"image_url":null,"created_at":"2013-06-25T11:54:53-04:00","last_posted_at":"2013-07-15T12:56:26-04:00","bumped":true,"bumped_at":"2013-07-15T12:56:26-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":264,"like_count":14,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":null,"description":"Original Poster","user_id":2},{"extras":null,"description":"Most Posts","user_id":5351},{"extras":null,"description":"Frequent Poster","user_id":2316},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":6099}]},{"id":1764,"title":"Private forums or discussion threads","fancy_title":"Private forums or discussion threads","slug":"private-forums-or-discussion-threads","posts_count":21,"reply_count":13,"highest_post_number":22,"image_url":null,"created_at":"2013-02-06T18:32:46-05:00","last_posted_at":"2013-07-15T12:55:37-04:00","bumped":true,"bumped_at":"2013-07-15T12:55:37-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":793,"like_count":22,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":1580},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":4957},{"extras":null,"description":"Frequent Poster","user_id":3681},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":8366,"title":"Make thread reply button full width and transparent","fancy_title":"Make thread reply button full width and transparent","slug":"make-thread-reply-button-full-width-and-transparent","posts_count":7,"reply_count":4,"highest_post_number":8,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1401/64d9f4981a2aca75.jpg","created_at":"2013-07-14T12:19:24-04:00","last_posted_at":"2013-07-15T12:54:28-04:00","bumped":true,"bumped_at":"2013-07-15T12:54:28-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":49,"like_count":4,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":5351},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":5564},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8385,"title":"List undelivered mails","fancy_title":"List undelivered mails","slug":"list-undelivered-mails","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T06:33:22-04:00","last_posted_at":"2013-07-15T12:49:13-04:00","bumped":true,"bumped_at":"2013-07-15T12:49:13-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":19,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":3704},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8380,"title":"Incomplete view count in thread after posting","fancy_title":"Incomplete view count in thread after posting","slug":"incomplete-view-count-in-thread-after-posting","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1413/49ec745ca8280374.jpg","created_at":"2013-07-15T04:11:54-04:00","last_posted_at":"2013-07-15T12:48:01-04:00","bumped":true,"bumped_at":"2013-07-15T12:48:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":23,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5351},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":3681},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8386,"title":"Entering a previously read topic doesn't always place me at my last unread post","fancy_title":"Entering a previously read topic doesn&rsquo;t always place me at my last unread post","slug":"entering-a-previously-read-topic-doesnt-always-place-me-at-my-last-unread-post","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T09:53:51-04:00","last_posted_at":"2013-07-15T12:47:07-04:00","bumped":true,"bumped_at":"2013-07-15T12:47:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":24,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":4680,"title":"Anything like Discourse for community publishing?","fancy_title":"Anything like Discourse for community publishing?","slug":"anything-like-discourse-for-community-publishing","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-03-12T06:49:04-04:00","last_posted_at":"2013-07-15T12:45:19-04:00","bumped":true,"bumped_at":"2013-07-15T12:45:19-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":192,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":null,"description":"Original Poster","user_id":3667},{"extras":null,"description":"Most Posts","user_id":1854},{"extras":null,"description":"Frequent Poster","user_id":5564},{"extras":null,"description":"Frequent Poster","user_id":2817},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8368,"title":"Username don't support multilanguage character","fancy_title":"Username don&rsquo;t support multilanguage character","slug":"username-dont-support-multilanguage-character","posts_count":4,"reply_count":3,"highest_post_number":4,"image_url":null,"created_at":"2013-07-14T12:52:06-04:00","last_posted_at":"2013-07-15T12:42:07-04:00","bumped":true,"bumped_at":"2013-07-15T12:42:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":50,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":5996},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8373,"title":"Site Customizations: Footer","fancy_title":"Site Customizations: Footer","slug":"site-customizations-footer","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-07-14T20:16:25-04:00","last_posted_at":"2013-07-15T12:37:33-04:00","bumped":true,"bumped_at":"2013-07-15T12:37:33-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":39,"like_count":6,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":4957},{"extras":null,"description":"Most Posts","user_id":5564},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8351,"title":"Clicking on password reset link redirects to /login","fancy_title":"Clicking on password reset link redirects to /login","slug":"clicking-on-password-reset-link-redirects-to-login","posts_count":6,"reply_count":4,"highest_post_number":6,"image_url":null,"created_at":"2013-07-13T19:23:25-04:00","last_posted_at":"2013-07-15T12:36:56-04:00","bumped":true,"bumped_at":"2013-07-15T12:36:49-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":40,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1496},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":8388,"title":"Saved Search / Alerting","fancy_title":"Saved Search / Alerting","slug":"saved-search-alerting","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T10:37:54-04:00","last_posted_at":"2013-07-15T12:16:06-04:00","bumped":true,"bumped_at":"2013-07-15T12:16:06-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":22,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":5294},{"extras":"latest","description":"Most Recent Poster","user_id":471}]},{"id":8390,"title":"Continous loading: FAQ, TOS, Privacy","fancy_title":"Continous loading: FAQ, TOS, Privacy","slug":"continous-loading-faq-tos-privacy","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T10:55:26-04:00","last_posted_at":"2013-07-15T11:53:01-04:00","bumped":true,"bumped_at":"2013-07-15T11:53:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":27,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":4957}]},{"id":7956,"title":"Importing phpBB into Discourse","fancy_title":"Importing phpBB into Discourse","slug":"importing-phpbb-into-discourse","posts_count":19,"reply_count":10,"highest_post_number":19,"image_url":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s=40&r=pg&d=identicon","created_at":"2013-06-29T20:33:15-04:00","last_posted_at":"2013-07-15T11:52:01-04:00","bumped":true,"bumped_at":"2013-07-15T11:52:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":347,"like_count":18,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":1496},{"extras":null,"description":"Most Posts","user_id":4529},{"extras":null,"description":"Frequent Poster","user_id":5983},{"extras":null,"description":"Frequent Poster","user_id":3987},{"extras":"latest","description":"Most Recent Poster","user_id":6069}]},{"id":8356,"title":"Wordpress plugin not working properly","fancy_title":"Wordpress plugin not working properly","slug":"wordpress-plugin-not-working-properly","posts_count":9,"reply_count":7,"highest_post_number":9,"image_url":null,"created_at":"2013-07-14T04:52:13-04:00","last_posted_at":"2013-07-15T11:49:39-04:00","bumped":true,"bumped_at":"2013-07-15T11:49:39-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":66,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5911},{"extras":null,"description":"Most Posts","user_id":4957},{"extras":null,"description":"Frequent Poster","user_id":1}]},{"id":8188,"title":"Automatic Daily Topic","fancy_title":"Automatic Daily Topic","slug":"automatic-daily-topic","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-08T09:58:09-04:00","last_posted_at":"2013-07-08T09:58:10-04:00","bumped":true,"bumped_at":"2013-07-15T11:02:09-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":66,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":5,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5294}]},{"id":8367,"title":"Very fast scrolling fails to mark all posts read in a thread","fancy_title":"Very fast scrolling fails to mark all posts read in a thread","slug":"very-fast-scrolling-fails-to-mark-all-posts-read-in-a-thread","posts_count":6,"reply_count":4,"highest_post_number":6,"image_url":null,"created_at":"2013-07-14T12:37:02-04:00","last_posted_at":"2013-07-15T09:28:07-04:00","bumped":true,"bumped_at":"2013-07-15T09:28:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":48,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":4457},{"extras":null,"description":"Most Posts","user_id":3681},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":1621}]},{"id":8198,"title":"Unable to create group","fancy_title":"Unable to create group","slug":"unable-to-create-group","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":null,"created_at":"2013-07-08T13:58:49-04:00","last_posted_at":"2013-07-15T09:19:06-04:00","bumped":true,"bumped_at":"2013-07-15T09:19:06-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":61,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":1}]},{"id":6304,"title":"Proposal for a (hash) tagging feature","fancy_title":"Proposal for a (hash) tagging feature","slug":"proposal-for-a-hash-tagging-feature","posts_count":38,"reply_count":23,"highest_post_number":39,"image_url":"https://www.gravatar.com/avatar/9420c2ef938f4857bb9c921836b243d4.png?s=40&r=pg&d=identicon","created_at":"2013-05-01T12:05:51-04:00","last_posted_at":"2013-07-15T08:55:45-04:00","bumped":true,"bumped_at":"2013-07-15T08:55:45-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":641,"like_count":30,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":2876},{"extras":null,"description":"Most Posts","user_id":1353},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":4851},{"extras":"latest","description":"Most Recent Poster","user_id":5294}]},{"id":8383,"title":"[FR] Comment installer Discourse?","fancy_title":"[FR] Comment installer Discourse?","slug":"fr-comment-installer-discourse","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T06:20:39-04:00","last_posted_at":"2013-07-15T08:27:21-04:00","bumped":true,"bumped_at":"2013-07-15T08:34:46-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":30,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":6095},{"extras":"latest","description":"Most Recent Poster","user_id":1995}]},{"id":8347,"title":"Error: A check for updates have not been performed","fancy_title":"Error: A check for updates have not been performed","slug":"error-a-check-for-updates-have-not-been-performed","posts_count":6,"reply_count":4,"highest_post_number":6,"image_url":null,"created_at":"2013-07-13T13:17:00-04:00","last_posted_at":"2013-07-15T08:34:42-04:00","bumped":true,"bumped_at":"2013-07-15T08:34:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":43,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5628},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":3},{"extras":null,"description":"Frequent Poster","user_id":1}]},{"id":8372,"title":"I need help with Discoursed","fancy_title":"I need help with Discoursed","slug":"i-need-help-with-discoursed","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":null,"created_at":"2013-07-14T20:11:39-04:00","last_posted_at":"2013-07-15T08:01:47-04:00","bumped":true,"bumped_at":"2013-07-15T08:01:47-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":50,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":14,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2981},{"extras":null,"description":"Most Posts","user_id":5564}]},{"id":8379,"title":"Different logos for different categories","fancy_title":"Different logos for different categories","slug":"different-logos-for-different-categories","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-07-15T03:57:43-04:00","last_posted_at":"2013-07-15T06:53:16-04:00","bumped":true,"bumped_at":"2013-07-15T06:53:16-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":25,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":6089},{"extras":null,"description":"Most Posts","user_id":5564}]},{"id":8376,"title":"Private messaging to a group","fancy_title":"Private messaging to a group","slug":"private-messaging-to-a-group","posts_count":9,"reply_count":7,"highest_post_number":9,"image_url":null,"created_at":"2013-07-14T22:51:43-04:00","last_posted_at":"2013-07-15T06:44:34-04:00","bumped":true,"bumped_at":"2013-07-15T06:44:34-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":41,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":6093},{"extras":null,"description":"Most Posts","user_id":1}]},{"id":8202,"title":"Bluepill not working 100%","fancy_title":"Bluepill not working 100%","slug":"bluepill-not-working-100","posts_count":22,"reply_count":11,"highest_post_number":22,"image_url":"http://cdn.discourse.org/assets/emoji/cry.png","created_at":"2013-07-08T16:13:15-04:00","last_posted_at":"2013-07-15T06:32:43-04:00","bumped":true,"bumped_at":"2013-07-15T06:32:43-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":187,"like_count":10,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":5477},{"extras":null,"description":"Frequent Poster","user_id":5038},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":6096}]}]}};
-Discourse.URL_FIXTURES["/categories.json"] = {"featured_users":[{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":1353,"username":"sparr","avatar_template":"https://www.gravatar.com/avatar/7906663b1197829751673465948e0b05.png?s={size}&r=pg&d=identicon"},{"id":5351,"username":"erlend_sh","avatar_template":"https://www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"Neil","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":2600,"username":"NinjaFoodstuff","avatar_template":"https://www.gravatar.com/avatar/3709f34da1ff5433b41bc56df94dd453.png?s={size}&r=pg&d=identicon"},{"id":406,"username":"RGJ","avatar_template":"https://www.gravatar.com/avatar/55c791f0242e5167536c65496046eef5.png?s={size}&r=pg&d=identicon"},{"id":714,"username":"jcolebrand","avatar_template":"https://www.gravatar.com/avatar/c4cca9bfec5d5e77f625d9fbe8e37a41.png?s={size}&r=pg&d=identicon"},{"id":810,"username":"ChrisHanel","avatar_template":"https://www.gravatar.com/avatar/467863a322e1a3ce557bfd17f4677600.png?s={size}&r=pg&d=identicon"},{"id":8,"username":"geek","avatar_template":"https://www.gravatar.com/avatar/b0b1ce3a4e0a77abd157ec0309b72922.png?s={size}&r=pg&d=identicon"},{"id":2291,"username":"PabloC","avatar_template":"https://www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon"},{"id":1674,"username":"colin","avatar_template":"https://www.gravatar.com/avatar/4cfb483116a822652d698dce303ec842.png?s={size}&r=pg&d=identicon"},{"id":2839,"username":"baus","avatar_template":"https://www.gravatar.com/avatar/57d4030570f672f515a7385cc74c8cfe.png?s={size}&r=pg&d=identicon"},{"id":1274,"username":"binaryphile","avatar_template":"https://www.gravatar.com/avatar/82564a08aebae1de68bea8e3df61ef93.png?s={size}&r=pg&d=identicon"},{"id":1263,"username":"ChrisB","avatar_template":"https://www.gravatar.com/avatar/1d75aba12b3961894f93959b5b013de0.png?s={size}&r=pg&d=identicon"},{"id":3,"username":"supermathie","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon"},{"id":2664,"username":"Odd_Bloke","avatar_template":"https://www.gravatar.com/avatar/af881deb1a7ef0a1f568e18cd967c0d3.png?s={size}&r=pg&d=identicon"},{"id":38,"username":"frandallfarmer","avatar_template":"https://www.gravatar.com/avatar/6c38e00d92cd9bd3ada3392b15015553.png?s={size}&r=pg&d=identicon"},{"id":2128,"username":"ultimape","avatar_template":"https://www.gravatar.com/avatar/6fe82efded2ee5e218e0452644a07e2e.png?s={size}&r=pg&d=identicon"},{"id":811,"username":"jpeg","avatar_template":"https://www.gravatar.com/avatar/4a214d4a12b7223b61ec36c7aa224c97.png?s={size}&r=pg&d=identicon"},{"id":5468,"username":"pixelBender67","avatar_template":"https://www.gravatar.com/avatar/4f4cc88cc2ebd747240c7bc53af99261.png?s={size}&r=pg&d=identicon"},{"id":4217,"username":"mshappe","avatar_template":"https://www.gravatar.com/avatar/36ffc752906110cd16e1746d5c95516f.png?s={size}&r=pg&d=identicon"},{"id":4,"username":"stienman","avatar_template":"https://www.gravatar.com/avatar/281486f2a20201375414760dd347951d.png?s={size}&r=pg&d=identicon"},{"id":4263,"username":"mcwumbly","avatar_template":"https://www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon"},{"id":2465,"username":"finid","avatar_template":"https://www.gravatar.com/avatar/989a7705a77732d888ddaff8b440fc3d.png?s={size}&r=pg&d=identicon"},{"id":4939,"username":"stevebaer","avatar_template":"https://www.gravatar.com/avatar/7a42855912a58f4c3c5d0ce82e33905f.png?s={size}&r=pg&d=identicon"},{"id":3507,"username":"mozCallahad","avatar_template":"https://www.gravatar.com/avatar/a2746e0bf42c3245bfd80dea9b3efb32.png?s={size}&r=pg&d=identicon"},{"id":2981,"username":"ian_carroll","avatar_template":"https://www.gravatar.com/avatar/76dd5343c6a95d7b2ce906fb9af94106.png?s={size}&r=pg&d=identicon"},{"id":5460,"username":"ned","avatar_template":"https://www.gravatar.com/avatar/bc5e09a5ce0a85bf02a3fceb9b0bfaf4.png?s={size}&r=pg&d=identicon"},{"id":704,"username":"AstonJ","avatar_template":"https://www.gravatar.com/avatar/03af361cc843bc56e95cb6c406d06f80.png?s={size}&r=pg&d=identicon"},{"id":461,"username":"kuba","avatar_template":"https://www.gravatar.com/avatar/1835cb6a5f35bd4089e416a99af90f5f.png?s={size}&r=pg&d=identicon"},{"id":1566,"username":"hamburglar","avatar_template":"https://www.gravatar.com/avatar/57b39f59fa025f64e173ba6dffb8f2f7.png?s={size}&r=pg&d=identicon"}],"category_list":{"can_create_category":false,"can_create_topic":false,"draft":null,"draft_key":"new_topic","draft_sequence":null,"categories":[{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":443,"topics_week":27,"topics_month":74,"topics_year":439,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","description_excerpt":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","featured_user_ids":[32,1,1353,5351,1995],"topics":[{"id":8306,"title":"Replacing 'Reply as new topic' with a widget","fancy_title":"Replacing &lsquo;Reply as new topic&rsquo; with a widget","slug":"replacing-reply-as-new-topic-with-a-widget","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-11T21:11:09-04:00","last_posted_at":"2013-07-15T14:57:57-04:00","bumped":true,"bumped_at":"2013-07-15T14:57:57-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":1764,"title":"Private forums or discussion threads","fancy_title":"Private forums or discussion threads","slug":"private-forums-or-discussion-threads","posts_count":21,"reply_count":13,"highest_post_number":22,"image_url":null,"created_at":"2013-02-06T18:32:46-05:00","last_posted_at":"2013-07-15T12:55:37-04:00","bumped":true,"bumped_at":"2013-07-15T12:55:37-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8366,"title":"Make thread reply button full width and transparent","fancy_title":"Make thread reply button full width and transparent","slug":"make-thread-reply-button-full-width-and-transparent","posts_count":7,"reply_count":4,"highest_post_number":8,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1401/64d9f4981a2aca75.jpg","created_at":"2013-07-14T12:19:24-04:00","last_posted_at":"2013-07-15T12:54:28-04:00","bumped":true,"bumped_at":"2013-07-15T12:54:28-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8385,"title":"List undelivered mails","fancy_title":"List undelivered mails","slug":"list-undelivered-mails","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T06:33:22-04:00","last_posted_at":"2013-07-15T12:49:13-04:00","bumped":true,"bumped_at":"2013-07-15T12:49:13-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8368,"title":"Username don't support multilanguage character","fancy_title":"Username don&rsquo;t support multilanguage character","slug":"username-dont-support-multilanguage-character","posts_count":4,"reply_count":3,"highest_post_number":4,"image_url":null,"created_at":"2013-07-14T12:52:06-04:00","last_posted_at":"2013-07-15T12:42:07-04:00","bumped":true,"bumped_at":"2013-07-15T12:42:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8373,"title":"Site Customizations: Footer","fancy_title":"Site Customizations: Footer","slug":"site-customizations-footer","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-07-14T20:16:25-04:00","last_posted_at":"2013-07-15T12:37:33-04:00","bumped":true,"bumped_at":"2013-07-15T12:37:33-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":1,"name":"bug","color":"ae3a27","text_color":"FFFFFF","slug":"bug","topic_count":422,"topics_week":19,"topics_month":84,"topics_year":421,"description":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","description_excerpt":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","featured_user_ids":[32,1,1995,2,19],"topics":[{"id":7288,"title":"Digest mail ignores secure groups","fancy_title":"Digest mail ignores secure groups","slug":"digest-mail-ignores-secure-groups","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-08T08:54:12-04:00","last_posted_at":"2013-06-08T13:00:38-04:00","bumped":true,"bumped_at":"2013-06-08T13:00:38-04:00","unseen":false,"pinned":true,"excerpt":"People receiving the digest mail can easily read posts not meant for them. That&#x27;s because the digest mail ignores the secure groups a member has access to or not. \n\nQuite a problem as I unfortunately found out. [smile]","visible":true,"closed":false,"archived":false},{"id":7401,"title":"Shall we add category names in top_menu?","fancy_title":"Shall we add category names in top_menu?","slug":"shall-we-add-category-names-in-top-menu","posts_count":8,"reply_count":5,"highest_post_number":8,"image_url":null,"created_at":"2013-06-11T22:47:34-04:00","last_posted_at":"2013-07-15T13:17:59-04:00","bumped":true,"bumped_at":"2013-07-15T14:28:15-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8380,"title":"Incomplete view count in thread after posting","fancy_title":"Incomplete view count in thread after posting","slug":"incomplete-view-count-in-thread-after-posting","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1413/49ec745ca8280374.jpg","created_at":"2013-07-15T04:11:54-04:00","last_posted_at":"2013-07-15T12:48:01-04:00","bumped":true,"bumped_at":"2013-07-15T12:48:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8386,"title":"Entering a previously read topic doesn't always place me at my last unread post","fancy_title":"Entering a previously read topic doesn&rsquo;t always place me at my last unread post","slug":"entering-a-previously-read-topic-doesnt-always-place-me-at-my-last-unread-post","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T09:53:51-04:00","last_posted_at":"2013-07-15T12:47:07-04:00","bumped":true,"bumped_at":"2013-07-15T12:47:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8351,"title":"Clicking on password reset link redirects to /login","fancy_title":"Clicking on password reset link redirects to /login","slug":"clicking-on-password-reset-link-redirects-to-login","posts_count":6,"reply_count":4,"highest_post_number":6,"image_url":null,"created_at":"2013-07-13T19:23:25-04:00","last_posted_at":"2013-07-15T12:36:56-04:00","bumped":true,"bumped_at":"2013-07-15T12:36:49-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true},{"id":8390,"title":"Continous loading: FAQ, TOS, Privacy","fancy_title":"Continous loading: FAQ, TOS, Privacy","slug":"continous-loading-faq-tos-privacy","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T10:55:26-04:00","last_posted_at":"2013-07-15T11:53:01-04:00","bumped":true,"bumped_at":"2013-07-15T11:53:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":6,"name":"support","color":"b99","text_color":"FFFFFF","slug":"support","topic_count":358,"topics_week":16,"topics_month":71,"topics_year":356,"description":"Support on configuring, using, and installing Discourse. Not for software development related topics, but for admins and end users configuring and using Discourse.","description_excerpt":"Support on configuring, using, and installing Discourse. Not for software development related topics, but for admins and end users configuring and using Discourse.","featured_user_ids":[32,1,2,2600,406],"topics":[{"id":8360,"title":"Server Error 500 after Discourse install in Ubuntu - where to look?","fancy_title":"Server Error 500 after Discourse install in Ubuntu - where to look?","slug":"server-error-500-after-discourse-install-in-ubuntu-where-to-look","posts_count":20,"reply_count":10,"highest_post_number":21,"image_url":null,"created_at":"2013-07-14T09:48:34-04:00","last_posted_at":"2013-07-15T15:00:10-04:00","bumped":true,"bumped_at":"2013-07-15T15:00:10-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7956,"title":"Importing phpBB into Discourse","fancy_title":"Importing phpBB into Discourse","slug":"importing-phpbb-into-discourse","posts_count":19,"reply_count":10,"highest_post_number":19,"image_url":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s=40&r=pg&d=identicon","created_at":"2013-06-29T20:33:15-04:00","last_posted_at":"2013-07-15T11:52:01-04:00","bumped":true,"bumped_at":"2013-07-15T11:52:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8356,"title":"Wordpress plugin not working properly","fancy_title":"Wordpress plugin not working properly","slug":"wordpress-plugin-not-working-properly","posts_count":9,"reply_count":7,"highest_post_number":9,"image_url":null,"created_at":"2013-07-14T04:52:13-04:00","last_posted_at":"2013-07-15T11:49:39-04:00","bumped":true,"bumped_at":"2013-07-15T11:49:39-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8383,"title":"[FR] Comment installer Discourse?","fancy_title":"[FR] Comment installer Discourse?","slug":"fr-comment-installer-discourse","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T06:20:39-04:00","last_posted_at":"2013-07-15T08:27:21-04:00","bumped":true,"bumped_at":"2013-07-15T08:34:46-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8347,"title":"Error: A check for updates have not been performed","fancy_title":"Error: A check for updates have not been performed","slug":"error-a-check-for-updates-have-not-been-performed","posts_count":6,"reply_count":4,"highest_post_number":6,"image_url":null,"created_at":"2013-07-13T13:17:00-04:00","last_posted_at":"2013-07-15T08:34:42-04:00","bumped":true,"bumped_at":"2013-07-15T08:34:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8202,"title":"Bluepill not working 100%","fancy_title":"Bluepill not working 100%","slug":"bluepill-not-working-100","posts_count":22,"reply_count":11,"highest_post_number":22,"image_url":"http://cdn.discourse.org/assets/emoji/cry.png","created_at":"2013-07-08T16:13:15-04:00","last_posted_at":"2013-07-15T06:32:43-04:00","bumped":true,"bumped_at":"2013-07-15T06:32:43-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":5,"name":"extensibility ","color":"FE8432","text_color":"FFFFFF","slug":"extensibility","topic_count":34,"topics_week":4,"topics_month":7,"topics_year":34,"description":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility.  ","description_excerpt":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility.","featured_user_ids":[1,32,714,810,8],"topics":[{"id":8188,"title":"Automatic Daily Topic","fancy_title":"Automatic Daily Topic","slug":"automatic-daily-topic","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-08T09:58:09-04:00","last_posted_at":"2013-07-08T09:58:10-04:00","bumped":true,"bumped_at":"2013-07-15T11:02:09-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":5283,"title":"Adding Advertising","fancy_title":"Adding Advertising","slug":"adding-advertising","posts_count":33,"reply_count":20,"highest_post_number":33,"image_url":null,"created_at":"2013-03-26T19:06:32-04:00","last_posted_at":"2013-07-15T01:59:42-04:00","bumped":true,"bumped_at":"2013-07-15T01:59:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":31,"title":"What is the most awesome plugin for Discourse, that does not yet exist?","fancy_title":"What is the most awesome plugin for Discourse, that does not yet exist?","slug":"what-is-the-most-awesome-plugin-for-discourse-that-does-not-yet-exist","posts_count":156,"reply_count":107,"highest_post_number":158,"image_url":null,"created_at":"2013-02-03T06:43:18-05:00","last_posted_at":"2013-07-15T01:51:56-04:00","bumped":true,"bumped_at":"2013-07-15T01:51:56-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8296,"title":"Event Hooks for Discourse","fancy_title":"Event Hooks for Discourse","slug":"event-hooks-for-discourse","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-11T08:19:50-04:00","last_posted_at":"2013-07-11T14:47:37-04:00","bumped":true,"bumped_at":"2013-07-11T14:47:37-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8255,"title":"Wordpress/Buddypress Authentication","fancy_title":"Wordpress/Buddypress Authentication","slug":"wordpress-buddypress-authentication","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-10T03:40:50-04:00","last_posted_at":"2013-07-10T05:34:36-04:00","bumped":true,"bumped_at":"2013-07-10T05:34:36-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8178,"title":"Embed discourse posts on another website","fancy_title":"Embed discourse posts on another website","slug":"embed-discourse-posts-on-another-website","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-08T03:37:40-04:00","last_posted_at":"2013-07-08T08:42:25-04:00","bumped":true,"bumped_at":"2013-07-08T08:42:25-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":8,"name":"hosting","color":"25AAE1","text_color":"FFFFFF","slug":"hosting","topic_count":45,"topics_week":3,"topics_month":6,"topics_year":46,"description":"Topics about hosting Discourse, either on your own servers, in the cloud, or with specific hosting services.","description_excerpt":"Topics about hosting Discourse, either on your own servers, in the cloud, or with specific hosting services.","featured_user_ids":[1,32,2291,1674,2839],"topics":[{"id":8365,"title":"DiscourseHosting.com","fancy_title":"DiscourseHosting.com","slug":"discoursehosting-com","posts_count":4,"reply_count":3,"highest_post_number":4,"image_url":null,"created_at":"2013-07-14T12:16:54-04:00","last_posted_at":"2013-07-14T14:13:32-04:00","bumped":true,"bumped_at":"2013-07-14T14:13:32-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":6265,"title":"Discourse Hosting Proposal","fancy_title":"Discourse Hosting Proposal","slug":"discourse-hosting-proposal","posts_count":22,"reply_count":16,"highest_post_number":22,"image_url":null,"created_at":"2013-04-30T17:20:32-04:00","last_posted_at":"2013-07-13T08:25:07-04:00","bumped":true,"bumped_at":"2013-07-13T08:25:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":803,"title":"Stack Requirements for a DIY Discourse","fancy_title":"Stack Requirements for a DIY Discourse","slug":"stack-requirements-for-a-diy-discourse","posts_count":26,"reply_count":16,"highest_post_number":26,"image_url":null,"created_at":"2013-02-05T22:43:14-05:00","last_posted_at":"2013-07-12T11:47:04-04:00","bumped":true,"bumped_at":"2013-07-12T11:47:04-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8268,"title":"List of Discourse sites","fancy_title":"List of Discourse sites","slug":"list-of-discourse-sites","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-07-10T10:17:51-04:00","last_posted_at":"2013-07-10T10:32:35-04:00","bumped":true,"bumped_at":"2013-07-10T10:32:35-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":6749,"title":"On Heroku, does scheduler replace clockwork's functionality?","fancy_title":"On Heroku, does scheduler replace clockwork&rsquo;s functionality?","slug":"on-heroku-does-scheduler-replace-clockworks-functionality","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-05-20T20:26:05-04:00","last_posted_at":"2013-07-08T03:28:35-04:00","bumped":true,"bumped_at":"2013-07-08T03:54:16-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":2967,"title":"Is it feasible to run discourse on a EC2 micro instance?","fancy_title":"Is it feasible to run discourse on a EC2 micro instance?","slug":"is-it-feasible-to-run-discourse-on-a-ec2-micro-instance","posts_count":47,"reply_count":30,"highest_post_number":47,"image_url":null,"created_at":"2013-02-13T01:49:00-05:00","last_posted_at":"2013-07-07T06:26:44-04:00","bumped":true,"bumped_at":"2013-07-07T06:26:44-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":7,"name":"dev","color":"000","text_color":"FFFFFF","slug":"dev","topic_count":178,"topics_week":2,"topics_month":18,"topics_year":176,"description":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","description_excerpt":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","featured_user_ids":[1,32,19,1274,1995],"topics":[{"id":3823,"title":"So, you want to help out with Discourse","fancy_title":"So, you want to help out with Discourse","slug":"so-you-want-to-help-out-with-discourse","posts_count":22,"reply_count":19,"highest_post_number":39,"image_url":null,"created_at":"2013-02-23T00:46:11-05:00","last_posted_at":"2013-07-11T19:09:48-04:00","bumped":true,"bumped_at":"2013-07-11T19:09:48-04:00","unseen":false,"pinned":true,"excerpt":"People are wondering, how it is they can help out with Discourse.  \n\nWe have seen some chattering both here and on Github. \n\nI wanted to create a topic @eviltrout , @codinghorror and myself can keep up to date with clear&hellip;","visible":true,"closed":false,"archived":false},{"id":8393,"title":"Brazilian Portuguese translation","fancy_title":"Brazilian Portuguese translation","slug":"brazilian-portuguese-translation","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T13:56:34-04:00","last_posted_at":"2013-07-15T14:34:39-04:00","bumped":true,"bumped_at":"2013-07-15T14:34:39-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8392,"title":"Using gemoji for emoji","fancy_title":"Using gemoji for emoji","slug":"using-gemoji-for-emoji","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-15T13:05:13-04:00","last_posted_at":"2013-07-15T13:05:13-04:00","bumped":false,"bumped_at":"2013-07-15T13:05:13-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7763,"title":"Translation Tools: Transifex? Localeapp?","fancy_title":"Translation Tools: Transifex? Localeapp?","slug":"translation-tools-transifex-localeapp","posts_count":16,"reply_count":10,"highest_post_number":16,"image_url":null,"created_at":"2013-06-25T11:54:53-04:00","last_posted_at":"2013-07-15T12:56:26-04:00","bumped":true,"bumped_at":"2013-07-15T12:56:26-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8211,"title":"Chef omnibus_updater error when running 'vagrant up' on fresh Discourse clone","fancy_title":"Chef omnibus_updater error when running &lsquo;vagrant up&rsquo; on fresh Discourse clone","slug":"chef-omnibus-updater-error-when-running-vagrant-up-on-fresh-discourse-clone","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-07-08T20:53:49-04:00","last_posted_at":"2013-07-15T05:02:21-04:00","bumped":true,"bumped_at":"2013-07-15T05:02:21-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8363,"title":"Translators need a way to contribute localized username reservations","fancy_title":"Translators need a way to contribute localized username reservations","slug":"translators-need-a-way-to-contribute-localized-username-reservations","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-14T11:19:28-04:00","last_posted_at":"2013-07-15T03:43:48-04:00","bumped":true,"bumped_at":"2013-07-15T03:43:48-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":9,"name":"ux","color":"5F497A","text_color":"FFFFFF","slug":"ux","topic_count":103,"topics_week":2,"topics_month":12,"topics_year":103,"description":"Discussion about the user interface of Discourse, how features are presented to the user in the client, including language and UI elements.","description_excerpt":"Discussion about the user interface of Discourse, how features are presented to the user in the client, including language and UI elements.","featured_user_ids":[32,1,406,1263,3],"topics":[{"id":7449,"title":"Categories view constantly resorting","fancy_title":"Categories view constantly resorting","slug":"categories-view-constantly-resorting","posts_count":4,"reply_count":3,"highest_post_number":4,"image_url":null,"created_at":"2013-06-13T12:27:55-04:00","last_posted_at":"2013-07-14T11:01:39-04:00","bumped":true,"bumped_at":"2013-07-14T11:01:39-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8328,"title":"Web Accessibility testing","fancy_title":"Web Accessibility testing","slug":"web-accessibility-testing","posts_count":9,"reply_count":0,"highest_post_number":9,"image_url":null,"created_at":"2013-07-12T13:38:34-04:00","last_posted_at":"2013-07-13T05:16:38-04:00","bumped":true,"bumped_at":"2013-07-13T05:16:38-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":4116,"title":"Brainstorming a mobile Discourse design","fancy_title":"Brainstorming a mobile Discourse design","slug":"brainstorming-a-mobile-discourse-design","posts_count":43,"reply_count":30,"highest_post_number":44,"image_url":"http://www.gravatar.com/avatar/b3cc0833590c80e6335edd04cacfc734.png?s=40&r=pg&d=identicon","created_at":"2013-02-27T01:02:05-05:00","last_posted_at":"2013-07-12T08:20:25-04:00","bumped":true,"bumped_at":"2013-07-12T08:20:25-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8239,"title":"Should I still have a notification for a reply, if I've already seen the reply?","fancy_title":"Should I still have a notification for a reply, if I&rsquo;ve already seen the reply?","slug":"should-i-still-have-a-notification-for-a-reply-if-ive-already-seen-the-reply","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-07-09T14:14:12-04:00","last_posted_at":"2013-07-09T15:13:42-04:00","bumped":true,"bumped_at":"2013-07-09T15:13:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8138,"title":"Tooltips on avatars who like a post","fancy_title":"Tooltips on avatars who like a post","slug":"tooltips-on-avatars-who-like-a-post","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1334/dce555e93238ce02.png","created_at":"2013-07-05T14:24:12-04:00","last_posted_at":"2013-07-08T20:18:04-04:00","bumped":true,"bumped_at":"2013-07-08T20:16:21-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true},{"id":7400,"title":"Adding \"developer\" labels to the post avatars","fancy_title":"Adding &ldquo;developer&rdquo; labels to the post avatars","slug":"adding-developer-labels-to-the-post-avatars","posts_count":12,"reply_count":7,"highest_post_number":12,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1061/8a6ac964893019ea.png","created_at":"2013-06-11T22:14:03-04:00","last_posted_at":"2013-07-02T07:48:42-04:00","bumped":true,"bumped_at":"2013-07-02T07:48:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":10,"name":"howto","color":"76923C","text_color":"FFFFFF","slug":"howto","topic_count":45,"topics_week":2,"topics_month":9,"topics_year":45,"description":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment.","description_excerpt":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment.","featured_user_ids":[1,2839,2600,32,2664],"topics":[{"id":2349,"title":"Installing Discourse on Debian","fancy_title":"Installing Discourse on Debian","slug":"installing-discourse-on-debian","posts_count":95,"reply_count":69,"highest_post_number":95,"image_url":null,"created_at":"2013-02-08T02:43:23-05:00","last_posted_at":"2013-07-13T07:39:49-04:00","bumped":true,"bumped_at":"2013-07-13T07:39:49-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8305,"title":"Git pull anytime vs after tag?","fancy_title":"Git pull anytime vs after tag?","slug":"git-pull-anytime-vs-after-tag","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2013-07-11T17:28:50-04:00","last_posted_at":"2013-07-11T17:42:00-04:00","bumped":true,"bumped_at":"2013-07-11T17:42:00-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7229,"title":"How to set up image uploads to S3?","fancy_title":"How to set up image uploads to S3?","slug":"how-to-set-up-image-uploads-to-s3","posts_count":8,"reply_count":6,"highest_post_number":8,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1019/782cbc7e309ce43f.png","created_at":"2013-06-06T15:37:43-04:00","last_posted_at":"2013-07-11T01:08:21-04:00","bumped":true,"bumped_at":"2013-07-11T01:08:21-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":6561,"title":"Successfully daemonized sidekiq and clockwork on Ubuntu","fancy_title":"Successfully daemonized sidekiq and clockwork on Ubuntu","slug":"successfully-daemonized-sidekiq-and-clockwork-on-ubuntu","posts_count":12,"reply_count":5,"highest_post_number":12,"image_url":null,"created_at":"2013-05-11T16:27:12-04:00","last_posted_at":"2013-07-09T11:03:57-04:00","bumped":true,"bumped_at":"2013-07-09T11:03:57-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8180,"title":"How to disable the similar check?","fancy_title":"How to disable the similar check?","slug":"how-to-disable-the-similar-check","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-08T04:54:56-04:00","last_posted_at":"2013-07-08T14:44:55-04:00","bumped":true,"bumped_at":"2013-07-08T14:44:55-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7984,"title":"Discourse on Nginx + Passenger - an exhaustive howto","fancy_title":"Discourse on Nginx + Passenger - an exhaustive howto","slug":"discourse-on-nginx-passenger-an-exhaustive-howto","posts_count":8,"reply_count":3,"highest_post_number":8,"image_url":"http://cdn.discourse.org/assets/emoji/smiley.png","created_at":"2013-06-30T20:06:03-04:00","last_posted_at":"2013-07-06T23:43:48-04:00","bumped":true,"bumped_at":"2013-07-06T23:43:48-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":3,"name":"meta","color":"aaa","text_color":"FFFFFF","slug":"meta","topic_count":67,"topics_week":2,"topics_month":7,"topics_year":67,"description":"Discussion about meta.discourse.org itself, the organization of this forum about Discourse, how it works, and how we can improve this site.","description_excerpt":"Discussion about meta.discourse.org itself, the organization of this forum about Discourse, how it works, and how we can improve this site.","featured_user_ids":[32,1,38,2128,811],"topics":[{"id":5249,"title":"What is \"Meta\"?","fancy_title":"What is &ldquo;Meta&rdquo;?","slug":"what-is-meta","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-03-25T18:00:52-04:00","last_posted_at":"2013-03-25T18:00:56-04:00","bumped":false,"bumped_at":"2013-03-25T18:00:52-04:00","unseen":false,"pinned":true,"excerpt":"What is &quot;Meta&quot;?\n\nMeta means discussion of the discussion itself instead of the actual topic of the discussion. For example, discussions about... \n\n\nThe style of discussion.\nThe participants in the discussion.\nThe setting&hellip;","visible":true,"closed":false,"archived":false},{"id":8364,"title":"TIL: Discourse has smart @mentions","fancy_title":"TIL: Discourse has smart @mentions","slug":"til-discourse-has-smart-mentions","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1400/bd71ba5aef5a6c07.png","created_at":"2013-07-14T11:30:10-04:00","last_posted_at":"2013-07-15T03:40:50-04:00","bumped":true,"bumped_at":"2013-07-15T03:40:50-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8359,"title":"Changing input language","fancy_title":"Changing input language","slug":"changing-input-language","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-14T09:46:20-04:00","last_posted_at":"2013-07-14T09:46:20-04:00","bumped":false,"bumped_at":"2013-07-14T09:46:20-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":3102,"title":"Please visit our Discourse Forum! (Directory)","fancy_title":"Please visit our Discourse Forum! (Directory)","slug":"please-visit-our-discourse-forum-directory","posts_count":46,"reply_count":18,"highest_post_number":46,"image_url":null,"created_at":"2013-02-14T14:30:38-05:00","last_posted_at":"2013-07-13T03:57:09-04:00","bumped":true,"bumped_at":"2013-07-13T03:57:09-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":3436,"title":"Using Discourse as a chat application","fancy_title":"Using Discourse as a chat application","slug":"using-discourse-as-a-chat-application","posts_count":12,"reply_count":7,"highest_post_number":12,"image_url":null,"created_at":"2013-02-19T11:34:06-05:00","last_posted_at":"2013-07-08T08:57:27-04:00","bumped":true,"bumped_at":"2013-07-08T08:57:27-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8153,"title":"What's the best way to integrate Discours's WMD editor to my own site?","fancy_title":"What&rsquo;s the best way to integrate Discours&rsquo;s WMD editor to my own site?","slug":"whats-the-best-way-to-integrate-discourss-wmd-editor-to-my-own-site","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-06T05:38:21-04:00","last_posted_at":"2013-07-06T06:12:38-04:00","bumped":true,"bumped_at":"2013-07-06T06:12:38-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":null,"name":"uncategorized","color":"AB9364","text_color":"FFFFFF","slug":"uncategorized","topic_count":184,"topics_week":2,"topics_month":15,"topics_year":184,"description":null,"description_excerpt":null,"is_uncategorized":true,"featured_user_ids":[],"topics":[{"id":4680,"title":"Anything like Discourse for community publishing?","fancy_title":"Anything like Discourse for community publishing?","slug":"anything-like-discourse-for-community-publishing","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-03-12T06:49:04-04:00","last_posted_at":"2013-07-15T12:45:19-04:00","bumped":true,"bumped_at":"2013-07-15T12:45:19-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8308,"title":"Error: Changing Languague pack to Korean from English","fancy_title":"Error: Changing Languague pack to Korean from English","slug":"error-changing-languague-pack-to-korean-from-english","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-12T00:51:40-04:00","last_posted_at":"2013-07-12T00:51:40-04:00","bumped":false,"bumped_at":"2013-07-12T00:51:40-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8307,"title":"Help me create a forum by discourse","fancy_title":"Help me create a forum by discourse","slug":"help-me-create-a-forum-by-discourse","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":null,"created_at":"2013-07-11T22:49:40-04:00","last_posted_at":"2013-07-11T23:32:13-04:00","bumped":true,"bumped_at":"2013-07-11T23:32:13-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8261,"title":"Facebook onebox","fancy_title":"Facebook onebox","slug":"facebook-onebox","posts_count":15,"reply_count":12,"highest_post_number":15,"image_url":null,"created_at":"2013-07-10T09:04:54-04:00","last_posted_at":"2013-07-11T08:06:16-04:00","bumped":true,"bumped_at":"2013-07-11T08:06:16-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8185,"title":"Will Discourse play nicely with CMS' like 107?","fancy_title":"Will Discourse play nicely with CMS' like 107?","slug":"will-discourse-play-nicely-with-cms-like-107","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":null,"created_at":"2013-07-08T07:28:11-04:00","last_posted_at":"2013-07-10T10:55:58-04:00","bumped":true,"bumped_at":"2013-07-10T10:55:58-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8181,"title":"Offtipoc forum or test forum","fancy_title":"Offtipoc forum or test forum","slug":"offtipoc-forum-or-test-forum","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-08T06:40:40-04:00","last_posted_at":"2013-07-08T07:00:47-04:00","bumped":true,"bumped_at":"2013-07-08T07:00:47-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":13,"name":"blog","color":"ED207B","text_color":"FFFFFF","slug":"blog","topic_count":9,"topics_week":0,"topics_month":2,"topics_year":9,"description":"Discussion topics generated from the official Discourse Blog. These topics are linked from the bottom of each blog entry where the blog comments would normally be.","description_excerpt":"Discussion topics generated from the official Discourse Blog. These topics are linked from the bottom of each blog entry where the blog comments would normally be.","featured_user_ids":[32,1,5468,1995,4217],"topics":[{"id":8140,"title":"Improved Image Handling","fancy_title":"Improved Image Handling","slug":"improved-image-handling","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-05T17:11:38-04:00","last_posted_at":"2013-07-05T17:11:38-04:00","bumped":true,"bumped_at":"2013-07-05T17:11:38-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7478,"title":"Discourse on Ubuntu: Video Walkthrough","fancy_title":"Discourse on Ubuntu: Video Walkthrough","slug":"discourse-on-ubuntu-video-walkthrough","posts_count":10,"reply_count":6,"highest_post_number":10,"image_url":null,"created_at":"2013-06-14T10:47:53-04:00","last_posted_at":"2013-07-03T23:36:53-04:00","bumped":true,"bumped_at":"2013-07-03T23:36:53-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":5751,"title":"Discourse as Your First Rails App","fancy_title":"Discourse as Your First Rails App","slug":"discourse-as-your-first-rails-app","posts_count":47,"reply_count":33,"highest_post_number":53,"image_url":null,"created_at":"2013-04-09T19:08:33-04:00","last_posted_at":"2013-07-03T11:49:32-04:00","bumped":true,"bumped_at":"2013-07-03T11:49:32-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7933,"title":"Forums Are Dead, Long Live Forums","fancy_title":"Forums Are Dead, Long Live Forums","slug":"forums-are-dead-long-live-forums","posts_count":16,"reply_count":15,"highest_post_number":16,"image_url":null,"created_at":"2013-06-29T01:19:45-04:00","last_posted_at":"2013-07-01T16:19:16-04:00","bumped":true,"bumped_at":"2013-06-30T22:39:44-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":5575,"title":"Our First Partner: How-To Geek","fancy_title":"Our First Partner: How-To Geek","slug":"our-first-partner-how-to-geek","posts_count":22,"reply_count":16,"highest_post_number":23,"image_url":null,"created_at":"2013-04-03T18:42:46-04:00","last_posted_at":"2013-06-07T19:27:46-04:00","bumped":true,"bumped_at":"2013-06-07T19:27:46-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":5898,"title":"The Discourse Servers","fancy_title":"The Discourse Servers","slug":"the-discourse-servers","posts_count":29,"reply_count":21,"highest_post_number":29,"image_url":null,"created_at":"2013-04-15T15:19:09-04:00","last_posted_at":"2013-05-30T15:44:01-04:00","bumped":true,"bumped_at":"2013-05-30T15:44:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":4,"name":"faq","color":"33b","text_color":"FFFFFF","slug":"faq","topic_count":39,"topics_week":0,"topics_month":1,"topics_year":39,"description":"Topics that come up very often when discussing Discourse will eventually be classified into this Frequently Asked Questions category. Should only be added to popular topics.","description_excerpt":"Topics that come up very often when discussing Discourse will eventually be classified into this Frequently Asked Questions category. Should only be added to popular topics.","featured_user_ids":[32,1,4,4263,2465],"topics":[{"id":7755,"title":"What do the dates on the bottom of the categories page mean?","fancy_title":"What do the dates on the bottom of the categories page mean?","slug":"what-do-the-dates-on-the-bottom-of-the-categories-page-mean","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1218/87b3b53c9641c86e.jpeg","created_at":"2013-06-25T04:24:56-04:00","last_posted_at":"2013-07-02T00:08:41-04:00","bumped":true,"bumped_at":"2013-07-02T00:08:41-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":866,"title":"UX confusion - why sometimes I see \"x reply(s) below\" and sometimes I don't","fancy_title":"UX confusion - why sometimes I see &ldquo;x reply(s) below&rdquo; and sometimes I don&rsquo;t","slug":"ux-confusion-why-sometimes-i-see-x-reply-s-below-and-sometimes-i-dont","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2013-02-06T00:31:46-05:00","last_posted_at":"2013-06-25T23:34:34-04:00","bumped":true,"bumped_at":"2013-06-25T23:34:34-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":2408,"title":"Private Discourse Forum","fancy_title":"Private Discourse Forum","slug":"private-discourse-forum","posts_count":18,"reply_count":10,"highest_post_number":18,"image_url":null,"created_at":"2013-02-08T08:25:22-05:00","last_posted_at":"2013-06-20T17:45:35-04:00","bumped":true,"bumped_at":"2013-06-20T17:47:47-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":6724,"title":"Where is this development roadmap?","fancy_title":"Where is this development roadmap?","slug":"where-is-this-development-roadmap","posts_count":12,"reply_count":8,"highest_post_number":12,"image_url":null,"created_at":"2013-05-19T15:15:19-04:00","last_posted_at":"2013-06-17T11:03:07-04:00","bumped":true,"bumped_at":"2013-06-17T11:03:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7378,"title":"Discourse Release Announcements for each tagged version release","fancy_title":"Discourse Release Announcements for each tagged version release","slug":"discourse-release-announcements-for-each-tagged-version-release","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-06-11T10:31:03-04:00","last_posted_at":"2013-06-12T02:18:33-04:00","bumped":true,"bumped_at":"2013-06-12T02:18:33-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":3059,"title":"Two different unread counts","fancy_title":"Two different unread counts","slug":"two-different-unread-counts","posts_count":8,"reply_count":6,"highest_post_number":8,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/266/screen_shot_20130213_at_11_32_07_pm.png","created_at":"2013-02-14T02:37:50-05:00","last_posted_at":"2013-03-24T15:40:45-04:00","bumped":true,"bumped_at":"2013-06-04T18:20:22-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":11,"name":"login","color":"edb400","text_color":"FFFFFF","slug":"login","topic_count":16,"topics_week":0,"topics_month":1,"topics_year":16,"description":"Topics about logging in to Discourse, using any standard third party provider (Twitter, Facebook, Google), traditional username and password, or with a custom plugin.","description_excerpt":"Topics about logging in to Discourse, using any standard third party provider (Twitter, Facebook, Google), traditional username and password, or with a custom plugin.","featured_user_ids":[32,2,1,4939,3507],"topics":[{"id":1420,"title":"Please add Persona as an authentication option","fancy_title":"Please add Persona as an authentication option","slug":"please-add-persona-as-an-authentication-option","posts_count":22,"reply_count":16,"highest_post_number":22,"image_url":null,"created_at":"2013-02-06T11:28:44-05:00","last_posted_at":"2013-07-01T19:51:27-04:00","bumped":true,"bumped_at":"2013-07-01T19:51:27-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7909,"title":"OmniAuth integration documentation","fancy_title":"OmniAuth integration documentation","slug":"omniauth-integration-documentation","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-28T12:51:24-04:00","last_posted_at":"2013-06-28T12:51:24-04:00","bumped":false,"bumped_at":"2013-06-28T12:51:24-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":6869,"title":"Force use of an authentication provider","fancy_title":"Force use of an authentication provider","slug":"force-use-of-an-authentication-provider","posts_count":21,"reply_count":16,"highest_post_number":21,"image_url":null,"created_at":"2013-05-24T15:26:41-04:00","last_posted_at":"2013-06-15T16:58:09-04:00","bumped":true,"bumped_at":"2013-06-15T16:58:09-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":5800,"title":"UTF-8 to webalized char set transliteration for Facebook login","fancy_title":"UTF-8 to webalized char set transliteration for Facebook login","slug":"utf-8-to-webalized-char-set-transliteration-for-facebook-login","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-04-11T13:58:56-04:00","last_posted_at":"2013-04-11T13:58:56-04:00","bumped":false,"bumped_at":"2013-04-11T13:58:56-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":4011,"title":"I can't login using my password","fancy_title":"I can&rsquo;t login using my password","slug":"i-can-t-login-using-my-password","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-02-25T06:47:42-05:00","last_posted_at":"2013-03-13T19:36:48-04:00","bumped":true,"bumped_at":"2013-03-13T19:36:44-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true},{"id":4738,"title":"Login support for browser password managers","fancy_title":"Login support for browser password managers","slug":"login-support-for-browser-password-managers","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-03-13T17:55:29-04:00","last_posted_at":"2013-03-13T19:11:56-04:00","bumped":true,"bumped_at":"2013-03-13T19:11:56-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":14,"name":"marketplace","color":"8C6238","text_color":"FFFFFF","slug":"marketplace","topic_count":5,"topics_week":0,"topics_month":0,"topics_year":4,"description":"About commercial Discourse related stuff: jobs or paid gigs, plugins, themes, hosting, etc.","description_excerpt":"About commercial Discourse related stuff: jobs or paid gigs, plugins, themes, hosting, etc.","featured_user_ids":[1263,2981,5460,406,32],"topics":[{"id":8372,"title":"I need help with Discoursed","fancy_title":"I need help with Discoursed","slug":"i-need-help-with-discoursed","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":null,"created_at":"2013-07-14T20:11:39-04:00","last_posted_at":"2013-07-15T08:01:47-04:00","bumped":true,"bumped_at":"2013-07-15T08:01:47-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7305,"title":"I would like to hire someone to install discourse on my site","fancy_title":"I would like to hire someone to install discourse on my site","slug":"i-would-like-to-hire-someone-to-install-discourse-on-my-site","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-08T18:32:07-04:00","last_posted_at":"2013-06-09T00:27:21-04:00","bumped":true,"bumped_at":"2013-06-09T00:27:21-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7221,"title":"I want discourse for small business","fancy_title":"I want discourse for small business","slug":"i-want-discourse-for-small-business","posts_count":8,"reply_count":5,"highest_post_number":8,"image_url":null,"created_at":"2013-06-06T09:05:43-04:00","last_posted_at":"2013-06-06T19:52:47-04:00","bumped":true,"bumped_at":"2013-06-06T19:52:47-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7054,"title":"Contract available: Web developer (RoR, JS, Node.JS, Discourse)","fancy_title":"Contract available: Web developer (RoR, JS, Node.JS, Discourse)","slug":"contract-available-web-developer-ror-js-node-js-discourse","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-05-31T19:30:52-04:00","last_posted_at":"2013-05-31T19:30:52-04:00","bumped":false,"bumped_at":"2013-05-31T19:30:52-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":5409,"title":"Looking for a Discourse specialist !!","fancy_title":"Looking for a Discourse specialist !!","slug":"looking-for-a-discourse-specialist","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-03-30T02:15:56-04:00","last_posted_at":"2013-03-30T02:15:56-04:00","bumped":false,"bumped_at":"2013-03-30T02:15:56-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":12,"name":"discourse hub","color":"b2c79f","text_color":"FFFFFF","slug":"discourse-hub","topic_count":4,"topics_week":0,"topics_month":0,"topics_year":4,"description":"Topics about current or future Discourse Hub functionality at discourse.org including nickname registration, global user pages, and the site directory.","description_excerpt":"Topics about current or future Discourse Hub functionality at discourse.org including nickname registration, global user pages, and the site directory.","featured_user_ids":[32,2,704,461,1566],"topics":[{"id":6547,"title":"Where to get discourse_org_access_key?","fancy_title":"Where to get discourse_org_access_key?","slug":"where-to-get-discourse-org-access-key","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":null,"created_at":"2013-05-10T22:06:08-04:00","last_posted_at":"2013-06-18T11:49:18-04:00","bumped":true,"bumped_at":"2013-06-18T11:49:18-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":424,"title":"What are the 'consequences' of changing your name?","fancy_title":"What are the &lsquo;consequences&rsquo; of changing your name?","slug":"what-are-the-consequences-of-changing-your-name","posts_count":33,"reply_count":32,"highest_post_number":33,"image_url":null,"created_at":"2013-02-05T17:37:52-05:00","last_posted_at":"2013-05-17T11:28:00-04:00","bumped":true,"bumped_at":"2013-06-12T13:22:10-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":2544,"title":"Discourse central hub questions","fancy_title":"Discourse central hub questions","slug":"discourse-central-hub-questions","posts_count":49,"reply_count":41,"highest_post_number":49,"image_url":null,"created_at":"2013-02-09T04:28:21-05:00","last_posted_at":"2013-05-28T12:15:25-04:00","bumped":true,"bumped_at":"2013-05-28T12:15:25-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":5664,"title":"Discourse Hub nickname uniqueness not working?","fancy_title":"Discourse Hub nickname uniqueness not working?","slug":"discourse-hub-nickname-uniqueness-not-working","posts_count":22,"reply_count":16,"highest_post_number":23,"image_url":null,"created_at":"2013-04-06T03:40:11-04:00","last_posted_at":"2013-04-09T10:56:46-04:00","bumped":true,"bumped_at":"2013-04-09T10:56:46-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]}]}};
-Discourse.URL_FIXTURES["/category/bug.json"] = {"categories":[{"id":1,"name":"bug","color":"ae3a27","text_color":"FFFFFF","slug":"bug","topic_count":422,"description":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","topic_url":"/t/category-definition-for-bug/2","hotness":5.0,"read_restricted":false,"permission":null}],"users":[{"id":3987,"username":"Sander78","avatar_template":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s={size}&r=pg&d=identicon"},{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":5271,"username":"royguo","avatar_template":"https://www.gravatar.com/avatar/7e795755fe8a817981c3a81620faf359.png?s={size}&r=pg&d=identicon"},{"id":2602,"username":"georgekaplan59","avatar_template":"https://www.gravatar.com/avatar/503623c769903342cba73e722a364061.png?s={size}&r=pg&d=identicon"},{"id":5351,"username":"erlend_sh","avatar_template":"https://www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon"},{"id":3681,"username":"Ajarn","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon"},{"id":1496,"username":"cfstras","avatar_template":"https://www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon"},{"id":4957,"username":"ben_a_adams","avatar_template":"https://www.gravatar.com/avatar/38980d692c0ec5158fb2298a6a6be8f1.png?s={size}&r=pg&d=identicon"},{"id":4457,"username":"Lee_Ars","avatar_template":"https://www.gravatar.com/avatar/eff1b72d56a97459a27161ccf7f20c89.png?s={size}&r=pg&d=identicon"},{"id":1621,"username":"bnb","avatar_template":"https://www.gravatar.com/avatar/1e54a178bf671227ea6142e93bf33b39.png?s={size}&r=pg&d=identicon"},{"id":5428,"username":"abbat","avatar_template":"https://www.gravatar.com/avatar/8fdf603233c6a4328b8c943e2fabcf62.png?s={size}&r=pg&d=identicon"},{"id":5546,"username":"adrianlang","avatar_template":"https://www.gravatar.com/avatar/9a38887baf481569db05e89d38bc5797.png?s={size}&r=pg&d=identicon"},{"id":5900,"username":"dougalcorn","avatar_template":"https://www.gravatar.com/avatar/e6b1b1bfebd2e0a05d0785c14c98b45f.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":6071,"username":"CFields","avatar_template":"https://www.gravatar.com/avatar/87ce016360b6e62b5eab4927e6c6ea5a.png?s={size}&r=pg&d=identicon"},{"id":5477,"username":"phanimahesh","avatar_template":"https://www.gravatar.com/avatar/42ca770299eab441ddabae5a1ad5f799.png?s={size}&r=pg&d=identicon"},{"id":471,"username":"BhaelOchon","avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon"},{"id":2600,"username":"NinjaFoodstuff","avatar_template":"https://www.gravatar.com/avatar/3709f34da1ff5433b41bc56df94dd453.png?s={size}&r=pg&d=identicon"},{"id":2625,"username":"kpfleming","avatar_template":"https://www.gravatar.com/avatar/26bf5a02583eaf63d1f8063bb3a6bc00.png?s={size}&r=pg&d=identicon"},{"id":4263,"username":"mcwumbly","avatar_template":"https://www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon"},{"id":4395,"username":"aftakitani","avatar_template":"https://www.gravatar.com/avatar/a26ec726f9f7e819e01797d34ea8dbc6.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"Neil","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":2989,"username":"meglio","avatar_template":"https://www.gravatar.com/avatar/c9a1577cedad5cf1af59379a5bd6721b.png?s={size}&r=pg&d=identicon"},{"id":3382,"username":"Nicholas","avatar_template":"https://www.gravatar.com/avatar/3afdd55e4314007f88a2cd553b9c86c3.png?s={size}&r=pg&d=identicon"},{"id":5372,"username":"computerdruid","avatar_template":"https://www.gravatar.com/avatar/34c3b45c075a6d85555beb674892d0d8.png?s={size}&r=pg&d=identicon"},{"id":5872,"username":"maddenwg","avatar_template":"https://www.gravatar.com/avatar/c4e85c619027c548fb929bcaca13bbfb.png?s={size}&r=pg&d=identicon"},{"id":1353,"username":"sparr","avatar_template":"https://www.gravatar.com/avatar/7906663b1197829751673465948e0b05.png?s={size}&r=pg&d=identicon"},{"id":4121,"username":"endukugga","avatar_template":"https://www.gravatar.com/avatar/eee1482fb2837e1e5ab89dd2086a2d31.png?s={size}&r=pg&d=identicon"},{"id":5939,"username":"uyandiren","avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon"},{"id":5949,"username":"braininpain","avatar_template":"https://www.gravatar.com/avatar/39458a23c9995b6508a818c78e177063.png?s={size}&r=pg&d=identicon"},{"id":3062,"username":"Sailsman63","avatar_template":"https://www.gravatar.com/avatar/d2afe59f03e33f57760fbaacc35949d5.png?s={size}&r=pg&d=identicon"},{"id":5941,"username":"yasarusta","avatar_template":"https://www.gravatar.com/avatar/014077103acd281d6d246e5edf2e9bee.png?s={size}&r=pg&d=identicon"},{"id":5648,"username":"jamesaanderson","avatar_template":"https://www.gravatar.com/avatar/b3e9977094ce189bbb493cf7f9adea21.png?s={size}&r=pg&d=identicon"}],"topic_list":{"can_create_topic":false,"more_topics_url":"/category/bug.json?page=1","draft":null,"draft_key":"new_topic","draft_sequence":null,"topics":[{"id":7288,"title":"Digest mail ignores secure groups","fancy_title":"Digest mail ignores secure groups","slug":"digest-mail-ignores-secure-groups","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-08T08:54:12-04:00","last_posted_at":"2013-06-08T13:00:38-04:00","bumped":true,"bumped_at":"2013-06-08T13:00:38-04:00","unseen":false,"pinned":true,"excerpt":"People receiving the digest mail can easily read posts not meant for them. That&#x27;s because the digest mail ignores the secure groups a member has access to or not. \n\nQuite a problem as I unfortunately found out. [smile]","visible":true,"closed":false,"archived":false,"views":210,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3987},{"extras":null,"description":"Most Posts","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":2,"title":"Category definition for bug","fancy_title":"Category definition for bug","slug":"category-definition-for-bug","posts_count":2,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-01-31T23:56:34-05:00","last_posted_at":"2013-03-07T22:42:27-05:00","bumped":true,"bumped_at":"2013-02-26T18:52:56-05:00","unseen":false,"pinned":true,"excerpt":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","visible":true,"closed":false,"archived":false,"views":271,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":7401,"title":"Shall we add category names in top_menu?","fancy_title":"Shall we add category names in top_menu?","slug":"shall-we-add-category-names-in-top-menu","posts_count":8,"reply_count":5,"highest_post_number":8,"image_url":null,"created_at":"2013-06-11T22:47:34-04:00","last_posted_at":"2013-07-15T13:17:59-04:00","bumped":true,"bumped_at":"2013-07-15T14:28:15-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":105,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5271},{"extras":null,"description":"Most Posts","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":2602}]},{"id":8380,"title":"Incomplete view count in thread after posting","fancy_title":"Incomplete view count in thread after posting","slug":"incomplete-view-count-in-thread-after-posting","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1413/49ec745ca8280374.jpg","created_at":"2013-07-15T04:11:54-04:00","last_posted_at":"2013-07-15T12:48:01-04:00","bumped":true,"bumped_at":"2013-07-15T12:48:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":23,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5351},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":3681},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8386,"title":"Entering a previously read topic doesn't always place me at my last unread post","fancy_title":"Entering a previously read topic doesn&rsquo;t always place me at my last unread post","slug":"entering-a-previously-read-topic-doesnt-always-place-me-at-my-last-unread-post","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T09:53:51-04:00","last_posted_at":"2013-07-15T12:47:07-04:00","bumped":true,"bumped_at":"2013-07-15T12:47:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":24,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8351,"title":"Clicking on password reset link redirects to /login","fancy_title":"Clicking on password reset link redirects to /login","slug":"clicking-on-password-reset-link-redirects-to-login","posts_count":6,"reply_count":4,"highest_post_number":6,"image_url":null,"created_at":"2013-07-13T19:23:25-04:00","last_posted_at":"2013-07-15T12:36:56-04:00","bumped":true,"bumped_at":"2013-07-15T12:36:49-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":40,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1496},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":8390,"title":"Continous loading: FAQ, TOS, Privacy","fancy_title":"Continous loading: FAQ, TOS, Privacy","slug":"continous-loading-faq-tos-privacy","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-15T10:55:26-04:00","last_posted_at":"2013-07-15T11:53:01-04:00","bumped":true,"bumped_at":"2013-07-15T11:53:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":27,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":4957}]},{"id":8367,"title":"Very fast scrolling fails to mark all posts read in a thread","fancy_title":"Very fast scrolling fails to mark all posts read in a thread","slug":"very-fast-scrolling-fails-to-mark-all-posts-read-in-a-thread","posts_count":6,"reply_count":4,"highest_post_number":6,"image_url":null,"created_at":"2013-07-14T12:37:02-04:00","last_posted_at":"2013-07-15T09:28:07-04:00","bumped":true,"bumped_at":"2013-07-15T09:28:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":48,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":4457},{"extras":null,"description":"Most Posts","user_id":3681},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":1621}]},{"id":8198,"title":"Unable to create group","fancy_title":"Unable to create group","slug":"unable-to-create-group","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":null,"created_at":"2013-07-08T13:58:49-04:00","last_posted_at":"2013-07-15T09:19:06-04:00","bumped":true,"bumped_at":"2013-07-15T09:19:06-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":61,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":1}]},{"id":8317,"title":"Smb \"said:\" quote phrase is not localized","fancy_title":"Smb &ldquo;said:&rdquo; quote phrase is not localized","slug":"smb-said-quote-phrase-is-not-localized","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1387/234b642b72c70dac.png","created_at":"2013-07-12T08:49:03-04:00","last_posted_at":"2013-07-13T14:51:16-04:00","bumped":true,"bumped_at":"2013-07-13T14:51:16-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":72,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5428},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":5351}]},{"id":7502,"title":"TypeError when clicking on user name in admin’s user list","fancy_title":"TypeError when clicking on user name in admin’s user list","slug":"typeerror-when-clicking-on-user-name-in-admin-s-user-list","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-06-15T05:50:37-04:00","last_posted_at":"2013-07-13T11:46:00-04:00","bumped":true,"bumped_at":"2013-07-13T11:46:00-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":87,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5546},{"extras":null,"description":"Most Posts","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":5900}]},{"id":8262,"title":"CDN doesn't work with S3","fancy_title":"CDN doesn&rsquo;t work with S3","slug":"cdn-doesnt-work-with-s3","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":"http://cdn.incendiarylegion.com//discourse-s3-bucket.s3.amazonaws.com/146d7d4046b3605abe1beb25f97ebbe1f0ea2213c.png","created_at":"2013-07-10T09:49:25-04:00","last_posted_at":"2013-07-12T17:41:10-04:00","bumped":true,"bumped_at":"2013-07-12T17:41:10-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":70,"like_count":5,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":1995},{"extras":"latest","description":"Most Recent Poster","user_id":6071}]},{"id":8295,"title":"No hover text on unread button","fancy_title":"No hover text on unread button","slug":"no-hover-text-on-unread-button","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":null,"created_at":"2013-07-11T07:57:02-04:00","last_posted_at":"2013-07-12T15:53:41-04:00","bumped":true,"bumped_at":"2013-07-12T15:53:41-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":68,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5351},{"extras":null,"description":"Most Posts","user_id":5477},{"extras":"latest","description":"Most Recent Poster","user_id":471}]},{"id":8314,"title":"Cannot edit topic published by wp-discourse","fancy_title":"Cannot edit topic published by wp-discourse","slug":"cannot-edit-topic-published-by-wp-discourse","posts_count":6,"reply_count":5,"highest_post_number":6,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1386/09917def72de4569.png","created_at":"2013-07-12T06:23:51-04:00","last_posted_at":"2013-07-12T11:55:56-04:00","bumped":true,"bumped_at":"2013-07-12T11:55:56-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":59,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2600},{"extras":null,"description":"Most Posts","user_id":2625},{"extras":null,"description":"Frequent Poster","user_id":5351},{"extras":null,"description":"Frequent Poster","user_id":1}]},{"id":8326,"title":"Activity not being updated (at least for the linked topic)","fancy_title":"Activity not being updated (at least for the linked topic)","slug":"activity-not-being-updated-at-least-for-the-linked-topic","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-12T11:26:06-04:00","last_posted_at":"2013-07-12T11:43:30-04:00","bumped":true,"bumped_at":"2013-07-12T11:43:30-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":32,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":"latest","description":"Most Recent Poster","user_id":471}]},{"id":8267,"title":"Heart (like) button disappears after clicking","fancy_title":"Heart (like) button disappears after clicking","slug":"heart-like-button-disappears-after-clicking","posts_count":9,"reply_count":6,"highest_post_number":9,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/_optimized/96c/703/80f9efb15bd_690x255.png","created_at":"2013-07-10T10:14:02-04:00","last_posted_at":"2013-07-11T08:29:35-04:00","bumped":true,"bumped_at":"2013-07-11T08:29:35-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":86,"like_count":12,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5351},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":3681},{"extras":null,"description":"Frequent Poster","user_id":4263},{"extras":"latest","description":"Most Recent Poster","user_id":5477}]},{"id":8107,"title":"Translation Missing","fancy_title":"Translation Missing","slug":"translation-missing","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1321/f391ef507da7f8fb.png","created_at":"2013-07-04T14:47:21-04:00","last_posted_at":"2013-07-10T15:10:43-04:00","bumped":true,"bumped_at":"2013-07-10T15:30:39-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":83,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":4395},{"extras":null,"description":"Most Posts","user_id":1995}]},{"id":8174,"title":"\"Educate\" message still shows up after more than 2 posts","fancy_title":"&ldquo;Educate&rdquo; message still shows up after more than 2 posts","slug":"educate-message-still-shows-up-after-more-than-2-posts","posts_count":18,"reply_count":12,"highest_post_number":18,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1347/6f471bd32fe95f23.png","created_at":"2013-07-07T22:34:28-04:00","last_posted_at":"2013-07-10T14:06:22-04:00","bumped":true,"bumped_at":"2013-07-10T14:06:22-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":137,"like_count":4,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":2},{"extras":null,"description":"Frequent Poster","user_id":4457}]},{"id":4412,"title":"Cannot re-format my answer, it says content looks very similar to previous one","fancy_title":"Cannot re-format my answer, it says content looks very similar to previous one","slug":"cannot-re-format-my-answer-it-says-content-looks-very-similar-to-previous-one","posts_count":10,"reply_count":5,"highest_post_number":10,"image_url":"https://www.gravatar.com/avatar/c9a1577cedad5cf1af59379a5bd6721b.png?s=40&r=pg&d=identicon","created_at":"2013-03-04T09:54:00-05:00","last_posted_at":"2013-07-10T09:50:36-04:00","bumped":true,"bumped_at":"2013-07-10T09:50:36-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":219,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":2989},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":3382},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":3681}]},{"id":8208,"title":"Unread state (or topic state) gets stale (on meta)","fancy_title":"Unread state (or topic state) gets stale (on meta)","slug":"unread-state-or-topic-state-gets-stale-on-meta","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1361/4720c3b52cf473d7.png","created_at":"2013-07-08T18:00:30-04:00","last_posted_at":"2013-07-09T22:46:41-04:00","bumped":true,"bumped_at":"2013-07-09T22:46:41-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":64,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":5372}]},{"id":8135,"title":"Allowed to edit title/category of archived topic","fancy_title":"Allowed to edit title/category of archived topic","slug":"allowed-to-edit-title-category-of-archived-topic","posts_count":5,"reply_count":0,"highest_post_number":5,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1329/097f635083e08d4d.png","created_at":"2013-07-05T11:37:04-04:00","last_posted_at":"2013-07-09T17:31:17-04:00","bumped":true,"bumped_at":"2013-07-09T17:31:06-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":101,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":471},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":2}]},{"id":8217,"title":"Auto close makes incorrect automatic posts when queues are inline","fancy_title":"Auto close makes incorrect automatic posts when queues are inline","slug":"auto-close-makes-incorrect-automatic-posts-when-queues-are-inline","posts_count":8,"reply_count":2,"highest_post_number":8,"image_url":null,"created_at":"2013-07-09T03:31:25-04:00","last_posted_at":"2013-07-09T16:01:21-04:00","bumped":true,"bumped_at":"2013-07-09T16:01:17-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":64,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5477},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":8234,"title":"UI Bug with \"Reply as new Topic\" button","fancy_title":"UI Bug with &ldquo;Reply as new Topic&rdquo; button","slug":"ui-bug-with-reply-as-new-topic-button","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1372/fae923ff785e01cd.png","created_at":"2013-07-09T13:06:38-04:00","last_posted_at":"2013-07-09T16:00:42-04:00","bumped":true,"bumped_at":"2013-07-09T15:54:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":67,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":8233,"title":"Category pages don't auto-update","fancy_title":"Category pages don&rsquo;t auto-update","slug":"category-pages-dont-auto-update","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-09T13:00:11-04:00","last_posted_at":"2013-07-09T13:00:12-04:00","bumped":true,"bumped_at":"2013-07-09T13:00:12-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":45,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3681}]},{"id":8229,"title":"Post stream sometimes not pulling latest posts","fancy_title":"Post stream sometimes not pulling latest posts","slug":"post-stream-sometimes-not-pulling-latest-posts","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":null,"created_at":"2013-07-09T10:58:45-04:00","last_posted_at":"2013-07-09T11:49:13-04:00","bumped":true,"bumped_at":"2013-07-09T11:49:13-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":45,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":471},{"extras":null,"description":"Frequent Poster","user_id":5477},{"extras":"latest","description":"Most Recent Poster","user_id":4457}]},{"id":8225,"title":"Categories tab: missing \"view all buttons\" and incorrect topic counts","fancy_title":"Categories tab: missing &ldquo;view all buttons&rdquo; and incorrect topic counts","slug":"categories-tab-missing-view-all-buttons-and-incorrect-topic-counts","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/_optimized/701/561/5c68b248223_690x491.png","created_at":"2013-07-09T07:30:51-04:00","last_posted_at":"2013-07-09T07:40:20-04:00","bumped":true,"bumped_at":"2013-07-09T07:40:20-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":30,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5872},{"extras":"latest","description":"Most Recent Poster","user_id":5477}]},{"id":5910,"title":"Clicking on site icon/name in top left does not refresh/reload","fancy_title":"Clicking on site icon/name in top left does not refresh/reload","slug":"clicking-on-site-icon-name-in-top-left-does-not-refresh-reload","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2013-04-15T19:22:02-04:00","last_posted_at":"2013-07-09T00:38:44-04:00","bumped":true,"bumped_at":"2013-07-09T00:38:36-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":131,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1353},{"extras":null,"description":"Most Posts","user_id":4121},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8091,"title":"Turkish text cannot be posted","fancy_title":"Turkish text cannot be posted","slug":"turkish-text-cannot-be-posted","posts_count":14,"reply_count":11,"highest_post_number":15,"image_url":null,"created_at":"2013-07-03T20:31:20-04:00","last_posted_at":"2013-07-08T22:06:18-04:00","bumped":true,"bumped_at":"2013-07-08T22:06:18-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":170,"like_count":4,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5939},{"extras":null,"description":"Most Posts","user_id":5949},{"extras":null,"description":"Frequent Poster","user_id":19},{"extras":null,"description":"Frequent Poster","user_id":3062},{"extras":null,"description":"Frequent Poster","user_id":5941}]},{"id":7983,"title":"Chrome for iPad / iPhone breaks with this video embed","fancy_title":"Chrome for iPad / iPhone breaks with this video embed","slug":"chrome-for-ipad-iphone-breaks-with-this-video-embed","posts_count":4,"reply_count":2,"highest_post_number":5,"image_url":"https://www.gravatar.com/avatar/b3e9977094ce189bbb493cf7f9adea21.png?s=40&r=pg&d=identicon","created_at":"2013-06-30T19:19:55-04:00","last_posted_at":"2013-07-08T20:24:08-04:00","bumped":true,"bumped_at":"2013-07-08T20:24:08-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":109,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":5648}]},{"id":8186,"title":"Oneboxing: Albums from imgur get a cute kitten as onebox","fancy_title":"Oneboxing: Albums from imgur get a cute kitten as onebox","slug":"oneboxing-albums-from-imgur-get-a-cute-kitten-as-onebox","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"http://i.imgur.com/6UziP.jpg","created_at":"2013-07-08T08:37:58-04:00","last_posted_at":"2013-07-08T20:22:51-04:00","bumped":true,"bumped_at":"2013-07-08T20:22:51-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":92,"like_count":8,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1496},{"extras":null,"description":"Most Posts","user_id":3681},{"extras":null,"description":"Frequent Poster","user_id":5351},{"extras":"latest","description":"Most Recent Poster","user_id":32}]}]}};
+Discourse.URL_FIXTURES["/latest.json"] = {"categories":[{"id":4,"name":"faq","color":"33b","text_color":"FFFFFF","slug":"faq","topic_count":41,"description":"Topics that come up very often when discussing Discourse will eventually be classified into this Frequently Asked Questions category. Should only be added to popular topics.","topic_url":"/t/category-definition-for-faq/25","hotness":5.0,"read_restricted":false,"permission":null},{"id":1,"name":"bug","color":"ae3a27","text_color":"FFFFFF","slug":"bug","topic_count":442,"description":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","topic_url":"/t/category-definition-for-bug/2","hotness":5.0,"read_restricted":false,"permission":null},{"id":6,"name":"support","color":"b99","text_color":"FFFFFF","slug":"support","topic_count":374,"description":"Support on configuring, using, and installing Discourse. Not for software development related topics, but for admins and end users configuring and using Discourse.","topic_url":"/t/category-definition-for-support/389","hotness":5.0,"read_restricted":false,"permission":null},{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":467,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null},{"id":5,"name":"extensibility ","color":"FE8432","text_color":"FFFFFF","slug":"extensibility","topic_count":37,"description":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility.  ","topic_url":"/t/category-definition-for-extensibility/28","hotness":5.0,"read_restricted":false,"permission":null},{"id":9,"name":"ux","color":"5F497A","text_color":"FFFFFF","slug":"ux","topic_count":112,"description":"Discussion about the user interface of Discourse, how features are presented to the user in the client, including language and UI elements.","topic_url":"/t/category-definition-for-ux/2628","hotness":5.0,"read_restricted":false,"permission":null},{"id":10,"name":"howto","color":"76923C","text_color":"FFFFFF","slug":"howto","topic_count":45,"description":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment.","topic_url":"/t/category-definition-for-howto/2629","hotness":5.0,"read_restricted":false,"permission":null},{"id":7,"name":"dev","color":"000","text_color":"FFFFFF","slug":"dev","topic_count":183,"description":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","topic_url":"/t/category-definition-for-dev/1026","hotness":5.0,"read_restricted":false,"permission":null}],"users":[{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":14,"username":"clay","avatar_template":"https://www.gravatar.com/avatar/e371bbd32ba2e9b27842e60ef5952d47.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":6207,"username":"wiremine","avatar_template":"https://www.gravatar.com/avatar/f361c70e8d51674fa7dc3aa69e04e739.png?s={size}&r=pg&d=identicon"},{"id":3681,"username":"Ajarn","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon"},{"id":5707,"username":"trident","avatar_template":"https://www.gravatar.com/avatar/f6e6a22d7b4afee9182de3ff2302534a.png?s={size}&r=pg&d=identicon"},{"id":3062,"username":"Sailsman63","avatar_template":"https://www.gravatar.com/avatar/d2afe59f03e33f57760fbaacc35949d5.png?s={size}&r=pg&d=identicon"},{"id":3987,"username":"Sander78","avatar_template":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s={size}&r=pg&d=identicon"},{"id":6205,"username":"senny","avatar_template":"https://www.gravatar.com/avatar/3d698e2872c07061a455d9e250861235.png?s={size}&r=pg&d=identicon"},{"id":6197,"username":"pinecone","avatar_template":"https://www.gravatar.com/avatar/a7e15f8c5bac7d8bb5a6ea7ae0eb2092.png?s={size}&r=pg&d=identicon"},{"id":5271,"username":"royguo","avatar_template":"https://www.gravatar.com/avatar/7e795755fe8a817981c3a81620faf359.png?s={size}&r=pg&d=identicon"},{"id":5976,"username":"microcaicai","avatar_template":"https://www.gravatar.com/avatar/7fbcc3f547d91c5cc602f69cb78c26cf.png?s={size}&r=pg&d=identicon"},{"id":2602,"username":"georgekaplan59","avatar_template":"https://www.gravatar.com/avatar/503623c769903342cba73e722a364061.png?s={size}&r=pg&d=identicon"},{"id":6089,"username":"Juffin","avatar_template":"https://www.gravatar.com/avatar/1b65c915ecda3d3e1ae9338ee13147e2.png?s={size}&r=pg&d=identicon"},{"id":4457,"username":"Lee_Ars","avatar_template":"https://www.gravatar.com/avatar/eff1b72d56a97459a27161ccf7f20c89.png?s={size}&r=pg&d=identicon"},{"id":714,"username":"jcolebrand","avatar_template":"https://www.gravatar.com/avatar/c4cca9bfec5d5e77f625d9fbe8e37a41.png?s={size}&r=pg&d=identicon"},{"id":810,"username":"ChrisHanel","avatar_template":"https://www.gravatar.com/avatar/467863a322e1a3ce557bfd17f4677600.png?s={size}&r=pg&d=identicon"},{"id":5351,"username":"erlend_sh","avatar_template":"https://www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon"},{"id":5992,"username":"tealfox","avatar_template":"https://www.gravatar.com/avatar/46365f8bb744cd42d31d6aefd51cd2d8.png?s={size}&r=pg&d=identicon"},{"id":2504,"username":"sreinert","avatar_template":"https://www.gravatar.com/avatar/2c264c3436863126b1f31e288facdf79.png?s={size}&r=pg&d=identicon"},{"id":3,"username":"supermathie","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon"},{"id":4263,"username":"mcwumbly","avatar_template":"https://www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon"},{"id":4395,"username":"aftakitani","avatar_template":"https://www.gravatar.com/avatar/a26ec726f9f7e819e01797d34ea8dbc6.png?s={size}&r=pg&d=identicon"},{"id":402,"username":"thebrianbarlow","avatar_template":"https://www.gravatar.com/avatar/5ddf2459e8edd6cf52dfff6cb41ca70d.png?s={size}&r=pg&d=identicon"},{"id":2876,"username":"SBauch","avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon"},{"id":2416,"username":"andrewkhunn","avatar_template":"https://www.gravatar.com/avatar/b1cf766ba89d10d985e408e488cd5b32.png?s={size}&r=pg&d=identicon"},{"id":5984,"username":"broerse","avatar_template":"https://www.gravatar.com/avatar/bdfe0429bb97aef2f9ba661a2ee3f8b8.png?s={size}&r=pg&d=identicon"},{"id":5648,"username":"jamesaanderson","avatar_template":"https://www.gravatar.com/avatar/b3e9977094ce189bbb493cf7f9adea21.png?s={size}&r=pg&d=identicon"},{"id":4996,"username":"wmertens","avatar_template":"https://www.gravatar.com/avatar/a64ed062eb5e2c3407122fcf16c5de6b.png?s={size}&r=pg&d=identicon"},{"id":6199,"username":"spiral2k","avatar_template":"https://www.gravatar.com/avatar/4d9710f54df9edece689980d4bd4ec91.png?s={size}&r=pg&d=identicon"},{"id":1353,"username":"sparr","avatar_template":"https://www.gravatar.com/avatar/7906663b1197829751673465948e0b05.png?s={size}&r=pg&d=identicon"},{"id":5108,"username":"djensen47","avatar_template":"https://www.gravatar.com/avatar/04e8c634e5ee0fd074f78f3bad6eb5b3.png?s={size}&r=pg&d=identicon"},{"id":5294,"username":"madbomber","avatar_template":"https://www.gravatar.com/avatar/185cd842e5a13f2adc822ae20ffaa7bb.png?s={size}&r=pg&d=identicon"},{"id":5979,"username":"balexand","avatar_template":"https://www.gravatar.com/avatar/6180d7335815945eda8651e080be4b98.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"Neil","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":162,"username":"splummer","avatar_template":"https://www.gravatar.com/avatar/26e826e728ae11afec33bd438769779a.png?s={size}&r=pg&d=identicon"},{"id":6208,"username":"chromium_o2","avatar_template":"https://www.gravatar.com/avatar/a5d0ac66c4b8a5ac23b58b109d068a20.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":5171,"username":"bosco","avatar_template":"https://www.gravatar.com/avatar/219547b6e3edf492a68a0d341e15f971.png?s={size}&r=pg&d=identicon"},{"id":38,"username":"frandallfarmer","avatar_template":"https://www.gravatar.com/avatar/6c38e00d92cd9bd3ada3392b15015553.png?s={size}&r=pg&d=identicon"},{"id":3192,"username":"patternicity","avatar_template":"https://www.gravatar.com/avatar/35f1f1927f10bd8f975325d440f6a77c.png?s={size}&r=pg&d=identicon"},{"id":5270,"username":"Nedal","avatar_template":"https://www.gravatar.com/avatar/fb74b7ff14d0eae68ca8992760133187.png?s={size}&r=pg&d=identicon"},{"id":5113,"username":"Heisenberg","avatar_template":"https://www.gravatar.com/avatar/70985ef0462329047f5d9302a89f277e.png?s={size}&r=pg&d=identicon"},{"id":3986,"username":"creativetech","avatar_template":"https://www.gravatar.com/avatar/c356b1a7f3bddcc8812e8a101eb99f07.png?s={size}&r=pg&d=identicon"},{"id":6218,"username":"stevefink","avatar_template":"https://www.gravatar.com/avatar/08780b97dd4b3ebc31d6b4b7d156b457.png?s={size}&r=pg&d=identicon"}],"topic_list":{"can_create_topic":false,"more_topics_url":"/latest.json?page=1","draft":null,"draft_key":"new_topic","draft_sequence":null,"topics":[{"id":1,"title":"Welcome to meta.discourse.org","fancy_title":"Welcome to meta.discourse.org","slug":"welcome-to-meta-discourse-org","posts_count":5,"reply_count":5,"highest_post_number":23,"image_url":null,"created_at":"2013-01-31T23:52:28-05:00","last_posted_at":"2013-02-07T16:50:41-05:00","bumped":true,"bumped_at":"2013-02-07T11:57:34-05:00","unseen":false,"pinned":true,"excerpt":"Welcome to meta, the official site for discussing the next-gen open source Discourse forum software. You&#x27;ll find topics on features, bugs, hosting, development, and general support here. \n\nDiscourse is early beta softwar&hellip;","visible":true,"closed":true,"archived":false,"views":10354,"like_count":90,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":null,"description":"Most Posts","user_id":19},{"extras":null,"description":"Frequent Poster","user_id":14},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8606,"title":"Latest vs. New vs. Unread","fancy_title":"Latest vs. New vs. Unread","slug":"latest-vs-new-vs-unread","posts_count":11,"reply_count":8,"highest_post_number":11,"image_url":null,"created_at":"2013-07-23T15:10:56-04:00","last_posted_at":"2013-07-24T09:35:48-04:00","bumped":true,"bumped_at":"2013-07-24T09:35:48-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":69,"like_count":5,"has_best_of":false,"archetype":"regular","category_id":4,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":6207},{"extras":null,"description":"Most Posts","user_id":3681},{"extras":null,"description":"Frequent Poster","user_id":5707},{"extras":null,"description":"Frequent Poster","user_id":3062}]},{"id":8198,"title":"Unable to create group","fancy_title":"Unable to create group","slug":"unable-to-create-group","posts_count":12,"reply_count":6,"highest_post_number":12,"image_url":null,"created_at":"2013-07-08T13:58:49-04:00","last_posted_at":"2013-07-24T09:22:00-04:00","bumped":true,"bumped_at":"2013-07-24T09:22:00-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":139,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":3987},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":6205},{"extras":"latest","description":"Most Recent Poster","user_id":6197}]},{"id":7802,"title":"Wrong displayed create time","fancy_title":"Wrong displayed create time","slug":"wrong-displayed-create-time","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1250/463c47397726e0a9.png","created_at":"2013-06-27T12:00:05-04:00","last_posted_at":"2013-07-24T08:25:35-04:00","bumped":true,"bumped_at":"2013-07-24T08:25:35-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":65,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":5271},{"extras":"latest","description":"Most Recent Poster","user_id":5976}]},{"id":8618,"title":"Not all mods to be staff memebers","fancy_title":"Not all mods to be staff memebers","slug":"not-all-mods-to-be-staff-memebers","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2013-07-24T06:17:00-04:00","last_posted_at":"2013-07-24T08:24:44-04:00","bumped":true,"bumped_at":"2013-07-24T08:24:44-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":25,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":2602},{"extras":null,"description":"Most Posts","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":6089}]},{"id":8615,"title":"Filtering out out-of-office-replies in the reply-by-mail feature","fancy_title":"Filtering out out-of-office-replies in the reply-by-mail feature","slug":"filtering-out-out-of-office-replies-in-the-reply-by-mail-feature","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-07-24T04:40:43-04:00","last_posted_at":"2013-07-24T08:15:18-04:00","bumped":true,"bumped_at":"2013-07-24T08:15:18-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":13,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3987},{"extras":null,"description":"Most Posts","user_id":1}]},{"id":7464,"title":"CSS documentation?","fancy_title":"CSS documentation?","slug":"css-documentation","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-13T18:25:19-04:00","last_posted_at":"2013-07-24T02:21:38-04:00","bumped":true,"bumped_at":"2013-07-24T06:57:54-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":124,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":5,"posters":[{"extras":null,"description":"Original Poster","user_id":4457},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":6089}]},{"id":31,"title":"What is the most awesome plugin for Discourse, that does not yet exist?","fancy_title":"What is the most awesome plugin for Discourse, that does not yet exist?","slug":"what-is-the-most-awesome-plugin-for-discourse-that-does-not-yet-exist","posts_count":164,"reply_count":115,"highest_post_number":170,"image_url":null,"created_at":"2013-02-03T06:43:18-05:00","last_posted_at":"2013-07-24T03:54:47-04:00","bumped":true,"bumped_at":"2013-07-24T03:54:47-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":3890,"like_count":428,"has_best_of":true,"archetype":"regular","category_id":5,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":null,"description":"Most Posts","user_id":714},{"extras":null,"description":"Frequent Poster","user_id":810},{"extras":null,"description":"Frequent Poster","user_id":14},{"extras":"latest","description":"Most Recent Poster","user_id":5351}]},{"id":8342,"title":"Dropping the statistical stuff","fancy_title":"Dropping the statistical stuff","slug":"dropping-the-statistical-stuff","posts_count":17,"reply_count":9,"highest_post_number":17,"image_url":null,"created_at":"2013-07-13T03:19:58-04:00","last_posted_at":"2013-07-24T03:11:18-04:00","bumped":true,"bumped_at":"2013-07-24T03:11:18-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":281,"like_count":8,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5992},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":6207},{"extras":null,"description":"Frequent Poster","user_id":3681},{"extras":null,"description":"Frequent Poster","user_id":2504}]},{"id":8613,"title":"Add branching text when posts moved to a new topic","fancy_title":"Add branching text when posts moved to a new topic","slug":"add-branching-text-when-posts-moved-to-a-new-topic","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":"http://cdn.discourse.org/assets/emoji/grin.png","created_at":"2013-07-23T22:31:39-04:00","last_posted_at":"2013-07-24T02:47:22-04:00","bumped":true,"bumped_at":"2013-07-24T02:47:22-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":37,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":9,"posters":[{"extras":null,"description":"Original Poster","user_id":3},{"extras":null,"description":"Most Posts","user_id":4263},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":5351}]},{"id":7764,"title":"New: Reply via Email Support!","fancy_title":"New: Reply via Email Support!","slug":"new-reply-via-email-support","posts_count":19,"reply_count":12,"highest_post_number":19,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1227/8f4e5818dfaa56c7.png","created_at":"2013-06-25T11:58:39-04:00","last_posted_at":"2013-07-24T01:56:23-04:00","bumped":true,"bumped_at":"2013-07-24T01:56:23-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":893,"like_count":34,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":19},{"extras":null,"description":"Most Posts","user_id":4395},{"extras":null,"description":"Frequent Poster","user_id":402},{"extras":null,"description":"Frequent Poster","user_id":2876},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":8564,"title":"Improvements to self-deleted posts","fancy_title":"Improvements to self-deleted posts","slug":"improvements-to-self-deleted-posts","posts_count":10,"reply_count":8,"highest_post_number":10,"image_url":null,"created_at":"2013-07-22T04:48:55-04:00","last_posted_at":"2013-07-24T01:54:46-04:00","bumped":true,"bumped_at":"2013-07-24T01:54:46-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":107,"like_count":11,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":32},{"extras":null,"description":"Most Posts","user_id":2416},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":8168,"title":"Audio html5 tag","fancy_title":"Audio html5 tag","slug":"audio-html5-tag","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-07-07T11:48:25-04:00","last_posted_at":"2013-07-24T00:47:42-04:00","bumped":true,"bumped_at":"2013-07-24T00:47:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":112,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5984},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":5648}]},{"id":6743,"title":"Bare Bones Installer Notes for cPanel Server","fancy_title":"Bare Bones Installer Notes for cPanel Server","slug":"bare-bones-installer-notes-for-cpanel-server","posts_count":5,"reply_count":3,"highest_post_number":6,"image_url":null,"created_at":"2013-05-20T15:46:37-04:00","last_posted_at":"2013-07-23T23:41:38-04:00","bumped":true,"bumped_at":"2013-07-23T23:41:38-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":170,"like_count":6,"has_best_of":false,"archetype":"regular","category_id":10,"posters":[{"extras":null,"description":"Original Poster","user_id":4996},{"extras":null,"description":"Most Posts","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8542,"title":"Add user to filter when explicitly requesting their post","fancy_title":"Add user to filter when explicitly requesting their post","slug":"add-user-to-filter-when-explicitly-requesting-their-post","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-07-21T04:43:39-04:00","last_posted_at":"2013-07-23T22:17:30-04:00","bumped":true,"bumped_at":"2013-07-23T22:17:30-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":48,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3},{"extras":null,"description":"Most Posts","user_id":32}]},{"id":8610,"title":"I want to translate and RTL this forum system","fancy_title":"I want to translate and RTL this forum system","slug":"i-want-to-translate-and-rtl-this-forum-system","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2013-07-23T18:17:39-04:00","last_posted_at":"2013-07-23T20:57:40-04:00","bumped":true,"bumped_at":"2013-07-23T20:57:40-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":39,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":6199},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":6304,"title":"Proposal for a (hash) tagging feature","fancy_title":"Proposal for a (hash) tagging feature","slug":"proposal-for-a-hash-tagging-feature","posts_count":41,"reply_count":26,"highest_post_number":42,"image_url":"https://www.gravatar.com/avatar/9420c2ef938f4857bb9c921836b243d4.png?s=40&r=pg&d=identicon","created_at":"2013-05-01T12:05:51-04:00","last_posted_at":"2013-07-23T20:40:47-04:00","bumped":true,"bumped_at":"2013-07-23T20:40:47-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":739,"like_count":34,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":2876},{"extras":null,"description":"Most Posts","user_id":1353},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":5108},{"extras":"latest","description":"Most Recent Poster","user_id":5294}]},{"id":8604,"title":"Hide sensitive site settings","fancy_title":"Hide sensitive site settings","slug":"hide-sensitive-site-settings","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-07-23T13:51:07-04:00","last_posted_at":"2013-07-23T19:15:26-04:00","bumped":true,"bumped_at":"2013-07-23T19:15:26-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":53,"like_count":5,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":null,"description":"Original Poster","user_id":5979},{"extras":null,"description":"Most Posts","user_id":3987},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":4874,"title":"Multisite setup instructions","fancy_title":"Multisite setup instructions","slug":"multisite-setup-instructions","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-03-18T12:18:18-04:00","last_posted_at":"2013-07-23T18:39:00-04:00","bumped":true,"bumped_at":"2013-07-23T18:39:00-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":526,"like_count":15,"has_best_of":false,"archetype":"regular","category_id":10,"posters":[{"extras":null,"description":"Original Poster","user_id":2},{"extras":null,"description":"Most Posts","user_id":162},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":8588,"title":"Notify me about incoming links when I'm watching a topic","fancy_title":"Notify me about incoming links when I&rsquo;m watching a topic","slug":"notify-me-about-incoming-links-when-im-watching-a-topic","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-07-23T05:04:01-04:00","last_posted_at":"2013-07-23T17:33:04-04:00","bumped":true,"bumped_at":"2013-07-23T17:33:04-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":54,"like_count":12,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5351},{"extras":null,"description":"Most Posts","user_id":32}]},{"id":7051,"title":"Image upload fails silently","fancy_title":"Image upload fails silently","slug":"image-upload-fails-silently","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-05-31T16:12:56-04:00","last_posted_at":"2013-07-23T16:50:31-04:00","bumped":true,"bumped_at":"2013-07-23T16:50:31-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":129,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3062},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":6208},{"extras":"latest","description":"Most Recent Poster","user_id":1995}]},{"id":8609,"title":"New: Attachments!","fancy_title":"New: Attachments!","slug":"new-attachments","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-23T16:43:25-04:00","last_posted_at":"2013-07-23T16:43:25-04:00","bumped":false,"bumped_at":"2013-07-23T16:43:25-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":54,"like_count":8,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":1995}]},{"id":8605,"title":"Not finding any client translations","fancy_title":"Not finding any client translations","slug":"not-finding-any-client-translations","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-07-23T14:15:08-04:00","last_posted_at":"2013-07-23T15:59:52-04:00","bumped":true,"bumped_at":"2013-07-23T15:59:52-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":34,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2876},{"extras":null,"description":"Most Posts","user_id":19}]},{"id":8608,"title":"Upgrading to 0.9.5 bitnami installer on ec2","fancy_title":"Upgrading to 0.9.5 bitnami installer on ec2","slug":"upgrading-to-0-9-5-bitnami-installer-on-ec2","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-23T15:46:51-04:00","last_posted_at":"2013-07-23T15:46:51-04:00","bumped":false,"bumped_at":"2013-07-23T15:46:51-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":27,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5171}]},{"id":5564,"title":"Gravatar, Wordpress.com accounts, and custom avatars","fancy_title":"Gravatar, Wordpress.com accounts, and custom avatars","slug":"gravatar-wordpress-com-accounts-and-custom-avatars","posts_count":17,"reply_count":13,"highest_post_number":19,"image_url":null,"created_at":"2013-04-03T12:25:51-04:00","last_posted_at":"2013-07-23T15:45:32-04:00","bumped":true,"bumped_at":"2013-07-23T15:45:32-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":505,"like_count":47,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2876},{"extras":null,"description":"Most Posts","user_id":38},{"extras":null,"description":"Frequent Poster","user_id":3192},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":5270}]},{"id":8600,"title":"Modal when deleting post not disappearing","fancy_title":"Modal when deleting post not disappearing","slug":"modal-when-deleting-post-not-disappearing","posts_count":5,"reply_count":0,"highest_post_number":5,"image_url":null,"created_at":"2013-07-23T11:20:35-04:00","last_posted_at":"2013-07-23T15:24:36-04:00","bumped":true,"bumped_at":"2013-07-23T15:24:32-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":36,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3987},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":8601,"title":"How are search results being ordered?","fancy_title":"How are search results being ordered?","slug":"how-are-search-results-being-ordered","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1482/99e83823f868b58d.png","created_at":"2013-07-23T12:12:45-04:00","last_posted_at":"2013-07-23T15:14:13-04:00","bumped":true,"bumped_at":"2013-07-23T15:14:13-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":47,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":9,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5113},{"extras":null,"description":"Most Posts","user_id":32}]},{"id":8594,"title":"Restoring a category","fancy_title":"Restoring a category","slug":"restoring-a-category","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2013-07-23T10:14:07-04:00","last_posted_at":"2013-07-23T14:02:24-04:00","bumped":true,"bumped_at":"2013-07-23T14:02:24-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":49,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":3986},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8603,"title":"Creating a new project, would love to share the users database between discourse and main app","fancy_title":"Creating a new project, would love to share the users database between discourse and main app","slug":"creating-a-new-project-would-love-to-share-the-users-database-between-discourse-and-main-app","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-23T13:32:26-04:00","last_posted_at":"2013-07-23T13:32:27-04:00","bumped":true,"bumped_at":"2013-07-23T13:32:27-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":34,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":6218}]},{"id":6731,"title":"Can't delete a user if a deleted topic exists","fancy_title":"Can&rsquo;t delete a user if a deleted topic exists","slug":"cant-delete-a-user-if-a-deleted-topic-exists","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-05-20T07:22:51-04:00","last_posted_at":"2013-07-23T14:32:03-04:00","bumped":true,"bumped_at":"2013-07-23T12:19:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":127,"like_count":5,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3987},{"extras":"latest","description":"Most Recent Poster","user_id":2}]}]}};
+Discourse.URL_FIXTURES["/categories.json"] = {"featured_users":[{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":5351,"username":"erlend_sh","avatar_template":"https://www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon"},{"id":1353,"username":"sparr","avatar_template":"https://www.gravatar.com/avatar/7906663b1197829751673465948e0b05.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"Neil","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":2600,"username":"NinjaFoodstuff","avatar_template":"https://www.gravatar.com/avatar/3709f34da1ff5433b41bc56df94dd453.png?s={size}&r=pg&d=identicon"},{"id":406,"username":"RGJ","avatar_template":"https://www.gravatar.com/avatar/55c791f0242e5167536c65496046eef5.png?s={size}&r=pg&d=identicon"},{"id":1263,"username":"ChrisB","avatar_template":"https://www.gravatar.com/avatar/1d75aba12b3961894f93959b5b013de0.png?s={size}&r=pg&d=identicon"},{"id":3,"username":"supermathie","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon"},{"id":1274,"username":"binaryphile","avatar_template":"https://www.gravatar.com/avatar/82564a08aebae1de68bea8e3df61ef93.png?s={size}&r=pg&d=identicon"},{"id":714,"username":"jcolebrand","avatar_template":"https://www.gravatar.com/avatar/c4cca9bfec5d5e77f625d9fbe8e37a41.png?s={size}&r=pg&d=identicon"},{"id":810,"username":"ChrisHanel","avatar_template":"https://www.gravatar.com/avatar/467863a322e1a3ce557bfd17f4677600.png?s={size}&r=pg&d=identicon"},{"id":4,"username":"stienman","avatar_template":"https://www.gravatar.com/avatar/281486f2a20201375414760dd347951d.png?s={size}&r=pg&d=identicon"},{"id":4263,"username":"mcwumbly","avatar_template":"https://www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon"},{"id":2465,"username":"finid","avatar_template":"https://www.gravatar.com/avatar/989a7705a77732d888ddaff8b440fc3d.png?s={size}&r=pg&d=identicon"},{"id":2839,"username":"baus","avatar_template":"https://www.gravatar.com/avatar/57d4030570f672f515a7385cc74c8cfe.png?s={size}&r=pg&d=identicon"},{"id":2664,"username":"Odd_Bloke","avatar_template":"https://www.gravatar.com/avatar/af881deb1a7ef0a1f568e18cd967c0d3.png?s={size}&r=pg&d=identicon"},{"id":38,"username":"frandallfarmer","avatar_template":"https://www.gravatar.com/avatar/6c38e00d92cd9bd3ada3392b15015553.png?s={size}&r=pg&d=identicon"},{"id":2128,"username":"ultimape","avatar_template":"https://www.gravatar.com/avatar/6fe82efded2ee5e218e0452644a07e2e.png?s={size}&r=pg&d=identicon"},{"id":811,"username":"jpeg","avatar_template":"https://www.gravatar.com/avatar/4a214d4a12b7223b61ec36c7aa224c97.png?s={size}&r=pg&d=identicon"},{"id":2291,"username":"PabloC","avatar_template":"https://www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon"},{"id":1674,"username":"colin","avatar_template":"https://www.gravatar.com/avatar/4cfb483116a822652d698dce303ec842.png?s={size}&r=pg&d=identicon"},{"id":2981,"username":"ian_carroll","avatar_template":"https://www.gravatar.com/avatar/76dd5343c6a95d7b2ce906fb9af94106.png?s={size}&r=pg&d=identicon"},{"id":5468,"username":"pixelBender67","avatar_template":"https://www.gravatar.com/avatar/4f4cc88cc2ebd747240c7bc53af99261.png?s={size}&r=pg&d=identicon"},{"id":4217,"username":"mshappe","avatar_template":"https://www.gravatar.com/avatar/36ffc752906110cd16e1746d5c95516f.png?s={size}&r=pg&d=identicon"},{"id":4939,"username":"stevebaer","avatar_template":"https://www.gravatar.com/avatar/7a42855912a58f4c3c5d0ce82e33905f.png?s={size}&r=pg&d=identicon"},{"id":3507,"username":"mozCallahad","avatar_template":"https://www.gravatar.com/avatar/a2746e0bf42c3245bfd80dea9b3efb32.png?s={size}&r=pg&d=identicon"},{"id":5460,"username":"ned","avatar_template":"https://www.gravatar.com/avatar/bc5e09a5ce0a85bf02a3fceb9b0bfaf4.png?s={size}&r=pg&d=identicon"},{"id":704,"username":"AstonJ","avatar_template":"https://www.gravatar.com/avatar/03af361cc843bc56e95cb6c406d06f80.png?s={size}&r=pg&d=identicon"},{"id":461,"username":"kuba","avatar_template":"https://www.gravatar.com/avatar/1835cb6a5f35bd4089e416a99af90f5f.png?s={size}&r=pg&d=identicon"},{"id":1566,"username":"hamburglar","avatar_template":"https://www.gravatar.com/avatar/57b39f59fa025f64e173ba6dffb8f2f7.png?s={size}&r=pg&d=identicon"}],"category_list":{"can_create_category":false,"can_create_topic":false,"draft":null,"draft_key":"new_topic","draft_sequence":null,"categories":[{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":467,"topics_week":19,"topics_month":80,"topics_year":465,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","description_excerpt":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","featured_user_ids":[32,1,5351,1353,1995],"topics":[{"id":8618,"title":"Not all mods to be staff memebers","fancy_title":"Not all mods to be staff memebers","slug":"not-all-mods-to-be-staff-memebers","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2013-07-24T06:17:00-04:00","last_posted_at":"2013-07-24T08:24:44-04:00","bumped":true,"bumped_at":"2013-07-24T08:24:44-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8615,"title":"Filtering out out-of-office-replies in the reply-by-mail feature","fancy_title":"Filtering out out-of-office-replies in the reply-by-mail feature","slug":"filtering-out-out-of-office-replies-in-the-reply-by-mail-feature","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-07-24T04:40:43-04:00","last_posted_at":"2013-07-24T08:15:18-04:00","bumped":true,"bumped_at":"2013-07-24T08:15:18-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8342,"title":"Dropping the statistical stuff","fancy_title":"Dropping the statistical stuff","slug":"dropping-the-statistical-stuff","posts_count":17,"reply_count":9,"highest_post_number":17,"image_url":null,"created_at":"2013-07-13T03:19:58-04:00","last_posted_at":"2013-07-24T03:11:18-04:00","bumped":true,"bumped_at":"2013-07-24T03:11:18-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7764,"title":"New: Reply via Email Support!","fancy_title":"New: Reply via Email Support!","slug":"new-reply-via-email-support","posts_count":19,"reply_count":12,"highest_post_number":19,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1227/8f4e5818dfaa56c7.png","created_at":"2013-06-25T11:58:39-04:00","last_posted_at":"2013-07-24T01:56:23-04:00","bumped":true,"bumped_at":"2013-07-24T01:56:23-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8564,"title":"Improvements to self-deleted posts","fancy_title":"Improvements to self-deleted posts","slug":"improvements-to-self-deleted-posts","posts_count":10,"reply_count":8,"highest_post_number":10,"image_url":null,"created_at":"2013-07-22T04:48:55-04:00","last_posted_at":"2013-07-24T01:54:46-04:00","bumped":true,"bumped_at":"2013-07-24T01:54:46-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8168,"title":"Audio html5 tag","fancy_title":"Audio html5 tag","slug":"audio-html5-tag","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-07-07T11:48:25-04:00","last_posted_at":"2013-07-24T00:47:42-04:00","bumped":true,"bumped_at":"2013-07-24T00:47:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":1,"name":"bug","color":"ae3a27","text_color":"FFFFFF","slug":"bug","topic_count":442,"topics_week":17,"topics_month":81,"topics_year":442,"description":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","description_excerpt":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","featured_user_ids":[32,1,1995,19,2],"topics":[{"id":7288,"title":"Digest mail ignores secure groups","fancy_title":"Digest mail ignores secure groups","slug":"digest-mail-ignores-secure-groups","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-08T08:54:12-04:00","last_posted_at":"2013-06-08T13:00:38-04:00","bumped":true,"bumped_at":"2013-06-08T13:00:38-04:00","unseen":false,"pinned":true,"excerpt":"People receiving the digest mail can easily read posts not meant for them. That&#x27;s because the digest mail ignores the secure groups a member has access to or not. \n\nQuite a problem as I unfortunately found out. [smile]","visible":true,"closed":false,"archived":false},{"id":8198,"title":"Unable to create group","fancy_title":"Unable to create group","slug":"unable-to-create-group","posts_count":12,"reply_count":6,"highest_post_number":12,"image_url":null,"created_at":"2013-07-08T13:58:49-04:00","last_posted_at":"2013-07-24T09:22:00-04:00","bumped":true,"bumped_at":"2013-07-24T09:22:00-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8542,"title":"Add user to filter when explicitly requesting their post","fancy_title":"Add user to filter when explicitly requesting their post","slug":"add-user-to-filter-when-explicitly-requesting-their-post","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-07-21T04:43:39-04:00","last_posted_at":"2013-07-23T22:17:30-04:00","bumped":true,"bumped_at":"2013-07-23T22:17:30-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7051,"title":"Image upload fails silently","fancy_title":"Image upload fails silently","slug":"image-upload-fails-silently","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-05-31T16:12:56-04:00","last_posted_at":"2013-07-23T16:50:31-04:00","bumped":true,"bumped_at":"2013-07-23T16:50:31-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8600,"title":"Modal when deleting post not disappearing","fancy_title":"Modal when deleting post not disappearing","slug":"modal-when-deleting-post-not-disappearing","posts_count":5,"reply_count":0,"highest_post_number":5,"image_url":null,"created_at":"2013-07-23T11:20:35-04:00","last_posted_at":"2013-07-23T15:24:36-04:00","bumped":true,"bumped_at":"2013-07-23T15:24:32-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true},{"id":6731,"title":"Can't delete a user if a deleted topic exists","fancy_title":"Can&rsquo;t delete a user if a deleted topic exists","slug":"cant-delete-a-user-if-a-deleted-topic-exists","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-05-20T07:22:51-04:00","last_posted_at":"2013-07-23T14:32:03-04:00","bumped":true,"bumped_at":"2013-07-23T12:19:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true}]},{"id":6,"name":"support","color":"b99","text_color":"FFFFFF","slug":"support","topic_count":374,"topics_week":12,"topics_month":67,"topics_year":374,"description":"Support on configuring, using, and installing Discourse. Not for software development related topics, but for admins and end users configuring and using Discourse.","description_excerpt":"Support on configuring, using, and installing Discourse. Not for software development related topics, but for admins and end users configuring and using Discourse.","featured_user_ids":[32,1,2,2600,406],"topics":[{"id":7802,"title":"Wrong displayed create time","fancy_title":"Wrong displayed create time","slug":"wrong-displayed-create-time","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1250/463c47397726e0a9.png","created_at":"2013-06-27T12:00:05-04:00","last_posted_at":"2013-07-24T08:25:35-04:00","bumped":true,"bumped_at":"2013-07-24T08:25:35-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8610,"title":"I want to translate and RTL this forum system","fancy_title":"I want to translate and RTL this forum system","slug":"i-want-to-translate-and-rtl-this-forum-system","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2013-07-23T18:17:39-04:00","last_posted_at":"2013-07-23T20:57:40-04:00","bumped":true,"bumped_at":"2013-07-23T20:57:40-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8608,"title":"Upgrading to 0.9.5 bitnami installer on ec2","fancy_title":"Upgrading to 0.9.5 bitnami installer on ec2","slug":"upgrading-to-0-9-5-bitnami-installer-on-ec2","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-23T15:46:51-04:00","last_posted_at":"2013-07-23T15:46:51-04:00","bumped":false,"bumped_at":"2013-07-23T15:46:51-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8594,"title":"Restoring a category","fancy_title":"Restoring a category","slug":"restoring-a-category","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2013-07-23T10:14:07-04:00","last_posted_at":"2013-07-23T14:02:24-04:00","bumped":true,"bumped_at":"2013-07-23T14:02:24-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8603,"title":"Creating a new project, would love to share the users database between discourse and main app","fancy_title":"Creating a new project, would love to share the users database between discourse and main app","slug":"creating-a-new-project-would-love-to-share-the-users-database-between-discourse-and-main-app","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-23T13:32:26-04:00","last_posted_at":"2013-07-23T13:32:27-04:00","bumped":true,"bumped_at":"2013-07-23T13:32:27-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8583,"title":"How to remove/uninstall Discourse?","fancy_title":"How to remove/uninstall Discourse?","slug":"how-to-remove-uninstall-discourse","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":null,"created_at":"2013-07-22T19:06:51-04:00","last_posted_at":"2013-07-23T09:49:02-04:00","bumped":true,"bumped_at":"2013-07-23T09:49:02-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":9,"name":"ux","color":"5F497A","text_color":"FFFFFF","slug":"ux","topic_count":112,"topics_week":8,"topics_month":16,"topics_year":112,"description":"Discussion about the user interface of Discourse, how features are presented to the user in the client, including language and UI elements.","description_excerpt":"Discussion about the user interface of Discourse, how features are presented to the user in the client, including language and UI elements.","featured_user_ids":[32,1,406,1263,3],"topics":[{"id":8613,"title":"Add branching text when posts moved to a new topic","fancy_title":"Add branching text when posts moved to a new topic","slug":"add-branching-text-when-posts-moved-to-a-new-topic","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":"http://cdn.discourse.org/assets/emoji/grin.png","created_at":"2013-07-23T22:31:39-04:00","last_posted_at":"2013-07-24T02:47:22-04:00","bumped":true,"bumped_at":"2013-07-24T02:47:22-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8601,"title":"How are search results being ordered?","fancy_title":"How are search results being ordered?","slug":"how-are-search-results-being-ordered","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1482/99e83823f868b58d.png","created_at":"2013-07-23T12:12:45-04:00","last_posted_at":"2013-07-23T15:14:13-04:00","bumped":true,"bumped_at":"2013-07-23T15:14:13-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8597,"title":"Support category badge looks like an archived post","fancy_title":"Support category badge looks like an archived post","slug":"support-category-badge-looks-like-an-archived-post","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/_optimized/ced/58f/787dc3871c0_690x107.png","created_at":"2013-07-23T10:30:00-04:00","last_posted_at":"2013-07-23T10:30:00-04:00","bumped":false,"bumped_at":"2013-07-23T10:30:00-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8552,"title":"Dealing With High Category Count: Reducing Noise & Increasing Discoverability","fancy_title":"Dealing With High Category Count: Reducing Noise & Increasing Discoverability","slug":"dealing-with-high-category-count-reducing-noise-increasing-discoverability","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":null,"created_at":"2013-07-21T12:05:24-04:00","last_posted_at":"2013-07-22T08:53:00-04:00","bumped":true,"bumped_at":"2013-07-22T08:53:00-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":6252,"title":"Going back to profile activity page should remember filter and scrolling location","fancy_title":"Going back to profile activity page should remember filter and scrolling location","slug":"going-back-to-profile-activity-page-should-remember-filter-and-scrolling-location","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-04-30T11:11:08-04:00","last_posted_at":"2013-07-22T03:29:07-04:00","bumped":true,"bumped_at":"2013-07-22T03:29:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8543,"title":"\"Upload file\" doesn't upload a file from the web (i.e. rehost)","fancy_title":"&ldquo;Upload file&rdquo; doesn&rsquo;t upload a file from the web (i.e. rehost)","slug":"upload-file-doesnt-upload-a-file-from-the-web-i-e-rehost","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1458/f953490a46d2ef8f.png","created_at":"2013-07-21T05:02:25-04:00","last_posted_at":"2013-07-21T05:02:25-04:00","bumped":false,"bumped_at":"2013-07-21T05:02:25-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":7,"name":"dev","color":"000","text_color":"FFFFFF","slug":"dev","topic_count":183,"topics_week":5,"topics_month":18,"topics_year":183,"description":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","description_excerpt":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","featured_user_ids":[1,32,19,1995,1274],"topics":[{"id":3823,"title":"So, you want to help out with Discourse","fancy_title":"So, you want to help out with Discourse","slug":"so-you-want-to-help-out-with-discourse","posts_count":24,"reply_count":21,"highest_post_number":42,"image_url":null,"created_at":"2013-02-23T00:46:11-05:00","last_posted_at":"2013-07-17T19:44:06-04:00","bumped":true,"bumped_at":"2013-07-17T19:44:06-04:00","unseen":false,"pinned":true,"excerpt":"People are wondering, how it is they can help out with Discourse.  \n\nWe have seen some chattering both here and on Github. \n\nI wanted to create a topic @eviltrout , @codinghorror and myself can keep up to date with clear&hellip;","visible":true,"closed":false,"archived":false},{"id":8605,"title":"Not finding any client translations","fancy_title":"Not finding any client translations","slug":"not-finding-any-client-translations","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-07-23T14:15:08-04:00","last_posted_at":"2013-07-23T15:59:52-04:00","bumped":true,"bumped_at":"2013-07-23T15:59:52-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":4046,"title":"When should we upgrade to Rails 4?","fancy_title":"When should we upgrade to Rails 4?","slug":"when-should-we-upgrade-to-rails-4","posts_count":36,"reply_count":17,"highest_post_number":37,"image_url":null,"created_at":"2013-02-25T19:51:20-05:00","last_posted_at":"2013-07-23T04:12:17-04:00","bumped":true,"bumped_at":"2013-07-23T04:12:17-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7763,"title":"Translation Tools: Transifex? Localeapp?","fancy_title":"Translation Tools: Transifex? Localeapp?","slug":"translation-tools-transifex-localeapp","posts_count":23,"reply_count":13,"highest_post_number":23,"image_url":null,"created_at":"2013-06-25T11:54:53-04:00","last_posted_at":"2013-07-22T18:10:36-04:00","bumped":true,"bumped_at":"2013-07-22T18:10:36-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8393,"title":"Brazilian Portuguese translation","fancy_title":"Brazilian Portuguese translation","slug":"brazilian-portuguese-translation","posts_count":18,"reply_count":14,"highest_post_number":18,"image_url":null,"created_at":"2013-07-15T13:56:34-04:00","last_posted_at":"2013-07-22T11:43:56-04:00","bumped":true,"bumped_at":"2013-07-22T11:43:56-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8363,"title":"Translators need a way to contribute localized username reservations","fancy_title":"Translators need a way to contribute localized username reservations","slug":"translators-need-a-way-to-contribute-localized-username-reservations","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":null,"created_at":"2013-07-14T11:19:28-04:00","last_posted_at":"2013-07-22T11:17:22-04:00","bumped":true,"bumped_at":"2013-07-22T11:17:22-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":5,"name":"extensibility ","color":"FE8432","text_color":"FFFFFF","slug":"extensibility","topic_count":37,"topics_week":3,"topics_month":9,"topics_year":37,"description":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility.  ","description_excerpt":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility.","featured_user_ids":[1,32,714,5351,810],"topics":[{"id":7464,"title":"CSS documentation?","fancy_title":"CSS documentation?","slug":"css-documentation","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-13T18:25:19-04:00","last_posted_at":"2013-07-24T02:21:38-04:00","bumped":true,"bumped_at":"2013-07-24T06:57:54-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":31,"title":"What is the most awesome plugin for Discourse, that does not yet exist?","fancy_title":"What is the most awesome plugin for Discourse, that does not yet exist?","slug":"what-is-the-most-awesome-plugin-for-discourse-that-does-not-yet-exist","posts_count":164,"reply_count":115,"highest_post_number":170,"image_url":null,"created_at":"2013-02-03T06:43:18-05:00","last_posted_at":"2013-07-24T03:54:47-04:00","bumped":true,"bumped_at":"2013-07-24T03:54:47-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8567,"title":"SSO Between Discourse and XMPP","fancy_title":"SSO Between Discourse and XMPP","slug":"sso-between-discourse-and-xmpp","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":null,"created_at":"2013-07-22T11:10:25-04:00","last_posted_at":"2013-07-22T21:40:34-04:00","bumped":true,"bumped_at":"2013-07-22T21:40:34-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8578,"title":"Integrating Discourse with a knowledge base","fancy_title":"Integrating Discourse with a knowledge base","slug":"integrating-discourse-with-a-knowledge-base","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-22T17:03:42-04:00","last_posted_at":"2013-07-22T17:03:42-04:00","bumped":false,"bumped_at":"2013-07-22T17:03:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":531,"title":"Discourse and Wordpress Integration","fancy_title":"Discourse and Wordpress Integration","slug":"discourse-and-wordpress-integration","posts_count":65,"reply_count":55,"highest_post_number":67,"image_url":null,"created_at":"2013-02-05T18:56:37-05:00","last_posted_at":"2013-07-20T06:52:01-04:00","bumped":true,"bumped_at":"2013-07-20T06:52:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8473,"title":"Plugin: The Konami Code","fancy_title":"Plugin: The Konami Code","slug":"plugin-the-konami-code","posts_count":5,"reply_count":0,"highest_post_number":5,"image_url":null,"created_at":"2013-07-18T11:53:04-04:00","last_posted_at":"2013-07-18T16:24:33-04:00","bumped":true,"bumped_at":"2013-07-18T16:24:33-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":4,"name":"faq","color":"33b","text_color":"FFFFFF","slug":"faq","topic_count":41,"topics_week":2,"topics_month":3,"topics_year":41,"description":"Topics that come up very often when discussing Discourse will eventually be classified into this Frequently Asked Questions category. Should only be added to popular topics.","description_excerpt":"Topics that come up very often when discussing Discourse will eventually be classified into this Frequently Asked Questions category. Should only be added to popular topics.","featured_user_ids":[32,1,4,4263,2465],"topics":[{"id":8606,"title":"Latest vs. New vs. Unread","fancy_title":"Latest vs. New vs. Unread","slug":"latest-vs-new-vs-unread","posts_count":11,"reply_count":8,"highest_post_number":11,"image_url":null,"created_at":"2013-07-23T15:10:56-04:00","last_posted_at":"2013-07-24T09:35:48-04:00","bumped":true,"bumped_at":"2013-07-24T09:35:48-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8458,"title":"What editor does Discourse use for CSS manipulation?","fancy_title":"What editor does Discourse use for CSS manipulation?","slug":"what-editor-does-discourse-use-for-css-manipulation","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-07-18T05:52:38-04:00","last_posted_at":"2013-07-18T06:51:44-04:00","bumped":true,"bumped_at":"2013-07-18T06:51:44-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7755,"title":"What do the dates on the bottom of the categories page mean?","fancy_title":"What do the dates on the bottom of the categories page mean?","slug":"what-do-the-dates-on-the-bottom-of-the-categories-page-mean","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1218/87b3b53c9641c86e.jpeg","created_at":"2013-06-25T04:24:56-04:00","last_posted_at":"2013-07-02T00:08:41-04:00","bumped":true,"bumped_at":"2013-07-02T00:08:41-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":866,"title":"UX confusion - why sometimes I see \"x reply(s) below\" and sometimes I don't","fancy_title":"UX confusion - why sometimes I see &ldquo;x reply(s) below&rdquo; and sometimes I don&rsquo;t","slug":"ux-confusion-why-sometimes-i-see-x-reply-s-below-and-sometimes-i-dont","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2013-02-06T00:31:46-05:00","last_posted_at":"2013-06-25T23:34:34-04:00","bumped":true,"bumped_at":"2013-06-25T23:34:34-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":2408,"title":"Private Discourse Forum","fancy_title":"Private Discourse Forum","slug":"private-discourse-forum","posts_count":18,"reply_count":10,"highest_post_number":18,"image_url":null,"created_at":"2013-02-08T08:25:22-05:00","last_posted_at":"2013-06-20T17:45:35-04:00","bumped":true,"bumped_at":"2013-06-20T17:47:47-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":6724,"title":"Where is this development roadmap?","fancy_title":"Where is this development roadmap?","slug":"where-is-this-development-roadmap","posts_count":12,"reply_count":8,"highest_post_number":12,"image_url":null,"created_at":"2013-05-19T15:15:19-04:00","last_posted_at":"2013-06-17T11:03:07-04:00","bumped":true,"bumped_at":"2013-06-17T11:03:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":null,"name":"uncategorized","color":"AB9364","text_color":"FFFFFF","slug":"uncategorized","topic_count":187,"topics_week":1,"topics_month":13,"topics_year":187,"description":null,"description_excerpt":null,"is_uncategorized":true,"featured_user_ids":[],"topics":[{"id":8604,"title":"Hide sensitive site settings","fancy_title":"Hide sensitive site settings","slug":"hide-sensitive-site-settings","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-07-23T13:51:07-04:00","last_posted_at":"2013-07-23T19:15:26-04:00","bumped":true,"bumped_at":"2013-07-23T19:15:26-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7501,"title":"Discourse not working on Opera Mini","fancy_title":"Discourse not working on Opera Mini","slug":"discourse-not-working-on-opera-mini","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2013-06-15T05:45:39-04:00","last_posted_at":"2013-07-23T10:21:01-04:00","bumped":true,"bumped_at":"2013-07-23T10:21:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7318,"title":"Where can we discuss the Markdown spec?","fancy_title":"Where can we discuss the Markdown spec?","slug":"where-can-we-discuss-the-markdown-spec","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&r=pg&d=identicon","created_at":"2013-06-09T04:23:28-04:00","last_posted_at":"2013-07-20T07:48:29-04:00","bumped":true,"bumped_at":"2013-07-20T07:48:29-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":4483,"title":"Why was the Popular page chosen as the landing page?","fancy_title":"Why was the Popular page chosen as the landing page?","slug":"why-was-the-popular-page-chosen-as-the-landing-page","posts_count":11,"reply_count":6,"highest_post_number":11,"image_url":null,"created_at":"2013-03-05T16:44:52-05:00","last_posted_at":"2013-07-20T07:07:06-04:00","bumped":true,"bumped_at":"2013-07-20T07:07:06-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":724,"title":"Libelous quote-to-reply","fancy_title":"Libelous quote-to-reply","slug":"libelous-quote-to-reply","posts_count":12,"reply_count":9,"highest_post_number":12,"image_url":"http://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&r=pg&d=identicon","created_at":"2013-02-05T21:20:36-05:00","last_posted_at":"2013-07-18T17:52:42-04:00","bumped":true,"bumped_at":"2013-07-18T17:52:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8443,"title":"Using Discourse as a base for a Social Network? Am I crazy?","fancy_title":"Using Discourse as a base for a Social Network? Am I crazy?","slug":"using-discourse-as-a-base-for-a-social-network-am-i-crazy","posts_count":12,"reply_count":4,"highest_post_number":12,"image_url":null,"created_at":"2013-07-17T14:27:09-04:00","last_posted_at":"2013-07-18T17:12:23-04:00","bumped":true,"bumped_at":"2013-07-18T17:19:43-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":10,"name":"howto","color":"76923C","text_color":"FFFFFF","slug":"howto","topic_count":45,"topics_week":0,"topics_month":6,"topics_year":45,"description":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment.","description_excerpt":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment.","featured_user_ids":[1,2839,2600,32,2664],"topics":[{"id":6743,"title":"Bare Bones Installer Notes for cPanel Server","fancy_title":"Bare Bones Installer Notes for cPanel Server","slug":"bare-bones-installer-notes-for-cpanel-server","posts_count":5,"reply_count":3,"highest_post_number":6,"image_url":null,"created_at":"2013-05-20T15:46:37-04:00","last_posted_at":"2013-07-23T23:41:38-04:00","bumped":true,"bumped_at":"2013-07-23T23:41:38-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":4874,"title":"Multisite setup instructions","fancy_title":"Multisite setup instructions","slug":"multisite-setup-instructions","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-03-18T12:18:18-04:00","last_posted_at":"2013-07-23T18:39:00-04:00","bumped":true,"bumped_at":"2013-07-23T18:39:00-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":6353,"title":"Deploy Discourse to an Ubuntu VPS using Capistrano","fancy_title":"Deploy Discourse to an Ubuntu VPS using Capistrano","slug":"deploy-discourse-to-an-ubuntu-vps-using-capistrano","posts_count":37,"reply_count":31,"highest_post_number":38,"image_url":null,"created_at":"2013-05-02T21:09:26-04:00","last_posted_at":"2013-07-15T17:38:52-04:00","bumped":true,"bumped_at":"2013-07-15T17:38:52-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":2349,"title":"Installing Discourse on Debian","fancy_title":"Installing Discourse on Debian","slug":"installing-discourse-on-debian","posts_count":94,"reply_count":69,"highest_post_number":95,"image_url":null,"created_at":"2013-02-08T02:43:23-05:00","last_posted_at":"2013-07-13T07:39:49-04:00","bumped":true,"bumped_at":"2013-07-13T07:39:49-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8305,"title":"Git pull anytime vs after tag?","fancy_title":"Git pull anytime vs after tag?","slug":"git-pull-anytime-vs-after-tag","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2013-07-11T17:28:50-04:00","last_posted_at":"2013-07-11T17:42:00-04:00","bumped":true,"bumped_at":"2013-07-11T17:42:00-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7229,"title":"How to set up image uploads to S3?","fancy_title":"How to set up image uploads to S3?","slug":"how-to-set-up-image-uploads-to-s3","posts_count":8,"reply_count":6,"highest_post_number":8,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1019/782cbc7e309ce43f.png","created_at":"2013-06-06T15:37:43-04:00","last_posted_at":"2013-07-11T01:08:21-04:00","bumped":true,"bumped_at":"2013-07-11T01:08:21-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":3,"name":"meta","color":"aaa","text_color":"FFFFFF","slug":"meta","topic_count":66,"topics_week":0,"topics_month":4,"topics_year":66,"description":"Discussion about meta.discourse.org itself, the organization of this forum about Discourse, how it works, and how we can improve this site.","description_excerpt":"Discussion about meta.discourse.org itself, the organization of this forum about Discourse, how it works, and how we can improve this site.","featured_user_ids":[32,1,38,2128,811],"topics":[{"id":5249,"title":"What is \"Meta\"?","fancy_title":"What is &ldquo;Meta&rdquo;?","slug":"what-is-meta","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-03-25T18:00:52-04:00","last_posted_at":"2013-03-25T18:00:56-04:00","bumped":false,"bumped_at":"2013-03-25T18:00:52-04:00","unseen":false,"pinned":true,"excerpt":"What is &quot;Meta&quot;?\n\nMeta means discussion of the discussion itself instead of the actual topic of the discussion. For example, discussions about... \n\n\nThe style of discussion.\nThe participants in the discussion.\nThe setting&hellip;","visible":true,"closed":false,"archived":false},{"id":3102,"title":"Please visit our Discourse Forum! (Directory)","fancy_title":"Please visit our Discourse Forum! (Directory)","slug":"please-visit-our-discourse-forum-directory","posts_count":49,"reply_count":18,"highest_post_number":49,"image_url":null,"created_at":"2013-02-14T14:30:38-05:00","last_posted_at":"2013-07-22T18:40:59-04:00","bumped":true,"bumped_at":"2013-07-22T18:40:59-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8364,"title":"TIL: Discourse has smart @mentions","fancy_title":"TIL: Discourse has smart @mentions","slug":"til-discourse-has-smart-mentions","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1400/bd71ba5aef5a6c07.png","created_at":"2013-07-14T11:30:10-04:00","last_posted_at":"2013-07-15T03:40:50-04:00","bumped":true,"bumped_at":"2013-07-15T03:40:50-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":3436,"title":"Using Discourse as a chat application","fancy_title":"Using Discourse as a chat application","slug":"using-discourse-as-a-chat-application","posts_count":12,"reply_count":7,"highest_post_number":12,"image_url":null,"created_at":"2013-02-19T11:34:06-05:00","last_posted_at":"2013-07-08T08:57:27-04:00","bumped":true,"bumped_at":"2013-07-08T08:57:27-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8153,"title":"What's the best way to integrate Discours's WMD editor to my own site?","fancy_title":"What&rsquo;s the best way to integrate Discours&rsquo;s WMD editor to my own site?","slug":"whats-the-best-way-to-integrate-discourss-wmd-editor-to-my-own-site","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-06T05:38:21-04:00","last_posted_at":"2013-07-06T06:12:38-04:00","bumped":true,"bumped_at":"2013-07-06T06:12:38-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8042,"title":"Duplicated content: FAQ and Privacy appear twice!","fancy_title":"Duplicated content: FAQ and Privacy appear twice!","slug":"duplicated-content-faq-and-privacy-appear-twice","posts_count":9,"reply_count":3,"highest_post_number":9,"image_url":null,"created_at":"2013-07-02T16:06:09-04:00","last_posted_at":"2013-07-04T00:12:53-04:00","bumped":true,"bumped_at":"2013-07-03T18:55:20-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true}]},{"id":8,"name":"hosting","color":"25AAE1","text_color":"FFFFFF","slug":"hosting","topic_count":45,"topics_week":0,"topics_month":4,"topics_year":45,"description":"Topics about hosting Discourse, either on your own servers, in the cloud, or with specific hosting services.","description_excerpt":"Topics about hosting Discourse, either on your own servers, in the cloud, or with specific hosting services.","featured_user_ids":[1,32,2291,1674,2981],"topics":[{"id":1195,"title":"Cheap Postgre / RoR hosting providers?","fancy_title":"Cheap Postgre / RoR hosting providers?","slug":"cheap-postgre-ror-hosting-providers","posts_count":46,"reply_count":30,"highest_post_number":46,"image_url":null,"created_at":"2013-02-06T07:34:58-05:00","last_posted_at":"2013-07-18T08:45:49-04:00","bumped":true,"bumped_at":"2013-07-18T08:45:49-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":6265,"title":"Discourse Hosting Proposal","fancy_title":"Discourse Hosting Proposal","slug":"discourse-hosting-proposal","posts_count":25,"reply_count":19,"highest_post_number":25,"image_url":null,"created_at":"2013-04-30T17:20:32-04:00","last_posted_at":"2013-07-18T02:22:30-04:00","bumped":true,"bumped_at":"2013-07-18T02:22:30-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8365,"title":"DiscourseHosting.com","fancy_title":"DiscourseHosting.com","slug":"discoursehosting-com","posts_count":4,"reply_count":3,"highest_post_number":4,"image_url":null,"created_at":"2013-07-14T12:16:54-04:00","last_posted_at":"2013-07-14T14:13:32-04:00","bumped":true,"bumped_at":"2013-07-14T14:13:32-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":803,"title":"Stack Requirements for a DIY Discourse","fancy_title":"Stack Requirements for a DIY Discourse","slug":"stack-requirements-for-a-diy-discourse","posts_count":26,"reply_count":16,"highest_post_number":26,"image_url":null,"created_at":"2013-02-05T22:43:14-05:00","last_posted_at":"2013-07-12T11:47:04-04:00","bumped":true,"bumped_at":"2013-07-12T11:47:04-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8268,"title":"List of Discourse sites","fancy_title":"List of Discourse sites","slug":"list-of-discourse-sites","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-07-10T10:17:51-04:00","last_posted_at":"2013-07-10T10:32:35-04:00","bumped":true,"bumped_at":"2013-07-10T10:32:35-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":6749,"title":"On Heroku, does scheduler replace clockwork's functionality?","fancy_title":"On Heroku, does scheduler replace clockwork&rsquo;s functionality?","slug":"on-heroku-does-scheduler-replace-clockworks-functionality","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-05-20T20:26:05-04:00","last_posted_at":"2013-07-08T03:28:35-04:00","bumped":true,"bumped_at":"2013-07-08T03:54:16-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":13,"name":"blog","color":"ED207B","text_color":"FFFFFF","slug":"blog","topic_count":9,"topics_week":0,"topics_month":2,"topics_year":9,"description":"Discussion topics generated from the official Discourse Blog. These topics are linked from the bottom of each blog entry where the blog comments would normally be.","description_excerpt":"Discussion topics generated from the official Discourse Blog. These topics are linked from the bottom of each blog entry where the blog comments would normally be.","featured_user_ids":[32,1,5468,1995,4217],"topics":[{"id":5366,"title":"Forums, As Seen On TV","fancy_title":"Forums, As Seen On TV","slug":"forums-as-seen-on-tv","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":"http://blog.discourse.org/wp-uploads/2013/03/30-rock-forums-1.jpg","created_at":"2013-03-28T16:53:41-04:00","last_posted_at":"2013-04-19T16:20:08-04:00","bumped":true,"bumped_at":"2013-07-22T08:21:22-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7478,"title":"Discourse on Ubuntu: Video Walkthrough","fancy_title":"Discourse on Ubuntu: Video Walkthrough","slug":"discourse-on-ubuntu-video-walkthrough","posts_count":11,"reply_count":7,"highest_post_number":11,"image_url":null,"created_at":"2013-06-14T10:47:53-04:00","last_posted_at":"2013-07-20T02:59:44-04:00","bumped":true,"bumped_at":"2013-07-20T02:59:44-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":8140,"title":"Improved Image Handling","fancy_title":"Improved Image Handling","slug":"improved-image-handling","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-05T17:11:38-04:00","last_posted_at":"2013-07-05T17:11:38-04:00","bumped":true,"bumped_at":"2013-07-05T17:11:38-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":5751,"title":"Discourse as Your First Rails App","fancy_title":"Discourse as Your First Rails App","slug":"discourse-as-your-first-rails-app","posts_count":47,"reply_count":33,"highest_post_number":53,"image_url":null,"created_at":"2013-04-09T19:08:33-04:00","last_posted_at":"2013-07-03T11:49:32-04:00","bumped":true,"bumped_at":"2013-07-03T11:49:32-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7933,"title":"Forums Are Dead, Long Live Forums","fancy_title":"Forums Are Dead, Long Live Forums","slug":"forums-are-dead-long-live-forums","posts_count":16,"reply_count":15,"highest_post_number":16,"image_url":null,"created_at":"2013-06-29T01:19:45-04:00","last_posted_at":"2013-07-01T16:19:16-04:00","bumped":true,"bumped_at":"2013-06-30T22:39:44-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":5575,"title":"Our First Partner: How-To Geek","fancy_title":"Our First Partner: How-To Geek","slug":"our-first-partner-how-to-geek","posts_count":22,"reply_count":16,"highest_post_number":23,"image_url":null,"created_at":"2013-04-03T18:42:46-04:00","last_posted_at":"2013-06-07T19:27:46-04:00","bumped":true,"bumped_at":"2013-06-07T19:27:46-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":11,"name":"login","color":"edb400","text_color":"FFFFFF","slug":"login","topic_count":16,"topics_week":0,"topics_month":1,"topics_year":16,"description":"Topics about logging in to Discourse, using any standard third party provider (Twitter, Facebook, Google), traditional username and password, or with a custom plugin.","description_excerpt":"Topics about logging in to Discourse, using any standard third party provider (Twitter, Facebook, Google), traditional username and password, or with a custom plugin.","featured_user_ids":[32,2,1,4939,3507],"topics":[{"id":1420,"title":"Please add Persona as an authentication option","fancy_title":"Please add Persona as an authentication option","slug":"please-add-persona-as-an-authentication-option","posts_count":22,"reply_count":16,"highest_post_number":22,"image_url":null,"created_at":"2013-02-06T11:28:44-05:00","last_posted_at":"2013-07-01T19:51:27-04:00","bumped":true,"bumped_at":"2013-07-01T19:51:27-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7909,"title":"OmniAuth integration documentation","fancy_title":"OmniAuth integration documentation","slug":"omniauth-integration-documentation","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-28T12:51:24-04:00","last_posted_at":"2013-06-28T12:51:24-04:00","bumped":false,"bumped_at":"2013-06-28T12:51:24-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":6869,"title":"Force use of an authentication provider","fancy_title":"Force use of an authentication provider","slug":"force-use-of-an-authentication-provider","posts_count":21,"reply_count":16,"highest_post_number":21,"image_url":null,"created_at":"2013-05-24T15:26:41-04:00","last_posted_at":"2013-06-15T16:58:09-04:00","bumped":true,"bumped_at":"2013-06-15T16:58:09-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":5800,"title":"UTF-8 to webalized char set transliteration for Facebook login","fancy_title":"UTF-8 to webalized char set transliteration for Facebook login","slug":"utf-8-to-webalized-char-set-transliteration-for-facebook-login","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-04-11T13:58:56-04:00","last_posted_at":"2013-04-11T13:58:56-04:00","bumped":false,"bumped_at":"2013-04-11T13:58:56-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":4011,"title":"I can't login using my password","fancy_title":"I can&rsquo;t login using my password","slug":"i-can-t-login-using-my-password","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-02-25T06:47:42-05:00","last_posted_at":"2013-03-13T19:36:48-04:00","bumped":true,"bumped_at":"2013-03-13T19:36:44-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true},{"id":4738,"title":"Login support for browser password managers","fancy_title":"Login support for browser password managers","slug":"login-support-for-browser-password-managers","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-03-13T17:55:29-04:00","last_posted_at":"2013-03-13T19:11:56-04:00","bumped":true,"bumped_at":"2013-03-13T19:11:56-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":14,"name":"marketplace","color":"8C6238","text_color":"FFFFFF","slug":"marketplace","topic_count":5,"topics_week":0,"topics_month":1,"topics_year":5,"description":"About commercial Discourse related stuff: jobs or paid gigs, plugins, themes, hosting, etc.","description_excerpt":"About commercial Discourse related stuff: jobs or paid gigs, plugins, themes, hosting, etc.","featured_user_ids":[1263,32,406,2981,5460],"topics":[{"id":8372,"title":"I need help with Discoursed","fancy_title":"I need help with Discoursed","slug":"i-need-help-with-discoursed","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":null,"created_at":"2013-07-14T20:11:39-04:00","last_posted_at":"2013-07-17T18:00:52-04:00","bumped":true,"bumped_at":"2013-07-17T18:00:52-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7305,"title":"I would like to hire someone to install discourse on my site","fancy_title":"I would like to hire someone to install discourse on my site","slug":"i-would-like-to-hire-someone-to-install-discourse-on-my-site","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-08T18:32:07-04:00","last_posted_at":"2013-06-09T00:27:21-04:00","bumped":true,"bumped_at":"2013-06-09T00:27:21-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7221,"title":"I want discourse for small business","fancy_title":"I want discourse for small business","slug":"i-want-discourse-for-small-business","posts_count":8,"reply_count":5,"highest_post_number":8,"image_url":null,"created_at":"2013-06-06T09:05:43-04:00","last_posted_at":"2013-06-06T19:52:47-04:00","bumped":true,"bumped_at":"2013-06-06T19:52:47-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":7054,"title":"Contract available: Web developer (RoR, JS, Node.JS, Discourse)","fancy_title":"Contract available: Web developer (RoR, JS, Node.JS, Discourse)","slug":"contract-available-web-developer-ror-js-node-js-discourse","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-05-31T19:30:52-04:00","last_posted_at":"2013-05-31T19:30:52-04:00","bumped":false,"bumped_at":"2013-05-31T19:30:52-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":5409,"title":"Looking for a Discourse specialist !!","fancy_title":"Looking for a Discourse specialist !!","slug":"looking-for-a-discourse-specialist","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-03-30T02:15:56-04:00","last_posted_at":"2013-03-30T02:15:56-04:00","bumped":false,"bumped_at":"2013-03-30T02:15:56-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":12,"name":"discourse hub","color":"b2c79f","text_color":"FFFFFF","slug":"discourse-hub","topic_count":4,"topics_week":0,"topics_month":0,"topics_year":4,"description":"Topics about current or future Discourse Hub functionality at discourse.org including nickname registration, global user pages, and the site directory.","description_excerpt":"Topics about current or future Discourse Hub functionality at discourse.org including nickname registration, global user pages, and the site directory.","featured_user_ids":[32,2,704,461,1566],"topics":[{"id":6547,"title":"Where to get discourse_org_access_key?","fancy_title":"Where to get discourse_org_access_key?","slug":"where-to-get-discourse-org-access-key","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":null,"created_at":"2013-05-10T22:06:08-04:00","last_posted_at":"2013-06-18T11:49:18-04:00","bumped":true,"bumped_at":"2013-06-18T11:49:18-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":424,"title":"What are the 'consequences' of changing your name?","fancy_title":"What are the &lsquo;consequences&rsquo; of changing your name?","slug":"what-are-the-consequences-of-changing-your-name","posts_count":33,"reply_count":32,"highest_post_number":33,"image_url":null,"created_at":"2013-02-05T17:37:52-05:00","last_posted_at":"2013-05-17T11:28:00-04:00","bumped":true,"bumped_at":"2013-06-12T13:22:10-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":2544,"title":"Discourse central hub questions","fancy_title":"Discourse central hub questions","slug":"discourse-central-hub-questions","posts_count":48,"reply_count":41,"highest_post_number":49,"image_url":null,"created_at":"2013-02-09T04:28:21-05:00","last_posted_at":"2013-05-28T12:15:25-04:00","bumped":true,"bumped_at":"2013-05-28T12:15:25-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false},{"id":5664,"title":"Discourse Hub nickname uniqueness not working?","fancy_title":"Discourse Hub nickname uniqueness not working?","slug":"discourse-hub-nickname-uniqueness-not-working","posts_count":22,"reply_count":16,"highest_post_number":23,"image_url":null,"created_at":"2013-04-06T03:40:11-04:00","last_posted_at":"2013-04-09T10:56:46-04:00","bumped":true,"bumped_at":"2013-04-09T10:56:46-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false}]}]}};
+Discourse.URL_FIXTURES["/category/bug.json"] = {"categories":[{"id":1,"name":"bug","color":"ae3a27","text_color":"FFFFFF","slug":"bug","topic_count":442,"description":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","topic_url":"/t/category-definition-for-bug/2","hotness":5.0,"read_restricted":false,"permission":null}],"users":[{"id":3987,"username":"Sander78","avatar_template":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s={size}&r=pg&d=identicon"},{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":3681,"username":"Ajarn","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon"},{"id":6205,"username":"senny","avatar_template":"https://www.gravatar.com/avatar/3d698e2872c07061a455d9e250861235.png?s={size}&r=pg&d=identicon"},{"id":6197,"username":"pinecone","avatar_template":"https://www.gravatar.com/avatar/a7e15f8c5bac7d8bb5a6ea7ae0eb2092.png?s={size}&r=pg&d=identicon"},{"id":3,"username":"supermathie","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon"},{"id":3062,"username":"Sailsman63","avatar_template":"https://www.gravatar.com/avatar/d2afe59f03e33f57760fbaacc35949d5.png?s={size}&r=pg&d=identicon"},{"id":6208,"username":"chromium_o2","avatar_template":"https://www.gravatar.com/avatar/a5d0ac66c4b8a5ac23b58b109d068a20.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"Neil","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":795,"username":"mlinksva","avatar_template":"https://www.gravatar.com/avatar/7e3038f9bbba96ceb14a097e4ee128ff.png?s={size}&r=pg&d=identicon"},{"id":184,"username":"Jeremy","avatar_template":"https://www.gravatar.com/avatar/8022129f3ef00ca4f42bbd494b216310.png?s={size}&r=pg&d=identicon"},{"id":5446,"username":"expyron","avatar_template":"https://www.gravatar.com/avatar/697b750fd66f4e60779152ff1c3fc97e.png?s={size}&r=pg&d=identicon"},{"id":5546,"username":"adrianlang","avatar_template":"https://www.gravatar.com/avatar/9a38887baf481569db05e89d38bc5797.png?s={size}&r=pg&d=identicon"},{"id":5372,"username":"computerdruid","avatar_template":"https://www.gravatar.com/avatar/34c3b45c075a6d85555beb674892d0d8.png?s={size}&r=pg&d=identicon"},{"id":3932,"username":"flyingsheep","avatar_template":"https://www.gravatar.com/avatar/da56018fec1036eb1e02305d09a0bce8.png?s={size}&r=pg&d=identicon"},{"id":2287,"username":"fgonzal","avatar_template":"https://www.gravatar.com/avatar/4079bc13f142ea46e0144d1ca9426aa9.png?s={size}&r=pg&d=identicon"},{"id":761,"username":"marcoceppi","avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon"},{"id":5483,"username":"briangillespie","avatar_template":"https://www.gravatar.com/avatar/3baf9989e97ccf45aff1cf61fb730931.png?s={size}&r=pg&d=identicon"},{"id":2625,"username":"kpfleming","avatar_template":"https://www.gravatar.com/avatar/26bf5a02583eaf63d1f8063bb3a6bc00.png?s={size}&r=pg&d=identicon"},{"id":5526,"username":"geoffers747","avatar_template":"https://www.gravatar.com/avatar/fe1b6d588bfd97692f4172e41b378c09.png?s={size}&r=pg&d=identicon"},{"id":5912,"username":"jbruni","avatar_template":"https://www.gravatar.com/avatar/27dacda91150eca332526bf8a8ee7e03.png?s={size}&r=pg&d=identicon"},{"id":2933,"username":"gugalp","avatar_template":"https://www.gravatar.com/avatar/a143639f87eead196bb94bcd10380ff4.png?s={size}&r=pg&d=identicon"},{"id":5821,"username":"ven88","avatar_template":"https://www.gravatar.com/avatar/39fc4d1c6dcefe9c1ae9730f99c65af7.png?s={size}&r=pg&d=identicon"},{"id":5271,"username":"royguo","avatar_template":"https://www.gravatar.com/avatar/7e795755fe8a817981c3a81620faf359.png?s={size}&r=pg&d=identicon"},{"id":2602,"username":"georgekaplan59","avatar_template":"https://www.gravatar.com/avatar/503623c769903342cba73e722a364061.png?s={size}&r=pg&d=identicon"},{"id":6124,"username":"matthewalbone","avatar_template":"https://www.gravatar.com/avatar/82ec94bea07cd4ace35c93d8ad404917.png?s={size}&r=pg&d=identicon"},{"id":5351,"username":"erlend_sh","avatar_template":"https://www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon"},{"id":4457,"username":"Lee_Ars","avatar_template":"https://www.gravatar.com/avatar/eff1b72d56a97459a27161ccf7f20c89.png?s={size}&r=pg&d=identicon"},{"id":4263,"username":"mcwumbly","avatar_template":"https://www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon"},{"id":5477,"username":"phanimahesh","avatar_template":"https://www.gravatar.com/avatar/42ca770299eab441ddabae5a1ad5f799.png?s={size}&r=pg&d=identicon"},{"id":471,"username":"BhaelOchon","avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon"}],"topic_list":{"can_create_topic":false,"more_topics_url":"/category/bug.json?page=1","draft":null,"draft_key":"new_topic","draft_sequence":null,"topics":[{"id":7288,"title":"Digest mail ignores secure groups","fancy_title":"Digest mail ignores secure groups","slug":"digest-mail-ignores-secure-groups","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-08T08:54:12-04:00","last_posted_at":"2013-06-08T13:00:38-04:00","bumped":true,"bumped_at":"2013-06-08T13:00:38-04:00","unseen":false,"pinned":true,"excerpt":"People receiving the digest mail can easily read posts not meant for them. That&#x27;s because the digest mail ignores the secure groups a member has access to or not. \n\nQuite a problem as I unfortunately found out. [smile]","visible":true,"closed":false,"archived":false,"views":233,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3987},{"extras":null,"description":"Most Posts","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":2,"title":"Category definition for bug","fancy_title":"Category definition for bug","slug":"category-definition-for-bug","posts_count":2,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-01-31T23:56:34-05:00","last_posted_at":"2013-03-07T22:42:27-05:00","bumped":true,"bumped_at":"2013-02-26T18:52:56-05:00","unseen":false,"pinned":true,"excerpt":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","visible":true,"closed":false,"archived":false,"views":287,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8198,"title":"Unable to create group","fancy_title":"Unable to create group","slug":"unable-to-create-group","posts_count":12,"reply_count":6,"highest_post_number":12,"image_url":null,"created_at":"2013-07-08T13:58:49-04:00","last_posted_at":"2013-07-24T09:22:00-04:00","bumped":true,"bumped_at":"2013-07-24T09:22:00-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":139,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":3987},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":6205},{"extras":"latest","description":"Most Recent Poster","user_id":6197}]},{"id":8542,"title":"Add user to filter when explicitly requesting their post","fancy_title":"Add user to filter when explicitly requesting their post","slug":"add-user-to-filter-when-explicitly-requesting-their-post","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-07-21T04:43:39-04:00","last_posted_at":"2013-07-23T22:17:30-04:00","bumped":true,"bumped_at":"2013-07-23T22:17:30-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":48,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3},{"extras":null,"description":"Most Posts","user_id":32}]},{"id":7051,"title":"Image upload fails silently","fancy_title":"Image upload fails silently","slug":"image-upload-fails-silently","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-05-31T16:12:56-04:00","last_posted_at":"2013-07-23T16:50:31-04:00","bumped":true,"bumped_at":"2013-07-23T16:50:31-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":129,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3062},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":6208},{"extras":"latest","description":"Most Recent Poster","user_id":1995}]},{"id":8600,"title":"Modal when deleting post not disappearing","fancy_title":"Modal when deleting post not disappearing","slug":"modal-when-deleting-post-not-disappearing","posts_count":5,"reply_count":0,"highest_post_number":5,"image_url":null,"created_at":"2013-07-23T11:20:35-04:00","last_posted_at":"2013-07-23T15:24:36-04:00","bumped":true,"bumped_at":"2013-07-23T15:24:32-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":36,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3987},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":6731,"title":"Can't delete a user if a deleted topic exists","fancy_title":"Can&rsquo;t delete a user if a deleted topic exists","slug":"cant-delete-a-user-if-a-deleted-topic-exists","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-05-20T07:22:51-04:00","last_posted_at":"2013-07-23T14:32:03-04:00","bumped":true,"bumped_at":"2013-07-23T12:19:42-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":127,"like_count":5,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3987},{"extras":"latest","description":"Most Recent Poster","user_id":2}]},{"id":8233,"title":"Category pages don't auto-update","fancy_title":"Category pages don&rsquo;t auto-update","slug":"category-pages-dont-auto-update","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-09T13:00:11-04:00","last_posted_at":"2013-07-23T10:26:25-04:00","bumped":true,"bumped_at":"2013-07-23T10:26:25-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":69,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3681}]},{"id":882,"title":"Usability of 'About Me' bio","fancy_title":"Usability of &lsquo;About Me&rsquo; bio","slug":"usability-of-about-me-bio","posts_count":10,"reply_count":6,"highest_post_number":10,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/57/blob.png","created_at":"2013-02-06T00:53:57-05:00","last_posted_at":"2013-07-23T10:23:43-04:00","bumped":true,"bumped_at":"2013-07-23T10:23:36-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":285,"like_count":4,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":795},{"extras":null,"description":"Frequent Poster","user_id":184},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":8537,"title":"Can't save adding a group permission to a category","fancy_title":"Can&rsquo;t save adding a group permission to a category","slug":"cant-save-adding-a-group-permission-to-a-category","posts_count":5,"reply_count":0,"highest_post_number":5,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1456/cf0ea1b99c6a84d7.png","created_at":"2013-07-20T18:00:09-04:00","last_posted_at":"2013-07-23T20:11:23-04:00","bumped":true,"bumped_at":"2013-07-23T07:55:19-04:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":true,"views":46,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":7275,"title":"ActiveRecord::StatementInvalid exception raised in models/user_action.rb","fancy_title":"ActiveRecord::StatementInvalid exception raised in models/user_action.rb","slug":"activerecord-statementinvalid-exception-raised-in-models-user-action-rb","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":null,"created_at":"2013-06-07T18:17:02-04:00","last_posted_at":"2013-07-23T06:54:37-04:00","bumped":true,"bumped_at":"2013-07-23T06:54:37-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":131,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5446},{"extras":null,"description":"Most Posts","user_id":6205},{"extras":null,"description":"Frequent Poster","user_id":5546},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":7297,"title":"Firefox: Middle-click triggers pop-up blocker","fancy_title":"Firefox: Middle-click triggers pop-up blocker","slug":"firefox-middle-click-triggers-pop-up-blocker","posts_count":8,"reply_count":3,"highest_post_number":10,"image_url":null,"created_at":"2013-06-08T14:35:59-04:00","last_posted_at":"2013-07-23T04:41:51-04:00","bumped":true,"bumped_at":"2013-07-23T04:41:51-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":144,"like_count":4,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5372},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":3932}]},{"id":7457,"title":"Unintended tooltip text on the 'edited' icon","fancy_title":"Unintended tooltip text on the &lsquo;edited&rsquo; icon","slug":"unintended-tooltip-text-on-the-edited-icon","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1099/cfe5999315be767d.jpeg","created_at":"2013-06-13T16:04:03-04:00","last_posted_at":"2013-07-23T03:42:01-04:00","bumped":true,"bumped_at":"2013-07-23T03:32:09-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":61,"like_count":4,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":2287},{"extras":null,"description":"Most Posts","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8576,"title":"Moderators have the interface to increase trust, but resource is 403","fancy_title":"Moderators have the interface to increase trust, but resource is 403","slug":"moderators-have-the-interface-to-increase-trust-but-resource-is-403","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-07-22T17:02:14-04:00","last_posted_at":"2013-07-23T19:14:23-04:00","bumped":true,"bumped_at":"2013-07-22T19:14:14-04:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":39,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":761},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":8508,"title":"Reply by Email doesn't process @name","fancy_title":"Reply by Email doesn&rsquo;t process @name","slug":"reply-by-email-doesnt-process-name","posts_count":14,"reply_count":8,"highest_post_number":14,"image_url":null,"created_at":"2013-07-19T11:37:04-04:00","last_posted_at":"2013-07-22T16:24:07-04:00","bumped":true,"bumped_at":"2013-07-22T16:24:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":139,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5483},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":2625}]},{"id":8570,"title":"Messages with multiple users obstructs title bar","fancy_title":"Messages with multiple users obstructs title bar","slug":"messages-with-multiple-users-obstructs-title-bar","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/_optimized/17f/c50/cdae5eae0f6_690x324.PNG","created_at":"2013-07-22T13:10:16-04:00","last_posted_at":"2013-07-22T13:43:41-04:00","bumped":true,"bumped_at":"2013-07-22T13:43:41-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":41,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5526},{"extras":null,"description":"Most Posts","user_id":3681}]},{"id":8504,"title":"[missing \"en.composer.quote_post_title\" translation]","fancy_title":"[missing &ldquo;en.composer.quote_post_title&rdquo; translation]","slug":"missing-en-composer-quote-post-title-translation","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1448/bc346ff20c3b3d64.png","created_at":"2013-07-19T09:38:24-04:00","last_posted_at":"2013-07-22T12:18:19-04:00","bumped":true,"bumped_at":"2013-07-22T11:19:15-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":56,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5912},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":8545,"title":"New post/thread button bar: Foreground color left on default, background color defined","fancy_title":"New post/thread button bar: Foreground color left on default, background color defined","slug":"new-post-thread-button-bar-foreground-color-left-on-default-background-color-defined","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-07-21T05:54:31-04:00","last_posted_at":"2013-07-21T13:38:01-04:00","bumped":true,"bumped_at":"2013-07-21T13:38:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":57,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3932},{"extras":null,"description":"Most Posts","user_id":32}]},{"id":3522,"title":"Add a deselect all option on user filter","fancy_title":"Add a deselect all option on user filter","slug":"add-a-deselect-all-option-on-user-filter","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2013-02-20T13:40:16-05:00","last_posted_at":"2013-07-21T04:47:57-04:00","bumped":true,"bumped_at":"2013-07-21T06:04:35-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":131,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":2933},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":3}]},{"id":8395,"title":"Editing topics bug","fancy_title":"Editing topics bug","slug":"editing-topics-bug","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":null,"created_at":"2013-07-15T15:35:33-04:00","last_posted_at":"2013-07-20T17:37:07-04:00","bumped":true,"bumped_at":"2013-07-20T17:37:07-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":97,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5821},{"extras":null,"description":"Most Posts","user_id":32}]},{"id":7401,"title":"Shall we add category names in top_menu?","fancy_title":"Shall we add category names in top_menu?","slug":"shall-we-add-category-names-in-top-menu","posts_count":9,"reply_count":5,"highest_post_number":9,"image_url":null,"created_at":"2013-06-11T22:47:34-04:00","last_posted_at":"2013-07-20T07:52:49-04:00","bumped":true,"bumped_at":"2013-07-20T07:52:49-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":153,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5271},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":2602},{"extras":"latest","description":"Most Recent Poster","user_id":3987}]},{"id":8506,"title":"Category featured topic error keeps getting hit when trying to o an import","fancy_title":"Category featured topic error keeps getting hit when trying to o an import","slug":"category-featured-topic-error-keeps-getting-hit-when-trying-to-o-an-import","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-19T10:49:00-04:00","last_posted_at":"2013-07-19T10:49:01-04:00","bumped":true,"bumped_at":"2013-07-19T10:49:01-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":29,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":6124}]},{"id":8482,"title":"Suggested topics keep failing after posting","fancy_title":"Suggested topics keep failing after posting","slug":"suggested-topics-keep-failing-after-posting","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1442/0a33552a6f3cd0a2.png","created_at":"2013-07-18T17:27:52-04:00","last_posted_at":"2013-07-18T17:36:49-04:00","bumped":true,"bumped_at":"2013-07-18T17:33:37-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":33,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5351},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8477,"title":"Forum embeds need a fallback for when they're quoted","fancy_title":"Forum embeds need a fallback for when they&rsquo;re quoted","slug":"forum-embeds-need-a-fallback-for-when-theyre-quoted","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-18T14:53:27-04:00","last_posted_at":"2013-07-18T14:55:39-04:00","bumped":true,"bumped_at":"2013-07-18T14:55:39-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":38,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5351},{"extras":"latest","description":"Most Recent Poster","user_id":3681}]},{"id":8468,"title":"When the \"catagory\" page is your homepage, under certain conditions you will end up on it not scrolled to the top","fancy_title":"When the &ldquo;catagory&rdquo; page is your homepage, under certain conditions you will end up on it not scrolled to the top","slug":"when-the-catagory-page-is-your-homepage-under-certain-conditions-you-will-end-up-on-it-not-scrolled-to-the-top","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1436/bc79d3f967e07312.png","created_at":"2013-07-18T09:55:51-04:00","last_posted_at":"2013-07-18T12:29:27-04:00","bumped":true,"bumped_at":"2013-07-18T12:29:27-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":40,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":4457},{"extras":null,"description":"Frequent Poster","user_id":32}]},{"id":8467,"title":"Typo in modal dialog","fancy_title":"Typo in modal dialog","slug":"typo-in-modal-dialog","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1435/4fad02817a590e4f.png","created_at":"2013-07-18T09:51:38-04:00","last_posted_at":"2013-07-18T12:27:17-04:00","bumped":true,"bumped_at":"2013-07-18T12:27:17-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":42,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":32}]},{"id":8267,"title":"Heart (like) button disappears after clicking","fancy_title":"Heart (like) button disappears after clicking","slug":"heart-like-button-disappears-after-clicking","posts_count":10,"reply_count":6,"highest_post_number":10,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/_optimized/96c/703/80f9efb15bd_690x255.png","created_at":"2013-07-10T10:14:02-04:00","last_posted_at":"2013-07-18T12:01:11-04:00","bumped":true,"bumped_at":"2013-07-18T12:01:11-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":117,"like_count":13,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5351},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":3681},{"extras":null,"description":"Frequent Poster","user_id":4263},{"extras":null,"description":"Frequent Poster","user_id":5477}]},{"id":8469,"title":"Private message button doesn't fill in user","fancy_title":"Private message button doesn&rsquo;t fill in user","slug":"private-message-button-doesnt-fill-in-user","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1437/deee0f52298d7fb4.png","created_at":"2013-07-18T10:03:13-04:00","last_posted_at":"2013-07-18T10:46:23-04:00","bumped":true,"bumped_at":"2013-07-18T10:46:19-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":36,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":8229,"title":"Post stream sometimes not pulling latest posts","fancy_title":"Post stream sometimes not pulling latest posts","slug":"post-stream-sometimes-not-pulling-latest-posts","posts_count":10,"reply_count":4,"highest_post_number":10,"image_url":null,"created_at":"2013-07-09T10:58:45-04:00","last_posted_at":"2013-07-18T10:44:56-04:00","bumped":true,"bumped_at":"2013-07-18T10:44:56-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":82,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":471},{"extras":null,"description":"Frequent Poster","user_id":5477},{"extras":null,"description":"Frequent Poster","user_id":4457}]},{"id":8208,"title":"Unread state (or topic state) gets stale (on meta)","fancy_title":"Unread state (or topic state) gets stale (on meta)","slug":"unread-state-or-topic-state-gets-stale-on-meta","posts_count":10,"reply_count":6,"highest_post_number":10,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1361/4720c3b52cf473d7.png","created_at":"2013-07-08T18:00:30-04:00","last_posted_at":"2013-07-18T08:58:11-04:00","bumped":true,"bumped_at":"2013-07-18T10:07:17-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":100,"like_count":4,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":5372},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":4457}]}]}};
diff --git a/test/javascripts/fixtures/static_fixtures.js b/test/javascripts/fixtures/static_fixtures.js
index ed4a926b183..917bae976d8 100644
--- a/test/javascripts/fixtures/static_fixtures.js
+++ b/test/javascripts/fixtures/static_fixtures.js
@@ -1,4 +1,4 @@
 /*jshint maxlen:10000000 */
-Discourse.URL_FIXTURES["/faq"] = "<ul class=\"nav-pills\">\n  <li><a class=\"active\" href=\"/faq\">FAQ</a></li>\n  <li><a href=\"/tos\">Terms of Service</a></li>\n  <li><a href=\"/privacy\">Privacy</a></li>\n</ul>\n\n\n\n<div id=\"civilized\"></div>\n<h2><a href=\"#civilized\">This is a Civilized Place for Public Discussion</a></h2>\n<p>\n  Please treat this discussion forum with the same respect you would a public park.  We, too, are a shared community resource &mdash; a place to share skills, knowledge and interests through ongoing conversation.\n</p>\n<div class=\"more\">\n  <p>\n    These are not hard and fast rules, merely aids to the human judgment of our community. Use these guidelines to keep this a clean, well-lighted place for civilized public discourse.\n  </p>\n</div>\n\n<div id=\"improve\"></div>\n<h2><a href=\"#improve\">Improve the Discussion</a></h2>\n<p>\n  Help us make this a great place for discussion by always working to improve the discussion in some way, however small. If you are not sure your post adds to the discussion or might detract from its usefulness, think over what you want to say and try again later.\n</p>\n<div class=\"more\">\n  <p>\n  The topics discussed here matter to us, and we want you to act as if they matter to you, too. Be respectful of the topics and the people discussing them, even if you disagree with some of what is being said.\n  </p>\n  <p>\n  One way to improve the discussion is by discovering ones that are already happening. Please spend some time browsing the topics here before replying or starting your own, and you\u2019ll have a better chance of meeting others who share your interests.\n  </p>\n</div>\n\n<div id=\"agreeable\"></div>\n<h2><a href=\"#agreeable\">Be Agreeable, Even When You Disagree</a></h2>\n<p>\n  You may wish to respond to something by disagreeing with it. That\u2019s fine. But, remember to <em>criticize ideas, not people</em>.\n  Please avoid:\n  <ul>\n    <li>Name-calling.</li>\n    <li>Ad hominem attacks.</li>\n    <li>Responding to a post\u2019s tone instead of its actual content.</li>\n    <li>Knee-jerk contradiction.</li>\n  </ul>\n<div class=\"more\">\n  <p>\n  Instead, provide reasoned counter-arguments that improve the conversation.\n  </p>\n</div>\n\n<div id=\"participate\"></div>\n<h2><a href=\"#participate\">Your Participation Counts</a></h2>\n<p>\n  The conversations we have here set the tone for everyone. Help us influence the future of this community by choosing to engage in discussions that make this forum an interesting place to be &mdash; and avoiding those that do not.\n</p>\n<div class=\"more\">\n  <p>\n  Discourse provides tools that enable the community to collectively identify the best (and worst) contributions: favorites, bookmarks, likes, flags, replies, edits, and so forth. Use these tools to improve your own experience, and everyone else\u2019s, too.\n  </p>\n  <p>\n  Let\u2019s try to leave our park better than we found it.\n  </p>\n</div>\n\n<div id=\"flag-problems\"></div>\n<h2><a href=\"#flag-problems\">If You See a Problem, Flag It</a></h2>\n<p>\n  Moderators have special authority; they are responsible for this forum. But so are you. With your help, moderators can be community facilitators, not just janitors or police.\n</p>\n<div class=\"more\">\n  <p>\n  When you see bad behavior, don\u2019t reply. It encourages the bad behavior by acknowledging it, consumes your energy, and wastes everyone\u2019s time. <i>Just flag it</i>. If enough flags accrue, action will be taken, either automatically or by moderator intervention.\n  </p>\n  <p>\n  In order to maintain our community, moderators reserve the right to remove any content and any user account for any reason at any time. Moderators do not preview new posts in any way; the moderators and site operators take no responsibility for any content posted by the community.\n  </p>\n</div>\n\n<div id=\"be-civil\"></div>\n<h2><a href=\"#be-civil\">Always Be Civil</a></h2>\n<p>\n  Nothing sabotages a healthy conversation like rudeness:\n  <ul>\n    <li>Be civil. Don\u2019t post anything that a reasonable person would consider offensive, abusive, or hate speech.</li>\n    <li>Keep it clean. Don\u2019t post anything obscene or sexually explicit.</li>\n    <li>Respect each other. Don\u2019t harass or grief anyone,\n      impersonate people, or expose their private information.</li>\n    <li>Respect our forum. Don\u2019t post spam or otherwise vandalize the forum.</li>\n  </ul>\n</p>\n<div class=\"more\">\n  <p>\n  These are not concrete terms with precise definitions &mdash; avoid\n    even the <i>appearance</i> of any of these things. If you\u2019re unsure, ask yourself how you would feel if your post was featured on the front page of the New York Times.\n  </p>\n  <p>\n  This is a public forum, and search engines index these discussions. Keep the language, links, and images safe for family and friends.\n  </p>\n</div>\n\n<div id=\"keep-tidy\"></div>\n<h2><a href=\"#keep-tidy\">Keep It Tidy</a></h2>\n<p>\n  Make the effort to put things in the right place, so that we can spend more time discussing and less cleaning up. So:\n  <ul>\n    <li>Don\u2019t start a topic in the wrong category.</li>\n    <li>Don\u2019t cross-post the same thing in multiple topics.</li>\n    <li>Don\u2019t post no-content replies.</li>\n    <li>Don\u2019t divert a topic by changing it midstream.</li>\n    <li>Don\u2019t sign your posts &mdash; every post has your profile information attached to it.</li>\n  </ul>\n</p>\n<div class=\"more\">\n  <p>\n  Rather than posting \u201c+1\u201d or \u201cAgreed,\u201d use the Like button. Rather than taking an existing topic in a radically different direction, use Reply as a New Topic.\n  </p>\n</div>\n\n<div id=\"stealing\"></div>\n<h2><a href=\"#stealing\">Post Only Your Own Stuff</a></h2>\n<p>\n  You may not post anything digital that belongs to someone else without permission. You may not post descriptions of, links to, or methods for stealing someone\u2019s intellectual property (software, video, audio, images), or for breaking any other law.\n</p>\n<div class=\"more\">\n</div>\n\n<div id=\"tos\"></div>\n<h2><a href=\"tos\">Terms of Service</a></h2>\n<p>\n  Yes, legalese is boring, but we must protect ourselves &ndash; and by extension, you and your data &ndash; against unfriendly folks. We have a <a href=\"/tos\">Terms of Service</a> describing your (and our) behavior and rights related to content, privacy, and laws. To use this service, you must agree to abide by our <a href=\"/tos\">TOS</a>.\n</p>\n<div class=\"more\">\n</div>\n\n";
-Discourse.URL_FIXTURES["/tos"] = "<ul class=\"nav-pills\">\n  <li><a href=\"/faq\">FAQ</a></li>\n  <li><a class=\"active\" href=\"/tos\">Terms of Service</a></li>\n  <li><a href=\"/privacy\">Privacy</a></li>\n</ul>\n\n<p>\n  The following terms and conditions govern all use of the discourse.org website and all content, services and products available at or through the website, including, but not limited to, discourse.org Forum Software, discourse.org Support Forums and the discourse.org Hosting service (\u201cHosting\u201d), (taken together, the Website). The Website is owned and operated by Civilized Discourse Construction Kit, Inc. (\u201cCDCK\u201d). The Website is offered subject to your acceptance without modification of all of the terms and conditions contained herein and all other operating rules, policies (including, without limitation, discourse.org\u2019s <a href=\"/privacy\">Privacy Policy</a> and <a href=\"/faq\">Community Guidelines</a>) and procedures that may be published from time to time on this Site by CDCK (collectively, the \u201cAgreement\u201d).\n</p>\n\n<p>\n  Please read this Agreement carefully before accessing or using the Website. By accessing or using any part of the web site, you agree to become bound by the terms and conditions of this agreement. If you do not agree to all the terms and conditions of this agreement, then you may not access the Website or use any services. If these terms and conditions are considered an offer by CDCK, acceptance is expressly limited to these terms. The Website is available only to individuals who are at least 13 years old.\n</p>\n\n<div id=\"1\"></div>\n<h2><a href=\"#1\">1. Your discourse.org Account</a></h2>\n<p>\n  If you create an account on the Website, you are responsible for maintaining the security of your account and you are fully responsible for all activities that occur under the account. You must immediately notify CDCK of any unauthorized uses of your account or any other breaches of security. CDCK will not be liable for any acts or omissions by you, including any damages of any kind incurred as a result of such acts or omissions.\n</p>\n\n<div id=\"2\"></div>\n<h2><a href=\"#2\">2. Responsibility of Contributors</a></h2>\n<p>If you post material to the Website, post links on the Website, or otherwise make (or allow any third party to make) material available by means of the Website (any such material, \u201cContent\u201d), You are entirely responsible for the content of, and any harm resulting from, that Content. That is the case regardless of whether the Content in question constitutes text, graphics, an audio file, or computer software. By making Content available, you represent and warrant that:\n</p>\n<ul>\n  <li>the downloading, copying and use of the Content will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark or trade secret rights, of any third party;</li>\n  <li>if your employer has rights to intellectual property you create, you have either (i) received permission from your employer to post or make available the Content, including but not limited to any software, or (ii) secured from your employer a waiver as to all rights in or to the Content;</li>\n  <li>you have fully complied with any third-party licenses relating to the Content, and have done all things necessary to successfully pass through to end users any required terms;</li>\n  <li>the Content does not contain or install any viruses, worms, malware, Trojan horses or other harmful or destructive content;</li>\n  <li>the Content is not spam, is not machine- or randomly-generated, and does not contain unethical or unwanted commercial content designed to drive traffic to third party sites or boost the search engine rankings of third party sites, or to further unlawful acts (such as phishing) or mislead recipients as to the source of the material (such as spoofing);</li>\n  <li>the Content is not pornographic, does not contain threats or incite violence, and does not violate the privacy or publicity rights of any third party;</li>\n  <li>your content is not getting advertised via unwanted electronic messages such as spam links on newsgroups, email lists, blogs and web sites, and similar unsolicited promotional methods;</li>\n  <li>your content is not named in a manner that misleads your readers into thinking that you are another person or company; and</li>\n  <li>you have, in the case of Content that includes computer code, accurately categorized and/or described the type, nature, uses and effects of the materials, whether requested to do so by CDCK or otherwise.</li>\n</ul>\n\n<div id=\"3\"></div>\n<h2><a href=\"#3\">3. User Content License</a></h2>\n<p>User contributions are licensed under a <a href=\"http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_US\" rel=\"nofollow\">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>. Without limiting any of those representations or warranties, CDCK has the right (though not the obligation) to, in CDCK\u2019s sole discretion (i) refuse or remove any content that, in CDCK\u2019s reasonable opinion, violates any CDCK policy or is in any way harmful or objectionable, or (ii) terminate or deny access to and use of the Website to any individual or entity for any reason, in CDCK\u2019s sole discretion. CDCK will have no obligation to provide a refund of any amounts previously paid.  </p>\n\n<div id=\"4\"></div>\n<h2><a href=\"#4\">4. Payment and Renewal</a></h2>\n<h3>General Terms</h3>\n<p>\n  Optional paid services or upgrades may be available on the Website. When utilizing an optional paid service or upgrade, you agree to pay CDCK the monthly or annual subscription fees indicated. Payments will be charged on a pre-pay basis on the day you begin utilizing the service or upgrade and will cover the use of that service or upgrade for a monthly or annual subscription period as indicated. These fees are not refundable.\n</p>\n<h3>Automatic Renewal</h3>\n<p>Unless you notify CDCK before the end of the applicable subscription period that you want to cancel a service or upgrade, your subscription will automatically renew and you authorize us to collect the then-applicable annual or monthly subscription fee (as well as any taxes) using any credit card or other payment mechanism we have on record for you. Subscriptions can be canceled at any time.\n</p>\n\n<div id=\"5\"></div>\n<h2><a href=\"#5\">5. Services</a></h2>\n<h3>Hosting, Support Services</h3>\n<p>Optional Hosting and Support services may be provided by CDCK under the terms and conditions for each such service. By signing up for a Hosting/Support or Support services account, you agree to abide by such terms and conditions.\n</p>\n\n<div id=\"6\"></div>\n<h2><a href=\"#6\">6. Responsibility of Website Visitors</a></h2>\n<p>\n  CDCK has not reviewed, and cannot review, all of the material, including computer software, posted to the Website, and cannot therefore be responsible for that material\u2019s content, use or effects. By operating the Website, CDCK does not represent or imply that it endorses the material there posted, or that it believes such material to be accurate, useful or non-harmful. You are responsible for taking precautions as necessary to protect yourself and your computer systems from viruses, worms, Trojan horses, and other harmful or destructive content. The Website may contain content that is offensive, indecent, or otherwise objectionable, as well as content containing technical inaccuracies, typographical mistakes, and other errors. The Website may also contain material that violates the privacy or publicity rights, or infringes the intellectual property and other proprietary rights, of third parties, or the downloading, copying or use of which is subject to additional terms and conditions, stated or unstated. CDCK disclaims any responsibility for any harm resulting from the use by visitors of the Website, or from any downloading by those visitors of content there posted.\n</p>\n\n<div id=\"7\"></div>\n<h2><a href=\"#7\">7. Content Posted on Other Websites</a></h2>\n<p>We have not reviewed, and cannot review, all of the material, including computer software, made available through the websites and webpages to which discourse.org links, and that link to discourse.org. CDCK does not have any control over those non-discourse.org websites and webpages, and is not responsible for their contents or their use. By linking to a non-discourse.org website or webpage, CDCK does not represent or imply that it endorses such website or webpage. You are responsible for taking precautions as necessary to protect yourself and your computer systems from viruses, worms, Trojan horses, and other harmful or destructive content. CDCK disclaims any responsibility for any harm resulting from your use of non-WordPress websites and webpages.\n</p>\n\n<div id=\"8\"></div>\n<h2><a href=\"#8\">8. Copyright Infringement and DMCA Policy</a></h2>\n<p>\n  As CDCK asks others to respect its intellectual property rights, it respects the intellectual property rights of others. If you believe that material located on or linked to by discourse.org violates your copyright, and if this website resides in the USA, you are encouraged to notify CDCK in accordance with CDCK\u2019s <a href=\"http://en.wikipedia.org/wiki/Digital_Millennium_Copyright_Act\">Digital Millennium Copyright Act</a> (\u201cDMCA\u201d) Policy. CDCK will respond to all such notices, including as required or appropriate by removing the infringing material or disabling all links to the infringing material. CDCK will terminate a visitor\u2019s access to and use of the Website if, under appropriate circumstances, the visitor is determined to be a repeat infringer of the copyrights or other intellectual property rights of CDCK or others. In the case of such termination, CDCK will have no obligation to provide a refund of any amounts previously paid to CDCK.\n</p>\n\n<div id=\"9\"></div>\n<h2><a href=\"#9\">9. Intellectual Property</a></h2>\n<p>\n  This Agreement does not transfer from CDCK to you any CDCK or third party intellectual property, and all right, title and interest in and to such property will remain (as between the parties) solely with CDCK. CDCK, discourse.org, the discourse.org logo, and all other trademarks, service marks, graphics and logos used in connection with discourse.org, or the Website are trademarks or registered trademarks of CDCK or CDCK\u2019s licensors. Other trademarks, service marks, graphics and logos used in connection with the Website may be the trademarks of other third parties. Your use of the Website grants you no right or license to reproduce or otherwise use any CDCK or third-party trademarks.\n</p>\n\n<div id=\"10\"></div>\n<h2><a href=\"#10\">10. Advertisements</a></h2>\n<p>CDCK reserves the right to display advertisements on your content unless you have purchased an Ad-free Upgrade or a Services account.</p>\n\n<div id=\"11\"></div>\n<h2><a href=\"#11\">11. Attribution</a></h2>\n<p>CDCK reserves the right to display attribution links such as \u2018Powered by discourse.org,\u2019 theme author, and font attribution in your content footer or toolbar. Footer credits and the discourse.org toolbar may not be removed regardless of upgrades purchased.</p>\n\n<div id=\"12\"></div>\n<h2><a href=\"#12\">12. Changes</a></h2>\n<p>\nCDCK reserves the right, at its sole discretion, to modify or replace any part of this Agreement. It is your responsibility to check this Agreement periodically for changes. Your continued use of or access to the Website following the posting of any changes to this Agreement constitutes acceptance of those changes. CDCK may also, in the future, offer new services and/or features through the Website (including, the release of new tools and resources). Such new features and/or services shall be subject to the terms and conditions of this Agreement.\n</p>\n\n<div id=\"13\"></div>\n<h2><a href=\"#13\">13. Termination</a></h2>\n<p>\nCDCK may terminate your access to all or any part of the Website at any time, with or without cause, with or without notice, effective immediately. If you wish to terminate this Agreement or your discourse.org account (if you have one), you may simply discontinue using the Website. All provisions of this Agreement which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.\n</p>\n\n<div id=\"14\"></div>\n<h2><a href=\"#14\">14. Disclaimer of Warranties</a></h2>\n<p>\nThe Website is provided \u201cas is\u201d. CDCK and its suppliers and licensors hereby disclaim all warranties of any kind, express or implied, including, without limitation, the warranties of merchantability, fitness for a particular purpose and non-infringement. Neither CDCK nor its suppliers and licensors, makes any warranty that the Website will be error free or that cess thereto will be continuous or uninterrupted. If you\u2019re actually reading this, here\u2019s <a href=\"http://www.newyorker.com/online/blogs/shouts/2012/12/the-hundred-best-lists-of-all-time.html\">a treat</a>. You understand that you download from, or otherwise obtain content or services through, the Website at your own discretion and risk.\n</p>\n\n<div id=\"15\"></div>\n<h2><a href=\"#15\">15. Limitation of Liability</a></h2>\n<p>\nIn no event will CDCK, or its suppliers or licensors, be liable with respect to any subject matter of this agreement under any contract, negligence, strict liability or other legal or equitable theory for: (i) any special, incidental or consequential damages; (ii) the cost of procurement for substitute products or services; (iii) for interruption of use or loss or corruption of data; or (iv) for any amounts that exceed the fees paid by you to CDCK under this agreement during the twelve (12) month period prior to the cause of action. CDCK shall have no liability for any failure or delay due to matters beyond their reasonable control. The foregoing shall not apply to the extent prohibited by applicable law.\n</p>\n\n<div id=\"16\"></div>\n<h2><a href=\"#16\">16. General Representation and Warranty</a></h2>\n<p>\nYou represent and warrant that (i) your use of the Website will be in strict accordance with the CDCK <a href=\"/privacy\">Privacy Policy</a>, <a href=\"/faq\">Community Guidelines</a>, with this Agreement and with all applicable laws and regulations (including without limitation any local laws or regulations in your country, state, city, or other governmental area, regarding online conduct and acceptable content, and including all applicable laws regarding the transmission of technical data exported from the country in which this website resides or the country in which you reside) and (ii) your use of the Website will not infringe or misappropriate the intellectual property rights of any third party.\n</p>\n\n<div id=\"17\"></div>\n<h2><a href=\"#17\">17. Indemnification</a></h2>\n<p>\nYou agree to indemnify and hold harmless CDCK, its contractors, and its licensors, and their respective directors, officers, employees and agents from and against any and all claims and expenses, including attorneys\u2019 fees, arising out of your use of the Website, including but not limited to your violation of this Agreement.\n</p>\n\n<div id=\"18\"></div>\n<h2><a href=\"#18\">18. Miscellaneous</a></h2>\n<p>This Agreement constitutes the entire agreement between CDCK and you concerning the subject matter hereof, and they may only be modified by a written amendment signed by an authorized executive of CDCK, or by the posting by CDCK of a revised version. Except to the extent applicable law, if any, provides otherwise, this Agreement, any access to or use of the Website will be governed by the laws of the state of California, U.S.A., excluding its conflict of law provisions, and the proper venue for any disputes arising out of or relating to any of the same will be the state and federal courts located in San Francisco County, California. Except for claims for injunctive or equitable relief or claims regarding intellectual property rights (which may be brought in any competent court without the posting of a bond), any dispute arising under this Agreement shall be finally settled in accordance with the Comprehensive Arbitration Rules of the Judicial Arbitration and Mediation Service, Inc. (\u201cJAMS\u201d) by three arbitrators appointed in accordance with such Rules. The arbitration shall take place in San Francisco, California, in the English language and the arbitral decision may be enforced in any court. The prevailing party in any action or proceeding to enforce this Agreement shall be entitled to costs and attorneys\u2019 fees. If any part of this Agreement is held invalid or unenforceable, that part will be construed to reflect the parties\u2019 original intent, and the remaining portions will remain in full force and effect. A waiver by either party of any term or condition of this Agreement or any breach thereof, in any one instance, will not waive such term or condition or any subsequent breach thereof. You may assign your rights under this Agreement to any party that consents to, and agrees to be bound by, its terms and conditions; CDCK may assign its rights under this Agreement without condition. This Agreement will be binding upon and will inure to the benefit of the parties, their successors and permitted assigns.</p>\n\n<p>\n  This document is CC-BY-SA. It was last updated May 31, 2013.<br/>\n  Originally adapted from the <a href=\"http://en.wordpress.com/tos/\">WordPress Terms of Service</a>.\n</p>\n";
+Discourse.URL_FIXTURES["/faq"] = "<ul class=\"nav-pills\">\n  <li><a class=\"active\" href=\"/faq\">FAQ</a></li>\n  <li><a href=\"/tos\">Terms of Service</a></li>\n  <li><a href=\"/privacy\">Privacy</a></li>\n</ul>\n\n\n\n<div id=\"civilized\"></div>\n<h2><a href=\"#civilized\">This is a Civilized Place for Public Discussion</a></h2>\n<p>\n  Please treat this discussion forum with the same respect you would a public park.  We, too, are a shared community resource &mdash; a place to share skills, knowledge and interests through ongoing conversation.\n</p>\n<div class=\"more\">\n  <p>\n    These are not hard and fast rules, merely aids to the human judgment of our community. Use these guidelines to keep this a clean, well-lighted place for civilized public discourse.\n  </p>\n</div>\n\n<div id=\"improve\"></div>\n<h2><a href=\"#improve\">Improve the Discussion</a></h2>\n<p>\n  Help us make this a great place for discussion by always working to improve the discussion in some way, however small. If you are not sure your post adds to the discussion or might detract from its usefulness, think over what you want to say and try again later.\n</p>\n<div class=\"more\">\n  <p>\n  The topics discussed here matter to us, and we want you to act as if they matter to you, too. Be respectful of the topics and the people discussing them, even if you disagree with some of what is being said.\n  </p>\n  <p>\n  One way to improve the discussion is by discovering ones that are already happening. Please spend some time browsing the topics here before replying or starting your own, and you\u2019ll have a better chance of meeting others who share your interests.\n  </p>\n</div>\n\n<div id=\"agreeable\"></div>\n<h2><a href=\"#agreeable\">Be Agreeable, Even When You Disagree</a></h2>\n<p>\n  You may wish to respond to something by disagreeing with it. That\u2019s fine. But, remember to <em>criticize ideas, not people</em>.\n  Please avoid:\n  <ul>\n    <li>Name-calling.</li>\n    <li>Ad hominem attacks.</li>\n    <li>Responding to a post\u2019s tone instead of its actual content.</li>\n    <li>Knee-jerk contradiction.</li>\n  </ul>\n<div class=\"more\">\n  <p>\n  Instead, provide reasoned counter-arguments that improve the conversation.\n  </p>\n</div>\n\n<div id=\"participate\"></div>\n<h2><a href=\"#participate\">Your Participation Counts</a></h2>\n<p>\n  The conversations we have here set the tone for everyone. Help us influence the future of this community by choosing to engage in discussions that make this forum an interesting place to be &mdash; and avoiding those that do not.\n</p>\n<div class=\"more\">\n  <p>\n  Discourse provides tools that enable the community to collectively identify the best (and worst) contributions: favorites, bookmarks, likes, flags, replies, edits, and so forth. Use these tools to improve your own experience, and everyone else\u2019s, too.\n  </p>\n  <p>\n  Let\u2019s try to leave our park better than we found it.\n  </p>\n</div>\n\n<div id=\"flag-problems\"></div>\n<h2><a href=\"#flag-problems\">If You See a Problem, Flag It</a></h2>\n<p>\n  Moderators have special authority; they are responsible for this forum. But so are you. With your help, moderators can be community facilitators, not just janitors or police.\n</p>\n<div class=\"more\">\n  <p>\n  When you see bad behavior, don\u2019t reply. It encourages the bad behavior by acknowledging it, consumes your energy, and wastes everyone\u2019s time. <i>Just flag it</i>. If enough flags accrue, action will be taken, either automatically or by moderator intervention.\n  </p>\n  <p>\n  In order to maintain our community, moderators reserve the right to remove any content and any user account for any reason at any time. Moderators do not preview new posts in any way; the moderators and site operators take no responsibility for any content posted by the community.\n  </p>\n</div>\n\n<div id=\"be-civil\"></div>\n<h2><a href=\"#be-civil\">Always Be Civil</a></h2>\n<p>\n  Nothing sabotages a healthy conversation like rudeness:\n  <ul>\n    <li>Be civil. Don\u2019t post anything that a reasonable person would consider offensive, abusive, or hate speech.</li>\n    <li>Keep it clean. Don\u2019t post anything obscene or sexually explicit.</li>\n    <li>Respect each other. Don\u2019t harass or grief anyone,\n      impersonate people, or expose their private information.</li>\n    <li>Respect our forum. Don\u2019t post spam or otherwise vandalize the forum.</li>\n  </ul>\n</p>\n<div class=\"more\">\n  <p>\n  These are not concrete terms with precise definitions &mdash; avoid\n    even the <i>appearance</i> of any of these things. If you\u2019re unsure, ask yourself how you would feel if your post was featured on the front page of the New York Times.\n  </p>\n  <p>\n  This is a public forum, and search engines index these discussions. Keep the language, links, and images safe for family and friends.\n  </p>\n</div>\n\n<div id=\"keep-tidy\"></div>\n<h2><a href=\"#keep-tidy\">Keep It Tidy</a></h2>\n<p>\n  Make the effort to put things in the right place, so that we can spend more time discussing and less cleaning up. So:\n  <ul>\n    <li>Don\u2019t start a topic in the wrong category.</li>\n    <li>Don\u2019t cross-post the same thing in multiple topics.</li>\n    <li>Don\u2019t post no-content replies.</li>\n    <li>Don\u2019t divert a topic by changing it midstream.</li>\n    <li>Don\u2019t sign your posts &mdash; every post has your profile information attached to it.</li>\n  </ul>\n</p>\n<div class=\"more\">\n  <p>\n  Rather than posting \u201c+1\u201d or \u201cAgreed\u201d, use the Like button. Rather than taking an existing topic in a radically different direction, use Reply as a New Topic.\n  </p>\n</div>\n\n<div id=\"stealing\"></div>\n<h2><a href=\"#stealing\">Post Only Your Own Stuff</a></h2>\n<p>\n  You may not post anything digital that belongs to someone else without permission. You may not post descriptions of, links to, or methods for stealing someone\u2019s intellectual property (software, video, audio, images), or for breaking any other law.\n</p>\n<div class=\"more\">\n</div>\n\n<div id=\"tos\"></div>\n<h2><a href=\"tos\">Terms of Service</a></h2>\n<p>\n  Yes, legalese is boring, but we must protect ourselves &ndash; and by extension, you and your data &ndash; against unfriendly folks. We have a <a href=\"/tos\">Terms of Service</a> describing your (and our) behavior and rights related to content, privacy, and laws. To use this service, you must agree to abide by our <a href=\"/tos\">TOS</a>.\n</p>\n<div class=\"more\">\n</div>\n\n";
+Discourse.URL_FIXTURES["/tos"] = "<ul class=\"nav-pills\">\n  <li><a href=\"/faq\">FAQ</a></li>\n  <li><a class=\"active\" href=\"/tos\">Terms of Service</a></li>\n  <li><a href=\"/privacy\">Privacy</a></li>\n</ul>\n\n<p>\n  The following terms and conditions govern all use of the discourse.org website and all content, services and products available at or through the website, including, but not limited to, discourse.org Forum Software, discourse.org Support Forums and the discourse.org Hosting service (\u201cHosting\u201d), (taken together, the Website). The Website is owned and operated by Civilized Discourse Construction Kit, Inc. (\u201cCDCK\u201d). The Website is offered subject to your acceptance without modification of all of the terms and conditions contained herein and all other operating rules, policies (including, without limitation, discourse.org\u2019s <a href=\"/privacy\">Privacy Policy</a> and <a href=\"/faq\">Community Guidelines</a>) and procedures that may be published from time to time on this Site by CDCK (collectively, the \u201cAgreement\u201d).\n</p>\n\n<p>\n  Please read this Agreement carefully before accessing or using the Website. By accessing or using any part of the web site, you agree to become bound by the terms and conditions of this agreement. If you do not agree to all the terms and conditions of this agreement, then you may not access the Website or use any services. If these terms and conditions are considered an offer by CDCK, acceptance is expressly limited to these terms. The Website is available only to individuals who are at least 13 years old.\n</p>\n\n<div id=\"1\"></div>\n<h2><a href=\"#1\">1. Your discourse.org Account</a></h2>\n<p>\n  If you create an account on the Website, you are responsible for maintaining the security of your account and you are fully responsible for all activities that occur under the account. You must immediately notify CDCK of any unauthorized uses of your account or any other breaches of security. CDCK will not be liable for any acts or omissions by you, including any damages of any kind incurred as a result of such acts or omissions.\n</p>\n\n<div id=\"2\"></div>\n<h2><a href=\"#2\">2. Responsibility of Contributors</a></h2>\n<p>If you post material to the Website, post links on the Website, or otherwise make (or allow any third party to make) material available by means of the Website (any such material, \u201cContent\u201d), You are entirely responsible for the content of, and any harm resulting from, that Content. That is the case regardless of whether the Content in question constitutes text, graphics, an audio file, or computer software. By making Content available, you represent and warrant that:\n</p>\n<ul>\n  <li>the downloading, copying and use of the Content will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark or trade secret rights, of any third party;</li>\n  <li>if your employer has rights to intellectual property you create, you have either (i) received permission from your employer to post or make available the Content, including but not limited to any software, or (ii) secured from your employer a waiver as to all rights in or to the Content;</li>\n  <li>you have fully complied with any third-party licenses relating to the Content, and have done all things necessary to successfully pass through to end users any required terms;</li>\n  <li>the Content does not contain or install any viruses, worms, malware, Trojan horses or other harmful or destructive content;</li>\n  <li>the Content is not spam, is not machine- or randomly-generated, and does not contain unethical or unwanted commercial content designed to drive traffic to third party sites or boost the search engine rankings of third party sites, or to further unlawful acts (such as phishing) or mislead recipients as to the source of the material (such as spoofing);</li>\n  <li>the Content is not pornographic, does not contain threats or incite violence, and does not violate the privacy or publicity rights of any third party;</li>\n  <li>your content is not getting advertised via unwanted electronic messages such as spam links on newsgroups, email lists, blogs and web sites, and similar unsolicited promotional methods;</li>\n  <li>your content is not named in a manner that misleads your readers into thinking that you are another person or company; and</li>\n  <li>you have, in the case of Content that includes computer code, accurately categorized and/or described the type, nature, uses and effects of the materials, whether requested to do so by CDCK or otherwise.</li>\n</ul>\n\n<div id=\"3\"></div>\n<h2><a href=\"#3\">3. User Content License</a></h2>\n<p>User contributions are licensed under a <a href=\"http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_US\" rel=\"nofollow\">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>. Without limiting any of those representations or warranties, CDCK has the right (though not the obligation) to, in CDCK\u2019s sole discretion (i) refuse or remove any content that, in CDCK\u2019s reasonable opinion, violates any CDCK policy or is in any way harmful or objectionable, or (ii) terminate or deny access to and use of the Website to any individual or entity for any reason, in CDCK\u2019s sole discretion. CDCK will have no obligation to provide a refund of any amounts previously paid.  </p>\n\n<div id=\"4\"></div>\n<h2><a href=\"#4\">4. Payment and Renewal</a></h2>\n<h3>General Terms</h3>\n<p>\n  Optional paid services or upgrades may be available on the Website. When utilizing an optional paid service or upgrade, you agree to pay CDCK the monthly or annual subscription fees indicated. Payments will be charged on a pre-pay basis on the day you begin utilizing the service or upgrade and will cover the use of that service or upgrade for a monthly or annual subscription period as indicated. These fees are not refundable.\n</p>\n<h3>Automatic Renewal</h3>\n<p>Unless you notify CDCK before the end of the applicable subscription period that you want to cancel a service or upgrade, your subscription will automatically renew and you authorize us to collect the then-applicable annual or monthly subscription fee (as well as any taxes) using any credit card or other payment mechanism we have on record for you. Subscriptions can be canceled at any time.\n</p>\n\n<div id=\"5\"></div>\n<h2><a href=\"#5\">5. Services</a></h2>\n<h3>Hosting, Support Services</h3>\n<p>Optional Hosting and Support services may be provided by CDCK under the terms and conditions for each such service. By signing up for a Hosting/Support or Support services account, you agree to abide by such terms and conditions.\n</p>\n\n<div id=\"6\"></div>\n<h2><a href=\"#6\">6. Responsibility of Website Visitors</a></h2>\n<p>\n  CDCK has not reviewed, and cannot review, all of the material, including computer software, posted to the Website, and cannot therefore be responsible for that material\u2019s content, use or effects. By operating the Website, CDCK does not represent or imply that it endorses the material there posted, or that it believes such material to be accurate, useful or non-harmful. You are responsible for taking precautions as necessary to protect yourself and your computer systems from viruses, worms, Trojan horses, and other harmful or destructive content. The Website may contain content that is offensive, indecent, or otherwise objectionable, as well as content containing technical inaccuracies, typographical mistakes, and other errors. The Website may also contain material that violates the privacy or publicity rights, or infringes the intellectual property and other proprietary rights, of third parties, or the downloading, copying or use of which is subject to additional terms and conditions, stated or unstated. CDCK disclaims any responsibility for any harm resulting from the use by visitors of the Website, or from any downloading by those visitors of content there posted.\n</p>\n\n<div id=\"7\"></div>\n<h2><a href=\"#7\">7. Content Posted on Other Websites</a></h2>\n<p>We have not reviewed, and cannot review, all of the material, including computer software, made available through the websites and webpages to which discourse.org links, and that link to discourse.org. CDCK does not have any control over those non-discourse.org websites and webpages, and is not responsible for their contents or their use. By linking to a non-discourse.org website or webpage, CDCK does not represent or imply that it endorses such website or webpage. You are responsible for taking precautions as necessary to protect yourself and your computer systems from viruses, worms, Trojan horses, and other harmful or destructive content. CDCK disclaims any responsibility for any harm resulting from your use of non-discourse.org websites and webpages.\n</p>\n\n<div id=\"8\"></div>\n<h2><a href=\"#8\">8. Copyright Infringement and DMCA Policy</a></h2>\n<p>\n  As CDCK asks others to respect its intellectual property rights, it respects the intellectual property rights of others. If you believe that material located on or linked to by discourse.org violates your copyright, and if this website resides in the USA, you are encouraged to notify CDCK in accordance with CDCK\u2019s <a href=\"http://en.wikipedia.org/wiki/Digital_Millennium_Copyright_Act\">Digital Millennium Copyright Act</a> (\u201cDMCA\u201d) Policy. CDCK will respond to all such notices, including as required or appropriate by removing the infringing material or disabling all links to the infringing material. CDCK will terminate a visitor\u2019s access to and use of the Website if, under appropriate circumstances, the visitor is determined to be a repeat infringer of the copyrights or other intellectual property rights of CDCK or others. In the case of such termination, CDCK will have no obligation to provide a refund of any amounts previously paid to CDCK.\n</p>\n\n<div id=\"9\"></div>\n<h2><a href=\"#9\">9. Intellectual Property</a></h2>\n<p>\n  This Agreement does not transfer from CDCK to you any CDCK or third party intellectual property, and all right, title and interest in and to such property will remain (as between the parties) solely with CDCK. CDCK, discourse.org, the discourse.org logo, and all other trademarks, service marks, graphics and logos used in connection with discourse.org, or the Website are trademarks or registered trademarks of CDCK or CDCK\u2019s licensors. Other trademarks, service marks, graphics and logos used in connection with the Website may be the trademarks of other third parties. Your use of the Website grants you no right or license to reproduce or otherwise use any CDCK or third-party trademarks.\n</p>\n\n<div id=\"10\"></div>\n<h2><a href=\"#10\">10. Advertisements</a></h2>\n<p>CDCK reserves the right to display advertisements on your content unless you have purchased an Ad-free Upgrade or a Services account.</p>\n\n<div id=\"11\"></div>\n<h2><a href=\"#11\">11. Attribution</a></h2>\n<p>CDCK reserves the right to display attribution links such as \u2018Powered by discourse.org,\u2019 theme author, and font attribution in your content footer or toolbar. Footer credits and the discourse.org toolbar may not be removed regardless of upgrades purchased.</p>\n\n<div id=\"12\"></div>\n<h2><a href=\"#12\">12. Changes</a></h2>\n<p>\nCDCK reserves the right, at its sole discretion, to modify or replace any part of this Agreement. It is your responsibility to check this Agreement periodically for changes. Your continued use of or access to the Website following the posting of any changes to this Agreement constitutes acceptance of those changes. CDCK may also, in the future, offer new services and/or features through the Website (including, the release of new tools and resources). Such new features and/or services shall be subject to the terms and conditions of this Agreement.\n</p>\n\n<div id=\"13\"></div>\n<h2><a href=\"#13\">13. Termination</a></h2>\n<p>\nCDCK may terminate your access to all or any part of the Website at any time, with or without cause, with or without notice, effective immediately. If you wish to terminate this Agreement or your discourse.org account (if you have one), you may simply discontinue using the Website. All provisions of this Agreement which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.\n</p>\n\n<div id=\"14\"></div>\n<h2><a href=\"#14\">14. Disclaimer of Warranties</a></h2>\n<p>\nThe Website is provided \u201cas is\u201d. CDCK and its suppliers and licensors hereby disclaim all warranties of any kind, express or implied, including, without limitation, the warranties of merchantability, fitness for a particular purpose and non-infringement. Neither CDCK nor its suppliers and licensors, makes any warranty that the Website will be error free or that cess thereto will be continuous or uninterrupted. If you\u2019re actually reading this, here\u2019s <a href=\"http://www.newyorker.com/online/blogs/shouts/2012/12/the-hundred-best-lists-of-all-time.html\">a treat</a>. You understand that you download from, or otherwise obtain content or services through, the Website at your own discretion and risk.\n</p>\n\n<div id=\"15\"></div>\n<h2><a href=\"#15\">15. Limitation of Liability</a></h2>\n<p>\nIn no event will CDCK, or its suppliers or licensors, be liable with respect to any subject matter of this agreement under any contract, negligence, strict liability or other legal or equitable theory for: (i) any special, incidental or consequential damages; (ii) the cost of procurement for substitute products or services; (iii) for interruption of use or loss or corruption of data; or (iv) for any amounts that exceed the fees paid by you to CDCK under this agreement during the twelve (12) month period prior to the cause of action. CDCK shall have no liability for any failure or delay due to matters beyond their reasonable control. The foregoing shall not apply to the extent prohibited by applicable law.\n</p>\n\n<div id=\"16\"></div>\n<h2><a href=\"#16\">16. General Representation and Warranty</a></h2>\n<p>\nYou represent and warrant that (i) your use of the Website will be in strict accordance with the CDCK <a href=\"/privacy\">Privacy Policy</a>, <a href=\"/faq\">Community Guidelines</a>, with this Agreement and with all applicable laws and regulations (including without limitation any local laws or regulations in your country, state, city, or other governmental area, regarding online conduct and acceptable content, and including all applicable laws regarding the transmission of technical data exported from the country in which this website resides or the country in which you reside) and (ii) your use of the Website will not infringe or misappropriate the intellectual property rights of any third party.\n</p>\n\n<div id=\"17\"></div>\n<h2><a href=\"#17\">17. Indemnification</a></h2>\n<p>\nYou agree to indemnify and hold harmless CDCK, its contractors, and its licensors, and their respective directors, officers, employees and agents from and against any and all claims and expenses, including attorneys\u2019 fees, arising out of your use of the Website, including but not limited to your violation of this Agreement.\n</p>\n\n<div id=\"18\"></div>\n<h2><a href=\"#18\">18. Miscellaneous</a></h2>\n<p>This Agreement constitutes the entire agreement between CDCK and you concerning the subject matter hereof, and they may only be modified by a written amendment signed by an authorized executive of CDCK, or by the posting by CDCK of a revised version. Except to the extent applicable law, if any, provides otherwise, this Agreement, any access to or use of the Website will be governed by the laws of the state of California, U.S.A., excluding its conflict of law provisions, and the proper venue for any disputes arising out of or relating to any of the same will be the state and federal courts located in San Francisco County, California. Except for claims for injunctive or equitable relief or claims regarding intellectual property rights (which may be brought in any competent court without the posting of a bond), any dispute arising under this Agreement shall be finally settled in accordance with the Comprehensive Arbitration Rules of the Judicial Arbitration and Mediation Service, Inc. (\u201cJAMS\u201d) by three arbitrators appointed in accordance with such Rules. The arbitration shall take place in San Francisco, California, in the English language and the arbitral decision may be enforced in any court. The prevailing party in any action or proceeding to enforce this Agreement shall be entitled to costs and attorneys\u2019 fees. If any part of this Agreement is held invalid or unenforceable, that part will be construed to reflect the parties\u2019 original intent, and the remaining portions will remain in full force and effect. A waiver by either party of any term or condition of this Agreement or any breach thereof, in any one instance, will not waive such term or condition or any subsequent breach thereof. You may assign your rights under this Agreement to any party that consents to, and agrees to be bound by, its terms and conditions; CDCK may assign its rights under this Agreement without condition. This Agreement will be binding upon and will inure to the benefit of the parties, their successors and permitted assigns.</p>\n\n<p>\n  This document is CC-BY-SA. It was last updated May 31, 2013.<br/>\n  Originally adapted from the <a href=\"http://en.wordpress.com/tos/\">WordPress Terms of Service</a>.\n</p>\n";
 Discourse.URL_FIXTURES["/privacy"] = "<ul class=\"nav-pills\">\n  <li><a href=\"/faq\">FAQ</a></li>\n  <li><a href=\"/tos\">Terms of Service</a></li>\n  <li><a class=\"active\" href=\"/privacy\">Privacy</a></li>\n</ul>\n\n\n\n<div id=\"collect\"></div>\n<h2><a href=\"#collect\">What information do we collect?</a></h2>\n<p>\nWe collect information from you when you register on our site and gather data when you participate in the forum by reading, writing, and evaluating the content shared here.\n</p>\n\n<p>\n  When registering on our site, you may be asked to enter your name and e-mail address. You may, however, visit our site without registering. Your e-mail address will be verified by an email containing a unique link. If that link is visited, we know that you control the e-mail address.\n</p>\n\n<p>\n  When registered and posting, we record the IP address that the post originated from. We also may retain server logs which include the IP address of every request to our server.\n</p>\n\n<div id=\"use\"></div>\n<h2><a href=\"#use\">What do we use your information for?</a></h2>\n<p>Any of the information we collect from you may be used in one of the following ways:</p>\n<ul>\n  <li>To personalize your experience &mdash; your information helps us to better respond to your individual needs.</li>\n  <li>To improve our site &mdash; we continually strive to improve our site offerings based on the information and feedback we receive from you.</li>\n  <li>To improve customer service &mdash; your information helps us to more effectively respond to your customer service requests and support needs.</li>\n  <li>To send periodic emails &mdash; The email address you provide may be used to send you information, notifications that you request about changes to topics or in response to your user name, respond to inquiries, and/or other requests or questions.</li>\n</ul>\n\n<div id=\"protect\"></div>\n<h2><a href=\"#use\">How do we protect your information?</a></h2>\n<p>\n  We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information.\n</p>\n\n<div id=\"data-retention\"></div>\n<h2><a href=\"#data-retention\">What is your data retention policy?</a></h2>\n\n<p>\n  We will make a good faith effort to:\n</p>\n<ul>\n  <li>Retain server logs containing the IP address of all requests to this server no more than 90 days.</li>\n  <li>Retain the IP addresses associated with registered users and their posts no more than 5 years.</li>\n</ul>\n</p>\n\n\n<div id=\"cookies\"></div>\n<h2><a href=\"#cookies\">Do we use cookies?</a></h2>\n<p>\n  Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.\n</p>\n\n<p>\n  We use cookies to understand and save your preferences for future visits and compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future. We may contract with third-party service providers to assist us in better understanding our site visitors. These service providers are not permitted to use the information collected on our behalf except to help us conduct and improve our business.\n</p>\n\n<div id=\"disclose\"></div>\n<h2><a href=\"#disclose\">Do we disclose any information to outside parties?</a></h2>\n<p>\nWe do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety. However, non-personally identifiable visitor information may be provided to other parties for marketing, advertising, or other uses.\n</p>\n\n<div id=\"third-party\"></div>\n<h2><a href=\"#third-party\">Third party links</a></h2>\n<p>\n  Occasionally, at our discretion, we may include or offer third party products or services on our site. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these linked sites. Nonetheless, we seek to protect the integrity of our site and welcome any feedback about these sites.\n</p>\n\n<div id=\"coppa\"></div>\n<h2><a href=\"#coppa\">Children's Online Privacy Protection Act Compliance</a></h2>\n<p>\nOur site, products and services are all directed to people who are at least 13 years old or older. If this server is in the USA, and you are under the age of 13, per the requirements of COPPA (<a href=\"http://en.wikipedia.org/wiki/Children's_Online_Privacy_Protection_Act\">Children's Online Privacy Protection Act</a>), do not use this site.\n</p>\n\n<div id=\"online\"></div>\n<h2><a href=\"#online\">Online Privacy Policy Only</a></h2>\n<p>\nThis online privacy policy applies only to information collected through our site and not to information collected offline.\n</p>\n\n<div id=\"consent\"></div>\n<h2><a href=\"#consent\">Your Consent</a></h2>\n<p>\nBy using our site, you consent to our web site privacy policy.\n</p>\n\n<div id=\"changes\"></div>\n<h2><a href=\"#changes\">Changes to our Privacy Policy</a></h2>\n<p>\nIf we decide to change our privacy policy, we will post those changes on this page.\n</p>\n\n<p>\n  This document is CC-BY-SA. It was last updated May 31, 2013.\n</p>\n\n";
diff --git a/test/javascripts/fixtures/topic_fixtures.js b/test/javascripts/fixtures/topic_fixtures.js
index 9cd4f8223fb..0b82ea45bf7 100644
--- a/test/javascripts/fixtures/topic_fixtures.js
+++ b/test/javascripts/fixtures/topic_fixtures.js
@@ -1,2 +1,2 @@
 /*jshint maxlen:10000000 */
-Discourse.URL_FIXTURES["/t/280.json"] = {"post_stream":{"posts":[{"id":398,"name":"Uwe Keim","username":"uwe_keim","avatar_template":"https://www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T16:29:00-05:00","cooked":"<p>Any plans to support localization of UI elements, so that I (for example) could set up a completely German speaking forum?</p>","post_number":1,"post_type":1,"updated_at":"2013-02-05T16:29:00-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":22,"incoming_link_count":0,"reads":342,"score":103.5,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Uwe Keim","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/language-mirrors/2378/2","internal":true,"reflection":true,"title":"Language mirrors","clicks":31},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/5","internal":true,"reflection":true,"title":"Roadplan for Discourse","clicks":20},{"url":"http://meta.discourse.org/t/internationalization-i18n-provided-for-discourse-/2073/2","internal":true,"reflection":true,"title":"Internationalization I18n provided for discourse ?","clicks":17},{"url":"http://meta.discourse.org/t/solving-xda-developer-style-forums/4368/4","internal":true,"reflection":true,"title":"Solving XDA-Developer style forums","clicks":6},{"url":"http://meta.discourse.org/t/how-to-change-language/6900/2","internal":true,"reflection":true,"title":"How to change language?","clicks":6},{"url":"http://meta.discourse.org/t/translation-workflow/6102","internal":true,"reflection":true,"title":"Translation workflow","clicks":5},{"url":"http://meta.discourse.org/t/comrades-let-s-join-our-efforts-on-ukrainian-and-russian-translations/4403/5","internal":true,"reflection":true,"title":"Comrades let's join our efforts on ukrainian and russian translations","clicks":3},{"url":"http://meta.discourse.org/t/bookmark-last-read-sometimes-doesn-t-go-to-the-end-of-a-topic/4825/9","internal":true,"reflection":true,"title":"Bookmark/last read sometimes doesn't go to the end of a topic","clicks":3},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/5","internal":true,"reflection":true,"title":"Suggestion: Translation on admin panel","clicks":2},{"url":"http://meta.discourse.org/t/missing-user-value-in-chinese-localized-page/7406/6","internal":true,"reflection":true,"title":"[missing {{user}} value] in Chinese localized page","clicks":2},{"url":"http://meta.discourse.org/t/when-will-discourse-provide-an-local-language-configuration/7068/2","internal":true,"reflection":true,"title":"When will discourse provide an local language configuration","clicks":1},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/6","internal":true,"reflection":true,"title":"Suggestion: Translation on admin panel","clicks":0},{"url":"http://meta.discourse.org/t/i-like-discourse-want-join-discourse-translation-team/6679/3","internal":true,"reflection":true,"title":"I like discourse,want join discourse translation team","clicks":0}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":0,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":255,"hidden":false,"hidden_reason_id":null,"trust_level":1,"deleted_at":null},{"id":419,"name":"Tim Stone","username":"tms","avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T16:32:47-05:00","cooked":"<p>The application strings <a href=\"https://github.com/discourse/discourse/blob/master/config/locales/en.yml\">are externalized</a>, so localization should be entirely possible with enough translation effort.</p>","post_number":2,"post_type":1,"updated_at":"2013-02-06T05:15:27-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":26,"incoming_link_count":11,"reads":335,"score":243.3,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Tim Stone","version":2,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales/en.yml","internal":false,"reflection":false,"clicks":76}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":9,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":1060,"name":"Jeff Atwood","username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T21:26:24-05:00","cooked":"<p>Yep, all strings are going through a lookup table.*</p>\n\n<p><a href=\"https://github.com/discourse/discourse/blob/master/config/locales\" target=\"_blank\">https://github.com/discourse/discourse/blob/master/config/locales</a></p>\n\n<p>So you could replace that lookup table with the \"de\" one to get German.</p>\n\n<p><sub>* we didn't get all the strings into the lookup table for launch, but the vast, vast majority of them are and the ones that are not, we will fix as we go!</sub></p>","post_number":3,"post_type":1,"updated_at":"2013-06-18T22:58:28-04:00","reply_count":3,"reply_to_post_number":null,"quote_count":0,"avg_time":35,"incoming_link_count":4,"reads":328,"score":147.35,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Jeff Atwood","version":3,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales","internal":false,"reflection":false,"clicks":7}],"read":false,"user_title":"co-founder","actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":32,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":3623,"name":"Shade","username":"shade","avatar_template":"https://www.gravatar.com/avatar/02c3f1806f6962f56168c7bd9f8924b8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T07:55:33-05:00","cooked":"<p>Is it a coincidence that the strings file is 1337 lines long? :D</p>","post_number":4,"post_type":1,"updated_at":"2013-02-07T07:55:33-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":21,"incoming_link_count":11,"reads":286,"score":248.25,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Shade","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/hi-support-chinese/4393/6","internal":true,"reflection":true,"title":"Hi, support Chinese?","clicks":15}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":7,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1808,"hidden":false,"hidden_reason_id":null,"trust_level":1,"deleted_at":null},{"id":3651,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:02:07-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"3\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  codinghorror\n  said:\n  </div>\n  <blockquote>So you could replace that lookup table with the \"de\" one to get German.</blockquote>\n</aside><p></p>\n\n<p>The problem I see here is that  this file is likely two grow and change massively over the next couple months, and tracking these changes in order to keep a localized file up to date is going to be a <em>bitch</em>. </p>\n\n<p>I wonder where there is a tool that can compare two yml structures and point out which nodes are missing? That would help keep track of new strings.</p>\n\n<p>Re keeping track of <em>changed</em> strings, <a href=\"/users/codinghorror\" class=\"mention\">@codinghorror</a> I found this very interesting: <a href=\"http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders\">http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders</a> if plain English placeholders were used, any change in strings would lead to a <em>new</em> node in the yml file, making keeping the translation up to date easier. Maybe worth thinking about in the future.</p>","post_number":5,"post_type":1,"updated_at":"2013-02-07T09:05:42-05:00","reply_count":2,"reply_to_post_number":3,"quote_count":1,"avg_time":24,"incoming_link_count":6,"reads":278,"score":156.8,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders","internal":false,"reflection":false,"clicks":49},{"url":"/users/codinghorror","internal":true,"reflection":false,"clicks":5}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":3654,"name":"Sam Saffron","username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:05:39-05:00","cooked":"<p>Yes, I really like the concept of fuzzy matching for localization, perhaps you can chase up <a href=\"https://github.com/SlexAxton\">alex sexton</a> he was meaning to upload a localization tool for this kind of stuff. </p>\n\n<p>Also, I am a big fan of <a href=\"https://github.com/SlexAxton/messageformat.js\">ICU message format</a>, but it is not the \"Rails way (tm)\". </p>","post_number":6,"post_type":1,"updated_at":"2013-02-07T09:05:39-05:00","reply_count":1,"reply_to_post_number":5,"quote_count":0,"avg_time":20,"incoming_link_count":2,"reads":248,"score":80.6,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://github.com/SlexAxton/messageformat.js","internal":false,"reflection":false,"clicks":35},{"url":"https://github.com/SlexAxton","internal":false,"reflection":false,"clicks":9}],"read":false,"user_title":"co-founder","reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":3655,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:08:17-05:00","cooked":"<p>Looks interesting, I'll take a peek.</p>\n\n<p>As said on dev, the best tool I can see in terms of giving translators a proper interface <em>and</em> quality control would be something like <a href=\"http://translate.wordpress.org/projects/bbpress/dev\">GlotPress</a>. It's based on the PO messages format (is that somehow related to ICU?) but looks pretty great.</p>\n\n<p></p><aside class=\"quote\" data-post=\"6\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  sam\n  said:\n  </div>\n  <blockquote>fuzzy matching for localization</blockquote>\n</aside><p></p>\n\n<p>I'm not familiar with the term in this context, you mean keeping the English version in the code base (instead of a generic code like <code>message_error_nametooshort</code> ?)</p>","post_number":7,"post_type":1,"updated_at":"2013-02-07T09:12:02-05:00","reply_count":1,"reply_to_post_number":6,"quote_count":1,"avg_time":18,"incoming_link_count":0,"reads":250,"score":70.9,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://translate.wordpress.org/projects/bbpress/dev","internal":false,"reflection":false,"clicks":14}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":3658,"name":"Sam Saffron","username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:12:22-05:00","cooked":"<p>ICU Message format is basically Gettext on steroids, Gettext has been around for so many years and actually works pretty well, being super prevalent in Linux. </p>\n\n<p>Trouble is you need a fuzzy matcher for translators if you are going to store stuff like <code>mf.compile( 'This is a message.' )</code> in source, one letter change and all your translators need to validate it.</p>","post_number":8,"post_type":1,"updated_at":"2013-02-07T09:12:22-05:00","reply_count":1,"reply_to_post_number":7,"quote_count":0,"avg_time":12,"incoming_link_count":0,"reads":228,"score":66.2,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/what-i-love-about-wordpress-plugins/5697","internal":true,"reflection":true,"title":"What I love about WordPress plugins","clicks":7}],"read":false,"user_title":"co-founder","reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":3660,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:14:12-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"8\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  sam\n  said:\n  </div>\n  <blockquote>one letter change and all your translators need to validate it.</blockquote>\n</aside><p></p>\n\n<p>Yeah, that's why I've always been a friend of <code>message_error_nametooshort</code> placeholders, until I asked the SO question linked above. The accepted answer makes a good argument against those placeholders: you <em>want</em> translations to break even on small changes in the English original because the translations will probably need to reflect the change, too.  Maybe that's not the case right now as new stuff is being checked in pretty much every couple of hours, but in the long run, it'll be overwhelmingly true.</p>","post_number":9,"post_type":1,"updated_at":"2013-02-07T09:18:09-05:00","reply_count":1,"reply_to_post_number":8,"quote_count":1,"avg_time":11,"incoming_link_count":0,"reads":227,"score":65.95,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":3667,"name":"Tim Stone","username":"tms","avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:25:16-05:00","cooked":"<p>Hmm...You could theoretically also build something into the development process that would monitor changes to the English locale file and make a translator-friendly list of changes between versions.</p>","post_number":10,"post_type":1,"updated_at":"2013-02-07T09:25:16-05:00","reply_count":1,"reply_to_post_number":9,"quote_count":0,"avg_time":8,"incoming_link_count":0,"reads":216,"score":63.6,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Tim Stone","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":9,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":3673,"name":"Sam Saffron","username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:30:21-05:00","cooked":"<p>Yeah, totally, also we could build tools for dev that make introducing string less annoying and make it possible to garbage collect old unused strings, I hate trudging through that file.</p>","post_number":11,"post_type":1,"updated_at":"2013-02-07T09:30:21-05:00","reply_count":1,"reply_to_post_number":10,"quote_count":0,"avg_time":8,"incoming_link_count":0,"reads":212,"score":62.8,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":"co-founder","reply_to_user":{"username":"tms","name":"Tim Stone"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":3675,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:33:38-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"11\" data-topic=\"280\" data-full=\"true\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  sam\n  said:\n  </div>\n  <blockquote>Yeah, totally, also we could build tools for dev that make introducing string less annoying and make it possible to garbage collect old unused strings, I hate trudging through that file.</blockquote>\n</aside><p></p>\n\n<p>As said, I'd look into whether WP's tools can't be reused for this with some tweaking. They seem to be able to scan a code base for new strings, and make them available automatically to translators.</p>\n\n<p>They're PHP based which isn't ideal, but it looks like they've done a crapload of work to take the hassle out of translations.</p>","post_number":12,"post_type":1,"updated_at":"2013-02-07T09:34:39-05:00","reply_count":1,"reply_to_post_number":11,"quote_count":1,"avg_time":9,"incoming_link_count":1,"reads":211,"score":67.65,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":3690,"name":"Valts","username":"Vilx","avatar_template":"https://www.gravatar.com/avatar/7bd2e50770e937761cfc3811a332bccc.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T10:05:35-05:00","cooked":"<p>This site looks so nice with all the little tweaks like \"10 minutes ago\" instead of simply time, etc - I wonder if there will also be support for proper pluralization in other languages? That's a pretty hard task though, I don't think I've ever seen a website that has done that. But it would be <em>awesome</em>.</p>","post_number":13,"post_type":1,"updated_at":"2013-02-07T10:05:35-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":8,"incoming_link_count":10,"reads":219,"score":139.2,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Valts","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1216,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":3925,"name":"Eric Kidd","username":"emk","avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T14:37:06-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"12\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  pekka\n  said:\n  </div>\n  <blockquote>As said, I'd look into whether WP's tools can't be reused for this with some tweaking. They seem to be able to scan a code base for new strings, and make them available automatically to translators.</blockquote>\n</aside><p></p>\n\n<p>I've had pretty decent luck using Localeapp to localize Rails applications:</p>\n\n<p><a href=\"http://www.localeapp.com/\" class=\"onebox\">http://www.localeapp.com/</a></p>\n\n<p>The developer workflow took me about an hour to really get used to, and there were a few minor glitches. But the non-technical translators had very few problems. One limitation: It insists on rewriting all those yaml files full of strings.</p>\n\n<p>Anyway, it's worth a look, and it's free for open source, if I recall correctly. Certainly easier than doing a whole bunch of toolsmithing from scratch.</p>","post_number":14,"post_type":1,"updated_at":"2013-02-07T14:37:06-05:00","reply_count":1,"reply_to_post_number":12,"quote_count":1,"avg_time":9,"incoming_link_count":0,"reads":208,"score":122.05,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Eric Kidd","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://www.localeapp.com/","internal":false,"reflection":false,"clicks":48}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1860,"hidden":false,"hidden_reason_id":null,"trust_level":1,"deleted_at":null},{"id":3938,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T14:52:13-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"14\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  emk\n  said:\n  </div>\n  <blockquote>I've had pretty decent luck using Localeapp to localize Rails applications</blockquote>\n</aside><p></p>\n\n<p>Ohhh. Looking sexy. <em>droool</em></p>","post_number":15,"post_type":1,"updated_at":"2013-02-07T14:52:13-05:00","reply_count":1,"reply_to_post_number":14,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":196,"score":59.6,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":3982,"name":"Eric Kidd","username":"emk","avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T15:52:22-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"15\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  pekka\n  said:\n  </div>\n  <blockquote>Ohhh. Looking sexy. droool</blockquote>\n</aside><p></p>\n\n<p>Yeah, it's pretty. :-) But there were still some rough edges as of a few months ago.</p>\n\n<p>Whether or not those rough edges are a deal-breaker will probably depends on whether or not localization is already a source of acute pain. If you're already hurting, Localeapp is a pretty useful tool, especially when it comes to enlisting non-technical translators.</p>\n\n<p>But it does require changing how you work with text, and adding one new tool to the mix. So for projects that just don't want to know about non-English languages, it's not yet seamless the way Unicode is these days.</p>\n\n<p>(Sweet forum software, by the way. I was just testing out Egyptian hieroglyphics on the test server, because they're well off the Basic Multilingual Plane, and tend to flush Unicode bugs. Everything worked flawlessly.)</p>","post_number":16,"post_type":1,"updated_at":"2013-02-07T15:52:22-05:00","reply_count":1,"reply_to_post_number":15,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":191,"score":58.6,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Eric Kidd","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1860,"hidden":false,"hidden_reason_id":null,"trust_level":1,"deleted_at":null},{"id":3989,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:04:15-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"16\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  emk\n  said:\n  </div>\n  <blockquote>But it does require changing how you work with text, and adding one new tool to the mix. So for projects that just don't want to know about non-English languages, it's not yet seamless the way Unicode is these days.</blockquote>\n</aside><p></p>\n\n<p>Interesting, thanks for the insight. I don't think localization is seriously on their table right now, there's likely to be many other things on the table before it... but it will become an issue sooner or later.</p>","post_number":17,"post_type":1,"updated_at":"2013-02-07T16:04:15-05:00","reply_count":2,"reply_to_post_number":16,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":194,"score":64.2,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":3996,"name":"Sam Saffron","username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:12:06-05:00","cooked":"<p>I had an idea ... what if in dev mode, you could right-click on a page and get access to all the translations on the page, make your edits and have it refreshed live. </p>\n\n<p>I think it would be awesome, very doable technically.</p>","post_number":18,"post_type":1,"updated_at":"2013-02-07T16:12:06-05:00","reply_count":2,"reply_to_post_number":17,"quote_count":0,"avg_time":9,"incoming_link_count":0,"reads":198,"score":125.05,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":"co-founder","reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":5,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":4009,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:18:47-05:00","cooked":"<p>That would be fricking cool. There'd still be some leftovers (like error messages that normally never show up, etc.) but you could corral those up on a specific page.</p>\n\n<p>It could have a dropdown giving you all the languages that you have a .yml for in the locale directory, and write the changes into the one selected. I'm sure people would love it.</p>","post_number":19,"post_type":1,"updated_at":"2013-02-07T16:22:10-05:00","reply_count":0,"reply_to_post_number":18,"quote_count":0,"avg_time":9,"incoming_link_count":0,"reads":187,"score":52.85,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"reply_to_user":{"username":"sam","name":"Sam Saffron"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null},{"id":4012,"name":"Marco Ceppi","username":"marcoceppi","avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:22:46-05:00","cooked":"<p>If you use gettext format you could leverage <a href=\"https://translations.launchpad.net/\">Launchpad</a> translations and the community behind it.</p>","post_number":20,"post_type":1,"updated_at":"2013-02-07T16:22:46-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":11,"incoming_link_count":1,"reads":187,"score":57.95,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Marco Ceppi","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://translations.launchpad.net/","internal":false,"reflection":false,"clicks":7}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":761,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null}],"stream":[398,419,1060,3623,3651,3654,3655,3658,3660,3667,3673,3675,3690,3925,3938,3982,3989,3996,4009,4012,4025,4056,4058,4093,4129,6288,6302,6683,6687,7059,7078,7197,7445,7448,7524,7528,7784,8379,8426,8427,8569,8570,8577,8861,8992,8999,9000,9002,9015,9048,9052,9104,9408,9435,9625,9631,9655,9896,10386,10400,10547,10671,10700,10710,10714,10753,10786,10846,10893,10994,11001,11107,11221,11225,11229,11251,11660,12453,12454,12462,12624,12625,12627,12628,12629,12630,12918,13501,13507,17251,17252,17977,20706,21397]},"draft":null,"draft_key":"topic_280","draft_sequence":null,"pinned":false,"details":{"auto_close_at":null,"created_by":{"id":255,"username":"uwe_keim","avatar_template":"https://www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon"},"last_poster":{"id":5683,"username":"AndreKR","avatar_template":"https://www.gravatar.com/avatar/3ad32697402bb21379768728e8640a22.png?s={size}&r=pg&d=identicon"},"participants":[{"id":212,"username":"alxndr","avatar_template":"https://www.gravatar.com/avatar/51c9cfe3d5ebd64a79983aa3117f4aed.png?s={size}&r=pg&d=identicon","post_count":11},{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","post_count":11},{"id":7,"username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","post_count":7},{"id":461,"username":"kuba","avatar_template":"https://www.gravatar.com/avatar/1835cb6a5f35bd4089e416a99af90f5f.png?s={size}&r=pg&d=identicon","post_count":7},{"id":2995,"username":"tattoo","avatar_template":"https://www.gravatar.com/avatar/645454e097898e3f0d9a54c699995678.png?s={size}&r=pg&d=identicon","post_count":6},{"id":2540,"username":"jgourdon","avatar_template":"https://www.gravatar.com/avatar/3f0ee7e17ec820c458958ed7b0e8538b.png?s={size}&r=pg&d=identicon","post_count":5},{"id":1860,"username":"emk","avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","post_count":4},{"id":1275,"username":"dacap","avatar_template":"https://www.gravatar.com/avatar/ec0ebc7c17f649d03ee78d4eba56ef73.png?s={size}&r=pg&d=identicon","post_count":4},{"id":3190,"username":"gururea","avatar_template":"https://www.gravatar.com/avatar/5ffb222c9c1bd2d99d9267c1557ca984.png?s={size}&r=pg&d=identicon","post_count":3},{"id":3704,"username":"mojzis","avatar_template":"https://www.gravatar.com/avatar/90847dfc44c19a250e9000bcfc7d1507.png?s={size}&r=pg&d=identicon","post_count":3},{"id":1895,"username":"maciek","avatar_template":"https://www.gravatar.com/avatar/e3fe0c49f509994d67045602f49808ee.png?s={size}&r=pg&d=identicon","post_count":3},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","post_count":3},{"id":3818,"username":"Tudor","avatar_template":"https://www.gravatar.com/avatar/8f367608e1d013beed72a8941bb768ca.png?s={size}&r=pg&d=identicon","post_count":2},{"id":9,"username":"tms","avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","post_count":2},{"id":3620,"username":"potthast","avatar_template":"https://www.gravatar.com/avatar/1753724263a5dee3e38790e6ac3d685c.png?s={size}&r=pg&d=identicon","post_count":2},{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","post_count":2},{"id":22,"username":"splattne","avatar_template":"https://www.gravatar.com/avatar/7847006dbf49f1722b07c8da396f1275.png?s={size}&r=pg&d=identicon","post_count":2},{"id":1979,"username":"Superuser","avatar_template":"https://www.gravatar.com/avatar/a7f1529299c8fb9a263b8e8afcab23da.png?s={size}&r=pg&d=identicon","post_count":2},{"id":5683,"username":"AndreKR","avatar_template":"https://www.gravatar.com/avatar/3ad32697402bb21379768728e8640a22.png?s={size}&r=pg&d=identicon","post_count":1},{"id":1808,"username":"shade","avatar_template":"https://www.gravatar.com/avatar/02c3f1806f6962f56168c7bd9f8924b8.png?s={size}&r=pg&d=identicon","post_count":1},{"id":1876,"username":"avaragado","avatar_template":"https://www.gravatar.com/avatar/6f1bbac857e36c43baccb530558c74be.png?s={size}&r=pg&d=identicon","post_count":1},{"id":2316,"username":"pakl","avatar_template":"https://www.gravatar.com/avatar/42910619ef3d550e37f7150caa0d94ff.png?s={size}&r=pg&d=identicon","post_count":1},{"id":761,"username":"marcoceppi","avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","post_count":1},{"id":5052,"username":"vulkanino","avatar_template":"https://www.gravatar.com/avatar/811bf232b634245aebba5323462d885c.png?s={size}&r=pg&d=identicon","post_count":1}],"suggested_topics":[{"id":7809,"title":"Discourse Widget?","fancy_title":"Discourse Widget?","slug":"discourse-widget","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-27T12:45:03-04:00","last_posted_at":"2013-06-27T14:21:51-04:00","bumped":true,"bumped_at":"2013-06-27T14:21:51-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":1,"views":99,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":443,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null,"available_groups":["admins","everyone","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null,"group_permissions":[{"permission_type":1,"group_name":"everyone"}]}},{"id":7455,"title":"Tracking by category","fancy_title":"Tracking by category","slug":"tracking-by-category","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2013-06-13T14:53:19-04:00","last_posted_at":"2013-06-14T15:49:31-04:00","bumped":true,"bumped_at":"2013-06-14T15:49:31-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":3,"views":73,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":443,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null,"available_groups":["admins","everyone","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null,"group_permissions":[{"permission_type":1,"group_name":"everyone"}]}},{"id":6862,"title":"\"Watch New Topics\" by default?","fancy_title":"&ldquo;Watch New Topics&rdquo; by default?","slug":"watch-new-topics-by-default","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-05-24T12:54:45-04:00","last_posted_at":"2013-05-24T18:37:09-04:00","bumped":true,"bumped_at":"2013-05-24T18:37:09-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":1,"views":90,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":443,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null,"available_groups":["admins","everyone","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null,"group_permissions":[{"permission_type":1,"group_name":"everyone"}]}},{"id":1554,"title":"Threaded Replies with Fixed Parents","fancy_title":"Threaded Replies with Fixed Parents","slug":"threaded-replies-with-fixed-parents","posts_count":10,"reply_count":6,"highest_post_number":10,"image_url":null,"created_at":"2013-02-06T13:24:33-05:00","last_posted_at":"2013-07-12T15:56:20-04:00","bumped":true,"bumped_at":"2013-07-12T15:56:20-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":10,"views":205,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":443,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null,"available_groups":["admins","everyone","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null,"group_permissions":[{"permission_type":1,"group_name":"everyone"}]}},{"id":475,"title":"Do replies always need to 'float' to the top?","fancy_title":"Do replies always need to &lsquo;float&rsquo; to the top?","slug":"do-replies-always-need-to-float-to-the-top","posts_count":7,"reply_count":6,"highest_post_number":7,"image_url":null,"created_at":"2013-02-05T18:15:59-05:00","last_posted_at":"2013-02-05T19:46:51-05:00","bumped":true,"bumped_at":"2013-02-05T19:46:51-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":3,"views":154,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":443,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null,"available_groups":["admins","everyone","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null,"group_permissions":[{"permission_type":1,"group_name":"everyone"}]}}],"links":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales/en.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"76","user_id":9},{"url":"http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"49","user_id":7},{"url":"http://www.localeapp.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"48","user_id":1860},{"url":"https://github.com/SlexAxton/messageformat.js","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"35","user_id":1},{"url":"http://meta.discourse.org/t/language-mirrors/2378/2","title":"Language mirrors","fancy_title":null,"internal":true,"reflection":true,"clicks":"31","user_id":32},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/5","title":"Roadplan for Discourse","fancy_title":null,"internal":true,"reflection":true,"clicks":"20","user_id":32},{"url":"https://github.com/berk/tr8n","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"19","user_id":1},{"url":"http://www.localeapp.com/projects/1537/translations?utf8=%E2%9C%93&search=source_code","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"19","user_id":1860},{"url":"http://meta.discourse.org/t/internationalization-i18n-provided-for-discourse-/2073/2","title":"Internationalization I18n provided for discourse ?","fancy_title":null,"internal":true,"reflection":true,"clicks":"17","user_id":114},{"url":"http://meta.discourse.org/t/hi-support-chinese/4393/6","title":"Hi, support Chinese?","fancy_title":null,"internal":true,"reflection":true,"clicks":"15","user_id":2014},{"url":"https://translations.launchpad.net/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"14","user_id":761},{"url":"https://www.transifex.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"14","user_id":1979},{"url":"http://translate.wordpress.org/projects/bbpress/dev","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"14","user_id":7},{"url":"http://weblate.org","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"11","user_id":2316},{"url":"https://github.com/SlexAxton","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"9","user_id":1},{"url":"https://github.com/discourse/discourse/pull/493","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"8","user_id":2753},{"url":"https://github.com/discourse/discourse/blob/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"7","user_id":32},{"url":"http://meta.discourse.org/t/what-i-love-about-wordpress-plugins/5697","title":"What I love about WordPress plugins","fancy_title":null,"internal":true,"reflection":true,"clicks":"7","user_id":1},{"url":"https://github.com/gururea/discourse/tree/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"6","user_id":3190},{"url":"http://meta.discourse.org/t/solving-xda-developer-style-forums/4368/4","title":"Solving XDA-Developer style forums","fancy_title":null,"internal":true,"reflection":true,"clicks":"6","user_id":639},{"url":"http://meta.discourse.org/t/how-to-change-language/6900/2","title":"How to change language?","fancy_title":null,"internal":true,"reflection":true,"clicks":"6","user_id":1995},{"url":"http://meta.discourse.org/t/translation-workflow/6102","title":"Translation workflow","fancy_title":null,"internal":true,"reflection":true,"clicks":"5","user_id":4702},{"url":"http://tr8n.github.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":212},{"url":"http://www.getlocalization.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":22},{"url":"https://github.com/dacap/discourse/tree/spanish","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":1275},{"url":"/users/codinghorror","title":null,"fancy_title":null,"internal":true,"reflection":false,"clicks":"5","user_id":7},{"url":"https://github.com/discourse/discourse/commit/c5761eae8afe37e20cec0d0f9d14b85b6e585bda","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":212},{"url":"https://github.com/discourse/discourse/blob/master/config/locales/client.nl.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":461},{"url":"http://meta.discourse.org/t/failed-to-create-new-category-when-set-the-default-locale-to-zh-cn/4703","title":"Failed to create new category when set the default_locale to zh_CN","fancy_title":null,"internal":true,"reflection":false,"clicks":"4","user_id":2995},{"url":"https://github.com/discourse/discourse/blob/master/config/locales/client.en.yml#L691","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":461},{"url":"http://meta.discourse.org/t/comrades-let-s-join-our-efforts-on-ukrainian-and-russian-translations/4403/5","title":"Comrades let's join our efforts on ukrainian and russian translations","fancy_title":null,"internal":true,"reflection":true,"clicks":"3","user_id":3417},{"url":"http://translate.sourceforge.net/wiki/virtaal/index","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"3","user_id":1979},{"url":"http://meta.discourse.org/t/bookmark-last-read-sometimes-doesn-t-go-to-the-end-of-a-topic/4825/9","title":"Bookmark/last read sometimes doesn't go to the end of a topic","fancy_title":null,"internal":true,"reflection":true,"clicks":"3","user_id":3681},{"url":"http://en.lichess.org/@/Hellball","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1979},{"url":"http://www.youtube.com/watch?v=MqqdzJ98q7s","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"https://github.com/alxndr/discourse/blob/i18n-chinese/config/locales/server.zh.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"http://pootle.locamotion.org/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":3190},{"url":"http://www.madanalogy.com/2012/06/rails-i18n-translations-in-yaml.html","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":3190},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/5","title":"Suggestion: Translation on admin panel","fancy_title":null,"internal":true,"reflection":true,"clicks":"2","user_id":1},{"url":"https://poeditor.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1979},{"url":"http://www.slideshare.net/HeatherRivers/linguistic-potluck-crowdsourcing-localization-with-rails","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"http://blog.discourse.org/2013/04/discourse-as-your-first-rails-app/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1995},{"url":"http://meta.discourse.org/t/missing-user-value-in-chinese-localized-page/7406/6","title":"[missing {{user}} value] in Chinese localized page","fancy_title":null,"internal":true,"reflection":true,"clicks":"2","user_id":1},{"url":"http://meta.discourse.org/t/translation-workflow/6102/6","title":"Translation workflow","fancy_title":null,"internal":true,"reflection":false,"clicks":"1","user_id":1995},{"url":"http://en.wikipedia.org/wiki/T%E2%80%93V_distinction","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"1","user_id":3620},{"url":"http://meta.discourse.org/t/when-will-discourse-provide-an-local-language-configuration/7068/2","title":"When will discourse provide an local language configuration","fancy_title":null,"internal":true,"reflection":true,"clicks":"1","user_id":3987},{"url":"http://guides.rubyonrails.org/i18n.html#the-public-i18n-api","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"0","user_id":1895},{"url":"https://github.com/discourse/discourse/blob/master/app/assets/javascripts/locales/date_locales.js","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"0","user_id":461},{"url":"http://sugarjs.com/dates#date_locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"0","user_id":461},{"url":"http://meta.discourse.org/t/translation-tools-transifex-localeapp/7763","title":"Translation Tools: Transifex? Localeapp?","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":2},{"url":"http://meta.discourse.org/t/i-like-discourse-want-join-discourse-translation-team/6679/3","title":"I like discourse,want join discourse translation team","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":1995},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/6","title":"Suggestion: Translation on admin panel","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":1}]},"highest_post_number":95,"deleted_by":null,"id":280,"title":"Internationalization / localization","fancy_title":"Internationalization / localization","posts_count":94,"created_at":"2013-02-05T16:29:00-05:00","views":2438,"reply_count":65,"last_posted_at":"2013-06-25T21:50:28-04:00","visible":true,"closed":false,"archived":false,"has_best_of":true,"archetype":"regular","slug":"internationalization-localization","category_id":2,"deleted_at":null};
+Discourse.URL_FIXTURES["/t/280.json"] = {"post_stream":{"posts":[{"id":398,"name":"Uwe Keim","username":"uwe_keim","avatar_template":"https://www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T16:29:00-05:00","cooked":"<p>Any plans to support localization of UI elements, so that I (for example) could set up a completely German speaking forum?</p>","post_number":1,"post_type":1,"updated_at":"2013-02-05T16:29:00-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":22,"incoming_link_count":0,"reads":345,"score":104.1,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Uwe Keim","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/language-mirrors/2378/2","internal":true,"reflection":true,"title":"Language mirrors","clicks":31},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/5","internal":true,"reflection":true,"title":"Roadplan for Discourse","clicks":20},{"url":"http://meta.discourse.org/t/internationalization-i18n-provided-for-discourse-/2073/2","internal":true,"reflection":true,"title":"Internationalization I18n provided for discourse ?","clicks":18},{"url":"http://meta.discourse.org/t/translation-workflow/6102","internal":true,"reflection":true,"title":"Translation workflow","clicks":7},{"url":"http://meta.discourse.org/t/solving-xda-developer-style-forums/4368/4","internal":true,"reflection":true,"title":"Solving XDA-Developer style forums","clicks":6},{"url":"http://meta.discourse.org/t/how-to-change-language/6900/2","internal":true,"reflection":true,"title":"How to change language?","clicks":6},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/5","internal":true,"reflection":true,"title":"Suggestion: Translation on admin panel","clicks":4},{"url":"http://meta.discourse.org/t/bookmark-last-read-sometimes-doesn-t-go-to-the-end-of-a-topic/4825/9","internal":true,"reflection":true,"title":"Bookmark/last read sometimes doesn't go to the end of a topic","clicks":3},{"url":"http://meta.discourse.org/t/comrades-let-s-join-our-efforts-on-ukrainian-and-russian-translations/4403/5","internal":true,"reflection":true,"title":"Comrades let's join our efforts on ukrainian and russian translations","clicks":3},{"url":"http://meta.discourse.org/t/missing-user-value-in-chinese-localized-page/7406/6","internal":true,"reflection":true,"title":"[missing {{user}} value] in Chinese localized page","clicks":2},{"url":"http://meta.discourse.org/t/when-will-discourse-provide-an-local-language-configuration/7068/2","internal":true,"reflection":true,"title":"When will discourse provide an local language configuration","clicks":1},{"url":"http://meta.discourse.org/t/i-like-discourse-want-join-discourse-translation-team/6679/3","internal":true,"reflection":true,"title":"I like discourse,want join discourse translation team","clicks":0},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/6","internal":true,"reflection":true,"title":"Suggestion: Translation on admin panel","clicks":0},{"url":"http://meta.discourse.org/t/changing-language-phrase-does-not-affect-on-the-site/8429/3","internal":true,"reflection":true,"title":"Changing language phrase does not affect on the site?","clicks":0}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":0,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":255,"hidden":false,"hidden_reason_id":null,"trust_level":1,"deleted_at":null,"user_deleted":false},{"id":419,"name":"Tim Stone","username":"tms","avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T16:32:47-05:00","cooked":"<p>The application strings <a href=\"https://github.com/discourse/discourse/blob/master/config/locales/en.yml\">are externalized</a>, so localization should be entirely possible with enough translation effort.</p>","post_number":2,"post_type":1,"updated_at":"2013-02-06T05:15:27-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":26,"incoming_link_count":11,"reads":337,"score":243.7,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Tim Stone","version":2,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales/en.yml","internal":false,"reflection":false,"clicks":76}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":9,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":1060,"name":"Jeff Atwood","username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T21:26:24-05:00","cooked":"<p>Yep, all strings are going through a lookup table.*</p>\n\n<p><a href=\"https://github.com/discourse/discourse/blob/master/config/locales\" target=\"_blank\">https://github.com/discourse/discourse/blob/master/config/locales</a></p>\n\n<p>So you could replace that lookup table with the \"de\" one to get German.</p>\n\n<p><sub>* we didn't get all the strings into the lookup table for launch, but the vast, vast majority of them are and the ones that are not, we will fix as we go!</sub></p>","post_number":3,"post_type":1,"updated_at":"2013-06-18T22:58:28-04:00","reply_count":3,"reply_to_post_number":null,"quote_count":0,"avg_time":35,"incoming_link_count":4,"reads":330,"score":147.75,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Jeff Atwood","version":3,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales","internal":false,"reflection":false,"clicks":7}],"read":false,"user_title":"co-founder","actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":32,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":3623,"name":"Shade","username":"shade","avatar_template":"https://www.gravatar.com/avatar/02c3f1806f6962f56168c7bd9f8924b8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T07:55:33-05:00","cooked":"<p>Is it a coincidence that the strings file is 1337 lines long? :D</p>","post_number":4,"post_type":1,"updated_at":"2013-02-07T07:55:33-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":21,"incoming_link_count":11,"reads":289,"score":248.85,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Shade","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/hi-support-chinese/4393/6","internal":true,"reflection":true,"title":"Hi, support Chinese?","clicks":15}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":7,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1808,"hidden":false,"hidden_reason_id":null,"trust_level":1,"deleted_at":null,"user_deleted":false},{"id":3651,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:02:07-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"3\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  codinghorror\n  said:\n  </div>\n  <blockquote>So you could replace that lookup table with the \"de\" one to get German.</blockquote>\n</aside><p></p>\n\n<p>The problem I see here is that  this file is likely two grow and change massively over the next couple months, and tracking these changes in order to keep a localized file up to date is going to be a <em>bitch</em>. </p>\n\n<p>I wonder where there is a tool that can compare two yml structures and point out which nodes are missing? That would help keep track of new strings.</p>\n\n<p>Re keeping track of <em>changed</em> strings, <a href=\"/users/codinghorror\" class=\"mention\">@codinghorror</a> I found this very interesting: <a href=\"http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders\">http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders</a> if plain English placeholders were used, any change in strings would lead to a <em>new</em> node in the yml file, making keeping the translation up to date easier. Maybe worth thinking about in the future.</p>","post_number":5,"post_type":1,"updated_at":"2013-02-07T09:05:42-05:00","reply_count":2,"reply_to_post_number":3,"quote_count":1,"avg_time":24,"incoming_link_count":6,"reads":281,"score":157.4,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders","internal":false,"reflection":false,"clicks":49},{"url":"/users/codinghorror","internal":true,"reflection":false,"clicks":5}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":3654,"name":"Sam Saffron","username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:05:39-05:00","cooked":"<p>Yes, I really like the concept of fuzzy matching for localization, perhaps you can chase up <a href=\"https://github.com/SlexAxton\">alex sexton</a> he was meaning to upload a localization tool for this kind of stuff. </p>\n\n<p>Also, I am a big fan of <a href=\"https://github.com/SlexAxton/messageformat.js\">ICU message format</a>, but it is not the \"Rails way (tm)\". </p>","post_number":6,"post_type":1,"updated_at":"2013-02-07T09:05:39-05:00","reply_count":1,"reply_to_post_number":5,"quote_count":0,"avg_time":19,"incoming_link_count":2,"reads":251,"score":81.15,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://github.com/SlexAxton/messageformat.js","internal":false,"reflection":false,"clicks":35},{"url":"https://github.com/SlexAxton","internal":false,"reflection":false,"clicks":9}],"read":false,"user_title":"co-founder","reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":3655,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:08:17-05:00","cooked":"<p>Looks interesting, I'll take a peek.</p>\n\n<p>As said on dev, the best tool I can see in terms of giving translators a proper interface <em>and</em> quality control would be something like <a href=\"http://translate.wordpress.org/projects/bbpress/dev\">GlotPress</a>. It's based on the PO messages format (is that somehow related to ICU?) but looks pretty great.</p>\n\n<p></p><aside class=\"quote\" data-post=\"6\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  sam\n  said:\n  </div>\n  <blockquote>fuzzy matching for localization</blockquote>\n</aside><p></p>\n\n<p>I'm not familiar with the term in this context, you mean keeping the English version in the code base (instead of a generic code like <code>message_error_nametooshort</code> ?)</p>","post_number":7,"post_type":1,"updated_at":"2013-02-07T09:12:02-05:00","reply_count":1,"reply_to_post_number":6,"quote_count":1,"avg_time":17,"incoming_link_count":0,"reads":253,"score":71.45,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://translate.wordpress.org/projects/bbpress/dev","internal":false,"reflection":false,"clicks":14}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":3658,"name":"Sam Saffron","username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:12:22-05:00","cooked":"<p>ICU Message format is basically Gettext on steroids, Gettext has been around for so many years and actually works pretty well, being super prevalent in Linux. </p>\n\n<p>Trouble is you need a fuzzy matcher for translators if you are going to store stuff like <code>mf.compile( 'This is a message.' )</code> in source, one letter change and all your translators need to validate it.</p>","post_number":8,"post_type":1,"updated_at":"2013-02-07T09:12:22-05:00","reply_count":1,"reply_to_post_number":7,"quote_count":0,"avg_time":11,"incoming_link_count":0,"reads":231,"score":66.75,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/what-i-love-about-wordpress-plugins/5697","internal":true,"reflection":true,"title":"What I love about WordPress plugins","clicks":7}],"read":false,"user_title":"co-founder","reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":3660,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:14:12-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"8\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  sam\n  said:\n  </div>\n  <blockquote>one letter change and all your translators need to validate it.</blockquote>\n</aside><p></p>\n\n<p>Yeah, that's why I've always been a friend of <code>message_error_nametooshort</code> placeholders, until I asked the SO question linked above. The accepted answer makes a good argument against those placeholders: you <em>want</em> translations to break even on small changes in the English original because the translations will probably need to reflect the change, too.  Maybe that's not the case right now as new stuff is being checked in pretty much every couple of hours, but in the long run, it'll be overwhelmingly true.</p>","post_number":9,"post_type":1,"updated_at":"2013-02-07T09:18:09-05:00","reply_count":1,"reply_to_post_number":8,"quote_count":1,"avg_time":10,"incoming_link_count":0,"reads":230,"score":66.5,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":3667,"name":"Tim Stone","username":"tms","avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:25:16-05:00","cooked":"<p>Hmm...You could theoretically also build something into the development process that would monitor changes to the English locale file and make a translator-friendly list of changes between versions.</p>","post_number":10,"post_type":1,"updated_at":"2013-02-07T09:25:16-05:00","reply_count":1,"reply_to_post_number":9,"quote_count":0,"avg_time":8,"incoming_link_count":0,"reads":219,"score":64.2,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Tim Stone","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":9,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":3673,"name":"Sam Saffron","username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:30:21-05:00","cooked":"<p>Yeah, totally, also we could build tools for dev that make introducing string less annoying and make it possible to garbage collect old unused strings, I hate trudging through that file.</p>","post_number":11,"post_type":1,"updated_at":"2013-02-07T09:30:21-05:00","reply_count":1,"reply_to_post_number":10,"quote_count":0,"avg_time":8,"incoming_link_count":0,"reads":215,"score":63.4,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":"co-founder","reply_to_user":{"username":"tms","name":"Tim Stone"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":3675,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:33:38-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"11\" data-topic=\"280\" data-full=\"true\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  sam\n  said:\n  </div>\n  <blockquote>Yeah, totally, also we could build tools for dev that make introducing string less annoying and make it possible to garbage collect old unused strings, I hate trudging through that file.</blockquote>\n</aside><p></p>\n\n<p>As said, I'd look into whether WP's tools can't be reused for this with some tweaking. They seem to be able to scan a code base for new strings, and make them available automatically to translators.</p>\n\n<p>They're PHP based which isn't ideal, but it looks like they've done a crapload of work to take the hassle out of translations.</p>","post_number":12,"post_type":1,"updated_at":"2013-02-07T09:34:39-05:00","reply_count":1,"reply_to_post_number":11,"quote_count":1,"avg_time":9,"incoming_link_count":1,"reads":213,"score":68.05,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":3690,"name":"Valts","username":"Vilx","avatar_template":"https://www.gravatar.com/avatar/7bd2e50770e937761cfc3811a332bccc.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T10:05:35-05:00","cooked":"<p>This site looks so nice with all the little tweaks like \"10 minutes ago\" instead of simply time, etc - I wonder if there will also be support for proper pluralization in other languages? That's a pretty hard task though, I don't think I've ever seen a website that has done that. But it would be <em>awesome</em>.</p>","post_number":13,"post_type":1,"updated_at":"2013-02-07T10:05:35-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":8,"incoming_link_count":10,"reads":221,"score":139.6,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Valts","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1216,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":3925,"name":"Eric Kidd","username":"emk","avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T14:37:06-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"12\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  pekka\n  said:\n  </div>\n  <blockquote>As said, I'd look into whether WP's tools can't be reused for this with some tweaking. They seem to be able to scan a code base for new strings, and make them available automatically to translators.</blockquote>\n</aside><p></p>\n\n<p>I've had pretty decent luck using Localeapp to localize Rails applications:</p>\n\n<p><a href=\"http://www.localeapp.com/\" class=\"onebox\">http://www.localeapp.com/</a></p>\n\n<p>The developer workflow took me about an hour to really get used to, and there were a few minor glitches. But the non-technical translators had very few problems. One limitation: It insists on rewriting all those yaml files full of strings.</p>\n\n<p>Anyway, it's worth a look, and it's free for open source, if I recall correctly. Certainly easier than doing a whole bunch of toolsmithing from scratch.</p>","post_number":14,"post_type":1,"updated_at":"2013-02-07T14:37:06-05:00","reply_count":1,"reply_to_post_number":12,"quote_count":1,"avg_time":9,"incoming_link_count":0,"reads":211,"score":122.65,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Eric Kidd","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://www.localeapp.com/","internal":false,"reflection":false,"clicks":48}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1860,"hidden":false,"hidden_reason_id":null,"trust_level":1,"deleted_at":null,"user_deleted":false},{"id":3938,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T14:52:13-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"14\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  emk\n  said:\n  </div>\n  <blockquote>I've had pretty decent luck using Localeapp to localize Rails applications</blockquote>\n</aside><p></p>\n\n<p>Ohhh. Looking sexy. <em>droool</em></p>","post_number":15,"post_type":1,"updated_at":"2013-02-07T14:52:13-05:00","reply_count":1,"reply_to_post_number":14,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":198,"score":60.0,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":3982,"name":"Eric Kidd","username":"emk","avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T15:52:22-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"15\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  pekka\n  said:\n  </div>\n  <blockquote>Ohhh. Looking sexy. droool</blockquote>\n</aside><p></p>\n\n<p>Yeah, it's pretty. :-) But there were still some rough edges as of a few months ago.</p>\n\n<p>Whether or not those rough edges are a deal-breaker will probably depends on whether or not localization is already a source of acute pain. If you're already hurting, Localeapp is a pretty useful tool, especially when it comes to enlisting non-technical translators.</p>\n\n<p>But it does require changing how you work with text, and adding one new tool to the mix. So for projects that just don't want to know about non-English languages, it's not yet seamless the way Unicode is these days.</p>\n\n<p>(Sweet forum software, by the way. I was just testing out Egyptian hieroglyphics on the test server, because they're well off the Basic Multilingual Plane, and tend to flush Unicode bugs. Everything worked flawlessly.)</p>","post_number":16,"post_type":1,"updated_at":"2013-02-07T15:52:22-05:00","reply_count":1,"reply_to_post_number":15,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":192,"score":58.8,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Eric Kidd","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1860,"hidden":false,"hidden_reason_id":null,"trust_level":1,"deleted_at":null,"user_deleted":false},{"id":3989,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:04:15-05:00","cooked":"<p></p><aside class=\"quote\" data-post=\"16\" data-topic=\"280\"><div class=\"title\">\n    <div class=\"quote-controls\"></div>\n  <img width=\"20\" height=\"20\" src=\"http://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s=40&amp;r=pg&amp;d=identicon\" class=\"avatar \" title=\"\">\n  emk\n  said:\n  </div>\n  <blockquote>But it does require changing how you work with text, and adding one new tool to the mix. So for projects that just don't want to know about non-English languages, it's not yet seamless the way Unicode is these days.</blockquote>\n</aside><p></p>\n\n<p>Interesting, thanks for the insight. I don't think localization is seriously on their table right now, there's likely to be many other things on the table before it... but it will become an issue sooner or later.</p>","post_number":17,"post_type":1,"updated_at":"2013-02-07T16:04:15-05:00","reply_count":2,"reply_to_post_number":16,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":194,"score":64.2,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":3996,"name":"Sam Saffron","username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:12:06-05:00","cooked":"<p>I had an idea ... what if in dev mode, you could right-click on a page and get access to all the translations on the page, make your edits and have it refreshed live. </p>\n\n<p>I think it would be awesome, very doable technically.</p>","post_number":18,"post_type":1,"updated_at":"2013-02-07T16:12:06-05:00","reply_count":2,"reply_to_post_number":17,"quote_count":0,"avg_time":9,"incoming_link_count":0,"reads":198,"score":125.05,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":"co-founder","reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":5,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":4009,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:18:47-05:00","cooked":"<p>That would be fricking cool. There'd still be some leftovers (like error messages that normally never show up, etc.) but you could corral those up on a specific page.</p>\n\n<p>It could have a dropdown giving you all the languages that you have a .yml for in the locale directory, and write the changes into the one selected. I'm sure people would love it.</p>","post_number":19,"post_type":1,"updated_at":"2013-02-07T16:22:10-05:00","reply_count":0,"reply_to_post_number":18,"quote_count":0,"avg_time":9,"incoming_link_count":0,"reads":187,"score":52.85,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"reply_to_user":{"username":"sam","name":"Sam Saffron"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false},{"id":4012,"name":"Marco Ceppi","username":"marcoceppi","avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:22:46-05:00","cooked":"<p>If you use gettext format you could leverage <a href=\"https://translations.launchpad.net/\">Launchpad</a> translations and the community behind it.</p>","post_number":20,"post_type":1,"updated_at":"2013-02-07T16:22:46-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":11,"incoming_link_count":1,"reads":187,"score":57.95,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Marco Ceppi","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://translations.launchpad.net/","internal":false,"reflection":false,"clicks":7}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":761,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false}],"stream":[398,419,1060,3623,3651,3654,3655,3658,3660,3667,3673,3675,3690,3925,3938,3982,3989,3996,4009,4012,4025,4056,4058,4093,4129,6288,6302,6683,6687,7059,7078,7197,7445,7448,7524,7528,7784,8379,8426,8427,8569,8570,8577,8861,8992,8999,9000,9002,9015,9048,9052,9104,9408,9435,9625,9631,9655,9896,10386,10400,10547,10671,10700,10710,10714,10753,10786,10846,10893,10994,11001,11107,11221,11225,11229,11251,11660,12453,12454,12462,12624,12625,12627,12628,12629,12630,12918,13501,13507,17251,17252,17977,20706,21397]},"draft":null,"draft_key":"topic_280","draft_sequence":null,"pinned":false,"details":{"auto_close_at":null,"created_by":{"id":255,"username":"uwe_keim","avatar_template":"https://www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon"},"last_poster":{"id":5683,"username":"AndreKR","avatar_template":"https://www.gravatar.com/avatar/3ad32697402bb21379768728e8640a22.png?s={size}&r=pg&d=identicon"},"participants":[{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","post_count":11},{"id":212,"username":"alxndr","avatar_template":"https://www.gravatar.com/avatar/51c9cfe3d5ebd64a79983aa3117f4aed.png?s={size}&r=pg&d=identicon","post_count":11},{"id":7,"username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","post_count":7},{"id":461,"username":"kuba","avatar_template":"https://www.gravatar.com/avatar/1835cb6a5f35bd4089e416a99af90f5f.png?s={size}&r=pg&d=identicon","post_count":7},{"id":2995,"username":"tattoo","avatar_template":"https://www.gravatar.com/avatar/645454e097898e3f0d9a54c699995678.png?s={size}&r=pg&d=identicon","post_count":6},{"id":2540,"username":"jgourdon","avatar_template":"https://www.gravatar.com/avatar/3f0ee7e17ec820c458958ed7b0e8538b.png?s={size}&r=pg&d=identicon","post_count":5},{"id":1860,"username":"emk","avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","post_count":4},{"id":1275,"username":"dacap","avatar_template":"https://www.gravatar.com/avatar/ec0ebc7c17f649d03ee78d4eba56ef73.png?s={size}&r=pg&d=identicon","post_count":4},{"id":3704,"username":"mojzis","avatar_template":"https://www.gravatar.com/avatar/90847dfc44c19a250e9000bcfc7d1507.png?s={size}&r=pg&d=identicon","post_count":3},{"id":1895,"username":"maciek","avatar_template":"https://www.gravatar.com/avatar/e3fe0c49f509994d67045602f49808ee.png?s={size}&r=pg&d=identicon","post_count":3},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","post_count":3},{"id":3190,"username":"gururea","avatar_template":"https://www.gravatar.com/avatar/5ffb222c9c1bd2d99d9267c1557ca984.png?s={size}&r=pg&d=identicon","post_count":3},{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","post_count":2},{"id":1979,"username":"Superuser","avatar_template":"https://www.gravatar.com/avatar/a7f1529299c8fb9a263b8e8afcab23da.png?s={size}&r=pg&d=identicon","post_count":2},{"id":3818,"username":"Tudor","avatar_template":"https://www.gravatar.com/avatar/8f367608e1d013beed72a8941bb768ca.png?s={size}&r=pg&d=identicon","post_count":2},{"id":3620,"username":"potthast","avatar_template":"https://www.gravatar.com/avatar/1753724263a5dee3e38790e6ac3d685c.png?s={size}&r=pg&d=identicon","post_count":2},{"id":9,"username":"tms","avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","post_count":2},{"id":22,"username":"splattne","avatar_template":"https://www.gravatar.com/avatar/7847006dbf49f1722b07c8da396f1275.png?s={size}&r=pg&d=identicon","post_count":2},{"id":255,"username":"uwe_keim","avatar_template":"https://www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon","post_count":1},{"id":2753,"username":"mikl","avatar_template":"https://www.gravatar.com/avatar/2c3b9882e6898958b892a218b5493af9.png?s={size}&r=pg&d=identicon","post_count":1},{"id":5052,"username":"vulkanino","avatar_template":"https://www.gravatar.com/avatar/811bf232b634245aebba5323462d885c.png?s={size}&r=pg&d=identicon","post_count":1},{"id":761,"username":"marcoceppi","avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","post_count":1},{"id":2316,"username":"pakl","avatar_template":"https://www.gravatar.com/avatar/42910619ef3d550e37f7150caa0d94ff.png?s={size}&r=pg&d=identicon","post_count":1},{"id":5564,"username":"Sjors","avatar_template":"https://www.gravatar.com/avatar/2fb09bd6501779802459a171d3f8fbd9.png?s={size}&r=pg&d=identicon","post_count":1}],"suggested_topics":[{"id":7898,"title":"Conversational pop ups","fancy_title":"Conversational pop ups","slug":"conversational-pop-ups","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-06-28T07:23:46-04:00","last_posted_at":"2013-06-28T10:21:31-04:00","bumped":true,"bumped_at":"2013-06-28T10:21:31-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":0,"views":87,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":467,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null,"available_groups":["admins","everyone","moderators","my_group","staff","test","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null,"group_permissions":[{"permission_type":1,"group_name":"everyone"}]}},{"id":2954,"title":"Untrack topics in Unread list","fancy_title":"Untrack topics in Unread list","slug":"untrack-topics-in-unread-list","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-02-12T20:06:49-05:00","last_posted_at":"2013-02-14T16:58:06-05:00","bumped":true,"bumped_at":"2013-02-14T16:58:06-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":8,"views":121,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":467,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null,"available_groups":["admins","everyone","moderators","my_group","staff","test","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null,"group_permissions":[{"permission_type":1,"group_name":"everyone"}]}},{"id":8342,"title":"Dropping the statistical stuff","fancy_title":"Dropping the statistical stuff","slug":"dropping-the-statistical-stuff","posts_count":17,"reply_count":9,"highest_post_number":17,"image_url":null,"created_at":"2013-07-13T03:19:58-04:00","last_posted_at":"2013-07-24T03:11:18-04:00","bumped":true,"bumped_at":"2013-07-24T03:11:18-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":8,"views":281,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":467,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null,"available_groups":["admins","everyone","moderators","my_group","staff","test","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null,"group_permissions":[{"permission_type":1,"group_name":"everyone"}]}},{"id":6386,"title":"What do you think about \"Favorited categories\"?","fancy_title":"What do you think about &ldquo;Favorited categories&rdquo;?","slug":"what-do-you-think-about-favorited-categories","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-05-04T06:43:02-04:00","last_posted_at":"2013-06-04T07:09:54-04:00","bumped":true,"bumped_at":"2013-06-04T07:09:54-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":11,"views":167,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":467,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null,"available_groups":["admins","everyone","moderators","my_group","staff","test","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null,"group_permissions":[{"permission_type":1,"group_name":"everyone"}]}},{"id":6842,"title":"Is there a rest api?","fancy_title":"Is there a rest api?","slug":"is-there-a-rest-api","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-05-24T02:49:55-04:00","last_posted_at":"2013-05-24T03:09:03-04:00","bumped":true,"bumped_at":"2013-05-24T03:09:03-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":0,"views":145,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":467,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null,"available_groups":["admins","everyone","moderators","my_group","staff","test","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null,"group_permissions":[{"permission_type":1,"group_name":"everyone"}]}}],"links":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales/en.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"76","user_id":9},{"url":"http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"49","user_id":7},{"url":"http://www.localeapp.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"48","user_id":1860},{"url":"https://github.com/SlexAxton/messageformat.js","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"35","user_id":1},{"url":"http://meta.discourse.org/t/language-mirrors/2378/2","title":"Language mirrors","fancy_title":null,"internal":true,"reflection":true,"clicks":"31","user_id":32},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/5","title":"Roadplan for Discourse","fancy_title":null,"internal":true,"reflection":true,"clicks":"20","user_id":32},{"url":"http://www.localeapp.com/projects/1537/translations?utf8=%E2%9C%93&search=source_code","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"19","user_id":1860},{"url":"https://github.com/berk/tr8n","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"19","user_id":1},{"url":"http://meta.discourse.org/t/internationalization-i18n-provided-for-discourse-/2073/2","title":"Internationalization I18n provided for discourse ?","fancy_title":null,"internal":true,"reflection":true,"clicks":"18","user_id":114},{"url":"http://meta.discourse.org/t/hi-support-chinese/4393/6","title":"Hi, support Chinese?","fancy_title":null,"internal":true,"reflection":true,"clicks":"15","user_id":2014},{"url":"https://translations.launchpad.net/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"15","user_id":761},{"url":"http://translate.wordpress.org/projects/bbpress/dev","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"14","user_id":7},{"url":"https://www.transifex.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"14","user_id":1979},{"url":"http://weblate.org","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"11","user_id":2316},{"url":"https://github.com/SlexAxton","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"9","user_id":1},{"url":"https://github.com/discourse/discourse/pull/493","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"9","user_id":2753},{"url":"https://github.com/discourse/discourse/blob/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"7","user_id":32},{"url":"http://meta.discourse.org/t/what-i-love-about-wordpress-plugins/5697","title":"What I love about WordPress plugins","fancy_title":null,"internal":true,"reflection":true,"clicks":"7","user_id":1},{"url":"http://meta.discourse.org/t/translation-workflow/6102","title":"Translation workflow","fancy_title":null,"internal":true,"reflection":true,"clicks":"7","user_id":4702},{"url":"https://github.com/gururea/discourse/tree/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"6","user_id":3190},{"url":"http://meta.discourse.org/t/how-to-change-language/6900/2","title":"How to change language?","fancy_title":null,"internal":true,"reflection":true,"clicks":"6","user_id":1995},{"url":"http://meta.discourse.org/t/solving-xda-developer-style-forums/4368/4","title":"Solving XDA-Developer style forums","fancy_title":null,"internal":true,"reflection":true,"clicks":"6","user_id":639},{"url":"https://github.com/discourse/discourse/blob/master/config/locales/client.en.yml#L691","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":461},{"url":"/users/codinghorror","title":null,"fancy_title":null,"internal":true,"reflection":false,"clicks":"5","user_id":7},{"url":"http://tr8n.github.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":212},{"url":"http://www.getlocalization.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":22},{"url":"http://meta.discourse.org/t/failed-to-create-new-category-when-set-the-default-locale-to-zh-cn/4703","title":"Failed to create new category when set the default_locale to zh_CN","fancy_title":null,"internal":true,"reflection":false,"clicks":"5","user_id":2995},{"url":"https://github.com/dacap/discourse/tree/spanish","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":1275},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/5","title":"Suggestion: Translation on admin panel","fancy_title":null,"internal":true,"reflection":true,"clicks":"4","user_id":1},{"url":"https://github.com/discourse/discourse/blob/master/config/locales/client.nl.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":461},{"url":"https://github.com/discourse/discourse/commit/c5761eae8afe37e20cec0d0f9d14b85b6e585bda","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":212},{"url":"http://www.madanalogy.com/2012/06/rails-i18n-translations-in-yaml.html","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"3","user_id":3190},{"url":"http://meta.discourse.org/t/bookmark-last-read-sometimes-doesn-t-go-to-the-end-of-a-topic/4825/9","title":"Bookmark/last read sometimes doesn't go to the end of a topic","fancy_title":null,"internal":true,"reflection":true,"clicks":"3","user_id":3681},{"url":"http://meta.discourse.org/t/comrades-let-s-join-our-efforts-on-ukrainian-and-russian-translations/4403/5","title":"Comrades let's join our efforts on ukrainian and russian translations","fancy_title":null,"internal":true,"reflection":true,"clicks":"3","user_id":3417},{"url":"http://translate.sourceforge.net/wiki/virtaal/index","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"3","user_id":1979},{"url":"http://en.lichess.org/@/Hellball","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1979},{"url":"http://www.slideshare.net/HeatherRivers/linguistic-potluck-crowdsourcing-localization-with-rails","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"https://poeditor.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1979},{"url":"http://pootle.locamotion.org/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":3190},{"url":"http://meta.discourse.org/t/translation-workflow/6102/6","title":"Translation workflow","fancy_title":null,"internal":true,"reflection":false,"clicks":"2","user_id":1995},{"url":"http://meta.discourse.org/t/missing-user-value-in-chinese-localized-page/7406/6","title":"[missing {{user}} value] in Chinese localized page","fancy_title":null,"internal":true,"reflection":true,"clicks":"2","user_id":1},{"url":"https://github.com/alxndr/discourse/blob/i18n-chinese/config/locales/server.zh.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"http://www.youtube.com/watch?v=MqqdzJ98q7s","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"http://blog.discourse.org/2013/04/discourse-as-your-first-rails-app/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1995},{"url":"http://sugarjs.com/dates#date_locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"1","user_id":461},{"url":"http://en.wikipedia.org/wiki/T%E2%80%93V_distinction","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"1","user_id":3620},{"url":"https://github.com/discourse/discourse/blob/master/app/assets/javascripts/locales/date_locales.js","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"1","user_id":461},{"url":"http://meta.discourse.org/t/when-will-discourse-provide-an-local-language-configuration/7068/2","title":"When will discourse provide an local language configuration","fancy_title":null,"internal":true,"reflection":true,"clicks":"1","user_id":3987},{"url":"http://guides.rubyonrails.org/i18n.html#the-public-i18n-api","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"0","user_id":1895},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/6","title":"Suggestion: Translation on admin panel","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":1},{"url":"http://meta.discourse.org/t/changing-language-phrase-does-not-affect-on-the-site/8429/3","title":"Changing language phrase does not affect on the site?","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":6122},{"url":"http://meta.discourse.org/t/translation-tools-transifex-localeapp/7763","title":"Translation Tools: Transifex? Localeapp?","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":2},{"url":"http://meta.discourse.org/t/i-like-discourse-want-join-discourse-translation-team/6679/3","title":"I like discourse,want join discourse translation team","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":1995}]},"highest_post_number":95,"deleted_by":null,"id":280,"title":"Internationalization / localization","fancy_title":"Internationalization / localization","posts_count":94,"created_at":"2013-02-05T16:29:00-05:00","views":2488,"reply_count":65,"last_posted_at":"2013-06-25T21:50:28-04:00","visible":true,"closed":false,"archived":false,"has_best_of":true,"archetype":"regular","slug":"internationalization-localization","category_id":2,"deleted_at":null};
diff --git a/test/javascripts/fixtures/user_fixtures.js b/test/javascripts/fixtures/user_fixtures.js
index 3b6f4b53a30..d091e77ab53 100644
--- a/test/javascripts/fixtures/user_fixtures.js
+++ b/test/javascripts/fixtures/user_fixtures.js
@@ -1,9 +1,9 @@
 /*jshint maxlen:10000000 */
-Discourse.URL_FIXTURES["/users/eviltrout.json"] = {"user":{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","name":"Robin Ward","last_posted_at":"2013-07-15T12:55:37-04:00","last_seen_at":"2013-07-17T15:35:17-04:00","bio_raw":"Co-founder of Discourse. Previously, I created <a href=\"http://forumwarz.com\">Forumwarz</a>. <a href=\"https://twitter.com/evil_trout\">Follow me on Twitter</a>.","bio_cooked":"<p>Co-founder of Discourse. Previously, I created <a href=\"http://forumwarz.com\">Forumwarz</a>. <a href=\"https://twitter.com/evil_trout\">Follow me on Twitter</a>.</p>","created_at":"2013-02-03T10:19:22-05:00","website":"http://","can_edit":null,"stats":[{"action_type":4,"count":"5"},{"action_type":5,"count":"208"},{"action_type":6,"count":"112"},{"action_type":1,"count":"93"},{"action_type":2,"count":"231"},{"action_type":7,"count":"125"},{"action_type":9,"count":"4"},{"action_type":10,"count":"5"},{"action_type":11,"count":"2"}],"can_send_private_message_to_user":false,"bio_excerpt":"Co-founder of Discourse. Previously, I created <a href='http://forumwarz.com'>Forumwarz</a>. <a href='https://twitter.com/evil_trout'>Follow me on Twitter</a>.","trust_level":4,"moderator":false,"admin":true,"title":"co-founder","invited_by":{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"}}};
-Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout"] = {"user_actions":[{"action_type":5,"created_at":"2013-07-15T16:55:37Z","excerpt":"The preview digest is passed the current user for the content. That user is then restricted to secured categories in the query: \n\n  # Returns hot topics since a date for display in email digest.\n  def self.for_digest(user, since)\n    Topic\n      .visible\n      .secured(Guardian.new(user))\n      .whe&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"private-forums-or-discussion-threads","topic_id":1764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"reply_to_post_number":19,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Private forums or discussion threads","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-15T16:36:56Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"clicking-on-password-reset-link-redirects-to-login","topic_id":8351,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Clicking on password reset link redirects to /login","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-15T16:36:49Z","excerpt":"I&#x27;ve fixed and deployed this.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"clicking-on-password-reset-link-redirects-to-login","topic_id":8351,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Clicking on password reset link redirects to /login","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-15T09:33:53Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> I have seen this, post count goes to N+2 after you post a reply to a topic (happens to me regularly on BB)","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"incomplete-view-count-in-thread-after-posting","topic_id":8380,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Incomplete view count in thread after posting","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-15T07:30:16Z","excerpt":"I confirmed this on dev via a locally created and approved account. It is indeed a bug. The password reset email just redirects you to login, so it doesn&#x27;t work. \n\nThis one is somewhat urgent, <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you work on it tomorrow please?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"clicking-on-password-reset-link-redirects-to-login","topic_id":8351,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":2,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Clicking on password reset link redirects to /login","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-15T06:27:34Z","excerpt":"Hmm <a href='/users/eviltrout' class='mention'>@eviltrout</a> is our digest preview  not correctly stripping out restricted categories?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"private-forums-or-discussion-threads","topic_id":1764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":19,"reply_to_post_number":17,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Private forums or discussion threads","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-07-12T20:52:21Z","excerpt":"And a <a href='http://blog.discourse.org/2013/07/improved-image-handling/'>blog post</a>.","avatar_template":"https://www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"thumbnails-and-original-images-in-posts","topic_id":8321,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"erlend_sh","name":"Erlend Sogge Heggen","user_id":5351,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Thumbnails and original images in posts","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-12T11:46:37Z","excerpt":"Hmmm I don&#x27;t think it can be swapped in/out while the processes are running like that. \n\nI&#x27;d be okay with a site_setting to disable email, (off by default obviously) that would just run a noop on any email sends.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":5,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"cfstras","acting_name":"cfstras","acting_user_id":1496,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-12T09:41:05Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/038e2caac4482e97ba6b24c3a88b86ff.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"lightyear","acting_name":"Benjamin Kampmann","acting_user_id":6060,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-11T18:48:58Z","excerpt":"Hmmm I don&#x27;t think it can be swapped in/out while the processes are running like that. \n\nI&#x27;d be okay with a site_setting to disable email, (off by default obviously) that would just run a noop on any email sends.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":5,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-11T18:47:37Z","excerpt":"We don&#x27;t really have any now but it&#x27;s something we&#x27;ve wanted to do for a long time. \n\nA good first start would be to outline what hooks we should support and what kind of data should be in their payloads.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"event-hooks-for-discourse","topic_id":8296,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Event Hooks for Discourse","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-11T04:08:30Z","excerpt":"Oh I see! I apologize that I didn&#x27;t understand this at first. \n\nThis is actually quite a good solution. I remember wanting to try something like this before we went ahead with the current method. \n\nIf google works properly with this approach too, maybe we should consider not putting the content into&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/cf99a7295aafa43c75ce25668b24df29.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":9,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"cerberus","acting_name":"Alejandro Petroff","acting_user_id":4757,"title":"Noscript tag and some search engines","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-10T15:15:38Z","excerpt":"The easiest way to do this is to disable sending emails from Rails at all: \n\nconfig.action_mailer.delivery_method = :test  \n\n\nYou put that in your production.rb file, restart sidekiq and you&#x27;re good to go. No emails will go out until you&#x27;re finished your work.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"cfstras","acting_name":"cfstras","acting_user_id":1496,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-09T16:04:02Z","excerpt":"The easiest way to do this is to disable sending emails from Rails at all: \n\nconfig.action_mailer.delivery_method = :test  \n\n\nYou put that in your production.rb file, restart sidekiq and you&#x27;re good to go. No emails will go out until you&#x27;re finished your work.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-09T15:07:02Z","excerpt":"The easiest way to do this is to disable sending emails from Rails at all: \n\nconfig.action_mailer.delivery_method = :test  \n\n\nYou put that in your production.rb file, restart sidekiq and you&#x27;re good to go. No emails will go out until you&#x27;re finished your work.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-09T15:03:03Z","excerpt":"The easiest way to do this is to disable sending emails from Rails at all: \n\nconfig.action_mailer.delivery_method = :test  \n\n\nYou put that in your production.rb file, restart sidekiq and you&#x27;re good to go. No emails will go out until you&#x27;re finished your work.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-09T11:38:34Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/42ca770299eab441ddabae5a1ad5f799.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"phanimahesh","acting_name":"J Phani Mahesh","acting_user_id":5477,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-09T04:42:39Z","excerpt":"No need to archive as it is no longer a bug. We can pick this up later and discuss whether the functionality is as it should be, or not.. \n\nWhich reminds me, there&#x27;s no visible way for you, or anyone else, to see the audit trail of the edits on the category of the topic. Or the title for that matter&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"archiving-topics-creates-unread-notification-behavior-by-design","topic_id":8210,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":3,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Archiving topics creates unread notification - behavior by design?","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-09T04:38:37Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> just implemented clicking the logo to refresh the homepage. enjoy!","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"clicking-on-site-icon-name-in-top-left-does-not-refresh-reload","topic_id":5910,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Clicking on site icon/name in top left does not refresh/reload","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-09T02:06:18Z","excerpt":"<a href='/users/sam' class='mention'>@sam</a> Locale seems to be alright, I can get the turkish locale to run, it&#x27;s debian after all.  \n\n<a href='/users/eviltrout' class='mention'>@eviltrout</a> Thanks, I hadn&#x27;t thought there could be an error with postgres. I&#x27;ll check and let you know.","avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":14,"username":"uyandiren","name":"Uyan Diren","user_id":5939,"acting_username":"uyandiren","acting_name":"Uyan Diren","acting_user_id":5939,"title":"Turkish text cannot be posted","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-08T21:25:43Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-08T21:24:36Z","excerpt":"<a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' target='_blank'>Added `In-Reply-To` and `References` email headers. Additionally removed username from\nemail replies and new posts to keep the subjects collapsable.</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>evil&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"replies-notifications-are-not-grouped-as-conversations-in-my-mua","topic_id":8133,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Replies notifications are not grouped as conversations in my MUA","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-08T18:52:23Z","excerpt":"I would check the charset of your postgres database and tables first, make sure it&#x27;s correctly set to UTF-8.  \n\nMaybe run a query against the database and see if the data is being correctly stored and retrieved. If it is, then the fault must be higher up the stack.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":14,"reply_to_post_number":12,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Turkish text cannot be posted","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-08T17:34:42Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/1c52629e9379bb4d8108634ce9ca4d9e.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"hugo","acting_name":"Hugo","acting_user_id":2935,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-08T17:28:10Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-08T16:25:17Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-08T16:24:14Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-08T16:05:41Z","excerpt":"<a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' target='_blank'>Added `In-Reply-To` and `References` email headers. Additionally removed username from\nemail replies and new posts to keep the subjects collapsable.</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>evil&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"replies-notifications-are-not-grouped-as-conversations-in-my-mua","topic_id":8133,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Replies notifications are not grouped as conversations in my MUA","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-08T15:53:19Z","excerpt":"This is really weird - that error seems to indicate you are running an older version of Ruby that doesn&#x27;t support the new hash syntax. You are using our VM image right and haven&#x27;t done something different like recreate it yourself?","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"gemfile-syntax-error","topic_id":8193,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Gemfile syntax error","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-08T15:50:02Z","excerpt":"<a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' target='_blank'>Added `In-Reply-To` and `References` email headers. Additionally removed username from\nemail replies and new posts to keep the subjects collapsable.</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>evil&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"replies-notifications-are-not-grouped-as-conversations-in-my-mua","topic_id":8133,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Replies notifications are not grouped as conversations in my MUA","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-08T14:45:58Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"moving-topics-into-new-topic-doesnt-refresh-participants-list-and-stats","topic_id":4322,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Moving topics into new topic doesn't refresh participants list and stats","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-08T14:45:55Z","excerpt":"Yup I deployed a fix for this. Archiving.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"moving-topics-into-new-topic-doesnt-refresh-participants-list-and-stats","topic_id":4322,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Moving topics into new topic doesn't refresh participants list and stats","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-08T05:27:40Z","excerpt":"I believe this is fixed now? Can you confirm <a href='/users/eviltrout' class='mention'>@eviltrout</a> and archive this if so?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"moving-topics-into-new-topic-doesnt-refresh-participants-list-and-stats","topic_id":4322,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Moving topics into new topic doesn't refresh participants list and stats","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-08T05:27:01Z","excerpt":"This should be definitively fixed with <a href='/users/eviltrout' class='mention'>@eviltrout</a>&#x27;s last round of refactorings.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"jump-to-last-post-does-not-work-in-best-of-mode","topic_id":7626,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Jump to last post does not work in \"Best of\" mode","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-08T05:23:29Z","excerpt":"Let&#x27;s try on try: \n\n\n    \n      \n        <a href='http://try.discourse.org/t/funny-pictures-keep-em-clean-folks/62/17' class='track-link' target='_blank'>\n          try.discourse.org\n        </a>\n      \n    \n  \n    [image]<a href='http://try.discourse.org/t/funny-pictures-keep-em-clean-folks/62/17' target='_blank'>Funny pictures (Keep &#x27;em clean, folks!)</a>\n    \n      \n  \n  \n\n\nYep, that looks incorrect. 17 is by a different user and has actual text that should be quoted. <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you take a look next wee&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-07T22:33:25Z","excerpt":"That looks sane, I like the GitHub reference implementation. <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you add those headers to the notification emails next week?  \n\nI also think we should start removing the &quot;in reply to&quot; author from the email title as noted on HTG and elsewhere here -- so that emails can be collapsed by topi&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"replies-notifications-are-not-grouped-as-conversations-in-my-mua","topic_id":8133,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":8,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Replies notifications are not grouped as conversations in my MUA","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-07T19:27:53Z","excerpt":"I guess that it&#x27;s caused by some minor incompatibility with apache2. How would we trace this? Could <a href='/users/eviltrout' class='mention'>@eviltrout</a> please send me a private message so I can  send him the link for the discourse instance (I can&#x27;t send him a msg)?","avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"reply_to_post_number":11,"username":"uyandiren","name":"Uyan Diren","user_id":5939,"acting_username":"uyandiren","acting_name":"Uyan Diren","acting_user_id":5939,"title":"Turkish text cannot be posted","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-07T10:25:00Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> is there any progress on this? any comment or answer would be appreciated. thx in advance : ]","avatar_template":"https://www.gravatar.com/avatar/39458a23c9995b6508a818c78e177063.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/39458a23c9995b6508a818c78e177063.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":7,"username":"braininpain","name":"braininpain","user_id":5949,"acting_username":"braininpain","acting_name":"braininpain","acting_user_id":5949,"title":"Turkish text cannot be posted","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-05T20:16:03Z","excerpt":"Cool, thanks for the answers! \n\n<a href='/users/eviltrout' class='mention'>@eviltrout</a> Sweet article you&#x27;ve got there [smiley] \n\n<a href='/users/fierce' class='mention'>@fierce</a> Yeah, used Chrome&#x27;s Inspector Tool and disabled JS to see the effect.","avatar_template":"https://www.gravatar.com/avatar/e0d279f7079bc28658a68c9aac784fe9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/e0d279f7079bc28658a68c9aac784fe9.png?s={size}&r=pg&d=identicon","slug":"how-does-just-in-time-loading-work","topic_id":8127,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"TheMarkus","name":"Markus Hoff","user_id":5962,"acting_username":"TheMarkus","acting_name":"Markus Hoff","acting_user_id":5962,"title":"How does just-in-time loading work?","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-05T19:40:24Z","excerpt":"While Discourse has a comprehensive web API that it consumes, it is not really documented and outlined for external use as we are still working on it quite heavily and want to be able to change it quickly. \n\nIf you build on top of the current REST API you might have to deal with changes, so beware [&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"creating-an-discourse-user-through-api","topic_id":8124,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Creating an Discourse User through API","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T19:05:22Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-pagination-absent-for-large-topics","topic_id":8063,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript pagination absent for large topics","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T19:04:41Z","excerpt":"Fixed. Also while in there I fixed a couple long standing bugs with the SEO content [fish]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-pagination-absent-for-large-topics","topic_id":8063,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript pagination absent for large topics","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T18:47:26Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"vagrant-up-cant-convert-nil-into-string","topic_id":8113,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Vagrant up: can't convert nil into String","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T15:14:10Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"title-shown-in-dock-on-topic-load","topic_id":8082,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Title shown in dock on topic load","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-05T15:03:26Z","excerpt":"Looks fixed to me. Thanks!","avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","slug":"title-shown-in-dock-on-topic-load","topic_id":8082,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"BhaelOchon","name":"Bill Ayakatubby","user_id":471,"acting_username":"BhaelOchon","acting_name":"Bill Ayakatubby","acting_user_id":471,"title":"Title shown in dock on topic load","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T14:59:44Z","excerpt":"I believe I&#x27;ve fixed this now! Sorry about that.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"title-shown-in-dock-on-topic-load","topic_id":8082,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Title shown in dock on topic load","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T14:55:34Z","excerpt":"While Discourse has a comprehensive web API that it consumes, it is not really documented and outlined for external use as we are still working on it quite heavily and want to be able to change it quickly. \n\nIf you build on top of the current REST API you might have to deal with changes, so beware [&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"creating-an-discourse-user-through-api","topic_id":8124,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Creating an Discourse User through API","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T14:50:53Z","excerpt":"I believe this is an application but that has since been fixed. Can you try upgrading to a newer discourse release? You will likely find it works again!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"cannot-call-method-longdate-of-null-on-v0-9-3-0","topic_id":8128,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Cannot call method longDate of null on v0.9.3.0","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T14:50:16Z","excerpt":"Not sure what you mean here. The requests to get new posts should go really fast! In most cases it requests posts by id, which the database does very well. \n\n  \n\nYup, Discourse has supported search engine indexing since <a href='http://eviltrout.com/2013/06/19/adding-support-for-search-engines-to-your-javascript-applications.html' rel='nofollow'>day one</a>.  \n\n  \n\nScreen readers these days can support just about anything al&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-does-just-in-time-loading-work","topic_id":8127,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How does just-in-time loading work?","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T14:22:59Z","excerpt":"I just tried and I&#x27;m getting the same error. I wonder if one of our recipes is now failing. Looking into it.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"vagrant-up-cant-convert-nil-into-string","topic_id":8113,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Vagrant up: can't convert nil into String","deleted":false,"hidden":false},{"action_type":10,"created_at":"2013-07-05T13:54:07Z","excerpt":"Continuing the discussion from <a href='http://meta.discourse.org/t/bookmark-last-read-sometimes-doesn-t-go-to-the-end-of-a-topic/4825/14'>Bookmark/last read sometimes doesn&#x27;t go to the end of a topic</a>: \n\nI&#x27;ve noticed this happening again. I&#x27;ll go to a topic that has new unread posts (blue indicator). I read to the bottom. I navigate away. I see that I have unread posts (odd I think, I was just in there). &hellip;","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"last-read-indicator-doesnt-always-update-when-scrolling-to-bottom","topic_id":8047,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"Ajarn","name":"Brentley Jones","user_id":3681,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Last read indicator doesn't always update when scrolling to bottom","deleted":false,"hidden":null},{"action_type":7,"created_at":"2013-07-05T11:00:29Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a>  Well, I followed the ubuntu guide, and we&#x27;re using apache2 server. (The system is debian wheezy). I made some env changes: \n\nexport LANG=&quot;en_US.UTF-8&quot;\nexport LC_ALL=&quot;en_US.UTF-8&quot;\n\n\nand  \nI made also this change  \n\n$ cat config/environment.rb \n# Load the rails application\nrequire File.exp&hellip;","avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":null,"username":"uyandiren","name":"Uyan Diren","user_id":5939,"acting_username":"uyandiren","acting_name":"Uyan Diren","acting_user_id":5939,"title":"Turkish text cannot be posted","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-05T09:26:56Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/f21c5d25f6f9fd36c27a8def7f03ad8a.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"akhayyat","acting_name":"Ahmad Khayyat","acting_user_id":4702,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-05T05:50:59Z","excerpt":"Yup, that was it, thanks , now to get on the new reply by email","avatar_template":"https://www.gravatar.com/avatar/de9a910f6c145938e047f77a524df50b.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/de9a910f6c145938e047f77a524df50b.png?s={size}&r=pg&d=identicon","slug":"trying-to-change-the-email-delivery-method","topic_id":8055,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"nick12377","name":"nickj","user_id":5293,"acting_username":"nick12377","acting_name":"nickj","acting_user_id":5293,"title":"Trying to Change the Email Delivery Method","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-05T05:50:06Z","excerpt":"Hi there!  \n\nI just tried these same settings and it appeared fine in the admin section. The only thing I can think of is perhaps you didn&#x27;t restart your Rails server before checking? That file is only loaded when the server starts up. \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/de9a910f6c145938e047f77a524df50b.png?s={size}&r=pg&d=identicon","slug":"trying-to-change-the-email-delivery-method","topic_id":8055,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"nick12377","acting_name":"nickj","acting_user_id":5293,"title":"Trying to Change the Email Delivery Method","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-05T00:53:51Z","excerpt":"The first part of the video is showing off how cool it is that you don&#x27;t need JS to see the site. I don&#x27;t want to lose that cool.  \n\nAnyway, I will defer to <a href='/users/codinghorror' class='mention'>@codinghorror</a> here on the setting of the default, I strongly want noscript support default on.","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":13,"reply_to_post_number":12,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Noscript tag and some search engines","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T00:33:29Z","excerpt":"Screen readers these days can <a href='http://words.steveklabnik.com/emberjs-and-accessibility' rel='nofollow'>crawl our site fine</a> [smile] \n\nAdditionally, <a href='/users/codinghorror' class='mention'>@codinghorror</a> previously told me the only people we should really care about are Google. Should we really default to sending 5-8% more for other search engines that nobody is using? Even bing supports the AJAX crawling API&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"reply_to_post_number":11,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript tag and some search engines","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-05T00:14:32Z","excerpt":"Personally, I still like having the noscript solution around and enabled by default, I am open to adding a switch to disable it if people want to save the 5-8% page weight (tested this page 10547 vs 11701 gzipped)  \n\nThe noscript solution can work for crawlers that have no idea about that meta t&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Noscript tag and some search engines","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-04T22:41:15Z","excerpt":"I deployed a fix for this. It should work now! \n\nIf not please let us know.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon","slug":"posting-a-message-doesnt-clear-draft-box","topic_id":8104,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"PabloC","acting_name":"Pablo Corral","acting_user_id":2291,"title":"Posting a message doesn't clear draft box","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-04T22:13:03Z","excerpt":"I deployed a fix for this. It should work now! \n\nIf not please let us know.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"posting-a-message-doesnt-clear-draft-box","topic_id":8104,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Posting a message doesn't clear draft box","deleted":false,"hidden":false}]};
-Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout&filter=4"] = {"user_actions":[{"action_type":4,"created_at":"2013-06-25T15:58:39Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Reply via Email Support!","deleted":false,"hidden":null},{"action_type":4,"created_at":"2013-05-30T15:16:36Z","excerpt":"If you&#x27;ve been following the latest commits, you might have noticed some changes to the ways we do things in our Ember application. I thought it would be a good idea to explain what&#x27;s been changing and why. \n\nView Helpers\n\nAs of <a href='http://emberjs.com/blog/2013/04/21/ember-1-0-rc3.html' rel='nofollow'>Ember RC2</a> we&#x27;ve gained new helpers for inserting views into handlebars.&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-ember-refactorings","topic_id":7019,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse Ember Refactorings","deleted":false,"hidden":null},{"action_type":4,"created_at":"2013-03-21T02:29:22Z","excerpt":"I&#x27;ve just deployed a brand new VM for Discourse using the latest version of Vagrant. I encourage all developers using Vagrant for development to upgrade right away! \n\nNew Stuff: \n\n\nUpdated to <a href='http://www.vagrantup.com/' rel='nofollow'>Vagrant 1.1.2</a> whch includes a slew of updates.\nWe now include support for PhantomJS out of the box so the i&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"vagrant-updates","topic_id":4960,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Vagrant Updates!","deleted":false,"hidden":null},{"action_type":4,"created_at":"2013-03-11T15:26:13Z","excerpt":"Let&#x27;s discuss Observers.  \n\n(This <a href='https://github.com/discourse/discourse/pull/398' rel='nofollow'>PR</a> by <a href='/users/zogstrip' class='mention'>@zogstrip</a> inspired this post.) \n\nIn Rails 4 they are moving Observer support into a plugin:  <a href='http://blog.remarkablelabs.com/2012/12/observers-gem-extraction-rails-4-countdown-to-2013' class='onebox' rel='nofollow'>http://blog.remarkablelabs.com/2012/12/observers-gem-extraction-rails-4-countdown-to-2013</a> \n\nI personally am not a huge fan of observers as you end up with swabs of cod&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"migrating-off-active-record-observers","topic_id":4650,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Migrating off Active Record Observers","deleted":false,"hidden":null},{"action_type":4,"created_at":"2013-02-12T17:13:02Z","excerpt":"I&#x27;ve just deployed some slightly better documentation to our project regarding developer set ups. Vagrant is still the recommended install for most people, however if you have Rails experience there is now an <a href='https://github.com/discourse/discourse/blob/master/docs/DEVELOPER-ADVANCED.md' rel='nofollow'>advanced guide</a>. The advanced guide also contains instructions on setting up your own Vagran&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-updated-docs","topic_id":2918,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Updated Docs","deleted":false,"hidden":null}]};
-Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout&filter=5"] = {"user_actions":[{"action_type":5,"created_at":"2013-07-15T16:55:37Z","excerpt":"The preview digest is passed the current user for the content. That user is then restricted to secured categories in the query: \n\n  # Returns hot topics since a date for display in email digest.\n  def self.for_digest(user, since)\n    Topic\n      .visible\n      .secured(Guardian.new(user))\n      .whe&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"private-forums-or-discussion-threads","topic_id":1764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"reply_to_post_number":19,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Private forums or discussion threads","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-15T16:36:56Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"clicking-on-password-reset-link-redirects-to-login","topic_id":8351,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Clicking on password reset link redirects to /login","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-15T16:36:49Z","excerpt":"I&#x27;ve fixed and deployed this.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"clicking-on-password-reset-link-redirects-to-login","topic_id":8351,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Clicking on password reset link redirects to /login","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-11T18:48:58Z","excerpt":"Hmmm I don&#x27;t think it can be swapped in/out while the processes are running like that. \n\nI&#x27;d be okay with a site_setting to disable email, (off by default obviously) that would just run a noop on any email sends.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":5,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-11T18:47:37Z","excerpt":"We don&#x27;t really have any now but it&#x27;s something we&#x27;ve wanted to do for a long time. \n\nA good first start would be to outline what hooks we should support and what kind of data should be in their payloads.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"event-hooks-for-discourse","topic_id":8296,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Event Hooks for Discourse","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-09T15:03:03Z","excerpt":"The easiest way to do this is to disable sending emails from Rails at all: \n\nconfig.action_mailer.delivery_method = :test  \n\n\nYou put that in your production.rb file, restart sidekiq and you&#x27;re good to go. No emails will go out until you&#x27;re finished your work.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-08T18:52:23Z","excerpt":"I would check the charset of your postgres database and tables first, make sure it&#x27;s correctly set to UTF-8.  \n\nMaybe run a query against the database and see if the data is being correctly stored and retrieved. If it is, then the fault must be higher up the stack.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":14,"reply_to_post_number":12,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Turkish text cannot be posted","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-08T16:24:14Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-08T15:53:19Z","excerpt":"This is really weird - that error seems to indicate you are running an older version of Ruby that doesn&#x27;t support the new hash syntax. You are using our VM image right and haven&#x27;t done something different like recreate it yourself?","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"gemfile-syntax-error","topic_id":8193,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Gemfile syntax error","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-08T15:50:02Z","excerpt":"<a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' target='_blank'>Added `In-Reply-To` and `References` email headers. Additionally removed username from\nemail replies and new posts to keep the subjects collapsable.</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>evil&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"replies-notifications-are-not-grouped-as-conversations-in-my-mua","topic_id":8133,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Replies notifications are not grouped as conversations in my MUA","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-08T14:45:58Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"moving-topics-into-new-topic-doesnt-refresh-participants-list-and-stats","topic_id":4322,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Moving topics into new topic doesn't refresh participants list and stats","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-08T14:45:55Z","excerpt":"Yup I deployed a fix for this. Archiving.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"moving-topics-into-new-topic-doesnt-refresh-participants-list-and-stats","topic_id":4322,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Moving topics into new topic doesn't refresh participants list and stats","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T19:05:22Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-pagination-absent-for-large-topics","topic_id":8063,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript pagination absent for large topics","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T19:04:41Z","excerpt":"Fixed. Also while in there I fixed a couple long standing bugs with the SEO content [fish]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-pagination-absent-for-large-topics","topic_id":8063,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript pagination absent for large topics","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T18:47:26Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"vagrant-up-cant-convert-nil-into-string","topic_id":8113,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Vagrant up: can't convert nil into String","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T15:14:10Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"title-shown-in-dock-on-topic-load","topic_id":8082,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Title shown in dock on topic load","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T14:59:44Z","excerpt":"I believe I&#x27;ve fixed this now! Sorry about that.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"title-shown-in-dock-on-topic-load","topic_id":8082,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Title shown in dock on topic load","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T14:55:34Z","excerpt":"While Discourse has a comprehensive web API that it consumes, it is not really documented and outlined for external use as we are still working on it quite heavily and want to be able to change it quickly. \n\nIf you build on top of the current REST API you might have to deal with changes, so beware [&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"creating-an-discourse-user-through-api","topic_id":8124,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Creating an Discourse User through API","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T14:50:53Z","excerpt":"I believe this is an application but that has since been fixed. Can you try upgrading to a newer discourse release? You will likely find it works again!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"cannot-call-method-longdate-of-null-on-v0-9-3-0","topic_id":8128,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Cannot call method longDate of null on v0.9.3.0","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T14:50:16Z","excerpt":"Not sure what you mean here. The requests to get new posts should go really fast! In most cases it requests posts by id, which the database does very well. \n\n  \n\nYup, Discourse has supported search engine indexing since <a href='http://eviltrout.com/2013/06/19/adding-support-for-search-engines-to-your-javascript-applications.html' rel='nofollow'>day one</a>.  \n\n  \n\nScreen readers these days can support just about anything al&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-does-just-in-time-loading-work","topic_id":8127,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How does just-in-time loading work?","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T14:22:59Z","excerpt":"I just tried and I&#x27;m getting the same error. I wonder if one of our recipes is now failing. Looking into it.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"vagrant-up-cant-convert-nil-into-string","topic_id":8113,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Vagrant up: can't convert nil into String","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-05T00:33:29Z","excerpt":"Screen readers these days can <a href='http://words.steveklabnik.com/emberjs-and-accessibility' rel='nofollow'>crawl our site fine</a> [smile] \n\nAdditionally, <a href='/users/codinghorror' class='mention'>@codinghorror</a> previously told me the only people we should really care about are Google. Should we really default to sending 5-8% more for other search engines that nobody is using? Even bing supports the AJAX crawling API&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"reply_to_post_number":11,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript tag and some search engines","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-04T22:13:03Z","excerpt":"I deployed a fix for this. It should work now! \n\nIf not please let us know.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"posting-a-message-doesnt-clear-draft-box","topic_id":8104,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Posting a message doesn't clear draft box","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-04T21:50:41Z","excerpt":"What installation guide did you follow? Do you perhaps have a web server in front of your rails application that is not allowing UTF-8?","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":6,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Turkish text cannot be posted","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-04T21:44:20Z","excerpt":"Oh I see! I apologize that I didn&#x27;t understand this at first. \n\nThis is actually quite a good solution. I remember wanting to try something like this before we went ahead with the current method. \n\nIf google works properly with this approach too, maybe we should consider not putting the content into&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":9,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript tag and some search engines","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-04T19:09:19Z","excerpt":"Wouldn&#x27;t this mean sacrificing Google support? They have strict anti-cloaking laws. \n\nDoes Google not matter to people who want their sites to be indexed by Yandex?","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":6,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript tag and some search engines","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-03T14:19:43Z","excerpt":"Hi there!  \n\nI just tried these same settings and it appeared fine in the admin section. The only thing I can think of is perhaps you didn&#x27;t restart your Rails server before checking? That file is only loaded when the server starts up. \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"trying-to-change-the-email-delivery-method","topic_id":8055,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Trying to Change the Email Delivery Method","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-02T23:26:12Z","excerpt":"Sorry about this! I&#x27;ll fix it as soon as I can.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"last-read-indicator-doesnt-always-update-when-scrolling-to-bottom","topic_id":8047,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":5,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Last read indicator doesn't always update when scrolling to bottom","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-02T15:17:36Z","excerpt":"I&#x27;ve just deployed my post stream update and I believe this issue is fixed! Sorry about that.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"loading-never-stops","topic_id":7554,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":16,"reply_to_post_number":14,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Loading (never stops)","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-02T15:15:56Z","excerpt":"I&#x27;ve just deployed the new post stream code. In my tests it seems to link correctly to the post. Can you confirm that it&#x27;s working better now <a href='/users/iszi' class='mention'>@Iszi</a>? Thanks!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","topic_id":5971,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Following links to posts within the same topic jumps to the top","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-29T21:08:49Z","excerpt":"Are there any security issues with allowing people to arbitrarily include flash in a forum? I honestly don&#x27;t know -- I&#x27;ve just heard lots of bad stuff about flash in the future.  \n\nThe pull request looks good, I&#x27;d just like to be a little more sure of its safety first. \n\nThoughts <a href='/users/sam' class='mention'>@sam</a> <a href='/users/zogstrip' class='mention'>@zogstrip</a> <a href='/users/neil' class='mention'>@Nei&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"will-there-be-flash-videos-in-the-future","topic_id":7787,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Will there be flash videos in the future?","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-28T14:34:17Z","excerpt":"You need an address that can accept wildcards. That&#x27;s how our system knows the context of the email being replied to. So for example gmail will accept accountname+anything@gmail.com and send it to accountname@gmail.com.  \n\nSo in that case you&#x27;d use accountname+%{reply_key}@gmail.com as your email ad&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-27T04:29:17Z","excerpt":"Not yet! We started with polling because it was easiest for our setup, but\nwe&#x27;d love to support web hooks too. It probably won&#x27;t be too hard due to\nthe way the internal API works.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-25T15:47:41Z","excerpt":"It&#x27;s queryable via the Category table which has a topic_id indicating what the category topic is. I wouldn&#x27;t want to join on that though.  \n\nIt seems we have a sub_type column that we could probably use to indicate category topics and filter them out. Will add to my list.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-19T17:36:04Z","excerpt":"I&#x27;ve just deployed support for a new setting minimum_topics_similar with a default of 50. If the site has fewer topics than that, you won&#x27;t receive a suggested topics list. What do you think a sensible value would be on try.discourse.org? \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/5ef6714d48b78e4ae304e957d990f31b60f94ee3' class='track-link' target='_blank'>\n            [image]\n          github.&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-19T13:29:46Z","excerpt":"I&#x27;ll look into it, thanks!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"duplicate-message-are-shown-in-profile","topic_id":7628,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Duplicate message are shown in profile","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-18T20:09:45Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"smtp-errors-on-latest","topic_id":7602,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"SMTP Errors on latest","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-18T19:58:53Z","excerpt":"Oops, totally my fault. I did not realize that adding an extra header could prevent email from working. \n\nI&#x27;ve just comitted a fix to use X-Discourse-* for headers. I&#x27;ll probably take it a step further and remove the headers altogether since they only really need to be used internally but this shoul&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"smtp-errors-on-latest","topic_id":7602,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"SMTP Errors on latest","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-17T17:04:51Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"if-you-split-topic-and-therere-deleted-messages-amoung-selected-you-get-a-crash","topic_id":7542,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"If you split topic and there're deleted messages amoung selected, you get a crash","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-17T17:04:30Z","excerpt":"I just committed a fix for this: \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/3c7eb3a4e8546d8757f97cc8550c22d97e70110d' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/3c7eb3a4e8546d8757f97cc8550c22d97e70110d' target='_blank'>FIX: null dates crashed the client app. `last_posted_at` was not updating properly on split topic.</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>eviltrout</a>\n      on <a href='https://github.com/discourse/discourse/commit/3c7eb3a4e8546d8757f97cc8550c22d97e70110d' target='_blank'>0&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"if-you-split-topic-and-therere-deleted-messages-amoung-selected-you-get-a-crash","topic_id":7542,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"If you split topic and there're deleted messages amoung selected, you get a crash","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-17T14:03:43Z","excerpt":"I am not sure why max-width is none there. If I added it, it was because someone else told me it was a good idea to do so! \n\nHappy to try 100% and see how it works out for us.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"correctly-resize-big-images-in-preview","topic_id":4426,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Correctly resize big images in preview","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-17T14:01:50Z","excerpt":"The Promises spec (now A+) has gone through so many revisions and scrutiny I doubt they&#x27;d add the similar callbacks at this point to RSVP as they are aiming for standards compliance. \n\nWe could easily add our own equivalent to fail though, which would just be an alias for (null, func), so I think th&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"promises-are-awkward","topic_id":7545,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Promises are \"awkward\"","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-12T17:56:53Z","excerpt":"You should definitely be using rc.4. If it&#x27;s trying to find the old version that tells me there was an error with your precompiled templates or some other code left over after you did your update. \n\nYou might want to rm -rf tmp, precompile and try again. Renacming rc.4 to rc.3 is not going to help y&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"unable-to-send-digests","topic_id":7411,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":13,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Unable to send digests","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-12T14:33:56Z","excerpt":"I just checked out the very latest master and confirmed emails are working so it seems to be a problem on your end. Can you view a preview of the digest in the admin setion? (Go to Admin &gt; Emails &gt; Digest Preview?)","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"unable-to-send-digests","topic_id":7411,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Unable to send digests","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-12T14:11:56Z","excerpt":"Make sure you restart sidekiq after pulling too. I just confirmed our Emails are being sent correctly (I even got a Digest this morning!).","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"unable-to-send-digests","topic_id":7411,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":3,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Unable to send digests","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-11T15:34:47Z","excerpt":"<a href='/users/sam' class='mention'>@sam</a> just did a major refactoring of date stuff so it might be fixed. But I&#x27;ll cc him here just in case he is not aware of this one, thanks.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"create-time-of-new-topic-shows-undefined","topic_id":7376,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Create time of new topic shows \"undefined\"","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-10T17:51:14Z","excerpt":"I just investigated this. Recently there was a move to use the strong_parameters plugin for Rails for security reasons. A consequence of this is the posts#create API changed slightly and wordpress doesn&#x27;t seem to be using it. \n\nWe are going to have <a href='/users/sam' class='mention'>@sam</a> look into it as soon as he wakes up since he&#x27;s&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-and-wordpress-integration","topic_id":531,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":56,"reply_to_post_number":55,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse and Wordpress Integration","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-08T17:00:38Z","excerpt":"If it makes you feel better I missed it too when recently reviewing/changing that code.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"digest-mail-ignores-secure-groups","topic_id":7288,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":6,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Digest mail ignores secure groups","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-07T21:36:57Z","excerpt":"I use that widget constantly. I would be very upset if we got rid of it or changed it to related topics. I use it as a way to find the next topic that needs my attention when I&#x27;m done reading something.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"wouldnt-related-topics-be-better-than-suggested","topic_id":7264,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Wouldn't \"related topics\" be better than \"suggested\"?","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-07T21:31:55Z","excerpt":"This all sounds very reasonable to me. I should mention the search context is passed as an object to the search component, not as a hash. But composition sounds like a definite improvement. \n\nLooking forward to any PRs!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"search-class-design","topic_id":7269,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Search class design","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-07T18:44:33Z","excerpt":"Is this a potential date regression <a href='/users/sam' class='mention'>@sam</a>?","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"activity-table-in-suggested-topics-is-empty","topic_id":7260,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Activity table in \"suggested topics\" is empty","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-07T18:43:51Z","excerpt":"What about our plugins? Right now emoji is enabled and included via a gem. In the future we plan to extract more JS into libraries and gems are a great way of keeping them up to date.    \n\nWhat about Message bus? It seems that the gem is vendored but the javascript has to be included manually? Do yo&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"javascript-dependencies","topic_id":7220,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":3,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Javascript dependencies","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-07T17:17:39Z","excerpt":"There was a regression in one of our many refactoring commits that caused errors with topic titles to raise 500 errors instead of displaying to the user. I&#x27;ve just committed and deployed a fix. \n\nNow, as for why that topic won&#x27;t go through - by default our entropy settings for titles title_min_entro&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"topic-title-with-chinese-characters-is-not-supported","topic_id":7247,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Topic title with Chinese characters is not supported","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-07T14:34:45Z","excerpt":"We upgraded to Ember RC5 and then downgraded after we noticed a regression that we still have to fix. It&#x27;s likely something is still serving up data using the wrong ember or handlebars. \n\nIn development mode sometimes you have to rm -rf tmp to get rid of old cached versions when upgrading handlebars&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"cant-access-admin-since-last-merge","topic_id":7254,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Can't access admin since last merge","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-06T21:36:44Z","excerpt":"Firstly, I don&#x27;t think it makes sense to use jquery-rails since we aren&#x27;t using ujs, so we might want to ditch that if we can. \n\nHowever, I am a fan of including JS libraries as gems. This is the way ember-rails will be doing it in the future, so if we continue to use ember-rails we&#x27;ll have to accep&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"javascript-dependencies","topic_id":7220,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Javascript dependencies","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-06T01:09:56Z","excerpt":"Nope, full speed ahead!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"so-you-want-to-help-out-with-discourse","topic_id":3823,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":32,"reply_to_post_number":30,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"So, you want to help out with Discourse","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-04T17:05:13Z","excerpt":"I think we got it! \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/02b1f7841016cef05a49b64f73976eb19d55255b' class='track-link' target='_blank'>\n          [image] github.com\n        </a>\n      \n    \n  \n    <a href='https://github.com/eviltrout' target='_blank'>[eviltrout]</a>\n    <a href='https://github.com/eviltrout' target='_blank'>eviltrout</a>\n    FIX: Include preloaded data even if the request type isn&#x27;t explicitly text/html\n    Changed 1 files with 13 additions and 11 deletions.\n    \n      <a href='https://github.com/discourse/discourse/commit/02b1f7841016cef05a49b64f73976eb19d55255b' target='_blank'>04:56PM - 04 Jun 13</a>\n   &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-not-loading","topic_id":6966,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":18,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse not loading","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-04T14:12:29Z","excerpt":"I&#x27;m happy to nuke it if we can replace the date stuff. I believe that is the core thing we use. I&#x27;m not sure of the best path to audit our code to make sure it&#x27;s no longer used in weird ways though.  \n\nAs for iterators, I prefer the ember forEach to $.each because it&#x27;s more object oriented. I&#x27;d be m&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"getting-rid-of-sugar-js","topic_id":7146,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Getting rid of sugar.js","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-02T15:22:58Z","excerpt":"This would be great for simple view helpers where no controller is needed. Thanks for the tip! I&#x27;ll see if I can identify and refactor those.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-ember-refactorings","topic_id":7019,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":3,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse Ember Refactorings","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-05-31T19:25:25Z","excerpt":"Thanks for looking into it sam.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"glitch-with-unread","topic_id":7010,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Glitch with Unread","deleted":false,"hidden":false}]};
-Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout&filter=6,7,9"] = {"user_actions":[{"action_type":7,"created_at":"2013-07-15T09:33:53Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> I have seen this, post count goes to N+2 after you post a reply to a topic (happens to me regularly on BB)","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"incomplete-view-count-in-thread-after-posting","topic_id":8380,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Incomplete view count in thread after posting","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-15T07:30:16Z","excerpt":"I confirmed this on dev via a locally created and approved account. It is indeed a bug. The password reset email just redirects you to login, so it doesn&#x27;t work. \n\nThis one is somewhat urgent, <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you work on it tomorrow please?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"clicking-on-password-reset-link-redirects-to-login","topic_id":8351,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":2,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Clicking on password reset link redirects to /login","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-15T06:27:34Z","excerpt":"Hmm <a href='/users/eviltrout' class='mention'>@eviltrout</a> is our digest preview  not correctly stripping out restricted categories?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"private-forums-or-discussion-threads","topic_id":1764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":19,"reply_to_post_number":17,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Private forums or discussion threads","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-09T04:42:39Z","excerpt":"No need to archive as it is no longer a bug. We can pick this up later and discuss whether the functionality is as it should be, or not.. \n\nWhich reminds me, there&#x27;s no visible way for you, or anyone else, to see the audit trail of the edits on the category of the topic. Or the title for that matter&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"archiving-topics-creates-unread-notification-behavior-by-design","topic_id":8210,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":3,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Archiving topics creates unread notification - behavior by design?","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-09T04:38:37Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> just implemented clicking the logo to refresh the homepage. enjoy!","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"clicking-on-site-icon-name-in-top-left-does-not-refresh-reload","topic_id":5910,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Clicking on site icon/name in top left does not refresh/reload","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-09T02:06:18Z","excerpt":"<a href='/users/sam' class='mention'>@sam</a> Locale seems to be alright, I can get the turkish locale to run, it&#x27;s debian after all.  \n\n<a href='/users/eviltrout' class='mention'>@eviltrout</a> Thanks, I hadn&#x27;t thought there could be an error with postgres. I&#x27;ll check and let you know.","avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":14,"username":"uyandiren","name":"Uyan Diren","user_id":5939,"acting_username":"uyandiren","acting_name":"Uyan Diren","acting_user_id":5939,"title":"Turkish text cannot be posted","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-08T05:27:40Z","excerpt":"I believe this is fixed now? Can you confirm <a href='/users/eviltrout' class='mention'>@eviltrout</a> and archive this if so?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"moving-topics-into-new-topic-doesnt-refresh-participants-list-and-stats","topic_id":4322,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Moving topics into new topic doesn't refresh participants list and stats","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-08T05:27:01Z","excerpt":"This should be definitively fixed with <a href='/users/eviltrout' class='mention'>@eviltrout</a>&#x27;s last round of refactorings.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"jump-to-last-post-does-not-work-in-best-of-mode","topic_id":7626,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Jump to last post does not work in \"Best of\" mode","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-08T05:23:29Z","excerpt":"Let&#x27;s try on try: \n\n\n    \n      \n        <a href='http://try.discourse.org/t/funny-pictures-keep-em-clean-folks/62/17' class='track-link' target='_blank'>\n          try.discourse.org\n        </a>\n      \n    \n  \n    [image]<a href='http://try.discourse.org/t/funny-pictures-keep-em-clean-folks/62/17' target='_blank'>Funny pictures (Keep &#x27;em clean, folks!)</a>\n    \n      \n  \n  \n\n\nYep, that looks incorrect. 17 is by a different user and has actual text that should be quoted. <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you take a look next wee&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-07T22:33:25Z","excerpt":"That looks sane, I like the GitHub reference implementation. <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you add those headers to the notification emails next week?  \n\nI also think we should start removing the &quot;in reply to&quot; author from the email title as noted on HTG and elsewhere here -- so that emails can be collapsed by topi&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"replies-notifications-are-not-grouped-as-conversations-in-my-mua","topic_id":8133,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":8,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Replies notifications are not grouped as conversations in my MUA","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-07T19:27:53Z","excerpt":"I guess that it&#x27;s caused by some minor incompatibility with apache2. How would we trace this? Could <a href='/users/eviltrout' class='mention'>@eviltrout</a> please send me a private message so I can  send him the link for the discourse instance (I can&#x27;t send him a msg)?","avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"reply_to_post_number":11,"username":"uyandiren","name":"Uyan Diren","user_id":5939,"acting_username":"uyandiren","acting_name":"Uyan Diren","acting_user_id":5939,"title":"Turkish text cannot be posted","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-07T10:25:00Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> is there any progress on this? any comment or answer would be appreciated. thx in advance : ]","avatar_template":"https://www.gravatar.com/avatar/39458a23c9995b6508a818c78e177063.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/39458a23c9995b6508a818c78e177063.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":7,"username":"braininpain","name":"braininpain","user_id":5949,"acting_username":"braininpain","acting_name":"braininpain","acting_user_id":5949,"title":"Turkish text cannot be posted","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-05T20:16:03Z","excerpt":"Cool, thanks for the answers! \n\n<a href='/users/eviltrout' class='mention'>@eviltrout</a> Sweet article you&#x27;ve got there [smiley] \n\n<a href='/users/fierce' class='mention'>@fierce</a> Yeah, used Chrome&#x27;s Inspector Tool and disabled JS to see the effect.","avatar_template":"https://www.gravatar.com/avatar/e0d279f7079bc28658a68c9aac784fe9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/e0d279f7079bc28658a68c9aac784fe9.png?s={size}&r=pg&d=identicon","slug":"how-does-just-in-time-loading-work","topic_id":8127,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"TheMarkus","name":"Markus Hoff","user_id":5962,"acting_username":"TheMarkus","acting_name":"Markus Hoff","acting_user_id":5962,"title":"How does just-in-time loading work?","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-05T15:03:26Z","excerpt":"Looks fixed to me. Thanks!","avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","slug":"title-shown-in-dock-on-topic-load","topic_id":8082,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"BhaelOchon","name":"Bill Ayakatubby","user_id":471,"acting_username":"BhaelOchon","acting_name":"Bill Ayakatubby","acting_user_id":471,"title":"Title shown in dock on topic load","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-05T11:00:29Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a>  Well, I followed the ubuntu guide, and we&#x27;re using apache2 server. (The system is debian wheezy). I made some env changes: \n\nexport LANG=&quot;en_US.UTF-8&quot;\nexport LC_ALL=&quot;en_US.UTF-8&quot;\n\n\nand  \nI made also this change  \n\n$ cat config/environment.rb \n# Load the rails application\nrequire File.exp&hellip;","avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":null,"username":"uyandiren","name":"Uyan Diren","user_id":5939,"acting_username":"uyandiren","acting_name":"Uyan Diren","acting_user_id":5939,"title":"Turkish text cannot be posted","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-05T05:50:59Z","excerpt":"Yup, that was it, thanks , now to get on the new reply by email","avatar_template":"https://www.gravatar.com/avatar/de9a910f6c145938e047f77a524df50b.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/de9a910f6c145938e047f77a524df50b.png?s={size}&r=pg&d=identicon","slug":"trying-to-change-the-email-delivery-method","topic_id":8055,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"nick12377","name":"nickj","user_id":5293,"acting_username":"nick12377","acting_name":"nickj","acting_user_id":5293,"title":"Trying to Change the Email Delivery Method","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-05T00:53:51Z","excerpt":"The first part of the video is showing off how cool it is that you don&#x27;t need JS to see the site. I don&#x27;t want to lose that cool.  \n\nAnyway, I will defer to <a href='/users/codinghorror' class='mention'>@codinghorror</a> here on the setting of the default, I strongly want noscript support default on.","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":13,"reply_to_post_number":12,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Noscript tag and some search engines","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-05T00:14:32Z","excerpt":"Personally, I still like having the noscript solution around and enabled by default, I am open to adding a switch to disable it if people want to save the 5-8% page weight (tested this page 10547 vs 11701 gzipped)  \n\nThe noscript solution can work for crawlers that have no idea about that meta t&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Noscript tag and some search engines","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-04T21:51:00Z","excerpt":"This is another regression based on the new post stream stuff <a href='/users/eviltrout' class='mention'>@eviltrout</a> is workng on, sorry about that.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"posting-a-message-doesnt-clear-draft-box","topic_id":8104,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Posting a message doesn't clear draft box","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-07-04T20:59:10Z","excerpt":"This solution is not cloacking - content always identical to crawlers and users. But, when option is enabled, it add meta-tag into html head section: \n\n&lt;meta name=&quot;fragment&quot; content=&quot;!&quot;&gt;  \n\n\nIf crawler knows what this meta-tag mean, it use this information and get static page adding ?_escaped_fr&hellip;","avatar_template":"https://www.gravatar.com/avatar/8fdf603233c6a4328b8c943e2fabcf62.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/8fdf603233c6a4328b8c943e2fabcf62.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"abbat","name":"Anton Batenev","user_id":5428,"acting_username":"abbat","acting_name":"Anton Batenev","acting_user_id":5428,"title":"Noscript tag and some search engines","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-04T03:40:46Z","excerpt":"Yes, I saw this too, <a href='/users/eviltrout' class='mention'>@eviltrout</a> looks like a regression, probably related to post streamer work.","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"title-shown-in-dock-on-topic-load","topic_id":8082,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Title shown in dock on topic load","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-02T22:34:52Z","excerpt":"This is almost certainly related to the recent massive refactor <a href='/users/eviltrout' class='mention'>@eviltrout</a> did on post stream insertion.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"last-read-indicator-doesnt-always-update-when-scrolling-to-bottom","topic_id":8047,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Last read indicator doesn't always update when scrolling to bottom","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-01T22:44:43Z","excerpt":"Yep we need to change this <a href='/users/eviltrout' class='mention'>@eviltrout</a> so that the text is accurate. \n\nI suggest sticking with the &quot;merge&quot; and &quot;split&quot; terminology so: \n\n\n  I split {count} posts into a new topic: {topicname}  \n\n\nand \n\n\n  I merged {count} posts into an existing topic: {topicname}","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"incorrect-moved-a-post-mod-message","topic_id":8010,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Incorrect \"moved a post\" mod message","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-01T08:33:06Z","excerpt":"This might also be another thing that is fixed by <a href='/users/eviltrout' class='mention'>@eviltrout</a>&#x27;s work on refactoring post loading in the topic this week. Hopefully he can update here after that happens!","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","topic_id":5971,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Following links to posts within the same topic jumps to the top","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-01T05:14:47Z","excerpt":"I believe <a href='/users/eviltrout' class='mention'>@eviltrout</a> is about to deploy major fixes in that area this week, and he will update here after that happens.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"loading-never-stops","topic_id":7554,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":14,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Loading (never stops)","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-30T16:01:38Z","excerpt":"Most of your concerns about infinite scrolling come from badly implemented ones. \n\nThe infinite scrolling at Discourse is not one of them. \n\n  \n\nThere&#x27;s a progress bar on the bottom/right of the page that will tell you how long a topic is and where you are: \n\n[image] \n\n  \n\nInfinite scrolling at Disc&hellip;","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"forums-are-dead-long-live-forums","topic_id":7933,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":16,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Forums Are Dead, Long Live Forums","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-30T10:06:17Z","excerpt":"I agree with both <a href='/users/codinghorror' class='mention'>@codinghorror</a> &amp; <a href='/users/sam' class='mention'>@sam</a>, this should be off by default.  \n\nFlash Player has a lot of <a href='http://www.cvedetails.com/vulnerability-list/vendor_id-53/product_id-6761/Adobe-Flash-Player.html' rel='nofollow'>vulnerabilities</a>.","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"will-there-be-flash-videos-in-the-future","topic_id":7787,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"reply_to_post_number":5,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Will there be flash videos in the future?","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-30T09:27:49Z","excerpt":"I agree with <a href='/users/codinghorror' class='mention'>@codinghorror</a> , this should be default off. Fine to have it as an option.","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"will-there-be-flash-videos-in-the-future","topic_id":7787,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":5,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Will there be flash videos in the future?","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-30T09:17:42Z","excerpt":"I would definitely disable this by default. So many flash exploits. If people want it, they have to flip a boolean setting from off to on somewhere.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"will-there-be-flash-videos-in-the-future","topic_id":7787,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":5,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Will there be flash videos in the future?","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-29T21:01:53Z","excerpt":"Thanks for the help, <a href='/users/trident' class='mention'>@trident</a> [smile]  I ended up popping into the postgres database, navigating to tables &gt; site_customizations &gt; enabled and manually toggling the value to false. This let me access the site again with the default stylesheet so I can get back into the editor and fix my typo. \n\n<a href='/users/codinghorror' class='mention'>@cod&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/eff1b72d56a97459a27161ccf7f20c89.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/eff1b72d56a97459a27161ccf7f20c89.png?s={size}&r=pg&d=identicon","slug":"customizing-my-css-broke-my-forum-with-no-easy-way-to-fix","topic_id":7203,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":null,"username":"Lee_Ars","name":"Lee_Ars","user_id":4457,"acting_username":"Lee_Ars","acting_name":"Lee_Ars","acting_user_id":4457,"title":"Customizing my CSS broke my forum with no easy way to fix","deleted":false,"hidden":false},{"action_type":9,"created_at":"2013-06-28T18:39:55Z","excerpt":"Any chance of an option to have the key for the reply in the Email subject or body instead of in the email address itself?  Would help for those of use with email servers that don&#x27;t support it directly.  (ie Exchange 2010) \n\nthanks, Brian \n\nContinuing the discussion from <a href='http://meta.discourse.org/t/new-reply-via-email-support/7764/11'>New: Reply via Email Support&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/5ddf2459e8edd6cf52dfff6cb41ca70d.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/5ddf2459e8edd6cf52dfff6cb41ca70d.png?s={size}&r=pg&d=identicon","slug":"reply-to-email-key-in-subject-instead-of-email-address","topic_id":7916,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"thebrianbarlow","name":"Brian Barlow","user_id":402,"acting_username":"thebrianbarlow","acting_name":"Brian Barlow","acting_user_id":402,"title":"Reply to email - key in subject instead of email address?","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-27T21:10:26Z","excerpt":"Sorry, I don&#x27;t fully understand what we are supposed to put in the field. \n\nWe setup a pop account on our internal exchange server to handle this  talk@companyname.com  \nHow should I setup this reply?  \nthanks!  \nBrian","avatar_template":"https://www.gravatar.com/avatar/5ddf2459e8edd6cf52dfff6cb41ca70d.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/5ddf2459e8edd6cf52dfff6cb41ca70d.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":1,"username":"thebrianbarlow","name":"Brian Barlow","user_id":402,"acting_username":"thebrianbarlow","acting_name":"Brian Barlow","acting_user_id":402,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-25T16:03:51Z","excerpt":"So... another big step towards a &#x27;mailing list&#x27; interaction model for Discourse categories. Cool!","avatar_template":"https://www.gravatar.com/avatar/26bf5a02583eaf63d1f8063bb3a6bc00.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/26bf5a02583eaf63d1f8063bb3a6bc00.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"kpfleming","name":"Kevin P. Fleming","user_id":2625,"acting_username":"kpfleming","acting_name":"Kevin P. Fleming","acting_user_id":2625,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-23T08:47:52Z","excerpt":"Good point, we certainly need some kind of metadata on the topic that says &quot;this is a category definition&quot; as they are topics, but special topics. <a href='/users/eviltrout' class='mention'>@eviltrout</a> is this set in some way that&#x27;s queryable beyond the title of the topic?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":7,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-21T22:59:52Z","excerpt":"Looks good. I set it to 20 for try, but 50 seems like a reasonable default. \n\nThe only edge condition is if someone sets up 25 categories, that&#x27;s 25 &quot;category definition&quot; topics that we really don&#x27;t want to match for suggested topics, do we?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-21T13:43:30Z","excerpt":"I don&#x27;t think it&#x27;s duplication so much as maybe some mis-organization. \n\nUser#suggest_name just tries to suggest a possible username for you based on your email address. It removes @example.com, replaces periods with spaces, capitalizes the first letter, and returns the result. \n\nUserNameSuggester.s&hellip;","avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","slug":"two-ways-for-discourse-to-suggest-a-username","topic_id":7682,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"BhaelOchon","name":"Bill Ayakatubby","user_id":471,"acting_username":"BhaelOchon","acting_name":"Bill Ayakatubby","acting_user_id":471,"title":"Two ways for discourse to suggest a username","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-21T08:26:59Z","excerpt":"<a href='/users/adkron' class='mention'>@adkron</a> opened up this issue on GitHub \n\n<a href='https://github.com/discourse/discourse/issues/1061' class='onebox' rel='nofollow'>https://github.com/discourse/discourse/issues/1061</a> \n\nIts actually a 2 issues in one, I would like to address the site setting extension refactoring bits. \n\nSite Settings have grown quite a lot and the code is very complex to test now due to tight dependencies&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"site-settings-refactoring","topic_id":7687,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Site Settings Refactoring","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-20T08:05:59Z","excerpt":"I think can_invite_to should be:  \n\n def can_invite_to?(object)\n    authenticated? &amp;&amp;\n    can_see?(object) &amp;&amp;\n    (\n      (!SiteSetting.must_approve_users? &amp;&amp; @user.has_trust_level?(:regular)) ||\n      is_staff?\n    )\n  end\n\n\n<a href='/users/eviltrout' class='mention'>@eviltrout</a> <a href='/users/chrishunt' class='mention'>@chrishunt</a> ?   I changed it on local and it broke a test, s&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"how-do-i-send-people-invites","topic_id":1421,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"How do I send people invites?","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-19T11:12:50Z","excerpt":"yeah, just noticed this cc <a href='/users/eviltrout' class='mention'>@eviltrout</a>","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"duplicate-message-are-shown-in-profile","topic_id":7628,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Duplicate message are shown in profile","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-19T11:08:33Z","excerpt":"Andrew  \n\nI am very humbled to have a response from you here, I do appreciate what you created with sugar, when <a href='/users/eviltrout' class='mention'>@eviltrout</a> picked it for Discourse it was not a decision he took on a whim.  \n\nI am super excited you are taking a fresh look at performance, that is fantastic news.  \n\nAfter quite a while&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"getting-rid-of-sugar-js","topic_id":7146,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":7,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Getting rid of sugar.js","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-19T03:05:22Z","excerpt":"Good idea we should probably disable topic compose suggestions <a href='/users/eviltrout' class='mention'>@eviltrout</a> until there are say 50 topics in the forum minimum? We need this to be configurable for try.discourse.org though.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-18T20:09:17Z","excerpt":"Thanks a lot. It&#x27;s working now.","avatar_template":"https://www.gravatar.com/avatar/fead44ec873eeb37072cd15b41650293.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/fead44ec873eeb37072cd15b41650293.png?s={size}&r=pg&d=identicon","slug":"smtp-errors-on-latest","topic_id":7602,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"kewubenduben","name":"Ker Ruben Ramos","user_id":4359,"acting_username":"kewubenduben","acting_name":"Ker Ruben Ramos","acting_user_id":4359,"title":"SMTP Errors on latest","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-17T10:45:26Z","excerpt":"Awesome, <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you have a look ?","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"if-you-split-topic-and-therere-deleted-messages-amoung-selected-you-get-a-crash","topic_id":7542,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"If you split topic and there're deleted messages amoung selected, you get a crash","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-17T06:15:39Z","excerpt":"I was going to fix this but saw this comment in the JS  \n\n// Otherwise we get the wrong size in JS\nmax-width: none;  \n\n\n<a href='/users/eviltrout' class='mention'>@eviltrout</a> <a href='/users/zogstrip' class='mention'>@zogstrip</a> any idea why max-width can not be set to 100% there?","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"correctly-resize-big-images-in-preview","topic_id":4426,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Correctly resize big images in preview","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-17T06:01:48Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way. \n\nFixed a while back by <a href='/users/eviltrout' class='mention'>@eviltrout</a>","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"hitting-escape-collapses-new-topic-reply-window-despite-pop-up-dialog","topic_id":4419,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Hitting escape collapses new topic/reply window despite pop-up dialog","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-17T05:24:41Z","excerpt":"No repro on local, <a href='/users/eviltrout' class='mention'>@eviltrout</a> is there any chance this relates to localization?","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"if-you-split-topic-and-therere-deleted-messages-amoung-selected-you-get-a-crash","topic_id":7542,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":2,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"If you split topic and there're deleted messages amoung selected, you get a crash","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-17T03:53:35Z","excerpt":"I just implemented proper &quot;save&quot; functionality for Groups and wanted to report back some awkwardness around our API that I think should be addressed, the code in question is:  \n\n save: function(){\n    var group = this;\n    group.set(&#x27;disableSave&#x27;, true);\n\n    return Discourse.ajax(&quot;/admin/groups/&quot; +&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"promises-are-awkward","topic_id":7545,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Promises are \"awkward\"","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-15T05:51:49Z","excerpt":"Been thinking about how to help you most, if you put through a pull request to include this in core (default off, with site setting - like you did) we can include it in core.  \n\nThen <a href='/users/eviltrout' class='mention'>@eviltrout</a> or I can look at extracting it out. I really don&#x27;t want to hold off progress just because our plugin syste&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"file-uploads-with-filepicker-io","topic_id":7432,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":6,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"File uploads with Filepicker.io","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-13T14:36:57Z","excerpt":"Yes, this also affects best of mode in the same way. <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you make sure this is on your list?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"clicking-on-the-topic-progress-resets-view-only-posts-by-user-mode","topic_id":7440,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Clicking on the topic progress resets view only posts by user mode","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-12T19:16:09Z","excerpt":"I did delete the entire directory and cloned, bundle installed, and precompiled it again :(","avatar_template":"https://www.gravatar.com/avatar/4dfc8f56817006ef21327d5ff19ce04f.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4dfc8f56817006ef21327d5ff19ce04f.png?s={size}&r=pg&d=identicon","slug":"unable-to-send-digests","topic_id":7411,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":14,"reply_to_post_number":13,"username":"juanformoso","name":"Juan Manuel Formoso","user_id":1681,"acting_username":"juanformoso","acting_name":"Juan Manuel Formoso","acting_user_id":1681,"title":"Unable to send digests","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-12T16:32:08Z","excerpt":"I see, so the dyamic duplicate topic suggestions when you are composing a topic leak the secure topics. Sorry about that, will fix -- <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you have a look?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"auto-suggest-topics-shows-private-topics","topic_id":7418,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Auto-suggest topics shows Private topics","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-12T14:46:19Z","excerpt":"I found this \n\nStarted GET &quot;/admin/email/preview-digest.json?last_seen_at=2013-06-05&quot; for [my ip] at 2013-06-12 10:44:09 -0400  \nProcessing by Admin::EmailController#preview_digest as JSON  \n  Parameters: {&quot;last_seen_at&quot;=&gt;&quot;2013-06-05&quot;}\n  Rendered user_notifications/digest.text.erb (129.2ms)\nComplete&hellip;","avatar_template":"https://www.gravatar.com/avatar/4dfc8f56817006ef21327d5ff19ce04f.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4dfc8f56817006ef21327d5ff19ce04f.png?s={size}&r=pg&d=identicon","slug":"unable-to-send-digests","topic_id":7411,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":9,"username":"juanformoso","name":"Juan Manuel Formoso","user_id":1681,"acting_username":"juanformoso","acting_name":"Juan Manuel Formoso","acting_user_id":1681,"title":"Unable to send digests","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-12T14:39:54Z","excerpt":"No, that doesn&#x27;t work either. I set a date, press Refresh, and nothing happens. \n\nUsing the developer tools tells me there was an error (500) here:  \n/admin/email/preview-digest.json?last_seen_at=2013-06-05 \n\nI can&#x27;t find anything relevant in the logs, I&#x27;m still looking though","avatar_template":"https://www.gravatar.com/avatar/4dfc8f56817006ef21327d5ff19ce04f.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4dfc8f56817006ef21327d5ff19ce04f.png?s={size}&r=pg&d=identicon","slug":"unable-to-send-digests","topic_id":7411,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":9,"username":"juanformoso","name":"Juan Manuel Formoso","user_id":1681,"acting_username":"juanformoso","acting_name":"Juan Manuel Formoso","acting_user_id":1681,"title":"Unable to send digests","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-12T14:14:58Z","excerpt":"Yes, I always do a bundle install, precompile, and migrate with everything shut down. \n\nI&#x27;m cloning from scratch right now","avatar_template":"https://www.gravatar.com/avatar/4dfc8f56817006ef21327d5ff19ce04f.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4dfc8f56817006ef21327d5ff19ce04f.png?s={size}&r=pg&d=identicon","slug":"unable-to-send-digests","topic_id":7411,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":5,"username":"juanformoso","name":"Juan Manuel Formoso","user_id":1681,"acting_username":"juanformoso","acting_name":"Juan Manuel Formoso","acting_user_id":1681,"title":"Unable to send digests","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-12T13:40:44Z","excerpt":"We are on latest and I am not seeing it, very odd, are you 100% sure you are on latest did you do a clean git pull.  \n\ncc <a href='/users/eviltrout' class='mention'>@eviltrout</a>","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"unable-to-send-digests","topic_id":7411,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Unable to send digests","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-09T21:52:21Z","excerpt":"Going to leave this for <a href='/users/eviltrout' class='mention'>@eviltrout</a> he is upgrading Ember and this stuff is possibly related.","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"hotlinking-a-post-in-firefox-is-broken","topic_id":7286,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Hotlinking a post in FireFox is broken","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-08T12:57:22Z","excerpt":"I guess that takes the bragging about good security to a whole new level. \n\n<a href='/users/eviltrout' class='mention'>@eviltrout</a>","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"digest-mail-ignores-secure-groups","topic_id":7288,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Digest mail ignores secure groups","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-07T20:27:40Z","excerpt":"<a href='/users/dismory' class='mention'>@dismory</a>, I&#x27;ve submitted a <a href='https://github.com/discourse/discourse/pull/984' rel='nofollow'>pull request</a> with a change that will help Discourse recognize that there is more information in non-ASCII glyphs. \n\nI&#x27;m hoping this will help make the defaults less frustrating for our non-english users! [smiley]","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","slug":"topic-title-with-chinese-characters-is-not-supported","topic_id":7247,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"supermathie","name":"Michael Brown","user_id":3,"acting_username":"supermathie","acting_name":"Michael Brown","acting_user_id":3,"title":"Topic title with Chinese characters is not supported","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-07T15:07:53Z","excerpt":"Well, pulling the lastest commits this morning seem to have fixed my issue from last night.  Thanks for the help!","avatar_template":"https://www.gravatar.com/avatar/955660ab773bdc0b6562bfa6567c37dd.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/955660ab773bdc0b6562bfa6567c37dd.png?s={size}&r=pg&d=identicon","slug":"cant-access-admin-since-last-merge","topic_id":7254,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"davidpaquet","name":"DavidPaquet","user_id":5381,"acting_username":"davidpaquet","acting_name":"DavidPaquet","acting_user_id":5381,"title":"Can't access admin since last merge","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-07T01:56:53Z","excerpt":"I follow, this is a very complicated issue. Take the post #create action, I think it should be: \n\ndef create  \n    post_creator = PostCreator.new(current_user, creation_parameters)\n   # more stuff\nend\n\nprotected\n\ndef creation_parameters  \n   params[:post].require(required_post_params)\n   params\n    &hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"ensuring-scalar-values-for-parameters-with-strong-parameters","topic_id":7235,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Ensuring scalar values for parameters with strong_parameters","deleted":false,"hidden":false}]};
-Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout&filter=1"] = {"user_actions":[{"action_type":1,"created_at":"2013-07-12T20:52:21Z","excerpt":"And a <a href='http://blog.discourse.org/2013/07/improved-image-handling/'>blog post</a>.","avatar_template":"https://www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"thumbnails-and-original-images-in-posts","topic_id":8321,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"erlend_sh","name":"Erlend Sogge Heggen","user_id":5351,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Thumbnails and original images in posts","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-25T16:01:27Z","excerpt":"Continuing the discussion from <a href='http://meta.discourse.org/t/internationalization-localization/280/90'>Internationalization / localization</a>, which has become a massive, unfocused topic: \n\nLet&#x27;s talk about translation tools and the process for getting translations done. If we were going to adopt a third-party tool to get translations done, which should be used? From the I&hellip;","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"translation-tools-transifex-localeapp","topic_id":7763,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Translation Tools: Transifex? Localeapp?","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-25T15:45:31Z","excerpt":"I use 1Password to log in to Discourse sites. You may need to click the + sign to create a new record, but it Works For Me™. \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"add-method-attribute-to-logon-form","topic_id":7741,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":null,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Add method attribute to logon form?","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-25T03:03:44Z","excerpt":"I made a bunch of progress today see:  \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/0b94c3c4561e7a6aae11658b3a799407d72ad2af' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/SamSaffron' target='_blank'>\n        [SamSaffron]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/0b94c3c4561e7a6aae11658b3a799407d72ad2af' target='_blank'>fix all sorts of issues with random spec order\nSiteSetting no longer persisted across tests</a>\n    \n\n    \n      by <a href='https://github.com/SamSaffron' target='_blank'>SamSaffron</a>\n      on&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"site-settings-refactoring","topic_id":7687,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Site Settings Refactoring","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-19T13:31:51Z","excerpt":"Andrew  \n\nI am very humbled to have a response from you here, I do appreciate what you created with sugar, when <a href='/users/eviltrout' class='mention'>@eviltrout</a> picked it for Discourse it was not a decision he took on a whim.  \n\nI am super excited you are taking a fresh look at performance, that is fantastic news.  \n\nAfter quite a while&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"getting-rid-of-sugar-js","topic_id":7146,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":7,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Getting rid of sugar.js","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-19T13:31:47Z","excerpt":"Hello, creator of Sugar.js here. \n\nI realize you guys have come to a decision and sad to see you go but that&#x27;s up to you... just want to add my 2 cents: \n\n1: \n\nYou&#x27;re totally right about performance and it&#x27;s something that Sugar has/is/will be devoting more attention to. I have just done a major ref&hellip;","avatar_template":"https://www.gravatar.com/avatar/39255341a51574e9651b1094537e7683.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"getting-rid-of-sugar-js","topic_id":7146,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":null,"username":"l_andrew_l","name":"l_andrew_l","user_id":5610,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Getting rid of sugar.js","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-12T14:09:25Z","excerpt":"Sugar.js is gone. \n\nThis makes me happy. I just don&#x27;t buy that there is this magic need to amend every protoype in the system. It is fragile, risky and generally considered a bad practice, I don&#x27;t buy that you need to wack 100 extra method on Array, String and so on. Also, Sugar unacceptably slow fo&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"getting-rid-of-sugar-js","topic_id":7146,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Getting rid of sugar.js","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-10T20:43:34Z","excerpt":"It was a bug. I fixed it today:","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"unable-to-delete-categories","topic_id":7357,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Unable to delete categories!","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-09T16:06:49Z","excerpt":"Your install is a mess, looks like a lot of the requests aren&#x27;t even making it to Discourse: \n\nWhen I try to save preferences, I see this in the chrome console: \n\n\n  PUT <a href='http://convinceyou.com/users/supermathie' rel='nofollow'>http://convinceyou.com/users/supermathie</a> 404 (Not Found) \n\n\nWhen I try to log out: \n\n\n  DELETE <a href='http://convinceyou.com/session/supermathie' rel='nofollow'>http://convinceyou.com/session/supe&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"troubleshooting-failed-discourse-install","topic_id":7292,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"supermathie","name":"Michael Brown","user_id":3,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Troubleshooting failed Discourse install","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-07T18:29:30Z","excerpt":"It&#x27;s actually very tidy if we change the PostCreator constructor and think about pulling the whitelist logic into its own class. The request can stay the same and we get to re-use the filter in other controllers. Something like: \n\n# app/controllers/posts_controller.rb\nclass PostsControllers  \n  &hellip;","avatar_template":"https://www.gravatar.com/avatar/4fafaca2401263fd03b62ff37a157a35.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"ensuring-scalar-values-for-parameters-with-strong-parameters","topic_id":7235,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"reply_to_post_number":10,"username":"chrishunt","name":"Chris Hunt","user_id":247,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Ensuring scalar values for parameters with strong_parameters","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-06T21:28:41Z","excerpt":"So, you want to use S3 to handle image uploads? Here&#x27;s the definitive guide: \n\nS3 registration\n\nHead over to <a href='http://aws.amazon.com/s3/' rel='nofollow'>http://aws.amazon.com/s3/</a> and click on [image]. \n\nDuring the create account process, make sure you provide payment information, otherwise you won&#x27;t be able to use S3. There&#x27;s no registration &hellip;","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-to-set-up-image-uploads-to-s3","topic_id":7229,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How to set up image uploads to S3?","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-06T15:07:28Z","excerpt":"The user model is one of our most biggest models, I totally support simplifying and decomposing.  \n\nUsername suggestion stuff can be extracted out. We can introduce a UserCreator like we have a PostCreator and TopicCreator, update_last_seen! maybe can be moved to another spot.  \n\nPR totally welcome. &hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"little-refactor-over-user-model-to-avoid-global-complexity","topic_id":7219,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Little refactor over User model to avoid global complexity","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-06T05:47:36Z","excerpt":"Seems good!  \n\nOf course, I should have checked other big projects, brains are very silly things. My thought was &quot;oh, I don&#x27;t know if this is true, I&#x27;ll look at Discourse!&quot; And rather than keep looking, I just stopped there.","avatar_template":"https://www.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-the-gpl-and-per-file-notice","topic_id":7208,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"steveklabnik","name":"steveklabnik","user_id":5413,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse, the GPL, and per-file notice","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-02T15:23:14Z","excerpt":"I got Ember.Control from wycats :)","avatar_template":"https://www.gravatar.com/avatar/749001c9fe6927c4b069a45c2a3d68f7.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-ember-refactorings","topic_id":7019,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"ryanflorence","name":"ryanflorence","user_id":2702,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse Ember Refactorings","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-06-02T15:22:11Z","excerpt":"This is excellent <a href='/users/eviltrout' class='mention'>@eviltrout</a>!   \n\nJust one remark, regarding this issue:    \n\nWhen a view is enough, I really like what <a href='/users/ryanflorence' class='mention'>@ryanflorence</a> is doing in his screencasts with his Control view: \n\nEmber.Control = Ember.View.extend({  \n  init: function() {\n    this._super();\n    this.set(&#x27;context&#x27;, this);\n  }\n&hellip;","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-ember-refactorings","topic_id":7019,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse Ember Refactorings","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-05-31T16:58:10Z","excerpt":"For the feature I was working on yesterday, <a href='/users/codinghorror' class='mention'>@codinghorror</a> wanted a rather complex sentence.  \n\n&quot;There is 1 unread and 9 new topics remaining, or browse other topics in [category]&quot; \n\nThis seemingly simple sentence was a royal nightmare to localize with our existing localization system. Think through &hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"message-format-support-for-localization","topic_id":7035,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Message Format support for localization","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-05-31T16:58:07Z","excerpt":"I know this isn&#x27;t really the point of your post, but I don&#x27;t think that&#x27;s correct. At least, it seems super-awkward to this American. Is it possible to rewrite the sentence entirely? Maybe something like this: \n\n\n  You have 1 unread topic and 9 new topics left, or browse other topics in [categor&hellip;","avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"message-format-support-for-localization","topic_id":7035,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"BhaelOchon","name":"Bill Ayakatubby","user_id":471,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Message Format support for localization","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-05-28T14:45:39Z","excerpt":"I believe you should use the uncategorized_name site setting for that.","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-to-localize-the-uncategorized-category-name","topic_id":6947,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How to localize the “uncategorized” category name","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-05-24T14:09:01Z","excerpt":"I&#x27;m digging into the Topic class along the same lines. I love cleaning, simplifying, and good OO design.","avatar_template":"https://www.gravatar.com/avatar/985ff04dc441ad87b0cefcd31823575d.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"so-you-want-to-help-out-with-discourse","topic_id":3823,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":29,"reply_to_post_number":null,"username":"mattvanhorn","name":"Matt Van Horn","user_id":5103,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"So, you want to help out with Discourse","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-05-17T03:39:29Z","excerpt":"I got this question on twitter and wanted to touch on it here. \n\n\n    \n      \n        <a href='https://twitter.com/nycplayer/status/335114964836679681' class='track-link' target='_blank'>\n          [image] twitter.com\n        </a>\n      \n    \n  \n    [image]@nycplayer\n\n    @samsaffron Want to start helping w/ Discourse, is it OK w/ you to make PRs for minor stuff like changing !foo.present? to foo.blank&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"where-does-discourse-stand-on-minor-refactoring-prs","topic_id":6677,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Where does Discourse stand on minor refactoring PRs","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-04-10T01:35:32Z","excerpt":"I have seen some twittering by <a href='/users/robconery' class='mention'>@robconery</a> that I would like to respond to here as opposed to on twitter. \n\n\n    \n      \n        <a href='https://twitter.com/robconery/status/321772134366056449' class='track-link' target='_blank'>\n          [image] twitter.com\n        </a>\n      \n    \n\n  \n    [image]\n      <a href='https://twitter.com/robconery'>\n        @robconery\n      </a>\n    \n\n    I like the Discourse  project a lot, but using it as a starti&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-as-your-first-rails-app","topic_id":5751,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse as Your First Rails App","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-04-08T23:58:19Z","excerpt":"Yeah. I&#x27;m hoping that we can minimize the tech support questions though - I&#x27;d rather have interesting discussion than boring tech support.","avatar_template":"https://www.gravatar.com/avatar/b0b1ce3a4e0a77abd157ec0309b72922.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"mixing-discussion-with-q-a","topic_id":5684,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"geek","name":"Lowell Heddings","user_id":8,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"mixing discussion with Q&A","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-04-08T23:56:01Z","excerpt":"Hi, \n\nWe have just released a new version 0.8.5 of Discourse with the latest updates and fixes. It is available from: \n\n<a href='http://bitnami.com/stack/discourse' class='onebox' rel='nofollow'>http://bitnami.com/stack/discourse</a> \n\nIt also ships Git now so you can maintain up-to-date the code from the repository. \n\nWe have also written a quick guide for syncing Discourse w&hellip;","avatar_template":"https://www.gravatar.com/avatar/a9355c49149e2788c3373b26289dbca0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-as-part-of-bitnami","topic_id":3905,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":31,"reply_to_post_number":null,"username":"wojciechka","name":"wojciechka","user_id":4369,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse as part of BitNami","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-04-03T22:54:52Z","excerpt":"It’s been almost exactly two months since <a href='http://www.codinghorror.com/blog/2013/02/civilized-discourse-construction-kit.html' rel='nofollow'>we launched Discourse</a>, and I’m pleased to announce that yesterday we launched the first of our three partners: \n\nThat’s right, <a href='http://www.howtogeek.com/142551/building-the-how-to-geek-community-the-discourse-project/' rel='nofollow'>How-To Geek</a>! \n\nThis topic is for comments on the original blog entry, at <a href='http://blog.discourse.org/2013/04/our-first-partner-how-to-geek/'>http://blog.discourse.org/2013/04/our-first-partner-how-to&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"our-first-partner-how-to-geek","topic_id":5575,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Our First Partner: How-To Geek","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-04-01T19:12:09Z","excerpt":"Yeah the tutorial purposefully glosses over the rails server side stuff, but links to the controller on github- \n\n \n\n    <a href='https://github.com/discourse/discourse/blob/master/app/controllers/admin/reports_controller.rb' class='source' target='_blank'>\n      [image] github.com\n    </a>\n    \n    <a href='https://github.com/discourse/discourse/blob/master/app/controllers/admin/reports_controller.rb' target='_blank'>https://github.com/discourse/discourse/blob/master/app/controllers/admin/reports_controller.rb</a>\n    require_dependency &#x27;report&#x27;\n\nclass Admi&hellip;","avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"issues-with-adding-routes","topic_id":5422,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":6,"username":"SBauch","name":"Sam Bauch","user_id":2876,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Issues with adding routes","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-04-01T15:32:35Z","excerpt":"This <a href='https://github.com/discourse/discourse/pull/597' rel='nofollow'>pull request</a> fixes it [wink]","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"storing-images-on-s3","topic_id":3370,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":9,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Storing images on S3","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-24T18:12:06Z","excerpt":"<a href='https://github.com/sdsykes/slim_scrooge' rel='nofollow'>Slim Scrooge</a> monitors your queries and modifies the select list to only include required columns. May be either of use in itself or for ideas on reducing select * overhead.","avatar_template":"https://www.gravatar.com/avatar/f0254f5e74f0733c9538d6095afac235.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"tuning-ruby-and-rails-for-discourse","topic_id":4126,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"reply_to_post_number":10,"username":"all4miller","name":"all4miller","user_id":4052,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Tuning Ruby and Rails for Discourse","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-22T13:59:27Z","excerpt":"Nice catch! This <a href='https://github.com/discourse/discourse/pull/524' rel='nofollow'>pull request</a> fixes it [wink]","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"opengraph-tags-not-fully-sanitized","topic_id":4992,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"OpenGraph tags not fully sanitized","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-22T13:59:25Z","excerpt":"The og:description meta tag is currently getting corrupted with DOCTYPE information which is not being stripped out cleanly. \n\nlib/summarize.rb is currently using the ActionView::Helpers summarize method to strip HTML tags, but this fails to deal with DOCTYPE entries. \n\nSince the Sanitize Gem is alr&hellip;","avatar_template":"https://www.gravatar.com/avatar/44d0a0aa228f242b5ae82aaed237312b.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"opengraph-tags-not-fully-sanitized","topic_id":4992,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"Ethos","name":"Terry Cox","user_id":3634,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"OpenGraph tags not fully sanitized","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-21T20:50:22Z","excerpt":"I have started working on a Danish translation. If you know the language, feel free to help out. You can track my progress here: <a href='https://github.com/discourse/discourse/pull/493' rel='nofollow'>https://github.com/discourse/discourse/pull/493</a>","avatar_template":"https://www.gravatar.com/avatar/2c3b9882e6898958b892a218b5493af9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internationalization-localization","topic_id":280,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":77,"reply_to_post_number":null,"username":"mikl","name":"Mikkel Høgh","user_id":2753,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Internationalization / localization","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-19T21:17:01Z","excerpt":"And they put us in front of phpBB too [hammer]","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-in-the-news","topic_id":4911,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse in the news...","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-14T14:04:52Z","excerpt":"I think the answer here is both. \n\nAs <a href='/users/eviltrout' class='mention'>@eviltrout</a> said, we should include the &quot;top 10&quot; login strategies that people are likely to want. You can see from <a href='http://meta.stackoverflow.com/a/170348' rel='nofollow'>recent Stack Exchange data</a> that beyond local logins, Google, Facebook (and probably Twitter), most everything else is a tiny percentage of the total&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"adding-additional-omniauth-strategies-via-plugin","topic_id":4290,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Adding additional Omniauth strategies via plugin?","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-13T22:39:06Z","excerpt":"Continuing the discussion from <a href='http://meta.discourse.org/t/alternative-non-ajax-way-to-login-so-that-browser-password-manager-can-save-the-login-credentials/2257/7'>Alternative (non-ajax) way to login, so that browser password manager can save the login credentials</a>: \n\nSince Discourse&#x27;s login form was being rendered only when you click the login button, browsers weren&#x27;t asking to save your password. They only see forms that are ren&hellip;","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"login-support-for-browser-password-managers","topic_id":4738,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Login support for browser password managers","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-13T22:14:33Z","excerpt":"This should do it: \n\nuser = User.where(username: &#x27;xyz&#x27;).first  \nemail_token = user.email_tokens.create(email: user.email)  \nEmailToken.confirm( email_token.token )","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"is-there-a-continuing-guide-for-post-installation-steps","topic_id":4586,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Is there a continuing guide for post installation steps?","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-13T03:39:58Z","excerpt":"Feel free to comment on the blog, too, but I wanted to open this up to a fuller discussion here as well: \n\n<a href='http://blog.discourse.org/2013/03/the-universal-rules-of-civilized-discourse/' class='onebox'>http://blog.discourse.org/2013/03/the-universal-rules-of-civilized-discourse/</a> \n\n\n  The principles in the <a href='http://meta.discourse.org/faq'>default Discourse community behavior FAQ</a> were distilled, as best we could, from the comm&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"the-universal-rules-of-civilized-discourse","topic_id":4705,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"The Universal Rules of Civilized Discourse","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-11T16:25:08Z","excerpt":"I am working on the Norwegian version of the translated files.","avatar_template":"https://www.gravatar.com/avatar/097f9f15bb97c2d6b8392f1858a7d8a8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internationalization-localization","topic_id":280,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":69,"reply_to_post_number":null,"username":"Andersos","name":"Anders Sandvik","user_id":3403,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Internationalization / localization","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-11T16:24:11Z","excerpt":"I am about to issue a pull-request for a first translation of Discourse into German. While doing it over the weekend, I came across a simple issue that renders proper translation of some phrases impossible: in the code, phrases are composed of too fine-grained units. \n\nTake this simple example of a &hellip;","avatar_template":"https://www.gravatar.com/avatar/1753724263a5dee3e38790e6ac3d685c.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internationalization-localization","topic_id":280,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":68,"reply_to_post_number":null,"username":"potthast","name":"Martin Potthast","user_id":3620,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Internationalization / localization","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-11T16:23:51Z","excerpt":"I&#x27;d like to throw a different perspective out there regarding this conversation. So far, the discussion seems to have focused on the performance impact of additional omniauth providers. While this is valid, it may end up being slightly less impactful than the code changes that need to be added to th&hellip;","avatar_template":"https://www.gravatar.com/avatar/39645efbd222c6c512f7ba0d9abadbbf.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"adding-additional-omniauth-strategies-via-plugin","topic_id":4290,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":null,"username":"devigned","name":"David Justice","user_id":3502,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Adding additional Omniauth strategies via plugin?","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-11T00:26:16Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> and <a href='/users/zogstrip' class='mention'>@zogstrip</a> were wondering why I made this commit: \n\n \n    \n      \n        <a href='https://github.com/discourse/discourse/commit/22f810091938f0b789b813a440581793640265c2' class='track-link' target='_blank'>\n          [image] github.com\n        </a>\n      \n    \n  \n    <a href='https://github.com/SamSaffron' target='_blank'>[SamSaffron]</a>\n    <a href='https://github.com/SamSaffron' target='_blank'>SamSaffron</a>\n    requiring is mega expensive, lets not do it every request.\n    Changed 1 files with 1 additions and 1 deletions.\n    \n   &hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"pattern-for-defer-loading-gems-and-profiling-with-perftools-rb","topic_id":4629,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Pattern for defer loading gems and profiling with perftools.rb","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-09T00:32:08Z","excerpt":"Yes, my github username is tangramor and I committed the translation work early today.  \nThe should be some minor problems in the formatted emails, and I haven&#x27;t tested them yet.","avatar_template":"https://www.gravatar.com/avatar/645454e097898e3f0d9a54c699995678.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internationalization-localization","topic_id":280,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":66,"reply_to_post_number":65,"username":"tattoo","name":"Tattoo","user_id":2995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Internationalization / localization","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-07T15:10:49Z","excerpt":"You are right, I checked out the newest code and it works now, thank you! \n\nI am working on the Simplified Chinese localization, if there is anybody want to do the same thing, we can work together. \n\nAnd for Discourse, I have decided to give it a Chinese name: 论道","avatar_template":"https://www.gravatar.com/avatar/645454e097898e3f0d9a54c699995678.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internationalization-localization","topic_id":280,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":61,"reply_to_post_number":60,"username":"tattoo","name":"Tattoo","user_id":2995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Internationalization / localization","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-06T15:23:16Z","excerpt":"I had forgotten how ridiculous Google Wave was. Anyone who says Discourse is &quot;too noisy&quot;, well, I assume they have never been to any other forum software in their entire lives and certainly have never seen Google Wave in &#x27;action&#x27;. And I use the term loosely.. \n\nOne caveat here is that there are actu&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"did-you-guys-consider-other-design-patterns-around-quoting","topic_id":4343,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Did you guys consider other design patterns around quoting?","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-06T15:19:59Z","excerpt":"Just submitted a <a href='https://github.com/discourse/discourse/pull/363' rel='nofollow'>pull request</a> solving this issue [wink]","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"autofocus-in-insert-image-dialog-on-the-web-tab","topic_id":4410,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Autofocus in \"Insert image\" dialog, \"On the web\" tab","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-06T15:13:23Z","excerpt":"A very cheap fix, based on some of my work here: \n\n \n\n\nOur test suite runs on a debian VM, I played with various knobs to find the fastest way to run our tests, our baseline was 4:57 mins to run all our tests on 1.9.3 - p392 \n\nRAILS_ENV=test RUBY_GC_MALLOC_LIMIT=50000000 LD_PRELOAD=/usr/lib/libtcma&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-can-we-speed-up-our-test-suite","topic_id":3531,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":10,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How can we speed up our test suite?","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-05T20:44:19Z","excerpt":"It depends on what you&#x27;re comfortable with - have you deployed a rails application to production? Are you comfortable with rolling back commits if there&#x27;s a regression that gets pushed to master? \n\nAside from some initial setup, it&#x27;s been relatively painless for me. I have a handful of commits where&hellip;","avatar_template":"https://www.gravatar.com/avatar/1fb5ede8d649e85f33f38b8f290c59e4.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-bloody-is-the-bleeding-edge","topic_id":4471,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"jcsims","name":"Chris Sims","user_id":639,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How Bloody is the Bleeding Edge?","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-05T15:43:16Z","excerpt":"Okay here&#x27;s what I made today. <a href='https://dl.dropbox.com/u/19678539/discourse_mobile.pdf' rel='nofollow'>https://dl.dropbox.com/u/19678539/discourse_mobile.pdf</a> \n\nIncluded screens: \n\n\nTopic view\nList topics view\nHome page\nMenu open\nAfter you guys give feedback, I&#x27;m not sure if I should move to the CSS or continue mocking up the rest of the screens: \n\n\nNew reply and topic\nM&hellip;","avatar_template":"https://www.gravatar.com/avatar/b3cc0833590c80e6335edd04cacfc734.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"brainstorming-a-mobile-discourse-design","topic_id":4116,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"rahilsondhi","name":"Rahil Sondhi","user_id":3160,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Brainstorming a mobile Discourse design","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-04T18:48:59Z","excerpt":"Awesome!  We&#x27;re on it, hope to have something within the week.","avatar_template":"https://www.gravatar.com/avatar/5810c72f30b0ab202823d8c26460c39d.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"please-add-persona-as-an-authentication-option","topic_id":1420,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":null,"username":"lloydhilaiel","name":"lloydhilaiel","user_id":2575,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Please add Persona as an authentication option","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-04T14:51:53Z","excerpt":"Hey Sam, thanks for the info. \n\nI guess we fixed the hash thing on master, but it wasn&#x27;t backported to 3-2-stable.  I&#x27;ve backported it here: \n\n \n    \n      \n        <a href='https://github.com/rails/rails/commit/d2b9862b247693af16ad00e56d4510ef460bcea7' class='track-link' target='_blank'>\n          [image] github.com\n        </a>\n      \n    \n  \n    <a href='https://github.com/spastorino' target='_blank'>[spastorino]</a>\n    <a href='https://github.com/spastorino' target='_blank'>spastorino</a>\n    Freeze columns only once per Result\n\nConflic&hellip;","avatar_template":"https://www.gravatar.com/avatar/f29327647a9cff5c69618bae420792ea.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"tuning-ruby-and-rails-for-discourse","topic_id":4126,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":null,"username":"tenderlove","name":"tenderlove","user_id":3386,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Tuning Ruby and Rails for Discourse","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-01T22:48:50Z","excerpt":"Just in case that anybody else is interested, we&#x27;re working with <a href='/users/gururea' class='mention'>@gururea</a> in a Spanish translation here: <a href='https://github.com/dacap/discourse/tree/spanish' rel='nofollow'>https://github.com/dacap/discourse/tree/spanish</a>","avatar_template":"https://www.gravatar.com/avatar/ec0ebc7c17f649d03ee78d4eba56ef73.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internationalization-localization","topic_id":280,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":58,"reply_to_post_number":52,"username":"dacap","name":"David Capello","user_id":1275,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Internationalization / localization","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-03-01T20:24:16Z","excerpt":"I think the link you want is here: \n\n[image] \n\nThe admin button on a user&#x27;s profile takes you to their profile page in admin.  I guess that&#x27;s not clear from the button name though.","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"admin-button-should-direct-to-admin","topic_id":4292,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Admin button should direct to /admin","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-02-27T20:20:40Z","excerpt":"Here are some quick raw notes I would like to flesh out to a blog post, eventually.  \n\nBeen noticing performance on the front page of Discourse is rather bad, after digging in with MiniProfiler I notices lots of GCs are hit for a single page view. I ran some tests in production with a few settings a&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"tuning-ruby-and-rails-for-discourse","topic_id":4126,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Tuning Ruby and Rails for Discourse","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-02-26T22:39:45Z","excerpt":"<a href='https://github.com/discourse/discourse/commit/cd6c1de5b034b8952893adbc6bdb2ba2fd3ed858' rel='nofollow'>I just added some site settings</a> that will get plugged into the default terms of service. company_full_name, company_short_name, company_domain. \n\nYou can always customize the heck out of the TOS by putting your own document in app/views/static/tos.html.erb after a deploy to your server.","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"usage-of-tos-and-privacy-policy-in-discourse-powered-forums","topic_id":4004,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Usage of TOS and Privacy Policy in discourse powered forums","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-02-15T22:56:37Z","excerpt":"In a recent commit, the docs were all moved into their own docs folder, so the above link to the advanced guide is broken. It can now be found at <a href='https://github.com/discourse/discourse/blob/master/docs/DEVELOPER-ADVANCED.md' rel='nofollow'>Discourse Advanced Developer Install Guide</a>. \n\nAlso, thank you for the details on how you created your Vagrant VM. I hadn&#x27;t heard of Vagrant before I start&hellip;","avatar_template":"https://www.gravatar.com/avatar/9489ef302fbff6c19bba507d09f8cd1d.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-updated-docs","topic_id":2918,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"lonnon","name":"Lonnon Foster","user_id":2636,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Updated Docs","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-02-15T22:21:51Z","excerpt":"Over the past few days I&#x27;ve been working on <a href='https://github.com/sud0n1m/discourse-chef' rel='nofollow'>chef scripts</a> to get a server ready for discourse in production. Last night I got a working version of my <a href='https://gist.github.com/sud0n1m/4953154' rel='nofollow'>capistrano scripts</a> to make it easy to deploy. \n\nBoth are still works in progress, but what&#x27;s nice is now they are set up, I can make changes pretty eas&hellip;","avatar_template":"https://www.gravatar.com/avatar/4cfb483116a822652d698dce303ec842.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"getting-ready-for-production-notes","topic_id":3080,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"colin","name":"colin","user_id":1674,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Getting ready for production - Notes","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-02-15T22:19:45Z","excerpt":"Two points in favor of JavaScript: \n\nEvery CoffeeScript developer knows JavaScript. The inverse is not true. Because CoffeeScript emits JavaScript, and any debugging you do in the browser is in JavaScript, by definition CoffeeScript developers must have at least a passing familiarity with JavaScrip&hellip;","avatar_template":"https://www.gravatar.com/avatar/9bf3a766e037b9d5a4da0a6f9d0f4f68.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"is-it-better-for-discourse-to-use-javascript-or-coffeescript","topic_id":3153,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":null,"username":"tomdale","name":"Tom","user_id":23,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Is it better for Discourse to use JavaScript or CoffeeScript?","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-02-15T20:48:23Z","excerpt":"Alright, my designer friend at work whipped this up in about 10 mins.  It&#x27;s a good starting point. \n\n<a href='http://meta.discourse.org/uploads/meta_discourse/286/4a477a22223c7fde.jpeg' target='_blank'>[image]</a>","avatar_template":"https://www.gravatar.com/avatar/2984ff3f6ddddffea016b22341d2e032.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"notification-styling-formatting-leaves-much-to-be-desired","topic_id":3128,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"meenie","name":"Cody Lundquist","user_id":2475,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Notification styling/formatting leaves much to be desired","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-02-15T20:18:36Z","excerpt":"Have you looked at other tools like Sequel? They drop you into bare-metal SQL Builders when you need and also have a very descriptive high-level model structure: \n\n<a href='http://sequel.rubyforge.org/' class='onebox' rel='nofollow'>http://sequel.rubyforge.org/</a> \n\nI use BOTH for the work I&#x27;ve done - there&#x27;s no need to be all in with AR if it&#x27;s not fitting what you&hellip;","avatar_template":"https://www.gravatar.com/avatar/31b18bc48108bc410884022764dbeec6.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"the-great-usersearch-refactor-inline-sql-vs-scopes","topic_id":2854,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":26,"reply_to_post_number":24,"username":"robconery","name":"Robconery","user_id":2471,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"The great UserSearch refactor, inline SQL vs scopes","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-02-12T21:25:06Z","excerpt":"I am fine with  \n\n\nusing AR where its easier to understand, if I need to drop to SQL for perf, leave a big fat comment  \nplacing raw SQL in a model or service class and not in the controller","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"the-great-usersearch-refactor-inline-sql-vs-scopes","topic_id":2854,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"The great UserSearch refactor, inline SQL vs scopes","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-02-12T19:56:03Z","excerpt":"What happens when the URL format changes?","avatar_template":"https://www.gravatar.com/avatar/152f65e1ed6bc7e819b5da0280c3e780.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"use-urls-not-id-numbers-in-the-json-to-identify-users-and-posts","topic_id":2249,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":1,"username":"arxanas","name":"Waleed Khan","user_id":623,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Use URLs not id numbers in the json to identify users and posts.","deleted":false,"hidden":false},{"action_type":1,"created_at":"2013-02-12T19:54:26Z","excerpt":"Cut-and-Paste install instructions\n\nSee my install notes <a href='https://www.evernote.com/shard/s114/sh/0fe549f1-81cd-46f7-8fbd-1a0c6c8bbf90/e1ed6a9f8bbe8a66d817f3b81746b75c' rel='nofollow'>here</a>. It will get your instance up and running, so you can play with it. Just copy and paste. Watch out for any unintended linebreaks if you are on a small screen. \n\nSince I&#x27;m a complete noob at ruby stuff, anyone who feels inclined should fee&hellip;","avatar_template":"https://www.gravatar.com/avatar/94d30eb0c59d7f56c325f4078858d223.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-is-too-complicated-to-set-up","topic_id":2916,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":25,"reply_to_post_number":1,"username":"sajb","name":"Dave H","user_id":1038,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse is too complicated to set up","deleted":false,"hidden":false}]};
-Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout&filter=2"] = {"user_actions":[{"action_type":2,"created_at":"2013-07-12T11:46:37Z","excerpt":"Hmmm I don&#x27;t think it can be swapped in/out while the processes are running like that. \n\nI&#x27;d be okay with a site_setting to disable email, (off by default obviously) that would just run a noop on any email sends.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":5,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"cfstras","acting_name":"cfstras","acting_user_id":1496,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-12T09:41:05Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/038e2caac4482e97ba6b24c3a88b86ff.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"lightyear","acting_name":"Benjamin Kampmann","acting_user_id":6060,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-11T04:08:30Z","excerpt":"Oh I see! I apologize that I didn&#x27;t understand this at first. \n\nThis is actually quite a good solution. I remember wanting to try something like this before we went ahead with the current method. \n\nIf google works properly with this approach too, maybe we should consider not putting the content into&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/cf99a7295aafa43c75ce25668b24df29.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":9,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"cerberus","acting_name":"Alejandro Petroff","acting_user_id":4757,"title":"Noscript tag and some search engines","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-10T15:15:38Z","excerpt":"The easiest way to do this is to disable sending emails from Rails at all: \n\nconfig.action_mailer.delivery_method = :test  \n\n\nYou put that in your production.rb file, restart sidekiq and you&#x27;re good to go. No emails will go out until you&#x27;re finished your work.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"cfstras","acting_name":"cfstras","acting_user_id":1496,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-09T16:04:02Z","excerpt":"The easiest way to do this is to disable sending emails from Rails at all: \n\nconfig.action_mailer.delivery_method = :test  \n\n\nYou put that in your production.rb file, restart sidekiq and you&#x27;re good to go. No emails will go out until you&#x27;re finished your work.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-09T15:07:02Z","excerpt":"The easiest way to do this is to disable sending emails from Rails at all: \n\nconfig.action_mailer.delivery_method = :test  \n\n\nYou put that in your production.rb file, restart sidekiq and you&#x27;re good to go. No emails will go out until you&#x27;re finished your work.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-09T11:38:34Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/42ca770299eab441ddabae5a1ad5f799.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"phanimahesh","acting_name":"J Phani Mahesh","acting_user_id":5477,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-08T21:25:43Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-08T21:24:36Z","excerpt":"<a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' target='_blank'>Added `In-Reply-To` and `References` email headers. Additionally removed username from\nemail replies and new posts to keep the subjects collapsable.</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>evil&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"replies-notifications-are-not-grouped-as-conversations-in-my-mua","topic_id":8133,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Replies notifications are not grouped as conversations in my MUA","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-08T17:34:42Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/1c52629e9379bb4d8108634ce9ca4d9e.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"hugo","acting_name":"Hugo","acting_user_id":2935,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-08T17:28:10Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-08T16:25:17Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-08T16:05:41Z","excerpt":"<a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' target='_blank'>Added `In-Reply-To` and `References` email headers. Additionally removed username from\nemail replies and new posts to keep the subjects collapsable.</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>evil&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"replies-notifications-are-not-grouped-as-conversations-in-my-mua","topic_id":8133,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Replies notifications are not grouped as conversations in my MUA","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-05T19:40:24Z","excerpt":"While Discourse has a comprehensive web API that it consumes, it is not really documented and outlined for external use as we are still working on it quite heavily and want to be able to change it quickly. \n\nIf you build on top of the current REST API you might have to deal with changes, so beware [&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"creating-an-discourse-user-through-api","topic_id":8124,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Creating an Discourse User through API","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-05T09:26:56Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/f21c5d25f6f9fd36c27a8def7f03ad8a.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"akhayyat","acting_name":"Ahmad Khayyat","acting_user_id":4702,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-05T05:50:06Z","excerpt":"Hi there!  \n\nI just tried these same settings and it appeared fine in the admin section. The only thing I can think of is perhaps you didn&#x27;t restart your Rails server before checking? That file is only loaded when the server starts up. \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/de9a910f6c145938e047f77a524df50b.png?s={size}&r=pg&d=identicon","slug":"trying-to-change-the-email-delivery-method","topic_id":8055,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"nick12377","acting_name":"nickj","acting_user_id":5293,"title":"Trying to Change the Email Delivery Method","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-04T22:41:15Z","excerpt":"I deployed a fix for this. It should work now! \n\nIf not please let us know.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon","slug":"posting-a-message-doesnt-clear-draft-box","topic_id":8104,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"PabloC","acting_name":"Pablo Corral","acting_user_id":2291,"title":"Posting a message doesn't clear draft box","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-04T04:14:29Z","excerpt":"Hi there!  \n\nI just tried these same settings and it appeared fine in the admin section. The only thing I can think of is perhaps you didn&#x27;t restart your Rails server before checking? That file is only loaded when the server starts up. \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"trying-to-change-the-email-delivery-method","topic_id":8055,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Trying to Change the Email Delivery Method","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-03T20:26:55Z","excerpt":"Sorry about this! I&#x27;ll fix it as soon as I can.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/040f75103040d887e6e32d607cb940a3.png?s={size}&r=pg&d=identicon","slug":"last-read-indicator-doesnt-always-update-when-scrolling-to-bottom","topic_id":8047,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":5,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"CvX","acting_name":"Jarek Radosz","acting_user_id":369,"title":"Last read indicator doesn't always update when scrolling to bottom","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-03T20:11:24Z","excerpt":"It&#x27;s true the 1GB is an overestimate for small forums. But it&#x27;s meant to ensure people have enough resources regardless of what the forum is doing. Additionally, it gives us the ability to have the app use more ram if an awesome feature demands it without people saying &quot;hey it no longer works in 512&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"512mb-of-ram-is-enough-to-run-discourse","topic_id":6844,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"512MB of RAM is enough to run Discourse","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-02T15:38:56Z","excerpt":"I&#x27;ve just deployed the new post stream code. In my tests it seems to link correctly to the post. Can you confirm that it&#x27;s working better now <a href='/users/iszi' class='mention'>@Iszi</a>? Thanks!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","topic_id":5971,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Following links to posts within the same topic jumps to the top","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-02T15:31:44Z","excerpt":"I&#x27;ve just deployed the new post stream code. In my tests it seems to link correctly to the post. Can you confirm that it&#x27;s working better now <a href='/users/iszi' class='mention'>@Iszi</a>? Thanks!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","topic_id":5971,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Following links to posts within the same topic jumps to the top","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-02T15:31:33Z","excerpt":"I&#x27;ve just deployed my post stream update and I believe this issue is fixed! Sorry about that.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"loading-never-stops","topic_id":7554,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":16,"reply_to_post_number":14,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Loading (never stops)","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-02T15:19:36Z","excerpt":"I&#x27;ve just deployed my post stream update and I believe this issue is fixed! Sorry about that.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"loading-never-stops","topic_id":7554,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":16,"reply_to_post_number":14,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Loading (never stops)","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-30T16:24:33Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"erlend_sh","acting_name":"Erlend Sogge Heggen","acting_user_id":5351,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-30T13:31:20Z","excerpt":"I do all my developing in OSX. Actually I love buying hardware and PC gaming so my main system is actually a Hackintosh that I built myself. It&#x27;s probably faster than any mac you can buy. \n\nAlthough I created the Vagrant install with <a href='/users/neil' class='mention'>@Neil</a>&#x27;s help I do my development for discourse right on my local m&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/ef419cd042564d6d56fab6edfec7ad73.png?s={size}&r=pg&d=identicon","slug":"what-ide-editor-and-environment-do-you-use","topic_id":2105,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"nicmart","acting_name":"Nicolò Martini","acting_user_id":3581,"title":"What IDE, editor and environment do you use?","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-29T22:05:20Z","excerpt":"Modals\n\nToday I merged in a <a href='https://github.com/discourse/discourse/commit/0af0a214b2cef90d07ddf33cc8648d4a416307d2' rel='nofollow'>large commit</a> (warning, might slow down your browser) to back all our modals by controllers. \n\nPreviously, our modals were just views that we dynamically inserted into an <a href='http://emberjs.com/api/classes/Ember.ContainerView.html' rel='nofollow'>ember ContainerView</a>. They worked pretty well, but all the logic and attributes for dealing with the mo&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/040f75103040d887e6e32d607cb940a3.png?s={size}&r=pg&d=identicon","slug":"discourse-ember-refactorings","topic_id":7019,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"CvX","acting_name":"Jarek Radosz","acting_user_id":369,"title":"Discourse Ember Refactorings","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-28T23:31:30Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4079bc13f142ea46e0144d1ca9426aa9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"fgonzal","acting_name":"Federico","acting_user_id":2287,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-28T21:18:53Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/28b6612d548d24ff57361dac58ac3fee.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"mkirk","acting_name":"Michael John Kirk","acting_user_id":5586,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-28T14:40:50Z","excerpt":"Not yet! We started with polling because it was easiest for our setup, but\nwe&#x27;d love to support web hooks too. It probably won&#x27;t be too hard due to\nthe way the internal API works.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/5c049595372be0a1a22f4192b490f032.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"jorge_castro","acting_name":"Jorge Castro","acting_user_id":529,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-28T09:45:44Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/0de93e19798baa853bff3237381de87a.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"polusok","acting_name":"Mykhailo Poliarush","acting_user_id":5810,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-27T21:56:13Z","excerpt":"Not yet! We started with polling because it was easiest for our setup, but\nwe&#x27;d love to support web hooks too. It probably won&#x27;t be too hard due to\nthe way the internal API works.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/97e3dd0d8128a2e17b28c71e0fb08b31.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"knwang","acting_name":"knwang","acting_user_id":3865,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-27T03:38:54Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/97e3dd0d8128a2e17b28c71e0fb08b31.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"knwang","acting_name":"knwang","acting_user_id":3865,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-27T00:43:18Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/04e8c634e5ee0fd074f78f3bad6eb5b3.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"djensen47","acting_name":"Dave Jensen","acting_user_id":5108,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-26T11:28:08Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"marcoceppi","acting_name":"Marco Ceppi","acting_user_id":761,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-26T00:25:31Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/34c3b45c075a6d85555beb674892d0d8.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"computerdruid","acting_name":"ComputerDruid","acting_user_id":5372,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T23:10:49Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T22:56:16Z","excerpt":"It&#x27;s queryable via the Category table which has a topic_id indicating what the category topic is. I wouldn&#x27;t want to join on that though.  \n\nIt seems we have a sub_type column that we could probably use to indicate category topics and filter them out. Will add to my list.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/43675ac6f4ef94f40b5e44add2a984c1.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"naggie","acting_name":"Callan Bryant","acting_user_id":1374,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T21:28:00Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"BhaelOchon","acting_name":"Bill Ayakatubby","acting_user_id":471,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T18:47:21Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3baf9989e97ccf45aff1cf61fb730931.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"briangillespie","acting_name":"Brian Gillespie","acting_user_id":5483,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T18:18:19Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/7a42855912a58f4c3c5d0ce82e33905f.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"stevebaer","acting_name":"Steve Baer","acting_user_id":4939,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T18:09:49Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"mcwumbly","acting_name":"David McClure","acting_user_id":4263,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T17:42:33Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/6c38e00d92cd9bd3ada3392b15015553.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"frandallfarmer","acting_name":"F. Randall Farmer","acting_user_id":38,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T17:41:03Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/5c049595372be0a1a22f4192b490f032.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"jorge_castro","acting_name":"Jorge Castro","acting_user_id":529,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:59:02Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"Neil","acting_name":"Neil","acting_user_id":2,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:53:58Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/55c791f0242e5167536c65496046eef5.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"RGJ","acting_name":"Richard ","acting_user_id":406,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:24:42Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3e8ede783ef16c8234c03473a5b8780f.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"MaSe","acting_name":"Мария Сергеева","acting_user_id":5174,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:16:02Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/1c52629e9379bb4d8108634ce9ca4d9e.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"hugo","acting_name":"Hugo","acting_user_id":2935,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:10:51Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:06:40Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:03:28Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/26bf5a02583eaf63d1f8063bb3a6bc00.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"kpfleming","acting_name":"Kevin P. Fleming","acting_user_id":2625,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-22T09:45:59Z","excerpt":"If you&#x27;ve been following the latest commits, you might have noticed some changes to the ways we do things in our Ember application. I thought it would be a good idea to explain what&#x27;s been changing and why. \n\nView Helpers\n\nAs of <a href='http://emberjs.com/blog/2013/04/21/ember-1-0-rc3.html' rel='nofollow'>Ember RC2</a> we&#x27;ve gained new helpers for inserting views into handlebars.&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/efe90c21899f95a64cb78e01b5cb7733.png?s={size}&r=pg&d=identicon","slug":"discourse-ember-refactorings","topic_id":7019,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"etewiah","acting_name":"etewiah","acting_user_id":5465,"title":"Discourse Ember Refactorings","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-20T17:51:16Z","excerpt":"I&#x27;ve just deployed support for a new setting minimum_topics_similar with a default of 50. If the site has fewer topics than that, you won&#x27;t receive a suggested topics list. What do you think a sensible value would be on try.discourse.org? \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/5ef6714d48b78e4ae304e957d990f31b60f94ee3' class='track-link' target='_blank'>\n            [image]\n          github.&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-19T20:14:14Z","excerpt":"I&#x27;ve just deployed support for a new setting minimum_topics_similar with a default of 50. If the site has fewer topics than that, you won&#x27;t receive a suggested topics list. What do you think a sensible value would be on try.discourse.org? \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/5ef6714d48b78e4ae304e957d990f31b60f94ee3' class='track-link' target='_blank'>\n            [image]\n          github.&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/cf99a7295aafa43c75ce25668b24df29.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"cerberus","acting_name":"Alejandro Petroff","acting_user_id":4757,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-19T18:10:49Z","excerpt":"I&#x27;ve just deployed support for a new setting minimum_topics_similar with a default of 50. If the site has fewer topics than that, you won&#x27;t receive a suggested topics list. What do you think a sensible value would be on try.discourse.org? \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/5ef6714d48b78e4ae304e957d990f31b60f94ee3' class='track-link' target='_blank'>\n            [image]\n          github.&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-10T22:19:46Z","excerpt":"I just investigated this. Recently there was a move to use the strong_parameters plugin for Rails for security reasons. A consequence of this is the posts#create API changed slightly and wordpress doesn&#x27;t seem to be using it. \n\nWe are going to have <a href='/users/sam' class='mention'>@sam</a> look into it as soon as he wakes up since he&#x27;s&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"discourse-and-wordpress-integration","topic_id":531,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":56,"reply_to_post_number":55,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Discourse and Wordpress Integration","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-07T19:18:56Z","excerpt":"We upgraded to Ember RC5 and then downgraded after we noticed a regression that we still have to fix. It&#x27;s likely something is still serving up data using the wrong ember or handlebars. \n\nIn development mode sometimes you have to rm -rf tmp to get rid of old cached versions when upgrading handlebars&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"cant-access-admin-since-last-merge","topic_id":7254,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Can't access admin since last merge","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-07T19:01:13Z","excerpt":"There was a regression in one of our many refactoring commits that caused errors with topic titles to raise 500 errors instead of displaying to the user. I&#x27;ve just committed and deployed a fix. \n\nNow, as for why that topic won&#x27;t go through - by default our entropy settings for titles title_min_entro&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"topic-title-with-chinese-characters-is-not-supported","topic_id":7247,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Topic title with Chinese characters is not supported","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-07T18:07:03Z","excerpt":"There was a regression in one of our many refactoring commits that caused errors with topic titles to raise 500 errors instead of displaying to the user. I&#x27;ve just committed and deployed a fix. \n\nNow, as for why that topic won&#x27;t go through - by default our entropy settings for titles title_min_entro&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"topic-title-with-chinese-characters-is-not-supported","topic_id":7247,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Topic title with Chinese characters is not supported","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-04T22:10:54Z","excerpt":"I think we got it! \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/02b1f7841016cef05a49b64f73976eb19d55255b' class='track-link' target='_blank'>\n          [image] github.com\n        </a>\n      \n    \n  \n    <a href='https://github.com/eviltrout' target='_blank'>[eviltrout]</a>\n    <a href='https://github.com/eviltrout' target='_blank'>eviltrout</a>\n    FIX: Include preloaded data even if the request type isn&#x27;t explicitly text/html\n    Changed 1 files with 13 additions and 11 deletions.\n    \n      <a href='https://github.com/discourse/discourse/commit/02b1f7841016cef05a49b64f73976eb19d55255b' target='_blank'>04:56PM - 04 Jun 13</a>\n   &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/42910619ef3d550e37f7150caa0d94ff.png?s={size}&r=pg&d=identicon","slug":"discourse-not-loading","topic_id":6966,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":18,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"pakl","acting_name":"Patrick Klug","acting_user_id":2316,"title":"Discourse not loading","deleted":false,"hidden":false}]};
-Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout&filter=11"] = {"user_actions":[{"action_type":11,"created_at":"2013-06-25T16:19:52Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":11,"created_at":"2013-02-13T00:56:51Z","excerpt":"I&#x27;ve just deployed some slightly better documentation to our project regarding developer set ups. Vagrant is still the recommended install for most people, however if you have Rails experience there is now an <a href='https://github.com/discourse/discourse/blob/master/docs/DEVELOPER-ADVANCED.md' rel='nofollow'>advanced guide</a>. The advanced guide also contains instructions on setting up your own Vagran&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"new-updated-docs","topic_id":2918,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"New: Updated Docs","deleted":false,"hidden":false}]};
+Discourse.URL_FIXTURES["/users/eviltrout.json"] = {"user":{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","name":"Robin Ward","last_posted_at":"2013-07-23T16:53:43-04:00","last_seen_at":"2013-07-25T15:40:20-04:00","bio_raw":"asdf asdf asdf asdf ","bio_cooked":"<p>asdf asdf asdf asdf </p>","created_at":"2013-02-03T10:19:22-05:00","website":"http://","can_edit":null,"stats":[{"action_type":4,"count":"5"},{"action_type":5,"count":"235"},{"action_type":6,"count":"122"},{"action_type":1,"count":"97"},{"action_type":2,"count":"236"},{"action_type":7,"count":"146"},{"action_type":9,"count":"6"},{"action_type":10,"count":"5"},{"action_type":11,"count":"2"}],"can_send_private_message_to_user":false,"bio_excerpt":"asdf asdf asdf asdf","trust_level":4,"moderator":false,"admin":true,"title":"co-founder","invited_by":{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"}}};
+Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout"] = {"user_actions":[{"action_type":7,"created_at":"2013-07-24T05:39:10Z","excerpt":"Good question! <a href='/users/eviltrout' class='mention'>@eviltrout</a>?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":18,"reply_to_post_number":17,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-07-23T21:19:11Z","excerpt":"wow, that was incredibly easy. was expecting it to get a little hairy somewhere! \n\nreally, really spectacular feature team, great work. \n\nsaves me a number of &quot;hey, this email that you sent didn&#x27;t go where you think it did, you gotta log back in&quot; emails!","avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":14,"username":"SBauch","name":"Sam Bauch","user_id":2876,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-23T20:57:52Z","excerpt":"wow, that was incredibly easy. was expecting it to get a little hairy somewhere! \n\nreally, really spectacular feature team, great work. \n\nsaves me a number of &quot;hey, this email that you sent didn&#x27;t go where you think it did, you gotta log back in&quot; emails!","avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":14,"username":"SBauch","name":"Sam Bauch","user_id":2876,"acting_username":"SBauch","acting_name":"Sam Bauch","acting_user_id":2876,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T20:53:43Z","excerpt":"Right now the only way to test is to send yourself a message with another\naccount and not log in for 10 minutes. \n\nFor google accounts, the host is always the same as in the example I\nprovided. The username is the full email and includes the domain and that\nis enough for google to work properly. (we&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":14,"reply_to_post_number":13,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T19:24:36Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"modal-when-deleting-post-not-disappearing","topic_id":8600,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Modal when deleting post not disappearing","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-23T19:24:32Z","excerpt":"Okay I&#x27;ve fixed this now:  \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/96af490d7cf92a41d1ac2f849a1880f7c255d64b' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/96af490d7cf92a41d1ac2f849a1880f7c255d64b' target='_blank'>FIX: Deleting posts in bulk was broken.</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>eviltrout</a>\n      on <a href='https://github.com/discourse/discourse/commit/96af490d7cf92a41d1ac2f849a1880f7c255d64b' target='_blank'>06:59PM - 23 Jul 13</a>\n    \n\n    \n      changed 3 files\n      with 3&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"modal-when-deleting-post-not-disappearing","topic_id":8600,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Modal when deleting post not disappearing","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T19:23:49Z","excerpt":"If you&#x27;re in development mode, you might want to clear your tmp directory and see if that helps. It could be a weird caching issue.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"not-finding-any-client-translations","topic_id":8605,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Not finding any client translations","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-23T19:15:17Z","excerpt":"It didn&#x27;t unfortunately.  \n\nI&#x27;d also been playing with encoding after having some issues, I did what the troubleshooting docs instructed. \n\nSo yeah I&#x27;m really not sure where to begin as I&#x27;m not too clear on how the client side translations works. \n\nIt looks like the JsLocaleHelper module is called b&hellip;","avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon","slug":"not-finding-any-client-translations","topic_id":8605,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"SBauch","name":"Sam Bauch","user_id":2876,"acting_username":"SBauch","acting_name":"Sam Bauch","acting_user_id":2876,"title":"Not finding any client translations","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T18:40:01Z","excerpt":"I&#x27;ve reproduced this, working on a fix!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"modal-when-deleting-post-not-disappearing","topic_id":8600,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Modal when deleting post not disappearing","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T18:22:33Z","excerpt":"That&#x27;s really weird. Can you revert to a previous commit and see if that fixes it?","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"not-finding-any-client-translations","topic_id":8605,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Not finding any client translations","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-23T17:10:58Z","excerpt":"Can we repro this <a href='/users/eviltrout' class='mention'>@eviltrout</a>?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"modal-when-deleting-post-not-disappearing","topic_id":8600,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Modal when deleting post not disappearing","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-23T17:08:15Z","excerpt":"I&#x27;m not sure if someone else fixed it already, but when I&#x27;m not logged in I can see the category list in the hamburger menu just fine: \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"category-tag-cloud-on-front-page","topic_id":8489,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Category \"Tag\" Cloud on front page","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T15:05:13Z","excerpt":"I&#x27;m not sure if someone else fixed it already, but when I&#x27;m not logged in I can see the category list in the hamburger menu just fine: \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"category-tag-cloud-on-front-page","topic_id":8489,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Category \"Tag\" Cloud on front page","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T14:23:43Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"usability-of-about-me-bio","topic_id":882,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Usability of 'About Me' bio","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-23T14:23:36Z","excerpt":"Okay, now the link takes you to a view where you can just edit your about us content. I think it&#x27;s a good solution!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"usability-of-about-me-bio","topic_id":882,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Usability of 'About Me' bio","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-22T16:20:05Z","excerpt":"Anyway getting back to the original topic -- we should make sure that valid @name mentions are indeed properly processed in email replies <a href='/users/eviltrout' class='mention'>@eviltrout</a>.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"reply-by-email-doesnt-process-name","topic_id":8508,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Reply by Email doesn't process @name","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-22T07:29:08Z","excerpt":"This should be fixed now with <a href='/users/eviltrout' class='mention'>@eviltrout</a>&#x27;s recent changes to make the user page properly URL-routable, so each section is a unique URL and can be deep linked to.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"going-back-to-profile-activity-page-should-remember-filter-and-scrolling-location","topic_id":6252,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Going back to profile activity page should remember filter and scrolling location","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-22T06:47:52Z","excerpt":"Well, <a href='/users/eviltrout' class='mention'>@eviltrout</a> is working on some other changes to certain sub-tabs of the user page specifically Topics and Favorites, so alternate per-row rendering strategies could bleed in elsewhere at some point too. \n\nWe need Topics and Favorites to render a lot more sensibly first before this minor tweak o&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"like-should-feature-much-less-prominently-on-user-page","topic_id":8555,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"\"Like\" should feature much less prominently on user page","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-20T23:56:48Z","excerpt":"One benefit to running using the thin server is that it&#x27;s running as the discourse user - everything is already self-contained and the web server will have permission to write to the directories as necessary. \n\nHowever, we should be handling this better and reporting an error to the user. \n\nCc: <a href='/users/sam' class='mention'>@Sam</a> &hellip;","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","slug":"new-install-cant-save-custom-modification-to-logo-anyone-else","topic_id":8487,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":13,"reply_to_post_number":10,"username":"supermathie","name":"Michael Brown","user_id":3,"acting_username":"supermathie","acting_name":"Michael Brown","acting_user_id":3,"title":"New Install cant save custom modification to logo anyone else?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-19T19:15:09Z","excerpt":"The line endings issue is essentially unfixable because email fundamentally does not transmit enough information to tell the difference between true EOL and linebreak, without asking for HTML email which we don&#x27;t want to do. \n\nThe @name mention should be fixable though -- <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you add this&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"reply-by-email-doesnt-process-name","topic_id":8508,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Reply by Email doesn't process @name","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-19T14:37:03Z","excerpt":"Stripping out signatures is pretty hard. Right now we&#x27;re using a gem originally open sourced by github for parsing out email replies: \n\n<a href='https://github.com/lawrencepit/email_reply_parser' class='onebox' rel='nofollow'>https://github.com/lawrencepit/email_reply_parser</a> \n\nIt works reasonably well but there are definitely edge cases where it&#x27;s less effective. I am guessing it&#x27;s becau&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","slug":"use-regex-to-split-the-reply-by-mail-to-remove-noise","topic_id":8465,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"supermathie","acting_name":"Michael Brown","acting_user_id":3,"title":"Use regex to split the reply-by mail to remove noise","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-19T14:36:26Z","excerpt":"BlackBerry is actually really nice about this - it puts the reply into a separate div element. Is this something common to a lot of mail clients? \n\nAlternately,  \n\n----- REPLY ABOVE THIS LINE -----\n\n\nis UGLY but it works. Most of the time. Probably.","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","slug":"use-regex-to-split-the-reply-by-mail-to-remove-noise","topic_id":8465,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":2,"username":"supermathie","name":"Michael Brown","user_id":3,"acting_username":"supermathie","acting_name":"Michael Brown","acting_user_id":3,"title":"Use regex to split the reply-by mail to remove noise","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-19T12:17:14Z","excerpt":"The gem actually has everything needed to add additional reply header formats: \n\n\n    \n      \n        <a href='https://github.com/lawrencepit/email_reply_parser/blob/master/lib/email_reply_parser.rb#L128' class='source track-link' target='_blank'>\n          [image] github.com\n        </a>\n      \n    \n    \n    <a href='https://github.com/lawrencepit/email_reply_parser/blob/master/lib/email_reply_parser.rb#L128' target='_blank'>https://github.com/lawrencepit/email_reply_parser/blob/master/lib/email_reply_parser.rb#L128</a>\n    \n      # Now that parsing is done, revers&hellip;","avatar_template":"https://www.gravatar.com/avatar/fb26c121d58a128d9ce405eab59e5b05.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/fb26c121d58a128d9ce405eab59e5b05.png?s={size}&r=pg&d=identicon","slug":"use-regex-to-split-the-reply-by-mail-to-remove-noise","topic_id":8465,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"simonlmn","name":"Simon","user_id":1129,"acting_username":"simonlmn","acting_name":"Simon","acting_user_id":1129,"title":"Use regex to split the reply-by mail to remove noise","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-19T08:36:20Z","excerpt":"While Discourse has a comprehensive web API that it consumes, it is not really documented and outlined for external use as we are still working on it quite heavily and want to be able to change it quickly. \n\nIf you build on top of the current REST API you might have to deal with changes, so beware [&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/57cbb6a2e56bfe02ae46522889961b86.png?s={size}&r=pg&d=identicon","slug":"creating-an-discourse-user-through-api","topic_id":8124,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"Chinh_Xuan_Bui","acting_name":"Chinh_Xuan_Bui","acting_user_id":5966,"title":"Creating an Discourse User through API","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-19T07:17:06Z","excerpt":"That reminds me, we should have fixed that a long time ago.. <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you add that to your list?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"category-tag-cloud-on-front-page","topic_id":8489,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Category \"Tag\" Cloud on front page","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-07-18T21:56:21Z","excerpt":"I&#x27;ll just drop this here: \n\n<a href='https://github.com/cfstras/discourse-konami' class='onebox' rel='nofollow'>https://github.com/cfstras/discourse-konami</a>  \nIt&#x27;s built on <a href='http://snaptortoise.com/konami-js/' rel='nofollow'>Konami-JS</a>, which made this really easy :) \n\nTo Install, add this line to your Gemfile: \n\ngem &#x27;discourse_konami&#x27;, :git =&gt; &#x27;https://github.com/cfstras/discourse-konami&#x27;\n\n\nexecute: \n\n$ bundle install\n$ rake assets:p&hellip;","avatar_template":"https://www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"plugin-the-konami-code","topic_id":8473,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"cfstras","name":"cfstras","user_id":1496,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Plugin: The Konami Code","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-18T21:33:37Z","excerpt":"I deployed a fix for this not too long ago. You might have to refresh your browser to get it!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"suggested-topics-keep-failing-after-posting","topic_id":8482,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Suggested topics keep failing after posting","deleted":false,"hidden":false,"moderator_action":false},{"action_type":9,"created_at":"2013-07-18T18:40:50Z","excerpt":"Continuing the discussion from <a href='http://meta.discourse.org/t/new-reply-via-email-support/7764'>New: Reply via Email Support!</a>: \n\n  \n\nWe&#x27;re using Google Apps for our @mcneel.com email.  \nThe reply-to address for discourse mails is &quot;discourse+{reply_key}@mcneel.com&quot;  \nThe from address is &quot;ste...@mcneel.com&quot; (obfuscated intentionally) \n\nThe message headers appear to&hellip;","avatar_template":"https://www.gravatar.com/avatar/3baf9989e97ccf45aff1cf61fb730931.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3baf9989e97ccf45aff1cf61fb730931.png?s={size}&r=pg&d=identicon","slug":"reply-by-email-doesnt-work-well-with-google-apps-accounts","topic_id":8476,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"briangillespie","name":"Brian Gillespie","user_id":5483,"acting_username":"briangillespie","acting_name":"Brian Gillespie","acting_user_id":5483,"title":"Reply by Email Doesn't Work well with Google Apps accounts","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-18T16:22:43Z","excerpt":"Stripping out signatures is pretty hard. Right now we&#x27;re using a gem originally open sourced by github for parsing out email replies: \n\n<a href='https://github.com/lawrencepit/email_reply_parser' class='onebox' rel='nofollow'>https://github.com/lawrencepit/email_reply_parser</a> \n\nIt works reasonably well but there are definitely edge cases where it&#x27;s less effective. I am guessing it&#x27;s becau&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"use-regex-to-split-the-reply-by-mail-to-remove-noise","topic_id":8465,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Use regex to split the reply-by mail to remove noise","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-18T15:12:12Z","excerpt":"Stripping out signatures is pretty hard. Right now we&#x27;re using a gem originally open sourced by github for parsing out email replies: \n\n<a href='https://github.com/lawrencepit/email_reply_parser' class='onebox' rel='nofollow'>https://github.com/lawrencepit/email_reply_parser</a> \n\nIt works reasonably well but there are definitely edge cases where it&#x27;s less effective. I am guessing it&#x27;s becau&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"use-regex-to-split-the-reply-by-mail-to-remove-noise","topic_id":8465,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Use regex to split the reply-by mail to remove noise","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-18T14:46:23Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"private-message-button-doesnt-fill-in-user","topic_id":8469,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Private message button doesn't fill in user","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-18T14:46:19Z","excerpt":"I&#x27;ve just made a commit to fix this. It should be deployed later today, thanks for letting me know. \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/910c88c48edf8f2eba0cadc07fcd8bd1541b65f0' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/910c88c48edf8f2eba0cadc07fcd8bd1541b65f0' target='_blank'>FIX: Private Message button wasn&#x27;t populating username</a>\n    \n\n    \n     &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"private-message-button-doesnt-fill-in-user","topic_id":8469,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Private message button doesn't fill in user","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-18T14:44:56Z","excerpt":"Now would be a great time for <a href='/users/eviltrout' class='mention'>@eviltrout</a> to look at it then [wink]. I&#x27;m pretty sure this came about after the post stream refactoring.","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"post-stream-sometimes-not-pulling-latest-posts","topic_id":8229,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":9,"username":"Ajarn","name":"Brentley Jones","user_id":3681,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"Post stream sometimes not pulling latest posts","deleted":false,"hidden":false,"moderator_action":false},{"action_type":9,"created_at":"2013-07-18T13:13:59Z","excerpt":"Continuing the discussion from <a href='http://meta.discourse.org/t/new-reply-via-email-support/7764'>New: Reply via Email Support!</a>: \n\n  \n\nOn my Dutch forum this line is included in the forum replies that were added by mail:   \n\n\n  Op 18 juli 2013 10:23 schreef Sander Datema  het volgende: \n\n\nSo Discourse was able to strip the rest op the reply like it should, but didn&hellip;","avatar_template":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s={size}&r=pg&d=identicon","slug":"use-regex-to-split-the-reply-by-mail-to-remove-noise","topic_id":8465,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"Sander78","name":"Sander Datema","user_id":3987,"acting_username":"Sander78","acting_name":"Sander Datema","acting_user_id":3987,"title":"Use regex to split the reply-by mail to remove noise","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-18T08:02:17Z","excerpt":"You&#x27;re right, we should do this -- <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you make sure it&#x27;s on your list?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"usability-of-about-me-bio","topic_id":882,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":7,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Usability of 'About Me' bio","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-17T23:44:06Z","excerpt":"Starting with mixins is a good idea. You could mixin a TopicGuardian, PostGuardian, etc for example and then test those in isolation. \n\nThe good news is it&#x27;s fairly well tested now.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"so-you-want-to-help-out-with-discourse","topic_id":3823,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":42,"reply_to_post_number":41,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"So, you want to help out with Discourse","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-17T22:59:07Z","excerpt":"Guardian is fairly big these days, I would probably going about refactoring all the &quot;helper&quot; kind of functionality into a mixin as a first step ... all the method missing magic and ensure magic, then test that in isolation in a well specified way.  \n\n<a href='/users/eviltrout' class='mention'>@eviltrout</a> thoughts?","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"so-you-want-to-help-out-with-discourse","topic_id":3823,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":41,"reply_to_post_number":40,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"So, you want to help out with Discourse","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-17T22:32:12Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"incomplete-view-count-in-thread-after-posting","topic_id":8380,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Incomplete view count in thread after posting","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-17T22:32:09Z","excerpt":"I identified a race condition for this and have deployed a fix. You shouldn&#x27;t see it again!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"incomplete-view-count-in-thread-after-posting","topic_id":8380,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Incomplete view count in thread after posting","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-17T22:31:23Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"cant-visit-own-profile-from-other-users-profile","topic_id":8448,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Can't visit own profile from other user's profile","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-17T22:31:20Z","excerpt":"I&#x27;ve just deployed a fix for this, sorry!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"cant-visit-own-profile-from-other-users-profile","topic_id":8448,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Can't visit own profile from other user's profile","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-17T20:26:39Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"continous-loading-faq-tos-privacy","topic_id":8390,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Continous loading: FAQ, TOS, Privacy","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-17T20:26:34Z","excerpt":"I think you might be right. The check for 200 still raises the rejection promise instead of the resolved promise. It should probably be removed and we should just make sure any non-JSON requests use the html datatype like I did in this fix. \n\nIn the meantime I&#x27;m going to archive this topic!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"continous-loading-faq-tos-privacy","topic_id":8390,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":4,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Continous loading: FAQ, TOS, Privacy","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-07-17T19:46:22Z","excerpt":"Hi everybody, \n\nI work at Heroku and am managing our little forums experiment. I plan on creating a new fork of Discourse shortly that will contain everything we needed to do to get it running on Heroku. Teaser: it wasn&#x27;t much at all and I have hopes that someday there will be no diversion from mast&hellip;","avatar_template":"https://www.gravatar.com/avatar/8eb7bf96dd877adca0cbd29bb2e47e38.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"anyone-got-this-running-on-heroku-yet","topic_id":625,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":124,"reply_to_post_number":null,"username":"rwdaigle","name":"rwdaigle","user_id":6128,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Anyone got this running on Heroku yet?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-17T19:45:32Z","excerpt":"Because we haven&#x27;t gotten around to it yet! I think we might not have had that metric when we first prototyped best_of, or we simply forgot it. We&#x27;d like that a lot.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"how-does-the-best-of-view-work-and-what-is-its-ultimate-purpose","topic_id":8345,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":7,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"How does the best of view work and what is it's ultimate purpose?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-17T19:45:01Z","excerpt":"Because we haven&#x27;t gotten around to it yet! I think we might not have had that metric when we first prototyped best_of, or we simply forgot it. We&#x27;d like that a lot.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-does-the-best-of-view-work-and-what-is-its-ultimate-purpose","topic_id":8345,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":7,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How does the best of view work and what is it's ultimate purpose?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-17T18:51:15Z","excerpt":"With that known, I see that clickthrough rate on the links isn&#x27;t counted. <a href='/users/eviltrout' class='mention'>@eviltrout</a> is there a reason why not?","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"how-does-the-best-of-view-work-and-what-is-its-ultimate-purpose","topic_id":8345,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":6,"username":"Ajarn","name":"Brentley Jones","user_id":3681,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"How does the best of view work and what is it's ultimate purpose?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-17T04:41:14Z","excerpt":"Ok <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you answer the above then archive this topic please?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"continous-loading-faq-tos-privacy","topic_id":8390,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Continous loading: FAQ, TOS, Privacy","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-17T04:38:52Z","excerpt":"This kind of upgrade wonkiness seems to happen every time we upgrade Ember, <a href='/users/eviltrout' class='mention'>@eviltrout</a> .. anything we could do to make it less problematic next time?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"new-ember-handlebars-error","topic_id":7354,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"New ember+handlebars error?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-17T01:21:47Z","excerpt":"This seems to have been fixed in a recent commit by <a href='/users/eviltrout' class='mention'>@eviltrout</a> (82c734e). I would however note that I&#x27;m pretty sure there is a bug in Discourse.ajax, it&#x27;s written in a way that suggests that it should accept a result that cannot be parsed as long as the status code is 200, but that doesn&#x27;t seem to b&hellip;","avatar_template":"https://www.gravatar.com/avatar/f7b8e820bd8208d22b44629da8cb4dd4.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/f7b8e820bd8208d22b44629da8cb4dd4.png?s={size}&r=pg&d=identicon","slug":"continous-loading-faq-tos-privacy","topic_id":8390,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"Elegios","name":"Elegios","user_id":6108,"acting_username":"Elegios","acting_name":"Elegios","acting_user_id":6108,"title":"Continous loading: FAQ, TOS, Privacy","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-17T00:27:23Z","excerpt":"I dunno, I can&#x27;t find your post using a phrase search of &quot;standard implementation&quot; either: \n\n[image] \n\nBecause your post contains that exact phrase, I would expect to see this topic in that list, if quoted phrase searching was working... perhaps we should add this to the list <a href='/users/eviltrout' class='mention'>@eviltrout</a>, I don&#x27;t see&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"cant-search-for-phrases-only-single-words","topic_id":1206,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Can't search for phrases, only single words","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-16T23:03:49Z","excerpt":"This is already the case -- except topics that you are tracking with unread replies are prioritized regardless of category. So if you happen to be tracking a bunch of topics outside the current category, which currently have unread posts, you will see those first in Suggested Topics. \n\nNote that&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"category-preferences","topic_id":7581,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Category preferences","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-16T20:59:27Z","excerpt":"I believe <a href='/users/eviltrout' class='mention'>@eviltrout</a> fixed it in this commit \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/e83cd9d111050ffe4b41c31cb2a5aed23c7168d9' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/e83cd9d111050ffe4b41c31cb2a5aed23c7168d9' target='_blank'>FIX: If you don&#x27;t have permission to onebox a post, just show the link instead of crashing out</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>eviltrout</a>\n &hellip;","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"thumbnails-and-original-images-in-posts","topic_id":8321,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":14,"reply_to_post_number":12,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Thumbnails and original images in posts","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-16T19:34:39Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> noticed that some of the modals (bootbox ones) were messed up. My latest PR fixes that by having the bootbox modals use the old style. I plant to try to address those as well, after I fully understand what bootbox is [smiley] \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/pull/1206' class='track-link' target='_blank'>\n            [image]\n          github.co&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"brainstorming-a-mobile-discourse-design","topic_id":4116,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":46,"reply_to_post_number":null,"username":"Ajarn","name":"Brentley Jones","user_id":3681,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"Brainstorming a mobile Discourse design","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-16T18:05:51Z","excerpt":"The Gemfile.lock change happened before your hardcoding commit but, for some reason, wasn&#x27;t changed locally for me. I still have no idea why. Git&#x27;s dumb sometimes. \n\nAnyway, I deployed without that commit and it&#x27;s working fine now, so hardcoding the handlebars-source version doesn&#x27;t seem necessary. &hellip;","avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"reply_to_post_number":21,"username":"davidcelis","name":"davidcelis","user_id":4549,"acting_username":"davidcelis","acting_name":"davidcelis","acting_user_id":4549,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-07-16T17:49:47Z","excerpt":"I was thinking, if we just added a hyperlink directly underneath your username, it could coerce users to fill in about me sections. \n\n[image] \n\nThe rules are simple \n\n\nOnly shows up when you are looking at your avatar/username \nAnd clearly only shows up when its blank \nLink takes you to your edit pr&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"stronger-hinting-to-fill-stuff-in-about-me-field","topic_id":8409,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Stronger hinting to fill stuff in about me field","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-16T17:45:57Z","excerpt":"I think the issue was locally I ran bundle update handlebars-source and it seemed to update it without using the Gemfile somehow. I hard coded the version now and I think it will work. Please let me know!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":21,"reply_to_post_number":20,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-16T17:45:17Z","excerpt":"I think there was just a small history issue where changes to the Gemfile.lock file weren&#x27;t committed as early as they should&#x27;ve been. I&#x27;m redeploying now","avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":20,"reply_to_post_number":19,"username":"davidcelis","name":"davidcelis","user_id":4549,"acting_username":"davidcelis","acting_name":"davidcelis","acting_user_id":4549,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-16T17:44:29Z","excerpt":"Hmm weird, bundle update locally worked but the Gemfile.lock should be the authoritative source. \n\nI&#x27;ve just comitted this: \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/980d258f32a9c94dbb9b2e67f621460a26d6f566' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/980d258f32a9c94dbb9b2e67f621460a26d6f566' target='_blank'>Hard code handlebars release</a>\n    \n\n    \n      b&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":19,"reply_to_post_number":16,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-16T17:41:15Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> The latest version of ember-source (1.0.0.rc6.2) has a hard dependency on handlebars-source = 1.0.0.rc4, though the latest version of handlebars-source is 1.0.12.","avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":16,"reply_to_post_number":12,"username":"davidcelis","name":"davidcelis","user_id":4549,"acting_username":"davidcelis","acting_name":"davidcelis","acting_user_id":4549,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false}]};
+Discourse.URL_FIXTURES["/topics/created-by/eviltrout.json"] = {"categories":[{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":467,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"read_restricted":false,"permission":null},{"id":7,"name":"dev","color":"000","text_color":"FFFFFF","slug":"dev","topic_count":183,"description":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","topic_url":"/t/category-definition-for-dev/1026","hotness":5.0,"read_restricted":false,"permission":null},{"id":10,"name":"howto","color":"76923C","text_color":"FFFFFF","slug":"howto","topic_count":45,"description":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment.","topic_url":"/t/category-definition-for-howto/2629","hotness":5.0,"read_restricted":false,"permission":null}],"users":[{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":4395,"username":"aftakitani","avatar_template":"https://www.gravatar.com/avatar/a26ec726f9f7e819e01797d34ea8dbc6.png?s={size}&r=pg&d=identicon"},{"id":402,"username":"thebrianbarlow","avatar_template":"https://www.gravatar.com/avatar/5ddf2459e8edd6cf52dfff6cb41ca70d.png?s={size}&r=pg&d=identicon"},{"id":2876,"username":"SBauch","avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon"},{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":2702,"username":"ryanflorence","avatar_template":"https://www.gravatar.com/avatar/749001c9fe6927c4b069a45c2a3d68f7.png?s={size}&r=pg&d=identicon"},{"id":9,"username":"tms","avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":2636,"username":"lonnon","avatar_template":"https://www.gravatar.com/avatar/9489ef302fbff6c19bba507d09f8cd1d.png?s={size}&r=pg&d=identicon"}],"topic_list":{"can_create_topic":false,"draft":null,"draft_key":"new_topic","draft_sequence":null,"topics":[{"id":7764,"title":"New: Reply via Email Support!","fancy_title":"New: Reply via Email Support!","slug":"new-reply-via-email-support","posts_count":19,"reply_count":12,"highest_post_number":19,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1227/8f4e5818dfaa56c7.png","created_at":"2013-06-25T11:58:39-04:00","last_posted_at":"2013-07-24T01:56:23-04:00","bumped":true,"bumped_at":"2013-07-24T01:56:23-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":893,"like_count":34,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":19},{"extras":null,"description":"Most Posts","user_id":4395},{"extras":null,"description":"Frequent Poster","user_id":402},{"extras":null,"description":"Frequent Poster","user_id":2876},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":7019,"title":"Discourse Ember Refactorings","fancy_title":"Discourse Ember Refactorings","slug":"discourse-ember-refactorings","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2013-05-30T11:16:36-04:00","last_posted_at":"2013-06-02T11:22:58-04:00","bumped":true,"bumped_at":"2013-06-02T11:22:58-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":862,"like_count":15,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":19},{"extras":null,"description":"Most Posts","user_id":1995},{"extras":null,"description":"Frequent Poster","user_id":2702}]},{"id":4650,"title":"Migrating off Active Record Observers","fancy_title":"Migrating off Active Record Observers","slug":"migrating-off-active-record-observers","posts_count":8,"reply_count":7,"highest_post_number":8,"image_url":null,"created_at":"2013-03-11T11:26:13-04:00","last_posted_at":"2013-05-14T18:40:16-04:00","bumped":true,"bumped_at":"2013-05-14T18:40:16-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":204,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":null,"description":"Original Poster","user_id":19},{"extras":null,"description":"Most Posts","user_id":9},{"extras":null,"description":"Frequent Poster","user_id":1995},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":4960,"title":"Vagrant Updates!","fancy_title":"Vagrant Updates!","slug":"vagrant-updates","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":"http://cdn.discourse.org/assets/emoji/fish.png","created_at":"2013-03-20T22:29:22-04:00","last_posted_at":"2013-03-21T19:06:40-04:00","bumped":true,"bumped_at":"2013-03-21T19:06:40-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":370,"like_count":4,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":null,"description":"Original Poster","user_id":19},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":1995}]},{"id":2918,"title":"New: Updated Docs","fancy_title":"New: Updated Docs","slug":"new-updated-docs","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":null,"created_at":"2013-02-12T12:13:02-05:00","last_posted_at":"2013-02-15T17:57:19-05:00","bumped":true,"bumped_at":"2013-02-15T17:57:19-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":321,"like_count":10,"has_best_of":false,"archetype":"regular","category_id":10,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":19},{"extras":null,"description":"Most Posts","user_id":2636}]}]}};
+Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout&filter=5"] = {"user_actions":[{"action_type":5,"created_at":"2013-07-23T20:53:43Z","excerpt":"Right now the only way to test is to send yourself a message with another\naccount and not log in for 10 minutes. \n\nFor google accounts, the host is always the same as in the example I\nprovided. The username is the full email and includes the domain and that\nis enough for google to work properly. (we&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":14,"reply_to_post_number":13,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T19:24:36Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"modal-when-deleting-post-not-disappearing","topic_id":8600,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Modal when deleting post not disappearing","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-23T19:24:32Z","excerpt":"Okay I&#x27;ve fixed this now:  \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/96af490d7cf92a41d1ac2f849a1880f7c255d64b' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/96af490d7cf92a41d1ac2f849a1880f7c255d64b' target='_blank'>FIX: Deleting posts in bulk was broken.</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>eviltrout</a>\n      on <a href='https://github.com/discourse/discourse/commit/96af490d7cf92a41d1ac2f849a1880f7c255d64b' target='_blank'>06:59PM - 23 Jul 13</a>\n    \n\n    \n      changed 3 files\n      with 3&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"modal-when-deleting-post-not-disappearing","topic_id":8600,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Modal when deleting post not disappearing","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T19:23:49Z","excerpt":"If you&#x27;re in development mode, you might want to clear your tmp directory and see if that helps. It could be a weird caching issue.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"not-finding-any-client-translations","topic_id":8605,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Not finding any client translations","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T18:40:01Z","excerpt":"I&#x27;ve reproduced this, working on a fix!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"modal-when-deleting-post-not-disappearing","topic_id":8600,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Modal when deleting post not disappearing","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T18:22:33Z","excerpt":"That&#x27;s really weird. Can you revert to a previous commit and see if that fixes it?","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"not-finding-any-client-translations","topic_id":8605,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Not finding any client translations","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T15:05:13Z","excerpt":"I&#x27;m not sure if someone else fixed it already, but when I&#x27;m not logged in I can see the category list in the hamburger menu just fine: \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"category-tag-cloud-on-front-page","topic_id":8489,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Category \"Tag\" Cloud on front page","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-23T14:23:43Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"usability-of-about-me-bio","topic_id":882,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Usability of 'About Me' bio","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-23T14:23:36Z","excerpt":"Okay, now the link takes you to a view where you can just edit your about us content. I think it&#x27;s a good solution!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"usability-of-about-me-bio","topic_id":882,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Usability of 'About Me' bio","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-18T21:33:37Z","excerpt":"I deployed a fix for this not too long ago. You might have to refresh your browser to get it!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"suggested-topics-keep-failing-after-posting","topic_id":8482,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Suggested topics keep failing after posting","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-18T15:12:12Z","excerpt":"Stripping out signatures is pretty hard. Right now we&#x27;re using a gem originally open sourced by github for parsing out email replies: \n\n<a href='https://github.com/lawrencepit/email_reply_parser' class='onebox' rel='nofollow'>https://github.com/lawrencepit/email_reply_parser</a> \n\nIt works reasonably well but there are definitely edge cases where it&#x27;s less effective. I am guessing it&#x27;s becau&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"use-regex-to-split-the-reply-by-mail-to-remove-noise","topic_id":8465,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Use regex to split the reply-by mail to remove noise","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-18T14:46:23Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"private-message-button-doesnt-fill-in-user","topic_id":8469,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Private message button doesn't fill in user","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-18T14:46:19Z","excerpt":"I&#x27;ve just made a commit to fix this. It should be deployed later today, thanks for letting me know. \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/910c88c48edf8f2eba0cadc07fcd8bd1541b65f0' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/910c88c48edf8f2eba0cadc07fcd8bd1541b65f0' target='_blank'>FIX: Private Message button wasn&#x27;t populating username</a>\n    \n\n    \n     &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"private-message-button-doesnt-fill-in-user","topic_id":8469,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Private message button doesn't fill in user","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-17T23:44:06Z","excerpt":"Starting with mixins is a good idea. You could mixin a TopicGuardian, PostGuardian, etc for example and then test those in isolation. \n\nThe good news is it&#x27;s fairly well tested now.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"so-you-want-to-help-out-with-discourse","topic_id":3823,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":42,"reply_to_post_number":41,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"So, you want to help out with Discourse","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-17T22:32:12Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"incomplete-view-count-in-thread-after-posting","topic_id":8380,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Incomplete view count in thread after posting","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-17T22:32:09Z","excerpt":"I identified a race condition for this and have deployed a fix. You shouldn&#x27;t see it again!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"incomplete-view-count-in-thread-after-posting","topic_id":8380,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Incomplete view count in thread after posting","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-17T22:31:23Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"cant-visit-own-profile-from-other-users-profile","topic_id":8448,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Can't visit own profile from other user's profile","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-17T22:31:20Z","excerpt":"I&#x27;ve just deployed a fix for this, sorry!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"cant-visit-own-profile-from-other-users-profile","topic_id":8448,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Can't visit own profile from other user's profile","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-17T20:26:39Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"continous-loading-faq-tos-privacy","topic_id":8390,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Continous loading: FAQ, TOS, Privacy","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-17T20:26:34Z","excerpt":"I think you might be right. The check for 200 still raises the rejection promise instead of the resolved promise. It should probably be removed and we should just make sure any non-JSON requests use the html datatype like I did in this fix. \n\nIn the meantime I&#x27;m going to archive this topic!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"continous-loading-faq-tos-privacy","topic_id":8390,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":4,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Continous loading: FAQ, TOS, Privacy","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-17T19:45:01Z","excerpt":"Because we haven&#x27;t gotten around to it yet! I think we might not have had that metric when we first prototyped best_of, or we simply forgot it. We&#x27;d like that a lot.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-does-the-best-of-view-work-and-what-is-its-ultimate-purpose","topic_id":8345,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":7,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How does the best of view work and what is it's ultimate purpose?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-16T17:45:57Z","excerpt":"I think the issue was locally I ran bundle update handlebars-source and it seemed to update it without using the Gemfile somehow. I hard coded the version now and I think it will work. Please let me know!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":21,"reply_to_post_number":20,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-16T17:44:29Z","excerpt":"Hmm weird, bundle update locally worked but the Gemfile.lock should be the authoritative source. \n\nI&#x27;ve just comitted this: \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/980d258f32a9c94dbb9b2e67f621460a26d6f566' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/980d258f32a9c94dbb9b2e67f621460a26d6f566' target='_blank'>Hard code handlebars release</a>\n    \n\n    \n      b&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":19,"reply_to_post_number":16,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-16T17:39:58Z","excerpt":"Another thing to try:  \n\nbundle update handlebars-source","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-16T17:37:06Z","excerpt":"It sounds to me like it&#x27;s not using the right gem when precompiling your templates. The bundle did update with: \n\ngem &#x27;ember-source&#x27;, &#x27;1.0.0.rc6.2&#x27;  \ngem &#x27;handlebars-source&#x27;  \n\n\nYou guys say you&#x27;re bundle updating but maybe it&#x27;s not getting the correct handlebars-source?","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-16T17:28:03Z","excerpt":"You might want to try cleaning your assets out too using rake assets:clean:all. It&#x27;s possible there&#x27;s some files being left in there with the old compiler.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":6,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-16T16:54:50Z","excerpt":"Is this is in development or production mode? \n\nIn development mode, you should clear out your tmp directory and\nclear your browser cache to make sure you&#x27;re getting the latest\ncontent. In production mode, you should always compile your assets\nbefore deploying. \n\n(The issue here is I upgraded ember &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-15T16:55:37Z","excerpt":"The preview digest is passed the current user for the content. That user is then restricted to secured categories in the query: \n\n  # Returns hot topics since a date for display in email digest.\n  def self.for_digest(user, since)\n    Topic\n      .visible\n      .secured(Guardian.new(user))\n      .whe&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"private-forums-or-discussion-threads","topic_id":1764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"reply_to_post_number":19,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Private forums or discussion threads","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-15T16:36:56Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"clicking-on-password-reset-link-redirects-to-login","topic_id":8351,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Clicking on password reset link redirects to /login","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-15T16:36:49Z","excerpt":"I&#x27;ve fixed and deployed this.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"clicking-on-password-reset-link-redirects-to-login","topic_id":8351,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Clicking on password reset link redirects to /login","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-11T18:48:58Z","excerpt":"Hmmm I don&#x27;t think it can be swapped in/out while the processes are running like that. \n\nI&#x27;d be okay with a site_setting to disable email, (off by default obviously) that would just run a noop on any email sends.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":5,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-11T18:47:37Z","excerpt":"We don&#x27;t really have any now but it&#x27;s something we&#x27;ve wanted to do for a long time. \n\nA good first start would be to outline what hooks we should support and what kind of data should be in their payloads.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"event-hooks-for-discourse","topic_id":8296,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Event Hooks for Discourse","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-09T15:03:03Z","excerpt":"The easiest way to do this is to disable sending emails from Rails at all: \n\nconfig.action_mailer.delivery_method = :test  \n\n\nYou put that in your production.rb file, restart sidekiq and you&#x27;re good to go. No emails will go out until you&#x27;re finished your work.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-08T18:52:23Z","excerpt":"I would check the charset of your postgres database and tables first, make sure it&#x27;s correctly set to UTF-8.  \n\nMaybe run a query against the database and see if the data is being correctly stored and retrieved. If it is, then the fault must be higher up the stack.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":14,"reply_to_post_number":12,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Turkish text cannot be posted","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-08T16:24:14Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-08T15:53:19Z","excerpt":"This is really weird - that error seems to indicate you are running an older version of Ruby that doesn&#x27;t support the new hash syntax. You are using our VM image right and haven&#x27;t done something different like recreate it yourself?","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"gemfile-syntax-error","topic_id":8193,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Gemfile syntax error","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-08T15:50:02Z","excerpt":"<a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' target='_blank'>Added `In-Reply-To` and `References` email headers. Additionally removed username from\nemail replies and new posts to keep the subjects collapsable.</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>evil&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"replies-notifications-are-not-grouped-as-conversations-in-my-mua","topic_id":8133,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Replies notifications are not grouped as conversations in my MUA","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-08T14:45:58Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"moving-topics-into-new-topic-doesnt-refresh-participants-list-and-stats","topic_id":4322,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Moving topics into new topic doesn't refresh participants list and stats","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-08T14:45:55Z","excerpt":"Yup I deployed a fix for this. Archiving.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"moving-topics-into-new-topic-doesnt-refresh-participants-list-and-stats","topic_id":4322,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Moving topics into new topic doesn't refresh participants list and stats","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-05T19:05:22Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-pagination-absent-for-large-topics","topic_id":8063,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript pagination absent for large topics","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-05T19:04:41Z","excerpt":"Fixed. Also while in there I fixed a couple long standing bugs with the SEO content [fish]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-pagination-absent-for-large-topics","topic_id":8063,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript pagination absent for large topics","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-05T18:47:26Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"vagrant-up-cant-convert-nil-into-string","topic_id":8113,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Vagrant up: can't convert nil into String","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-05T15:14:10Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"title-shown-in-dock-on-topic-load","topic_id":8082,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Title shown in dock on topic load","deleted":false,"hidden":false,"moderator_action":true},{"action_type":5,"created_at":"2013-07-05T14:59:44Z","excerpt":"I believe I&#x27;ve fixed this now! Sorry about that.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"title-shown-in-dock-on-topic-load","topic_id":8082,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Title shown in dock on topic load","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-05T14:55:34Z","excerpt":"While Discourse has a comprehensive web API that it consumes, it is not really documented and outlined for external use as we are still working on it quite heavily and want to be able to change it quickly. \n\nIf you build on top of the current REST API you might have to deal with changes, so beware [&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"creating-an-discourse-user-through-api","topic_id":8124,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Creating an Discourse User through API","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-05T14:50:53Z","excerpt":"I believe this is an application but that has since been fixed. Can you try upgrading to a newer discourse release? You will likely find it works again!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"cannot-call-method-longdate-of-null-on-v0-9-3-0","topic_id":8128,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Cannot call method longDate of null on v0.9.3.0","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-05T14:50:16Z","excerpt":"Not sure what you mean here. The requests to get new posts should go really fast! In most cases it requests posts by id, which the database does very well. \n\n  \n\nYup, Discourse has supported search engine indexing since <a href='http://eviltrout.com/2013/06/19/adding-support-for-search-engines-to-your-javascript-applications.html' rel='nofollow'>day one</a>.  \n\n  \n\nScreen readers these days can support just about anything al&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-does-just-in-time-loading-work","topic_id":8127,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How does just-in-time loading work?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-05T14:22:59Z","excerpt":"I just tried and I&#x27;m getting the same error. I wonder if one of our recipes is now failing. Looking into it.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"vagrant-up-cant-convert-nil-into-string","topic_id":8113,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Vagrant up: can't convert nil into String","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-05T00:33:29Z","excerpt":"Screen readers these days can <a href='http://words.steveklabnik.com/emberjs-and-accessibility' rel='nofollow'>crawl our site fine</a> [smile] \n\nAdditionally, <a href='/users/codinghorror' class='mention'>@codinghorror</a> previously told me the only people we should really care about are Google. Should we really default to sending 5-8% more for other search engines that nobody is using? Even bing supports the AJAX crawling API&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"reply_to_post_number":11,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript tag and some search engines","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-04T22:13:03Z","excerpt":"I deployed a fix for this. It should work now! \n\nIf not please let us know.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"posting-a-message-doesnt-clear-draft-box","topic_id":8104,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Posting a message doesn't clear draft box","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-04T21:50:41Z","excerpt":"What installation guide did you follow? Do you perhaps have a web server in front of your rails application that is not allowing UTF-8?","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":6,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Turkish text cannot be posted","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-04T21:44:20Z","excerpt":"Oh I see! I apologize that I didn&#x27;t understand this at first. \n\nThis is actually quite a good solution. I remember wanting to try something like this before we went ahead with the current method. \n\nIf google works properly with this approach too, maybe we should consider not putting the content into&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":9,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript tag and some search engines","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-04T19:09:19Z","excerpt":"Wouldn&#x27;t this mean sacrificing Google support? They have strict anti-cloaking laws. \n\nDoes Google not matter to people who want their sites to be indexed by Yandex?","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":6,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Noscript tag and some search engines","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-03T14:19:43Z","excerpt":"Hi there!  \n\nI just tried these same settings and it appeared fine in the admin section. The only thing I can think of is perhaps you didn&#x27;t restart your Rails server before checking? That file is only loaded when the server starts up. \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"trying-to-change-the-email-delivery-method","topic_id":8055,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Trying to Change the Email Delivery Method","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-02T23:26:12Z","excerpt":"Sorry about this! I&#x27;ll fix it as soon as I can.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"last-read-indicator-doesnt-always-update-when-scrolling-to-bottom","topic_id":8047,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":5,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Last read indicator doesn't always update when scrolling to bottom","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-02T15:17:36Z","excerpt":"I&#x27;ve just deployed my post stream update and I believe this issue is fixed! Sorry about that.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"loading-never-stops","topic_id":7554,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":16,"reply_to_post_number":14,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Loading (never stops)","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-07-02T15:15:56Z","excerpt":"I&#x27;ve just deployed the new post stream code. In my tests it seems to link correctly to the post. Can you confirm that it&#x27;s working better now <a href='/users/iszi' class='mention'>@Iszi</a>? Thanks!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","topic_id":5971,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Following links to posts within the same topic jumps to the top","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-06-29T21:08:49Z","excerpt":"Are there any security issues with allowing people to arbitrarily include flash in a forum? I honestly don&#x27;t know -- I&#x27;ve just heard lots of bad stuff about flash in the future.  \n\nThe pull request looks good, I&#x27;d just like to be a little more sure of its safety first. \n\nThoughts <a href='/users/sam' class='mention'>@sam</a> <a href='/users/zogstrip' class='mention'>@zogstrip</a> <a href='/users/neil' class='mention'>@Nei&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"will-there-be-flash-videos-in-the-future","topic_id":7787,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Will there be flash videos in the future?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-06-28T14:34:17Z","excerpt":"You need an address that can accept wildcards. That&#x27;s how our system knows the context of the email being replied to. So for example gmail will accept accountname+anything@gmail.com and send it to accountname@gmail.com.  \n\nSo in that case you&#x27;d use accountname+%{reply_key}@gmail.com as your email ad&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":5,"created_at":"2013-06-27T04:29:17Z","excerpt":"Not yet! We started with polling because it was easiest for our setup, but\nwe&#x27;d love to support web hooks too. It probably won&#x27;t be too hard due to\nthe way the internal API works.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false}]};
+Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout&filter=6,7,9"] = {"user_actions":[{"action_type":7,"created_at":"2013-07-24T05:39:10Z","excerpt":"Good question! <a href='/users/eviltrout' class='mention'>@eviltrout</a>?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":18,"reply_to_post_number":17,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-23T20:57:52Z","excerpt":"wow, that was incredibly easy. was expecting it to get a little hairy somewhere! \n\nreally, really spectacular feature team, great work. \n\nsaves me a number of &quot;hey, this email that you sent didn&#x27;t go where you think it did, you gotta log back in&quot; emails!","avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":14,"username":"SBauch","name":"Sam Bauch","user_id":2876,"acting_username":"SBauch","acting_name":"Sam Bauch","acting_user_id":2876,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-23T19:15:17Z","excerpt":"It didn&#x27;t unfortunately.  \n\nI&#x27;d also been playing with encoding after having some issues, I did what the troubleshooting docs instructed. \n\nSo yeah I&#x27;m really not sure where to begin as I&#x27;m not too clear on how the client side translations works. \n\nIt looks like the JsLocaleHelper module is called b&hellip;","avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon","slug":"not-finding-any-client-translations","topic_id":8605,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"SBauch","name":"Sam Bauch","user_id":2876,"acting_username":"SBauch","acting_name":"Sam Bauch","acting_user_id":2876,"title":"Not finding any client translations","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-23T17:10:58Z","excerpt":"Can we repro this <a href='/users/eviltrout' class='mention'>@eviltrout</a>?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"modal-when-deleting-post-not-disappearing","topic_id":8600,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Modal when deleting post not disappearing","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-22T16:20:05Z","excerpt":"Anyway getting back to the original topic -- we should make sure that valid @name mentions are indeed properly processed in email replies <a href='/users/eviltrout' class='mention'>@eviltrout</a>.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"reply-by-email-doesnt-process-name","topic_id":8508,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Reply by Email doesn't process @name","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-22T07:29:08Z","excerpt":"This should be fixed now with <a href='/users/eviltrout' class='mention'>@eviltrout</a>&#x27;s recent changes to make the user page properly URL-routable, so each section is a unique URL and can be deep linked to.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"going-back-to-profile-activity-page-should-remember-filter-and-scrolling-location","topic_id":6252,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Going back to profile activity page should remember filter and scrolling location","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-22T06:47:52Z","excerpt":"Well, <a href='/users/eviltrout' class='mention'>@eviltrout</a> is working on some other changes to certain sub-tabs of the user page specifically Topics and Favorites, so alternate per-row rendering strategies could bleed in elsewhere at some point too. \n\nWe need Topics and Favorites to render a lot more sensibly first before this minor tweak o&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"like-should-feature-much-less-prominently-on-user-page","topic_id":8555,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"\"Like\" should feature much less prominently on user page","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-20T23:56:48Z","excerpt":"One benefit to running using the thin server is that it&#x27;s running as the discourse user - everything is already self-contained and the web server will have permission to write to the directories as necessary. \n\nHowever, we should be handling this better and reporting an error to the user. \n\nCc: <a href='/users/sam' class='mention'>@Sam</a> &hellip;","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","slug":"new-install-cant-save-custom-modification-to-logo-anyone-else","topic_id":8487,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":13,"reply_to_post_number":10,"username":"supermathie","name":"Michael Brown","user_id":3,"acting_username":"supermathie","acting_name":"Michael Brown","acting_user_id":3,"title":"New Install cant save custom modification to logo anyone else?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-19T19:15:09Z","excerpt":"The line endings issue is essentially unfixable because email fundamentally does not transmit enough information to tell the difference between true EOL and linebreak, without asking for HTML email which we don&#x27;t want to do. \n\nThe @name mention should be fixable though -- <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you add this&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"reply-by-email-doesnt-process-name","topic_id":8508,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Reply by Email doesn't process @name","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-19T14:36:26Z","excerpt":"BlackBerry is actually really nice about this - it puts the reply into a separate div element. Is this something common to a lot of mail clients? \n\nAlternately,  \n\n----- REPLY ABOVE THIS LINE -----\n\n\nis UGLY but it works. Most of the time. Probably.","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","slug":"use-regex-to-split-the-reply-by-mail-to-remove-noise","topic_id":8465,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":2,"username":"supermathie","name":"Michael Brown","user_id":3,"acting_username":"supermathie","acting_name":"Michael Brown","acting_user_id":3,"title":"Use regex to split the reply-by mail to remove noise","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-19T12:17:14Z","excerpt":"The gem actually has everything needed to add additional reply header formats: \n\n\n    \n      \n        <a href='https://github.com/lawrencepit/email_reply_parser/blob/master/lib/email_reply_parser.rb#L128' class='source track-link' target='_blank'>\n          [image] github.com\n        </a>\n      \n    \n    \n    <a href='https://github.com/lawrencepit/email_reply_parser/blob/master/lib/email_reply_parser.rb#L128' target='_blank'>https://github.com/lawrencepit/email_reply_parser/blob/master/lib/email_reply_parser.rb#L128</a>\n    \n      # Now that parsing is done, revers&hellip;","avatar_template":"https://www.gravatar.com/avatar/fb26c121d58a128d9ce405eab59e5b05.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/fb26c121d58a128d9ce405eab59e5b05.png?s={size}&r=pg&d=identicon","slug":"use-regex-to-split-the-reply-by-mail-to-remove-noise","topic_id":8465,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"simonlmn","name":"Simon","user_id":1129,"acting_username":"simonlmn","acting_name":"Simon","acting_user_id":1129,"title":"Use regex to split the reply-by mail to remove noise","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-19T07:17:06Z","excerpt":"That reminds me, we should have fixed that a long time ago.. <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you add that to your list?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"category-tag-cloud-on-front-page","topic_id":8489,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Category \"Tag\" Cloud on front page","deleted":false,"hidden":false,"moderator_action":false},{"action_type":9,"created_at":"2013-07-18T18:40:50Z","excerpt":"Continuing the discussion from <a href='http://meta.discourse.org/t/new-reply-via-email-support/7764'>New: Reply via Email Support!</a>: \n\n  \n\nWe&#x27;re using Google Apps for our @mcneel.com email.  \nThe reply-to address for discourse mails is &quot;discourse+{reply_key}@mcneel.com&quot;  \nThe from address is &quot;ste...@mcneel.com&quot; (obfuscated intentionally) \n\nThe message headers appear to&hellip;","avatar_template":"https://www.gravatar.com/avatar/3baf9989e97ccf45aff1cf61fb730931.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3baf9989e97ccf45aff1cf61fb730931.png?s={size}&r=pg&d=identicon","slug":"reply-by-email-doesnt-work-well-with-google-apps-accounts","topic_id":8476,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"briangillespie","name":"Brian Gillespie","user_id":5483,"acting_username":"briangillespie","acting_name":"Brian Gillespie","acting_user_id":5483,"title":"Reply by Email Doesn't Work well with Google Apps accounts","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-18T14:44:56Z","excerpt":"Now would be a great time for <a href='/users/eviltrout' class='mention'>@eviltrout</a> to look at it then [wink]. I&#x27;m pretty sure this came about after the post stream refactoring.","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"post-stream-sometimes-not-pulling-latest-posts","topic_id":8229,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":9,"username":"Ajarn","name":"Brentley Jones","user_id":3681,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"Post stream sometimes not pulling latest posts","deleted":false,"hidden":false,"moderator_action":false},{"action_type":9,"created_at":"2013-07-18T13:13:59Z","excerpt":"Continuing the discussion from <a href='http://meta.discourse.org/t/new-reply-via-email-support/7764'>New: Reply via Email Support!</a>: \n\n  \n\nOn my Dutch forum this line is included in the forum replies that were added by mail:   \n\n\n  Op 18 juli 2013 10:23 schreef Sander Datema  het volgende: \n\n\nSo Discourse was able to strip the rest op the reply like it should, but didn&hellip;","avatar_template":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s={size}&r=pg&d=identicon","slug":"use-regex-to-split-the-reply-by-mail-to-remove-noise","topic_id":8465,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"Sander78","name":"Sander Datema","user_id":3987,"acting_username":"Sander78","acting_name":"Sander Datema","acting_user_id":3987,"title":"Use regex to split the reply-by mail to remove noise","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-18T08:02:17Z","excerpt":"You&#x27;re right, we should do this -- <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you make sure it&#x27;s on your list?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"usability-of-about-me-bio","topic_id":882,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":7,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Usability of 'About Me' bio","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-17T22:59:07Z","excerpt":"Guardian is fairly big these days, I would probably going about refactoring all the &quot;helper&quot; kind of functionality into a mixin as a first step ... all the method missing magic and ensure magic, then test that in isolation in a well specified way.  \n\n<a href='/users/eviltrout' class='mention'>@eviltrout</a> thoughts?","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"so-you-want-to-help-out-with-discourse","topic_id":3823,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":41,"reply_to_post_number":40,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"So, you want to help out with Discourse","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-17T18:51:15Z","excerpt":"With that known, I see that clickthrough rate on the links isn&#x27;t counted. <a href='/users/eviltrout' class='mention'>@eviltrout</a> is there a reason why not?","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"how-does-the-best-of-view-work-and-what-is-its-ultimate-purpose","topic_id":8345,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":6,"username":"Ajarn","name":"Brentley Jones","user_id":3681,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"How does the best of view work and what is it's ultimate purpose?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-17T04:41:14Z","excerpt":"Ok <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you answer the above then archive this topic please?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"continous-loading-faq-tos-privacy","topic_id":8390,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Continous loading: FAQ, TOS, Privacy","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-17T04:38:52Z","excerpt":"This kind of upgrade wonkiness seems to happen every time we upgrade Ember, <a href='/users/eviltrout' class='mention'>@eviltrout</a> .. anything we could do to make it less problematic next time?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"new-ember-handlebars-error","topic_id":7354,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"New ember+handlebars error?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-17T01:21:47Z","excerpt":"This seems to have been fixed in a recent commit by <a href='/users/eviltrout' class='mention'>@eviltrout</a> (82c734e). I would however note that I&#x27;m pretty sure there is a bug in Discourse.ajax, it&#x27;s written in a way that suggests that it should accept a result that cannot be parsed as long as the status code is 200, but that doesn&#x27;t seem to b&hellip;","avatar_template":"https://www.gravatar.com/avatar/f7b8e820bd8208d22b44629da8cb4dd4.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/f7b8e820bd8208d22b44629da8cb4dd4.png?s={size}&r=pg&d=identicon","slug":"continous-loading-faq-tos-privacy","topic_id":8390,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"Elegios","name":"Elegios","user_id":6108,"acting_username":"Elegios","acting_name":"Elegios","acting_user_id":6108,"title":"Continous loading: FAQ, TOS, Privacy","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-17T00:27:23Z","excerpt":"I dunno, I can&#x27;t find your post using a phrase search of &quot;standard implementation&quot; either: \n\n[image] \n\nBecause your post contains that exact phrase, I would expect to see this topic in that list, if quoted phrase searching was working... perhaps we should add this to the list <a href='/users/eviltrout' class='mention'>@eviltrout</a>, I don&#x27;t see&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"cant-search-for-phrases-only-single-words","topic_id":1206,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Can't search for phrases, only single words","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-16T23:03:49Z","excerpt":"This is already the case -- except topics that you are tracking with unread replies are prioritized regardless of category. So if you happen to be tracking a bunch of topics outside the current category, which currently have unread posts, you will see those first in Suggested Topics. \n\nNote that&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"category-preferences","topic_id":7581,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Category preferences","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-16T20:59:27Z","excerpt":"I believe <a href='/users/eviltrout' class='mention'>@eviltrout</a> fixed it in this commit \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/e83cd9d111050ffe4b41c31cb2a5aed23c7168d9' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/e83cd9d111050ffe4b41c31cb2a5aed23c7168d9' target='_blank'>FIX: If you don&#x27;t have permission to onebox a post, just show the link instead of crashing out</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>eviltrout</a>\n &hellip;","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"thumbnails-and-original-images-in-posts","topic_id":8321,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":14,"reply_to_post_number":12,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Thumbnails and original images in posts","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-16T19:34:39Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> noticed that some of the modals (bootbox ones) were messed up. My latest PR fixes that by having the bootbox modals use the old style. I plant to try to address those as well, after I fully understand what bootbox is [smiley] \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/pull/1206' class='track-link' target='_blank'>\n            [image]\n          github.co&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"brainstorming-a-mobile-discourse-design","topic_id":4116,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":46,"reply_to_post_number":null,"username":"Ajarn","name":"Brentley Jones","user_id":3681,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"Brainstorming a mobile Discourse design","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-16T18:05:51Z","excerpt":"The Gemfile.lock change happened before your hardcoding commit but, for some reason, wasn&#x27;t changed locally for me. I still have no idea why. Git&#x27;s dumb sometimes. \n\nAnyway, I deployed without that commit and it&#x27;s working fine now, so hardcoding the handlebars-source version doesn&#x27;t seem necessary. &hellip;","avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"reply_to_post_number":21,"username":"davidcelis","name":"davidcelis","user_id":4549,"acting_username":"davidcelis","acting_name":"davidcelis","acting_user_id":4549,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-16T17:45:17Z","excerpt":"I think there was just a small history issue where changes to the Gemfile.lock file weren&#x27;t committed as early as they should&#x27;ve been. I&#x27;m redeploying now","avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":20,"reply_to_post_number":19,"username":"davidcelis","name":"davidcelis","user_id":4549,"acting_username":"davidcelis","acting_name":"davidcelis","acting_user_id":4549,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-16T17:41:15Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> The latest version of ember-source (1.0.0.rc6.2) has a hard dependency on handlebars-source = 1.0.0.rc4, though the latest version of handlebars-source is 1.0.12.","avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":16,"reply_to_post_number":12,"username":"davidcelis","name":"davidcelis","user_id":4549,"acting_username":"davidcelis","acting_name":"davidcelis","acting_user_id":4549,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-16T17:39:21Z","excerpt":"Maybe. Which is the right one? Mine is 10.0.12.","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":14,"reply_to_post_number":12,"username":"Ajarn","name":"Brentley Jones","user_id":3681,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-16T17:30:33Z","excerpt":"I&#x27;ve tried a rake assets:clean as well. Then the server gives 404s for each asset as expected. When I then recompile the assets and restart Thins, I get the exact same issue again","avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"davidcelis","name":"davidcelis","user_id":4549,"acting_username":"davidcelis","acting_name":"davidcelis","acting_user_id":4549,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-16T17:07:56Z","excerpt":"This is what I run every time I get latest: \n\n\n  bluepill stop \n  \n  git pull \n  \n  bundle install --without test --deployment \n  \n  RUBY_GC_MALLOC_LIMIT=90000000 RAILS_ENV=production rake db:migrate \n  \n  RUBY_GC_MALLOC_LIMIT=90000000 RAILS_ENV=production rake \n  \n  assets:precompile bluepill start &hellip;","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":3,"username":"Ajarn","name":"Brentley Jones","user_id":3681,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-16T17:03:27Z","excerpt":"Production, and I&#x27;ve run precompile so many times...","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"Ajarn","name":"Brentley Jones","user_id":3681,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-16T16:31:42Z","excerpt":"I&#x27;m getting the following in the Chrome Console with latest... which is causing my forum to be blank \n\nUncaught Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (&gt;= 1.0.0) or downgrade your runtime to an older ve&hellip;","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"latest-doesnt-render-html","topic_id":8415,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"Ajarn","name":"Brentley Jones","user_id":3681,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"Latest doesn't render HTML","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-15T23:00:05Z","excerpt":"Yep just got another one on BBS after replying, <a href='/users/eviltrout' class='mention'>@eviltrout</a> \n\n <a href='http://cdn.discourse.org/uploads/meta_discourse/1414/32e2b8538ceb7ae5.png' class='lightbox'>[image]\n32e2b8538ceb7ae5.png1099x250\n</a>","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"incomplete-view-count-in-thread-after-posting","topic_id":8380,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Incomplete view count in thread after posting","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-15T09:33:53Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> I have seen this, post count goes to N+2 after you post a reply to a topic (happens to me regularly on BB)","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"incomplete-view-count-in-thread-after-posting","topic_id":8380,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Incomplete view count in thread after posting","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-15T07:30:16Z","excerpt":"I confirmed this on dev via a locally created and approved account. It is indeed a bug. The password reset email just redirects you to login, so it doesn&#x27;t work. \n\nThis one is somewhat urgent, <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you work on it tomorrow please?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"clicking-on-password-reset-link-redirects-to-login","topic_id":8351,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":2,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Clicking on password reset link redirects to /login","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-15T06:27:34Z","excerpt":"Hmm <a href='/users/eviltrout' class='mention'>@eviltrout</a> is our digest preview  not correctly stripping out restricted categories?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"private-forums-or-discussion-threads","topic_id":1764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":19,"reply_to_post_number":17,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Private forums or discussion threads","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-09T04:42:39Z","excerpt":"No need to archive as it is no longer a bug. We can pick this up later and discuss whether the functionality is as it should be, or not.. \n\nWhich reminds me, there&#x27;s no visible way for you, or anyone else, to see the audit trail of the edits on the category of the topic. Or the title for that matter&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"archiving-topics-creates-unread-notification-behavior-by-design","topic_id":8210,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":3,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Archiving topics creates unread notification - behavior by design?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-09T04:38:37Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> just implemented clicking the logo to refresh the homepage. enjoy!","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"clicking-on-site-icon-name-in-top-left-does-not-refresh-reload","topic_id":5910,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Clicking on site icon/name in top left does not refresh/reload","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-09T02:06:18Z","excerpt":"<a href='/users/sam' class='mention'>@sam</a> Locale seems to be alright, I can get the turkish locale to run, it&#x27;s debian after all.  \n\n<a href='/users/eviltrout' class='mention'>@eviltrout</a> Thanks, I hadn&#x27;t thought there could be an error with postgres. I&#x27;ll check and let you know.","avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":14,"username":"uyandiren","name":"Uyan Diren","user_id":5939,"acting_username":"uyandiren","acting_name":"Uyan Diren","acting_user_id":5939,"title":"Turkish text cannot be posted","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-08T05:27:40Z","excerpt":"I believe this is fixed now? Can you confirm <a href='/users/eviltrout' class='mention'>@eviltrout</a> and archive this if so?","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"moving-topics-into-new-topic-doesnt-refresh-participants-list-and-stats","topic_id":4322,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Moving topics into new topic doesn't refresh participants list and stats","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-08T05:27:01Z","excerpt":"This should be definitively fixed with <a href='/users/eviltrout' class='mention'>@eviltrout</a>&#x27;s last round of refactorings.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"jump-to-last-post-does-not-work-in-best-of-mode","topic_id":7626,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Jump to last post does not work in \"Best of\" mode","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-08T05:23:29Z","excerpt":"Let&#x27;s try on try: \n\n\n    \n      \n        <a href='http://try.discourse.org/t/funny-pictures-keep-em-clean-folks/62/17' class='track-link' target='_blank'>\n          try.discourse.org\n        </a>\n      \n    \n  \n    [image]<a href='http://try.discourse.org/t/funny-pictures-keep-em-clean-folks/62/17' target='_blank'>Funny pictures (Keep &#x27;em clean, folks!)</a>\n    \n      \n  \n  \n\n\nYep, that looks incorrect. 17 is by a different user and has actual text that should be quoted. <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you take a look next wee&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-07T22:33:25Z","excerpt":"That looks sane, I like the GitHub reference implementation. <a href='/users/eviltrout' class='mention'>@eviltrout</a> can you add those headers to the notification emails next week?  \n\nI also think we should start removing the &quot;in reply to&quot; author from the email title as noted on HTG and elsewhere here -- so that emails can be collapsed by topi&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"replies-notifications-are-not-grouped-as-conversations-in-my-mua","topic_id":8133,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":8,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Replies notifications are not grouped as conversations in my MUA","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-07T19:27:53Z","excerpt":"I guess that it&#x27;s caused by some minor incompatibility with apache2. How would we trace this? Could <a href='/users/eviltrout' class='mention'>@eviltrout</a> please send me a private message so I can  send him the link for the discourse instance (I can&#x27;t send him a msg)?","avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"reply_to_post_number":11,"username":"uyandiren","name":"Uyan Diren","user_id":5939,"acting_username":"uyandiren","acting_name":"Uyan Diren","acting_user_id":5939,"title":"Turkish text cannot be posted","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-07T10:25:00Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> is there any progress on this? any comment or answer would be appreciated. thx in advance : ]","avatar_template":"https://www.gravatar.com/avatar/39458a23c9995b6508a818c78e177063.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/39458a23c9995b6508a818c78e177063.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":7,"username":"braininpain","name":"braininpain","user_id":5949,"acting_username":"braininpain","acting_name":"braininpain","acting_user_id":5949,"title":"Turkish text cannot be posted","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-05T20:16:03Z","excerpt":"Cool, thanks for the answers! \n\n<a href='/users/eviltrout' class='mention'>@eviltrout</a> Sweet article you&#x27;ve got there [smiley] \n\n<a href='/users/fierce' class='mention'>@fierce</a> Yeah, used Chrome&#x27;s Inspector Tool and disabled JS to see the effect.","avatar_template":"https://www.gravatar.com/avatar/e0d279f7079bc28658a68c9aac784fe9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/e0d279f7079bc28658a68c9aac784fe9.png?s={size}&r=pg&d=identicon","slug":"how-does-just-in-time-loading-work","topic_id":8127,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"TheMarkus","name":"Markus Hoff","user_id":5962,"acting_username":"TheMarkus","acting_name":"Markus Hoff","acting_user_id":5962,"title":"How does just-in-time loading work?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-05T15:03:26Z","excerpt":"Looks fixed to me. Thanks!","avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","slug":"title-shown-in-dock-on-topic-load","topic_id":8082,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"BhaelOchon","name":"Bill Ayakatubby","user_id":471,"acting_username":"BhaelOchon","acting_name":"Bill Ayakatubby","acting_user_id":471,"title":"Title shown in dock on topic load","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-05T11:00:29Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a>  Well, I followed the ubuntu guide, and we&#x27;re using apache2 server. (The system is debian wheezy). I made some env changes: \n\nexport LANG=&quot;en_US.UTF-8&quot;\nexport LC_ALL=&quot;en_US.UTF-8&quot;\n\n\nand  \nI made also this change  \n\n$ cat config/environment.rb \n# Load the rails application\nrequire File.exp&hellip;","avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4de19928c5cf095919d7f7e39c9ac869.png?s={size}&r=pg&d=identicon","slug":"turkish-text-cannot-be-posted","topic_id":8091,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":null,"username":"uyandiren","name":"Uyan Diren","user_id":5939,"acting_username":"uyandiren","acting_name":"Uyan Diren","acting_user_id":5939,"title":"Turkish text cannot be posted","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-05T05:50:59Z","excerpt":"Yup, that was it, thanks , now to get on the new reply by email","avatar_template":"https://www.gravatar.com/avatar/de9a910f6c145938e047f77a524df50b.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/de9a910f6c145938e047f77a524df50b.png?s={size}&r=pg&d=identicon","slug":"trying-to-change-the-email-delivery-method","topic_id":8055,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"nick12377","name":"nickj","user_id":5293,"acting_username":"nick12377","acting_name":"nickj","acting_user_id":5293,"title":"Trying to Change the Email Delivery Method","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-05T00:53:51Z","excerpt":"The first part of the video is showing off how cool it is that you don&#x27;t need JS to see the site. I don&#x27;t want to lose that cool.  \n\nAnyway, I will defer to <a href='/users/codinghorror' class='mention'>@codinghorror</a> here on the setting of the default, I strongly want noscript support default on.","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":13,"reply_to_post_number":12,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Noscript tag and some search engines","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-05T00:14:32Z","excerpt":"Personally, I still like having the noscript solution around and enabled by default, I am open to adding a switch to disable it if people want to save the 5-8% page weight (tested this page 10547 vs 11701 gzipped)  \n\nThe noscript solution can work for crawlers that have no idea about that meta t&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Noscript tag and some search engines","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-04T21:51:00Z","excerpt":"This is another regression based on the new post stream stuff <a href='/users/eviltrout' class='mention'>@eviltrout</a> is workng on, sorry about that.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"posting-a-message-doesnt-clear-draft-box","topic_id":8104,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Posting a message doesn't clear draft box","deleted":false,"hidden":false,"moderator_action":false},{"action_type":6,"created_at":"2013-07-04T20:59:10Z","excerpt":"This solution is not cloacking - content always identical to crawlers and users. But, when option is enabled, it add meta-tag into html head section: \n\n&lt;meta name=&quot;fragment&quot; content=&quot;!&quot;&gt;  \n\n\nIf crawler knows what this meta-tag mean, it use this information and get static page adding ?_escaped_fr&hellip;","avatar_template":"https://www.gravatar.com/avatar/8fdf603233c6a4328b8c943e2fabcf62.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/8fdf603233c6a4328b8c943e2fabcf62.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"abbat","name":"Anton Batenev","user_id":5428,"acting_username":"abbat","acting_name":"Anton Batenev","acting_user_id":5428,"title":"Noscript tag and some search engines","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-04T03:40:46Z","excerpt":"Yes, I saw this too, <a href='/users/eviltrout' class='mention'>@eviltrout</a> looks like a regression, probably related to post streamer work.","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"title-shown-in-dock-on-topic-load","topic_id":8082,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Title shown in dock on topic load","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-02T22:34:52Z","excerpt":"This is almost certainly related to the recent massive refactor <a href='/users/eviltrout' class='mention'>@eviltrout</a> did on post stream insertion.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"last-read-indicator-doesnt-always-update-when-scrolling-to-bottom","topic_id":8047,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Last read indicator doesn't always update when scrolling to bottom","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-01T22:44:43Z","excerpt":"Yep we need to change this <a href='/users/eviltrout' class='mention'>@eviltrout</a> so that the text is accurate. \n\nI suggest sticking with the &quot;merge&quot; and &quot;split&quot; terminology so: \n\n\n  I split {count} posts into a new topic: {topicname}  \n\n\nand \n\n\n  I merged {count} posts into an existing topic: {topicname}","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"incorrect-moved-a-post-mod-message","topic_id":8010,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Incorrect \"moved a post\" mod message","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-01T08:33:06Z","excerpt":"This might also be another thing that is fixed by <a href='/users/eviltrout' class='mention'>@eviltrout</a>&#x27;s work on refactoring post loading in the topic this week. Hopefully he can update here after that happens!","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","topic_id":5971,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Following links to posts within the same topic jumps to the top","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-07-01T05:14:47Z","excerpt":"I believe <a href='/users/eviltrout' class='mention'>@eviltrout</a> is about to deploy major fixes in that area this week, and he will update here after that happens.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"loading-never-stops","topic_id":7554,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":14,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Loading (never stops)","deleted":false,"hidden":false,"moderator_action":false},{"action_type":7,"created_at":"2013-06-30T16:01:38Z","excerpt":"Most of your concerns about infinite scrolling come from badly implemented ones. \n\nThe infinite scrolling at Discourse is not one of them. \n\n  \n\nThere&#x27;s a progress bar on the bottom/right of the page that will tell you how long a topic is and where you are: \n\n[image] \n\n  \n\nInfinite scrolling at Disc&hellip;","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"traditional-pagination-vs-best-of-mode","topic_id":8005,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":16,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Traditional pagination vs. \"Best Of\" mode","deleted":false,"hidden":false,"moderator_action":false}]};
+Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout&filter=1"] = {"user_actions":[{"action_type":1,"created_at":"2013-07-23T21:19:11Z","excerpt":"wow, that was incredibly easy. was expecting it to get a little hairy somewhere! \n\nreally, really spectacular feature team, great work. \n\nsaves me a number of &quot;hey, this email that you sent didn&#x27;t go where you think it did, you gotta log back in&quot; emails!","avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":14,"username":"SBauch","name":"Sam Bauch","user_id":2876,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-07-18T21:56:21Z","excerpt":"I&#x27;ll just drop this here: \n\n<a href='https://github.com/cfstras/discourse-konami' class='onebox' rel='nofollow'>https://github.com/cfstras/discourse-konami</a>  \nIt&#x27;s built on <a href='http://snaptortoise.com/konami-js/' rel='nofollow'>Konami-JS</a>, which made this really easy :) \n\nTo Install, add this line to your Gemfile: \n\ngem &#x27;discourse_konami&#x27;, :git =&gt; &#x27;https://github.com/cfstras/discourse-konami&#x27;\n\n\nexecute: \n\n$ bundle install\n$ rake assets:p&hellip;","avatar_template":"https://www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"plugin-the-konami-code","topic_id":8473,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"cfstras","name":"cfstras","user_id":1496,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Plugin: The Konami Code","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-07-17T19:46:22Z","excerpt":"Hi everybody, \n\nI work at Heroku and am managing our little forums experiment. I plan on creating a new fork of Discourse shortly that will contain everything we needed to do to get it running on Heroku. Teaser: it wasn&#x27;t much at all and I have hopes that someday there will be no diversion from mast&hellip;","avatar_template":"https://www.gravatar.com/avatar/8eb7bf96dd877adca0cbd29bb2e47e38.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"anyone-got-this-running-on-heroku-yet","topic_id":625,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":124,"reply_to_post_number":null,"username":"rwdaigle","name":"rwdaigle","user_id":6128,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Anyone got this running on Heroku yet?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-07-16T17:49:47Z","excerpt":"I was thinking, if we just added a hyperlink directly underneath your username, it could coerce users to fill in about me sections. \n\n[image] \n\nThe rules are simple \n\n\nOnly shows up when you are looking at your avatar/username \nAnd clearly only shows up when its blank \nLink takes you to your edit pr&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"stronger-hinting-to-fill-stuff-in-about-me-field","topic_id":8409,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Stronger hinting to fill stuff in about me field","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-07-12T20:52:21Z","excerpt":"And a <a href='http://blog.discourse.org/2013/07/improved-image-handling/'>blog post</a>.","avatar_template":"https://www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"thumbnails-and-original-images-in-posts","topic_id":8321,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"erlend_sh","name":"Erlend Sogge Heggen","user_id":5351,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Thumbnails and original images in posts","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-25T16:01:27Z","excerpt":"Continuing the discussion from <a href='http://meta.discourse.org/t/internationalization-localization/280/90'>Internationalization / localization</a>, which has become a massive, unfocused topic: \n\nLet&#x27;s talk about translation tools and the process for getting translations done. If we were going to adopt a third-party tool to get translations done, which should be used? From the I&hellip;","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"translation-tools-transifex-localeapp","topic_id":7763,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Translation Tools: Transifex? Localeapp?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-25T15:45:31Z","excerpt":"I use 1Password to log in to Discourse sites. You may need to click the + sign to create a new record, but it Works For Me™. \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"add-method-attribute-to-logon-form","topic_id":7741,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":null,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Add method attribute to logon form?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-25T03:03:44Z","excerpt":"I made a bunch of progress today see:  \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/0b94c3c4561e7a6aae11658b3a799407d72ad2af' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/SamSaffron' target='_blank'>\n        [SamSaffron]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/0b94c3c4561e7a6aae11658b3a799407d72ad2af' target='_blank'>fix all sorts of issues with random spec order\nSiteSetting no longer persisted across tests</a>\n    \n\n    \n      by <a href='https://github.com/SamSaffron' target='_blank'>SamSaffron</a>\n      on&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"site-settings-refactoring","topic_id":7687,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Site Settings Refactoring","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-19T13:31:51Z","excerpt":"Andrew  \n\nI am very humbled to have a response from you here, I do appreciate what you created with sugar, when <a href='/users/eviltrout' class='mention'>@eviltrout</a> picked it for Discourse it was not a decision he took on a whim.  \n\nI am super excited you are taking a fresh look at performance, that is fantastic news.  \n\nAfter quite a while&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"getting-rid-of-sugar-js","topic_id":7146,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":7,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Getting rid of sugar.js","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-19T13:31:47Z","excerpt":"Hello, creator of Sugar.js here. \n\nI realize you guys have come to a decision and sad to see you go but that&#x27;s up to you... just want to add my 2 cents: \n\n1: \n\nYou&#x27;re totally right about performance and it&#x27;s something that Sugar has/is/will be devoting more attention to. I have just done a major ref&hellip;","avatar_template":"https://www.gravatar.com/avatar/39255341a51574e9651b1094537e7683.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"getting-rid-of-sugar-js","topic_id":7146,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":null,"username":"l_andrew_l","name":"l_andrew_l","user_id":5610,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Getting rid of sugar.js","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-12T14:09:25Z","excerpt":"Sugar.js is gone. \n\nThis makes me happy. I just don&#x27;t buy that there is this magic need to amend every protoype in the system. It is fragile, risky and generally considered a bad practice, I don&#x27;t buy that you need to wack 100 extra method on Array, String and so on. Also, Sugar unacceptably slow fo&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"getting-rid-of-sugar-js","topic_id":7146,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Getting rid of sugar.js","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-10T20:43:34Z","excerpt":"It was a bug. I fixed it today:","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"unable-to-delete-categories","topic_id":7357,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Unable to delete categories!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-09T16:06:49Z","excerpt":"Your install is a mess, looks like a lot of the requests aren&#x27;t even making it to Discourse: \n\nWhen I try to save preferences, I see this in the chrome console: \n\n\n  PUT <a href='http://convinceyou.com/users/supermathie' rel='nofollow'>http://convinceyou.com/users/supermathie</a> 404 (Not Found) \n\n\nWhen I try to log out: \n\n\n  DELETE <a href='http://convinceyou.com/session/supermathie' rel='nofollow'>http://convinceyou.com/session/supe&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"troubleshooting-failed-discourse-install","topic_id":7292,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"supermathie","name":"Michael Brown","user_id":3,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Troubleshooting failed Discourse install","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-07T18:29:30Z","excerpt":"It&#x27;s actually very tidy if we change the PostCreator constructor and think about pulling the whitelist logic into its own class. The request can stay the same and we get to re-use the filter in other controllers. Something like: \n\n# app/controllers/posts_controller.rb\nclass PostsControllers  \n  &hellip;","avatar_template":"https://www.gravatar.com/avatar/4fafaca2401263fd03b62ff37a157a35.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"ensuring-scalar-values-for-parameters-with-strong-parameters","topic_id":7235,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"reply_to_post_number":10,"username":"chrishunt","name":"Chris Hunt","user_id":247,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Ensuring scalar values for parameters with strong_parameters","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-06T21:28:41Z","excerpt":"So, you want to use S3 to handle image uploads? Here&#x27;s the definitive guide: \n\nS3 registration\n\nHead over to <a href='http://aws.amazon.com/s3/' rel='nofollow'>http://aws.amazon.com/s3/</a> and click on [image]. \n\nDuring the create account process, make sure you provide payment information, otherwise you won&#x27;t be able to use S3. There&#x27;s no registration &hellip;","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-to-set-up-image-uploads-to-s3","topic_id":7229,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How to set up image uploads to S3?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-06T15:07:28Z","excerpt":"The user model is one of our most biggest models, I totally support simplifying and decomposing.  \n\nUsername suggestion stuff can be extracted out. We can introduce a UserCreator like we have a PostCreator and TopicCreator, update_last_seen! maybe can be moved to another spot.  \n\nPR totally welcome. &hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"little-refactor-over-user-model-to-avoid-global-complexity","topic_id":7219,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Little refactor over User model to avoid global complexity","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-06T05:47:36Z","excerpt":"Seems good!  \n\nOf course, I should have checked other big projects, brains are very silly things. My thought was &quot;oh, I don&#x27;t know if this is true, I&#x27;ll look at Discourse!&quot; And rather than keep looking, I just stopped there.","avatar_template":"https://www.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-the-gpl-and-per-file-notice","topic_id":7208,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"steveklabnik","name":"steveklabnik","user_id":5413,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse, the GPL, and per-file notice","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-02T15:23:14Z","excerpt":"I got Ember.Control from wycats :)","avatar_template":"https://www.gravatar.com/avatar/749001c9fe6927c4b069a45c2a3d68f7.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-ember-refactorings","topic_id":7019,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"ryanflorence","name":"ryanflorence","user_id":2702,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse Ember Refactorings","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-06-02T15:22:11Z","excerpt":"This is excellent <a href='/users/eviltrout' class='mention'>@eviltrout</a>!   \n\nJust one remark, regarding this issue:    \n\nWhen a view is enough, I really like what <a href='/users/ryanflorence' class='mention'>@ryanflorence</a> is doing in his screencasts with his Control view: \n\nEmber.Control = Ember.View.extend({  \n  init: function() {\n    this._super();\n    this.set(&#x27;context&#x27;, this);\n  }\n&hellip;","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-ember-refactorings","topic_id":7019,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse Ember Refactorings","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-05-31T16:58:10Z","excerpt":"For the feature I was working on yesterday, <a href='/users/codinghorror' class='mention'>@codinghorror</a> wanted a rather complex sentence.  \n\n&quot;There is 1 unread and 9 new topics remaining, or browse other topics in [category]&quot; \n\nThis seemingly simple sentence was a royal nightmare to localize with our existing localization system. Think through &hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"message-format-support-for-localization","topic_id":7035,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Message Format support for localization","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-05-31T16:58:07Z","excerpt":"I know this isn&#x27;t really the point of your post, but I don&#x27;t think that&#x27;s correct. At least, it seems super-awkward to this American. Is it possible to rewrite the sentence entirely? Maybe something like this: \n\n\n  You have 1 unread topic and 9 new topics left, or browse other topics in [categor&hellip;","avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"message-format-support-for-localization","topic_id":7035,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"BhaelOchon","name":"Bill Ayakatubby","user_id":471,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Message Format support for localization","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-05-28T14:45:39Z","excerpt":"I believe you should use the uncategorized_name site setting for that.","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-to-localize-the-uncategorized-category-name","topic_id":6947,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How to localize the “uncategorized” category name","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-05-24T14:09:01Z","excerpt":"I&#x27;m digging into the Topic class along the same lines. I love cleaning, simplifying, and good OO design.","avatar_template":"https://www.gravatar.com/avatar/985ff04dc441ad87b0cefcd31823575d.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"so-you-want-to-help-out-with-discourse","topic_id":3823,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":29,"reply_to_post_number":null,"username":"mattvanhorn","name":"Matt Van Horn","user_id":5103,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"So, you want to help out with Discourse","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-05-17T03:39:29Z","excerpt":"I got this question on twitter and wanted to touch on it here. \n\n\n    \n      \n        <a href='https://twitter.com/nycplayer/status/335114964836679681' class='track-link' target='_blank'>\n          [image] twitter.com\n        </a>\n      \n    \n  \n    [image]@nycplayer\n\n    @samsaffron Want to start helping w/ Discourse, is it OK w/ you to make PRs for minor stuff like changing !foo.present? to foo.blank&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"where-does-discourse-stand-on-minor-refactoring-prs","topic_id":6677,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Where does Discourse stand on minor refactoring PRs","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-04-10T01:35:32Z","excerpt":"I have seen some twittering by <a href='/users/robconery' class='mention'>@robconery</a> that I would like to respond to here as opposed to on twitter. \n\n\n    \n      \n        <a href='https://twitter.com/robconery/status/321772134366056449' class='track-link' target='_blank'>\n          [image] twitter.com\n        </a>\n      \n    \n\n  \n    [image]\n      <a href='https://twitter.com/robconery'>\n        @robconery\n      </a>\n    \n\n    I like the Discourse  project a lot, but using it as a starti&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-as-your-first-rails-app","topic_id":5751,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse as Your First Rails App","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-04-08T23:58:19Z","excerpt":"Yeah. I&#x27;m hoping that we can minimize the tech support questions though - I&#x27;d rather have interesting discussion than boring tech support.","avatar_template":"https://www.gravatar.com/avatar/b0b1ce3a4e0a77abd157ec0309b72922.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"mixing-discussion-with-q-a","topic_id":5684,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"geek","name":"Lowell Heddings","user_id":8,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"mixing discussion with Q&A","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-04-08T23:56:01Z","excerpt":"Hi, \n\nWe have just released a new version 0.8.5 of Discourse with the latest updates and fixes. It is available from: \n\n<a href='http://bitnami.com/stack/discourse' class='onebox' rel='nofollow'>http://bitnami.com/stack/discourse</a> \n\nIt also ships Git now so you can maintain up-to-date the code from the repository. \n\nWe have also written a quick guide for syncing Discourse w&hellip;","avatar_template":"https://www.gravatar.com/avatar/a9355c49149e2788c3373b26289dbca0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-as-part-of-bitnami","topic_id":3905,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":31,"reply_to_post_number":null,"username":"wojciechka","name":"wojciechka","user_id":4369,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse as part of BitNami","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-04-03T22:54:52Z","excerpt":"It’s been almost exactly two months since <a href='http://www.codinghorror.com/blog/2013/02/civilized-discourse-construction-kit.html' rel='nofollow'>we launched Discourse</a>, and I’m pleased to announce that yesterday we launched the first of our three partners: \n\nThat’s right, <a href='http://www.howtogeek.com/142551/building-the-how-to-geek-community-the-discourse-project/' rel='nofollow'>How-To Geek</a>! \n\nThis topic is for comments on the original blog entry, at <a href='http://blog.discourse.org/2013/04/our-first-partner-how-to-geek/'>http://blog.discourse.org/2013/04/our-first-partner-how-to&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"our-first-partner-how-to-geek","topic_id":5575,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Our First Partner: How-To Geek","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-04-01T19:12:09Z","excerpt":"Yeah the tutorial purposefully glosses over the rails server side stuff, but links to the controller on github- \n\n \n\n    <a href='https://github.com/discourse/discourse/blob/master/app/controllers/admin/reports_controller.rb' class='source' target='_blank'>\n      [image] github.com\n    </a>\n    \n    <a href='https://github.com/discourse/discourse/blob/master/app/controllers/admin/reports_controller.rb' target='_blank'>https://github.com/discourse/discourse/blob/master/app/controllers/admin/reports_controller.rb</a>\n    require_dependency &#x27;report&#x27;\n\nclass Admi&hellip;","avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"issues-with-adding-routes","topic_id":5422,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":6,"username":"SBauch","name":"Sam Bauch","user_id":2876,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Issues with adding routes","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-04-01T15:32:35Z","excerpt":"This <a href='https://github.com/discourse/discourse/pull/597' rel='nofollow'>pull request</a> fixes it [wink]","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"storing-images-on-s3","topic_id":3370,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":9,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Storing images on S3","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-24T18:12:06Z","excerpt":"<a href='https://github.com/sdsykes/slim_scrooge' rel='nofollow'>Slim Scrooge</a> monitors your queries and modifies the select list to only include required columns. May be either of use in itself or for ideas on reducing select * overhead.","avatar_template":"https://www.gravatar.com/avatar/f0254f5e74f0733c9538d6095afac235.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"tuning-ruby-and-rails-for-discourse","topic_id":4126,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"reply_to_post_number":10,"username":"all4miller","name":"all4miller","user_id":4052,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Tuning Ruby and Rails for Discourse","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-22T13:59:27Z","excerpt":"Nice catch! This <a href='https://github.com/discourse/discourse/pull/524' rel='nofollow'>pull request</a> fixes it [wink]","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"opengraph-tags-not-fully-sanitized","topic_id":4992,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"OpenGraph tags not fully sanitized","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-22T13:59:25Z","excerpt":"The og:description meta tag is currently getting corrupted with DOCTYPE information which is not being stripped out cleanly. \n\nlib/summarize.rb is currently using the ActionView::Helpers summarize method to strip HTML tags, but this fails to deal with DOCTYPE entries. \n\nSince the Sanitize Gem is alr&hellip;","avatar_template":"https://www.gravatar.com/avatar/44d0a0aa228f242b5ae82aaed237312b.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"opengraph-tags-not-fully-sanitized","topic_id":4992,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"Ethos","name":"Terry Cox","user_id":3634,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"OpenGraph tags not fully sanitized","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-21T20:50:22Z","excerpt":"I have started working on a Danish translation. If you know the language, feel free to help out. You can track my progress here: <a href='https://github.com/discourse/discourse/pull/493' rel='nofollow'>https://github.com/discourse/discourse/pull/493</a>","avatar_template":"https://www.gravatar.com/avatar/2c3b9882e6898958b892a218b5493af9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internationalization-localization","topic_id":280,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":77,"reply_to_post_number":null,"username":"mikl","name":"Mikkel Høgh","user_id":2753,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Internationalization / localization","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-19T21:17:01Z","excerpt":"And they put us in front of phpBB too [hammer]","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-in-the-news","topic_id":4911,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse in the news...","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-14T14:04:52Z","excerpt":"I think the answer here is both. \n\nAs <a href='/users/eviltrout' class='mention'>@eviltrout</a> said, we should include the &quot;top 10&quot; login strategies that people are likely to want. You can see from <a href='http://meta.stackoverflow.com/a/170348' rel='nofollow'>recent Stack Exchange data</a> that beyond local logins, Google, Facebook (and probably Twitter), most everything else is a tiny percentage of the total&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"adding-additional-omniauth-strategies-via-plugin","topic_id":4290,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Adding additional Omniauth strategies via plugin?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-13T22:39:06Z","excerpt":"Continuing the discussion from <a href='http://meta.discourse.org/t/alternative-non-ajax-way-to-login-so-that-browser-password-manager-can-save-the-login-credentials/2257/7'>Alternative (non-ajax) way to login, so that browser password manager can save the login credentials</a>: \n\nSince Discourse&#x27;s login form was being rendered only when you click the login button, browsers weren&#x27;t asking to save your password. They only see forms that are ren&hellip;","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"login-support-for-browser-password-managers","topic_id":4738,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Login support for browser password managers","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-13T22:14:33Z","excerpt":"This should do it: \n\nuser = User.where(username: &#x27;xyz&#x27;).first  \nemail_token = user.email_tokens.create(email: user.email)  \nEmailToken.confirm( email_token.token )","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"is-there-a-continuing-guide-for-post-installation-steps","topic_id":4586,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Is there a continuing guide for post installation steps?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-13T03:39:58Z","excerpt":"Feel free to comment on the blog, too, but I wanted to open this up to a fuller discussion here as well: \n\n<a href='http://blog.discourse.org/2013/03/the-universal-rules-of-civilized-discourse/' class='onebox'>http://blog.discourse.org/2013/03/the-universal-rules-of-civilized-discourse/</a> \n\n\n  The principles in the <a href='http://meta.discourse.org/faq'>default Discourse community behavior FAQ</a> were distilled, as best we could, from the comm&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"the-universal-rules-of-civilized-discourse","topic_id":4705,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"The Universal Rules of Civilized Discourse","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-11T16:25:08Z","excerpt":"I am working on the Norwegian version of the translated files.","avatar_template":"https://www.gravatar.com/avatar/097f9f15bb97c2d6b8392f1858a7d8a8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internationalization-localization","topic_id":280,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":69,"reply_to_post_number":null,"username":"Andersos","name":"Anders Sandvik","user_id":3403,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Internationalization / localization","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-11T16:24:11Z","excerpt":"I am about to issue a pull-request for a first translation of Discourse into German. While doing it over the weekend, I came across a simple issue that renders proper translation of some phrases impossible: in the code, phrases are composed of too fine-grained units. \n\nTake this simple example of a &hellip;","avatar_template":"https://www.gravatar.com/avatar/1753724263a5dee3e38790e6ac3d685c.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internationalization-localization","topic_id":280,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":68,"reply_to_post_number":null,"username":"potthast","name":"Martin Potthast","user_id":3620,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Internationalization / localization","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-11T16:23:51Z","excerpt":"I&#x27;d like to throw a different perspective out there regarding this conversation. So far, the discussion seems to have focused on the performance impact of additional omniauth providers. While this is valid, it may end up being slightly less impactful than the code changes that need to be added to th&hellip;","avatar_template":"https://www.gravatar.com/avatar/39645efbd222c6c512f7ba0d9abadbbf.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"adding-additional-omniauth-strategies-via-plugin","topic_id":4290,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":null,"username":"devigned","name":"David Justice","user_id":3502,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Adding additional Omniauth strategies via plugin?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-11T00:26:16Z","excerpt":"<a href='/users/eviltrout' class='mention'>@eviltrout</a> and <a href='/users/zogstrip' class='mention'>@zogstrip</a> were wondering why I made this commit: \n\n \n    \n      \n        <a href='https://github.com/discourse/discourse/commit/22f810091938f0b789b813a440581793640265c2' class='track-link' target='_blank'>\n          [image] github.com\n        </a>\n      \n    \n  \n    <a href='https://github.com/SamSaffron' target='_blank'>[SamSaffron]</a>\n    <a href='https://github.com/SamSaffron' target='_blank'>SamSaffron</a>\n    requiring is mega expensive, lets not do it every request.\n    Changed 1 files with 1 additions and 1 deletions.\n    \n   &hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"pattern-for-defer-loading-gems-and-profiling-with-perftools-rb","topic_id":4629,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Pattern for defer loading gems and profiling with perftools.rb","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-09T00:32:08Z","excerpt":"Yes, my github username is tangramor and I committed the translation work early today.  \nThe should be some minor problems in the formatted emails, and I haven&#x27;t tested them yet.","avatar_template":"https://www.gravatar.com/avatar/645454e097898e3f0d9a54c699995678.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internationalization-localization","topic_id":280,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":66,"reply_to_post_number":65,"username":"tattoo","name":"Tattoo","user_id":2995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Internationalization / localization","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-07T15:10:49Z","excerpt":"You are right, I checked out the newest code and it works now, thank you! \n\nI am working on the Simplified Chinese localization, if there is anybody want to do the same thing, we can work together. \n\nAnd for Discourse, I have decided to give it a Chinese name: 论道","avatar_template":"https://www.gravatar.com/avatar/645454e097898e3f0d9a54c699995678.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internationalization-localization","topic_id":280,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":61,"reply_to_post_number":60,"username":"tattoo","name":"Tattoo","user_id":2995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Internationalization / localization","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-06T15:23:16Z","excerpt":"I had forgotten how ridiculous Google Wave was. Anyone who says Discourse is &quot;too noisy&quot;, well, I assume they have never been to any other forum software in their entire lives and certainly have never seen Google Wave in &#x27;action&#x27;. And I use the term loosely.. \n\nOne caveat here is that there are actu&hellip;","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"did-you-guys-consider-other-design-patterns-around-quoting","topic_id":4343,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Did you guys consider other design patterns around quoting?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-06T15:19:59Z","excerpt":"Just submitted a <a href='https://github.com/discourse/discourse/pull/363' rel='nofollow'>pull request</a> solving this issue [wink]","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"autofocus-in-insert-image-dialog-on-the-web-tab","topic_id":4410,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Autofocus in \"Insert image\" dialog, \"On the web\" tab","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-06T15:13:23Z","excerpt":"A very cheap fix, based on some of my work here: \n\n \n\n\nOur test suite runs on a debian VM, I played with various knobs to find the fastest way to run our tests, our baseline was 4:57 mins to run all our tests on 1.9.3 - p392 \n\nRAILS_ENV=test RUBY_GC_MALLOC_LIMIT=50000000 LD_PRELOAD=/usr/lib/libtcma&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-can-we-speed-up-our-test-suite","topic_id":3531,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":10,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How can we speed up our test suite?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-05T20:44:19Z","excerpt":"It depends on what you&#x27;re comfortable with - have you deployed a rails application to production? Are you comfortable with rolling back commits if there&#x27;s a regression that gets pushed to master? \n\nAside from some initial setup, it&#x27;s been relatively painless for me. I have a handful of commits where&hellip;","avatar_template":"https://www.gravatar.com/avatar/1fb5ede8d649e85f33f38b8f290c59e4.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-bloody-is-the-bleeding-edge","topic_id":4471,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"jcsims","name":"Chris Sims","user_id":639,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"How Bloody is the Bleeding Edge?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-05T15:43:16Z","excerpt":"Okay here&#x27;s what I made today. <a href='https://dl.dropbox.com/u/19678539/discourse_mobile.pdf' rel='nofollow'>https://dl.dropbox.com/u/19678539/discourse_mobile.pdf</a> \n\nIncluded screens: \n\n\nTopic view\nList topics view\nHome page\nMenu open\nAfter you guys give feedback, I&#x27;m not sure if I should move to the CSS or continue mocking up the rest of the screens: \n\n\nNew reply and topic\nM&hellip;","avatar_template":"https://www.gravatar.com/avatar/b3cc0833590c80e6335edd04cacfc734.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"brainstorming-a-mobile-discourse-design","topic_id":4116,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"rahilsondhi","name":"Rahil Sondhi","user_id":3160,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Brainstorming a mobile Discourse design","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-04T18:48:59Z","excerpt":"Awesome!  We&#x27;re on it, hope to have something within the week.","avatar_template":"https://www.gravatar.com/avatar/5810c72f30b0ab202823d8c26460c39d.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"please-add-persona-as-an-authentication-option","topic_id":1420,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":null,"username":"lloydhilaiel","name":"lloydhilaiel","user_id":2575,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Please add Persona as an authentication option","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-04T14:51:53Z","excerpt":"Hey Sam, thanks for the info. \n\nI guess we fixed the hash thing on master, but it wasn&#x27;t backported to 3-2-stable.  I&#x27;ve backported it here: \n\n \n    \n      \n        <a href='https://github.com/rails/rails/commit/d2b9862b247693af16ad00e56d4510ef460bcea7' class='track-link' target='_blank'>\n          [image] github.com\n        </a>\n      \n    \n  \n    <a href='https://github.com/spastorino' target='_blank'>[spastorino]</a>\n    <a href='https://github.com/spastorino' target='_blank'>spastorino</a>\n    Freeze columns only once per Result\n\nConflic&hellip;","avatar_template":"https://www.gravatar.com/avatar/f29327647a9cff5c69618bae420792ea.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"tuning-ruby-and-rails-for-discourse","topic_id":4126,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":null,"username":"tenderlove","name":"tenderlove","user_id":3386,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Tuning Ruby and Rails for Discourse","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-01T22:48:50Z","excerpt":"Just in case that anybody else is interested, we&#x27;re working with <a href='/users/gururea' class='mention'>@gururea</a> in a Spanish translation here: <a href='https://github.com/dacap/discourse/tree/spanish' rel='nofollow'>https://github.com/dacap/discourse/tree/spanish</a>","avatar_template":"https://www.gravatar.com/avatar/ec0ebc7c17f649d03ee78d4eba56ef73.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internationalization-localization","topic_id":280,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":58,"reply_to_post_number":52,"username":"dacap","name":"David Capello","user_id":1275,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Internationalization / localization","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-03-01T20:24:16Z","excerpt":"I think the link you want is here: \n\n[image] \n\nThe admin button on a user&#x27;s profile takes you to their profile page in admin.  I guess that&#x27;s not clear from the button name though.","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"admin-button-should-direct-to-admin","topic_id":4292,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Admin button should direct to /admin","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-02-27T20:20:40Z","excerpt":"Here are some quick raw notes I would like to flesh out to a blog post, eventually.  \n\nBeen noticing performance on the front page of Discourse is rather bad, after digging in with MiniProfiler I notices lots of GCs are hit for a single page view. I ran some tests in production with a few settings a&hellip;","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"tuning-ruby-and-rails-for-discourse","topic_id":4126,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Tuning Ruby and Rails for Discourse","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-02-26T22:39:45Z","excerpt":"<a href='https://github.com/discourse/discourse/commit/cd6c1de5b034b8952893adbc6bdb2ba2fd3ed858' rel='nofollow'>I just added some site settings</a> that will get plugged into the default terms of service. company_full_name, company_short_name, company_domain. \n\nYou can always customize the heck out of the TOS by putting your own document in app/views/static/tos.html.erb after a deploy to your server.","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"usage-of-tos-and-privacy-policy-in-discourse-powered-forums","topic_id":4004,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"Neil","name":"Neil","user_id":2,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Usage of TOS and Privacy Policy in discourse powered forums","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-02-15T22:56:37Z","excerpt":"In a recent commit, the docs were all moved into their own docs folder, so the above link to the advanced guide is broken. It can now be found at <a href='https://github.com/discourse/discourse/blob/master/docs/DEVELOPER-ADVANCED.md' rel='nofollow'>Discourse Advanced Developer Install Guide</a>. \n\nAlso, thank you for the details on how you created your Vagrant VM. I hadn&#x27;t heard of Vagrant before I start&hellip;","avatar_template":"https://www.gravatar.com/avatar/9489ef302fbff6c19bba507d09f8cd1d.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-updated-docs","topic_id":2918,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"lonnon","name":"Lonnon Foster","user_id":2636,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Updated Docs","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-02-15T22:21:51Z","excerpt":"Over the past few days I&#x27;ve been working on <a href='https://github.com/sud0n1m/discourse-chef' rel='nofollow'>chef scripts</a> to get a server ready for discourse in production. Last night I got a working version of my <a href='https://gist.github.com/sud0n1m/4953154' rel='nofollow'>capistrano scripts</a> to make it easy to deploy. \n\nBoth are still works in progress, but what&#x27;s nice is now they are set up, I can make changes pretty eas&hellip;","avatar_template":"https://www.gravatar.com/avatar/4cfb483116a822652d698dce303ec842.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"getting-ready-for-production-notes","topic_id":3080,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"colin","name":"colin","user_id":1674,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Getting ready for production - Notes","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-02-15T22:19:45Z","excerpt":"Two points in favor of JavaScript: \n\nEvery CoffeeScript developer knows JavaScript. The inverse is not true. Because CoffeeScript emits JavaScript, and any debugging you do in the browser is in JavaScript, by definition CoffeeScript developers must have at least a passing familiarity with JavaScrip&hellip;","avatar_template":"https://www.gravatar.com/avatar/9bf3a766e037b9d5a4da0a6f9d0f4f68.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"is-it-better-for-discourse-to-use-javascript-or-coffeescript","topic_id":3153,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":null,"username":"tomdale","name":"Tom","user_id":23,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Is it better for Discourse to use JavaScript or CoffeeScript?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":1,"created_at":"2013-02-15T20:48:23Z","excerpt":"Alright, my designer friend at work whipped this up in about 10 mins.  It&#x27;s a good starting point. \n\n<a href='http://meta.discourse.org/uploads/meta_discourse/286/4a477a22223c7fde.jpeg' target='_blank'>[image]</a>","avatar_template":"https://www.gravatar.com/avatar/2984ff3f6ddddffea016b22341d2e032.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"notification-styling-formatting-leaves-much-to-be-desired","topic_id":3128,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"meenie","name":"Cody Lundquist","user_id":2475,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Notification styling/formatting leaves much to be desired","deleted":false,"hidden":false,"moderator_action":false}]};
+Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout&filter=2"] = {"user_actions":[{"action_type":2,"created_at":"2013-07-23T17:08:15Z","excerpt":"I&#x27;m not sure if someone else fixed it already, but when I&#x27;m not logged in I can see the category list in the hamburger menu just fine: \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"category-tag-cloud-on-front-page","topic_id":8489,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Category \"Tag\" Cloud on front page","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-19T14:37:03Z","excerpt":"Stripping out signatures is pretty hard. Right now we&#x27;re using a gem originally open sourced by github for parsing out email replies: \n\n<a href='https://github.com/lawrencepit/email_reply_parser' class='onebox' rel='nofollow'>https://github.com/lawrencepit/email_reply_parser</a> \n\nIt works reasonably well but there are definitely edge cases where it&#x27;s less effective. I am guessing it&#x27;s becau&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon","slug":"use-regex-to-split-the-reply-by-mail-to-remove-noise","topic_id":8465,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"supermathie","acting_name":"Michael Brown","acting_user_id":3,"title":"Use regex to split the reply-by mail to remove noise","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-19T08:36:20Z","excerpt":"While Discourse has a comprehensive web API that it consumes, it is not really documented and outlined for external use as we are still working on it quite heavily and want to be able to change it quickly. \n\nIf you build on top of the current REST API you might have to deal with changes, so beware [&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/57cbb6a2e56bfe02ae46522889961b86.png?s={size}&r=pg&d=identicon","slug":"creating-an-discourse-user-through-api","topic_id":8124,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"Chinh_Xuan_Bui","acting_name":"Chinh_Xuan_Bui","acting_user_id":5966,"title":"Creating an Discourse User through API","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-18T16:22:43Z","excerpt":"Stripping out signatures is pretty hard. Right now we&#x27;re using a gem originally open sourced by github for parsing out email replies: \n\n<a href='https://github.com/lawrencepit/email_reply_parser' class='onebox' rel='nofollow'>https://github.com/lawrencepit/email_reply_parser</a> \n\nIt works reasonably well but there are definitely edge cases where it&#x27;s less effective. I am guessing it&#x27;s becau&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"use-regex-to-split-the-reply-by-mail-to-remove-noise","topic_id":8465,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Use regex to split the reply-by mail to remove noise","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-17T19:45:32Z","excerpt":"Because we haven&#x27;t gotten around to it yet! I think we might not have had that metric when we first prototyped best_of, or we simply forgot it. We&#x27;d like that a lot.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"how-does-the-best-of-view-work-and-what-is-its-ultimate-purpose","topic_id":8345,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":8,"reply_to_post_number":7,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"How does the best of view work and what is it's ultimate purpose?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-12T11:46:37Z","excerpt":"Hmmm I don&#x27;t think it can be swapped in/out while the processes are running like that. \n\nI&#x27;d be okay with a site_setting to disable email, (off by default obviously) that would just run a noop on any email sends.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":5,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"cfstras","acting_name":"cfstras","acting_user_id":1496,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-12T09:41:05Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/038e2caac4482e97ba6b24c3a88b86ff.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"lightyear","acting_name":"Benjamin Kampmann","acting_user_id":6060,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-11T04:08:30Z","excerpt":"Oh I see! I apologize that I didn&#x27;t understand this at first. \n\nThis is actually quite a good solution. I remember wanting to try something like this before we went ahead with the current method. \n\nIf google works properly with this approach too, maybe we should consider not putting the content into&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/cf99a7295aafa43c75ce25668b24df29.png?s={size}&r=pg&d=identicon","slug":"noscript-tag-and-some-search-engines","topic_id":8078,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":9,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"cerberus","acting_name":"Alejandro Petroff","acting_user_id":4757,"title":"Noscript tag and some search engines","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-10T15:15:38Z","excerpt":"The easiest way to do this is to disable sending emails from Rails at all: \n\nconfig.action_mailer.delivery_method = :test  \n\n\nYou put that in your production.rb file, restart sidekiq and you&#x27;re good to go. No emails will go out until you&#x27;re finished your work.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"cfstras","acting_name":"cfstras","acting_user_id":1496,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-09T16:04:02Z","excerpt":"The easiest way to do this is to disable sending emails from Rails at all: \n\nconfig.action_mailer.delivery_method = :test  \n\n\nYou put that in your production.rb file, restart sidekiq and you&#x27;re good to go. No emails will go out until you&#x27;re finished your work.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-09T15:07:02Z","excerpt":"The easiest way to do this is to disable sending emails from Rails at all: \n\nconfig.action_mailer.delivery_method = :test  \n\n\nYou put that in your production.rb file, restart sidekiq and you&#x27;re good to go. No emails will go out until you&#x27;re finished your work.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"temporarily-disabling-e-mail-notifications","topic_id":7955,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Temporarily disabling E-Mail notifications","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-09T11:38:34Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/42ca770299eab441ddabae5a1ad5f799.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"phanimahesh","acting_name":"J Phani Mahesh","acting_user_id":5477,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-08T21:25:43Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-08T21:24:36Z","excerpt":"<a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' target='_blank'>Added `In-Reply-To` and `References` email headers. Additionally removed username from\nemail replies and new posts to keep the subjects collapsable.</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>evil&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"replies-notifications-are-not-grouped-as-conversations-in-my-mua","topic_id":8133,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Replies notifications are not grouped as conversations in my MUA","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-08T17:34:42Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/1c52629e9379bb4d8108634ce9ca4d9e.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"hugo","acting_name":"Hugo","acting_user_id":2935,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-08T17:28:10Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-08T16:25:17Z","excerpt":"I&#x27;ve just fixed it, deploy should come later today. \n\nThe issue was our opengraph code was returning the first post in the stream, which was not necessarily the one you requested.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"onebox-of-discourse-post-shows-wrong-content","topic_id":8175,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"Onebox of discourse post shows wrong content","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-08T16:05:41Z","excerpt":"<a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' class='track-link' target='_blank'>\n            [image]\n          github.com\n        </a>\n      \n    \n\n  \n      <a href='https://github.com/eviltrout' target='_blank'>\n        [eviltrout]</a>\n\n    \n      <a href='https://github.com/discourse/discourse/commit/013ad0fdda04f24088d0990871074736e1dc60b9' target='_blank'>Added `In-Reply-To` and `References` email headers. Additionally removed username from\nemail replies and new posts to keep the subjects collapsable.</a>\n    \n\n    \n      by <a href='https://github.com/eviltrout' target='_blank'>evil&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"replies-notifications-are-not-grouped-as-conversations-in-my-mua","topic_id":8133,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Replies notifications are not grouped as conversations in my MUA","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-05T19:40:24Z","excerpt":"While Discourse has a comprehensive web API that it consumes, it is not really documented and outlined for external use as we are still working on it quite heavily and want to be able to change it quickly. \n\nIf you build on top of the current REST API you might have to deal with changes, so beware [&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"creating-an-discourse-user-through-api","topic_id":8124,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Creating an Discourse User through API","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-05T09:26:56Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/f21c5d25f6f9fd36c27a8def7f03ad8a.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"akhayyat","acting_name":"Ahmad Khayyat","acting_user_id":4702,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-05T05:50:06Z","excerpt":"Hi there!  \n\nI just tried these same settings and it appeared fine in the admin section. The only thing I can think of is perhaps you didn&#x27;t restart your Rails server before checking? That file is only loaded when the server starts up. \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/de9a910f6c145938e047f77a524df50b.png?s={size}&r=pg&d=identicon","slug":"trying-to-change-the-email-delivery-method","topic_id":8055,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"nick12377","acting_name":"nickj","acting_user_id":5293,"title":"Trying to Change the Email Delivery Method","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-04T22:41:15Z","excerpt":"I deployed a fix for this. It should work now! \n\nIf not please let us know.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon","slug":"posting-a-message-doesnt-clear-draft-box","topic_id":8104,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"PabloC","acting_name":"Pablo Corral","acting_user_id":2291,"title":"Posting a message doesn't clear draft box","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-04T04:14:29Z","excerpt":"Hi there!  \n\nI just tried these same settings and it appeared fine in the admin section. The only thing I can think of is perhaps you didn&#x27;t restart your Rails server before checking? That file is only loaded when the server starts up. \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"trying-to-change-the-email-delivery-method","topic_id":8055,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Trying to Change the Email Delivery Method","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-03T20:26:55Z","excerpt":"Sorry about this! I&#x27;ll fix it as soon as I can.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/040f75103040d887e6e32d607cb940a3.png?s={size}&r=pg&d=identicon","slug":"last-read-indicator-doesnt-always-update-when-scrolling-to-bottom","topic_id":8047,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":5,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"CvX","acting_name":"Jarek Radosz","acting_user_id":369,"title":"Last read indicator doesn't always update when scrolling to bottom","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-03T20:11:24Z","excerpt":"It&#x27;s true the 1GB is an overestimate for small forums. But it&#x27;s meant to ensure people have enough resources regardless of what the forum is doing. Additionally, it gives us the ability to have the app use more ram if an awesome feature demands it without people saying &quot;hey it no longer works in 512&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon","slug":"512mb-of-ram-is-enough-to-run-discourse","topic_id":6844,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":7,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"Ajarn","acting_name":"Brentley Jones","acting_user_id":3681,"title":"512MB of RAM is enough to run Discourse","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-02T15:38:56Z","excerpt":"I&#x27;ve just deployed the new post stream code. In my tests it seems to link correctly to the post. Can you confirm that it&#x27;s working better now <a href='/users/iszi' class='mention'>@Iszi</a>? Thanks!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","topic_id":5971,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Following links to posts within the same topic jumps to the top","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-02T15:31:44Z","excerpt":"I&#x27;ve just deployed the new post stream code. In my tests it seems to link correctly to the post. Can you confirm that it&#x27;s working better now <a href='/users/iszi' class='mention'>@Iszi</a>? Thanks!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","topic_id":5971,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Following links to posts within the same topic jumps to the top","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-02T15:31:33Z","excerpt":"I&#x27;ve just deployed my post stream update and I believe this issue is fixed! Sorry about that.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"loading-never-stops","topic_id":7554,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":16,"reply_to_post_number":14,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Loading (never stops)","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-07-02T15:19:36Z","excerpt":"I&#x27;ve just deployed my post stream update and I believe this issue is fixed! Sorry about that.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"loading-never-stops","topic_id":7554,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":16,"reply_to_post_number":14,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Loading (never stops)","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-30T16:24:33Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"erlend_sh","acting_name":"Erlend Sogge Heggen","acting_user_id":5351,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-30T13:31:20Z","excerpt":"I do all my developing in OSX. Actually I love buying hardware and PC gaming so my main system is actually a Hackintosh that I built myself. It&#x27;s probably faster than any mac you can buy. \n\nAlthough I created the Vagrant install with <a href='/users/neil' class='mention'>@Neil</a>&#x27;s help I do my development for discourse right on my local m&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/ef419cd042564d6d56fab6edfec7ad73.png?s={size}&r=pg&d=identicon","slug":"what-ide-editor-and-environment-do-you-use","topic_id":2105,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"nicmart","acting_name":"Nicolò Martini","acting_user_id":3581,"title":"What IDE, editor and environment do you use?","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-29T22:05:20Z","excerpt":"Modals\n\nToday I merged in a <a href='https://github.com/discourse/discourse/commit/0af0a214b2cef90d07ddf33cc8648d4a416307d2' rel='nofollow'>large commit</a> (warning, might slow down your browser) to back all our modals by controllers. \n\nPreviously, our modals were just views that we dynamically inserted into an <a href='http://emberjs.com/api/classes/Ember.ContainerView.html' rel='nofollow'>ember ContainerView</a>. They worked pretty well, but all the logic and attributes for dealing with the mo&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/040f75103040d887e6e32d607cb940a3.png?s={size}&r=pg&d=identicon","slug":"discourse-ember-refactorings","topic_id":7019,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"CvX","acting_name":"Jarek Radosz","acting_user_id":369,"title":"Discourse Ember Refactorings","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-28T23:31:30Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4079bc13f142ea46e0144d1ca9426aa9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"fgonzal","acting_name":"Federico","acting_user_id":2287,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-28T21:18:53Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/28b6612d548d24ff57361dac58ac3fee.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"mkirk","acting_name":"Michael John Kirk","acting_user_id":5586,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-28T14:40:50Z","excerpt":"Not yet! We started with polling because it was easiest for our setup, but\nwe&#x27;d love to support web hooks too. It probably won&#x27;t be too hard due to\nthe way the internal API works.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/5c049595372be0a1a22f4192b490f032.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"jorge_castro","acting_name":"Jorge Castro","acting_user_id":529,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-28T09:45:44Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/0de93e19798baa853bff3237381de87a.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"polusok","acting_name":"Mykhailo Poliarush","acting_user_id":5810,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-27T21:56:13Z","excerpt":"Not yet! We started with polling because it was easiest for our setup, but\nwe&#x27;d love to support web hooks too. It probably won&#x27;t be too hard due to\nthe way the internal API works.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/97e3dd0d8128a2e17b28c71e0fb08b31.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"knwang","acting_name":"knwang","acting_user_id":3865,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-27T03:38:54Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/97e3dd0d8128a2e17b28c71e0fb08b31.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"knwang","acting_name":"knwang","acting_user_id":3865,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-27T00:43:18Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/04e8c634e5ee0fd074f78f3bad6eb5b3.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"djensen47","acting_name":"Dave Jensen","acting_user_id":5108,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-26T11:28:08Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"marcoceppi","acting_name":"Marco Ceppi","acting_user_id":761,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-26T00:25:31Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/34c3b45c075a6d85555beb674892d0d8.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"computerdruid","acting_name":"ComputerDruid","acting_user_id":5372,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T23:10:49Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T22:56:16Z","excerpt":"It&#x27;s queryable via the Category table which has a topic_id indicating what the category topic is. I wouldn&#x27;t want to join on that though.  \n\nIt seems we have a sub_type column that we could probably use to indicate category topics and filter them out. Will add to my list.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/43675ac6f4ef94f40b5e44add2a984c1.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"naggie","acting_name":"Callan Bryant","acting_user_id":1374,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T21:28:00Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"BhaelOchon","acting_name":"Bill Ayakatubby","acting_user_id":471,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T18:47:21Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3baf9989e97ccf45aff1cf61fb730931.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"briangillespie","acting_name":"Brian Gillespie","acting_user_id":5483,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T18:18:19Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/7a42855912a58f4c3c5d0ce82e33905f.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"stevebaer","acting_name":"Steve Baer","acting_user_id":4939,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T18:09:49Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"mcwumbly","acting_name":"David McClure","acting_user_id":4263,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T17:42:33Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/6c38e00d92cd9bd3ada3392b15015553.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"frandallfarmer","acting_name":"F. Randall Farmer","acting_user_id":38,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T17:41:03Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/5c049595372be0a1a22f4192b490f032.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"jorge_castro","acting_name":"Jorge Castro","acting_user_id":529,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T16:59:02Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"Neil","acting_name":"Neil","acting_user_id":2,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T16:53:58Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/55c791f0242e5167536c65496046eef5.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"RGJ","acting_name":"Richard ","acting_user_id":406,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T16:24:42Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3e8ede783ef16c8234c03473a5b8780f.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"MaSe","acting_name":"Мария Сергеева","acting_user_id":5174,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T16:16:02Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/1c52629e9379bb4d8108634ce9ca4d9e.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"hugo","acting_name":"Hugo","acting_user_id":2935,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T16:10:51Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T16:06:40Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-25T16:03:28Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/26bf5a02583eaf63d1f8063bb3a6bc00.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"kpfleming","acting_name":"Kevin P. Fleming","acting_user_id":2625,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-22T09:45:59Z","excerpt":"If you&#x27;ve been following the latest commits, you might have noticed some changes to the ways we do things in our Ember application. I thought it would be a good idea to explain what&#x27;s been changing and why. \n\nView Helpers\n\nAs of <a href='http://emberjs.com/blog/2013/04/21/ember-1-0-rc3.html' rel='nofollow'>Ember RC2</a> we&#x27;ve gained new helpers for inserting views into handlebars.&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/efe90c21899f95a64cb78e01b5cb7733.png?s={size}&r=pg&d=identicon","slug":"discourse-ember-refactorings","topic_id":7019,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"etewiah","acting_name":"etewiah","acting_user_id":5465,"title":"Discourse Ember Refactorings","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-20T17:51:16Z","excerpt":"I&#x27;ve just deployed support for a new setting minimum_topics_similar with a default of 50. If the site has fewer topics than that, you won&#x27;t receive a suggested topics list. What do you think a sensible value would be on try.discourse.org? \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/5ef6714d48b78e4ae304e957d990f31b60f94ee3' class='track-link' target='_blank'>\n            [image]\n          github.&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-19T20:14:14Z","excerpt":"I&#x27;ve just deployed support for a new setting minimum_topics_similar with a default of 50. If the site has fewer topics than that, you won&#x27;t receive a suggested topics list. What do you think a sensible value would be on try.discourse.org? \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/5ef6714d48b78e4ae304e957d990f31b60f94ee3' class='track-link' target='_blank'>\n            [image]\n          github.&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/cf99a7295aafa43c75ce25668b24df29.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"cerberus","acting_name":"Alejandro Petroff","acting_user_id":4757,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false,"moderator_action":false},{"action_type":2,"created_at":"2013-06-19T18:10:49Z","excerpt":"I&#x27;ve just deployed support for a new setting minimum_topics_similar with a default of 50. If the site has fewer topics than that, you won&#x27;t receive a suggested topics list. What do you think a sensible value would be on try.discourse.org? \n\n\n    \n      \n        <a href='https://github.com/discourse/discourse/commit/5ef6714d48b78e4ae304e957d990f31b60f94ee3' class='track-link' target='_blank'>\n            [image]\n          github.&hellip;</a>","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false,"moderator_action":false}]};
+Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout&filter=11"] = {"user_actions":[{"action_type":11,"created_at":"2013-06-25T16:19:52Z","excerpt":"We&#x27;ve just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be &hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"New: Reply via Email Support!","deleted":false,"hidden":false,"moderator_action":false},{"action_type":11,"created_at":"2013-02-13T00:56:51Z","excerpt":"I&#x27;ve just deployed some slightly better documentation to our project regarding developer set ups. Vagrant is still the recommended install for most people, however if you have Rails experience there is now an <a href='https://github.com/discourse/discourse/blob/master/docs/DEVELOPER-ADVANCED.md' rel='nofollow'>advanced guide</a>. The advanced guide also contains instructions on setting up your own Vagran&hellip;","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"new-updated-docs","topic_id":2918,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"New: Updated Docs","deleted":false,"hidden":false,"moderator_action":false}]};
diff --git a/test/javascripts/integration/user_test.js b/test/javascripts/integration/user_test.js
index 80e240cb642..eedbbb68e0a 100644
--- a/test/javascripts/integration/user_test.js
+++ b/test/javascripts/integration/user_test.js
@@ -6,7 +6,7 @@ test("Activity Streams", function() {
   var streamTest = function(url) {
     visit(url).then(function() {
       ok(exists(".user-heading"), "The heading is rendered");
-      ok(exists("#user-stream"), "The stream is rendered");
+      ok(exists("#user-activity"), "The activity is rendered");
     });
   };