Подобных статей достаточно много на просторах интернета, но хотелось бы написать актуальную вариацию. Лично я долгое время мучался в связке: Ubuntu — основная система, разработка под STM32 в виртуальной машине Windows 7. Но однажды меня это очень утомило и я таки решил потратить несколько дней на поиск решения и вылизывание полноценной среды под Linux Ubuntu. Забегу вперёд и скажу, что идеала я так и не добился, не удалось сделать realtime debug, как в Keil. В остальном всё очень пристойно.
Правильно настроить поведение камеры в классическом 2D-платформере не так просто, как может казаться.
Самый простой подход — жёстко привязать камеру к персонажу игрока, чтобы он всегда находился в центре экрана. Это может сойти для прототипов, но такая камера обладает недостатками, которые сильно раздражают игроков.
Например, если камера сдвигается вверх при каждом прыжке персонажа, то это запросто может вызвать тошноту. Кроме того, при мгновенном разгоне и остановке персонажа камера может резко дёргаться.
В нашей новой игре Tiny Thor мы экспериментировали с различными вариантами. Я хочу рассказать о том, на каких техниках мы в результате остановились. Читать дальше →
Недавно в Москве проходила вторая конференция по эксплуатации и администрированию информационных систем Uptime.commuinty, на которой мы тоже решили поделиться своим опытом. У нас как обычно, про наболевшее — про DDoS.
DDoS-атаки на Хабр начались лет десять назад и до сих пор представляют для нас неприятную проблему. Сначала были робкие попытки чуть-чуть подзалить, а сейчас для нас обычный DDoS — это порядка 30 Гбит/с. Это и не удивительно, потому что сейчас у каждой бабушки в Москве есть 50Мб. Всё по классике: одна старушка — 50, 10 старушек — 500…
Наравне с космосом в СССР мы покоряли и все остальные рубежи. В частности, Арктику — для неё в 1953 году было решено построить первый атомный теплоход. Этот проект по важности, размаху и освещению почти соответствовал покорению космоса. И здесь тоже была гонка с американцами: они закончили свой авианосец Энтерпрайз на 2 года позже.
Чтобы понять, чем так важен «Ленин», нужно начать с короткого описания ситуации.
Он был реально нужен. Наша экономика зависела от транспортных путей через Арктику, а нормальная навигация там возможна только 3-4 месяца. Обычные ледоколы требуют слишком много топлива, как следствие — не очень крупны (то есть не могут вести большие суда и караваны). Советская наука доказала, что ядерная установка идеально решает вопрос. Если строить энергосистему на ней, то можно сделать ледокол большим, тяжёлым, широким — и автономным на 2-3 года. А Курчатов с научной группой придумал, как именно это сделать.
Это была потрясающая возможность. Потому что можно было доказать всему миру, что наш атом реально мирный. И показать, как народы СССР в очередной раз превозмогли силы природы и раздвинули границы доступного человеческому.
А дальше начался крайне интересный проект. Я пройдусь по основным моментам, очень меня зацепившим. Читать дальше ->
Доброго времени, Хабраюзер!
Хочу поделиться с тобой идеей беспарольной авторизации.
Недавно лазил по сайтам центров сертификаций и наткнулся на интересную вещь. ЦС использую авторизацию по сертификату вместо пароля. Я считаю это удобным, для компании, а не для обычных интернет сайтов, где шарятся простые пользователи, но вход в АД (админ-центр сайта), было бы неплохо. Читать дальше ->
Аббревиатуру MVP можно интерпретировать по разному, но в статье речь пойдет не о спорте.
В сети есть большое количество статей по архитектурным паттернам для iOS и Android разработчиков, и по MVP в частности. Иногда паттерн рассматривается в контексте обеих платформ. Кто-то выбирает данный паттерн для улучшения тестируемости своего кода, кто-то использует его в основном для разделения кода представления от модели. Также встречаются решения, которые используют MVP для унифицирования кода платформ, при условии что разработчики в компании владеют данными технологиями. Но общих слов и выводов иногда недостаточно для разработчика-прагматика. При проектировании коммерческих приложений неизбежно возникает множество деталей, которые общая архитектурная концепция не может раскрыть, и нельзя сказать, что есть единственное каноническое решение.
В статье я постараюсь описать ситуации, с которыми очень часто сталкиваются мобильные разработчики на реальных проектах, и когда действительно стоит задуматься о переходе на архитектурный паттерн более сложный чем “One UIViewController (Activity) to rule them all”. Или лучше сказать, когда нам это будет выгодно. Далее речь пойдет о компромиссе между временем и сложностью разработки в реалиях “обычных” проектов, которые в основном приходят на оценку и разработку. Читать дальше ->
В водной статье я уже писал о том, что планируемым клиентом для проекта должен стать клиент Android: доступный большой аудитории, лёгкий, функциональный, красивый, быстрый (не приложение, а мечта!). Если с основаниями выбора платформы всё понятно, то с тем как реализовывать на базе неё все перечисленные требования – ясно было далеко не всё.
Ранее разработкой под Android не занимался поэтому достаточно ценными источниками информации для меня являлись:
После изучения указанных источников вопросов с архитектурой Android и взаимодействия их компонентов не осталось. Однако остался один наиважнейший вопрос: какова будет структура самого приложения? Пара примеров и прототипов показала, при росте функционала всё быстро начинало превращаться в «лапшу»:
Логика работы с объектами Android (Activity, Preferences, TextView ….) перемешивалась с бизнес-логикой;
Объекты хранения фигурировали в коде построения интерфейса;
Модульное тестирование превращалось в ад из-за необходимости работы с родными объектами Android и их подмены экземплярами Robolectric;
Проверка асинхронного кода была возможна только на устройстве или эмуляторе (по принципу: «запустил-проверил-повторил»).
О том, что такое программное обеспечение 1С, написано и рассказано очень много. Я и сам уже писал об этом программном продукте, например, в статье «Что такое 1С». И все равно по поводу этой программы и ее конфигураций возникает множество вопросов. Мне часто приходится пояснять руководителям, сотрудникам и разработчикам что такое «1С Управление торговлей редакция 11» или «1С Предприятие», чем одна конфигурация отличается от другой и как их правильно выбирать. А потому я решил серию статей посвятить особенностям типовых конфигураций. И для начала, поговорим о конфигурации «1С Управление торговлей».
Наше представление о будущем инструментов дизайна заключается в том, что и инструменты, и контент должны быть легко доступны. Вот почему мы создали Figma, командный инструмент работы над дизайном интерфейсов, как облачный сервис, распространяемый в виде веб-приложения.
Когда мы решились создать Figma, мы знали, что это будет серьезный вызов. Чтобы действительно преуспеть, необходимо предоставить высокоточный инструмент редактирования, который будет принят профессионалами, а так же будет работать одинаково хорошо в любом окружении.
Дорога к результату была очень непроста; в итоге, мы практически создали браузер внутри браузера.
Был опубликован твит, согласно которому можно получить привелегии суперпользователя, если в окошке System Preferences > Users & Groups открыть любого пользователя, щелкнуть на замке, после чего указать root в качестве пользователя и оставить пароль пустым. Несколько (sic!) кликов по Unlock «убеждают» MacOS в необходимости предоставить права суперпользователя.
Уязвимость была экспериментально подтверждена множеством пользователей.
Что еще хуже, данный трюк работает на экране входа в систему. Читать дальше ->
Итак, методика 4К в действии: продолжаем обучение. На сей раз виновника поста не пришлось искать долго — он постучался ко мне сам: через telegram. Что, прямо скажем, удивительно: то ли мы что-то упустили, то ли наглость бьёт рекорды, то ли это такой манёвр по отвлечению внимания. Впрочем — по порядку.
DVD [диск] начнет умирать уже лет через 5. […] Я опираюсь на информацию из сети про условия и максимальный срок жизни, вполне может быть и лажа. Но фильмы на DVD[,] купленные ~10 лет назад[,] сейчас не запускаются ни один из нескольких десятков.
Из обсуждения
За многие годы у меня скопилась значительная коллекция CD и DVD ROM, выпущенных массовыми тиражами, кроме того, периодически архивирую на одноразовые болванки свои файлы. Поэтому утверждение, приведенное в эпиграфе, не могло меня не заинтересовать. Читать дальше ->
Определение №1: Многозначной функцией, сокращенно М-функция, M=f(x) называется такая функция, у которой существует одна или более точек x, в которых М-функция может принимать множество различных значений (вертикаль) или одно повторяющееся значение (горизонталь). В исключительных случаях этот многозначный отрезок может отображаться под любым углом. Это можно увидеть на следующих графиках между точками разрыва обычной функции:
Под углом — https://goo.gl/PYTm5h
Горизонтально — https://goo.gl/CHE47v
Вертикально (на обычном графике отображается в виде разрыва, поскольку математические пакеты пока не оперируют таким понятием, как М-функция) — https://goo.gl/U7kzPC Читать дальше ->
От переводчика: постарался все изложить максимально близко к оригиналу. Перевод получился в свободной форме — думаю это лучше передаст смысл статьи. На картинках есть всплывающие подсказки. Оригинал здесь.
Я решил написать о некоторых типичных ошибках и проблемах, с которыми когда-то столкнулся сам, когда начинал разрабатывать Android-приложения три года назад, и нескольких других, с которыми сталкивались начинающие Андроид-разработчики. Итак, поехали!
Нашел интересный блог про .NET (C#), который мне очень понравился. Постараюсь время от времени переводить для Вас интереснейшие статьи и будем вместе обсуждать. Спасибо автору за прекрасный материал.
Недавно я заметил, что метод Equals из нашей структуры ValueTuple (*) генерирует значительный memory traffic (~1 ГБ). Читать дальше ->
Всем привет! 9 декабря в Высшей школе бизнес-информатики НИУ ВШЭ будет бесплатная конфа по игровой индустрии «Лекционный день». С 12:00 до вечера будут доклады от представителей игровых компаний, шоукейсы игровых проектов выпускников ВШБИ, розыгрыши призов, общение с представителями игровых компаний на их стендах, игры в виртуальной реальности, консультации по трудоустройству в геймдев, по локализации и продвижению игр, и многое другое! Хорошая возможность встретиться с коллегами по интересу к геймдеву. Вход на мероприятие бесплатный, по предварительной записи. Читать дальше ->
Скорости передачи данных, обеспечиваемые беспроводными системами связи, постоянно растут. На рынке появляются решения, способные заменить собой волоконно-оптический канал без необходимости прокладки самого волокна. Одно из таких решений – разработанная компанией Siklu система EH-5500FD, обеспечивающая скорость 5 Гбит/c при работе в E-диапазоне.
Хотя Discord — это приложение для голосового и текстового чата, каждый день через него проходит более ста миллионов изображений. Конечно, мы бы хотели, чтобы задача была простой: просто перенаправить картинки вашим друзьям по всем каналам. Но в реальности доставка этих изображений создаёт довольно большие технические проблемы. Прямая ссылка на картинки выдаст хосту с картинкой IP-адреса пользователей, а большие изображения расходуют много трафика. Чтобы избежать этих проблем, требуется промежуточный сервис, который будет получать изображения для пользователей и изменять их размер для экономии трафика.
Встречайте Image Proxy
Для выполнения этой работы мы создали сервис Python и креативно назвали его Image Proxy. Он загружает картинки с удалённых URL, а затем выполняет ресурсоёмкую задачу по ресайзингу с помощью пакета pillow-simd. Этот пакет работает удивительно быстро, используя где только возможно для ускорения ресайзинга инструкции x86 SSE. Image Proxy будет получать HTTP-запрос, содержащий URL, чтобы загрузить, изменить размер и, наконец, выдать окончательное изображение. Читать дальше ->
Сегодняшняя статья несколько необычна. Как минимум по той причине, что вместо анализа одного проекта, будем искать ошибки сразу в трёх, а также посмотрим, где найдутся наиболее интересные баги. А самое интересное — мы выясним, кто молодец и пишет самый качественный код. Итак, на повестке дня — разбор ошибок в коде проектов Firebird, MySQL и PostgreSQL. Читать дальше ->
Михаил Трутнев, COO самого популярного в мире музыкального сервиса Ultimate Guitar c ежемесячной аудиторией более 30 млн человек, выступил на конференции по продуктовому маркетингу Epic Growth Conference.
На Epic Growth Conference исполнительный директор Ultimate Guitar поделился нестандартными подходами к организации бизнес-процессов, работе с командой и просто к жизни. Смотрите видео или читайте заметки ниже. Читать дальше ->