Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Постоянно возникают непредвиденные баги и слёты функционала, как бороться?

Лучший ответ:
1. Возможно у Вас какая то кривая общая архитектура. 
Почитайте про SOLID.
2. В целом - если Вы вносите изменения в какую то функцию - простейший поиск по файлам в текстовом редакторе говорит Вам где эта функция используется.
3. Сложная бизнес-логика отличная от "получили запрос, сходили в базу, отдали данные в красивой обертке" должна быть обязательно документирована в wiki + в коде.
Вопрос "параметр должен учитываться в многих местах, мы не помним где" - это вопрос грамотно написанного ТЗ кстати. Предполагается что ТЗ пишет человек, который имеет общее понимание проекта.
4. Именно юнит тесты на мой взгляд нужны в 1% случаев. Использование моков не дает реальной пользы на живом проекте, поскольку причина краша может быть где угодно.
5. Мы используем codeception.com Acceptance testing в сочетании с определенным дампом базы который загружается перед тестами. 
На дамп базы накатываются все миграции (используем phinx.org ) и далее проверяется все, вплоть до вывода конкретных значений контента.
Честно предупреждаю, что время на разработку тестов превышает время на внедрение функционала примерно в 1.5-2 раза.

Худший ответ:
>> Т.е если их начать внедрять, то все эти вышеперечисленные проблемы отпадут - честно, эти проблемы не отпадут, а останутся. Другое дело что вы своевременно сможете увидеть регрессию и починить ее еще до того как продукт попадет к заказчику (в идеале до того как попадет в отдел QA =) )
>> Знаю сейчас часто стали использовать юнит-тесты, автотесты, но насколько они оправданы? - оправданы. и еще как. Юнит тесты оправданы для программистов, чтобы быть уверенным что то что они написали (классы, методы, и т.д. и т.п.) не отвалиться после введения чего-то нового, или рефакторинга. Следующий уровень это "автотесты", совсем другой уровень автоматизации, который затрагивает несколько модулей одновременно, тоже хорошо позволяет находить проблемы, регрессии во время и решать их соответственно.
Вопрос: CMS для социальной сети с поддержкой Ajax

Лучший ответ:
Из последних интересных проектов — Oxwall(http://demo.oxwall.org/) и Vanillaforums(там куча модулей, и интересно можно обыграть), ну SE и PHPFox тту уже назвали. Еще есть вариант BuddyPress и Drupal с модулями.

Сам бы такое делал на Python/Django

Худший ответ:
Из соц. CMS знаю только InstantCMS. Сделано в России. Сама по себе она бесплатная, платные кое-какие модули и компоненты к ней.
Из минусов: Мне не понравилась её документация. Совсем не понравилась. И она жрёт много памяти, хотя работает достаточно резво.
Ajax в ней есть (на основе jquery), но как активно используется — не скажу.
prooflink: www.instantcms.ru/
Вопрос: Return в конструкторе PHP?

Лучший ответ:
Вам нужен __toStringclass GetInfo
{

    public $name;

    function __construct($name)
    {
        $this->name = strtoupper($name);
    }

    function __toString()
    {
        return $this->name;
    }

}

$a = new GetInfo('Ivan');

// ...

Худший ответ:
Конструктор не возвращает значений.
Сигнатура:void __construct ([ mixed $args = "" [, $... ]] )
Читаем php.net/manual/ru/language.oop5.decon.php
Вопрос: Как растить ПМа и тимлида в коллективе?

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

Худший ответ:
На роль тимлида подойдет любой человек, но максимально быстро из него вырастет тимлид если:
1) Он профессионально грамотный, решительный
2) Он не имеет тесных дружеских связей с коллективом, а если и имеет, то не слишком в них нуждается.

Вручаете ему книгу «Как пасти котов» ([Reinvoter_Dzh.Hank]_Kak_pasti_kotov._Nastavlenie_(BookFi.org).fb2)
И не забывайте контролировать процесс, помогать — первый шаг из девелопера в тимлидеры сложный.
Вопрос: Как авторизоваться в Active Directory C# winforms?

Лучший ответ:
System.DirectoryServices.AccountManagement - более подходящего для вашей задачи набора классов не найти. Статья с автопереводом, поэтому если совсем ничего не понятно, берите этот неймспейс и вбиваете в гугл. Советую как можно быстрее начать исправлять потребность в русскоязычных источниках.

Худший ответ:
System.DirectoryServices.AccountManagement - более подходящего для вашей задачи набора классов не найти. Статья с автопереводом, поэтому если совсем ничего не понятно, берите этот неймспейс и вбиваете в гугл. Советую как можно быстрее начать исправлять потребность в русскоязычных источниках.
Вопрос: Ищу сравнение JAVA VS C#

Лучший ответ:
> 1) Эффективность и объемы использования оперативной памяти

Не знаю что сказать даже, для подобных платформ вопрос, ИМХО, лишён смысла. И по отдельности охарактеризовать «эффективность и объёмы использования памяти» практически невозможно. В винде, полагаю, у .NET с этим лучше, чем у Java.

> 2) Размеры бинарников

Без учёта среды? Сравнимые.

Плюс тем более, раз это desktop-приложение. Моё мнение: .net — выбор хороший, если винда онли. Остальное я бы на Java писал. Например, swt.

Худший ответ:
Имхо, если стоит вопрос кроссплатформенности, то выбор очевиден.
Вопрос: Стоит ли началь изучение PhoneGap/Cordova?

Лучший ответ:
Посмотрите в сторону Xamarin

Худший ответ:
скорость работы html приложений постоянно будет расти
это перспективно
Вопрос: Как записать файл на флешку, на которой установлен Linux?

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

Худший ответ:
Для Total Commander есть плагин.Выполните поиск по "ext4"
Вопрос: Можно ли получить доступ с клиентского JS к DB на сервере?

Лучший ответ:
1) Выполнив ajax запрос к серверу, который в свою очередь проксирует запрос к БД (адекватно);
2) Web SQL (для любителей экстрима)

Худший ответ:
Единственный разумный вариант - через AJAX-запрос к скрипту на сервере
Вопрос: Что лучше для лендинга wordpress или joomla?

Лучший ответ:
Ни wordpress, ни  joomla не годятся для лендинга.
Профессионалы для этого используют исключительно Drupal.
Эта система заточена под лендинги.

Худший ответ:
Решил выбрать WordPress. Если кому надо будет то рекомендую плагин "Custom Field Suite". В нем для каждого шаблона страницы можно добавлять поля. В плагине достаточно типов полей и возможность группировке.
Например вывести "наши преимущества" в котором есть несколько записей с картинками, реализовать с этим плагином не вопрос...
Вопрос: Что делать, если перегружено меню?

Лучший ответ:
Если действительно нельзя удалять пункты или уменьшать их, то сделайте в два/три ряда. Как Вам идейка? Делается простым CSS, если не умеете, обратитесь к специалистам, если не хотите тратить деньги, потратьте время и найдите плагин =)

Худший ответ:
А как вы его хотите поменять, если нельзя убирать пункты и нельзя менять внешний вид?
Запихивать пункты в подпункты позволяют стандартные средства WP, а если нужно что-то ещё, то сначала надо придумать, что именно вы хотите.
Вопрос: Можно ли использовать пиратский 3ds max для upwork?

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

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

Лучший ответ:
Технические этапы:
0. Оформление ТЗ и утверждение его исполнителем и заказчиком.
1. Создание и утверждение заказчиком макета сайта.
2. Рисование дизайна и утверждение заказчиком.
* Photoshop
3. Верстка html страниц.
* HTML
* CSS
* JS
4. Проектирование и реализация ядра системы.
* Серверный ЯП: php, js (nodejs/iojs), golang, ruby, python,...
* СУБД: mysql, postgresql, mongodb,...
* Все остальное, зависящее от конкретного проекта (хотя и ЯП и БД тоже зависят)) ).
5. Интеграция верстки.
6. Тестирование и багофикс.
7. Deploy на production сервер.
8. Поддержка сайта: фикс багов, мелкие хотелки и т.д.Для чего такие вещи в вебе, как python (имеется в виду django) или rubby(ror)? mySQL что за зверь такой?
Ну, вы хотя бы в wikipedia прочитали что это и зачем.Так же (понимаю, что весьма популярный вопрос, но все же) что посоветуете изучить, чтобы сделать какой никакой но свой работающий сайт. Интересует именно разработка с нуля, без использования готовых решений.
вопрос в стиле "как сделать программу")) Самый простой сайт: index.html:Hello World
Без знаний HTML ну хотя бы на начальном уровне - в web-разработке делать нечего.Ещё интересует выбор IDE для веб разработки...
Для frontend одна из лучших IDE сейчас - WebStorm. Для backend - все зависит от языка, на котором будет вестись разработка.

Худший ответ:
html,css это конечно хорошо но чтоб сайт был более гибким и имел функцию авторизации и персонализации, мог выдавать страницы именно для определенного человека, определенные страницы то вам нужен PHP и mySQL
PHP это язык программирования, mySQL это базы данных где будут храниться пароли логины и прочее (что нельзя держать просто на диске так как любой может получить доступ по прямой ссылке)
Вопрос: Каким онлайн-сервисом воспользоваться для для создания минимальной ИТ-инфраструктуры маленькой компании?

Лучший ответ:
@nikiandr И причем здесь создание IT-инфраструктуры?
Вам обычного хостинга с минимальным тарифом хватит выше крыши. Могу порекомендовать этих немцев, сам держу у них свои дедики и очень доволен качеством сервиса. Вам хватит самого дешевого тарифа SSD хостинга, зарегить домен тоже можно, как и у любого другого хостера. Почту лучше используйте не хостера(хотя там есть почтовый клиент и возможность клепать ящики), а подключите к своему домену yandex или gmail, это бесплатно и оч удобно для Вас, подключить можно за 5 минут.Может быть, существуют сервисы, в которых такой объем услуг будет предоставляться бесплатно при платной регистрации и поддержке домена?Существуют и сервисы бесплатные и хостинги, но Вам же не под ГС, а вроде как под сайт компании? Лучше заплатить пару баксов в месяц и быть спокойным за сайт. С бесплатными хостингами/сервисами Вам никто ничего не обязан  и там можно получить много гемора, в случае возникновения проблем. Можно потерять информацию, клиентов и репутацию...

Худший ответ:
Видимо, Вам нужно что-то типа конструктора.
ru.wix.com вот, вроде как, один из наиболее популярных
Вопрос: В какой онлайн-сервис лучше забэкапить фото и видео?

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

Гугл драйв?
Мэйл диск?
Дропбокс?
Сами же и ответили =)
Что Вас конкретно интересует? Цены, объем, надёжность?

Худший ответ:
Если фото, то Google Фото - безлимит. Только не фоткайте нигга :)
Вопрос: Набираю портфолио — если верстать по готовым шаблонам, откуда брать PSD? И стоит ли скрывать тот факт, что я верстал не из PSD, а из шаблона?

Лучший ответ:
Я бы взял бесплатный PSD, сверстал, и выложил бы к себе на сайт. Так было бы правильнее и честнее, имхо. Т.е это будет эмуляция вашей работы, когда вам дают PSD, а вы из картинки создаёте сайт, вы же не думаете что ваши клиенты будут вам вместе с PSD говорить как на самом будет правильно сверстать header, content, section и т.д. Всё приходит с опытом, а если хотите верстать как и задумывалось в посте, то думаю такое можно где нибудь да найти, достаточно в англ. гугле забить нужные запросы или найти верстку других верстальщиков и попробовать сверстать без PSD, но уже не выкладывая на сайт, вдруг вас обвинят в том, что вы ничего не верстали а просто скачали шаблон? Всё возможно.

Худший ответ:
Если есть желание, обращайтесь предоставлю интересные макеты для верстки. Дизайны все уникальные.
Вопрос: Выбор сетевого МФУ для офиса?

Лучший ответ:
Пользуемся на работе HP LaserJet 3055 — отличный аппарат! Не смотря на то, что в нем картридж 12А (маленький), хватает его на долго (заявлено 7000стр.). Заправляется на ура, даже чипы менять не надо, не то что перепрошивать девайс. Правда он без дуплекса и в продаже я его уже не вижу :(
Но, возможно, более новая его генерация вам подойдет.
Если есть потребность в заправке картриджей — напишите в личку, дам контакты хорошего мастера (Москва).

Худший ответ:
Кроме п. 4 — Xerox 3550
Вопрос: Какими навыками должен обладать системный администратор?

Лучший ответ:
Для работы хорошим системным администратором надо:
нулевой уровень - крепкие нервы и выдержку - часто звонят обычно истерики, у которых "аа, ничего не работает, вы все козлы". Ну или реально, что-то большое и толстое упало и не работает, Вы занимаетесь восстановлением.
Первый уровень - техническая поддержка пользователей - показать как запустить рабочее п/о, вроде ворда и екселя, как в них форматировать документ или сделать формулу, настроить почтовый клиент.
Первый, продвинутый - уметь диагностировать программные и аппаратные проблемы - сдох компонент, вроде сетевой карты или видеокарты.
Дальше - оптимизация и учёт своей работы и проблем, написание документации для часто возникающих вопросов, вроде как самому менять пароль когда приходит срок его смены, вроде "полчаса - замена материнки Пупкину, полчаса обьяснение Тарасовой что такое поверпоинт".
Учёт и инвентаризация юзерского железа, установленного софта и какие компы за кем числятся, совместно с бухгалтерией.
Дальше - оптимизация переустановки рабочих станций - служба вроде WDS - не руками же винду, офис и прочий внутренний софт накатывать каждый раз (по два часа на машину, угу)
Прокладка сетей и их диагностика - обрывы, переобжимание патчей, учёт что и куда на патчпанелях воткнуто. что такое вланы и подсети, маски, - это хорошо рассказано в курсах Cisco ICND и более старшем CCNA - маршрутизация и TCP/IP стек
Ну а дальше - уже всякий серверный стафф - серверное железо, технологии удалённого управления самими серверами (ssh/rdp) и их железом - ipkvm, ipmi, iLO, мониторинг, диагностика.
Тоже самое с системами хранения данных - дисковые полки, стримеры для бекапов на ленты и библиотеки лент.
Программная часть серверов - Active Directory и роли Windows Server, какие есть, зачем нужны и как настраиваются, как делается резервное копирование и восстановление данных, как правильно хранить бекапы и где их хранить, как ставится ось - linux, windows, как она правильно настраивается под конкретные задачи - почта, dns, dhcp, брандмауер/фаервол, и т.п., как выпускается в интернет, что такое демилизаризованный сегмент сети.
Как правильно ставится более сложные сервисы - SQL, почта, веб, мастер установки - 10 минут Next, Next, а грамотное развёртывание - и настройка - вполне нормально от нескольких дней.
Виртуализация - какая есть, на кой черт нужна.
Диагностика, мониторинг, серверного железа, планирование рисков при аварии и восстановления ИТ инфраструктуры - от выхода из строя конкретного сервиса (упал почтовый демон) до все, приехали - "здания офиса больше нет".
Побочно - мелкое скриптописание - powershell, bash или крупно-программирование - C#, python, perl, местами веб вроде html/css.
Вроде ничего не забыл

Худший ответ:
Например вот - rutracker.org/forum/viewtopic.php?t=3028305
А базовые представления о сетях и их построении у Вас имеются? Или вы просто захотели быть Системным Администратором?
Вопрос: Как перевести книгу с GIT?

Лучший ответ:
Учите английский. Не знаю что тут еще посоветовать.

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

Лучший ответ:
Насколько я понял, картинка взята с этого сайта. 
Сам будильник находится в квартире у этого человека. ICQ, Skype, Facebook в профиле указаны. 
Может есть смысл написать напрямую хозяйке?

Худший ответ:
видел в Ашане на Рязанском проспекте, отдел подарков (4 этаж с кучей кафешек).
Вопрос: Поисковый запрос sayt.ru Яндекс стал исправлять на site.ru. Как решить проблему?

Лучший ответ:
Дмитрий , нет, конечно, не фильтр, обычная автокорректировка на основе статистических данных, имеющихся у Яндекса.
Решал ранее такую проблему путем написания в поддержку Яндекса. Ответили, что рассмотрят проблему и примерно через 2 недели сделали, так, как хотел.
Писать в поддержку лучше через Вебмастер Яндекса:
1. Добавляете туда сайт
2. Переходите по ссылке Обратная связь
3. Указываете свою проблему

Худший ответ:
Что это фильтр? Ручные / автоматические санкции?  Это просто автоматическое исправление опечаток в поисковых запросах без учета контекста.Как заставить Яшу не исправлять Нарастите ссылочную массу с нужным анкором и в целом займитесь оптимизацией и продвижением сайта, если Вам важен поисковый трафик.Соответственно, пользователи не находят ресурс и траффика с Яши не идётПродвигайте сайт по различным запросам, поисковый трафик по имени домена неизвестного ресурса всегда будет копеечным, в пределах статистической погрешности. Почитайте на тостере ответы на вопрос Как seo-продвинуть сайт без денег? :)
Вопрос: Title вверху страницы. Как?

Лучший ответ:
Встречный вопрос — а чем это вам мешает?

Худший ответ:
недогуглили тот же форум

yiiframework.ru/forum/viewtopic.php?f=3&t=2327&start=10#p18186
Вопрос: Каким образом вывести данные в нескольких столбцах?

Лучший ответ:
Просто разместить их в трех столбцах нельзя?<div ng-controller="demo">
 <table>
   <tr ng-repeat="phone in phones">
    <td>{{phone.id}}</td>
    <td>{{phone.cat}}</td>
    <td>{{phone.name}}</td>
   </tr>
 </table>
</div>var app = angular.module('app', [])
   .controller('demo', function($scope){
      $scope.phones = [{id: 1, cat: 'Nokia', name: 'N90'}];
    });
   angular.bootstrap(document, ['app']);
jsfiddle.net/zhak55/s2pjzr3b

Худший ответ:
Есть допустим 100 разных названий товара, нужно вывести их в 3 столбца.
а зачем тут таблица? Да и в вашем примере таблицы как бы и нет... Это можно сделать через css<div class="col-md-12 product-list" ng-repeat="phone in phones">
   <div class="product">{{phone.name}}</div>
</div>.product-list {
    column-count: 3;
}
Для IE9 есть полифил (ну и для хрома он тоже нужен, так как column-gap не поддерживается).
Если все же хочется именно средствами ангуляра - то по хорошему следует сделать директиву, которая будет резать коллекцию на три части и выводить. Но это сложно, если делать именно по феншую. А можно фигнуть фильтром, это не очень хорошо зато влоб.
Вопрос: Хранение и раздача видео контента

Лучший ответ:
У вас в тегах отличный сервис прописан.

Худший ответ:
все не так просто.
10 тыс просмотров — это «сферический конь в вакууме»
сколько одновременный просмотрое видео будет в теории максимально?
каким битрейдом видео?
какой общий объем видео предполагается?
Вопрос: Раскрутка паблика вконтакте без вложений?

Лучший ответ:
Пфф.. лекго!
Вам всего то нужно выкладывать кучу интересного и уникального контента постоянно и люди сами подтянутся.

Худший ответ:
Спамить в других группах миллионниках в комментах регулярно. 1-2 сообщения в день. Вас будут банить... Но это не страшно. Страшно - если забанит вк если вы будите писать одно и то же сообщение. Его будут помечать как спам.
Вопрос: Double в kernel-mode (WinXp)?

Лучший ответ:
Налицо недопонимание :-), попробую прояснить ситуацию
В общем, каждый поток имеет свой «контекст» (хранится в _KTHREAD::StateSaveArea), который включает в себя в том числе и состояние FPU (а также MMX, SSE и прочих) регистров. От этого никуда не денешься и при переключении контекста все это состояние сохраняется и перезагружается новыми значениями.

Но учитывая то, что
1. Все эти векторные расширения/плавающие точки имеют довольно много довольно больших регистров
2. Для подавляющего большинства «ядерного» кода они все равно не нужны
3. Переключение из юзермода в ядро и обратно должно быть как можно более быстрым

то было принято решение, что ядерщики не облезут закатывать солнце вручную. Другими словами, при переключении в режим ядра и обратно перезагружаются только целочисленные регистры общего назначения (ну и флаги, сегментные регистры и пр.). Чтоб не нагадить в результаты вычислений пользовательской части потока, которая имела неосторожность вызвать (прямо или косвенно) Ваш код, нужно перед модификацией FP контекста сохранить его, а перед возвратом в юзермод — восстановить. Хранить результаты можно где угодно (в том числе и в девайс экстеншне).

Худший ответ:
В силу специфики темы, я бы рекомендовал с таким вопросом обратиться на wasm.ru.
Вопрос: Bitcoin Miner

Лучший ответ:
«Что оптимальнее и реальнее?»

не забивать себе голову

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

Лучший ответ:
Нормальная температура видеокарты в простое ~50, в нагрузке ~65-75 градусов. 
Температура процессора ~40-50.

Худший ответ:
беспокоиться не о чем, да не холодные, но и не страшно.
Вопрос: Имеются ли в природе какие-либо уроки по voip, tdm, атс и подобных технологий?

Лучший ответ:
Ох. это Вы сильно всё в кашу смешали.
АТС - вендорозависимое - каждый вендор "обычных" АТС извращается очень и очень по своему. Для работы и обслуживания с каждой АТС надо проходить свои курсы,  иногда не один год, не считая общего понимания, как это всё работает.
voip - тоже очень широкое понятие - MS Lync, avaya, SIP, rtp/rtsp, asterisk - это всё по отдельности очень толстые направления, с которыми разбираться надо очень долго. а еще если это всё брать, надо разбираться с полным стеком tcp/ip, QoS, безопасностью и защитой голосового траффика.
Отдельно еще стоят вопросы скрещения между собой разных зверей, вроде подружить между собой Lync и Asterisk, например.

Худший ответ:
Я в таких случаях использую википедию, самый простой, быстрый и понятный способ въехать в структуру новой темы и начать более-менее внятно формулировать свои задачи. Под них уже можно найти более глубокие источники.
Вопрос: Есть ли учебники по программированию (JS, PHP и пр.) в таком же музыкально-развлекательном формате?

Лучший ответ:
Глядя на этих плясунов, я понял смысл всех массовых танцев в мире: все это - не доведенные до завершения, попытки исполнения bogosort.

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

Лучший ответ:
В гугле забанили? ©Народная мудростьДави сюда
Но такой вариант пройдет только с IE9+.Что-то слышал про метод с iframe, но так и не понял до конца, где должен быть этот iframe?
Пофантазирую:Берем iframe, кладем на страницу, скрываемВо фрейме формаПри выборе файла в видимой форме на главной странице, подменяем данные в форме, что внутри фрейма, отправляем ее (onsubmit).Profit!
-P.S. Кстати, поправьте меня, если я не прав: файл нельзя отправить методом get, верно? 
В теории - можно, но только вес отправляемых данных будет куда больше, так как GET кодирует их по своему, да и кол-во символов в итоге не должно превышать 255.

Худший ответ:
Создание AJAX форм обратной связи на сайте