Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как подружить ZigBee и Wifi?

Лучший ответ:
Думаю стоит рассмотреть вариант использования отдельного промежуточного устройства, в котором будет и WiFi и ZigBee. Назовем его сервером. Т.е. с планшета будет общение только с сервером, а уже он общается с ZigBee устройствами.
Думаю что рано или поздно потребность в таком сервере все равно появится, например, для логов или для доступа к управлению за пределами дома. Сам сервер можно сделать из WiFi роутера или Raspbery Pi.

Худший ответ:
Все-таки данное устройство называется не сервер, а шлюз. Поиск «zigbee wifi шлюз» и т.п. может дать результаты :)
Например, www.alibaba.com/product-gs/501808351/ZigBee_WiFi_Wireless_Gateway_for_Smart.html
Вопрос: Как базы реагируют на увеличение колличиства записей?

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

Худший ответ:
Я бы "хвост" чата (потока сообщений) публичных комнат держал в памяти сокет-сервера.
А сохранял в базе - только нужное через парсинг.
Для диалогов - использовал бы базу с процедурной выборкой.
Раз в сутки - бэкап таблицы.
Вопрос: подскажите роутер с двумя wan портами

Лучший ответ:
Советую посмотреть в сторону Vigor от Draytek.

Худший ответ:
Вот хорошая тема по роутерам с двумя и более Wan
forum.ixbt.com/topic.cgi?id=14:33179
Вопрос: Как восстановить пароль к контейнеру lxc?

Лучший ответ:
Оказывается возможно и то (сбросить пароль в контейнере) и другое (получить доступ к файлам в контейнере)...
Первое можно сделать "на ура" с помощью команды lxc-attach:заходим в консоль гипервизора с помощью команды lxc-attach -n 200 подключаемся к нужному контейнеру (в моём случае контейнер с именем 200) - мы внутри контейнерадалее passwd и вводим новый пароль для рутового пользователя контейнера

Худший ответ:
С хоста PCT enter ID
Вопрос: Как написать красивую тему для wordpress?

Лучший ответ:
Артем начать нужно с основ, изучите верстку, сделайте простенький html-шаблон из бесплатных PSD исходников, сделайте такой тот же шаблон, но уже адаптивный. Когда начнет получаться, почитайте про натяжку шаблонов на wordpress.
Если базовые знания и небольшой опыт верстки у Вас уже есть, то лучше присмотритесь к работе с фреймворками, их использование имеет массу преимуществ и вообще за ними будущее! Мне нравится популярный сейчас bootstrap, хотя для верстки под wordpress больше подходит foundation.
Почитайте на хабре:Самые простые техники адаптивной версткиАдаптивный веб-дизайн на практикеОсновные ошибки при разработке адаптивного дизайнаАдаптивные фоновые изображения7 способов улучшения процесса разработки адаптивно...Создание шаблона для WordPressКак сверстать тему для WordPressWordpress тема за 15 минутПродвинутые шаблоны редактора Wordpress

Худший ответ:
Программная часть wordpress тут - codex.wordpress.org
Адаптивная верстка - это уже другое дело, берите к примеру bootstrap3 и вперед верстать
Вопрос: Как настроить слайдер?

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

Худший ответ:
хоть бы код слайдера (ссылку на...) дали чтоли
Вопрос: Как скачать все файлы с сайта с помощью php?

Лучший ответ:
Для того, чтобы определить имя скачиваемого файла, необходимо прочитать заголовки, пришедшие вместе с ним. Сделать это можно с помощью cURL. На самом деле других способов я пока не видел.
Вам нужен заголовок "Content-Disposition". Вот пример получения имени файла и самого файла:$header = fopen("tmp/headers", 'w+');
$book_file = fopen("tmp/tmpfile", 'w');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_WRITEHEADER, $header);
curl_setopt($ch, CURLOPT_FILE, $book_file);
curl_setopt($ch, CURLOPT_COOKIE, "PHPSESSID=xxxxxxxxxxx");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($book_file);

$disposition_regexp = '/^Content-Disposition: .*?filename=(?<f>[^\s]+|\x22[^\x22]+\x22)\x3B?.*$/m';
$filename = "";
rewind($header);
$header = stream_get_contents($header);
if (preg_match($disposition_regexp, $header, $disposition)) {
    $filename = trim($disposition['f'],' ";');

    if ($filename && $book_file) {
        $full_path = $books_folder.$ext."/".$filename;
        $rename_success = rename("tmp/tmpfile", $full_path);
        echo "Book downloaded: ID - ".$book_id."; Name - ".iconv("UTF-8", "WINDOWS-1251", $title).".".$ext.PHP_EOL;
    }
}
Объясню вкратце, что здесь происходит. При запросе, мы получаем в отдельные переменные заголовки и само содержимое файла, $header и $book_file соответственно. Потом регулярным выражением находим, есть ли среди заголовков нужный нам с названием файла и переименовываем временный файл, при необходимости перемещая его в нужную директорию.

Худший ответ:
<?php
set_time_limit(0);

$url = 'http://site.com/down.php';	// URL откуда будем выкачивать
$save_path = getcwd();	//  куда будем складывать файлы

for($i=1;$i<=800;$i++){	// идентификатор файлов от и до
  if (!file_exists($save_path.'/'."file_$i.zip")){
  copy($url."?id=$i", $save_path.'/'."file_$i.zip");	
  }
  }
?>
Вопрос: Как сделать страницу с благодарностью?

Лучший ответ:
не хватает тега "я не знаю как объяснить чего я хочу"

Худший ответ:
GeraJet German Jet German Jet
Правильно все сказал<?php
header ('location: http:\\вашсайт.php\страницаблагодарности.php');
exit;
?>
А вообще пользуйтесь вот этим
Вопрос: Температура — аддитивна?!

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

Худший ответ:
>Температура процессора становится +40?
Нет, поскольку больше разница температур между процессором+радиатором и окружающей средой ⇒ быстрее теплообмен (предположим, что мощность процессора одна и та же). Зависимость емнип экспоненциальная ⇒ быстрее охлаждается ⇒ температура ниже +40 (но не кардинально, поскольку отсчёт с абсолютного нуля). При наличии кулера точную цифру считать сложно, с радиатором, в принципе, реально.
Вопрос: Как использовать поле ImageField в Django?

Лучший ответ:
В settings.py указан путь до статики? 
Обычно такой  STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
И медиа настройки так жеMEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
и в урлах добавить такую запись from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [....
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Может быть хотели взять все объекты? Step.objects.all() иначе не ясно, как вы выбираете конкретный объект
Если берете их все, далее в шаблоне можно через цикл вывести фото{% for img in stepfieldst %}
<img src="{{ img.main_photo.url }}" >
{% endfor %}
Если выбираете по конкретному объекту, то код будет такой же, только не в цикле

Худший ответ:
Нашел мою же проблему, которую починили, но для новой версии джанги, уже не хочет работать:
stackoverflow.com/questions/5517950/django-media-u...
т.е. определили медиа руты, добавили в модель аплоад, загрузили фото = получили сообщение о том, что по такому url картинка не находится.
тот, код, что там приводится в качестве лекарства, на версии 1,9 на локальной машине не работает.
Вопрос: Где смотреть в iTunes Connect статистику скачиваний приложения и его покупок?

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

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

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

Худший ответ:
В steam есть трансляция по локальной сети. Создать виртуальную локальную сеть, зайти с одной учетной записи, добавить игру в библиотеку и запустить на одном пк. Картинка будет уходить на второй пк, управление возможно на двух одновременно. Нужен хороший интернет.
p.s. Думаю вы понимаете, что мой вариант работает только если в игре изначально есть сплитскрин.
Вопрос: KVM-свитч для домашнего использования

Лучший ответ:
Использую Gefen DVIKVM DL Switch. Он как раз подходит под описание, в том числе и про «забывчивость».
www.gefen.com/kvm/ext-dvikvm-241.jsp?prod_id=4511
Так же он перекидывает звук если надо.

Если монитор не Dual-Link, то можно взять более дешевую версию:
www.gefen.com/kvm/dproduct.jsp?prod_id=3113

Пользовался обычным, а потом перешел на DL. Использую их примерно 5-6 лет.

А что бы не «забывал» я добавил DVI/EDID модуль, который помнит EDID. Но в данном случае это не надо.

Худший ответ:
При наличии нескольких мониторов могу посоветовать софтовое решение — InputDirector. Пользуюсь давно — единственный адекватный программный KVM. Куча опций, работает шустро и незаметно, умеет шарить буфер обмена даже — полная иллюзия едниного рабочего стола из нескольких ПК. Единственный минус — только под винду.
Вопрос: Любительский BitCoin-майнинг — стоит ли игра свеч?

Лучший ответ:
Советую начинать с изучения теории — F.A.Q по майнингу
На процессорах майнить смысла никакого нет, не мучайте железки. А вот на видеокартах AMD от 5*** серии и выше — вполне выгодно. Пугалки про падение эмиссии в два раза не слушайте, для майнера по суте важен только его хэшрейт, стоимость BTC и сложность. Отсюда уже все остальные рассчеты.

Худший ответ:
Выгоду можете считать здесь _http://tpbitcalc.appspot.com/
Вопрос: Как реализовать фильтры товаров django?

Лучший ответ:
Посмотрите на django-hstore (при условии, что вы можете использовать PostgreSQL). Это поле, в котором можно хранить произвольное число пар ключ - значение. Таким образом, общие для всех видов товаров поля вы храните как обычные поля модели, а меняющиеся поля пакуете в hstore. По этим запакованным полям можно даже делать поиск, за счёт того, что HStore - это родной для PostgreSQL тип данных.
Ещё вы можете использовать тип JSON, тоже специфический для PostgreSQL. Отличается от hstore тем, что структура поля может быть древовидной и значения - типизированными (собственно, что и предполагает JSON). Пакетов, которые поддерживают это поле в Django, существует несколько, можно погуглить.
Также вариантом является упомянутый EAV, но лично мне очень не нравится этот подход. Отсутствие контроля типов, крайне низкая скорость на больших объёмах и общая уродливость решения. SQL-база данных создана не для того, чтоб её как key-value использовать. Лучше уж немного расширить её возможности костылями типа hstore.

Худший ответ:
Такие свойства сохраняю с помощью eav-django. Поиск делаю с помощью Sphinx - загоняю в мультиаттрибут все значения свойств для каждого товара и дальше запросом к sphinx можно вытянуть список id товаров, подходящих под фильтры. Плюс такого подхода еще в том, что можно совместить отбор по фильтрам и полнотекстовый поиск.
Вопрос: Как быстро поднять заглушку вместо лежащего сервера?

Лучший ответ:
Заглушка должна возвращать HTTP 503, чтобы поисковики не индексировали ее. Для этого подойдет любой хостинг с php:

<?
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
echo 'Упс, и такое случается. Наш сайт временно недоступен по причине бла-бла-бла.';
?>


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

Лучший ответ:
SELECT * FROM `mytable`
WHERE
 ( DATE(`date`) BETWEEN "2014-10-13" AND "2014-10-19" )
  AND
 ( TIME(`date`) BETWEEN "12:00:00" AND "13:00:00" )
От себя добавлю что лучше не называть поле date, т.к date это служебное слово.

Худший ответ:
Вам поможет TIMEDIFFSELECT TIMEDIFF('2000:01:01 00:00:00', '2000:01:01 00:00:00.000001');
Определение порядка - ORDER BY `field_name` [ASC|DESC];
Ограничение на вывод - LIMIT [y,]x;
Вопрос: Может ли техподдержка хостинга не оказывать поддержку по телефону?

Лучший ответ:
Может ли техподдержка хостинга не оказывать поддержку по телефону?Разумеется может.
Более того, она может вообще не оказывать поддержку, или оказывать не по всем вопросам.
Для того чтобы не возникало таких вопросов, существует договор - где четко прописаны права и обязанности сторон.Есть законодательные нормы по оказанию технической поддержки? Нет.Это общепринятая практикаСмотря где. Я бы так не сказал.
Не припомню случая чтобы я за последние пять лет общался с техподдержкой хостинга по телефону. Это же банально неудобно. Обычно общение через тикеты в их системе, или через скайп.
По телефону чаще финансовые вопросы обсуждают.

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

Лучший ответ:
Ну самое простое это создать WindowsFormApplication (Решения для Microsoft Visual Studio)
Ну а в «промышленных» маштабах обычно используют фреймворк Qt

Худший ответ:
CreateProcess например позволяет запустить произвольную программу из приложения. Это не через командную строку.
Вопрос: Название для группы по созданию сайтов и рекламе?

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

Худший ответ:
назовитесь "Компания". Создайте в этой "Компании" два отдела "Веб-разработка" и "Реклама". Можете даже "Холдингом" обозвать создав две подкомпании (вебстудия, рекламное агенство), в чем проблема? :)
Вопрос: Как определять порядок наложения изображений на canvas?

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

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

Лучший ответ:
Советую написать такую программу самому у себя в голове.

Худший ответ:
установи рядом еще одну систему, убери все лушнее
Вопрос: Как сделать изменение текста кнопки при нажатии, Objective-c?

Лучший ответ:
ссылка

Худший ответ:
У кнопки есть состояния, для каждого из них можно задать свой текст
[button setTitle:@"highlighted and selected" forState:UIControlStateHighlighted];
[button setTitle:@"Highlighted only" forState:UIControlStateHighlighted];
[button setTitle:@"Selected only" forState:UIControlStateSelected];
[button setTitle:@"Normal" forState:UIControlStateNormal];
Так же можно для каждого состояния задать фон. Это очень тривиальный вопрос, на который в интернете очень много ответов.
Вопрос: Выборка похожих результатов / MySQL

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

Худший ответ:
I. Если вы хотите посчитать количество одинаковых слов, то есть:
Пупкин — встречается 3 раза
Вася — встречается 2 раза и т.д, то это можно сделать либо с помощью хранимой процедуры, либо другим методом перебора (в php), либо (лучше) нормализовать данные, чтобы в одной строке было только одно слово, тогда можно будет использовать оператор GROUP BY.

II. Если выхотите посчитать количество одинаковых фамилий (что я думаю вы и хотите), то базу данных опять же лучше нормальзовать по такому принципу:

1. Самое длинное слово в строке брать за фамилию, если оно не оканчивается на «ич», «еч» и другие характериные для отчества окончания, в противном случае брать следующее наиболее длинное слово в строке.
2. Самое короткое слово в строке брать за имя.

Эти данные записать в таблицу с колонками Фамилия и Имя (или какой-то другой подходящий формат) при этом можно сохранить ключи на исходные заиписи. После чего по полю Фамилия можно использовать GROUP BY.

Как-то так. Ваша проблема в ненормализованных данных.
Вопрос: С чего начать изучение C#?

Лучший ответ:
С поступления на математический факультет университета.

Худший ответ:
Геймдев не совсем с программированием связан
Вопрос: Торрент-клиент с нормальным мемори-менеджментом под Windows?

Лучший ответ:
uTorrent 2.0.2 (build 19648), использует 40Мб памяти. 79 раздач (5 активных), 3 закачки (1 из них — файл больше 10Гб).

Худший ответ:
Жёсткий диск себе нормальный купите и держите свободной (как положено) половину диска.
Плюс идиотизм с заниженными IO назад верните к исходной.

Жрать память может только из-за ошибки (у нас не жрёт) или из-за невозможности сброса на диск.
Вопрос: Ищу компонент блога статей из нескольких категорий для Joomla 1.5

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

Худший ответ:
А разве этого нет в стандартной поставке? Создаёте пункт меню с нужными настройками.
Вопрос: Какой светодиод самый мощный из доступных? Cree?

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

Худший ответ:
У Cree ежегодно повышается светоотдача новых светодиодов. Смотрите на офф. сайте.
Вопрос: Как правильно сравнить числа в JS?

Лучший ответ:
var b = parseInt($('#bb').val());
var f = parseInt($('#bonus_card').val());
не по теме вопроса, вместо$('#sub_minus').attr('disabled', 'disabled')
пишите$('#sub_minus').prop('disabled', true);
и$('#sub_minus').removeProp('disabled');
соответственно.

Худший ответ:
spoiler(function () {
    var message = $('#sub_minus_info');
    var limit = $('#bb');
    var button = $('#sub_minus');
    $('#bonus_card').on('change paste keyup', function() {
        var current_value = +$(this).val();
        var max_allowed = +$(limit).val();
        var is_disabled = current_value < 0 || current_value >= max_allowed;
        $(button).prop('disabled', is_disabled);
        $(message).html(is_disabled ? '<div>не более <b>'+ max_allowed +'</b> баллов</div>' : '');
    });
})();jsfiddle.
Полезно прочитать: JS Garden
Вопрос: Удаление неиспользуемых файлов на хостинге

Лучший ответ:
Как вариант найти файлы, к которым не было обращения определённое время. В этом поможет find (я так понимаю, что хостинг на unix?). -exec удалит файлы. 
find ./ -used кол-во_дней_тому_назад -exec rm '{}' \;

Худший ответ:
Кстати,  можно еще проверить сайт программой Xenu's Link Sleuth (home.snafu.de/tilman/xenulink.html). Проверить, что запрашивается. Потом можно пропарсить и выявить неиспользуемые файлы.
Вопрос: Есть ли толковый php framework для SAAS?

Лучший ответ:
Не нужно путать теплое и мягкое. SaaS ни какого отношения к коду не имеет. Это всего лишь одна из форм распространения/продажи ПО. На чем он написан дело десятое.

Поэтому ответ нет. Такого фрейворка не существует по определению.

Худший ответ:
1. Более высокой степени абстракции.
2. Решения по поводу организации БД и MVC

Допустим, в ZF есть решения по ACL. Без них тоже можно было бы жить и работать, но с ними проще.
Так и в этом случае, мало-ли уже созданы соответствующие решения. Хотелось бы этот вопрос разъяснить, чтобы не изобретать велосипед, который, уверен, у меня получится хуже, т.к. опыта по созданию SAAS у меня нет.
Вопрос: Почему именно Си и Асм — языки для программирования МК и аппаратных средств?

Лучший ответ:
Потому что C и Asm дают полный контроль над ресурсами и позволяют скомпилировать минимальный по объёму код. Попробуйте запустить эрланг-машину на микроконтроллере с 64 килобайтами памяти или обеспечить точную выдержку временного интервала если лисп-интерпретатор решил заняться сборкой мусора.

Худший ответ:
чем меньше абстракций, тем меньше итоговый файл, тем меньше требование к железу. На С и asm можно получить готовую программу, которая займёт места меньше, чем "Hellow World" на других языках
Вопрос: Какие книги стоит прочитать начинающему программисту, чтобы понять все тонкости программирования?

Лучший ответ:
Как по мне, не стоит забивать себе голову изучением алгоритмов и основ программирования. Для начинающего главное - понять что умеет выбранный им язык программирования, какие задачи поможет выполнить, какие функции в нем существуют. Главное - опыт. Ну а потом на досуге уже как-нибудь Совершенный код - Макконнелл

Худший ответ:
C#:
Г. Шилдт - Полное руководтсво C#
T-SQL:
М.Грубер - Понимание SQL
Вопрос: Сервис облачного хранения файлов наподобие Dropbox, дающий прямые ссылки на загрузку файла

Лучший ответ:
Вопрос старый, но все же может кому-нибудь пригодиться: вы можете использовать сервис https://rocld.com, и с помощу него взять з облака прямую ссылку... Пробовал на "Маил.ру", "Яндекс.Диск" и "Дропбокс" на все публичние файлы дает прямые ссылки...

Худший ответ:
Яндекс Диск?
Вопрос: Как в js определить, поддерживаются ли браузером определенные функций и/или атрибуты?

Лучший ответ:
Попробуйте Modernizr. 
На Хабре даже есть статья по его использованию.

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

// @url https://gist.github.com/373874
if ($.support.transition) {
  $('html').addClass('csstransitions');
} else {
  // fallback
}
Вопрос: Каким образом с технологией ASP.NET MVC соотносятся языки программирования С# и VB.NET?

Лучший ответ:
У веб приложения есть две части - клиентская и серверная. Клиентская - это веб страничка, которую пользователь видит в браузере. Серверная - это то, что генерирует на сервере эти странички, которые загружаются у пользователя на клиенте (в браузере). 
Клиентская часть - это HTML, CSS и JavaScript - то бишь те технологии, которые используются для создания обычных веб страниц. При этом на сервере могут быть использованы очень разные стеки технологий. В частности для стэка .NET - есть IIS (веб-сервер для хостинг-серверов на базе Windows), на котором работает ASP.NET (это веб фреймворк для генерации веб страниц) с использованием языка программирования С# или VB.NET. 
Пример другого стека на сервере: веб-сервер Apache (обычно на хостинг сервере на базе Linux), на котором работает скажем веб-фреймфорк CakePHP с использованием языка программирования PHP. 
Еще один пример: веб-сервер Passenger (на хостинг сервере под управлением операционок семейства Unix), на котором работает веб-фремворк Ruby on Rails, где разработку вы ведете на языке программирования Ruby. 
Есть подобные серверные комбинации для других языков программирования - Python, Java и тп. 
И если в случае .NET стэка (где один по сути производитель всего - и операционнки и веб сервера и веб фреймворка и языка программирования - это Майкрософт), то другие лптформы позволяют составлять больше комбинаций. 
Например, для языка программирования PHP есть много разных веб фреймворков. Для других языков - тоже. Даже для языков С# и VB.NET есть ASP.NET WebForms (раньше его наывали просто ASP.NET) и ASP.NET MVC (сюда же я бы отнес вариацию фреймворка для создания API - Web API). Для многиэ стэков есть много разных веб-серверов, веб-времворков и соответственно можно использовать много вариантов связок ОС - ВС - ВФ - ЯП
На счет "Пишем сайт на VB.NET" это скорей всего значит - пишем на VB.NET веб приложение, которое будет использовать один из веб фремворков (либо ASP.NET WebForms либо ASP.NET MVC). 
Надеюсь, мне удалось внести ясность в терминологическую кашу, окружающую нас. К сожалению, даже в википедии я часто вижу эту кашу и кто-то начинает называть ASP.NET языком программирования. Это не так.

Худший ответ:
ASP.NET MVC это не язык. Это часть .NET Framework для веб разработки в рамках архитектуры MVC( есть еще Web Forms, но он медленно и верно отмирает). Для разработки на ASP.NET MVC нужно использовать .NET совместимый язык(99% - что C#) - в частности для кода контроллеров используется C#. Для View - html/css/js, но и там торчат уши C# или VB.NET. На каком языке написан код модели - немного отдельная песня. В теории ничто не мешает загрузить сборку на каком-нибудь другом языке и использовать рефлексию, но все же лучше и проще использовать .NET проекты.