pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Стоит ли идти изучать Node.Js, или стоит подкрепить знания по JS??

Лучший ответ: 
Так же сверстал сайт-портфолио( прошу оценить - )
rar архив на яндекс диске? 
Воспользуйтесь для таких целей https://pages.github.com/

Худший ответ: Определённо стоит подучить JS. Он не такой простой как кажется на первый взгляд. Его прототипирование, .apply, .call, область видимости, замыкания, это все тебе нужно для понимания что происходит в коде, а в node.js все будет ещё не проще, к тому же он не подходит для любой задачи. У node.js есть свой определённый круг задач в которых он хорош. В остальных случаях лучше воспользоваться чем то что проще или подходяще.
П.С.
Стоит ли мне небоскребы в Нью-Йорке строить, если я научился кирпичи класть?
Вопрос: Как сделать чат на websocket?

Лучший ответ: Готовый гайд: socket.io/get-started/chat

Худший ответ: Думаю, что здесь вы сможете почерпнуть много полезного https://learn.javascript.ru/nodejs-screencast
Во второй части как раз создаётся чат на сокетах.
Вопрос: Бесплатный аналог evernote?

Лучший ответ: В бесплатной версии evernote нет только возможности создавать общие блокноты. Но если вам это реально нужно, на мой взгляд, залпатить 1000 рублей в год можно себе позволить. К тому же если несколько человек, так можно скинуться и на один аккаунт платный. Из всех блокнотов и записных книжек он на мой взгляд лучший. Плюс я в него перевел все свое to-do, так как специализированные программы слишком много требуют времени на написание планов.

Худший ответ: Пользуюсь catch.com
Есть возможно написания и хранения заметок в оффлайн. По количеству функций конечно уступает evernote, но в целом довольно неплохой. Из минусов — в бесплатной версии ограничено количество блокнотов. Есть клиенты под IOS, Android.
Вопрос: Permission denied при запуске sh скрипта, что не так?

Лучший ответ: Либо chmod +x filename, либо "sh script.sh"
Просто так на выполнение без права на выполнение файл запустить нельзя.

Худший ответ: "sh ~/JavaME/bin/usertest.sh" 
В этом случае "~/JavaME/bin/usertest.sh" будет выступать аргументом и права на его выполнение можно не выставлять.
Вопрос: Корзина интернет-магазина: данные в cookies, или в базе

Лучший ответ: Раньше было принято хранить корзину в куках.
Сейчас хорошей практикой является хранение корзины в БД.

Преимущества хранения в БД:
1) Корзина может храниться сколько угодно долго.
2) Корзина не теряется, если покупатель зашёл с другого браузера/компьютера.

Худший ответ: Корзину — информацию о товарах храним в БД — это удобно. Нужную информацию выводим в сессию.
Вопрос: Что означает подсветка в данном примере?

Лучший ответ: Удалил строку, потом добавили новую.
Большинство программ для сравнений ориентируются именно на строки.
Но некоторые могут и внутри строк различать изменения.

Худший ответ: Это удаление красной строки, добавление зеленой. 
Но суть изменения сводится к изменению строки, да. Просто диффалкам так проще мыслить.
Вопрос: Сохраняется ли конфиденциальность в GoogleTranslate?

Лучший ответ: официально нет
не парьтесь
доступ к мылу   - куда бОльшая дыра

Худший ответ: Думаю на 100% нет, но поводов для беспокойства немного )) Хотя это мнение ничем не подкреплено... Хотя может они собирают какие-то данные для статистической обработки качества перевода, но сложно сказать насколько они обезличенные.
Вопрос: Частое снятие с публикации страниц на сайте влияет на ранжирование в поисковиках?

Лучший ответ: На сайте климатического оборудование бывает что какие то серии выходят из строя, какие то бренды не пошли или нет в наличии. 
Убирая страницы с публикации через cms joomla, ссылки на эти страница отдают ошибку 403. Мне надо понять как поступать правильно, что бы не навредить ранжированию в поискавиках. Лучше на страницы с неактуальной информацией о оборудовании, которое временно не доступно или больше не производится добавьте специальный блок, информирующий посетителей сайта о текущем статусе этого предложения. А сам каталог, немного доработайте, например добавив статьям опцию Вкл/Выкл показ ссылки на оборудование в общем каталоге. Таким образом посетители сайта будут в каталоге видеть только актуальное предложение оборудования, но старые материалы и информация о временно не доступном оборудовании по прежнему будет сохранена и доступна на Вашем сайте.Является ли для поисковых систем это отказом или изменение отношения к сайту, у которого полно ссылок не рабочих. Часто удаление ранее проиндексированных страниц сайта или запрет доступа к ним, является негативным сигналом для поисковиков.

Худший ответ: Соглашусь с Авторами выше.
Лучше использовать другое решение вашей задачи.1. Добавить статус снят с производства или нет в наличии.2. Товары:
    - либо выводить в самом конце списка товаров в категории или в результатах фильтрации / поиска
    - либо не показывать в навигации вообще3. Сами карточки товаров оформить так:
    - чтобы было понятно, что товар больше не продается. 
    - вывести предложения актуальных товаров, которые могут быть достойной альтернативой текущему товару. (таким образом вы поможете покупателю с выбором другой модели,  которая решит его задачу)Если все же в вашей CMS нет таких функций, то предлагаю такие варианты- Внедрение функционала
То лучше их доработать либо перейти на CMS,  у которой есть такой функционал. В долгосрочной перспективе вы выиграете в разы.- Сделать 404 корректным
Главное сделать, чтобы не было на сайте в навигации ссылок на несуществующие страницы. Т.к. для ПС это очень важно, что у вас качественный и удобный сайт, у которого навигация ведет на существующие страницы. Также можно 404 страницу оформить более интересно. Например, показать интересные предложения, оставить форму обратной связи (чтобы можно было подать запрос об информации, которая не нашлась). Как показывает опыт посетители очень активно пользуются такой формой на 404 страницах. Если эти рекомендации примите во внимание, то понижения в ранжировании сайта не будет. Т.к. вы же удаляете страницы товаров, а значит ранжирование по ним вам не важно. А если у вас другие актуальные страницы сайта качественно оформлены, то с ними проблем не будет. Тоже проверено на опыте.
Вопрос: Обнулился рейтинг

Лучший ответ: Служба поддержки на это ничего не ответила, увы.

Поговаривают, что обнулили из-за низкой активности. Надеюсь это выдумка. После своего последнего «полезного» комментария, я решил не плодить здесь пустые комментарии, коими заполнены все топики. Лишать из-за этого возможности голосовать? Жестоко.

Худший ответ: Рейтинг восстановился похоже всё починилось.
Вопрос: Как закрыть доступ на shop/product.php если генерируется страницы товаров со ссылкой shop/product.php?id=1?

Лучший ответ: Попробуйте переформулировать вопрос ибо почти ничего не понятно.
Вам нужно чтобы открывались страницы продуктов, если есть параметр id в url, но если параметра нет, то выдавалась, ошибка?
Проверка на существование переменной: php.net/function.isset
Проверка, что в переменной не пусто: php.net/function.empty
Отправка нужного заголовка (например, что запрашиваемая страница не существует): php.net/manual/ru/function.header.php
Прерывание работы скрипта:  php.net/manual/ru/function.exit.php

Худший ответ: // если передан id.
if(!empty($_GET['id']))
       // выполняем какой-то код
else
     header('Location: http://natribu.org/');
     exit(); // обязательно! т.к. может выполняться идущий за перенаправление код
Вопрос: Как восстановить доступ к Dropbox?

Лучший ответ: А что локально файлы грохнулись чтоль?

Худший ответ: Для потеря доступа к дробоксу — почти катастрофа. Поэтому 16 пароль я сохранил сразу :)
Вопрос: Изучаем/не изучаем htaccess?

Лучший ответ: Самое главное что надо понять - нету никакого синтаксиса .htaccess!
Есть только синтаксис конфигурации веб-сервера Апач.
Отсюда следует, что упираться в изучение не нужно, поскольку с профессиональным ростом ты неизбежно перейдешь на nginx.
Вообще, с таим совковым подходом ты далеко не уедешь. Надо не зазубривать тонны команд. Надо учиться искать нужную информацию в интернете. Если тебе понадбится документация по натсройке mod_mime, то найти её - 5 сек. Вот что ты должен уметь.

Худший ответ: Mod_rewrite надо знать обязательно программисту и сеошнику чтоб закрыть дубли и лишние страницы
Вопрос: Как установить nginx + LuaJIT на Debian Wheezy?

Лучший ответ: вот как я ставил на ubuntu 12.04:
сначала ставим LuaJIT 2.0cd
git clone http://luajit.org/git/luajit-2.0.git
cd luajit-2.0
make
sudo make install
ln -s /usr/local/lib/libluajit-5.1.so.2.0.3 /usr/lib/libluajit-5.1.so.2
далее устанавливаем Luaapt-get install -y lua5.1 liblua5.1-0 liblua5.1-0-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/liblua5.1.so /usr/lib/liblua.so
далее скачиваем ngx_devel_kit:wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz
tar -xfz v0.2.19.tar.gz
далее скачиваем ngx_lua:wget https://github.com/chaoslawful/lua-nginx-module/archive/v0.9.6.tar.gz
tar -xfz v0.9.6.tar.gz
далее качаем nginxwget http://nginx.org/download/nginx-1.4.7.tar.gz
tar -xfz nginx-1.4.7.tar.gz
cd nginx-1.4.7
и наконец собираем:export LUAJIT_LIB=/usr/lib
export LUAJIT_INC=/home/ubuntu/luajit-2.0/src
./configure --prefix=/opt/nginx --conf-path=/opt/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-http_ssl_module --add-module=/home/ubuntu/lua-nginx-module-0.9.6 --add-module=/home/ubuntu/ngx_devel_kit-0.2.19 
make -j2
make install

Худший ответ: вот по этой инструкции:
wiki.nginx.org/HttpLuaModule#Installation
все отлично собирается и работает.
Вопрос: Что брать для графического дизайна: MacBook Pro Retina 13" или 15"?

Лучший ответ: Добавлю - что 13 что 15, это только под микроскопом работать.
Надо хотя бы 27, но это уже естественно надо монитор или полноценный imac.

Худший ответ: Исключительно 15, 13 это очень мало.
Вопрос: С чего начать писать движок магазина?

Лучший ответ: Не рекомендую писать. Это займет очень много времени и сил, вы даже не представляете сколько.
Но если все же решитесь, изучите современные движки и начните с ядра которое будет отвечать за товары и категории - все остальное будет крутиться вокруг них.

Худший ответ: C изучения рынка готовых товаров:
merchium.ru
storeland.ru
insales.ru
ecwid.ru
Bitrix
xcart
cs-cart
netcat
И это ещё не всё
Вопрос: Как сделать доступ по SSL (https) для нескольких сайтов на одном IP?

Лучший ответ: Использую SNI с Nginx, конфигурация такая же как для одного адреса, т.е. банально указывается server_name, никаких директив специально вызывать не надо — просто работает. SNI умеет любой вменяемый браузер (а невменяемый и без него проблем имеет).
Касательно WinXP — так SNI не поддерживается в IE, другим браузерам пофигу. 
wildcard сертификаты весьма дороги, но могут быть хорошим решением чтобы обойтись без SNI.SNIT

Худший ответ: SNI не поддерживается в WinXP
Поддомены + сертификат на *.ххх.ууу универсальное решение
Вопрос: Активный пункт меню в Angular?

Лучший ответ: Вот код для стандартного ngRoute<ul>
    <li ng-repeat="link in menu" ng-class="{ active: isActive(\'{{ link.href }}\') }">
        <a ng-href="{{ link.href }}" href="">{{ link.title }}</a>
    </li>
</ul>
В контроллер нужно заинжектить следующие сервисы: $scope, $location$scope.menu = [{
    "title": "title1",
    "href": "href1"
}, {
    "title": "title2",
    "href": "href2"
}, {
    "title": "title3",
    "href": "href3"
}];

$scope.isActive(location) {
    return location === $location.path()
}
Логика такая, при nrRepeat вы каждый раз стучитесь в функцию isActive передавая ей в качестве аргумента ссылку, которая используется в меню. Функция сверяет текущий url с тем что вы ей передали и возвращает true или false. Далее ngClass подставляет класс active там, где функция isActive вернула true.

Худший ответ: Если ui-router и у пункта меню (или внутри него) есть ui-sref, то ui-sref-active="нужный_класс"
Вопрос: UITableViewCell как сворачивать (разворачивать)?

Лучший ответ: Вот пример
www.appcoda.com/expandable-table-view

Худший ответ: Хороший форум - stackoverflow.com
Обычно все ссылки ведут почти сразу на него, если спросить у гугла что-то вроде
ios expanding table view cells
Вопрос: Что есть в pyramid, чего нет во flask?

Лучший ответ: Навскидку — traversal, встроенный контроль доступа, регистрация view-функций значительно богаче(могу ошибаться), заменяемые рендереры, asset overriding(хотя, я так и не понял, зачем).

Худший ответ: Они развиваются немного в разных направлениях. Для меня привычнее Pyramid, т.к. он вышел гораздо раньше. Хотя начинал я еще с Pylons. Вот и вся разница.

> Что есть в pyramid, чего нет во flask?

ну и самый простой ответ на этот вопрос: если этого нет, то сделай сам. Они настолько минималистичны, что за сутки можно перенести что угодно. Я еще на Python 3 перешел и приходилось подправлять WebOb, PIL пилить, но потом нашел менее кривой пакет.
Вопрос: Как получить название class из ID?

Лучший ответ: На станице не должно быть три одинаковых ID.
Тег a надо помещать внутрь тега li, а не наоборот.

Худший ответ: <a href='#' id='qwe' class=1 onclick="test($(this).attr('class'))"><li>Some text1</li></a>

<script>
function test(classs)
{
    alert(classs)
}
</script>
както так
Вопрос: Как отчитаться за работу если ничего не сделал?

Лучший ответ: Можно отчитываться за часть проделанной работы.
Исследовал возможность использовать вариант xx.
Разбирался с фреймворком yy.
Исправил проблему с xx, но тестирование показало, что исправлено не все. Продолжаю работать.
Занимался тикетами #1 и #2, #3 пока что не начинал.
В зависимости от твоей работы и от твоего руководства, нужно выбрать стратегию отчетов. Если им важно знать точный прогресс твоей деятельности - писать максимальную правду. Если им важно знать прогресс для отчетности наверх, можно показывать деятельность, не вдаваясь в подробности.
В общем в твоем случае, я бы пообщался как-нить 1 на 1 с непосредственным начальником и выяснил для себя что именно он хочет видеть в отчетах.

Худший ответ: Пока удавалось со всем справляться - часто жестко не вписываясь в сроки и криво реализую ту или иную часть задачи. Но ведь будет очень не приятно ни мне ни шефу ни заказчику - никому. Если однажды работа будет вовсе не сделана, а время потрачено.
PM в данной ситуации наверно хочет найти человека, который реально тратит столько времени, сколько говорит, т.е. хочет отсеять тех, кто не справляется. Как отчитаться - проставляйте часы на потраченную задачу, несмотря на то, что реализации еще нет. (правда, вас скорее всего уволят)Так вот как себя вести в таких ситуациях, что делать, говорить ?
В данной ситуации виноват менеджмент. Возможно, этому проекту категорически не подходит почасовая оплата, либо разбиение задач не оптимальное. Либо они думают, что можно любого человека с 1-го дня внедрить в чужой код.  
По вашим же словам они в итоге получают кривые реализации. Зато в часы уложились, молодцы.
В подобных случаях я за то, чтобы оценивать эффективность на длительных участках, надо дать хотя бы 2 недели.
Вопрос: Куда кинуть резюме, чтобы устроиться веб-разработчиком за границу?

Лучший ответ: Могу помочь с трудоустройством в Северодонецке, Украина. (вроде как заграница)

Худший ответ: могу разместить на крупнейшем сайте в Израиле (http://www.alljobs.co.il). Пиши на i@mamyta.ru
Вопрос: Как посчитать строки в динамическом массиве?

Лучший ответ: printf("%d", len_text);
Радостно выведет значение указателя на функцию len_text. Функции вызывать надо.
Также огромное количество выделений памяти. Код можно назвать Изнасилование кучи

Худший ответ: Так вроде бы код работает.
p.s. Автор, зачем вы используете конструкции вида *(text + i)? Это абсолютно тоже самое, что и text[i].
Вопрос: Как передать изменить параметр контрола из внешнего класса в потоке в C# 4.0?

Лучший ответ: разве ему не instance нужен? Вы же метод статически вызываете, а ему нужен уже инициализированный объект

Худший ответ: equand прав. До конца может не понимаю, что конкретно требуется, написал небольшой пример и с него должно, в принципе, быть понятно как в потоке запустить метод и вызывать другой из Form1.cs

Form1.cs:
public Form1()
{
  InitializeComponent();
  var counter = new Counter(Log);     
  var thread = new Thread(counter.Start);
  thread.Start();
}

public void Log(int a)
{
  if (InvokeRequired)
  {
    Invoke(new MethodInvoker(() => Log(a)));
    return;
  }
  Text = a.ToString();
}

* This source code was highlighted with Source Code Highlighter.

Counter.cs:
public class Counter
{
  private readonly Action<int> _logger;

  public Counter(Action<int> logger)
  {
    _logger = logger;
  }

  public void Start()
  {
    for(var i =0;;i++)
    {
      _logger(i);
      Thread.Sleep(1000);
    }
  }
}

* This source code was highlighted with Source Code Highlighter.
Вопрос: Можно ли прочитать локальный файл??

Лучший ответ: Браузер не даст сотворить такую вакханалию.

Худший ответ: www.html5rocks.com/ru/features/file_access
все что возможно.
Вопрос: Подскажете хороший учебник по Ruby (и, вмозможно по RoR)?

Лучший ответ: Советую
 — *The Ruby Programming Language* (http://goo.gl/hai4N)
 — *Programming Ruby* (http://goo.gl/7hHzw)

Худший ответ: чистый руби: www.ozon.ru/context/detail/id/6847284/
сам сейчас почитываю, правда в оригинале, вполне нравится
Вопрос: Как увеличить оперативную память ноутбука?

Лучший ответ: Дешевле и проще докупить еще одну планку на 4 гб.
Если же хотите купить планку на 8гб, то может уже сразу 2x8 до 16?

Худший ответ: AIDA может плясать от максимального размера планки, а она у DDR3 SODIMM  именно 8
поэтому лучше довериться оф сайту
Вопрос: Обязанности технического директора

Лучший ответ: [ 2 ] Кампания VS Компания [ 0 ]

Худший ответ: Ответ уже есть в вопросе. Берете вакансии серьезных ИТ-компаний, там будут все реальные требования.
Вопрос: Не понимаю суть переноса домена (как быть с ns-ками)

Лучший ответ: Чтобы домен работал:

1. DNS-серверы оператора должны делегировать домен на ваши DNS-севреры. Под «ваши» в данном случае имеется ввиду «на те, на которых вы разместили свою зону». Такое делегирование в зоне оператора выглядит так:

(в зоне com)
domain2.com. NS ns1.domain1.net.
domain2.com. NS ns2.domain1.net.

Если серверы так и расположены в другой зоне, этого достаточно. Если NS-серверы имеют имена в той же самой зоне, то появляются ещё специальные A-записи типа «а где этот сервер найти»:

(в зоне com)
domain1.net. NS ns1.domain1.net.
domain1.net. NS ns2.domain1.net.
ns1.domain1.net. A 192.168.0.1
ns2.domain1.net. A 192.168.0.2

Чтобы оператор это мог сделать, вы сообщаете ему имена, и, если потребуется, адреса DNS-серверов. Делается это через панель управления доменом у вашего регистратора, который там потом разберётся, что куда. Для домена, в котором расположены сами DNS-серверы, указываете вместе с IP-адресами, для остальных доменов, хостящихся на этих же DNS-серверах — без адресов, достаточно указать имена.

2. Ваши DNS-серверы должны быть правильно сконфигурированы. Это значит:

2.а: Все серверы имеют одинаковую версию зоны, т.е. один и тот же запрос ко всем серверам вернёт совершенно одинаковый ответ.
2.б: В них есть служебные SOA-запись и NS-записи, в которых указаны все эти DNS-серверы.

Т.е. для первого случая, в зоне domain.com будет такая информация:
domain2.com. SOA ns1.domain1.net. dnsadmin.domain1.net. 2011100976 86400 7200 3600000 172800
(числа в конце — это номер версии зоны и временные параметры; dnsadmin… — это служебный емейл, в котором @ заменили на .)
domain2.com NS ns1.domain1.net.
domain2.com NS ns2.domain1.net.

Всё остальное здесь — записи domain2.com. A, domain2.com. MX, www.domain2.com. A и прочие — какие вам нужны, то есть, адреса ваших хостингов почты и сайта, jabber-сервер, DKIM-подпись, и тому подобное.

Для второго случая в зоне нужно указать сами IP-адреса серверов в A-записях, т.к. они являются частью этой зоны:
domain1.net. SOA ns1.domain1.net. dnsadmin.domain1.net. 2011100976 86400 7200 3600000 172800
domain1.net. NS ns1.domain1.net.
domain1.net. NS ns2.domain1.net.
ns1.domain1.net. A 192.168.0.1
ns2.domain1.net. A 192.168.0.2

опять же, всё остальное здесь — записи domain1.net. A, domain1.net. MX, www.domain1.net. A и любые другие — по вашему желанию.

Худший ответ: 1. У хостера, где зарегистрирован домен вносите записи по новым ns-серверам.
Пример:
было: ns1.domen.com и ns2.domen.com
стало:  ns1.new.domen.com и ns2.new.domen.com

2. Удаляете доменное имя из панели старого хостера. Не забудьте скачать файлы сайта

3. В панели нового хостера создаете Ваш домен, по идее все записи пропишутся автоматически. Если нет, то прописываете то, что дал новый хостер.

Перенос может проходить около 2 суток.

Забыл спросить, сервер у того же хостера или нет?
Вопрос: Какие книги почитать по верстке (html/css)?

Лучший ответ: Видео Sorax и спецификация.

Худший ответ: Никакие, как упоминалось Sorax
И опыт
Вопрос: Правила объявления интерфейсов. «I» или «!I»?

Лучший ответ: Никакой "официальной" жесткой конвенции на этот счет нет. Как уже указал RGV, какую конвенцию использовать - личное дело команды / фирмы / техдира.
Я сам в свое время пришел к Java из Pascal и .NET, и тоже придерживаюсь нотации с I, т.к. это позволяет в коде визуально отличить интерфейс от класса. Просто для примера:...
  IProducer simpleProducer = new Producer();
  IProducer sofisticatedProducer = new SpecialProducer();
...
  public void produceSomething(IProducer producer);
При взгляде на такой код сразу понятно, кто из ху, без всяких дополнительных кликов, наведения курсора и прочих пританцовываний с IDE.
И хотя это никак явно не помешает креативному балбесу влепить класс там, где нужно использовать интерфейс, это поможет проводящему ревью заметить грабли невооруженным глазом :)  С моей точки зрения цена такого удобства в 1 (один !) доп. символ в имени вполне оправдана.

Худший ответ: Действительно для отличия интерфейса от класса. Так как классы зачастую называются подобным образом. 
List - IListПри вводе удобно. "I" + Ctrl + spaceЧитабельно. В том числе и просто контекстно соответствует в большинстве случаев. IHasGenerator - Я Имею Генератор
Вопрос: Сколько должен получать ведущий программист стартапа?

Лучший ответ: А чем работа в стартапе отличается от обычной работы? 
Если никак не участвует в прибыли, то получать должен в соответствии с рынком и с квалификацией.

Худший ответ: От обещания золотых гор до средней ЗП по рынку.
Вопрос: Отслеживание статуса «онлайн» пользователя сайта. Бд или кеш?

Лучший ответ: Ну, во-первых, нужно разобраться: "что есть онлайн"?
Пользователь онлайн, когда:
1. Он обновляет страницу или запрашивает новую
2. Он совершает действия на странице.
3. Вкладка активна.
В зависимости от того, что Вам нужно - далее нужная схема:
1. Сессия, куки, база и т.д.
2. Events & AJAX, web-sockets
3. AJAX + HTML5 Visibility API (Demo)

Худший ответ: Возьмите среднее: redis. Очень удобно, юзаю как раз для этих целей. Записываю значение с ttl в 10 минут при любом действии пользователя
Вопрос: Как взять заказ, видеопродукция?

Лучший ответ: Алгоритм по которому я развивал видео студию.
Кричишь друзьям  \ родственникам и делаешь им дизойн нахаляву.
Идёшь по форумам программистов \ игровым форумам и делаем им интро и промо нахаляву.
Набиваешь с 10-ок крутых работ с инфографикой, моушн дизойном, кучей шейпов и идешь на fl.ru и страдаешь там.
Если есть инглишь то upwork.com лучший вариант, через годик клиенты уже сами будут тебе писать и просится, если не рукожоп.

Худший ответ: Бидить первым пробовали?
Вопрос: Найти/подобрать AMI-образ?

Лучший ответ: Вот официальные образы, а вот инструкция. Извиняюсь, если это не то, что нужно — с AWS дела не имел :-(

Худший ответ: Чем вас официальный убунту ами не устроил?
Убунту в минимальной конфигурации.