Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как рассчитать стоимость вёрстки?

Лучший ответ:
1. Создаете таблицу в excel
2. Выписываете список страниц
3. Для каждой страницы пишете блоки на этой странице
4. Рядом с каждым блоком пишете свою оценку этого блока в часах
5. Суммируете часы по всем блокам
6. Умножаете это все на коэффициент 1,5-2 (чтобы учести недооценку, возможные неоплачиваемые правки и прочие риски)
7. Умножаете на свою часовую ставку

Худший ответ:
Такую таблицу каждый составляет сам для себя. С детальными формулами расчета обычно заморачиваются те, у кого есть поток клиентов на верстку. Самый простой вариант это поискать на всяких каворкингах, юду и т.п. профили верстальщиков и посмотреть их цены за час работы. Далее берем усредненную стоимость за час, смотрим на макет или макеты, прикидываем в уме сколько нам нужно примерно часов на выполнение этой работы и умножаем часы на сумму. Например, вы оценили ваш нормо-час в 700 р. Вам дают макет. Вы понимаете, что потратитье на его верстку 5 часов. Итого получается 5 * 700 р = 3500 р.
Вопрос: Странный код в Nav yii2, как можно сделать альтернативно?

Лучший ответ:
Там скорее всего что-то типа такого:$nav = [
    'items' => Yii::$app->user->isGuest ? '' : (
                    ['label' => 'Главная', 'url' => ['/site/index']] 
                ),
                Yii::$app->user->isGuest ? "" : (
                    ['label' => 'Сотрудники', 'url' => ['/site/about']]),
                
                Yii::$app->user->isGuest ? "" : (
                    ['label' => 'Лиды', 'url' => ['/site/contact']]),
                
                Yii::$app->user->isGuest ? "" : (
                    ['label' => 'Заказы', 'url' => ['/site/contact']]),
                
                Yii::$app->user->isGuest ? "" : (
                    ['label' => 'Настройки', 'url' => ['/site/contact']]),
];
Это то же самое что и:if (Yii::$app->user->isGuest) {
    $nav = [
        'items' => [],
    ];
} else {
    $nav = [
        'items' => [
            ['label' => 'Главная', 'url' => ['/site/index']] ,
            ['label' => 'Сотрудники', 'url' => ['/site/about']],
            ['label' => 'Лиды', 'url' => ['/site/contact']],
            ['label' => 'Заказы', 'url' => ['/site/contact']],
            ['label' => 'Настройки', 'url' => ['/site/contact']],
        ],
    ];
}
Какой-то извращенец писал код

Худший ответ:
У меня так:<?php
NavBar::begin([
    'brandLabel' => Yii::$app->name,
    'brandUrl' => Yii::$app->homeUrl,
    'options' => [
        'class' => 'navbar-default navbar-fixed-top',
    ],
]);
$menuItems = [
    ['label' => 'Обо мне', 'url' => ['/site/about']],
    ['label' => 'Контакты', 'url' => ['/site/contact']],
];
if (Yii::$app->user->isGuest) {
    $menuItems[] = ['label' => 'Регистрация', 'url' => ['/site/signup']];
    $menuItems[] = ['label' => 'Вход', 'url' => ['/site/login']];
} else {
    $menuItems[] = ['label' => 'Выйти (' . Yii::$app->user->identity->username . ')', 'url' => ['/site/logout'], 'linkOptions' => ['data-method' => 'post']];
}
echo Nav::widget([
    'options' => ['class' => 'navbar-nav navbar-right'],
    'items' => $menuItems,
]);
NavBar::end();
?>
Вопрос: Advanced Custom Fields — Как вывести значения поля?

Лучший ответ:
Артибут - это термин кастомной таксономии. Вам нужно получить его ID или объект WP_Term, уверен, это не будет проблемой. Имея ID/WP_Term, значение его поля получаете одним из способов:get_field( 'field_name', $taxonomy . '_' . $term_id );
get_field( 'field_name', 'term_' . $term_id ); // Доступно только в версии 5.5.0 и выше
get_field( 'field_name', $term_object );
Все это есть в доках.

Худший ответ:
если я вас понял вам нужно это: <?php the_field("razmertable") ?>
добавьте код в нужный шаблон
Вопрос: C# и Шилдт, как пройти книгу по своему первому ЯП и не взорвать мозг?

Лучший ответ:
Сам лет пять назад учился по Шилдту. Мужик все очень грамотно обьясняет, читать очень приятно.
Вот я и читал дома по вечерам, на природе возле озера даже брал книгу с собой к теплому морю.
Она дала теоретический базис и послужила хорошим фундаментом для дальнейшего изучения.
А дальше была книга WPF и вот тут пошла практика и пригодились все знания из Шилдта.
Я вам советую сейчас не сильно огорачться если "не хватает оперативки", просто дочитайте книгу до конца. Не надо запоминать наизусть, просто убедитесь что понимаете код, который написан в параграфе. Даже если вам кажется, что вы мало чего запомнили, в голове у вас основы останутся и всплывут в памяти когда это потребуется.
Ну а после Шилдта берите что нибудь из прикладных .Net технологий - напишите интернет сайт (прокачаете web навыки, что поможет найти работу) или десктопное приложение, можете попробовать простенькую игру (тут вы познакметесь с паттернами проектирования).
Вы только встали на длинный, интересный но трудный путь программиста. Немного терпения и у вас все получится!

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

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

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

Лучший ответ:
делайте

Худший ответ:
В чём проблема? Создаёте сервер на виртуалке (или железный), присваиваете роль RDP (или удалённых рабочих столов, не помню сейчас точно), пробрасываете порт на роутере и подключаетесь по внешнему IP.
Вопрос: Php или любой другой серверный язык для FrontEnd'ра. Каков необходимый минимум?

Лучший ответ:
Если Вы планируете заниматься только frontend, то вам достаточно знать устройство шаблонизаторов (в случае server-side рендеринга страниц) и протоколы взаимодействия с сервером в случае client-side рендеринга: rest, graphql.
Языки серверные учить не стоит, лучше прокачивайте навыки во фронтенде: используйте модные и хорошие инструменты, повышайте качество кода как по эффективности, так и codestyle. Познайте git, если ещё не.

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

Лучший ответ:
Если уж программы сильно упираются, то можно попробовать запускать их так:
start /max blabla.exe

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

Лучший ответ:
GUI  не нужен
Основная проблемма  линукса  в этом вопросе  в том, что профессионалу гуи не нужно и он его естественно себе не пишет. 
А новичкам, кому он нужен как воздух, эти не в состояние его написать. 
Из этого следует
1. гуи нормального не будет ( все  на себя берет веб интерфейс)
2. никто его писать не будет ибо тот кто может, не хочет.

Худший ответ:
GUI на сервере не нужен.
Вреден так как жрет немеряно ресурсов.
Как альтернатива GUI используется веб-интерфейс.Если вы собираетесь становиться квалифицированным разработчиком или админом - командная строка вам крайне нужна.
Вопрос: Как с помощью чистого JS узнать id родительского элемента?

Лучший ответ:
Как с помощью чистого JS узнать id родительского элемента? this.parentNode.id;что должно быть написано в функции removeItem() ?
А это уже смотря, что должна делать кнопка. Я не очень понял, что вам надо и какое всплытие имеется ввиду

Худший ответ:
Лучше вешать на обработчик, а в вашем случае так:function removeItem(el) {
console.log(el.parentNode.getAttribute('id') );
}<div id="main">
  <button onclick="removeItem(this)" class="main__btn" type="button" >Удалить</button>
</div>
Вопрос: Добавление в бд с PDO — ошибка 500, в чем проблема?

Лучший ответ:
А вы уверены, что поля в таблице называются именно `$name` и `$surname`?

Худший ответ:
ThunderCat, Спасибо!
1) В логах ошибок выдало следующее PHP Parse error:  syntax error, unexpected '[', expecting ')' in /var/www/ххх.ru/www/ххх.php on line 27
(инструкция которой пользовался чтобы посмотреть логи на своем сервере)
2) Оказалось что ошибка возникала из-за старой версии PHP, короткий синтаксис массивов был введен в более поздних версиях.
3) Простым решением стало замена в коде квадратных скобок []; на array();
Вопрос: Как вступить в команду разработчиков игр?

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

Худший ответ:
Путь 1(Мододелкин-Игроделкин):
1) Ищите игры для которых разрабатываются моды в большом количестве
2) Ищите форумы/группы в соц сетях/оф.сайты(модов) где разработчики вылаживают моды )))  Сохраняете их контакты.
3) Качаете моды, пытаетесь разобраться как они устроенны.
4) Стучитесь в личку, с кратким резюме и с просьбой взять под девелоперское крыло. На этом этапе желательно знать как создаются моды(В общих чертах)
Получите отказ не волнуйтесь и стучите дальше. Обычно если это любительский моддинг берут тех кто хоть как-то шарит(При условии что это не топовая команда, так как в топовые берут людей с опытом).
Получите опыт ищите команду получше.
Потом возможно войти в комерческий игрострой.
Путь 2:
1) Учите основы игростроя.
2) Рассылаете резюме в котноры которые занимаются игростроем
Вопрос: Вопрос по синтаксису Qt?

Лучший ответ:
QLabel *label = new QLabel("Привет");
Указателю присвается адресс нового объекта типа QLabel c текстом - "Привет"SomeClass a это переменная типа SomeClassSomeClass *p указатель на переменную типа SomeClass

Худший ответ:
Это вопрос по синтаксису с++ )QLabel *label = new QLabel("Привет");
label-> show();
давайте разберем построчно
1) QLabel("Привет"); - создали экзепмляр класса QLabel
2) new QLabel("Привет") - оператор new выделяет память в куче, размещает там объект QLabel("Привет")  и возвращает указатель на адрес в куче. По этому адресу расположен наш объект
3)  = new QLabel("Привет"); - оператор = выполняет присваивание(или инициализацию в зависимости от контекста). Присваивание(инициализация) чего ? Присваивание(инициализация) правого операнда. Присваивание(инициализация) чему? Присваивание(инициализация) левому операнду.
4) QLabel *label - объявили указатель, который может указывать на объекты класса QLabel.
5) QLabel *label = new QLabel("Привет"); -читаем с Права на лево создали объект, разместили его в куче, адрес объекта передали указателю типа QLabel который расположен слева от знака =Я так понимаю что [*label] это указатель на адрес объектов которых в дальнейшем будет много наверное
Это указатель на адресс ОБЪЕКТА, этот указатель в один момент времени указывает только на ОДИН объект. так как отсутствует ключевое слово const то, да он может указывать на разные объекты. Но в конкретный момент времени он указывает только на один объект или вникудаlabel-> show(); - обращаемся к объекту через УКАЗАТЕЛЬ на этот объектSomeClass a; //тут создается объект на основе класса
SomeClass *p = &a; //это указатель на адрес объекта чтобы через него // вызывать методы класса
1) SomeClass a; - объект создается на СТЕКЕ, не рекомендуется создавать тяжеловесные объекты на стеке, а легковесные можно.
2)SomeClass *p = &a - указатель указывает на объект на стеке все норм :)
Различие между SomeClass a; и new QLabel("Привет"); в том что объект а существует на стеке, а QLabel("Привет"); в куче
Вопрос: Как защитить приложение на yii2 от кражи при работе с фрилансерами?

Лучший ответ:
На 99% у Вас нет там ничего такого, что можно было бы продать или невозможно было бы написать заново за ту же цену.
Кроме контактов клиентов, которые лежат в базе данных, и доступ к которой Вы ограничиваете.

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

Лучший ответ:
Совет как предпринимателя - найдите лучше хорошего программиста (верстальщика), который адаптирует вам сайт, пусть и за дорого (но качественно).
Совет как web разработчика - сервисы, скрипты и прочая ерунда, не сделает вам то, что вы хотите, больше проблем создаст и потом придется переплачивать за работу, когда выскочат "все болячки" этих самых "скриптов".

Худший ответ:
Из быстрых и адекватных (относительно) конструкторов нет дешёвых.
Кроме того, 39$ примерно в 5-10 раз дешевле услуг верстальщика.
Но вы должны понимать, что если будете делать какие-то изменение на сайте, вам нужен будет программист. А программист не будет работать с кодом конструктора и придётся переписывать сайт, что будет сильно дороже.
Вопрос: Как убрать расстояние между таблицами в html?

Лучший ответ:
display:inline-block у .column
inline-block элементы имеют между собой стандартный пробел. Решается через font-size: 0 для родителя.

Худший ответ:
Спасиб) font-size:0; то что нужно)
Вопрос: Как подключить внешний php файл в laravel?

Лучший ответ:
Вообще либы и прочее можно подключать в composer.json секция files в autoload.
Но то что у вас лучше перенести в контроллер с нативными методами.

Худший ответ:
погуглите модели и MVC каркас
Вопрос: Как поднять nginx сервер?

Лучший ответ:
посмотри в сторону инструкций от Digital Ocean, толково пишут
https://www.digitalocean.com/community/tutorials/h...
я по ним научился управляться с Линуксом, в итоге вообще сел за Убунту в качестве основной системы :)

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

Лучший ответ:
Из внезапного - бейсик
VB6(VBA)->VB.Net

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

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

Худший ответ:
при переходе по ссылке отображается в коде местоположение в виде координатМогут узнать местоположение сервера провайдера, смотрящего в инет. Конкретно вас - нет. Если конечно вы не смотрите в интернет: у вас белый IP, вы не за NAT-ом и всё остальное.
Фишинговая страница - это страница похожа на оригинал как внешне, так и URL-ом. Например есть toster.ru, а фишинговая страница может иметь название t0ster.ru или что-то очень похожее визуально (вариант с toster.ru не самый удачный). Мошенник будет пытаться зарегистрировать максимально похожий домен. Цель - обмануть пользователеля и получить от него какие-то данные: пароль/логин, данные карты и т.д.
Вам подсовуют ссылку t0ster.ru - вы переходите, вас просят ввести пароль - вы вводите, думая, что, мол, время сессии истекло на сайте, а после переадресовуетесь на toster.ru как ни в чём не бывало или просто видите ошибку на фишиинговом сайте - это уже от фантазии мошенника зависит.Как распознать фишинговую ссылку и защититься от такого?Не ходить по левым ссылкам из лички и смотреть на адрес сайта.
Вопрос: Не работают микрофоны. Ни в какую. Что делать?

Лучший ответ:
Если версия windows 1803 то -«Параметры» -> «Конфиденциальность» -> «Микрофон» и активируем опцию «Разрешить приложениям использовать микрофон«.

Худший ответ:
В настройках "Звук" выберите устройство записи по-умолчанию.
В приложении "Настройка" найдите "Устранение неполадок", там есть "Запись звука".
Вопрос: Завис комп, reset не помогает, как перезагрузить?

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

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

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

Худший ответ:
Зум и поворот камеры сложно будет встроить в свой сайт, только через веб-интерфейс камеры. А занчит трафик напрямую будет, значит ляжет или канал или камера от кол-ва посетителей(теоретически). Тем более веб-морда всех камер адекватно открывается только в IE. Ставь широкоугольную, где нибудь 2,8мм, матрицу побольше, стандартная 1/3" смотри в сторону 1/2,9" или 1/2,7" и не советую 1/4", ночью картинка будет лучше да и угол больше больше при одном и том же фокусе.
Вопрос: Есть ли смысл разрабатывать приложения для Андроид на C#?

Лучший ответ:
если Angry Birds вас вдохновляет - Welcome!
ps тут ЯП особо не важен, важно что дальше будете с приложением делать
можно написать нереально крутую игрую а-ля "Quake 2077" на Go, C#, C++ и пользоваться будут только вы и ваши знакомые, а можно склонировать морской бой на javascript с гитхаба и загребать лопатами капусту...

Худший ответ:
C# активно развивается в данный момент, а .net фрэймворк стал кроссплатформенным, что сулит ему отличное будущее.
А Java развивается гораздо медленнее и погрязла в бюрократических согласованиях. Поэтому, все новые проекты под Android пишутся на Kotlin`е.
Суммируя мысли: Джаву учить бессмысленно. Имеет смысл учить Kotlin или C#. Оба языка имеют потенциал. Но только не Джава.
Вопрос: Куда поступать после 9 класса мобильному разработчику?

Лучший ответ:
Я уверен, что его скачают минимум 100к раз (не спрашивайте почему, но я это знаю 100%).
ну если такая уверенность зачем вас куда то поступать? открывайте свой стартап.

Худший ответ:
Если ты уже написал приложение, которое скачают 100 000 раз то смысла тратить время на образование нет.
Диплом важен для госслужбы и для получения рабочей визы.
И только.
Пойти работать, выбирай контору посерьезнее максимально. Где разработчики существеннее квалифицированнее тебя.
Вопрос: Как решить проблему фермеров и киллеров в реалистичных играх?

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

Худший ответ:
Особой проблемы тут не вижу. Давно все придумано за вас. Фермеры что делают ? выращивают еду. Нужно сделать потребность в этой еде. Так же ввести систему мотивации и ценности . Т.е экономику. и обьединение игроков. Если не будет фермеров, еда будет стоить кучу денег, то есть стать фермером для игрока выгоднее с точки зрения самореализации. Он будет диктовать свои условия и он будет очень охотным гостем в любых обьединениях игроков. Если будет много фермеров и мало или не будет разбойников. То игроку выгоднее стать им, так как куча фана, они легкая добыча. Это работает очень сбалансированно. Кланы разбойников берут под охрану фермеров, чтобы обеспечить самообеспечение. тут выгода всем + комуникация и фан, + это добавляет больше фана разбойникам. Если вырезать фермеров противника, клан противника умрет от голода, легкаф победа. Тут так же нужно защищать своих фермеров чтобы так не поступили с вами.
Вопрос: Нужен ли PHP JIT-компилятор?

Лучший ответ:
Когда в браузерах появился jit для js, для фронтенд разработчиков ничего не изменилось - все осталось под капотом браузера.
Для php разрабов тоже координально ничего не изменится.

Худший ответ:
Если сохранится простота в деплое, то однозначно Jit не помешает. Чуваки из Zend уже показали, что умеют в оптимизацию и производительность, поэтому с Jit, думаю, все будет хорошо.
Вопрос: Как вы устраивались на работу Android Junior?

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

Худший ответ:
Успел поработать с C++/Qt, C# проекты были. Курсы по Java и Unity3D. Решил попробовать на Android. Несколько своих программ написал по самоучителям. Изучил "хороший тон". К собеседованию готовился так же по сайтам и форумам. Читаю вопрос - не понимаю, изучаю. Месяц и первое собеседование. Затем впрягся и пахал что бы догнать остальных разработчиков.
Вопрос: Как решить проблему с устаревшей функцией php mysql_escape_string?

Лучший ответ:
Читаем документацию https://www.php.net/manual/ru/mysqli.real-escape-s... и узнаем много нового. Вам много еще переписывать)

Худший ответ:
Читаем документацию https://www.php.net/manual/ru/mysqli.real-escape-s... и узнаем много нового. Вам много еще переписывать)
Вопрос: Почему симлинк не перенаправляет на исполняемый файл (не выдавая ошибки)?

Лучший ответ:
Потому что пользователи windows должны страдать :(

Худший ответ:
1. Путь начинающийся с C: не должен работать в git-bash, так как в линуксе в пути не должно быть двоеточий.
2. По вашему вопросу - git-bash монтирует /usr/local/bin и другие папки, потому что в POSIC есть принятый стандарт для дерева каталогов, И git-bash его имитирует.
3. Ссылка не есть гуд. Работа с библиотеками в windows устроена не так, как в windows, поэтому делать ссылку на бинарник - означает что он будет запускаться не из своей директории, где есть еще и другие ресурсы, а из директории с ссылкой. Может быть ошибка.
4. Гораздо лучше добавить в PATH директорию с subline, например так:
PATH=$PATH:"e:/SublimeText3/"
и можно вызывать sublime
Вопрос: Как «правильные» пацаны задают размеры картинок?

Лучший ответ:
Если кратко, то комбинировать 1й и 3й.
Первый вариант не обязателен, но если заданы фиксированные размеры картинки, то браузер сразу место картинке "оставит" и контент не будет прыгать в момент окончательной загрузки картинки.
Второй вариант крайне не желателен, ибо вы потом в css фиг перенаследуете значения. Это нормально только в случаее - когда мы JSом динамически меняем размеры.
Третий вариант масхев, что-бы небыло такой фигни когда картинка вылазиет за границы блока.

Худший ответ:
чаще 1ый вариант после оптимизации графики и кратности 1024 x 512 px
Вопрос: Как задать через php отображение названия страницы в заголовке письма?

Лучший ответ:
Решение такое: 
в самой форме задать<input type="hidden" name="page" value="Главная страница">
а в php $pagetitle = "Новая заявка со страницы " . $_POST['page'];

Худший ответ:
Лично я бы реализовал так: по нажатию на кнопку отправки письма ajax'ом идёт запрос к php скрипту, и заодно передает document.title.