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

Пользователь

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

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

Время на прочтение7 мин
Количество просмотров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, а также опишу другие возможные решения, придуманные или найденные мной. Я подробно расскажу о достоинствах и недостатках каждого способа, а в конце скажу, какой из них считаю лучшим.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии14

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

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

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

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

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

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

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

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

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

GitOps с GitLab: CI/CD Tunnel

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

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

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

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

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

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

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

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

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

>>>
Всего голосов 11: ↑11 и ↓0+11
Комментарии26

Simple serverless front + back

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

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

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

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

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

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

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

Изучить
Всего голосов 12: ↑10 и ↓2+9
Комментарии2

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

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

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

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

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

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

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

S3 + Lambda + ffmpeg (supports heic)

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

Достаточно частая задача веб разработчика - нарезать картинки. Предлагаю вашему вниманию готовое решение, используя Serverless framework + Lambda + S3.

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

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

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

Kube Earth by Anarki3000

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

Часто это сбивает с толку разработчиков и новых пользователей Kubernetes, которым нужно протестировать приложение в локальной среде. Команда Kubernetes aaS VK Cloud Solutions перевела статью о том, как наладить беспроблемную работу с Minikube.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+31
Комментарии2

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии13

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

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

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

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

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

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


architecture

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если долго мучаться...
Всего голосов 25: ↑25 и ↓0+25
Комментарии5

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

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

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

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

Информация

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