Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как выполнить код после завершения цикла?

Лучший ответ:
$arr = ['element_0', 'element_1', 'element_2', 'element_3'];
$result = []; // объявите его заранее массивом
$i = 1;

foreach($arr as $item) {
    if ($i++ > 4) break;
    array_push($result, $item); // и пихайте в массив очередное значение
}
echo implode(', ', $result);

Худший ответ:
Создать $result до цикла?
Вопрос: Что почитать и на чем потренироваться, не могу перейти от процедурного к ооп?

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

Худший ответ:
Сейчас ООП повсюду, лучше посмотреть на реализацию ООП в Python и Ruby... Можно еще Java захватить, там без объектов никуда вообще...
Вопрос: Какую использовать систему контроля версий для небольшой команды на Юнити?

Лучший ответ:
Битбакет - а точнее гит который там - может вполне сливать сцены, если они в текстовом формате. Переведите все ассеты в Force text - где то в юнити в настройках проекта есть опция - и сможете мержить.
Правда справедливости ради автоматического мержа сцен в гите не будет. Равно как и в любой другой системе контроля версий. 
Так еще для юнити PlasticSCM рекомендуют.

Худший ответ:
Битбакет - а точнее гит который там - может вполне сливать сцены, если они в текстовом формате. Переведите все ассеты в Force text - где то в юнити в настройках проекта есть опция - и сможете мержить.
Правда справедливости ради автоматического мержа сцен в гите не будет. Равно как и в любой другой системе контроля версий. 
Так еще для юнити PlasticSCM рекомендуют.
Вопрос: На второй точке доступа DHСP надо отключить?

Лучший ответ:
вифи точки роутеров одинаково, dhcp на втором отключить. Кабель включать не в wan порт второго роутера, а в обычный.

Худший ответ:
DHCP использует так называемый "широковещательный домен" - в пределах одной сети, один dhcp, за исключением частных случаев.
На некоторых роутерах можно использовать wan порт как lan, это зависит от прошивки и модели роутера.
Вопрос: Что я делаю не так в открытии порта?

Лучший ответ:
Подскажите что я упустил, или что я делал не так? Похоже вы пропустили главное.
Чтобы получить доступ к своему компьютеру из интернета нужно иметь белый IP адрес.
Если он есть, тогда можно пробрасывать порты с роутера, которому присвоен белый адрес, на компьютер.
Если его нет - что толку пробрасывать? Доступа все равно не будет.Похоже у вас банально нет белого(реального) IP адреса.
Вот и все.

Худший ответ:
Локальный адрес из нулей - это нормально и правильно. Главный вопрос - вы игрушку-то играть пробовали? Ваши друзья на какой адрес пытались стучаться?
Вопрос: Вопрос про миксы БЭМ?

Лучший ответ:
Блок - универсален и независим (в идеале). Он может располагаться в любом месте сайта без ущерба для собственного вида. Поэтому блокам не задаются стили, влияющие на позиционирование.
Элемент - неотъемлемая часть блока, не существующая вне его. Поэтому элементу можно задать позиционирование в пределах своего блока.
Микс решает проблему позиционирования блока. В данном случае нам нужно задать расположение блока поиска. Но блоку мы не можем задать width, left и т.п. Поэтому делаем этот же блок элементом другого (внешнего) блока и уже как элемент позиционируем.
Почему не модификатор? Потому чтоМодификаторами в БЭМ задают блокам внешний вид, состояние и поведение.
Позиционирование не относится ни к одному из этих вариантов.
Обо всем этом написано https://ru.bem.info/methodology/css/ в разделах "Модификаторы" и "Внешняя геометрия и позиционирование"
UPD
Пожалуй стоит дополнить, что все вышенаписанное, как должно быть понятно, относится именно к позиционированию. Если вы миксуете какие-то стили, которые "задают блокам внешний вид, состояние и поведение", то тут вполне возможно использование модификатора.

Худший ответ:
Скорее всего search-form более универсальный блок - который используется много где, поэтому для него нет смысла создавать кучу модификаторов. В данном случае search-form используется так сказать в "контексте" header'a, поэтому в этом случае логично сделать микс чтобы добавить какие-то стили которые нужны только для формы в header'e. Но если у вас search-form используется в 1-2 местах, тогда возможно имеет смысл просто добавить модификатор для этого блока. Но думайте наперед немного, возможно он где-то потом ещё понадобится.
Вопрос: Можно ли заказать письма из Thunderbird на мой email сервер c Postifix'ом?

Лучший ответ:
Подключаешься по IMAP к серверу и копируешь переносишь

Худший ответ:
котором у меня крутятся Postifix и Dovecot
крутится-значит есть есть домен и на впс все насроено, доступы по imap есть. 
Организовываете там учетку
В thunderbird'е настраиваете imap-учетку. 
Отсылаем/принимаем тестовые мейлы, ну а потом тупо из локальных папок перетягиваем в только что настроеную учетку, которая на впс. 
ничего сложного
Вопрос: Можно ли, все экспортировать в .png?

Лучший ответ:
Дело не в "тоне", а в том что для разных ситуаций, разный формат. Где-то JPG меньше весит, где-то SVG желательнее использовать

Худший ответ:
все - это что?
Вопрос: JSON.NET Как написать класс, где поле в json может иметь разный тип данных?

Лучший ответ:
Можно попробовать сделать data типом Object, но не факт, что рантайм сериализация это дело подхватит. И потом работать с ним в стиле if (data.GetType.IsArray) ... (ужас какой).
Но, как мне кажется, это плохой подход. Если приходят разные данные - нужно и сущности разные делать. Хотя, конечно, зависит от контекста задачи и т.д.

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

Лучший ответ:
нет,нельзя

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

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

Худший ответ:
Js работает асинхронно. В тот момент когда вы делаете return text;, запрос еще не ушел. Т.е. событие onreadystatechange еще не сработало. Здесь можно использовать Promise.// Оборачиваем код в функцию, которая вернет Promise.
let xmlHttpRequest = function() {
  return new Promise(function(resolve, reject) {
    var xhr = new XMLHttpRequest();
    xhr.open("POST", url, true);
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
    var text='empty';
    xhr.onreadystatechange = function() {
      if (this.readyState === 4) {
        if (this.status >= 200 && this.status < 400) {
          var r=JSON.parse(this.responseText);
          text=r.text[0];
          resolve(text); // Вызываем resolve и передаем text в качестве параметра
        } else {
          reject(new Error('Error')); // Обработка ошибки
      }
     }
    };
    xhr.send();
  });
};

xmlHttpRequest()
  .then(function(text){
  console.log(text);
}).catch(function(err){
  console.error(err);
});
Вопрос: Что нужно для написания чата на php и js?

Лучший ответ:
чат на php довольно таки плохая идея, реально конечно, простейший long polling вам в помощь, но все равно серьезную нагрузку не выдержит (не надо про вк и фб, чат там не на php)
может для реализации чата лучше посмотреть в строну той же centrifugo или чего то подобного
зы с php нормально дружит
зыы статья о ней

Худший ответ:
вам нужен redis, гуглите pub/sub.
Вопрос: Как грамотно создать сайт с 0?

Лучший ответ:
нужно ли мне подключать cms?как подключить базы данных, или это не обязательно?
Требуйте у учителя информатики техзадание:)

Худший ответ:
Задай себе такие вопросы:
1. Что за сайт я думаю сделать?
2. Будет ли он пополнятся дальше какой либо информацией?
3. Будет ли там система регистрации пользователей?
Больше упора на пункт №1
Если простой сайт с 5 страницами, без пополнения/дополнения какой либо информацией - сделать на html + css
Если сайт на котором будет пополнение контента каждый день или чуть реже, но постоянно пополняться - CMS.
Чем отличие от HTML + CSS и CMS?
Представь что у тебя на сайте будет 100 статей в день:
1. На HTML будет +100 файлов каждый день (отбрасываем всякие шаблонизаторы). То есть тебе надо будет каждый раз создавать файл, вносить изменения, сохранять, прописывать URL. Вообщем после 100 файлов ты сам задумаешься о CMS.
2. На CMS все будет храниться в базе данных. Сложновато с начало в понимании, потом нажатием 3-х кнопок будет создаваться твои страницы.
Вообщем подумай что за сайт планируется и отталкивайся.
Как и говорил:
1. Одноразовый сайт - HTML
2. Постоянно пополняемый/обновляемый - CMS
Вопрос: Подойдут ли эти процессоры?

Лучший ответ:
Подойдут двухядерные socket-p. С 4 ядрами, скорее всего, не только система охлаждения, но и питание не справится.
Лучше взять не топовый t9900, а t9800 с совсем чуть меньшей частотой, но вдвое дешевле у тех же китайцев. =)

Худший ответ:
Да, сокет называется PGA478
Вопрос: Как подключить .NET API в Visual C#?

Лучший ответ:
Если уж нугетом не может воспользоваться, то он точно не  VS c# программист.

Худший ответ:
На сайте на главной странице есть команда подключения пакета.
Или руками добавляете  через интерфейс.
Гуглите как подключить nuget пакет
Вопрос: Как установить/запустить программу tar.gz?

Лучший ответ:
хоть автору и не нужно уже, т.к. сдался при виде пингвина
оставлю это здесь для будущих вопрошателей
качаем Studio SDK JDK
предполагается что всё скачалось в /tmp$ cd ${HOME}
$ mkdir AndroidDev
$ cd AndroidDev/
$ unzip /tmp/android-studio-ide-143.2915827-linux.zip
$ tar zxf /tmp/android-sdk_r24.4.1-linux.tgz
$ tar zxf /tmp/jdk-8u101-linux-x64.tar.gz
$ touch var
добавляем в файл var три строки:export JAVA_HOME=${HOME}/AndroidDev/jdk1.8.0_101
export ANDROID_HOME=${HOME}/AndroidDev/android-sdk-linux
export PATH=${JAVA_HOME}/bin:${ANDROID_HOME}/tools:${HOME}/AndroidDev/android-studio/bin:${PATH}
применяем переменные в окружение и запуск Studio (с этого пункта все дальнейшие запуски)$ source var
$ studio.sh

Худший ответ:
Как для нуба попытаюсь объяснить: во-первых в Linux практически все ставится из под консоли (терминала), далее по приоритетности: Центр приложений Ubuntu, потом следует Менеджер пакетов Synaptic и только потом уже дичайшая виндовская установка, для которой существуют файлы с окончанием .deb
вот почитай тут немного: Компиляция и установка программ из исходниковУстановка программ
Вопрос: Как организовать свой проект для фронтенд?

Лучший ответ:
всё очень просто. Есть такая фишка - называется ксаффолдер. Я пользуюсь yeoman.io
В нём есть официальный генератор веб-приложения webapp . В пакете генератора gulp в который завёрнуто sass + bootstrap sass + bower в котором ещё куча всего завёрнуто + chai и mocha (тестировщики кода) + browsersync который заводится на 3001 порту. прочитай на сайте что я скинул. Способ для самых ленивых лентяев. Как с нуля:
Ставишь nodeJS, gulp bower глобально. 
Ставишь yo глобально (npm i yo -g)
Ставишь генератор глобально (npm i generator-webapp -g)
Создаёшь ручками папку проекта и пишешь одну команду (yo webapp)
Тебе инициализируется проект с полной архитектурой. Я ещё её по смакссу докручиваю допиливаю.
Заводишь сервак (команда gulp serve) и начинаешь неистово кодить

Худший ответ:
Начни с 
https://en.bem.info/methodology/filesystem/
Вопрос: Как в Agile обходят вопрос с тем, что задача была оценена очень амбициозно?

Лучший ответ:
1) Оценка как правило основывается на прежнем опыте. Задачи с новой технологией и новой базой не имеют достаточной основы для оценки. Желательно сначала создать исследовательскую задачу. Результатом этой задачи должна стать оценка. Исследовательскую задачу тоже не просто оценить, но ее можно ограничить. Например: "Дать оценку с той точностью, которую можно получить, потратив 16 часов на исследование." В любом случае - это будет точнее, чем оценка "навскидку". Если задачу будет оценивать 1 человек, а не покером, то для уточнения используйте оценку по 3 точкам.
2) 50 часов - это немного больше человеко/недели. У вас спринт - меньше недели? Если все же задача выходит за границы спринта, ее нужно дробить на части (желательно не больше 3-4 человеко/дней) и распределять эти новые задачи по следующим спринтам в общем порядке. Еще один вариант - подумать можно ли получить ту же бизнес-ценность другим, менее затратным путем.
3) В скраме вместо гантта используют диаграмму сгорания. Ее двигать не надо, нужно просто дорисовывать каждый день. Кстати, при использовании гантта, его вручную двигать не нужно, если есть регулярное обновление статусов от разработчиков (например в MS Project).

Худший ответ:
А как так получилось, что вы задачу ТАК неверно оценили? Единогласно сошлись на мнении, что требуется 10 часов (хотя по факту больше 50)? Значит, у вас проблемы с оценкой задач: либо у вас некомпетентные работники, которые не могут трезво оценить трудозатраты, либо вас постоянно отвлекают от работы, либо задача выбрана неверно. Задачи нужно делить на более мелкие, чтобы они уж точно в спринт укладывались.
Вопрос: Чем VPS отличается от VDS?

Лучший ответ:
Ничем, просто синонимы

Худший ответ:
Ничем.
Смотрите какую технологию виртуализации предлагают. И еще масса других параметров, которые вас должны волновать, кроме отличий VPS/VDS.
Вопрос: Откуда брать текстовый материал при создании дизайна?

Лучший ответ:
Дизайнер (а не просто "фотошопер"), если делает сайт, то обязан в финале предоставить макет сайта, включающего в себя все конечные материалы (фото, тексты и т.п.), которые будут на живом сайте в браузере. Времена "Lorem ipsum", "текст текст текст" и одной картинки-заглушки на весь макет давно прошли и сейчас логично и правильно использовать актуальный материал в макете.Где брать? Все просто: у клиента. На стадии обсуждения заказа запросить все необходимые материалы. Какие именно? Зависит только от задумки дизайнера. Даже по ходу работы запрашивать материалы у клиента — это нормально. Хорошо, когда есть старый сайт, например, или иные рекламные материалы откуда можно брать информацию. Если вдруг клиенту нечего прислать, то это хуже, но тоже не смертельно — можно брать материалы по теме в интернете, с сайтов аналогичной тематики. У скопированного есть владелец и лучше проследить, что клиент понимает (чтоб совесть была чиста, так сказать). Яндекс-рефераты тоже вариант (ссылка в одном из ответов), несколько раз пользовался в работе.
Фото-материалы можно искать в различных фото-банках (есть как платные, так и бесплатные). Платные можно выкупить после утверждения. Кстати, иногда отличная идея — взять и сфотографировать самому, если есть возможность.
Так что всё в руках дизайнера. Делается блок с достоинствами судостроительной компании — попросите клиента описать достоинства. Получив описание делайте дизайн. Задумали использовать определенное количество колонок или же какой-то оформительский приём, где важно строго определенное количество пунктов — обсудите с клиентом чтобы в финале достоинств было нужное количество. Это тоже нормальная практика.
Появилась идея классного заголовка — делайте. Не нравится формулировка — перепишите красиво. Много исходного текста — сократите. Мало — просите дополнить или дополните сами, если можете. Спрашивайте нужное и предлагайте идеи — это всё тоже нормальная практика для дизайнера.
Да, бывает, что клиент никак не желает помогать дизайнеру, но если он адекватен, настроен на результат и доверяет специалисту-дизайнеру, то никаких сложностей не будет. Во всяком случае, так происходит на моём опыте.
Как сказал однажды один арт-директор:Если дизайнер думает, что текст — это не его забота, зарплату ему поднимут еще не скоро.
Тут прозвучала фраза про "ты дизайнер или копирайтер". Статьи и все тексты для сайта дизайнер не обязан писать, но тексты — это часть работы дизайнера тоже.

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

Лучший ответ:
На сколько я помню суть git flow как раз и заключается в неком стандарте на именование веток и правил работы с ними. Т.е. там есть набор веток которые существуют всегда. Их видят все. А разработку фитч вы делайте в локальных ветках которые другим не видны. В общем если для работы с git используется flow, то нет смыла в "обновление списка веток". Потому что это список постоянен.
По теме: Удачная модель ветвления для Git

Худший ответ:
> Или к примеру я закрываю, а у коллеги эта ветка так и висит. 
естественно! гит же распределенная система контроля версий. ты у себя делаешь, при этом никому это состояние не передается. потом фиксируешь и отправляешь своё творчество на другой узел (origin), с которого остальные могут забрать эти изменения. естественно, отсутствие ветки на origin не приводит к удалению локальных бранчей у кого либо.
список бранчей на ориджине можно посмотреть так:git fetch origin; git branch -r
Вопрос: Как перенести домен в зоне ru к другому регистратору и сменить владельца, если связи с тем, кто регистрировал домен, уже нет?

Лучший ответ:
а что домен оплачен на 20 лет вперед?
заканчивается срок, можете выкупить

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

Лучший ответ:
У них куча вариаций одной и той же картинки: 
https://gnature.ru/tmp/paints/o-3708-4595.jpg
https://gnature.ru//tmp/paints/o-3708-4592.jpg
На самом деле достаточно хранить информацию о пикселях которые надо заменять. Человек выбирает цвет и затем просто через canvas на базе инфы, ставит то который нужно. При использовании https://developer.mozilla.org/ru/docs/Web/API/ImageData все будет работать очень быстро, если без imagedata, то будет тормозить.

Худший ответ:
У меня есть ощущуние (судя по консоли) что изменения не на клиентской части происходят, скорее всего post'ом уходят параметры на сервер а там с помощию подобной библиотеки отдается изображение или его часть.
P.S. да и по коду похоже)function reloadPaintData(){
		
		var data = getPaintData();
		data.setpaint = 1;
		
		$.ajax({
			'url' : location.pathname,
			'data' : data,
			'type' : 'POST',
			'dataType' : 'json',
			'beforeSend' : function() {AddLoader($('.paint__zone'))},
			'success' : function(data) {
				
				DeleteLoader();
		
				if(data.img != 'error') {
					
					var img = $('.js-paint-img').attr('src', data.img);
					$('.paint__zoom').attr('href', data.img);
				
				}
				
			},
			'complete' : DeleteLoader
		})
		
	}
Вопрос: Адаптивный, отзывчивый правильно я понимаю?

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

Худший ответ:
На опера мини потестить не забудьте.
Вопрос: Какие посоветуете трекеры времени своей работы?

Лучший ответ:
задача — считать, сколько времени я провожу за работойManicTime - мощный стэндалон тайм-трекер. Очень гибкий в настройках, сидит в трее, есть хоткеи, разные типы таймеров. Платный.RescueTime - только в автоматическом режиме логирует, в каких приложениях/сайтах проводите время, и выводит подробную статистику. Бесплатного аккаунта хвататет за глаза.Toggl — отдельный софт в трее, расширение под хром, приложение на андроид. Интеграция с кучей сервисов (трело, асана и т.д.). Хоткеи тоже есть. Бесплатного тарифа вполне достаточно.TimeDoctor — платный. Есть отдельный софт в трее, хоткеи. Интеграция с кучей сервисов.Pomello — простой помидоро-трекер, интеграция с трелло. Хоткеи есть, в трее не сидит, простенький бар поверх всех оконPomoDoneApp — простой помидоро-трекер, интеграция с трелло. Хоткеи есть, в трее показывает таймер с обратным отсчетом времени.tmetric.com — простой трекер, интеграция с трелло, есть десктопное приложение, помидорок нет. Хоткеи есть, сидит в трееВот еще статья на хабре от 2015 г. https://habrahabr.ru/company/xakep/blog/254119/
доп инфа тут: Чем удобнее всего учитавать время работы над конкретной задачей?
Я использую связку Trello+Toggl+Pomello

Худший ответ:
Использую TimeCamp, и да в комментариях указывали https://wakatime.com  - статистика по использованию ide/редактора - удобно.
Вопрос: Как подсчитать разницу дней между двумя датами?

Лучший ответ:
Сама формула много проще. Если у вас данные в столбце A,B:=A1-B1
Если не нужны "минусы", тогда добавьте модуль числа.=ABS(A1-B1)
А вот объединение придется убрать. При объединенной ячейке в расчеты попадают только данные из самой верхней левой ячейки, остальные Excel считает равным нулю, что приведет к ошибочному результату вычислений.
Или писать 2 разных формулы — если у вас всегда только 2 строчки объединены, и уже эти 2 одновременно размножать "вниз".
Для ячейки С1=ABS(A1-B1)
Для ячейки С2=ABS(A1-B2)

Худший ответ:
считаете по условию:
если(дата2<дата1;дата1-дата2;дата2-дата1)
По поводу объединенных ячеек - это кране плохо в расчетных столбцах. (у меня всегда появляется желание оторвать автору таких шаблонов расчетных листов руки)
Если везде в таблице к каждому значению Дата1 имеется по 2 значения Дата2 то напишите для первой даты Дата1 формулу 2 раза и потом копируйте блоком из 2-х ячеек
Вопрос: Как достучаться к локальной сети за pptp?

Лучший ответ:
Нужно:
а) Поменять подсеть адресов для подключенных по pptp, например 192.168.10.0/24.
б) Добавить маршрут в подсеть удаленного офиса на вашей железке. В Linux'ах это выглядит так:ip ro add 192.168.0.0/24 dev $IFACE
где $IFACE - интерфейс pptp.

Худший ответ:
Скорее всего у вас получается две разные L2 сети. И наличие IP из одной и той же сети "по маске" результата не даст.
Вопрос: О изучении PHP и Фреймворках?

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

Худший ответ:
Можно глянуть курсы Альберта Степанцева. Субъективно: лекции классные, практические задания весьма кривые. Большой плюс лекций в том, что он сразу уделяет внимание архитектуре. 
В идеале, после прохождения курса должен остаться самописный мини-фреймворк. Практического применения у него, естественно, никакого. Но для общего понимания то, что нужно.
Вопрос: Ставка на upwork?

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

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