Для себя Решить задачу: В нашем проекте мы используем виртуальные серверы, каждый из которых имеет два независимых сетевых интерфейса. На каждом интерфейсе присутствуют адреса как IPv4, так и IPv6. Для того, чтобы не запутаться во всех этих адресах, мы используем DNS. Так у каждого сервера появляется два имени: в зоне kit.yandex.net для первого интерфейса в зоне ya.kit.com для второго Все записи выглядят как contest-XXXX.domain., но из-за особенностей работы приложения, числа, замещающие XXXX могут быть разными. Например, один и тот же сервер может иметь такие записи: contest-123.kit.yandex.net 600 IN A 10.1.2.3 contest-123.kit.yandex.net 600 IN AAAA fc01::fe12:5416 contest-1154.ya.kit.com 600 IN A 10.2.7.16 contest-1154.ya.kit.com 600 IN AAAA fc02::de12:3217 Число во втором названии может быть получено из первого названия, если взять первые три символа hex-представления md5 и преобразовать их в десятичное число. Для примера выше: $ echo $((0x$(echo -n contest-123.kit.yandex.net | md5sum | head -c 3))) 1154 Мы обнаружили, что в зоне ya.kit.com отсутствуют некоторые IPv6-записи. Вам необходимо найти все виртуальные машины (их fqdn в зоне kit.yandex.net) у которых отсутствуют записи в ya.kit.com Формат ввода Ваше приложение будет запущено в каталоге, в котором есть два файла: a.input и b.input В них содержатся, соответственно, выгрузки зоны kit.yandex.net и зоны ya.kit.com. Формат вывода В качестве ответа выведите отсортированный (по идентификатору в fqdn) список доменных имён (kit.yandex.net) без IPv6-записей во второй зоне (ya.kit.com) Формат ответа: contest-123.kit.yandex.net contest-124.kit.yandex.net contest-125.kit.yandex.net contest-126.kit.yandex.net 2) задача Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt В нашем сервисе есть веб-сервер, который раздает полезные данные пользователям. Мы хотим понимать, из каких стран и городов к нам приходят пользователи, поэтому мы хотим разметить журнал запросов веб-сервера дополнительной информацией. Для решения задачи у вас времени не нашлось, зато время оказалось у стажера, который написал программу, размечающую лог запросов названиями стран из базы. К сожалению, когда вы добрались проверить эту программу, стажер оказался в отпуске. Программа выглядит рабочей, но есть несколько нюансов: она работает не очень быстро; она иногда потребляет много памяти; иногда она работает не совсем корректно; она размечает только страны, но не размечает города. Ниже приложен код программы. Ваша задача: найти и исправить логическую ошибку в коде; ускорить работу программы; уменьшить потребляемую память; добавить в разметке название города сразу после названия страны. Если программа выдает неправильные значения, то оптимизировать ее рано. Пример строк в файле с геобазой: 112.9.96.0 112.9.127.255 Китай Циндао 112.9.128.0 112.9.255.255 Китай Циндао 112.10.0.0 112.10.127.255 Китай [Телефон скрыт] 112.10.143.255 Китай Ханчжоу [Телефон скрыт] 112.10.159.255 Китай Ханчжоу Пример строк журнала сервера: [Телефон скрыт] - - [10/Jan/2025:07:44:17 +0300] "GET /server HTTP/1.1" 200 7881 "-" "Go-http-client/1.1" [Телефон скрыт] - - [10/Jan/2025:07:44:17 +0300] "GET /.vscode/sftp.json HTTP/1.1" 301 319 "-" "Go-http-client/1.1" [Телефон скрыт] - - [10/Jan/2025:07:44:17 +0300] "GET /server HTTP/1.1" 302 0 "-" "Go-http-client/1.1" [Телефон скрыт] - - [10/Jan/2025:07:44:17 +0300] "GET /?rest_route=/wp/v2/users/ HTTP/1.1" 301 194 "-" "Go-http-client/1.1" [Телефон скрыт] - - [10/Jan/2025:07:44:17 +0300] "GET /debug/default/view?panel=config HTTP/1.1" 301 194 "-" "Go-http-client/1.1" Код, который написал стажер: class AddRegionInfo: def __init__(self, geo_file_name, in_log_file_name, out_log_file_name): self.geo_data = self.read_geo_data(geo_file_name) self.process_log(in_log_file_name, out_log_file_name) def read_geo_data(self, file_name): f = open(file_name, 'r') return f.readlines() def process_log(self, in_file_name, out_file_name): f = open(in_file_name, 'r') lines = f.readlines() f = open(out_file_name, 'w') for line in lines: fields = line.split(' ') ip = fields[0] fields[-1] = fields[-1].strip() for geo in self.geo_data: gf = geo.split('\t') if self.is_bigger(ip, gf[0]) and self.is_bigger(ip, gf[1]): fields = [gf[2].strip()] + fields f.write(' '.join(fields) + '\n') break def is_bigger(self, a1, a2): a1s = a1.split('.') a2s = a2.split('.') if a1s[0] > a2s[0]: return True if a1s[1] > a2s[1]: return True if a1s[2] > a2s[2]: return True if a1s[3] > a2s[3]: return True return False if __name__ == '__main__': AddRegionInfo('geobase.txt', 'input.txt', 'output.txt') Примечания Задачу можно делать итеративно Самым важным является правильность значений, нет смысла оптимизировать то, что работает неправильно Поддержку городов можно добавлять в произвольное время, без нее тоже можно получить ненулевой балл за эту задачу 3) задача Василий - новый DevOps в небольшой компании, которая активно использует микросервисы. Продуктовое окружение этой компании использует kubernetes, развёрнутый прямо на "железе". Недавно произошел инцидент и часть запросов клиентов зависла на каком-то количестве перегруженных машин. Беда в том, что никто не озаботился мониторингом загрузки CPU, и единственный косвенный показатель нагрузки, который у Василия есть - это температура CPU железных серверов. Василий выгрузил в SQLite-базу логи запросов во время инцидента, табличку привязки подов приложений к машинам и лог температурных измерений. Они выглядят следующим образом (тут приведён пример): Табличка requests: | request_id | parent_request_id | pod_id | ts | | ---------- | ----------------- | ------ | ------- | | start1 | NULL | 1 | 10 | | cont1 | start1 | 2 | 12 | | cont2 | cont1 | 2 | 16 | | start2 | NULL | 1 | 29 | Где: request_id - уникальный идентификатор запроса parent_request_id - уникальный идентификатор запроса, породившего данный pod_id - идентификатор пода, на котором был запущен микросервис, принявший запрос ts - unixtime в секундах момента, когда запрос пришел в микросервис У каждого запроса есть id, те запросы, что были порождены не клиентом, а внутренними микросервисами, имеют parent_request_id. При этом граф вызовов между микросервисами может быть произвольно большим. Табличка pods: | pod_id | machine_id | | ------ | ---------- | | 1 | 1 | | 2 | 2 | Где: pod_id - идентификатор пода machine_id - идентификатор железной машины, на которой он запущен (на одной машине может быть запущено много подов, десятки/сотни) Табличка measurements: | machine_id | ts | temperature | | ---------- | -- | ----------- | | 1 | 10 | 62 | | 1 | 17 | 61 | | 1 | 23 | 63 | | 1 | 31 | 61 | | 2 | 9 | 70 | | 2 | 15 | 86 | | 2 | 21 | 92 | | 2 | 30 | 89 | Где: machine_id - идентификатор железной машины ts - unixtime момента, когда было снято измерение (на каждой машине измерения снимаются не чаще 1 раза в 5 секунд и не реже 1 раза в 10 секунд) temperature - температура CPU в градусах Цельсия Василий почитал документацию к используемым в компании процессорам и определил, что признаком перегруженного CPU будет его температура выше 85 градусов. Помогите Василию оценить, сколько запросов клиентов пострадало. Для этого составьте SQL-запрос, который выведет список request_id клиентов, графы вызовов которых оборвались на перегруженных машинах. Например, для приведенных выше примеров таблиц, таким запросом будет запрос с request_id start1. Задача является достаточно сложной, имеет смысл начать с отладки локально: Скачайте бинарную сборку SQLite (https://www.sqlite.org/download.html) или поставьте его любым удобным вам способом, например, с помощью пакетного менеджера вашего дистрибутива Linux. Создайте БД и заполните таблицы, как показано в примере выше. Попробуйте написать SQL-запрос, который найдет запрос с request_id cont2. Попробуйте написать SQL-запрос, который сможет найти start1 по цепочке вверх или вниз (как вам удобно). Если у вас не получается пункт 4 - сдавайте запрос из пункта 3
Для ребёнка У сына есть личный проект в школе — сервис обмена сообщениями. Фронтенд на html/js/webcrypto. Бекенд на nginx/python/pg. Нужен преподаватель, практикующий бекенд-разработчик, который поможет: * структурировать код; * научить писать тесты; * написать деплойные плейбуки на ansible; * вместе с сыном настроить пайплайн отгрузки логов, научить писать осмысленные логи и отлаживаться по ним.
Для себя Помочь разобрать бэкэнд для сайта с использованием джанго. По примеру первой работы помочь разработать сайт под собственную тему в рамках курсовой работы 2го курса
Для ребёнка Добрый день! Требуется наставник/ментор для изучения Payton для. Сыну 14 лет, английский у него нулевой, базовые знания компьютера, сети, периодически занимается модернизацией компьютера, создаёт каналы на YouTube Tiktok, продает их через различные платформы. Заинтересовался чат-ботами, но через конструктор неинтересно, хочет встраивать их в различные мессенджеры. Бюджет к сожалению ограниченный, поэтому вижу сотрудничество через помощь в вопросах и направлении решения его трудностей. Было бы отлично не сидеть час урок в неделю или два, а у сына вопрос - он спросил - у вас есть время - написали подсказали как решить или задали направление, книги читать изучать готов. И такие запросы суммарно набирают 4-6 часов в месяц.
Для себя Нужно создать парсинг цены на основе артикула WB, OZON. (API наши, мы производитель и продавец). Я сис. админ, хочу поработать над проектом и понять (хотя бы примерно), как это реализовано, начинаю изучать python. Будет 2 гугл таблицы (исходная с артикулами и конечная с ценой на товар от 2-х площадок). Товаров у нас 1500-2000 на каждой площадке, но это неважно, нужно создать программу, я разверну на сервере для парсинга цены в гугл таблицу. Только цену, всё. Бюджет заложен P.S: Хочу раз в неделю созваниваться и заниматься Python, уже за мои деньги. Поэтому ищу репетитора, кто осилил бы этот проект, и с кем я могу продвигаться вперёд. МОЯ НАЧАЛЬНАЯ ЦЕЛЬ - ПРОГРАММИРОВАТЬ ЛУЧШЕ ИИ
Для себя Хочу научиться Python с нуля, самым оптимальным направлением для себя вижу создание Telegram ботов. Знаний математики критически мало, но готов всему обучиться, плюс на короткой ноге с ИИ. Занятия раз в неделю. Хочу в дальнейшем начать зарабатывать, интересен практический подход в обучении, на реальных проектах.
Для ребёнка Проверить проект ребенка по программированию на Python, проработать ошибки, добиться понимания. Ребёнок плохо говорит на русском, возможно, что часть обучения надо будет делать на английском. При хороших результатах возможно постоянное сотрудничество
Для себя Написать бэкэнд для сайта с использованием джанго. По примеру первой работы помочь разработать сайт под собственную тему в рамках курсовой работы 2го курса
Как мне найти учеников по профилю python в Москве?
Зарегистрируйтесь и создайте привлекательный профиль с упоминанием вашей специализации. Обратите внимание на количество доступных заявок от учеников, которое на апрель 2026 года составляет 352
Какие требования к преподавателям на вашем сайте?
На нашем сайте приветствуются преподаватели с любым уровнем квалификации. Мы рекомендуем указать все свои сертификаты и образование, чтобы увеличить шансы на нахождение учеников
Могу ли я установить гибкий график работы?
Вы полностью контролируете свой график и можете обсуждать его напрямую с учениками, чтобы найти удобное время для обеих сторон
Каков потенциальный заработок для репетитора Python?
Заработок зависит от количества занятий и квалификации. В среднем, за одно занятие можно заработать 311.42 рублей с занятия. Больше занятий в неделю – выше доход