Как стать автором
Обновить
Just Habra User @justhabrauser read-only

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

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

Блог компании SimbirSoft Python *Программирование *Параллельное программирование *

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

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

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

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

Python *
✏️ Технотекст 2022

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

Читать далее
Всего голосов 48: ↑45 и ↓3 +42
Просмотры 21K
Комментарии 18

Как работать с атомарными типами данных в C++

Блог компании МойОфис Программирование *C++ *

Насколько популярна сегодня тема атомарных данных, настолько же она обширна для одной статьи. Можно подробно останавливаться на разных аспектах атомарности: например, анализировать memory ordering, рассуждать о lock-free алгоритмах с использованием атомиков или исследовать производительность атомиков на разных платформах.

Под катом мы рассмотрим некоторые базовые принципы работы с атомарными типами данных в языке C++. А именно: осветим работу с атомарными данными, основные операции с ними в стандартной библиотеке C++, а также некоторые аспекты использования атомиков с пользовательскими типами данных.

Читать далее
Всего голосов 61: ↑60 и ↓1 +59
Просмотры 12K
Комментарии 11

Новый взгляд на асинхронность в Python: в лучших традициях gevent, но ещё лучше

Python *Django *

Некоторые уже видели мои статьи про добавление асинхронности в django. Этот пост не об этом: вопрос более широкий и посвящён асинхронности в целом. И подход совсем другой.

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

Итак, асинхронность в стиле gevent - что бы это могло быть? Читайте под катом. На картинке - иллюстрация к сказке Киплинга "Слонёнок".

Читать
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 4.4K
Комментарии 11

Использование slots | Python

Python *Серверная оптимизация *

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

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

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 11K
Комментарии 9

Mikrotik, Telegram и не только…

Системное администрирование *Программирование *Сетевые технологии *
Из песочницы
✏️ Технотекст 2022

Здравствуйте, друзья!

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

Однако, давайте по порядку.

Читать далее
Всего голосов 53: ↑53 и ↓0 +53
Просмотры 37K
Комментарии 29

Ненавижу тебя, CUPS

Блог компании RUVDS.com *nix *Серверное администрирование *Периферия

Продолжение импортозамещения. Рабочие станции мы уже раскатываем в автомагическом режиме, пришло время и о периферии подумать — юзеры, вернее, их руководители, хотят видеть результаты трудов в твёрдом виде на экобумаге.
Читать дальше →
Всего голосов 56: ↑55 и ↓1 +54
Просмотры 12K
Комментарии 28

А может, это логика? Занимательные задачки о лжецах и честных людях

Занимательные задачки Логические игры
Перевод

Заголовок оригинальной статьи “Could it be logic?” отсылает к названию песни Take That «Could it be magic?»
Участники группы: Гэри Барлоу, Ховард Дональд, Марк Оуэн, Робби Уильямс, Джейсон Орандж.


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

Сегодняшние задачки решаются с применением логики. Первую вы могли уже встречать, и всё равно она представляет собой прекрасный пример элегантной загадки на логику.
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Просмотры 7.5K
Комментарии 15

Спектрометр из смартфона, картона и осколка DVD-диска: смотрим на спектры лампочек, фонариков, солнца

Блог компании Samsung DIY или Сделай сам
Tutorial

Всем привет! Продолжаем придумывать, как можно использовать устаревший смартфон в новом качестве. Эта статья подготовлена по материалам второго сезона видеокурса “Galaxy Upcycling - новая жизнь старого смартфона”. В  уроках первого сезона мы уже сделали 3D-голограмму, проектор (и написали об этом статью на Хабр), микроскоп, часы, гирлянду, а сегодня делаем еще один исследовательский прибор.

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

Читать далее
Всего голосов 113: ↑113 и ↓0 +113
Просмотры 17K
Комментарии 10

Устаревшие Python-библиотеки, с которыми пора попрощаться

Блог компании Wunder Fund Разработка веб-сайтов *Python *Программирование *
Перевод

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

Читать далее
Всего голосов 37: ↑35 и ↓2 +33
Просмотры 27K
Комментарии 28

iPXE — заливка linux, windows, утилит по сети

Настройка Linux *Системное администрирование *
Из песочницы
✏️ Технотекст 2022

Раньше у нас использовалась заливка ОС по PXE с использованием syslinux, но как бывает с самодостаточными системами и без достаточного контроля и внимания - быстро превратилась в кашу из конфигураций, библиотек, загрузчиков.

Так же была необходимость в поддержке заливки разных ОС в режиме EFI - на тот момент заливка была только в Legacy.

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

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 16K
Комментарии 7

Яндекс выложил в опенсорс бету фреймворка userver

Блог компании Яндекс Высокая производительность *Open source *C++ *GitHub *
Сегодня мы анонсируем выход в опенсорс фреймворка userver для создания высоконагруженных приложений. Для нас это важный способ поделиться опытом в разработке микросервисов, который мы накопили. Вот ссылка на Гитхаб-репозиторий c исходным кодом, документацией, примерами, шаблоном для создания своих сервисов (с настроенным CI, сборкой и тестовым окружением) и сервисом динамических конфигов. Всё это опубликовано под лицензией Apache 2.0.



🐙userver позволяет быстро создавать эффективные микросервисы на языке C++ и уже много лет активно используется в Яндекс Go, Еде, Лавке, Доставке, Маркете, финтехе и других проектах. Вот из каких требований мы исходили в процессе разработки:

  • Простота. Стажёр или студент, приходя к нам, может уже через неделю написать и отправить в продакшен новый микросервис.
  • Надёжность. Многие ошибки, в том числе и связанные с многопоточностью, можно поймать на этапе компиляции. Кроме того, фреймворк даёт подсказки по исправлению проблем.
  • Полнота. В userver есть всё необходимое для тестирования, работы с разными базами данных, кеширования, логирования, трейсинга, распределённых блокировок, работы с JSON, BSON, YAML, изменения параметров сервиса на лету и так далее.

Сейчас я расскажу о том, как возникла идея userver, как фреймворк развивался, в каких задачах его сейчас используют и почему именно выход в опенсорс был логичным следующим шагом. А затем приведу пример написания нового микросервиса.
Читать дальше →
Всего голосов 177: ↑173 и ↓4 +169
Просмотры 55K
Комментарии 140

Разбираемся с параллельными и конкурентными вычислениями в Python

Блог компании Wunder Fund Python *Программирование *
Перевод

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

Прим. Wunder Fund: для задач, где не критичны экстремально низкие задержки — при сохранении и обработке биржевых данных, мы используем Питон, и естественно применяем описанные в статье подходы. Статья будет полезна начинающим разработчикам.

Мы увидим, что когда один человек одновременно делает несколько дел — это похоже на конкурентность, а когда несколько человек, работая бок о бок, заняты каждый собственным делом — это напоминает параллелизм. Эти ситуации мы разберём на простом и понятном примере закусочных, в которые люди заходят в обеденный перерыв. Такие заведения стремятся обслуживать клиентов как можно быстрее и эффективнее. Потом я покажу реализацию механизмов этих закусочных на Python, а в итоге мы сравним разные возможности одновременного «приготовления нескольких блюд», которые даёт нам этот язык, и разберёмся с тем, в каких ситуациях их применение наиболее оправдано.

А именно, я раскрою здесь следующие вопросы:

▪ Отличия конкурентности от параллелизма.
▪ Различные варианты организации конкурентного выполнения кода (многопоточность, модуль asyncio, модуль multiprocessing, облачные функции) и их сравнение.
▪ Сильные и слабые стороны каждого подхода к организации конкурентного выполнения кода.
▪ Выбор конкретного варианта организации конкурентного выполнения кода с использованием специальной блок-схемы.

Читать далее
Всего голосов 25: ↑24 и ↓1 +23
Просмотры 30K
Комментарии 6

F-строки в Python мощнее, чем можно подумать

Блог компании Wunder Fund Python *Программирование *
Перевод

Форматированные строковые литералы, которые ещё называют f-строками (f-strings), появились довольно давно, в Python 3.6. Поэтому все знают о том, что это такое, и о том, как ими пользоваться. Правда, f-строки обладают кое-какими полезными возможностями, некоторыми особенностями, о которых кто-нибудь может и не знать. Разберёмся с некоторыми интересными возможностями f-строк, которые могут оказаться очень кстати в повседневной работе Python-программиста.

Читать далее
Всего голосов 98: ↑96 и ↓2 +94
Просмотры 55K
Комментарии 25

Port knocking и не только

Блог компании inDrive.Tech Настройка Linux *Информационная безопасность *Системное администрирование *

Прочитав по диагонали статью гражданина @Winseven«ICMP открывашка портов для сервера», я сдержался. Все-таки велосипединг — это весело. Но вчитавшись, я опешил. Зачем запускать отдельное приложение для отслеживания нужных пакетов? Правильно ли, что достаточно один раз попасть пальцем в небо, чтобы порт был открыт? По мне, как-то не по фэншую.

Душа все это не вынесла, и я решился на статью.

А как надо было?
Всего голосов 35: ↑33 и ↓2 +31
Просмотры 8.3K
Комментарии 27

Разработчик с мозгом груга

Программирование *Совершенный код *Проектирование и рефакторинг *
Перевод

Введение


это сборник мыслей о разработке программ собранный разработчиком с мозгом груга

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

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

разработчиков с большим мозгом много, некоторым страница не понравится, скривят кислая рожа

Ещё больше-больше ДУМАЮТ, что они разработчики с большим мозгом и им она тоже не понравится

(груг раньше думал груг с большим мозгом, но потом всё понял)

это ладно!

груг надеется, что тебе понравится читать и может ты научишься на много-много ошибка груг совершил за длинную жизнь программиста
Читать дальше →
Всего голосов 261: ↑235 и ↓26 +209
Просмотры 73K
Комментарии 81

Как создавать иконки сайтов в 2022 году — всё о favicon

CSS *HTML *
Перевод
Tutorial

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

Статья глубоко погружается в тему, поэтому в начале я даю два фрагмента кода для тех, кто уже достаточно настрадался и понимает, что делать. Тем не менее, я всем рекомендую читать статью целиком!

Статья целиком
Всего голосов 39: ↑39 и ↓0 +39
Просмотры 15K
Комментарии 31

RustDesk — self-hosted аналог TeamViewer

Системное администрирование *

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

Читать далее
Всего голосов 88: ↑87 и ↓1 +86
Просмотры 44K
Комментарии 40

Неожиданная находка, которая освобождает 20 GB неиспользованного индексного пространства

Блог компании OTUS PostgreSQL *Хранение данных *
Перевод

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

Начнем с конца: в итоге нам удалось освободить более чем 70 GB не оптимизированного и неиспользуемого пространства без удаления индексов и данных. 

Читать далее
Всего голосов 60: ↑57 и ↓3 +54
Просмотры 24K
Комментарии 9

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

Python *Программирование *
Tutorial

Продолжаем вкусно готовить asyncio

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

Выпей меня
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 13K
Комментарии 17

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность