Как стать автором
Обновить
40
0.1
Алексей Дубков @hardtop

Пользователь

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 10. Мой пэт-проект

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 1.5K
Python *
Туториал

Оглавление: Уроки компьютерного зрения. Оглавление / Хабр (habr.com)

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

Напомню, какие шаги были сделаны на прошлом уроке:

Применить медианную фильтрацию к изображению.

Провести бинаризацию.

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

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 0

Окей, Джанго, у меня к тебе несколько вопросов

Время на прочтение 36 мин
Количество просмотров 43K
Python *Программирование *Django *

Недавно я проходил очередное интервью, и меня спросили, пишу ли я на flask, на что я ответил, что я себя люблю, и поэтому пишу на django. Меня не взяли, потому что, кхм, у них, оказывается, много чего было на фласке, и вышло неловко. Да-да, я знаю, фласк крут, потому что он простой, всё что надо ставишь сам, а чего не надо там и так нет, но как по мне, всё равно потом получается django.

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

Читать далее
Всего голосов 93: ↑89 и ↓4 +85
Комментарии 23

Что для вас Linux? Или как устроен запуск процессов

Уровень сложности Средний
Время на прочтение 15 мин
Количество просмотров 17K
Настройка Linux *Серверное администрирование *
Туториал

Как бы вы ответили на вопрос, что такое операционная система?

Скорее всего, вы легко сможете ответить на этот вопрос человеку далекому от IT, но подобный вопрос вам может задать, например, HR - в попытке переманить вас в какой-нибудь Facebook или Google. С одной стороны, ответить на этот вопрос очень легко и в интернете можно найти много определений, но относится ли, например, конфигурация DNS и файл /etc/resolv.conf к ОС ? Или в какой области памяти работает ОС - в памяти с безграничными возможностями для кода, называемой kernel space, или все же в лимитированной user space?

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

Читать далее
Всего голосов 59: ↑59 и ↓0 +59
Комментарии 17

Паттерны проектирования на Dart с примерами кода. Часть 2

Уровень сложности Средний
Время на прочтение 21 мин
Количество просмотров 1.1K
Программирование *Разработка мобильных приложений *Dart *Flutter *
Обзор

Команда Flutter-разработчиков Mad Brains продолжает рассказывать про паттерны проектирования на Dart. Использование паттернов проектирования помогает разработчикам создавать более масштабируемое и сопровождаемое ПО, а также улучшать читаемость и содержательность кода. Первую часть статьи можно прочитать тут.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Рендеринг на сервере и HTMX — это будущее

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 21K
Блог компании RUVDS.com Разработка веб-сайтов *JavaScript *HTML *ReactJS *
Аналитика
Перевод

Современная ситуация с разработкой веб-приложений


Сегодня пользователи ожидают от веб-приложений плавной работы без перезагрузок страниц. К сожалению, эти ожидания обычно реализуются в виде одностраничных приложений (single-page application, SPA), использующих библиотеки и фреймворки наподобие React и Angular. Эти фреймворки очень специализированы и с ними может быть трудно работать.

Новый подход заключается в том, чтобы вернуть возможность реализации этого UX в руки инженеров, разрабатывавших веб-сайты до возникновения безумия SPA, используя готовые наборы инструментов и знания. HTMX — лучший пример такого подхода из тех, что я видел.
Читать дальше →
Всего голосов 79: ↑71 и ↓8 +63
Комментарии 143

Какая ты кривая, или математика вокруг нас

Уровень сложности Простой
Время на прочтение 15 мин
Количество просмотров 12K
Математика *Научно-популярное
Из песочницы

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

Читать далее
Всего голосов 86: ↑86 и ↓0 +86
Комментарии 37

Пишем на Python как на Rust

Уровень сложности Средний
Время на прочтение 17 мин
Количество просмотров 22K
Python *Программирование *Совершенный код *Проектирование и рефакторинг *Rust *
Перевод

Я начал программировать на Rust несколько лет назад, и это постепенно изменило мой подход к разработке программ на других языках программирования, особенно на Python. До того, как я начал использовать Rust, я обычно писал код на Python очень динамично, без подсказок типов, повсюду передавая и возвращая словари и время от времени возвращаясь к интерфейсам со «строковой типизацией». Однако, испытав на себе строгость системы типов Rust и заметив все проблемы, которые она предотвращает, я внезапно стал сильно беспокоиться всякий раз, когда возвращался к Python и не получал тех же гарантий.

Читать далее
Всего голосов 97: ↑93 и ↓4 +89
Комментарии 38

Как заставить бэкендера писать фронтенд

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 11K
Блог компании Яндекс Разработка веб-сайтов *Python *Программирование *VueJS *

Всем привет! Меня зовут Иван Ситкин, я бэкенд-разработчик в Едадиле. Сегодня я хочу поделиться с вами историей написания очередной панели администрирования и как из этого мы собрали подходящие подходы и практики.

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

Но иногда в проектах важна скорость и ресурсов на создание админки с привлечением команды фронтенда откровенно не хватает. И тогда бэкендеру приходится брать процесс в свои руки.

А теперь вы готовы погрузиться в эту кроличью нору.

Читать далее
Всего голосов 29: ↑26 и ↓3 +23
Комментарии 68

Создаем блог на Django с опросами и тестами. Краткая инструкция. Часть 1

Время на прочтение 7 мин
Количество просмотров 6.5K
Блог компании Selectel Разработка веб-сайтов *Python *Django *
Туториал

Самый действенный способ изучить фреймворк — написать пет-проект. Например, свою социальную платформу на Django. Во время реализации можно попрактиковаться в работе с формами, представлениями, сигналами и SMTP.

В Proglib собрали небольшой шаблон, на базе которого можно создать свой блог на Django, а после — задеплоить на виртуальный сервер. Материал будет полезен новичкам, которые знакомы с базовыми концепциями фреймворка и хотят закрепить знания. Подробности под катом!
Читать дальше →
Всего голосов 49: ↑46 и ↓3 +43
Комментарии 4

Тебе не нужно классическое ООП в твоём бэкенд микросервисе

Время на прочтение 24 мин
Количество просмотров 14K
Блог компании Домклик Python *Проектирование и рефакторинг *ООП *Функциональное программирование *

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

Читать далее
Всего голосов 49: ↑44 и ↓5 +39
Комментарии 51

За границей Hello World: полный гайд по разработке Telegram ботов на Python + Aiogram 3. Часть 2: Меню и OpenAI API

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 9.5K
Мессенджеры *Python *Программирование *API *Искусственный интеллект
Туториал

Привет, Хабр! Продолжаю серию статей про разработку telegram-ботов на библиотеке aiogram и языке программирования Python. Хочется отметить, что статья не является документацией или учебником. Я просто рассказываю пошагово как разработать полнофункционального бота, стараясь затронуть как можно больше тем.

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

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 11

Электричество без регистрации и sms: быстрое введение в pandapower

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 5.1K
Python *Энергия и элементы питания
Туториал

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

Итак, продолжаем цикл изучения электрических python-библиотек с разбора pandapower - открытой библиотеки для расчета электрических сетей.

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

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 7

Мобильная разработка за неделю #487 (1 — 7 мая)

Время на прочтение 3 мин
Количество просмотров 2.2K
Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
Дайджест
В новом выпуске обучение iOS-разработке и цена управления памятью, правила дизайна и гниение кода, бэкенд, мобилки, ремесло, гвозди, зоопарк трансформеров и многое другое.

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

16 простых и эффективных правил дизайна UI

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 15K
Блог компании RUVDS.com Веб-дизайн *Интерфейсы *
Туториал
Перевод

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

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

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

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

Самый быстрый способ обучения — это практика, так что приступим!
Читать дальше →
Всего голосов 66: ↑65 и ↓1 +64
Комментарии 13

Как появляются дизайн-системы: рассказываем и показываем на собственном примере

Уровень сложности Средний
Время на прочтение 15 мин
Количество просмотров 2K
Блог компании Quadcode Разработка веб-сайтов *Дизайн
Кейс

-

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 5

PostgreSQL 16: Часть 5 или Коммитфест 2023-03

Время на прочтение 27 мин
Количество просмотров 3.8K
Блог компании Postgres Professional PostgreSQL *SQL *

Вместе с окончанием мартовского коммитфеста, закончился прием изменений в 16-ю версию. Пришла пора посмотреть, что в нем было нового и интересного.


Надеюсь, что представленный материал вместе с предыдущими статьями серии (2022-07, 2022-09, 2022-11, 2023-01) поможет сформировать представление о новинках PostgreSQL 16.

Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 0

Не пытайтесь приспособить свой код к будущему

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 6.1K
Блог компании Productivity Inside Совершенный код *Управление продуктом *
Перевод
Не имеет значения, что, по вашему мнению, может случиться потом.

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

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

Но тут вот какое дело. Эти дополнительные поля, изменения в логике и ресурсы для повторного использования достаются им не бесплатно. Они стоят времени и сил. Если постоянно дорабатывать дизайн, чтобы предвосхитить будущие потребности, выпуск первой версии займет больше времени. И, к сожалению, это время, скорее всего, уйдет впустую.
Читать дальше →
Всего голосов 32: ↑23 и ↓9 +14
Комментарии 25

Рейтинг языков программирования 2023. JavaScript/TypeScript завоевывают мир, Python вошел в топ-3

Время на прочтение 4 мин
Количество просмотров 47K
JavaScript *Программирование *Исследования и прогнозы в IT *Карьера в IT-индустрии Статистика в IT

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

В конце статьи будет локальный опрос пользователей Хабр.

Поехали!
Всего голосов 58: ↑56 и ↓2 +54
Комментарии 115

Про Vim " Миграция на Neovim (Lua)

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 6K
VIM *Lua *
Туториал

Теоретически если вы решили пересесть с классического Vim на более современный его клон - Neovim - вам делать ничего особенного не надо. В файле ~/.config/nvim/init.vim прописать source ~/.vimrc ну и скачать или скопировать словари. Идея в том, что Neovim должен поддерживать все конфигурации Vim по умолчанию. Однако, если у вас установлено множество плагинов и разных к ним расширений, то с высокой вероятностью конфигурация загрузится с ошибками, предупреждениями и другими, не очень желательными нюансами. Да и вообще вся фишка, вся разница Neovim заключается в том, что он поддерживает настройки и плагины написанные на Lua вместо vimscript.

Lua - более современный интерпретируемый язык, на нем удобнее писать, его проще читать. А еще, считается, что работает интерпретатор на порядок быстрее родного языка. На счет порядка я бы засомневался, но действительно тяжелые плагины работают вроде как расторопнее и глаже. Впрочем и классический Vim известен не тем, что он медленный или глючный, так что тут спор скорее софистический. А вот с первыми тремя утверждениями я абсолютно согласен.

Более того для Neovim именно на Lua в последнее время выбор современных плагинов и расширений, что уж тут говорить, куда богаче. Вопрос даже не в том лучше ли эти аналоги, а в скорее в свежести, динамике развития и в целом в оптимизме сообщества. Очень похоже на то, что не сегодня так завтра Neovim повторит судьбу предшественника и займет свое место в распространенных дистрибутивах Linux в качестве стандартной замены устаревшему Vim. Заменит полностью? Ну, я бы не был так категоричен в этом вопросе, но вероятность такая существует.

Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 7

Прикормочный кораблик на arduino

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 13K
Разработка под Arduino *DIY или Сделай сам Электроника для начинающих
Из песочницы

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

Читать далее
Всего голосов 74: ↑74 и ↓0 +74
Комментарии 52

Информация

В рейтинге
2 326-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность