
История
29 постов
29 постов
13 постов
34 поста
35 постов
29 постов
7 постов
8 постов
39 постов
6 постов
21 пост
8 постов
6 постов
24 поста
3 поста
4 поста
Автор текста: ProstoKirReal
Приветствую, коллеги! Меня зовут ProstoKirReal, и я сетевой инженер.
Мир информационных технологий часто объединяют одним словом — IT. Когда знакомые меня спрашивают, кем я работаю, я всегда переспрашиваю: вам проще объяснить или сложнее? Всегда выбирают проще, и приходится говорить, что я айтишник.
Но мир IT обширен и многогранен. Один из его аспектов — сетевые технологии и, в частности, работа сетевиков. Профессия сетевого инженера трудна и шумна, особенно если проводишь время в холодных серверных, не видя солнечного света. Но если вы всё-таки хотите обучиться сетевому ремеслу, первым, с чем вы столкнётесь, будет собеседование.
Как подготовиться к собеседованию
Что нужно знать перед собеседованием? Каким направлениям нужно уделить больше времени и внимания для изучения, а что можно опустить? Я постараюсь ответить хотя бы на часть этих вопросов, так как в сетевом ремесле много направлений со своими особенностями.
На собеседовании на должность сетевого инженера могут задавать различные вопросы, касающиеся как технических знаний, так и личных качеств и опыта работы. Но если у нас нет опыта или он минимальный, то что мы должны в первую очередь знать?
Избегайте маленьких компаний
Не смотрите на зарплаты на первых порах.
Уделяйте внимание обучению сотрудников.
Почему нужно избегать небольших компаний?
Как правило, таким компаниям нужны уже квалифицированные сотрудники, которыми мы будем являться со временем. Даже если требуется начинающий инженер, обычно такие компании занимаются точечным направлением, например, предоставляет узконаправленное оборудование, работает в таких сетях, как АСУТП, где используются специализированные протоколы и оборудование. В общем, даже если мы и научимся чему-то, этот опыт может понадобиться только в одном сегменте.
Ищите крупные компании, занимающиеся разными направлениями, различными видами сетей и сетевых устройств. В идеале это должен быть интегратор, решающий разнообразные задачи заказчиков. Опыта в такой компании всегда будет много, направлений — тоже, и они могут быть интересными.
Почему не нужно смотреть на зарплаты в начале своего пути?
Зарплата, конечно, важна, но карьерный рост важнее. Чем быстрее вы наберётесь опыта, чем обширнее будет ваш кругозор в сетевых технологиях и лучше понимание, как они работают и какие задачи решают, тем более востребованными вы будете на рынке труда.
Почему нужно уделять внимание обучению?
Если в компании нет внутренних инструкций, курсов или программ повышения квалификации, на одном опыте вы не будете развиваться. Когда сам изучаешь какой-то вопрос, всегда сложно даётся понимание материала. Например, я могу научиться настраивать определённый протокол динамической маршрутизации, но без понимания, как эта маршрутизация работает, не смогу понять, где может быть ошибка или объяснить коллеге, почему именно здесь я сделал определённую настройку. Важно найти наставника, у которого не стыдно будет попросить помощи.
Важно быстро и качественно повышать свои компетенции.
Локация тоже важна
В небольших городах, как мой, например, не всегда можно найти достойную зарплату за выполняемую работу. Удалённая работа также может не подойти, так как в коллективе всегда быстрее получаешь опыт.
Основные термины и концепции:
LAN и WAN: разница между локальной (LAN) и глобальной (WAN) сетями.
Ethernet: что такое Ethernet и как он используется для создания сетей.
Сетевые топологии: описание различных типов топологий сетей (звезда, кольцо, шина и т.д.).
1. Основы сетевых технологий:
Что такое IP-адрес и как он используется?
Объясните разницу между TCP и UDP.
Что такое NAT и зачем он нужен?
2. Протоколы и модели:
Опишите модель OSI и основные функции каждого уровня.
Что такое ARP и как он работает?
Объясните принцип работы протокола DHCP.
3. Маршрутизация и коммутаторы:
Что такое маршрутизатор и как он отличается от коммутатора?
Опишите процесс маршрутизации в сети.
Какие протоколы маршрутизации вы знаете? Какой из них предпочитаете и почему?
4. Безопасность сети:
Какие методы используются для защиты сетей?
Что такое VPN и как он работает?
Опишите принципы работы файрволов.
1. Устранение неполадок:
Как бы вы диагностировали проблему с подключением к сети?
Какие инструменты вы используете для мониторинга и устранения неполадок в сети?
1. Настройка оборудования:
Опишите процесс настройки нового коммутатора.
Какие шаги вы предпримете для развертывания нового маршрутизатора в сети?
Также могут спросить про личные качества и опыт. Отвечайте честно, обманом получить сложную работу ни к чему хорошему не приведёт.
LAN и WAN: разница между локальной (LAN) и глобальной (WAN) сетями.
LAN (Local Area Network) — локальная сеть, которая охватывает небольшую географическую область, такую как дом, офис или небольшое здание. LAN обеспечивает высокую скорость передачи данных и позволяет подключать устройства, такие как компьютеры, принтеры и серверы, в рамках одной сети.
WAN (Wide Area Network) — глобальная сеть, которая охватывает большую географическую область, такую как город, страну или даже весь мир. WAN соединяет несколько локальных сетей (LAN) и предоставляет возможность передачи данных на большие расстояния.
Ethernet — это стандартная технология для создания локальных сетей (LAN). Она описывает способы физического подключения устройств, метод передачи данных и форматы данных для сетевой коммуникации и позволяет обмениваться данными между устройствами.
Основные характеристики Ethernet:
Кабели: наиболее распространены витая пара (Cat5e, Cat6) и оптоволоконные кабели.
Скорость: варианты Ethernet включают Fast Ethernet (100 Мбит/с), Gigabit Ethernet (1 Гбит/с) и 10 Gigabit Ethernet (10 Гбит/с).
Формат кадра: еthernet использует кадры для передачи данных, включающие заголовок, данные и контрольную сумму.
Топологии: еthernet-сети могут использовать различные топологии, включая звезду, шину и кольцо.
Сетевые топологии: описание различных типов топологий сетей.
Сетевая топология — это структура или компоновка различных элементов (узлов, соединений) компьютерной сети. Основные типы топологий включают:
Звезда (Star Topology): все устройства подключены к центральному узлу, например, к коммутатору или маршрутизатору. Преимущества включают простоту управления и изоляцию проблем. Недостаток — отказ центрального узла приводит к отключению всей сети.
Шина (Bus Topology): все устройства подключены к одной общей линии связи (шине). Преимущества включают простоту установки и экономичность. Недостаток — если основная линия повреждена, вся сеть выходит из строя, а при увеличении числа устройств производительность может снижаться.
Кольцо (Ring Topology): все устройства соединены последовательно, образуя кольцо. Преимущества включают равномерное распределение нагрузки и простоту установки. Недостаток — отказ одного узла может нарушить работу всей сети, хотя современные технологии, такие как FDDI, предлагают механизмы обхода отказа.
Ячеистая (Mesh Topology): каждый узел соединён с несколькими другими узлами. Преимущества включают высокую надёжность и отказоустойчивость, так как данные могут передаваться по разным путям. Недостаток — сложность и высокая стоимость установки.
Древовидная (Tree Topology): иерархическая топология, где узлы организованы как дерево с корневым узлом и ветвями. Преимущества включают масштабируемость и лёгкость управления. Недостаток — если основной узел выходит из строя, вся ветвь может быть отключена.
Эти топологии могут комбинироваться для создания гибридных сетей, что позволяет использовать преимущества каждой из них в зависимости от конкретных требований и условий.
Основы сетевых технологий. Что такое IP-адрес и как он используется?
IP-адрес (Internet Protocol Address) — это уникальный адрес, используемый для идентификации устройства в сети. Он позволяет устройствам обмениваться данными в Интернете или локальной сети.
Объясните разницу между TCP и UDP
TCP (Transmission Control Protocol) и UDP (User Datagram Protocol) — это транспортные протоколы, используемые для передачи данных в сети.
TCP: обеспечивает надёжную передачу данных, устанавливая соединение между отправителем и получателем. Он гарантирует доставку всех пакетов в правильном порядке и устраняет ошибки передачи. Примеры использования TCP включают веб-сёрфинг (HTTP/HTTPS), передачу файлов (FTP) и электронную почту (SMTP).
UDP: не устанавливает соединение и не гарантирует доставку пакетов. Он быстрее и используется для приложений, где важна скорость передачи, а не надёжность, таких как потоковое видео, онлайн-игры и голосовые вызовы (VoIP).
Что такое NAT и зачем он нужен?
NAT (Network Address Translation) — это метод преобразования IP-адресов в сети. Он используется для управления IP-адресами и позволяет нескольким устройствам в локальной сети (LAN) использовать один внешний IP-адрес для выхода в Интернет.
Основные функции NAT:
Экономия IP-адресов: позволяет использовать один публичный IP-адрес для множества устройств в частной сети.
Безопасность: скрывает внутренние IP-адреса от внешних сетей, что затрудняет прямой доступ к устройствам из Интернета.
Маршрутизация: обеспечивает связь между устройствами в локальной сети и внешними ресурсами в Интернете.
Протоколы и модели: опишите модель OSI и основные функции каждого уровня
Модель OSI (Open Systems Interconnection) — это концептуальная модель, которая описывает функции сетевой связи в виде семи уровней. Каждый уровень выполняет специфические задачи и взаимодействует с уровнями выше и ниже.
Физический уровень (Physical Layer): определяет физические характеристики соединений, такие как электрические сигналы, разъемы, кабели и сетевые интерфейсы.
Канальный уровень (Data Link Layer): обеспечивает надёжную передачу данных между устройствами в одной сети и управляет доступом к физической среде.
Сетевой уровень (Network Layer): отвечает за маршрутизацию данных между различными сетями и управление IP-адресами.
Транспортный уровень (Transport Layer): обеспечивает надёжную передачу данных между хостами, используя такие протоколы, как TCP и UDP.
Сеансовый уровень (Session Layer): управляет установкой, поддержанием и завершением сеансов связи между приложениями.
Представительный уровень (Presentation Layer): отвечает за преобразование данных в формат, пригодный для передачи и интерпретации, включая шифрование и сжатие.
Прикладной уровень (Application Layer): обеспечивает взаимодействие с пользователями и приложениям доступ к сетевым услугам, таким как электронная почта, файлообмен и веб-сервисы.
Маршрутизация и коммутаторы: что такое маршрутизатор и как он отличается от коммутатора?
Маршрутизатор (Router): устройство, которое соединяет несколько сетей и управляет маршрутизацией пакетов данных между ними. Он использует IP-адреса для определения наилучшего пути передачи данных и может работать на третьем уровне модели OSI (сетевой уровень).
Коммутатор (Switch): устройство, которое соединяет устройства в одной локальной сети (LAN) и передает данные между ними. Он работает на втором уровне модели OSI (канальный уровень) и использует MAC-адреса для передачи данных к нужному устройству.
Безопасность сети. Какие методы используются для защиты сетей?
Файрволы (Firewalls): контролируют входящий и исходящий трафик, разрешая или блокируя его на основе предопределённых правил.
VPN (Virtual Private Network): обеспечивает безопасное соединение через Интернет, создавая зашифрованный туннель между устройствами.
Антивирусное ПО (Antivirus Software): защищает устройства от вредоносных программ.
IDS/IPS (Intrusion Detection/Prevention Systems): обнаруживают и предотвращают попытки несанкционированного доступа или атак на сеть.
Шифрование (Encryption): защищает данные, преобразуя их в недоступный для чтения формат без соответствующего ключа.
Что такое VPN и как он работает?
VPN (Virtual Private Network) — это технология, обеспечивающая безопасное соединение через незащищённую сеть, такую как Интернет. Она создаёт зашифрованный туннель между устройствами, что позволяет защищать данные от перехвата и несанкционированного доступа.
Основные функции VPN:
Конфиденциальность: шифрует данные, чтобы предотвратить их перехват и чтение.
Анонимность: скрывает IP-адрес пользователя, предоставляя ему другой IP-адрес от VPN-сервера.
Безопасность: защищает соединение при использовании незащищённых сетей, таких как общедоступный Wi-Fi.
Опишите принципы работы файрволов?
Файрвол (Firewall) — это устройство или программное обеспечение, которое контролирует доступ к сети и из сети, основываясь на предопределённых правилах безопасности. Принципы работы файрволов включают:
Фильтрация пакетов (Packet Filtering): анализирует заголовки пакетов данных и принимает решение о пропуске или блокировке на основе правил, таких как IP-адреса, порты и протоколы.
Сетевой транслятор адресов (NAT, Network Address Translation): скрывает внутренние IP-адреса, переводя их в один или несколько публичных адресов.
Межсетевой экран на уровне приложений (Application-Level Gateway): анализирует данные на уровне приложений, обеспечивая защиту от атак на уровне приложений.
Состояние соединений (Stateful Inspection): отслеживает состояние активных соединений и принимает решения на основе состояния сессии, что обеспечивает более точную фильтрацию.
Проверка физического подключения: убедитесь, что все кабели правильно подключены и устройства включены.
Проверка сетевых настроек: убедитесь, что IP-адрес, маска подсети и шлюз настроены правильно.
Использование сетевых утилит: воспользуйтесь командой ping для проверки доступности других устройств в сети и командой tracert/traceroute для отслеживания маршрута пакетов.
Проверка конфигурации устройств: проверьте настройки маршрутизаторов и коммутаторов, чтобы убедиться в правильности их конфигурации.
Проверка журналов событий: изучите журналы событий на сетевых устройствах для выявления ошибок или предупреждений.
Сканирование сети: используйте сетевые сканеры для проверки доступности и состояния устройств в сети.
Wireshark: анализатор сетевого трафика для захвата и анализа пакетов данных.
Ping: утилита для проверки доступности устройств в сети.
Traceroute/Tracert: утилита для отслеживания маршрута пакетов данных в сети.
Netstat: утилита для просмотра активных сетевых подключений и их состояния.
Nmap: сканер сети для обнаружения устройств и проверки их безопасности.
SNMP (Simple Network Management Protocol): Протокол для мониторинга и управления сетевыми устройствами.
Мы рассмотрели базовые вопросы, которые чаще всего задают на собеседовании. В каждой организации могут задавать дополнительные каверзные вопросы, на все ответить в рамках небольшой статьи не получится.
Приведу примеры таких вопросов без пояснений, оставлю их для вашего домашнего обучения:
Что такое маска и обратная маска подсети?
Что такое пакет, дейтаграмма, фрейм и сегмент? Чем они друг от друга отличаются?
Чем отличаются L3-коммутатор и маршрутизатор, и как используется то или иное оборудование?
Почему коммутатор отправит пакет в первую очередь в сеть с меньшей маской?
Надеюсь, этот материал поможет вам подготовиться к собеседованию на должность сетевого инженера. Помните, что в этой профессии важно постоянно учиться и развиваться. Удачи!
P. S. Необходимые сертификаты и образование:
CCNA (Cisco Certified Network Associate): Основные знания и навыки, которые дает этот сертификат.
CompTIA Network+: Общие сетевые концепции, которые охватывает этот сертификат.
Другие сертификаты: CCNP, JNCIA, и т.д.
Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.
Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.
Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.
Автор текста: akasaka
Пару месяцев назад я в очередной раз прогуливался по комиссионкам, и моё внимание привлёк стоящий на полке агрегат, чем-то похожий на музыкальный центр Bose.
Однако, взяв его с полки, я обнаружил, что это табло-бегущая строка!
Поначалу я подумал, что оно светодиодное, а зачем оно такое мне? Тем более, что у меня уже есть шикарные плазменные часы дома. Ну и поставил было его на полку обратно. Раздавшийся в этот момент громкий звон дал понять — внутри есть струны, а значит, это самый что ни на есть настоящий ВЛИ!
Поэтому я быстренько подыскал на соседнем стеллаже подходящий кабель питания, проверил, что экран загорается, и потопал на кассу, пока кто-то это чудо не перехватил.
Приносим домой, втыкаем в розетку — убеждаемся, что делает оно всё то же, что и на тестовом стенде в комиссионке. Ну, хотя бы по пути не разбили, значит %)
Включается, говорит, что версия 1.12, а затем в цикле жалуется, что никаких сообщений нет. Значит, надо их как-то туда запихать.
Шильдик на задней панели гласит, что девайс произведён Nagano Japan Radio Co. Ltd., и имеет модель NJE-105. Отдельная наклейка поверх утверждает, что версия прошивки — та самая, 1.12.
Сзади есть только выключатель и вход питания, а также некий отсек, закрытый пластиковой крышкой.
Если заглянуть внутрь отсека — там мы находим как раз интерфейсный разъём. С одного конца аж целый DB-25:
А вот с противоположного — нечто, с опознанием чего я затрудняюсь.
Долгие попытки разобраться, что же это за девайс и для чего он предназначался, привели к хитросплетению уже недоступных японских сайтов. Однако, на одном из них он был показан таки "в дикой природе", и оказалось, что этот дисплей... для пейджера!
Продавал такой набор оператор NTT Docomo. То есть, если вам нужно было, например, постоянно в офисе видеть свежие новости — вы покупали пейджер с таким табло и подключали на него подписку на нужные вам каналы. Как только на пейджер придёт сообщение — оно сразу начнёт отображаться на табло.
Или если у вас, к примеру, сеть автобусных остановок — просто устанавливаете такие табло, а пейджеры привязываете к одинаковым номерам, группируя по маршрутам или районам. Затем, в случае какого-то форс-мажора на маршруте, просто отправляете на этот номер сообщение — и все табло сразу начинают отображать его.
В какой-то момент производитель начал продавать табло сам, просто как бегущую строку для компьютера — но софт, судя по всему, нигде не сохранился.
Но, к счастью, обладатель пейджера записал хотя бы часть протокола, вот в такой суровой обстановке :-)
Снимем переднюю панель и посмотрим, что там внутри.
Чутьё не подвело — это действительно огромный вакуумно-люминисцентный индикатор. Под ним находится лишь блок питания и вентилятор, включённый через термопереключатель на 45 градусов.
Сам дисплей производства фирмы Futaba — они, к сожалению, свернули производство ВЛИ в конце 2021 года.
Второй бит у DIP-переключателя непонятно зачем, а вот первый включает какой-то режим тестирования — скорее всего, для проверки на заводе:
Трёхцветность экрана достигается треугольными субпикселями двух цветов — оранжевого и зелёного:
Оттенки этого дисплея напоминают мне те, что устанавливали в поездах и на станциях, чем он мне и приглянулся.
Оп, моя остановочка!
Дальнейший поиск привёл, разве что, к упоминанию о том, что какая-то программа когда-то существовала, но автор удалил её с сайта. К счастью, в интернет-архиве сохранилась другая страница, автор которой смог записать многие управляющие последовательности с оригинального пейджера. Ради сохранения этой информации, ниже привожу вольный перевод описания протокола:
Схема подключения
Судя по всему, распиновка идентична обычному RS-232 25-pin, разве что логические уровни здесь TTL. Изначальный автор применил два инвертера 7414 в качестве буфера, но я бы не рисковал и поставил MAX232. Хотя зачем оно вообще в наше время, когда переходники с TTL UART на USB продаются за сущие копейки :-) — прим. авт.
Формат пакета данных
Передача идёт на скорости 9600 бод, 8N1.
Каждый пакет начинается с \r\n . Дальше идёт текущая дата и время в формате MMDDHHmm (ASCII), например, для 9 марта 16:39 это будет 03091639(hex: 30 33 30 39 31 36 33 39). Зачем это используется, кроме синхронизации внутренних часов табло — непонятно.
После этого — до 128 байт текста в кодировке Shift-JIS. В конце — ещё раз \r\n.
Атрибуты текста
Атрибуты текста задаются в виде двух букв, указывающих цвет и эффект. Если атрибуты вставляются посреди текста, то отбиваются тильдами, например: ~AW~.
Значения атрибутов:
Команды
Большинство команд, будучи распознанными табло, сопровождаются выводом сообщения на экран.
Изначально я купил этот дисплей в расчёте на то, чтобы заменить им кассовый дисплей покупателя, который использую сейчас в диджейских стримах: (сверху на музыкальном центре на фоне, основной движ примерно с 9:48)
Всё же кассовый дисплей для такого слишком маловат.
Однако, как оказалось из описания протокола, этот дисплей работает не как тупой терминал, а буферизует сообщения и показывает их поочерёдно. Поэтому такие анимации создавать уже не получится, а посему идея была заброшена, и решено было сделать очередные часы-метеостанцию.
Так как приковывать табло к столу с компом не хотелось, то в ход пошла очередная ESP32. К сожалению, выход 5 вольт на DB25 не имеет запаса по току, поэтому пришлось вывести наружу 24 вольта с блока питания и преобразовать их самому.
Также оказалось, что на ESP32 не работает функция iconv() — но, к счастью, для Shift-JIS есть отдельная библиотека. На базе этого получилось написать простейшую функцию для отправки пакетов на табло.
Как отображаются произвольные сообщения, записанные просто как текст в порт, мне не понравилось: сначала экран инвертируется, и текст прокручивается один раз, затем прокручивается второй раз уже нормально.
Команды для получения сообщений же позволяют хранить их прямо в памяти табло. Однако, для этого прошивке надо будет знать, какие "слайды" уже заняты, а какие нет.
Поэтому, пишем простенькое подобие "аллокатора" сообщений :-) Таким образом, каждый "виджет" сможет зарезервировать себе "слайд":
mid.number = mgr->reserve(mid.kind);
А когда тот уже не нужен — освободить:
mgr->remove(mid);
В остальном про код мало что можно рассказать — в отличие от тех же плазменных часов, где пришлось свою графическую библиотеку писать, здесь же просто работа с текстом.
Из того, что показывать, было решено вывести:
Погоду
"Слово дня" на английском
Дату и время
Текущий играющий трек в Foobar2000
Отправителя и тему входящей почты (IMAP)
Также добавлен проброс с USB-UART у ESP32 напрямую на табло, чтобы впоследствии всё равно хоть как-то интегрировать его с Traktor-OBS-Relay.
Хотелось добавить ещё и свежие твиты для одного из списков в твиттере, чтобы видеть новости от локально живущих товарищей. Однако кое-кто сделал бесплатное АПИ write-only, а для чтения нужно платить 100 баксов в месяц, поэтому идея была отложена в чёрный ящик :-)
До кучи на скорую руку была слеплена и вебморда. Для неё я использовал библиотеку GyverPortal:
(так забавно в ридми у неё смотрится реклама новой версии, отмечающая, что новая работает через интернет и приложение для телефона — как будто это плюсы какие-то)
Ну, тут всё элементарно — резервируем "слайд", и форматируем на него текущее время. Всего кода на 60 строк, и проще его привести здесь, чем описывать.
Единственный подводный камень — в заголовке сообщения атрибут "Статичное отображение" использовать нельзя, табло почему-то просто вешается намертво, а после сброса жалуется на повреждение оперативной памяти. Поэтому пришлось этот атрибут вставить напрямую в текст сообщения.
Тут тоже всё было довольно элементарно — нужно было просто угнать код для обращения к OpenWeatherMap из часов, которые я делал раньше :-)
Так же как и дату-время, просто форматируем и выдаём на зарезервированный под это дело слайд.
Ключ доступа к АПИ тоже взял из часов — в бесплатном тарифе там столько доступов даётся, что мне одного ключа хватает на все устройства, включая два смартфона и смарт-часы.
Здесь уже пришлось повозиться — единственным плюс-минус удобным способом вытягивать метаданные из fb2k оказался плагин foo_controlserver.
Был написан простенький клиент, в цикле долбящийся на заданный айпишник и порт. Если подключиться получилось, то он бесконечно слушает входящие строки, и вытаскивает из них события воспроизведения/паузы и название трека.
Формат там напоминает CSV, только разделителем является вертикальная черта. Соответственно, если она есть в названии трека или исполнителя, парсинг развалится и на экране будет чёрт знает что. Не идеально, но и не критично.
Это такая странная вещь, показывающая каждый день случайно выбранное словарное определение. Раньше у меня такой скринсейвер на маке был, вот привычка и осталась.
Недолгие поиски привели к Wordnik API. Дальше всё было тоже элементарно — получаем JSON, парсим его, выводим на экран.
Вносить лишние сущности я не люблю, дома не держу ни сервера, ни даже Разберипай, поэтому и получение почты было решено возложить прямо на микроконтроллер — безо всяких MQTT и прочих промежуточных звеньев.
Казалось бы — протокол древний, строго описанный в RFC, плейнтекстовый: должна быть туча реализаций разного качества, от наколенных поделок до полноценных модулей-комбайнов.
Вот тут-то меня и поджидали анальные пирогенные боли и прочие мозговые страдания!
Первом сюрпризом то, что единственная "микроконтроллерная" библиотека для электронной почты вся кривая, косая и тащит за собой драйвера внешнего флеша, карт памяти, десятка разных видов контроллеров сети, и ещё тучу всякого хлама. Да что там, просто после добавления в проект она даже не собиралась!
Поэтому пришлось интенсивно высирать 600 строк, которые упадут при первой же возможности — но вроде пока что работают.
Дальше просто по колбеку ловим новые заголовки и создаём под каждое письмо новый слайд, а когда оно становится прочитанным или удалённым — удаляем и его.
Вторым сюрпризом оказался всё тот же нерабочий iconv. Я-то думал, что там просто не включили поддержку SJIS, но нет — он мёртвый совсем, даже при попытках конвертации из ASCII в ASCII выдаёт дулю. Поэтому заголовки сообщений поддерживаются только в виде UTF-8, а остальные замещаются просто на текст "Новое сообщение".
В остальном исходники можно посмотреть на гитхабе, а пока полюбуемся на готовый результат:
Я считаю, получилось неплохо! Хотя и муторно выключать его руками каждый раз, поэтому, датчик движения, наверное, когда-то таки добавлю.
А дойдут ли до этого у меня руки вы сможете узнать — среди тонн фоток еды, Мику, и прочего хлама из комиссионок — в моём телеграме :-)
Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.
Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.
Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.
Автор текста: the_bat
Данное устройство было изготовлено и установлено уже более года назад. Работает отлично и «спасает» от возможных проблем с компрессором. Предыстория такова. Шел март 2023 года, на носу день рождения супруги, полный холодильник продуктов, через пару дней ждем гостей. Открываю дверцу холодильника и понимаю, что в нем нисколько не холоднее, чем в квартире...
Первая стадия – отрицание. Да этого не может быть! Выключаю холодильник на 5 минут из розетки, включаю снова и сажусь ждать. Мое нетерпение не позволяет мне отойти от него надолго. Через каждые десять минут открываю дверцу и ощупываю заднюю стенку в надежде, что произойдет чудо! Сухая и прохладная. Не холодная с мелкими замерзшими каплями, а именно прохладная – наши продукты ее остужают, но не наоборот! Так холодильник работать точно не должен.
Вторая стадия – гнев. Как так? В самый неподходящий момент! Судорожно начинаем искать холодильник во всех известных и неизвестных интернет-магазинах. Цены – ад, доставка через три дня. Это провал! Холодильник 1,8 метра (не знаю сколько уж он в объеме), но столько продуктов за 2 дня точно не съесть, а дальше все начнет портиться. Идет рабочая неделя и близятся выходные.
Третья стадия – торг. А что, если это просто плата управления или пускозащитное реле компрессора? Звоню знакомому по ремонту холодильников, кратко обрисовываю ситуацию. Диагноз «компрессор». Не верю. Бросаю трубку и достаю инструменты. Снимаю панель индикации и управления, чтобы добраться до платы с реле. Реле они такие – подгорели контакты, работы на 5 минут и холодильник как новый. Выпаиваю реле, проверяю – работает. Чертовщина! Выдвигаю холодильник (все еще полный продуктов) и ищу пускозащитное реле. Вторая наиболее частая поломка – это оно. Вижу коробочку рядом с компрессором, ищу, где есть в наличии в магазине, покупаю. Ставлю – не работает.
Четвертая стадия – депрессия. Все. Либо новый холодильник, либо ремонт этого с заменой компрессора. Сидим смотрим варианты холодильников. Перекладываем часть продуктов в морозильную камеру (в нашем холодильнике два независимых компрессора). Ужин прошел в молчании и был как никогда плотным. Спать легли рано, но сон не шел.
Пятая стадия – принятие. Позвонил знакомому, извинился за брошенную трубку. Позвал в гости. Помимо поломки компрессора, оказывается, есть масса неисправностей холодильников. Например, хладогент может утекать через трещины в трубках, которые вмонтированы в заднюю стенку. Такая проблема устраняется путем установки отдельной панели испарителя и выглядит это как на картинке ниже. Стоит эта процедура как треть холодильника и занимает массу времени.
Проверив компрессию, мастер убедился, что трубки в порядке – это немного обнадежило. И после установки нового компрессора, а точнее его аналога, холодильник ожил. Побросав остатки продуктов в холодильник, я спросил, из-за чего могла произойти поломка. После осмотра уплотнительной резинки и не найдя ничего подозрительного, мастер слегка захлопнул дверцу, и она открылась (отскочила) примерно на 1 см. Вот и ответ. Свет в холодильнике не загорается, а через образовавшуюся щель выходит холодный воздух, компрессор молотит постоянно и перегревается. При этом, повторюсь, проблем с самой резинкой нет на первый взгляд, и если она прилепилась, то нужно небольшое усилие чтобы холодильник открыть.
Достал инструкцию к холодильнику и принялся ее читать. На панели есть светодиод «Alarm», и мое предположение было, что датчик открытия двери все-таки есть, но деактивирован. Но нет – этот индикатор отображает наличие каких-то ошибок, но, видимо, не перегрев и выход из строя компрессора.
Лирическое отступление закончено. Я начал думать, как избежать такой проблемы в будущем. Интернет предлагал установить датчик освещенности и мониторить лампочку внутри отсека для хранения продуктов, но ее «концевик» срабатывает при чуть большем открытии. Можно его подпилить, но идея с батарейкой внутри холодильника мне не понравилась сразу, а использовать напряжение на лампочке я просто не захотел. Да и вообще, в плафоне не так много места. Должен быть более простой способ. Тогда на ум пришла идея на реле времени и герконе.
В дверце есть отсек для неиспользуемой петли (чтобы перевесить дверцу, и она открывалась в другую сторону), именно его я и задействовал для своей конструкции.
Приклеиваем плату сигнализации к пластиковому кожуху. Я на всякий случай обвел контур маркером, чтобы потом не искать положение относительно магнита, если вдруг буду снимать устройство.
С другой стороны двери также есть заглушка, в которую необходимо установить магнит. Подбираем его по габаритам (магнитной силе) таким образом, чтобы не было ложных срабатываний.
Пробовал устанавливать различные неодимовые магниты, но все они оказались довольно «сильными». У нормально-замкнутого геркона есть особенность. При приближении магнита он размыкает цепь, а если поднести его еще ближе, то цепь снова размыкается (что равносильно открытию). Методом проб и ошибок был найден подходящий по габаритам и силе магнит.
В общей сложности устройство стоит уже больше года. Батарейку не менял (CR2032), хоть в холодильник залезаем довольно часто. Так как писк прерывистый он не особо раздражает, и в то же время хорошо оповещает об открытом холодильнике. Получилось отличное решение, которое практически не требует вмешательства в конструкцию.
Спасибо за внимание и успехов!
Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей в нашем блоге на Хабре и телеграм-канале.
Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.
Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.
22 июня 2024 года исполнилось 114 лет со дня рождения Конрада Цузе, пионера создания вычислительной техники, человека, которому сама судьба пыталась помешать двигать прогресс, но не помешала создать первый язык программирования высокого уровня, один из первых компьютеров и первую книгу по цифровой физике.
Хоть и есть поговорка, что рукописи не горят, Конрад Цузе потерял все разработки, чертежи и записи, посвящённые одному из своих первых компьютеров в военное время. Для того, что-бы эта рукопись никогда не сгорела, автор подготовил для вас, дорогие читатели, аудиоверсию статьи. Приятного прочтения или прослушивания.
Конрад жил в сложное время, он рос в окружении «потерянного поколения», людей, перемолотых Первой Мировой войной, молодость прошла в разрушенной Германии, а в зрелые годы «коричневая чума» поразила его родину, половину мира, а потом была уничтожена. И во всём этом хаосе, в изоляции, Конрад Цузе творил цифровое будущее. И это цифровое будущее предоставило нам доступ к его архиву, этот рассказ о жизни и деятельности Конрада мы проиллюстрируем изображениями, часть из которых ранее не публиковалась в русскоязычном пространстве. Мы будем говорить об изобретениях, компьютерах и языке программирования, не забывая о личности их автора, который достиг признания науки и общественности. Изображение на обложке лонга – монета в 10 евро, выпущенная к столетию со дня его рождения.
Конрад Цузе родился 22 июня 1910 года в Берлине в достаточно обеспеченной семье. Семейный достаток прямо повлияет на всю его жизнь. Он начнёт свои научные разработки в родительском доме и на деньги семьи, а позже будет прямо конвертировать науку в деньги, сделав компьютер инструментом производства.
Ещё в школе он начал заниматься техническими изобретениями, после школы поступил в Технический университет в Берлине. Это особое место в жизни Конрада. В университете царил дух свободы, и Конрад, убеждённый атеист, нередко вступал в конфликты со своими «традиционными» родителями. В университете он получил образование в сфере архитектуры, оттуда ушёл в гражданское строительство.
Карикатуру «На уроке математики» Конрад Цузе сделал еще будучи студентом. Из: Компьютер – дело моей жизни, Springer Verlag, 1985 г.© Конрад Цузе
Профессор математики из Берлинского университета, Рауль Рохас (Raúl Rojas), который на научном уровне изучал жизнь и научное творчество Конрада Цузе (по ссылке – перевод оригинального научного текста Рауля), вспоминал, что именно студентом, осуществляя однообразные математические действия, Конрад понял, что эти действия можно автоматизировать.
Приведём пример из практики работы Конрада в студенчестве.
Его задача была провести статические, повторяющиеся расчёты для мостов или определить нагрузки на материалы машин. Как это делалось?
У инженера есть специальная форма, в которой уже заранее напечатаны все необходимые формулы. Работник должен просто ввести свои данные и следовать по полностью разработанному вычислительному пути.
Именно эту однообразную задачу и хотел решить достаточно молодой Конрад, она легла в основу создания и его компьютера, и первого языка программирования. И эту работу он начал ещё будучи студентом. На дворе 1930-е гг., Конраду слегка за 20, он крайне увлекающаяся натура: рисует, изобретает, работает над социально значимыми проектами, но, из-за особенностей своего времени, определённой изоляции в Германии, он мало знаком с достижениями науки в США и, в частности, с работой Джона фон Неймана. Да и в целом, в кого ни плюнь (не нужно плевать в великих учёных): Джон Эккерт, Джон Мокли (Моучли), Говард Эйкен, Джон Атанасов — все находились «вне зоны доступа» Конрада Цузе.
Именно эту однообразную задачу и хотел решить достаточно молодой Конрад, она легла в основу создания и его компьютера, и первого языка программирования. И эту работу он начал ещё будучи студентом. На дворе 1930-е гг., Конраду слегка за 20, он крайне увлекающаяся натура: рисует, изобретает, работает над социально значимыми проектами, но, из-за особенностей своего времени, определённой изоляции в Германии, он мало знаком с достижениями науки в США и, в частности, с работой Джона фон Неймана. Да и в целом, в кого ни плюнь (не нужно плевать в великих учёных): Джон Эккерт, Джон Мокли (Моучли), Говард Эйкен, Джон Атанасов — все находились «вне зоны доступа» Конрада Цузе.
И это та ситуация, когда изоляция оказалась плюсом, а не минусом! Конрад самостоятельно создал то, над чем «бились» целые институты, с именитыми учёными, которых вы видите выше, причём создал по-своему.
Как у него это получилось?
После окончания института и недолгой работы на авиазаводе (именно эта работа, возможно, спасла ему жизнь в дальнейшем), Конрад решил заниматься бизнесом и создать собственный компьютер. Мастерская в родительском доме, финансовая и техническая помощь друзей позволяют приступить к созданию первого механического компьютера.
Первый компьютер изначально назывался «VersuchsModell 1» или просто «V-1», что означало «экспериментальная модель 1», но после Второй Мировой войны сменил название на «Z-1», немецкие ракеты были плохой рекламой для названия компьютеров. На фотографии ниже вы видите тот самый компьютер Z-1 в гостиной семьи Цузе, справа самого Цузе, а слева его друга, Хельмута Шрайера, без которого вся идея могла не выстрелить, но о нём мы вам расскажем чуть позже.
На фотографии справа Конрад Цузе, слева – Хельмут Шрайер, посредине – компьютер Z-1, оригинальный. Фото 1936 года.
Если глобально – это механический калькулятор, работающий в двоичной системе счисления. У этого калькулятора был электрический привод с ограниченной программируемостью (он имел ограниченное количество исполняемых инструкций) и возможность считывать инструкции с перфоленты. Его вполне можно называть компьютером: он имел блок управления, устройство ввода-вывода, мог осуществлять вычисления с плавающей запятой. Он умел осуществлять сложные вычислительные действия: умножать (путём повторного сложения) и делить (путём повторного вычитания). Команды вводились с перфокарт и не хранились в самом компьютере. Кроме того, устройство ввода-вывода умело переводить двоичные числа в десятичные и осуществлять обратную операцию.
Объясним, как примерно это работало.
В основе вычислений лежат логические вентили – элементы, которые могут выполнять элементарные логические операции. В компьютере Цузе такими элементами выступили металлические пластинки, которые могли только сдвигаться линейно чисто механически. Для двоичной системы этого достаточно, чтобы записывать любое число. Для вычислений также используются логические вентили. Это тоже металлические пластинки, которые будут отвечать за более сложные логические операции (И; ИЛИ; НЕ). Эти пластинки должны физически отличаться друг от друга, т. к. они должны напрямую физически взаимодействовать.
Фотография с повреждениями после бомбёжки, 1944 г., тогда же были уничтожены все три машины Z-1, Z-2, Z-3. Выжила лишь четвёртая.
Колоссальной сложностью обладал механический монтаж этих компонентов, т. к. движение каждой металлической пластинки должно было быть связано с движением другой металлической пластинки, кроме того, для вычислений должны были быть задействованы многие слои таких пластин. Можно однозначно сказать: механическая конструкция этого калькулятора была значительно сложнее, чем его логическая структура.
Копия компьютера Z-1, которая хранится в настоящее время в Немецком техническом музе. Копия создана в 1989 году под руководством самого Конрада Цузе.
И представьте: и механическую конструкцию, и логическую структуру придумал и разработал один человек, Конрад Цузе! Этот механизм в итоге весил 500 килограммов, а полностью понимал его работу только сам Конрад. Его друзья, которые помогали и вырезали сотни пластин, суть работы до конца понять не смогли. Эксперимент оказался успешен, этот компьютер правильно посчитал для нескольких человек матрицы 3 на 3.
При этом из-за колоссальной механической сложности аппарат работал достаточно медленно, активно ломался, но смог доказать, что идея автора реализована! Задача создания этого аппарата выполнена!
Новая задача. Что делает исследователь после достижения цели? Правильно, ставит новую цель, берёт новый рубеж!
Так началась история Z-2, новой машины. Там использовалась всё та же механическая память, но за арифметику и логику управления элементами отвечали электромеханические реле. В отличие от предыдущей модели Z-2 использует 16-битную арифметику с фиксированной запятой, Z-1 использовал 22-битную арифметику с плавающей запятой.
Анимация оригинального реле, которое использовалось в Z-3, к сожалению, от Z-2 не сохранилось ничего:
Но Z-2 имел серьёзное практическое значение, в 1940 году он был представлен перед учёными Немецкой авиационной лаборатории в Берлине – Адлерсхофе (крупнейший научно-технический проект, который существует до сих пор). Во время презентации Z-2 прекрасно выполнил свои задачи, и Конрад получил финансирование на создание следующей машины от правительства Германии. Никаких чертежей, частей или фотографий Z-2 не сохранилось, всё было уничтожено во время войны.
Анимация оригинального шагового переключателя, который использовался в Z-3:
И вот тут стреляет, словно Чеховское ружьё, друг Конрада Хельмут Шрайер. Он предлагает заменить реле на электронные лампы и успешно показывает пример того, как это ускорит работу. Возможно, ситуация бы развивалась совершенно иначе, но власти Германии, к которым обратились за финансированием Цузе и Шрайер, отказались выделять колоссальные средства на создание компьютера на лампах, и Z-3 был создан в 1941 году вновь с использованием электромеханических реле. А в 1943 году компьютер ЭНИАК в США показал, что технология ламп действительно эффективна, но просто чудовищно дорога. Вернёмся в Германию. В компьютерах Цузе лампы тоже появятся, но только через несколько десятилетий.
Наступил 1941 год, Конрад Цузе завершил работу над Z-3. В нём использовалось около 2 000 реле, технически это была куда более совершенная машина. Так, тактовая частота была около 5–10 Гц (у первой версии – 1 Гц), плавающая запятая изменена, появилась возможность обработки исключений (минус/плюс бесконечность и неопределённое). Этот компьютер уже использовался на практике: там осуществлялись некоторые практические расчёты. Немецкий научно-исследовательский институт авиации использовал его для статистического анализа флаттера крыла. Флаттер – это специфические колебания крыльев во время полёта самолёта, которые даже могут его разрушить. Подробнее об этом явлении советую почитать тут.
Об этой части работы Цузе информация несколько разнится, встречаются упоминания специальных машин для вычисления измерений крыльев. На фото, если верить интернет-архиву Цузе, специальная модель S1 для измерения крыльев.
И вот именно сейчас стоит сказать пару слов о личности Цузе.
Ниже можно увидеть рабочее удостоверение 1942 года, во время работы учёного на авиационном заводе. Символика на печатях закрыта ввиду современной ситуации с публикацией архивных документов.
Текст над фото — «Фотография владельца или законного представителя следующей компании». Текст под фото — «собственноручная подпись»; Текст под подписью — «Подтверждение того, что владелец удостоверения личности, идентифицированный по изображению выше, сам подписал документ.
Цузе не был членом партии, вместе с тем не сохранилось никаких сведений о его отношении к работе на нацистскую военную структуру, с учётом того, что его изобретения однозначно использовались в авиации и разработке прототипов ракет.
Автор этого текста считает, что стоит внимания его позднее, уже мемуарное воспоминание. Конрад писал, что «в наше время лучшим учёным и инженерам обычно приходится выбирать: или выполнять свою работу ради более или менее сомнительных деловых и военных интересов в рамках «сделки с дьяволом» или вообще не заниматься своей деятельностью». Это свободный перевод цитаты из его книги «Der Computer – Mein Lebenswerk» 1984 года. Эта мысль, как кажется автору текста, отражает общую дилемму учёных двадцатого века, когда изобретения, даже такие мирные, как большой и сложный калькулятор, могут использоваться для уничтожения людей.
В военное время Конрад работал над созданием следующего компьютера, Z-4, и успешно создал его практически в самом конце войны. Конрада и его технику эвакуировали из Берлина незадолго до конца войны, однако, к союзникам техника не попала, как не пошёл работать на союзников и сам учёный.
Технически компьютер Z-4 впечатлял. Память перешла на 32 бита. Появился специальный блок, который перфорировал ленты с программами (что очень сильно упростило программирование и корректировку программ). Появилась возможность использовать квадратный корень, функции МАКС и МИН. Использовались сменные перфоленты с программами и подпрограммами.
Сделаем небольшое отступление и познакомимся с женщиной, которая за Z-4 работала.
Сохранились уникальные воспоминания первой немецкой женщины-программиста, Урсулы Уолк, которая работала на Конрада Цузе в послевоенное время, про его личность и некоторые аспекты работы.
В 1948 году, когда Урсула, имея серьёзный технический опыт, работала на уборке территории (жизнь в послевоенной Германии тоже такой себе сахар), к ней подошёл сотрудник фирмы Цузе и предложил работу непосредственно за Z-4. При этом он предоставлял медицинскую страховку и небольшую зарплату*.
*Примечание от автора текста. В послевоенной Германии была карточная система, которую отменили в ГДР с 1948 года, а в ФРГ – с 1950-го. Сам факт наличия зарплаты от частной фирмы был однозначным плюсом, как и возможность заниматься в соответствии со своей квалификацией, а не уборкой территории.
Урсула вспоминала, что компьютер стоял в подвале склада муки деревенского пекаря. Условия труда в этом подвале были довольно… временными. Проточной воды не было, и сотрудникам пришлось пользоваться туалетом в соседнем ресторане. Было только одно окно, освещение исключительно электрическое. Местные жители считали компьютер «странной машиной», однако, Цузе смог добиться их расположения и уважения от местных, когда выиграл пари. Пари простое: кто быстрее рассчитает счёт за молоко — молочная ферма или Цузе и его компьютер? Цузе победил.
Сама Урсула выполняла простую работу: она вводила числа в калькулятор и производила их вычисления в соответствии с программой, кроме того, заполняла и чертила документацию самого Z-4, печатала диссертацию Конрада Цузе и отправляла её в университет для защиты. Защита не состоялась, т. к. Цузе не отправил 400 марок, работу просто не приняли в рассмотрение, о чём, если верить Урсуле, Цузе не переживал и периодически на эту тему шутил.
Вернёмся к истории нашего героя.
Компьютер Z-4 был полностью закончен в 1945 году и вывезен из Берлина. В 1946 году Цузе создаёт фирму, которая будет заниматься продажей компьютеров, но коммерческая жилка громко заговорила в 1949 году. Цузе встречает Эдуарда Штифеля, швейцарского математика, который только что вернулся из США, познакомившись с достижениями американской компьютерной техники. Он решил испытать Цузе и его Z-4 дифференциальным уравнением, программу для решения которого Цузе написал в его присутствии. Демонстрация была впечатляющая, и уже в следующему году Штифель покупает у Цузе его компьютер (сделанный на деньги вермахта, но принадлежащий фирме Цузе) для Швейцарского федерального технологического института Цюриха, где работал Штифель.
Наконец-то компьютер Цузе начал выполнять задачи мирного времени. Его купили специально для расчётов строительства плотины Клезон-Диксенс в Швейцарии. В ближайшие два года это будет единственный коммерческий (!) работающий компьютер в континентальной Европе, да и в целом второй работающий компьютер в мире. Он проиграет только американскому компьютеру BINAC, но тот на практике свои задачи и не выполнял, так что Z-4, с некоторой натяжкой, может считаться первым настоящим коммерческим компьютером. В 1954 году Z-4 снова был продан, в этот раз Франко-германскому исследовательскому институту во Франции, где активно работал до 1959 года, пока попросту не устарел. Сегодня оригинал этого компьютера – музейный экспонат, который находится в Немецком музее Мюнхена (Deutsches Museum von Meisterwerken der Naturwissenschaft und Technik).
Бизнес процветал, за Z-4 пошла целая серия компьютеров. На компьютере Z-22 впервые использовались электронные лампы (а ведь эту идею Цузе предложил ещё в 1938 году), а уже Z-23 перешёл на транзисторы, на которых и создавались все остальные компьютеры. Компьютеры продолжали производиться до 1960-х гг., и только тогда Zuse KG (так называлась фирма к этому периоду) просто проиграла конкурентную борьбу. В 1962 году фирма была продана компании Brown, Boveri & Cie., а затем компании Siemens, которая и остановила производство компьютеров серии «Zuse» к концу 1960-х гг. При этом сам Конрад Цузе в фирме остался в должности научного консультанта и не прекращал заниматься наукой до конца своей жизни.
Наш герой не только «герой» железа, но и создатель первого высокоуровневого языка программирования. Про это нужно рассказывать отдельно, уже когда вы будете знакомы с его железом. Возможно, вы скажете, что первый язык — это FORTRAN, но он первый широко известный и практически применимый. Фортран создавался с 1953 года, а Plankalkül был создан Конрадом Цузе лично ещё в 1942 году (работа над языком продолжалась до 1945 г. и далее), непосредственно во время войны, но… это был теоретический язык.
Сам Конрад не верил, что его язык действительно найдёт применение на практике:
Plankalkül родился исключительно как результат теоретической работы, без всякой связи с тем, появятся или нет в обозримом будущем машины, подходящие к программам на Plankalkül».
Слишком он опережал своё время, да и уровень международного сотрудничества в 1942 году для гражданина Германии был… не самый располагающий к распространению языков программирования.
Само название языка Plankalkül – это два слова немецкого языка со значением «план» и «исчисление». Этот язык был планом счислений для вычислительной системы Z-4. Именно при создании языка Конрад чётко выделил в работе своего устройства аппаратное и программное обеспечение, поставив между ними черту.
Гений Цузе заключался в том, что его язык не был привязан к конкретной вычислительной машине, её архитектуре или набору команд. Это был первый в мире символический язык, привычного понятия «алгоритмичный язык» ещё просто не существовало. В сам язык он ввёл понятие «объект», который мог быть «примитивным», основанным на двоичных числах разной длины, или «составным», т. е. включать структуры, рекурсивно определяемые массивы произвольной размерности и т. д. В этом языке появилась возможность записывать сложные синтаксические конструкции, и, соответственно, осуществлять сложные задачи. Для решения сложных задач Конрад разработал собственный синтаксис. Была реализована возможность работы с массивами и подмассивами, а также использование подпрограмм. Подробнее для специалистов в области программирования советую научную статью про данный язык по QR-коду выше или по первой ссылке из пункта литературы. Мы же продолжим информировать «рядового» читателя.
Казакова, И. А. Plankalkül – первый высокоуровневый язык программирования / И. А. Казакова // Прикладная информатика. – 2012. – № 5(41). – С. 128–131. Текст в открытом доступе на Елайбрари, в нём также есть примеры программы на этом языке.
Конрад Цузе в 1957 году очень красиво и образно выразился о своём языке, что желает, чтобы он «спустя время вернулся к жизни, словно спящая красавица», и оказался прав. Его язык ожил, когда в 2000 году, уже после смерти учёного, написали интерпретатор для языка (на Хабре есть подробный рассказ про интерпретатор) и на практике испробовали его.
Язык не получил распространения и известности в первую очередь из-за того, что руководство по языку было опубликовано только в 1972 году, он просто оставался неизвестным для учёных всего мира. Без сомнений, коммерческая деятельность Конрада оказала на это своё влияние, если он на диссертацию «компьютерную мышь» положил, что ему мешало также положить и на публикацию «теоретического» языка?
Этот язык мог «перевернуть» всю современную ему информатику, ведь пока нигде не были представлены условные конструкции, циклы, массивы, возможность описывать и вызывать подпрограммы, но условия, в которых этот язык был создан, не позволили ему стать всемирно известным, к моменту публикации документации язык уже сильно устарел. Устарел безнадёжно.
Жизнь Конрада Цузе не была простой. Он в одиночку выиграл технологическую гонку у огромных корпораций и групп учёных, однако ни он сам, ни другие учёные об этой гонке не знали. Невероятная тяга к прогрессу, к облегчению монотонного труда позволила создать компьютер, обогнавший своё время. Позже, когда достижения Цузе были признаны европейской научной общественностью, учёные с печалью говорили: «Узнай о них весь мир в своё время, прогресс мог бы сделать несколько шагов намного быстрее». Учёный получил множество почётных степеней, развивал ряд идей теоретического понимания Вселенной, но в итоге наглядно показал, что в современном мире один человек, даже самый гениальный, больше не может соревноваться с целыми научными институтами. Однако чуть больше восьмидесяти лет назад один человек всё ещё мог на равных соревноваться с системой.
Список литературы и источников по теме:
Raúl Rojas — «Konrad Zuse’s Legacy: The Architecture of the Z1 and Z3», IEEE Annals of the History of Computing, Vol. 19, No. 2, 1997 (переведена на русский);
Казакова, И. А. Plankalkül — первый высокоуровневый язык программирования / И. А. Казакова // Прикладная информатика. – 2012. – № 5(41). – С. 128-131;
Козырев, А. Н. Параллели — Анатолий Китов и Конрад Цузе / А. Н. Козырев // Цифровая экономика. – 2020. – № 3(11). – С. 60-72. – DOI 10.34706/DE-2020-03-07;
zuse.zib.de — интернет-архив Конрада Цузе;
Гаков, В. Несумрачный немецкий гений / В. Гаков // Системный администратор. – 2014. – № 10(143). – С. 88-91;
Дополнительная информация о патентной деятельности Цузе (на немецком языке), которая в пост просто не поместилась — www.dpma.de/dpma/veroeffentlichungen/meilensteine/computer-pioniere/zuse/index.html;
ИСТОРИЯ КОМПЬЮТЕРА. Роли Конрада Цузе и Джона фон Неймана. (Статья на немецком языке). Некоторый интерес вызывают цитата сына Конрада Цузе и сопровождающие изображения — www.ardalpha.de/wissen/geschichte/historische-persoenlichkeiten/konrad-zuse-computer-rechner-erfinder-102.html.
Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей в нашем блоге на Хабре и телеграм-канале.
Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.
Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.
Автор текста: the_bat
Привет, Пикабу!
Хоть название и громкое, но тут почти нет преувеличения. Моя разработка не предполагает ежедневного использования и сделана больше просто ради забавы, но тем не менее она довольно интересная. Владимир Анискин из Новосибирска, например, создал книгу на лавсановой пленке размерами 70х90 мкм, а почему бы и нет? На занесение в книгу рекордов Гиннеса я не претендую, но, если Вы остались заинтересованы, заходите под кат. Не хотел делить статью на части, так что наберитесь терпения.
Идея создания маленькой книги на электронных чернилах родилась уже довольно давно. Для этого даже был приобретен прямоугольный e-ink дисплей 2,13”, но по незнанию заказал версию, которая не поддерживала частичного обновления экрана. Смена страниц происходит только через полное стирание, а это занимает много времени и выглядит некрасиво. Поделка была заброшена на долгое время, но как-то на глаза попался мне дисплей 1,54” (200х200 pix), и я вновь загорелся этой идеей. После недолгих раздумий был заказан уже нужный дисплей. Пока посылка шла положенные три недели я решил сделать макетную плату и запустить старый дисплей, сил терпеть больше не было.
На плате не обошлось без ошибок. Я неверно выбрал ножки SPI для дисплея и чуть-чуть ошибся со схемой подключения CP2102 в режиме автоматического программирования. Несколько перерезанных дорожек и три проводка решили почти все мои проблемы.
Почему именно ESP32.
Во-первых, есть возможность закидывать файлы через Wi-Fi. Во-вторых, для этого модуля есть множество примеров скетчей, в том числе и для работы с e-ink. Также у меня есть одна не реализованная идея, которая потребует наличия беспроводной связи, но об этом не в этой статье (интрига). На самом деле я долго метался между микроконтроллером и модулем, но последний все-таки победил.
Немного по схемотехнике. Так как на момент написания статьи у меня уже была готова схема и pcb новой платы, я буду ориентироваться на нее. Схему включения/выключения книги я реализовал на CD4013.
Ток потребления микросхемы в состоянии покоя порядка микроампера, что меня вполне устраивает. IO4 от ESP32 позволит программно выключать устройство, например, при долгом бездействии. U/D – кнопки для перелистывания страниц. Сигнал OUT_KEY включает общее питание, что видно на следующем куске схемы.
Тут все просто. Питанием управляет CD4013 через полевик, до этого устройство выключено. Сигнал ADC_EN от ESP32 подает напряжение для измерения заряда аккумулятора. Сам зарядник LTC4054. Может стоило поставить что-то более навороченное с измерением заряда и шиной I2C, типа BQ25895, но как уж есть. Вместо LDO (как было на прототипе) для питания и использовал DC/DC. Нога CHARGE нужна для отслеживания окончания зарядки.
Так как используемые мной дисплеи pin-to-pin, схемотехника одна и та же. Все внутренние питания формируются из основного источника 3,3В.
Из таблицы на схеме видно, что можно подключить различные дисплеи. DIP переключатель я убрал и оставил резисторы. Сделано это ради экономии места, так как в данном проекте габариты решают. По этой же причине я не стал ставить SD карту. Памяти для хранения одной книги в txt должно хватить на внутренней SPIFlash.
Аккумулятор буду использовать LiPo 582728 3.7В 400 мАч. Этого достаточно и для недолгой работы в режиме Wi-Fi (проверено), но в крайнем случае, есть разъем microUSB. Из интересного по схемотехнике, пожалуй, все.
После того, как я латиницей вывел свой ник на дисплее, решил попробовать кириллицу. Библиотеки для работы с e-ink использовались «E-Paper_code» — так их можно найти на github. И да, там нет русских букв. Мои руки уже практически опустились. Отдельная благодарность Алексею a3x за помощь в подсчете offset букв (и не только в этом) в таблице ASCII, для правильной интерпретации.
if (char_offset > 1140) char_offset -= 780; // функция DrawCharAt в epdpaint.h
Для отрисовки русских букв нужно две вещи. Первое – это конвертер utf8rus (как пример). И тут все понятно, идем снова на github и находим скетч. Второе – нарисовать буквы в библиотеке. Здесь немного сложнее. В примере есть несколько размеров шрифтов: 8, 12, 16, 20, 24. Шрифт 8 имеет размеры 8х5 pix. Есть один существенный плюс – это 25 строк на странице. Смотрится шикарно, но читать почти невозможно. Шрифт 12 думаю будет самое то. Максимальная высота 10 pix. На дисплее можно отобразить 15 строк по 28 символов.
Какие мог буквы я перенес из английского алфавита (я понимаю, что похожие разноязычные буквы отличаются, как например «К» и «K»). Дальше просто пытался рисовать, но буквы оказывались кривыми и нечитаемыми. Решил воспользоваться программой «GLCD Font Creator». Дело пошло быстрее.
Программа позволяет сконвертировать шрифт в нужное количество точек. Так как для соседних строк нужен отступ библиотека работает с 12 пикселями высоты (12 шрифт). Многие буквы подрезались, некоторые стали нечитаемы, но исправить это куда проще, чем рисовать с нуля. В какой-то момент я еще вспомнил что букв в два раза больше, чем ожидалось (заглавные и строчные). Программа позволяет выгрузить шрифт в массив, но мне он не подошел по структуре. Писать преобразование одного массива в другой я был не готов морально. Пришлось преобразовать все в калькуляторе – то еще занятие. При корректировке нужно не забывать оставлять не менее 1 пикселя справа/слева, чтобы буквы не слипались в тексте. В коде буква выглядит примерно так:
// @ 'ф' (7 pixels wide)
0x00, //
0x00, //
0x38, // ###
0x10, // #
0x7C, // #####
0x92, // # # #
0x92, // # # #
0x7C, // #####
0x10, // #
0x38, // ###
0x00, //
0x00, //
Не скажу, что все буквы идеальны, но вполне читаемы. Если кому-то понадобится библиотека, могу поделиться. После того, как все буквы готовы пробуем вывести на новый дисплей.
Это самый первый вариант, и я его дорабатывал. Для чего вообще я рисовал заглавные твердый и мягкий знаки? Хотя … оказывается есть, например, слово «Ьмх» — это название советского локомотива. Ну и, конечно, можно будет почитать книги на болгарском языке, там есть слова, начинающиеся на «Ъ».
Используя скетч «ESP32_SPIFFS_test» я научился на SPIFlash класть текстовый файл книги. Когда я в первый раз вывел текст, я был огорчен. Как и следовало ожидать, все слова «рвались» на границе экрана. Пока я не сделал нормального форматирования текста пришлось воспользоваться online сервисом.
Помимо переносов по словам, тут есть выравнивание текста по ширине. Результат превосходен! Но и тут появилась новая проблема. Для переноса текста используется символы «CR»«LF». Мой недокод умеет искать только «\n» = «LF». Пришлось находу вычислять offset «CR» и заменять его на пробел, в противном случае на каждой строке справа появлялся символ в виде мусора. Это костыль, но рабочий.
Тут еще некоторые буквы кривые и слипаются. Также в тексте много ошибок в виде пропущенных букв и лишних пробелов в середине слова. Мне нравится читать электронную книгу, у меня для этого есть полноценная версия, но вот ошибки в тексте раздражают.
Ниже функция вывода страницы текста из файла на экран. Строго не судите – пишу код как могу.
void DrawPage(int page) {
if (!SPIFFS.begin(true)) {
Serial.println("An Error has occurred while mounting SPIFFS");
return;
}
if(EEPROM.read(3) == 0) {
file = SPIFFS.open("/book.txt", "r");
if (!file) {
Serial.println("Failed to open file for reading");
return;
}
char temp_qs[56];
while (file.available()) {
file.readBytesUntil('\n', temp_qs, sizeof(temp_qs));
Quantity_string++;
}
Quantity_page = (Quantity_string / 15);
if(Quantity_page > 255) {
EEPROM.write(2, Quantity_page/100);
EEPROM.write(3, Quantity_page%100);
} else {
EEPROM.write(2, 0);
EEPROM.write(3, Quantity_page);
}
EEPROM.commit();
file.close();
Serial.println(Quantity_page);
} else {
Quantity_page = (EEPROM.read(2)*100)+EEPROM.read(3);
Serial.println(Quantity_page);
}
file = SPIFFS.open("/book.txt", "r");
if (!file) {
Serial.println("Failed to open file for reading");
return;
}
if (Quantity_page == 0) {
paint.SetWidth(200);
paint.SetHeight(24);
paint.Clear(UNCOLORED);
paint.DrawStringAt(2, 2, utf8rus("Файл пустой...").c_str(), &Font12, COLORED);
epd.SetFrameMemoryPartial(paint.GetImage(), 50, 20, paint.GetWidth(), paint.GetHeight());
epd.DisplayPartFrame();
} else {
Serial.print("Page number:");
Serial.println(page);
Serial.println("File Content:");
for (int i = 0; i < page * 15; i++) {
int l = file.readBytesUntil('\n', one_string, sizeof(one_string));
}
paint.SetWidth(200);
paint.SetHeight(36);
//PAGE NUMBER
paint.Clear(UNCOLORED);
paint.DrawStringAt(2, 2, utf8rus(String(page_count + 1)).c_str(), &Font12, COLORED);
paint.DrawStringAt(30, 2, utf8rus("из").c_str(), &Font12, COLORED);
paint.DrawStringAt(52, 2, utf8rus(String(Quantity_page + 1)).c_str(), &Font12, COLORED);
paint.DrawRectangle(167, 5, 194, 15, COLORED);
paint.DrawStringAt(168, 5, "'''''", &Font8, COLORED);
epd.SetFrameMemoryPartial(paint.GetImage(), 2, 183, paint.GetWidth(), paint.GetHeight());
//PAGE
int k_line = 2;
for (int i = 0; i < 5; i++) {
paint.Clear(UNCOLORED);
for (int s = 0; s < 3; s++) {
int l = file.readBytesUntil('\n', one_string, sizeof(one_string));
one_string[l] = 0;
//Serial.println(one_string);
paint.DrawStringAt(0, s * 12, utf8rus(one_string).c_str(), &Font12, COLORED);
}
epd.SetFrameMemoryPartial(paint.GetImage(), 2, k_line, paint.GetWidth(), paint.GetHeight());
k_line += 36;
}
file.close();
page_count++;
}
}
Тут идет чтение текстового файла из памяти ESP32. В переменную «page» я передаю номер страницы из (псевдо) EEPROM – это типа закладки. Для сдвига указателя в файле, сделан первый цикл for. Над этим еще нужно поработать.
Далее я решил формировать нижнюю строку для вывода количества прочитанных страниц из общего количества. Для отображения заряда аккумулятора у меня пока заглушка, нарисованная в 8 шрифте (чтобы не было пересечения при выводе) в рамке. То есть для вывода текста остается 15 строк. Следом формируется сама страница. Тут нужно отдельное пояснение.
int k_line = 2;
for (int i = 0; i < 5; i++) {
paint.Clear(UNCOLORED);
for (int s = 0; s < 3; s++) {
int l = file.readBytesUntil('\n', one_string, sizeof(one_string));
one_string[l] = 0;
//Serial.println(one_string);
paint.DrawStringAt(0, s * 12, utf8rus(one_string).c_str(), &Font12, COLORED);
}
epd.SetFrameMemoryPartial(paint.GetImage(), 2, k_line, paint.GetWidth(), paint.GetHeight());
k_line += 36;
}
file.close();
page_count++;
Как я писал ранее – этот дисплей поддерживает частичное обновление фреймами. Максимальный размер фрейма в памяти 8192 pix. Заполнение одного фрейма занимает порядка 0,8 с. Сначала я сделал построчно и это занимало около 15 с. После некоторых расчетов стало понятно, что формировать можно по 3 строки за раз: 200х36=7200 (каждая строка 200х12). Тогда это займет порядка 5 с – это намного лучше (4 на текст и 1 на строку состояния). Поэтому внутренним циклом формируются три строки, а внешним вся страница. Здесь нет функции «epd.DisplayPartFrame()» (вывод на дисплей) не случайно. После включения книги пользователь видит последнюю читаемую страницу (ее я стартую в «void setup()»), а я тем временем готовлю следующую (над процессом чтения предыдущей страницы еще нужно подумать).
void loop()
{
if (((digitalRead(KEY_UP) == LOW) && (page_count <= Quantity_page + 2))) {
Quantity_page = (EEPROM.read(2)*100)+EEPROM.read(3);
//SAVE PAGE
Serial.println(page_count);
if(page_count > 255) {
EEPROM.write(0, page_count/100);
EEPROM.write(1, page_count%100);
} else {
EEPROM.write(0, 0);
EEPROM.write(1, page_count);
}
EEPROM.commit();
//LOAD PAGE
epd.DisplayPartFrame();
//PRELOAD NEXT PAGE
DrawPage(page_count);
delay(50);
//LIGHT SLEEP
esp_light_sleep_start();
}
}
В результате этого получается, что пока мы наслаждаемся лого загрузки и чтением первой страницы (5 с + 5 с) у меня готова следующая. По нажатию кнопки я моментально делаю вывод и начинаю формирование следующей, которая готова через ~5 с. Запись закладки в один и тот же адрес EEPROM ни к чему хорошему не приведет, но 10000 страниц я прочитаю. Вопрос в том, сколько страниц я успею прочитать на аккумуляторе 400 мАч. Без режима сна все-таки не обойтись, но это оказалось просто. Добавляем в конец «void setup()» и по нажатию кнопки функцию «esp_light_sleep_start()». Для пробуждения прописываем RTC_GPIO «esp_sleep_enable_ext0_wakeup(GPIO_NUM_14, 0)». Итого: в момент «перелистывания» страницы потребление около 38 мА, дальше 5,0 мА. При выключении кнопкой мой мультиметр (UNI-T UT70A) показывает 0 в режиме измерения мкА (думаю, что врет).
На плате добавился еще один проводок для кнопки. Оказывается, не все пины на ESP32 можно задействовать как GPIO.
Пока я «писал код» в производстве была вторая итерация платы. Габариты получились 40х57мм.
Я особо не старался уменьшить размеры, так как решающую роль тут играет аккумулятор и сам модуль ESP32. Также, чем меньше будут габариты, тем нелепее буде выглядеть толщина устройства (аккумулятор 5,8мм). Я широким жестом удалил индикационные светодиоды (осталась только индикация процесса/окончания зарядки), хотя место для них есть, а для отладки они бы пригодились.
Из нереализованного:
Переделать запись в EEPROM.
Реализовать отправку книги по Wi-Fi.
Сделать перелистывание страницы назад.
Отслеживать и выводить заряд аккумулятора.
Поддержка epub.
Научиться писать код.
Не люблю использовать видео в статье, но тут без него не обойтись. Оно наиболее полно отображает работу устройства.
В целом поделкой я остался доволен. Практическое применение, конечно, минимально, но, как говориться, опыт бесценен, а также присутствует моральное удовлетворение. Думаю, я найду в себе силы прочитать пару книг на моем устройстве.
P. S.: Первая книга саги «Ведьмак» занимает 1654 страницы (24810 строк).
Чтение – к мудрости движение.
Спасибо за внимание и успехов!
Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей в нашем блоге на Хабре и телеграм-канале.
Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.
Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.
Автор текста: Baron_Kir
8 июня исполнилось 69 лет со дня рождения человека, без которого интернет в виде привычной нам «всемирной паутины» мог бы и не родиться. Сегодня мы будем говорить про настоящего «живого классика» информационных технологий, про Тима Бернерса-Ли. Этот человек – настоящий фанат научного прогресса. Отдать то, что мы сейчас называем «интернетом», людям бесплатно — настоящий подвиг, ему не просто так был официально присвоен титул «Сэр». Как истинный рыцарь, он поднимал вопросы ответственности в сети. Вперёд, в историю «сети» и «паука», который её плёл.
Тим Бернерс Ли дал каждому из нас свободный доступ к невероятному количеству информации, он подарил нам свободный интернет. Автор текста также предоставляет возможность свободно выбирать — прочитать текст или послушать его в подкасте, который подготовил автор.
Наша история начинается не с появления на свет младенца, который изменит мир. Она начинается с 1952 года, когда на рождественской вечеринке британской фирмы Ferranti, которая занималась электроникой, встретились Мэри Ли Вудс и Конвэй Бернерс-Ли, два учёных-математика, два опытных практика в работе с первыми компьютерами. Через год они уже вместе работали над компьютером Ferranti Mark 1, в том же году они и поженились. Их ждало 63 года совместной жизни, множество научных открытий и практических достижений, а также статус «дедушка и бабушка интернета». Этот статус они вспоминали с гордостью, ведь в 1955 году родился Тимоти Джон Бернерс-Ли, всего у пары было четверо детей, но сегодня всё внимание посвящено первенцу. О его матери мы рассказали вам вчера, про отца — расскажем позже.
Тим Бернерс-Ли с детства тяготел к современным технологиям. Его «первая любовь» – поезда. У него была игрушечная модель железной дороги, но игры у сына двух математиков-программистов-инженеров были специфические. В школе Тим создавал для управления своими поездами отдельные электронные устройства, следил за развитием транзисторных технологий, которые на тот момент были передовыми, новаторскими.
Тим с мамой, кадр взят с CNN, но получить доступ к видео у автора не вышло.
Тима-подростка тянуло к фантастике, ярчайшие впечатления у него оставил рассказ Артура Кларка – ««Ф» — значит Франкенштейн» (Dial «F» for Frankenstein), в котором компьютеры были объединены в сеть, образуя настоящий живой человеческий мозг. На момент публикации рассказа Тиму было всего 10 лет, сама идея объединения компьютеров захватила его навсегда.
Увлекающая его электроника была дополнена физикой, которую Тим изучал в Королевским колледже Оксфордского университета. Он всегда очень тепло вспоминает свой университет, а главное – индивидуальную программу многих работающих там преподавателей.
В 1976 году, по окончании университета, начинается самостоятельный путь Тима. И он далеко не самый простой: первые два года товарища Бернерса-Ли ждёт работа инженером в телекоммуникационной компании (lessey Telecommunication Ltd) города Пул, Англия, он занимался разработкой программного обеспечения, системами распределения транзакций, ретрансляции сообщений. И штрихкодами. Тим позже вспоминал: у них была машина, сканер штрихкодов, с которым нужно было ездить по супермаркету, считывать штрихкоды товаров, а внизу под этой машиной был автомобильный аккумулятор. Сеть оперативно получала информацию о том, сколько у них товара и какой товар раскупается быстрее, и именно этот товар отправляла в конкретный магазин, минуя склад в самом магазине. Это была «компьютерная революция управления супермаркетом». Следующие два года он провёл в компании DG Nash Ltd, там он отвечал за создание многозадачной операционной системы.
В 1980 году Тим впервые работает на Европейскую организацию ядерных исследований (ЦЕРН) и там пишет программу INQUIRE, многие элементы которой появятся во всемирной паутине. В организации он работал всего полгода. Давайте сделаем небольшое отступление, ведь ЦЕРН станет ключевым местом в жизни Тима. Что такое ЦЕРН в 1980 году?
Это огромная корпорация на 10 000 человек, у которых разные задачи, разное оборудование, которые пользуются разным программным обеспечением (настолько разным, что говорить о каком-то едином языке или стиле создания обеспечения не приходилось). Это не одно помещение и даже не один город! Это группа институтов, организаций и учреждений, которая обязана обмениваться информацией, и для этого у неё есть локальные сети, соединённые воедино. А самое главное – уровень подготовки и компьютерной грамотности у этих людей крайне высокий.
Из этих 10 000 сотрудников лишь около 3 000 постоянно работали на ЦЕРН, остальные же совмещали работу сразу в нескольких учреждениях. Кроме того, средний срок работы в учреждении составлял около двух лет. После чего человек уходил, и… терялась часть информации!
Задачу сохранения данной информации и пытался решить Бернерс-Ли, создав программу INQUIRE. Это, говоря очень грубо, своеобразная электронная картотека. В ней «карточки» с гиперссылками внутри. Гиперссылки устанавливали связи с другими карточками, где содержалась наиважнейшая информация.
Например:
Где используется этот модуль?
Кто написал этот код? Где он работает?
Какие документы существуют об этой концепции?
Какие лаборатории включены в этот проект?
Какие системы зависят от этого устройства?
В каких документах об этом говорится?
Максимально упрощая, задачи INQUIRE решала сродни современной Вики, т. е. систематизировала информацию и создавала связи между блоками. Изменение любого блока отражалось в каждой карточке. При этом любой учёный мог сам создавать такую карточку и устанавливать необходимые связи, создать полностью новую карту (без установления связей) было невозможно.
Звучит замечательно, правда? Особенно в 1980-м году. Однако, были у программы и существенные недостатки. Один из главных – вся информация находилась в рамках одной базы данных, доступа в другие базы данных, вне организации, у INQUIRE не было. Базу данных систематически требовалось обновлять. Этой системой пользовалось совсем небольшое количество учёных, а сам Тим не стремился её «рекламировать», продвигать или иным образом делать доступной всем.
Однако, напоминаю вам, уважаемые читатели, что контракт у Тима Бернерса-Ли был всего на 6 месяцев. Истёк контракт, и он покинул ЦЕРН, но, словно Карлсон, обещал вернуться, проработав три года в фирме Image Computer Systems Ltd, где его работа была связана с программным обеспечением для операционных систем реального времени.
В 1984 году нашего героя приглашают назад в ЦЕРН, и перед ним снова стоит задача систематизации и взаимодействия между различными элементами института, которую он уже пытался решать. Он снова активно включается в работу INQUIRE. Ключевая задача: программа должна стать многопользовательской и кроссплатформенной, получить доступ к внешним ссылкам. Порой можно встретить мнение, что Тим Бернерс-Ли создал гипертекст, но это не так. Он построил на его применении свою всемирную паутину, сделав его не просто популярным, а жизненно необходимым. Но мы вернёмся к первым шагам, которые Тим, уже будучи постоянным сотрудником ЦЕРНа делает по возвращении.
С 1984 года главной задачей Тима Бернерса-Ли стало решение проблемы с изменением информации в реальном времени. Осложнялась работа спецификой самого ЦЕРНа, люди, участвовавшие в разработке, приходили и уходили. Тим разработал для своей программы инструмент для создания распределительных систем (удалённый вызов процедур в реальном времени). Программа Inquire использовалась преимущественно для того, чтобы соединить все сведения о всех участниках проекта. Как потом вспоминал сам Тим:
«Я понял, что большая часть координации проекта сводилась к тому, чтобы поддерживать информацию в актуальном состоянии и держать всех в курсе изменений. В тоже время я понял, что значительную часть своего времени я потратил на то, чтобы выяснить подробные детали систем, которыми пользовались другие люди».
У Тима появилась вполне конкретная потребность: сделать вариант программы похожей на Inquire, но доступной каждому человеку. Идея была в масштабированной возможности совместной и независимой работы групп пользователей, которые получали бы автоматически обновляемую площадку для обмена материалами с гипертекстом. Вот так, в ответ на проблемы с одной программой, Тим придумал ключевую концепцию всемирной сети.
На дворе 1989 год. ЦЕРН закончил работы над большим электронно-позитронным коллайдером (LEP англ. Large Electron-Positron collider). Началась работа над Большим адронным коллайдером. Институт испытывал просто невероятную потребность в механизме быстрого, простого и «мобильного» общения.
И вот тут Тим Бернерс-Ли предлагает свою концепцию «всемирной паутины», становится известным, знаменитым, мы получаем интернет и публикуем там фотографии котиков…
Но на практике всё было не так. Тим действительно предложил свою концепцию. Не просто идею, а именно полноценное предложение, у которого ещё не было названия. Это был проект, основанный на гипертексте, целый год Тим писал записки, заметки и предложения, но получал отказы. ЦЕРН отказался работать над проектом Тима Бернерса-Ли. Однако его непосредственный начальник, Майк Сендал, дал негласное добро на разработку этой концепции в рабочее время и на рабочем железе.
Акцент на железе сделан не просто так. В то время выпускался NeXT Computer (и его слегка улучшенная версия NeXTcube). Эти компьютеры физическим лицам продавались за 10 000 долларов, а университетам – за 6 500. С учётом того, что речь идёт про 1990 год, разница, мягко скажем, заметная.
Именно на второй модели, на NeXTcube, работал Тим в ЦЕРНе, и его начальник прямо сказал, что не будет возражать, если Тим купит этот компьютер в своё личное пользование уже у института.
Эти компьютеры были идеальны для зарождения всемирной сети. Они имели операционную систему NeXTSTEP. Особенности системы позволяли разработчикам W3 не тратить время на специфику написания символов на экране, метрики шрифтов, отображениях окон. Всё это уже было включено в «родную» операционку. Кроме того, среда программирования уже включала в себя редактор и ряд шрифтов, которые свободно можно было превращать в гипертекст. С момента начала акцентированной работы над «сетью» понадобился всего один месяц для создания прототипа работы браузера, и ещё через месяц заработал редактор. На рождество 1990 года то, что мы привыкли называть словом «интернет», уже существовало.
Сделаем ещё одно отступление. Вы же помните о том разнообразном опыте, который приобрёл Тим Бернерс-Ли за время работы в коммерции? И вот тут его опыт оказался крайне важен! Сам Тим вспоминал, что ЦЕРН не хотел покупать программное обеспечение! Сотрудники ЦЕРНа привыкли создавать ПО и модернизировать его, именно этим была вызвана проблема, которую долго пытался решить Тим. Но он сам имел большой опыт работы в индустрии создания ПО и прикладывал огромные усилия для того, чтобы заставить ЦЕРН покупать нужное ПО.
Однако, «свою войну» Тим успехом завершить не смог. Пришлось разрабатывать версии под NeXT, для ПК, для Мак, для ряда рабочих станций и терминалов. ЦЕРН просто не был готов давать деньги на покупку ПО или оборудования без крайней необходимости. «Всемирная паутина» была не первым проектом в своём роде, и остальные потерпели крах внутри самого ЦЕРНа.
Тим пошёл на техническую хитрость. Он создал для своего детища шлюзы к существующим системам. Сама технология шлюзов была прорывной, это зачаток привычного нам интернета. В том же 1990 году Тим создал Язык разметки гипертекста (HTML).
Всё началось с телефонной книги ЦЕРНа, это была база данных, которая хранилась в устаревшем формате. Человек, который за неё отвечал, Бернд Поллерман, получил от руководства задачу сделать эти данные доступными всем. Тим и Бернд вместе создали первый сервер для хранения гипертекстовой версии данных.
Им помогала Никола Пеллоу, на тот момент студентка-стажёр, которая отвечала за клиентскую часть и разработала интерфейс для первого браузера, в частности занималась портированием браузера на другие платформы… За адаптацию для Macintosh отвечал Роберт Кайо. Роберту Кайо следует посвятить отдельный лонгрид. Тут же мы упомянем лишь то, что он предложит использовать систему гипертекста для документации ЦЕРНа ещё до знакомства с Тимом. Роберта по праву можно называть «сосоздателем» интернета, ведь они вдвоём с Тимом смогли сделать самое важное: оформить все необходимые документы на финансирование своего проекта!
Слева направо: Роберт Кайо, Тим Бернерс-Ли и Никола Пеллоу, которая в русскоязычном интернете чаще встречается в мужском роде. 1993 год, ЦЕРН.
Всемирная паутина родилась! Но с момента рождения она находилась под угрозой смерти и спас её… Интернет!
Напоминаем вам, уважаемые читатели, что интернет на тот момент существовал уже более 20 лет. ARPANET, NSFNET, многие сотни куда более мелких сетей уже существовали. Уже разработан протокол IRC, существуют чаты. Вовсю работает Интернет (по FTP).
И вот туда, в группы новостей сети Usenet и alt.hypertext, была размещена информация о создании сервера, возможности доступа для пользователей NeXTStep. Тим вспоминал, что в тот момент пользователи Usenet были «яркими и странными», они обладали достаточно высокой компетенций и поддерживали интересный им материал. Проект всемирной сети начал получать существенное количество отзывов, нередко встречалась и критика, например WWW сравнивали с HyperCard (система, основанная на гипермедиа от Эппл). Но HyperCard проиграла войну за популярность, она была ограничена файлами локальных жёстких дисков пользователей, а всемирная сеть – нет. После публикации пошла серьёзная волна поддержки, моральной и интеллектуальной. Люди предоставляли Тиму исходные коды различных необходимых проектов. Как позже он напишет: «Люди Интернета создали Сеть».
В то же время началу практического использования интернета положила Луиза Аддис, библиотекарь Стенфордского линейного ускорителя (SLAC). Эта библиотека впервые создала сайт, основанный на идеях WWW, который существенно облегчил жизнь физикам, работающим над проектом, и предоставил им доступ к огромному количеству актуальной и важной информации. Следующим этапом была работа с библиотеками сообщества физики высоких энергий (HEP).
Луиза Аддис, Джордж Крейн, Тони Джонсон, Пол Кунц и Джоан Уинтерс в феврале 2000 года.
Люди, которые ввели в библиотеке SLAC всемирную сеть. Советую прочитать интересный текст про них, кликабельно.
Несмотря на откровенные успехи, как позже вспоминал Тим, их с Робертом подкалывали коллеги, ведь «всемирная паутина» практически не использовалась в самом ЦЕРНе, для которого и создавалась! Учёные не поняли и не приняли пользу сети поначалу. Она просто стала «одной из…».
Основатель WWW Wizards Луиза Аддис (справа) с Джоан Уинтерс. (Национальная ускорительная лаборатория SLAC)
При этом нельзя сказать, что проекту ставили палки в колёса, скорее наоборот, требовалась версия под виндовс, мак. Просто ресурсов для портирования не выдавали. Тут спасали студенты-волонтёры. Никола Пеллоу ведь была не единственной. Команда студентов из Хельсинского технологического университета разрабатывала браузер под X Window под названием Erwise. Пэй-Юань Вэй, студент из Бёркли, на базе Unix создал интернет-браузер ViolaWWW на собственном языке программирования Viola. Том Брюс, создатель браузера Cello, адаптировал его под Microsoft Windows. В тот момент Майкрософт Виндовс пользовался особой популярностью в кругу юристов, и им тоже потребовался свой браузер, для распространения юридической информации. Ну а для Макинтоша писал уже известный вам Роберт Кайо.
Вот тут начался настоящий рост интернета! Уважаемые читатели, отсюда и далее мы соединяем понятие «интернет» и «всемирная паутина» и продолжим использовать только слово интернет.
Браузер ViolaWWW был очень тепло принят в ЦЕРНе и в Национальном центре суперкомпьютерных приложений (NCSA). Студент Марк Андриссен (ныне этот студент – основатель фонда Andreessen Horowitz) и сотрудники Software Design Group решили сделать собственный браузер для X Window. Он получил название Mosaic. Особой фишкой этого браузера была активнейшая работа с отзывами и мгновенный выпуск патчей под проблемы. В 1993 году именно Mosaic уже был портирован на Майкрософт Виндовс и Макинтош, а потом в конкурентной борьбе выиграл гонку за статус «самого популярного браузера». Интернет на долгое время стал восприниматься именно через Mosaic. Интернет было уже не остановить!
Марк Андриссен и Джим Кларк. Хорошая статья про создание Mosaic, кликабельно
Вы можете спросить меня, автор, нехороший ты человек, зачем ты нам рассказываешь историю первых браузеров вместо того, чтобы говорить про Тима Бернерса-Ли? Ответ простой. Главная заслуга Тима, интернет, «авторство» которого часто товарищу Тиму приписывают, легко мог «не выстрелить», остаться в качестве технического инструмента. Все люди, энтузиасты и студенты, которые добровольно и бесплатно помогали и создавали первые программы для зарождающегося интернета, тоже, пусть и лишь частично, могут считать себя создателями всемирной сети, и будет неплохо вспомнить о них в день рождения Тима Бернерса-Ли.
Однако вернёмся к Тиму. Интернет был создан. Он был создан свободным и открытом, но не только возможности он давал! Товарищ Бернерс-Ли ещё в 1993-1994 годах начал говорить об опасности интернета.
Например, вопросы анонимности. В 1994 году случилась одна забавная ситуация. В ЦЕРН пришло письмо с просьбой включить в список серверов новый сервер с информацией о крупном университете. Чуть позже – ещё одно письмо с… точно таким-же текстом! После длительной переписки оказалось, что только у одной из сторон есть официальное одобрение от университета, а у второй стороны – просто лучше сервер. В итоге добавили оба сервера, подписав их «University» и «University Underground». Проблема проверки информации была очевидна, и необходимость подтверждения статуса официальной информации не вызывала сомнений.
В том же 1994 году стояла серьёзная проблема по наполняемости интернета информацией. Тим отмечал, что есть страх перед обилием информации сети и трате времени на её поиск, параллельно читая (цитата) «много всякого мусора». Сам Тим приводил в пример, что конкретной информации в интернете может и не быть, например «карты битвы при Гастингсе…. Вы вряд ли там найдёте». Он подчёркивал, что интернет наполняют люди. Уже тогда были подчёркнуты и проблемы с информационной безопасностью и с конфиденциальностью.
Мне кажется очень любопытным дихотомическое восприятие интернета как механизма для объединения/разделения людей. Так, в 1994 году Тим Бернерс-Ли писал:
«Сеть может обеспечить равенство, предоставляя любому доступ к информации. Не столь важно, хорошо ли оснащена местная библиотека, или учится ли человек в городе, где есть университет: любой, у кого есть доступ к сети, в принципе, может найти любую информацию. Однако, интернет может как обеспечить равенство, так и разделить людей. Например, если у человек нет средств, чтобы оплатить доступ к интернету, или если уровень образования не позволит человеку пользоваться системой. Он может потерять доступ к актуальной информации в принципе».
С тех пор прошло ровно 30 лет, а воз и ныне там. Актуальность проблем никуда не ушла, Тим продолжал и продолжает над ней работать.
С 1994 года работает Консорциум Всемирной паутины, эта организация до сих пор прикладывает усилия, чтобы сеть оставалась единой на уровне стандартов, но при этом продолжала развиваться. С 2023 года организация стала некоммерческой.
Вик Каллаган приветствует доктора Тимоти Бернерса-Ли (и его родителей) 26 марта 1998 года. Вик в рубашке, Тим в костюме.
В 1999 году Тим выпускает книгу «Плетя паутину: итоги и будущее Всемирной паутины», где подробно рассказывает про историю интернета и чётко ставит проблемы ответственности, плагиата, мошенничества. Пишет и о роли государственных структур в современной сети, но, в то же время, продолжает отстаивать её свободный статус.
В 2004 году уже сотрудник Саутгемптонского университета, Тимоти Джон Бернерс-Ли получает из рук ныне покойной королевы Англии рыцарский титул, а уже через год он выпускает вторую книгу под названием «Пройдя семантическую паутину: полное раскрытие потенциала Всемирной паутины». Семантическая паутина – основная современная научная и практическая разработка Тима Бернерса-Ли. Это специфическая версия всемирной паутины, где данные можно будет обрабатывать при помощи специальных программ, т.е. любые приложения вне зависимости от платформы и языка программирования смогут получить доступ к содержанию текстов и их обработке.
С 2009 года Тим работает «на» или «с» правительством Великобритании, тут кому какое слово больше нравится, над публикацией открытых данных в интернете. В том же году он создаёт World Wide Web Foundation, некоммерческую организацию, которая стремится сделать интернет безопасным, в том числе и в вопросах политического влияния. Забегая чуть вперёд, в 2019 году организация смогла «продавить» программу под названием «контракт для интернета», направленную против фейков, политических манипуляций и прочего безобразия. Несмотря на то, что её подписали гиганты индустрии, на практике программа… не то, чтобы выполняет свои функции. В 2012 году при помощи британского правительства Тим создал Институт открытых данных, некоммерческую организацию, направленную на помощь инновационным разработкам, которая, как и ряд иных, созданных Тимом организаций, существует до сих пор.
В том же 2012 году Тим получил одну из лучших наград. Цитата из его первого сайта «Это для всех» была высвечена на зрительских местах церемонии открытия Олимпийских Игр в Лондоне, когда сам Тим, находился на газоне, работая за полной копией того самого компьютера, на котором начиналась создание современного нам интернета.
Сейчас Тим работает над проектом Solid (Social Linked Data), это проект направленный на децентрализацию сети и существенное повышение конфиденциальности пользователей. Проект работает с 2016 года, достиг определённых успехов, мы не станем подробно рассказывать о нём, есть хороший текст на Хабре, который сделает это за нас. Совсем недавно, 12 марта 2024 года Тим Бернерс-Ли написал предупреждающее письмо к 35-летию интернета, где снова говорил о проблемах концентрации власти и уходе от старого «духа» интернета. Как вы уже поняли, эти проблемы совершенно не новы. В рамках проекта Солид Тим предлагает их решить, но… Говорить о том, что он уже смог достигнуть успеха, рано, очень рано.
Нередко ставится вопрос о том, а нужен ли этот новый децентрализованный интернет. А если нужен, то зачем? И вот тут вспоминается ситуация, когда создавалась привычная нам всеми всемирная паутина. Когда уже имеющему статус и уважение Тиму говорили: «А зачем тебе это надо? Ведь уже работает то, что есть». Однако, история пошла по известному нам пути, и сейчас мы читаем этот текст в том интернете, который создал Тим, а сделать этот интернет популярным ему помогли многие десятки, а то и сотни людей. Сейчас он создаёт свой «новый» интернет, и, как это обычно бывает при рассказе про живущих ныне людей, мы не знаем, чем закончится его история. Но Тимоти Джон Бернерс-Ли, без всякого сомнения, при жизни вписал себя в цифровую историю человечества.
Список литературы по теме (весь список англоязычный):
ethw.org/Oral-History:Tim_Berners-Lee
infinite.mit.edu/video/timothy-j-berners-lee (видеоинтервью с расшифровкой)
www.w3.org/DesignIssues/TimBook-old (в целом советую к прочтению все заметки 1993-1994 годов)
www.eurekalert.org/news-releases/937792 (интереснейший текст о том, как в SLAC начали применять всемирную паутину)
Читайте также:
Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей в нашем блоге на Хабре и телеграм-канале.
Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.
Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.
Автор текста: smart_alex
Эта статья посвящена разбору решений по запитке 3,3-вольтовых контроллеров (и их периферии) от литиевых аккумуляторов, напряжение которых меняется в процессе работы от 4,2 В до 3 В и даже ниже, в случае глубокого разряда.
Получить стабильные 3,3 В в этом случае не так-то просто и, кроме этого, задача питания подобной аппаратуры от аккумуляторов выдвигает множество специфических требований, удовлетворить которые тоже непростая задача.
Обо всём этом мы и поговорим далее (решение есть!).
Для начала давайте определим требования, которым должно удовлетворять подобное решение. Требования довольно противоречивые, поэтому их трудно учесть в каком-то одном решении (но компании Texas Instruments, похоже, удалось это сделать).
Стабильное напряжение 3,3 В при колебании входного от 4,2 до 3 В (и даже до 2,5 В). Основная сложность тут состоит в том, что входное напряжение может быть как больше, так и меньше выходного и типовые решения UP или DOWN конвертеров не подходят, нужен BUCK-BOOST конвертер.
Энергоэффективность. Поскольку речь идёт о питании от аккумулятора, то решение должно быть энергоэффективным, то есть КПД должен быть более 90% (допускается небольшая просадка в некоторых режимах).
Низкий ток покоя (холостого хода). Конвертер должен обеспечивать низкий ток собственного потребления при отсутствии нагрузки. На мой взгляд, приемлемыми можно считать значения до 50 мкА (судя по даташиту на серию TPS63xxx, инженеры TI тут со мной полностью согласны).
Приличная нагрузочная способность. Конвертер должен обеспечивать приличный ток нагрузки. Мои требования — максимальный ток до 300-400 мА, решения TI обеспечивают токи до 1-3 А.
Это основные требования, кроме них есть ещё множество специфических, наподобие уровня шумов в выходном сигнале, возможность отключения конвертера программным путём, индикация режимов работы и т. п.
Меня лично интересуют два сценария работы подобной аппаратуры (у вас могут быть свои требования) и именно по отношению к этим двум сценариям я и буду рассматривать решения TI.
1. Микропотребляющая нода. Это может быть беспроводной датчик, который в основном режиме сна потребляет 5-10 мкА и периодически выходит в эфир, (очень) кратковременно поднимая потребление до 100 мА (например, ATmega328 + nRF24/LoRa). Для этого сценария определяющим является низкий ток покоя конвертера.
2. Функциональная нода. Это может быть модуль ESP8266/ESP32 с передачей данных по Wi-Fi и какими-то дополнительными функциями, или датчик/актуатор, периферия которого может потреблять значительный ток. Здесь на первый план выходит сочетание низкого тока покоя конвертера с его возможностью беспроблемно обеспечивать большой выходной ток в моменты активации периферии (или работы по Wi-Fi).
(Вообще, на этом принципе можно делать какие-то переносные девайсы, наподобие дозиметров или подобного, но эта тема меня пока не особо интересует.)
Вообще, существует множество вариантов решения этой проблемы от различных компаний, работающих на различных принципах: UP+DOWN, SEPIC, различные варианты BUCK-BOOST и т. д. В этом смысле серия TPS63xxx от Texas Instruments — это всего лишь один из доступных на рынке вариантов. Возможно не лучший, но после тестирования и практических экспериментов, искать что-то лучшее я не вижу особого смысла — всё, что мне надо там отлично работает.
С практической точки зрения, можно купить сами чипы и развести под них специальные платы (для конечных устройств так и нужно сделать), но для экспериментов и DIY устройств можно сэкономить время и силы и воспользоваться готовыми модулями, которые уже давно разработали и продают наши китайские друзья.
(По принципу: если ты что-то изобрёл, не спеши радоваться — зайди на Али — китайцы это уже придумали, сделали и давно продают.)
На Алиэкспресс доступны модули на основе чипов TPS63000, TPS63020, TPS63030, TPS63070, TPS63802, которые китайцы именуют либо по названию чипа, либо с приставкой «XL»:
XL63000
XL63020
XL63030
XL63070
TPS63802
Это всё вариации на одну тему, с некоторыми различиями как в свойствах микросхем TI, так и в свойствах самих модулей (где-то отдельно выведены контакты включения/выключения чипа, изменения режимов работы, качества выходного напряжения и т. д., а где-то — нет).
Пожалуй, из всего этого стройного ряда выделяется только вариант TPS63070 с входным напряжением до 16 В и напряжением старта 3 В — это может пригодиться в каких-то специфических случаях. Остальные отлично подходят для моих (наших) целей. Для моих уж точно — я не планирую нагружать аккумулятор более, чем на 300-400 мА, даже кратковременно, а ток покоя 50 мкА меня тоже, в принципе, устраивает.
Самым интересным тут выглядит вариант TPS63802 с его 11 мкА тока покоя — насколько грамотно это удалось воплотить китайцам в реальном модуле мы и посмотрим далее.
Вообще, все эти модули производят неоднозначное впечатление — они сделаны (как бы) в одном дизайне, но при этом имеют разные габариты и разный набор выведенных пинов. То ли разработчики склонны к экспериментированию, то ли эти модули делают разные компании и похожи они только внешне.
Сходу можно сказать, что в реализации модуля TPS63802 допущены как минимум пять косяков:
1. Несовместимость с макетными платами. Прочие модули XL63xxx нормально вставляются в макетные платы, а в TPS63802 приходится НЕ распаивать по одному пину на площадках (чтобы можно было вставить в макетную плату).
2. Отсутствует пин EN. В модуле TPS63802 не выведен пин EN управления его включением/выключением. Для меня это не проблема — я вообще не очень представляю сценарий, когда с контроллеру нужно совершать суицид и самому себе отрубать питание. Но кому-то это может понадобиться.
3. Дорожка EN под микросхемой. Если вы захотите самостоятельно управлять включением TPS63802, то просто так вам не удастся это сделать — придётся отпаять микросхему и уже под ней перерезать дорожку, замыкающую EN на VCC.
4. Светодиод индикации питания. Воистину, дизайн модуля делала ключница — на модуле с 11 мкА тока покоя залудить светодиод индикации питания (!). Это нужно быть совсем «не алё» и похоже, что разработчик вообще был не очень в курсе, что он разрабатывает.
5. Резистор 3К на землю. Светодиода китайскому затейнику показалось мало и он добавил ещё резистор 3К на землю, который постоянно сливает энергию аккумулятора.
Всё это неприятные, но несущественные недостатки — при помощи паяльника и прямых рук решаются за несколько минут. За исключением перемычки под микросхемой — чтобы провернуть такую операцию, — нужно иметь хорошую квалификацию в пайке, острый взгляд, твёрдую руку и стальные нервы (смайл). Благо мне лично пин управления включением не нужен.
Итак, удаляем светодиод и резистор (можно выпаять, а можно и выломать — кому как удобнее), замыкаем перемычку PS (Power Saving, те самые вожделенные 11 мкА без нагрузки) и приступаем к практическому тестированию. Теория теорией, но кто знает что там китайские товарищи напаяли?
С током покоя всё просто: замеряем выходное напряжение без нагрузки, которое ожидаемо оказывается 3,32 В и потребляемый модулем ток, который оказывается 35 мкА (по тестеру UNI-T UT61E+). Это конечно не 11 мкА микросхемы TPS63802 из даташита, но довольно неплохо и более чем приемлемо для наших (моих) целей.
Почему 35, а не 11 мкА? Скорее всего лишнюю утечку дают дополнительные элементы на плате, плюс возможна какая-то погрешность при измерении моим тестером (интересно, а сам чип оригинальный?). Но в целом можно сказать, что этот тест модуль прошёл успешно — 35 мкА это не феноменальный, но более, чем приемлемый результат.
Теперь посмотрим как модуль справляется со своей основной задачей — поддержанием стабильного выходного напряжения при различных нагрузках и с какой эффективностью он это делает.
Сделаем замеры и построим графики зависимости выходного напряжения и эффективности преобразования в зависимости от тока нагрузки. Тестировать я буду на наиболее востребованном и наиболее интересном мне диапазоне токов от 0 до 0,5 A.
А сами серии тестов проведём для (наиболее актуальных и информативных с точки зрения работы с литиевыми аккумуляторами) диапазонов 4,2/3,6/3,0 вольт входного напряжения.
Нагружаем модуль и проводим замеры входных и выходных напряжений и токов и вычисляем реальную эффективность преобразования.
По численному представлению информации трудно понять как ведёт себя модуль. Для наглядности сведём все эти данные и построим график зависимости выходного напряжения модуля TPS63802 от нагрузки при различных уровнях входного напряжения (характерных для литиевых аккумуляторов).
Из этого графика можно сделать вывод, что модулю вообще без разницы какое напряжение у него на входе — графики линий для 4,2/3,6/3,0 В практически слились в одну. Причём для 4,2 и 3,6 В модуль работает как понижающий, а для 3,0 — как повышающий. Это хорошо, но хуже то, что линия имеет явный наклон и пересекает «психологическую» черту в 3,0 В где-то в районе 500 мА нагрузки и уходит в «маргинальную» область напряжений менее 3 В.
Кстати, TI по какой-то причине не указывает в своих даташитах на серию TPS63xxx графики зависимости выходного напряжения от выходных токов, одни из самых важных, на мой взгляд (стесняется?).
Единственный подобный график от производителя, который мне удалось раскопать — это график для модели TPS63031 и он существенно отличается от полученного мной в реальности.
Чего стесняется TI и почему угол наклона в реальности значительно больше «теоретического» я сказать не могу — возможно дело в методике измерений и используемых инструментах, возможно дело в схемотехнике модуля TPS63802, а возможно в модуле стоит китайский клон TPS63802. И совсем крамольная мысль: поскольку в официальном даташите на TPS63802 нет этого графика — то может он такой кривой и должен быть? (смайл)
Но в любом случае, поскольку лично меня интересуют интервалы от нуля до 400 мА нагрузки при выходном напряжении от 3,3 до 3,0 вольт, то лично меня этот модуль устраивает, а тем, кому нужно больше, можно поглубже покопать эту тему (и сообщить нам о результатах своих изысканий).
Эффективность
Ок, теперь переходим к анализу энергоэффективности модуля TPS63802. Для начала график от производителя, видимо полученный на рефренсном дизайне платы, с рефренсной обвязкой чипа TPS63802, измеренный на рефренсной измерительной аппаратуре инженером TI высшей квалификации.
График из даташита — одно загляденье, но в реальности я наблюдаю несколько иную картину: с ростом нагрузки эффективность падает, но в заветном диапазоне 0-300 мА всё ещё «телепается» в районе более-менее приличных 80%. Причём тут уже видно расслоение графиков в зависимости от входного напряжения — чем ниже входное напряжение тем «труднее» модулю работать и тем меньшую эффективность он демонстрирует.
Аберрации и аномалии в районе нуля — это следствие погрешности измерений. Кстати, в процессе работы с модулем TPS63802 я заметил ещё одну его неприятную особенность: он демонстрирует своего рода «нереентерабельность» — в зависимости от внешних воздействий может впадать в некие устойчивые состояния, которые не нормализуются без полного его обесточивания и ожидания разрядки подключённых ёмкостей — это может сыграть злую шутку, например, когда выходной ток кратковременно превысит допустимый предел, а после этого модуль уже не восстановит нормальную работу. Этот момент нужно учитывать при проектировании устройств на модуле TPS63802 (а возможно и на чипе TPS63802).
Уровень шумов в выходном напряжении — это тоже важный параметр, поэтому проведём замеры его в разных режимах работы модуля. Без нагрузки модуль выдаёт шумы в виде пилы амплитудой около 40 мВ. Не сказать, что мало, но и не сказать, что уж очень много.
При добавлении выходного электролитического конденсатора положение значительно улучшается и основная масса шумов укладывается в 20 мВ (с небольшими всплесками до 30 мВ).
Под нагрузкой пульсации возрастают аж до 90 мВ, что явно многовато (хотя на практике, я протестировал, — контроллеры работают с таким питанием без проблем).
Добавление электролитического конденсатора на выход модуля снижает уровень шумов до более-менее приемлемых 40 мВ (если при уровне шумов 90 мВ всё работает нормально, то при 40 мВ уж подавно проблем не будет).
Из этого можно сделать вывод, что и по этому параметру модуль TPS63802 проходит тест, рекомендуется только добавить конденсатор на его выход.
Из всего вышеизложенного можно сделать вывод, что модуль TPS63802, несмотря на некоторые недостатки, вполне подходит для создания энергоэффективных устройств на микроконтроллерах, работающих от литиевых аккумуляторов. Это могут быть беспроводные датчики, устройства на ESP8266/ESP32, а также различные носимые девайсы, наподобие дозиметров и прочего подобного.
Мне лично модуль понравился — он (легко и просто) закрывает целый пласт проблем по питанию от литиевых аккумуляторов. Но совершенство недостижимо и если вы знаете лучшие решения — делитесь ими в комментах — это всем будет полезно.
Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей в нашем блоге на Хабре и телеграм-канале.
Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.
Автор текста: TilekSamiev
Сегодня смартфон как технология практически уничтожил целые классы гаджетов: от «мыльниц» до MP3-плееров, GPS-карт и даже фонариков. Но, возможно, ни один вид гаджетов от этого не пострадал настолько, как карманный персональный компьютер, который доминировал в конце 90-х и начале 2000-х годов. КПК в свое время задавал тренд, перейдя от простого управления личной информацией к играм, обмену сообщениями, музыке и фотографиям, пока его не сделало устаревшим появление смартфона.
Как и смартфоны, КПК предлагали набор приложений, многие из которых работали под управлением Palm OS. В 2000 году компания Palm стоила больше, чем Apple, Amazon, Google и Nvidia вместе взятые. Было продано более 30 миллионов единиц серии PalmPilot, а рыночная капитализация компании взлетела до 58 миллиардов долларов. Казалось, Palm готова возглавить мобильную революцию.
Проследить историю компании Palm с её перипетиями сложно даже по стандартам Кремниевой долины. Она была образована в 80-е годы как небольшая фирма в индустрии портативных компьютеров, но была приобретена другой крупной компанией, которая затем продала себя. После этого Palm была разделена на две части, обе части вышли на биржу, затем воссоединились и Palm снова распродалась. По пути организация потеряла свою первоначальную команду, но затем вернула только для того, чтобы снова попрощаться с ней. А потом Palm фактически прекратила свое существование в 2018 году, когда её ненадолго возродили.
Но где именно компания оступилась?
В 80-е годы учёные-компьютерщики начали задумываться о том, как будут выглядеть мобильные вычислительные технологии. Тогда были Psion и HP Jaguar, работавшие под DOS, но они больше были мини-ноутбуками с крошечными клавиатурами. В то время портативные компьютеры в первую очередь означали либо тяжёлые переносные рабочие станции, либо уникальный класс карманных компьютеров с небольшими экранами, памятью и клавиатурой, похожих на калькуляторы.
На такие устройства был большой спрос со стороны корпоративных и государственных заказчиков, которым требовался доступ к базам данных на ходу. Для того времени ноутбук был слишком громоздким, чтобы использовать его на открытом воздухе, вдали от офиса или дома.
Джефф Хокинс, идейный вдохновитель компании GRiD Systems, основанной в 1979 году, был пионером концепции портативных ноутбуков и сред объектно-ориентированного программирования. Хокинс разработал теории о том, как мозг распознает текст. Он развил эти идеи в своем первом перьевом компьютере PalmPrint. В то время распознавание рукописного ввода было ещё более сложной задачей, но система PalmPrint Хокинса упростила задачу, просто сопоставляя каракули с символами, вместо того, чтобы пытаться распознать целые слова.
PalmPrint затем стал GridPen, ядром GriDPad 1900 1989 года, первым коммерчески успешным планшетным компьютером. Используя резистивный 10-дюймовый чёрно-белый ЖК-дисплей в качестве экрана и поверхности для письма, он работал под управлением MS-DOS на маломощном процессоре Intel 80C86 с тактовой частотой 10 МГц и весил около двух килограммов (4,5 фунта), продаваясь по рекомендуемой розничной цене 2500 долларов.
GRiD быстро стал лидером рынка планшетных устройств, отчасти благодаря PalmPrint, а отчасти благодаря простой в использовании среде разработки. Но Хокинс считал, что он мог бы добиться большего. Он хотел создать систему, в которой сам экран станет устройством ввода, заменив клавиатуру ручками и стилусами. При этом Хокинс считал своё собственное творение слишком громоздким и дорогим. Опрос существующих корпоративных клиентов GriDPad о портативном компьютере, который они бы использовали лично, дал единодушный результат: устройство должно быть намного легче, меньше и быстрее.
Хокинс задумал создать персонального цифрового помощника и в 1992 году основал компанию Palm Computing. Он со своими коллегами Эдом Коллиганом и Донной Дубински приступили к работе над новым программным обеспечением для распознавания символов. В 1995 году Palm Computing была близка к выпуску революционного устройства. У них было около 3 миллионов долларов для релиза. Они создали устройство с меньшим количеством кнопок и с бо́льшим размером экрана, чем у других устройств. Лучшая технология рукописного ввода на рынке была в их распоряжении. Но во время исследований и разработок у компании закончились деньги, из-за чего они не смогли вывести устройство на рынок. Но создатели знали, что попали в цель.
Хотя внешний интерфейс Palm OS 1.0 представлял собой новый и уникальный интерфейс, лежащая в её основе операционная система изначально была готовой. В 1978 году канадская инжиниринговая компания KADAK разработала ядро операционной системы реального времени для мини-компьютеров, управляющих нефте- и газопроводами. К началу 1980-х годов её операционная система реального времени под названием AMX стала кроссплатформенной и вышла на новые рынки.
Промышленность тогда уже планировала создание вычислительного устройства с перьевым вводом. Компания US Robotics выкупила Palm Computing за 44 миллиона долларов, а затем они объединились с ещё одной компанией, 3Com, созданной Бобом Меткалфом, который был разработчиком Ethernet. Компания US Robotics рассчитывала на то, что Ethernet станет следующим хитом. И они были правы. Они также сделали ставку на устройства с перьевым вводом. И снова оказались правы!
В 1996 году компания US Robotics выпустила Palm Pilot 1000 со 128 КБ ОЗУ и Palm Pilot 5000 с 518 КБ ОЗУ. Это были первые устройства, которые действительно достигли цели. Люди стали одержимы ими. Их можно было подключать к компьютеру для синхронизации заметок, контактов и календарей. Сейчас это кажется такой мелочью, но тогда это было революционно. Устройства имели мгновенный успех. Все, кто занимался компьютерными технологиями, поняли, что грядёт новый технологический бум. Чуть позже HP, Sony, Ericsson, Sharp, NEC, Casio, Compaq и Philips станут выпускать карманные компьютеры. Но Palm был самым главным разработчиком.
В 1998 году трое основателей Palm Computing создали новую компанию по производству аналогичного устройства под названием Handspring, которое было очень похоже на устройства Palm. А Palm Computing превратился в Palm, Inc.
К концу 1998 года 3500 программистов создавали приложения для Palm OS. Спрос на продукцию Palm продолжал расти, и они начали внедряться в ряде новых отраслей, таких как финансовый сектор и сектор здравоохранения. Однако Microsoft, выпустившая годом ранее свою платформу Windows CE для мобильных компьютеров, активизировала борьбу. Устройства под управлением Windows CE были доступны от ряда производителей, таких как Casio Computer Co., Hewlett-Packard Co. и Compaq Computer Corp.
Несмотря на присутствие Microsoft на рынке, Palm продолжала преуспевать, в 1999 году выпустив новые продукты, такие как Palm IIIx, Palm V, Palm VII, Palm IIIe, Palm Vx и Palm IIIe Special Edition. Palm VII был примечателен тем, что позволял пользователям подключаться к Интернету по беспроводной сети через службу Palm.net.
В 2000 году доходы компании Palm, Inc. достигли примерно 1,1 миллиарда долларов. Они вышли из 3Com и провели IPO в марте 2000 года, став независимой компанией, акции которой стали котироваться на фондовой бирже NASDAQ.
К концу 2001 года число разработчиков Palm OS достигло 140 000, что принесло доход в 1,6 миллиарда долларов. Компания имела глобальный охват, продавая продукцию более чем в 35 странах. Согласно анализу рынка и прогнозу International Data Corp, проведённому в июле 2001 года, Palm контролировала 55,9% мирового рынка КПК. Её доля на мировом рынке портативных операционных систем составила 71,8%.
Компания Handspring выпустила Treo в 2002 году. Treo был, по сути, смартфоном. Он мог отправлять электронную почту, SMS, голосовые вызовы. Со временем в него добавили камеру, GPS, MP3 и Wi-Fi. К середине 2000-х годов выручка Handspring и цена акций резко упали.
В июне 2003 года Palm, Inc. объявила о покупке конкурирующей компании Handspring в рамках обмена акциями (на сумму 240 миллионов долларов на момент закрытия сделки в октябре). В октябре 2003 года Palm, Inc. выделила PalmSource, своё подразделение программного обеспечения, а первоначальная компания, сохранившая за собой операции с оборудованием, была переименована в PalmOne, Inc.
PalmOne лидировала на традиционном рынке КПК с долей 40%, в то время как Handspring стала нишевым игроком на развивающемся рынке «смартфонов». PalmOne была снова переименована в Palm, Inc. в июле 2005 года после того, как приобрела оставшиеся права на использование названия Palm за 30 миллионов долларов.
Весной 2005 года компания Palm представила линейку Life Drive с четырех-гигабайтными жёсткими дисками. Это была первая попытка компании создать более крупную и всеобъёмлющую систему управления мобильными устройствами, отвечающую всем пользовательским требованиям. Если говорить об этом сейчас, с его контактами, календарем, музыкой, изображениями, видео, приложениями, 4 ГБ жесткого диска Microdrive, Bluetooth и Wi-Fi, а также всем программным обеспечением из Palm OS, это не слишком отличается от современного смартфона. У него даже мог экран переключаться между портретным и альбомным режимами. Проблема заключалась в том, что всё это делало его очень большим и дорогим по тем временам устройством. Производство прекратилось менее чем через два года после начала цикла, незадолго до того, как другим пришла в голову аналогичная, но более совершенная идея.
В сентябре компания анонсировала новую линейку устройств Treo (ранее разработанных Handspring и предлагаемых под брендом PalmOne) с операционной системой Microsoft, чтобы помочь предотвратить конкуренцию со стороны Blackberry. К сожалению, как и Life Drive, этот продукт был снят с производства всего за четыре года. Та же участь постигла первые и единственные ноутбуки Palm: Foleo, Centro, Pre и Pixi.
Теперь, когда все части компании снова собрались вместе, они начали планировать новую ОС, о которой объявили в 2009 году. webOS должна была стать огромной. И они анонсировали Palm Pre, следующий смартфон-убийцу.
Единственная проблема заключалась в том, что iPhone появился в 2007 году. А Android был выпущен в 2008 году. У Palm была правильная идея, но они опоздали и проиграли технологическую гонку Apple и Google.
Когда начали появляться смартфоны с сенсорными экранами и доступом в Интернет, Palm изо всех сил старалась не отставать. Но зависимость компании от физических кнопок и её медлительность в освоении новых технологий привели к сокращению доли рынка.
В 2009 году Palm была приобретена Hewlett-Packard за 1,2 миллиарда долларов. Под брендом HP компания прекращает выпуск Palm. Компьютерный гигант заявил, что намерен выпускать телефоны, планшеты, ПК и другие продукты на базе WebOS. Попытки HP возродить бренд Palm не увенчались успехом, и в 2010 году компания Palm закрылась.
Под новым руководством организация снова была разделена на части: WebOS так и не стала популярной, PRe 3 так и не вышла в продажу, а сенсорные панели фактически не принесли никакой пользы, что в конечном итоге закончилось увольнением генерального директора HP. Исходный код WebOS стал открытым, а оставшиеся активы были проданы LG Electronics для использования в телевизорах Smart TV.
В 2018 году новый стартап, поддерживаемый TCL, купил бренд Palm для крошечного устройства на базе Android, предназначенного для использования во время тренировок. И это был последний раз, когда мы слышали об этом бренде.
Сегодняшний неуклюжий корпоративный труп Palm продает даже не смартфоны, а только наушники и небольшое «дополнительное устройство» на базе Android. Точно так же, как Интернет убил DVD и другие видеоносители, смартфон убил КПК и множество интересных гаджетов вместе с ним, а также саму душу компании, которая, возможно, сделала больше всех для продвижения портативных компьютеров. И какое бы устройство ни заменило смартфон в будущем, это навряд ли будет КПК.
По иронии судьбы, крупнейший конкурент Palm, BlackBerry, пошел по той же нисходящей спирали. Компания начала рушиться в 2013 году из-за 40-процентного падения продаж, в результате чего её акции упали почти на 17%. BlackBerry уволила 4500 сотрудников и зафиксировала списание запасов почти на 960 миллионов долларов за второй финансовый квартал того же года. Однако, в отличие от Palm, у них не было никаких шансов на финальный рывок. 4 января 2022 года некогда знаменитая служба обмена сообщениями BlackBerry полностью прекратила свое существование.
Любой портативный компьютер должен иметь явные преимущества перед бумажными ежедневниками. Пользовательский интерфейс должен быть безупречным. Если пользователю приходилось перемещаться по нескольким диалоговым окнам, покупка КПК не стоила своих денег. Простым критерием эффективности или неэффективности является подсчёт количества нажатий кнопок для создания встречи или добавления записи в адресную книгу. Для этого требуется, чтобы все наиболее часто используемые функции были легко доступны, а не были скрыты за меню или диалоговыми окнами. Эта концепция простоты использования ускользнула от многих ранних КПК.
Palm стала пионером на рынке КПК, но не смогла адаптироваться к новым технологиям, таким как сенсорные экраны и доступ в Интернет, что привело к её падению. История Palm — это мощный урок для представителей технологической отрасли. Важно не только выдвигать революционные идеи, но и эволюционно развиваться. В мире технологий вы хороши настолько, насколько хорошо ваше последнее обновление.
Соучредитель Palm Донна Дубински однажды пошутила в 2000 году: «Через пять лет Apple будет продавать только фрукты». Это оказалось совершенно неточным, поскольку через 7 лет Apple представила iPhone, который произвел революцию в мобильной индустрии.
Крах компании Palm и взлёт Apple с iPhone действительно очень поучительны. Nokia в свое время тоже разработала аналогичные продукты. Но то, что сделал Стив Джобс, было исключительным, потому что он установил очень высокую планку для своей внутренней команды для чтого, чтобы сделать лучший пользовательский интерфейс. На это ушло более 5 лет.
Во-первых, все началось с простого требования: никакой клавиатуры и стилуса. Это вывело разработку сенсорного интерфейса на уровень, который никто не считал возможным. Это превратило всё устройство в экран. Никто не думал, что это убьёт клавиатуру Blackberry.
Во-вторых, компания использовала iPod и музыкальный магазин. Больше никто не мог вести переговоры с музыкальными лейблами и изменить порядок отбора и продажи музыки.
В-третьих, Стиву Джобсу потребовалось изменить каналы распространения сотовых телефонов, убедив AT&T изменить то, как пользователи будут покупать услуги сотовой связи.
В-четвертых, магазин приложений Apple создал мощный сетевой эффект разработчиков Apple, повышающий ценность устройства и одновременно позволяющий конечным пользователям настраивать свои iPhone.
В истории Palm каждое деловое решение, принятое после первого крупного успеха, было слишком незначительным и слишком запоздалым. Они заключили с Sprint эксклюзивную сделку на продажу Pre и Pixi и продолжили её, когда продаж не было. Palm не разрешал разработчикам создавать приложения для WebOS или эквиваленты iPod touch. Palm никогда не продвигала Pre таким образом, чтобы это имело значение, в то время как устройства iPhone, BlackBerry и Android рекламировалась из каждого утюга. Судя по тому, как обстояли дела, даже их инвесторы начали публично громить компанию.
Palm Pilot был первым успешным портативным устройством. Это дало многим возможность подумать о большем. iPod появился в 2001 году в океане портативных MP3-устройств. И со временем он приобретёт некоторые черты Palm.
Основатели Palm изобрели то, что людям действительно понравилось. На некоторое время. И у них было правильное видение новаторской вещи. Они просто не смогли идти в ногу с ростом популярности iPhone и Android, которым сейчас принадлежит практически весь рынок.
Эта история не только о рисках недооценки конкуренции; это более широкий урок о важности адаптивности в секторе, где сегодняшний пионер может быстро стать поучительной историей завтрашнего дня.
Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей в нашем блоге на Хабре и телеграм-канале.
Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.