Как стать автором
Обновить
742.45
OTUS
Цифровые навыки от ведущих экспертов
Сначала показывать

Постмортем: American McGee's Alice

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

В апреле 2001 года в журнале Game Developer Magazine постмортемом месяца стала American McGee's Alice — готическая игра в жанре action-adventure, переосмысленная классическая «Алиса в стране чудес» Льюиса Кэррола. Ее же поместили и на обложку журнала. Эта игра для ПК была первым самостоятельным проектом Американ МакГи после начала его работы в id Software и стала наиболее известной серией, в которой он использовал мрачную сказочную тематику. Позже она проявилась в Grimm — эпизодическом пересказе «Красной шапочки», созданной МакГи. Автор, объяснявший свои вкусы религиозным воспитанием, впоследствии выпустил продолжение «Алисы» — “Alice: Madness Returns”, которое вывело игру на консоли. Однако Electronic Arts не поддержал третью часть серии, что побудило Макги полностью отказаться от разработки игры.

Этот постмортем написал один из основателей Rogue Entertainment Джим Молинец. В нем речь пойдет о том, что, по мнению участников, в оригинальном проекте было сделано правильно и что неправильно. Это первая публикация с оригинальными иллюстрациями.

Читать далее
Рейтинг 0
Комментарии 0

Как итераторы в Rust могут ухудшить производительность: разбираемся в проблеме

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 3K

Недавно в сообществе разработчиков, где я состою, кто-то представил интересную проблему. Программа этого человека была спроектирована так, что она использовала как многопоточность для выполнения некоторых задач, и циклы for для повторения определенных операций в этих потоках. Однако когда были внесены изменения в код программы и циклы поменяли на итераторы, производительность программы резко ухудшилась. Почему это произошло?

Для опытного разработчика, знакомого с языком программирования Rust, данная ситуация, возможно, не является неожиданной или удивительной. Причина в том, что итераторы в Rust имеют свои собственные тонкости и особенности, которые могут остаться незамеченными при беглом рассмотрении. Эти особенности могут вызвать затруднения и недоразумения у разработчиков, особенно у тех, кто не обладает большим опытом работы с итераторами в Rust.

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

Читать далее
Всего голосов 18: ↑5 и ↓13 -8
Комментарии 6

Как управлять состоянием телеграм-бота

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

Привет!

Управление состоянием - это фундаментальный аспект создания телеграм-ботов, позволяющий нам эффективно управлять взаимодействием с пользователями и предоставлять более персонализированный опыт.

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

Представьте, что вы разрабатываете бота для магазина. Пользователь начинает диалог с ботом, добавляет товар в корзину, просматривает каталог, а затем задает вопрос о доставке. Без управления состоянием, боту пришлось бы собирать всю эту информацию заново в каждом новом сообщении, что было бы не только неэффективным, но и раздражающим для пользователя.

С управлением состоянием, бот может запомнить текущий контекст диалога, состояние корзины, выбранные товары и даже предыдущие вопросы пользователя.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 0

Реагирование на инциденты

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

Не одна система не может функционировать без сбоев. Всегда есть риск того, что в процессе работы могут возникнуть проблемы, связанные с функционированием аппаратной части, софта или действиями пользователей. Далее, в этой статье мы будем говорить об инцидентах информационной безопасности и о реагировании на такие инциденты. Собственно, инцидентами ИБ мы будем называть одно или несколько нежелательных событий информационной безопасности, в результате которых возможна компрометация бизнес‑операций и угроза ИБ. Последствиями инцидентов ИБ могут быть прерывания бизнес‑процессов, нарушение конфиденциальности, целостности или доступности активов объекта, что в свою очередь приводит к потере производительности, ущербу с точки зрения материальных затрат или репутации.

Читать далее
Всего голосов 7: ↑3 и ↓4 -1
Комментарии 1

Многомерный анализ данных: исследование многомерных кубов и SQL OLAP-запросов

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 2.4K

Привет, Хабр!

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

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

SQL (Structured Query Language) и OLAP (Online Analytical Processing) – два важных инструмента, которые помогают осуществлять многомерный анализ данных. SQL – это стандартный язык запросов для работы с реляционными базами данных. Он позволяет выбирать, фильтровать, суммировать и агрегировать данные.

OLAP предоставляет специализированные инструменты и структуры данных для многомерного анализа. Он позволяет создавать многомерные кубы, где данные организованы вокруг нескольких измерений, облегчая агрегацию и навигацию по данным.

Читать далее
Всего голосов 10: ↑6 и ↓4 +2
Комментарии 4

Какой монорепозиторий сейчас подходит для Node.js BACKEND?

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

На рынке монорепозиториев сейчас жара. Расцвет новых инструментов приводит многих в замешательство — что выбрать для следующего проекта? На что обратить внимание при выборе инструмента монорепо? В этой заметке мы постараемся разобраться в этом информационном перегрузе: поговорим о новых инструментах, подчеркнем важное и поделимся рекомендациями.

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

Как управлять трафиком с помощью BGP и OSPF

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

Привет, Хабр!

BGP и OSPF — это протоколы, которые позволяют нам строить и поддерживать сети, способные справляться с огромным объемом данных и обеспечивать высокую доступность. BGP чаще всего используется для маршрутизации трафика между разными автономными системами (AS), в то время как OSPF является внутренним протоколом для построения маршрутов внутри одной AS.

Читать далее
Всего голосов 15: ↑10 и ↓5 +5
Комментарии 4

Архитектуры RL: DDPG иPPO

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

Привет, уважаемые читатели Хабра!

В RL существует множество алгоритмов, каждый из которых имеет свои преимущества и недостатки.

DDPG (Deep Deterministic Policy Gradients) - это алгоритм, объединяющий в себе идеи из двух областей: DPG (Deterministic Policy Gradients) и DQN (Deep Q-Network). DDPG подходит для задач с непрерывным действием, и он стал основой к примеру для управления роботами и автономному вождению.

PPO (Proximal Policy Optimization) - это алгоритм, который сосредотачивается на обучении стратегии (policy) с учетом границ для обновлений. PPO стал популярным выбором благодаря своей стабильности и хорошей производительности в различных средах. Он также широко используется в научном обучение, ИИ героев в играх и в других областях.

Читать далее
Всего голосов 18: ↑14 и ↓4 +10
Комментарии 1

Ускоряем запуск Spring Boot-приложений в контейнере

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

Знаете ли вы, что Spring Boot-приложение в контейнере может запускаться за миллисекунды? При этом без ущерба для производительности, памяти, паритета окружений разработки-продакшена, без ограничений возможностей языка Java, и почти без изменения кода приложения. Но как? С помощью Liberty 23.0.0.10-beta…

Читать далее
Всего голосов 15: ↑9 и ↓6 +3
Комментарии 1

Истории из жизни вредоносов: знакомимся с Remnux

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

Представим следующую ситуацию, у нас имеется файл, который скорее всего содержит вредоносный код. Варианты с отправкой этого файла сазу на virustotal.com мы пока рассматривать не будем, так как это слишком просто не спортивно.

Можно конечно, поднять виртуалку/контейнер с Windows/Linux и в нем с помощью специальных инструментов анализировать работу данного файла. Естественно, использовать свою рабочую машину для анализа вредоносов идея, мягко говоря, не очень хорошая. Рано или поздно (скорее рано) вы не уследите при анализе в отладчике, и вредонос выполнится полностью и захватит контроль над машиной. 

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

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 0

Что GCC делает для усиления защиты ядра?

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

Усиление защиты ядра Linux — это задача, предполагающая постоянную работу сразу по нескольким направлениям. И иногда эта работа может быть выполнена даже не в самом ядре, а с помощью других инструментов, или даже в компиляторах. На конференции 2023 GNU Tools Cauldron Цин Чжао (Qing Zhao) рассказала о работе, проделанной в компиляторе GCC для укрепления ядра, а также о работе, которую еще предстоит проделать.

Проект Kernel self-protection является отправной точкой для львиной доли работ по укреплению ядра, — начала она. Усиление защиты может быть выполнено несколькими способами, начиная с исправления известных ошибок безопасности, которые могут быть обнаружены с помощью статических анализаторов, фаззеров или инспекции кода. Однако исправление ошибок — это задача, не имеющая конца, и гораздо лучше, когда у нас есть возможность полностью исключить целые классы ошибок. Таким образом, большая часть усилий по укреплению ядра была направлена на устранение таких проблем, как переполнения стека и кучи, целочисленные переполнения, инъекции форматных строк, утечки указателей, использование неинициализированных переменных, use-after-free уязвимости и т.д. Также ведется работа по блокированию разных методик эксплойтов, включая возможность перезаписи текста ядра или указателей функций.

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

Доклад Алексея Старовойтова на Linux Security Summit Europe 2023: BPF и безопасность

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

Виртуальная машина eBPF, работающая в ядре Linux, приближается к десятилетнему юбилею своего включения в состав Linux; за это время она успела превратиться в инструмент, имеющий целое множество применений в этой экосистеме. Алексей Старовойтов (Alexei Starovoitov), который является создателем eBPF и занимался ее развитием, особенно на начальном этапе, выступил на открытии Linux Security Summit Europe 2023 с докладом о взаимосвязи BPF и безопасности. В нем он поделился с нами интересными историческими моментами в несколько иной перспективе, нежели они обычно раскрываются. Среди прочего, он рассказал, как BPF на протяжении всего своего пути была одновременно и проблемой безопасности, и ее решением.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 0

concurrent.futures в Python

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

Привет, Хабр! Сегодня мы взглянем на одну из самых интересных библиотек в Python для работы с параллельным выполнением задач - concurrent.futures.

Каждый разработчик сталкивается с ситуациями, когда необходимо выполнять задачи параллельно. Это может быть I/O-операции, которые блокируют основной поток, или вычисления, требующие большого объема процессорных ресурсов. Здесь на помощь приходит concurrent.futures - модуль, предоставляющий высокоуровневый интерфейс для асинхронного и параллельного выполнения задач.

Какие преимущества предоставляет этот модуль?

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 3

Управляемое данными тестирование с использованием Cucumber

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

Тестирование на основе данных позволяет сократить объем ручных действий, необходимых для проведения тестирования, а также упростить управление и сопровождение тест-кейсов. В целом использование тестирования на основе данных позволяет повысить качество программного обеспечения и гарантировать, что оно соответствует требованиям и ожиданиям пользователей. В этой статье рассмотрим Data-driven тестирование с использованием Cucumber.

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 3

Применение архитектурных шаблонов в машинном обучении: разбор Gradient Boosting

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 1.5K

Привет, Хабр!

Архитектурные шаблоны в машинном обучении представляют собой общие структуры и методологии, которые позволяют разработчикам более эффективно решать задачи. Они представляют собой набор bewährte Lösungen, то есть "проверенных решений", которые могут быть адаптированы к конкретным задачам и данным. Использование архитектурных шаблонов позволяет сэкономить время и ресурсы при разработке моделей машинного обучения.

Gradient Boosting – это один из наиболее мощных и гибких архитектурных шаблонов в машинном обучении. Он позволяет строить ансамбли моделей, комбинируя слабые ученики в сильную модель, способную решать разнообразные задачи классификации и регрессии. Этот метод обрел популярность благодаря своей способности обучаться на ошибках предыдущих моделей, постепенно улучшая свои прогнозы.

Преимущества Gradient Boosting включают в себя высокую точность прогнозов, устойчивость к переобучению и способность работать с разнородными данными. Он также позволяет эффективно решать задачи как классификации, так и регрессии, что делает его незаменимым инструментом для разработчиков.

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

Ловим сетью. 5 способов автоматизировать поиск информации при помощи нейросетей

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 3K

Вы до сих пор ищете информацию по старинке или идете в ногу со временем, обращаясь за помощью к нейросетям? В современном информационном мире поиск и обработка огромных объемов данных становятся все важнее для многих компаний и организаций. Согласно опросу HubSpot 45% маркетологов уже используют нейросети для поиска информации.

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

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

Какую библиотеку на Python выбрать для создания телеграм-бота?

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

Привет, Хабр!

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

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

Этот обзор поможет вам сохранить время и ресурсы, а также создать более надежный и эффективный телеграм-бот на Python.

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

SQLx: raw SQL в Rust

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

Когда речь заходит об использовании SQL, экосистеме Rust есть что нам предложить: к счастью, нам доступны несколько отличных готовых к использованию решений. SQLx — это чисто асинхронный, независящий от рантайма SQL-крейт, позволяющий использовать проверяемые во время компиляции запросы без какого-либо DSL.

Читать далее
Всего голосов 24: ↑18 и ↓6 +12
Комментарии 20

Роль HR в борьбе с профессиональным выгоранием

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

Привет, Хабр!

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

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

Применение HR-аналитики позволяет выявлять рисковые ситуации и зоны, где выгорание может возникнуть. Например, анализ данных о рабочих нагрузках и сроках выполнения проектов может помочь выявить проекты, где сотрудники подвержены повышенному стрессу. Это дает возможность компаниям реагировать заблаговременно и рассредоточить нагрузку более равномерно.

Читать далее
Всего голосов 16: ↑10 и ↓6 +4
Комментарии 12

Илья Суцкевер, главный научный сотрудник OpenAI, о своих надеждах и опасениях относительно будущего ИИ

Уровень сложности Простой
Время на прочтение 13 мин
Количество просмотров 6K


Я пришел на встречу с Ильей Суцкевером, соучредителем и главным научным сотрудником OpenAI, в неприметное офисное здание компании на непримечательной улице в районе Мишн в Сан-Франциско. Мы поговорим о том, что будет дальше с перевернувшей мир технологией, к появлению которой он приложил немало усилий. Также я собираюсь расспросить Илью о его личных планах — в частности, почему создание следующего поколения флагманских генеративных моделей больше не является основным фокусом его работы.

Вместо создания следующего GPT или генератора изображений DALL-E, новая приоритетная задача Ильи — выяснить, как остановить искусственный сверхинтеллект (гипотетическую технологию будущего, которую он видит с прозорливостью истинно верующего) так, чтобы он не стал «мошенником».
Читать далее
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 8

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS