Типичный программист
81.4K subscribers
2.67K photos
894 videos
8 files
7.45K links
Всё самое интересное по программированию

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

VK: vk.com/tproger

Регистрация в перечне РКН: https://tprg.ru/mJwo
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Осталось запустить DOOM в DOOM, чтобы вы смогли играть... Погодите-ка!

Если пропустили, тут разработчики снова балуются с запуском в DOOM в самых необычных местах. И теперь DOOM запустили в... DOOM.

Для этого блогер Kgsws использовал уязвимость DOS-версии Doom II, которая позволяет запускать совместимый с оригинальной DOS-версией игры порт Chocolate Doom прямо внутри оригинальной игры. Оказалось, всё дело в команде «SpawnMapThing», которая используется для размещения разных объектов на карте. Так вот, часть её кода, отвечающая за состояние объекта, может быть заменена исполняемым файлом.

Код открыт, а посмотреть его можно на гитхабе: https://github.com/kgsws/doom-in-doom/releases

#кек #gamedev
Подборка вакансий для опытных специалистов

Solution Architect
Где: Удалённо
Опыт: от 3 лет

Ведущий системный аналитик
Где: Москва, можно удалённо
Опыт: от 3 лет

Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет

Аналитик в Центр Компетенций R&D
Где: Москва
Опыт: от 3 лет

Integration Lead
Где: Москва
Опыт: от 3 лет

CTO
Где: Москва
Опыт: от 6 лет

#вакансии #работа
В любом деле самое важное — начать, и Android разработка не исключение

Давайте начнём работу в Android Studio, собрав свой первый простой проект: https://tproger.ru/articles/nachalo-raboty-v-android-studio-i-pervyj-prostoj-proekt/

#android #начинающим
Google взялись за разработку замены C++

Стало известно, что компания активно развивает язык программирования Carbon, который позиционируется как пока что экспериментальная замена C++, расширяющая данный язык и устраняющая имеющиеся недостатки.

Язык поддерживает базовую переносимость с C++ и может интегрироваться с имеющимся кодом на плюсах. Плюс ко всему язык предоставляет инструменты для упрощения миграции существующих проектов. Так что можно смело переписать на Carbon библиотеку и использовать её в существующем проекте на С++.

Основные фичи Carbon:
— Производительность, сопоставимая с С++.
— Сохранение низкоуровневого доступа к адресам и данным на битовом уровне.
— Переносимость кода, включая наследование классов и шаблоны.
— Упрощение миграции между версиями.
— Безопасная работа с памятью, защита от уязвимостей, вызванных обращением к области памяти после её освобождения, разыменованием нулевых указателей и выходом за границы буфера.

#google #cpp
​​«Остались только некритичные баги. Если что, на проде пофиксим».

Те самые некритичные баги:
This media is not supported in your browser
VIEW IN TELEGRAM
Отличная идея для пет-проекта: энтузиаст собрал подводную радиоуправляемую лодку из Raspberry Pi Zero и LEGO.

C датчиком давления, расстояния и автоматическим контролем глубины.

#diy #кек
Что почитать на выходных: «Командная строка Linux. Полное руководство» Уильяма Шотса

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

#linux #книги
Ловите дорожную карту по Python, в которой собраны актуальные для изучения инструменты и технологии в 2022 году

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

Оригинал в высоком качестве есть на гитхабе: https://github.com/kamranahmedse/developer-roadmap

#шпаргалка #python
Сразу взять и найти нужный API не так уж и просто. Более того, о существовании некоторых из них можно даже не предполагать. Оказывается, искать нужный API можно куда проще.

И для этого есть крутой инструмент API List. Это огромная подборка различных API, в которой можно найти интерфейс практически на любой вкус. Все они разделены на понятные категории с удобным поиском.

Обязательно сохраните, чтобы в нужный момент он оказался под рукой: https://apilist.fun

#инструменты #api
​​А что если QR-код — это просто чья-то очень неудачная партия в Тетрис? Возможно, именно так подумал автор этой истории и решил собрать утилиту, превращающую рабочий QR-код в Тетрис.

Код проекта: https://github.com/firemoon777/QRTetris/

Статья на Хабре с подробностями реализации: https://habr.com/ru/company/selectel/blog/674172/

#кек
Как отдохнуть и провести время с пользой? Например, порешать заковыристые логико-математические задачи

Парадокс Монти Холла, задача про эскалатор и гнутую монету — решаем и объясняем эти и ещё несколько нетривиальных задач:

https://tproger.ru/articles/7-zakovyristyh-logiko-matematicheskih-zadach/

#задачки
This media is not supported in your browser
VIEW IN TELEGRAM
До сих пор так и не поняли, как устроен блокчейн?

Вот доступное объяснение из книги «Блокчейн для самых маленьких».

#книги #блокчейн #криптовалюты #кек
Одна из самых частых проблем в разработке под iOS — retain cycle, когда как минимум 2 объекта удерживают строгие ссылки друг на друга

Самый простой кейс — когда разработчик просто забыл сделать weak у delegate (да, такое бывает) или вызвал self в escaping замыкании дочернего объекта. В реальном большом проекте очень тяжело отыскать, кто держит сильную ссылку друг на друга, причем это могут быть не 2 объекта.

Разбираемся, как найти и исправить retain cycle с помощью инструментов Xcode: https://tproger.ru/articles/poisk-retain-cycle-s-pomoshhju-instrumentov-xcode/

#ios
От новичка до тимлида: гайд по продвижению

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

Подробнее: https://tprg.ru/yIsB

#советы #начинающим #softskills #карьера
​​Парное программирование наглядно:
Чтобы любой продукт развивался, его нужно постоянно улучшать и дорабатывать

Но далеко не каждая идея повысит конверсию, увеличит аудиторию или положительно повлияет на другие метрики. Один из самых популярных инструментов быстро проверить это — A/B тесты.

Если вкратце, для A/B-теста нужно выдвинуть гипотезу и разделить аудиторию на две группы: у группы А функциональность остаётся без изменений, а группе B выкатываются новые фичи. Судя по реакции можно почти точно понять, внедрять фичу или нет. В теории всё просто. А как насчёт реальных примеров?

В статье Александр Труфанов руководитель направления продуктовой аналитики МТС Медиа/KION на примере фичи Autoplay разбирает, как проводится A/B-тестирование: https://tprg.ru/6tle

#веб #дизайн #ux #тестирование