LINUX.ORG.RU

Сообщения EXL

 

Perl прямиком из 1987 года

Прочитав новость «Код интерпретатора Perl официально перенесён на GitHub» я решил взглянуть на репозиторий Perl 5, который теперь уже находится на GitHub’е.

Удивительно, как трепетно и качественно его перенесли, сохранив не только абсолютно всю 32-летнюю историю проекта, но и багрепорты (Issues), патчи (PRs), релизы и ветки. Надпись «32 years ago» рядом с файлами вызывает улыбку.

Что ещё делать в этот унылейший пятничный вечер, когда на улице неприятно моросит дождь со снегом, а все дорожки погрязли в осенней слякоти? Правильно, красноглазить! Так что я ради эксперимента и интереса решил взять и собрать древний Perl на современной x86_64-машинке с gcc (GCC) 9.2.0 в качестве компилятора. Сможет ли такой старый код пройти проверку временем?

Чтобы было совсем уж аутентичненько и некрофильненько, я развернул виртуальную машину с голыми иксами и twm, который тоже родом из 1987 года. Кто знает, может быть Larry Wall писал свой Perl используя именно twm, так сказать bleeding edge technology того времени. Используемый дистрибутив – Arch Linux. Просто потому что в его репозитории есть некоторые полезные вещи, которые впоследствии мне пригодились.

( читать дальше... )

>>> Просмотр (1605x600, 55 Kb)

 , , , ,

EXL
()

Есть ли жизнь на Haiku?

Сперва я хотел бы поздравить всех пользователей ЛОРа с наступающим Новым Годом. Счастливых и весёлых вам выходных в 2019 году!

Осенью из новости на Linux.org.ru я узнал о выходе бета-версии операционной системы Haiku и решил проверить, можно ли использовать её для каких-то своих повседневных нужд обычному рядовому линуксоиду.

( читать дальше... )

>>> Просмотр (1366x768, 75 Kb)

 , , , ,

EXL
()

Зачем нужен Windows 10, если есть KDE Plasma 5?

В преддверии официального релиза новой версии Windows 10 от Microsoft:

https://blogs.windows.com/windowsexperience/2018/11/14/announcing-windows-10-...

И в продолжение этой темы 😹

>>> Просмотр (1128x1509, 1095 Kb)

 , , , ,

EXL
()

Fedora 25, GNOME 3, Wayland, портирование игры Gish на Android OS

Решил оценить готовность дистрибутива Fedora 25 Workstation для повседневного рабочего использования. А что может дать более объективную оценку, чем выполнение какой-нибудь интересной работы в этом окружении?

В качестве такой задачи я выбрал портирование компьютерной игры Gish на Android OS. Недавно я вспомнил про этот оригинальный 2D-платформер и захотел поиграть в него на своём Android-смартфоне. Игра была выпущена в далёком 2004 году, а после попала в самый первый сборник инди-игр Humble Indie Bundle, который собрал более одного миллиона долларов. В знак признательности поддержавшему их сообществу, разработчик игры Cryptic Sea объявил о том, что исходный код Gish'а будет открыт и выпущен под лицензией GNU GPL v2.0, на LOR'е даже писали об этом событии.

Скачав исходники игры, я открыл их в Qt Creator'е [Скриншот] и начал переносить платформер с библиотеки SDL на SDL2. Потом я импортировал проект в Android Studio и продолжил работу уже там. В целом на портирование я отводил по 2-3 часа каждый день после работы. Спустя месяц появилась первая релизная версия игры.

Итак, за один месяц использования GNOME 3 и Wayland я заметил следующие проблемы:

  1. Огромные декорации развёрнутых окон на низких разрешениях экрана выглядят настолько ужасно, что я решил установить расширение Pixel Saver, которое исправило эту проблему, правда, почему-то не во всех приложениях. Например, с GNOME Terminal это расширение не работает.
  2. В некоторых Qt-приложениях видны артефакты отрисовки (см. скрин Qt Creator'а выше, заголовки вкладок) из-за некачественной мимикрии. Работать это не мешает, но смотрится эстетически некрасиво.
  3. Иногда (очень редко) заметны странные мелькания в нижней части экрана. Возможно это какие-то баги в Intel'овских драйверах или Mesa3D, потому что в том же sddm и KDE Plasma 5 я тоже наблюдал такое.
  4. Иногда появлялись проблемы, связанные с различными анимациями окон, их закономерность я не смог выявить.

Теперь о хорошем. Интеграция Wayland и XWayland приложений в GNOME 3 практически бесшовная. В процессе использования я не выявил никаких проблем с отрисовкой, буфером обмена, переключением языка и снятием скриншотов. Ещё соглашусь с тем, что GNOME 3 в Wayland-сеансе работает плавнее и быстрее, чем в X.Org-сессии, видимо, сказывается полное отсутствие тиринга.

Таким образом можно подытожить следующее: Fedora 25 Workstation, несмотря на радикальную и быструю замену X.Org на Wayland, осталась вполне пригодным для работы дистрибутивом. Надеюсь, в Fedora 26 исправят отмеченные мной шероховатости, а софт, который сейчас использует XWayland, переведут на Wayland.

P.S. Если кому интересны результаты портирования Gish, дайте знать, выложу свои наработки в комментариях.

>>> Просмотр (1366x1536, 1837 Kb)

 , , ,

EXL
()

Процесс портирования инди-игры на Android OS

В далёком 2011 году был такой малоизвестный конкурс для гиков, который назывался RIOT Tag-Team Coding Competition. Целью мероприятия было увеличение количества Homebrew-игр на различных карманных игровых устройствах на базе ядра Linux: Caanoo, GP2X Wiz, Pandora и Dingoo A320. Отличительной особенностью этого конкурса являлось то, что игру необходимо было разрабатывать командой, а игры от «одиночек» не принимались. Именно поэтому двое российских программистов «старой школы»: Don Miguel и Quasist решили объединить свои усилия и начали работать над эксклюзивным игровым проектом для актуальных на тот момент времени консолей от фирмы GPH: GP2X Wiz и Caanoo.

На мероприятии авторы представили 3D-игру под названием Adamant Armor Affection Adventure, которая была выполнена в популярной тогда стилистике Minecraft'а, но имела кучу отличий от него. Всего за три месяца (sic!) ребятам удалось сделать очень многое: разработать достаточно производительный и отлаженный 3D-движок для embedded-устройств, создать десяток разнообразных карт и монстров, записать звуки и музыку, сделать несколько режимов игры, собрать всё это воедино и достойно выступить на упомянутом выше конкурсе, заняв почётное и призовое второе место.

Вдохновившись как самой игрой, так и успехом и самоотверженным трудом её авторов, я решил «воздать славу» нашей отечественной Linux-тусовке и, в свободное от работы время, попивая чаёк, начал портировать её на Android OS.

На скриншоте я представил окружение, в котором выполнил эту работу. На старом ноутбуке, который удобно везде с собой таскать и не страшно потерять, стоит Arch Linux c KDE Plasma 5. Я люблю дефолт, поэтому ничего особо не кастомизировал. Разве что в KWin добавил сокрытие декораций у максимизированного окна. На втором скриншоте Eclipse IDE и портируемая игрушка, которая запущена в эмуляторе устройства. Основная работа проводилась именно в Eclipse. К сожалению, в Android Studio поддержка NDK-проектов до сих пор оставляет желать лучшего. Кроме того, для внесения правок в код движка я использовал Qt Creator IDE: [Скриншот]. На переднем плане окно игры, которая собрана нативно под GNU/Linux. Если кому интересно, то в комментариях к этому посту я выложу все свои наработки.

>>> Просмотр (1366x1536, 1835 Kb)

 , , , ,

EXL
()

Часы на кривых Безье для рабочего стола KDE Plasma 5

Всем привет.

В плане изучения технологии Qt Quick и языка программирования QML захотелось мне реализовать какую-нибудь забавную вещицу для рабочего стола KDE Plasma 5. Это мой первый pet-проект на этом стеке технологий.

Два года назад на Хабрахабре я увидел интересный пост про часы на кривых Безье. Jack Frigaard, разработчик этого забавного скетча, использовал реализацию языка программирования Processing на JavaScript — Processing.js и поделился с общественностью своим кодом.

Я решил сделать из этого скетча анимированую «живую» обоину для KDE Plasma 5 и в итоге вот что получилось:

GIF-анимация
Демонстрация на YouTube (записывал на слабом ноутбуке с i3 первого поколения, так что во время записи были подлагивания и проседания FPS).

Репозиторий с исходным кодом:
https://github.com/EXL/BezierClock

Я немного увеличил функциональность, добавил возможность регулировки множества опций и параметров:

Скриншот настройки в KDE Plasma 5

Вышло довольно занимательно. Для тех, кто хочет попробовать поиграться с кривыми Безье сам, я приготовил пакеты:

[Пакет для Arch Linux] | [Зеркало]

Ставить командой pacman -U bezier-clock-v1.0-1-any.pkg.tar.xz или yaourt -U bezier-clock-v1.0-1-any.pkg.tar.xz, если кто не знает.

[Общий пакет для остальных дистрибутивов GNU/Linux] | [Зеркало]

Устанавливается он в пользовательскую директорию ~/.local/share/plasma/wallpapers/ выполнением скрипта package.sh. Удалить пакет можно либо ручками, либо выполнив ./package.sh -u.

После установки в настройках рабочего стола появляется новый тип обоев: Bezier Clock, выбираете его и активируете обоину.
Чтобы экономнее расходовать ресурсы CPU, я советую выставить FPS Limit в район 25, а Animation Duration примерно на 30.
В общем, колдовство с этими параметрами поможет добиться плавной анимации и на низких FPS.

Спасибо за внимание! Чуть не забыл:
На скриншоте Arch Linux со старой KDE Plasma 5.5.3, всё дефолтное
Шрифты: Nokia Standard, Ubuntu Condensed, Consolas; сглажены Infinality
Везде использую замечательную тему Breeze
В плане приложений KDE-стека активно использую Dolphin, Okular, Kate и Yakuake, в качестве плеера Clementine, видео смотрю vlc или mpv.
Браузер — Chrome, почтовик — Thunderbid.
Повседневная IDE — Qt Creator, но имеется и тяжёлая артиллерия на подхвате: Eclipse и Android Studio.

Скриншот с Qt Creator в процессе создания Bezier Clock.

Ещё варианты оформлений: [1], [2], [3].

>>> Просмотр (1366x768, 48 Kb)

 , , ,

EXL
()

RSS подписка на новые темы