From 289215371204485f13987dccbc10dba9e7b2b762 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Wed, 29 Jan 2014 11:54:34 -0500 Subject: [PATCH] REMOVE: Get rid of the `hotness` control for good. --- .../javascripts/discourse/models/category.js | 1 - .../routes/discovery_categories_route.js | 2 +- .../modal/edit_category.js.handlebars | 5 --- .../discourse/views/hotness_view.js | 43 ------------------- .../stylesheets/desktop/hotness_control.scss | 29 ------------- .../stylesheets/mobile/hotness_control.scss | 29 ------------- app/controllers/categories_controller.rb | 2 +- app/models/category.rb | 1 - app/serializers/basic_category_serializer.rb | 1 - config/locales/client.cs.yml | 1 - config/locales/client.da.yml | 1 - config/locales/client.de.yml | 1 - config/locales/client.en.yml | 1 - config/locales/client.fr.yml | 1 - config/locales/client.it.yml | 1 - config/locales/client.ja.yml | 1 - config/locales/client.ko.yml | 1 - config/locales/client.nb_NO.yml | 1 - config/locales/client.nl.yml | 1 - config/locales/client.pseudo.yml | 1 - config/locales/client.pt_BR.yml | 1 - config/locales/client.ru.yml | 1 - config/locales/client.sv.yml | 1 - config/locales/client.zh_CN.yml | 1 - config/locales/client.zh_TW.yml | 1 - .../20140129164541_remove_category_hotness.rb | 5 +++ .../controllers/categories_controller_spec.rb | 4 -- spec/models/category_spec.rb | 2 - .../fixtures/discovery_fixtures.js | 4 +- test/javascripts/fixtures/topic_fixtures.js | 2 +- test/javascripts/fixtures/user_fixtures.js | 2 +- 31 files changed, 11 insertions(+), 137 deletions(-) delete mode 100644 app/assets/javascripts/discourse/views/hotness_view.js delete mode 100644 app/assets/stylesheets/desktop/hotness_control.scss delete mode 100644 app/assets/stylesheets/mobile/hotness_control.scss create mode 100644 db/migrate/20140129164541_remove_category_hotness.rb diff --git a/app/assets/javascripts/discourse/models/category.js b/app/assets/javascripts/discourse/models/category.js index 6710c995aa4..ca03fdc61b3 100644 --- a/app/assets/javascripts/discourse/models/category.js +++ b/app/assets/javascripts/discourse/models/category.js @@ -62,7 +62,6 @@ Discourse.Category = Discourse.Model.extend({ name: this.get('name'), color: this.get('color'), text_color: this.get('text_color'), - hotness: this.get('hotness'), secure: this.get('secure'), permissions: this.get('permissionsForUpdate'), auto_close_hours: this.get('auto_close_hours'), diff --git a/app/assets/javascripts/discourse/routes/discovery_categories_route.js b/app/assets/javascripts/discourse/routes/discovery_categories_route.js index f5801e95557..e045c21749d 100644 --- a/app/assets/javascripts/discourse/routes/discovery_categories_route.js +++ b/app/assets/javascripts/discourse/routes/discovery_categories_route.js @@ -36,7 +36,7 @@ Discourse.DiscoveryCategoriesRoute = Discourse.Route.extend({ actions: { createCategory: function() { Discourse.Route.showModal(this, 'editCategory', Discourse.Category.create({ - color: 'AB9364', text_color: 'FFFFFF', hotness: 5, group_permissions: [{group_name: 'everyone', permission_type: 1}], + color: 'AB9364', text_color: 'FFFFFF', group_permissions: [{group_name: 'everyone', permission_type: 1}], available_groups: Discourse.Site.current().group_names })); this.controllerFor('editCategory').set('selectedTab', 'general'); diff --git a/app/assets/javascripts/discourse/templates/modal/edit_category.js.handlebars b/app/assets/javascripts/discourse/templates/modal/edit_category.js.handlebars index 8a63285afda..5671def4f22 100644 --- a/app/assets/javascripts/discourse/templates/modal/edit_category.js.handlebars +++ b/app/assets/javascripts/discourse/templates/modal/edit_category.js.handlebars @@ -107,11 +107,6 @@ {{i18n category.default_position}} - -
- - {{view Discourse.HotnessView hotnessBinding="hotness"}} -
{{/unless}} diff --git a/app/assets/javascripts/discourse/views/hotness_view.js b/app/assets/javascripts/discourse/views/hotness_view.js deleted file mode 100644 index 7a8e4bdb9ca..00000000000 --- a/app/assets/javascripts/discourse/views/hotness_view.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - This will render a control to edit the `hotness` of a thing. This would be really - cool to use with a shadow DOM. - - @class HotnessView - @extends Discourse.View - @namespace Discourse - @module Discourse -**/ -Discourse.HotnessView = Discourse.View.extend({ - classNames: ['hotness-control'], - - shouldRerender: Discourse.View.renderIfChanged('hotness'), - - render: function(buffer) { - // Our scale goes to 11! - for (var i=1; i<12; i++) { - buffer.push(""); - } - }, - - /** - When the user clicks on a hotness value button, change it. - - @method click - **/ - click: function(e) { - - var $target = $(e.target); - - if (!$target.is('button')) return; - this.set('hotness', parseInt($target.val(), 10)); - - return false; - } - -}); - - diff --git a/app/assets/stylesheets/desktop/hotness_control.scss b/app/assets/stylesheets/desktop/hotness_control.scss deleted file mode 100644 index 462fedc1749..00000000000 --- a/app/assets/stylesheets/desktop/hotness_control.scss +++ /dev/null @@ -1,29 +0,0 @@ -// styles for the 'hotness control' - -@import "common/foundation/variables"; -@import "common/foundation/mixins"; - -.hotness-control { - margin-bottom: 5px; - - button { - @include border-radius-all(5px); - margin-right: 3px; - background-color: lighten($gray, 10%); - border: 0; - width: 25px; - text-align: center; - - &:hover { - background-color: $gray; - } - } - - button.selected { - background-color: lighten($red, 25%); - color: $white; - font-weight: bold; - } - - -} \ No newline at end of file diff --git a/app/assets/stylesheets/mobile/hotness_control.scss b/app/assets/stylesheets/mobile/hotness_control.scss deleted file mode 100644 index 5d6baf3aa68..00000000000 --- a/app/assets/stylesheets/mobile/hotness_control.scss +++ /dev/null @@ -1,29 +0,0 @@ -// styles for the 'hotness control' - -@import "../common/foundation/variables"; -@import "../common/foundation/mixins"; - -.hotness-control { - margin-bottom: 5px; - - button { - @include border-radius-all(5px); - margin-right: 3px; - background-color: lighten($gray, 10%); - border: 0; - width: 25px; - text-align: center; - - &:hover { - background-color: $gray; - } - } - - button.selected { - background-color: lighten($red, 25%); - color: $white; - font-weight: bold; - } - - -} \ No newline at end of file diff --git a/app/controllers/categories_controller.rb b/app/controllers/categories_controller.rb index 14d0b36f5f6..72d86fb7716 100644 --- a/app/controllers/categories_controller.rb +++ b/app/controllers/categories_controller.rb @@ -90,7 +90,7 @@ class CategoriesController < ApplicationController end end - params.permit(*required_param_keys, :position, :hotness, :parent_category_id, :auto_close_hours, :permissions => [*p.try(:keys)]) + params.permit(*required_param_keys, :position, :parent_category_id, :auto_close_hours, :permissions => [*p.try(:keys)]) end end diff --git a/app/models/category.rb b/app/models/category.rb index 88f4f324abe..9a7597fe554 100644 --- a/app/models/category.rb +++ b/app/models/category.rb @@ -362,7 +362,6 @@ end # slug :string(255) not null # description :text # text_color :string(6) default("FFFFFF"), not null -# hotness :float default(5.0), not null # read_restricted :boolean default(FALSE), not null # auto_close_hours :float # post_count :integer default(0), not null diff --git a/app/serializers/basic_category_serializer.rb b/app/serializers/basic_category_serializer.rb index 60810ba6cee..f1b84ad6043 100644 --- a/app/serializers/basic_category_serializer.rb +++ b/app/serializers/basic_category_serializer.rb @@ -8,7 +8,6 @@ class BasicCategorySerializer < ApplicationSerializer :topic_count, :description, :topic_url, - :hotness, :read_restricted, :permission, :parent_category_id diff --git a/config/locales/client.cs.yml b/config/locales/client.cs.yml index 66d8ae640f2..b5d108f2868 100644 --- a/config/locales/client.cs.yml +++ b/config/locales/client.cs.yml @@ -936,7 +936,6 @@ cs: list: "Seznam kategorií" no_description: "K této kategorii zatím není žádný popis." change_in_category_topic: "navštivte téma kategorie pro editaci jejího popisu" - hotness: "Popularita" already_used: 'Tato barva je již použita jinou kategorií' security: "Bezpečnost" auto_close_label: "Automaticky zavírat témata po:" diff --git a/config/locales/client.da.yml b/config/locales/client.da.yml index a964f9706d9..1f50a22f4f0 100644 --- a/config/locales/client.da.yml +++ b/config/locales/client.da.yml @@ -1011,7 +1011,6 @@ da: list: "Kategoriliste" no_description: "Der er ingen beskrivelse for denne kategori." change_in_category_topic: "besøg kategoriemnet for at redigere beskrivelsen" - hotness: "Popularitet" already_used: 'This color has been used by another category' security: "Sikkerhed" auto_close_label: "Luk automatisk emner efter:" diff --git a/config/locales/client.de.yml b/config/locales/client.de.yml index c19fb6c698b..29f91d27f9f 100644 --- a/config/locales/client.de.yml +++ b/config/locales/client.de.yml @@ -929,7 +929,6 @@ de: list: "Kategorien auflisten" no_description: "Es gibt keine Beschreibung zu dieser Kategorie." change_in_category_topic: "Besuche die Themen dieser Kategorie um einen Eindruck für eine gute Beschreibung zu gewinnen." - hotness: "Beliebtheit" already_used: 'Diese Farbe wird bereits für eine andere Kategorie verwendet' security: "Sicherheit" auto_close_label: "Thema automatisch schließen nach:" diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index b0374557106..8cd8eac1cf4 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -1028,7 +1028,6 @@ en: list: "List Categories" no_description: "There is no description for this category, edit the topic definition." change_in_category_topic: "Edit Description" - hotness: "Hotness" already_used: 'This color has been used by another category' security: "Security" auto_close_label: "Auto-close topics after:" diff --git a/config/locales/client.fr.yml b/config/locales/client.fr.yml index 480091bf3fb..93dbf381763 100644 --- a/config/locales/client.fr.yml +++ b/config/locales/client.fr.yml @@ -997,7 +997,6 @@ fr: list: "Liste des catégories" no_description: "Il n'y a pas de description pour cette catégorie." change_in_category_topic: "Editer la description" - hotness: "Buzz" already_used: 'Cette couleur est déjà utilisée par une autre catégorie' security: "Sécurité" auto_close_label: "Fermer automatiquement après :" diff --git a/config/locales/client.it.yml b/config/locales/client.it.yml index 589e6d66cca..893445c901c 100644 --- a/config/locales/client.it.yml +++ b/config/locales/client.it.yml @@ -903,7 +903,6 @@ it: list: "Lista Categorie" no_description: "Nessuna descrizione per questa categoria." change_in_category_topic: "Modifica Descrizione" - hotness: "Hotness" already_used: "Questo colore è già in uso da un'altra categoria" is_secure: "Categoria protetta?" add_group: "Aggiungi Gruppo" diff --git a/config/locales/client.ja.yml b/config/locales/client.ja.yml index 36607b40a12..5554cb3337f 100644 --- a/config/locales/client.ja.yml +++ b/config/locales/client.ja.yml @@ -938,7 +938,6 @@ ja: list: "カテゴリをリストする" no_description: "このカテゴリの説明はありません。トピック定義を編集してください。" change_in_category_topic: "カテゴリ内容を編集" - hotness: "ホット度" already_used: 'この色は他のカテゴリで利用しています' security: "セキュリティ" auto_close_label: "" diff --git a/config/locales/client.ko.yml b/config/locales/client.ko.yml index 29f0dd8c387..c42ac814fab 100644 --- a/config/locales/client.ko.yml +++ b/config/locales/client.ko.yml @@ -959,7 +959,6 @@ ko: list: "카테고리 목록" no_description: "이 카테고리에 대한 설명이 없습니다." change_in_category_topic: "설명 편집" - hotness: "활발한" already_used: '이 색은 다른 카테고리에서 사용되고 있습니다.' security: "보안" auto_close_label: "토픽 자동 닫기 :" diff --git a/config/locales/client.nb_NO.yml b/config/locales/client.nb_NO.yml index d22e0cf4345..df308c61b02 100644 --- a/config/locales/client.nb_NO.yml +++ b/config/locales/client.nb_NO.yml @@ -800,7 +800,6 @@ nb_NO: list: "List Kategorier" no_description: "Det er ingen beskrivelse på denne kategorien." change_in_category_topic: "Rediger Beskrivelse" - hotness: "Temperatur" already_used: 'Denne fargen er i bruk av en annen kategori' is_secure: "Sikker kategori?" add_group: "Legg til Gruppe" diff --git a/config/locales/client.nl.yml b/config/locales/client.nl.yml index c843664a538..213e1125635 100644 --- a/config/locales/client.nl.yml +++ b/config/locales/client.nl.yml @@ -1019,7 +1019,6 @@ nl: list: Lijst van categorieën no_description: Er is geen omschrijving voor deze categorie change_in_category_topic: Wijzig omschrijving - hotness: Populariteit already_used: Deze kleur is al in gebruik door een andere categorie security: Beveiliging auto_close_label: "Sluit topics automatisch na:" diff --git a/config/locales/client.pseudo.yml b/config/locales/client.pseudo.yml index 2e43af2779e..758df67f21c 100644 --- a/config/locales/client.pseudo.yml +++ b/config/locales/client.pseudo.yml @@ -1007,7 +1007,6 @@ pseudo: no_description: '[[ Ťĥéřé íš ɳó ďéščříƿťíóɳ ƒóř ťĥíš čáťéǧóřý, éďíť ťĥé ťóƿíč ďéƒíɳíťíóɳ. ]]' change_in_category_topic: '[[ Éďíť Ďéščříƿťíóɳ ]]' - hotness: '[[ Ĥóťɳéšš ]]' already_used: '[[ Ťĥíš čółóř ĥáš ƀééɳ ůšéď ƀý áɳóťĥéř čáťéǧóřý ]]' security: '[[ Šéčůříťý ]]' auto_close_label: '[[ Áůťó-čłóšé ťóƿíčš áƒťéř: ]]' diff --git a/config/locales/client.pt_BR.yml b/config/locales/client.pt_BR.yml index 9be4d20402f..acd3ee20b2a 100644 --- a/config/locales/client.pt_BR.yml +++ b/config/locales/client.pt_BR.yml @@ -948,7 +948,6 @@ pt_BR: list: "Lista de Categorias" no_description: "Não há descrição para esta categoria, edite a definição do tópico." change_in_category_topic: "Editar Descrição" - hotness: "Mais Quente" already_used: 'Esta cor já foi usada para outra categoria' security: "Segurança" auto_close_label: "Fechar automaticamente tópicos depois de:" diff --git a/config/locales/client.ru.yml b/config/locales/client.ru.yml index fe6a8307938..4a5792fe853 100644 --- a/config/locales/client.ru.yml +++ b/config/locales/client.ru.yml @@ -1006,7 +1006,6 @@ ru: list: 'Список категорий' no_description: 'Для этой категории нет описания, отредактируйте определение темы.' change_in_category_topic: 'Изменить описание' - hotness: Популярность already_used: 'Цвет уже используется другой категорией' security: Безопасность auto_close_label: 'Закрыть тему через:' diff --git a/config/locales/client.sv.yml b/config/locales/client.sv.yml index 7484415da4b..0eab6451208 100644 --- a/config/locales/client.sv.yml +++ b/config/locales/client.sv.yml @@ -993,7 +993,6 @@ sv: list: "Lista Kategorier" no_description: "Det finns ingen beskrivning för denna kategori." change_in_category_topic: "besök kategorins tråd för att ändra beskrivning" - hotness: "Hethet" already_used: 'Den här färgen används till en annan kategori' security: "Säkerhet" auto_close_label: "Stäng trådar automatiskt efter:" diff --git a/config/locales/client.zh_CN.yml b/config/locales/client.zh_CN.yml index 276102ca5c4..a061d5a7baf 100644 --- a/config/locales/client.zh_CN.yml +++ b/config/locales/client.zh_CN.yml @@ -1016,7 +1016,6 @@ zh_CN: list: "列出分类" no_description: "本分类没有描述信息。" change_in_category_topic: "访问分类主题来编辑描述信息" - hotness: "热度" already_used: '此色彩已经被另一个分类使用' security: "安全" auto_close_label: "该时间段后自动关闭主题:" diff --git a/config/locales/client.zh_TW.yml b/config/locales/client.zh_TW.yml index f8e102599d3..5fbc128e1c2 100644 --- a/config/locales/client.zh_TW.yml +++ b/config/locales/client.zh_TW.yml @@ -1005,7 +1005,6 @@ zh_TW: list: "列出分類" no_description: "此類別沒有描述,請編輯主題定義。" change_in_category_topic: "編輯描述" - hotness: "熱度" already_used: '此顏色已經用於其它類別' security: "安全性" auto_close_label: "自動關閉主題的期限:" diff --git a/db/migrate/20140129164541_remove_category_hotness.rb b/db/migrate/20140129164541_remove_category_hotness.rb new file mode 100644 index 00000000000..9eaaed14928 --- /dev/null +++ b/db/migrate/20140129164541_remove_category_hotness.rb @@ -0,0 +1,5 @@ +class RemoveCategoryHotness < ActiveRecord::Migration + def change + remove_column :categories, :hotness + end +end diff --git a/spec/controllers/categories_controller_spec.rb b/spec/controllers/categories_controller_spec.rb index 6c167b8745c..0d1baf775b0 100644 --- a/spec/controllers/categories_controller_spec.rb +++ b/spec/controllers/categories_controller_spec.rb @@ -50,7 +50,6 @@ describe CategoriesController do create_post = CategoryGroup.permission_types[:create_post] xhr :post, :create, name: "hello", color: "ff0", text_color: "fff", - hotness: 2, auto_close_hours: 72, permissions: { "everyone" => readonly, @@ -64,7 +63,6 @@ describe CategoriesController do ] category.name.should == "hello" category.color.should == "ff0" - category.hotness.should == 2 category.auto_close_hours.should == 72 end end @@ -152,7 +150,6 @@ describe CategoriesController do create_post = CategoryGroup.permission_types[:create_post] xhr :put, :update, id: @category.id, name: "hello", color: "ff0", text_color: "fff", - hotness: 2, auto_close_hours: 72, permissions: { "everyone" => readonly, @@ -166,7 +163,6 @@ describe CategoriesController do ] @category.name.should == "hello" @category.color.should == "ff0" - @category.hotness.should == 2 @category.auto_close_hours.should == 72 end diff --git a/spec/models/category_spec.rb b/spec/models/category_spec.rb index 957cc442de8..b11dc5db111 100644 --- a/spec/models/category_spec.rb +++ b/spec/models/category_spec.rb @@ -189,8 +189,6 @@ describe Category do it 'is created correctly' do @category.slug.should == 'amazing-category' - @category.hotness.should == 5.0 - @category.description.should be_blank Topic.where(category_id: @category).count.should == 1 diff --git a/test/javascripts/fixtures/discovery_fixtures.js b/test/javascripts/fixtures/discovery_fixtures.js index 96bc906b36a..bf0aa09a7f6 100644 --- a/test/javascripts/fixtures/discovery_fixtures.js +++ b/test/javascripts/fixtures/discovery_fixtures.js @@ -1,4 +1,4 @@ /*jshint maxlen:10000000 */ Discourse.URL_FIXTURES["/latest.json"] = {"users":[{"id":7204,"username":"reyman64","avatar_template":"//www.gravatar.com/avatar/8efbecf0936eecea60da339fe33d3308.png?s={size}&r=pg&d=identicon"},{"id":1,"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":5481,"username":"f0rkz","avatar_template":"//www.gravatar.com/avatar/88fdabd9abac2a4a52034b955de3009f.png?s={size}&r=pg&d=identicon"},{"id":6473,"username":"jkf","avatar_template":"//www.gravatar.com/avatar/b58b357a352eda178941fd2dfd5c6d5d.png?s={size}&r=pg&d=identicon"},{"id":6973,"username":"stellarhopper","avatar_template":"//www.gravatar.com/avatar/b7c236cc7222b5646f94e05c7c8fe985.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":14,"username":"clay","avatar_template":"//www.gravatar.com/avatar/e371bbd32ba2e9b27842e60ef5952d47.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":1917,"username":"sil","avatar_template":"//www.gravatar.com/avatar/72a9ebaed35f880abb3418fe96ae6604.png?s={size}&r=pg&d=identicon"},{"id":7197,"username":"peeja","avatar_template":"//www.gravatar.com/avatar/d069ac0170dc6c93bad77734258fadae.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":8021,"username":"Abhishek_Gupta","avatar_template":"//www.gravatar.com/avatar/bdab7e61b3191e483492fd680f563fed.png?s={size}&r=pg&d=identicon"},{"id":2291,"username":"PabloC","avatar_template":"//www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon"},{"id":791,"username":"srid","avatar_template":"//www.gravatar.com/avatar/22b3cb05a29a72327beebdbeb81b71c0.png?s={size}&r=pg&d=identicon"},{"id":1580,"username":"ABillionSuns","avatar_template":"//www.gravatar.com/avatar/3b0a7729f7a3b5e5dfa6a6968670ae3a.png?s={size}&r=pg&d=identicon"},{"id":7270,"username":"mhurwi","avatar_template":"//www.gravatar.com/avatar/9d7ef290cb87ca79dd8ea7879c465dfb.png?s={size}&r=pg&d=identicon"},{"id":6695,"username":"illspirit","avatar_template":"//www.gravatar.com/avatar/20c057f893dc884e455f8c6798bda75b.png?s={size}&r=pg&d=identicon"},{"id":6929,"username":"BCHK","avatar_template":"//www.gravatar.com/avatar/8ff631bfa8be06bcf7bb4df99ecad0a5.png?s={size}&r=pg&d=identicon"},{"id":4385,"username":"jeans","avatar_template":"//www.gravatar.com/avatar/31ef0f1b48c6387a898ef685a21ad450.png?s={size}&r=pg&d=identicon"},{"id":7073,"username":"5an1ty","avatar_template":"//www.gravatar.com/avatar/2c346c47486696df101694f766c45527.png?s={size}&r=pg&d=identicon"},{"id":6626,"username":"riking","avatar_template":"//www.gravatar.com/avatar/5120fc4e345db0d1a964888272073819.png?s={size}&r=pg&d=identicon"},{"id":4457,"username":"Lee_Ars","avatar_template":"//localhost:3000/uploads/default/avatars/95a/06d/c337428568/{size}.png"},{"id":4263,"username":"mcwumbly","avatar_template":"//www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon"},{"id":8134,"username":"iontishina","avatar_template":"//www.gravatar.com/avatar/fd21735919ef17cdb2a38416928a7d5c.png?s={size}&r=pg&d=identicon"},{"id":2072,"username":"nXqd","avatar_template":"//localhost:3000/uploads/default/avatars/139/21a/f9b00ec8d8/{size}.jpg"},{"id":4983,"username":"hey_julien","avatar_template":"//www.gravatar.com/avatar/3740fd652ab706c6b89b6f754448841a.png?s={size}&r=pg&d=identicon"},{"id":3657,"username":"steelmaiden","avatar_template":"//www.gravatar.com/avatar/ee057e3db79dbbf327ee1e2d3af3320d.png?s={size}&r=pg&d=identicon"},{"id":2624,"username":"BowlingX","avatar_template":"//www.gravatar.com/avatar/eb757280e318f17b5f642dead439b5af.png?s={size}&r=pg&d=identicon"},{"id":8085,"username":"watchmanmonitor","avatar_template":"//www.gravatar.com/avatar/035d12bad251759d8fbc9fb10574d1f6.png?s={size}&r=pg&d=identicon"},{"id":4612,"username":"Iszi","avatar_template":"//www.gravatar.com/avatar/8f8571493d71202986f2a6ab0dbd7c23.png?s={size}&r=pg&d=identicon"},{"id":8018,"username":"shivermetimbers","avatar_template":"//www.gravatar.com/avatar/9e3265239b765fddac477d206524e890.png?s={size}&r=pg&d=identicon"},{"id":6060,"username":"lightyear","avatar_template":"//www.gravatar.com/avatar/038e2caac4482e97ba6b24c3a88b86ff.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"neil","avatar_template":"//www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":8037,"username":"printec","avatar_template":"//www.gravatar.com/avatar/8d03345c5bf3aa1be8088e5e941b9a07.png?s={size}&r=pg&d=identicon"},{"id":3415,"username":"radq","avatar_template":"//www.gravatar.com/avatar/7739a4187adb56e033b41ce0f9ccad32.png?s={size}&r=pg&d=identicon"},{"id":6283,"username":"hrishikesh","avatar_template":"//www.gravatar.com/avatar/5b0cfe9c41209bc737445f199167d3ec.png?s={size}&r=pg&d=identicon"},{"id":471,"username":"BhaelOchon","avatar_template":"//www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon"},{"id":6548,"username":"michaeld","avatar_template":"//localhost:3000/uploads/default/avatars/886/ea8/e533d87fd9/{size}.png"},{"id":7286,"username":"mrotsnahoj","avatar_template":"//www.gravatar.com/avatar/bb411d222dde32adf9a33bfb5219f1de.png?s={size}&r=pg&d=identicon"},{"id":3169,"username":"dgw","avatar_template":"//www.gravatar.com/avatar/f14e2f41c74347c49889cd87188e68b7.png?s={size}&r=pg&d=identicon"},{"id":926,"username":"martinnormark","avatar_template":"//www.gravatar.com/avatar/b1e46c0cd5af901b44d3c5fdeba5fd66.png?s={size}&r=pg&d=identicon"},{"id":2003,"username":"taylor","avatar_template":"//www.gravatar.com/avatar/b33e8a75c925b361be8ff9568e35b26c.png?s={size}&r=pg&d=identicon"},{"id":369,"username":"CvX","avatar_template":"//www.gravatar.com/avatar/040f75103040d887e6e32d607cb940a3.png?s={size}&r=pg&d=identicon"},{"id":562,"username":"nightpool","avatar_template":"//www.gravatar.com/avatar/d73164d2180b4cf6099526e42e33a7fd.png?s={size}&r=pg&d=identicon"},{"id":6653,"username":"amitfrid","avatar_template":"//www.gravatar.com/avatar/4033448216096fe8ce1344ddf49f911b.png?s={size}&r=pg&d=identicon"},{"id":6677,"username":"Tropnevad","avatar_template":"//www.gravatar.com/avatar/fcdf445ac4790ba630e59e3006156c39.png?s={size}&r=pg&d=identicon"},{"id":5048,"username":"SneakySly","avatar_template":"//www.gravatar.com/avatar/c062c74a11a5281e22a7f90fd080f3f1.png?s={size}&r=pg&d=identicon"},{"id":7333,"username":"Jong","avatar_template":"//www.gravatar.com/avatar/1ddb211471b2f128ecdad91d47b5cbd8.png?s={size}&r=pg&d=identicon"},{"id":3124,"username":"sipp11","avatar_template":"//www.gravatar.com/avatar/0598cfd42f00fa82223eff562a410ad5.png?s={size}&r=pg&d=identicon"},{"id":7604,"username":"citkane","avatar_template":"//localhost:3000/uploads/default/avatars/2a8/a3c/8fddcac642/{size}.jpg"},{"id":3929,"username":"ScotterC","avatar_template":"//www.gravatar.com/avatar/8441ad0b5f1b724aa9932691007afecb.png?s={size}&r=pg&d=identicon"},{"id":6680,"username":"cdman","avatar_template":"//www.gravatar.com/avatar/afc7fc83e87cf6bf786e93a1f658ebf8.png?s={size}&r=pg&d=identicon"},{"id":500,"username":"aeid","avatar_template":"//www.gravatar.com/avatar/048825f1d4395fca3184d8fb7820075c.png?s={size}&r=pg&d=identicon"},{"id":8,"username":"geek","avatar_template":"//www.gravatar.com/avatar/b0b1ce3a4e0a77abd157ec0309b72922.png?s={size}&r=pg&d=identicon"},{"id":606,"username":"Cafeine","avatar_template":"//www.gravatar.com/avatar/fc493376b162362a0580d1bd05aca740.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":11557,"title":"Error after upgrade to 0.9.7.9+","fancy_title":"Error after upgrade to 0.9.7.9+","slug":"error-after-upgrade-to-0-9-7-9","posts_count":83,"reply_count":58,"highest_post_number":85,"image_url":null,"created_at":"2013-12-22T17:12:05.000-05:00","last_posted_at":"2014-01-16T00:52:30.000-05:00","bumped":true,"bumped_at":"2014-01-16T00:52:30.000-05:00","unseen":false,"pinned":true,"excerpt":"Hi, \n\nI'm using webfaction postgresql specific private instance to run discourse (custom port already configured for discourse 0.9.7.6). \n\nThis is not my first update, but this time i have an error. Impossible to upgrade…","visible":true,"closed":false,"archived":false,"views":1230,"like_count":40,"has_summary":true,"archetype":"regular","last_poster_username":"stellarhopper","category_id":17,"posters":[{"extras":null,"description":"Original Poster","user_id":7204},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":5481},{"extras":null,"description":"Frequent Poster","user_id":6473},{"extras":"latest","description":"Most Recent Poster","user_id":6973}]},{"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.000-05:00","last_posted_at":"2013-02-07T16:50:41.000-05:00","bumped":true,"bumped_at":"2013-02-07T11:57:34.000-05:00","unseen":false,"pinned":true,"excerpt":"Welcome to meta, the official site for discussing the next-gen open source Discourse forum software. You'll find topics on features, bugs, hosting, development, and general support here. \n\nDiscourse is early beta softwar…","visible":true,"closed":true,"archived":false,"views":13792,"like_count":108,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":17,"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":11997,"title":"Create topic in the future","fancy_title":"Create topic in the future","slug":"create-topic-in-the-future","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-16T12:14:36.000-05:00","last_posted_at":"2014-01-16T12:14:36.000-05:00","bumped":false,"bumped_at":"2014-01-16T12:14:36.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":7,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"sil","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":1917}]},{"id":11996,"title":"It's really hard to navigate the Create Topic / Reply pane with the keyboard","fancy_title":"It’s really hard to navigate the Create Topic / Reply pane with the keyboard","slug":"its-really-hard-to-navigate-the-create-topic-reply-pane-with-the-keyboard","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2014-01-16T10:51:36.000-05:00","last_posted_at":"2014-01-16T11:11:10.000-05:00","bumped":true,"bumped_at":"2014-01-16T11:11:10.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":12,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"zogstrip","category_id":9,"posters":[{"extras":null,"description":"Original Poster","user_id":7197},{"extras":"latest","description":"Most Recent Poster","user_id":1995}]},{"id":11994,"title":"Cross domain rules, followed?","fancy_title":"Cross domain rules, followed?","slug":"cross-domain-rules-followed","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"/plugins/emoji/images/smile.png","created_at":"2014-01-16T09:59:15.000-05:00","last_posted_at":"2014-01-16T09:59:15.000-05:00","bumped":true,"bumped_at":"2014-01-16T11:04:32.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":15,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"Abhishek_Gupta","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":8021}]},{"id":11995,"title":"Discourse as a CAS Server","fancy_title":"Discourse as a CAS Server","slug":"discourse-as-a-cas-server","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-16T10:15:30.000-05:00","last_posted_at":"2014-01-16T10:15:31.000-05:00","bumped":true,"bumped_at":"2014-01-16T10:15:31.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":12,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"PabloC","category_id":6,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2291}]},{"id":11993,"title":"How to check the user level via ajax?","fancy_title":"How to check the user level via ajax?","slug":"how-to-check-the-user-level-via-ajax","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-16T08:13:09.000-05:00","last_posted_at":"2014-01-16T08:13:09.000-05:00","bumped":true,"bumped_at":"2014-01-16T09:20:59.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":13,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"Abhishek_Gupta","category_id":7,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":8021}]},{"id":9540,"title":"Docker images for Discourse","fancy_title":"Docker images for Discourse","slug":"docker-images-for-discourse","posts_count":35,"reply_count":28,"highest_post_number":36,"image_url":null,"created_at":"2013-09-02T00:07:02.000-04:00","last_posted_at":"2014-01-16T07:47:18.000-05:00","bumped":true,"bumped_at":"2014-01-16T07:47:18.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":1322,"like_count":23,"has_summary":false,"archetype":"regular","last_poster_username":"illspirit","category_id":8,"posters":[{"extras":null,"description":"Original Poster","user_id":791},{"extras":null,"description":"Most Posts","user_id":1580},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":7270},{"extras":"latest","description":"Most Recent Poster","user_id":6695}]},{"id":11957,"title":"Daily Active Users, Monthly Active Users - Statistics Need","fancy_title":"Daily Active Users, Monthly Active Users - Statistics Need","slug":"daily-active-users-monthly-active-users-statistics-need","posts_count":8,"reply_count":4,"highest_post_number":8,"image_url":null,"created_at":"2014-01-14T13:40:56.000-05:00","last_posted_at":"2014-01-16T06:46:05.000-05:00","bumped":true,"bumped_at":"2014-01-16T06:46:05.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":97,"like_count":3,"has_summary":false,"archetype":"regular","last_poster_username":"jeans","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":6929},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":4385}]},{"id":11973,"title":"Pressing Wrench Icon in the Categories section","fancy_title":"Pressing Wrench Icon in the Categories section","slug":"pressing-wrench-icon-in-the-categories-section","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":"/uploads/default/2907/d8d4e0accd5ee244.png","created_at":"2014-01-15T05:58:12.000-05:00","last_posted_at":"2014-01-16T05:15:52.000-05:00","bumped":true,"bumped_at":"2014-01-16T05:15:52.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":46,"like_count":2,"has_summary":false,"archetype":"regular","last_poster_username":"5an1ty","category_id":9,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":7073},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":6626}]},{"id":11835,"title":"The Road to Discourse 1.0","fancy_title":"The Road to Discourse 1.0","slug":"the-road-to-discourse-1-0","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2014-01-08T19:08:44.000-05:00","last_posted_at":"2014-01-16T04:49:16.000-05:00","bumped":true,"bumped_at":"2014-01-16T04:49:16.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":421,"like_count":33,"has_summary":false,"archetype":"regular","last_poster_username":"iontishina","category_id":13,"posters":[{"extras":null,"description":"Original Poster","user_id":32},{"extras":null,"description":"Most Posts","user_id":4457},{"extras":null,"description":"Frequent Poster","user_id":4263},{"extras":"latest","description":"Most Recent Poster","user_id":8134}]},{"id":11992,"title":"Specific customization for each category","fancy_title":"Specific customization for each category","slug":"specific-customization-for-each-category","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-16T04:04:58.000-05:00","last_posted_at":"2014-01-16T04:04:58.000-05:00","bumped":false,"bumped_at":"2014-01-16T04:04:58.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":18,"like_count":2,"has_summary":false,"archetype":"regular","last_poster_username":"nXqd","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2072}]},{"id":9214,"title":"Please make category url shorter","fancy_title":"Please make category url shorter","slug":"please-make-category-url-shorter","posts_count":9,"reply_count":3,"highest_post_number":9,"image_url":null,"created_at":"2013-08-20T05:28:17.000-04:00","last_posted_at":"2014-01-16T04:02:46.000-05:00","bumped":true,"bumped_at":"2014-01-16T04:02:46.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":319,"like_count":13,"has_summary":false,"archetype":"regular","last_poster_username":"nXqd","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":4983},{"extras":null,"description":"Most Posts","user_id":3657},{"extras":null,"description":"Frequent Poster","user_id":2624},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":2072}]},{"id":11989,"title":"Where to change the email subject prefix","fancy_title":"Where to change the email subject prefix","slug":"where-to-change-the-email-subject-prefix","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"/uploads/default/2919/adbfe0ff90353440.png","created_at":"2014-01-16T01:03:48.000-05:00","last_posted_at":"2014-01-16T03:20:09.000-05:00","bumped":true,"bumped_at":"2014-01-16T03:20:09.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":19,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":8085},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":10866,"title":"Header logo overflows the top header area","fancy_title":"Header logo overflows the top header area","slug":"header-logo-overflows-the-top-header-area","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-11-09T03:40:04.000-05:00","last_posted_at":"2014-01-16T02:27:52.000-05:00","bumped":true,"bumped_at":"2014-01-16T02:40:47.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":157,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"stellarhopper","category_id":6,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":6973},{"extras":null,"description":"Most Posts","user_id":32}]},{"id":11988,"title":"Could not locate Gemfile error","fancy_title":"Could not locate Gemfile error","slug":"could-not-locate-gemfile-error","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":null,"created_at":"2014-01-16T00:41:57.000-05:00","last_posted_at":"2014-01-16T01:20:46.000-05:00","bumped":true,"bumped_at":"2014-01-16T01:20:46.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":18,"like_count":3,"has_summary":false,"archetype":"regular","last_poster_username":"sam","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":6973},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":6266,"title":"What sort of replies trigger a notice?","fancy_title":"What sort of replies trigger a notice?","slug":"what-sort-of-replies-trigger-a-notice","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-04-30T17:46:39.000-04:00","last_posted_at":"2014-01-16T00:52:21.000-05:00","bumped":true,"bumped_at":"2014-01-16T00:57:46.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":115,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":17,"posters":[{"extras":null,"description":"Original Poster","user_id":4612},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":11610,"title":"Private replies that only admins can see","fancy_title":"Private replies that only admins can see","slug":"private-replies-that-only-admins-can-see","posts_count":21,"reply_count":20,"highest_post_number":23,"image_url":null,"created_at":"2013-12-26T20:31:10.000-05:00","last_posted_at":"2014-01-16T00:18:19.000-05:00","bumped":true,"bumped_at":"2014-01-16T00:18:19.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":206,"like_count":9,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":8018},{"extras":null,"description":"Most Posts","user_id":4263},{"extras":null,"description":"Frequent Poster","user_id":6060},{"extras":null,"description":"Frequent Poster","user_id":6626},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":11888,"title":"Uncategorized topics not allowed, still seeing tag places","fancy_title":"Uncategorized topics not allowed, still seeing tag places","slug":"uncategorized-topics-not-allowed-still-seeing-tag-places","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":null,"created_at":"2014-01-10T19:23:37.000-05:00","last_posted_at":"2014-01-15T22:41:25.000-05:00","bumped":true,"bumped_at":"2014-01-15T22:41:25.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":50,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"illspirit","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":6695},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":2}]},{"id":11985,"title":"Installation nearly installs on Centos 6.5 with Apache/Phusion","fancy_title":"Installation nearly installs on Centos 6.5 with Apache/Phusion","slug":"installation-nearly-installs-on-centos-6-5-with-apache-phusion","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-15T19:48:30.000-05:00","last_posted_at":"2014-01-15T19:48:30.000-05:00","bumped":false,"bumped_at":"2014-01-15T19:48:30.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":26,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"printec","category_id":6,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":8037}]},{"id":11981,"title":"Excluding categories from the top view?","fancy_title":"Excluding categories from the top view?","slug":"excluding-categories-from-the-top-view","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":"/uploads/default/_optimized/f01/22f/7ea01f77b9_690x355.png","created_at":"2014-01-15T15:01:37.000-05:00","last_posted_at":"2014-01-15T18:57:52.000-05:00","bumped":true,"bumped_at":"2014-01-15T18:57:47.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":43,"like_count":6,"has_summary":false,"archetype":"regular","last_poster_username":"zogstrip","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":3415},{"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":9408,"title":"Different home page for regular vs. new user","fancy_title":"Different home page for regular vs. new user","slug":"different-home-page-for-regular-vs-new-user","posts_count":25,"reply_count":17,"highest_post_number":25,"image_url":null,"created_at":"2013-08-28T09:54:41.000-04:00","last_posted_at":"2014-01-15T18:33:16.000-05:00","bumped":true,"bumped_at":"2014-01-15T18:33:16.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":334,"like_count":21,"has_summary":false,"archetype":"regular","last_poster_username":"mcwumbly","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":6283},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":1995},{"extras":null,"description":"Frequent Poster","user_id":471},{"extras":"latest","description":"Most Recent Poster","user_id":4263}]},{"id":11896,"title":"Problem creating new account","fancy_title":"Problem creating new account","slug":"problem-creating-new-account","posts_count":11,"reply_count":2,"highest_post_number":11,"image_url":null,"created_at":"2014-01-11T09:07:20.000-05:00","last_posted_at":"2014-01-15T20:50:05.000-05:00","bumped":true,"bumped_at":"2014-01-15T15:23:32.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":87,"like_count":6,"has_summary":false,"archetype":"regular","last_poster_username":"sam","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":6548},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":2},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":10511,"title":"External urls should open in new tab","fancy_title":"External urls should open in new tab","slug":"external-urls-should-open-in-new-tab","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":null,"created_at":"2013-10-20T14:54:27.000-04:00","last_posted_at":"2014-01-15T14:02:11.000-05:00","bumped":true,"bumped_at":"2014-01-15T14:01:55.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":242,"like_count":10,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":7286},{"extras":null,"description":"Most Posts","user_id":3169},{"extras":null,"description":"Frequent Poster","user_id":4263},{"extras":null,"description":"Frequent Poster","user_id":6626},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":1589,"title":"Keyboard shortcuts?","fancy_title":"Keyboard shortcuts?","slug":"keyboard-shortcuts","posts_count":19,"reply_count":10,"highest_post_number":20,"image_url":null,"created_at":"2013-02-06T14:05:01.000-05:00","last_posted_at":"2014-01-15T13:52:45.000-05:00","bumped":true,"bumped_at":"2014-01-15T13:52:45.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":754,"like_count":31,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":926},{"extras":null,"description":"Most Posts","user_id":2003},{"extras":null,"description":"Frequent Poster","user_id":369},{"extras":null,"description":"Frequent Poster","user_id":562},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":11763,"title":"Google AdSense plugin is now available","fancy_title":"Google AdSense plugin is now available","slug":"google-adsense-plugin-is-now-available","posts_count":7,"reply_count":2,"highest_post_number":7,"image_url":"/uploads/default/_optimized/66d/cf0/d69e6709fe_496x500.PNG","created_at":"2014-01-05T14:28:58.000-05:00","last_posted_at":"2014-01-15T13:32:35.000-05:00","bumped":true,"bumped_at":"2014-01-15T13:32:35.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":213,"like_count":14,"has_summary":false,"archetype":"regular","last_poster_username":"michaeld","category_id":5,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":6548},{"extras":null,"description":"Most Posts","user_id":6653},{"extras":null,"description":"Frequent Poster","user_id":6677},{"extras":null,"description":"Frequent Poster","user_id":5048},{"extras":null,"description":"Frequent Poster","user_id":7333}]},{"id":9151,"title":"Apple touch icon doesn't show if there is no sub domain","fancy_title":"Apple touch icon doesn’t show if there is no sub domain","slug":"apple-touch-icon-doesnt-show-if-there-is-no-sub-domain","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2013-08-16T18:16:53.000-04:00","last_posted_at":"2014-01-15T17:10:18.000-05:00","bumped":true,"bumped_at":"2014-01-15T13:19:22.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":188,"like_count":3,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3124},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":11977,"title":"Show subcategory topics in categories list summary","fancy_title":"Show subcategory topics in categories list summary","slug":"show-subcategory-topics-in-categories-list-summary","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"/uploads/default/_optimized/084/4e4/8af88c0839_571x500.png","created_at":"2014-01-15T12:09:49.000-05:00","last_posted_at":"2014-01-15T12:50:04.000-05:00","bumped":true,"bumped_at":"2014-01-15T12:50:04.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":32,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":7604},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":10201,"title":"How To override an existing handlebars template from plugin","fancy_title":"How To override an existing handlebars template from plugin","slug":"how-to-override-an-existing-handlebars-template-from-plugin","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":null,"created_at":"2013-10-04T10:44:33.000-04:00","last_posted_at":"2014-01-15T12:35:01.000-05:00","bumped":true,"bumped_at":"2014-01-15T12:34:58.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":325,"like_count":6,"has_summary":false,"archetype":"regular","last_poster_username":"zogstrip","category_id":7,"posters":[{"extras":null,"description":"Original Poster","user_id":3929},{"extras":null,"description":"Most Posts","user_id":3415},{"extras":null,"description":"Frequent Poster","user_id":6680},{"extras":null,"description":"Frequent Poster","user_id":2},{"extras":"latest","description":"Most Recent Poster","user_id":1995}]},{"id":531,"title":"Discourse and Wordpress Integration","fancy_title":"Discourse and Wordpress Integration","slug":"discourse-and-wordpress-integration","posts_count":76,"reply_count":64,"highest_post_number":78,"image_url":null,"created_at":"2013-02-05T18:56:37.000-05:00","last_posted_at":"2014-01-15T11:56:54.000-05:00","bumped":true,"bumped_at":"2014-01-15T11:56:54.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":3809,"like_count":84,"has_summary":true,"archetype":"regular","last_poster_username":"codinghorror","category_id":5,"posters":[{"extras":null,"description":"Original Poster","user_id":500},{"extras":null,"description":"Most Posts","user_id":8},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":606},{"extras":"latest","description":"Most Recent Poster","user_id":32}]}]}}; -Discourse.URL_FIXTURES["/categories.json"] = {"featured_users":[{"id":8021,"username":"Abhishek_Gupta","avatar_template":"//www.gravatar.com/avatar/bdab7e61b3191e483492fd680f563fed.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":6695,"username":"illspirit","avatar_template":"//www.gravatar.com/avatar/20c057f893dc884e455f8c6798bda75b.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"neil","avatar_template":"//www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":1917,"username":"sil","avatar_template":"//www.gravatar.com/avatar/72a9ebaed35f880abb3418fe96ae6604.png?s={size}&r=pg&d=identicon"},{"id":4385,"username":"jeans","avatar_template":"//www.gravatar.com/avatar/31ef0f1b48c6387a898ef685a21ad450.png?s={size}&r=pg&d=identicon"},{"id":2072,"username":"nXqd","avatar_template":"//localhost:3000/uploads/default/avatars/139/21a/f9b00ec8d8/{size}.jpg"},{"id":4263,"username":"mcwumbly","avatar_template":"//www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon"},{"id":2291,"username":"PabloC","avatar_template":"//www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon"},{"id":6973,"username":"stellarhopper","avatar_template":"//www.gravatar.com/avatar/b7c236cc7222b5646f94e05c7c8fe985.png?s={size}&r=pg&d=identicon"},{"id":1,"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":8085,"username":"watchmanmonitor","avatar_template":"//www.gravatar.com/avatar/035d12bad251759d8fbc9fb10574d1f6.png?s={size}&r=pg&d=identicon"},{"id":5428,"username":"abbat","avatar_template":"//www.gravatar.com/avatar/8fdf603233c6a4328b8c943e2fabcf62.png?s={size}&r=pg&d=identicon"},{"id":8208,"username":"maximaximums","avatar_template":"//www.gravatar.com/avatar/950c1598c90f360489a4fb112dd153f7.png?s={size}&r=pg&d=identicon"},{"id":7995,"username":"Hunter","avatar_template":"//www.gravatar.com/avatar/fc0bb205dfe163a1f87c20ffaaa1c7ef.png?s={size}&r=pg&d=identicon"},{"id":7197,"username":"peeja","avatar_template":"//www.gravatar.com/avatar/d069ac0170dc6c93bad77734258fadae.png?s={size}&r=pg&d=identicon"},{"id":7073,"username":"5an1ty","avatar_template":"//www.gravatar.com/avatar/2c346c47486696df101694f766c45527.png?s={size}&r=pg&d=identicon"},{"id":6626,"username":"riking","avatar_template":"//www.gravatar.com/avatar/5120fc4e345db0d1a964888272073819.png?s={size}&r=pg&d=identicon"},{"id":6548,"username":"michaeld","avatar_template":"//localhost:3000/uploads/default/avatars/886/ea8/e533d87fd9/{size}.png"},{"id":8202,"username":"Matthieu","avatar_template":"//www.gravatar.com/avatar/ef7c64d1a92babba8d87df3436ecef68.png?s={size}&r=pg&d=identicon"},{"id":6677,"username":"Tropnevad","avatar_template":"//www.gravatar.com/avatar/fcdf445ac4790ba630e59e3006156c39.png?s={size}&r=pg&d=identicon"},{"id":7333,"username":"Jong","avatar_template":"//www.gravatar.com/avatar/1ddb211471b2f128ecdad91d47b5cbd8.png?s={size}&r=pg&d=identicon"},{"id":6018,"username":"robypez","avatar_template":"//www.gravatar.com/avatar/4d6c2e252349806a88636568da02efda.png?s={size}&r=pg&d=identicon"},{"id":1580,"username":"ABillionSuns","avatar_template":"//www.gravatar.com/avatar/3b0a7729f7a3b5e5dfa6a6968670ae3a.png?s={size}&r=pg&d=identicon"},{"id":7030,"username":"naabster","avatar_template":"//www.gravatar.com/avatar/58288ab0e5a4eb13d0fc509be3d3efc5.png?s={size}&r=pg&d=identicon"},{"id":8163,"username":"znation","avatar_template":"//www.gravatar.com/avatar/9cfd2536afac32d209335b092094c12c.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":7796,"username":"almereyda","avatar_template":"//www.gravatar.com/avatar/62c40187f3eab76982681bfdce05baa9.png?s={size}&r=pg&d=identicon"},{"id":8024,"username":"stefanobernardi","avatar_template":"//www.gravatar.com/avatar/3a3455a5cc150d268e940d6a9c838fed.png?s={size}&r=pg&d=identicon"},{"id":5174,"username":"MaSe","avatar_template":"//www.gravatar.com/avatar/3e8ede783ef16c8234c03473a5b8780f.png?s={size}&r=pg&d=identicon"},{"id":4534,"username":"Julien","avatar_template":"//www.gravatar.com/avatar/9bc1f80f0ada847e6a306a36f1e62d0a.png?s={size}&r=pg&d=identicon"},{"id":2316,"username":"pakl","avatar_template":"//www.gravatar.com/avatar/42910619ef3d550e37f7150caa0d94ff.png?s={size}&r=pg&d=identicon"},{"id":4457,"username":"Lee_Ars","avatar_template":"//localhost:3000/uploads/default/avatars/95a/06d/c337428568/{size}.png"},{"id":8134,"username":"iontishina","avatar_template":"//www.gravatar.com/avatar/fd21735919ef17cdb2a38416928a7d5c.png?s={size}&r=pg&d=identicon"},{"id":8047,"username":"zooko","avatar_template":"//www.gravatar.com/avatar/8ebdb2638dbd7849787b9edb6e3f3509.png?s={size}&r=pg&d=identicon"},{"id":7483,"username":"jhogendorn","avatar_template":"//www.gravatar.com/avatar/c3b71275a0f542e5aac645bc421fa8c6.png?s={size}&r=pg&d=identicon"},{"id":5548,"username":"pdbradley","avatar_template":"//www.gravatar.com/avatar/696bf107459919d14d2d61af7c5e03d2.png?s={size}&r=pg&d=identicon"},{"id":4755,"username":"andanthor","avatar_template":"//www.gravatar.com/avatar/9cf8d6ee2ec2388f4d3431e73c2990c1.png?s={size}&r=pg&d=identicon"},{"id":7984,"username":"sophearak","avatar_template":"//www.gravatar.com/avatar/98ff4e4caf030d0b7c3c076d7e719032.png?s={size}&r=pg&d=identicon"},{"id":5351,"username":"erlend_sh","avatar_template":"//www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.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":1,"name":"bug","color":"e9dd00","text_color":"000000","slug":"bug","topic_count":660,"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,"post_count":4318,"topics_day":1,"topics_week":18,"topics_month":54,"topics_year":658,"posts_day":7,"posts_week":330,"posts_month":574,"posts_year":4319,"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":[8021,32,6695,2,1995],"topics":[{"id":11994,"title":"Cross domain rules, followed?","fancy_title":"Cross domain rules, followed?","slug":"cross-domain-rules-followed","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"/plugins/emoji/images/smile.png","created_at":"2014-01-16T09:59:15.000-05:00","last_posted_at":"2014-01-16T09:59:15.000-05:00","bumped":true,"bumped_at":"2014-01-16T11:04:32.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":8021,"username":"Abhishek_Gupta","avatar_template":"//www.gravatar.com/avatar/bdab7e61b3191e483492fd680f563fed.png?s={size}&r=pg&d=identicon"}},{"id":11888,"title":"Uncategorized topics not allowed, still seeing tag places","fancy_title":"Uncategorized topics not allowed, still seeing tag places","slug":"uncategorized-topics-not-allowed-still-seeing-tag-places","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":null,"created_at":"2014-01-10T19:23:37.000-05:00","last_posted_at":"2014-01-15T22:41:25.000-05:00","bumped":true,"bumped_at":"2014-01-15T22:41:25.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6695,"username":"illspirit","avatar_template":"//www.gravatar.com/avatar/20c057f893dc884e455f8c6798bda75b.png?s={size}&r=pg&d=identicon"}},{"id":9151,"title":"Apple touch icon doesn't show if there is no sub domain","fancy_title":"Apple touch icon doesn’t show if there is no sub domain","slug":"apple-touch-icon-doesnt-show-if-there-is-no-sub-domain","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2013-08-16T18:16:53.000-04:00","last_posted_at":"2014-01-15T17:10:18.000-05:00","bumped":true,"bumped_at":"2014-01-15T13:19:22.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}}]},{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":727,"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,"post_count":6186,"topics_day":3,"topics_week":17,"topics_month":46,"topics_year":725,"posts_day":25,"posts_week":180,"posts_month":468,"posts_year":6187,"description_excerpt":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","featured_user_ids":[1917,4385,2072,32,4263],"topics":[{"id":11997,"title":"Create topic in the future","fancy_title":"Create topic in the future","slug":"create-topic-in-the-future","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-16T12:14:36.000-05:00","last_posted_at":"2014-01-16T12:14:36.000-05:00","bumped":false,"bumped_at":"2014-01-16T12:14:36.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":1917,"username":"sil","avatar_template":"//www.gravatar.com/avatar/72a9ebaed35f880abb3418fe96ae6604.png?s={size}&r=pg&d=identicon"}},{"id":11957,"title":"Daily Active Users, Monthly Active Users - Statistics Need","fancy_title":"Daily Active Users, Monthly Active Users - Statistics Need","slug":"daily-active-users-monthly-active-users-statistics-need","posts_count":8,"reply_count":4,"highest_post_number":8,"image_url":null,"created_at":"2014-01-14T13:40:56.000-05:00","last_posted_at":"2014-01-16T06:46:05.000-05:00","bumped":true,"bumped_at":"2014-01-16T06:46:05.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":4385,"username":"jeans","avatar_template":"//www.gravatar.com/avatar/31ef0f1b48c6387a898ef685a21ad450.png?s={size}&r=pg&d=identicon"}},{"id":11992,"title":"Specific customization for each category","fancy_title":"Specific customization for each category","slug":"specific-customization-for-each-category","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-16T04:04:58.000-05:00","last_posted_at":"2014-01-16T04:04:58.000-05:00","bumped":false,"bumped_at":"2014-01-16T04:04:58.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":2072,"username":"nXqd","avatar_template":"//localhost:3000/uploads/default/avatars/139/21a/f9b00ec8d8/{size}.jpg"}}]},{"id":6,"name":"support","color":"b99","text_color":"FFFFFF","slug":"support","topic_count":782,"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,"post_count":5396,"topics_day":4,"topics_week":16,"topics_month":67,"topics_year":779,"posts_day":14,"posts_week":122,"posts_month":481,"posts_year":5400,"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":[2291,32,6973,1,8085],"topics":[{"id":11995,"title":"Discourse as a CAS Server","fancy_title":"Discourse as a CAS Server","slug":"discourse-as-a-cas-server","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-16T10:15:30.000-05:00","last_posted_at":"2014-01-16T10:15:31.000-05:00","bumped":true,"bumped_at":"2014-01-16T10:15:31.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":2291,"username":"PabloC","avatar_template":"//www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon"}},{"id":11989,"title":"Where to change the email subject prefix","fancy_title":"Where to change the email subject prefix","slug":"where-to-change-the-email-subject-prefix","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"/uploads/default/2919/adbfe0ff90353440.png","created_at":"2014-01-16T01:03:48.000-05:00","last_posted_at":"2014-01-16T03:20:09.000-05:00","bumped":true,"bumped_at":"2014-01-16T03:20:09.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}},{"id":10866,"title":"Header logo overflows the top header area","fancy_title":"Header logo overflows the top header area","slug":"header-logo-overflows-the-top-header-area","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-11-09T03:40:04.000-05:00","last_posted_at":"2014-01-16T02:27:52.000-05:00","bumped":true,"bumped_at":"2014-01-16T02:40:47.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6973,"username":"stellarhopper","avatar_template":"//www.gravatar.com/avatar/b7c236cc7222b5646f94e05c7c8fe985.png?s={size}&r=pg&d=identicon"}}]},{"id":7,"name":"dev","color":"000","text_color":"FFFFFF","slug":"dev","topic_count":284,"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,"post_count":2352,"topics_day":1,"topics_week":3,"topics_month":19,"topics_year":284,"posts_day":1,"posts_week":37,"posts_month":150,"posts_year":2353,"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":[8021,1995,5428,8208,7995],"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":28,"highest_post_number":56,"image_url":null,"created_at":"2013-02-23T00:46:11.000-05:00","last_posted_at":"2014-01-12T21:33:12.000-05:00","bumped":true,"bumped_at":"2014-01-12T21:33:12.000-05: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…","visible":true,"closed":false,"archived":false,"last_poster":{"id":7995,"username":"Hunter","avatar_template":"//www.gravatar.com/avatar/fc0bb205dfe163a1f87c20ffaaa1c7ef.png?s={size}&r=pg&d=identicon"}},{"id":11993,"title":"How to check the user level via ajax?","fancy_title":"How to check the user level via ajax?","slug":"how-to-check-the-user-level-via-ajax","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-16T08:13:09.000-05:00","last_posted_at":"2014-01-16T08:13:09.000-05:00","bumped":true,"bumped_at":"2014-01-16T09:20:59.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":8021,"username":"Abhishek_Gupta","avatar_template":"//www.gravatar.com/avatar/bdab7e61b3191e483492fd680f563fed.png?s={size}&r=pg&d=identicon"}},{"id":10201,"title":"How To override an existing handlebars template from plugin","fancy_title":"How To override an existing handlebars template from plugin","slug":"how-to-override-an-existing-handlebars-template-from-plugin","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":null,"created_at":"2013-10-04T10:44:33.000-04:00","last_posted_at":"2014-01-15T12:35:01.000-05:00","bumped":true,"bumped_at":"2014-01-15T12:34:58.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"last_poster":{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"}}]},{"id":9,"name":"ux","color":"5F497A","text_color":"FFFFFF","slug":"ux","topic_count":184,"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,"post_count":1511,"topics_day":1,"topics_week":3,"topics_month":10,"topics_year":183,"posts_day":4,"posts_week":34,"posts_month":117,"posts_year":1511,"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":[1995,7197,7073,1,6626],"topics":[{"id":11996,"title":"It's really hard to navigate the Create Topic / Reply pane with the keyboard","fancy_title":"It’s really hard to navigate the Create Topic / Reply pane with the keyboard","slug":"its-really-hard-to-navigate-the-create-topic-reply-pane-with-the-keyboard","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2014-01-16T10:51:36.000-05:00","last_posted_at":"2014-01-16T11:11:10.000-05:00","bumped":true,"bumped_at":"2014-01-16T11:11:10.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"}},{"id":11973,"title":"Pressing Wrench Icon in the Categories section","fancy_title":"Pressing Wrench Icon in the Categories section","slug":"pressing-wrench-icon-in-the-categories-section","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":"/uploads/default/2907/d8d4e0accd5ee244.png","created_at":"2014-01-15T05:58:12.000-05:00","last_posted_at":"2014-01-16T05:15:52.000-05:00","bumped":true,"bumped_at":"2014-01-16T05:15:52.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":7073,"username":"5an1ty","avatar_template":"//www.gravatar.com/avatar/2c346c47486696df101694f766c45527.png?s={size}&r=pg&d=identicon"}},{"id":5542,"title":"Title character requirements not very visible","fancy_title":"Title character requirements not very visible","slug":"title-character-requirements-not-very-visible","posts_count":24,"reply_count":11,"highest_post_number":24,"image_url":null,"created_at":"2013-04-02T20:09:59.000-04:00","last_posted_at":"2014-01-15T05:26:07.000-05:00","bumped":true,"bumped_at":"2014-01-15T05:26:04.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"last_poster":{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"}}]},{"id":5,"name":"extensibility","color":"FE8432","text_color":"FFFFFF","slug":"extensibility","topic_count":102,"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,"post_count":964,"topics_day":0,"topics_week":2,"topics_month":18,"topics_year":102,"posts_day":0,"posts_week":17,"posts_month":76,"posts_year":964,"description_excerpt":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility.","featured_user_ids":[6548,32,8202,6677,7333],"topics":[{"id":11763,"title":"Google AdSense plugin is now available","fancy_title":"Google AdSense plugin is now available","slug":"google-adsense-plugin-is-now-available","posts_count":7,"reply_count":2,"highest_post_number":7,"image_url":"/uploads/default/_optimized/66d/cf0/d69e6709fe_496x500.PNG","created_at":"2014-01-05T14:28:58.000-05:00","last_posted_at":"2014-01-15T13:32:35.000-05:00","bumped":true,"bumped_at":"2014-01-15T13:32:35.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6548,"username":"michaeld","avatar_template":"//localhost:3000/uploads/default/avatars/886/ea8/e533d87fd9/{size}.png"}},{"id":531,"title":"Discourse and Wordpress Integration","fancy_title":"Discourse and Wordpress Integration","slug":"discourse-and-wordpress-integration","posts_count":76,"reply_count":64,"highest_post_number":78,"image_url":null,"created_at":"2013-02-05T18:56:37.000-05:00","last_posted_at":"2014-01-15T11:56:54.000-05:00","bumped":true,"bumped_at":"2014-01-15T11:56:54.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}},{"id":11965,"title":"In your opinion, what is the best wiki engine to be associated with discourse?","fancy_title":"In your opinion, what is the best wiki engine to be associated with discourse?","slug":"in-your-opinion-what-is-the-best-wiki-engine-to-be-associated-with-discourse","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-14T19:27:06.000-05:00","last_posted_at":"2014-01-14T19:27:06.000-05:00","bumped":false,"bumped_at":"2014-01-14T19:27:06.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":8202,"username":"Matthieu","avatar_template":"//www.gravatar.com/avatar/ef7c64d1a92babba8d87df3436ecef68.png?s={size}&r=pg&d=identicon"}}]},{"id":8,"name":"hosting","color":"74CCED","text_color":"FFFFFF","slug":"hosting","topic_count":69,"description":"Topics about hosting Discourse, either on your own servers, in the cloud, or with specific hosting services.","topic_url":"/t/category-definition-for-hosting/2626","hotness":5.0,"read_restricted":false,"permission":null,"post_count":664,"topics_day":0,"topics_week":2,"topics_month":2,"topics_year":69,"posts_day":4,"posts_week":15,"posts_month":35,"posts_year":664,"description_excerpt":"Topics about hosting Discourse, either on your own servers, in the cloud, or with specific hosting services.","featured_user_ids":[6695,1,6018,1580,7030],"topics":[{"id":9540,"title":"Docker images for Discourse","fancy_title":"Docker images for Discourse","slug":"docker-images-for-discourse","posts_count":35,"reply_count":28,"highest_post_number":36,"image_url":null,"created_at":"2013-09-02T00:07:02.000-04:00","last_posted_at":"2014-01-16T07:47:18.000-05:00","bumped":true,"bumped_at":"2014-01-16T07:47:18.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6695,"username":"illspirit","avatar_template":"//www.gravatar.com/avatar/20c057f893dc884e455f8c6798bda75b.png?s={size}&r=pg&d=identicon"}},{"id":11971,"title":"Installing Discourse on Ubuntu 12.04 with Parallels Plesk and Apache","fancy_title":"Installing Discourse on Ubuntu 12.04 with Parallels Plesk and Apache","slug":"installing-discourse-on-ubuntu-12-04-with-parallels-plesk-and-apache","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2014-01-15T04:23:38.000-05:00","last_posted_at":"2014-01-15T04:47:20.000-05:00","bumped":true,"bumped_at":"2014-01-15T04:47:20.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":7030,"username":"naabster","avatar_template":"//www.gravatar.com/avatar/58288ab0e5a4eb13d0fc509be3d3efc5.png?s={size}&r=pg&d=identicon"}},{"id":10844,"title":"Discourse in a Docker container","fancy_title":"Discourse in a Docker container","slug":"discourse-in-a-docker-container","posts_count":12,"reply_count":8,"highest_post_number":12,"image_url":null,"created_at":"2013-11-07T19:12:22.000-05:00","last_posted_at":"2014-01-11T14:43:53.000-05:00","bumped":true,"bumped_at":"2014-01-11T14:43:53.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":1,"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"}}]},{"id":17,"name":"uncategorized","color":"AB9364","text_color":"FFFFFF","slug":"uncategorized","topic_count":229,"description":"","topic_url":null,"hotness":5.0,"read_restricted":false,"permission":null,"post_count":2138,"topics_day":0,"topics_week":0,"topics_month":9,"topics_year":229,"posts_day":7,"posts_week":11,"posts_month":183,"posts_year":2138,"description_excerpt":"","is_uncategorized":true,"featured_user_ids":[6973,32,1,1995,7073],"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.000-05:00","last_posted_at":"2013-02-07T16:50:41.000-05:00","bumped":true,"bumped_at":"2013-02-07T11:57:34.000-05:00","unseen":false,"pinned":true,"excerpt":"Welcome to meta, the official site for discussing the next-gen open source Discourse forum software. You'll find topics on features, bugs, hosting, development, and general support here. \n\nDiscourse is early beta softwar…","visible":true,"closed":true,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}},{"id":11557,"title":"Error after upgrade to 0.9.7.9+","fancy_title":"Error after upgrade to 0.9.7.9+","slug":"error-after-upgrade-to-0-9-7-9","posts_count":83,"reply_count":58,"highest_post_number":85,"image_url":null,"created_at":"2013-12-22T17:12:05.000-05:00","last_posted_at":"2014-01-16T00:52:30.000-05:00","bumped":true,"bumped_at":"2014-01-16T00:52:30.000-05:00","unseen":false,"pinned":true,"excerpt":"Hi, \n\nI'm using webfaction postgresql specific private instance to run discourse (custom port already configured for discourse 0.9.7.6). \n\nThis is not my first update, but this time i have an error. Impossible to upgrade…","visible":true,"closed":false,"archived":false,"last_poster":{"id":6973,"username":"stellarhopper","avatar_template":"//www.gravatar.com/avatar/b7c236cc7222b5646f94e05c7c8fe985.png?s={size}&r=pg&d=identicon"}},{"id":6266,"title":"What sort of replies trigger a notice?","fancy_title":"What sort of replies trigger a notice?","slug":"what-sort-of-replies-trigger-a-notice","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-04-30T17:46:39.000-04:00","last_posted_at":"2014-01-16T00:52:21.000-05:00","bumped":true,"bumped_at":"2014-01-16T00:57:46.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}}]},{"id":11,"name":"login","color":"edb400","text_color":"FFFFFF","slug":"login","topic_count":27,"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.","topic_url":"/t/category-definition-for-login/2828","hotness":5.0,"read_restricted":false,"permission":null,"post_count":200,"topics_day":0,"topics_week":1,"topics_month":1,"topics_year":27,"posts_day":0,"posts_week":10,"posts_month":27,"posts_year":200,"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":[8163,19,7796,32,8024],"topics":[{"id":11959,"title":"Get current user information via JSON","fancy_title":"Get current user information via JSON","slug":"get-current-user-information-via-json","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2014-01-14T15:05:34.000-05:00","last_posted_at":"2014-01-14T16:43:28.000-05:00","bumped":true,"bumped_at":"2014-01-14T16:43:28.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":8163,"username":"znation","avatar_template":"//www.gravatar.com/avatar/9cfd2536afac32d209335b092094c12c.png?s={size}&r=pg&d=identicon"}},{"id":6242,"title":"Allow authentication via multiple services on one account","fancy_title":"Allow authentication via multiple services on one account","slug":"allow-authentication-via-multiple-services-on-one-account","posts_count":34,"reply_count":27,"highest_post_number":34,"image_url":null,"created_at":"2013-04-29T18:51:52.000-04:00","last_posted_at":"2014-01-14T00:25:42.000-05:00","bumped":true,"bumped_at":"2014-01-14T00:25:42.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":7796,"username":"almereyda","avatar_template":"//www.gravatar.com/avatar/62c40187f3eab76982681bfdce05baa9.png?s={size}&r=pg&d=identicon"}},{"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":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-03-13T17:55:29.000-04:00","last_posted_at":"2014-01-13T14:21:34.000-05:00","bumped":true,"bumped_at":"2014-01-13T14:21:34.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}}]},{"id":3,"name":"meta","color":"aaa","text_color":"FFFFFF","slug":"meta","topic_count":79,"description":"Discussion about meta.discourse.org itself, the organization of this forum about Discourse, how it works, and how we can improve this site.","topic_url":"/t/category-definition-for-meta/24","hotness":5.0,"read_restricted":false,"permission":null,"post_count":695,"topics_day":0,"topics_week":1,"topics_month":3,"topics_year":79,"posts_day":0,"posts_week":4,"posts_month":18,"posts_year":696,"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":[19,8085,32,5174,4534],"topics":[{"id":5249,"title":"What is \"Meta\"?","fancy_title":"What is “Meta”?","slug":"what-is-meta","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-03-25T18:00:52.000-04:00","last_posted_at":"2013-03-25T18:00:56.000-04:00","bumped":false,"bumped_at":"2013-03-25T18:00:52.000-04:00","unseen":false,"pinned":true,"excerpt":"Meta means discussion of the discussion itself instead of the actual topic of the discussion. \n\nWhy do we need a meta category?\n\nMeta is where communities come together to decide who they are and what they are about. \n…","visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}},{"id":11943,"title":"How far to take user documentation?","fancy_title":"How far to take user documentation?","slug":"how-far-to-take-user-documentation","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":"/plugins/emoji/images/smile.png","created_at":"2014-01-13T19:21:26.000-05:00","last_posted_at":"2014-01-14T14:19:46.000-05:00","bumped":true,"bumped_at":"2014-01-14T14:19:46.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"}},{"id":11822,"title":"Search engine traffic share and level to Discourse","fancy_title":"Search engine traffic share and level to Discourse","slug":"search-engine-traffic-share-and-level-to-discourse","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2014-01-08T01:54:56.000-05:00","last_posted_at":"2014-01-08T02:21:25.000-05:00","bumped":true,"bumped_at":"2014-01-08T02:21:25.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}}]},{"id":12,"name":"discourse hub","color":"b2c79f","text_color":"FFFFFF","slug":"discourse-hub","topic_count":4,"description":"Topics about current or future Discourse Hub functionality at discourse.org including nickname registration, global user pages, and the site directory.","topic_url":"/t/category-definition-for-discourse-hub/3038","hotness":5.0,"read_restricted":false,"permission":null,"post_count":121,"topics_day":0,"topics_week":0,"topics_month":0,"topics_year":4,"posts_day":0,"posts_week":3,"posts_month":3,"posts_year":121,"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":[2,32,2316,6695,4457],"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":13,"reply_count":4,"highest_post_number":13,"image_url":null,"created_at":"2013-05-10T22:06:08.000-04:00","last_posted_at":"2014-01-13T11:38:15.000-05:00","bumped":true,"bumped_at":"2014-01-13T11:38:15.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":2,"username":"neil","avatar_template":"//www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"}},{"id":2544,"title":"Discourse central hub questions","fancy_title":"Discourse central hub questions","slug":"discourse-central-hub-questions","posts_count":51,"reply_count":44,"highest_post_number":52,"image_url":null,"created_at":"2013-02-09T04:28:21.000-05:00","last_posted_at":"2013-09-19T13:36:49.000-04:00","bumped":true,"bumped_at":"2013-09-19T14:04:08.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":2128,"username":"ultimape","avatar_template":"//www.gravatar.com/avatar/6fe82efded2ee5e218e0452644a07e2e.png?s={size}&r=pg&d=identicon"}},{"id":424,"title":"What are the 'consequences' of changing your name?","fancy_title":"What are the ‘consequences’ of changing your name?","slug":"what-are-the-consequences-of-changing-your-name","posts_count":35,"reply_count":36,"highest_post_number":43,"image_url":null,"created_at":"2013-02-05T17:37:52.000-05:00","last_posted_at":"2013-09-19T13:55:11.000-04:00","bumped":true,"bumped_at":"2013-09-19T13:55:11.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":2128,"username":"ultimape","avatar_template":"//www.gravatar.com/avatar/6fe82efded2ee5e218e0452644a07e2e.png?s={size}&r=pg&d=identicon"}}]},{"id":13,"name":"blog","color":"ED207B","text_color":"FFFFFF","slug":"blog","topic_count":14,"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.","topic_url":"/t/category-definition-for-blog/5250","hotness":5.0,"read_restricted":false,"permission":null,"post_count":206,"topics_day":0,"topics_week":0,"topics_month":1,"topics_year":14,"posts_day":1,"posts_week":2,"posts_month":11,"posts_year":206,"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":[8134,32,4457,4263,1995],"topics":[{"id":11835,"title":"The Road to Discourse 1.0","fancy_title":"The Road to Discourse 1.0","slug":"the-road-to-discourse-1-0","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2014-01-08T19:08:44.000-05:00","last_posted_at":"2014-01-16T04:49:16.000-05:00","bumped":true,"bumped_at":"2014-01-16T04:49:16.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":8134,"username":"iontishina","avatar_template":"//www.gravatar.com/avatar/fd21735919ef17cdb2a38416928a7d5c.png?s={size}&r=pg&d=identicon"}},{"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":62,"reply_count":43,"highest_post_number":71,"image_url":null,"created_at":"2013-04-09T19:08:33.000-04:00","last_posted_at":"2013-12-19T18:27:37.000-05:00","bumped":true,"bumped_at":"2013-12-19T18:27:37.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"}},{"id":5898,"title":"The Discourse Servers","fancy_title":"The Discourse Servers","slug":"the-discourse-servers","posts_count":42,"reply_count":32,"highest_post_number":42,"image_url":null,"created_at":"2013-04-15T15:19:09.000-04:00","last_posted_at":"2013-11-29T15:14:35.000-05:00","bumped":true,"bumped_at":"2013-11-29T15:14:35.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6626,"username":"riking","avatar_template":"//www.gravatar.com/avatar/5120fc4e345db0d1a964888272073819.png?s={size}&r=pg&d=identicon"}}]},{"id":4,"name":"faq","color":"33b","text_color":"FFFFFF","slug":"faq","topic_count":49,"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,"post_count":450,"topics_day":0,"topics_week":0,"topics_month":0,"topics_year":49,"posts_day":0,"posts_week":1,"posts_month":10,"posts_year":450,"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,8047,7483,2,6626],"topics":[{"id":5372,"title":"UX confusion (or me confusion) is it possible to edit old posts or only your most recent post in a topic?","fancy_title":"UX confusion (or me confusion) is it possible to edit old posts or only your most recent post in a topic?","slug":"ux-confusion-or-me-confusion-is-it-possible-to-edit-old-posts-or-only-your-most-recent-post-in-a-topic","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-03-28T22:25:57.000-04:00","last_posted_at":"2014-01-13T13:44:39.000-05:00","bumped":true,"bumped_at":"2014-01-13T13:44:39.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}},{"id":9631,"title":"All the options to deploy Discourse with their relative pros and cons","fancy_title":"All the options to deploy Discourse with their relative pros and cons","slug":"all-the-options-to-deploy-discourse-with-their-relative-pros-and-cons","posts_count":14,"reply_count":7,"highest_post_number":15,"image_url":null,"created_at":"2013-09-06T03:55:09.000-04:00","last_posted_at":"2013-09-26T18:49:04.000-04:00","bumped":true,"bumped_at":"2013-12-30T12:32:59.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":3929,"username":"ScotterC","avatar_template":"//www.gravatar.com/avatar/8441ad0b5f1b724aa9932691007afecb.png?s={size}&r=pg&d=identicon"}},{"id":4325,"title":"How to delete a user?","fancy_title":"How to delete a user?","slug":"how-to-delete-a-user","posts_count":31,"reply_count":23,"highest_post_number":33,"image_url":null,"created_at":"2013-03-01T23:18:55.000-05:00","last_posted_at":"2013-12-20T21:26:06.000-05:00","bumped":true,"bumped_at":"2013-12-20T21:26:06.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}}]},{"id":14,"name":"marketplace","color":"8C6238","text_color":"FFFFFF","slug":"marketplace","topic_count":24,"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,"post_count":106,"topics_day":0,"topics_week":1,"topics_month":3,"topics_year":24,"posts_day":0,"posts_week":1,"posts_month":7,"posts_year":106,"description_excerpt":"About commercial Discourse related stuff: jobs or paid gigs, plugins, themes, hosting, etc.","featured_user_ids":[6548,32,5548,2291,4755],"topics":[{"id":11866,"title":"DiscourseHosting is now accepting BTC payments","fancy_title":"DiscourseHosting is now accepting BTC payments","slug":"discoursehosting-is-now-accepting-btc-payments","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-10T10:17:28.000-05:00","last_posted_at":"2014-01-10T10:17:28.000-05:00","bumped":false,"bumped_at":"2014-01-10T10:17:28.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6548,"username":"michaeld","avatar_template":"//localhost:3000/uploads/default/avatars/886/ea8/e533d87fd9/{size}.png"}},{"id":11571,"title":"Looking for a developer for Discourse Customization","fancy_title":"Looking for a developer for Discourse Customization","slug":"looking-for-a-developer-for-discourse-customization","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-12-23T20:54:04.000-05:00","last_posted_at":"2013-12-24T13:12:17.000-05:00","bumped":true,"bumped_at":"2013-12-30T16:36:17.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":2291,"username":"PabloC","avatar_template":"//www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon"}},{"id":11594,"title":"Need someone to fix a topic in my discourse install that won't load for moderators. Will pay","fancy_title":"Need someone to fix a topic in my discourse install that won’t load for moderators. Will pay","slug":"need-someone-to-fix-a-topic-in-my-discourse-install-that-wont-load-for-moderators-will-pay","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-12-25T10:25:57.000-05:00","last_posted_at":"2013-12-26T17:01:41.000-05:00","bumped":true,"bumped_at":"2013-12-25T17:01:15.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}}]},{"id":10,"name":"howto","color":"76923C","text_color":"FFFFFF","slug":"howto","topic_count":58,"description":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment. Topics in this category may only be created by trust level 2 and up. ","topic_url":"/t/category-definition-for-howto/2629","hotness":5.0,"read_restricted":false,"permission":null,"post_count":677,"topics_day":0,"topics_week":0,"topics_month":1,"topics_year":58,"posts_day":0,"posts_week":0,"posts_month":13,"posts_year":675,"description_excerpt":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment. Topics in this category may only be created by trust level 2 and up.","featured_user_ids":[7984,4457,1995,6018,5351],"topics":[{"id":7582,"title":"Twitter login with Passenger + Varnish - quick lessons learned","fancy_title":"Twitter login with Passenger + Varnish - quick lessons learned","slug":"twitter-login-with-passenger-varnish-quick-lessons-learned","posts_count":9,"reply_count":3,"highest_post_number":9,"image_url":"/plugins/emoji/images/smile.png","created_at":"2013-06-17T19:46:31.000-04:00","last_posted_at":"2013-12-31T21:03:59.000-05:00","bumped":true,"bumped_at":"2013-12-31T21:03:59.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":7984,"username":"sophearak","avatar_template":"//www.gravatar.com/avatar/98ff4e4caf030d0b7c3c076d7e719032.png?s={size}&r=pg&d=identicon"}},{"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":14,"reply_count":11,"highest_post_number":14,"image_url":"/uploads/meta_discourse/1019/782cbc7e309ce43f.png","created_at":"2013-06-06T15:37:43.000-04:00","last_posted_at":"2013-12-31T11:54:18.000-05:00","bumped":true,"bumped_at":"2013-12-31T11:54:18.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"}},{"id":11628,"title":"My experience with a successful migration (hints for a guide)","fancy_title":"My experience with a successful migration (hints for a guide)","slug":"my-experience-with-a-successful-migration-hints-for-a-guide","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-12-28T09:23:45.000-05:00","last_posted_at":"2013-12-28T10:38:48.000-05:00","bumped":true,"bumped_at":"2013-12-28T10:38:48.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6018,"username":"robypez","avatar_template":"//www.gravatar.com/avatar/4d6c2e252349806a88636568da02efda.png?s={size}&r=pg&d=identicon"}}]}]}}; -Discourse.URL_FIXTURES["/category/bug/l/latest.json"] = {"users":[{"id":1,"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":8021,"username":"Abhishek_Gupta","avatar_template":"//www.gravatar.com/avatar/bdab7e61b3191e483492fd680f563fed.png?s={size}&r=pg&d=identicon"},{"id":6695,"username":"illspirit","avatar_template":"//www.gravatar.com/avatar/20c057f893dc884e455f8c6798bda75b.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"neil","avatar_template":"//www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":3124,"username":"sipp11","avatar_template":"//www.gravatar.com/avatar/0598cfd42f00fa82223eff562a410ad5.png?s={size}&r=pg&d=identicon"},{"id":7513,"username":"digit","avatar_template":"//localhost:3000/uploads/default/avatars/067/555/7ff0bfdadf/{size}.jpg"},{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":3,"username":"supermathie","avatar_template":"//www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon"},{"id":7073,"username":"5an1ty","avatar_template":"//www.gravatar.com/avatar/2c346c47486696df101694f766c45527.png?s={size}&r=pg&d=identicon"},{"id":4996,"username":"wmertens","avatar_template":"//www.gravatar.com/avatar/a64ed062eb5e2c3407122fcf16c5de6b.png?s={size}&r=pg&d=identicon"},{"id":6377,"username":"zh99998","avatar_template":"//www.gravatar.com/avatar/09fb7a14e5b9fbb9cd82ffaa1df37634.png?s={size}&r=pg&d=identicon"},{"id":1496,"username":"cfstras","avatar_template":"//www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon"},{"id":7995,"username":"Hunter","avatar_template":"//www.gravatar.com/avatar/fc0bb205dfe163a1f87c20ffaaa1c7ef.png?s={size}&r=pg&d=identicon"},{"id":6626,"username":"riking","avatar_template":"//www.gravatar.com/avatar/5120fc4e345db0d1a964888272073819.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":5048,"username":"SneakySly","avatar_template":"//www.gravatar.com/avatar/c062c74a11a5281e22a7f90fd080f3f1.png?s={size}&r=pg&d=identicon"},{"id":7731,"username":"YOU","avatar_template":"//www.gravatar.com/avatar/aedbd784f8a5013f527ce103aa1d3cc1.png?s={size}&r=pg&d=identicon"},{"id":7985,"username":"onlinedev","avatar_template":"//www.gravatar.com/avatar/c03a2d32265270e105d7ffeb2e15f076.png?s={size}&r=pg&d=identicon"},{"id":3415,"username":"radq","avatar_template":"//www.gravatar.com/avatar/7739a4187adb56e033b41ce0f9ccad32.png?s={size}&r=pg&d=identicon"},{"id":5351,"username":"erlend_sh","avatar_template":"//www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon"},{"id":471,"username":"BhaelOchon","avatar_template":"//www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon"},{"id":7,"username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon"},{"id":4780,"username":"HugoAlmeida","avatar_template":"//www.gravatar.com/avatar/23d214ec75c6aa32787b6df919dc9a8e.png?s={size}&r=pg&d=identicon"},{"id":5053,"username":"Blue","avatar_template":"//www.gravatar.com/avatar/cbf6439b21bec74345556ba7538baa8d.png?s={size}&r=pg&d=identicon"},{"id":212,"username":"alxndr","avatar_template":"//www.gravatar.com/avatar/51c9cfe3d5ebd64a79983aa3117f4aed.png?s={size}&r=pg&d=identicon"},{"id":6118,"username":"lukelarris","avatar_template":"//www.gravatar.com/avatar/052a2426faa68b75429cd86431e7d87f.png?s={size}&r=pg&d=identicon"},{"id":7076,"username":"philnelson","avatar_template":"//www.gravatar.com/avatar/37b3083631ceae4ce759487551587a5b.png?s={size}&r=pg&d=identicon"},{"id":4851,"username":"jab","avatar_template":"//www.gravatar.com/avatar/14f382feb5f0dd3d3700edf8d6156aa9.png?s={size}&r=pg&d=identicon"},{"id":4457,"username":"Lee_Ars","avatar_template":"//localhost:3000/uploads/default/avatars/95a/06d/c337428568/{size}.png"},{"id":6280,"username":"mx2000","avatar_template":"//www.gravatar.com/avatar/4ce9219d5926aa3fb685aef5a4da797d.png?s={size}&r=pg&d=identicon"},{"id":3681,"username":"Ajarn","avatar_template":"//www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon"},{"id":1621,"username":"bnb","avatar_template":"//www.gravatar.com/avatar/1e54a178bf671227ea6142e93bf33b39.png?s={size}&r=pg&d=identicon"},{"id":6266,"username":"bragi","avatar_template":"//www.gravatar.com/avatar/690c8d4a36c18855f22ba087b555bc08.png?s={size}&r=pg&d=identicon"},{"id":5335,"username":"masda70","avatar_template":"//www.gravatar.com/avatar/4ffceb3e2866ae3b4df7aab2e812c0ea.png?s={size}&r=pg&d=identicon"},{"id":6314,"username":"rafaelfranca","avatar_template":"//www.gravatar.com/avatar/0525b332aafb83307b32d9747a93de03.png?s={size}&r=pg&d=identicon"}],"topic_list":{"can_create_topic":false,"more_topics_url":"/latest.json?category=bug&page=1","draft":null,"draft_key":"new_topic","draft_sequence":null,"topics":[{"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.000-05:00","last_posted_at":"2013-03-07T22:42:27.000-05:00","bumped":true,"bumped_at":"2013-02-26T18:52:56.000-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":469,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":11994,"title":"Cross domain rules, followed?","fancy_title":"Cross domain rules, followed?","slug":"cross-domain-rules-followed","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"/plugins/emoji/images/smile.png","created_at":"2014-01-16T09:59:15.000-05:00","last_posted_at":"2014-01-16T09:59:15.000-05:00","bumped":true,"bumped_at":"2014-01-16T11:04:32.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":15,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"Abhishek_Gupta","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":8021}]},{"id":11888,"title":"Uncategorized topics not allowed, still seeing tag places","fancy_title":"Uncategorized topics not allowed, still seeing tag places","slug":"uncategorized-topics-not-allowed-still-seeing-tag-places","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":null,"created_at":"2014-01-10T19:23:37.000-05:00","last_posted_at":"2014-01-15T22:41:25.000-05:00","bumped":true,"bumped_at":"2014-01-15T22:41:25.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":50,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"illspirit","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":6695},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":2}]},{"id":9151,"title":"Apple touch icon doesn't show if there is no sub domain","fancy_title":"Apple touch icon doesn’t show if there is no sub domain","slug":"apple-touch-icon-doesnt-show-if-there-is-no-sub-domain","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2013-08-16T18:16:53.000-04:00","last_posted_at":"2014-01-15T17:10:18.000-05:00","bumped":true,"bumped_at":"2014-01-15T13:19:22.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":188,"like_count":3,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3124},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":10911,"title":"/users/activate-account pulling blank logo instead of defaulting to h2","fancy_title":"/users/activate-account pulling blank logo instead of defaulting to h2","slug":"users-activate-account-pulling-blank-logo-instead-of-defaulting-to-h2","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-11-12T14:49:04.000-05:00","last_posted_at":"2014-01-15T10:21:37.000-05:00","bumped":true,"bumped_at":"2014-01-15T10:21:37.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":121,"like_count":3,"has_summary":false,"archetype":"regular","last_poster_username":"eviltrout","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":7513},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":11937,"title":"Smiley parser is busted","fancy_title":"Smiley parser is busted","slug":"smiley-parser-is-busted","posts_count":4,"reply_count":4,"highest_post_number":7,"image_url":"/plugins/emoji/images/smile.png","created_at":"2014-01-13T15:42:00.000-05:00","last_posted_at":"2014-01-15T05:51:16.000-05:00","bumped":true,"bumped_at":"2014-01-15T05:51:16.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":66,"like_count":2,"has_summary":false,"archetype":"regular","last_poster_username":"sam","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3},{"extras":null,"description":"Most Posts","user_id":7073},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":6625,"title":"Error 500 on PUT of site config","fancy_title":"Error 500 on PUT of site config","slug":"error-500-on-put-of-site-config","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-05-14T18:13:56.000-04:00","last_posted_at":"2014-01-16T04:55:50.000-05:00","bumped":true,"bumped_at":"2014-01-15T04:43:23.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":132,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4996},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":11225,"title":"Forum acts weirdly after client side updates","fancy_title":"Forum acts weirdly after client side updates","slug":"forum-acts-weirdly-after-client-side-updates","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":null,"created_at":"2013-12-02T18:32:10.000-05:00","last_posted_at":"2014-01-15T04:04:55.000-05:00","bumped":true,"bumped_at":"2014-01-15T02:55:18.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":117,"like_count":7,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":11903,"title":"Error after update to 0.9.8.1","fancy_title":"Error after update to 0.9.8.1","slug":"error-after-update-to-0-9-8-1","posts_count":14,"reply_count":6,"highest_post_number":17,"image_url":null,"created_at":"2014-01-12T06:55:45.000-05:00","last_posted_at":"2014-01-15T01:48:58.000-05:00","bumped":true,"bumped_at":"2014-01-15T01:48:58.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":121,"like_count":6,"has_summary":false,"archetype":"regular","last_poster_username":"zh99998","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":6377},{"extras":null,"description":"Most Posts","user_id":1496},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":19}]},{"id":11969,"title":"Qunit error and possibly related ember.js problem","fancy_title":"Qunit error and possibly related ember.js problem","slug":"qunit-error-and-possibly-related-ember-js-problem","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-14T22:51:32.000-05:00","last_posted_at":"2014-01-14T22:51:32.000-05:00","bumped":false,"bumped_at":"2014-01-14T22:51:32.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":32,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"Hunter","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":7995}]},{"id":11945,"title":"Stuff disappears on the groups page","fancy_title":"Stuff disappears on the groups page","slug":"stuff-disappears-on-the-groups-page","posts_count":7,"reply_count":2,"highest_post_number":7,"image_url":null,"created_at":"2014-01-13T23:03:53.000-05:00","last_posted_at":"2014-01-15T01:26:07.000-05:00","bumped":true,"bumped_at":"2014-01-14T21:09:01.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":54,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"zogstrip","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":6695},{"extras":null,"description":"Most Posts","user_id":6626},{"extras":"latest","description":"Most Recent Poster, Frequent Poster","user_id":1995}]},{"id":11520,"title":"Discourse WordPress Plugin: Emoji's do not properly display","fancy_title":"Discourse WordPress Plugin: Emoji’s do not properly display","slug":"discourse-wordpress-plugin-emojis-do-not-properly-display","posts_count":9,"reply_count":4,"highest_post_number":9,"image_url":"/uploads/default/_optimized/638/4db/eff43a45b8_690x420.png","created_at":"2013-12-19T23:32:03.000-05:00","last_posted_at":"2014-01-15T04:32:19.000-05:00","bumped":true,"bumped_at":"2014-01-14T17:53:34.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":168,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5048},{"extras":null,"description":"Frequent Poster","user_id":7731},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":11597,"title":"All categories drop down does not close after clicking on first menu \"all categories\"","fancy_title":"All categories drop down does not close after clicking on first menu “all categories”","slug":"all-categories-drop-down-does-not-close-after-clicking-on-first-menu-all-categories","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":"/uploads/default/2495/f9efe463ae67632d.png","created_at":"2013-12-25T15:09:27.000-05:00","last_posted_at":"2014-01-14T17:46:41.000-05:00","bumped":true,"bumped_at":"2014-01-14T17:46:41.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":73,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"radq","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":7985},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":3415}]},{"id":11962,"title":"Editor When Clicking on Wrench Issue","fancy_title":"Editor When Clicking on Wrench Issue","slug":"editor-when-clicking-on-wrench-issue","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"/uploads/default/_optimized/ca4/f70/ac7278b8f6_690x176.png","created_at":"2014-01-14T17:23:20.000-05:00","last_posted_at":"2014-01-14T17:24:02.000-05:00","bumped":true,"bumped_at":"2014-01-14T17:24:02.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":30,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":7073},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":11831,"title":"Broken links, possibly related to HTTPS","fancy_title":"Broken links, possibly related to HTTPS","slug":"broken-links-possibly-related-to-https","posts_count":17,"reply_count":13,"highest_post_number":18,"image_url":null,"created_at":"2014-01-08T17:40:45.000-05:00","last_posted_at":"2014-01-14T16:03:07.000-05:00","bumped":true,"bumped_at":"2014-01-14T16:03:07.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":102,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"eviltrout","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":471},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":11916,"title":"Unable to save user preferences","fancy_title":"Unable to save user preferences","slug":"unable-to-save-user-preferences","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2014-01-13T02:29:26.000-05:00","last_posted_at":"2014-01-14T14:39:32.000-05:00","bumped":true,"bumped_at":"2014-01-14T14:39:29.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":34,"like_count":3,"has_summary":false,"archetype":"regular","last_poster_username":"zogstrip","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":6626},{"extras":"latest","description":"Most Recent Poster","user_id":1995}]},{"id":10425,"title":"Editing category permissions: select value doesn't change","fancy_title":"Editing category permissions: select value doesn’t change","slug":"editing-category-permissions-select-value-doesnt-change","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"/uploads/meta_discourse/1956/d55fba29dbd7e1fe.png","created_at":"2013-10-17T18:20:20.000-04:00","last_posted_at":"2013-10-17T18:20:21.000-04:00","bumped":true,"bumped_at":"2014-01-14T13:35:37.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":92,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"pekka","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":7}]},{"id":6557,"title":"Middle clicking a link twice does not work as expected","fancy_title":"Middle clicking a link twice does not work as expected","slug":"middle-clicking-a-link-twice-does-not-work-as-expected","posts_count":10,"reply_count":7,"highest_post_number":10,"image_url":null,"created_at":"2013-05-11T13:56:02.000-04:00","last_posted_at":"2014-01-14T13:13:04.000-05:00","bumped":true,"bumped_at":"2014-01-14T13:13:04.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":401,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"neil","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4780},{"extras":null,"description":"Most Posts","user_id":5053},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":2}]},{"id":11944,"title":"Regression: Cannot sort topic list","fancy_title":"Regression: Cannot sort topic list","slug":"regression-cannot-sort-topic-list","posts_count":5,"reply_count":0,"highest_post_number":5,"image_url":null,"created_at":"2014-01-13T20:14:06.000-05:00","last_posted_at":"2014-01-14T19:31:28.000-05:00","bumped":true,"bumped_at":"2014-01-14T07:31:19.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":true,"views":37,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"zogstrip","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":6626},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":1995}]},{"id":10462,"title":"Rebake error when posts contain deleted YouTube video","fancy_title":"Rebake error when posts contain deleted YouTube video","slug":"rebake-error-when-posts-contain-deleted-youtube-video","posts_count":7,"reply_count":1,"highest_post_number":7,"image_url":null,"created_at":"2013-10-19T00:01:21.000-04:00","last_posted_at":"2014-01-14T02:24:19.000-05:00","bumped":true,"bumped_at":"2014-01-14T02:24:12.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":178,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":6695},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":11932,"title":"Use of blockquote tag causes text outside a paragraph","fancy_title":"Use of blockquote tag causes text outside a paragraph","slug":"use-of-blockquote-tag-causes-text-outside-a-paragraph","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2014-01-13T13:38:15.000-05:00","last_posted_at":"2014-01-13T19:30:37.000-05:00","bumped":true,"bumped_at":"2014-01-14T02:22:58.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":54,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":6626},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":10357,"title":"Displaced Wrench Icon Chrome","fancy_title":"Displaced Wrench Icon Chrome","slug":"displaced-wrench-icon-chrome","posts_count":12,"reply_count":4,"highest_post_number":12,"image_url":"/uploads/default/_optimized/9f3/f35/c5379beffe_690x300.jpg","created_at":"2013-10-14T05:48:21.000-04:00","last_posted_at":"2014-01-14T03:21:32.000-05:00","bumped":true,"bumped_at":"2014-01-13T19:03:33.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":206,"like_count":10,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":7073},{"extras":null,"description":"Frequent Poster","user_id":212},{"extras":null,"description":"Frequent Poster","user_id":6118},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":10114,"title":"Invitation expiry workflow is wonky","fancy_title":"Invitation expiry workflow is wonky","slug":"invitation-expiry-workflow-is-wonky","posts_count":14,"reply_count":7,"highest_post_number":14,"image_url":null,"created_at":"2013-09-30T00:59:36.000-04:00","last_posted_at":"2014-01-13T18:51:26.000-05:00","bumped":true,"bumped_at":"2014-01-13T18:51:26.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":176,"like_count":2,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":null,"description":"Most Posts","user_id":7076},{"extras":null,"description":"Frequent Poster","user_id":2},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":6330,"title":"Reply not disabled if topic closed while viewing","fancy_title":"Reply not disabled if topic closed while viewing","slug":"reply-not-disabled-if-topic-closed-while-viewing","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&r=pg&d=identicon","created_at":"2013-05-02T06:02:06.000-04:00","last_posted_at":"2014-01-13T11:54:22.000-05:00","bumped":true,"bumped_at":"2014-01-13T11:54:22.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":164,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4851},{"extras":null,"description":"Most Posts","user_id":2},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"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":11,"reply_count":7,"highest_post_number":13,"image_url":null,"created_at":"2013-07-14T12:37:02.000-04:00","last_posted_at":"2014-01-13T11:16:56.000-05:00","bumped":true,"bumped_at":"2014-01-13T11:16:33.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":288,"like_count":5,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4457},{"extras":null,"description":"Most Posts","user_id":6280},{"extras":null,"description":"Frequent Poster","user_id":3681},{"extras":null,"description":"Frequent Poster","user_id":1621},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8815,"title":"Cache headers confuse proxies","fancy_title":"Cache headers confuse proxies","slug":"cache-headers-confuse-proxies","posts_count":9,"reply_count":3,"highest_post_number":9,"image_url":null,"created_at":"2013-08-02T05:45:26.000-04:00","last_posted_at":"2014-01-13T11:12:09.000-05:00","bumped":true,"bumped_at":"2014-01-13T10:41:44.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":314,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":6266},{"extras":null,"description":"Most Posts","user_id":19},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":4457},{"extras":"latest","description":"Most Recent Poster, Frequent Poster","user_id":32}]},{"id":11371,"title":"Search not working for Staff users","fancy_title":"Search not working for Staff users","slug":"search-not-working-for-staff-users","posts_count":15,"reply_count":10,"highest_post_number":15,"image_url":null,"created_at":"2013-12-11T13:22:56.000-05:00","last_posted_at":"2014-01-13T01:41:50.000-05:00","bumped":true,"bumped_at":"2014-01-13T01:41:46.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":217,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"sam","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5335},{"extras":null,"description":"Most Posts","user_id":19},{"extras":null,"description":"Frequent Poster","user_id":6314},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":9908,"title":"Draft bar overrides pagination widget","fancy_title":"Draft bar overrides pagination widget","slug":"draft-bar-overrides-pagination-widget","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":null,"created_at":"2013-09-19T17:19:52.000-04:00","last_posted_at":"2014-01-13T01:26:01.000-05:00","bumped":true,"bumped_at":"2014-01-13T01:25:12.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":108,"like_count":2,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5351},{"extras":null,"description":"Most Posts","user_id":471},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":6134,"title":"Unread topic is stuck as unread after insertion of staff message","fancy_title":"Unread topic is stuck as unread after insertion of staff message","slug":"unread-topic-is-stuck-as-unread-after-insertion-of-staff-message","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&r=pg&d=identicon","created_at":"2013-04-24T13:37:32.000-04:00","last_posted_at":"2014-01-13T01:22:49.000-05:00","bumped":true,"bumped_at":"2014-01-13T01:22:42.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":169,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":5351},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":11914,"title":"Google analytics is not registering page views","fancy_title":"Google analytics is not registering page views","slug":"google-analytics-is-not-registering-page-views","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-13T00:32:45.000-05:00","last_posted_at":"2014-01-13T00:32:46.000-05:00","bumped":true,"bumped_at":"2014-01-13T00:32:46.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":37,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"sam","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":1}]}]}}; +Discourse.URL_FIXTURES["/categories.json"] = {"featured_users":[{"id":8021,"username":"Abhishek_Gupta","avatar_template":"//www.gravatar.com/avatar/bdab7e61b3191e483492fd680f563fed.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":6695,"username":"illspirit","avatar_template":"//www.gravatar.com/avatar/20c057f893dc884e455f8c6798bda75b.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"neil","avatar_template":"//www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":1917,"username":"sil","avatar_template":"//www.gravatar.com/avatar/72a9ebaed35f880abb3418fe96ae6604.png?s={size}&r=pg&d=identicon"},{"id":4385,"username":"jeans","avatar_template":"//www.gravatar.com/avatar/31ef0f1b48c6387a898ef685a21ad450.png?s={size}&r=pg&d=identicon"},{"id":2072,"username":"nXqd","avatar_template":"//localhost:3000/uploads/default/avatars/139/21a/f9b00ec8d8/{size}.jpg"},{"id":4263,"username":"mcwumbly","avatar_template":"//www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon"},{"id":2291,"username":"PabloC","avatar_template":"//www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon"},{"id":6973,"username":"stellarhopper","avatar_template":"//www.gravatar.com/avatar/b7c236cc7222b5646f94e05c7c8fe985.png?s={size}&r=pg&d=identicon"},{"id":1,"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":8085,"username":"watchmanmonitor","avatar_template":"//www.gravatar.com/avatar/035d12bad251759d8fbc9fb10574d1f6.png?s={size}&r=pg&d=identicon"},{"id":5428,"username":"abbat","avatar_template":"//www.gravatar.com/avatar/8fdf603233c6a4328b8c943e2fabcf62.png?s={size}&r=pg&d=identicon"},{"id":8208,"username":"maximaximums","avatar_template":"//www.gravatar.com/avatar/950c1598c90f360489a4fb112dd153f7.png?s={size}&r=pg&d=identicon"},{"id":7995,"username":"Hunter","avatar_template":"//www.gravatar.com/avatar/fc0bb205dfe163a1f87c20ffaaa1c7ef.png?s={size}&r=pg&d=identicon"},{"id":7197,"username":"peeja","avatar_template":"//www.gravatar.com/avatar/d069ac0170dc6c93bad77734258fadae.png?s={size}&r=pg&d=identicon"},{"id":7073,"username":"5an1ty","avatar_template":"//www.gravatar.com/avatar/2c346c47486696df101694f766c45527.png?s={size}&r=pg&d=identicon"},{"id":6626,"username":"riking","avatar_template":"//www.gravatar.com/avatar/5120fc4e345db0d1a964888272073819.png?s={size}&r=pg&d=identicon"},{"id":6548,"username":"michaeld","avatar_template":"//localhost:3000/uploads/default/avatars/886/ea8/e533d87fd9/{size}.png"},{"id":8202,"username":"Matthieu","avatar_template":"//www.gravatar.com/avatar/ef7c64d1a92babba8d87df3436ecef68.png?s={size}&r=pg&d=identicon"},{"id":6677,"username":"Tropnevad","avatar_template":"//www.gravatar.com/avatar/fcdf445ac4790ba630e59e3006156c39.png?s={size}&r=pg&d=identicon"},{"id":7333,"username":"Jong","avatar_template":"//www.gravatar.com/avatar/1ddb211471b2f128ecdad91d47b5cbd8.png?s={size}&r=pg&d=identicon"},{"id":6018,"username":"robypez","avatar_template":"//www.gravatar.com/avatar/4d6c2e252349806a88636568da02efda.png?s={size}&r=pg&d=identicon"},{"id":1580,"username":"ABillionSuns","avatar_template":"//www.gravatar.com/avatar/3b0a7729f7a3b5e5dfa6a6968670ae3a.png?s={size}&r=pg&d=identicon"},{"id":7030,"username":"naabster","avatar_template":"//www.gravatar.com/avatar/58288ab0e5a4eb13d0fc509be3d3efc5.png?s={size}&r=pg&d=identicon"},{"id":8163,"username":"znation","avatar_template":"//www.gravatar.com/avatar/9cfd2536afac32d209335b092094c12c.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":7796,"username":"almereyda","avatar_template":"//www.gravatar.com/avatar/62c40187f3eab76982681bfdce05baa9.png?s={size}&r=pg&d=identicon"},{"id":8024,"username":"stefanobernardi","avatar_template":"//www.gravatar.com/avatar/3a3455a5cc150d268e940d6a9c838fed.png?s={size}&r=pg&d=identicon"},{"id":5174,"username":"MaSe","avatar_template":"//www.gravatar.com/avatar/3e8ede783ef16c8234c03473a5b8780f.png?s={size}&r=pg&d=identicon"},{"id":4534,"username":"Julien","avatar_template":"//www.gravatar.com/avatar/9bc1f80f0ada847e6a306a36f1e62d0a.png?s={size}&r=pg&d=identicon"},{"id":2316,"username":"pakl","avatar_template":"//www.gravatar.com/avatar/42910619ef3d550e37f7150caa0d94ff.png?s={size}&r=pg&d=identicon"},{"id":4457,"username":"Lee_Ars","avatar_template":"//localhost:3000/uploads/default/avatars/95a/06d/c337428568/{size}.png"},{"id":8134,"username":"iontishina","avatar_template":"//www.gravatar.com/avatar/fd21735919ef17cdb2a38416928a7d5c.png?s={size}&r=pg&d=identicon"},{"id":8047,"username":"zooko","avatar_template":"//www.gravatar.com/avatar/8ebdb2638dbd7849787b9edb6e3f3509.png?s={size}&r=pg&d=identicon"},{"id":7483,"username":"jhogendorn","avatar_template":"//www.gravatar.com/avatar/c3b71275a0f542e5aac645bc421fa8c6.png?s={size}&r=pg&d=identicon"},{"id":5548,"username":"pdbradley","avatar_template":"//www.gravatar.com/avatar/696bf107459919d14d2d61af7c5e03d2.png?s={size}&r=pg&d=identicon"},{"id":4755,"username":"andanthor","avatar_template":"//www.gravatar.com/avatar/9cf8d6ee2ec2388f4d3431e73c2990c1.png?s={size}&r=pg&d=identicon"},{"id":7984,"username":"sophearak","avatar_template":"//www.gravatar.com/avatar/98ff4e4caf030d0b7c3c076d7e719032.png?s={size}&r=pg&d=identicon"},{"id":5351,"username":"erlend_sh","avatar_template":"//www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.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":1,"name":"bug","color":"e9dd00","text_color":"000000","slug":"bug","topic_count":660,"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","read_restricted":false,"permission":null,"post_count":4318,"topics_day":0,"topics_week":18,"topics_month":54,"topics_year":658,"posts_day":0,"posts_week":330,"posts_month":574,"posts_year":4319,"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":[8021,32,6695,2,1995],"topics":[{"id":11994,"title":"Cross domain rules, followed?","fancy_title":"Cross domain rules, followed?","slug":"cross-domain-rules-followed","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"/plugins/emoji/images/smile.png","created_at":"2014-01-16T09:59:15.000-05:00","last_posted_at":"2014-01-16T09:59:15.000-05:00","bumped":true,"bumped_at":"2014-01-16T11:04:32.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":8021,"username":"Abhishek_Gupta","avatar_template":"//www.gravatar.com/avatar/bdab7e61b3191e483492fd680f563fed.png?s={size}&r=pg&d=identicon"}},{"id":11888,"title":"Uncategorized topics not allowed, still seeing tag places","fancy_title":"Uncategorized topics not allowed, still seeing tag places","slug":"uncategorized-topics-not-allowed-still-seeing-tag-places","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":null,"created_at":"2014-01-10T19:23:37.000-05:00","last_posted_at":"2014-01-15T22:41:25.000-05:00","bumped":true,"bumped_at":"2014-01-15T22:41:25.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6695,"username":"illspirit","avatar_template":"//www.gravatar.com/avatar/20c057f893dc884e455f8c6798bda75b.png?s={size}&r=pg&d=identicon"}},{"id":9151,"title":"Apple touch icon doesn't show if there is no sub domain","fancy_title":"Apple touch icon doesn’t show if there is no sub domain","slug":"apple-touch-icon-doesnt-show-if-there-is-no-sub-domain","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2013-08-16T18:16:53.000-04:00","last_posted_at":"2014-01-15T17:10:18.000-05:00","bumped":true,"bumped_at":"2014-01-15T13:19:22.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}}]},{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":727,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","read_restricted":false,"permission":null,"post_count":6186,"topics_day":0,"topics_week":17,"topics_month":46,"topics_year":725,"posts_day":0,"posts_week":180,"posts_month":468,"posts_year":6187,"description_excerpt":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","featured_user_ids":[1917,4385,2072,32,4263],"topics":[{"id":11997,"title":"Create topic in the future","fancy_title":"Create topic in the future","slug":"create-topic-in-the-future","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-16T12:14:36.000-05:00","last_posted_at":"2014-01-16T12:14:36.000-05:00","bumped":false,"bumped_at":"2014-01-16T12:14:36.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":1917,"username":"sil","avatar_template":"//www.gravatar.com/avatar/72a9ebaed35f880abb3418fe96ae6604.png?s={size}&r=pg&d=identicon"}},{"id":11957,"title":"Daily Active Users, Monthly Active Users - Statistics Need","fancy_title":"Daily Active Users, Monthly Active Users - Statistics Need","slug":"daily-active-users-monthly-active-users-statistics-need","posts_count":8,"reply_count":4,"highest_post_number":8,"image_url":null,"created_at":"2014-01-14T13:40:56.000-05:00","last_posted_at":"2014-01-16T06:46:05.000-05:00","bumped":true,"bumped_at":"2014-01-16T06:46:05.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":4385,"username":"jeans","avatar_template":"//www.gravatar.com/avatar/31ef0f1b48c6387a898ef685a21ad450.png?s={size}&r=pg&d=identicon"}},{"id":11992,"title":"Specific customization for each category","fancy_title":"Specific customization for each category","slug":"specific-customization-for-each-category","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-16T04:04:58.000-05:00","last_posted_at":"2014-01-16T04:04:58.000-05:00","bumped":false,"bumped_at":"2014-01-16T04:04:58.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":2072,"username":"nXqd","avatar_template":"//localhost:3000/uploads/default/avatars/139/21a/f9b00ec8d8/{size}.jpg"}}]},{"id":6,"name":"support","color":"b99","text_color":"FFFFFF","slug":"support","topic_count":782,"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","read_restricted":false,"permission":null,"post_count":5396,"topics_day":0,"topics_week":16,"topics_month":67,"topics_year":779,"posts_day":0,"posts_week":122,"posts_month":481,"posts_year":5400,"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":[2291,32,6973,1,8085],"topics":[{"id":11995,"title":"Discourse as a CAS Server","fancy_title":"Discourse as a CAS Server","slug":"discourse-as-a-cas-server","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-16T10:15:30.000-05:00","last_posted_at":"2014-01-16T10:15:31.000-05:00","bumped":true,"bumped_at":"2014-01-16T10:15:31.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":2291,"username":"PabloC","avatar_template":"//www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon"}},{"id":11989,"title":"Where to change the email subject prefix","fancy_title":"Where to change the email subject prefix","slug":"where-to-change-the-email-subject-prefix","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"/uploads/default/2919/adbfe0ff90353440.png","created_at":"2014-01-16T01:03:48.000-05:00","last_posted_at":"2014-01-16T03:20:09.000-05:00","bumped":true,"bumped_at":"2014-01-16T03:20:09.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}},{"id":10866,"title":"Header logo overflows the top header area","fancy_title":"Header logo overflows the top header area","slug":"header-logo-overflows-the-top-header-area","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-11-09T03:40:04.000-05:00","last_posted_at":"2014-01-16T02:27:52.000-05:00","bumped":true,"bumped_at":"2014-01-16T02:40:47.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6973,"username":"stellarhopper","avatar_template":"//www.gravatar.com/avatar/b7c236cc7222b5646f94e05c7c8fe985.png?s={size}&r=pg&d=identicon"}}]},{"id":7,"name":"dev","color":"000","text_color":"FFFFFF","slug":"dev","topic_count":284,"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","read_restricted":false,"permission":null,"post_count":2352,"topics_day":0,"topics_week":3,"topics_month":19,"topics_year":284,"posts_day":0,"posts_week":37,"posts_month":150,"posts_year":2353,"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":[8021,1995,5428,8208,7995],"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":28,"highest_post_number":56,"image_url":null,"created_at":"2013-02-23T00:46:11.000-05:00","last_posted_at":"2014-01-12T21:33:12.000-05:00","bumped":true,"bumped_at":"2014-01-12T21:33:12.000-05: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…","visible":true,"closed":false,"archived":false,"last_poster":{"id":7995,"username":"Hunter","avatar_template":"//www.gravatar.com/avatar/fc0bb205dfe163a1f87c20ffaaa1c7ef.png?s={size}&r=pg&d=identicon"}},{"id":11993,"title":"How to check the user level via ajax?","fancy_title":"How to check the user level via ajax?","slug":"how-to-check-the-user-level-via-ajax","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-16T08:13:09.000-05:00","last_posted_at":"2014-01-16T08:13:09.000-05:00","bumped":true,"bumped_at":"2014-01-16T09:20:59.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":8021,"username":"Abhishek_Gupta","avatar_template":"//www.gravatar.com/avatar/bdab7e61b3191e483492fd680f563fed.png?s={size}&r=pg&d=identicon"}},{"id":10201,"title":"How To override an existing handlebars template from plugin","fancy_title":"How To override an existing handlebars template from plugin","slug":"how-to-override-an-existing-handlebars-template-from-plugin","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":null,"created_at":"2013-10-04T10:44:33.000-04:00","last_posted_at":"2014-01-15T12:35:01.000-05:00","bumped":true,"bumped_at":"2014-01-15T12:34:58.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"last_poster":{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"}}]},{"id":9,"name":"ux","color":"5F497A","text_color":"FFFFFF","slug":"ux","topic_count":184,"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","read_restricted":false,"permission":null,"post_count":1511,"topics_day":0,"topics_week":3,"topics_month":10,"topics_year":183,"posts_day":0,"posts_week":34,"posts_month":117,"posts_year":1511,"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":[1995,7197,7073,1,6626],"topics":[{"id":11996,"title":"It's really hard to navigate the Create Topic / Reply pane with the keyboard","fancy_title":"It’s really hard to navigate the Create Topic / Reply pane with the keyboard","slug":"its-really-hard-to-navigate-the-create-topic-reply-pane-with-the-keyboard","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2014-01-16T10:51:36.000-05:00","last_posted_at":"2014-01-16T11:11:10.000-05:00","bumped":true,"bumped_at":"2014-01-16T11:11:10.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"}},{"id":11973,"title":"Pressing Wrench Icon in the Categories section","fancy_title":"Pressing Wrench Icon in the Categories section","slug":"pressing-wrench-icon-in-the-categories-section","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":"/uploads/default/2907/d8d4e0accd5ee244.png","created_at":"2014-01-15T05:58:12.000-05:00","last_posted_at":"2014-01-16T05:15:52.000-05:00","bumped":true,"bumped_at":"2014-01-16T05:15:52.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":7073,"username":"5an1ty","avatar_template":"//www.gravatar.com/avatar/2c346c47486696df101694f766c45527.png?s={size}&r=pg&d=identicon"}},{"id":5542,"title":"Title character requirements not very visible","fancy_title":"Title character requirements not very visible","slug":"title-character-requirements-not-very-visible","posts_count":24,"reply_count":11,"highest_post_number":24,"image_url":null,"created_at":"2013-04-02T20:09:59.000-04:00","last_posted_at":"2014-01-15T05:26:07.000-05:00","bumped":true,"bumped_at":"2014-01-15T05:26:04.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"last_poster":{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"}}]},{"id":5,"name":"extensibility","color":"FE8432","text_color":"FFFFFF","slug":"extensibility","topic_count":102,"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","read_restricted":false,"permission":null,"post_count":964,"topics_day":0,"topics_week":2,"topics_month":18,"topics_year":102,"posts_day":0,"posts_week":17,"posts_month":76,"posts_year":964,"description_excerpt":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility.","featured_user_ids":[6548,32,8202,6677,7333],"topics":[{"id":11763,"title":"Google AdSense plugin is now available","fancy_title":"Google AdSense plugin is now available","slug":"google-adsense-plugin-is-now-available","posts_count":7,"reply_count":2,"highest_post_number":7,"image_url":"/uploads/default/_optimized/66d/cf0/d69e6709fe_496x500.PNG","created_at":"2014-01-05T14:28:58.000-05:00","last_posted_at":"2014-01-15T13:32:35.000-05:00","bumped":true,"bumped_at":"2014-01-15T13:32:35.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6548,"username":"michaeld","avatar_template":"//localhost:3000/uploads/default/avatars/886/ea8/e533d87fd9/{size}.png"}},{"id":531,"title":"Discourse and Wordpress Integration","fancy_title":"Discourse and Wordpress Integration","slug":"discourse-and-wordpress-integration","posts_count":76,"reply_count":64,"highest_post_number":78,"image_url":null,"created_at":"2013-02-05T18:56:37.000-05:00","last_posted_at":"2014-01-15T11:56:54.000-05:00","bumped":true,"bumped_at":"2014-01-15T11:56:54.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}},{"id":11965,"title":"In your opinion, what is the best wiki engine to be associated with discourse?","fancy_title":"In your opinion, what is the best wiki engine to be associated with discourse?","slug":"in-your-opinion-what-is-the-best-wiki-engine-to-be-associated-with-discourse","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-14T19:27:06.000-05:00","last_posted_at":"2014-01-14T19:27:06.000-05:00","bumped":false,"bumped_at":"2014-01-14T19:27:06.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":8202,"username":"Matthieu","avatar_template":"//www.gravatar.com/avatar/ef7c64d1a92babba8d87df3436ecef68.png?s={size}&r=pg&d=identicon"}}]},{"id":8,"name":"hosting","color":"74CCED","text_color":"FFFFFF","slug":"hosting","topic_count":69,"description":"Topics about hosting Discourse, either on your own servers, in the cloud, or with specific hosting services.","topic_url":"/t/category-definition-for-hosting/2626","read_restricted":false,"permission":null,"post_count":664,"topics_day":0,"topics_week":2,"topics_month":2,"topics_year":69,"posts_day":0,"posts_week":15,"posts_month":35,"posts_year":664,"description_excerpt":"Topics about hosting Discourse, either on your own servers, in the cloud, or with specific hosting services.","featured_user_ids":[6695,1,6018,1580,7030],"topics":[{"id":9540,"title":"Docker images for Discourse","fancy_title":"Docker images for Discourse","slug":"docker-images-for-discourse","posts_count":35,"reply_count":28,"highest_post_number":36,"image_url":null,"created_at":"2013-09-02T00:07:02.000-04:00","last_posted_at":"2014-01-16T07:47:18.000-05:00","bumped":true,"bumped_at":"2014-01-16T07:47:18.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6695,"username":"illspirit","avatar_template":"//www.gravatar.com/avatar/20c057f893dc884e455f8c6798bda75b.png?s={size}&r=pg&d=identicon"}},{"id":11971,"title":"Installing Discourse on Ubuntu 12.04 with Parallels Plesk and Apache","fancy_title":"Installing Discourse on Ubuntu 12.04 with Parallels Plesk and Apache","slug":"installing-discourse-on-ubuntu-12-04-with-parallels-plesk-and-apache","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2014-01-15T04:23:38.000-05:00","last_posted_at":"2014-01-15T04:47:20.000-05:00","bumped":true,"bumped_at":"2014-01-15T04:47:20.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":7030,"username":"naabster","avatar_template":"//www.gravatar.com/avatar/58288ab0e5a4eb13d0fc509be3d3efc5.png?s={size}&r=pg&d=identicon"}},{"id":10844,"title":"Discourse in a Docker container","fancy_title":"Discourse in a Docker container","slug":"discourse-in-a-docker-container","posts_count":12,"reply_count":8,"highest_post_number":12,"image_url":null,"created_at":"2013-11-07T19:12:22.000-05:00","last_posted_at":"2014-01-11T14:43:53.000-05:00","bumped":true,"bumped_at":"2014-01-11T14:43:53.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":1,"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"}}]},{"id":17,"name":"uncategorized","color":"AB9364","text_color":"FFFFFF","slug":"uncategorized","topic_count":229,"description":"","topic_url":null,"read_restricted":false,"permission":null,"post_count":2138,"topics_day":0,"topics_week":0,"topics_month":9,"topics_year":229,"posts_day":1,"posts_week":11,"posts_month":183,"posts_year":2138,"description_excerpt":"","is_uncategorized":true,"featured_user_ids":[6973,32,1,1995,7073],"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.000-05:00","last_posted_at":"2013-02-07T16:50:41.000-05:00","bumped":true,"bumped_at":"2013-02-07T11:57:34.000-05:00","unseen":false,"pinned":true,"excerpt":"Welcome to meta, the official site for discussing the next-gen open source Discourse forum software. You'll find topics on features, bugs, hosting, development, and general support here. \n\nDiscourse is early beta softwar…","visible":true,"closed":true,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}},{"id":11557,"title":"Error after upgrade to 0.9.7.9+","fancy_title":"Error after upgrade to 0.9.7.9+","slug":"error-after-upgrade-to-0-9-7-9","posts_count":83,"reply_count":58,"highest_post_number":85,"image_url":null,"created_at":"2013-12-22T17:12:05.000-05:00","last_posted_at":"2014-01-16T00:52:30.000-05:00","bumped":true,"bumped_at":"2014-01-16T00:52:30.000-05:00","unseen":false,"pinned":true,"excerpt":"Hi, \n\nI'm using webfaction postgresql specific private instance to run discourse (custom port already configured for discourse 0.9.7.6). \n\nThis is not my first update, but this time i have an error. Impossible to upgrade…","visible":true,"closed":false,"archived":false,"last_poster":{"id":6973,"username":"stellarhopper","avatar_template":"//www.gravatar.com/avatar/b7c236cc7222b5646f94e05c7c8fe985.png?s={size}&r=pg&d=identicon"}},{"id":6266,"title":"What sort of replies trigger a notice?","fancy_title":"What sort of replies trigger a notice?","slug":"what-sort-of-replies-trigger-a-notice","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-04-30T17:46:39.000-04:00","last_posted_at":"2014-01-16T00:52:21.000-05:00","bumped":true,"bumped_at":"2014-01-16T00:57:46.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}}]},{"id":11,"name":"login","color":"edb400","text_color":"FFFFFF","slug":"login","topic_count":27,"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.","topic_url":"/t/category-definition-for-login/2828","read_restricted":false,"permission":null,"post_count":200,"topics_day":0,"topics_week":1,"topics_month":1,"topics_year":27,"posts_day":0,"posts_week":10,"posts_month":27,"posts_year":200,"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":[8163,19,7796,32,8024],"topics":[{"id":11959,"title":"Get current user information via JSON","fancy_title":"Get current user information via JSON","slug":"get-current-user-information-via-json","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2014-01-14T15:05:34.000-05:00","last_posted_at":"2014-01-14T16:43:28.000-05:00","bumped":true,"bumped_at":"2014-01-14T16:43:28.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":8163,"username":"znation","avatar_template":"//www.gravatar.com/avatar/9cfd2536afac32d209335b092094c12c.png?s={size}&r=pg&d=identicon"}},{"id":6242,"title":"Allow authentication via multiple services on one account","fancy_title":"Allow authentication via multiple services on one account","slug":"allow-authentication-via-multiple-services-on-one-account","posts_count":34,"reply_count":27,"highest_post_number":34,"image_url":null,"created_at":"2013-04-29T18:51:52.000-04:00","last_posted_at":"2014-01-14T00:25:42.000-05:00","bumped":true,"bumped_at":"2014-01-14T00:25:42.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":7796,"username":"almereyda","avatar_template":"//www.gravatar.com/avatar/62c40187f3eab76982681bfdce05baa9.png?s={size}&r=pg&d=identicon"}},{"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":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-03-13T17:55:29.000-04:00","last_posted_at":"2014-01-13T14:21:34.000-05:00","bumped":true,"bumped_at":"2014-01-13T14:21:34.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}}]},{"id":3,"name":"meta","color":"aaa","text_color":"FFFFFF","slug":"meta","topic_count":79,"description":"Discussion about meta.discourse.org itself, the organization of this forum about Discourse, how it works, and how we can improve this site.","topic_url":"/t/category-definition-for-meta/24","read_restricted":false,"permission":null,"post_count":695,"topics_day":0,"topics_week":1,"topics_month":3,"topics_year":79,"posts_day":0,"posts_week":4,"posts_month":18,"posts_year":696,"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":[19,8085,32,5174,4534],"topics":[{"id":5249,"title":"What is \"Meta\"?","fancy_title":"What is “Meta”?","slug":"what-is-meta","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-03-25T18:00:52.000-04:00","last_posted_at":"2013-03-25T18:00:56.000-04:00","bumped":false,"bumped_at":"2013-03-25T18:00:52.000-04:00","unseen":false,"pinned":true,"excerpt":"Meta means discussion of the discussion itself instead of the actual topic of the discussion. \n\nWhy do we need a meta category?\n\nMeta is where communities come together to decide who they are and what they are about. \n…","visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}},{"id":11943,"title":"How far to take user documentation?","fancy_title":"How far to take user documentation?","slug":"how-far-to-take-user-documentation","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":"/plugins/emoji/images/smile.png","created_at":"2014-01-13T19:21:26.000-05:00","last_posted_at":"2014-01-14T14:19:46.000-05:00","bumped":true,"bumped_at":"2014-01-14T14:19:46.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"}},{"id":11822,"title":"Search engine traffic share and level to Discourse","fancy_title":"Search engine traffic share and level to Discourse","slug":"search-engine-traffic-share-and-level-to-discourse","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2014-01-08T01:54:56.000-05:00","last_posted_at":"2014-01-08T02:21:25.000-05:00","bumped":true,"bumped_at":"2014-01-08T02:21:25.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}}]},{"id":12,"name":"discourse hub","color":"b2c79f","text_color":"FFFFFF","slug":"discourse-hub","topic_count":4,"description":"Topics about current or future Discourse Hub functionality at discourse.org including nickname registration, global user pages, and the site directory.","topic_url":"/t/category-definition-for-discourse-hub/3038","read_restricted":false,"permission":null,"post_count":121,"topics_day":0,"topics_week":0,"topics_month":0,"topics_year":4,"posts_day":0,"posts_week":3,"posts_month":3,"posts_year":121,"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":[2,32,2316,6695,4457],"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":13,"reply_count":4,"highest_post_number":13,"image_url":null,"created_at":"2013-05-10T22:06:08.000-04:00","last_posted_at":"2014-01-13T11:38:15.000-05:00","bumped":true,"bumped_at":"2014-01-13T11:38:15.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":2,"username":"neil","avatar_template":"//www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"}},{"id":2544,"title":"Discourse central hub questions","fancy_title":"Discourse central hub questions","slug":"discourse-central-hub-questions","posts_count":51,"reply_count":44,"highest_post_number":52,"image_url":null,"created_at":"2013-02-09T04:28:21.000-05:00","last_posted_at":"2013-09-19T13:36:49.000-04:00","bumped":true,"bumped_at":"2013-09-19T14:04:08.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":2128,"username":"ultimape","avatar_template":"//www.gravatar.com/avatar/6fe82efded2ee5e218e0452644a07e2e.png?s={size}&r=pg&d=identicon"}},{"id":424,"title":"What are the 'consequences' of changing your name?","fancy_title":"What are the ‘consequences’ of changing your name?","slug":"what-are-the-consequences-of-changing-your-name","posts_count":35,"reply_count":36,"highest_post_number":43,"image_url":null,"created_at":"2013-02-05T17:37:52.000-05:00","last_posted_at":"2013-09-19T13:55:11.000-04:00","bumped":true,"bumped_at":"2013-09-19T13:55:11.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":2128,"username":"ultimape","avatar_template":"//www.gravatar.com/avatar/6fe82efded2ee5e218e0452644a07e2e.png?s={size}&r=pg&d=identicon"}}]},{"id":13,"name":"blog","color":"ED207B","text_color":"FFFFFF","slug":"blog","topic_count":14,"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.","topic_url":"/t/category-definition-for-blog/5250","read_restricted":false,"permission":null,"post_count":206,"topics_day":0,"topics_week":0,"topics_month":1,"topics_year":14,"posts_day":0,"posts_week":2,"posts_month":11,"posts_year":206,"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":[8134,32,4457,4263,1995],"topics":[{"id":11835,"title":"The Road to Discourse 1.0","fancy_title":"The Road to Discourse 1.0","slug":"the-road-to-discourse-1-0","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2014-01-08T19:08:44.000-05:00","last_posted_at":"2014-01-16T04:49:16.000-05:00","bumped":true,"bumped_at":"2014-01-16T04:49:16.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":8134,"username":"iontishina","avatar_template":"//www.gravatar.com/avatar/fd21735919ef17cdb2a38416928a7d5c.png?s={size}&r=pg&d=identicon"}},{"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":62,"reply_count":43,"highest_post_number":71,"image_url":null,"created_at":"2013-04-09T19:08:33.000-04:00","last_posted_at":"2013-12-19T18:27:37.000-05:00","bumped":true,"bumped_at":"2013-12-19T18:27:37.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"}},{"id":5898,"title":"The Discourse Servers","fancy_title":"The Discourse Servers","slug":"the-discourse-servers","posts_count":42,"reply_count":32,"highest_post_number":42,"image_url":null,"created_at":"2013-04-15T15:19:09.000-04:00","last_posted_at":"2013-11-29T15:14:35.000-05:00","bumped":true,"bumped_at":"2013-11-29T15:14:35.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6626,"username":"riking","avatar_template":"//www.gravatar.com/avatar/5120fc4e345db0d1a964888272073819.png?s={size}&r=pg&d=identicon"}}]},{"id":4,"name":"faq","color":"33b","text_color":"FFFFFF","slug":"faq","topic_count":49,"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","read_restricted":false,"permission":null,"post_count":450,"topics_day":0,"topics_week":0,"topics_month":0,"topics_year":49,"posts_day":0,"posts_week":1,"posts_month":10,"posts_year":450,"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,8047,7483,2,6626],"topics":[{"id":5372,"title":"UX confusion (or me confusion) is it possible to edit old posts or only your most recent post in a topic?","fancy_title":"UX confusion (or me confusion) is it possible to edit old posts or only your most recent post in a topic?","slug":"ux-confusion-or-me-confusion-is-it-possible-to-edit-old-posts-or-only-your-most-recent-post-in-a-topic","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-03-28T22:25:57.000-04:00","last_posted_at":"2014-01-13T13:44:39.000-05:00","bumped":true,"bumped_at":"2014-01-13T13:44:39.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}},{"id":9631,"title":"All the options to deploy Discourse with their relative pros and cons","fancy_title":"All the options to deploy Discourse with their relative pros and cons","slug":"all-the-options-to-deploy-discourse-with-their-relative-pros-and-cons","posts_count":14,"reply_count":7,"highest_post_number":15,"image_url":null,"created_at":"2013-09-06T03:55:09.000-04:00","last_posted_at":"2013-09-26T18:49:04.000-04:00","bumped":true,"bumped_at":"2013-12-30T12:32:59.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":3929,"username":"ScotterC","avatar_template":"//www.gravatar.com/avatar/8441ad0b5f1b724aa9932691007afecb.png?s={size}&r=pg&d=identicon"}},{"id":4325,"title":"How to delete a user?","fancy_title":"How to delete a user?","slug":"how-to-delete-a-user","posts_count":31,"reply_count":23,"highest_post_number":33,"image_url":null,"created_at":"2013-03-01T23:18:55.000-05:00","last_posted_at":"2013-12-20T21:26:06.000-05:00","bumped":true,"bumped_at":"2013-12-20T21:26:06.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}}]},{"id":14,"name":"marketplace","color":"8C6238","text_color":"FFFFFF","slug":"marketplace","topic_count":24,"description":"About commercial Discourse related stuff: jobs or paid gigs, plugins, themes, hosting, etc.","topic_url":"/t/category-definition-for-marketplace/5425","read_restricted":false,"permission":null,"post_count":106,"topics_day":0,"topics_week":1,"topics_month":3,"topics_year":24,"posts_day":0,"posts_week":1,"posts_month":7,"posts_year":106,"description_excerpt":"About commercial Discourse related stuff: jobs or paid gigs, plugins, themes, hosting, etc.","featured_user_ids":[6548,32,5548,2291,4755],"topics":[{"id":11866,"title":"DiscourseHosting is now accepting BTC payments","fancy_title":"DiscourseHosting is now accepting BTC payments","slug":"discoursehosting-is-now-accepting-btc-payments","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-10T10:17:28.000-05:00","last_posted_at":"2014-01-10T10:17:28.000-05:00","bumped":false,"bumped_at":"2014-01-10T10:17:28.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6548,"username":"michaeld","avatar_template":"//localhost:3000/uploads/default/avatars/886/ea8/e533d87fd9/{size}.png"}},{"id":11571,"title":"Looking for a developer for Discourse Customization","fancy_title":"Looking for a developer for Discourse Customization","slug":"looking-for-a-developer-for-discourse-customization","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-12-23T20:54:04.000-05:00","last_posted_at":"2013-12-24T13:12:17.000-05:00","bumped":true,"bumped_at":"2013-12-30T16:36:17.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":2291,"username":"PabloC","avatar_template":"//www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon"}},{"id":11594,"title":"Need someone to fix a topic in my discourse install that won't load for moderators. Will pay","fancy_title":"Need someone to fix a topic in my discourse install that won’t load for moderators. Will pay","slug":"need-someone-to-fix-a-topic-in-my-discourse-install-that-wont-load-for-moderators-will-pay","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-12-25T10:25:57.000-05:00","last_posted_at":"2013-12-26T17:01:41.000-05:00","bumped":true,"bumped_at":"2013-12-25T17:01:15.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"last_poster":{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"}}]},{"id":10,"name":"howto","color":"76923C","text_color":"FFFFFF","slug":"howto","topic_count":58,"description":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment. Topics in this category may only be created by trust level 2 and up. ","topic_url":"/t/category-definition-for-howto/2629","read_restricted":false,"permission":null,"post_count":677,"topics_day":0,"topics_week":0,"topics_month":1,"topics_year":58,"posts_day":0,"posts_week":0,"posts_month":13,"posts_year":675,"description_excerpt":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment. Topics in this category may only be created by trust level 2 and up.","featured_user_ids":[7984,4457,1995,6018,5351],"topics":[{"id":7582,"title":"Twitter login with Passenger + Varnish - quick lessons learned","fancy_title":"Twitter login with Passenger + Varnish - quick lessons learned","slug":"twitter-login-with-passenger-varnish-quick-lessons-learned","posts_count":9,"reply_count":3,"highest_post_number":9,"image_url":"/plugins/emoji/images/smile.png","created_at":"2013-06-17T19:46:31.000-04:00","last_posted_at":"2013-12-31T21:03:59.000-05:00","bumped":true,"bumped_at":"2013-12-31T21:03:59.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":7984,"username":"sophearak","avatar_template":"//www.gravatar.com/avatar/98ff4e4caf030d0b7c3c076d7e719032.png?s={size}&r=pg&d=identicon"}},{"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":14,"reply_count":11,"highest_post_number":14,"image_url":"/uploads/meta_discourse/1019/782cbc7e309ce43f.png","created_at":"2013-06-06T15:37:43.000-04:00","last_posted_at":"2013-12-31T11:54:18.000-05:00","bumped":true,"bumped_at":"2013-12-31T11:54:18.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"}},{"id":11628,"title":"My experience with a successful migration (hints for a guide)","fancy_title":"My experience with a successful migration (hints for a guide)","slug":"my-experience-with-a-successful-migration-hints-for-a-guide","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-12-28T09:23:45.000-05:00","last_posted_at":"2013-12-28T10:38:48.000-05:00","bumped":true,"bumped_at":"2013-12-28T10:38:48.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"last_poster":{"id":6018,"username":"robypez","avatar_template":"//www.gravatar.com/avatar/4d6c2e252349806a88636568da02efda.png?s={size}&r=pg&d=identicon"}}]}]}}; +Discourse.URL_FIXTURES["/category/bug/l/latest.json"] = {"users":[{"id":1,"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":8021,"username":"Abhishek_Gupta","avatar_template":"//www.gravatar.com/avatar/bdab7e61b3191e483492fd680f563fed.png?s={size}&r=pg&d=identicon"},{"id":6695,"username":"illspirit","avatar_template":"//www.gravatar.com/avatar/20c057f893dc884e455f8c6798bda75b.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"neil","avatar_template":"//www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":3124,"username":"sipp11","avatar_template":"//www.gravatar.com/avatar/0598cfd42f00fa82223eff562a410ad5.png?s={size}&r=pg&d=identicon"},{"id":7513,"username":"digit","avatar_template":"//localhost:3000/uploads/default/avatars/067/555/7ff0bfdadf/{size}.jpg"},{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":3,"username":"supermathie","avatar_template":"//www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon"},{"id":7073,"username":"5an1ty","avatar_template":"//www.gravatar.com/avatar/2c346c47486696df101694f766c45527.png?s={size}&r=pg&d=identicon"},{"id":4996,"username":"wmertens","avatar_template":"//www.gravatar.com/avatar/a64ed062eb5e2c3407122fcf16c5de6b.png?s={size}&r=pg&d=identicon"},{"id":6377,"username":"zh99998","avatar_template":"//www.gravatar.com/avatar/09fb7a14e5b9fbb9cd82ffaa1df37634.png?s={size}&r=pg&d=identicon"},{"id":1496,"username":"cfstras","avatar_template":"//www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon"},{"id":7995,"username":"Hunter","avatar_template":"//www.gravatar.com/avatar/fc0bb205dfe163a1f87c20ffaaa1c7ef.png?s={size}&r=pg&d=identicon"},{"id":6626,"username":"riking","avatar_template":"//www.gravatar.com/avatar/5120fc4e345db0d1a964888272073819.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":5048,"username":"SneakySly","avatar_template":"//www.gravatar.com/avatar/c062c74a11a5281e22a7f90fd080f3f1.png?s={size}&r=pg&d=identicon"},{"id":7731,"username":"YOU","avatar_template":"//www.gravatar.com/avatar/aedbd784f8a5013f527ce103aa1d3cc1.png?s={size}&r=pg&d=identicon"},{"id":7985,"username":"onlinedev","avatar_template":"//www.gravatar.com/avatar/c03a2d32265270e105d7ffeb2e15f076.png?s={size}&r=pg&d=identicon"},{"id":3415,"username":"radq","avatar_template":"//www.gravatar.com/avatar/7739a4187adb56e033b41ce0f9ccad32.png?s={size}&r=pg&d=identicon"},{"id":5351,"username":"erlend_sh","avatar_template":"//www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon"},{"id":471,"username":"BhaelOchon","avatar_template":"//www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon"},{"id":7,"username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon"},{"id":4780,"username":"HugoAlmeida","avatar_template":"//www.gravatar.com/avatar/23d214ec75c6aa32787b6df919dc9a8e.png?s={size}&r=pg&d=identicon"},{"id":5053,"username":"Blue","avatar_template":"//www.gravatar.com/avatar/cbf6439b21bec74345556ba7538baa8d.png?s={size}&r=pg&d=identicon"},{"id":212,"username":"alxndr","avatar_template":"//www.gravatar.com/avatar/51c9cfe3d5ebd64a79983aa3117f4aed.png?s={size}&r=pg&d=identicon"},{"id":6118,"username":"lukelarris","avatar_template":"//www.gravatar.com/avatar/052a2426faa68b75429cd86431e7d87f.png?s={size}&r=pg&d=identicon"},{"id":7076,"username":"philnelson","avatar_template":"//www.gravatar.com/avatar/37b3083631ceae4ce759487551587a5b.png?s={size}&r=pg&d=identicon"},{"id":4851,"username":"jab","avatar_template":"//www.gravatar.com/avatar/14f382feb5f0dd3d3700edf8d6156aa9.png?s={size}&r=pg&d=identicon"},{"id":4457,"username":"Lee_Ars","avatar_template":"//localhost:3000/uploads/default/avatars/95a/06d/c337428568/{size}.png"},{"id":6280,"username":"mx2000","avatar_template":"//www.gravatar.com/avatar/4ce9219d5926aa3fb685aef5a4da797d.png?s={size}&r=pg&d=identicon"},{"id":3681,"username":"Ajarn","avatar_template":"//www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon"},{"id":1621,"username":"bnb","avatar_template":"//www.gravatar.com/avatar/1e54a178bf671227ea6142e93bf33b39.png?s={size}&r=pg&d=identicon"},{"id":6266,"username":"bragi","avatar_template":"//www.gravatar.com/avatar/690c8d4a36c18855f22ba087b555bc08.png?s={size}&r=pg&d=identicon"},{"id":5335,"username":"masda70","avatar_template":"//www.gravatar.com/avatar/4ffceb3e2866ae3b4df7aab2e812c0ea.png?s={size}&r=pg&d=identicon"},{"id":6314,"username":"rafaelfranca","avatar_template":"//www.gravatar.com/avatar/0525b332aafb83307b32d9747a93de03.png?s={size}&r=pg&d=identicon"}],"topic_list":{"can_create_topic":false,"more_topics_url":"/latest.json?category=1&page=1","draft":null,"draft_key":"new_topic","draft_sequence":null,"topics":[{"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.000-05:00","last_posted_at":"2013-03-07T22:42:27.000-05:00","bumped":true,"bumped_at":"2013-02-26T18:52:56.000-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":469,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":11994,"title":"Cross domain rules, followed?","fancy_title":"Cross domain rules, followed?","slug":"cross-domain-rules-followed","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"/plugins/emoji/images/smile.png","created_at":"2014-01-16T09:59:15.000-05:00","last_posted_at":"2014-01-16T09:59:15.000-05:00","bumped":true,"bumped_at":"2014-01-16T11:04:32.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":15,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"Abhishek_Gupta","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":8021}]},{"id":11888,"title":"Uncategorized topics not allowed, still seeing tag places","fancy_title":"Uncategorized topics not allowed, still seeing tag places","slug":"uncategorized-topics-not-allowed-still-seeing-tag-places","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":null,"created_at":"2014-01-10T19:23:37.000-05:00","last_posted_at":"2014-01-15T22:41:25.000-05:00","bumped":true,"bumped_at":"2014-01-15T22:41:25.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":50,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"illspirit","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":6695},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":2}]},{"id":9151,"title":"Apple touch icon doesn't show if there is no sub domain","fancy_title":"Apple touch icon doesn’t show if there is no sub domain","slug":"apple-touch-icon-doesnt-show-if-there-is-no-sub-domain","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2013-08-16T18:16:53.000-04:00","last_posted_at":"2014-01-15T17:10:18.000-05:00","bumped":true,"bumped_at":"2014-01-15T13:19:22.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":188,"like_count":3,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3124},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":10911,"title":"/users/activate-account pulling blank logo instead of defaulting to h2","fancy_title":"/users/activate-account pulling blank logo instead of defaulting to h2","slug":"users-activate-account-pulling-blank-logo-instead-of-defaulting-to-h2","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-11-12T14:49:04.000-05:00","last_posted_at":"2014-01-15T10:21:37.000-05:00","bumped":true,"bumped_at":"2014-01-15T10:21:37.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":121,"like_count":3,"has_summary":false,"archetype":"regular","last_poster_username":"eviltrout","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":7513},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":11937,"title":"Smiley parser is busted","fancy_title":"Smiley parser is busted","slug":"smiley-parser-is-busted","posts_count":4,"reply_count":4,"highest_post_number":7,"image_url":"/plugins/emoji/images/smile.png","created_at":"2014-01-13T15:42:00.000-05:00","last_posted_at":"2014-01-15T05:51:16.000-05:00","bumped":true,"bumped_at":"2014-01-15T05:51:16.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":66,"like_count":2,"has_summary":false,"archetype":"regular","last_poster_username":"sam","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3},{"extras":null,"description":"Most Posts","user_id":7073},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":6625,"title":"Error 500 on PUT of site config","fancy_title":"Error 500 on PUT of site config","slug":"error-500-on-put-of-site-config","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-05-14T18:13:56.000-04:00","last_posted_at":"2014-01-16T04:55:50.000-05:00","bumped":true,"bumped_at":"2014-01-15T04:43:23.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":132,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4996},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":11225,"title":"Forum acts weirdly after client side updates","fancy_title":"Forum acts weirdly after client side updates","slug":"forum-acts-weirdly-after-client-side-updates","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":null,"created_at":"2013-12-02T18:32:10.000-05:00","last_posted_at":"2014-01-15T04:04:55.000-05:00","bumped":true,"bumped_at":"2014-01-15T02:55:18.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":117,"like_count":7,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":11903,"title":"Error after update to 0.9.8.1","fancy_title":"Error after update to 0.9.8.1","slug":"error-after-update-to-0-9-8-1","posts_count":14,"reply_count":6,"highest_post_number":17,"image_url":null,"created_at":"2014-01-12T06:55:45.000-05:00","last_posted_at":"2014-01-15T01:48:58.000-05:00","bumped":true,"bumped_at":"2014-01-15T01:48:58.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":121,"like_count":6,"has_summary":false,"archetype":"regular","last_poster_username":"zh99998","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":6377},{"extras":null,"description":"Most Posts","user_id":1496},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":19}]},{"id":11969,"title":"Qunit error and possibly related ember.js problem","fancy_title":"Qunit error and possibly related ember.js problem","slug":"qunit-error-and-possibly-related-ember-js-problem","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-14T22:51:32.000-05:00","last_posted_at":"2014-01-14T22:51:32.000-05:00","bumped":false,"bumped_at":"2014-01-14T22:51:32.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":32,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"Hunter","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":7995}]},{"id":11945,"title":"Stuff disappears on the groups page","fancy_title":"Stuff disappears on the groups page","slug":"stuff-disappears-on-the-groups-page","posts_count":7,"reply_count":2,"highest_post_number":7,"image_url":null,"created_at":"2014-01-13T23:03:53.000-05:00","last_posted_at":"2014-01-15T01:26:07.000-05:00","bumped":true,"bumped_at":"2014-01-14T21:09:01.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":54,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"zogstrip","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":6695},{"extras":null,"description":"Most Posts","user_id":6626},{"extras":"latest","description":"Most Recent Poster, Frequent Poster","user_id":1995}]},{"id":11520,"title":"Discourse WordPress Plugin: Emoji's do not properly display","fancy_title":"Discourse WordPress Plugin: Emoji’s do not properly display","slug":"discourse-wordpress-plugin-emojis-do-not-properly-display","posts_count":9,"reply_count":4,"highest_post_number":9,"image_url":"/uploads/default/_optimized/638/4db/eff43a45b8_690x420.png","created_at":"2013-12-19T23:32:03.000-05:00","last_posted_at":"2014-01-15T04:32:19.000-05:00","bumped":true,"bumped_at":"2014-01-14T17:53:34.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":168,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5048},{"extras":null,"description":"Frequent Poster","user_id":7731},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":11597,"title":"All categories drop down does not close after clicking on first menu \"all categories\"","fancy_title":"All categories drop down does not close after clicking on first menu “all categories”","slug":"all-categories-drop-down-does-not-close-after-clicking-on-first-menu-all-categories","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":"/uploads/default/2495/f9efe463ae67632d.png","created_at":"2013-12-25T15:09:27.000-05:00","last_posted_at":"2014-01-14T17:46:41.000-05:00","bumped":true,"bumped_at":"2014-01-14T17:46:41.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":73,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"radq","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":7985},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":3415}]},{"id":11962,"title":"Editor When Clicking on Wrench Issue","fancy_title":"Editor When Clicking on Wrench Issue","slug":"editor-when-clicking-on-wrench-issue","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"/uploads/default/_optimized/ca4/f70/ac7278b8f6_690x176.png","created_at":"2014-01-14T17:23:20.000-05:00","last_posted_at":"2014-01-14T17:24:02.000-05:00","bumped":true,"bumped_at":"2014-01-14T17:24:02.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":30,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":7073},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":11831,"title":"Broken links, possibly related to HTTPS","fancy_title":"Broken links, possibly related to HTTPS","slug":"broken-links-possibly-related-to-https","posts_count":17,"reply_count":13,"highest_post_number":18,"image_url":null,"created_at":"2014-01-08T17:40:45.000-05:00","last_posted_at":"2014-01-14T16:03:07.000-05:00","bumped":true,"bumped_at":"2014-01-14T16:03:07.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":102,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"eviltrout","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":471},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":11916,"title":"Unable to save user preferences","fancy_title":"Unable to save user preferences","slug":"unable-to-save-user-preferences","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2014-01-13T02:29:26.000-05:00","last_posted_at":"2014-01-14T14:39:32.000-05:00","bumped":true,"bumped_at":"2014-01-14T14:39:29.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":34,"like_count":3,"has_summary":false,"archetype":"regular","last_poster_username":"zogstrip","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":6626},{"extras":"latest","description":"Most Recent Poster","user_id":1995}]},{"id":10425,"title":"Editing category permissions: select value doesn't change","fancy_title":"Editing category permissions: select value doesn’t change","slug":"editing-category-permissions-select-value-doesnt-change","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"/uploads/meta_discourse/1956/d55fba29dbd7e1fe.png","created_at":"2013-10-17T18:20:20.000-04:00","last_posted_at":"2013-10-17T18:20:21.000-04:00","bumped":true,"bumped_at":"2014-01-14T13:35:37.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":92,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"pekka","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":7}]},{"id":6557,"title":"Middle clicking a link twice does not work as expected","fancy_title":"Middle clicking a link twice does not work as expected","slug":"middle-clicking-a-link-twice-does-not-work-as-expected","posts_count":10,"reply_count":7,"highest_post_number":10,"image_url":null,"created_at":"2013-05-11T13:56:02.000-04:00","last_posted_at":"2014-01-14T13:13:04.000-05:00","bumped":true,"bumped_at":"2014-01-14T13:13:04.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":401,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"neil","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4780},{"extras":null,"description":"Most Posts","user_id":5053},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":2}]},{"id":11944,"title":"Regression: Cannot sort topic list","fancy_title":"Regression: Cannot sort topic list","slug":"regression-cannot-sort-topic-list","posts_count":5,"reply_count":0,"highest_post_number":5,"image_url":null,"created_at":"2014-01-13T20:14:06.000-05:00","last_posted_at":"2014-01-14T19:31:28.000-05:00","bumped":true,"bumped_at":"2014-01-14T07:31:19.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":true,"views":37,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"zogstrip","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":6626},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":1995}]},{"id":10462,"title":"Rebake error when posts contain deleted YouTube video","fancy_title":"Rebake error when posts contain deleted YouTube video","slug":"rebake-error-when-posts-contain-deleted-youtube-video","posts_count":7,"reply_count":1,"highest_post_number":7,"image_url":null,"created_at":"2013-10-19T00:01:21.000-04:00","last_posted_at":"2014-01-14T02:24:19.000-05:00","bumped":true,"bumped_at":"2014-01-14T02:24:12.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":178,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":6695},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":11932,"title":"Use of blockquote tag causes text outside a paragraph","fancy_title":"Use of blockquote tag causes text outside a paragraph","slug":"use-of-blockquote-tag-causes-text-outside-a-paragraph","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2014-01-13T13:38:15.000-05:00","last_posted_at":"2014-01-13T19:30:37.000-05:00","bumped":true,"bumped_at":"2014-01-14T02:22:58.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":54,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":6626},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":10357,"title":"Displaced Wrench Icon Chrome","fancy_title":"Displaced Wrench Icon Chrome","slug":"displaced-wrench-icon-chrome","posts_count":12,"reply_count":4,"highest_post_number":12,"image_url":"/uploads/default/_optimized/9f3/f35/c5379beffe_690x300.jpg","created_at":"2013-10-14T05:48:21.000-04:00","last_posted_at":"2014-01-14T03:21:32.000-05:00","bumped":true,"bumped_at":"2014-01-13T19:03:33.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":206,"like_count":10,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":7073},{"extras":null,"description":"Frequent Poster","user_id":212},{"extras":null,"description":"Frequent Poster","user_id":6118},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":32}]},{"id":10114,"title":"Invitation expiry workflow is wonky","fancy_title":"Invitation expiry workflow is wonky","slug":"invitation-expiry-workflow-is-wonky","posts_count":14,"reply_count":7,"highest_post_number":14,"image_url":null,"created_at":"2013-09-30T00:59:36.000-04:00","last_posted_at":"2014-01-13T18:51:26.000-05:00","bumped":true,"bumped_at":"2014-01-13T18:51:26.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":176,"like_count":2,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":null,"description":"Most Posts","user_id":7076},{"extras":null,"description":"Frequent Poster","user_id":2},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":6330,"title":"Reply not disabled if topic closed while viewing","fancy_title":"Reply not disabled if topic closed while viewing","slug":"reply-not-disabled-if-topic-closed-while-viewing","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&r=pg&d=identicon","created_at":"2013-05-02T06:02:06.000-04:00","last_posted_at":"2014-01-13T11:54:22.000-05:00","bumped":true,"bumped_at":"2014-01-13T11:54:22.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":164,"like_count":1,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4851},{"extras":null,"description":"Most Posts","user_id":2},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"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":11,"reply_count":7,"highest_post_number":13,"image_url":null,"created_at":"2013-07-14T12:37:02.000-04:00","last_posted_at":"2014-01-13T11:16:56.000-05:00","bumped":true,"bumped_at":"2014-01-13T11:16:33.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":288,"like_count":5,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4457},{"extras":null,"description":"Most Posts","user_id":6280},{"extras":null,"description":"Frequent Poster","user_id":3681},{"extras":null,"description":"Frequent Poster","user_id":1621},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8815,"title":"Cache headers confuse proxies","fancy_title":"Cache headers confuse proxies","slug":"cache-headers-confuse-proxies","posts_count":9,"reply_count":3,"highest_post_number":9,"image_url":null,"created_at":"2013-08-02T05:45:26.000-04:00","last_posted_at":"2014-01-13T11:12:09.000-05:00","bumped":true,"bumped_at":"2014-01-13T10:41:44.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":314,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":6266},{"extras":null,"description":"Most Posts","user_id":19},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":4457},{"extras":"latest","description":"Most Recent Poster, Frequent Poster","user_id":32}]},{"id":11371,"title":"Search not working for Staff users","fancy_title":"Search not working for Staff users","slug":"search-not-working-for-staff-users","posts_count":15,"reply_count":10,"highest_post_number":15,"image_url":null,"created_at":"2013-12-11T13:22:56.000-05:00","last_posted_at":"2014-01-13T01:41:50.000-05:00","bumped":true,"bumped_at":"2014-01-13T01:41:46.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":217,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"sam","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5335},{"extras":null,"description":"Most Posts","user_id":19},{"extras":null,"description":"Frequent Poster","user_id":6314},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":9908,"title":"Draft bar overrides pagination widget","fancy_title":"Draft bar overrides pagination widget","slug":"draft-bar-overrides-pagination-widget","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":null,"created_at":"2013-09-19T17:19:52.000-04:00","last_posted_at":"2014-01-13T01:26:01.000-05:00","bumped":true,"bumped_at":"2014-01-13T01:25:12.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":true,"views":108,"like_count":2,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5351},{"extras":null,"description":"Most Posts","user_id":471},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":6134,"title":"Unread topic is stuck as unread after insertion of staff message","fancy_title":"Unread topic is stuck as unread after insertion of staff message","slug":"unread-topic-is-stuck-as-unread-after-insertion-of-staff-message","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&r=pg&d=identicon","created_at":"2013-04-24T13:37:32.000-04:00","last_posted_at":"2014-01-13T01:22:49.000-05:00","bumped":true,"bumped_at":"2014-01-13T01:22:42.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":true,"archived":false,"views":169,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":5351},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":11914,"title":"Google analytics is not registering page views","fancy_title":"Google analytics is not registering page views","slug":"google-analytics-is-not-registering-page-views","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2014-01-13T00:32:45.000-05:00","last_posted_at":"2014-01-13T00:32:46.000-05:00","bumped":true,"bumped_at":"2014-01-13T00:32:46.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":37,"like_count":0,"has_summary":false,"archetype":"regular","last_poster_username":"sam","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":1}]}]}}; diff --git a/test/javascripts/fixtures/topic_fixtures.js b/test/javascripts/fixtures/topic_fixtures.js index 4eeae22b2f1..9ab3a089b16 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":"//www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T16:29:00.000-05:00","cooked":"

Any plans to support localization of UI elements, so that I (for example) could set up a completely German speaking forum?

","post_number":1,"post_type":1,"updated_at":"2013-02-05T16:29:00.000-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":23,"incoming_link_count":9,"reads":390,"score":158.15,"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/comrades-lets-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":1},{"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":0},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/5","internal":true,"reflection":true,"title":"Suggestion: Translation on admin panel","clicks":0},{"url":"http://meta.discourse.org/t/translation-workflow/6102","internal":true,"reflection":true,"title":"Translation workflow","clicks":0},{"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":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},{"url":"http://meta.discourse.org/t/internationalization-i18n-provided-for-discourse/2073/2","internal":true,"reflection":true,"title":"Internationalization I18n provided for discourse ?","clicks":0},{"url":"http://meta.discourse.org/t/language-mirrors/2378/2","internal":true,"reflection":true,"title":"Language mirrors","clicks":0},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/5","internal":true,"reflection":true,"title":"Roadplan for Discourse","clicks":0},{"url":"http://meta.discourse.org/t/solving-xda-developer-style-forums/4368/4","internal":true,"reflection":true,"title":"Solving XDA-Developer style forums","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,"edit_reason":null},{"id":419,"name":"Tim Stone","username":"tms","avatar_template":"//www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T16:32:47.000-05:00","cooked":"

The application strings are externalized, so localization should be entirely possible with enough translation effort.

","post_number":2,"post_type":1,"updated_at":"2013-02-06T05:15:27.000-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":26,"incoming_link_count":12,"reads":376,"score":256.5,"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":91}],"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,"edit_reason":null},{"id":1060,"name":"Jeff Atwood","username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T21:26:24.000-05:00","cooked":"

Yep, all strings are going through a lookup table.*

\n\n
\n
\n \n
\n
\n

https://github.com/discourse/discourse/blob/master/config/locales

\n
\n\n\n\n\n<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" id=\"vp\" content=\"initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width\">\n  <meta name=\"viewport\" id=\"vp\" content=\"initial-scale=1.0,user-scalable=no,maximum-scale=1\" media=\"(device-height: 568px)\">\n  <link rel=\"apple-touch-icon-precomposed\" href=\"apple-touch-icon-precomposed.png\">\n  <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"apple-touch-icon-114-precomposed.png\">\n  <meta name=\"google-analytics\" content=\"UA-3769691-2\">\n\n  <meta content=\"authenticity_token\" name=\"csrf-param\" />\n<meta content=\"nFiTSR4YODX1WTtDmWoO2Xbd9vatOibhb97Rm3nw+8I=\" name=\"csrf-token\" />\n\n  <meta content=\"collector.githubapp.com\" name=\"octolytics-host\" /><meta content=\"collector-cdn.github.com\" name=\"octolytics-script-host\" /><meta content=\"github\" name=\"octolytics-app-id\" /><meta content=\"40479403:2C5C:A159F60:52CDD76D\" name=\"octolytics-dimension-request_id\" />\n  <meta content=\"mobile\" name=\"octolytics-dimension-device\" />\n  <meta content=\"3220138\" name=\"octolytics-dimension-user_id\" /><meta content=\"discourse\" name=\"octolytics-dimension-user_login\" /><meta content=\"7569578\" name=\"octolytics-dimension-repository_id\" /><meta content=\"discourse/discourse\" name=\"octolytics-dimension-repository_nwo\" /><meta content=\"true\" name=\"octolytics-dimension-repository_public\" /><meta content=\"false\" name=\"octolytics-dimension-repository_is_fork\" /><meta content=\"7569578\" name=\"octolytics-dimension-repository_network_root_id\" /><meta content=\"discourse/discourse\" name=\"octolytics-dimension-repository_network_root_nwo\" />\n  \n\n  <title>discourse/discourse · GitHub</title>\n\n  <link href=\"https://github.global.ssl.fastly.net/assets/mobile-9164f493ea1c72c93c839eba1f16fb0a36e0f638.css\" media=\"all\" rel=\"stylesheet\" type=\"text/css\" />\n  <script async=\"async\" defer=\"defer\" src=\"https://github.global.ssl.fastly.net/assets/mobile-756d65616fde6492018be51d0739ed8ccfcc25b6.js\" type=\"text/javascript\"></script>\n</head>\n<body class=\"\">\n  <header class=\"nav-bar clearfix\">\n    <div class=\"nav-bar-inner\">\n      \n\n      <button class=\"header-button header-nav-button touchable js-show-global-nav \">\n        <span class=\"octicon octicon-three-bars\"></span>\n        <span class=\"octicon octicon-primitive-dot\"></span>\n      </button>\n\n      <div class=\"nav-bar-title-text\">\n              <span class=\"octicon octicon-repo\"></span>\n\n    <strong><a href=\"/discourse\">discourse</a></strong>\n    /\n    <strong><a href=\"/discourse/discourse\">discourse</a></strong>\n\n      </div>\n    </div>\n\n    <nav class=\"nav-bar-tabs repo-nav-bar-tabs \">\n      <ul>\n\n\n        <li>\n          <a href=\"/explore\"><span class=\"octicon octicon-telescope\"></span> Explore</a>\n        </li>\n\n        <li>\n            <a href=\"/login\"><span class=\"octicon octicon-log-in\"></span> Sign in</a>\n        </li>\n\n            <li class=\"section-title\">This repository</li>\n    <li><a href=\"/discourse/discourse?files=1\"><span class=\"octicon octicon-code\"></span> Code</a></li>\n      <li><a href=\"/discourse/discourse/issues\"><span class=\"octicon octicon-issue-opened\"></span> Issues</a></li>\n    <li><a href=\"/discourse/discourse/pulls\"><span class=\"octicon octicon-git-pull-request\"></span> Pull Requests</a></li>\n    <li><a href=\"/discourse/discourse/pulse\"><span class=\"octicon octicon-pulse\"></span> Pulse</a></li>\n\n      </ul>\n    </nav>\n  </header>\n\n  \n\n        \n\n\n<div class=\"file-browser\">\n\n  <p class=\"history-link\">\n    <a href=\"/discourse/discourse/commits/master/config/locales\">\n      <span class=\"octicon octicon-history\"></span>\n      View 5857 commits\n    </a>\n  </p>\n\n  <div class=\"bubble\">\n    <ul class=\"bubble-list files-list\">\n      <li class=\"path\">\n        <span class=\"branch\">master</span>\n        <span class='bold'>\n          <span itemtype=\"http://data-vocabulary.org/Breadcrumb\">\n            <a href=\"/discourse/discourse?files=1\" data-branch=\"master\" data-direction=\"back\" itemscope=\"url\">\n              <span itemprop=\"title\">discourse</span>\n            </a>\n          </span>\n        </span>\n        <span class=\"separator\"> / </span>\n\n        <span itemscope=\"\" itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"/discourse/discourse/tree/master/config\" data-branch=\"master\" data-direction=\"back\" data-pjax=\"true\" itemscope=\"url\"><span itemprop=\"title\">config</span></a></span><span class=\"separator\"> / </span><strong class=\"final-path\">locales</strong>\n      </li>\n\n        <li>\n          <a href=\"/discourse/discourse/blob/master/config/locales/client.cs.yml\" class=\"file-list-item\">\n            <span class=\"octicon octicon-file-text\"></span>\n            client.cs.yml\n              <span class=\"timestamp\">28 days ago</span>\n          </a>\n        </li>\n        <li>\n          <a href=\"/discourse/discourse/blob/master/config/locales/client.da.yml\" class=\"file-list-item\">\n            <span class=\"octicon octicon-file-text\"></span>\n            client.da.yml\n          </a>\n        </li>\n        <li>
\n\n This file has been truncated. show original\n
\n
\n\n

So you could replace that lookup table with the \"de\" one to get German.

\n\n

* 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!

","post_number":3,"post_type":1,"updated_at":"2013-06-18T22:58:28.000-04:00","reply_count":3,"reply_to_post_number":null,"quote_count":0,"avg_time":33,"incoming_link_count":4,"reads":367,"score":155.05,"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":27},{"url":"http://meta.discourse.org/t/github-onebox-rendering-issue/7616","internal":true,"reflection":true,"title":"GitHub OneBox Rendering Issue","clicks":0}],"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":true,"staff":true,"user_id":32,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false,"edit_reason":null},{"id":3623,"name":"Shade","username":"shade","avatar_template":"//www.gravatar.com/avatar/02c3f1806f6962f56168c7bd9f8924b8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T07:55:33.000-05:00","cooked":"

Is it a coincidence that the strings file is 1337 lines long? \"smiley\"

","post_number":4,"post_type":1,"updated_at":"2013-02-07T07:55:33.000-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":21,"incoming_link_count":11,"reads":324,"score":255.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":0}],"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,"edit_reason":null},{"id":3651,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:02:07.000-05:00","cooked":"

\n\n

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 bitch.

\n\n

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.

\n\n

Re keeping track of changed strings, @codinghorror I found this very interesting: http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders if plain English placeholders were used, any change in strings would lead to a new node in the yml file, making keeping the translation up to date easier. Maybe worth thinking about in the future.

","post_number":5,"post_type":1,"updated_at":"2013-02-07T09:05:42.000-05:00","reply_count":2,"reply_to_post_number":3,"quote_count":1,"avg_time":23,"incoming_link_count":6,"reads":317,"score":179.55,"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":56}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":2,"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,"edit_reason":null},{"id":3654,"name":"Sam Saffron","username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:05:39.000-05:00","cooked":"

Yes, I really like the concept of fuzzy matching for localization, perhaps you can chase up alex sexton he was meaning to upload a localization tool for this kind of stuff.

\n\n

Also, I am a big fan of ICU message format, but it is not the \"Rails way (tm)\".

","post_number":6,"post_type":1,"updated_at":"2013-02-07T09:05:39.000-05:00","reply_count":1,"reply_to_post_number":5,"quote_count":0,"avg_time":19,"incoming_link_count":2,"reads":276,"score":86.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":38},{"url":"https://github.com/SlexAxton","internal":false,"reflection":false,"clicks":9}],"read":false,"user_title":"co-founder","reply_to_user":{"username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon"},"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":true,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false,"edit_reason":null},{"id":3655,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:08:17.000-05:00","cooked":"

Looks interesting, I'll take a peek.

\n\n

As said on dev, the best tool I can see in terms of giving translators a proper interface and quality control would be something like GlotPress. It's based on the PO messages format (is that somehow related to ICU?) but looks pretty great.

\n\n

\n\n

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 message_error_nametooshort ?)

","post_number":7,"post_type":1,"updated_at":"2013-02-07T09:12:02.000-05:00","reply_count":1,"reply_to_post_number":6,"quote_count":1,"avg_time":17,"incoming_link_count":0,"reads":276,"score":76.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,"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,"edit_reason":null},{"id":3658,"name":"Sam Saffron","username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:12:22.000-05:00","cooked":"

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.

\n\n

Trouble is you need a fuzzy matcher for translators if you are going to store stuff like mf.compile( 'This is a message.' ) in source, one letter change and all your translators need to validate it.

","post_number":8,"post_type":1,"updated_at":"2013-02-07T09:12:22.000-05:00","reply_count":1,"reply_to_post_number":7,"quote_count":0,"avg_time":11,"incoming_link_count":0,"reads":251,"score":70.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":0}],"read":false,"user_title":"co-founder","reply_to_user":{"username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon"},"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":true,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false,"edit_reason":null},{"id":3660,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:14:12.000-05:00","cooked":"

\n\n

Yeah, that's why I've always been a friend of message_error_nametooshort placeholders, until I asked the SO question linked above. The accepted answer makes a good argument against those placeholders: you want 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.

","post_number":9,"post_type":1,"updated_at":"2013-02-07T09:18:09.000-05:00","reply_count":1,"reply_to_post_number":8,"quote_count":1,"avg_time":10,"incoming_link_count":0,"reads":249,"score":70.3,"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,"edit_reason":null},{"id":3667,"name":"Tim Stone","username":"tms","avatar_template":"//www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:25:16.000-05:00","cooked":"

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.

","post_number":10,"post_type":1,"updated_at":"2013-02-07T09:25:16.000-05:00","reply_count":1,"reply_to_post_number":9,"quote_count":0,"avg_time":8,"incoming_link_count":0,"reads":236,"score":67.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","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon"},"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,"edit_reason":null},{"id":3673,"name":"Sam Saffron","username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:30:21.000-05:00","cooked":"

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.

","post_number":11,"post_type":1,"updated_at":"2013-02-07T09:30:21.000-05:00","reply_count":1,"reply_to_post_number":10,"quote_count":0,"avg_time":7,"incoming_link_count":0,"reads":233,"score":66.95,"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","avatar_template":"//www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon"},"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":true,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false,"edit_reason":null},{"id":3675,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:33:38.000-05:00","cooked":"

\n\n

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.

\n\n

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.

","post_number":12,"post_type":1,"updated_at":"2013-02-07T09:34:39.000-05:00","reply_count":1,"reply_to_post_number":11,"quote_count":1,"avg_time":8,"incoming_link_count":1,"reads":231,"score":71.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,"user_deleted":false,"edit_reason":null},{"id":3690,"name":"Valts","username":"Vilx","avatar_template":"//www.gravatar.com/avatar/7bd2e50770e937761cfc3811a332bccc.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T10:05:35.000-05:00","cooked":"

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 awesome.

","post_number":13,"post_type":1,"updated_at":"2013-02-07T10:05:35.000-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":8,"incoming_link_count":11,"reads":246,"score":149.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,"edit_reason":null},{"id":3925,"name":"Eric Kidd","username":"emk","avatar_template":"//www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T14:37:06.000-05:00","cooked":"

\n\n

I've had pretty decent luck using Localeapp to localize Rails applications:

\n\n

http://www.localeapp.com/

\n\n

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.

\n\n

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.

","post_number":14,"post_type":1,"updated_at":"2013-02-07T14:37:06.000-05:00","reply_count":1,"reply_to_post_number":12,"quote_count":1,"avg_time":9,"incoming_link_count":0,"reads":237,"score":127.85,"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":59}],"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,"edit_reason":null},{"id":3938,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T14:52:13.000-05:00","cooked":"

\n\n

Ohhh. Looking sexy. droool

","post_number":15,"post_type":1,"updated_at":"2013-02-07T14:52:13.000-05:00","reply_count":1,"reply_to_post_number":14,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":217,"score":63.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,"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,"edit_reason":null},{"id":3982,"name":"Eric Kidd","username":"emk","avatar_template":"//www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T15:52:22.000-05:00","cooked":"

\n\n

Yeah, it's pretty. \"smile\" But there were still some rough edges as of a few months ago.

\n\n

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.

\n\n

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.

\n\n

(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.)

","post_number":16,"post_type":1,"updated_at":"2013-02-07T15:52:22.000-05:00","reply_count":1,"reply_to_post_number":15,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":209,"score":62.2,"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,"edit_reason":null},{"id":3989,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:04:15.000-05:00","cooked":"

\n\n

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.

","post_number":17,"post_type":1,"updated_at":"2013-02-07T16:04:15.000-05:00","reply_count":2,"reply_to_post_number":16,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":212,"score":67.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,"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,"edit_reason":null},{"id":3996,"name":"Sam Saffron","username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:12:06.000-05:00","cooked":"

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.

\n\n

I think it would be awesome, very doable technically.

","post_number":18,"post_type":1,"updated_at":"2013-02-07T16:12:06.000-05:00","reply_count":2,"reply_to_post_number":17,"quote_count":0,"avg_time":9,"incoming_link_count":0,"reads":220,"score":144.45,"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","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon"},"actions_summary":[{"id":2,"count":6,"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":true,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false,"edit_reason":null},{"id":4009,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:18:47.000-05:00","cooked":"

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.

\n\n

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.

","post_number":19,"post_type":1,"updated_at":"2013-02-07T16:22:10.000-05:00","reply_count":0,"reply_to_post_number":18,"quote_count":0,"avg_time":9,"incoming_link_count":0,"reads":203,"score":56.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,"reply_to_user":{"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},"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,"edit_reason":null},{"id":4012,"name":"Marco Ceppi","username":"marcoceppi","avatar_template":"//www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:22:46.000-05:00","cooked":"

If you use gettext format you could leverage Launchpad translations and the community behind it.

","post_number":20,"post_type":1,"updated_at":"2013-02-07T16:22:46.000-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":10,"incoming_link_count":1,"reads":204,"score":61.3,"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":8}],"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,"edit_reason":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,25473,30505,30512]},"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":"//www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon"},"last_poster":{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},"participants":[{"id":212,"username":"alxndr","avatar_template":"//www.gravatar.com/avatar/51c9cfe3d5ebd64a79983aa3117f4aed.png?s={size}&r=pg&d=identicon","post_count":11},{"id":1,"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","post_count":11},{"id":7,"username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","post_count":8},{"id":461,"username":"kuba","avatar_template":"//www.gravatar.com/avatar/1835cb6a5f35bd4089e416a99af90f5f.png?s={size}&r=pg&d=identicon","post_count":7},{"id":2995,"username":"tattoo","avatar_template":"//www.gravatar.com/avatar/645454e097898e3f0d9a54c699995678.png?s={size}&r=pg&d=identicon","post_count":6},{"id":2540,"username":"jgourdon","avatar_template":"//www.gravatar.com/avatar/3f0ee7e17ec820c458958ed7b0e8538b.png?s={size}&r=pg&d=identicon","post_count":5},{"id":1860,"username":"emk","avatar_template":"//www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","post_count":4},{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","post_count":4},{"id":1275,"username":"dacap","avatar_template":"//www.gravatar.com/avatar/ec0ebc7c17f649d03ee78d4eba56ef73.png?s={size}&r=pg&d=identicon","post_count":4},{"id":3190,"username":"gururea","avatar_template":"//www.gravatar.com/avatar/5ffb222c9c1bd2d99d9267c1557ca984.png?s={size}&r=pg&d=identicon","post_count":3},{"id":1895,"username":"maciek","avatar_template":"//www.gravatar.com/avatar/e3fe0c49f509994d67045602f49808ee.png?s={size}&r=pg&d=identicon","post_count":3},{"id":3704,"username":"mojzis","avatar_template":"//localhost:3000/uploads/default/avatars/2d3/5f5/e677798a1a/{size}.jpg","post_count":3},{"id":22,"username":"splattne","avatar_template":"//www.gravatar.com/avatar/7847006dbf49f1722b07c8da396f1275.png?s={size}&r=pg&d=identicon","post_count":2},{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","post_count":2},{"id":1979,"username":"Superuser","avatar_template":"//www.gravatar.com/avatar/a7f1529299c8fb9a263b8e8afcab23da.png?s={size}&r=pg&d=identicon","post_count":2},{"id":3620,"username":"potthast","avatar_template":"//www.gravatar.com/avatar/1753724263a5dee3e38790e6ac3d685c.png?s={size}&r=pg&d=identicon","post_count":2},{"id":3818,"username":"Tudor","avatar_template":"//www.gravatar.com/avatar/8f367608e1d013beed72a8941bb768ca.png?s={size}&r=pg&d=identicon","post_count":2},{"id":9,"username":"tms","avatar_template":"//www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","post_count":2},{"id":255,"username":"uwe_keim","avatar_template":"//www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon","post_count":1},{"id":2753,"username":"mikl","avatar_template":"//www.gravatar.com/avatar/2c3b9882e6898958b892a218b5493af9.png?s={size}&r=pg&d=identicon","post_count":1},{"id":5052,"username":"vulkanino","avatar_template":"//www.gravatar.com/avatar/811bf232b634245aebba5323462d885c.png?s={size}&r=pg&d=identicon","post_count":1},{"id":761,"username":"marcoceppi","avatar_template":"//www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","post_count":1},{"id":2316,"username":"pakl","avatar_template":"//www.gravatar.com/avatar/42910619ef3d550e37f7150caa0d94ff.png?s={size}&r=pg&d=identicon","post_count":1},{"id":5564,"username":"Sjors","avatar_template":"//www.gravatar.com/avatar/2fb09bd6501779802459a171d3f8fbd9.png?s={size}&r=pg&d=identicon","post_count":1}],"suggested_topics":[{"id":1357,"title":"Marking topics as questions","fancy_title":"Marking topics as questions","slug":"marking-topics-as-questions","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/82/blob.png","created_at":"2013-02-06T10:39:18.000-05:00","last_posted_at":"2013-02-06T10:42:04.000-05:00","bumped":true,"bumped_at":"2013-02-06T10:42:04.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":1,"views":81,"category_id":2},{"id":3428,"title":"Topic Permalink Editing","fancy_title":"Topic Permalink Editing","slug":"topic-permalink-editing","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"http://www.gravatar.com/avatar/b7b472268dff1bb8a8feefd37876b580.png?s=40&r=pg&d=identicon","created_at":"2013-02-19T10:10:29.000-05:00","last_posted_at":"2013-02-19T10:10:29.000-05:00","bumped":false,"bumped_at":"2013-02-19T10:10:29.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":0,"views":110,"category_id":2},{"id":4558,"title":"More tolerant URL hacking","fancy_title":"More tolerant URL hacking","slug":"more-tolerant-url-hacking","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-03-07T14:32:21.000-05:00","last_posted_at":"2013-06-25T12:10:45.000-04:00","bumped":true,"bumped_at":"2013-06-25T12:10:45.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":1,"views":271,"category_id":2},{"id":10737,"title":"Customization options for Digest","fancy_title":"Customization options for Digest","slug":"customization-options-for-digest","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-11-01T15:16:19.000-04:00","last_posted_at":"2013-11-01T15:16:20.000-04:00","bumped":true,"bumped_at":"2013-11-01T15:16:20.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":3,"views":124,"category_id":2},{"id":11241,"title":"Is Discourse forum-only or is it also email?","fancy_title":"Is Discourse forum-only or is it also email?","slug":"is-discourse-forum-only-or-is-it-also-email","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-12-03T08:27:01.000-05:00","last_posted_at":"2013-12-03T09:28:44.000-05:00","bumped":true,"bumped_at":"2013-12-03T09:28:44.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":2,"views":139,"category_id":2},{"id":1206,"title":"Can't search for phrases, only single words","fancy_title":"Can’t search for phrases, only single words","slug":"cant-search-for-phrases-only-single-words","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2013-02-06T07:47:38.000-05:00","last_posted_at":"2013-07-16T20:26:27.000-04:00","bumped":true,"bumped_at":"2013-07-16T20:26:27.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":4,"views":243,"category_id":2},{"id":11279,"title":"Support upload to another server via FTP","fancy_title":"Support upload to another server via FTP","slug":"support-upload-to-another-server-via-ftp","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2013-12-04T19:47:37.000-05:00","last_posted_at":"2013-12-09T12:06:19.000-05:00","bumped":true,"bumped_at":"2013-12-09T12:06:19.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":4,"views":148,"category_id":2}],"links":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales/en.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"91","user_id":9},{"url":"http://www.localeapp.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"59","user_id":1860},{"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":"56","user_id":7},{"url":"https://github.com/SlexAxton/messageformat.js","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"38","user_id":1},{"url":"https://github.com/discourse/discourse/blob/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"27","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":"21","user_id":1860},{"url":"https://github.com/berk/tr8n","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"20","user_id":1},{"url":"https://translations.launchpad.net/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"18","user_id":761},{"url":"https://www.transifex.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"16","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":"13","user_id":2316},{"url":"https://github.com/discourse/discourse/pull/493","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"12","user_id":2753},{"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/tree/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"8","user_id":19},{"url":"https://github.com/gururea/discourse/tree/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"8","user_id":3190},{"url":"https://github.com/dacap/discourse/tree/spanish","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"7","user_id":1275},{"url":"https://github.com/discourse/discourse/blob/master/config/locales/client.en.yml#L691","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"7","user_id":461},{"url":"https://github.com/discourse/discourse/blob/master/config/locales/client.nl.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":461},{"url":"http://tr8n.github.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":212},{"url":"https://github.com/discourse/discourse/commit/c5761eae8afe37e20cec0d0f9d14b85b6e585bda","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://blog.discourse.org/2013/04/discourse-as-your-first-rails-app/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":1995},{"url":"http://translate.sourceforge.net/wiki/virtaal/index","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":1979},{"url":"https://poeditor.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":1979},{"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/translation-workflow/6102/6","title":"Translation workflow","fancy_title":null,"internal":true,"reflection":false,"clicks":"3","user_id":1995},{"url":"https://github.com/alxndr/discourse/blob/i18n-chinese/config/locales/server.zh.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"3","user_id":212},{"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://www.youtube.com/watch?v=MqqdzJ98q7s","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"http://en.wikipedia.org/wiki/T%E2%80%93V_distinction","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":3620},{"url":"http://pootle.locamotion.org/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":3190},{"url":"http://en.lichess.org/@/Hellball","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1979},{"url":"http://sugarjs.com/dates#date_locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"1","user_id":461},{"url":"http://meta.discourse.org/t/comrades-lets-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":"1","user_id":3417},{"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/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/solving-xda-developer-style-forums/4368/4","title":"Solving XDA-Developer style forums","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":639},{"url":"http://meta.discourse.org/t/translation-workflow/6102","title":"Translation workflow","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":4702},{"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":"0","user_id":3681},{"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":"0","user_id":1},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/5","title":"Roadplan for Discourse","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":32},{"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":"0","user_id":114},{"url":"http://meta.discourse.org/t/language-mirrors/2378/2","title":"Language mirrors","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":32},{"url":"http://meta.discourse.org/t/hi-support-chinese/4393/6","title":"Hi, support Chinese?","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":2014},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/3","title":"Roadplan for Discourse","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":2540},{"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":"0","user_id":1},{"url":"http://meta.discourse.org/t/github-onebox-rendering-issue/7616","title":"GitHub OneBox Rendering Issue","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":5372},{"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/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/what-i-love-about-wordpress-plugins/5697","title":"What I love about WordPress plugins","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":1}]},"highest_post_number":98,"deleted_by":null,"id":280,"title":"Internationalization / localization","fancy_title":"Internationalization / localization","posts_count":97,"created_at":"2013-02-05T16:29:00.000-05:00","views":3500,"reply_count":66,"participant_count":34,"like_count":128,"last_posted_at":"2013-10-13T13:30:47.000-04:00","visible":true,"closed":false,"archived":false,"has_summary":true,"archetype":"regular","slug":"internationalization-localization","category_id":2,"word_count":5576,"deleted_at":null}; +Discourse.URL_FIXTURES["/t/280.json"] = {"post_stream":{"posts":[{"id":398,"name":"Uwe Keim","username":"uwe_keim","avatar_template":"//www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T16:29:00.000-05:00","cooked":"

Any plans to support localization of UI elements, so that I (for example) could set up a completely German speaking forum?

","post_number":1,"post_type":1,"updated_at":"2013-02-05T16:29:00.000-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":23,"incoming_link_count":9,"reads":390,"score":158.15,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Uwe Keim","version":1,"can_edit":false,"can_delete":false,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/comrades-lets-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":1},{"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":0},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/5","internal":true,"reflection":true,"title":"Suggestion: Translation on admin panel","clicks":0},{"url":"http://meta.discourse.org/t/translation-workflow/6102","internal":true,"reflection":true,"title":"Translation workflow","clicks":0},{"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":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},{"url":"http://meta.discourse.org/t/internationalization-i18n-provided-for-discourse/2073/2","internal":true,"reflection":true,"title":"Internationalization I18n provided for discourse ?","clicks":0},{"url":"http://meta.discourse.org/t/language-mirrors/2378/2","internal":true,"reflection":true,"title":"Language mirrors","clicks":0},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/5","internal":true,"reflection":true,"title":"Roadplan for Discourse","clicks":0},{"url":"http://meta.discourse.org/t/solving-xda-developer-style-forums/4368/4","internal":true,"reflection":true,"title":"Solving XDA-Developer style forums","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,"edit_reason":null},{"id":419,"name":"Tim Stone","username":"tms","avatar_template":"//www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T16:32:47.000-05:00","cooked":"

The application strings are externalized, so localization should be entirely possible with enough translation effort.

","post_number":2,"post_type":1,"updated_at":"2013-02-06T05:15:27.000-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":26,"incoming_link_count":12,"reads":376,"score":256.5,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Tim Stone","version":2,"can_edit":false,"can_delete":false,"can_recover":false,"link_counts":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales/en.yml","internal":false,"reflection":false,"clicks":91}],"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,"edit_reason":null},{"id":1060,"name":"Jeff Atwood","username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T21:26:24.000-05:00","cooked":"

Yep, all strings are going through a lookup table.*

\n\n
\n
\n \n
\n
\n

https://github.com/discourse/discourse/blob/master/config/locales

\n
\n\n\n\n\n<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" id=\"vp\" content=\"initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width\">\n  <meta name=\"viewport\" id=\"vp\" content=\"initial-scale=1.0,user-scalable=no,maximum-scale=1\" media=\"(device-height: 568px)\">\n  <link rel=\"apple-touch-icon-precomposed\" href=\"apple-touch-icon-precomposed.png\">\n  <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"apple-touch-icon-114-precomposed.png\">\n  <meta name=\"google-analytics\" content=\"UA-3769691-2\">\n\n  <meta content=\"authenticity_token\" name=\"csrf-param\" />\n<meta content=\"nFiTSR4YODX1WTtDmWoO2Xbd9vatOibhb97Rm3nw+8I=\" name=\"csrf-token\" />\n\n  <meta content=\"collector.githubapp.com\" name=\"octolytics-host\" /><meta content=\"collector-cdn.github.com\" name=\"octolytics-script-host\" /><meta content=\"github\" name=\"octolytics-app-id\" /><meta content=\"40479403:2C5C:A159F60:52CDD76D\" name=\"octolytics-dimension-request_id\" />\n  <meta content=\"mobile\" name=\"octolytics-dimension-device\" />\n  <meta content=\"3220138\" name=\"octolytics-dimension-user_id\" /><meta content=\"discourse\" name=\"octolytics-dimension-user_login\" /><meta content=\"7569578\" name=\"octolytics-dimension-repository_id\" /><meta content=\"discourse/discourse\" name=\"octolytics-dimension-repository_nwo\" /><meta content=\"true\" name=\"octolytics-dimension-repository_public\" /><meta content=\"false\" name=\"octolytics-dimension-repository_is_fork\" /><meta content=\"7569578\" name=\"octolytics-dimension-repository_network_root_id\" /><meta content=\"discourse/discourse\" name=\"octolytics-dimension-repository_network_root_nwo\" />\n  \n\n  <title>discourse/discourse · GitHub</title>\n\n  <link href=\"https://github.global.ssl.fastly.net/assets/mobile-9164f493ea1c72c93c839eba1f16fb0a36e0f638.css\" media=\"all\" rel=\"stylesheet\" type=\"text/css\" />\n  <script async=\"async\" defer=\"defer\" src=\"https://github.global.ssl.fastly.net/assets/mobile-756d65616fde6492018be51d0739ed8ccfcc25b6.js\" type=\"text/javascript\"></script>\n</head>\n<body class=\"\">\n  <header class=\"nav-bar clearfix\">\n    <div class=\"nav-bar-inner\">\n      \n\n      <button class=\"header-button header-nav-button touchable js-show-global-nav \">\n        <span class=\"octicon octicon-three-bars\"></span>\n        <span class=\"octicon octicon-primitive-dot\"></span>\n      </button>\n\n      <div class=\"nav-bar-title-text\">\n              <span class=\"octicon octicon-repo\"></span>\n\n    <strong><a href=\"/discourse\">discourse</a></strong>\n    /\n    <strong><a href=\"/discourse/discourse\">discourse</a></strong>\n\n      </div>\n    </div>\n\n    <nav class=\"nav-bar-tabs repo-nav-bar-tabs \">\n      <ul>\n\n\n        <li>\n          <a href=\"/explore\"><span class=\"octicon octicon-telescope\"></span> Explore</a>\n        </li>\n\n        <li>\n            <a href=\"/login\"><span class=\"octicon octicon-log-in\"></span> Sign in</a>\n        </li>\n\n            <li class=\"section-title\">This repository</li>\n    <li><a href=\"/discourse/discourse?files=1\"><span class=\"octicon octicon-code\"></span> Code</a></li>\n      <li><a href=\"/discourse/discourse/issues\"><span class=\"octicon octicon-issue-opened\"></span> Issues</a></li>\n    <li><a href=\"/discourse/discourse/pulls\"><span class=\"octicon octicon-git-pull-request\"></span> Pull Requests</a></li>\n    <li><a href=\"/discourse/discourse/pulse\"><span class=\"octicon octicon-pulse\"></span> Pulse</a></li>\n\n      </ul>\n    </nav>\n  </header>\n\n  \n\n        \n\n\n<div class=\"file-browser\">\n\n  <p class=\"history-link\">\n    <a href=\"/discourse/discourse/commits/master/config/locales\">\n      <span class=\"octicon octicon-history\"></span>\n      View 5857 commits\n    </a>\n  </p>\n\n  <div class=\"bubble\">\n    <ul class=\"bubble-list files-list\">\n      <li class=\"path\">\n        <span class=\"branch\">master</span>\n        <span class='bold'>\n          <span itemtype=\"http://data-vocabulary.org/Breadcrumb\">\n            <a href=\"/discourse/discourse?files=1\" data-branch=\"master\" data-direction=\"back\" itemscope=\"url\">\n              <span itemprop=\"title\">discourse</span>\n            </a>\n          </span>\n        </span>\n        <span class=\"separator\"> / </span>\n\n        <span itemscope=\"\" itemtype=\"http://data-vocabulary.org/Breadcrumb\"><a href=\"/discourse/discourse/tree/master/config\" data-branch=\"master\" data-direction=\"back\" data-pjax=\"true\" itemscope=\"url\"><span itemprop=\"title\">config</span></a></span><span class=\"separator\"> / </span><strong class=\"final-path\">locales</strong>\n      </li>\n\n        <li>\n          <a href=\"/discourse/discourse/blob/master/config/locales/client.cs.yml\" class=\"file-list-item\">\n            <span class=\"octicon octicon-file-text\"></span>\n            client.cs.yml\n              <span class=\"timestamp\">28 days ago</span>\n          </a>\n        </li>\n        <li>\n          <a href=\"/discourse/discourse/blob/master/config/locales/client.da.yml\" class=\"file-list-item\">\n            <span class=\"octicon octicon-file-text\"></span>\n            client.da.yml\n          </a>\n        </li>\n        <li>
\n\n This file has been truncated. show original\n
\n
\n\n

So you could replace that lookup table with the \"de\" one to get German.

\n\n

* 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!

","post_number":3,"post_type":1,"updated_at":"2013-06-18T22:58:28.000-04:00","reply_count":3,"reply_to_post_number":null,"quote_count":0,"avg_time":33,"incoming_link_count":4,"reads":367,"score":155.05,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Jeff Atwood","version":3,"can_edit":false,"can_delete":false,"can_recover":false,"link_counts":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales","internal":false,"reflection":false,"clicks":27},{"url":"http://meta.discourse.org/t/github-onebox-rendering-issue/7616","internal":true,"reflection":true,"title":"GitHub OneBox Rendering Issue","clicks":0}],"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":true,"staff":true,"user_id":32,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false,"edit_reason":null},{"id":3623,"name":"Shade","username":"shade","avatar_template":"//www.gravatar.com/avatar/02c3f1806f6962f56168c7bd9f8924b8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T07:55:33.000-05:00","cooked":"

Is it a coincidence that the strings file is 1337 lines long? \"smiley\"

","post_number":4,"post_type":1,"updated_at":"2013-02-07T07:55:33.000-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":21,"incoming_link_count":11,"reads":324,"score":255.85,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Shade","version":1,"can_edit":false,"can_delete":false,"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":0}],"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,"edit_reason":null},{"id":3651,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:02:07.000-05:00","cooked":"

\n\n

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 bitch.

\n\n

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.

\n\n

Re keeping track of changed strings, @codinghorror I found this very interesting: http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders if plain English placeholders were used, any change in strings would lead to a new node in the yml file, making keeping the translation up to date easier. Maybe worth thinking about in the future.

","post_number":5,"post_type":1,"updated_at":"2013-02-07T09:05:42.000-05:00","reply_count":2,"reply_to_post_number":3,"quote_count":1,"avg_time":23,"incoming_link_count":6,"reads":317,"score":179.55,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":false,"can_delete":false,"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":56}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":2,"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,"edit_reason":null},{"id":3654,"name":"Sam Saffron","username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:05:39.000-05:00","cooked":"

Yes, I really like the concept of fuzzy matching for localization, perhaps you can chase up alex sexton he was meaning to upload a localization tool for this kind of stuff.

\n\n

Also, I am a big fan of ICU message format, but it is not the \"Rails way (tm)\".

","post_number":6,"post_type":1,"updated_at":"2013-02-07T09:05:39.000-05:00","reply_count":1,"reply_to_post_number":5,"quote_count":0,"avg_time":19,"incoming_link_count":2,"reads":276,"score":86.15,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":false,"can_delete":false,"can_recover":false,"link_counts":[{"url":"https://github.com/SlexAxton/messageformat.js","internal":false,"reflection":false,"clicks":38},{"url":"https://github.com/SlexAxton","internal":false,"reflection":false,"clicks":9}],"read":false,"user_title":"co-founder","reply_to_user":{"username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon"},"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":true,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false,"edit_reason":null},{"id":3655,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:08:17.000-05:00","cooked":"

Looks interesting, I'll take a peek.

\n\n

As said on dev, the best tool I can see in terms of giving translators a proper interface and quality control would be something like GlotPress. It's based on the PO messages format (is that somehow related to ICU?) but looks pretty great.

\n\n

\n\n

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 message_error_nametooshort ?)

","post_number":7,"post_type":1,"updated_at":"2013-02-07T09:12:02.000-05:00","reply_count":1,"reply_to_post_number":6,"quote_count":1,"avg_time":17,"incoming_link_count":0,"reads":276,"score":76.05,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":false,"can_delete":false,"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,"edit_reason":null},{"id":3658,"name":"Sam Saffron","username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:12:22.000-05:00","cooked":"

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.

\n\n

Trouble is you need a fuzzy matcher for translators if you are going to store stuff like mf.compile( 'This is a message.' ) in source, one letter change and all your translators need to validate it.

","post_number":8,"post_type":1,"updated_at":"2013-02-07T09:12:22.000-05:00","reply_count":1,"reply_to_post_number":7,"quote_count":0,"avg_time":11,"incoming_link_count":0,"reads":251,"score":70.75,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":false,"can_delete":false,"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":0}],"read":false,"user_title":"co-founder","reply_to_user":{"username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon"},"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":true,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false,"edit_reason":null},{"id":3660,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:14:12.000-05:00","cooked":"

\n\n

Yeah, that's why I've always been a friend of message_error_nametooshort placeholders, until I asked the SO question linked above. The accepted answer makes a good argument against those placeholders: you want 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.

","post_number":9,"post_type":1,"updated_at":"2013-02-07T09:18:09.000-05:00","reply_count":1,"reply_to_post_number":8,"quote_count":1,"avg_time":10,"incoming_link_count":0,"reads":249,"score":70.3,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":false,"can_delete":false,"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,"edit_reason":null},{"id":3667,"name":"Tim Stone","username":"tms","avatar_template":"//www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:25:16.000-05:00","cooked":"

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.

","post_number":10,"post_type":1,"updated_at":"2013-02-07T09:25:16.000-05:00","reply_count":1,"reply_to_post_number":9,"quote_count":0,"avg_time":8,"incoming_link_count":0,"reads":236,"score":67.6,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Tim Stone","version":1,"can_edit":false,"can_delete":false,"can_recover":false,"read":false,"user_title":null,"reply_to_user":{"username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon"},"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,"edit_reason":null},{"id":3673,"name":"Sam Saffron","username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:30:21.000-05:00","cooked":"

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.

","post_number":11,"post_type":1,"updated_at":"2013-02-07T09:30:21.000-05:00","reply_count":1,"reply_to_post_number":10,"quote_count":0,"avg_time":7,"incoming_link_count":0,"reads":233,"score":66.95,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":false,"can_delete":false,"can_recover":false,"read":false,"user_title":"co-founder","reply_to_user":{"username":"tms","avatar_template":"//www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon"},"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":true,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false,"edit_reason":null},{"id":3675,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:33:38.000-05:00","cooked":"

\n\n

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.

\n\n

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.

","post_number":12,"post_type":1,"updated_at":"2013-02-07T09:34:39.000-05:00","reply_count":1,"reply_to_post_number":11,"quote_count":1,"avg_time":8,"incoming_link_count":1,"reads":231,"score":71.6,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":false,"can_delete":false,"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,"edit_reason":null},{"id":3690,"name":"Valts","username":"Vilx","avatar_template":"//www.gravatar.com/avatar/7bd2e50770e937761cfc3811a332bccc.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T10:05:35.000-05:00","cooked":"

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 awesome.

","post_number":13,"post_type":1,"updated_at":"2013-02-07T10:05:35.000-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":8,"incoming_link_count":11,"reads":246,"score":149.6,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Valts","version":1,"can_edit":false,"can_delete":false,"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,"edit_reason":null},{"id":3925,"name":"Eric Kidd","username":"emk","avatar_template":"//www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T14:37:06.000-05:00","cooked":"

\n\n

I've had pretty decent luck using Localeapp to localize Rails applications:

\n\n

http://www.localeapp.com/

\n\n

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.

\n\n

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.

","post_number":14,"post_type":1,"updated_at":"2013-02-07T14:37:06.000-05:00","reply_count":1,"reply_to_post_number":12,"quote_count":1,"avg_time":9,"incoming_link_count":0,"reads":237,"score":127.85,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Eric Kidd","version":1,"can_edit":false,"can_delete":false,"can_recover":false,"link_counts":[{"url":"http://www.localeapp.com/","internal":false,"reflection":false,"clicks":59}],"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,"edit_reason":null},{"id":3938,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T14:52:13.000-05:00","cooked":"

\n\n

Ohhh. Looking sexy. droool

","post_number":15,"post_type":1,"updated_at":"2013-02-07T14:52:13.000-05:00","reply_count":1,"reply_to_post_number":14,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":217,"score":63.8,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":false,"can_delete":false,"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,"edit_reason":null},{"id":3982,"name":"Eric Kidd","username":"emk","avatar_template":"//www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T15:52:22.000-05:00","cooked":"

\n\n

Yeah, it's pretty. \"smile\" But there were still some rough edges as of a few months ago.

\n\n

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.

\n\n

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.

\n\n

(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.)

","post_number":16,"post_type":1,"updated_at":"2013-02-07T15:52:22.000-05:00","reply_count":1,"reply_to_post_number":15,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":209,"score":62.2,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Eric Kidd","version":1,"can_edit":false,"can_delete":false,"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,"edit_reason":null},{"id":3989,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:04:15.000-05:00","cooked":"

\n\n

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.

","post_number":17,"post_type":1,"updated_at":"2013-02-07T16:04:15.000-05:00","reply_count":2,"reply_to_post_number":16,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":212,"score":67.8,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":false,"can_delete":false,"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,"edit_reason":null},{"id":3996,"name":"Sam Saffron","username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:12:06.000-05:00","cooked":"

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.

\n\n

I think it would be awesome, very doable technically.

","post_number":18,"post_type":1,"updated_at":"2013-02-07T16:12:06.000-05:00","reply_count":2,"reply_to_post_number":17,"quote_count":0,"avg_time":9,"incoming_link_count":0,"reads":220,"score":144.45,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":false,"can_delete":false,"can_recover":false,"read":false,"user_title":"co-founder","reply_to_user":{"username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon"},"actions_summary":[{"id":2,"count":6,"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":true,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"trust_level":2,"deleted_at":null,"user_deleted":false,"edit_reason":null},{"id":4009,"name":"Pekka Gaiser","username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:18:47.000-05:00","cooked":"

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.

\n\n

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.

","post_number":19,"post_type":1,"updated_at":"2013-02-07T16:22:10.000-05:00","reply_count":0,"reply_to_post_number":18,"quote_count":0,"avg_time":9,"incoming_link_count":0,"reads":203,"score":56.05,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":false,"can_delete":false,"can_recover":false,"read":false,"user_title":null,"reply_to_user":{"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},"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,"edit_reason":null},{"id":4012,"name":"Marco Ceppi","username":"marcoceppi","avatar_template":"//www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:22:46.000-05:00","cooked":"

If you use gettext format you could leverage Launchpad translations and the community behind it.

","post_number":20,"post_type":1,"updated_at":"2013-02-07T16:22:46.000-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":10,"incoming_link_count":1,"reads":204,"score":61.3,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Marco Ceppi","version":1,"can_edit":false,"can_delete":false,"can_recover":false,"link_counts":[{"url":"https://translations.launchpad.net/","internal":false,"reflection":false,"clicks":8}],"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,"edit_reason":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,25473,30505,30512]},"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":"//www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon"},"last_poster":{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},"participants":[{"id":212,"username":"alxndr","avatar_template":"//www.gravatar.com/avatar/51c9cfe3d5ebd64a79983aa3117f4aed.png?s={size}&r=pg&d=identicon","post_count":11},{"id":1,"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","post_count":11},{"id":7,"username":"pekka","avatar_template":"//www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","post_count":8},{"id":461,"username":"kuba","avatar_template":"//www.gravatar.com/avatar/1835cb6a5f35bd4089e416a99af90f5f.png?s={size}&r=pg&d=identicon","post_count":7},{"id":2995,"username":"tattoo","avatar_template":"//www.gravatar.com/avatar/645454e097898e3f0d9a54c699995678.png?s={size}&r=pg&d=identicon","post_count":6},{"id":2540,"username":"jgourdon","avatar_template":"//www.gravatar.com/avatar/3f0ee7e17ec820c458958ed7b0e8538b.png?s={size}&r=pg&d=identicon","post_count":5},{"id":1860,"username":"emk","avatar_template":"//www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","post_count":4},{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","post_count":4},{"id":1275,"username":"dacap","avatar_template":"//www.gravatar.com/avatar/ec0ebc7c17f649d03ee78d4eba56ef73.png?s={size}&r=pg&d=identicon","post_count":4},{"id":3190,"username":"gururea","avatar_template":"//www.gravatar.com/avatar/5ffb222c9c1bd2d99d9267c1557ca984.png?s={size}&r=pg&d=identicon","post_count":3},{"id":1895,"username":"maciek","avatar_template":"//www.gravatar.com/avatar/e3fe0c49f509994d67045602f49808ee.png?s={size}&r=pg&d=identicon","post_count":3},{"id":3704,"username":"mojzis","avatar_template":"//localhost:3000/uploads/default/avatars/2d3/5f5/e677798a1a/{size}.jpg","post_count":3},{"id":22,"username":"splattne","avatar_template":"//www.gravatar.com/avatar/7847006dbf49f1722b07c8da396f1275.png?s={size}&r=pg&d=identicon","post_count":2},{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","post_count":2},{"id":1979,"username":"Superuser","avatar_template":"//www.gravatar.com/avatar/a7f1529299c8fb9a263b8e8afcab23da.png?s={size}&r=pg&d=identicon","post_count":2},{"id":3620,"username":"potthast","avatar_template":"//www.gravatar.com/avatar/1753724263a5dee3e38790e6ac3d685c.png?s={size}&r=pg&d=identicon","post_count":2},{"id":3818,"username":"Tudor","avatar_template":"//www.gravatar.com/avatar/8f367608e1d013beed72a8941bb768ca.png?s={size}&r=pg&d=identicon","post_count":2},{"id":9,"username":"tms","avatar_template":"//www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","post_count":2},{"id":255,"username":"uwe_keim","avatar_template":"//www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon","post_count":1},{"id":2753,"username":"mikl","avatar_template":"//www.gravatar.com/avatar/2c3b9882e6898958b892a218b5493af9.png?s={size}&r=pg&d=identicon","post_count":1},{"id":5052,"username":"vulkanino","avatar_template":"//www.gravatar.com/avatar/811bf232b634245aebba5323462d885c.png?s={size}&r=pg&d=identicon","post_count":1},{"id":761,"username":"marcoceppi","avatar_template":"//www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","post_count":1},{"id":2316,"username":"pakl","avatar_template":"//www.gravatar.com/avatar/42910619ef3d550e37f7150caa0d94ff.png?s={size}&r=pg&d=identicon","post_count":1},{"id":5564,"username":"Sjors","avatar_template":"//www.gravatar.com/avatar/2fb09bd6501779802459a171d3f8fbd9.png?s={size}&r=pg&d=identicon","post_count":1}],"suggested_topics":[{"id":5894,"title":"Spam-blocking URL Blacklist","fancy_title":"Spam-blocking URL Blacklist","slug":"spam-blocking-url-blacklist","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2013-04-15T11:09:39.000-04:00","last_posted_at":"2013-04-15T13:33:11.000-04:00","bumped":true,"bumped_at":"2013-04-15T13:33:11.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":3,"views":244,"category_id":2},{"id":7116,"title":"Custom fields and Custom post types - (ex. article, recipe)","fancy_title":"Custom fields and Custom post types - (ex. article, recipe)","slug":"custom-fields-and-custom-post-types-ex-article-recipe","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-06-02T17:34:37.000-04:00","last_posted_at":"2013-06-03T01:27:34.000-04:00","bumped":true,"bumped_at":"2013-06-03T01:27:34.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":0,"views":206,"category_id":2},{"id":7111,"title":"Make the 1 level of sub-categorization freeform","fancy_title":"Make the 1 level of sub-categorization freeform","slug":"make-the-1-level-of-sub-categorization-freeform","posts_count":8,"reply_count":4,"highest_post_number":8,"image_url":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&r=pg&d=identicon","created_at":"2013-06-02T14:47:06.000-04:00","last_posted_at":"2013-06-04T18:07:33.000-04:00","bumped":true,"bumped_at":"2013-06-04T18:07:33.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":0,"views":197,"category_id":2},{"id":1127,"title":"Automated Signatures?","fancy_title":"Automated Signatures?","slug":"automated-signatures","posts_count":75,"reply_count":57,"highest_post_number":76,"image_url":null,"created_at":"2013-02-06T05:40:37.000-05:00","last_posted_at":"2013-11-19T18:31:32.000-05:00","bumped":true,"bumped_at":"2013-11-19T18:31:32.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":156,"views":2371,"category_id":2},{"id":8667,"title":"Add \"Share\" modal to original thread post?","fancy_title":"Add “Share” modal to original thread post?","slug":"add-share-modal-to-original-thread-post","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"/uploads/meta_discourse/1497/ff2adcd46c71a223.png","created_at":"2013-07-26T10:22:48.000-04:00","last_posted_at":"2013-07-26T10:22:49.000-04:00","bumped":true,"bumped_at":"2013-07-26T10:22:49.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":0,"views":122,"category_id":2},{"id":708,"title":"Special topic types","fancy_title":"Special topic types","slug":"special-topic-types","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-02-05T21:03:26.000-05:00","last_posted_at":"2013-02-05T21:03:26.000-05:00","bumped":false,"bumped_at":"2013-02-05T21:03:26.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":1,"views":108,"category_id":2},{"id":6569,"title":"Linebreaks require two trailing spaces in blockquotes, etc","fancy_title":"Linebreaks require two trailing spaces in blockquotes, etc","slug":"linebreaks-require-two-trailing-spaces-in-blockquotes-etc","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":null,"created_at":"2013-05-12T02:40:48.000-04:00","last_posted_at":"2013-05-15T11:01:50.000-04:00","bumped":true,"bumped_at":"2013-05-15T11:01:50.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":0,"views":168,"category_id":2}],"links":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales/en.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"91","user_id":9},{"url":"http://www.localeapp.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"59","user_id":1860},{"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":"56","user_id":7},{"url":"https://github.com/SlexAxton/messageformat.js","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"38","user_id":1},{"url":"https://github.com/discourse/discourse/blob/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"27","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":"21","user_id":1860},{"url":"https://github.com/berk/tr8n","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"20","user_id":1},{"url":"https://translations.launchpad.net/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"18","user_id":761},{"url":"https://www.transifex.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"16","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":"13","user_id":2316},{"url":"https://github.com/discourse/discourse/pull/493","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"12","user_id":2753},{"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/tree/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"8","user_id":19},{"url":"https://github.com/gururea/discourse/tree/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"8","user_id":3190},{"url":"https://github.com/dacap/discourse/tree/spanish","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"7","user_id":1275},{"url":"https://github.com/discourse/discourse/blob/master/config/locales/client.en.yml#L691","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"7","user_id":461},{"url":"https://github.com/discourse/discourse/blob/master/config/locales/client.nl.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":461},{"url":"http://tr8n.github.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":212},{"url":"https://github.com/discourse/discourse/commit/c5761eae8afe37e20cec0d0f9d14b85b6e585bda","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://blog.discourse.org/2013/04/discourse-as-your-first-rails-app/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":1995},{"url":"http://translate.sourceforge.net/wiki/virtaal/index","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":1979},{"url":"https://poeditor.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":1979},{"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/translation-workflow/6102/6","title":"Translation workflow","fancy_title":null,"internal":true,"reflection":false,"clicks":"3","user_id":1995},{"url":"https://github.com/alxndr/discourse/blob/i18n-chinese/config/locales/server.zh.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"3","user_id":212},{"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://www.youtube.com/watch?v=MqqdzJ98q7s","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"http://en.wikipedia.org/wiki/T%E2%80%93V_distinction","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":3620},{"url":"http://pootle.locamotion.org/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":3190},{"url":"http://en.lichess.org/@/Hellball","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1979},{"url":"http://sugarjs.com/dates#date_locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"1","user_id":461},{"url":"http://meta.discourse.org/t/comrades-lets-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":"1","user_id":3417},{"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/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/solving-xda-developer-style-forums/4368/4","title":"Solving XDA-Developer style forums","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":639},{"url":"http://meta.discourse.org/t/translation-workflow/6102","title":"Translation workflow","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":4702},{"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":"0","user_id":3681},{"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":"0","user_id":1},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/5","title":"Roadplan for Discourse","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":32},{"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":"0","user_id":114},{"url":"http://meta.discourse.org/t/language-mirrors/2378/2","title":"Language mirrors","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":32},{"url":"http://meta.discourse.org/t/hi-support-chinese/4393/6","title":"Hi, support Chinese?","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":2014},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/3","title":"Roadplan for Discourse","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":2540},{"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":"0","user_id":1},{"url":"http://meta.discourse.org/t/github-onebox-rendering-issue/7616","title":"GitHub OneBox Rendering Issue","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":5372},{"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/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/what-i-love-about-wordpress-plugins/5697","title":"What I love about WordPress plugins","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":1}]},"highest_post_number":98,"deleted_by":null,"id":280,"title":"Internationalization / localization","fancy_title":"Internationalization / localization","posts_count":97,"created_at":"2013-02-05T16:29:00.000-05:00","views":3500,"reply_count":66,"participant_count":34,"like_count":128,"last_posted_at":"2013-10-13T13:30:47.000-04:00","visible":true,"closed":false,"archived":false,"has_summary":true,"archetype":"regular","slug":"internationalization-localization","category_id":2,"word_count":5576,"deleted_at":null}; diff --git a/test/javascripts/fixtures/user_fixtures.js b/test/javascripts/fixtures/user_fixtures.js index 49d1d4d1d58..21c3b953c30 100644 --- a/test/javascripts/fixtures/user_fixtures.js +++ b/test/javascripts/fixtures/user_fixtures.js @@ -1,5 +1,5 @@ /*jshint maxlen:10000000 */ -Discourse.URL_FIXTURES["/users/eviltrout.json"] = {"user":{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","name":"Robin Ward","last_posted_at":"2014-01-15T10:21:37.000-05:00","last_seen_at":"2014-01-16T13:52:15.000-05:00","bio_raw":"Co-founder of Discourse. Previously, I created Forumwarz. Follow me on Twitter.","bio_cooked":"

Co-founder of Discourse. Previously, I created Forumwarz. Follow me on Twitter.

","created_at":"2013-02-03T10:19:22.000-05:00","website":"http://","can_edit":null,"can_edit_username":false,"can_edit_email":null,"stats":[{"action_type":4,"count":6,"id":null},{"action_type":5,"count":473,"id":null},{"action_type":6,"count":215,"id":null},{"action_type":1,"count":133,"id":null},{"action_type":2,"count":452,"id":null},{"action_type":7,"count":295,"id":null},{"action_type":9,"count":10,"id":null},{"action_type":11,"count":5,"id":null}],"can_send_private_message_to_user":false,"bio_excerpt":"Co-founder of Discourse. Previously, I created Forumwarz. Follow me on Twitter.","trust_level":4,"moderator":true,"admin":true,"title":"co-founder","invited_by":{"id":1,"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"}}}; +Discourse.URL_FIXTURES["/users/eviltrout.json"] = {"user":{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","name":"Robin Ward","last_posted_at":"2014-01-15T10:21:37.000-05:00","last_seen_at":"2014-01-29T11:50:59.000-05:00","bio_raw":"Co-founder of Discourse. Previously, I created Forumwarz. Follow me on Twitter.","bio_cooked":"

Co-founder of Discourse. Previously, I created Forumwarz. Follow me on Twitter.

","created_at":"2013-02-03T10:19:22.000-05:00","website":"http://","can_edit":false,"can_edit_username":false,"can_edit_email":false,"stats":[{"action_type":4,"count":6,"id":null},{"action_type":5,"count":473,"id":null},{"action_type":6,"count":215,"id":null},{"action_type":1,"count":133,"id":null},{"action_type":2,"count":452,"id":null},{"action_type":7,"count":295,"id":null},{"action_type":9,"count":10,"id":null},{"action_type":11,"count":5,"id":null}],"can_send_private_message_to_user":false,"bio_excerpt":"Co-founder of Discourse. Previously, I created Forumwarz. Follow me on Twitter.","trust_level":4,"moderator":true,"admin":true,"title":"co-founder","invited_by":{"id":1,"username":"sam","avatar_template":"//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":"2014-01-16T14:13:05Z","excerpt":"So again, \n\nWhat is the problem?\n\nI need to check user_trust_level , i get the 'username' from a form via ajax, i need to check what level he is on discourse \n\nAlso, if possible, i would like to get other details as well, like email address etc. \n\nI took a look at : https://github.com/discourse/dis…","avatar_template":"//www.gravatar.com/avatar/bdab7e61b3191e483492fd680f563fed.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/bdab7e61b3191e483492fd680f563fed.png?s={size}&r=pg&d=identicon","slug":"how-to-check-the-user-level-via-ajax","topic_id":11993,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"Abhishek_Gupta","name":"Abhishek Gupta","user_id":8021,"acting_username":"Abhishek_Gupta","acting_name":"Abhishek Gupta","acting_user_id":8021,"title":"How to check the user level via ajax?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-15T16:53:49Z","excerpt":"A good fix would be to have the ERB template do an if statement. We'd happily accept a PR that did this if you feel up to it: \n\n <% if SiteSetting.logo_url.present? %>\n display logo html\n<% else %>\n display title html\n<% end %>","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"users-activate-account-pulling-blank-logo-instead-of-defaulting-to-h2","topic_id":10911,"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":"/users/activate-account pulling blank logo instead of defaulting to h2","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-15T15:21:37Z","excerpt":"A good fix would be to have the ERB template do an if statement. We'd happily accept a PR that did this if you feel up to it: \n\n <% if SiteSetting.logo_url.present? %>\n display logo html\n<% else %>\n display title html\n<% end %>","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"users-activate-account-pulling-blank-logo-instead-of-defaulting-to-h2","topic_id":10911,"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":"/users/activate-account pulling blank logo instead of defaulting to h2","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":6,"created_at":"2014-01-15T12:22:12Z","excerpt":"OK - i see what you mean. From the piwik code I should add: \n\n_paq.push(["setDocumentTitle", document.domain + "/" + document.title]);\n\n? \n\nUnfortunately I have had to give up on Piwik for now because I have switched the forum to SSL on a free cert and have used up the free subdomain for the forum. …","avatar_template":"//localhost:3000/uploads/default/avatars/2a8/a3c/8fddcac642/{size}.jpg","acting_avatar_template":"//localhost:3000/uploads/default/avatars/2a8/a3c/8fddcac642/{size}.jpg","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":26,"reply_to_post_number":25,"username":"citkane","name":"Michael Jonker","user_id":7604,"acting_username":"citkane","acting_name":"Michael Jonker","acting_user_id":7604,"title":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-15T11:16:36Z","excerpt":"@eviltrout recently added support for multiple API keys [wink] \n\n[]","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"allow-for-multiple-api-keys","topic_id":7444,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Allow for multiple API Keys","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-15T10:58:46Z","excerpt":"@eviltrout added a tooltip when you click on the user's avatar which allows you to show the posts made by that user \n\n[image]","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"to-group-posts-by-a-user","topic_id":7412,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":3,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"To group posts by a user","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-15T10:36:15Z","excerpt":"@eviltrout implemented per-user API key a while ago [wink] \n\n [image]\nTopics_-_Discourse_Meta-5.png884x339 29.6 KB\n","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"auth-using-rest-api","topic_id":5937,"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":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Auth using REST API?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-15T09:55:17Z","excerpt":"@eviltrout has recently introduced this feature and has even blogged about it: \n\n \n \n \n \n eviltrout.com\n \n \n \n \n \n Hiding Offscreen Content in Ember.js - Evil Trout's Blog","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"infinite-scrolling-reusing-dom-nodes","topic_id":5186,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Infinite scrolling: Reusing DOM nodes","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-15T00:54:32Z","excerpt":"You can retrieve a user's JSON by making a call to /users/username.json but that assumes you know the user's username. If that's impossible, I would be happy to accept a PR that would return the current user JSON from /session/current-user or something like that. \n\nAdditionally, if you're looking to…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/035d12bad251759d8fbc9fb10574d1f6.png?s={size}&r=pg&d=identicon","slug":"get-current-user-information-via-json","topic_id":11959,"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":"watchmanmonitor","acting_name":"Watchman Monitoring","acting_user_id":8085,"title":"Get current user information via JSON","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-14T21:59:51Z","excerpt":"You can retrieve a user's JSON by making a call to /users/username.json but that assumes you know the user's username. If that's impossible, I would be happy to accept a PR that would return the current user JSON from /session/current-user or something like that. \n\nAdditionally, if you're looking to…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/9cfd2536afac32d209335b092094c12c.png?s={size}&r=pg&d=identicon","slug":"get-current-user-information-via-json","topic_id":11959,"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":"znation","acting_name":"znation","acting_user_id":8163,"title":"Get current user information via JSON","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-14T21:46:50Z","excerpt":"Okay I've fixed the https [point_right] http links on the server side and in the Javascript click tracking as @BhaelOchon pointed out. \n\nLet me know if you find anything else broken.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"broken-links-possibly-related-to-https","topic_id":11831,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":18,"reply_to_post_number":16,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Broken links, possibly related to HTTPS","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":6,"created_at":"2014-01-14T21:43:28Z","excerpt":"Thanks for your help @eviltrout! I will consider making that change and sending a pull request. I may not get to it for a while. \n\nI am embedding Discourse on another site and it is mostly going well. I have indeed been using your blog for inspiration.","avatar_template":"//www.gravatar.com/avatar/9cfd2536afac32d209335b092094c12c.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/9cfd2536afac32d209335b092094c12c.png?s={size}&r=pg&d=identicon","slug":"get-current-user-information-via-json","topic_id":11959,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"znation","name":"znation","user_id":8163,"acting_username":"znation","acting_name":"znation","acting_user_id":8163,"title":"Get current user information via JSON","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-14T21:21:52Z","excerpt":"Okay I've fixed the https [point_right] http links on the server side and in the Javascript click tracking as @BhaelOchon pointed out. \n\nLet me know if you find anything else broken.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"broken-links-possibly-related-to-https","topic_id":11831,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":18,"reply_to_post_number":16,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Broken links, possibly related to HTTPS","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-14T21:03:07Z","excerpt":"Okay I've fixed the https [point_right] http links on the server side and in the Javascript click tracking as @BhaelOchon pointed out. \n\nLet me know if you find anything else broken.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"broken-links-possibly-related-to-https","topic_id":11831,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":18,"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":"Broken links, possibly related to HTTPS","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-14T20:42:51Z","excerpt":"You can retrieve a user's JSON by making a call to /users/username.json but that assumes you know the user's username. If that's impossible, I would be happy to accept a PR that would return the current user JSON from /session/current-user or something like that. \n\nAdditionally, if you're looking to…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"get-current-user-information-via-json","topic_id":11959,"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":"Get current user information via JSON","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-14T20:29:23Z","excerpt":"You can retrieve a user's JSON by making a call to /users/username.json but that assumes you know the user's username. If that's impossible, I would be happy to accept a PR that would return the current user JSON from /session/current-user or something like that. \n\nAdditionally, if you're looking to…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"get-current-user-information-via-json","topic_id":11959,"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":"Get current user information via JSON","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-14T19:20:28Z","excerpt":"Perhaps the ['trackpageView'] is not the correct API call? We can probably send more information across such as the URL.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":25,"reply_to_post_number":24,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-14T19:19:46Z","excerpt":"Nope but I bet you can find one!","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-far-to-take-user-documentation","topic_id":11943,"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":"How far to take user documentation?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":6,"created_at":"2014-01-14T18:37:05Z","excerpt":"I'd be glad to write a pull request to take use there. Is there a specific part of their documentation you have in mind?","avatar_template":"//www.gravatar.com/avatar/035d12bad251759d8fbc9fb10574d1f6.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/035d12bad251759d8fbc9fb10574d1f6.png?s={size}&r=pg&d=identicon","slug":"how-far-to-take-user-documentation","topic_id":11943,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"watchmanmonitor","name":"Watchman Monitoring","user_id":8085,"acting_username":"watchmanmonitor","acting_name":"Watchman Monitoring","acting_user_id":8085,"title":"How far to take user documentation?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":6,"created_at":"2014-01-14T16:04:28Z","excerpt":"Thanks @eviltrout , the code in the 'bottom of pages' now reads: \n\n<script type="text/javascript">\nDiscourse.PageTracker.current().on('change', function() {\n console.log('tracked!')\n _paq.push(['trackPageView']);\n});\n</script>\n\nThe console is logging 'tracked!' and piwik is logging for each page c…","avatar_template":"//localhost:3000/uploads/default/avatars/2a8/a3c/8fddcac642/{size}.jpg","acting_avatar_template":"//localhost:3000/uploads/default/avatars/2a8/a3c/8fddcac642/{size}.jpg","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":23,"reply_to_post_number":22,"username":"citkane","name":"Michael Jonker","user_id":7604,"acting_username":"citkane","acting_name":"Michael Jonker","acting_user_id":7604,"title":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-14T15:58:27Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"regression-cannot-sort-topic-list","topic_id":11944,"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":"Regression: Cannot sort topic list","deleted":false,"hidden":false,"moderator_action":true,"edit_reason":null},{"action_type":5,"created_at":"2014-01-14T15:26:57Z","excerpt":"I do think that leading them into the official rails documentation at that point is not a bad idea. Like "congratulations, everything is ready but now you'll need to understand the platform we built it in to be productive."","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-far-to-take-user-documentation","topic_id":11943,"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":"How far to take user documentation?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-14T08:28:00Z","excerpt":"I've just added the ability to list reply counts on your blog index and archive pages as you can see here. \n\nIt works with a similar API to embedding comments: \n\n <script type="text/javascript">\n var discourseUrl = "http://fishtank.eviltrout.com/";\n\n (function() {\n var d = document.createEleme…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"discourse-plugin-for-static-site-generators-like-jekyll-or-octopress","topic_id":7965,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":98,"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":"Discourse plugin for static site generators like Jekyll or Octopress","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-14T00:21:26Z","excerpt":"In pull request 1821, @eviltrout asked: \n\n "About rails s: I wouldn't be against adding it but at what point do we stop holding their hand and expect them to know how rails works? I'm sure rails documentation could do a better job than us. Actually maybe we should just link to that? \n\nWhat point to …","avatar_template":"//www.gravatar.com/avatar/035d12bad251759d8fbc9fb10574d1f6.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/035d12bad251759d8fbc9fb10574d1f6.png?s={size}&r=pg&d=identicon","slug":"how-far-to-take-user-documentation","topic_id":11943,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"watchmanmonitor","name":"Watchman Monitoring","user_id":8085,"acting_username":"watchmanmonitor","acting_name":"Watchman Monitoring","acting_user_id":8085,"title":"How far to take user documentation?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":6,"created_at":"2014-01-13T21:58:28Z","excerpt":"It looks uneeded, but you need to review a fair amount of code to confirm it is not needed. \n\nI am going to keep it for now cause its safer under some weird edge conditions.","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"ruby-question-about-use-of-klass-self-in-the-site-customization-rb","topic_id":11889,"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":"Ruby question about use of klass=self in the site_customization.rb","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-13T21:11:32Z","excerpt":"I had to fix an issue with Google analytics so I added a new API hook that can be used. \n\nIf you add the following it should work: \n\n Discourse.PageTracker.current().on('change', function() {\n _paq.push(['trackPageView']);\n});","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"reply_to_post_number":16,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":6,"created_at":"2014-01-13T21:10:57Z","excerpt":"Having a look, the fix is a bit scary imho, we should fix the root issue.","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"error-after-update-to-0-9-8-1","topic_id":11903,"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":"Error after update to 0.9.8.1","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-13T20:50:34Z","excerpt":"I've just added the ability to list reply counts on your blog index and archive pages as you can see here. \n\nIt works with a similar API to embedding comments: \n\n <script type="text/javascript">\n var discourseUrl = "http://fishtank.eviltrout.com/";\n\n (function() {\n var d = document.createEleme…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//localhost:3000/uploads/default/avatars/527/614/d16e1504d9/{size}.jpg","slug":"discourse-plugin-for-static-site-generators-like-jekyll-or-octopress","topic_id":7965,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":98,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"trident","acting_name":"Ben T","acting_user_id":5707,"title":"Discourse plugin for static site generators like Jekyll or Octopress","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-13T20:44:56Z","excerpt":"I had to fix an issue with Google analytics so I added a new API hook that can be used. \n\nIf you add the following it should work: \n\n Discourse.PageTracker.current().on('change', function() {\n _paq.push(['trackPageView']);\n});","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"reply_to_post_number":16,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-13T20:40:21Z","excerpt":"I had to fix an issue with Google analytics so I added a new API hook that can be used. \n\nIf you add the following it should work: \n\n Discourse.PageTracker.current().on('change', function() {\n _paq.push(['trackPageView']);\n});","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"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":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-13T19:52:04Z","excerpt":"@Sam do you have any idea why only some people are getting this issue? I dont' mind the proposed fix but I'd prefer to know why it happens in the first place.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"error-after-update-to-0-9-8-1","topic_id":11903,"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":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Error after update to 0.9.8.1","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-13T19:01:19Z","excerpt":"I've just added the ability to list reply counts on your blog index and archive pages as you can see here. \n\nIt works with a similar API to embedding comments: \n\n <script type="text/javascript">\n var discourseUrl = "http://fishtank.eviltrout.com/";\n\n (function() {\n var d = document.createEleme…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"discourse-plugin-for-static-site-generators-like-jekyll-or-octopress","topic_id":7965,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":98,"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":"Discourse plugin for static site generators like Jekyll or Octopress","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-13T18:50:14Z","excerpt":"I've just added the ability to list reply counts on your blog index and archive pages as you can see here. \n\nIt works with a similar API to embedding comments: \n\n <script type="text/javascript">\n var discourseUrl = "http://fishtank.eviltrout.com/";\n\n (function() {\n var d = document.createEleme…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"discourse-plugin-for-static-site-generators-like-jekyll-or-octopress","topic_id":7965,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":98,"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":"Discourse plugin for static site generators like Jekyll or Octopress","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-13T18:47:33Z","excerpt":"I am pretty sure that the denizens of SO are correct and the variable is unneeded. @sam can confirm but it seems like it was once needed for something that has since been removed and the variable declaration was left intact.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"ruby-question-about-use-of-klass-self-in-the-site-customization-rb","topic_id":11889,"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":"Ruby question about use of klass=self in the site_customization.rb","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-13T18:45:41Z","excerpt":"I've just added the ability to list reply counts on your blog index and archive pages as you can see here. \n\nIt works with a similar API to embedding comments: \n\n <script type="text/javascript">\n var discourseUrl = "http://fishtank.eviltrout.com/";\n\n (function() {\n var d = document.createEleme…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-plugin-for-static-site-generators-like-jekyll-or-octopress","topic_id":7965,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":98,"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 plugin for static site generators like Jekyll or Octopress","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-13T17:19:08Z","excerpt":"@Sam do you have any idea why only some people are getting this issue? I dont' mind the proposed fix but I'd prefer to know why it happens in the first place.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/5120fc4e345db0d1a964888272073819.png?s={size}&r=pg&d=identicon","slug":"error-after-update-to-0-9-8-1","topic_id":11903,"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":"riking","acting_name":"Kane York","acting_user_id":6626,"title":"Error after update to 0.9.8.1","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-13T16:41:31Z","excerpt":"I'd love to see API support. @sam and @eviltrout, I can facilitate an intro to the piwik guys if you want—I've written about them before and they're typically super-responsive. Because I know you guys are totally hunting for new stuff to do [wink]","avatar_template":"//localhost:3000/uploads/default/avatars/95a/06d/c337428568/{size}.png","acting_avatar_template":"//localhost:3000/uploads/default/avatars/95a/06d/c337428568/{size}.png","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":20,"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":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-13T16:15:51Z","excerpt":"The code looks okay but it's hard to debug this way. \n\nOne thing you could do is add a: console.log('tracked!') just before line 8. Then open a developer console and see if the javascript is running properly.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":18,"reply_to_post_number":16,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-13T15:10:41Z","excerpt":"This is really interesting. I'd like to hear your findings.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"focus-events-track-which-window-is-the-last-active-instance-of-a-forum-edit","topic_id":11872,"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":"Focus events: Track which window is the last active instance of a forum Edit","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-13T15:02:45Z","excerpt":"The code looks okay but it's hard to debug this way. \n\nOne thing you could do is add a: console.log('tracked!') just before line 8. Then open a developer console and see if the javascript is running properly.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":18,"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":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-13T14:53:13Z","excerpt":"@Sam do you have any idea why only some people are getting this issue? I dont' mind the proposed fix but I'd prefer to know why it happens in the first place.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"error-after-update-to-0-9-8-1","topic_id":11903,"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":"Error after update to 0.9.8.1","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-13T06:27:26Z","excerpt":"Can this be archived @eviltrout?","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"search-not-working-for-staff-users","topic_id":11371,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":13,"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":"Search not working for Staff users","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-13T05:32:46Z","excerpt":"When you navigate to another topic using the "suggested topics" area we are not registering a page view with Google. \n\n@eviltrout perhaps we should do this from discourse location instead of application controller?","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"google-analytics-is-not-registering-page-views","topic_id":11914,"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":"Google analytics is not registering page views","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-13T02:50:25Z","excerpt":"@eviltrout any ideas here, the code seems correct","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":17,"reply_to_post_number":16,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-12T22:31:35Z","excerpt":"This is an interesting approach an an interesting feature. @eviltrout your thoughts. Essentially allows us to have notifications cross tabs.","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"focus-events-track-which-window-is-the-last-active-instance-of-a-forum-edit","topic_id":11872,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"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":"Focus events: Track which window is the last active instance of a forum Edit","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-12T18:01:04Z","excerpt":"This was the link \n\nmetric_fu \n\n[metric_fu](https://github.com/metricfu/metric_fu/blob/b1bf8feb921916fc265f041efa3157a6a6530a9b/lib/metric_fu/logging/mf_debugger.rb#L24)\n\nSeems to work fine now that @eviltrout worked so hard to get us MDTest 1.1 compliant.","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"underscores-in-linked-text-can-cause-markdown-bug","topic_id":10848,"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":"Underscores in linked text can cause markdown bug","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":6,"created_at":"2014-01-12T04:14:06Z","excerpt":"Awesome plugin, but doesn't seem to work out of the box with images \n\nhttps://github.com/discourse/discourse-spoiler-alert/issues/2","avatar_template":"//localhost:3000/uploads/default/avatars/276/f19/3826efe463/{size}.jpg","acting_avatar_template":"//localhost:3000/uploads/default/avatars/276/f19/3826efe463/{size}.jpg","slug":"brand-new-plugin-interface","topic_id":8793,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":64,"reply_to_post_number":44,"username":"xrvk","name":"Eero Heikkinen","user_id":8068,"acting_username":"xrvk","acting_name":"Eero Heikkinen","acting_user_id":8068,"title":"Brand new plugin interface","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-11T23:36:11Z","excerpt":"A few things, \n\n@eviltrout myself and many others have discourse_docker hosted on digital ocean, my user cpu is usually around 2% I have plenty of capacity. \n\nI know that stonehearth and other larger scale discourse work on digital ocean fine. Officially we strongly recommend a 2GB instance, thoug…","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"performance-issue-on-digital-ocean-with-discourse-docker","topic_id":11895,"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":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Performance issue on Digital Ocean with discourse_docker","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-11T00:58:23Z","excerpt":"Confirmed on try.discourse.org, this is still an issue. \n\n@eviltrout can you add that to your list -- unless you are a staff member you should not be able to delete (your own) posts from an archived topic.","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"archived-discussions-still-allow-posts-to-be-deleted","topic_id":6479,"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":"Archived discussions still allow posts to be deleted","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-11T00:35:38Z","excerpt":"Agree, @eviltrout can you make sure the usercard is using the same logic as the user page in displaying profile info?","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"usercard-does-not-resize-for-obnoxiously-large-images","topic_id":11007,"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":"Usercard does not resize for obnoxiously large images","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-11T00:34:06Z","excerpt":"@eviltrout can you make sure the "import post" button is suppressed on the user page when editing "about me"? \n\n(I agree it is like a "lose all my work" button on that page if you happen to press it..) \n\nThen I can archive this.","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"quote-post-button-should-be-disabled-or-raise-an-error-when-creating-a-new-topic","topic_id":834,"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":"\"Quote Post\" button should be disabled or raise an error when creating a new topic","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":7,"created_at":"2014-01-10T21:00:11Z","excerpt":">\n\nLooks good now. Thanks for these fixes @eviltrout, we (and markdown-js) are now MDTest 1.1 compliant!","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"text-editor-issue-with-the-code-block","topic_id":10050,"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":"Text Editor issue with the code block","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":1,"created_at":"2014-01-10T20:07:46Z","excerpt":"We can't repro that one, also seems a bit obscure. But thank you very much for all the reports, whenever I see a bug entry from YOU I always know it is going to be a good one based on experience here and elsewhere. [trophy]","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"security-error-on-console-noticed-on-meta","topic_id":11825,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"reply_to_post_number":11,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Security Error on console (noticed on meta)","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-10T19:48:08Z","excerpt":"Thanks for letting us know. It turns out that by using minutely(5) instead of minutely causes ice_cube to peg a core at 100% usage. I've pushed out a fix in master.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"sidekiq-cpu-load-since-latest-release","topic_id":9515,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"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":"Sidekiq CPU load since latest release","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-10T19:47:17Z","excerpt":"Thanks for letting us know. It turns out that by using minutely(5) instead of minutely causes ice_cube to peg a core at 100% usage. I've pushed out a fix in master.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","slug":"sidekiq-cpu-load-since-latest-release","topic_id":9515,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"neil","acting_name":"Neil","acting_user_id":2,"title":"Sidekiq CPU load since latest release","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-10T17:39:24Z","excerpt":"We should consider doing what Google Drive does: they intercept cmd-f and pop up a box that allows you to dynamically search.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/5120fc4e345db0d1a964888272073819.png?s={size}&r=pg&d=identicon","slug":"ctrl-f-search-is-interrupted-by-quotation-popup","topic_id":7114,"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":"riking","acting_name":"Kane York","acting_user_id":6626,"title":"Ctrl+F search is interrupted by quotation popup","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-10T17:29:15Z","excerpt":"Thanks for letting us know. It turns out that by using minutely(5) instead of minutely causes ice_cube to peg a core at 100% usage. I've pushed out a fix in master.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/5120fc4e345db0d1a964888272073819.png?s={size}&r=pg&d=identicon","slug":"sidekiq-cpu-load-since-latest-release","topic_id":9515,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"riking","acting_name":"Kane York","acting_user_id":6626,"title":"Sidekiq CPU load since latest release","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-10T17:24:37Z","excerpt":"Thanks for letting us know. It turns out that by using minutely(5) instead of minutely causes ice_cube to peg a core at 100% usage. I've pushed out a fix in master.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"sidekiq-cpu-load-since-latest-release","topic_id":9515,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"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":"Sidekiq CPU load since latest release","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":6,"created_at":"2014-01-10T17:02:35Z","excerpt":"Fixed [smile] \n\ntop - 12:02:00 up 12 days, 2:16, 1 user, load average: 0.28, 0.92, 0.97\nTasks: 115 total, 1 running, 114 sleeping, 0 stopped, 0 zombie\nCpu0 : 0.7%us, 0.3%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st\nCpu1 : 0.7%us, 0.3%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.0%hi,…","avatar_template":"//localhost:3000/uploads/default/avatars/886/ea8/e533d87fd9/{size}.png","acting_avatar_template":"//localhost:3000/uploads/default/avatars/886/ea8/e533d87fd9/{size}.png","slug":"sidekiq-cpu-load-since-latest-release","topic_id":9515,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":23,"reply_to_post_number":22,"username":"michaeld","name":"Michael","user_id":6548,"acting_username":"michaeld","acting_name":"Michael","acting_user_id":6548,"title":"Sidekiq CPU load since latest release","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":2,"created_at":"2014-01-10T16:58:12Z","excerpt":"Thanks for letting us know. It turns out that by using minutely(5) instead of minutely causes ice_cube to peg a core at 100% usage. I've pushed out a fix in master.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//localhost:3000/uploads/default/avatars/527/614/d16e1504d9/{size}.jpg","slug":"sidekiq-cpu-load-since-latest-release","topic_id":9515,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"trident","acting_name":"Ben T","acting_user_id":5707,"title":"Sidekiq CPU load since latest release","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null}]}; Discourse.URL_FIXTURES["/topics/created-by/eviltrout.json"] = {"users":[{"id":19,"username":"eviltrout","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":5460,"username":"ned","avatar_template":"//localhost:3000/uploads/default/avatars/06b/90d/3b3ea7e56b/{size}.png"},{"id":402,"username":"thebrianbarlow","avatar_template":"//www.gravatar.com/avatar/5ddf2459e8edd6cf52dfff6cb41ca70d.png?s={size}&r=pg&d=identicon"},{"id":5707,"username":"trident","avatar_template":"//localhost:3000/uploads/default/avatars/527/614/d16e1504d9/{size}.jpg"},{"id":32,"username":"codinghorror","avatar_template":"//www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"//www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":2702,"username":"ryanflorence","avatar_template":"//www.gravatar.com/avatar/749001c9fe6927c4b069a45c2a3d68f7.png?s={size}&r=pg&d=identicon"},{"id":9,"username":"tms","avatar_template":"//www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon"},{"id":1,"username":"sam","avatar_template":"//www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":2636,"username":"lonnon","avatar_template":"//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":32,"reply_count":24,"highest_post_number":35,"image_url":"/uploads/meta_discourse/1227/8f4e5818dfaa56c7.png","created_at":"2013-06-25T11:58:39.000-04:00","last_posted_at":"2014-01-09T18:53:06.000-05:00","bumped":true,"bumped_at":"2014-01-09T17:09:40.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":2201,"like_count":46,"has_summary":false,"archetype":"regular","last_poster_username":"codinghorror","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":19},{"extras":null,"description":"Most Posts","user_id":5460},{"extras":null,"description":"Frequent Poster","user_id":402},{"extras":null,"description":"Frequent Poster","user_id":5707},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":9318,"title":"Discourse has a new Markdown Parser!","fancy_title":"Discourse has a new Markdown Parser!","slug":"discourse-has-a-new-markdown-parser","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-08-24T14:08:06.000-04:00","last_posted_at":"2013-08-24T14:08:06.000-04:00","bumped":true,"bumped_at":"2013-08-24T14:13:25.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":812,"like_count":13,"has_summary":false,"archetype":"regular","last_poster_username":"eviltrout","category_id":7,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":19}]},{"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.000-04:00","last_posted_at":"2013-06-02T11:22:58.000-04:00","bumped":true,"bumped_at":"2013-06-02T11:22:58.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":1075,"like_count":15,"has_summary":false,"archetype":"regular","last_poster_username":"eviltrout","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.000-04:00","last_posted_at":"2013-05-14T18:40:16.000-04:00","bumped":true,"bumped_at":"2013-05-14T18:40:16.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":377,"like_count":3,"has_summary":false,"archetype":"regular","last_poster_username":"sam","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":"/plugins/emoji/images/fish.png","created_at":"2013-03-20T22:29:22.000-04:00","last_posted_at":"2013-03-21T19:06:40.000-04:00","bumped":true,"bumped_at":"2013-03-21T19:06:40.000-04:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":500,"like_count":4,"has_summary":false,"archetype":"regular","last_poster_username":"zogstrip","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.000-05:00","last_posted_at":"2013-02-15T17:57:19.000-05:00","bumped":true,"bumped_at":"2013-02-15T17:57:19.000-05:00","unseen":false,"pinned":false,"visible":true,"closed":false,"archived":false,"views":457,"like_count":10,"has_summary":false,"archetype":"regular","last_poster_username":"eviltrout","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":"2014-01-15T15:21:37Z","excerpt":"A good fix would be to have the ERB template do an if statement. We'd happily accept a PR that did this if you feel up to it: \n\n <% if SiteSetting.logo_url.present? %>\n display logo html\n<% else %>\n display title html\n<% end %>","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"users-activate-account-pulling-blank-logo-instead-of-defaulting-to-h2","topic_id":10911,"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":"/users/activate-account pulling blank logo instead of defaulting to h2","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-14T21:03:07Z","excerpt":"Okay I've fixed the https [point_right] http links on the server side and in the Javascript click tracking as @BhaelOchon pointed out. \n\nLet me know if you find anything else broken.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"broken-links-possibly-related-to-https","topic_id":11831,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":18,"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":"Broken links, possibly related to HTTPS","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-14T20:29:23Z","excerpt":"You can retrieve a user's JSON by making a call to /users/username.json but that assumes you know the user's username. If that's impossible, I would be happy to accept a PR that would return the current user JSON from /session/current-user or something like that. \n\nAdditionally, if you're looking to…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"get-current-user-information-via-json","topic_id":11959,"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":"Get current user information via JSON","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-14T19:20:28Z","excerpt":"Perhaps the ['trackpageView'] is not the correct API call? We can probably send more information across such as the URL.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":25,"reply_to_post_number":24,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-14T19:19:46Z","excerpt":"Nope but I bet you can find one!","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-far-to-take-user-documentation","topic_id":11943,"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":"How far to take user documentation?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-14T15:58:27Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"regression-cannot-sort-topic-list","topic_id":11944,"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":"Regression: Cannot sort topic list","deleted":false,"hidden":false,"moderator_action":true,"edit_reason":null},{"action_type":5,"created_at":"2014-01-14T15:26:57Z","excerpt":"I do think that leading them into the official rails documentation at that point is not a bad idea. Like "congratulations, everything is ready but now you'll need to understand the platform we built it in to be productive."","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"how-far-to-take-user-documentation","topic_id":11943,"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":"How far to take user documentation?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-13T20:40:21Z","excerpt":"I had to fix an issue with Google analytics so I added a new API hook that can be used. \n\nIf you add the following it should work: \n\n Discourse.PageTracker.current().on('change', function() {\n _paq.push(['trackPageView']);\n});","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"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":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-13T18:47:33Z","excerpt":"I am pretty sure that the denizens of SO are correct and the variable is unneeded. @sam can confirm but it seems like it was once needed for something that has since been removed and the variable declaration was left intact.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"ruby-question-about-use-of-klass-self-in-the-site-customization-rb","topic_id":11889,"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":"Ruby question about use of klass=self in the site_customization.rb","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-13T18:45:41Z","excerpt":"I've just added the ability to list reply counts on your blog index and archive pages as you can see here. \n\nIt works with a similar API to embedding comments: \n\n <script type="text/javascript">\n var discourseUrl = "http://fishtank.eviltrout.com/";\n\n (function() {\n var d = document.createEleme…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-plugin-for-static-site-generators-like-jekyll-or-octopress","topic_id":7965,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":98,"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 plugin for static site generators like Jekyll or Octopress","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-13T15:10:41Z","excerpt":"This is really interesting. I'd like to hear your findings.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"focus-events-track-which-window-is-the-last-active-instance-of-a-forum-edit","topic_id":11872,"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":"Focus events: Track which window is the last active instance of a forum Edit","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-13T15:02:45Z","excerpt":"The code looks okay but it's hard to debug this way. \n\nOne thing you could do is add a: console.log('tracked!') just before line 8. Then open a developer console and see if the javascript is running properly.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"support-for-piwik-analytics-as-an-alternative-to-google-analytics","topic_id":7512,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":18,"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":"Support for Piwik Analytics as an alternative to Google Analytics","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-13T14:53:13Z","excerpt":"@Sam do you have any idea why only some people are getting this issue? I dont' mind the proposed fix but I'd prefer to know why it happens in the first place.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"error-after-update-to-0-9-8-1","topic_id":11903,"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":"Error after update to 0.9.8.1","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-10T16:45:44Z","excerpt":"Thanks for letting us know. It turns out that by using minutely(5) instead of minutely causes ice_cube to peg a core at 100% usage. I've pushed out a fix in master.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"sidekiq-cpu-load-since-latest-release","topic_id":9515,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":22,"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":"Sidekiq CPU load since latest release","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-10T16:04:29Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"scrolling-up-jumps-to-top-of-page","topic_id":11847,"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":"Scrolling up jumps to top of page","deleted":false,"hidden":false,"moderator_action":true,"edit_reason":null},{"action_type":5,"created_at":"2014-01-10T16:04:24Z","excerpt":"Thanks for showing me how to reproduce this. I've fixed it in master and it should be deployed later today. \n\n\n \n \n \n [image]\n github.com\n \n \n \n\n \n \n [eviltrout]\n\n \n FIX: Scroll issue on Firefox when approaching the top post\n \n…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"scrolling-up-jumps-to-top-of-page","topic_id":11847,"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":"Scrolling up jumps to top of page","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-10T14:42:39Z","excerpt":"I am a pretty sure I fixed this. Test link: http://meta.discourse.org/users/zogstrip/activity \n\n@Blue","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"users-linked-in-replies-dont-link-properly-in-email-body","topic_id":6613,"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":"Users linked in replies don't link properly in email body","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-09T22:00:23Z","excerpt":"Thanks I meant to document that above but forgot. (I just did.)","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"wip-list-of-all-the-hooks-in-discourse","topic_id":11505,"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":"[WIP] List of all the hooks in Discourse","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-09T21:57:50Z","excerpt":"I think I've fixed the preferences browsing bug but I can't seem to reproduce the errors while replying. How did you get those ones to show up?","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"security-error-on-console-noticed-on-meta","topic_id":11825,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"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":"Security Error on console (noticed on meta)","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-09T18:16:02Z","excerpt":"There is potentially good news on the horizon. One major improvement to Ember.js slated to come out this year is HTMLBars. The basic idea is to use DOM based templates instead of string based ones. \n\nEarly benchmarks have been very promising. It seems to be much faster. Additionally, there is work b…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"why-is-discourse-so-slow-on-android","topic_id":8823,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":64,"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":"Why is Discourse so slow on Android?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-06T15:29:29Z","excerpt":"Do you mean a list of topics? Or all posts in a category? Either way it's possible I'd just like to understand the use case first. \n\n \n\nLate last week I corrupted my postgres database and only got it fixed on Saturday. Should work again [smile]","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-plugin-for-static-site-generators-like-jekyll-or-octopress","topic_id":7965,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":96,"reply_to_post_number":93,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse plugin for static site generators like Jekyll or Octopress","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-03T22:02:57Z","excerpt":"Agreed, will definitely remove both of those.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"what-is-category-hotness","topic_id":11734,"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":"What is category hotness?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-03T18:13:30Z","excerpt":"I've pushed out some updates to this feature after reviewing it with the Discourse team. \n\n\nInstead of the best posts, it now shows all (up to a user configurable limit of 100.)\nIt shows a total of how many posts there are\nIf a post has replies or is in reply it says so\nLong usernames are broken up …","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-plugin-for-static-site-generators-like-jekyll-or-octopress","topic_id":7965,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":91,"reply_to_post_number":90,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse plugin for static site generators like Jekyll or Octopress","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-02T19:47:35Z","excerpt":"Okay I've pushed a fix for admins / topic creators: \n\nhttps://github.com/discourse/discourse/commit/1478f08e4fe102b79978fa51b7846c85ff3f7c74","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"what-is-the-point-of-limiting-new-users-to-three-replies-per-topic","topic_id":11696,"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":"What is the point of limiting new users to three replies per topic?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-02T19:35:18Z","excerpt":"Okay, I have a fix here for the feed crawler: \n\nhttps://github.com/discourse/discourse/commit/ed2e53bb068246205e2c3fc1fd985a54859fcad7","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-plugin-for-static-site-generators-like-jekyll-or-octopress","topic_id":7965,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":89,"reply_to_post_number":87,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse plugin for static site generators like Jekyll or Octopress","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-02T19:09:08Z","excerpt":"Actually you don't have to create a feed to create comments if you don't want; if you embed that JS with a unique identifier (I recommend the canonical entry URL), discourse will trigger a crawl for it, and use readability to import the page's contents into a new topic. \n\nNow, if that doesn't match …","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-plugin-for-static-site-generators-like-jekyll-or-octopress","topic_id":7965,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":88,"reply_to_post_number":87,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Discourse plugin for static site generators like Jekyll or Octopress","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-02T18:01:42Z","excerpt":"I had no end of problems with animations. On desktop Chrome they work fine, but many mobile browsers and such get awful performance and weird behaviour. I ended up stripping most of them while we got the site working across the board. I wouldn't be against adding some in, but maybe we should plugini…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"click-top-bar-to-scroll-top","topic_id":11655,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":16,"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":"Click top bar to scroll top","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-02T17:19:07Z","excerpt":"I encountered this on my blog when I created my discourse install, because even as an admin I couldn't post more than 3 times in 24 hours! I am going to fix both right now.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"what-is-the-point-of-limiting-new-users-to-three-replies-per-topic","topic_id":11696,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"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":"What is the point of limiting new users to three replies per topic?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2014-01-01T00:12:24Z","excerpt":"It's my last commit before the new year [wine_glass][beers] so I wanted it to be a good one. I just deployed the ability to embed Discourse into static sites. You can see it working on my blog here. \n\nIn few days I'll write in detail how it works and how to set it up, but the jist of it is to includ…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"discourse-plugin-for-static-site-generators-like-jekyll-or-octopress","topic_id":7965,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":85,"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 plugin for static site generators like Jekyll or Octopress","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-31T00:09:21Z","excerpt":"I don't know how I got that post to go through as him, but I just checked the code and the limit is on your first day, not when you become a regular user as I initially thought: \n\n def limit_posts_per_day\n if user.created_at > 1.day.ago && post_number > 1\n # ...\n end\nend","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"limiting-number-of-posts-on-a-new-users-first-day","topic_id":11667,"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":"Limiting number of posts on a new user's first day","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-30T21:35:41Z","excerpt":"It's only for new users to prevent spam. You will quickly graduate to basic user if you have good habits and the limit goes away. \n\nIf you don't like it on your forum, you can just increase the maximum in the site settings to a really high number.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"limiting-number-of-posts-on-a-new-users-first-day","topic_id":11667,"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":"Limiting number of posts on a new user's first day","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-23T23:29:54Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internal-server-error-on-some-img-tags","topic_id":11545,"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":"Internal Server error on some img tags","deleted":false,"hidden":false,"moderator_action":true,"edit_reason":null},{"action_type":5,"created_at":"2013-12-23T23:29:51Z","excerpt":"I've fixed this, thanks for reporting it.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"internal-server-error-on-some-img-tags","topic_id":11545,"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":"Internal Server error on some img tags","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-23T23:29:26Z","excerpt":"I've deployed a fix to this. It removes rows from our whitelisted attributes, because I can't imagine a user ever needing that in a post [smile]","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"1-billion-rows-breaks-stuff","topic_id":11564,"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":"1 Billion Rows BREAKS stuff","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-23T22:45:35Z","excerpt":"I can't reproduce this on my computer, so maybe you can help me out here. \n\nFirst off, I just want to be clear that you're editing the category topics here and not the categories themselves right? Your screenshots are of the topics. You edit the category using the "Edit Category" button. \n\nHaving sa…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"category-not-listed-under-parent-category","topic_id":11556,"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":"Category not listed under parent category","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-23T22:24:20Z","excerpt":"I agree about performance being a core value, but how does showing numbers to non-developers help? They won't understand them nor know what they mean or how to interpret them. It just ends up being clutter that they ignore. \n\nThis isn't the first person who's asked how to remove it.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"performance-times","topic_id":11567,"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":"Performance Times","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-23T22:06:58Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"ipad-portrait-mode-scrolling-stops-at-the-19th-post","topic_id":11524,"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":"iPad, portrait mode: scrolling stops at the 19th post","deleted":false,"hidden":false,"moderator_action":true,"edit_reason":null},{"action_type":5,"created_at":"2013-12-23T22:06:54Z","excerpt":"I've deployed a fix for this. It should work now, sorry!","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"ipad-portrait-mode-scrolling-stops-at-the-19th-post","topic_id":11524,"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":"iPad, portrait mode: scrolling stops at the 19th post","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-23T20:28:29Z","excerpt":"I'm covering for @Neil who is off for the holidays. It looks like Googlebot was parsing our Javascript as that's the only place where the string occurs. I added an extra check to not display that message to Googlebot and hopefully that will fix the problem. We'll have to keep an eye on it for a bit …","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"google-search-results-issue-with-forums-powered-by-discourse","topic_id":11565,"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":"Google search results issue with forums powered by Discourse","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-23T19:27:23Z","excerpt":"We should also consider putting it into a plugin. Perhaps a developer plugin combined with ember-renderspeed and anything else we use for debugging.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"performance-times","topic_id":11567,"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":"Performance Times","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-23T19:17:01Z","excerpt":"@sam as awesome as mini profiler is, I think we should consider turning it off by default. Most admins running discourse sites won't care about performance statistics and those who do can easily turn it on. Thoughts?","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"performance-times","topic_id":11567,"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":"Performance Times","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-20T20:58:35Z","excerpt":"I just tried on iOS 7.0.3 and 7.0.4 on the iPad 4 and iOS simulator, and both seem to work fine. Is there anything special you need to do besides use portrait mode in that topic? Do you scroll quickly or slowly? Does it always happen or just sometimes? \n\nedit: @codinghorror helped me figure it out. …","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"ipad-portrait-mode-scrolling-stops-at-the-19th-post","topic_id":11524,"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":"iPad, portrait mode: scrolling stops at the 19th post","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-20T17:21:26Z","excerpt":"This should be fixed now, sorry!","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"why-is-there-a-topic-reply-limit-for-new-users","topic_id":11513,"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":"Why is there a topic reply limit for new users?","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-20T16:16:09Z","excerpt":"It's a bit tricky if it's your first plugin but here's how you'd do it. \n\n (function() {\n\n Discourse.Route.buildRoutes(function() {\n this.route('signup', {path: '/signup'});\n });\n\n Discourse.SignupRoute = Discourse.Route.extend({\n beforeModel: function() {\n this.transitionTo('list.late…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"plugin-to-make-signup-modal-pop-up-at-a-route","topic_id":11486,"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":"Plugin to make signup modal pop up at a route","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-19T19:10:21Z","excerpt":"It looks like you're running Ruby on Windows. That's not a supported development environment as not every gem we use works with windows. You should consider using a linux virtual machine for development and to deploy onto Linux.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//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":66,"reply_to_post_number":65,"username":"eviltrout","name":"Robin Ward","user_id":19,"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,"edit_reason":null},{"action_type":5,"created_at":"2013-12-18T16:06:18Z","excerpt":"Using hash urls rather than Ember's routes is a little tricky because you'll probably find that ember strips them off when you request a URL. \n\nAll modals currently come out of our router, so you can call {{action showCreateAccount}} in any template or this.send('showCreateAccount') in any controlle…","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"plugin-to-make-signup-modal-pop-up-at-a-route","topic_id":11486,"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":"Plugin to make signup modal pop up at a route","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-16T18:26:32Z","excerpt":"I've just pushed/deployed a change for this. By default you get "All Subcategories" but you can also choose "No subcategories." Let me know what you think!","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"allow-view-for-topics-in-all-children-categories","topic_id":11085,"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":"Allow view for topics in all children categories","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-16T15:53:45Z","excerpt":"We should consider doing what Google Drive does: they intercept cmd-f and pop up a box that allows you to dynamically search.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"ctrl-f-search-is-interrupted-by-quotation-popup","topic_id":7114,"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":"Ctrl+F search is interrupted by quotation popup","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-16T15:42:00Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"parsing-issues-when-using-github-style-markdown-for-code-blocks","topic_id":9361,"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":"Parsing issues when using GitHub style markdown for code blocks","deleted":false,"hidden":false,"moderator_action":true,"edit_reason":null},{"action_type":5,"created_at":"2013-12-16T15:41:57Z","excerpt":"Yup, sure is. Will archive.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"parsing-issues-when-using-github-style-markdown-for-code-blocks","topic_id":9361,"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":"Parsing issues when using GitHub style markdown for code blocks","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-13T20:01:35Z","excerpt":"I swear yesterday typing "you should" made the results come up. But I can't prove it! Thanks I'll go from here.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"search-not-working-for-staff-users","topic_id":11371,"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":"Search not working for Staff users","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-13T19:45:29Z","excerpt":"Since this commit I can't seem to search for that "you should never" topic at all. I think it might be restricting too much?","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"search-not-working-for-staff-users","topic_id":11371,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"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":"Search not working for Staff users","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-12T15:54:36Z","excerpt":"Sam why should you never see that topic? You have permission to see it and it seems search respects that. As an anon user for example it doesn't show up.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"search-not-working-for-staff-users","topic_id":11371,"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":"Search not working for Staff users","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-12T15:07:34Z","excerpt":"Sure, but I should warn you that it's very tricky, as we get the content back as HTML which would then need to be converted to markdown.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"quoted-replies-dont-keep-original-formatting","topic_id":655,"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":"Quoted replies don't keep original formatting","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-12T15:04:43Z","excerpt":"It's been so long that this was posted that it's likely it was fixed, but I can't say for sure.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"blank-users-on-the-admins-invited-page","topic_id":8457,"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":"Blank users on the admin's invited page","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-11T19:35:24Z","excerpt":"This topic is now archived. It is frozen and cannot be changed in any way.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"markdown-parser-unable-to-parse-blockquote-if-theres-space-before-lt","topic_id":9439,"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":"Markdown parser unable to parse blockquote if there's space before <","deleted":false,"hidden":false,"moderator_action":true,"edit_reason":null},{"action_type":5,"created_at":"2013-12-11T19:35:19Z","excerpt":"Definitely fixed now, thanks for reporting it.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"markdown-parser-unable-to-parse-blockquote-if-theres-space-before-lt","topic_id":9439,"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":"Markdown parser unable to parse blockquote if there's space before <","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-11T19:33:59Z","excerpt":"As I said, I've tried those functions and they work fine, so I am wondering if there is something else about the address. But without knowing the actual address I can't help you, sorry. \n\nIt is possible it is a problem from outside of Discourse too, like in your mail server.","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"sender-email-subdomain-setting","topic_id":11349,"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":"Sender Email Subdomain Setting","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-10T16:26:06Z","excerpt":"I just checked the is_valid and downcase code paths with alert@xyz.com and both worked fine. Perhaps your email has something else weird about it? Could you PM me the actual address that broke?","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"sender-email-subdomain-setting","topic_id":11349,"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":"Sender Email Subdomain Setting","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null},{"action_type":5,"created_at":"2013-12-09T19:19:11Z","excerpt":"I'll see if I can slot it in this week!","avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"//www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"allow-view-for-topics-in-all-children-categories","topic_id":11085,"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":"Allow view for topics in all children categories","deleted":false,"hidden":false,"moderator_action":false,"edit_reason":null}]};