cusdeb

cusdeb

На Пикабу
1901 рейтинг 85 подписчиков 6 подписок 22 поста 11 в горячем
Награды:
5 лет на Пикабу

Про создание обложек для технической литературы с открытой лицензией

Есть масса независимых друг от друга проектов по совместной работе над технической литературой по аналогии со свободным и открытым ПО. Как и в случае с ПО, эти книги получаются отличного качества и публикуются под открытыми лицензиями, которые разрешают свободное распространение, создание производных работ, а иногда даже и продажу (наверняка у многих на слуху лицензии семейства Creative Commons). Я недавно запустил проект по созданию библиотеки таких книг на русском и английском языках, но об этом немного позже.

В рамках этого проекта я с командой разрабатываю дизайн обложек для технической литературы с открытыми лицензиями. Дело в том, что у крутейших книг типа Linux From Scratch (LFS) нет достойных обложек, которые могли бы по качеству сравниться с коммерческими книгами, и я хочу это исправить. В этом посте я покажу, что удалось сделать для книг Linux From Scratch и GNU C Language Intro and Reference Manual от Ричарда Столлмана (Richard Stallman), а также расскажу об идеях, которые за ними стоят. Погнали!

Linux From Scratch

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

Первый выпуск книги состоялся теперь уже в таком далеком 1999 году, но материал руководства всегда актуален, т.к. обновляется два раза в год. Последняя дата обновления – 1-го сентября 2024.

Про создание обложек для технической литературы с открытой лицензией Дизайнер, Разработка, Чат-бот, Книги, Linux, Техническая литература, Терминатор, Линус Торвальдс, Программирование, Длиннопост

Примерно так бы книга выглядела физически:

Про создание обложек для технической литературы с открытой лицензией Дизайнер, Разработка, Чат-бот, Книги, Linux, Техническая литература, Терминатор, Линус Торвальдс, Программирование, Длиннопост

Обложка отсылает к заводу, на котором собираются терминаторы (Terminator Factory), и эта отсылка здесь не случайна. Дело в том, что именно фильм Terminator Salvation (2009) сильно повлиял на решение Линуса Торвальдса (Linus Torvalds) перевести нумерацию ядра Linux с 3.x на 4.x, чтобы поскорее увидеть версию 4.1.15, показанную в этом фильме. 22-го февраля 2015 в списке рассылки ядра Линус написал:

...the strongest argument for some people advocating 4.0 seems to have been a wish to see 4.1.15 - because "that was the version of Linux skynet used for the T-800 terminator".

...самым убедительным аргументом для некоторых сторонников версии 4.0, похоже, было желание увидеть версию 4.1.15 - потому что "именно эту версию Linux использовала Skynet для терминатора модели T-800"

Про создание обложек для технической литературы с открытой лицензией Дизайнер, Разработка, Чат-бот, Книги, Linux, Техническая литература, Терминатор, Линус Торвальдс, Программирование, Длиннопост

GNU C Language Intro and Reference Manual

В сентябре 2022 Ричард Столлман (Richard Stallman) анонсировал свою книгу по языку C (он ее полирует по сей день, внося мелкие правки). В ней делается упор на диалект GNU C, тот самый, который используется в коде ядра Linux. Также книга предполагает использование GNU Compiler Collection (GCC).

Про создание обложек для технической литературы с открытой лицензией Дизайнер, Разработка, Чат-бот, Книги, Linux, Техническая литература, Терминатор, Линус Торвальдс, Программирование, Длиннопост

Примерно так бы книга выглядела физически:

Про создание обложек для технической литературы с открытой лицензией Дизайнер, Разработка, Чат-бот, Книги, Linux, Техническая литература, Терминатор, Линус Торвальдс, Программирование, Длиннопост

Здесь все немного проще, чем с предыдущей работой. В обложке для книги Столлмана была идея сделать отсылку на классический труд Брайана Кернигана (Brian Kernighan) и Денниса Ритчи (Dennis Ritchie). Вот для сравнения обложка их книги:

Про создание обложек для технической литературы с открытой лицензией Дизайнер, Разработка, Чат-бот, Книги, Linux, Техническая литература, Терминатор, Линус Торвальдс, Программирование, Длиннопост

Обратите внимание, что в нашей работе использовался открытый шрифт Playfair Display, который максимально похож на тот, что использовался в работе Кернигана и Ритчи. Детали делают отсылку заметной даже из космоса.

Две обложки, о которых я сегодня рассказал, распространяются на условиях лицензии Creative Commons Attribution 4.0 International. Она требует только атрибуцию (attribution), т.е. указание автора произведения. Каждая обложка – результат совместной работы команды, однако всю визуальную часть делает Наталья Писарева (Natalia Pisareva), поэтому упоминание ее имени будет вполне уместным и заслуженным, если захотите использовать эти шедевры или создать производные работы на их основе.

Что касается проекта по каталогизации технической литературы, о котором я говорил в самом начале, то он реализован в виде Telegram-бота. Читать книги можно прямо там. Также в боте есть возможность поиска, скачивания и добавления книг в избранное, а также другие полезные ништяки. Подробнее о боте можно прочитать тут.

Показать полностью 6

Заметка о том, как принадлежность кода лагерю "правильных" лицензий важнее функциональности

Я хочу поделиться с вами одним наблюдением, которое я сделал при изучении отчета о развитии FreeBSD за 4-й квартал 2021-го и за 4-й квартал 2020-го, но сперва небольшая вводная часть.

При разработке свободных и открытых операционных систем нередко функциональность приносится в жертву лицензионной чистоте. К примеру, Проект Debian разрабатывает по-настоящему свободный дистрибутив GNU/Linux (что бы Фонд СПО не говорил). Нередко случается так, что программное обеспечение, исходный код которого распространяется под той или иной свободной лицензией, содержит несвободные компоненты. В таких случаях перед попаданием в Debian все несвободные компоненты выкидываются из этого ПО. Ядро Linux, которое аж с 1996-го «привязано» к бинарным блобам, здесь не исключение, но ценой его освобождения является сокращение количества поддерживаемого оборудования.

Во FreeBSD есть похожая тенденция, когда компоненты операционной системы проходят отбор на соответствие определенным условиям распространения, и функциональность в этом отборе, также как и в Debian, имеет не самый высокий приоритет. Для того чтобы стать частью FreeBSD, компоненты должны распространяться на условиях любой свободной лицензии, за исключением GPL. Предпочтение отдается BSD и другим пермиссивным (разрешительным) лицензиям. Но так было не всегда. Было время, когда компоненты, распространяющиеся на условиях GPL, мирно сосуществовали со всеми остальными в базовой системе FreeBSD, но с приходом GPLv3 в 2007-м все изменилось – разработчики FreeBSD стали одержимы поиском и созданием замен для различных частей операционной системы, распространявшихся на условиях GPL. Так, на протяжении следующих десяти лет они работали в этом направлении. (О том, откуда нелюбовь к GPL берет свое начало, я рассказал в отдельной статье, а также в ролике, который вы найдете в конце этой заметки.) В отчете за 4-й квартал 2020-го разработчики похвастались, что у них это, наконец, получилось. Но позднее, из отчета за 4-й квартал 2021-го, стало ясно, что, выкинув из базовой системы отладчик GNU GDB, разработчики теперь по нему скучают, т.к. заменивший его LLDB не достаточно функционален для полноценной отладки ядра операционной системы. Действительно, одно дело заменить GNU Grep на альтернативу, распространяющуюся на условиях BSD, а другое дело найти полнофункциональные аналоги для фундамента разработки самой операционной системы – GCC и GDB. Но разработчики не сдаются – теперь их значительные усилия направлены на доведения LLDB до паритета в функциональности с GDB.

Многолетняя борьба разработчиков FreeBSD подходит к успешному завершению (об этом я надеюсь узнать уже из отчета за 1-й квартал 2022-го). Я, в свою очередь, продолжаю изучать квартальные отчеты некоммерческих организаций, занимающихся разработкой свободного и открытого ПО, вдохновляться упорством, с которым люди идут к поставленным целям, и делиться своими наблюдениями.

Показать полностью 1

ExpressVPN открыла код протокола Lightway, но в чем его фишка?

10-го августа стало известно о том, что исходный код VPN-протокола Lightway опубликован под лицензией GPL версии 2. За разработкой протокола стоит компания ExpressVPN, которая, как несложно догадаться, предлагает VPN-услуги. Независимый аудит реализации сделала компания Cure53, занимающаяся кибербезопасностью, и дала высокую оценку качеству кодовой базы. Тем не менее, в результате аудита были выявлены несколько уязвимостей, которые уже исправлены. Таким образом, к безопасности Lightway претензий нет. А что касается производительности, то компания-разработчик сравнивает свое детище с известной реализацией VPN под названием OpenVPN, но очень не охотно вспоминает в этом контексте о WireGuard. И здесь пользователи негодуют, а компания не дает четких ответов. Поэтому предлагаю разобраться во всем по порядку. Читайте о результатах моего расследования ниже или смотрите в ролике (отмотайте на 02:13, чтобы сразу начать с этой темы).

В отличии от Lightway, появление WireGuard было вполне обосновано. Дело в том, что OpenVPN на протяжении многих лет оставался полярным свободным решением для построения виртуальных частных сетей, но скорость этого решения оставляла желать лучшего, а сложность реализации из-за раздутой кодовой базы осложняла аудит. Так, назрела необходимость создать новое свободное решение, которое было бы компактным и быстрым. Этим решением стал WireGuard, разработанный исследователем безопасности Джейсоном Доненфилдом (Jason A. Donenfeld), который, в свою очередь, представляет компанию Edge Security.

ExpressVPN открыла код протокола Lightway, но в чем его фишка? Wireguard, VPN, Open Source, Gpl, Видео, Длиннопост

WireGuard задуман как решение, работающее в пространстве ядра. Тем не менее, там, где ядерной поддержки пока нет может использоваться кросс-платформенная реализация в пространстве пользователя, но производительность в таком случае будет очевидно ниже, чем у нативного решения, работающего на уровне ядра. (Напомню, что в таких случаях максимальной производительности можно добиться только за счет исключения операций переключения контекста и копирования содержимого пакетов из ядра в пространство пользователя.) Но разработчик не ищут легких путей и предлагают ядерную поддержку своего протокола во все популярные операционные системы. К примеру, 2-го августа Доненфилд представил проект WireGuardNT, который является портом WireGuard на ядро Windows.

Что касается Lightway, то это решение появилось на свет потому, что компанию ExpressVPN, которая, напомню, стоит за разработкой этого протокола, не устроил WireGuard. Клиенты компании на протяжении долгого времени просили поддержку WireGuard, но компания отвечала на это лишь тем, что этот протокол был разработан без оглядки на конфиденциальность и безопасность. К примеру, вот как вице-президент компании Гарольд Ли ответил на вопрос «Почему не WireGuard?»:

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

В качестве подтверждения своим словам ExpressVPN также указывала на секцию «Work in Progress» на главной странице WireGuard, где говорилось, что работа еще не окончена и код еще не проходил аудит безопасности. Других доказательств своих слов компания не представляла. Стоит заметить, что 9-го апреля 2020-го этот раздел с сайта пропал, но разработка нового протокола судя по всему уже шла полным ходом.

Lightway получился полной противоположностью WireGuard: закрытый и работающий только в пространстве пользователя. Предложив в качестве альтернативы закрытое решение, ExpressVPN как будто бы посмеялась над самой собой: компания упрекала WireGuard в том, что тот был разработан без оглядки на конфиденциальность и безопасность, но при этом ExpressVPN выкатила закрытое решение, к которому невольно возникали те же вопросы по поводу конфиденциальности и безопасности. Таким образом, компания приняла решение открыть исходный код своей реализации и опубликовать его под свободной лицензией.

Что касается работы в пространстве пользователя, то здесь Гарольд сказал, что когда они разрабатывали Lightway, то приняли осознанное решение не помещать его в пространство ядра. Вот пара причин, которые назвал Гарольд.

Во-первых, они хотели, чтобы Lightway разделял как можно больше кода между платформами. Очевидно, что реализация протокола в пространстве ядра более трудозатратная, т.к. у каждого ядра свои особенности, тогда как в пространстве пользователя плюс-минус все унифицировано и можно без труда создать реализацию, переносимую на уровне исходного кода.

Во-вторых, в реализации протокола используется встраиваемая SSL/TLS-библиотека под названием wolfSSL, которая, очевидно, работает в пространстве пользователя. Эту библиотеку в компании хотели видеть в качестве основы своего протокола.

Заключение

Реализация протокола в пространстве ядра будет быстрее, чем реализация протокола в пространстве пользователя, поэтому именно WireGuard претендует на звание самого быстрого свободного решения в области VPN. Что касается безопасности, то первой ядерной реализацией этого протокола стал модуль ядра Linux, который успешно прошел рецензирования и был принят в основное дерево исходных текстов ядра. Он разрабатывался специалистом в области безопасности и его код изучался и продолжает изучаться другими специалистами в области безопасности. Подход WireGuard более трудозатратен по сравнению с Lightway, но именно эти дополнительные затраты и позволяют добиться лучшей производительности. ExpressVPN, в свою очередь, не скрывает, что хочет сильно удешевить свое решение, но в то же время даже не делает намека на то, что это негативно скажется на производительности, что, на мой взгляд, немного не честно. Тем не менее, от еще одной свободной альтернативы в области VPN уж точно никому хуже не станет. Но надеюсь, что в недалеком будущем ExpressVPN подключится к разработки и аудиту WireGuard, и добавит поддержку этого протокола для своих клиентов.

Что предпочитаете вы, OpenVPN или WireGuard? Есть планы попробовать Lightway или вы уже его счастливый пользователь?

Показать полностью 1

Репозиторий Microsoft добавлен в Raspberry Pi OS

Репозиторий Microsoft был добавлен в официальный дистрибутив GNU/Linux для Raspberry Pi под названием Raspberry Pi OS (в прошлом известный как Raspbian) в одном из последних обновлений дистрибутива. Если быть точнее, то нововведение скрывается в пакете raspberrypi-sys-mods. Теперь, хотите вы того или нет, но при следующем обновлении вашего одноплатника у него появится еще один источник пакетов для обновления системы. Это за собой влечет как минимум две проблемы. Читайте о них ниже или смотрите в ролике.

Проблема 1


Репозиторий от Microsoft – это полноправный гражданин в вашей системе. Эта становится возможным благодаря тому, что в систему также устанавливается GPG-ключ от Microsoft, которым подписываются пакеты из этого репозитория. В итоге все пакеты из репозитория Microsoft имеют тот же приоритет, что и пакеты из стандартного репозитория, через который распространяются все программное обеспечение дистрибутива, включая обновления. Обратите внимание.

Репозиторий Microsoft добавлен в Raspberry Pi OS Raspberry pi, Linux, Raspbian, Microsoft, Длиннопост, Видео

На скриншоте показана информация о двух пакетах. Первый, coreutils, является частью базовой системы, без которого немыслима любая Debian-подобная система, а второй, code, который содержит интегрированную среду разработки Visual Studio Code от Microsoft. У обоих этих пакетов приоритет 500. И это говорит нам о том, что теперь Raspberry Pi OS сильно подвержен атаке на цепь поставок программного обеспечения, от которой, по иронии судьбы, совершенно недавно сильно пострадала сама Microsoft. Компания ровно таким же образом доверяла на 100% одному поставщику программного обеспечения, который добросовестно доставлял обновления через свои каналы Microsoft'у. Затем инфраструктура поставщика была скомпрометирована и в обновления, которые полагались заказчикам, был интегрирован бекдор. Так как Microsoft доверяла этому поставщику на 100%, она без лишних вопросов скачала обновление с бекдором и открыла доступ к своей инфраструктуре злоумышленникам, после чего пострадали некоторые клиенты Microsoft, для которых уже это компания является поставщиком чего бы то там ни было. Это и называется атакой на цепь поставок программного обеспечения. А теперь представьте, что инфраструктура Microsoft успешно взломана. Злоумышленники могут опубликовать через репозиторий для Raspberry Pi OS пакет с обновлением для любого из компонентов дистрибутива, в который будет интегрирован бекдор, а ваша система, в свою очередь, посчитает этот пакет супер важным обновлением и без лишних вопросов загрузит и установит его.

Проблема 2


Теперь любая попытка обновить Raspberry Pi OS будет приводить к тому, что пакетный менеджер системы будет обращаться к репозиторию Microsoft. Это даст компании возможность накапливать на своих серверах информацию об IP-адресах пользователей. А эта информация, в свою очередь, сможет пригодиться для построения профиля пользователя для таргетированной рекламы. В идеале таргетированная реклама должна использовать данные о пользователях, которыми они добровольно делятся. А здесь пользователей никто не спрашивал.

Как удалить репозиторий от Microsoft


Рекомендую удалить репозиторий от Microsoft из своей системы, только если конечно вы его ранее не устанавливали сами. Удалить его просто. Сначала удалите репозиторий из списка источников, а затем удалите ключ Microsoft из системы. Два этих действия показаны на скриншоте ниже.

Репозиторий Microsoft добавлен в Raspberry Pi OS Raspberry pi, Linux, Raspbian, Microsoft, Длиннопост, Видео

Заключение


Не знаю, кому именно принадлежит идея добавить репозиторий Microsoft в Raspberry Pi OS – самой Microsoft или Raspberry Pi Foundation, которая стоит за разработкой дистрибутива – но идея, на мой взгляд, дурацкая. Дурацкая хотя бы потому, что нововведение не обсуждалось заранее. Задачи Raspberry Pi Foundation, как некоммерческой организации, заключаются в том, чтобы преследовать цели своего сообщества, а не отдельной компании. Вышло как раз наоборот.

Поделитесь в комментариях, используете ли альтернативные дитсрибутивы на своих одноплатниках? И если да, то какие?

Показать полностью 2

Зацените стол с вырезом под пузо

На разработку этого стола для работы стоя я потратил 42 часа времени и 3500 рублей денег. Инструментов у меня не было. Никогда раньше не мастерил столы.

Зацените стол с вырезом под пузо Стол, Ростов-на-Дону, Эргономика, Дождь, История, Своими руками, Длиннопост, Рукоделие с процессом

Можно просидеть 16 часов за компьютером, но невозможно столько простоять


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


«Легко провести 16 часов сидя в уютном кресле, а ты попробуй простоять столько», — думал я тогда по наивности, — «Максимум через два часа организм заставит тебя оторваться от дела и отдохнуть». Так поселилась в мою голову мысль о высоком столе.


Четыре ножки и столешница с вырезом для пивного животика


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


Чтобы определиться с размером столешницы, я замерил рабочую поверхность другого стола, за которым мне было удобно нажимать на кнопки клавиатуры, и получил ширину 80 сантиметров. Я не планировал крепить монитор к столешнице, поэтому остановился на 60 сантиметрах глубины плюс 20 сантиметров под вырез для живота. На самом деле у меня не такой большой живот, но решил делать с запасом.


Высота ножек зависела от моего роста и толщины столешницы. Я замерил рулеткой расстояние от пола до локтя, нарисовал эскиз и вместе с эскизом отправился к С. за советом.

Зацените стол с вырезом под пузо Стол, Ростов-на-Дону, Эргономика, Дождь, История, Своими руками, Длиннопост, Рукоделие с процессом

Мебельный щит и четыре хромированные опоры


С. выслушал мои соображения, посмотрел на эскиз и рассказал возможные варианты реализации. В ходе разговора я принял решение, что делаю по принципу «проще — лучше», поэтому мы сразу отмели вариант с изменяющейся высотой стола. Стол для меня, а мой рост — величина постоянная.


Я хотел, чтобы опоры для стола были лёгкие, поэтому поинтересовался, возможно ли сделать из алюминия. Мне нравится матовость алюминия, это светлый, но не броский металл. С. объяснил, что опоры из алюминия целое дело: нужно купить алюминиевую трубу, привезти, нарезать, сварить аргоном, отвезти. К тому-же после сварки получилась бы цельная конструкция, которая не в каждый салон автомобиля поместится. Намного практичнее использовать готовые хромированные опоры с креплениями.


Крепления прикручиваются к столешнице саморезами, а опоры легко присоединяются и отсоединяются шестигранником, что удобно при транспортировке и хранении.

Зацените стол с вырезом под пузо Стол, Ростов-на-Дону, Эргономика, Дождь, История, Своими руками, Длиннопост, Рукоделие с процессом

Опоры для стола


Самые длинные хромированные опоры с креплениями, которые мне удалось найти, назывались «опора барная D600X1100», где 1100 это длинна в миллиметрах, но мне нужно было хотя бы 1150. Решил взять 1100, а недостающие 5 сантиметров нарастить за счёт толщины столешницы.

Зацените стол с вырезом под пузо Стол, Ростов-на-Дону, Эргономика, Дождь, История, Своими руками, Длиннопост, Рукоделие с процессом

Четыре опоры обошлись мне в 1400 рублей плюс два часа времени на поездку в другой конец города и обратно.


Искал столешницу из дуба, а нашёл из сосны


Мне нравилась текстура дуба, его пористость и цвет, поэтому хотел сделать столешницу из этой древесины. Начал искать мебельный щит из дуба, но это оказалось не так просто. Я придерживался принципов бережливого производства, искал щит размером 800x800x50. Поиски в интернете заняли целый вечер, но самое близкое, что мне удалось найти было 2000x800x40. Я звонил по телефонам, чтобы узнать, а не отпилят ли мне щит нужного размера, но трубку никто не брал, было уже поздно. Тогда я понял, что торговцы лесом это не ИТ-компании с поддержкой 24/7.


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


Я отправил три письма по электронной почте, написал несколько сообщений в чаты поддержки, знаете, такие надоедливые штуки, которые всплывают в неподходящий момент с сообщением «Я продавец-консультант, давайте помогу выбрать», но когда пишешь туда, то в ответ получаешь «Ой, сейчас никого нету поблизости, оставьте телефон, мы вам позвоним завтра». Завтра ни один не ответил и не перезвонил — это всё, что нужно знать о малом бизнесе в нашей стране.


На следующий день я всё-таки нашёл небольшую компанию, у которой на складе завалялся обрезок нужного размера, но не из дуба, а из сосны. Я решил, что раз опоры будут не из алюминия, как я изначально хотел, то и столешница может быть из сосны. Через час я приехал в промзону и забрал этот обрезок за 900 рублей — не хотелось больше тратить время на поиски.


Друзья помогали советами и инструментами


Я решил, что для разовой работы нецелесообразно покупать инструменты. У С. был электролобзик и шуруповёрт, но в тот день, когда я привёз домой щит, С. уехал из города. Я отложил затею на неделю, но затем случайно встретил А., рассказал ему про идею столика, и А. поделился электролобзиком. Правда, пришлось потратить ещё два часа, чтобы раздобыть пилочку для лобзика и наждачную бумагу.


В тот же день расчертил карандашом щит, затем при помощи лобзика проделал в щите вырез для «пивного животика» и зашлифовал. Получилось вот так:

Зацените стол с вырезом под пузо Стол, Ростов-на-Дону, Эргономика, Дождь, История, Своими руками, Длиннопост, Рукоделие с процессом

После этого я несколько часов читал в интернете, чем покрыть столешницу, чтобы с одной стороны сохранить древесину, а с другой стороны не отравлять свою жизнь токсичными веществами. Я снова обратился к С. за советом, и он посоветовал покрыть столешницу морилкой на водной основе в два слоя, а после двумя тонкими слоями лака на водной основе.


Я отправился на ближайший строительный рынок за морилкой и лаком. Морилки и лаки продаются в ёмкостях от 0.5 литра, а мне нужно было в три раза меньше. На этом месте мне пришлось отойти от принципов безотходного производства и купить морилку и лак с избытком.


Покрыл столешницу морилкой и лаком


Утром следующего дня я вынес столешницу на улицу, достал морилку и понял, что ошибся с цветом. Я помню, как просил у продавца бесцветную, но первый мазок кисточкой окрасил мебельный щит из сосны под орех. Ну, орех так орех... Я покрыл щит одним слоем морилки, подождал два часа, затем покрыл ещё одним слоем. По инструкции, следовало подождать 24 часа до полного высыхания. Вечером появилась вероятность дождя, и я занёс столешницу в дом и оставил около открытого окна на ночь. Запах морилки чувствовался только если стоять рядом со столешницей, но за ночь комната наполнилась запахом, пришлось долго проветривать.


Несмотря на пасмурную погоду и надвигающуюся грозу, я вынес щит на улицу, вскрыл первым тонким слоем лака и, по неопытности, оставил под деревом. Было ветрено, пыльно и за два часа к лаку прилипли нежелательные соринки. Я следил за приближением грозы через карту осадков и вовремя перенёс столешницу под навес. Вторым слоем вскрывал уже во время дождя. Ветер делал своё дело и капли воды попадали на столешницу, но в конце дня столешница выглядела хорошо, и я остался доволен результатом.


Добавил 1 сантиметр к высоте стола


Мне оставалось только прикрепить опоры к столешнице саморезами, но я откладывал это: то не было настроения, то одолевали другие заботы. Когда наконец решил закончить со столом, то, примерив опоры к столешнице, понял, что нужно нарастить высоту на 1-2 сантиметра. Несмотря на дождь, я отправился на строительный рынок, но там не оказалось доски нужной ширины. По пути домой, проходя мимо свалки, я приметил обрезок ДСП. Я решил взять этот обрезок, распилить на 8 частей и использовать как прокладку между креплениями и столешницей. Опять понадобился лобзик, поэтому пришлось отложить работу ещё на неделю.


Одолжил электролобзик у С., разметил доску на глазок и распилил на 8 частей. Затем разложил эти 8 частей на столешнице, положил крепления и отметил места для дырок. При помощи дрели и тонкого сверла я проделал отверстия под шурупы в ДСП. Кстати, дрель и шуруповёрт я в самом начале этой затеи одолжил у М.

Зацените стол с вырезом под пузо Стол, Ростов-на-Дону, Эргономика, Дождь, История, Своими руками, Длиннопост, Рукоделие с процессом

Прикрепил опоры к столешнице


Первая попытка прикрепить опоры к столешнице провалилась. У шуруповёрта была коротка бита, поэтому шуреповёрт упирался в крепление и шурупы торчали на два сантиметра.

Зацените стол с вырезом под пузо Стол, Ростов-на-Дону, Эргономика, Дождь, История, Своими руками, Длиннопост, Рукоделие с процессом

Пришлось сходить в строительный магазин за длинной битой, и к счастью, я успел вернуться домой до начала грозы. Дальше за пять минут я затянул все шурупы и приступил к написанию этого поста за новым столом.

Зацените стол с вырезом под пузо Стол, Ростов-на-Дону, Эргономика, Дождь, История, Своими руками, Длиннопост, Рукоделие с процессом

Вместо заключения


Я безумно рад, что сделал стол своими руками. Я получил огромное удовольствие от всех этапов процесса начиная от проектирования до написания этого поста. Надеюсь получить удовольствие от общения с вами в комментариях. Мейкерство — это здорово. Конечно, кто-то скажет, что намного проще и дешевле купить готовый стол. Я с вами соглашусь, но вряд ли у такого стола будет история. Я люблю читать истории, люблю создавать истории, и то, что вы сейчас читаете, это и есть история. Надеюсь, вам понравилось.


🤗

Показать полностью 8

Алиса, купи одну акцию Яндекс

— Алиса, купи десять акций Яндекс.
— Заявка на покупку десяти акций компании Яндекс по рыночной цене, для подтверждения скажите «да», для отмены скажите «нет».
— Да.
— Заявка на покупку десяти акций Яндекс исполнена. Сумма сделки 34 588 рублей плюс комиссия брокера 103 рубля 76 копеек.

Всем привет!


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


Сразу предупреждаю, это длиннопост, поэтому если вы просто хотите увидеть, как это работает, то посмотрите вот это пятиминутное видео:

А для тех, кто готов много читать, я подготовил длинный рассказ о мотивах, которые побудили  заняться голосовыми помощниками.


Люди с ограниченными возможностями


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


Голосовые помощники


В начале «десятых» голосовые помощники вроде Siri были на слуху, но я не воспринимал их как что-то, способное значительно снизить нагрузку на глаза. Когда держал в руках iPhone с Siri, то это было не то; понимаете, всё равно я смотрел в экран смартфона. Когда держишь в руках смартфон, то велик соблазн залипнуть в экран на полчаса.


Умные колонки


Примерно в 2014-2015 годах стали появляться «умные колонки» с голосовым ассистентом. Насколько я помню, пальма первенства принадлежит колонке Amazon Echo с голосовым помощником Alexa. На этой волне в компании, где я работал, началась разработка голосового приложения для изучения иностранных языков под Amazon Echo.


Первые ожидания


Когда я впервые увидел, как работает Amazon Echo, то понял, что это именно то, что нужно, для снижения зрительной нагрузки на глаза. У меня возникло ощущение, что через несколько лет всё это разовьётся настолько, что большинство операций, которые я делал при помощи  смартфона или компьютера, я буду делать через колонку. Я ждал. Ждал, пока разработчики голосовых интерфейсов сделают мою жизнь комфортнее.


Радовался, когда компания Яндекс запустила в продажу Станцию с Алисой. Ожидал, что поддержка моего родного русского языка в Алисе будет на порядок лучше, чем в других голосовых помощниках, и мои ожидания оправдались.


Первые проблемы со зрением


Когда много работаешь за компьютером, то с годами зрение не становится острее, и от этого всерьёз начинаешь прислушиваться к рекомендациям офтальмологов. Одна из таких рекомендаций — сознательный отказ от использования смартфона. Я это сделал,  у меня сломался смартфон, и я заменил его на простую кнопочную звонилку.


Вторая рекомендация — ограничить время пребывания за компьютером. Я убрал все устройства с экраном из дома: телевизор, компьютер, ноутбук, планшет. Единственным медиаустройством в доме стала Яндекс.Станция, благодаря которой я не чувствовал себя человеком из позапрошлого столетия. Когда нужно было поработать за компьютером, я шёл в другой дом и такой стиль жизни через пару месяцев принёс заметный результат, я перестал жаловаться на ухудшение зрения.


Жизнь во время самоизоляции


После введения ограничений на передвижение, пришлось вернуть домой ноутбук. Но уже через несколько дней я заметил, что залипаю на графики акций в экране ноутбука. Начиналось всё безобидно, я заходил на сайт Тинькофф, чтобы посмотреть на сколько упали или подросли мои ценные бумаги (а тогда всё штормило). А однажды, ближе к вечеру я понял, что провёл на сайте целый день, читая новости и комментарии в Пульсе. Возможно, разработчики интерфейсов Тинькофф Инвестиции порадуются, прочитав эти строки, но я почувствовал себя не очень хорошо в конце дня. Пришло осознание, что Тинькофф Инвестиции – новая штука, в которую я незаметно «проваливаюсь» и этому способствует интерфейс сервиса.


Лудомания или хороший интерфейс


Размышляя на тему, а не болен ли я лудоманией, я пришёл к выводу, что в 999 случаях из 1000 я заходил в Тинькофф Инвестиции не с целью что-то купить или продать, а с целью полюбоваться зелёненькими циферками, означающими, что я выбрал правильные ценные бумаги, и чтобы в конце концов мой организм выработал немного «гормонов счастья».


Хороший интерфейс — это такой интерфейс, который решает задачу бизнеса. Предположу, что одна из задач бизнеса Тинькофф в том, чтобы я проводил больше времени внутри экосистемы Тинькофф. Мне нравится интерфейс Тинькофф Инвестиции за то, что незаметно для себя, я провожу в сервисе больше времени, чем планировал. Команда постаралась на славу.


Дизайн интерфейса


"А могу ли я сделать такой интерфейс, который будет удобен для меня, но не будет затягивать?", – вот о чём я подумал. Я поверхностно разобрался в дизайне интерфейсов и пришёл к выводу, что могу. Мне нужны были три операции:

1. Узнать баланс.

2. Купить ценную бумагу.

3. Продать ценную бумагу.

Тинькофф Инвестиции OpenAPI позволял мне реализовать эти операции.


Ещё я хотел, чтобы не надо было смотреть в экран. Платформа Яндекс.Диалоги позволяла  создавать голосовые интерфейсы для Яндекс Станции. Идея оформилась, осталось только спроектировать и реализовать.


Подготовка к разработке голосового помощника


Разработка голосовых интерфейсов это итеративный процесс. Чем больше разрабатываешь, анализируешь логи, пробуешь популярные голосовые интерфейсы, тем лучше получается. Прежде чем начать, я изучил возможности платформы Яндекс.Диалоги, прям прочитал всю-всю документацию, затем посмотрел сериал Школа Алисы, влился в сообщество разработчиков Яндекс.Диалоги в Telegram, перечитал несколько тысяч сообщений, посмотрел запись воркшопа по разработке навыков, посмотрел полезные инструменты и исходный код открытых навыков.


О выборе названия для голосового помощника


Я выбрал название Оливер в честь Оливера Хьюза, председателя правления Тинькофф Банка. Олег Тиньков писал в своей книге, что Оливер был единственным из всей команды банка, кто верил в «отскок» акций TCS Group на Лондонской бирже после драматического падения в 2014. Когда речь идёт об инвестициях, то надо мыслить как Оливер.


В шорт листе были и другие варианты, например Мой Брокер — отличная активационная фраза: «Алиса, спроси у моего брокера, как дела на фондовых рынках». Но товарный знак Мой Брокер принадлежит компании БКС.


Первая итерация: команда «Мои акции»


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


Хотелось получать информацию об акциях с моих брокерских счетов в Тинькофф Инвестиции и БКС. Хотелось не просто одну цифру (цена последней сделки на бирже), а дневной диапазон — минимальную и максимальную цены, по которым совершались сделки в торговую сессию по  тикерам из моих брокерских счетов.


С Тинькофф всё получилось хорошо, разработчики API оперативно отвечали на мои вопросы и  принимали пожелания даже по субботам. Я очень быстро научил Алису выдавать информацию о состоянии своего брокерского счёта в Тинькофф.

А вот с БКС ничего не вышло. У них тоже есть репозиторий на GitHub. Там в вики я увидел контакты разработчиков БКС и написал им, это было 22 мая. Сегодня 28 июня, но мне никто не ответил. Не понимаю, зачем они оставили там свои адреса электронной почты.


Вторая итерация: команда «Мои заявки»


Изначально я собрался делать:

1. Команду для создания лимитной заявки на покупку по заданной цене.

2. Команду для создания лимитной заявки на продажу по заданной цене.

3. Команду, которая сообщала бы об активных не исполненных заявках.

Третья команда из списка выглядела самой простой, поэтому с неё и начал; назвал «Мои заявки»:

А вот с созданием лимитной заявки получилась заминка – нужно было придумать, как это красиво сказать. Начал вот с такого варианта:

— Создай лимитную заявку на покупку 10 акций Яндекс по цене 3000 рублей 20 копеек за акцию.

Но показалось, что это слишком сложно, и люди так не говорят. Я попросил друзей дать мне голосовое поручение, чтобы я из него понял, какую бумагу и по какой цене покупать, но что-то пошло не так... Во-первых, никто не использовал слово «лимитная заявка», как я ожидал. Во-вторых, цену называли только тогда, когда я спрашивал о цене. Уточняли у меня, как сказать название компании, нужно ли произносить тикер. В общем, чувствовалась какая-то неуверенность. Это были люди, которые не привыкли к голосовым интерфейсам. Вот самая классная фраза, иллюстрирующая эту мысль:

У меня даже когда телефон звонит, я испытываю дискомфорт.

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

Третья итерация: покупка и продажа акций по рыночной цене


Люди обычно говорят так:

— Купи 10 акций Яндекс

Но акции на бирже продаются лотами, поэтому я решил, что для тех акций, у которых 1 лот = 1 акция, такой запрос подходит и заявка будет создана. Но когда 1 лот = 10000 акций, например, как у ВТБ, то голосовой помощник будет предлагать переформулировать запрос в лотах:

— Купи 10 акций ВТБ.
— Инструмент продаётся лотами. В одном лоте 10000 акций. Повторите команду ещё раз, но вместо акций используйте лоты.
— Купи 10 лотов ВТБ.

Подтверждение операции


Наверное, было бы неправильно отправлять заявку на покупку без подтверждения. Риск того, что Алиса неправильно распознает название компании или количество лотов довольно высок. Поэтому я предусмотрел подтверждение заявки. Перед отправкой заявки в Тинькофф, Алиса проговаривает все детали сделки и просит подтвердить или отменить операцию. После подтверждения, заявка отправляется на биржу через Тинькофф Инвестиции OpenAPI, и почти всегда исполняется мгновенно.


Подтверждение, это тема для отдельной статьи, но готов обсудить в комментариях.


Обработка ошибок


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


Проблема 1: как распознать название компании


Платформа Яндекс.Диалоги предоставляет язык описания пользовательского запроса, чтобы можно было распознать задачу, которую хочет решить пользователь. Распознанные данные Диалоги присылают в обработчик.


Нужно было распознавать название компаний в словах пользователя. Для этого я описал сущность FIGI (Financial Instrument Global Identifier), чтобы по названию компании получать идентификатор, который нужен для взаимодействия с биржей. Вот как это выглядит:



entity EFigi:

values:
BBG005DXJS36:
%exact
TCS
%lemma
тиньков(банк)?
тинькоф(банк)?
тинькофф(банк)?
ти си эс (груп)?
BBG006L8G4H1:
%exact
YNDX
%lemma
яндекс
яндекса
...

Я использую эту сущность в грамматике, и когда кто-то говорит Оливеру: «купи акции яндекс», то платформа Диалогов понимает, что Яндекс это сущность EFigi, которую я описал, и передаёт обработчику идентификатор ценной бумаги BBG006L8G4H1. А внутри обработчика уже происходит взаимодействие с биржей по этому идентификатору.


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


Чтобы сделать полноценный голосовой помощник для торговли на бирже, кому-то придётся написать подобное для каждой компании. Люди называют одни и те же компании по разному, например, кто-то скажет «Сбер», а кто-то «Сбербанк». На бирже торгуются обычные акции Сбербанка и привилегированные, которые ещё иногда называют префами. Вероятно,  существует ещё несколько популярных вариантов.


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

https://github.com/denismosolov/alice-entities-library/blob/master/entities/figi.entity

Лучше всего, если вы пришлёте Pull Reqeust на GitHub, но можно написать и здесь в комментариях, а я перенесу ваши предложения в файл. Это фундамент всей идеи.


Проблема 2: озвучка тикера в подтверждении сделки


Для подтверждении сделки, навык говорит название компании и тикер. Например, у Яндекса тикер YNDX. Это хорошо воспринимается в тексте, но плохо воспринимается на слух. YNDX звучит как «йндкс».


Первая мысль была написать код, который будет разбирать тикеры по буквам, и для каждой буквы проигрывать звук из озвучки английского алфавита. Код будет принимать на вход строку YNDX, а возвращать вот такую строку:

<speaker audio="sounds-y.opus"> <speaker audio="sounds-n.opus"> <speaker audio="sounds-d.opus"> <speaker audio="sounds-x.opus">

Алиса будет проигрывать звуки и в теории это может звучать хорошо. Второй вариант был поиграться с Yandex SpeechKit, может быть удастся найти более простой и надёжный способ.


Над решением этой проблемы я пока всерьёз не думал, поэтому буду рад любым идеям и подсказкам.


Проблема 3: безопасность


Я пока не строил модель угроз, но чувствую, это будет очень увлекательно. Например, сосед может проорать в окно: «Алиса, продавай всё», и Алиса продаст. Или маленькие дети наслушаются, как родители покупают и продают акции, начнут подражать и совершать сделки, когда родителей не будет дома. А ещё много-много всего, о чём предстоит подумать. Возможно, одна из причин, по которой крупные компании до сих пор не реализовали торговлю на бирже через голосовые помощники лежит в плоскости безопасности.


Поэтому, если вы вдруг решите проделать все те штуки, о которых я напишу дальше, то знайте, вы очень сильно рискуете.


Инструкция по созданию голосового помощника для Тинькофф Инвестиции


Заведите аккаунт в Яндекс.Облаке


Создайте аккаунт в Яндекс.Облаке, для этого перейдите по ссылке и нажмите кнопку «Войти»:

Алиса, купи одну акцию Яндекс Своими руками, Яндекс Алиса, Яндекс, Нлмк, Голосовой помощник, Инвестиции, Т-Банк, Зрение, Видео, Длиннопост

Возьмите исходный код


Перейдите на страницу проекта на GitHub, и следуйте инструкции в разделе «Установка». Если что-то не получится, то дайте знать в комментариях к этому посту, я постараюсь помочь в течение пары дней. Если написать в Telegram (https://t.me/denismosolov) то, возможно, получится быстрее. Но если пишите в Telegram, то я вас попрошу потом оформить переписку в виде мануала и выложить на GitHub, чтобы другим было полезно.


Приглашаю всех желающих поучаствовать в усовершенствовании голосового помощника


Если у вас есть идея, как улучшить структуру диалога, контент, какие команды добавить, как лучше построить структуру диалога, вообще любая идея, то пишите в комментариях, пишите в Telegram (https://t.me/denismosolov), создавайте issue на странице проекта в https://github.com/denismosolov/oliver/issues. Каждая идея будет рассмотрена, приоритезирована, оценена по сложности и, если хватит сил, то успешно реализована.


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


Если желаете поучаствовать в проектировании программного обеспечения для навыка, то первым делом поставьте расширение ZenHub для GitHub. Я стараюсь использовать в разработке идеи из книги Better Software & Stronger Teams, но открыт для изменений.


Давно хотели попробовать себя в роли владельца продукта, но не было возможности? Голосовой помощник торговли на бирже, это тот проект, где вы сможете проявиться свои таланты.


А закончить этот пост хочу словами из детской песенки:

Э-о-э! Зовёт золотое руно,
И оракул сулит нам удачу.
Показать полностью 1 3

Как свободное ПО циркулирует в мире

Рассмотрим процесс циркуляции свободного программного обеспечения в мире на примере языка программирования Elixir и Debian GNU/Linux.

Для описания процесса циркуляции свободного программного обеспечения в мире есть устоявшаяся аналогия реки. У истока (upstream), где река берет свое начало, находится свободное программное обеспечение, как правило, от оригинальных разработчиков (чуть дальше будет говориться об исключении из этого правила); каждая новая версия справляется ниже по течению (downstream), откуда она попадет в дистрибутивы. Таким образом, upstream в широком смысле означает все свободное программное обеспечение, которое стало частью дистрибутивов, а downstream – сами дистрибутивы. Термины upstream и downstream относительны, поэтому upstream'ом для Ubuntu является Debian. К примеру, как сопровождающий Elixir'а в Debian'е я пакетирую новую версию языка, беря ее из upstream'а, загружаю пакет в архив Debian'а, а через несколько часов оттуда этот пакет автоматически попадает в находящийся в разработке выпуск Ubuntu. Так, Debian легко меняет ярлык с downstream'а на upstream (то самое исключение).

Пока описанный процесс не является циркулярным, как было заявлено с самого начала. Круг замыкается при возвращении в upstream изменений, сделанных в рамках подготовки пакетов для дистрибутивов.

Все вещи удивительным образом связаны в мире. Практически всем более-менее опытным линуксоидам известно про тесную связь Debian'а и Ubuntu, но мало кто задумывается о том, как эти дистрибутивы связаны с тем же Arch'ем и другими. Мало кто задумывается не потому, что все скрыто за семью печатями и непостижимо для понимания, а напротив – потому, что все на поверхности и элементарно. Связь осуществляется через upstream: один дистрибутив GNU/Linux включают плюс-минус тот же набор программного обеспечения, что и другой. Каждый дистрибутив по-своему возвращает долг сообществу, и об этом я хочу сейчас рассказать на примере Debian'а.

Debian призывает своих сопровождающих заглядывать в исходный код ПО, пакеты для которого они сопровождают. Это, в свою очередь, запускает механизм, подчиняющийся закону Линуса, который гласит: «больше глаз, меньше ошибок» (закон сформулирован Эриком Реймондом). На примере пакета Elixir'а я расскажу как эти вещи работают на практике.

В дерево исходных текстов Elixir'а включено два бинаря (rebar и rebar3), которые необходимы для нескольких unit-тестов. Казалось бы безобидно, но в Debian'е такой исходный материал подлежит чистке, т.к. в дистрибутиве запрещено распространение не подкрепленных исходниками бинарей. Таким образом, при подготовке пакета для каждой следующей версии языка в мои обязанности входит удаление этих бинарей с модификацией исходного кода, в котором они фигурируют. В один прекрасный день я заметил, что после удаления этих бинарей начал валиться один из тестов. Оказалось, что с недавних пор он тестировал не совсем то, что предполагалось. Для того чтобы пакет все-таки состоялся, я подготовил исправление и затем согласно Общественному договору [с сообществом свободного ПО] предложил его upstream'у, который позднее его принял. На этом круг замкнулся – работа, проделанная в рамках Проекта Debian, станет доступна пользователям и других дистрибутивов.

Показать полностью

Игровая консоль для игры в GTA из бабушкиного планшета

Всем привет. Вот так эта консоль выглядит:

Игровая консоль для игры в GTA из бабушкиного планшета GTA, Samsung, Android, Геймпад, Планшет, Компьютерные игры, Длиннопост

А теперь обо всем по порядку.

Обычно я говорю на Пикабу об одноплатных компьютерах, но не в этот раз. Сегодня я пишу не как один из туксодрайверов, но как человек, который застал в сознательном возрасте появление всей серии GTA III (собственно самой GTA III, а затем «GTA: Vice City» и «GTA: San Andreas»), так и не сумев ни одну из них пройти. Однако мой опыт здесь не уникален – есть туева хуча таких же, как и я, людей, которым посчастливилось родиться на закате (или уже на руинах) СССР, чтобы к началу 2000-х отрастить достаточно зрелый мозг и без ограничений наслаждаться всеми ништяками игровой индустрии той эпохи. Но интересно здесь другое – что именно нам помешало пройти GTA с первого раза? Лично у меня было две причины – одна банальная, а другая поинтереснее. Банальная заключалась в том, что выход GTA III немного опередил появление у меня по-настоящему персонального компьютера. Таким образом, мое знакомство с этой игрой произошло в игровом [клубе], в котором игру не представлялось возможным пройти от начала и до конца в силу сильно ограниченного количества карманных денег. Чуть позже у меня появился компьютер и я уже практически не был ограничен количеством времени игры, но формально это уже была вторая попытка пройти GTA III (которая, кстати, тоже не увенчалась успехом, но это уже совершенно другая история).

Что касается причины поинтереснее, то она напрямую связана с пиратством. А дело было в том, что время, о котором я говорю, вне всякого сомнения получилось интересным, но не до конца цифровым – почти все приходилось приобретать на физических носителях, которыми, как правило, были CD-, а позднее – DVD-диски. Более того, лицензионные диски были большой редкостью, а пиратские беспалевно продавались на каждом углу наших городов. Стремясь продавать даже пиратские копии игр намного дешевле, чем они стоили на самом деле, пираты жертвовали даже качеством геймплея. Для того чтобы этого добиться, в нецифровую эпоху нужно было уменьшить количество носителей, на которых распространялась игрушка. К примеру, полная версия «Diablo II: Lord of Destruction» умещалась на двух CD-дисках, но нередко попадалась ее урезанная копия с частично удаленными диалогами и музыкой. Тем не менее, игру пройти все же оставалось возможным, но не всегда пиратам удавалось выкинуть из игры «все лишнее», сохранив возможность узнать, чем все закончится. К примеру, оригинальная «GTA: Vice City» распространялась на более чем одном CD-диске (точного количества не знаю, т.к. никогда не видел лицензионной копии), но до меня она в самый первый раз дошла на одном CD с неполным количеством миссий. Так, в течении нескольких недель я проходил, все что мне предлагалось пройти, а после мотался по пустому городу до тех пор, пока это занятие окончательно не надоело. Печально, согласитесь.

«GTA: San Andreas», в свою очередь, не была мною пройдена при загадочных обстоятельствах. Она вышла уже в то время, когда описанные проблемы оказались позади, но какая-то неизвестная сила вклинилась, переключила мое внимание и все… Да и хрен с ней. Тут важно другое: всем тем, чья история хотя бы отдаленно напоминает мою, не дает покоя тот факт, что им не удалось пройти одну, две или все три игры из III-й серии GTA, но каждый как-то стремится решить эту проблему. К примеру, самым распространенным вариантом является приобретение всех трех частей через Steam, но я пошел немного другим путем.

История одного планшета


Теперь уже в таком далеком 2012-м я купил планшет Samsung Galaxy Tab 2. На тот момент был очень популярен iPad 2, а Galaxy Tab 2 позиционировался в качестве его основного конкурента, что меня и подкупило. Выбор был сделан. Samsung'овский продукт оказался отличным куском техники и прослужил мне несколько лет, после чего я заменил его на Nexus 9 от HTC, который, к слову, оказался редкостным куском дерьма. Galaxy Tab 2, в свою очередь, перешел бабуле, которой он прослужил еще несколько лет аж до конца 2018-го. Причиной его списания стало моральное устаревание – несмотря на то, что аппаратная начинка все еще сохранялась на уровне, программная тянула планшет ко дну, ведь на нем до сих пор оставался Android 4.2 «Jelly Bean», до которого, кстати, Samsung добростовестно его проапгрейдила (оригинально планшет поставлялся с Android 4 «Ice Cream Sandwich»). Таким образом, без того глючный Skype в один прекрасный предновогодний день стал вести себя хуже некуда. В итоге, к новому году бабушка получила новый планшет, стала лучше слышать и видеть мою крестную в переговорах, а старый планшет снова оказался у меня.

Перерождение


Отправляясь в путь за новым планшетом, я уже знал, что сделаю из старого консоль для игры в III-ю серию GTA, но еще не до конца понимал как именно – вопрос требовал проработки. Физически планшет был в порядке, но подавлен морально, поэтому для возвращения его к полноценной жизни требовалась актуальная версия прошивки. В большинстве случаев в этом вопросе может помочь проект под названием LineageOS (ранее известный как CyanogenMod), в рамках которого для целой кучи мобильных устройств поддерживаются альтернативные сборки Android'а. Таким образом, когда производитель вашего устройства нагло забивает на один из своих продуктов, LineageOS может прийти на помощь. Однако, мой планшет оказался супер стар и, как следствие, слишком крутым даже для LineageOS, на соответствующей странице которого мое устройство было помечено как уже не поддерживаемое. Тем не менее, документация по перепрошивке все еще находилась на сайте, ожидая дня, когда я к ней вернусь, раздобыв где-то саму прошивку. В общем, мой налаженный конвейер по актуализации устройства дал сбой, встал и потребовал ручного вмешательства. К сожалению, проблема является уникальной (нетиповой), но я вкратце расскажу о ее решении, т.к. за ним стоит всего лишь один человек, без которого бы ничего не получилось, и грех было бы здесь не назвать его имя.

Андреас Блазиус (Andreas Blaesius) поддерживает LineageOS для Galaxy Tab 2 (как 7-, так и 10.1-дюймовый с поддержкой 3G или только Wi-Fi) и Galaxy Nexus. Благодаря работе Андреаса я смог установить на свой планшет LineageOS 14.1 на базе Android 7 (минимальная версия для III-й серии GTA). Android 7 напоминает Windows XP, но в мире мобильной электроники – нетребовательная, но достаточно функциональная операционная система, которая, несмотря на то, что уже не поддерживается, еще много где используется.

После того как моральный дух устройства поднялся, настало время наделить его новыми возможностями через разные аксессуары. На этот раз выручил небезызвестный китайский магазин. Я нарисовал себе в голове картинку геймпада, одна сторона которого крепилась бы к левой части планшета, а другая – к правой, и принялся искать. Спустя несколько минут поисков я его нашел! Оказывается есть джойстики, которые растягиваются (по принципу эспандера), и подходят для устройств различных форм-факторов. На фотографии выше – IPEGA PG-9023, в тиски которого легко помещается 10.1-дюймовый экран планшета.

Двумя другими аксессуарами стали защитное стекло и силиконовый чехол, которые также без труда нашлись несмотря на то, что устройству уже почти 10 лет. (На фото выше – консоль без чехла.)

Заключение


В данной статье, на примере своего планшета, я хотел показать как устройство может решать поставленную перед ним задачу даже спустя 10 лет. Не могу пока похвастаться тем, что я решил свою задачу – прохождение всей серии GTA III – но мой планшет мне теперь в этом всячески способствует. Изучайте и лучше понимайте мобильные устройства, которыми пользуетесь ежедневно, продлевайте им жизнь (они, скорее всего, рано придаются забвению) и выжимайте из них максимум.

Показать полностью
Отличная работа, все прочитано!