Pull to refresh
-3
0
Send message

Работа сети в пошаговой игре

Reading time7 min
Views7.8K
Три года назад я приступил к разработке Swords & Ravens — многопользовательской онлайн-адаптации в open source моей любимой стратегической игры A Game of Thrones: The Board Game (Second Edition), разработанной Кристианом Питерсеном и изданной Fantasy Flight Games. На февраль 2022 года на платформе ежедневно собирается примерно 500 игроков и с момента её выпуска было сыграно больше 2000 партий. Хотя я перестал активно разрабатывать S&R, благодаря сообществу open source на платформе всё равно появляются новые функции.


Напряжённая партия в A Game of Thrones: The Board Game на Swords & Ravens

В процессе разработки S&R я многому научился и мне бы хотелось поделиться своими знаниями с людьми, которых может заинтересовать создание похожего проекта. О его работе можно сказать многое, но в этой статье я сосредоточусь на том, как проектировалась сетевая часть игры. Сначала я опишу задачу формально. Затем объясню, как она решается в S&R, а также опишу другие возможные решения, придуманные или найденные мной. Я подробно расскажу о достоинствах и недостатках каждого способа, а в конце скажу, какой из них считаю лучшим.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments14

Rustenstein 3D: программируем, как будто сейчас 1992 год

Reading time11 min
Views10K
image

Дважды в год компания NextRoll организует мероприятие Hack Week, на котором сотрудники на неделю берутся за проект по своему выбору. Это превосходная возможность для экспериментов, изучения новых технологий и объединения с людьми из всех отделов компании. Узнать о Hack Week подробнее можно здесь.

Так как NextRoll всё активнее использует язык программирования Rust, на Hack Week инженеры обычно пытаются получить опыт работы с ним. Ещё одним популярным вариантом выбора является работа над видеоиграми, и, как вы уже могли догадаться, мы часто видим в проектах сочетание видеоигр и языка Rust.

В прошлом году группа сотрудников работала над развитием моей игры rpg-cli. На этот раз захотелось пойти дальше и взять проект, который показывает некоторые из сильных сторон Rust: низкоуровневым программированием, высоконагруженными вычислениями и операционной совместимостью данных с языком C. Поэтому мы решили портировать на Rust классическую игру Wolfenstein 3D.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments15

Новый запуск курса Natural Language Processing

Reading time2 min
Views5.3K

TL;DR: Этой осенью сообщество Open Data Science и компания Huawei делают новый запуск курса по обработке естественного языка. Страница курса вот. Первая лекция - в среду, 14 сентября.

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments0

GitOps с GitLab: CI/CD Tunnel

Reading time5 min
Views7.3K

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

Здесь мы посмотрим, как получить доступ к кластеру Kubernetes с помощью GitLab CI/CD и зачем это нужно, если вы взяли курс на GitOps.

Читать далее
Total votes 14: ↑12 and ↓2+10
Comments1

Мощный Managed Kubernetes бесплатно и надолго (для экспериментов и не только)

Reading time17 min
Views18K

Многие знают про аттракцион необычайной щедрости от Oracle. В своем облаке они дают Always Free не только пару небольших машинок на AMD, но и мощный сервер на ARM. 4 vCPU и целых 24GB RAM!

Поскольку с ARM я раньше дела практически не имел (только Raspberry, но это другое), мне было интересно погонять на нем Kubernetes, посмотреть отличия, сильно ли сложнее искать образы для ARM и т.п.

Так что в этой статье расскажу основные моменты, с которыми столкнулся, где ошибался. И в качестве примера свяжу его с домом через Wireguard, настрою Nginx ingress controller + basic auth + LetsEncrypt, а также мониторинг на Grafana + VictoriaMetrics.

>>>
Total votes 11: ↑11 and ↓0+11
Comments26

Как связан CI/CD и правила бережливого производства

Reading time4 min
Views4.6K

У терминов, которые мы используем в процессах CI/CD, много общего с терминами из фабричного производства. Например, пайплайн — его наиболее близкий литературный перевод «производственная линия» и это не случайно: лучшие подходы разработки ПО похожи на подходы фабричного производства. 

Эта статья — адаптированный урок Тимофея Ларкина, ведущего инженера X5 Retail Group, «Принципы работы CI и CD» курса по CI/CD. В ней мы расскажем про то, через какие боли проходят те, кто делает софт, как помогают правила бережливого производства, и какие шаги включить в пайплайн, чтобы 20% усилий дали 80% результата. 

Изучить
Total votes 13: ↑11 and ↓2+9
Comments2

DevOps + Data: Синергия двух миров = DataOps

Reading time4 min
Views5.2K

Что-то последнее время становится много Ops-ов: DevOps, MLOps, DataOps. ЧТО ты такое ?

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

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

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

Читать далее
Total votes 14: ↑12 and ↓2+10
Comments0

Как работать с Minikube: рекомендации и полезные советы

Reading time5 min
Views22K

Kube Earth by Anarki3000

Minikube — популярное решение для запуска локального кластера Kubernetes на macOS, Linux и Windows. Несмотря на большой набор функций и кроссплатформенную поддержку, Minikube всё же отличается от полнофункционального кластера Kubernetes.

Часто это сбивает с толку разработчиков и новых пользователей Kubernetes, которым нужно протестировать приложение в локальной среде. Команда Kubernetes aaS VK Cloud Solutions перевела статью о том, как наладить беспроблемную работу с Minikube.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments2

Собираем многомодульный Gradle проект в Gitlab CI

Reading time3 min
Views8.1K

Что может быть проще? Пишем команду сборкиgradle clean buildи все готово. На первый взгяд все действительно так, и займет это немного время. Но со временем кодовая база и, соответственно, количество тестов (ну я очень на это надесь) будет расти, вы не успеете опомниться как сборка будет у вас занимать уже 10 или больше минут

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments5

Gitlab CI «Smart» Pipeline: родители и дети

Reading time5 min
Views8.3K

За более 3х летний срок существования продукта у нас собралось более чем 20 репозиториев со spark проектами. Процесс CICD был реализован на Jenkins. С определенного момента у GitLab CI появилась возможность создавать собственные CICD. Но долгое время я совершенно не воспринимал всерьез этот инструмент. Так как мне нравилось, что в Jenkins можно взять и дописать то чего тебе не хватает на Groovy. Настройка WebUI предоставляет широкие возможности для организации параметризованных сборок. Поначалу функционал GitlabCI я воспринимал это как жалкое подобие Jenkins: чтобы реализовать ну что-то очень очевидное и простое, я уже молчу про параметризованную сборку.

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

Для примера у вас где-то в отдельном репозитории лежат yml, которые выполняют что-то вполне определенное, которое у вас может повторяться не только в одном проекте.

Читать далее
Total votes 12: ↑11 and ↓1+10
Comments9

Как сделать ваши GitLab CI пайплайны быстрее

Reading time8 min
Views30K

Привет, меня зовут Владимир. Я работаю в компании GitLab Архитектором Решений и время от времени я отвечаю на вопросы, которые, как мне кажется, могли бы быть интересны широкому сообществу. Сегодня я поделюсь рекомендациями о несколько способах ускорения выполнения CI/CD задачи в конвейерах GitLab.

Читать далее
Total votes 17: ↑17 and ↓0+17
Comments13

DARPA Challenge в песочнице

Reading time3 min
Views4.7K
image

Когда бум online-образования только начинался, я прошел курс на ai-class.com. Появилось желание сделать простую игру, в которой бы нейронная сеть обучалась, наблюдая за действиями пользователя. Игру хотелось сделать в стиле flappy birds, обучение должно было происходить в реальном времени, чтобы в любой момент можно было передать управление нейронной сети. В итоге, я сделал маленький симулятор управления машинкой, которая обучается ездить сама. Получилась интересная комбинация pygame, pytorch и multiprocessing. Если интересно, добро пожаловать под кат.
Total votes 13: ↑13 and ↓0+13
Comments5

Мониторинг веб-приложения на Rust с использованием Prometheus и Grafana

Reading time13 min
Views12K

В статье показано как настроить мониторинг веб-приложения на Rust. Приложение выставляет наружу Prometheus метрики, которые визуализируются с помощью Grafana. Мониторинг осуществляется для проекта mongodb-redis demo, детально рассмотренного здесь. В итоге получена следующая архитектура:


architecture

Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments10

Зимняя школа Intel-ННГУ по оптимизации производительности алгоритмов компьютерного зрения, 2-8 февраля 2022

Reading time2 min
Views1.6K


Что-то давно не анонсировали мы учебные мероприятия Intel. Это не означает, что компания не проводит академические программы — напротив, она верна своим традициям. В доказательство этого в очередной раз мы объявляем о совместном зимнем проекте Intel и Нижегородского Университета им. Н.И. Лобачевского, Зимней школе по оптимизации производительности алгоритмов компьютерного зрения. И принять в ней участие благодаря онлайн формату по-прежнему может любой желающий.
Заявки принимаются до 9 января включительно.
Читать дальше →
Total votes 3: ↑2 and ↓1+1
Comments2

Выбираем инструмент для разметки текста (и не только!)

Reading time16 min
Views8.4K

Рано или поздно перед любой компанией которая хочет внедрить системы машинного обучения в свою инфрастуктуру встает вопрос разметки данных. Чистые данные в достаточно большом количестве - залог хорошей модели, все мы прекрасно знаем правило "Garbage in - garbage out". Такой вопрос недавно встал и передо мной. В этом посте я поделюсь своим опытом поиска инструментов для разметки текста и звука под in-house разметчиков, постараюсь описать их плюсы и минусы, а в конце расскажу на чем мы в итоге остановились и что из этого вышло. Задачи на данном этапе относительно стандартные для NLP: классификация, NER, потенциально также может понадобиться entity-linking и разметка аудио под задачи ASR, но это пока менее приоритетно. Инструмент в идеале нужен open-source, но если будет приемлимый ценник за какие-то нужные фичи - мы готовы заплатить.

Заранее скажу, что этот пост никем не спонсировался, а все написанное ниже является сугубым ИМХО. Также имейте ввиду, что впечатления об использовании различных инструментов были составлены на момент написания статьи - осень-зима 2021-го года. Если вы смотрите на эти инструменты сильно позднее - возможно, информация будет уже не актуальной. Ну а теперь, поехали!

Читать далее
Total votes 34: ↑34 and ↓0+34
Comments8

Распознаем простые фигуры по массиву точек

Reading time6 min
Views7.6K

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

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

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments15

Разработка приложения на Flutter с нуля до релиза: Идея + Базовая инфраструктура

Reading time11 min
Views31K

Привет! В данном цикле статей я хотел бы показать, как может происходить создание приложений с использованием Flutter. У меня есть несколько Open Source решений, которые будут использованы в данном приложении. Что из этого получится - увидим в скором будущем.

Если долго мучаться...
Total votes 25: ↑25 and ↓0+25
Comments5

Собираем конструктор или архитектура сетевой безопасности. Случай 2 – Офис среднего размера

Reading time6 min
Views5.6K

Итак, наш бизнес идет отлично, шляпы продаются, количество сотрудников увеличивается, формируются отдельные подразделения: маркетинг, продажи, логистика. Потребность в своих собственных корпоративных сервисах становится все сильнее. Для них мы арендуем дополнительное помещение, покупаем пару серверов с виртуализацией, чтобы было все как у людей, и получаем небольшого размера центр обработки данных (ЦОД). Соответственно, создаем ядро нашей корпоративной сети на базе стека хороших коммутаторов. Количество сотрудников значительно выросло и для обеспечения стабильной связи мы организуем инфраструктуру Wi-Fi с точками доступа и контроллером для управления.

Читать далее
Total votes 2: ↑0 and ↓2-2
Comments4
1
23 ...

Information

Rating
Does not participate
Registered
Activity