На хабр проникла статья об автоматизации сборки модификаций в S.T.A.L.K.E.R. Радует, что люди ещё интересуются этой игрой и продолжают создавать модификации. Ну а я сделал свой шаг в программирование с этой игрой, а вскоре мне стало тесно в проприетарном мире. Но увлечение постапокалипсисом осталось.
Уже сейчас можно компилировать в WebAssembly. Мне нравится идея этого проекта, но боюсь, как бы веб не стал закрытым. Эх, прошли те времена, когда все сайты состояли из статичных html страничек. Раньше было лучше.
Стив Джобс хотел похоронить Flash и умер сам. Adobe хотел похоронить Flash и оказалось, что это вброс, а на самом деле было лишь изменено название продукта Flash Professional на Animate CC. И всё. Ещё раз, Adobe не собирается хоронить Flash Player. Разочарование десятилетия, ну серьёзно =(
Mozilla останавливает разработку Firefox OS и продажу телефонов. Не могу сказать, что я был в восторге от Firefox OS, но всё равно жаль, когда сворачиваются опенсурсные уникальные проекты.
И, да, это такой формат мини-новостей =)
Буду тут делиться интересными вещами, на которые натыкаюсь в сети.
Проект Let's Encrypt, который раздаёт бесплатные SSL сертификаты, вышел из статуса беты. Я сервис потрогал ещё в статусе беты, когда успешно зарегистрировал свой сертификат. Пока что существуют технические недочеты, но уверен, что Let's Encrypt здорово перевернёт всю индустрию продажи SSL сертификатов.
С некоторого периода использования GNU/Linux Debian я стал чувствовать, что в устройстве репозиториев что-то не так.
Тяжело так настроить получение пакетов, чтобы игры и браузеры всегда имели самые последние версии, а системные компоненты оставались наиболее стабильными, т.к. тогда будут возникать проблемы зависимостей. Добавить свой пакет в официальный репозиторий является огромным трудом, т.к. обычного прохожего туда так просто не пустят, а при использовании PPA (Personal Package Archives) пользователю сперва необходимо добавить ваш репозиторий к себе в систему, прежде чем он увидит вашу программу в своём пакетном менеджере.
Тогда для решения этой проблемы я написал заготовку для аналога AUR (Arch User Repository). Суть в том, что существовал список программ в git репозитории, в котором описывалась информация о программах и команды для компиляции программ на своём компьютере. Но и такая схема работы мне не нравилась, хотя бы потому, что пользователю будет необходимо держать весь пакет для разработки на своей машине, чтобы иметь возможность компилировать приложения.
Тогда я узнал о проекте 0install, который хоть и мало известен в рунете, но и по сей день успешно развивается.
Что такое 0install
0install, или же zero install - это децентрализованное кроссплатформенное решение для установки программного обеспечения для Linux, Unix, OS X и Windows. Репозиторием является сайт распространителя ПО, поддерживаются автообновление и цифровые подписи для источников информации о ПО. 0install не имеет собственный формат упаковки программ, а использует обычные tar или zip архивы. Мета-информация о программах хранится в xml файле.
В отличие от других попыток создать единый стандарт для пакетов Linux программ, 0install ставит целью распространение лишь прикладного ПО, оставляя традиционным пакетным менеджерам распространение системного обеспечения. Более того, он интегрируется в систему (список поддерживаемых платформ), позволяя использовать необходимые для работы библиотеки из системы, если такие присутствуют.
А чё там у каноникл?
Click пакеты, которые скоро будут внедрены в Ubuntu, близки к тому, что я хотел бы видеть. Canonical предоставляет удобную среду разработки, где эти пакеты можно генерировать, каждый из пакетов запускается в песочнице, чтобы не навредить системе и хоть отсутствует система зависимостей, но можно ссылаться на фреймворки, которые загружаются автоматически и используются несколькими программами одновременно.
Однако, не решена проблема централизации: как и в традиционных системах управления пакетами, существует официальный репозиторий, пусть и с упрощёнными требованиями к принятию пакетов, а остальные репозитории необходимо подключать вручную.
Внутри click пакеты устроены как deb пакеты, с добавлением нескольких новых файлов. Я считаю, можно было бы упростить формат. Ну и главное, на данный момент click пакеты поддерживаются только в Ubuntu и скорее всего, так и останется, т.к. часто решения Ubuntu слишком сильно интегрированы в этот дистрибутив.
Устройство zero install
Информация об программах хранится на серверах распространителей ПО в xml файлах, которые можно открыть и из браузера. Достаточно перетащить адрес такой страницы в открытое окно 0install, чтобы был добавлен источник и 0install подготовился для установки программы. Если подтвердить установку, то по указанным в xml файле ссылкам будут скачаны программа и зависимости (если такие имеются) и каждая из программ будет размещена в папке ~/.config/
В список приложений вашей системы, как и обычно, добавится пункт для открытия нового приложения, но если посмотреть, его адрес будет представлять собой нечто вида 0launch http://evil.com/corp.xml
Таким образом, если вы удалите кэш, программа просто будет заново скачана и всё равно запущена. Тем не менее, это не означает, что при отсутствии интернет-соединения нельзя открыть приложения: если кэш на месте, то возможность запуска не пропадает.
Зависимости
Для сопровождающего существует возможность указать зависимости для программы. В случае, если уже установлена библиотека, которую поддерживает и другая программа, то обе программы будут использовать эту библиотеку. Иначе, нет проблемы в том, чтобы иметь несколько версий библиотек одновременно. Также, можно установить несколько версий одной и той же программы и они не будут конфликтовать, в отличии от традиционных пакетных менеджеров, т.к. находятся в разных папках и не взаимодействуют между собой.
Безопасность
Как же быть уверенным в том, что некий вредоносный код не перезапишет бинарник программы? В 0install генерируются контрольные суммы для каждого из файлов программы. Если хотя бы один из них отличается, то запуск будет прерван и будет предложено заново скачать программу. XML файлы с источниками программ также имеют подпись ключом сопровождающего, поэтому даже в случае взлома сервера сопровождающего, злоумышленник не будет иметь возможности вернуть вам вредоносную версию программы не имея закрытого ключа сопровождающего.
Минусы
Но несмотря на все достоинства, 0install не готов к широкому использованию прямо сейчас. На странице всех известных источников программ общее количество программ не дотягивает до 2 тысяч, при этом большинство из них сильно устарели. Проекту требуется наполнение современным и качественным контентом. Также пользователи 0install вынуждены доверять сопровождающим, как и при использовании традиционных систем репозиториев, потому что на данный момент ещё не внедрён механизм запуска программ в песочницах. Но в этом направлении ведутся работы, а протестировать можно устаревший прототип песочницы (за 2010 год).
Я тоже создал свой репозиторий для 0install, который намерен наполнять и обновлять. Уже там есть несколько приложений. Первая версия 0install была выпущена ещё в 2005 году. К сожалению, проект развивается медленно, но разработка не останавливается и у разработчиков ещё множество идей по улучшению программы. Уверен, что 0install облегчит распространение прикладных программ в GNU/Linux, что всем пойдёт на пользу.
Upd 2016-07-07: У 0install есть интересные особенности, но вцелом я давно разочаровался в проекте. Развитие идёт больше 10 лет, но в каталоге программ мало, и из тех большинство только для windows, эксперимент с песочницой так и остался экспериментом, да и утилиты для подготовки пакетов неудобные, чаще вручную редактировал xml файлики. Ну а ещё я написал статью о новых самодостаточных пакетах snap и flatpak и различиях в них, рекомендую почитать.
Немного с запозданием, но выскажу своё мнение о том, что сделал яндекс. Итак, не так давно, яндекс обратился за помощью к государству, чтобы направить запрос к еврокомиссию, якобы гугл запрещает развиваться конкурентам на андроиде.
Позиция яндекса примерно такая: андроид весь проникнут гуглом, нет возможности сменить поисковик, гугл запрещает сторонним производителям устанавливать надстройки от яндекса под страхом запрета тем производителям иметь дела с гуглом, а пользователи идиоты и ни кто не устанавливает сторонние приложения, все пользуются только встроенными. По этим причинам яндекс просто бессилен перед этой могущественной монополией и единственным возможным вариантом видит только обращение к государству за помощью.
Моя позиция: что за чертов бред??? Если производителям запрещают предустанавливать яндекс то какого хрена после покупки нового телефона меня не спасли от необходимости вычищать телефон от этих бесполезных яндексовских программ? И это не только на моём Lenovo, но и у наверное 90% производителей, которые продаются в России, есть какая то программа от яндекса. А вычищал я их не потому, что я ненавистник яндекса (нет, я далеко не ненавистник), а потому что они просто бесполезные для меня. Одна часть программ мне просто не нужна, другая имеет гораздо лучшую альтернативу от гугла или другого производителя.
Делайте хорошие приложения, тогда и народ потянется, а пока что мне ваши приложения не нужны. Яндекс утверждает, что гугл вынуждает их создавать свой андроид, чтобы там им не мешал гугл. Ребят, андроид - это опенсурс проект. Я конечно понимаю, что с вашими поголовно проприетарными программами это не понять, но википедию прочитайте, что ли. Чтото не нравится в исходниках андроида - отправьте пулл-реквест. Если даже там вас ни кто не слушает и не принимает патчи (ну что поделать, все ополчились против яндекса) - делайте форк, создавайте открытую платформу для того, чтобы другие поисковики тоже там были и всё там было опенсурс, и свои приложения тоже делайте опенсурсными. Тогда вы завоюете уважение в моих глазах, а сейчас вы оставили у меня впечатление подлых неудачников, решивших воспользоваться нахлынувшей на Россию заподнофобией и с помощью государства подвинув конкурента.
И, да, по поводу выбора поисковика в андроиде с гугловскими сервисами и гугл хроме: сначала в Яндекс.Браузере сделайте выбор поисковика, а потом издите.
Бамблби — это не только трансформер, относящийся к лагерю автоботов, но и ценный мех приложение для поддержки технологии NVIDIA Optimus на ноутбуках с операционными системами GNU/Linux. Bumblebee позволяет дать команду видеокарте NVIDIA заняться процессом обработки изображения, которое потом будет выведено через карту Intel. Суть в том, что с помощью этой штуки можно по-умолчанию использовать только карту Intel, а для игр подкючать видеокарту Nvidia, тем самым заметно экономя энергопотребление на обычных задачах. Заранее предупреждаю, что я использую Debian, поэтому команды я буду писать именно для этого дистрибутива, хотя они будут работать на Debian-like системах, таких как Ubuntu, Mint и прочее... Для начала удаляем все прежние попытки установки (думаю, это будет полезно читателю ;) ):
sudo apt purge nvidia* bumblebee
Теперь установка:
sudo apt install bumblebee-nvidia
Все необходимые пакеты будут установлены из зависимостей этого пакета. Вроде бы всё, но мне подсказали, что надо ещё внести изменение в один файлик. Почему то мейнтейнеры это давно не исправляют, причем не только в дебиане. Было бы интересно узнать, почему так. В файле /etc/bumblebee/bumblebee.conf нужно в
[driver-nvidia] # Module name to load, defaults to Driver if empty or unset KernelDriver=nvidia
заменить KernelDriver=nvidia
на KernelDriver=nvidia-current
После этого перезапускаем машину. Как видите, установка совершенно не сложная, но я в сети находил множество неправильных способов, поэтому решил оставить эту заметку. Теперь чтобы запутить какое-то приложение через nvidia виделокарту нужно перед названием программы дописать optirun
, например не freeminer
, а optirun freeminer
Посмотреть статус nvidia видеокарты можно с помощью optirun --status
Хочу поделиться ссылочкой на Aseprite - утилиту для рисования пиксель-арта и анимаций. Надеюсь, однажды эта программа и мне пригодится.