Как стать автором
Обновить
0
0
Павел @Shpall

Backend

Отправить сообщение

Дизайн уровней в The Last Guardian: пример геймплейного повествования

Время на прочтение6 мин
Количество просмотров4.2K

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

Читать далее
Всего голосов 9: ↑7 и ↓2+5
Комментарии2

Сравнение популярных брокеров MQTT с открытым исходным кодом

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров16K

MQTT (Message Queue Telemetry Transport) — легковесный протокол обмена сообщениями для публикации/подписки сообщений, на настоящий момент этот протокол является основным стандартом в Интернете Вещей (IoT). Брокер MQTT — главный узел (серверное ПО) для подключения IoT устройств и обмену сообщений между ними. На текущий момент доступно более 20 брокеров MQTT с исходным кодом, что затрудняет выбор архитекторами и разработчиками программного обеспечения. В статье будут рассмотрены и сравнены некоторые из самых популярный MQTT-брокеров.

Читать далее
Всего голосов 21: ↑18 и ↓3+15
Комментарии11

Предсказание оттока пользователей с помощью метода RFM

Время на прочтение5 мин
Количество просмотров6.3K
Представьте: телефонный звонок в три часа ночи, вы берете трубку и слышите крик о том, что больше никто не пользуется вашим продуктом. Страшно? В жизни, конечно, все не так, но если не уделять должное внимание проблеме оттока пользователей, можно оказаться в похожей ситуации.

Мы уже подробно рассказали, что такое отток: углубились в теорию и показали, как превратить нейросеть в цифрового оракула. Специалисты студии Plarium Krasnodar знают еще один способ предсказания. О нем мы и поговорим.

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии4

Операционные системы с нуля; Уровень 0

Время на прочтение11 мин
Количество просмотров132K

Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


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

Читать дальше →
Всего голосов 80: ↑78 и ↓2+76
Комментарии55

Операционные системы с нуля; уровень 1 (старшая половина)

Время на прочтение22 мин
Количество просмотров41K

Настало время следующей части. Это вторая половина перевода лабы №1. В этом выпуске мы будем писать драйверы периферии (таймер, GPIO, UART), реализуем протокол XMODEM и одну утилитку. Используя всё это мы напишем командную оболочку для нашего ядра и загрузчик, который позволит нам не тыкать microSD-карточку туда-сюда.


Младшая половина.
Начинать чтение стоит с нулевой лабы.

Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии20

Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер?

Время на прочтение21 мин
Количество просмотров45K
Недавно на форуме человек задал вопрос о том, как же правильно делить выделенный сервер на виртуальные:



И что меня поразило, так это уверенность в том, что никто никогда не поделится подобной информацией:



Потому, я очень хочу рассказать, как мы реализовали решение у себя. Все подводные камни и секреты данного решения. И ещё раз продемонстрировать то, что простота порой делает решения волшебными. Так как мы не получили за всё время работы ни одной жалобы от клиентов этой услуги, а это говорит о многом.
Читать дальше →
Всего голосов 39: ↑33 и ↓6+27
Комментарии55

Читаем контейнер закрытого ключа КриптоПро средствами OpenSSL

Время на прочтение8 мин
Количество просмотров83K
Речь пойдет о файлах primary.key, masks.key и header.key, которые лежат в директории ххххх.000 на флешке. Данные файлы входят в состав криптоконтейнера закрытого ключа электронной подписи криптопровайдера КриптоПро, формат которого нигде не опубликован. Целью данной статьи является чтение контейнера и преобразование закрытого ключа в формат, который может быть прочитан в библиотеке OpenSSL. Долгое время было распространено ошибочное суждение, что достаточно сделать нечто вида (primary_key XOR masks_key) и мы получим закрытый ключ в чистом (raw) виде, однако забегая вперед, можно утверждать, что в КриптоПро было применено более сложное преобразование, в худшем случае состоящее из более чем 2000 (двух тысяч) операций хеширования.

Стоит упомянуть о существовании утилиты P12FromGostCSP которая позволяет конвертировать ключ в формат P12, доступный для работы с OpenSSL, но утилита имеет следующие существенные недостатки:
  • Читает контейнер не напрямую, а через криптопровайдер, поэтому там, где кроме OpenSSL ничего нет, не работает.
  • Если в свойствах ключа не отмечено, что ключ «экспортируемый», то конвертировать его невозможно.
  • В демо версии не формирует файл с ключом, эта возможность присутствует только в платной версии.

Файл primary.key


Содержит 32 байта ключа в формате Asn1. Это только половина ключа, полный ключ получается при делении этого числа по модулю Q на маску. Поле, хранящее модуль Q в библиотеке OpenSSL имеет название order. Маска лежит в файле masks.key:

primary.key
Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии44

Как построить гоночный коптер и не устать

Время на прочтение6 мин
Количество просмотров24K
Многих интересует тема строительства мультироторных гоночных квадрокоптеров на раме ZMR250, но как только начинаешь исследовать тему, то обнаруживается просто тонна специфической информации, которая может только отпугнуть новичков, но никак не помочь при этом.

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


Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии55

Тихий кризис в разработке софта

Время на прочтение12 мин
Количество просмотров35K


Обо мне


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

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

Во Вселенной работает довольно жестокий вид кармы.

В моем нынешнем положении в качестве старшего директора по развитию программного обеспечения у меня есть 6 менеджеров по развитию, которые отчитываются передо мной. Только в моей организации около 50 разработчиков программного обеспечения. У нас завидно низкая текучесть кадров и очень высокий уровень удовлетворенности клиентов.

За эти годы я поделился со своими подчиненными и их непосредственными подчиненными теми же выводами, которыми я собираюсь поделиться с вами сейчас. Эти выводы — это выстраданная мудрость, а не то, что я интуитивно знал или читал. То есть, я узнал это, пройдя через трудный путь.

Всего голосов 107: ↑84 и ↓23+61
Комментарии56

Проверяем партнера по открытым источникам

Время на прочтение3 мин
Количество просмотров40K


В нашей стране никто не застрахован от «кидалова» партнером по договору: заказчики не платят фрилансерам, соучредители выходят из проекта, а поставщики отказываются от выполнения контрактов. Хорошие закупщики за то и ценятся, что имеют хорошие базы и связи в налоговой и могут неофициально проверить любого контрагента. К счастью, непрозрачный российский рынок в последние годы проясняется: появилось сразу несколько бесплатных государственных сервисов для проверки контрагента на честность. О них и пойдет речь в статье.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии19

Генерируем псевдослучайные ID а-ля Youtube

Время на прочтение4 мин
Количество просмотров24K
Привет, %username%! Бывает необходимо генерировать ID не подряд, причем чтобы они гарантированно не повторялись. На youtube это используется для того, чтобы вы не могли брутфорсом получить все новые и старые видосики, так же это не редкость на разных файлообменниках и вообще везде где нужно предотвратить или хотя бы затруднить возможность прямого перебора значений.


К примеру, в системе moodle, которая использовалась у нас в универе для тестирования студентов, ID ответов были инкрементными и сквозными на всю базу. Логично предположить, что правильным ответом был тот, что с наименьшим ID в пределах вопроса. В общем, проблем с тестами у нас не было. Потом они перешли на GUID, но я к тому моменту уже выпустился, хехе.

Давайте рассмотрим несколько способов генерации таких ограниченных по длине последовательностей от самых простых до криптографически стойких.
Читать дальше →
Всего голосов 69: ↑63 и ↓6+57
Комментарии41

Миф о незрелости мобильных NFC технологий

Время на прочтение2 мин
Количество просмотров6.4K
Современные NFC-технологии в их нынешнем виде появились в 2002 году. Однако, начало этим технологиям было положено еще в 1980, с появлением RFID. Возможно, причина, по которой люди считают эту технологию недостаточно зрелой, заключается в том, что за годы, прошедшие с момента ее изобретения, она не успела получить массового распространения. Действительно, пользователи по всему миру начали активно применять NFC технологии только в последние 18 месяцев, после запуска систем мобильных и бесконтактных платежей.


Читать дальше: Миф о незрелости мобильных NFC технологий
Всего голосов 15: ↑12 и ↓3+9
Комментарии8

Дайджест последних достижений в области криптографии. Выпуск нулевой

Время на прочтение3 мин
Количество просмотров23K


Привет!
Хотелось бы в одной статье вкратце рассказать о достижениях математиков, которыми мы уже пользуемся или скоро будем.
Начнем
с постквантовой криптографии
Всего голосов 38: ↑36 и ↓2+34
Комментарии26

Простые опыты с ребенком дома

Время на прочтение8 мин
Количество просмотров81K

Пример очень неудачного опыта, пояснение в разделе “о технике безопасности”

К моему предыдущему посту было множество комментариев по части экспериментов с детьми. Тогда я пообещал написать отдельный пост о простых увлекательных опытах. Сейчас я это обещание выполняю. Данная статья будет вводной, в ней я расскажу только о самых популярных и известных экспериментах которые легко выполнить дома с ребенком.
Читать дальше →
Всего голосов 69: ↑66 и ↓3+63
Комментарии164

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

Время на прочтение7 мин
Количество просмотров398K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Постановка задачи


Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
Читать дальше →
Всего голосов 198: ↑196 и ↓2+194
Комментарии120

Дорабатываем открытый код — развиваем и показываем всем свои навыки разработки ПО

Время на прочтение6 мин
Количество просмотров23K
Многие начинающие разработчики сталкиваются с необходимостью показать существующий опыт разработки ПО. Даже если вакансия называется «программист без опыта работы», то и без Капитана ясно, что предпочтение будет отдано претенденту, показавшему более-менее внятный код, более-менее подтверждающий наличие полезных в работе навыков.

Что же делать? Показать решение типового задания с ранних курсов или дипломный проект? Возможно, этого мало? Может быть, написать какую-нибудь впечатляющую программу и заодно получить опыт разработки? Например… калькулятор или компилятор или что там обычно пишут для получения и показа опыта? А если не хватит сил закончить?

На эти вопросы и сомнения есть один почти универсальный ответ — доработка проектов с открытым кодом. Вы получаете возможность решать реальные проблемы самых разных уровней сложности, результат не только будет работать у сотен-тысяч-миллионов людей во всем мире, но его еще и можно будет показать. Эту возможность иногда упоминают, но обычно на ней не останавливаются. В этот раз — остановимся на ней.
Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии51

50+ полезных ресурсов для самообучения

Время на прочтение6 мин
Количество просмотров118K
learning

На сегодняшний день, когда информация стала доступна как никогда и получить новые знания проще простого, у нас появилась другая проблема: как фокусироваться и структурировать новые знания, если отсутствуют внешние ограничения вроде экзамена или необходимости подготовки к уроку?
И снова нас спасают разработчики и интернет, где появляется все больше открытых университетов, онлай-курсов, лекций и сервисов организации своего обучения.
Я решила собрать в одном месте ссылки на ресурсы дистанционного обучения и другие полезные сервисы на английском и русском языках, большинство из которых бесплатны. Не было цели охватить все, но если вы считаете, что в список нужно что-то добавить –, пожалуйста, напишите в комментариях.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии16

15 тривиальных фактов о правильной работе с протоколом HTTP

Время на прочтение7 мин
Количество просмотров232K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →
Всего голосов 191: ↑186 и ↓5+181
Комментарии120

Электронные сигареты: ликбез

Время на прочтение11 мин
Количество просмотров118K
Электронные сигареты набирают всё большую популярность, но, как показывает практика, многие курильщики, решившие избавиться от пагубной привычки и перейти на электронику, разочаровываются в ней. Во-первых они не утоляют никотиновый голод, во-вторых обходятся дорого (хотя где-то слышали, что дешевле), в-третьих — часто ломаются. А всё из-за того, что пробовали они нечто подобное представленному на картинке.
В этом посте я попробую немного рассказать о современном состоянии дел на этом стремительно растущем рынке, что должно помочь сделать выбор. Советов про вред или пользу, за или против не будет. Их полно в сети (например, очень хорошо сказано про это в недавнем посте), кому верить каждый решает сам.
Читать дальше →
Всего голосов 54: ↑43 и ↓11+32
Комментарии219

Сказ о том как спектральные характеристики освещения влияют на нашу жизнь

Время на прочтение9 мин
Количество просмотров52K
Граждане читатели, технари и гуманитарии, вы находитесь в опасности, немедленно переместитесь на улицу под теплое летнее солнышко (если погода позволяет), это не учебная тревога! Повторяю это не учебная тревога! Ну а если окружающие не оценят вашу попытку провести эвакуацию, то устраивайтесь поудобнее и давайте поговорим с вами об освещении. Если в двух словах, статья про воздействие бытового (внутреннего) освещения на наш с вами организм. Я постараюсь не перегружать статью техническими сведениями, для всех любознательных коллег оставлю соответствующие ссылки. Однако, без графиков все же не обойдемся (люблю я их просто). Статья получилась длинная, так что в итоге я решил что мы рассмотрим в первую очередь спектральную характеристику освещения (тут подробнее).

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

А вот, что же там Василия ждало, спрятано под катом, всех любознательных милости просим.

Статья будет большая и по смыслу делиться на три части
1 – Спектральные характеристики источников света
2 – Как можно померить спектр с помощью прямых рук и «синей изоленты»
3 – Кратко о воздействии света на человека


Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии74

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность