Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга

WoG уже 20 лет…

Программирование *Разработка игр *Игры и игровые консоли
Из песочницы

Все это уже история... И я даже писал об этом (не на habr). Поэтому, возможно, кому-то это знакомо. Не думал, что тут стоит писать подобное, но, вижу, что фанаты Героев 3 (и вообще серии HoMM) тут очевидно присутствуют, поэтому рискну...

Время: 20 лет назад.

Место: Ээээ… всемирная паутина.

Действующие лица:

Gus Smedstad – программист Героев 3 и ведущий программист Героев 4.
Angelspit – хозяин крупнейшего сайта (в то время) http://www.celestialheavens.com
Denis "Kiar" Markov – хрен какой-то
Slava Salnikov (он же ZVS) – лидер команды WoG и ведущий программист WoG.

Предыстория (знающие могут пропустить).
WoG – любительский аддон к игре Герои Меча и Магии 3 (ставится поверх SoD). В детали его создания тут вдаваться не буду (Wiki скажет лучше: https://ru.wikipedia.org/wiki/Heroes_of_Might_and_Magic_III:_In_the_Wake_of_Gods ), но замечу, что только с официального сайта (свободно распространяемый ресурс) WoG в первые несколько месяцев был скачан пол миллиона раз (далее трудно оценить масштаб, но думаю несколько миллионов его хотя бы пробовали).

Основная же мысль, которую я хочу здесь озвучить: у меня НИКОГДА не было исходников Героев 3. WoG написан как отдельный EXE файл, который «прицепляется» моей утилиткой к готовому Heroes3.exe (купленная версия SoD английская), перехватывает управление и при старте «проникает» в тело SoD с целью установить множество call back’ов. Далее SoD работает, не зная о существовании «надстройки» в виде WoG, но, естественно им контролируется. Говоря простым языком, WoG это вирус на теле SoD.

Читать далее
Всего голосов 31: ↑31 и ↓0 +31
Просмотры 4K
Комментарии 6

Новости

Применение подхода eXtreme Multi-Label Classification для классификация записей материально-технических ресурсов

Блог компании Юнидата Обработка изображений *Хранение данных *Машинное обучение *Хранилища данных *

Данная работа является пересказом статьи Jingzhou Liu, Wei-Cheng Chang, Yuexin Wu, and Yiming Yang. 2017. Deep Learning for Extreme Multi-label Text Classification. In Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR '17). Association for Computing Machinery, New York, NY, USA, 115–124. https://doi.org/10.1145/3077136.3080834

Одно из направлений работ в нашей лаборатории Unidata Labs – классификация записей материально-технических ресурсов (МТР) с применением машинного обучения. В этой статье мы бы хотели кратко разобрать нашу постановку задачи как таковую, и после чего предложить разбор одного из методов, которым эта задача могла бы решаться.

Вкратце, продукт Юнидата МТР работает с данными, относящимися к материально-техническим ресурсам клиентов, которые представлены в Юнидата как реестр — т.е., коллекция записей. Записи МТР, как правило, содержат очень большое количество полей, но нас интересует только одно — полное наименование. Оно может выглядеть примерно так...

 

Читать далее
Рейтинг 0
Просмотры 445
Комментарии 1

Кто такой Analytics Engineer – E2E-решение с использованием bash + dbt + Looker

Блог компании OTUS Big Data *Data Engineering *

Привет! Меня зовут Артемий Козырь, и я Analytics Engineer в Wheely.

Мы могли бы долго и нудно обсуждать, кто такой Analytics (Data / Backend) Engineer, какими инструментами он должен владеть, какие buzzwords в тренде и ценятся в CV, однако, на мой взгляд, гораздо интереснее рассмотреть процесс и результаты его деятельности в рамках конкретной прикладной задачи.

В этой публикации:

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 311
Комментарии 0

3 способа использовать box-shadow в CSS

Блог компании Нетология Веб-дизайн *Разработка веб-сайтов *CSS *HTML *
Перевод

Тени помогают сделать визуальную составляющую сайта интересной и эстетичной. В посте рассмотрим свойство CSS box-shadow и то, как его можно стилизовать.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 983
Комментарии 2

W-функция Ламберта и ее приложения

Python *Программирование *Алгоритмы *Математика *
Из песочницы

Математический анализ знает множество замечательных функций со своими удивительными свойствами и применениями. Сегодня я бы хотел рассказать читателю об одной из таких - W-функции Ламберта.

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

Заполнители типа в Swift: что это такое и когда их следует использовать

Блог компании OTUS Разработка под iOS *Swift *
Перевод

Заполнители типа (type placeholders) — это новая языковая фича, представленная в Swift 5.6 (Xcode 13.3).

Сама концепция очень проста - вместо указания конкретного типа мы можем поставить _ (заполнитель типа), который предписывает компилятору самому определить заполняемый тип.

В следующем примере я использую заполнитель типа для name, который впоследствии разрешается в String.

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

Простая аутентификация на PHP

PHP *
Tutorial

Многие новички до сих пор попадают в тупик при написании простейшей аутентификации в PHP. На Тостере с завидной регулярностью попадаются вопросы о том, как сравнить сохраненный пароль с паролем полученным из формы логина. Здесь будет краткая статья-туториал на эту тему.

Disclaimer: статья рассчитана на совершенных новичков. Умудрённые опытом разработчики ничего нового здесь не найдут, но могут указать на возможные недочёты =).

Читать далее
Всего голосов 12: ↑8 и ↓4 +4
Просмотры 2.8K
Комментарии 46

Насколько хорошо защищены ваши пароли? Проверка проекта Bitwarden

Блог компании PVS-Studio .NET *C# *

Bitwarden – менеджер паролей с открытым исходным кодом. Это программное обеспечение помогает генерировать уникальные пароли и управлять ими. Получится ли у анализатора PVS-Studio отыскать ошибки в таком проекте?

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 2.8K
Комментарии 6

«Писать код — не главное». Авторы курсов из HTML Academy делятся секретами профессии

Блог компании HTML Academy Разработка веб-сайтов *Учебный процесс в IT Интервью

Академия началась 10 лет назад с интерактивных тренажёров по вёрстке, которые сделал Саша Першин. Через год появились полноценные интенсивные курсы для верстальщиков, а чуть позже добавились курсы по JavaScript, React и PHP. 

Всё это добро нужно было кому-то вести — сначала всё делали Саша и Лёша Симоненко, а потом их сменили другие авторы. Некоторых вы и без меня хорошо знаете — например, Вадима Макеева, который несколько лет вёл в Академии курсы по HTML и CSS. А всего за 10 лет у курсов Академии было 14 авторов. При этом автор — не наставник и не преподаватель в привычном смысле. Он не занимается отдельно с каждым студентом и не проверяет домашние задания и итоговые проекты. 

Чтобы узнать, чем на самом деле занимаются авторы, я подловил их в тёмном коридоре и задал кучу неудобных вопросов. Поговорили о работе авторов, секретах профессии, бесящих студентах, революциях в вебе, HTML 6, замене JavaScript и ответственности за судьбы людей.

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

«А поговорить?» или делаем звонок для подтверждения заказа в интернет магазине с помощью МТТ VoiceBox

API *Интернет-маркетинг Облачные сервисы Голосовые интерфейсы Визуальное программирование *
Tutorial

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

Но не переживайте, эта статья не о том, как я спустя 12 лет снова сел ковырять сайты на PHP. Всё это банально и писать об этом на Хабр я бы не стал.

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

Вы готовы загибать пальцы?

Итак, сегодня мы с вами:

- Настроим сценарий голосового бота для подтверждения интернет заказа.

- Одним глазом взглянем на API для управления ботом и отправим пару запросов через Postman.

- Добавим пару кастомных действий в WooCommerce, чтобы робот вместо оператора разными голосами подтверждал заказ.

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Просмотры 840
Комментарии 11

ТОП-3 ИБ-событий недели по версии Jet CSIRT

Блог компании Инфосистемы Джет Информационная безопасность *


Сегодня в подборке новостей Jet CSIRT — устранение уязвимостей в продуктах Azure и HP, а также новый вредонос NetDooka. ТОП-3 собрала Анна Мельникова, специалист центра мониторинга и реагирования на инциденты ИБ Jet CSIRT компании «Инфосистемы Джет».

Подробнее читайте под катом.
Читать дальше →
Рейтинг 0
Просмотры 341
Комментарии 0

QA без рутины: как мы автоматизировали регрессионное тестирование

Блог компании MY.GAMES Разработка игр *Unity *Тестирование игр *

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

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

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 2K
Комментарии 0

7 способов улучшить производительность Node.js в масштабе

Блог компании FirstVDS Высокая производительность *Node.JS *
Перевод

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

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

Следуя всем проверенным и протестированным советам по производительности в этой статье, вы сможете улучшить скорость и производительность вашего продукта, обеспечив ему преимущество, необходимое для успеха на рынке.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 1.1K
Комментарии 1

Дополнительные временные ряды в ETNA

Блог компании TINKOFF Open source *Машинное обучение *
Tutorial

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

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 503
Комментарии 1

Сравнение API Management платформ: результаты теста

API *
Recovery mode

В прошлый раз мы выложили в открытый доступ систему критериев, по которым решили оценивать API Management платформы. Сегодня поделимся результатом сравнения 10 решений, по которым нам удалось собрать подробную информацию и даже немного потестить.

Платформ на рынке значительно больше, как минимум 40, в наше сравнение попали следующие: WSO2 API Manager, Axway Amplify, Red Hat OpenShift API Management, Microsoft Azure API Management, Gravitee, Mulesoft Anypoint Platform, Tyk, Google Apigee API Management, IBM API Connect и Tibco Cloud API Management.

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 687
Комментарии 0

1x PCIe чтобы управлять всем

Блог компании Auriga Анализ и проектирование систем *Компьютерное железо
Из песочницы

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

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

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

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

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 2.8K
Комментарии 5

Как работает массив в Swift

Swift *

В прошлой статье мы поговорили про оценку относительной производительности структуры данных или алгоритма(Big O), теперь я предлагаю взглянуть на самый популярный тип данных - Массив и оценить производительность основных методов взаимодействия с ним, а также ответить на самые популярные вопросы на собеседовании про эту часть Swift.

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 737
Комментарии 11

Как ускорить работу на macos в Docker окружении с помощью Mutagen

Разработка веб-сайтов *PHP *Программирование *
Из песочницы

Если вы работали на macos в docker окружении, то наверняка сталкивались с проблемой в производительности, например, при работе над php проектом, операции с файловой системой (обновление пакетов composer, ребилд контейнеров symfony, etc.) занимают просто неадекватное количество времени. Об особенностях работы docker'а на macos написано уже множество статей, а также workaround'ов как заставить его работать быстрее. В этой небольшой статье покажу как в решении этой проблемы Mutagen помог мне с php проектом и быть может поможет вам.

Читать далее
Рейтинг 0
Просмотры 1.1K
Комментарии 7

OSINT по спутниковым изображениям

Блог компании Timeweb Cloud Информационная безопасность *Геоинформационные сервисы *Космонавтика
image

Мы живем в такое время, когда снимок со спутника можно получить в один клик. В оптическом, в инфракрасном и в радиодиапазоне. А еще историю изменений в определенной координате за несколько лет.

Зеленый Кот нашел разбившуюся советскую исследовательскую станцию «Марс-3» по снимкам со спутника, тысячи экологов следят за лесами Амазонки и состоянием береговой линии, школьники делают учебные проекты по слежке за популяцией моржей, репортеры проводят расследования, освобождают рабов, мониторят лагеря беженцев.

Предлагаю вам подборку бесплатных ресурсов и проектов со спутниковыми данными, программами обработки этих данных и полезные статьи.
Читать дальше →
Всего голосов 25: ↑25 и ↓0 +25
Просмотры 5.2K
Комментарии 3