Платим блогерам
Блоги
kosmos_news
Студентка из Польши Камила Шевечик обнаружила в менеджере окон Enlightenment E16 баг, из-за которого зачастую зависал весь рабочий стол.

21-летняя программист Камила Шевечик обнаружила и исправила ошибку в коде оконного менеджера Enlightenment E16. Ошибка, существовавшая примерно с 2006 года, могла привести к зависанию всего рабочего стола из-за слишком длинного заголовка окна (title bar). В своём блоге она рассказала о том, как обнаружила и исправила баг.
E16 Enlightenment. Источник: iczelia.netEnlightenment — один из старейших оконных менеджеров для Unix и Linux, который до сих пор находится в разработке. Проект стартовал в 1997 году, а его часть E16 (DR16) появилась в 1999 году — и она существует до сих пор, хотя большинство давно перешли на более новые версии Enlightenment или совершенно другие среды.

E16 теперь пользуется статусом «культового»: он лёгкий (Камила Шевечик сообщает о пиковом потреблении RSS-ленты около 24 МБ), легко настраиваемый, удобный для активно использующих клавиатуру людей и по-прежнему имеет приятный визуальный ретро-стиль.

В этом, казалось бы, «завершённом» проекте уже два десятилетия скрывается ошибка, которая может привести к зависанию всего рабочего стола. Это происходит, например, при открытии PDF-файлов с длинными заголовками. Приходится перезагружать сессию X11 через TTY.

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

Проблема в том, что реализация этого сопоставления использует вариант метода Ньютона — и делает это без ограничения на количество итераций. Проще говоря, функция пытается оценить, сколько символов нужно «обрезать» посередине, чтобы уместиться в заданную ширину. Поэтому в течение 20 лет в E16 и была ошибка с длинными заголовками окон.

Камила Шевечик разработала патч для версии E16 1.0.30 (выпущенной в августе 2024 года). Девушка описала технические подробности решения в своем блоге.

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

Источник: iczelia.net
Теперь в новом формате

Наш Telegram-канал @overclockers_news
Подписывайся, чтобы быть в курсе всех новостей!

Популярные новости