Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Медленная сортировка по дате в Mysql

Лучший ответ:
Уберите GROUP BY `posts`.`id`

Худший ответ:
Я бы на Вашем месте изменил бы структуру страницы posts. На сколько я понимаю табличка users Вам нужна для отображения имени автора поста, я бы добавил в табличку posts нужные поля ( имя автора, может рейтинг поста, нужные в общем), и не соединял бы остальные таблички, но в таким случае нужно при обновлении других таблиц смотреть и посты. Работать будет в разы быстрей, но внимания нужно будет тоже больше уделить изменениям.
Вопрос: IE8 окончательно сошёл с ума… ((

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

Худший ответ:
И в итоге… Решение всё же было найдено. Когда мне окончательно надоело воевать с IE, я взял regmon от winternals и просмотрел обращения IE в реестр. Оказалось, что при попытки записи туда результатом является ACCESS DENIED. Запуск от имени Администратора тоже не спас. И тут до меня дошло посмотреть в настройки антивируса. Как это произошло не знаю, но там оказался заблокированным доступ IE в реестр. Когда я удалил это правило, все проблемы тут же пропали.
Вопрос: Как мониторить вирусню на сайте?

Лучший ответ:
Manul — бесплатный антивирус для вашего сайта by Yandex

Худший ответ:
Смотрите логи доступа по HTTP, FTP и SSH. На совсем крайний случай - полное логирование траффика с последующим анализом.
Вопрос: Как сделать такой градиент и тень у текста?

Лучший ответ:
Примерно так https://jsfiddle.net/se5t0nn2/

Худший ответ:
Думаю, если кроссбраузерно - только через SVGВот так примерно.
Тень сделал дублированием текста, поскольку фильтр задавать сильно громоздко.
Вопрос: Насколько реально заработать на Creative Market на хлеб с маслом? И с икрой?

Лучший ответ:
Зависит от вашего таланта и количества проектов, которые вы сможете там разместить.
В любом случае ничто не мешает вам попробовать и иметь побочный заработок, который может превысить основной со временем.

Худший ответ:
еще на market.envato.com посмотрите
по платежноспособным клиентам оба хороши: высокий процент прямого и рерферального траффика (аналог  - Шатерсток, в нем та же структура трафа и продает больше ближайших 
вместе взятых, кроме Адобе, разве что)
как заработать - дело другое. Делайте уникальный продукт (чтобы и из поисковиков шли), изучайте как ранжируются продукты в поиске на ресурсе, может, можно взять количеством а не качеством и т.п.
Вопрос: ПО для захвата видео с экрана и последующим его редактором (обрезать там и тд)?

Лучший ответ:
30 дневная версия Camtasia Studio

Худший ответ:
а чем 3д игры лучше захватывать? Чтобы звук с микрофона еще подхватила
Вопрос: Есть ли в России краудфандинг-площадки для технических проектов?

Лучший ответ:
Технический проект советую запускать на boomstarter.ru. Основываюсь на своих наблюдениях и реальном опыте запуска проекта.
Планета.ру больше для творческих и, особенно, для музыкальных проектов.

Худший ответ:
Есть. https://futland.ru
Вопрос: Почему намертво зависает компьютер?

Лучший ответ:
+1 к прогнать тест на работоспособность харда и прогнать memtest.

Худший ответ:
Проверь температуру северного моста (находится на материнской плате возле процессора)
Вопрос: Как импортировать кошелек bitoin wallet.dat, если не помню, в какой программе его сохранял?

Лучший ответ:
Дайте мне. Восстановлю.

Худший ответ:
Вопрос решил. Поставил клиент под винду и заменил wallet.dat по адресу C:/Пользователи/Username/AppData/Roaming/Bitcoin на свой.
Вопрос: Как организовать домашний сервер?

Лучший ответ:
Посоветую гугл. Начните ставить, если не получается - гуглите, не получается - спрашивайте. Алгоритм такой и ТОЛЬКО такой.

Худший ответ:
Да и не надо вам "само ядро настраивать". Устанавливайте Ubuntu server раз уж вы с Xubuntu работали и вперед и с песней. На правах рекламы "Мой блог" там много разной информации по Linux-ам и не только :) th22.info/blog-all-records
Вообще если, что обращайтесь помогу чем смогу. Контакты на сайте есть.
Вопрос: Почему в изсходном коде не показывает div элемент?

Лучший ответ:
Вы включили свой div в другой div, у которого установлена фиксированная высота и overflow:hidden, так что он просто находится за нижней границей.<div id="container">
  <div>...</div>
  <div>...</div>
  <div>...</div>
  <div> <!-- у этого div'а фиксированная высота и overflow:hidden -->
    <p class="image">...</p>
    <p class="title">...</p>
    <p class="options">...</p>
    <div class="payment">...</div>
  </div>
</div>

Худший ответ:
Файл main.css строка 397#container div{
	/* overflow: hidden; */
       ...
}
Вопрос: Использование Python-кода из Visual Basic?

Лучший ответ:
Calling IronPython functions from .NET

В гугле invoke ironpython from vb можно найти решение.

Худший ответ:
Мсье знает толк.
Как вариант — использовать c++ как промежуточный язык, из которого таки можно использовать библиотеки python.
Вопрос: Где учат ux/ui?

Лучший ответ:
Учитесь сами, есть курсы на coursera - «Human Computer Interaction», есть хаб по интерфейсам/веб-дизайну на хабре, есть кейсы на vc.ru, есть книги Джефа Расскина, Алана Купера и многих других. Есть аналитическая кампания Nielsen Norman Group и так далее.

Худший ответ:
Вот хороший ресурс, где можно посмотреть видео по UX, но этого не достатоно чтоб научиться. Нужно учиться на реальных проектах и желательно с наставником. Ищи работу :)
Вопрос: Как реализованы параллельные вычисления в многоядерных процессорах?

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

Худший ответ:
Многоядерность сама по себе никак не связана с вычислительным конвейером. На каждом ядре свой конвейер и его работа не зависит от других ядер.
Суть многоядерности в том, что каждое ядро выполняет свой вычислительный поток. На N-ядерном процессоре в каждый момент времени параллельно выполняются N потоков.
Поэтому количество ядер процессора может влиять на производительность только многопоточных программ. Любая программа, в которой не предусмотрена многопоточность и распараллеливание нагрузки между потоками, не получит никакого преимущества в скорсти при апгрейде одноядерного процессора до 16-ядерного (при той же тактовой частоте).
Вопрос: Как правильно открывать пластиковую упаковку от техники?

Лучший ответ:
Есть специальные ножи для открывания блистер-упаковок.
Продаются… в блистере :)


Худший ответ:
режу ножом так как ножницами пару раз резался
Вопрос: Вопрос по AD и DNS?

Лучший ответ:
у вас домен corp.roga.ru
вот от этого и отталкивайтесь.
имя домена CORP
днс зона для corp.roga.ru
домен контроллер dc.corp.roga.ru
и так далее

Худший ответ:
ИМХО моветон называть локальный домен основываясь на внешнем домене.
Чем вас блабла.local не устроил?
Я это к тому, что когда-то странный админ в нашей конторе, назвал локальный домен так же, как и внешний. Прошло лет 6, а мы до сих пор это расхлебываем и лишние буквы пишем.
Вопрос: Использование контейнеров(Docker.io) для Continuous Deployment — какие сценарии использования?

Лучший ответ:
Это обычный lxc, на хабре что-то попадается периодически, читайте в ту сторону.

Худший ответ:
Это обычный lxc, на хабре что-то попадается периодически, читайте в ту сторону.
Вопрос: Чем можно заменить встроенный opcache в php 5.5?

Лучший ответ:
даунгрейд до 5,4 и APC.
Попробуйте так же поиграться с opcache.optimization_level. Скажем выставить все в 0x00000000 и потом попеременно включать. 
Какой бит за что отвечает можно посмотреть тут: stackoverflow.com/questions/21181045/php-opcache-o...

Худший ответ:
Можно XCache попробовать.
Но лучше разобраться с OPCache, поиграть с его настройками и зарепортить баг
Вопрос: Arduino RFID сервопривод как написать программу новичку?

Лучший ответ:
Почитайте про конечные автоматы. У вас тут простейший: два состояния (открыто-закрыто), два перехода между ними (по rfid). Чтобы замок не колбасило туда-сюда при приложенной карточке, есть два решения:
1. (легкое) Задержка чтения rfid после смены состояния.
2. (правильное) Добавить в автомат два промежуточных состояния
открыто_2 --(поднесли карту)--> закрыто_1 --(убрали карту)--> закрыто_2 --(поднесли карту)--> открыто_1 --(убрали карту)--> открыто_2
Как-то так.

Худший ответ:
"по отдельности серва работает, рфид тоже"
Что именно не работает?
Если рфид работает, значит можете выполнять действия, по срабатыванию
Все действия сведутся к фиксированию угла сервы в переменной и её изменению (весьма условный код):
if(угол_сервы==180)
servo.write(угол_сервы=0);
else
servo.write(угол_сервы=180);
ну и задержки между чтениями RFID, что бы пока карта/брелок работающий рядом находиться не было судорог.
Вопрос: Подключиться к защищенной Wi-Fi сети без GUI

Лучший ответ:
Вам нужно установить wpa_supplicant и настроить network/interfaces

Худший ответ:
Ну, автозапуск это вроде init.d + символическую ссылку на соответсвующий уровень. rc?.d, остается только написать скрипт и вуаля.
Вопрос: Asus eee PC 701 как проигрыватель для музыки в театре?

Лучший ответ:
Если планируете пускать музыку на спектакле, вам понадобится еще качественный звук. Рекомендую приобрести внешнюю USB Звуковую плату. Ось можно ставить любую. а чтобы работало как медиа-центр можно использовать XBMC

Худший ответ:
Извиняюсь за ошибку, Но не беспокойтесь. подойдет любой Linux дистрибутив. XBMC даже на Raspberry Pi работает отлично.
Вопрос: Чем распаковать прошивку роутера DIR-615 (HW ver: K1)?

Лучший ответ:
Указанный вами образ (заголовок «HDR0») — это TRX.
Утилитой UNTRX (configure/make после svn) распаковывается на два сегмента. Из них файл segment2 — это SquashFS.
Команда ./unsquashfs_all.sh /home/rasa/Desktop/segment2 /home/rasa/Desktop/outputdir перебирает распаковщики, в итоге squashfs-3.3-lzma/squashfs3.3/squashfs-tools распаковывает 341 файл в 39 директориях. В корне этой ФС лежит файл VERSION:
NAME:       DIR_615K1
VERSION:    1.0.7
BUILDTIME:    Wed Oct  3 12:29:16 MSK 2012
VENDOR:     D-Link Russia
BUGS:       <support@dlink.ru>
SUMMARY:    Root filesystem image for DIR_615K1

Худший ответ:
Посмотрите тут
Вопрос: Расположить шесть DIV в две колонки/три строки. Существует ли решение?

Лучший ответ:
Вы, конечно, не первый, кто столкнулся с такой задачей.
masonry.desandro.com

Худший ответ:
обертки из 2 колонок не мешают адаптивности. Можно использовать float, тогда при маленькой ширине колонки будут одна под другой, а при достаточной ширине будут рядом.
Вопрос: Есть ли смысл в перезапуске Apache & Nginx по крону?

Лучший ответ:
Так делать нельзя.
Apache сам умеет перезапускать child процессы, параметр MaxRequestsPerChild (см. гугл).
MySQL начинает потреблять больше памяти потому что при запросах некоторая часть данных попадает в память чтобы в следующий раз быстрее ответить. И потребление памяти помогает повысить производительность.
Nginx является связующим между внутренними процессами сервера и пользователями, он должен работать круглосуточно и поэтому работа с памятью там очень хорошо проработана, посмотрите модули и конфиг, может проблема в каких-то кешах.

Худший ответ:
Линукс сам по себе старается максимально эффективно использовать всю доступную память и не нужно бояться, что показывает, что занято 98%, например. Нужно смотреть, подо что именно она занята, может это дисковый кеш. 
Если занята именно процессами апача, мускула и nginx, то надо смотреть конфиги и оптимизировать их под конкретный сервер и конкретные задачи/нагрузки. 
Отдать побольше памяти для mysql - тоже правильно, чем больше таблиц размещается в RAM, тем быстрее работает база. Но, естественно, при этом надо не забывать оставить памяти для остальных сервисов.
Вопрос: Как объединить две локальные сети в одну через OpenVPN?

Лучший ответ:
Вот схема которая подойдет для вашей ситуации:
А вот хорошая статья для новичков в openvpn, там есть примеры конфигурации для linux и windows:
samovarchik.info/viewtopic.php?id=3145
В кратце какие этапы нужно выполнить:
1. Сгенерировать сертификаты, это очень просто, у меня на это уходило минут 10
2. Взять конфигурационный файл из примера, и немного изменить его под свои нужды
3. Разобраться с маршрутизацией, чтобы обе сети за маршрутзаторами могли обмениваться трафиком.
Рекоменду сначало поднять 2 виртуальные машины на virtualbox и потренироваться, и все получится.

Худший ответ:
Какое оборудование есть в распоряжении? 
Какой канал между сетями? 
Рекомендую 2 роутера с альтернативными прошивками класса (От Олега / *wrt / tomato) 
И поднять на них мост на OpenVPN ( в этом случае 2 сети могут быть  в одном сегмента, как бы соединены напрямую кабелем) или сделать маршрутизацию.
Делал и то и другое.
Вопрос: Как в с# прочитать файлы и получить параметры?

Лучший ответ:
Это обычный INI файл, гуглите что в вашем языке есть для работы с ним.

Худший ответ:
Я не знаю ничего о c#, но я уверен, что регулярные выражения справятся с этой ситуацией лучше всего. Вот это тебе точно поможет.
Вопрос: Сессии на PHP

Лучший ответ:
если после этого
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
сделать
var_dump($_SESSION);
что выводит?

Худший ответ:
Закоменть. Лишнее… По-идее, должно инициализировать и прибавить единицу автоматом…
//if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
Вопрос: Проксирование трафика с сохранением ip адреса

Лучший ответ:
Это делается обычным dnat в iptables 
какой нифиг binat

Худший ответ:
1) binat в Линуксе делается либо парой правил snat\dnat в iptables, либо через iproute2: linux-ip.net/html/nat-stateless.html

2) если Windows будет видеть в заголовке приходящих IP-пакетов настоящий адрес отправителя,
то по умолчанию она будет отправлять ему ответы напрямую, а не через Дебиан.

3) решением могло бы стать туннельное соединение между Дебианом и Windows (например, OpenVPN)
и политика маршрутизации на Windows для данного протокола, но если к ней нет доступа, то увы.
Вопрос: Где статистика по работам на upwork?

Лучший ответ:
Upwork Trends
Пока только ЯП и БД, возможно дальше добавлю по дизайну что-то.

Худший ответ:
Убрали уже
Вопрос: Расчет расстояний между городами

Лучший ответ:
гуглите "графы поиск пути". Дороги будут ребрами графа, вершины графа - населенные пункты. Для ребер параметры - длина, для населенных пунктов - все остальное (название, координаты. погода).
В качестве СУБД подойдет что-то типа neo4j. И еще по поводу выбора СУБД и подходов к решению почитайте.

Худший ответ:
К сожалению оно вам выдаст только километраж
calc-api.ru/apipages:CitiesDistance
Вопрос: Удаление элемента из вектора целых числе. Как исправить?

Лучший ответ:
компилятор тебе прямо говорит id_user - это int
оперятор delete удаляет обьект, принимая указатель
вроде тебе эта строка вообще не нужна

Худший ответ:
1. Вы уже удалили из вектора данные вызывомhmn->friends.erase(it);
delete нужен для очищения выделенной памяти оператором new.
2. Это лишнее:if (hmn->friends.size()==0)
{
return false;
}
т.к. vector.begin() == vector.end()  тоже, что и vector.empty(). Ваш цикл for сразу завершится, если вектор окажется пустым.
Вопрос: Интернет и локальная сеть через разные сетевые соединения в Mac OS X. Как?

Лучший ответ:
Можно прописать для локальных ресурсов статические маршруты. route -n add xxx xxx

И тогда, когда подключаетесь в WiFi будет работать интернет через WiFi, а локальные ресурсы через LAN.

Худший ответ:
Расскажу как решил. Все просто, система сама все делает. Нужно было в списке соединений Wi-Fi сделать более приоритетным. И когда он подключен — интернет работает через него. Сетевые ресурсы доступны по обоим соединениями.
Вопрос: Как настроить безопасность на компьютерах в офисе?

Лучший ответ:
1. На все компьютеры антивирус
2. Ограничить всех пользователей в правах (Никаких админов)
3. Настраиваете прокси сервер с проверкой на вирусы. Всех в интернет только через прокси
4. На почтовом сервере (надеюсь он у вас есть?) настраиваете проверку всех писем на вирусы и спам.
5. На файрволе запрещаете все, кроме... "тут идет список то что можно"...
Как-то так.
На счет "нехватает прав для запуска программ" - такого не бывает. Значит что-то не так делаете. Нужно просто взять и разобраться

Худший ответ:
Берешь списанный бухгалтерский комп, туда фрю, настраиваешь роутинг, ставишь ClamAV и готово :-)
Вопрос: Почему при сравнении двух одинаковых строк на русском языке получается false?

Лучший ответ:
Значит страница и скрипт в разных кодировках

Худший ответ:
надо писать
p==='хорошо'
+ привести к единому регистру
+ сделать trim строки
Вопрос: На каком языке лучше писать чат?

Лучший ответ:
Я думаю это зависит от того кикие ощущения вы хотите иметь когда закончите.
Если напишете на erlange будете куртым
Напишете на go или node.ja будуте хипстором
На java/python будете скучным
На php будете унылым 
На С/С++ станете аксакал
Так получается потому, что в современном мире, что бы показать сетевые возможности языка, пишут, что то простое и понятное всем. Раньше это были echo серверы, а теперь это чаты.
Что касаеться певого вопроса, то по абривиатуре XMPP думаю можно нагуглить исходники серверов и клиеентов на любых языках.

Худший ответ:
1. Вот к примеру список
2. Лучше писать на том языке, который лучше знаете.
Вопрос: E-comerce платформу (CMS/CMF) для запуска сайта в штатах?

Лучший ответ:
У них сейчас очень популярна Magento.

Худший ответ:
magento и ещё раз magento
если товаров много и оборот хороший то magento enterprise там оно тянет очень много.
Вопрос: Как настроить apache2 и домены на домашнем сервере?

Лучший ответ:
первое - Для обслуживания любой доменной зоны нужен один, а по стандартам минимум два dns сервера.
Если у вас поднят и корректно настроен днс сервер, можете в админ панели Вашего домена у регистратора прописать Ваш домашний сервер как DNS сервер.
В Вашем днс сервере должна быть корректно описанана днс зона для Вашего domain.zone
in a, mx, www алиасы, указывающие на "белый" ip вашего домашнего сервера.
в веб сервере надо указать что есть виртуал хост domain.zone, с корневым каталогом /var/www/domain.zone и подкаталогами /var/www/forum как forum.domain.zone
взяты мной для примера.
ну и да, Ваш домашний сервер теперь должен работать круглосуточно 24/7/365, быть доступен по 53 и 80 портам, а так же, если вы прописали на него MX, и 25 порт для приёма почты для домена.
Поздравляю, Вы сделали сайт непонятно зачем живущий у Вас дома, вместо того чтобы за пару баксов в месяц (это дешевле, чем оплачивать счета за свет) купить простейшую виртуалку у любого хостера вроде hetzner или в любом облаке вроде amazon/azure c реальной доступностью 24/7/365
теперь остаётся только смотреть за скриптами, что Вашу машину не проломали по уязвимостям, беспокоиться за её работу.
Из вариантов, конечно, можно развернуть виртуалку у себя на хосте, чтобы не мешала работе и не отжирала все ресурсы, но это уже следующий шаг

Худший ответ:
Если вы хотите, чтобы с вашего компьютера по доменам test.ru и diplom.ru открывались сайты с вашего сервера, то пропишите для них нужный IP в /etc/hosts (или c:\Windows\System32\drivers\etc\hosts) на своём компьютере.
Вопрос: PHP & MySQL построение архитектуры динамических фильтров для интернет каталога

Лучший ответ:
По-моему то, что вам нужно называется entity-attribute-value. Плюсы, минусы, критику и особенности реализации можно по этому словосочетанию поискать — написано много.
Личного опыта, к сожалению, нет.

Худший ответ:
У самого стоит задача написать подобное для интернет магазина, по данной тематике грамотного мануала не нашел, приходиться изобретать свое.
Вопрос: Как вставить видео в качестве фона блока фиксированного?

Лучший ответ:
Тег <video> о чем-нибудь говорит? :)

Худший ответ:
Знаю один вариант, это относительное позиционирование. 
А вот и код
Вопрос: Можно ли программировать на монохромном медицинском мониторе?

Лучший ответ:
Кто же запрещает, программируй. Вопрос в другом - для чего это всё?

Худший ответ:
Может проблемы со зрением, слабое и еще хуже становится от работы за монитором. Я не врач, но думаю, что таким способом вряд ли можно помочь, надо видимо показаться специалисту, узнать с чем связано ухудшение зрения и лечить конечно же как врач назначит.
Вопрос: Зависает браузер при выводе большого объема записей с БД (items.length >= 5000)?

Лучший ответ:
Для начала уменьшить количество обращений к dom, заменивfor($i = 0; $n = 1; json["items"].length > $i; $i++){
           $(".content").append('<div style="width:100%; height:46px; border-bottom:1px solid #DDD"><b>'+json["items"][i]["name"]+' - <span>'+json["items"][i]["date"]+'</span> - '+json["items"][i]["time"]+'</b></div>');
            }
наvar html = '';
for($i = 0; $n = 1; json["items"].length > $i; $i++){
           html += '<div style="width:100%; height:46px; border-bottom:1px solid #DDD"><b>'+json["items"][i]["name"]+' - <span>'+json["items"][i]["date"]+'</span> - '+json["items"][i]["time"]+'</b></div>';
            }
 $(".content").append(html);
Или что-то подобное

Худший ответ:
Итог: объеденяем все озвученные решения воедино и получаем оптимальный вариант :)
Вопрос: Какая CMS с открытым кодом имеет минимальное количество уязвимостей?

Лучший ответ:
Wordpress - дыра
Drupal - дыра 
joomla - дыра
никакая

Худший ответ:
Ну Вордпресс например реализовал принудительные автоматические обновления движка, относящиеся к безопасности (да и любые критические обновления в целом). Причем они довольно регулярны. А сейчас вон вообще к релизу 4.4 готовят.
Мне кажется, что чем чаще обновляется движок - тем меньше в нём дыр. По крайней мере, судя по ченжлогам вп, дыры там закрывают регулярно.
Вопрос: Как правильно публиковать проект из SVN?

Лучший ответ:
хадсон?

Худший ответ:
Гм. Пришла идея — но проверить сейчас не могу (на работе к своему svn нет доступа)
1.Получаем из svn log список измененных файлов по ревизии, пишем в файл
2.Натравливаем svn export на эти файлы…
Вопрос: Какой купить роутер?

Лучший ответ:
Новый Zyxel Keenetic Giga II справляется лучше, Вот пруф, например.

Худший ответ:
отключите аппаратный NAT и авто QoS. Так же мучалась, пока саппорт Zyxel не посоветовал так сделать. Стало гораздо лучше. А так да, как уже советовали выше keenetic giga II лучше справляется с нагрузками.
Вопрос: Как правильно реализовать таблицу БД для создания тегов на сайте?

Лучший ответ:
Вы описали классическую связь многие ко многим через промежуточную таблицу, что тут еще придумаешь? Это и есть best practices... Только не забываем в mysql настроить ограничения foreign keys на промежуточной таблице.

Худший ответ:
А на кой такой оверхед-то?
В таблицу object добавляете строковый "tags", где в строке теги через разделитель какой-нибудь.
Это поле используете для вывода тегов на странице
В таблице tag_object строковое поле tag, и id объекта, чтобы искать по конкретным тегам.
Плюс я бы еще держал таблицу tags, где был бы список всех уникальных тегов с количествами использований.
Зачем вам id для тегов? Про slug - если вам надо искать по транслитерованному тегу, то туда же в tag_object его пихайте.
Если у вас 10000 объектов и 1000 тегов, посчитайте, сколько в худшем случае записей у вас будет в таблице tag_object? В вашем случае, для того, чтобы просто получить список тегов к объекту, нужно будет столько геммороя поиметь - ладно, если к одной записи (и то ничего хорошего). А если к списку? Да с пагинацией? Присоединять таблицу с 10000000 ради списка тегов?
Вопрос: Есть ли библиотеки облегчающие построение графиков на SVG?

Лучший ответ:
Вообще-то это очень легко нагуглить.

Худший ответ:
Попробуйте рафаэля.