Рубрика «генераторы»

Вы когда-нибудь пытались загрузить в память CSV-файл на миллион строк и увидели что-то вроде:

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted

Даже если увеличить memory_limit, ощущение всё равно неприятное: мы держим в памяти весь массив данных, хотя работаем с ним построчно.

Решение? Ленивые вычисления — подход, при котором данные генерируются и обрабатываются только тогда, когда они реально нужны.
В PHP это можно сделать двумя способами: с помощью генераторов (yield) и через Iterator API. Сегодня разберём оба.

Что такое ленивые вычисления

Читать полностью »

Я люблю аналоговую электронику, мне нравится возиться с настройкой схем и изучением процессов, которые в них протекают. Давно хотел сделать источник качественного синусоидального сигнала для проверки качества усилительных каскадов. Выбор схемотехнических решений для создания спектрально чистого сигнала невелик. Годится генератор на колебательном контуре (LC) и генератор на цепи Вина (RC).

Как я делал генератор синуса на мосту Вина - 1


Создавать высокодобротную катушку индуктивности, пригодную для колебаний звуковой частоты, не очень хотелось. А вот схема на RC цепи Вина привлекала простотой изготовления, и хотелось разобраться, как именно она работает. Спойлер: и не сделал, и полноценно не разобрался, но! Мне кажется, что именно опыт, полученный в экспериментах, — самое ценное. И я постарался описать свои приключения не скучно.Читать полностью »

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

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

Содержание

Проблематика

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

Читать полностью »

Релаксационные генераторы и ШИМ-регулятор на операционных усилителях - 1


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

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

Алгоритм Луна (Luhn algorithm) - это процесс вычисления контрольной цифры для числа в соответствии со стандартом ISO/IEC 7812. Сам процесс не является криптографическим средством и никак не защищает находящиеся в этом числе данные. Он предназначен, в первую очередь, для выявления ошибок, вызванных с непреднамеренным искажением данных. Например, при ручном вводе номера карты или любого другого числа. Данный алгоритм позволяет с некоторой степенью достоверности судить об отсутствии ошибок в блоке цифр, но никак не может исправить их.

Читать полностью »

Что такое функциональный генератор, и как им пользоваться - 1


Привет! Какие и насколько значительные искажения, (или преобразования, если они желательные), привносит в сигнал тот или иной прибор, цепь или узел?

Функциональный генератор — это лабораторный прибор, который позволяет моментально увидеть эти искажения на экране осциллографа. Согласитесь, это максимально удобно и наглядно.

Сегодня мы соберём и опробуем такие генераторы на специализированных микросхемах ICL8038 и XR2206, а также простейший вариант на NE555.
Читать полностью »

Как упростить и усилить электродвигатель-генератор: эффект Стовбуненко - 1

Картинка rawpixel, Freepik

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

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

Использование подобного подхода и в настоящее время не потеряло свою актуальность и вполне может быть применено в ряде самодельных конструкций.Читать полностью »

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js