Selaa lähdekoodia

Merge branch 'master' of u21obolen/ISRPO_Obolenskiy into master

ypv 1 vuosi sitten
vanhempi
commit
7e8307302d

+ 65 - 0
Лекции/Captcha/CAPTCHA_Оболенский.md

@@ -0,0 +1,65 @@
+# CAPTCHA
+CAPTCHA (капча) — это картинка с искаженным текстом или небольшое задание на сайте, которое проверяет, что вы не робот. Капча генерируется автоматически — так, чтобы пройти тест не смог бот, но смог человек.
+
+Название — аббревиатура от английского предложения Completely Automated Public Turing Test To Tell Computers and Humans Apart. На русский его примерно можно перевести как «полностью автоматический тест Тьюринга для отделения компьютеров от людей». Это название очень длинное, поэтому его и сократили до «капчи».
+
+Тестом Тьюринга называют испытание, которое может пройти только умеющее мыслить существо, — его придумал английский математик Алан Тьюринг. Мы подробнее расскажем о тесте ниже.
+## Зачем нужна капча
+Капча нужна, чтобы определить, кто пытается совершить операцию — человек или робот. Без ее прохождения нельзя выполнить то или иное действие: войти на сайт, авторизоваться, оставить комментарий. Задание обычно довольно простое для человека и практически невыполнимое для робота.
+
+Зачем вообще отсеивать ботов? Есть несколько причин:
+- злоумышленники. Боты могут использоваться для разных видов атак на сайты. В первую очередь это DDoS-атаки — автоматизированные массовые запросы, которые перегружают сервер. Еще есть брутфорс — подбор логина и пароля с помощью робота, пробующего разные варианты практически бесконечно;
+- спам. Частый вариант использования бота — отправка «мусорных» рекламных сообщений, которые мешают полезному контенту;
+- махинации. Например, интернет-магазины иногда проводят ограниченные по времени акции вида «Успей купить», и роботы могут мониторить такие предложения, скупая весь акционный товар за несколько секунд.
+
+Есть и роботы, которые не наносят вреда, например поисковые. От них защищаться капчей не нужно — потенциально опасных действий они не совершают.
+
+## Кто пользуется капчей
+Капчу устанавливают владельцы сайтов или специалисты, которые занимаются их обслуживанием. Нужна она или нет — зависит от целей и задач ресурса, а еще от возможностей его владельцев.
+
+Например:
+- капчу устанавливают для публикации комментариев на ресурсах, где живо общаются пользователи;
+- капча может появляться при авторизации или попытке купить товар, чтобы убедиться, что пользователя не взломали;
+- некоторые сервисы предлагают ввести капчу, если активность пользователя кажется им подозрительной. Иногда они срабатывают по ошибке, например из-за VPN или опечатки при вводе пароля.
+ 
+Коммерческие сайты могут устанавливать капчу, чтобы защититься от парсинга — считывания данных со страниц с помощью робота. Но это обычно бесполезно, к тому же парсинг редко наносит прямой вред — только косвенный, так как помогает конкурентам собрать информацию.
+
+## Как может выглядеть капча
+Распространенный вариант — картинка, на которой изображено сочетание из букв, слов или цифр. Чтобы пройти тест, нужно разобрать написанное и ввести результат в специальное поле. Но это не единственный тип. Кроме него, бывают:
+- простые вопросы, на которые может однозначно ответить человек, например, «Как звали Пушкина?»;
+- математические примеры, которые нужно решить и ввести результат;
+- мини-игры вида «Кликните на красную кнопку» или «Соберите пазл»;
+- выбор правильных вариантов из списка — обычно это задания вида «Укажите все картинки со светофорами».
+
+![captcha](https://market-sms.ru/wp-content/uploads/6/b/a/6ba767d8b953c64178a073261425b405.png)
+
+## Идея капчи: тест Тьюринга
+Разгадывание капчи — это задача, которую легко выполнить человеку и невозможно решить примитивному роботу. Идея возникла несколько десятков лет назад как реализация теста Тьюринга.
+
+Алан Тьюринг придумал эмпирический тест, задача которого — определить, может ли существо мыслить. Классический тест устроен так: у человека есть два невидимых собеседника — машина и другой человек. Если тот не может правильно определить, который из них робот, значит, машина способна к мышлению.
+
+Позже было создано намного больше вариаций теста. Капча — один из них, но проверкой в ней занимается не абстрактный человек, а алгоритм.
+
+## Как устроена капча
+Капча — это примитивный тест Тьюринга, автоматизированный и публичный. В ее основе лежит алгоритм, который показывает задание посетителю, а потом считывает отправленный ответ.
+
+Вопросы и задания реализованы по-разному. Иногда их придумывает сам человек — так чаще всего создают варианты с загадками, ответами на вопросы и математическими примерами. Но большинство задач капчи генерируются автоматически. Изображение создается на основе сгенерированного ответа, автоматически искажается, на него добавляются помехи — все это способен сделать компьютер.
+
+Пока капча не пройдена, алгоритм не дает посетителю выполнить то или иное действие. Обычно он сообщает о неправильном ответе и снова дает пользователю задание. Когда оно выполнено, доступ открывается.
+
+Некоторые современные варианты капчи — умные: они не включаются, если пользователь ведет себя естественно, и запускаются только при подозрительной активности. Например, посетитель отправляет слишком много сообщений, чересчур активно скачивает контент, зашел через VPN или анонимный режим.
+
+## Преимущества капчи
+- Это просто. Установить капчу на сайт — довольно быстро и несложно: в интернете десятки плагинов, которые предлагают разные виды заданий. При этом некоторые из них довольно трудно обойти роботам.
+- Это удобно. Обычно сервисы капчи интегрируются в CMS, и управлять ими владелец сайта может прямо из административной панели.
+- Это дешево. Некоторые такие расширения для сайтов — бесплатные, другие стоят недорого и точно обходятся дешевле иных мер защиты. К тому же разработчик всегда может создать собственный алгоритм: статьи о том, как они устроены, есть в сети в открытом доступе.
+- Это эффективно. Конечно, существуют продвинутые роботы, которые могут обходить даже сложную капчу, но от большинства простейших ботов она защитит. Особенно если выбрать вариант с хорошим уровнем защиты.
+
+## Недостатки капчи
+- Неудобство для пользователя. Пользователей может раздражать капча, особенно если она появляется слишком часто. Для информационных сайтов это не так критично, а вот для коммерческих важно: человек может уйти и не сделать заказ, который почти оформил. В результате компания может потерять клиента. К тому же падают поведенческие факторы: люди не выполняют какие-то действия, потому что не хотят тратить время на капчу.
+- Проблемы с доступностью. Отдельная категория пользователей может иметь особенности здоровья, мешающие распознать капчу. Сюда можно отнести плохое зрение, различные неврологические нарушения и иные состояния. Если вы создаете ресурс с расчетом в том числе на таких пользователей, вам стоит подумать об альтернативных вариантах.
+- Влияние на скорость. Чтобы подгрузить страницу с капчей, нужно больше времени, чем без нее. Поэтому страницы, где есть проверка, могут загружаться медленнее, а скорость загрузки — критично важный параметр. Он влияет и на поведение пользователей, и на отношение со стороны поисковых систем.
+
+## Литература
+
+https://blog.skillfactory.ru/glossary/captcha/

+ 48 - 0
Лекции/DotNet/DotNET_Оболенский.md

@@ -0,0 +1,48 @@
+# .NET
+.NET — это платформа для программирования, разработанная компанией Microsoft. Изначально создавалась, чтобы писать программы под операционную систему Windows. Среда работает с несколькими языками программирования, умеет запускать и исполнять код, написанный на них.
+
+![DotNet](https://blog.skillfactory.ru/wp-content/uploads/2023/03/microsoft_.net_logo.svg_.png)
+Разработчик на .NET может одновременно работать с несколькими языками программирования. Среди них — C#, F#, Visual Basic и Visual C++, а также более редкие языки типа J#. Эти языки разные, но благодаря возможностям .NET разработчик может использовать для них единое пространство имен, один и тот же набор технологий, библиотек и API.
+
+По-русски название читается как «дотнет» («точка нет»). Еще можно встретить название .NET Framework — это одна из реализаций среды. На ней была основана .NET Core, которая сейчас называется просто .NET. Разница в том, что .NET Framework работает только под Windows, имеет другой набор языков и иную структуру. Она масштабная, а .NET — модульная. Но и то, и другое относится к семейству Microsoft .NET — в статье мы говорим о нем в целом.
+
+Платформу иногда называют фреймворком. Это не ошибка, хотя фактически .NET шире, чем обычный фреймворк.
+
+## Для чего нужен .NET
+Современная разработка может проходить на нескольких языках одновременно. Если не использовать общую платформу, то для каждого из этих языков понадобится устанавливать свой компилятор, скачивать библиотеки и другие инструменты. .NET решает эту проблему. Это единая среда, в которой можно:
+- писать на нескольких языках;
+- не дублировать написанное;
+- не скачивать одни и те же библиотеки для каждого языка;
+- не множить технологии;
+- быстро и удобно переводить старый код на новые технологии.
+
+Последнее возможно благодаря тому, что .NET поддерживает много разных языков. В нем есть инструменты, чтобы переписать старый код под новые стандарты.
+
+## Где используют .NET
+.NET изначально создавался для Windows, поэтому в разработке под Linux или macOS он почти не используется. Сложно его встретить и в мобильной разработке под iOS или Android, хотя возможность написать приложение есть. 
+У платформы несколько актуальных сфер применения.
+
+- Десктопные программы. Речь идет о программах для Windows, причем и для новых, и для старых версий системы. .NET поддерживает решения Microsoft и легко с ними интегрируется, так что разработку вести довольно удобно. Из крупных программ на .NET написана, например, Microsoft Power BI — ПО для аналитиков. А из небольших, но известных всем — «Блокнот» и «Калькулятор» Windows.
+
+- Игры. В .NET входит язык программирования C#, который часто используют для создания видеоигр. Например, с C# работает популярный игровой движок Unity, на котором написано огромное количество игр: двумерных и трехмерных, инди и высокобюджетных. Так что в теории .NET можно использовать и для геймдева, но понадобится много дополнительных знаний.
+
+- Бизнес-решения. Так называемая enterprise-разработка — это корпоративные программы для больших компаний. Это обычно масштабные, сложные цифровые решения, например системы CRM. .NET используется в этой сфере. Для энтерпрайза это хороший инструмент, потому что позволяет комбинировать разные языки и технологии. Ведь такая масштабная разработка затрагивает и веб, и создание десктопных приложений, и мобильные устройства.
+
+## Особенности .NET
+- Быстрый порог входа, хотя и придется писать на нескольких языках.
+- Понятный и читаемый код, так как все языки в .NET — высокоуровневые, с ясным человеку синтаксисом.
+- Автоматическая сборка мусора.
+- Полная совместимость с системами и технологиями от Microsoft, но возможные проблемы при работе с другими системами (хотя в целом .NET кроссплатформенна).
+- Разнообразное комьюнити и обилие сфер применения.
+- Динамическая компиляция, благодаря которой код легче переписывать и отлаживать.
+
+## Стоит ли учить .NET
+Технология популярна и применяется в разных отраслях разработки. Так что программист, пишущий под .NET, без работы не останется. Порог входа в эту профессию не самый низкий, но ниже, чем во многих других языках, таких как Java.
+
+Еще один возможный плюс решения изучать .NET — несколько языков программирования, каждый из которых можно использовать для разных целей. Модульный .NET поддерживает C#, F# и Visual Basic; другие языки нужно доустанавливать.
+
+Поэтому .NET — хороший выбор, если вас интересует программирование под Windows или вы хотите попробовать себя в разных отраслях разработки.
+
+## Литература
+
+https://blog.skillfactory.ru/glossary/net/

+ 64 - 0
Лекции/OracleDateBase/OracleDB_Оболенский.md

@@ -0,0 +1,64 @@
+# Oracle Database
+
+ Oracle Database — это объектно-реляционная система управления базами данных (СУБД) от компании Oracle. Она используется для создания структуры новой базы, ее наполнения, редактирования содержимого и отображения информации.
+![Oracle](https://blog.skillfactory.ru/wp-content/uploads/2023/02/oracle-1.png)
+Продукт Oracle Database часто называют просто Oracle, по названию компании. Еще одно популярное сокращение — Oracle DB, от английского слова database — «база данных». Oracle RDBMS (Relational Database Management System) — третье название системы.
+
+## Что такое базы данных
+База данных — это организованная структура для хранения, изменения информации и взаимодействия с ней.
+Они бывают двух видов:
+- нереляционные. (Такие БД имеют специфическую структуру: например, данные хранятся в формате ключ-значение или в виде дерева);
+- реляционные. (В таких БД данные хранятся в виде связанных таблиц.)
+
+Каждая таблица обычно содержит данные, относящиеся к похожим объектам. У каждой таблицы есть название: оно соотносится с тем, какая информация хранится в таблице.)
+Таблицы состоят из строк и столбцов. Каждый столбец имеет уникальное название, которое также отмечает вид хранимой информации. В каждой строке находится информация об одном объекте. Таблица содержит конкретное число столбцов, но может иметь любое количество строк.
+В таблице ниже представлена информация о клиентах: имя, адрес, выручка и др., — разбитая на столбцы и строки.
+
+![Table](https://blog.skillfactory.ru/wp-content/uploads/2023/02/image2-1-6.png)
+Для связи данных в разных таблицах часто используют ID — уникальный идентификатор строки. Имя или какой-либо признак с этой целью не используются, поскольку они могут быть неуникальными.
+
+## Что делает СУБД
+Для работы с базой используется СУБД. Она позволяет:
+- формулировать запросы в виде кода, чтобы находить и получать информацию;
+- создавать новые записи, редактировать и удалять существующие;
+- разделять и объединять данные, которые хранятся в разных местах;
+- управлять доступом к информации;
+- выполнять параллельно разные действия;
+- создавать резервные копии информации и восстанавливать базу после сбоев;
+- управлять транзакциями — последовательными наборами запросов;
+- настраивать и обеспечивать безопасность, конфиденциальность информации.
+
+## Что представляет собой Oracle Database
+- По модели данных — объектно-реляционная
+
+Это значит, что система объединяет в себе две модели хранения информации: объектно-ориентированную и реляционную.
+
+Реляционная модель представляется как набор отношений между записями. Одни данные связаны с другими — так формируется база. Визуально ее можно представить как двумерную таблицу; математически — как модель, построенную на отношениях.
+
+Объектно-ориентированная модель воспринимает данные как объект. У объекта есть атрибуты, которые описывают его свойства, и методы — они нужны для взаимодействия с другими объектами. Каждый объект принадлежит к классу — это понятие можно представить как «схему» объекта. Объектно-ориентированный подход используется во многих языках программирования и упоминается во многих наших статьях. А в базах данных он нужен для работы с данными, у которых сложная структура.
+
+Oracle Database работает и с объектно-ориентированной, и с реляционной моделью.
+
+- По способу доступа — клиент-серверная 
+
+Система работает по принципу «клиент — сервер». Это означает, что ее основная часть размещается на сервере, там же, где и база данных. Человек работает с интерфейсом приложения-клиента. Клиентская часть управляет только пересылкой и получением информации от сервиса.
+
+Связь между клиентом и сервером обеспечивает специальный компонент, который в Oracle называется SQL *Net.
+
+Достоинства такого подхода — в высоком уровне безопасности и легком доступе для клиентов. Клиент-серверная организация разгружает сеть и снимает вычислительную нагрузку с клиентских компьютеров. А вот сервер для такой СУБД должен быть мощным.
+
+## Как работает Oracle Database
+Информация в системе хранится в отдельных базах — инстансах (instance) или экземплярах БД. Это не физические, а логические понятия, которые состоят из процессов и оперативной памяти. Все содержимое одного экземпляра имеет единую системную глобальную область (SGA) — часть оперативной памяти, с которой работает.
+
+Внутри экземпляров расположены логические пространства, которые называются табличными — tablespaces. Табличные пространства содержат компоненты данных — как файлы в папках. Файлы имеют расширение .dbf.
+
+СУБД состоит из одного или нескольких инстансов и программного обеспечения, которое ими управляет. Система поддерживает работу с независимыми базами (PDB) в рамках одного инстанса. Она может работать и с мультиарендной архитектурой (CDB), где множественными клиентами управляет один экземпляр приложения. В Oracle поддерживаются кластеризация и секционирование — физическое разделение элементов баз данных без потери доступа.
+
+## Версии Oracle
+Самая новая версия СУБД — 21c. Она включает больше 200 инноваций, в том числе поддержку неизменяемых блокчейн-таблиц, поддержку JavaScript, встроенную в СУБД, поддержку типа данных JSON в бинарном формате и другие.
+
+Для актуальных версий временами появляются обновления и пакеты патчей, которые называются PSU. Они расширяют возможности СУБД. Кроме того, Oracle предлагает использовать систему вместе с другими платными продуктами корпорации. Это Oracle Server, Oracle RPAS и другие решения в области информационных технологий. Для обучения можно пользоваться специальной бесплатной версией Express Edition (XE) или специальным облачным набором Always Free.
+
+## Литература
+
+https://blog.skillfactory.ru/glossary/oracle-database/