Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Почему так происходит и как делать правильно?

Лучший ответ:
Нет, потому что switch <- ch ждет занчений от канала. Ты туда шлешь 2 значения он их и выбирает. Если бы ты слал что то еще.

https://play.golang.org/p/BbaNt4NZm23

Наверно вы хотели сделать нечто подобное

https://play.golang.org/p/KSGAzw6Olfz

Худший ответ:
Чтобы получить тот результат, который вы ожидаете, нужно использовать select вместо switch.
Обратите внимание на хороший пример https://tour.golang.org/concurrency/6
Работающий пример вашей реализации
package main

import (
	"log"
	"time"
)

func add(ch chan<- string) {
	for {
		time.Sleep(time.Second * 2)
		ch <- "hi"
	}
}

func exit(ch chan<- string) {
	time.Sleep(time.Second * 5)
	ch <- "close"
}

func main() {
	ch := make(chan string, 1000)

	go add(ch)

	go exit(ch)

LOOP:
	for {
		select {
		case val := <- ch:
			switch val {
			case "close":
				log.Println("Close")
				break LOOP
			case "hi":
				log.Println("Hi")
			}
		default:
			log.Println("Default")
			time.Sleep(time.Second * 1)
		}
	}
}

https://play.golang.org/p/m1R8CXNKEYq
Вопрос: Как перенести индивидуальные (Не Глобальные) модули ноды из папки с проектом в другую папку?

Лучший ответ:
Не надо переносить эту папку. Разворачивайте все с нуля через npm без мучений

Худший ответ:
В новой npm версии это исправят, папка node_modules не будет создаваться в папке с проектом
Вопрос: Как позвонить бесплатно с ПК на телефон?

Лучший ответ:
Скайп?

Худший ответ:
Телеграм
Вопрос: Достаточно ли безопасен этот скрипт загрузки изображений на сервер?

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

Плюс желательно переменовывать файл целиком, потому что к примеру веб-сервер апач может принять за расширение файла то, что им не является.

Худший ответ:
самый простой способ это не загружать изображение как есть, а изменить его размер с помощью gd/imagick и сохранить если модификация не вызвала ошибок. ну и выдать файлам права 0644 чтобы их нельзя было выполнить.
Вопрос: На каком языке CMS сайта будет работать быстрее?

Лучший ответ:
Скорость работы сайта зависит от разработчика, ну и от хостинга разумеется.

Худший ответ:
1. Рендеринг страниц в статичный HTML на бэке (+сжатие gzip) - самый быстрый вариант отображения статичного контента в браузере.
2. Динамические запросы - периодическое автонаполнение кеша ответов (или шаблонов ответов) на популярные запросы с разграничением по типам доступа: личный акк, группа пользователей, все остальные.
3. По скорости обработки в плане языков - почти все одинаковы. Сложная обработка данных выносится в микросервисы, написанные на C/C++/Go, умеющие работать в самоуправляемом асинхронном режиме с заданной производительностью.
Вопрос: Visual studio,Vs code или Monodevelop?

Лучший ответ:
Rider. Потому что там поддержка юнити от самих производителей IDE.
Если не Rider - то VisualStudio + ReSharper.

Худший ответ:
Если есть возможность, то купите что-то типа Rider'a, хотя по мне он как-то тяжеловат. 
Использую уже несколько лет VS Code и он отлично себя показал: скорость, куча плагинов и настроек, темы оформления и прочее. С Unity полностью коннектится, всё подсвечивает, автодополняет, показывает рефернсы и т.д. Рекомендую попробовать. До этого использовал Sublime, но были какие-то проблемы в связке с Unity, как сейчас не знаю.
Вопрос: Почему элементы массива не выводятся в консоль в JavaScript, что я делаю не так?

Лучший ответ:
Смотрите консоль браузера, а не консоль в web-интерфейсе CodePen:
uncaught exception: We found an infinite loop in your Pen. We've stopped the Pen from running. Please correct it or contact support@codepen.io.

Ошибка в условии в цикле:
for(var i = 0; a.length; i++)  {

// должно быть 
for(var i = 0; i < a.length; i++)  {

Худший ответ:
В for надо написать i < a.length, а не просто a.length
Вопрос: Из-за чего может быть проблема?

Лучший ответ:
Тут всё элементарно, Ватсон! Нужно менять видеокарту. Скорее всего отвал видео чипа.
Или же пробовать ставить последние, предпоследние, пред-предпоследние и т.д. драйвера на видеокарту. Но вангую, что дело не в драйверах, а в железе.

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

Лучший ответ:
На кой ляд тут регулярки?
Разбиваешь по пробелу и считаешь последний кусок регионом, а первые два - всегда ФИ, как заявлено. 
Предпоследний, если он есть - день рождения, если от него получается ненулевой strtotime.
Если еще что-то осталось - это отчество.

Худший ответ:
$str= explode(" ", "Александрова Мария Николаевна 10.05.2000 197");
echo $str[0]; 
echo $str[1];
PS
У вас получается, что последние два $str всегда числа,первые два имя и фамилия, чтобы уследить наличие отчества считайте на сколько значений разбился массив
Вопрос: Как большой файл обработать по частям?

Лучший ответ:
lesh_a $filename = 'text.txt';

$total = 0;
$buffer = [];

$h = fopen($filename, 'r');

while (! feof($h)) {
    if ($total > 100) {
        // var_export($buffer); // Вывести или выполнить обработку каждых 100 строк
        $total = 0;
        $buffer = [];
    }
    $buffer[] = fgets($h);
    $total++;
}

fclose($h);

if (! empty($buffer)) {
//    var_export($buffer); // Вывести или выполнить обработку оставшихся строк
}

Худший ответ:
Пишешь JS-скриптик, в котором дергаешь аяксом страничку на РНР, передавая ей параметром N и М.
В РНР пропускаешь N * М строк, обрабатываешь следующие М, возвращаешь ОК.
В JS ловишь ответ, увеличиваешь N и запускаешь следующий цикл.
Будет и правильно, и наглядно.
Вопрос: На чем лучше писать на языке Си?

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

Худший ответ:
IDE включает в себя в том числе и текстовый редактор, заточенный именно под создание кода.

В винде MSVS не плох, но имейте ввиду, что компилятор по умолчанию (микрософтовский cl) официально не поддерживает стандарты Си. Возможно поддерживает ANSI C, но тут я не в курсе, т.к. он не актуален. Какие-то вещи из свежих стандартов работают, другие нет, некоторые работают, но не совсем так как в стандарте.
gcc, clang - поддерживают стандарты.
Я использую qtcreator. Его можно использовать даже если в проекте не применяется Qt и нет С++.
Раньше использовал eclipse, но он написан на Java, соответственно тормоза в самый не подходящий момент, изрядно подбешивал этим.

Тут еще важен момент, какую систему сборки использовать. Если используете MSVS + cl, то система сборки будет msbuild ну и там особо заморачиваться не нужно - конфигурируете проект в студии и все применяется как надо, по сути вы и не видите систему сборки, но она есть, как суслики.
Так же MSVS поддерживает и другие компиляторы и системы сборки, например cmake, но тут уже придется изучать язык управления системой сборки и писать свои сборочные скрипты.
В qtcreator по умолчанию используется qmake, так же умеет из коробки cmake. То же нужно писать сборочные скрипты.
Eclipse - тут можно без системы сборки, через свойства проекта все делать. Eclipse сам все соберет. Но местами довольно запутано, хотя быстро привыкаешь. Кроме того в конце концов вам понадобится собрать проект без IDE (например у заказчика), вот тут вам и понадобится система сборки, которой вы не обзавелись в Eclipse и придется как-то выходить из положения. Я писал makefile в этом случае, мне казалось это самым простым вариантом. Сейчас я так не думаю - проще сразу делать проект используя какую-то систему сборки. В том числе и по этому отказался от Eclipse.
Вопрос: Open Source клиент для работы с Microsoft Exchange?

Лучший ответ:
OWA используйте

Худший ответ:
"Кто продаёт запах от блюда - получает звон от денег" (с)

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

Лучший ответ:
Ребята из JetBrains снимают видео и даже на конференциях выступают
Вот пример: Антон Архипов — Эффективная работа с IDE(A)
С этого видео кучу всего себе внедрил именно по хоткеям, тк тоже Макбук и тоже места мало, в итоге и на работе все хоткеями настроено... дебаг, тесты, терминалы, БД, Вагрант, да все хоткеями. Плейлист кучи мини-видео от самой JetBrains по разным применениям (дебаг, сборщики, рефакторинг)

Худший ответ:
исследуй функционал, работай, смотри как другие пользуются и со временем все прийдет. 
по поводу горячих клавиш, запомнить такое большое количество это конечно не просто - я рекомендую использовать двойные хоткеи, когда ты вызываешь комманду при нажатии поочереди 2х хоткеев, это позволяет сильно упростить запоминание, тк можно горячие клавиши объеденять в группы, по функционалу. 
ну например ctrl+s (группа работы с файлами) затем клавиша вверх (открыть проект) либо клавиша вниз (закрыть проект) клавиша вправо (сохранить), влево (синхронизировать), ну и по схожей схеме настроить все необходимые группы
Вопрос: Является ли ruby вымирающим языком?

Лучший ответ:
Недавно вышла версия 3.0.0, предыдущая была 2.7.2. Странная смерть.

Худший ответ:
Пацаны, так Ruby умер или нет?
Спойлер: скорее всего - да.
Вопрос: Возможно ли скомпилировать приложение для iOS в AndroidStudio?

Лучший ответ:
Нет. 
Вам для этого придется установить xCode скорее всего. Особенно если нужно грузить в стор.

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

Лучший ответ:
Это не то чтобы ответ, просто мысли на тему.
Вряд ли найдёте что-то толковое, SEO - очень конкурентная ниша, в которой очень много магии, а также дремучего идиотизма. 
До сих пор встречаются уникумы, требующие, чтобы у h1 в разметке не было указано никаких атрибутов (включая class) и прочее в таком духе. 
Лучший способ в одном месте сразу получить нужную информацию - найти какую-нибудь SEO-контору, которая вам кажется профессиональной, и заказать у них аудит сайта, после чего курить документ, который они составят. 

Без этого, всё что вы можете сделать: 

Следить за семантикой (использование к месту правильных тегов вместо диватоза, туда же ссылки вместо кнопок);
Сделать графический контент максимально доступным для поисковиков (alt'ы изображений (можно через figure и figcaption), альтернативное описание SVG-графики)
Сделать текстовый контент максимально доступным для поисковиков (верная структура заголовков, использование микроформатов там, где уместно).
Следить за скоростью загрузки (является одним из факторов ранжирования, а также улучшает поведенческие факторы)
Следить за доступностью (пока вроде как нигде не учитывается, но я верю, что в свете трендов это будет влиять в дальнейшем. Кроме того, доступность - это не только про людей с ограниченными возможностями, это также улучшает UX в целом, что способствует улучшению поведенческих факторов).

Остальное (манипуляция ссылками со слэшами и без, жонглирование абсолютными и относительными ссылками и прочее) вам в одной конторе скажут делать так, в другой скажут по-другому - а поисковики на прямой запрос ответят "мы не раскрываем детали работы поисковой системы".

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

Лучший ответ:
if a(i-1)<a(i) and a(i)>a(i+1):
: в конце поставь

Худший ответ:
Может я дико туплю но разве тут for I in range (i,len((a)-i)
После for не должна стоять i вместо I?
Если нет то поправьте меня пожалуйста.
Вопрос: Проблемы с заказчиком?

Лучший ответ:
Как провести все бесопасно ?
Через Апворк. Иначе потенциальный бан.

Худший ответ:
За битки забанят на upwork.
Вопрос: Как ускорить docker push?

Лучший ответ:
Можно использовать multi-stage build
Примерно так:
FROM node:lts-alpine as build
WORKDIR /app
# копируем исходный код
COPY ./ ./
# устанавливаем зависимости
RUN npm ci
# Компилируем приложение
RUN npm run build
# оставляем только production зависимости
RUN npm ci --prod
# опционально удаляем из исходников всякие тесты, ts-файлы и т.п.

FROM node:lts-alpine as app
WORKDIR /app
# копируем сначала node_modules
COPY --from=build /app/node_modules ./node_modules
# а потом всё остальное
COPY --from=build /app ./
# и запускаем
CMD [ "node", "/app/app.js" ]

В результате, если не меняется файл package-lock.json (т.е. не меняются зависимости прода), то слой созданный в команде COPY --from=build /app/node_modules ./node_modules будет взят из кэша. А это и есть все наши 400 мегабайт зависимостей.

живой пример
Это второй запуск после изменения приложения и версии в package.json, но без изменений зависимостей. Тут видно, что шаг 4 сборки честно выполнился, но при этом шаг 9 (копирование node_modules) взят из кэша, т.к. папка node_modules не поменялась.
$ docker build .
Sending build context to Docker daemon  6.656kB
Step 1/11 : FROM node:lts-alpine as build
 ---> 1c342643aa5c
Step 2/11 : WORKDIR /app
 ---> Using cache
 ---> 01d641ac9d8b
Step 3/11 : COPY ./ ./
 ---> 2a369bda0312
Step 4/11 : RUN npm ci
 ---> Running in 5becac2f9f07
added 2 packages in 1.914s
Removing intermediate container 5becac2f9f07
 ---> c010ba772a08
Step 5/11 : RUN npm run build
 ---> Running in de6fd7f872a5

> docker-node@1.2.3 build /app
> echo building app

building app
Removing intermediate container de6fd7f872a5
 ---> dc80bc125954
Step 6/11 : RUN npm ci --prod
 ---> Running in 825f86a54af5
npm WARN prepare removing existing node_modules/ before installation
added 1 packages in 0.079s
Removing intermediate container 825f86a54af5
 ---> a00a029b86dc
Step 7/11 : FROM node:lts-alpine as app
 ---> 1c342643aa5c
Step 8/11 : WORKDIR /app
 ---> Using cache
 ---> 01d641ac9d8b
Step 9/11 : COPY --from=build /app/node_modules ./node_modules
 ---> Using cache
 ---> 81d587ccf147
Step 10/11 : COPY --from=build /app ./
 ---> bb40061f06b6
Step 11/11 : CMD [ "node", "/app/app.js" ]
 ---> Running in e6b9e08d9d8f
Removing intermediate container e6b9e08d9d8f
 ---> eceb38619009
Successfully built eceb38619009


Худший ответ:
Я человек практический, поэтому не верю что могу изобрести велосипед, который 
1) будет работать принципиально лучше чем существующие
2) станет общепринятым

Поэтому я за multi-stage build, плюс можно выделить в отдельные слои "постоянные" и "переменнные" пакеты.
Обычно есть 80% пакетов 3rd party, они постоянные, и немного своих которые меняются.
Вопрос: GreenSock или anime.js?

Лучший ответ:
GSAP | Anime

----
Однозначно для сложных GSAP

Худший ответ:
очень сложный с анимационной части сайт
Ну "очень сложный" - понятие растяжимое. Если нужен сложный морфинг или физика в 2d - однозначано берите GSAP, у него есть готовые плагины для этого (а значит не нужно думать об интегрировании чего-то со стороны). А так в большинстве повседневных задач вы разницы между этими инструментами не заметите, тут скорее на вкус и цвет: GSAP - это более "энтерпрайзно-замороченный" инструмент с кучей кнопок, а anime.js скорее ближе к unix-way - маленький и решающий одну задачу.
Вопрос: Данные пользователя и размещение серверов для их хранения, как обойти закон не нарушая?

Лучший ответ:
не во многих

просто не собирать

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

Лучший ответ:
#ifdef _WIN32
  #include <winsock2.h>
#else
  #include <sys/socket.h>
#endif
И так же, в макросы завернуть WSAStartup и WSACleanup Для общих задач может вполне хватить.

Худший ответ:
Всем привет, нигде не нашел информации, знаю что на Си есть winsock.h но мне нужно что бы и под Lинукс было.
"winsock.h header This header is used by Windows Sockets 2." (с) Microsoft.
В Линуксе проще воспользоваться каким-нибудь mailutils.
Вопрос: Какие есть бесплатные или не очень места для сконцентрированной фриланс-деятельности?

Лучший ответ:
Это называется "коворкинг".

Худший ответ:
Пытаюсь заработать фрилансом. 
О, это явно что-то моё :3мне таким образом необходимо отдельное место для работы. 
Минуточку... Вы либо крестик снимите, либо трусы наденьте.Можно работать в офисе на кого-то
А на фрилансе вы работаете не на кого-то?Какое можно найти место уединения меня и ноутбука, такое, где ничто не отвлекало?
Ближайший лесопарк. Я не шучу.Единственное, что приходит первым на ум, также снять офис. 
Тут я откровенно взбугагировал.
По теме: кроме парка или лесочка можете ходить в какой-нибудь Макдональдс. Рядом люди, не одиноко, заодно и присмотритесь, может, профессию смените. Нет, серьёзно, кафешки и забегаловки могут спасти отца русской демократии, только постоянно в одну не ходите. Плюс с зарплаты можно купить смузи и медленно его потягивать на глазах у всех, прямо как в рекламе.
Вопрос: Что происходит при вводе в git команды HEAD?

Лучший ответ:
Все гитовые команды начинаются со слова git - git add, git commit, git log, git push.
В контексте гита, HEAD - это алиас на текущий коммит. Т.е. это вообще не команда. Можно например написать git show HEAD - увидеть текущий коммит.
Но в вашей системе кроме гита есть много других команд (программ). Одна из них и называется HEAD. Так совпало.

Худший ответ:
Все гитовые команды начинаются со слова git - git add, git commit, git log, git push.
В контексте гита, HEAD - это алиас на текущий коммит. Т.е. это вообще не команда. Можно например написать git show HEAD - увидеть текущий коммит.
Но в вашей системе кроме гита есть много других команд (программ). Одна из них и называется HEAD. Так совпало.
Вопрос: Разработка игр с Unity без Unity редактора. Возможно ли?

Лучший ответ:
Какую то часть - можно. Если вам ВООБЩЕ в игре не нужен визуал (игра для слепых) - то в принципе 90% задач там решается через код.
Если визуал нужен, то уже будет сильно сложнее, но все еще не невозможно. 

Но если резюмировать - то юнити для "написания игр ТОЛЬКО кодом" - не лучший выбор.

Худший ответ:
Нужно понять: какие действия невозможны в коде без GUI Unity, как это именно происходит и портировать всю работу (drag-n-drop привязки, смены свойств и т.д.) из GUI в "чистое" API.
Сложно? Да.
Возможно? Однозначно!
Вопрос: Насколько защищена представленная конструкция php?

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

Также код можно сильно сократить. Уже сто лет как в РНР есть сокращенный вариант проверки на isset, плюс можно сразу прервать выполнение, и не делать лишнюю вложенность
<?php

$login = $_POST['login'] ?? '';
$password = $_POST['password'] ?? '';
$hash = '$2y$10$e6RRGG8zFvsE6Bl7at/Vx./igFslOmnLo6poA6N1QoNWrgrkedHqO';

if ($login !== 'login' || !password_verify($password, $hash)) {
    die('Неверный логин');
}
echo 'рендер кода страницы с формами для создания новых файлов на сервере';

Закрывающий тег тоже не нужен

Худший ответ:
Я лично привык доверять только регуляркам!)
И юзать preg_match() и подобные..
Вопрос: Где в реальном мире можно встретить симметричные матрицы?

Лучший ответ:
Шахматное поле.

Худший ответ:
Любой объект.
Т.к. он равен любой единичной матрице.
А единичная - также является квадратной, а она - симметричной.
Т.е. (1) - это симметричная матрица.

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

Примеры: бабочка, ложка, плитка, зонт, сумка, карандаш/ручка, рюкзак, любой экран правильной формы, любая часть окна, ящик, любая часть сетки/решётки, человек, и т.д.
Вопрос: Как лучше оптимизировать и сделать мой код на JavaScript красивее и короче?

Лучший ответ:
Sp1keazyYT вы бы дали пояснение к коду, что он должен делать. Потому что сейчас он написан так, что при любом ненулевом значении roofpt, значение Price2 будет равно 7900, соответственно второй else if просто бессмыслен.
Поэтому, если именно этот код переписывать, то можно так:let Price2 = 0;

if (!roofpt) Price2 = 5500;
else Price2 = 7900;
или такlet Price2 = 0;

Price2 = (roofpt) ? 7900 : 5200;

Худший ответ:
Если это практическая задача, а не собеседование с глубоко зарытыми подвохами, то так:if (!roofpt) Price2 = 5500; // null, 0, undefined, false, пустая строка
else if (roofmat == 1) Price2 = 7900; // и так известно, что не пустое
else if (roofmat == 2) Price2 = 8900; // и так известно, что не пустое
else Price2 = 0; // по умолчаниюЕсли же это из собеседования
В исходном коде есть такая деталь. Приоритет операторов в JS ставит && выше, чем ||. Эти два условия выглядят похоже, имелась в виду, наверное, лишняя перепроверка на null/ноль:(roofpt  == null || roofpt  == 0) 
(roofpt !== null || roofpt !== 0 && roofmat == 1)
Но сначала &&, потом ||:A || B && C === A  ||  (B && C)
// и второе условие на деле считается так:
(roofpt !== null || (roofpt !== 0 && roofmat == 1))
Т.е. второе условие выполнится и просто при любом rootpt,  неравном null.
Тут же ещё одна деталь. Нестрогое равенство == и строгое неравенство !==. Разжёвывать не буду, чтобы вы провалили собеседование.
Вопрос: Как сохранить файл из потерянной машины?

Лучший ответ:
Монтируете виртуальный диск машины куда-нибудь в рабочее окружение - и скачиваете.

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

Лучший ответ:
Там данные подгружаются и обновляются в динамическом режиме
Гуглите парсинг динамических данных

Худший ответ:
Посмотрите в сторону php phantomjs, вроде он подходит под парсинг страниц с динамическим содержимым
Вопрос: Что такое CAPsMAN с точки зрения клиента?

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

Чем он отличается от двух-трёх точек доступа с одинаковым SSID?Тем же чем отличается пастух от стада баранов.
Управляет он ими.

Худший ответ:
С точки зрения клиента, капсман - это одна точка доступа
Когда вешаете несколько с одинакомым ssid - для устройства это разные точки
Тк у всех точек свой мак
Вопрос: Есть ли у кого маленькая шпаргалка по перебору связного списка?

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

Худший ответ:
В каких случаях надо использовать условие while(list != null) и while(list.next != null)
Смотря что нужно. Можно использовать и то, и то.
/* предполагая, что где-то в цикле есть list = list.next */
Условие while(list != null) означает "двигайся по списку, пока не выйдешь за последний элемент".
Условие while(list.next != null) означает "двигайся по списку, пока не дойдешь до последнего элемента".
Соответственно, в зависимости от задачи надо выбрать или одно, или другое. Сказать однозначно "делай так, а не иначе" просто невозможно.
Вопрос: ЯП для информационной безопасности?

Лучший ответ:
Пожалуйста, скажи что ты не серьезно! Как можно выбрать специальность посмотрев сериал? А если посмотрел бы Доктора Хауса пошел бы посвятил 1000500 лет своей жизни медицине?

Худший ответ:
Bash
C 
Assembler
Большая часть линуха и программ к нему написана на С. Чтобы уметь писать эксплойты, нужно знать, как строится программа на С, каковы ее общие части, как работают компилятор и загрузчик.