Pull to refresh
6
0
Maxim Panin @mksmpn

ИБ, Dev(Sec)Ops, Python

Send message

Как работает yield

Reading time6 min
Views691K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ
Total votes 141: ↑136 and ↓5+131
Comments41

Как я учусь на разработчика игр в Московском Политехе

Level of difficultyEasy
Reading time6 min
Views6.8K

Меня зовут Айгерим, мне 20 лет. Я студентка Московского политехнического университета на направлении геймдев, сейчас на 3 курсе. Есть много статей про обучение IT-специальностям в разных вузах, но геймдев-направления в России это довольно редкое явление. Я мало где встречала статьи/подкасты/материалы на эту тему, поэтому мне захотелось поделиться личным опытом обучения и студенческой жизни в целом.

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

Читать далее
Total votes 18: ↑14 and ↓4+12
Comments9

150+ хакерских поисковых систем и инструментов

Reading time11 min
Views91K

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

Пост состоит из 8 объемных разделов:

1. метапоисковики и поисковые комбайны;

2. инструменты для работы с дорками;

3. поиск по электронной почте и логинам;

4. поиск по номерам телефонов;

5. поиск в сети TOR;

6. поиск по интернету вещей, IP, доменам и поддоменам;

7. поиск данных об уязвимостях и индикаторов компрометации;

8. поиск по исходному коду.

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

Читать далее
Total votes 54: ↑51 and ↓3+58
Comments6

Как мы внедрили скрытие аккаунтов в Telegram или #ДуровДобавьДвойноеДно

Reading time8 min
Views209K

Если анимация не воспроизводится, смотрите её здесь.

Здравствуйте, Павел Дуров! Мы надеемся, что Вы нашли время ознакомиться с данным открытым письмом. Мы разработали решение для Telegram-клиента, которое позволяет скрывать аккаунты и открывать их только через уникальный код-пароль (см. анимированное превью). Нет никаких следов присутствия скрытых аккаунтов. Невозможно узнать, есть ли в мессенджере скрытые аккаунты и какое их количество. Решение именуется как «Двойное дно».

Все нюансы были тщательно нами продуманы, а сам Telegram-клиент с точки зрения интерфейса и пользовательского опыта никак не изменился. Практически никаких доработок со стороны команды Telegram не требуется. «Двойное дно» сделано полностью «под ключ», Вам нужно лишь принять наш «Pull Request» в Вашем репозитории. Перед тем как отправить «Pull Request», мы возьмем несколько дней на сбор обратной связи от пользователей, чтобы исправить мелкие недочеты. Для ознакомления Вы можете установить нашу сборку через TestFlight, а если под рукой нет iOS-устройства, то посмотреть видео. Исходный код сборки доступен на GitHub.
Читать дальше →
Total votes 165: ↑155 and ↓10+192
Comments213

Как открыть 1500 шлагбаумов Москвы

Reading time5 min
Views131K

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

А кто еще?
Total votes 227: ↑225 and ↓2+299
Comments188

Как позвонить всем вокруг

Reading time11 min
Views62K

Мы в Postuf большие поклонники франшизы Watch Dogs - приключенческой видеоигры, в которой главный герой в лице Эйдена Пирса, имея доступ к вымышленной системе ctOS, способен проворачивать со своего смартфона разные хакерские трюки. Однажды нам стало интересно, возможно ли в реальной жизни повторить трюк звонка на телефоны находящихся рядом людей.

Оказалось, возможно
Total votes 152: ↑151 and ↓1+176
Comments51

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity

Specialization

DevOps, Pentester
Middle
Git
Linux
Python
Docker
CI/CD
Ansible
DevOps
GitLab
Information Security
Zabbix