Разработчики теперь могут использовать сетевой API Valve для своих игр в Steam

Последние несколько лет Valve работали над улучшением качества мультиплеера в Dota 2 и CS:GO при помощи ретрансляции трафика и его переноса на свою сетевую магистраль. Это позволяет защищать игры от DoS-атак, понижает пинг и повышает качество соединения. В SDK Steamworks версии 1.44 Valve выкатили новый API, предоставляющее доступ к этой службе всем партнёрам Steam. Valve […]

Древности: IBM ThinkPad T40, первый беспроводной

Пятнадцать лет назад, в 2003 году, беспроводной интернет из дорогостоящей узкоспециализированной технологии начал превращаться в нечто доступное всем и само собой разумеющееся. Конечно произошло это не сразу: чтобы появился Wi-Fi, нужно было провести домой в каком-то виде проводной интернет, а на тот момент даже от модемного доступа отказались далеко не все. Важным этапом на пути […]

Китай вводит экспериментальную систему распознавания лиц при оплате проезда в метро

Поднебесная — весьма высокотехнологичное государство. Да, страну ругают за наплевательское отношение к неприкосновенности частной информации, которая собирается самыми разными методами. Но с этим вряд ли можно что-то поделать в ближайшем обозримом будущем. Пока же Китай вводит самые разные системы идентификации граждан. Какие-то из них объединены в единую сеть, какие-то — пока нет. Среди прочих систем […]

Что курил конструктор: необычное огнестрельное оружие

Не только военные роботы, дроны, боевые лазеры и прочие сверхсовременные технические решения могут быть интересны. Этот пост про несколько остроумных конструкций, в которых нет ни грамма электроники. Гибрид пистолета и револьвера под «треугольный» патрон, трехствольный советский автомат и безгильзовые стреляющие часы с кукушкой — военные диковинки середины прошлого века, которые отлично смотрелись бы в фантастическом […]

Kotlin как будущее разработки приложений на Android

С момента появления версии 1.0 прошло всего несколько лет, а язык приняли на вооружение многие крупные компании и разработчики. Всё благодаря тому, что создателям языка удалось добиться целей, поставленных в начале пути — разработать инструмент, который был бы удобнее и безопаснее Java, но менее сложен, чем Scala. В программу факультета Android-разработки GeekUniversity мы недавно добавили […]

Монолит для сотен версий клиентов: как мы пишем и поддерживаем тесты

Всем привет! Я бэкенд-разработчик в серверной команде Badoo. На прошлогодней конференции HighLoad я выступал с докладом, текстовым вариантом которого и хочу поделиться с вами. Этот пост будет наиболее полезен тем, кто самостоятельно пишет тесты для бэкенда и испытывает проблемы с тестированием legacy-кода, а также тем, кто хочет тестировать сложную бизнес-логику. О чём пойдёт речь? Сначала […]

Domain Driven Design: Value Objects и Entity Framework Core на практике

На Хабре и не только написано приличное количество статей про Domain Driven Design — как в общем про архитектуру, так и с примерами на .Net. Но при этом зачастую слабо упоминается такая важнейшая часть этой архитектуры, как Value Objects. В этой статье я постараюсь раскрыть нюансы реализации Value Objects в .Net Core с использованием Entity […]

Пробуем контрактное программирование С++20 уже сейчас

В С++20 появилось контрактное программирование. На текущий момент ни один компилятор ещё не реализовал поддержку этой возможности. Но есть способ уже сейчас попробовать использовать контракты из C++20, так как это описано в стандарте. TL;DR Есть форк clang, поддерживающий контракты. На его примере я рассказываю как пользоваться контрактами, чтобы как только фича появилась в вашем любимом […]

Дизайн классов: что такое хорошо?

Автор: Денис Цыплаков, Solution Architect, DataArt За годы работы я обнаружил, что программисты из раза в раз повторяют одни и те же ошибки. К сожалению, книги, посвященные теоретическим аспектам разработки, избежать их не помогают: в книгах обычно нет конкретных, практических советов. И я даже догадываюсь, почему… Первая рекомендация, которая приходит в голову, когда речь заходит, […]

О целесообразности Selenium WebDriverWait

Чем ближе я знакомлюсь с Selenium WebDriver, тем больше у меня возникает вопросов, почему тот или иной функционал выполнен так, а не иначе. В своем выступлении «Заморочки в Selenium WebDriver» Алексей Баранцев проливает свет на тонкости реализации этого инструмента автоматизации и разграничивает «баги» и «фичи». В видео вы найдете много интересного, но все же некоторые […]