Search
Write a publication
Pull to refresh
-4
@v3y7read⁠-⁠only

User

Send message

Как работать с процессами и потоками в Python

Reading time16 min
Views120K

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

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

Читать далее

Руководство по программированию сокетов на Python. Протокол и сообщения

Reading time23 min
Views11K



К концу руководства вы освоите основные функции и методы модуля Python socket, научитесь применять пользовательский класс для отправки сообщений и данных между конечными точками и работать со всем этим в собственных клиент-серверных приложениях. Материалом делимся к старту курса по Fullstack-разработке на Python.

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

Как мы делали приложение а-ля Google Meet с помощью PeerJS, SocketIO и NextJS

Reading time13 min
Views7.7K

Всем привет, дорогие читатели Хабр. Мы долго думали, чтобы нам сделать такое, что от нас не потребует глубоких знаний бэкенда и базы данных, но все же интересное и обучающее, исключительно ориентированное на конечного пользователя. Так мы пришли к тому, что нам бы хотелось изучить более подробно сферу WebRTC и WebSockets и решили сделать что-то похожее на Google Meet c еë основными фичами, которые более подробно описаны чуть ниже. Но давайте все по порядку :) Приготовьтесь, будет много кода!

Читать далее

К каким вопросам готовиться перед собеседованием на Python-разработчика

Reading time4 min
Views28K

Безусловно, от программирования нужно получать свой кайф. Если вам не интересно заниматься тем, что вы делаете, наверное, это дело лучше бросить. Однако, было бы неплохо конвертировать ваш кайф в какую-нибудь валюту. Даже желательно бы не в православный рубль, а басурманский доллар. Поэтому сегодня обсудим вопросы, которые задают на собеседованиях Python-разработчику и как в целом подготовиться к любому такому собеседованию. Текст написал автор YouTube-канала PyLounge Макс. Поехали!

Читать далее

SciPy — интегрирование и дифференцирование, обработка изображений и сигналов

Reading time4 min
Views25K

Думаю, ни для кого не секрет, что Python может все или почти все. Например, для построения графиков можно использовать matplotlib, для анализа и манипуляции данными можно использовать библиотеку pandas, а для работы с массивами была разработана библиотека numpy. А есть ли библиотека, которая может выполнять различные математические операции, например, интегрирование и дифференцирование, обработка изображений и сигналов, расчет статистических распределений и функций? Конечно есть, это библиотека SciPy.

Читать далее

Удалённая сборка Android проектов на сервере прямо из Android Studio

Reading time42 min
Views8.1K

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

Бывает довольно обидно, когда в работу поступает задача, решение которой очевидно, фикс проблемы делается за пару минут, но чтобы проверить что всё исправлено нужно переключать ветки, пересобирать проект, потом переключаться обратно и пересобирать исходную ветку. Это может занимать очень много времени. Или бывает так, что находясь “в потоке” нужно что-то быстро проверить, но увидеть вступили ли изменения в силу можно только пересобрав и перезапустив проект, а если что-то пойдёт не по плану, или по каким-то причинам кэш сборки не отработает и проект будет собираться почти "на холодную"? Подобные, казалось бы, мелочи могут занимать огромное количество времени в течение дня, отвлекают, мешают сосредоточиться и продуктивно использовать рабочее время. Особенно много времени тратится если рабочий компьютер далеко не самый производительный, или если вы пользуетесь ноутбуком, не ориентированным на выполнение тяжёлых сборок. 

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

Интересующихся приглашаю под кат.

Читать далее

Проектируем интерфейс корзины в интернет-магазине: 138 гайдлайнов

Reading time16 min
Views9.6K

Вы часто встречаете интернет-магазины, в которых нет корзины? Наверное, нет – корзина есть практически у всех, и через нее проходит практически весь трафик.

Разбираем 138 гайдлайнов в этой статье.

Как сделать работу с корзиной максимально удобной для клиента?

Читать далее

Выжимаем все соки: PGO Оптимизация ядра Linux

Reading time9 min
Views13K

Сложность вычислительных задач и систем растёт с каждым днём. Для бизнеса ускорение кода даже на пару процентов даёт улучшение производительности, заметное снижение издержек и уменьшение задержки(latency). В первую очередь это касается мобильных и встраиваемых систем, высоконагруженных серверов, научных вычислений и 3D-графики. Так был разработан относительно перспективный и молодой метод оптимизации — Profile-Guided Optimization, далее просто PGO-оптимизация. Данный метод эффективно используют такие известные компании, как Google, Mozilla Foundation, Intel, Oracle, IBM и другие. Практически ни один современный веб-браузер не обходится без PGO-оптимизации.

Не так давно компанией Google был предложен набор патчей, включающий PGO-оптимизацию в ядре Linux. Мною был протестирован этот набор патчей в работе и доработан. Мне хотелось бы рассказать об этом методе оптимизации ядра Linux, о том, с какими трудностями можно столкнуться, и как их решить.

Если вас заинтересовала эта тема, вам интересно развитие технологий и тренды крупных компаний, то добро пожаловать под кат.
Читать дальше →

Tiny-qORM: рассказ без счастливого конца

Reading time18 min
Views3.3K
Чаще всего на хабре люди делятся историями своего успеха. Вроде, «Ребята, я написал свою ORM, качайте, ставьте ллойсы!» Эта история будет немного другая. В ней я расскажу о неуспехе, который считаю своим серьёзным достижением.


Ожидание — реальность.

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

О том, как алгоритм Дейкстры реализовывал и некоторых его применениях

Reading time12 min
Views12K

Приветствую Вас, хабровчане!

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

Читать далее

Превзойти самолет: как «Пегас‑Агро» создает сельхозтехнику по авиационным стандартам

Reading time8 min
Views7.5K

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

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

Узнать подробности

Учимся создавать пакеты Python

Reading time8 min
Views53K
imageПочему важно уметь создавать пакеты Python?
• Пакеты легко устанавливаются (pip install demo).
• Пакеты упрощают разработку (Команда pip install -e устанавливает ваш пакет и следит за тем, чтобы он сам обновлялся в ходе всего процесса разработки).
• Пакеты легко запускать и тестировать (from demo.main import say_hello, а затем тестируем функцию).
• Пакеты легко версионировать, при этом вы не рискуете нарушить работу кода, зависящего от этого пакета (pip install demo==1.0.3).
Читать дальше →

Гэри Дарби, автобиография — Delphi For Fun

Reading time4 min
Views2.6K

Уверен, что история жизни этого человека достойна быть упомянутой на Хабре, поэтому хочу поделиться переводом его автобиографии (за качество перевода сильно не пинать). Тем более, что вот как уже несколько лет его нет в живых, однако надеюсь, что его примеры решения головоломок пригодятся всем, кто интересуется программированием, математикой и просто созданием прикольных штук на Delphi и не только. Да и в целом полагаю, что его жизненный путь многим покажется интересным, а для кого-то, возможно, и поучительным.

Читать далее

Простой mp3-плеер с графическим интерфейсом на Go

Reading time7 min
Views9.7K

Мы продолжаем рассматривать разные платформенные применения Go (ранее мы посмотрели как использовать Go для микроконтроллеров, веб-приложений, разработки API, создания мобильных приложений) и сегодня поговорим об использовании Go для создания приложений для настольных компьютеров на примере реализации несложного mp3-плеера с поддержкой графического интерфейса. Мы будем использовать связывание с GTK для реализации интерфейса, библиотеки декодирования mp3 и взаимодействия с аудиосистемой (для Windows, Linux и MacOS).

Читать далее

Apache Cassandra: механизмы репликации и поддержания согласованности

Reading time5 min
Views7.5K

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

Читать далее

Организация аварийных и технологических защит на примере технологической печи

Reading time30 min
Views11K

Организация аварийных и технологических защит на примере технологической печи

В статье приведен пример организации защит для технологической печи. Данный подход к построению защит был неоднократно реализован на объектах нефтепереработки и нефтехимии с применением различных ПЛК.

Материал в первую очередь ориентирован на инженеров АСУТП, разрабатывающих и реализующих аварийные и технологические защиты. Предложенный подход построения защит является типовым для зарубежных проектов и несколько адаптирован под российскую действительность. Все решения подробно поясняются. Статья призвана помочь инженерам разобраться в сложных моментах при реализации ПАЗ технологических объектов.

Предложенный подход основан на личном опыте автора, автор не претендует на истинность.

Читать далее

ЯП с нуля до прототипа (Лексер) #1

Reading time9 min
Views13K

Мечтали создать свой язык программирования?

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

Поехали

Effector — убийца Redux? Туториал с нуля. Часть 1

Reading time5 min
Views34K

Redux и MobX больше не нужны ?

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

Читать далее

28 расширений VS Code для разработки документации

Reading time3 min
Views34K

Плагины VS Code, без которых техническим писателям и разработчикам документации жить можно, но сложно. В подборке — линтеры, форматирование, работа с git, проектирование API, подготовка схем и милота для удобной разработки.

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

Information

Rating
Does not participate
Registered
Activity