Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Что делать, если совпадут два случайных токена (Str::random Laravel или через нативный Php)?

Лучший ответ:
Добавьте уникальный префикс. Например microtime. 
Даже без префикса вероятность коллизии ничтожна. В крайнем случае получите исключение из базы или от валидатора.

Худший ответ:
Str::random действительно может выдавать неуникальные значения и в 60 символов. И добавка времени может не спасти (например при инсертах в сидинге/тестах). С Str::uuid() таких проблем не возникало.
Str::uuid()->toString()
Вопрос: Ошибка vk_api.exceptions.ApiError: [100] One of the parameters specified was missing or invalid: peer_id not integer. Как её решить?

Лучший ответ:
Метод photos.getMessagesUploadServer принимает параметр peer_id (integer)
a = vk.method("photos.getMessagesUploadServer", {"peer_id": айди_беседы_куда_отправляется_фотка})
#  Пример (peer_id): 2000000012

Худший ответ:
А где инициализация id и присваивание значения?
random_id должен быть уникальным.
Вопрос: Почему не удается изменить владельца файла в Centos?

Лучший ответ:
Думаю, /run/nginx.pid - это симлинк. Меняйте (или удаляйте) файл, куда он указывает

Худший ответ:
Наступал на этот бардак. В конфиге прописано одно, в юните системды другое. Консистентней надо как-то. Посмотрите, что у вас на системе /run или /var/run . Туда и надо починить файло.
Вопрос: Как подключить больше 100 устройств по WIFI?

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

Худший ответ:
https://www.youtube.com/watch?v=a27YCMFsob0
проще всего - еще один такой же, или помощнее
Вопрос: Как узнать c какого ip подключались к RDP?

Лучший ответ:
В security log посмотреть на windows 10.

Худший ответ:
журнал событий windows 10 раздел безопасность
еще можно найти в логах роутера в логах шлюза
Вопрос: Изменение приветствия терминала?

Лучший ответ:
Гуглите motd

Худший ответ:
посмотрите это видео где описано как делать подобные вещи
Вопрос: Selenium Max retries exceeded with url, как лечить?

Лучший ответ:
Установите большой таймаут загрузки страницы, а в блоке except, где отлавливаете исключение с driver.get повторно грузите страницу.

Худший ответ:
Посмотри количество процесов.HTTPConnectionPool(host='127.0.0.1', port=48457 - это про соединения между selenium webdriver и собственно браузером, от которого этот webdriver. ps ax | grep chrom
или ps ax | grep firef
Скорее всего ты не делаешь в конце (и при всяких исключениях) что-то типа driver.quit() и у тебя все процессы остаются висеть в памяти. Забивают её и исчерпывают лимит.
Проверь с этой точки зрения.
И я тебя умоляю: не работай от root! :-(
Вопрос: Нет входящих звонков, пока не сделаешь исходящий,?

Лучший ответ:
Проблема в NAT, правильно настраивайте роутер.

Худший ответ:
Решили, дело было в фаерволе модема.
Вопрос: Корректировка JS кода ( сложение, вычитание )?

Лучший ответ:
Раз используется jQuery почему бы сразу не отбирать нужные чекбоксы. И считать сумму их цен. При этом предыдущее значение цены никому уже не нужно, никаких вычитаний.function Check() {
  var price = 0;
  var PriceBoxes = $('[name=Price][type=checkbox]:checked');
  if (PriceBoxes.length) price = $.makeArray(PriceBoxes)
    .map(el => +el.value)
    .reduce((p,c) => p+c);
    
  $('.message').val(price);
}snippet

Худший ответ:
как-то непонятно, 
то есть если чекбокс checked, то результат = результат + 2990, а если !checked, то результат = результат - 2990 (почему так? должно же быть по логике результат = результат без изменений тогда)
или же хватит каждый раз при чеке обнулять результатfunction Check() {
  var Price = document.getElementsByName('Price');
  var ParsSumMessage = $('.message').val();
  rezultat = 0;

  // а теперь перебираем все чекбоксы и считаем заново
  for (var i = 0; i < Price.length; i++) {
   	if (Price[i].type === 'checkbox' && Price[i].checked) {
       	rezultat = Price[i].value;
       	ParsSum = Number(ParsSumMessage) + Number(rezultat);
  			$('.message').attr('value', ParsSum);
   	} 
  }
}
Вопрос: Как повторно просить ввести данные пока не введут верные?

Лучший ответ:
Не о том спрашиваете.
Любой цикл можно использовать:
for(;;) {...}
while(true) {...}
do {...} while(true)
Выходить из цикла с помощью break, когда ввод будет нормальный или изменить условие цикла.
На самом деле вечный цикл в данном случае не нужен. Лучше всего предусмотреть, например, 3 попытки ввода, и если не удачно - завершаемся. В этом случае for() подойдет лучше всего.
В целом в С/С++ циклы for и while имеют одинаковую функциональность, но for более приспособлен для счетчиков и т.п., т.к. в нем инициализация, условие и концовка цикла собраны в одной строке (более компактно, чем while). То же самое можно сделать и в while, но инициализацию и концовку придется написать отдельно.

Худший ответ:
#include<iostream>
using namespace std;

int main()
{
	long long int a;
	cout << "Введите пятизначное число: ";
	cin >> a;
	if(a >= 10000 && a <= 99999)
	{
		int f = a % 10;
		int e = (a / 10) % 10;
		int d = (a / 100) % 10;
		int c = (a / 1000) % 10;
		int b = (a / 10000) % 10;
		cout << b << endl;
		cout << c << endl;
		cout << d << endl;
		cout << e << endl;
		cout << f << endl;
	}
	else
	{


		do
		{
			cout << "ТЫ ЧЁ ДУРАК БЛЯТЬ?" << endl;
			cout << "Христом богом заклинаю, только пятизначные, плес. Пробуй: " << endl;

			cin >> a;
			if (a >= 10000 && a <= 99999)
			{

				int f = a % 10;
				int e = (a / 10) % 10;
				int d = (a / 100) % 10;
				int c = (a / 1000) % 10;
				int b = (a / 10000) % 10;
				cout << "Число номер 1: " << b << endl;
				cout << "Число номер 2: " << c << endl;
				cout << "Число номер 3: " << d << endl;
				cout << "Число номер 4: " << e << endl;
				cout << "Число номер 5: " << f << endl;
			}
			
		}
		

		while (a > 99999 || a < 10000);
	}
	
	
	

	return 0;
}
Вопрос: Как сделать систему распознавания лиц на android?

Лучший ответ:
1. Ищешь dlib для андроид, например вот этот https://github.com/tzutalin/dlib-android (dlib.net/imaging.html#get_frontal_face_detector )
2. Втыкаешь
3. ???
4. ПРОФИТ!!11
p.s.: ну или можно opencv воткнуть, там это тоже есть
Как понять шо это одна и та же рожа см тут https://github.com/ageitgey/face_recognition/blob/...

Худший ответ:
Можно как вариант в гугл набрать java facial recognition и поискать статьи.
https://medium.com/devnibbles/facial-recognition-w...
https://dzone.com/articles/java-home-made-face-rec...
https://www.freecodecamp.org/news/facial-recogniti...
Вопрос: Зачем же все таки нужен return?

Лучший ответ:
Оператор return, как и следует из его названия, возвращает из метода результат или управление.

P.S. Поразительно, что вы задаёте вопросы по Java с 2018-го года и до сих пор не освоили самые основы.

Худший ответ:
Если брать конкретно этот код, он не требует return, ведь он нарушает принцип единой ответственности. Метод daytime в вашем случае отвечает сразу за 2 действия - определение что выводим и его вывод. Правильно было бы иметь такой код:
static String daytime(int hour){
        if (hour >24 || hour < 0)
            throw new IllegalArgumentException("Bad argument");
        if(hour > 21 || hour < 6)
            return "Good night";
        else if(hour >= 15)
            return "Good evening";
        else if(hour >= 11)
            return "Good after noon";
        else
            return "Good morning";
    }

А вывод должен осуществляться в методе main

ps в жизни не писал на джаве, если там косяки в синстаксисе, поправьте
Вопрос: Как начать изучение ассемблера?

Лучший ответ:
Начать.

Худший ответ:
Можно пользоваться операционкой типа Колибри - она сама написана на ASM и там окружение разработчика для этого есть
Вопрос: Что именно надо знать в Java чтобы начать делать приложения на Android?

Лучший ответ:
Java SE + Android API. А дальше уже развиваться...

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

Лучший ответ:
https://psd.in.ua/category/templates/
https://www.figmacrush.com/figma-website-templates/
https://www.sketchappsources.com/all-free-sources.html
Есть ли какой-нибудь сайт, где можно брать бесплатные макеты Есть самый основной сайт, он должен стать для тебя просто самым посещаемым, любимым и родным - google.com. Освоишь его будешь востребованным и самостоятельным спецом.

Худший ответ:
Сайт с бесплатными макетами — howdyho.net
(Ещё много других есть)

Записывайся на всякие интенсивы, например, у GLO ACADEMY.

Посмотри Web Developer Blog, там тоже кое-что есть.
Вопрос: Mikrotik подменяет на туннельную ІР, как показивать лакальную ІР?

Лучший ответ:
Наймите сетевого инженера, он вам всё настроит

Худший ответ:
Решение простое, маскарад отключил с туннельного интерфейса.
Вопрос: Как ищут участников в opensource-проекты?

Лучший ответ:
Для того чтоб привлечь контрибуторв нужно для начала привлечь пользователей. Для этого:


Дайте внятное описание того какую задачу решает проект. Пока по описанию проекта видно как он создан, но не что делает. Желательно уложить это описание в одно-два предложения, которые идут сразу после заголовка проекта
Это UI проект? Где ссылка на демо?
Вас в комментариях уже спросили, почему он называется my_...? Сейчас проект выглядет как поделка для личного использования
Необходимы инструкции по установке. Желательно в виде npm install project_name, а не в виде нескольких абзацев текста
Прогоните описание хотя бы через grammarly. Сейчас там слишком много "русского английского"


Худший ответ:
Никак не ищут. Они сами приходят.

Вот я использовал один пакет с гитхаба, но в нем не хватало одной маленькой функции.
Я этот проект форкнул, добавил функцию и запуллреквестил автору. Автор принял пулреквест.

Я стал участником его проекта. Он меня искал? Нет.
Вопрос: Как сделать что бы скрипт работал всё время?

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

Худший ответ:
Вот пример для изучения, 2 функции выполняются не зависимо друг от друга. Для примера одна с бесконечным циклом, вторая с конечным, первая продолжит выполняться не зависимо от того что завершилась вторая.
from threading import Thread
from time import sleep


def print_some1(txt):
    while True:
        print(f'{print_some1.__name__} - {txt}')
        sleep(.5)


def print_some2(txt, n):
    while n < 10:
        n += 1
        print(f'{print_some2.__name__} - {txt}')
        sleep(.75)


if __name__ == '__main__':
    text = 'some text message'
    Thread(target=print_some1, args=(text,)).start()
    Thread(target=print_some2, args=(text, 1)).start()
Вопрос: Как восстановить данные?

Лучший ответ:
Этот вопрос всплывает на Тостере с завидной регулярностью - не реже раза в месяц. 
Вдобавок к упомянутым easeus, recuva я бы посоветовал R.Saver - исключительно простую и удобную утилиту восстановления данных. Ей достаточно указать целевой диск/раздел, и тот, на который надо сбросить найденные файлы. Никаких "анализов" и прочих излишеств. Структура вложений найденного (папки-подпапки-файлы) остаётся той же, как была на исходнике.
Мне R.Saver легко восстановил мой фотоархив, случайно удалённый "безвозвратно" (т.е не в Корзину, ввиду огромного объёма).

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

Лучший ответ:
Alex Alex, почти правильно ответил, проблема в том что у тебя один show на все формы, поэтом при клике на одну у тебя раскрываются все. Суть решения в том что ты сделаешь компонент формы и будешь циклом выводить его и тогда у каждой формы будет свой show и, соответственно, открываться будет нужная, а не все
<div v-for="cat in categories" :key="cat.id">
     <app-form :category="cat" /> //тут весь компонент у которого будет свой show
</div>
Можно конечно еще через event.target или ref, но как по мне это уже будет костыль, не самое элегантное решение

Худший ответ:
Свойство должны быть не глобальным, а частью категории
<button @click="cat.show = !cat.show">Добавить денег</button>

<div v-show="cat.show">
  // тут хочется вывести форму добавления денег
</div>
Вопрос: Что делать, если ServiceWorker застрял в браузерах клиентов?

Лучший ответ:
Добавил в заголовки ответов АПИ 
clear-site-data: storage
это сработает только если клиент обновит страницу
и кэш будет всегда сбрасываться при обновлении страницы (это затрагивает localstorage и потому будет разлогин)

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

Лучший ответ:
Самый надёжный вариант - позволять открывать вторую вкладку, при этом отключать все предыдущие. Например для каждой вкладки генерировать уникальный id (при запросе показа страницы) и позволять серверу работать только с последним окном.  Примерно так работает whatsapp web.

Худший ответ:
Это может работать, если вы можете идентифицировать пользователя и ваша страница активно общается с сервером по AJAX.
При открытии пользователю назначается токен, который сверяет сервер при каждом запросе.
При открытии второй вкладки будет сгенерирован другой токен, так что запросы с первой станут получать отлуп.

Иначе определить, закрыл ли пользователь предыдущую страницу перед открытием новой, вы на сервере никак не сможете.
Вопрос: Как подлючить к erlang проекту iconv?

Лучший ответ:
Вообще как лучше работать из erlang с разными кодировками? Нужно из utf-8 получить windows1251.unicode:characters_to_binary(Data, InEncoding, OutEncoding) -> Result

Худший ответ:
В итоге разобрался. Пример вызова (находимся в директории библиотеки):alekciy@alekciy-home:~/projects/iconv$ erl -pa ebin -pa deps/*/ebin -noshell -eval 'application:start(iconv), Data=iconv:convert("utf-8", "cp1251", binary_to_list(<<"ТЕСТ"/utf8>>)), file:write_file("cp1251.erl.txt", Data).' -s init stop
alekciy@alekciy-home:~/projects/iconv$ xxd -g 1 cp1251.erl.txt 
00000000: d2 c5 d1 d2                                      ....
Вопрос: Что будет если подключить MacBook к новой зарядке Apple 20 Вт USB-C?

Лучший ответ:
Макбук будет заряжаться пока не будет потребления больше чем может выдать БП.
Тогда макбук недостающую мощность будет покрывать с помощью АКБ.
В целом для серфинга в интернете будет достаточно
UPD. Сейчас ради интереса сделаю вам фото. К самому БП от iPhone не пробовал подключать, но ранее использовал вообще порт ПК с type-c, он мог выдавать максимум 15Вт)

Замеры на MBP 16
От родного БП, нагрузка 14Вт


От БП iPhone 11 pro 18Вт, нагрузка 14Вт


От БП iPhone 11 pro 18Вт, нагрузка примерно 40-50Вт (видео 4к), БП выдает только 16Вт (больше не хочет)


От родного БП, нагрузка 40-50Вт



Худший ответ:
Зарядится, но медленно и в выключенном режиме
Вопрос: В какой точке настраивать Firewall в сети?

Лучший ответ:
В какой точке настраивать Firewall в сети?1. Не имеет  особого смысла ибо железо дохлое, да и вряд ли там серьезные возможности по настройки файервола.2. Вот тут и надо, ибо весь трафик идет в сеть через него.3. Не совсем понятно для чего это нужно, но я исхожу из того, что по DHCP он отдает в качестве шлюза адрес микротика в который воткнут USB модем.4. Возможно и тут если вам нужно внутри своей сети ограничивать.где именно что нужно настроить в плане безопасности...Перед тем как что-нибудь настраивать в плане безопасности надо четко определиться что вы собираетесь защищать, и от каких опасностей.
А то безопасность понятие растяжимое...

Худший ответ:
На шлюзе фаерволл для защиты от внешних угроз
На свитчах - изоляция vlan как минимум
На корневом маршрутизаторе - фильтрация и маршрутизация vlan
Вопрос: Как присвоить в переменную значении элементов массива из foreach?

Лучший ответ:
//Если надо именно в цикле:
$array = array(1, 2, 3, 4);
$variable = '';
foreach($array as $value){
    $variable .= $value;
}

// Но я бы посоветовал 
$array = array(1, 2, 3, 4);
$variable = implode("", $array);

Худший ответ:
Ну у тебя в массиве это числа, а ты хочешь строчку.
тогда:$array = [1,2,3,4];
//  инициализируешь переменную
$variable = "";
foreach($array as $value){
// так как мы ранее инициализировали строку, то числа в массиве будут преобразовываться в строку
$variable .= $value;
}
// преобразуем нашу строку обратно в число
$variable = intval($variable);
Вопрос: Как подключиться к удаленному рабочему столу Ubuntu?

Лучший ответ:
Никак.
Еще придется ставить какой то из серверов для удаленного доступа, например x11vnc. И настраивать его, конечно.

Худший ответ:
Селениум разве работает только через графику?

После установки раб стола, посиавьте vnc сервер, ребутните сервак, запустите vnc сервер после перезагрузки
Ну и подключайтесь
Вопрос: Java или Scala — как второй язык для ML инженера?

Лучший ответ:
Spark удобнее использовать со Scala. А какой ML без Spark?

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

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

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

Лучший ответ:
Легко - никак

Худший ответ:
Читаешь много книг про работу процессора в защищенном режиме, про организацию памяти, про многозадачность. Потом читаешь много книг про работу с внешними устройствами, прерывания, DMA, шины, про организщацию работы всего этого паралельно и без затупов. Потом пытаешься написать ядро, которое будет хотя бы просто запускаться на голом железе и инициализировать минимально необходимый набор оборудования, чтобы сказать "Hello world!" в текстовом режиме.
Теперь у тебя есть минимально работающее ядро. Можешь пробовать начать обвешивать его функционалом, чтобы оно могло запускать другие процессы, распределять память между ними, транслировать физические адреса в виртуальные, обеспечивать конкурентный доступ к оборудованию через интерфейсы ядра. Корректно эти процессы запускать, завершать и следить, чтобы один не мог испортить память другого.
Ну вот и получилось что-то похожее на минимальную ОС.
Если тебе нужен свой дистрибутив типа Windows 10 Ultra Pro Vasya Pupkin MeG4][4x0r Edition, то можешь погуглить про системы развертывания ОС. Там в комплекте идут средства для подготовки дистрибутива с нужными настройками.
Вопрос: Какую высокотемпературную смазку выбрать для вентилятора ЦП?

Лучший ответ:
Моторное масло смазывает отлично, но оно очень жидкое (малая вязкость). Получше должно быть трансмиссионное масло, оно гуще.

Высокотемпературную - это вы загнули, при температуре больше 100 градусов ни один компьютер не будет работать больше нескольких минут без зависания. А ниже 100 градусов работают любые смазки (не высокотемпературные).

Худший ответ:
Согласен с мнением о замене. Если вентилятор обсох, то и новую смазку из него выдавит. Это только вопрос времени.
Вопрос: Что такое Andriod.PUA.DebugKey?

Лучший ответ:
У приложения есть такая вещь как подпись, подписи бывают разные, в т.ч. и тестовая подпись  "test-key". Некоторые антивирусники реагируют на изменение подписи при модификации (trustlook всегда находит Android.PUA.DebugKey-потенциально нежелательные приложения), хотя никакой угрозы нет.

Потенциально нежелательные приложения (PUA) — это категория программного обеспечения, которое может снижать производительность компьютера, неожиданно отображать рекламные объявления или, в худшем случае, устанавливать другое программное обеспечение, которое может быть более опасным или назойливым.
 Скаченные файлы можно  проверить  онлайн на сайте https://www.virustotal.com/gui/home/upload или установить  бесплатное приложение Virustotal Mobile
https://play.google.com/store/apps/details?id=com....

Virustotal, Trustlock и DebugKey.
 Итак, я скачал несколько приложений и решил проверить их с помощью VirusTotal. Единственный обнаруженный вирус - Android.PUA.DebugKey. Что, черт возьми, это за штука? Мол, он что-то украдет?
 Если это мод(модифицированное приложение) эвристика Trustlock обнаруживает модификацию-  мод был подписан другим ключом по сравнению с оригиналом.
эвристика — это механизм поиска подозрительных действий и условий, которые относятся антивирусом к вредоносным. Поэтому ложные срабатывания или, точнее, выявления подозрительных действий модификацированных программ очень часты.
 К примеру антивирус "Babable" пишет "PUP.HighConfidence" на всех приложениях, имеющих подпись "test-key". Т.е на любом моде с данной универсальной подписью.
Разработчики из "Babable" видимо просто очень пекутся о чужой безопасности и не хотят чтобы ставили переподписанные приложения с этой подписью.
 Но использовать модифицированный софт или нет - решать в любом случае вам.

Худший ответ:
https://en.m.wikipedia.org/wiki/Potentially_unwant...
.
PUP.High.Confidence. 
.
Потенциально нежелательная программа (PUP) или потенциально нежелательное приложение (PUA) - это программное обеспечение, которое пользователь может воспринимать как нежелательное. Он используется в качестве субъективного критерия маркировки продуктами безопасности и родительского контроля.
Некоторые нежелательные пакеты программного обеспечения устанавливают корневой сертификат на устройстве пользователя, что позволяет хакерам перехватывать личные данные, такие как банковские реквизиты, без предупреждения браузера о безопасности. Министерство внутренней безопасности США рекомендовало удалить небезопасный корневой сертификат, поскольку они делают компьютеры уязвимыми для серьезных кибератак [5.
Вопрос: По вашему опыту — поможет ли от выгорания смена работы?

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

Худший ответ:
Витамина D попейте.
Вопрос: По чём сейчас час времени мобильного разработчика на русскоязычном рынке (фриланс/фирмы)?

Лучший ответ:
Просто наблюдал ситуации когда новостное приложение (лента и еще пару страниц) на iOS за 4 млн. руб. заказывали, а также за 100 тыс. руб. проект на подобии фейсбука (я утрирую) делали на обе платформы.
Ваш племянник нарисует квадрат за конфетку, а Тема Лебедев нарисует его же за 100к. 
Мне кажется, что невозможно дать однозначный ответ. Смотрите по портфолио, скорости работы и аппетитам программистов. Легко у двух +- одинаковых разработчиков может отличаться рейт лишь по причине, что один живет в Мухосране, а второй в Москве и у них запросы разные.

Худший ответ:
Привет,
1. https://freelansim.ru/tasks?q=android%20ios
2. От вашего опыта, сложности проекта и его длительности
3. Да
4. Разделить большой проект на небольшие этапы и для каждого прикинуть стоимость: ваша ставка * время на этап * кол-во этапов * риски (переделки, недочеты) = стоимость проекта
5. Можно давать ссылки на проекты
5.1. Последний вопрос не понятен