Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как вы ведете проекты с Git (Bitrix)?

Лучший ответ:
во-первых, никаких миграций
Как вариант, использовать – https://github.com/worksolutions/bitrix-reduce-mig...во-вторых, чтобы разрабатывать локально, нужно иметь копию всего кода самого битрикса
Мы PhpStorm'у скармливаем это (Languages&Frameworks => PHP => Include Path) – https://github.com/Prominado-ru/bxApiDocs . Проблему разных версий не решает, но пока проблем с этим не было)
Весь код проекта только в /local/

Худший ответ:
Не понимаю чем битрикс отличается от других.код фреймворка/картинки/кеш в gitignore, остальное пушим, мерджим.
Какие именно религиозные соображения не позволяют так сделать в случае с битрикс?
Собственно из опыта проблемы те же - как переносить изменения БД.
Я использовал два варианта:
1 Наивно-примитивный: просто дублируем руками все изменения БД, сделанные на тесте на боевом серваке и все. Добавили поле на тесте - добавляем сразу на боевом.
2 Версионные скрипты модификации БД - все изменения в структуре БД делаются только через API, специальными скриптами, которые внося изменения изменяют и номер версии БД в настройках. Текущий требуемый номер хранится в скриптах. На каждом хите он сличается с тем что есть в БД и если они не совпадают, запускаются скрипты миграции для БД, которые вносят необходимые изменения. Немножко гемора при разработке, но зато потом можно накатывать на совершенно голую инсталяцию сайт.
Вопрос: Умное дублирование строки с селектором в CSS (PhpStorm/WebStorm)?

Лучший ответ:
1. ставите курсор после скобки
2. Edit -> Macros -> Start Macro Recording
3. с клавиатуры приводите все в вид, как вы хотите (например, при помощи стрелок и ctrl+d ) и возвращаете курсор на место (стрелками).
4. сохраняете макрос Edit -> Macros -> Stop Macro Recording (или красная кнопка справа внизу) с каким-нибудь осмысленным названием.
5. находите в настройках Keymap раздел по фразе macro и назначаете клавишу (например ctrl+alt+d) на новый макрос.
6. пользуетесь
у меня получилось так
или вот так, с автовыделением продублированного селектора
для универсальности можно в начале вызывать кнопку end, чтобы сделать больше дублей последним макросом, выполнив меньше действий

Худший ответ:
Либо макросом как выше, либо используй scss, где подобная необходимость отпадает в принципе. .my {
  .selector1 {}
  .selector2 {}
}
Вопрос: Как убрать фильтр по цене в каталоге битрикс?

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

Худший ответ:
Как вариант можно через Ctrl нажать на выбранный тип цены в списке настроек. Мне помогло, и ползунок ушёл и инпуты.
Вопрос: Как обеспечить всех студентов виртуалками для разработки проекта на Django?

Лучший ответ:
По-моему было правильней сделать 17 контейнеров. LXC/OpenVZ. На любой KVM виртуалке поднимутся.
Вы же будете студентам рассказывать, как настроить окружение? Вот и пусть каждый учится на своём.

Худший ответ:
А чем Вас гит не устраивает? Я бы вообще поставил туда гитлаб и виртуалка была бы "продакшеном", у студентов локальная копия репозитория и свои ветки. Отправляют мёрдж реквесты, преподавателю удобно делать код ревью. Всё в плюсе)
Вопрос: Насколько трудоемкий курс от яндекса на куорсере?

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

Худший ответ:
Я сейчас прохожу (правда на Stepik-е) 3-ю часть.
У меня занимает часов 5 в неделю (я не учусь, работаю в IT - но в БД области).
Первую часть прошел за 2.5 недели (было легко), вторую - за месяц.
Первоначальные знания питона нужны, можно на том же степике и т.п.  пробежать за 2-3 недели курс по питону, например https://stepik.org/course/512/syllabus .
Вопрос: Какой собрать ПК для фронтендщика?

Лучший ответ:
Имхо, я бы расставил приоритеты так (разумеется, с учетом того, что вы фронтендщик, как и я), в порядке убывания важности:SSD - 128Гб минимуммонитор (а если бы позволял ваш бюджет, то лучше купить два или три монитора)удобная клавиатурапамять - 8Гб минимумпроцессор - достаточно i3

Худший ответ:
Процессор: AMD Ryzen 3 1200 3.1GHz/8MB , ОЗУ: Kingston DDR4-2400 16384MB PC4-19200 (Kit of 2x8) HyperX Fury Red, SSD: Kingston SSDNow A400 240GB 2.5" SATAIII TLC, HDD: Western Digital Blue 1TB, Мат.плата: MSI B350 PC Mate (sAM4, AMD B350, PCI-Ex16), блок питания: Corsair RM750i 750W (CP-9020082-EU.
Мат плата позволяет апгрейднуть оперативку до 64. У Ryzen'а обратная совместимость.
Вот тебе хороший ПК. Хотя я бы подумал о видеокарте.
Вопрос: Как организовать раздачу интернета в локальную сеть с USB модема Raspberry с пробросом портов?

Лучший ответ:
Во-первых, скорее всего ты упрёшься в провайдерский NAT, из-за которого не сможешь получить доступ снаружи.
Во-вторых, использовать малину в качестве маршрутизатора - это как бы хреновая затея.
В твоём случае проще будет купить самый дешманский роутер с USB-портом, зашить в него DD-WRT/OpenWRT/TomatoUSB/etc и мутить уже на нём.
Как минимум избежишь глюков из-за подключения сетевых интерфейсов по USB, как на малине.

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

Лучший ответ:
А я в молодости в темноте за компьютером сидел. Так и научился.

Худший ответ:
Стамина бесплатная и с юмором. Я по ней учился на первом курсе универа. Освоился довольно быстро. Лекции писал с речью и формулами (в Word)  тоже в слепую.
Вопрос: Как создать демона на си?

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

Худший ответ:
про fork  почитайте
Вопрос: Как правильно реализовать Unit Of Work?

Лучший ответ:
IEnumerable и IQueryable

Худший ответ:
То из базы идет полная выборка
GetAll
Вопрос: Какие дистрибутивы Linux вы посоветуете для практики NASM и C с низким порогом входа?

Лучший ответ:
Попробуйте xubuntu.
Облегченная ubuntu с легкой гарафоболочкой xfce4.

Худший ответ:
Установил Xubuntu и Manjaro Linux XFCE (only x64) пока на эмулятор VirtualBox. Лидирует второй вариант. У него есть ответвление, до сих пор поддерживающее x32, но проект в стадии beta.
Вопрос: При работе с 12 вольтами делается 2 питания?

Лучший ответ:
Есть линейные преобразователи, которые излишки в тепло сливают. Есть более продвинутые импульсные DC-DC преобразователи с высоким КПД, но они дороже и больше деталей требуют.

Худший ответ:
Конечно, что то типа КРЕН5 (жутко устаревшая, но продается везде). Или LD1117
Просто ставится стабилизатор питания нужной мощности.
Вопрос: Как добавить новые данные в таблицу?

Лучший ответ:
Метод setMap следует вызывать только в случае если вы только что создали экземпляр @Entity, и ещё не сохраняли его в БД. Если же сущность уже сохранена в БД, или считана из БД, то вместо интерфейса Map, объявленного в классе сущности, подставляется его реализация, связанная с функциями работы с БД. "Движок" JPA (обычно Hibernate) "видя", что на месте Map такая реализация, как бы "знает", что это связанные записи, которые уже сохранены в БД. Если же подменить целиком Map, то это "знание" теряется и начинается непредвиденное поведение.
Для модификации списка, хранимого в Map, следует вызывать методы Map.put и Map.remove:entity.getMap().put(...);
entity.getMap().remove(child);
Hibernate отследит эти обращения и при сохранении родительской сущности корректно добавит/удалит дочерние объекты.

Худший ответ:
Можно сделать так же, как создаются "новая папка" "новая папка(1)"... "новая папка(3)"
т.е. добавить проверку, есть ли такой ключ в map, если есть, изменить переданное значение key на key(n), снова проверить нет ли такого ключа, и если есть изменить n на 1, и снова проверить, и если нету, то записать key(2)
з.ы. если вы где-то собираетесь запоминать ключи, то можно из метода setMap сделать return и вернуть "реальный" ключ, тот что получился, после его переименование.
Вопрос: Виды GEOIP? Бесплатные решения?

Лучший ответ:
1. как вам удобнее
2. Maxmind, есть free решение которого достаточно для типовой системы. Скрипты конвертации в базы и другие форматы есть на GitHub

Худший ответ:
Удобнее всего сделать через быстрый API.BigDataCloud.net предаставляет эти данные уже в готовом виде.
Вопрос: Можно ли выбирать строки MySQL не по столбцу id, а именно по порядковому номеру?

Лучший ответ:
ALTER TABLE <имя таблицы> AUTO_INCREMENT=0
не пробовали?

Худший ответ:
Смотря что Вы подразумеваете под порядковым номером, если это какой-то столбец в Вашей таблице - можете выбирать по нему, в противном случае - выбирать нельзя т.к. внутри таблицы не существует никакого порядкового номера
Вопрос: Актуально email to sms?

Лучший ответ:
В 2007 было актульно

Худший ответ:
В рунете — нет. Я делал программу PrevedSMS, в которой было огромное количество шлюзов, программа пользовалась популярностью, но, начиная с 2006 года, сначала российские, а потом украинские операторы стали закрывать свои шлюзы email2sms.
Сейчас в рунете это не актуально.
Вопрос: Без $(document).ready работает, а с ним — нет. Почему?

Лучший ответ:
$(document).ready(function {
...
Не смущает отсутствие скобок после function?

Худший ответ:
а почему checked=""?
надо же просто писать checked без всяких "="
Вопрос: Как загружать и удалять одиночное изображение в YII2?

Лучший ответ:
Вот мое простое поведение для аплоада картинки, в событии after_delete происходит проверка наличия файла, и его удаление.https://github.com/mhthnz/yii2-helpful-behaviors/b...public function deleteImage($event)
    {   
        $imagePath = Yii::getAlias($this->_uploadPath . '/' . $this->_oldImage);
        if (is_file($imagePath)) {
            unlink($imagePath);
        }
    }

Худший ответ:
Загрузка и удаление изображения в Yii2Асинхронная загрузка и удаление изображения в Yii2
Вопрос: Как сделать панель задач для каждого монитора?

Лучший ответ:
https://www.windowscentral.com/how-connect-and-set...
пункт "How to show taskbar across multiple displays on Windows 10"

Худший ответ:
> Параметры панели задач
> > Несколько дисплеев
> > > Показать панель задач на всех дисплеях
> > > > Панель задач, в которой открыто окно
Вопрос: Какие книги стоит прочитать на тему «Компьютерные сети»?

Лучший ответ:
Вы бы поиском воспользовались - тут уже такие вопросы были
Олифер и Олифер Компютерные сети
Enjoy!

Худший ответ:
Про линукс, конечно, нельзя забыть. Например Linux Каманный справочник Скотта Гранермана.
Вопрос: Какие технологии использовать для создания простой страницы?

Лучший ответ:
* Изучите препроцессор для css типа less, scss. Особенно уделите внимание созданию миксинов. Это в упростит и ускорит работу со стилями.
* возьмите отдельно сетку reflex, fluidable, flexboxgrid, purecss (там не только сетка. Этакий мини bootstrap)
* что точно ускорит набор html, так это плагин для текстового редактора emmet (бывший zen coding).
Это нормальные технологии для повседневной вёрстки, а бутстрап вы бросьте, это бяка.

Худший ответ:
HTML, CSS, VanillaJS. Можно по экспериментировать с scss (с различными препроцессорами), gulp (с планировщиками), какими-нибудь шаблонизаторами - .jade к примеру
Вопрос: Как удаленно подключить принтер пользователю?

Лучший ответ:
Стоит попросить доменных админов настроить GPP для подключения принтеров пользователям.

Худший ответ:
Когда-то решал вопрос подобный. Использовал логон скрипт для подключения - отключения принтеров.  Перепишите под себя.spoiler'VBScript
'on error resume next

Const ForReading = 1, ForWriting = 2, ForAppending = 8
MegaPrinter = 0

Set WSHNetwork = WScript.CreateObject("WScript.Network")
Set colPrinters = WSHNetwork.EnumPrinterConnections
Set fso = CreateObject("Scripting.FileSystemObject")

If colPrinters.Count > 0 then
	For i = 0 To colPrinters.Count - 1 Step 2
		if instr(colPrinters(i+1), "TNIKIT28") > 0 then
'			msgbox colPrinters(i) & chr(9) & colPrinters(i+1)
			WSHNetwork.RemovePrinterConnection colPrinters(i+1), true, true
			writelog("remove printer \\TNIKIT28\CANONMF3")
		end if
'		if instr(colPrinters(i+1), "TNIKIT28") > 0 then
'			MegaPrinter = 1
'		end if
		' Поиск удаляемого принтера
		if instr(colPrinters(i+1), "BUH2") > 0 then
'			msgbox colPrinters(i) & chr(9) & colPrinters(i+1)
			WSHNetwork.RemovePrinterConnection colPrinters(i+1), true, true
			WSHNetwork.AddWindowsPrinterConnection "\\IRUDEN12\FX890"
			writelog("add printer \\IRUDEN12\FX890")
		end if
		if instr(colPrinters(i+1), "SECRETAR") > 0 then
'			msgbox colPrinters(i) & chr(9) & colPrinters(i+1)
			WSHNetwork.RemovePrinterConnection colPrinters(i+1), true, true
			WSHNetwork.AddWindowsPrinterConnection "\\TNIKIT28\CANONMF3"
			writelog("add printer \\TNIKIT28\CANONMF3")
		end if
	Next
	if MegaPrinter = 0 then
		WSHNetwork.AddWindowsPrinterConnection "\\TNIKIT28\ML1710"
		writelog("add printer \\TNIKIT28\ML1710")
	end if
End If

sub writelog (sLine)
    Set fList = fso.OpenTextFile("s:\b2user\temp\new_prn.log", ForAppending, True)
    fList.WriteLine sLine & " - " & now
    fList.Close
end sub
Вопрос: Самый быстрый алгоритм для поиска самого большого значения в неотсортированном массиве?

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

Худший ответ:
(Если уж так случилось!)
В 2 последовательных прохода.
1. По объему данных в каждом элементе массива (объём памяти, занимаемой данными).
2. По самим данным, в элементах массива с наибольшим объёмом занимаемой памяти.
Это будет значительно быстрее, чем сразу сравнивать данные прямым перебором.
Вообще, такие случаи, как появление или наличие неотсортированного массива, говорят о том, что архитектор программного решения/комплекса вообще не умеет работать с данными.
Вопрос: Как оптимизировать скорость свезей бд в laravel?

Лучший ответ:
Зачем придумывать велосипед жадная загрузкаCastomer::with('attributes')->get();

Худший ответ:
Такс, решение найдено, точнее проблема. 
Менее важно в данной проблеме, но факт: join работает быстрее чем жадная загрузка и т.д., не намного но быстрее. 
Проблема в другом, если берётся объект из модели, затем мутируется и отдаётся через return $object; //или 
return response()->json($object);
то именно return длится в моём случае на локалке 20, дополнительных, секунд, т.е. видать т.к. изначальный, знакомый объект "испорчен" доп. данными, при переводе данных в json происходит магия, стоимость n-Секунд. 
Решение: 
перевод объекта сразу в массив и затем манипуляция. $myArray = $customer->get()->toArray(); 
$myArray = $this->doStuff($myArray);
return $myArray;
Может быть решение очевидно, я таких граблей не ожидал.
Вопрос: Как находить и участвовать в проектах на гитхаб?

Лучший ответ:
Делаете работу
В процессе находите ошибку в стороннем коде
Находите ее источник
Пишите багрепорт и тесткей
Так как всем пофиг
Сами фиксите баг
Неделю стучитесь мейнтейнеру, чтоб он принял ваш пушреквест
Он вас посылает, тк ето не баг

Худший ответ:
Могу предложить интересный вариант для участия - https://github.com/madeas/box-shadows.css Если будут идеи, предлагайте, участвуйте в допиливании.
Вопрос: Как отформатировать жесткий диск с Алиэкспреcса в файловую систему отличную от оригинальной?

Лучший ответ:
Еще было бы интересно достать диск из USB кейса и почитать реальную маркировку. Могли перешить, чтоб виделся будто 2 ТБ
А так все верно советуют - через Acronis Disk Director форматнуть.

Худший ответ:
То, что диск прибыл с Али, не имеет никакого значения, он может быть откуда угодно - все они унифицированы и стандартизованы. Так сложилось исторически, и теперь все производители поддерживают один и тот же стандарт, иначе их продукция не нашла бы сбыта.
А что касаемо форматирования - раз возникли проблемы, значит, надо делать  его не через Винду. Перезапускаем комп с любого инструментально-восстановительного LiveDVD/LiveUSB, выбираем любую утилиту для работы с разделами HDD (парагоновский HDM, AOMEI Partition Assistant, или на крайняк Acronis DD), с её помощью удаляем всё, что на диске было до этого, и заново создаём один основной раздел. Там же форматируем как надо, дав заодно новому диску имя для отличия от прочих (скажем, "2терабайтник").
Вопрос: Как в illustrator устанавливать направляющие точно по координатам?

Лучший ответ:
Window->Transform
Направляющие можно выделить и задавать им размер, угол поворота и координаты точно так же, как любому объекту. Но убедись, что они разблокированы (ctrl+alt+;)

Худший ответ:
А если с shift-ом зажать, что бы выполнялась привязка к линейкам?
Вопрос: Как ускорить множество INSERT в Mysql?

Лучший ответ:
Можно запихнуть все это дело в транзакцию, так индексы пересчитаются 1 раз.
Правда я бы рекомендовал пакетную вставку в цыкле. В смысле набить запрос на N вставок одним insert, выполнить, далее еще раз наполнить и выполнить и т.д.

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

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

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

Лучший ответ:
Пока никто не видит, фен в ванной флиртует с мочалкой.

Худший ответ:
Предохранитель сработает только, если в воду кинуть ОБА провода. Но достаточно мощный предохран >25А  не сработает и так (электрики такие предохраны наоборот нахваливают, типа "не выбивает без причины").
Если же опустить в воду только фазу, то ... в таком случае могло бы спасти только УЗО, но в где вы их видели в обычных квартирах?
P.S.: Если вы уже прикидываете варианты, как устроить кому-то "несчастный случай", то спешу вас обломать: такие "несчастные случаи" ОЧЕНЬ легко расследуются.
Вопрос: Проблема c CORS запросом, как исправить?

Лучший ответ:
заголовки вида Access-Control-Allow-* - это заголовки ответа, их должен отправлять сервер в ответ на запрос
притом если запрос OPTIONS (браузер шлет сам перед основным запросом для проверки прав), то сервер должен так же ответить этими заголовками, но со статусом 204 и без тела

Худший ответ:
Для Flask

scope = Flask(__name__, static_url_path='')
# пришлось добавить эту штуку чтобы решить проблему с blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
CORS(scope)

в template.html

var x = []
        var y = []
        var url ='http://0.0.0.0:8228/scope/store_by_datetime?id_scope_dir=1&datetime_start=2020-10-17%2010:00&datetime_end=2020-10-17%2011:00'


        var req = new XMLHttpRequest();
        req.overrideMimeType("application/json");
        req.open('GET', url, true);
        req.onload  = function() {
            var jsonResponse = JSON.parse(req.responseText);
            // do something with jsonResponse
            console.log(jsonResponse)
            console.log(jsonResponse['result'].length)
            for(var k in jsonResponse['result']) {
                // console.log(k, jsonResponse['result'][k]);
                x.push(jsonResponse['result'][k]['date'])
                y.push(jsonResponse['result'][k]['value'])
                // console.log(x)
                var data = [
                    {
                        x: x,
                        y: y,
                        type: 'scatter'
                    }
                ];
                Plotly.newPlot('myDiv', data);
            }
        };
        req.send(null);
Вопрос: Как в yii2 сделать валидацию поля только для гостя?

Лучший ответ:
Проще всего это сделать с помощью сценариев, например:$model = new Feedback;
if ( --условие-- ) {
    $model->scenario = Feedback::SCENARIO_GUEST;
}
в моделе:[['username', 'password', 'email'], 'required', 'on' => self::SCENARIO_GUEST]
и т.д.

Худший ответ:
Проще всего это сделать с помощью сценариев, например:$model = new Feedback;
if ( --условие-- ) {
    $model->scenario = Feedback::SCENARIO_GUEST;
}
в моделе:[['username', 'password', 'email'], 'required', 'on' => self::SCENARIO_GUEST]
и т.д.
Вопрос: Как создать песок в unity3d?

Лучший ответ:
Ну чувак, ты в конструкторы переиграл видимо, раз уже не интересно подобным заниматься. Чего ты хочешь? Создать игру и заработать мильён? Создать игру и заработать почёт? Или создать игру и выразить свои мысли? Не бойся, неправильных ответов нет, но стоит определится с ответом, так как он действительно важен.
Вообще, тебе надо смотреть в сторону систем частиц. В юнити они действительно круты, практически всё можно сделать мышкой. Правда. Разве только это вряд ли будет быстро, но в случае чего можно запихнуть пару полноэкранных шейдеров. Собственно, вокфлоу примерно следующий: поверхность, на ней текстура песка, сверху карты нормалей. Можно процедурные, тогда будут классные следы. В любом случае, потребуется пачка скриптов, чтобы дул ветер - делаются парткилы, потом можно украсить полноэкранными шейдерами и будет красота. И всё это можно сделать за пару часов. Можно за пару дней. А можно за пару месяцев. Если ничего не знаешь и не понимаешь, будет сложно, но с опытом придёт и скорость.
Вообще, если этот пост не понравится, лучше бросать юнити и идти работать. Если геймдев никак не выходит из головы, то попробуй сэкономить и найми художника, композитера и кодера. Сдельно, конечно, хотя кого-то можно и на четверть ставки. Собственно, вопрос в том, как далеко хочешь зайти. В любом случае, деньги лишь инструмент, когда придёт понимание, возможно станет проще. Многие за определённую, весьма скромную сумму с удовольствием реализуют весьма годный эффект, могу даже дать пару контактов, однако одним песком сыт не будешь. Надо будет построить пару сцен, наполнить их контентом. Если песок можно сделать за пару часов, то игру (полноценную игру, а не прототип на хакатоне) вряд ли получится.
Сейчас очень популярны контентовые игры, то есть такие, в которых много наполнения, много исследования. Стратегии с вылизанным балансом и рогалики со случайными монстрами, вещами и способностями отходят на второй план. Инди упрощает себе рандомизацией, но никак не заменяет.
В общем, удачи в начинаниях.

Худший ответ:
Жаль тебя расстраивать, но подробных уроков тебе не дадут. Там все работает не на одном скрипте. Там очень много разных визуальных деталей, которые в совокупности дают атмосферы песчаной пустыни. Единственный ответ, который я могу тебе дать (тот, который ты просил не писать) - я бы сказал, что большая часть в Journey сделана шейдерами, еще очень часто используют партикли.
Вопрос: Как потратить 15 000 000 рублей на железо для сервера?

Лучший ответ:
Как потратить 15 000 000 рублей на железо для сервера?
Ищите фирму готовую освоить 15лямов.
Эта фирма на 1,5ляма поставит вам оборудования, и консультаций.
А остальные 13,5ляма освоит. 
Вопрос лишь в том какой процент освоенного пойдет вам в карман, а какой руководителю этой фирмы.
Ну это дело договорное.

Худший ответ:
Предлагаю транфсормировать вопрос в "Где взять 15кк на серверное железо?", выведя его из плоскости риторических.