Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Почему логинится под любым возможным паролем?

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

Худший ответ:
Берите пароль из бд, и его проверяйте
Вопрос: Md5 хэш + соль, как соль помогает в усложнении пароля?

Лучший ответ:
Просто нужно создать новую хэш-таблицу в 20 миллиардов и всё? Ведь это делается за секунды.
1. Даже просто выделить память на 20 миллиардов хешей займет далеко не секунды.
2. Не секунды займет записать их на диск.
3. Соль нужна для того, чтобы нельзя было использовать РАНЕЕ сгенеренную хеш таблицу.
4. md5 не самый лучший хеш на сегодня - можно использовать более трудоемкое хеширование, которое будет генерироваться медленнее.

В общем соль нужна именно для того, чтобы обеспечить противодействие радужным таблицам. Все.

Худший ответ:
Предположим, у нас есть база на миллион хешированных неизвестных паролей, мы хотим перебрать миллион вариантов паролей, чтобы найти их среди хешированных.

Если хеши не солёные, то мы за миллион операций хеширования пароля найдём все подходящие пароли в нашей базе. Более того, если у нас уже есть готовые подборки хешей, то мы даже считать ничего не будем, просто поищем эти хеши.

Если хеши солёные, то нам для того же самого придётся сделать уже триллион операций хеширования пароля. Причём нам не погогут готовые таблицы хешей. Кстати, там все пароли могут быть вообще одинаковы, но мы этого даже не увидим, ведь хеши же будут разные.

Таков общий принцип. Вопрос уязвимости md5 сейчас не рассматриваем, тем более что солить можно при любом алгоритме хеширования.
Вопрос: Настройка маршрутизации на openvpn?

Лучший ответ:
> Задача что бы
> Мне нужна что бы
https://chtoby-pravilno.ru/chtoby/
> могу заходить на все машины по ip: 192.168.0.* и 1.0push "route 192.168.0.0 255.255.255.0"
push "route 192.168.1.0 255.255.255.0"
в конфиг сервера
И маскарадинг на VPN-сервере для tuniptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE

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

Лучший ответ:
Можно и автореги, но проверяйте с какой страны регистрация и нафармлен ли аккаунт. Если условно страна регистрации Украина, то и с украинского ip стоит работать. Фарм нужен, чтобы хоть какой-то стартовый траст был у аккаунта, иначе при любом подозрительном действии FB будет просить подтверждения личности.

Худший ответ:
Лучше всего покупать старые аккаунты ( Дольше работают ), Ну и обычно проще сделать саморег акки они достаточно хорошо проживают и платить толком ничего не надо
Вопрос: Можно протоколы?

Лучший ответ:
Можно протоколы?
А можно нормально сформулировать вопрос?
Пока что ответить могу так:
- Протоколы можно, разрешаю.

P.S. на закуску

Худший ответ:
протоколы сионских мудрецов
Вопрос: Как сделать круг с 12 картинками расположенными по кругу?

Лучший ответ:
Иконок у меня нету - вставите их в g.sings а дальше обычные координаты по осиX  и по осиY 

snippet

Худший ответ:
Иконок у меня нету - вставите их в g.sings а дальше обычные координаты по осиX  и по осиY 

snippet
Вопрос: Letsencrypt wildcard + bind: как автоматически продлевать сертификат?

Лучший ответ:
Вариант делегировать 3 уровень на внешний dns с поддержкой api не рассматривали? Например, у cloudflare на бесплатном аккаунте есть поддержка dns.

Худший ответ:
Есть возможность автоматизировать этот процесс.
В Сети есть готовые плагины к certbot, позволяющие редактировать DNS у некоторых операторов типа Hetzner, reg.ru etc.
Если готовый не найдете-придется писать самому.
Вот ссылка на официальный каталог https://certbot.eff.org/docs/using.html#dns-plugins но им можно не ограничиваться.
Вопрос: Как сформировать и подписать транзакцию?

Лучший ответ:
Если еще актуально, вроде можно импортировать
from pycoin.networks.bitcoinish import create_bitcoinish_network
network = create_bitcoinish_network(symbol = '', network_name = '', subnet_name = '', 
    wif_prefix_hex="", address_prefix_hex="", pay_to_script_prefix_hex="",
    bip32_prv_prefix_hex="", bip32_pub_prefix_hex="", bech32_hrp="",
    bip49_prv_prefix_hex="", bip49_pub_prefix_hex="",
    bip84_prv_prefix_hex="", bip84_pub_prefix_hex="",
    magic_header_hex="", default_port=)
и собрать нетворк. Ну а дальше с помощью network класса вроде и транзакции можно отправлять и блоки формировать.

Худший ответ:
Если как я понял то можно использовать этот код ( Исходник)

pip install bit.

from bit import PrivateKey

# Приватный ключ из wif
my_key = PrivateKey(wif='L46ixenNSu8Bqk899ZrH8Y96t8DHqJ1ZyxzQBGFTbh38rLHLaPoY')

# Количество долларов перевода, можно поменять на btc
money=0.1

# Кошелек куда будут переведены деньги
wallet='17ya3bCpPioyPH8kAyFkEDBUqdjF6wwPxo'

# Коммисия перевода, если поставить слишком маленькую, то транзакцию не примут
# И чем больше коммисия, тем быстрее пройдет перевод
fee=2000

# Генерация транзакции
tx_hash = my_key.create_transaction([(wallet, money, 'usd')],fee=fee,absolute_fee=True)

print(tx_hash)

# Потом делаём это 

import requests

url = 'https://blockchain.info/pushtx'
tx='0100000001fe64490fce5e85d5eb00865663a3d44f4108549fdb2840b086cfc781390d4a2d010000006a47304402202dc1496d28bb10d50d94d70870e2a79ea472c5960de8f7418bb30f9b96643efc02204691547c98edad3181a056bf6404601efe289200ba8e3073a2f5b7c0c7f4fec10121026516c551584b484ce3ca7bb71bbf24cce133bf40bdf4e2ce5a3936bc7e66a2abffffffff02e3020000000000001976a9144c83a20250ccb62ce2b3b1ea80c6082b634fdf9f88ac08f40200000000001976a9144c83a20250ccb62ce2b3b1ea80c6082b634fdf9f88ac00000000'
x = requests.post(url, data = {'tx':tx})
result = x.text

print(result)
Вопрос: Ломают мой хостинг? Как защитить, основываясь на логах?

Лучший ответ:
Это просто автоматический скан на наличие шелла. Беспокоиться пока не о чем. Но если не спится спокойно, можешь перепроверить директории на наличие неизвестных и подозрительных файлов.

Худший ответ:
Как вариант - закрыть все не нужные порты, поставить антивирь с антималварем. Настроить по крону очистку папок, которые не нужны, раз в 5 секунд. Хонейспот при обнаружении get запросов от новых клиентов. Fail2ban. И регулярный аудит безопасности в режиме паранои.
З.Ы. вам повезло - только одна запись. Когда мне пытались взломать сайт в логах хостера было 60 попыток. Яндекс увидел 20 заходов.
Вопрос: Можно ли как-то заменить стрелочную функцию?

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


Babel приведет это к такому виду

function getFIO(name, surname, patronymic){
  this.name = name;
  this.surname = surname;
  this.patronymic = patronymic;

  var that = this;

  this.sayHello = function() {
    console.log(`Меня зовут ${that.surname} ${that.name} ${that.patronymic}`);
  }
}

Худший ответ:
Стрелочная функция это просто синтаксический сахар для привязки контекста выполнения функции.
Давайте по порядку. До ES2015 писали вот так:
function getFIO(name, surname, patronymic) {
  this.name = name,
  this.surname = surname,
  this.patronymic = patronymic,
  this.sayHello = function() {
    console.log(`Меня зовут ${this.surname} ${this.name} ${this.patronymic}`);
  }
}

var getFio = new getFIO('Юрий', 'Горячев', 'Александрович');
getFio.sayHello();
И все прекрасно работало до тех пор пока мы не начинали вызывать функцию `sayHello()` с другим контекстом. Например:
var getFio = new getFIO('Юрий', 'Горячев', 'Александрович');

var sayHello = getFio.sayHello;
sayHello() // в this теперь не объект getFio, а undefined

// или

someElement.addEventListener('click', getFio.sayHello, true) // контекст опять потерялся
Чтобы это исправить в конструкторе класса явно сохраняли контекст и передавали в функцию через замыкание:
function getFIO(name, surname, patronymic) {
   var that = this // сохранили контекст в локальной переменной

  this.name = name,
  this.surname = surname,
  this.patronymic = patronymic,
  this.sayHello = function() {
    console.log(`Меня зовут ${that.surname} ${that.name} ${that.patronymic}`); // теперь как бы ни вызвали эту функцию она всегда будет брать контекст из замыкания
  }
}

// или

function getFIO(name, surname, patronymic) {
   var sayHello = function() {
    console.log(`Меня зовут ${this.surname} ${this.name} ${this.patronymic}`);
  }

  this.name = name,
  this.surname = surname,
  this.patronymic = patronymic,
  this.sayHello = sayHello.bind(this) // явно указываем контекст выполнения функции
}

Чтобы избавится от этих проблем ввели стрелочные функции которые сохраняют контекст в котором они были объявлены.
Вопрос: Как заменить картинку на видео?

Лучший ответ:
Оптимизация iframe
В статье приведен ваш пример.

Худший ответ:
как вариант - link
Вопрос: Избранное на статичном сайте?

Лучший ответ:
Можно, local storage. Есть библиотека для корзины simplecart.js , понять за 10 минут можно, интеграция легкая, прописать классы и всё. Дальше только переименовать корзину в избранное , суть одна и та же https://github.com/wojodesign/simplecart-js

Худший ответ:
Если совсем без регистрации, то только localstorage, но такой вариант избранного будет работать только на том браузере запущенном на том компе в котором данное "избранное" заполнялось.

Если же вы хотите чтобы пользователь заполнив избранное на одном компе/браузере мог его посмотреть на других компах/браузерах тогда вам надо:

1. Реализовать любую идентификацию пользователя. Вот некоторые варианты:
- по логину/паролю
- по id одной из соцсетей

2. Использовать для хранения "избранного" пользователем любой онлайн сервис, позволяющий хранить и читать данные. Вот несколько вариантов:
- Firebase  - облачная СУБД класса NoSQL, позволяющая разработчикам приложений хранить и синхронизировать данные между несколькими клиентами. Основной набор функций бесплатен.
- CloudBoost.io Служба баз данных со множеством полезных функций. Бесплатная. обеспечивает поддержку вашего приложения, включая хранение данных, аутентификацию пользователей, уведомления в режиме реального времени, поиск и многое другое.
- аналоги этих двух онлайн сервисов
- написать самому простейший CRUD и разместить его налюбом nodejs хостинге. Например используя Express.js. Вот даже нашел статью как такой crud написать.

Если же вы прикрутите
Вопрос: Как организовать надёжную систему хранения бекапов?

Лучший ответ:
Ваше изобретение является RAID  в режиме зеркала и не годится для бекапа, потому что все что происходит с данными на диске 1 будет повторено на диске 2, в том числе и удаление (кривыми руками) или визит шифровальщика (который попал в систему из-за кривых рук).

Нормальный бекап вашего объема состоит из дифференциального бекапа раз в сутки и полного по выходным (который и становится новой базой для диффов за неделю).

Бекап, как правило, делают на RAID с компрессией, дедупликацией и Erasure Coding - например, на ZFS.
При бОльших бюджеах, бекап делают на лентах.

Худший ответ:
Вы только что изобрели RAID1. Но спасёт он только от физической поломки одного из носителей.
Вопрос: После отключения CSM биос не видит диски?

Лучший ответ:
Видимо, эти диски записаны не в режиме UEFI, а в режиме BIOS/CSM/MBR. Разумеется, если отключить CSM, то и с дисков этих загрузиться не получится.
Без форматирования - можно, если конвертировать системный диск в GPT и пересоздать на нём загрузчик, некоторые сторонние программы могут это сделать. Средствами винды - диск в GPT преобразовать нельзя, пока он не пустой.

Худший ответ:
Ненадо вам вин11. 
Сидите на вин10 и не  жужжите. Слишком рано. Года через 2-3
Вопрос: Как вывести нужные данные с XML файла Python скриптом?

Лучший ответ:
from lxml import etree

xml = '''ВАШ XML'''

parser = etree.XMLParser(
    encoding='utf-8',
    recover=True,
)
root = etree.fromstring(xml.encode(), parser=parser)
address = root.xpath('.//address')[0].get('addr')
cpe = root.xpath('.//cpe')
for im in cpe:
    print(f'{address} : {im.text}')
45.33.49.119 : cpe:/h:hp:p2000_g3
45.33.49.119 : cpe:/o:linux:linux_kernel:2.6.32
45.33.49.119 : cpe:/o:linux:linux_kernel:2.6
45.33.49.119 : cpe:/o:linux:linux_kernel:3
45.33.49.119 : cpe:/o:linux:linux_kernel:2.6.32
45.33.49.119 : cpe:/h:ubnt:airmax_nanostation
45.33.49.119 : cpe:/o:linux:linux_kernel:3.7
45.33.49.119 : cpe:/o:linux:linux_kernel:2.6
45.33.49.119 : cpe:/o:linux:linux_kernel:3
45.33.49.119 : cpe:/o:linux:linux_kernel:3
45.33.49.119 : cpe:/o:linux:linux_kernel:3.3
45.33.49.119 : cpe:/o:linux:linux_kernel:2.6
45.33.49.119 : cpe:/h:infomir:mag-250
45.33.49.119 : cpe:/o:ubnt:airos:5.2.6

Если нужен только первый- то вместо цикла:
print(f'{address} : {cpe[0].text}')
45.33.49.119 : cpe:/h:hp:p2000_g3

Худший ответ:
файл был немножко битый  (во время копирования)
вот пример
from __future__ import print_function
import re
from xml.dom import minidom


xmldoc = minidom.parseString(data.strip())
nodes = xmldoc.getElementsByTagName('cpe')
print(nodes[0].firstChild.data)
nodes = xmldoc.getElementsByTagName('address')
print (nodes[0].attributes['addr'].value)

cpe:/h:hp:p2000_g3
45.33.49.119
Вопрос: Является ли писк блока питания признаком проблем на уровне микросхемотехники или можно еще пожить?

Лучший ответ:
Дроселя свистят у БП. Сколько проработает только сам дросель знает)

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

Лучший ответ:
Один общий контейнер, внутри 3 дива с содержимым. Контейнеру display: flex, нужную ширину, justify-content: space-between.

Худший ответ:
Делай ТЗ, заверстаем :)
Вопрос: С какой профессией легче всего войти в сферу IT?

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

Худший ответ:
По профессии я социологи Подскажите, пожалуйста какую лучше выбрать профессию в сфере ИТ? профессия социолог очень даже востребована в сфере ИТ. Социальные сети и сервисы массового обслуживания бьются за души и персональные данные, а не за качество кода. А как заставить кодеров работать на износ без воодушевляющей корпоративной мифологии? А хакерские группировки, 80% успеха - социальная инженерия.)
Вопрос: Видит ли мобильный оператор перемещения сим-карты в Авиарежиме?

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

В карте нет элементов питания. Если сделать карте рентген, можно убедиться, что 90% ее объема - это пластик, 5% - контакты, остальное - кремниевый чип с памятью и процессором.

Худший ответ:
скорее всего да лучше обесточить это надежнее
Вопрос: Самостоятельное согласование ядра и дистрибутива Linux?

Лучший ответ:
Если нельзя обновить ядро средствами бубунты - то как обычно - скачать исходники, собрать и поставить. Манов по самостоятельной сборке и установке ядра - хоть #опой жуй.

Худший ответ:
также, плюсом к уже ответившим 
есть ppa с веткой более новых ядер.
https://launchpad.net/~canonical-kernel-team/+arch...
Вопрос: Можно ли в CentOS добавлять репозитории вручную?

Лучший ответ:
Конечно, можно. 

/etc/yum.repos.d - сюда кладутся файлы описания репы
/etc/pki/rpm-gpg - сюда ключи

на сайте epel например можно найти инструкцию по установке репы и даже готовый rpm-пакет

Худший ответ:
Установка из репозитория
Всё там есть.
Вопрос: За счет чего живут бесплатные VPN сервисы?

Лучший ответ:
1. Воруют ваши данные, если они передаются незашифрованными;
2. Отслеживают ваши посещения, если VPN подняли спецслужбы;
3. Пихают вам рекламу в HTML;
4. Пихают вам червей, если у вас хватило ума скачать "клиент".
5. Зарабатывают на рекламе на самом сайте;
6. Собирают статистику посещений.

Худший ответ:
Риски есть всегда, даже с самыми доверенными компаниями.
Но вообще нормальные конторы, которые работают на репутацию, а не временную наживу, всякой фигней не занимаются. Обычно там есть какие-то платные услуги. А бесплатные чем-то лимитированы, и это не обязательно трафик. Это может быть, например, возможность устанавливать более, чем 1 соединение одновременно. Или иметь ip во всех странах, а не в 1-2 странах на бесплатном тарифе. И всякое такое.
Всё упирается в доверие. Посмотрите, что фирма такая, сколько существует, какие отзывы и т.д. Если можно использовать OpenVPN или даже нативно настроить винду, то это плюс к доверию в целом (даже если свой клиент есть). Вы сами решаете, кому доверять. Это касается не только VPN, но и вообще всей информационной среды.
Вопрос: Здравствуйте, а кто-нибудь знает, как изменить размер кнопок?

Лучший ответ:
У класса .mbtn необходимо изменить высоту, паддинги, размер шрифта и межстрочный интервал. Что то вроде этого:
.mbtn {
    height: 52px;
    cursor: pointer;
    width: 120PX;
    margin: 0;
    padding-left: 20px;
    padding-right: 20px;
    background-color: #ff9b0d;
    font-size: 18px;
    text-align: center;
    line-height: 52px;
    display: block;
    border-radius: 0.2em;
}

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

Лучший ответ:
Задавать окружающим вопросы. Ртом. Повторять пока не станет понятно

Худший ответ:
Как быстро разобраться в чужом кодировании и полноценно влиться в проект? 
Если коротко, никак. И это как правило не нужно(выстрел в ногу).

Если менее коротко:
При трудоустройстве компания закладывает n-ное количество времени\денег для того что бы вы аккумулировали свой опыт и знания на проект, т.е постепенно влились в командную разработку путем чтения документация, настройки окружения, и тому подобного. В зависимости от проекта, может занимать от пары месяцев, до полугода(если мы говорим про крупный проект кровавого интерпрайза).

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

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

Худший ответ:
Когда скачиваешь готовую верстку в ней бывает много вложений.
Это пример как делать ненужно - обычно такая верстка бывает у неучей, конструкторов сайтов.

В уроках верстки я не видел что бы учили создавать много вложений.
Всё правильно, если у вас вложений разумное количество - значит ваш код более читабельный, и легко маштабируемый.

Подскажите зачем нужны эти вложения и как научиться верстать так как верстают профессионалы.
Что бы верстать как профессионал, нужно просто верстать очень много, и по ходе дела разбирать свой код и анализировать ошибки. Очень часто "профессионалы" пишут такой код, что вы удивитесь насколько он безграмотный.

Для того что бы верстать очень хорошо - webmasters.teamdev.com - ознакомиться с этим ресурсом.
Вопрос: Как сделать подобный визуальный эффект?

Лучший ответ:
анимашка с флажками и снежинками это canvas, вот скрипт
https://hilltopads.com/hilltopads.com_files/js/ani...
three.js
https://threejs.org/examples/#webgl_animation_cloth

Худший ответ:
Реализовано на https://threejs.org/
Сам код
https://hilltopads.com/hilltopads.com_files/js/ani...
Вопрос: Что значит сложность и масштабируемость?

Лучший ответ:
Что значит масштабируемый код? 
Это код который легко "нарастить" - без говнокода и так же модульно, как он и должен быть сделан. Как правило подразумевает под собой использовавшая принципов SOLID. https://avivi.pro/blog/bud-solid/


Что значит сложность?

Самый хороший код - это простой код. Читабельный. Где идеи настолько логичны, что понимаются программистами любого уровня, а не только сеньором-помидором.

Как делается - разбиваются крупные процедуры и методы, на более мелкие, логически структурируя код. Делая его "легким" и поддерживаемым, этим самым упрощая задачу отладки и маштабируемости кода.

Худший ответ:
1. Масштабируемость
2. Вычислительная сложность
Вопрос: Какие знания нужны junior JS dev?

Лучший ответ:
Это весь синтаксис javascript. А также встроенные объекты.
Без циклов и массивов вы как бы вообще не сможете ничего написать, кроме "hello world". Изучите теорию по учебникам или по спецификациям, заправляя это небольшой практикой. Да, это не развлечение. Никто не обещает, что будет легко и весело.
А программистом себя могут называть те, кто имеют приличный опыт, как плохой, так и хороший. То есть для звания "программист" вам нужно просто много работать по данному направлению. Желательно, чтобы ваш код оценивали. Но вы и так поймете, что ваш код плохой, когда не сможете в нем ориентироваться, и при этом он будет страшно бажным.

Худший ответ:
Пары средних магазинов на vue/react/angular с простым api на ноде в портфолио должно хватить.
Вопрос: Что нужно знать чтобы написать свой http-сервер по типу apache?

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

Худший ответ:
1. Сначала определяемся с требованиями к этому http-серверу, и чем не устраивают существующие решения
2. Выбираем из какого-нибудь компилируемого, более-менее производительного языка, с поддержкой асинхронности и удобной работой с сетью:
Erlang, C#, Go, Rust
Вопрос: Какие наушники купить, чтобы было слышно только меня при разговоре?

Лучший ответ:
Нет. Даже направленные микрофоны будут улавливать посторонние звуки. Дело не в расстоянии, а в эхо. Пока вокруг нет звукорассеивателей все что слышно вам попадёт в микрофон. Звук может быть хоть из соседнего помещения. Шумодавы и всякие мохнатки отсекают только монотонные звуки, но резкие бряцанья тарелками, авто и т.п. практически не смягчатся

Худший ответ:
Есть софтверные решения,
Которые убирают посторонние звуки из аудиопотока:

- https://krisp.ai  - $5 в месяц
- RTX Voice - бесплатно, но работает только если есть карточка nVidia
Вопрос: Что нужно для поступления на факультет программирования?

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

Худший ответ:
Зависит от целей.
Если тебе нужен диплом:
a). То его можно просто купить. ~500$ - диплом бакалавра. Магистр дороже - баксов 700.
б). Можно купить его иначе, поступи в нетоповый вуз - приди пару раз на четвертом курсе - диплом в кармане.
в). Можно поступить на заочку, суть в том-же приходишь пару раз в год, ноешь что хочешь учиться. Диплом бакалавра получишь за 2.5 года. Выйдет слегка дороже. Может придется докинуть немного на презенты преподам.
Если нужно образование
a). Открываешь книгу, получаешь образование, закрываешь книгу. С нулевыми знаниями - потребуется от 3х до n лет.
б). Готовишься пару лет к экзаменам. Если повезет - поступаешь в топовый вуз, разумеется без достаточной базы ты вылетишь на первой сессии. Херачишь в два раза больше чем в a). получаешь образование.
Вопрос: Как переключаться между обычным окном и инкогнито хрома на mac os?

Лучший ответ:
Комбинация для переключения между окнами одного приложения:cmd + `
илиcmd + ~

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