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

User

Send message

Флешка Rubber Ducky стала ещё опаснее

Reading time4 min
Views53K


Rubber Ducky — известное хакерское устройство, давно знакомое специалистам по информационной безопасности (и любителям сериала Mr. Robot). Первая версия вышла более десяти лет назад. С виду обычная флешка при подключении выдаёт себя за USB-клавиатуру и запускает произвольный скрипт. Это позволяет проводить необычные атаки, которые сложно обнаружить с помощью антивируса.

Атака Rubber Ducky — просто последовательность нажатий клавиш (чтобы открыть консоль и ввести в ней некоторые команды).
Читать дальше →

Вот почему нужно использовать оператор := в Python

Reading time8 min
Views40K


Сегодня рассказываем о самом странном операторе Python — операторе моржа. Для чего он нужен, и как использовать его с учётом других особенностей языка? Подробности к старту курса по Fullstack-разработке на Python — под катом:

Узнать больше

В IT в 30. Как я стал solo Kaggle Grandmaster, устроился на работу, но так и не стал программистом

Reading time10 min
Views75K

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

Читать далее

Как я фрилансил 8,5 лет без отпуска и выгорания и не на удаленке

Reading time7 min
Views18K

Вот уже 20 лет я работаю программистом-фрилансером, и этот эксперимент продолжается. Однажды я увлекся, я работал 8,5 лет без отпуска. Не дистанционно.

Анализируя этот период, я понял, что не выгорал. Вокруг сейчас все только и говорят про выгорание, а как же так получилось, что я не познал сей модный недуг? Или всё-таки познал? Надо разобраться.

Читать далее

Образ мышления Factorio

Reading time7 min
Views78K

Раньше я считал, что компьютерная игра Factorio — это огромная трата ресурсов, сжигающая ежегодно миллиарды долларов ВВП. Мне казалось совершенно ненормальным, что Shopify компенсирует своим сотрудникам её приобретение. Я даже думал, что платить за игру в Factorio сотрудникам Shopify должен её конкурент — Amazon.

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

Это может показаться скучным, но сколько человеко-часов в год тратится на игры «три в ряд»? Некоторые игры называют медитативными, и к Factorio это относится в двух смыслах: во-первых, в ней присутствует аспект темы и вариации — каждый новый создаваемый продукт является неким сочетанием известных задач (например, новый предмет, который должен перемещаться по конвейерам) и новых трудностей (движение жидкостей по трубам и комбинирование их оттока с твёрдыми продуктами для создания новых предметов). Но также она медитативна в том смысле, что медитация — это способ культивации определённого образа мышления, а Factorio способна и на это. Можно медитировать, чтобы находиться в моменте; вы играете в Factorio, чтобы воспитать в себе привычку никогда не оставлять ручной процесс без автоматизации.

Читать далее

Получение участников сообщества vk.com за считанные секунды

Reading time2 min
Views115K
Ни для кого не секрет, что VK API возвращает за один запрос к методу groups.getMembers не более 1 000 участников. В одну секунду вы можете получить максимум 3 000 участников, так как установлено ограничение на количество запросов в секунду до 3. Эту проблему решает метод execute, с помощью которого вы можете получить более 100 000 участников за одну секунду и до 25 000 участников за один запрос. В этой статье я расскажу Вам, как я это реализовал.
Читать дальше →

Расстояние Левенштейна для чайников

Reading time4 min
Views109K

Когда я взялась решать задачку по динамическому программированию — реализовать алгоритм, который рассчитывает расстояние Левенштейна — мне пришлось послушать пару небольших лекций и прочесть несколько статей (приведу их в конце), чтобы разобраться. Я решила попытаться пересказать алгоритм настолько просто, чтобы по этому объяснению можно было снять ролик для тиктока (когда он снова возобновит свою деятельность в РФ). Дальше — мало формул и много картинок.

Читать далее

Как происходит генерация мира Minecraft

Reading time21 min
Views70K
image

Задумывались ли вы когда-нибудь, сколько на нашей планете песчинок? По грубым оценкам, более 7 квинтиллионов! Это 7 с 18 нулями. И всё-таки это даже меньше половины количества уникальных миров в Minecraft. Как же Minecraft и другим похожим играм удаётся создавать такие сложные, красивые, однако полностью процедурные миры? В этой статье я расскажу, как игра генерирует свои миры, от самой высокой горы до самой глубокой пещеры.

Часть 1: процедурная генерация


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

Однако первой игрой с процедурно сгенерированным миром является «Elite», первая версия которой вышла для компьютера BBC Micro в 1984 году. Это прапрадед относительно новой «Elite: Dangerous», выпущенной в 2014 году.


Автоматическая генерация новых миров может казаться привлекательным способом ленивого создания бесконечного контента для игры. Однако на самом деле всё наоборот! Чтобы научить машину тому, как выглядит хороший уровень… нужно быть очень хорошим программистом и дизайнером уровней.

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

Как c помощью Аналитики набрать миллионы подписчиков на Youtube

Reading time7 min
Views20K

«Никто ничего не знает»  - знаменитая цитата Уильяма Голдмана, сказанная в 80х. Имелась ввиду неспособность Голивудских продюсеров предугадывать успех или провал фильма в прокате. Сам Голдман - дважды обладатель Оскара и один из самых великих сценаристов в истории кинематографа. Короче, ему можно верить. 

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

Особенно, успех ролика на Ютуб. 

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

Читать далее

Математическое решение задачи о матрице «змейкой»

Reading time13 min
Views31K

Настоящая статья продолжает тему предыдущей работы (https://habr.com/ru/post/560266/)  и также посвящается особо извращенным способам заполнения двухмерных массивов согласно определенному шаблону. Создание громоздких, неуклюжих формул, без применения таких милых сердцу программиста конструкций как циклы и условия оказалось увлекательным занятием. В связи с этим, автор, уподобляясь некоторым государственным чинам (вспоминаем бородатую шутку про разницу между депутатом и программистом),  решил потратить кучу драгоценного времени на очередной интересный, но, увы, бесполезный в практическом плане проект. Речь идет о вычислении математическим путем элементов массивов, заполняемых змееподобной траекторией, или проще говоря – «тещиных» матриц.

Различают два класса этих самых матриц: обычные (злобные) и диагональные (крайне злобные).

Первый класс двухмерных массивов (здесь и далее речь идет только о квадратных матрицах) заполняется натуральными числами от 1 до N2 с левого верхнего угла построчно:

Читать далее

Как сделать ИИ для поиска алмазов в Minecraft

Reading time9 min
Views25K

В случайно сгенерированном мире Minecraft найдём алмазы с помощью ИИ. Как обученный с подкреплением агент проявит себя в одной из самых сложных задач игры? Подробностями делимся к старту флагманского курса по Data Science.

Читать далее

Асинхронный python без головной боли (часть 1)

Reading time14 min
Views379K

Почему так сложно понять asyncio?

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

Но будь я автором самого толстого в мире учебника по python, я бы рассказывал читателям про асинхронное программирование уже с первых страниц. Вот только написали "Hello, world!" и тут же приступили к созданию "Hello, asynchronous world!". А уже потом циклы, условия и все такое.

Съешь красную таблетку

Как ускорить Python с помощью C-расширений. Часть 1

Reading time9 min
Views12K

Привет, Хабр! Я – Игорь Алимов, ведущий разработчик группы Python в МТС Digital, работаю над продуктами Smart Rollout, B2B портал. В этой статье я расскажу о том, как писать быстрый код на Python с использованием C-расширений и способах победы над GIL.

Интересно? Добро пожаловать под кат!

Читать далее

Генетический алгоритм поиска решения для задачи по выбору планировок этажа многоквартирного дома

Reading time6 min
Views8.6K

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

Читать далее

Матчинг шаблона в Python 3.10

Reading time3 min
Views7.6K

В Python 3.10 имплементирован своего рода оператор switch — что-то вроде него. Оператор switch в других языках, таких как C или Java, выполняет простой матчинг значения переменной и исполняет код в зависимости от этой величины.

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

Возможно, этого было бы достаточно для языка C, но ведь речь о Python, а в Python 3.10 реализована гораздо более мощная и гибкая конструкция, называемая структурным сопоставлением шаблона. Она может использоваться как простой оператор switch, но способна на гораздо большее.

Давайте рассмотрим несложный пример с оператором switch. Ниже приведен сниппет, который осуществляет выбор одного значения. Мы проверим его, запустив в цикле со значениями 1,2,3 и 4.

Читать далее

Грокаем алгоритмы

Reading time4 min
Views201K

Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих от Бхаргава А. Эта книга рекомендована Яндекс Практикум при подготовке к алгоритмическому собеседованию. Сам автор указывает, что книга для самоучек, студентов, выпускников и тех, у кого программирование не является основным профилем.

Мое впечатление неоднозначно. С одной стороны, до сего момента я не встречал описания динамического программирования, поиска кратчайшего пути в графе по алгоритму Дейкстры и использование K ближайших соседей для классификации и аппроксимации (возможно, все это есть в 4м или последующих томах Кнута, но в магазине они мне не встречались). С другой стороны, описания и примеры, приведенные в книге, таковы, что практической пользы не представляют. Описания очень поверхностны, примеры нарочно примитивны, код в половине случаев не приведен. Но даже там где есть код, он нарочито упрощен под конкретный пример и на практике бесполезен.

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

Вернемся к Яндекс Практикум и их рекомендации. Если алгоритмы так важны, то почему именно эта книга? Есть масса других, где и алгоритмов больше и разобраны они так, что бери да пользуй. Например, классический труд Д. Э. Кнута Искусство программирования. Да, рисунки в детском стиле в Грокаем алгоритмы забавны. Но иллюстрации в Искусство программирования полезны для понимания. Разве это не важнее, если уж кандидата посылают на алгоритмическое собеседование?

Читать далее

Парсинг для взрослых или Инфраструктура для промышленного парсинга

Reading time7 min
Views20K

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

Читать далее

О производительности Javascript. Рейтинг Techempower

Reading time16 min
Views13K

Почему Javascript входит в топ-2 techempower?

Недавно на github был задан этот вопрос, вызванный появлением новой платформы javascript, близкой к вершине промежуточного рейтинга Techempower. Эта платформа Just(js) является тем, над чем я работаю в качестве пет-проекта уже некоторое время. Здесь я попытаюсь дать краткий ответ на вопрос, а в ближайшие недели дам дополнительные подробности об этом и о самой платформе.

Читать далее

Ускорение производительности Python в 3.11

Reading time6 min
Views31K

Всем привет! Сегодня хочу поделиться с вами хорошими новостями, которые связаны с производительностью python в грядущем релизе 3.11 и то, что нас ожидает в будущем!

Читать далее

Этапы профессиональной карьеры разработчика: какие задачи решают junior, middle и senior

Reading time8 min
Views43K

В своем блоге на Хабре мы уже не раз писали о Python. Хотя бы потому, что это один из наиболее популярных в мире языков программирования. В начале этого года по версии Tiobe он занял первое место. Популярность его объясняется достаточно просто - язык можно относительно быстро выучить на базовом уровне и начать двигаться к вершинам профессии. Но какие они, эти вершины? На что способен senior, какие задачи решает middle, а какие - junior? Об этом мы поговорили с Алексеем Некрасовым (@znbiz), лидером направления Python в МТС, программным директором направления Python и спикером профессии “Python-разработчик” в Skillbox.

Читать далее

Information

Rating
Does not participate
Registered
Activity