Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Техническое задание или прототип?

Лучший ответ:
Прототип это MVP (Minimum valuable product). Что бы заказчик оценил концепцию конечного продукта раньше, чем пройдут месяцы-года разработки и он поймет надо ему это или нет. Чаще всего прототипы пишутся на простейших фреймворках которые позволят показать сценарии и процессы, а затем утвердив приступают к написанию на конкретном фреймворке\языке\платформе с нуля.
То о чем пишите вы, это модель. Старшая сестра Mockup'a и Wirefram'a.
По ней можно делать простые проекты, но без ТЗ будете косячить. Как бы детально вы эту модель не нарисовали.
Всем надоело писать ТЗ, но надо.
Модель должна идти параллельно с ТЗ, как визуализация ТЗ. 
Она позволяет упрощать донесение задач, или стейкхолдеров\фич проекта как то разработчиков так и до заказчиков у которых проблемы с чтением документов на большое количество страниц.

Худший ответ:
Прототип — это такая же часть проектных решений (по ГОСТ 34 макеты относятся к стадии Технического проекта), как и требования ТЗ. Чертежи же подписывают?
Прототип фиксирует решения:
1. Какие экраны будут у системы
2. Как будут взаимосвязаны экраны
3. Какие блоки будут на каждом экране
4. Каково будет взаиморасположение (компоновка) блоков на экране.
5. Каковы будут относительные пропорции блоков и элементов
6. Каково будет поведение блоков и элементов (если прототип динамический)
Но вы учтите, что прототипы не описывают требования к атрибутам качества, ограничениям, программным интерфейсам, платформе, алгоритмам и т.д., а это всё очень важные компоненты свойств промышленной системы / ПО.
Вопрос: Для каких задач вы применяете (применяли бы) iPad?

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

Худший ответ:
Все хочу приобрести планшет, чисто для чтения, вроде элеткронной книги в разных местах квартиры;)
Вопрос: Mysql — как оптимизировать связь Many To Many?

Лучший ответ:
Индексы строятся только под запросы. Если запросов, использующих этот индекс нет - то индекс только мешает работе.
Констрейты (fk и unique) - ставятся в зависимости от требования к данным, при этом мешают программисту делать глупости. Потому их лучше всегда ставить, пока не будет сделан обоснованный вывод, что их надо убрать.
По схемам - вторая будет оптимальнее. Меньше объём рабочего набора - меньше i/o. В большинстве случаев, судя по всему, будет поиск по первичному ключу - ещё меньше i/o, т.к. в innodb данные кластеризованы по первичному ключу.
И скорей всего забыли указать unsigned, это ведь наверняка ссылки на автоинкременты.

Худший ответ:
По индексам в MySQL есть хорошая статься тут.
Как пишут выше - внешние ключи нужны для сохранения связей между таблицей и предотвращения разрыва связей объектов. Если кто-то удали строчку из одной таблицы, а id о ней останется в другой - у вас будет бедлам и хаос, куча мусора и с разрастанием таблиц - просидание производительности.  Про это можно прочитать тут.
Первую схему забудьте для связей многие-ко-многим.
Вопрос: Стоит ли углублять знание по Javascript, или лучше изучать какой-нибудь фреймворк (jQuery)?

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

Худший ответ:
Смотря для каких целей, и углублять знания всегда легче всего на практике, тогда и поймете, что вам нужно.
Вопрос: Можно ли читать статьи из интернета &quot;потом&quot; — уже в оффлайне (Android)?

Лучший ответ:
Приложение Pocket (getpocket.com). Можно добавлять статьи с любого типа устройств (с ноутбука в тч) и потом читать.

Худший ответ:
pocket, readability, readlater. Плюс я вскоре собираюсь писать клиент для хабра с автокэшированием.
Вопрос: Потоковая обработка файлов в PHP

Лучший ответ:
Открой listen сокет и принимай файл.
Тут же на лету считай ттх

Худший ответ:
посмотри в сторону расширений, которые использовались для ajax загрузки файлов с прогресбаром, сейчас используется apc, но есть ещё что-то в pecl, погугли.
Вопрос: Почему не получается получить элемент из Array?

Лучший ответ:
Array.isArray([myArray])Ничего другого и быть не может - вы в проверку массив передаёте.
Судя по названию переменной, это результат ajax-запроса, а значит - строка.var myArray = JSON.parse(response);

Худший ответ:
Array.isArray([myArray])Ничего другого и быть не может - вы в проверку массив передаёте.
Судя по названию переменной, это результат ajax-запроса, а значит - строка.var myArray = JSON.parse(response);
Вопрос: Чем отличаются буферизированные каналы от небуферизированных?

Лучший ответ:
рассматривайте каналы как очереди queue. небуферизованный - с длиной 1, буферизованный - с длиной n (ch := make(chan struct{}, n). запись в канал может быть осуществлена если в канале есть еще места, при заполнении канала запись лочится (т.е. код "встает" на этой попытке и ждет пока освободится место). в соответствии с этим:ch1 := make(chan struct{})
ch1 <- struct{}{} //ок, ушло в канал
ch1 <- struct{}{} //висим и ждем когда кто-нить прочитает из каналаch2 := make(chan struct{},3)
ch2 <- struct{}{} //ок, ушло в канал
ch2 <- struct{}{} //также ушло
ch2 <- struct{}{} //и еще ушло
ch2 <- struct{}{} //а вот тут лок. висим и ждем когда кто-то прочитает из канала

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

Лучший ответ:
Через Yandex.API, например.

Худший ответ:
Решил так:Сайт
Парсер:    h95306wq.bget.ru/pages/xml.inc
Страница: h95306wq.bget.ru/pages/lpogoda.php
Правда сейчас у них какие-то заморочки с предоставлением погоды в xml, но пока вроде работает.
Вопрос: Возможно ли восстановить винчестер в моем случае?

Лучший ответ:
Загрузитесь с флешки, установите smartmontools и запустите sudo smartctl -a /dev/sda
Имя устройства может быть другим в Вашем случае. Во всём этом выводе найдите табличку с вот таким заголовком.SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
В ней должно быть больше строк, я выделил только самые интересные. Их текстовое описание может отличаться, но всегда одинаков ID (первый столбец).
Если значения в самом правом столбце (RAW_VALUE) отличаются от нуля (особенно 5 и 196), значит диск готовится отдать богу душу. Сколько он проживёт с этого момента неизвестно (вопрос везения), но процесс уже начался. Пора копить на новый диск. Если же значения не нулевые, и при этом VALUE >= THRESH, то это уже однозначно конец. Лимит зарезервированных секторов исчерпан, диск больше не может компенсировать выпадающие сектора.
Если 5 и 196 по нулям, но 197 больше нуля, значит ещё есть шанс. Нужно запустить упомянутые здесь mhdd или victoria для проверки записью. Это уничтожит все данные на диске, но может оказаться, что сектора помечены битыми по ошибке. После того, как mhdd отработает (это, кстати, может занять очень много времени, до нескольких часов, в зависимости от объёма диска), счётчик 197 может обнулиться, тогда форматируйте диск и спокойно используйте дальше. Если же он обнулился, но при этом выросли 5 и 196, то см. предыдущий абзац :-)
И да пребудут Ваши бекапы во множестве и в сохранности ;-)

Худший ответ:
С востановлением информации - ничего сами с диском не делаете ни в коем случае! Отдаёте накопитель специалистам по восстановлению данных.
Если есть большое желание и жалко денег - делаете полную посекторную копию диска. Исходный диск откладываете в сторону и восстановить пробуете только и исключительно образ.
Без информации - загружаетесь с MHDD или Victoria, делаете полный тест записи с последующим полным тестом чтения. Если пластины в адекватном состоянии - вы получили исправный чистый диск. Если пластины дохлые - выкидываете. Расходник же.
Вопрос: На каком ЯП используют эту функцию GetWindowThreadProcessId?

Лучший ответ:
https://www.google.com/search?q=GetWindowThreadPro...
не?

Худший ответ:
Анализировать exe через hex редактор это сильно... Попробуйте IDA.pro и научитесь пользоваться дизассемблером паралельно изучив все что для этого нужно.
Декомпиляторов не существуют, либо их возможности ограничены. Помню для Delphi был неплохой декомпилятор, для прилажек собранных из php/python/ruby/js тоже можно сделать (ибо там как бы... все в открытую лежит по идее).
Вопрос: На сколько разумно вставлять картинки через тег i?

Лучший ответ:
Вставляют не картинки, а псевдо иконки, а точнее шрифтовые иконки реализуемые через классы CSS. Страшного ничего нет. И кстати Bootstrap отказался вовсе не из-за тега i, а в силу того, что стали использовать уже готовую библиотеку glyphicons, тем самым сняв с себя обязательства по поддержке встроенных иконок. Вас так же никто не ограничивает использовать тот же Font Awesome, который был написан специально под Boostrap.

Худший ответ:
Это нормально и стоит так делать. А в чем, собственно, может быть проблема? И если "На многих сайтах сейчас вставляют тег i для иконок..." то наверное это нормально? Учимся размышлять логически и перенимать чужой опыт.
Вопрос: Отладка веб-сайта при использовании SVN?

Лучший ответ:
Имхо, максимально удобно, когда у каждого разработчика в команде есть домен вида nickname.dev.site.com. Располагаются эти хосты либо у разрабов на машине, либо на небольшом серверочке в офисе. Все коммиты уходят на dev.site.com, там изменения просматривают тестеры и руководство. После того, как все довольны, код с dev.site.com выкладывается на site.com.

Худший ответ:
А в чем проблема с SVN? Стандартно же, mysqldump, rsync, пара скриптов и готов тестовый сервер.
Для специфичных настроек я у себя в git создаю отдельный бранч, если надо.
Вопрос: Различия между min.css и просто .css?

Лучший ответ:
Это минифицированная версия CSS. Оригинал чаще всего находится в виде файлов SASS или LESS.
.map - это карта для восстановления отступов и переносов строк, когда вы откроете файл в браузере.
При использовании сжатия трафика Gzip, минификация файлов необязательна, но также ускоряет загрузку.
stackoverflow.com/questions/807119/gzip-versus-minify

Худший ответ:
min.css это сжатая версия. для быстрой загрузки сайта можно использовать его. в css.map вроде сохраняются пути, при конвертировании с Less или Sass
Вопрос: Cards Heaven — кому-нибудь пришла бесплатная открытка?

Лучший ответ:
Мне (Маме) пришла неделю назад, порадовала качество бумаги.

Худший ответ:
Мне (точнее моей девушке) открытка пришла… Правда всего где-то неделю-полторы назад…
Вопрос: С чего начать разработку mobile app?

Лучший ответ:
Под iOS - XCode или AppCode - обе среды работают только в Mac OS X. Можно ставить в виртуалку, но это не правомерно с точки зрения лицензий Mac OS X.
Язык разработки - Objective C
Операционная система - Mac OS X.
Под Android - Eclipse + ADT.  Либо Android Studio. Для обоих сред требуется установленный SDK (ниже по странице) и JDK.
Язык разработки - Java.
Операционные системы - Linux, Windows, Mac OS X.
Для Windows Phone - Visual Studio 2012 (например) и SDK.
Язык разработки - .Net (C#, VB) C++.
Операционная система - Windows.
Существует масса так называемых кросс-платформенных фреймворков а-ля PhoneGap, Xamarin, Delphi и QT. Но все это считается плохим тоном и на требующих производительности приложениях вы отхватите тормоза. Развлечения ради и себя - можете пользоваться мобильными фреймворками. Для решений Enterprise класса лучше писать в родных средах и на родных для платформы языках.

Худший ответ:
Если приложение игровое - то вот я сейчас смотрю в сторону libGDX
Тормозит он или нет - решайте сами - благо игрушек на нем напросторах гуглестора и иосмагазина хватает. 
PhoneGap аки представитлье HTML5-направления - я бы не советовал, имхо - на мобилках рискует отхватывать тормоза, аки и всякий перегруженный джаваскриптами сайт при отображении на мобилке.
Позволю себе не согласиться с @SashaSkot насчет тормозов. Возьмем libGDX - если есть что-то нагруженное, требующее вычислений - выносите код в "нативную часть" и делайте это в родных классах созданных под конкретно эту платформу. Я например сейчас так стыкую libGDX и бакэнды для работы с блютусом.
Если взять Qt - то с ним ещё все круче - Qt по идеологии - компилится в бинарный код ориентированный под конкретное железо и конкретную ОС.  Под линухами одно, под иос дургое, под андроид тертье - но все из одних исходников и без значительного геморроя или адаптации. Под Андроид Qt компитился если у вас на борту стоит NDK - и на выходе в Андроид на исполнение попадает смесь бинарников и джава оболочек для них. Не могу сказать что это будет тормозить. Часто пользоваться готовым фреймворком выгоднее чем лабать свой велосипед в том числе и в плане производительности кода.
Вопрос: Как написать «микро-сетку» для трёх столбцов?

Лучший ответ:
из моих запасов SCSS$grid-columns:               12;
$grid-gutter-width:          30px ;

// Break-points
$screenSM:544px;  //S
$screenMD:768px;  //M
$screenLG:992px; //L
$screenXL:1200px;  //XL

$containerSM:480px;  //S
$containerMD:720px;  //M
$containerLG:960px; //L
$containerXL:1140px;  //XL

// for example: @media #{$md}

$sm: "(max-width: #{$screenSM})";
$md: "(max-width: #{$screenMD})";
$lg: "(max-width: #{$screenLG})";
$xl: "(max-width: #{$screenXL})";


@mixin clearfix() {
  &::after {
    content: "";
    display: table;
    clear: both;
  }
}
@mixin container($max-widths: 100%, $gutter: $grid-gutter-width) {
  margin-right: auto;
  margin-left: auto;
  padding-left: ($gutter / 2);
  padding-right: ($gutter / 2);
  max-width: $max-widths;
  @include clearfix();
}

@mixin row($gutter: $grid-gutter-width) {
  margin-left:  ($gutter / -2);
  margin-right: ($gutter / -2);
  @include clearfix();
}

@mixin col($size, $gutter: $grid-gutter-width, $columns: $grid-columns) {
  position: relative;
  float: left;
  min-height: 1px;
  padding-left:  ($gutter / 2);
  padding-right: ($gutter / 2);
  width: percentage($size / $columns);
}

@mixin col-size($size, $columns: $grid-columns) {
    width: percentage($size / $columns);
}
Далее пример генерации классов.container {
 @include container($containerXL);
}
.row {
@include row();
}
.block {
@include col(4);
@media #{$md} {
   @include col-size(3);
}
}
и разметка.container
  .row
    .block
    .block
    .block

Худший ответ:
Вообще есть специальные ресурсы для генерации чисто css сетки (там можно установить количество колонок, отступы и прочее):960.gszurb.com/playground/css-grid-buildergridpak.com
если 12 колонок, то так:.container {
  width: 960px;
  margin: 0 auto;
}
.col-4 {
  width: 33.33%;
}<body>
  <div class="container">
    <div class="col-4">
      content
    </div>
    <div class="col-4">
      content
    </div>
    <div class="col-4">
      content
    </div>
  </div>
</body>
Вопрос: Причуды Windows 7?

Лучший ответ:
У меня тоже Win7 64bit и такая же проблема

Худший ответ:
Проблема может быть в USB filter driver который идет в комплекте с ATi Control Center
Вопрос: Лучший ридер для pdf?

Лучший ответ:
Берите планшет с хорошим экраном дюймов на 10 (IPS или AMOLED и разрешение хотя бы FHD). Глаза конечно устают сильнее, чем от электронных чернил, но удобство и скорость работы решают. На любых читалках с E-Ink чтение PDF - это мучение из-за проблем с масштабированием (пробовал на Sony PRS-T2, Onyx Maxwell и Kindle Paperwhite - все тлен).

Худший ответ:
Берите планшет с хорошим экраном дюймов на 10 (IPS или AMOLED и разрешение хотя бы FHD). Глаза конечно устают сильнее, чем от электронных чернил, но удобство и скорость работы решают. На любых читалках с E-Ink чтение PDF - это мучение из-за проблем с масштабированием (пробовал на Sony PRS-T2, Onyx Maxwell и Kindle Paperwhite - все тлен).
Вопрос: Яндекс почта не справляется с нагрузкой?

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

Худший ответ:
А что говорит саппорт? Про бесплатную корпоративную почту много всего писали уже…
Вопрос: Какие есть аудио плееры на JavaScript?

Лучший ответ:
Node.js - серверная технология. Для проигрывания музыки в браузере нужно использовать html5 audio api (или flash, но не советую).
Есть отличная javascript либа soundmanager2.

Худший ответ:
Вот этот норм но я его для видео юзал, скорее всего и аудио поддерживает.
Вопрос: Работа с контроллерами ASP.net MVC без их компиляции (редактирование на лету, как в ASP.Net Webforms)?

Лучший ответ:
Мне кажется править «на лету» код контроллеров очень плохая идея. В век внедрения в нашу жизнь TFS, и гитхаба править код на продакшене — моветон.

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

Лучший ответ:
Подвожу итоги (от более популярных ответов к менее популярным):
1) www.livelib.ru/
2) www.goodreads.com/
3) www.ozon.ru/context/div_book/
4) www.bookmate.com/library
5) www.flibusta.is/
6) www.twirpx.com/
7) www.readly.ru/
8) www.books.imhonet.ru/
9) www.fantlab.ru/
10) www.kodges.ru/
11) www.infanata.info/
12) www.litres.ru/
13) www.avxhome.in/
14) www.boox.bz/
15) www.padabum.com/
16) www.it-ebooks.info/
17) www.allitebooks.com/

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

Лучший ответ:
Gtalk прекрасно работает почти из любого jabber клиента. С пунктом 3 и 4 вам помогут фильтры в gmail. Что не так? 

Ах да. talkgadget.google.com/talkgadget/popout — вам в помощь. Это к «неудобно входить из браузера».

Худший ответ:
Сам недавно задумался о такой теме, пока что на примете www.olark.com/
Вопрос: GPS навигация онлайн?

Лучший ответ:
Думаю, что вы пытались нагуглить что-то вроде livegpstracks.com/ или www.gdemoi.ru/gps-treker.php, но случайно по-привычке написали на Хабр.

Худший ответ:
Можно все сделать самому, не покупая никакое ПО, и даже трекер. Значит на смартфон устанавливаем бесплатный софт для слежения, а мониторим через gps-trace.com/
Вопрос: Сессии. Как разрушить все сессии кроме текущей?

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

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

Лучший ответ:
Конкретная причина этого нарушения#wrapper {
	min-height: 100%;
}
Но у вас там жесть просто. Ошибка на ошибке и ошибкой погоняет.
Такая вёрстка не годится никуда.

Худший ответ:
"Белого пробела" я не увидел. Можно точнее?
И зачем вы простым блочным элементам даёте ширину 100%, таким как body, header и footer?
А так же, если вы хотите прижать футер к низу, то вам нужно header поместить в блок .wrapper. Туда нужно помещать всю верстку, за исключением footer'a.
Вопрос: Какой выбрать ноутбук для программирования под андроид, 14-15", бюджет не ограничен?

Лучший ответ:
Macbook Pro 15 Retina. При желании можно поставить винду. Лучший экран, лучшее время работы.

Худший ответ:
Приобрел MacBook Pro 15" 2014. брал его за 1700 баксов. доволен на 200%. Производительность супер, экран бомба. Батареи хватает надолго, реальные 6-7 часов в Intellij IDEA + куча хлама и Хром. В то же время, ганяю на нем иногда игрушки, хотя и брал без дискретной видяхи. 
Ах да, габариты... Он легкий и тонкий. Для такого железа и батареи это нечто! 
До этого владел ноутом Asus K75VJ. короче, 17" мощная машинка. Вывод: я очень рад что поменял его на макбук.
Вопрос: Web-разработка. Уровень погружения в язык программирования: PHP vs JavaScript. Где «глубже»?

Лучший ответ:
Многое несомненно зависит от того как позиционируется PHP бэкенд в составе проекта,
однако в целом если говорить про разработку приложений на PHP как такового (без зоопарка вокруг)
список инструментов примерно следующий (представлены самые популярные)
Стандарты - по хорошему надо прочитать и понять всё что издает php-fig в сфере юзерленд кода,
самые важные - PSR 0-4
Вспомогательные (обязательные) технологии - YAML, XML, CSV, JSON;
Библиотеки "все-в-одном" - на бэкенде не водятся (да здравствует linux-way);
Фремворки общего назначения, скелеты приложений - Yii (1,2), Symphony2, ZendFramework2;
CMS-фреймфорки - Drupal, ... Wordpress? ищите под задачу;
Модульность, Зависимости - Composer и все что с ним связано, PEAR/PECL (потихоньку отмирает);
Сборка - Phing (хотя я собираю php-проект gulp'ом - у него API приятнее);
Тестирование - PHPUnit, Behat, CodeCeption;
Деплой(Развертывание релизов) - Mage (aka Magallanes), Deployer
Помощники - Vargant, Docker (тестирование и разработка в готовых окружениях)
Здесь я не упоминал того что нужно знать о самом языке и его компонентах.
теперь поговорим о зоопарке..
технологии и зоопарк специфичный только для PHP:
Сервера приложений - php-fpm, apache-mod-php;
Кэш и быстродействие - APC (APCu для PHP >= 5.5)
дебаг - ZendDebug, XDebug, XHProf
Далее то что не отличается от одного серверного языка к другому.
это часть ответа безгранично велика на самом деле =)
Сервера и прокси - Nginx, Apache, Varnish, etc.
Кэши и NoSQL - Memcached, Redis, Mongo, etc.
СУБД - MySQL, PostreSQL, etc..
Поисковые индексы - ElasticSearch, Sphinx
Очереди и межпроцессовое взаимодействие - RabbitMQ, ZeroMQ,  linux-sockets, posix-treads
Протоколы взаимодействия (4 уровень OSI)  - HTTP(во всех его подробностях!  просто MUST HAVE), POP, SMTP, IMAP, REPL.
Траспортные Протоколы (3 уровнь OSI) - TCP, UDP
Библиотеки уровня системы - cURL (абсолютный MUST HAVE - большинство взаимодействия поверх HTTP строится на этой библиотеке в абсолютном большинстве серверных скриптовых языков)

Худший ответ:
PSR, composer, phpunit в дополнение к предыдущему комменту