Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Изучение Symfony2/Laravel, сколько времени потребуется?

Лучший ответ:
сколько примерно времени займёт период от начала изучения до первого собеседования
По персонажам которые приходят на собеседование могу сказать что некоторые и за год работы не знаю ничерта о том что и как они используют.
На symfony2 в среднем проекты поинтереснее, так что я рекомендовал бы именно его. В любом случае переход laravel <-> symfony не является проблемой, ибо различия принципиальные там только в ORM идущей из коробки. Архитектура же этих фреймворков в целом схожа, разница в нюансах. Например в laravel мидлвэры как отдельная сущность, а в symfony они реализуются через события ядра, но суть та же. Еще нюансы с доктриной, эта штука довольно сложная и ее очень легко использовать неправильно, особенно с mysql. Но после того как разберетесь с ней возвращаться на всякие там active record-ы совсем не захочется. По сути это единственная полноценная ORM в php мире.
Еще вне зависимости от выбора рекомендую ознакомиться с такими штуками как луковая/гексагональная архитектура, почитать чего по TDD и тестирование в целом. Кента Бэка например, Эрика Эванса.

Худший ответ:
Берите laravel5, базового туторила хватает с лихвой, если конечно опыт есть в php5.4+ (и то дело 1-2 статей про PS4 namespace)Я руководствуюсь этим
Чем проще, тем лучше.
Плюсов не вижу использовать симфони2, разве только, если штат знает/использует симфони и нечего другого не хочет.  (мурашки)
PS вообще пишу на Yii2. 
1 Все есть из коробки
2 главное простой
Вопрос: Программа для логистики нескольких машин такси?

Лучший ответ:
Вряд ли существуют публичные сервисы подобного рода, хотя, у правильных компаний-провайдеров такси что-то подобное конечно есть.

Но с другой стороны, это не просто матмодель, которая что-то считает. Почти наверняка это комплекс программно-аппаратных средств, которые, работая совместно, в результате дают автоматизированную диспетчеризацию такси.
Во-первых, это непрерывный мониторинг местоположения машин такси (GPS, Глонасс). Он есть?
Во-вторых, это непрерывный мониторинг заправленности машин такси (а как вы хотели считать затраты без бензина?) Если честно, не представляю как делать сбор подобной информации.
В-третьих, откуда будем брать расстояния между точками на карте? Полагаемся на Google Maps? Не уверен что он имеет подобную функцию. Если не имеет — надо разрабатывать…

Это только то что сходу в голову пришло, ньюансов наверняка гораздо больше.

Сделать ядро оптимальной диспетчеризации я бы пожалуй смог взять на себя, при условии что все нужные данные уже будут доступны на входе алгоритма.

Худший ответ:
Сервис массового развоза сотрудников после корпоративных пьянок :)

А вообще, лучше всего иметь ТОЛКОВОГО человека, который хорошо знает город )
Дешево и сердито. 

Про остальное это уже настолько специфическая задача, что похоже на то, что проще «что-то свое».
Вопрос: С каких макетов начать изучение адаптивной верстки?

Лучший ответ:
Адаптивная верстка это всего лишь по сути манипулирование media queries для преобразования размера и позиций элементов в зависимости от ширины экрана, плотности пикселей и т.п. Для изучения этой технологии подойдут любые макеты.
Фича в том, что может быть 2 варианта:
1. Дизайнер все продумал за вас и сам отрисовал макет сайта в нескольких популярных разрешениях (экран смартфона, экран планшета, полноразмерный десктоп). И вам нужно лишь грамотно сделать переход из одного состояния в другое.
2. Дизайнер нарисовал только десктоп версию и вам нужно адаптировать её под мобильные устройства. Тут работает фантазия и здравый смыл. Вот и всё.
Т.е. по сути отличие только в том, продумали за вас внешний вид или нет. В остальном же, верстка обоих типов макетов ничем не отличается.

Худший ответ:
Зайдите на сайт любого адаптивного фреймворка (bootstrap, zubr, skeleton и т. д.)и посмотрите пример сетки и ее поведения на сайте. Теперь вы наглядно увидели поведение блоков и их размеры на разных разрешениях. Делаете в фотошопе сетку направляющими и дизайните/верстаете.
Вопрос: Как улучшить теоретическую базу в программировании?

Лучший ответ:
Артем, приветствую!
Я далеко не гуру программирования, и тоже, кстати, программист-самоучка, однако мой жизненный опыт и здравый смысл в подобной ситуации продиктовал бы мне несколько иной подход к решению вопроса. 1. Самое очевидное, простое и правильное (при условии, что для вас этот вопрос все еще актуален и насущен) - связаться с этими людьми повторно и уточнить лично у них, о каких именно знаниях идет речь. Как калька: "Добрый день! Меня зовут Артем, тогда-то я был у вас на собеседовании, мне отказали, сославшись на нехватку теоретических знаний. Вы не могли бы мне помочь советом, каких именно знаний мне не хватает? Эта информация помогла бы мне их приобрести...." Ну как-то так...2. На будущее, при возникновении подобных ситуаций, задавайте такие вопросы прямо на собеседовании. Иначе потом снова будут эти "гадания на кофейной гуще". 3. По каким критериям вы собираетесь выбирать источник знаний, предложенный вам мнением людей, каждый из которых представляет собой уникальную смесь возраста, знаний и опыта, а, соответственно, свое видение ситуации? 4. Обучения для себя, обучение в ВУЗе, и обучение для конкретной работы - суть разные вещи. Вам нужно третье, насколько я понял. Для этого нужно четко понимать, что нужно работодателю. И вариантов хорошего результата собеседования есть два - вас взяли на работу; вас не взяли на работу, но вы знаете, что конкретно вам еще нужно сделать (чего вам не хватило), чтобы вас взяли.
Смоделируем ситуацию:
Вы пришли на собеседование. Вам отказали: "У вас недостаточно теоретических знаний". Вы сказали "Ок" и ушли. Задали вопрос на Тостере, вам предложили 15 вариантов ответа - надо учить такие-то алгоритмы, такие-то паттерны и прочее... Вы перезваниваете рекрутеру, задаете вопрос, а вам отвечают, что вам не хватает теоретических знаний о протоколах передачи данных... Ну к примеру... Итого.
Нужны знания для себя, для общего образования, так сказать - опытные ребята вам уже набросали инфо. 
Нужны знания под конкретную работу/работодателя - спрашивайте лично у них, что им нужно от вас.
Такова моя точка зрения. Удачи!
P. S. Немножко юмора, касательно знаний, заказчиков и инструментария для решения конкретной задачи.

Худший ответ:
Как минимум:Алгоритмы и структуры данныхУстройство операционных системОсновные сетевые протоколы
Вопрос: Как грамотно организовать шапку сайта?

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

Худший ответ:
А по-моему, Вам нужно сначала обратиться к дизайнеру, чтобы Вам нарисовали удачную шапку, а потом уже верстайте, как будет удобно.
Вопрос: Как добавить на сайт произношение английских слов и предложений (TTS)?

Лучший ответ:
Попробуйте использовать google.
Пример

Для этого посылаете GET-запрос в таком виде:
http://translate.google.com/translate_tts?ie=utf-8&tl=LANGUAGE&q=STRING
Где LANGUAGE — язык (например ru), а STRING — ваша фраза.

Худший ответ:
Была ещё js библиотека с tts (порт, скомпиленный Emscripten).
Вопрос: Есть ли система, которая помогает выявить источник взлома (помимо стандартных логов)?

Лучший ответ:
сверено с исходниками - все чисто
И в БД тоже? Я очень давно последний раз трогал MODx и на сколько помню там было в моде часть исходников хранить в БД.
Надеюсь вы проверяли исходники не вручную? (в смысле через diff в вашей VCS + в БД)Есть мысли вынести сайты на уровень выше корня, оставив только точку входа
Это первое, что нужно делать))Как вообще проводится поиск эксплойтов на сайте, если идей никаких нет?
0 - Если у вас в публичном каталоге не одна точка входа, а весь проект - вы уже себе в ногу выстрелили
1 - Ищутся CVE в багтрекере CMS
2 - Проверяются плагины, установленные в системе, они тоже могут содержать уязвимости
3 - Проверяется возможность загрузить и выполнить файл. Например на uploads (или как там каталог называется) права на запуск должны со всей силы отсутствовать
4 - Проверяются открытые порты сервера (если наружу торчит mysql, redis, memcached, ... - тогда сами себе злобный буратино)
5 - Ищутся все возможные точки с eval/include/require/include_once/require_once/exec/shell_exec/... для стороннего кода это потенциальная точка выполнения
6 - Ищутся возможные sql инъекции по коду cms/плагинов
7 - Ищутся всевозможные phpmyadmin и тому подобные сервисы, торчащие наружу
8 - Если в коде активно юзаются глобальные переменные - это потенциальная дыра в безопасности
9 - Если аргументы методов не проверяются - это тоже потенциальная дыра в безопасности
10 - Вам стоит убедиться и в том, что отсутствует утечка изнутри. На одном проекте случайно нашел залитый бывшими сотрудниками phpspy

Худший ответ:
Система такая есть - это Auditd. Но, кажется, тебе нужно выявить первопричину этих событий, index0h правильно расписал про поиск дыр. Сделать это можно как с помощью онлайн-сканеров безопасности вроде Pentest-tools, METASCAN, так и самому руками с помощью популярных утилит из того же Kali Linux. :)
Вопрос: Как назначить цену за виртальную услугу? (пользование веб-сервисом)

Лучший ответ:
0. Определите свои затраты на создание веб-сервиса. Если затрудняетесь, сформулируйте для себя сколько вы хотите на своём сервисе заработать. Обозначим как C.
1. Определитесь, за какое время вы хотите вернуть свои затраты (или заработать) на создание веб-сервиса — T.
2. Самое сложное — прикиньте примерно динамику (функцию) спроса на ваш веб-сервис с течением времени. Обозначим как D(t), где t — время, скажем, в днях. Или хотя бы сформулируйте в виде «не менее 100 тыс. запросов в год».
3. Цена может быть посчитана при помощи следующей формулы:
P = C / (Cумма D(t) от 0 до T)
Плюс можно накинуть маржу 10-20%, на своё усмотрение.
Ещё можно учесть инфляцию.

Hint №1: Расчёты проще всего делать в Экселе.
Hint №2: Поищите информацию на тему cash flow, NPV, приняв за доход платежи за пользование своим сервисом.

Худший ответ:
попробовать найти середину между тем сколько Ваш сервис экономит (или создает добавленной стоимости) и тем сколько ваши пользователи готовы платить за услугу.
Вопрос: На каком языке будет быстрее парсить?

Лучший ответ:
Да в принципе можно на любом - главно многопоточность использовать.

Худший ответ:
dlang.org
curl вам не потребуется есть code.dlang.org/packages/requests
От Go после C# вы точно исплюетесь. Это как на Basic перейти.
Вопрос: Где можно выполнять код Javascript кроме консоли браузера?

Лучший ответ:
Node.js → есть терминал.

Худший ответ:
v8 - движок JS от гугла, например. Только без DOM.
Вопрос: Отлов дисконнекта клиента на стороне сервера?

Лучший ответ:
Существует несколько ситуаций:

Если проблем в сети нет, то отвалившийся клиент «закроет» порт и сервер получит RST на свои пакеты, т.е. сервер «увидит» падение коннекта практически сразу.
Если существуют проблемы в сети, когда ответ от клиента не приходит, то есть параметры, которые отвечают за таймауты (выставляются через sysctl):
tcp_retries1
Целочисленная переменная tcp_retries1 определяет число неудачных попыток, после которого должна быть передана информация на сетевой уровень. В соответствии с RFC минимальное значение составляет 3 (по умолчанию установлено именно это значение), что соответствует периоду приблизительно от 3 секунд до 8 минут в зависимости от значения тайм-аута повторной передачи RTO (Retransmission time-out).

tcp_retries2
Целочисленная переменная tcp_retries2 определяет число неудачных попыток, после которого существующее соединение уничтожается. В соответствии с RFC 1122 тайм-аут должен быть больше 100 секунд. Такое значение слишком мало и по умолчания установлено число попыток 15, соответствующее тайм-ауту приблизительно от 13 до 30 минут в зависимости от RTO.


Все параметры описаны в документации к исходинкам ядра (Documentation/networking/ip-sysctl.txt)

Также эти параметры влияют на все TCP соединения данного сервера. Если нужно «тюнить» для конкретного своего приложения, то можно использовать параметр TCP_USER_TIMEOUT для tcp-сокета. Указывает время в миллисекундах ожидания подтверждения (ACK) данных. Параметр появился в 2.6.37.
Для более ранних ядер можно мониторить исходящую очередь на сокете, и если она не уменьшается какое-то время — значит что-то случилось.

Худший ответ:
На сколько я понимаю, на сервере произойдет ошибка «Connection reset by peer» (WSAECONNRESET в винде), почти моментально. 

P. S. это не ответ, но надеюсь поможет в его поисках.
Вопрос: Существуют ли современные учебники Java?

Лучший ответ:
www.epam.by/content/dam/epam/download/book_epam_by...
Бесплатная книга от Епама. Там как раз упражнения в конце каждой главы.
Курсы посмотрите на stepic.org

Худший ответ:
Java только расширяется.
"Thinking in Java" это основа, которая не теряет своей актуальности.
Вопрос: Кто объяснит этот феномен?

Лучший ответ:
учите матчасть: data-атрибуты сторятся НЕ в элементе.

Худший ответ:
Потому что атрибут data-{name} и функция data({name}) это разные вещи.
Если у элемента не указан element.data({name}, value), то jquery берет значение из атрибута.
Вопрос: Как можно применить анализ данных Хабра для моделирования поведения российского общества?

Лучший ответ:
Не получится.Хабр слишком узкая аудитория в масштабах даже нашей страны со своими специфическими чертами не характерными для общей массы.

Худший ответ:
Про нерепрезентативность выборки уже написали, это понятно, если только Вас не интересует «соотношение популярности C++ к php в Поволжье». А вообще, какие данные о посетителях Хабра вы собираетесь использовать для выявления культурных особенностей?
Для подобных изысканий больше подошла бы информация из какой-нибудь соцсети, там и контингент разношёрстнее, и данных о людях больше.
Вопрос: Следить за переменной, а не за scope?

Лучший ответ:
Не надо так делать. Найдите у вашего плеера нужное событие и подпишитесь на него

Худший ответ:
Конечно можно. Только перед этим надо задать эту переменную до и вне функции: newValue = "";
Вопрос: Как грамотно связать работу backend и frontend?

Лучший ответ:
Просто выберите концепцию:
1. Тонкий клиент. Все рисует сервер, клиент лишь берет на себя чисто визуальные штучки, вроде анимаций, переключений элементов и т.п.
2. Толстый клиент. Сервер передает клиенту только данные через Rest API. Желательно наличие на стороне клиента како-то фреймворка (эмбер, ангуляр и т.п.)
Имейте в виду, что толстый клиент или SPA не имеет смысла сам по себе, ну разве что вы уже их сотню сделали и вам ничего не стоит сделать еще один. Он имеет смысл тогда, когда ваш сервер одновременно работает на приложения для разных платформ (смартфоны, планшеты и десктоп). В таком случае проще сделать единый сервер и общий Rest API, через который разные клиенты будут получать данные.
Делать такое для одного сайта, по сути лишняя работа.

Худший ответ:
Symbi0t: Скорее классический сайт, чем полноценное SPA. Но именно клиентсайд хотелось бы сделать модульным, используя ES6. 
Вот это плохой подход. Инструменты нужны, чтобы решать проблему. А у вас подход - "Проблемы нужны, чтобы использовать инструменты".
Тем более получить поверхностные знания одно, а использовать - другое. С большой вероятностью проект будет настолько медленно развиваться, что вы забьете на дизморали. выберите одно, на нем сконцентрируйтесь, сделайте прототип рабочий, потом постепенно переписывая допиливая с использованием новых технологий (CommonJs/AMD, к примеру, в небольшом проекте вполне нормально заменить на анонимные самовызывающиеся функции). Поймите зачем вам вообще этот проект, если это что-то большее чем песочница для обучения, то сконцентрируйтесь на этом большем (контенте). 
Попробуйте реализовать какой-нибудь типовой архитектурный шаблон на нативном js, чтобы лучше видеть +/- фреймворков(библиотек), какие проблемы решают, да и вообще понимать, что там происходит.
Вопрос: Как настроить подсветку синтаксиса ES6 Node.js в Webstorm?

Лучший ответ:
Заходишь в settings-> Languages and Frameworks -> Node.js and NPM и буден указанно что он не активен нажимаешь enabled и все будет подсветка синтаксиса node

Худший ответ:
Нужно указать соответствующую версию языка
https://www.jetbrains.com/help/phpstorm/2016.1/jav...
Вопрос: Опишите тезисно, как сегодня должен быть сверстан хороший сайт?

Лучший ответ:
БЭМ. Независимые блоки.ПрепроцессорыПостпроцессорыСемантическая версткаЦеликом и полностью адаптивная версткаГрамотное использование тегов HTML5Оптимизация скорости загрузки страницМеньше бессмысленных JS-плагинов и библиотекОтносительная кроссбраузерностьДеление сайта на 2 версии - сжатую (без мусора и воды, ту, что реально сервер будет отдавать) и обычную  (для человеко-понятного редактирования).И еще: Тык

Худший ответ:
>>верстка на дивах, медиа-запросы для мобильных устройств
Сегодня как не пару лет назад это тоже актуально.
Вопрос: Как организовать максимально простую в плане кода, двухстороннюю связь между пятью arduino?

Лучший ответ:
Связь должна быть по проводам или по радио? Если по проводам, то MODBUS поверх RS-485. 
железо: https://www.sparkfun.com/products/12965
софт: www.freemodbus.org

Худший ответ:
посмотрите это
Вопрос: Самообучение фронт — энд на работе не связаной с програмированием?

Лучший ответ:
Для начала Вам нужна задача. Вот Вы где-то работаете, Ваша компания что-то там такое делает. Допустим, руководитель организации принял решение сделать редизайн сайта. Этап рисования пропустим, это работа дизайнера. Из требований 1)Шаблон для WP 2)Адаптивный 3)Использовать Twitter BootstrapПерво на перво Вам нужны основы HTML. По идеи основных тегов всего несколько: html | head | body | div | ul -> li | ol -> li | span. Это то, что используется наиболее часто. Их описание читайте на htmlbook.ruДалее основы CSS. Из всей массы css-свойств могу выделить background | margin | padding | float | position | display. Это опять же САМЫЕ основные. Их, как и в случае с HTML на много больше, просто лично я с перечисленным сталкиваюсь чаще всего.
Как все это можно изучить в комплексе? Вообще есть курс на Codeacademy, он прямо так и называется HTML && CSS. Можете также изучить курс по созданию сайтов все там же. Они оба на английском, не знаю барьер ли это для Вас.
Из инструментов... Погуглите на тему Sublime Text. С парой дополнений(на хабре статья была, в поиске по ключу "sublime text" в гугле она есть) для фронт-энда его вполне достаточно.
Как освоите курс, беритесь за верстку сайта Вашей компании. Не бросайтесь сразу верстать шаблон под WP, сделайте сначала просто один html-файл с подключенным к нему css/js-файлами. 
В процесс верстки сайта Вашей компании, кроме уже упомянутого мною сайта htmlbook.ru Вашим любыми ресурсом будет официальная документация по Bootstrap - это такой CSS-фреймворк, который поставляет Вам кучу готового кода для типовых задач. Официальная документация getbootstrap.com(англ). Русскую тоже видел, но сам юзаю английскую.
Чистый html готов? Отлично, вот теперь "рубите" его и раскидывайте по файлам шаблонов WP. А поможет Вам в этом официальная документация по шаблонам Wordpress(англ). И так, минуло от 2-3 дней до нескольких недель и Ваш первый шаблон готов. Я поздравляю Вас. Теперь сделайте еще штук 5 таких(не меньше) чтобы закрепить свои навыки. 
Далее, если у Вас все еще будет свободное время и желание развиваться в области front-end разработки, загуглите на тему LESS/SASS. Если вкратце - эти технологии позволяют быстрее собирать типовые шаблоны, верстать типовые макеты. НО это именно Вам на будущее, т.к. без практики в на чистом CSS лучше сюда сходу не лезть.
Вам могут здесь также рекомендовать взяться на JavaScript/JQuery... Пока на сделайте 5 шаблонов - лично я не рекомендую, очень сильно не рекомендую. У Вас либо могз взорвется от потока новой информации, либо в голове будет такая каша...

Худший ответ:
Все возможно, если есть желание и цель + интернет. Учишь по 4-6 часов в день HTML/CSS, далее принимайся за js. Ну а дальше все что понадобится фронт-энду в повседневной работе.
Это и препроцессоры, и таск-менеджеры и взаимодействие библиотек и фреймворков. Ну и напоследок, конечно же понадобится практика в конторе, без нее никак не закрепить и не обкатать выученный материал.
Вопрос: Когда расчитывать налоги на УСН (РФ) с партнёрок и контекстной рекламы?

Лучший ответ:
Когда я ещё занимался этим делом, юристы мне объяснили так: вашего аккаунта где-то там для наших служб не существует вообще, при попытке заплатить какие-то налоги вам, скорее всего, скажут, что непонятно, за что и почему вы платите. Платить надо только при поступлении денег на ваш р/с. Другой вопрос, что валютный контроль будет с вас просить документы, и это самая засада. Можете распечатать договор оферты и показать его вк вашего банка (если у вас переводы до 5k$, то справку на каждый перевод требовать не будут), если не прокатит — искать другой банк. Не прокатывать будет в 95% случаев, потому что печати от организации и подписи у вас нет, есть только распечатанная филькина грамота.
Вообще в России пока что очень плохо с законами в этом отношении. Не просто плохо, а отвратительно, такое чувство, что о том, что есть Интернет и там (внезапно!1) платят деньги, служащие слышат впервые. Получить деньги по договору оферты — это какой-то адский ад. Казалось бы, хочется как лучше, а фиг там.

Худший ответ:
Статья 346.17. Порядок признания доходов и расходов

1. В целях настоящей главы датой получения доходов признается день поступления денежных средств на счета в банках и (или) в кассу, получения иного имущества (работ, услуг) и (или) имущественных прав, а также погашения задолженности (оплаты) налогоплательщику иным способом (кассовый метод).

Статья 346.18. Налоговая база

3. Доходы и расходы, выраженные в иностранной валюте, учитываются в совокупности с доходами и расходами, выраженными в рублях. При этом доходы и расходы, выраженные в иностранной валюте, пересчитываются в рубли по официальному курсу Центрального банка Российской Федерации, установленному соответственно на дату получения доходов и (или) дату осуществления расходов.

Если мне память не изменяет, то Адсенс начисляет деньги доступные для вывода раз в месяц при достижении какой-то суммы. С этого момента у вас на них возникает имущественное право, а значит вы их должны зачислить себе в доходы этим днём по курсу ЦБ. То есть как только у вас появляется возможность вывода денег у вас возникает на них имущественное право. Возможности по договору нет — права нет — дохода нет.

В общем ориентируйтесь на сумму доступную для вывода — именно она отражает ваш реальный доход. Если она изменилась (в большую сторону) — у вас возник доход в виде имущественного права дельты этой суммы со вчерашним днём. Хуже всего с партнерками, которые начисляют каждый день, но имеют минимальную сумму для вывода. Пока у вас минималка не набралась — доходов у вас нет. Минималка (скажем 10$ за 10 дней) набралась — доход появился сразу 10$ по курсу ЦБ на этот день. В следующий день зачислили 1$ — ещё доход 1$ по курсу ЦБ на этот день. Вывели и опять 10 дней накапливается минималка — 10 дней без дохода.

Это если хотите чисто по закону, ни на йоту не нарушая его букву. А так можете считать по поступлению на р/с.
Вопрос: Как исправить ошибку в php Notice: Undefined variable: a?

Лучший ответ:
1. не объявленна переменная $a добавьте её до foreach: $a = ""
2. не объявленна переменная $type - вообще не понял откуда она у вас берётся.

Худший ответ:
1. не объявленна переменная $a добавьте её до foreach: $a = ""
2. не объявленна переменная $type - вообще не понял откуда она у вас берётся.
Вопрос: Как лучше будет сделать ЧПУ?

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

Худший ответ:
Основные разделы делаю на английском, а в каталоге - транслит.
Вопрос: Как связать th и td?

Лучший ответ:
потому что количество th внутри tr должно быть равно количеству td внутри своих tr. а у тебя в thead 7 штук th, а в tbody td не 7 штук внутри своих tr

Худший ответ:
сделайте несколько пустых , подгоните под все строки. Но я не уверен что это самый лучший способ