Выпуск 278 подкаста CppCast – это вдохновляющая история о том, как гость Андреас Клинг преодолел наркотическую зависимость, создав и разработав на языке С++ новую операционную систему с открытым исходным кодом. Он назвал свою операционную систему SerenityOS, в честь Молитвы Безмятежности, которую выучил в реабилитационном центре. В этом выпуске ведущие Роб Ирвинг и Джейсон Тернер берут интервью у Андреаса Клинга о его операционной системе, а также обсуждают QT6 и новые подкасты на C++.
Выпуск 278 CppCast был записан 17 декабря 2020 года и спонсировался компанией Visual Assist. Visual Assist – хорошо известное расширение для Visual Studio. Visual Assist ускоряет разработку с помощью интеллектуальной навигации, проверки кода, подсказок, многофункциональных команд рефакторинга и многого другого. Visual Assist даже проверяет орфографию в комментариях. Скачайте бесплатную пробную версию Visual Assist на wholetomato.com.
Visual Assist используется авторитетными разработчиками C++ по всему миру. Инструмент работает очень эффективно. Вам нужно реализовать методы из интерфейса? Как насчет замены указателя на умный указатель или даже на умный указатель Unreal Engine? Нужно добавить символ, который вы ввели, но не объявили?
Visual Assist умеет все это и многое другое. Предложит дополнительные возможности рефакторинга, более мощные, чем имеющиеся в Visual C++. Поможет найти и исправить ошибки в коде. Облегчит навигацию: упростит перемещение по коду и поиск нужных фрагментов. Доступны даже расширения для отладки.
Visual Assist написан разработчиками C++ для разработчиков C++. Расширение включает в себя все, что вам нужно, и ничего лишнего. Visual Assist придерживается философии минималистичного пользовательского интерфейса. Он не будет вас отвлекать, а будет появляться только при необходимости. Visual Assist создан, чтобы помогать разработчику, и это не просто хорошо разрекламированный продукт. Разработчики приложений на вашем компьютере – будь то офисные пакеты, операционные системы или игры – полагаются на Visual Assist. Программное обеспечение, которое вы используете, было создано с помощью Visual Assist.
У вас есть возможность применить инструмент на вашем собственном проекте. Visual Assist поддерживает Unreal Engine 4 и многие версии Visual Studio, включая VS 2019 и Community. Ссылку для скачивания Visual Assist вы найдете на сайте wholetomato.com.
Роб: Добро пожаловать на выпуск 281 подкаста CppCast! В начале каждого эпизода мы обсуждаем обратную связь. На этой неделе мы получили твит от пользователя Olafur Waage. Он написал: "Стойте, стойте, стойте, видео на YouTube? Когда они появились? Я знал только о существовании аудиоверсии на сайте."
Olafur, вероятно, упустил это, но мы записываем не только аудио, но и видео уже примерно полтора года.
Джейсон: Да, примерно столько. Все началось с просьбы слушателя, который сказал, что воспринимать информацию проще, когда видишь участников.
Роб: Мы всегда рады узнать, что вы думаете о наших подкастах. Вы можете связаться с нами через Twitter или по адресу feedback@cppcast.com.
Не забудьте оставить нам отзыв в iTunes или подписаться на наш YouTube канал.
Роб: Наш гость сегодня – Андреас Клинг. Андреас работает над проектами с открытым исходным кодом и пишет на С++ уже 15 лет. Он участвовал в проектах KDE, Qt и WebKit. Сейчас он посвящает все свое свободное время SerenityOS, новой Unix-подобной операционной системе с интерфейсом в стиле офисного компьютера девяностых.
Все – от ядра до веб-браузера – написано на C++. Андреас записывает видео своих сеансов программирования и выкладывает их на YouTube. Он хочет поделиться радостью программирования со всем миром. Андреас, добро пожаловать.
Андреас Клинг: Спасибо. Рад быть здесь.
Джейсон: У вас довольно интересный опыт: KDE, QT и WebKit. Вы занимались этими проектами в свободное время или они были оплачиваемой работой?
Андреас Клинг: KDE был мой хобби-проект. Потом меня взяли в Nokia, там я два года работал над Qt. Затем я пошел в Apple и шесть лет занимался WebKit. Больше я не работал в больших технических компаниях. Сейчас я работаю в небольшой технической компании в Швеции.
Роб: Андреас, через минуту мы начнем говорить о SerenityOS, но сначала обсудим новости. Мы приветствуем любые ваши комментарии по этим темам.
Джейсон: Похоже, появляется все больше и больше подкастов о C++!
Роб: Да. Недавно в одном из наших выпусков участвовал Конор, теперь они с Брайсом запускают новый подкаст (страница ADSP: Podcast в Твиттере), у Дж. Ф. Бастьена и Криса Лири тоже есть подкаст (страница TLB hit в Твиттере), и, конечно же, мы все знаем о cpp.chat. Здорово, что появляется больше подкастов. Иногда мне кажется, что в какой-то степени именно пандемия подтолкнула людей к записыванию подкастов.
Джейсон: Кстати да, весьма иронично.
Многие говорят нам, что из-за пандемии не нужно ездить на работу, и поэтому у них больше нет времени слушать CppCast. Теперь все сидят дома и записывают свои подкасты.
Роб: Выходит еще один новый подкаст. Его организовали Фил Нэш и Анастасия из JetBrains. Они уже опубликовали пилотный выпуск. Подкаст называется "No Diagnostic Required". Получается, у Фила теперь аж два подкаста? Он же еще ведет cpp.chat c Джоном Калбом, верно?
Джейсон: Да. Интересно будет увидеть, насколько регулярно Фил и Анастасия смогут записывать новые выпуски.
Роб: Вышла новая статья о релизе новой версии Qt 6.0. Этот блог пост освещает самые значительные отличия между Qt 5 и Qt 6.
Джейсон: Кажется, в новой версии также обновилась лицензия. Некоторые обеспокоены этим.
Роб: Еще разработчики изменили механизм графики в Qt 6. По-моему, Qt 5 был полностью основан на OpenGL, а теперь они пытаются использовать Meadow, Vulcan и Direct3D. Предполагаю, что в Qt6 более производительная графика.
Андреас Клинг: Да. Это и задумывалось как наиболее привлекательная фича Qt 6. Разработчики объединили абстракции для передачи графики, чтобы эффективнее пользоваться API, предлагаемым платформами.
Теперь Qt 6 основывается на Meadow, Vulcan и подобном. Также Qt 6 обновлен до C++17.
Роб: Итак, С++20 официально опубликован и теперь можно купить или скачать полный документ по C++20. Документ стоит 200 долларов, но рабочий черновик можно найти и скачать бесплатно. Джейсон, ты планируешь покупать документ?
Джейсон: Нет. Нет. У меня есть рабочий черновик. Андреас, а вы?
Андреас Клинг: Я просто подожду и посмотрю, что появится в компиляторах. Я предпочитаю разбираться, тестируя нововведения вручную.
Роб: На какой версии C++ написана Serenity?
Андреас Клинг: Она написана на C++20, хотя я не сильно вникал в новые возможности. Мы используем компилятор GCC 10.2, потому что у нас нет зависимостей, и никто от нас не зависит.
Мы использовали концепты и шаблонные лямбды. Концепты нам очень пригодились, но создали проблемы для тех, кто собирает проекты компилятором Clang на Mac. Я надеюсь, Clang скоро обновится, чтобы поддержать новый релиз.
Джейсон: Есть ли какая-то часть SerenityOS, которую вы не можете написать на C++?
Андреас Клинг: Конечно. Низкоуровневые команды для процессора. Однако, такого кода немного. Сейчас мы столкнулись с проблемой, которая была раньше у Linux. Мы создавали ОС для процессоров x86. Теперь мы хотим развивать операционную систему и для других архитектур, поэтому нам нужно возводить функциональность в абстракции.
Роб: Следующее, что мы бы хотели обсудить, – это серия YouTube видео от пользователя Poncho о том, как сделать операционную систему на C++. Андреас, я подумал, вам будет интересно. Похоже, другие тоже хотят создавать свои операционные системы на C++.
Андреас Клинг: Да, конечно. Я посмотрел первое видео. Похоже, это – хорошее руководство для тех, кто хочет создать свою операционную систему. Однако, сейчас я уже занимаюсь намного более продвинутыми задачами по сравнению с теми, которые обсуждаются в видео. Поэтому, я бы не сказал, что мои задачи и те, которые обсуждаются в видео, сильно пересекаются. Однако, люди начинают понимать, что на C++ можно писать операционные системы. Это радует. Довольно долго интернет-сообщество считало, что ядро можно написать только на языке С. Здорово видеть, что люди начинают использовать другие языки.
Джейсон: Хочу отметить, что автор видео дает что-то вроде шаблона для начала работы с загрузочным кодом EFI и подобную информацию.
Если вам интересна эта тема, рекомендую хотя бы обратить внимание на шаблоны.
Роб: Итак, Андреас, как вы уже упомянули ранее, вы разрабатываете SerenityOS. Не могли бы вы для начала рассказать немного о том, что это такое?
Андреас Клинг: Конечно. SerenityOS – это новая операционная система для настольных ПК, которую я начал писать на современном C++. Я начал этот проект в 2018 году после завершения трехмесячной программы реабилитации наркозависимых. После завершения программы я не знал, чем заняться и на что потратить свободное время.
Мне всегда было интересно, каково это – создавать операционную систему. Так что я просто из любопытства начал писать кусочки кода. Поначалу это была не совсем операционная система. Был загрузчик исполняемых ELF-файлов, парсер файловой системы EXT2 и небольшая библиотека GUI.
В какой-то момент я понял, что если положу в основу всего этого ядро, то это будет похоже на операционную систему.
Джейсон: Просто подсунуть ядро. Чего в этом особенного?
Андреас Клинг: Да-да. Так и появилась операционная система Serenity. Я назвал ее в честь Молитвы Безмятежности, которую выучил в реабилитационном центре. Я хотел подобрать такое название, которое напоминало бы мне, что наркотики остались в прошлом и что я за здоровый образ жизни.
Я не знал, чего ожидать, поэтому просто решил попробовать несколько разных занятий, чтобы найти увлекательное для меня.
Оказалось, погрузиться в увлечение довольно легко. Нужно только вкладывать в это сердце и душу.
Тогда я все время беспокоился, что снова вернусь к наркотикам. Поэтому хотел придумать контролирующий механизм. Вот почему я так назвал систему. А дальше я начал выкладывать видео на YouTube. Записывал то, как я программирую и мысли, возникающие в процессе работы.
Я понял, что прятался всю свою жизнь и подумал, что если я просто выйду из своей скорлупы и расскажу о себе в Интернете, возможно, мне больше не придется прятаться. И это отлично сработало. Постепенно люди начали находить мою операционную систему и приходить на YouTube канал. Затем кто-то опубликовал эту информацию на Hacker News.
После публикации, моей ОС заинтересовалось сразу много людей. Я был в шоке. Мой почтовый ящик разрывался от сообщений. У меня все еще висят письма, на которые я не ответил. Я прочитал много восторженных отзывов. Полагаю, люди оценили то, что я абсолютно самостоятельно собирал систему из кусочков, без дополнительных внешних зависимостей.
Система полностью автономна, за исключением компилятора.
Джейсон: Я как раз хотел спросить про компилятор. Теперь понятно.
Андреас Клинг: Да, пока что мы без автономного компилятора. Я работал над системой примерно полгода до того, как люди начали находить ее. Многие находили что-то интересное в ней и хотели поучаствовать в этом элементе.
Поэтому люди начали присылать патчи. К сегодняшнему дню в создании ОС приняли участие 225 человек. Примерно 15-16 заложили более 100 коммитов каждый. Сейчас Serenity – довольно активный проект и развивается очень хорошо.
Джейсон: Мне всегда было интересно, каково это – проснуться знаменитым. Обычно такие люди много работают. К кому-то успех приходит спустя шесть месяцев, а кому-то для этого нужно пять лет. И тогда герой истории становится знаменитым за одну ночь.
Андреас Клинг: Да. Я думаю, что обычно так и бывает. Я действительно провел много бессонных ночей у компьютера.
Но также у меня была видео презентация. Я сделал ее буквально за два дня до того, как информация про мою операционную систему появилась на Hacker News. Я думаю, она помогла людям сразу понять проект. Там была ссылка и любой мог посмотреть, как работает система. К тому времени проект был уже достаточно хорошо развит, и моя ОС была уже не просто хобби-системой.
Это взбудоражило воображение людей. Также, думаю, многие из нас любят графический интерфейс из девяностых. Он занимает особое место в наших сердцах, потому что мы все использовали Windows в то время. Я думаю, что это привлекло людей.
Джейсон: Вы выходите в прямой эфир на YouTube? Или записываете видео заранее?
Андреас Клинг: Заранее, но я их не редактирую.
Джейсон: Ваша история впечатляет. Похоже, ваш план сработал. Последние пару лет у вас получилось вкладывать время и ресурсы в эту операционную систему.
Андреас Клинг: Да! Получилось отлично. Я не знал, чего ожидать, поэтому просто решил попробовать несколько разных занятий, чтобы найти увлекательное для меня.
Оказалось, погрузиться в увлечение довольно легко. Нужно только вкладывать в это сердце и душу.
Роб: Получается, вы работаете над проектом уже около двух лет. И вы сказали, что уже прошли большой путь. В каком состоянии проект сейчас, ожидаются ли изменения?
Андреас Клинг: Сейчас это – многозадачная Unix-подобная операционная система.
Графический интерфейс очень похож на Windows 2000 или macOS 9. Доступно много приложений: управление файлами, просмотр изображений и веб браузер. Браузер – самое большое приложение, над которым мы работаем.
В целом, работа довольно рассредоточена: каждый элемент развивается постепенно.
В последние пару недель система стала значительно стабильнее, потому что у нас появились специалисты по ядру и стали над ним работать (синхронизация, примитивы) и в целом улучшать его. Ядро я сделал на коленке, чтобы быстрее закончить и перейти к следующей задаче.
Джейсон: Мне кажется, это одна из тех вещей, которую сложно сделать, будучи непрофессионалом.
Андреас Клинг: Да. Но, как оказалось, все же можно написать что-то самостоятельно, и это будет неплохо работать. Затем, если вы полны энтузиазма, люди к вам потянутся, предложат помощь и сделают из заготовки продукт надлежащего качества.
Если люди делают то, что им особенно интересно, получается самое лучшее программное обеспечение.
Сейчас над проектом работают 20-25 человек. Каждый нашел свою маленькую нишу и занимается тем, что его особенно интересует.
У нас есть люди, которые занимаются оболочкой, другие работают над ядром. Кто-то заинтересован в том, чтобы система соответствовала спецификациям JavaScript. Я хочу и дальше придерживаться этого подхода. Если люди делают то, что им особенно интересно, получается самое лучшее программное обеспечение.
Джейсон: Пока мы не начали готовиться к этому выпуску, я даже не понял, что вы работаете над SerenityOS. Мой друг как раз участвовал в разработке этой системы на протяжении последних нескольких недель. Он работает с conxtexpr.
Андреас Клинг: А, это, должно быть, Ленни. То, над чем он работает – очень полезная задача. Для нее как раз требовался увлеченный человек, готовый везде доработать код. Очень здорово, когда такие люди приходят.
Джейсон: Он сказал, что ему нравится участвовать в проекте и делать код лучше и чище. Ему приятно видеть, когда его правки принимают. Думаю, именно таким было его впечатление от участия в проекте.
Андреас Клинг: Да, именно так. Я не вижу причин запрещать людям свободно предлагать правки – тем более, что у нас нет зависимостей, мы все контролируем сами, а особых релизов нет.
Джейсон: Итак, JavaScript-движок, lib PNG и JPEG-парсер – вы говорите, что все это написано с нуля?
Андреас Клинг: Совершенно верно. Всё. Я начинал писать большинство библиотек, но не все. Теперь уже и другие люди создают библиотеки.
Как оказалось, все же можно написать что-то самостоятельно, и это будет неплохо работать. Затем, если вы полны энтузиазма, люди к вам потянутся, предложат помощь и сделают из заготовки продукт надлежащего качества.
Роб: На каком оборудовании можно запускать Serenity?
Андреас Клинг: На самом деле я не знаю, потому что я пробовал не так много оборудования. Большую часть разработки мы делаем на эмуляторах, потому что это очень удобно.
Так что Serenity поддерживает все то, что эмулируют QEMU, VirtualBox и MWare.
Однако есть люди, которых очень интересует совместимость. Они настроили систему, чтобы она работала на их случайным образом собранных ПК.
А всего пару дней назад кто-то из сообщества начал составлять список совместимости. Он тестирует разное аппаратное оборудование и вносит в список конфигурации, на которых Serenity запускается. Этот список сейчас очень короткий, но мы с нетерпением ждем его расширения.
Пока что Serenity очень слаба с точки зрения драйверов. Эту часть операционной системы мы почти не развивали. Почти все усилия были направлены на усовершенствование пользовательской среды и ядра.
Однако есть одна интересная вещь: хотя весь код является оригинальным и новым, мы используем известные и проверенные абстракции: ядро типа POSIX и графический интерфейс, управляемый циклами событий.
Джейсон: Итак, у вас есть файловая система. Это EXT2, так?
Андреас Клинг: Да, это так.
Джейсон: Хорошо. И вы сказали, что кто-то работает над оболочкой. Есть ли на данный момент рабочая оболочка?
Андреас Клинг: Да. У нас есть рабочая оболочка, и эмулятор терминала, и все в этом духе. У нас даже есть сервер Telnet.
Если оставаться в сеансе Telnet слишком долго, то могут появляться сбои. Сейчас мы как раз разбираемся с проблемами. В последнее время мы все чаще применяем для этого фаззинг. Мы используем собственные фаззеры, а также OSS-Fuzz от Google.
Джейсон: Может ли ваша операционная система включать в себя компилятор? Если я разрабатываю веб-браузер, где можно скомпилировать проект: внутри или вне Serenity?
Андреас Клинг: Вне операционной системы, но у нас есть рабочий порт, GCC, утилиты bin и все остальное. Таким образом, при желании, внутри системы компилировать можно.
Джейсон: Значит, вы не портировали CLion или что-то подобное?
Андреас Клинг: Нет, я работаю над своей собственной IDE. Она называется Hack Studio. Пока у нас нет C++ парсера, компиляция внутри SerenityOS не очень удобна. Когда я работаю с долгосрочными задачами, я обычно компилирую снаружи. А вот пару недель назад я создал с нуля игру Breakout в Hack Studio. И все это время я работал в SerenityOS.
Роб: Ранее вы упомянули фаззинг-тестирование. Как еще вы тестируете Serenity?
Андреас Клинг: Мы делаем юнит-тестирование. Мы также используем GitHub Actions для непрерывной интеграции. К сожалению, мы пока что не дошли до стадии, когда мы сможем запускать систему и прогонять тесты. Нам приходится компилировать все юнит-тесты для Linux и запускать их внутри системы.
Мы также хотим тестировать ядро больше. Сейчас у нас есть все нужные части, но мы ждем, пока кто-нибудь придет и займется ими, склеит кусочки и заставит тесты работать.
У нас много тестов. Я жду, пока кто-нибудь придет и соберет их вместе.
Джейсон: Значит, вы придерживаетесь этой философии, когда записываете видео?
Андреас Клинг: Да, безусловно. Я предпочту снять видео, где я разрабатываю с большим удовольствием какую-то маленькую деталь для интерфейса, чем заставлять себя делать что-то интересное, но сложное.
Для меня очень важно поддерживать высокое качество графического интерфейса. Я всегда обращал внимание на это в операционных системах Linux. Графический интерфейс для меня ощущался раздробленным, собранным из частей, основанных на разных фреймворках.
Джейсон: Вы уже портировали Doom?
Андреас Клинг: Конечно, хотя у нас нет звука для Doom. Quake у нас тоже есть.
Джейсон: Вы имеете ввиду, в самой Serenity нет звука - или проблема со звуком только в порте Doom?
Андреас Клинг: Когда я портировал Doom, оказалось, что у порта нет звуковой поддержки.
Меня не особо интересовало то, как это можно поправить. Затем мы запустили Quake, в котором есть звук. А о Doom я как-то забыл.
Звук – одна из тех вещей, о которых я ничего не знал, пока не начал развивать Serenity. Мне пришлось многому научиться просто чтобы поддержать звук. Я очень многому учусь на этом проекте.
Я не хочу, чтобы у кого-то сложилось впечатление, что я все знаю и понимаю. Нет, конечно. Но сейчас я уже так привык заниматься задачами, которые выше моего понимания, что воспринимаю это как норму.
Людям, которые хотят внести свой вклад, я всегда советую просто собрать систему и попробовать ее. Поизучать ее и посмотреть, не найдут ли они что-то сломанное или что-то, что им не нравится, а затем просто попытаться это исправить.
Сначала леплю что-то из говна и палок, а затем начинаю это дорабатывать. Так я построил большую часть системы – сначала делал кое-как, лишь бы работало, а затем выяснял, как сделать это качественно.
Джейсон: Кстати, как называется ваш канал на YouTube?
Андреас Клинг: Мой канал на YouTube доступен по адресу youtube.com/andreaskling.
JavaScript и браузер
Джейсон: Итак. Я хочу вернуться к браузеру, потому что мне кажется, что обычные веб-браузеры сложнее, чем ваша операционная система.
Андреас Клинг: У Serenity браузер довольно сильно отстает с точки зрения современных функций CSS, но в то же время в нем есть детали, присущие современным браузерам. Есть неплохие движки HTML и CSS.
Браузер способен отображать базовые страницы, но плохо отрисовывает страницы посложнее. И движок JavaScript очень медленный.
JavaScript – почти что самая протестированная функция у Serenity. Получилось так, что я начал создавать браузер без движка JavaScript. И люди постоянно спрашивали меня, будет ли браузер поддерживать JavaScript?
В какой-то момент я подумал: да, наверное, трудно создать движок JavaScript, но почему бы не попробовать, не может же это быть слишком сложно? И я сел, набросал движок и записал это на видео. На видео я вручную набросал абстрактное синтаксическое дерево, пропустил его через интерпретатор и запустил код.
Это так впечатлило некоторых моих зрителей, которые занимались разработкой JavaScript, что они вдохновились и захотели в этом участвовать.
Джейсон: Ух ты.
Андреас Клинг: Люди, которые были простыми разработчиками, вышли из своей зоны комфорта и расширили свою деятельность. Наблюдать за этим было потрясающе. Они также привнесли в проект свой опыт с JS и построили для нас хорошую систему юнит-тестирования.
И они продолжают добавлять просто отличные тесты каждый раз, когда они меняют движок. В этом плане я сильно отстаю от них, потому что умею писать только эти маленькие юнит-тесты для тестирования одной вещи, которую я добавил, а они пишут прекрасные тесты на сто строк и больше. Это очень хорошо.
Роб: С чего начать тем, кто готов и хочет внести свой вклад в SerenityOS?
Андреас Клинг: Людям, которые хотят внести свой вклад, я всегда советую просто собрать систему и попробовать ее. Поизучать ее и посмотреть, не найдут ли они что-то сломанное или что-то, что им не нравится, а затем просто попытаться это исправить.
Думаю, одна из целей, которых я бы хотел добиться – это расширить то, как разработчики воспринимают операционную систему. Многие думают, что операционная система – это ядро. Я думаю, что понятие операционной системы гораздо шире: ядро, оболочка, пользовательские утилиты, графический интерфейс и все остальное, например, движок JavaScript, веб-браузер и декодеры PNG и JPG.
Мне нравится видеть, как люди приходят и начинают работать над чем-то небольшим и конкретным. А потом они прокачивают скиллы и вдруг после работы над JavaScript переходят к ядру. Проект позволяет им выходить из зоны комфорта.
Так что да, если вы хотите поработать над проектом, можно выбрать любое направление.
Операционная система SerenityOS открыта новому. Вы можете найти и предложить дополнительные направления для развития SerenityOS - те, о которых я еще не подумал.
Джейсон: Я надеюсь, что кто-то сейчас подумал: "Ого, я всегда хотел... заниматься ... именно этим." Есть ли какие-то функции, которых у Serenity нет совсем?
Андреас Клинг: Да, таких много. У нас нет инструмента для записи PNG, С++ парсера для нашей IDE, операционная система не поддерживает OpenGL и 3D. Не хватает поддержки PDF и нет декодера MP3. Ядро не поддерживает 64-битные процессоры. Получается, что сейчас мы работаем только на 32-битных процессорах.
Операционная система SerenityOS открыта новому. Вы можете найти и предложить дополнительные направления для развития SerenityOS - те, о которых я еще не подумал.
Джейсон: Верно. Надеюсь, теперь зрители могут представить, каким может быть их вклад в SerenityOS.
Роб: Ну что ж, Андреас, здорово, что вы участвовали в сегодняшнем выпуске. Судя по всему, SerenityOS – очень интересный проект. Спасибо, что рассказали о своем прошлом и как оно привело вас к началу работы над этим проектом. Это потрясающая история.
Андреас Клинг: Да. Я был рад поделиться ей.
Роб: Как люди могут найти вас в Интернете?
Андреас Клинг: Мое имя пользователя в Твиттере – awesomekling. Операционную систему можно найти на сайте serenityos.org.
Роб: Большое спасибо, что слушали нашу беседу о C++.
Мы хотели бы узнать, что вы думаете о подкасте. Пожалуйста, дайте нам знать, интересно ли вам то, что мы обсуждаем, или предложите новые темы для подкастов. Вы можете отправить обратную связь на feedback@cppcast.com. Вы также можете поставить CppCast лайк или подписаться на наши Tвиттер-аккаунты: подкаста, мой и Джейсона.
Мы также хотели бы поблагодарить всех наших спонсоров, которые поддерживают шоу через Patreon. Если вы хотите поддержать нас на Patreon, вы можете сделать это по адресу https://www.patreon.com/CppCast. Напоминаю, что вы можете найти всю эту информацию в заметках к выпуску на сайте cppcast.com. Музыка для этого выпуска была предоставлена podcastthemes.com.
Подкаст
Новости
Ссылки
Спонсоры
Гость
0