Обновить
808.79

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Большое руководство по сетям и шифрованию трафика в Linux (часть 1)

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели18K

Приветствую вас, читатели Хабра! В этой статье я бы хотел уделить внимание такой вещи как шифрование трафика на Linux системах. Наверно каждый из нас прекрасно понимает, насколько важна защита нашей приватности. Ведь в эпоху когда многие компании собирают данные, а иногда хакеры могут перехватить наш трафик, это становится особенно важно. Просто необходимо позаботиться о безопасности своих данных. Например, быть уверенным, что какая-либо корпоративная сеть не прослушивается злоумышленниками. Информационная безопасность сегодня — это не просто мода, а насущная необходимость. Постоянно растет киберпреступность, и защита трафика от перехвата — это основной аспект цифровой жизни человека или бизнеса.

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

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

Читать далее

Головоломка «Сапёр» на Python в 66 строк и ее решение вероятностным алгоритмом

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели10K

Идея написать данную статью пришла после прочтения статьи Реализация сапёра в 100 строках чистого Ruby. Во-первых, мне показалось, что 100 строк кода многовато для такой простой по механике игры. Я бы мог написать более компактное решение на чистом С. Во-вторых, реализация не совсем корректна: в оригинальной игре нельзя проиграть первым ходом, более того, первая открытая ячейка не должна иметь в соседних ячейках мину.

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

Читать далее

Как нейросети выдают кредиты?

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели4.9K

Ни для кого не секрет, что кредитный скоринг — это вполне распространенная практика оценки заемщика. Чтобы условный чернорабочий с зарплатой 40 тысяч не взял 5 ипотек, а страна не превратилась в одну большую "Игру на понижение"... 

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

В этой статье рассказываем, как работали алгоритмы машинного обучения раньше и как

Читать далее

Hardpy. Nucleo-f401 example — автоматизируем тестирование электроники на производстве на Python

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели3.2K

Как автоматизировать тестирование электроники на производстве на Python на примере тестирования и прошивки отладочной платы Nucleo-F401.
Разбор использования функций HardPy - открытого фреймворка для создания тестовых станций для производства электроники на pytest.

Start testing

Феномен Рунге

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели11K

Введение

Карл Давид Тольме Рунге (30 августа 1856 - 3 января 1927) - выдающийся немецкий математик, физик и спектроскопист. Обучался в Берлинском университете, где получил степень PhD, являлся профессором математики в Ганноверском университете, а также главой кафедры прикладной математики в Гёттингене. [1]

в 1901 году Карл открыл "Феномен Рунге" - в численном анализе эффект нежелательных колебаний, возникающий при интерполяции полиномами высоких степеней - о котором пойдёт речь в данной статье. [2]

Но прежде, чем мы окунёмся глубже в изучение данного феномена, давайте поговорим об интерполяционном многочлене Лагранжа, на примере которого мы и разберём Феномен Рунге.

Интерполяционный многочлен Лагранжа

Полином Лагранжа - это математическая функция, позволяющая записать полином n-степени, который будет соединять все заданные точки из набора значений, полученных опытным путём или методом случайной выборки. Многочлен в форме Лагранжа в явном виде содержит значения функций в узлах интерполяции, поэтому он удобен, когда значения функций меняются, а узлы интерполяции неизменны. Число арифметических операции, необходимых для построения многочлена Лагранжа, пропорционально и является наименьшим для всех форм записи. [3]

Полином Лагранжа в общем виде выглядит следующим образом:

Читать далее

Точность спортивных прогнозов на основе коэффициентов ставок

Уровень сложностиСложный
Время на прочтение20 мин
Охват и читатели4.9K

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

(а) Какой метод следует использовать для определения вероятностных прогнозов на основе необработанных коэффициентов ставок?

(b) Имеет ли значение, какую букмекерскую контору или биржу ставок мы выберем, если доступны две или более?

Читать далее

Пишем шахматы на двоих на Pygame

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели6.9K

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

Читать далее

Делители

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели3.6K

Есть такая задача: сколько у числа n делителей? Вот к примеру у числа 4 три делителя: 1, 2 и 4, а у числа 6 – четыре: 1, 2, 3 и 6. Задачи такого рода часто встречаются на всяческих литкодах, и публика с воодушевлением их колупает. Ну и правильно.

Наивное решение выглядит так:

Читать далее

Telegram Боты на Aiogram 3.x: Простой бот на вебхуках с локальным запуском и деплоем

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели14K

Друзья, приветствую!

Если вы следите за моими статьями, то знаете, что на Хабре у меня опубликовано более 10 объемных публикаций на тему разработки телеграмм ботов через замечательный Python-фреймворк Aiogram 3.

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

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

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

В общем, будет интересно и позновательно!

Читать далее

Автоматизация бизнес-процессов и причем тут латиночка из Бразилии

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели1.8K

Устал от стандартного подхода к саппорту своего продукта через Jira? Надоели миллион уведомлений на почту о изменениях в таске? Раздражает скорость ответа на тикет? Тогда мы идем к тебе...

Подробности без смс и регистрации

Как и зачем считать сбалансированный precision score

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели908

В машинном обучении при оценке решения задачи классификации precision score может давать неожиданные результаты тогда, когда баланс классов сильно изменяется.

Почему так, почему это может приводить к ошибкам при отладке моделей, и как этого избежать с помощью сбаланированного precision score - в этой заметке.

Читать далее

Использование численного метода Монте-Карло для вычисления многомерных интегралов

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели10K

Еще в 1940-х годах, Джон фон Нейман и Станислав Улам изобрели моделирование Монте-Карло или численный метод Монте-Карло. Они назвали его в честь известного места азартных игр в Монако, поскольку этот метод имеет те же случайные характеристики, что и игра в рулетку.

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

Метод Монте-Карло используется в реальной жизни, например, в задачах, связанных с физикой, создании искусственного интеллекта, прогнозировании погоды и так далее, а также имеет огромное применение в финансах, где числовой метод Монте-Карло используется для расчёта стоимости акций, прогнозировании продаж, управления проектами и многого другого.[1]

Основное преимущество использования Монте-Карло заключается в том, что этот метод обеспечивает множество возможных результатов и вероятность каждого из большого пула случайных выборок данных, однако, метод зависит от предположений, и это иногда может быть сложной задачей. Некоторые другие преимущества Монте‑Карло: он изучает поведение системы без её построения, обеспечивает в целом точные результаты, по сравнению с аналитическими моделями, помогает обнаружить неожиданное явление и поведение системы, а также выполнить анализ «что, если». [2]

Читать далее

Правильный инструмент для аналитики нагрузочного тестирования

Время на прочтение14 мин
Охват и читатели4.7K

В данной статье хочу рассказать про сервис load-testing-hub, главная задача которого это сбор, агррегация, анализ и визуализация данных о нагрузочном тестировании

Расскажу о том, какие проблемы решает сервис, как он помогает оценивать производительность выпускаемых релизов, а также поделюсь примерами его использования

Рассмотрим основные возможности load-testing-hub, такие как создание наглядных графиков и отчетов, сравнение результатов нагрузочных тестов

Читать далее

Ближайшие события

Топ-30 платных и бесплатных уроков программирования в Minecraft для детей

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели2.9K

Minecraft — это не просто игра, а целая платформа, которую знают даже те, кто не играет в нее. Логотипы с названием и изображением игровых блоков встречаются повсюду: на футболках, рюкзаках, тетрадях и многом другом. Даже среди косплееров можно встретить любителей этой игры. В общем, трудно не заметить присутствие Minecraft в повседневной жизни.

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

Даже уроки Майнкрафта для детей 6 лет и старше обладают большим потенциалом для развития креативного и логического мышления, а также социальных навыков. В этом виртуальном мире школьники могут строить, исследовать, взаимодействовать с другими игроками и создавать удивительные миры, ограниченные лишь их воображением. Так что Майнкрафт не только развлекает, но и обучает, делая игру полезным инструментом для развития детей.

Хотите, чтобы ваш ребенок научился кодить? Тогда эта подборка платных и бесплатных уроков Minecraft программирования для вас.

Читать далее

На пути к первой работе в ML: 3 вопроса для подготовки к собеседованию

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели2.5K

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

Читать далее

Гексы, Uber, или Учим автотесты ориентироваться на карте

Время на прочтение5 мин
Охват и читатели3.2K

Всем привет! Меня зовут Люба, и я инженер по тестированию в команде Ozon Partners Platform. Наша команда занимается поддержкой и развитием системы, предназначенной для развития сети пунктов выдачи Ozon. Одним из компонентов этой системы является Открытая карта.

Хочу рассказать, как мы научили автотесты находить на ней точки, подходящие для открытия нового ПВЗ.

Читать далее

Собеседование Python-разработчика: чего ждать и как подготовиться

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели10K

Всем привет! Меня зовут Антон Артиков, я бэкенд-разработчик в «Авито» и выпускник курса «Middle Python-разработчик». Программирую на Python и Go, читаю и перевожу со словарем PHP, а ещё веду личный блог в Телеграме.

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

Читать далее

Данные из базы Notion по Api за 5 минут

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели2.3K

Недавно дали мне задачку - сделать скрипт, который будет вытаскивать данные из базы данных Notion по API и загружать их в хранилище S3 в формате Parquet (автоматическая работа скрипта была на заказчике), при этом:

Читать далее

Playwright: Поиск, фильтрация и ожидание элементов на странице

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели12K

Друзья, приветствую! Для тех, кто не в теме, Playwright — это инструмент для автоматизации и тестирования веб-приложений, который, по моему мнению, уже обошел своего предшественника Selenium, долгое время лидировавшего в автоматизации и тестировании браузеров.

О том, почему Playwright лучше Selenium и зачем вам стоит перейти на Playwright, я подробно писал в предыдущей статье. Там же, хотя и поверхностно, я затронул тему поиска и ожидания элементов на странице.

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

Чем мы займемся сегодня?

В рамках этой статьи мы рассмотрим основные методы для поиска, фильтрации и ожидания элементов на странице.

Читать далее

Бот-парсер маркетплейса на Python

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели29K

Всем привет! В этой статье я решил показать один из методов парсинга на Python на примере маркетплейса Wildberries.

Суть подхода в том, что мы будем не разбирать запрошенную html страницу по ссылке, а использовать API сайта, который используется сервисом для получения и отображения всех товаров требуемой категории.

В проекте будут использоваться следующие библиотеки:

Читать далее