Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Сколько жетских дисков потребуется?

Лучший ответ:
Хранилище чего именно? Я без проблем могу себе представить нагруженную СУБД на 10Тб (и немного за 20Тб сырой ёмкости накопителей), которая не взлетит на HDD вообще как раз из-за требований к времени доступа и все эти 20Тб набраны серверными SSD.
И могу себе ещё более легко представить хранилище на 10тб под бекапы, где производительность должна быть просто достаточной за разумное время положить новый бекап или прочитать нужный при аварии, для чего достаточно raid5 или 6, а может дешевле окажется и вовсе пара 10тб дисков, надо с прайсом уже смотреть.
Сначала задачи, ограничения применения, пределы дальнейшего расширения, бюджет на всю хранилку - и только потом сколько надо будет заказать дисков.
Для хранения 10тб информации необходим хотя бы один накопитель (задача может сказать, что диск резервировать не нужно, такое тоже бывает). Всё остальное выбирается под конкретику.

Худший ответ:
Рейд десять это четыре диска, по два в рейд 1 зеркало и поверх них рейд 0 страйп
Вообще стоит задуматься о том чтобы покупать винты побольше и сменить тип рейда
Вопрос: Как избавить Windows 7 от microsft шпионов и сделать его более анонимным?

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

Худший ответ:
Ну, это скажем так, известные, уже выясненные вещи. А на самом деле, кто куда и сколько отсылает из винды - знают только ее разработчики, да и то наверное не все. Я вот недавно столкнулся с тем, что два сайта, которые категорически рекомендуют блокировать - на них еще сайт для программеров, которые под MS пишут, а значит бан по IP отменяется...
Вопрос: Есть у кого-то негативный опыт работы через Upwork с Модульбанком?

Лучший ответ:
Сегодня вышла у них статья: https://delo.modulbank.ru/upwork_monitoring

Худший ответ:
Нормально все. 
Но подготовьтесь к вопросу более основательно. 
Вам НДС придется за upwork платить. 
Картой модуля можно пользоваться свободно, если у вас усн 6%. Но разумеется, иметь карту другого банка приятнее для личных целей.
UPD. Вчера вышел пост от МодульБанка по работе с UpWork - https://vk.com/modulbank?w=wall-80328935_19757
Вопрос: После установки Windows 8, ЖЕСТОКО стали тормозить 3д программы! Из-за чего?

Лучший ответ:
Винду от "зверей" в помойку, после установки нормального дистрибутива установить все драйвера к Вашему ноуту от Асуса.

Худший ответ:
встроенный жесткий диск всего на 27 гигов. Пришлось покупать жесткий диск на 500 гигов. Первый диск SSD со скрытой областью,  содержащей дистрибутив Windows c нужными драйверами, второй HDD (я думаю — не самый быстрый).500 гигов установить Винду 8 от Zver.Войдите в систему восстановления ноутбука. Установите систему оттуда. Обновитесь до Windows 10, в ней можно настраивать место расположения программ и пр.Настройка
Вопрос: Как скомпилировать код внутри скомпилированного кода?

Лучший ответ:
Писать компилятор с нуля не советую - это целая наука.
Погуглите, например, "opcodes list x86" - а потом решайте, надо ли оно вам.
Но вы можете подключить внешний компилятор к своему редактору. Благо многие работают через командную строку. Думаю, для вас не должно быть проблемой из своей программы запустить другую внешнюю консольную программу с параметрами.
А вообще сейчас идёт интересная мода - писать движок на быстром языке, типа C++, а пользователям давать возможность расширять функционал на другом встраиваемом языке, типа Lua, но может быть любой, хоть JS, хоть C#. Даже на C++ можно, но тогда удобнее вашу программу сделать библиотекой, а расширение пользователя будет основной программой. Конечно, в вашем конкретном случае эти модели могут быть неприменимы - это уже вам виднее.
Основное требование к встраиваемому языку - его простота в изучении и использовании. Ведь не все являются программистами, тем более на C++. Так что чем проще встраиваемый язык, тем шире у вас аудитория.

Худший ответ:
Готовые инструменты советую искать в инфраструктуре LLVM, это виртуальная машина, компиляторы и главное отличная поддержка огромного количества платформ.  И главное у вас есть возможность запускать эти приложения в контролируемой вами песочнице, если я верно потелепатствовал о ваших целях.
С точки зрения использования это сложнее чем подключить какой-нибудь интерпретируемый популярный язык типа lua, но зато высокая производительность и гибкость.
Вопрос: Как парсить выдачу Google без блокировки (PHP + cURL)?

Лучший ответ:
Есть сервис XMLRiver
~1500 запросов можно собрать за 10 минут.

Худший ответ:
Нет, и более того, прокси и тем более VPS/VDS может уже присутствовать в списке, чтобы капча чуть ли не на каждом втором запросе появлялась.
Вопрос: Как правильно разобрать stdClass?

Лучший ответ:
UPD: чутка поправил// Выводим все ХВС
foreach($array as $obj)
{    
    if(strpos($obj->Meter->ServiceName, 'ХВС') !== false){
         echo($obj->Meter->ServiceName . PHP_EOL);
    }
}


// Выводим все ГВС
foreach($array as $obj)
{    
    if(strpos($obj->Meter->ServiceName, 'ГВС') !== false){
         echo($obj->Meter->ServiceName . PHP_EOL);
    }
}UPD 2:  Код писал прямо в редакторе, попробуйте... возможны ошибки... но "ХВС" и "Г" может быть рандомным// Получаем наши ГВС (или что-то рандомное из нашего массива)
function getValues($array, $value)
{
    $values = []; 
    foreach($array as $obj)
    {    
        if(strpos($obj->Meter->ServiceName, $value) !== false){
             $values[] = $obj->Meter->ServiceName;
        }
    }
    return $values;
}

// Получаем наши ГВС, где $metrics наш массив в вопросе
print_r(getValues($metrics, 'ГВС'));
print_r(getValues($metrics, '12ХВС'));
print_r(getValues($metrics, 'Что-то'));

Худший ответ:
У тебя массив объектов а не объект.$array = [......];
foreach($array as $obj => $key) {
echo $obj->$key;
if(is_object($obj->$key))  {
...цикл или рекурсия
}

}
Вопрос: Можно ли хранить HDD вплотную друг к другу?

Лучший ответ:
Можно вполне. Укладывайте только диски аккуратно, чтобы не повредить платы электроники. 
Также у 2.5" дисков крышки могут быть весьма тонкими, с такими дисками надо обращаться аккуратно, избегая давления на крышку.
Если под рукой есть контейнеры, наподобие SeaShell (прозрачные "ракушки"), то их использование будет нелишним.

Худший ответ:
можно
как в магазине
Вопрос: Где найти интересные скрипты и ccs3 фишки?

Лучший ответ:
Кодпен

Худший ответ:
Где найти интересные скрипты и ccs3 фишки?
Все там же.
Вопрос: Как реализовать выбор нескольких элементов мышкой по типу как на PC?

Лучший ответ:
При mousedown запоминаете координаты курсора, при mousemove считаете область, которую выделил пользователь и узнаете, какие из объектов в неё попадают. А при mouseup перестаёте это считать.

Худший ответ:
Например как здесь описано.
Ключевые слова mousedown, mousemove.
Вопрос: Что нужно Junior android developer?

Лучший ответ:
Насколько я понимаю, с программированием не знакомы вовсе? Начните с чтения литературы:
1) forcoder.ru/java/head-first-java-1127
2) forcoder.ru/java/head-first-programmirovanie-dlya-...
3) В качестве практики, выберите приложение (несколько приложений), которое было бы интересно разработать, даже если аналогов вашей идеи будет полно, это ничего не меняет, нужна практика, много практики.
4) Читаем по WEB разработке forcoder.ru/web-other/head-first-servlets-and-jsp-1128
5) После получения практических навыков, чтобы закрепить знания и улучшить скилл разработки, напишите сервер на java и приложение для android, которое будет взаимодействовать с этим сервером, например, по технологии websocket.

Худший ответ:
как влиться в мир Android разработки правильнее ?
Правильней - найти адекватного работодателя который не будет ждать от джуна какие то проекты, а будет оценивать его базовые знания языка, платформы и аглоритмов. А уж если вы куда попадёте то дальше будет всё зависеть только от вас и вашего умения копать во все стороны на предоставленном фронте работ.
Вопрос: Хочу начать изучение какого нибудь php фрэймворма. Какой взять для начинающего?

Лучший ответ:
Laravel.
Современный. Активно развивается. Много материалов.

Худший ответ:
Если новичок, то либо Yii2, либо Laravel.
Потом посмотрите в сторону Symfony, а потом Zend. Ну хотя бы для общего развития. :)
Вопрос: Calc() погрешность расчёта?

Лучший ответ:
Почему?Потому что 1340 невозможно поровну поделить на 3.Как это можно осилить и победить?Если принципиально именно чтобы все они были одинаковы, уменьшите родительский контейнер на два пикселя или укажите ширину явно, без использования calc и центрируйте дивы.

Худший ответ:
"Потому что 1340 невозможно поровну поделить на 3" — да, но оказалось, всё же возможно.  Если имеющийся max-width делится и на чёт и на нечет, в margin или padding и пр., смотря, что использовалось, используем числа с плавающей точкой. Если же max-width делится лишь на чёт, тогда используем целые числа и всё начинает чудненько работать.
Вопрос: Сборка сайта для городского портала. Выбор cms?

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

Худший ответ:
Для таких целей пойдет любая cms. Я делал на Wordpress и DLE.
Вопрос: Программа для настройки производительности Windows, как найти?

Лучший ответ:
Производительность особенно поднять не получится.
Есть твикеры, которые разные плюшки включают или отключают. Ultimate Windows Tweaker, например.

Худший ответ:
Лучше не пользоваться такими программами, а настроить все вручную. 
Точнее для начала надо понять что настроить, а уже потом искать инструмент.
Чтобы ускорить производительность нужно поотключать фоновые службы  и программы из автозапуска не нужные. 
Если железо старое, то там можно много чего оптимизировать,  а если новое, то это особого прироста не даст.
Однако, можно отключить что-то не то, поэтому службы лучше не трогать.
Обычно на старом железе выносили SWAP на отдельный диск, сейчас когда памяти от 4 гигов в нем не всегда есть необходимость.
ЗЫ кстати винда, может тормозить и из-за какого-нибудь  тупорылого софта, типа скайпа, надо смотреть в диспетчере задач, кто сколько жрёт..
Вопрос: Как удалить пустой элемент многомерного массива?

Лучший ответ:
<?php
function walk_recursive_remove (array $array, callable $callback) { 
    foreach ($array as $k => $v) { 
        if (is_array($v)) { 
            $array[$k] = walk_recursive_remove($v, $callback); 
        } else { 
            if ($callback($v, $k)) { 
                unset($array[$k]); 
            } 
        } 
    } 
    return $array; 
}

$array = [[
    "" => "что то не нужное",
    "brand" => "Бренд",
    "code" => "Артикул",
    "price" => "цена",
    "quantity" => "кол-во",
    "name" => "нейм"
]];

$filtered = walk_recursive_remove($array, function ($value, $key) {
    return empty($value) || empty($key);
});

var_dump($filtered);

Худший ответ:
перебрать массив в цикле и если есть нужный ключ - удалить его
Вопрос: Как работает PPPoE у Ростелекома? Микротик вешает порты, почему сам не может получить инет?

Лучший ответ:
Вы "слышите звон, да не знаете, где он". С чего вы вообще решили, что там "шторм/петля"? На основании каких критериев?
1. Потому что цепочки INPUT и OUTPUT относятся только к самому устройству. Т. е. туда попадает трафик, источником или назначением которого является именно ваш роутер. Для транзитного трафика, который должен устройством маршрутизироваться, применяется цепочка FORWARD.
2. Если интернет не работает вообще, то нет смысла спрашивать, почему не работает DNS или HTTP или любой другой протокол.  У вас транспортная сеть не работает, поэтому никакие сервисы тоже не будут работать.
4. PPPoE интерфейс не просто идеологически настраивать под маскарадинг -- это вообще единственный способ получить интернет на клиентах :-) Потому что физический интерфейс ether1 будет использоваться только для PPP-трафика. Весь остальной трафик (т. н. "интернет") будет заворачиваться в интерфейс PPPoE.
Судя по тому, что на 10М линк работает -- имеет место проблема с кабелем. Либо плохо обжат, либо плохог воткнут на какой-то из сторон (коммутатор провайдера или ваш микротик), либо повреждён где-то по дороге от вас до коммутатора.
Коллеги правильно говорят -- настройте сначала всё на компе. Если на компе будет ОК, значит, провайдер и его сеть тут ни при чём.

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

Лучший ответ:
Можно попробовать так:$('#button-main').click(function(){
  $('#button-1').trigger("click");
  $('#button-2').trigger("click");
  $('#button-3').trigger("click");
});
Если не поможет, то разбираться с объектом event. Будет что-то примерно такое:var event = document.createEvent("MouseEvents");
        event.initEvent("click", true, true); 
        event.synthetic = true; 
        document.getElementById('button-1').dispatchEvent(event, true);

Худший ответ:
При загрузке страницы с таким кодом все кнопки прокликиваются отлично.<script type="text/javascript">
$(document).ready(function(){
  setTimeout(function(){
  $('#button-main').trigger('click');
  },2000);
  setTimeout(function(){
  $('#button-1').trigger('click');
  },3000);
  setTimeout(function(){
  $('#button-2').trigger('click');
  },4000);
  setTimeout(function(){
  $('#button-3').trigger('click');
  },5000);
 });
</script>
Вопрос: Как создать ОС на C ( Для практики )?

Лучший ответ:
На С будет тоже самое, что на асме, поскольку ваш подход некорректен.
Вдобавок, Си будет навязывать вам использование библиотек, а поскольку ОС своя, то библиотек не будет и придется вставлять кучу вставок на ассемблере.
Практически все современные ОС в своем загрузчике реализуют простейшую поддержку файловой системы, чтобы можно было уже грузить основное ядро. Правда активно используются прерывания BIOS.
А вообще, возьмите и разберите GRUB, исходники открыты - https://www.gnu.org/software/grub/grub-download.html

Худший ответ:
С этим сюда:
Как на C писать ядро для минимальной ОС?
Вопрос: Можно ли переделать программу на FoxPro 2.6 в современный вид?

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

Худший ответ:
Можно попробовать скомпилировать на [х]Harbour. Это такой проект, который уже на 100% совместим с CA Clipper 5.3, который имел некоторую совместимость с FoxBase. Смотря, какие фишки FoxPro использовались.  Скорее всего придется адаптировать исходники.
Может , действительно, переписать заново?
Вопрос: Есть ли разница в какой sata подключать жесткий диск?

Лучший ответ:
Есть ли разница в какой sata подключать жесткий диск?Нет.все бы хорошо но жесткий работает крайне медленноСудя по представленной вами информации HDD работает с нормальной скоростью.

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

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

Худший ответ:
на ozon можно найти не плохие книжки
Вопрос: Как вызвать команду из истории bash, начинающуюся с конкретной строки?

Лучший ответ:
CTRL-r нажимаете и начинаете вводить часть команды повторное нажатие перебирает найденные команды.
На консоли после нажатия CTRL-r будет примерно такое(reverse-i-search)`gre': grep 'item' gus.xml | wc -l

Худший ответ:
command -> CTRL+UP в bash
command -> UP в csh
Вопрос: Как вернуть из функции ответ return разного типа?

Лучший ответ:
Если генерируете некий List, то при не критической ошибке (файл пуст), стоит возвращать пустой List. Если ошибка критическая (файл не найден, невозможно открыть файл на чтение, невалидный аргумент, нулевой аргумент),  то нужно бросать исключение.private static List<SomeType> ReadFromFile(string path) {
    if (path == null) {
        throw new ArgumentNullException("path");
    }
    if (File.Exists(path)) {
        string file = File.ReadAllText(path);
        ...
    } else {
        throw new FileNotFoundException(path);
    }
}
Тогда в вызывающем коде можно делать проверки:private void  doTheBestBtn_Click(object sender, EventArgs e)
{
    try {
        var myList = ReadFromFile(txtInput.Text);
        ...
    }
    catch(ArgumentNullException ex) {
        MessageBox.Show("Необходимо указать путь к файлу!");
    }
    catch(FileNotFoundException ex) {
        MessageBox.Show("Указанный файл не найден!");
    }
}
PS File.ReadAllText сам бросает некоторые исключения, но допустим, что это самопальный тип.

Худший ответ:
Так не делают, но если хочется:private static object OpenFile(string file)
{
...
}
И затемvar res = OpenFile(file);
if (res.GetType() == typeof(string))
{
   var error = (string)res;
}UPD:
Как делается:
1. Определяете свой класс, для примераclass ErrorStatus
{
   public bool Status { get; private set; }
   public string ErrorMessage { get; private set; }

  public ErrorStatus(bool status, string errormessage)
  {
     Status = status;
     ErrorMessage = errormessage;
  }
}
2. И возращаете ужеprivate static ErrorStatus OpenFile(string file, out List<string> data)
{
...
}
Вопрос: Как реализовать поиск строки в строке с разными окончаниями на PHP?

Лучший ответ:
stumper.ru - для сложных поисков (если нужно)
А для простых, как этот - простой код.

Худший ответ:
sphinxsearch.com
lucene.apache.org
и пр.
Вопрос: Достаточно ли 8 гб оперативки в 2018 г.?

Лучший ответ:
ОС кеширует все что только может, пока есть свободная память, и освобождает когда она потребуется другим программам. 8 Гб вполне достаточно для бытовых потребностей.

Худший ответ:
Если посидеть, поглядеть кино по вайфайке, валяясь на диване - хватит и 4. Если работать - нет. Один только фокс горазд сожрать пару гигов, а ведь есть еще почта, офис и работать как-то надо :)
Вопрос: Есть ли способ задать пользовательские стили тегу audio через css?

Лучший ответ:
Список всех модификаторов :
audio::-webkit-media-controls-panel
audio::-webkit-media-controls-mute-button
audio::-webkit-media-controls-play-button
audio::-webkit-media-controls-timeline-container
audio::-webkit-media-controls-current-time-display
audio::-webkit-media-controls-time-remaining-display
audio::-webkit-media-controls-timeline
audio::-webkit-media-controls-volume-slider-container
audio::-webkit-media-controls-volume-slider
audio::-webkit-media-controls-seek-back-button
audio::-webkit-media-controls-seek-forward-button
audio::-webkit-media-controls-fullscreen-button
audio::-webkit-media-controls-rewind-button
audio::-webkit-media-controls-return-to-realtime-button
audio::-webkit-media-controls-toggle-closed-captions-button

Худший ответ:
Может, немного не по теме, но почему бы не использовать библиотеку Audio.js?
Все приводится к общему виду, так или иначе. А это - именно то, что Вам нужно.
P.S. Отображение плеера в тех же Chrome и Firefox слишком разнится, чтобы просто стилями пытаться приводить их к общему виду - мое мнение.
Вопрос: Как корректно удалить Ubuntu?

Лучший ответ:
В Ubuntu LiveCD должен быть Gparted.
Или в Windows Компьютер->Управление->Управление дисками

Худший ответ:
В общем, решил проблему так: 
Установил Акронис, объединил "свободное" место с Диском С.  Как говорится - невнимательность.
Спасибо Sanes  :)
Вопрос: Почему отображает content у :visited, когда я задаю только для :link?

Лучший ответ:
https://stackoverflow.com/questions/16180422/canno...
В общем для посещенных ссылок нельзя сделать контент.

Худший ответ:
Допустимо менять:color
background-color
border-color
outline-color
fill
stroke
column-rule-color
Пример "все в одном" (результат в разных браузерах может отличаться немного):
https://codepen.io/elijah_tr/pen/gXXLYB
Вопрос: При клике вне блока скрыть блок, но НЕ при выделении текста в inpute?

Лучший ответ:
Выспался и сам сделалjQuery(document).mouseup(function (e){ // событие клика по веб-документу
         
            var div = jQuery("#ajaxUserBox"); // тут указываем ID элемента
              
            if (!div.is(e.target) // если клик был не по нашему блоку
                && div.has(e.target).length === 0  // и не по его дочерним элементам
                && div.find('input:focus').length === 0 ) {  // и инпуты при этом не в фокусе
                    jQuery("#ajaxUserBox").addClass('hidden');
            }
    });

Худший ответ:
Как то так jsfiddle.net
Вопрос: PHP фрэймворк или CMS?

Лучший ответ:
А заказчик уже в курсе того, что вы скорее всего завалите проект? А как деньги возвращать собираетесь? или это бесплатная практика?

Худший ответ:
Я бы посоветовал вот что: попробовать несколько CMS, обращая внимание, в первую очередь, на пункты 4 и 5: хватает ли возможностей CMS для обеспечения нужных вам разграничений привилегий или нет. Если найдете подходящую, то дальше останется дописать недостающие модули, если нет, то придется писать свое.
Вопрос: Есть у кого хорошие на примете статьи по поводу файловых систем и хранение данных на низком уровне?

Лучший ответ:
Для нормального обзора, вполне достаточно википедии
https://ru.wikipedia.org/wiki/FAT
https://en.wikipedia.org/wiki/Design_of_the_FAT_fi...
https://en.wikipedia.org/wiki/File_Allocation_Table
Рекомендую сперва прочитать про FAT, чтобы в голове улеглись базовые понятия.
А уже потом почитать про NTFS и EXT - будет хорошо понятно как шла эволюция и как оно все работает.

Худший ответ:
А чё вчера Гугл и Википедия закрылись?
Вопрос: Где необходимо задать права на установку ПО для обычного пользователя домена?

Лучший ответ:
Почему не воспользоваться тихой установкой от админа? Или в политику куда-нибудь вписать, или вообще psexec и удаленный комп.

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

Лучший ответ:
Iispmanager 5 надо ставить в минимальной конфигурации и потом вдумчиво настраивать все серисы. И все нормально будет.

Худший ответ:
Easy Engine, а панели в помойку
Вопрос: Какой дистрибутив Linux можно поставить на ПК с SSD 4 Gb?

Лучший ответ:
Удаленный рабочий стол.
И все нужное ПО - на сервер.
Или разобрать и заменить SSD.

Худший ответ:
С флешки можно попробовать запустить Slax Linux. На флешку поставить офисные программы - проверить, будет работать или нет)
Вопрос: Как в си найти котангенс?

Лучший ответ:
Я слышал, что котангенс - это единица, делённая на тангенс. Или косинус, делённый на синус. И ещё будто бы есть формула приведения, выражающая котангенс через тангенс разности π/2 и исходного угла.
Ну а функции вычисления косинусов, синусов и тангенсов в стандартной библиотеке есть.

Худший ответ:
Да довольно просто, если спросить гугл показать школьный учебник по тригонометрии.
ctg N = cos N/sin N
ctg N = 1 / tg N (потому что ctg N * tg N = 1)
cos(), sin(), tg() - стандартные математические функции
Вопрос: Выдает ошибку при переборе .children. Что делать?

Лучший ответ:
Замените

i < children.length

на

i < children.length - 1

А ещё - разберитесь, чем присваивание отличается от проверки на равенство (nodeName = 'P', ну да, ну да).

Худший ответ:
Почему не работает?Потому что у последнего элемента по определению не может быть следующего соседа. И если у вас не бесконечная страница, у вас всегда есть последний элемент.Что делать?Добавить дополнительную проверку, что следующий элемент существует.