Обновить
563.74

Python *

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

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

Voila: из ноутбука в веб-приложение

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

Voilà это библиотека, которая позволяет превращать Jupyter Notebook’и в интерактивные веб-приложения и дашборды. С ее помщью вы сможете продемонстировать свою работу третьим лицам или создать целый веб-сервис. В этой статье рассмотрим основные ее возможности...

Мои курсы: Разработка LLM с нуля | Алгоритмы Машинного обучения с нуля

Читать далее

Веб-сокеты в Django Channels. Сделаем простой чат

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

Фреймворк Django представляет разработчику исчерпывающий набор функций для работы с базами данных, инъекцией зависимостей, обработке шаблонов и многим другим через механизм дополнений. Часто Django используется как решение для разработки динамического содержания сайтов, но также с его помощью можно создавать REST-интерфейсы (например, для взаимодействия с мобильным или frontend-приложением) через расширение DRF (Django Rest Framework), однако REST-методы часто не подходят для ситуаций динамического обновления информации на стороне клиента. В этом случае рационально использовать веб-сокеты для поддержки двухстороннего обмена данными с клиентом и асинхронные расширения Django Channels для создания таких каналов передачи информации. В этой статье мы последовательно разберем механизм работы Django Channels и сделаем простую реализацию чата с использованием веб-сокетов.

Читать далее

Мой личный опыт восстановления старых фотографий с помощью нейросетей

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

Мой скромный опыт запуска нейросетей на ноутбуке для восстановления старых фотографий.

Читать далее

Как запустить динозаврика Google на тачбаре? Обзор Python-библиотеки PyTouchBar

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

С 2016 года у некоторых моделей MacBook Pro есть сенсорная OLED-панель. По сути, она просто заменяет функциональные клавиши. Но с ней чуть интересней: на тачбар можно вывести закладки и даже медиаэлементы.

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

В конце статьи — конкурс на плюшевого тирекса.
Читать дальше →

Как обнаружить выбросы автоэнкодером?

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

Если что-то не сжимается — возможно, что-то тут не так



Выпадающие значения, также называемые «выбросами», — привычная всем преграда, о которую спотыкаются наука о данных и машинное обучение. Концепция выпадения значений интуитивно понятна, но математическому определению поддаётся с трудом. Думаю, дело в том, что придумать такое определение довольно сложно, ведь выброс может по-разному восприниматься разными людьми. Подробности — к старту нашего флагманского курса по Data Science.

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

Android. Starting Kivy App and Service on bootup

Время на прочтение15 мин
Охват и читатели5.3K
main

Как запускать приложение или сервис написанные на python (Kivy) под Android (до API 25 версии) при запуске устройства. Что бы это сделать придется разбираться как работает buildozer и pythonforandroid. Т.к. на текущий момент сделать это по человечески не представляется возможным, из-за того что разработчики Kivy не позаботились об этом. Узнать что такое Kivy, как собрать первое приложение можно здесь или по ссылкам в конце статьи.

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

Книга «Знакомство с Python»

Время на прочтение12 мин
Охват и читатели13K
imageЗдравствуйте, Хаброжители!
Пора пополнять библиотеку программиста.

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

Если вы задаетесь подобными вопросами, потому что хотите заложить фундамент будущей карьеры питониста — эта книга для вас!

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

Книга построена по принципу 80/20: большую часть полезной информации можно усвоить, изучив несколько критически важных концепций. Освоив самые популярные команды и приемы, вы сразу сосредоточитесь на решении реальных повседневных задач.
Читать дальше →

Эволюция управления доступом объяснена с помощью Python

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

ОС CTSS (Compatible Time-Sharing System) Массачусетского технологического института была разработана в 1961 году для обеспечения независимого доступа нескольких пользователей к большому компьютеру. Вскоре разработчики обнаружили, что существует огромная потребность в предоставлении друг другу общего доступа к программам и данным. Это способствовало возникновению первых разговоров о компьютерной безопасности и привело к тому, что защита стала основной целью разработки ОС Multics. Спустя годы после выпуска Multics, Зальтцер (Saltzer) и Шредер (Schroeder) опубликовали книгу "Защита информации в компьютерных системах", в которой были учтены уроки, полученные при ее разработке и реальном использовании. Их работа является одной из самых цитируемых в истории работ по безопасности и первой, где были использованы многие термины, которые мы употребляем сегодня, включая понятие "Наименьшая привилегия".

Читать далее

Что такое Mediapipe, или Как мы делали инференс в реальном времени на Android и iOS

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

Привет! Я Андрей Татаринов, директор Epoch8. Мы занимаемся проектами в области машинного обучения и анализа данных. В этой статье расскажу, как мы использовали фреймворк Mediapipe для iOS и Android, запускали его на десктопе, писали кастомные калькуляторы и в поддержку сообщества.

Читать далее

Стоит ли использовать кастомные исключения в Python

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

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

Читать далее

Пайтон Джуньор Плюс, или путеводитель начинающего Python-программиста

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

image


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


Особенно выбивают из равновесия советы изучить, скажем, «Алгоритмы и структуры данных» или «SQL». Да зубы можно сточить, изучая эти темы, и даже будучи седовласым старцем, постоянно открывать для себя что-то новое, не выходя за рамки тематики «Алгоритмов»!


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

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

Учим автотесты API адаптироваться под требования

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

Привет! Меня зовут Тимур Шарафутдинов, я занимаюсь процессами автоматизации тестирования в «Ростелеком ИТ». Сегодня поделюсь своим опытом реализации model based-подхода в написании python API автотестов на проекте — приложении с микросервисной архитектурой для обработки, хранения, конфигурирации заказов.

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

Читать далее

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

Подборка полезных сервисов с применением нейронных сетей

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

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

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

Умные субтитры

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

Сегодня я вам расскажу о своем методе для изучения иностранных языков.

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

Я предлагаю начать сразу с видео. Во-первых, видео просто интересно смотреть (особенно если это нормальные мультики/фильмы/сериалы, созданные для носителей языка). Во-вторых, вы сразу начнете запоминать звучание слов, что очень сильно пригодится для развития навыка аудирования в будущем.

Однако, если вы просто возьмете видео на новом для себя языке, то вы ничего не поймете. Первый шаг к решению проблемы - смотреть видео с субтитрами на языке оригинала. Однако, когда вы еще не знаете лексику языка, такие субтитры вам не помогут. Вам нужны двойные субтитры - на языке оригинала + перевод на ваш родной язык. 

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

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

Читать далее

Как сделать локальный Django-сайт доступным в Интернете / Туннели ngrok

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

Допустим вы пишите какое-то Django-приложение. Как обычно разработка идёт локально на вашем компьютере.  По умолчанию все Django-проекты доступны по адресу http://localhost:8000 или http://127.0.0.1:8000 что одно и тоже. Эта адреса твоего локального компьютера. Соответственно никто другой в Интернете, перейдя по одному из этих адресов, ваш сайт не увидит.

Проект пока рано заливать на какой-то хостинг или выделенный сервер, но показать его другому человеку уже нужно: похвастаться другу, человеку и команды разработки, заказчику и т.д. Даже если этот человек подключится к WI-FI у вас дома и будет находиться с сайтом в одной сети, localhost будет перенаправлять гостя на своё же устройство, а не на ваш сайт.

Что делать, как показать Django-проект, которые запускается на локальном сервере, недоступном в Интернете? Есть несколько вариантов:

Читать далее

OpenCV — быстрый старт: аннотирование изображений

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

Увеличение площади полигона за счет второго полигона

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

Когда мы расставляем мебель в комнате, мы ориентируемся на габаритные размеры мебели и фурнитуры, а не на их занимаемую площадь, и мебель часто квадратной формы. С полигонами на карте дело обстоит немного иначе, они могут быть произвольной формы, но должны иметь определенную площадь, а задача такая же как и с мебелью - уместить всё в комнату (участок). Когда полигоны квадратные, то рассчитать нужное изменение длины ребра для получение желаемой площади, не так и сложно. С полигонами сложной формы всё не так просто, но и это тоже не проблема, ведь можно методом тыка подобрать нужную площадь. Проблема возникает когда количество полигонов возрастает. Пример: на изменение полигона сложной формы уходит 5 минут (грубо говоря), но нам нужно изменить 15 полигонов, считаем и получаем 75 минут. За 75 минут можно сделать гору полезных дел, а всего было отредактировано 15 полигонов. Если полигоны придется менять заново? вдруг нужно их будет разбить на другую площадь? Вот была бы такая программа, которая сама бы изменяла полигон и добавляла бы нужную площадь.

Читать далее

Оптимизируем дерево отрезков, делаем из него куст o_O

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

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

Математика говорит, что это невозможно, но нам всё равно!

Расширять сознание

10 итераторов, о которых вы могли не знать

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

Одним из главных достоинств Python является выразительность кода. Не последнюю роль в этом играет возможность удобной работы с коллекциями и последовательностями различного вида: перебор элементов списка по одному, чтение файла по строкам, обработка всех ключей и значений в словаре. Эти и многие другие подобные задачи в Python помогает решить так называемый протокол итераторов (Iterator protocol). Именно этот протокол обеспечивает работу цикла for, устанавливает по каким объектам можно итерироваться, а по каким нет. Как мы увидим далее, сам язык и стандартная библиотека очень широко используют возможности протокола. В этой статье попробуем отыскать не самые известные, но от этого не менее интересные примеры итераторов и итерируемых объектов, которые предлагает Python.

Читать далее

Вклад авторов