Search
Write a publication
Pull to refresh
0
@Pozdnyakovread⁠-⁠only

User

Send message

Воссоздаем Minecraft-подобную генерацию мира на Python

Reading time11 min
Views29K

Minecraft, самая продаваемая игра в мире, наиболее известная своими пикселизированными блоками и бесконечными мирами, содержит потрясающий процедурный генератор ландшафта — с пещерами, водоёмами, и даже различными биомами.

Процедурная генерация является важной частью компьютерной графики — она используется в основном в играх и в фильмах. Она помогает создавать случайные структуры, не вызывающие ощущения «машинного» стиля.

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

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

Прим. переводчика. Осторожно, в статье много иллюстраций (в том числе анимированных)

Читать далее

Python: Логируем как профессионалы

Reading time13 min
Views54K

Часто вижу, что помимо обработки исключений, люди мучаются кое с чем еще, а именно с логированием.

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

Читать далее

Ещё одна статья о декораторах в python, или немного о том, как они работают и как они могут поменять синтаксис языка

Reading time7 min
Views15K

Декораторы в python являются одной из самых часто используемых возможностей языка. Множество библиотек и, особенно, веб-фреймворков предоставляют свой функционал в виде декораторов. У неопытного python разработчика уйдёт не так уж много времени, чтобы разобраться, как написать свой декоратор, благо существует огромное количество учебников и примеров, а опытный разработчик уже не раз писал свои декораторы, казалось бы, что ещё можно добавить и написать о них?

Я постараюсь раскрыть информацию о том, как работают стандартные декораторы staticmethod, classmethod, а так же сам интерпретатор python, как писать декораторы, принимающие аргументы без дважды вложенных функций, ну, и наконец, как немного поменять синтаксис python.

Read more

Как спарсить любой сайт?

Reading time6 min
Views227K

Меня зовут Даниил Охлопков, и я расскажу про свой подход к написанию скриптов, извлекающих данные из интернета: с чего начать, куда смотреть и что использовать.

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

Узнать как

Парсинг Instagram в промышленных масштабах

Reading time28 min
Views41K

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

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

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

Поехали!

Что видят в ваших резюме Python-рекрутеры, или Как получить работу мечты

Reading time21 min
Views36K

Одна из вещей, которая связывает людей с работой их мечты — это резюме. Множество эйчаров смотрят на разные резюме каждый день. Если вы просмотрите хотя бы 10-40 резюме, то поймете, почему рекрутеры легко видят общие ошибки и насколько некоторые вещи выглядят для них забавно. Причем синьоры могут делать точно такие же ошибки, как и джуны, несмотря на то, что они уже 20 лет в индустрии.

Сегодня посмотрим на 5 резюме с точки зрения рекрутеров, которые ищут Python-разработчиков. На круглом столе конференции Python Week 2020 рекрутеры рассказали, что они ожидают от резюме по умолчанию, а что — им хотелось бы видеть еще. Два резюме будут от джунов, одно — от крепкого миддла, и еще пара — от кандидатов, которые решили поменять направление своей карьеры.

Читать далее

Как стать мидл python-разработчиком за полгода: опыт выпускников Практикума

Reading time10 min
Views17K
В июле 2020 года Яндекс.Практикум запустил курс для бэкенд-разработчиков, которые хотят улучшить свои навыки, а не учиться с нуля — «Мидл python-разработчик». Что происходит с выпускниками, когда они завершают обучение и получают диплом? Достаточно ли знаний, полученных на курсе, чтобы претендовать на позицию мидла?

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



Читать дальше →

Эффективный поиск XSS-уязвимостей

Reading time21 min
Views52K


Про XSS-уязвимости известно давным-давно — казалось бы, нужен ли миру ещё один материал о них? Но когда Иван Румак, занимающийся тестированием безопасности, поделился методологией их поиска на нашей конференции Heisenbug, реакция зрителей оказалась очень положительной.


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


Под катом — и текст, и видео. Далее повествование идет от лица Ивана.

Задача, которую предлагали разработчикам на собеседованиях в Reddit: разбор и решение от сотрудника компании

Reading time8 min
Views24K
Впервые я столкнулся с техническими собеседованиями еще в 2012 году, когда искал свою первую работу в IT. Я выслушал условия задачи, нацарапал решение на доске, ответил на несколько вопросов и ушел, весь перепачканный черный маркером. В то время я совершенно не представлял, как выглядит весь этот процесс с другой стороны; всё, что мне оставалось – в тревоге ждать результатов и надеяться, что я вписался в неизвестные мне критерии тех, кто проводил собеседование.

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

Для этой цели я разберу реальную задачу, которую мы раньше предлагали желающим присоединиться к Reddit, пока не решили, что ей пора на покой. Объяснив решение, я расскажу о том, что учитывалось при оценке и почему это задание кажется мне подходящим для собеседований. Надеюсь, к концу статьи вы подойдете с чувством, что узнали больше о механизмах отбора и стали лучше подготовлены к процессу найма.
Читать дальше →

В шоке от цен на авиабилеты по России: как летать дешевле

Reading time10 min
Views40K

Вы продаете билетов на самолеты? - Нет, только показываю. - Красивое…

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

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

Читать далее

Ускоряем код на Питоне с помощью расширений на Cи

Reading time7 min
Views14K

Питон — простой, но мощный язык, который заслуженно стал одним из самых популярных. Тем не менее, иногда ему не хватает скорости статически типизированных языков с предварительной компиляцией, таких как Cи и Джава.

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

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

Читать далее

Разбираемся с ChainMap из коллекций Python

Reading time19 min
Views16K

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

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

Читать далее

13 проектов для Python-программистов уровня intermediate

Reading time10 min
Views78K
Изучение основ Python — прекрасный опыт. Но эйфория от изучения языка постепенно заменяется желанием создать что-то своими руками. И это нормально, но нужны идеи.

Проблема здесь в том, что некоторые проекты либо слишком просты, либо слишком сложны для разработчика среднего уровня. Эта статья — помощь программисту уровня intermediate. Она предоставляет несколько идей проектов, которые могут стать интересным вызовом для вас. Материал адаптирован на русский язык совместно с Алексеем Некрасовым, лидером направления Python в МТС, программным директором направления Python в Skillbox.
Читать дальше →

Руководство по возможностям Java версий 8-16

Reading time15 min
Views42K

Последнее обновление: 05 апреля 2021 г.

Вы можете использовать это руководство, чтобы получить практическую информацию о том, как найти и установить последнюю версию Java, понять различия между дистрибутивами Java (AdoptOpenJdk, OpenJDK, OracleJDK и т. д.), А также получить обзор функций языка Java, включая версии Java версии. 8-16.

Читать далее

Не верь всему, что пишут на Хабре

Reading time5 min
Views66K

В 2019 году я опубликовал статью: Как стать Java разработчиком за 1,5 года. Некоторых она вдохновила на то, чтобы стать разработчиком. Вот что из этого вышло у одного из тех, кто решил повторить мой опыт:

Здравствуйте, Сергей. Меня зовут Александр, мне 32 года, без семьи, без детей, без работы и без шансов иметь хотя бы одно из вышеперечисленного. Однажды я наткнулся на Вашу статью на хабре "Как стать Java разработчиком за 1,5 года". Я решил, что если я младше Вас, плюс у меня есть некоторые знания джавы (прочитал Шилдта, Эккеля, писал небольшие программы), тогда я еще имею шансы устроиться. Я прочитал Вашу статью, поверил каждому слову, в ней написанному, и решил повторить Ваш путь. Я также сделал оракловые сертификации, также посидел прилично на алгоритмах и повторил все остальное, что вы описали. Но я решил перестраховаться и сделать даже больше, чтобы устроиться наверняка. Я прошел онлайн курс "топ джава", где выполнил все домашние задания, сделал выпускной проект. Прошел онлайн-курс по продвинутому SQL в Oracle. Также прошел еще много других курсов, не перечисленных вами. Но самое главное другое:…

UPD 16:50 С Александром, таки, всё в порядке. Переживать не стоит (подробности внутри).

Читать далее

Спросите Итана: почему в зеркалах лево и право меняются местами, а низ и верх – нет?

Reading time7 min
Views103K

Когда вы смотрите в зеркало на свою правую руку, она кажется левой. Все надписи меняют направление, как и движение вращающегося объекта. Движение по часовой стрелке превращается в движение против часовой, и наоборот. Кажется, что право и лево поменялись местами, а верх и низ – нет. Однако истинная причина происходящего в другом.

Смотрясь в зеркало, вы замечаете, что там всё перевёрнуто. Когда вы поднимаете левую руку, ваше отражение поднимает правую. Если вы подмигиваете правым глазом, отражение подмигивает левым. Написав что-либо на листке бумаги и подняв его вверх, вы увидите, что ваше отражение держит такой же листок, только с надписью, написанной задом наперёд – включая и отдельные буквы. Кажется, что у всех изображений в зеркале меняются лево и право, но при этом почему-то верх и низ не меняются. Ваше отражение стоит ногами на земле, потолок находится наверху, а буквы на листочке не переворачиваются. Почему? Об этом спрашивает наш читатель:
Известно, что в зеркалах меняются право и лево. Но почему там не меняются верх и низ? Изменилось бы наше восприятие зеркал, если бы мы жили в нулевой гравитации? А если бы мы были морскими звёздами с пятью осями симметрии?

Читать дальше →

Книга «Гид по Computer Science для каждого программиста»

Reading time7 min
Views25K
image Привет, Хаброжители! Колосс на глиняных ногах — так можно назвать программиста без подготовки в области Computer Science. Уверенное владение основами позволяет «не изобретать велосипеды» и закладывать в архитектуру программ эффективные решения. Все это избавляет от ошибок и чрезмерных затрат на тестирование и рефакторинг.

Не беда, если вы чувствуете себя не у дел, когда другие программисты обсуждают аппроксимативный предел. Даже специалисты с опытом допускают ошибки из-за того, что подзабыли Computer Science.
Читать дальше →

Python: неочевидное в очевидном

Reading time9 min
Views24K

Изучение любого языка - очень долгий процесс, в ходе которого могут возникать ситуации, когда очевидные с виду вещи ведут себя странно. Даже спустя много лет изучения языка не все и не всегда могут с уверенностью сказать “да, я знаю этот на 100%, несите следующий”.

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

Ознакомиться

Как 20-летний паренёк фигачит по 12 часов каждый день уже больше года

Reading time10 min
Views70K
YouTube мне предложил посмотреть видос какого-то азиатского паренька и я согласился, потому что в названии фигурировало «как я фигачил по 12 часов в день в течение года».

Паренек рассказывал про книжки, которые он прочитал, про свои мечты, всплакнул даже. А потом я зашел на его канал и увидел это:

image

И так каждый день с марта 2020 года.

У паренька ЭЛТ-монитор, прикольный рыжий кот, парень стримит каждый день, как он учится на ИТишника (и своим усердием мотивирует других) по 10 часовых помодорок с 10-минутными перерывами между ними.

Я решил немного разобраться, что же это за паренек и что им движет.

Information

Rating
Does not participate
Registered
Activity