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

Lua *

Скриптовый язык программирования

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

DDoS атаки на 7 уровень — защита сайтов

Время на прочтение6 мин
Количество просмотров11K
DDoS атаки на 7 уровень (на уровень приложения) наиболее простой способ привести в нерабочее состояние сайт и навредить бизнесу. В отличие от атак на другие уровни, когда для отказа сайта необходимо организовать мощный поток сетевого трафика, атаки на 7 уровень могут проходить без превышения обычного уровня сетевого трафика. Как это происходит, и как от этого можно защищаться я рассмотрю в этом сообщении.
Читать дальше →

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

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

В digital-агентстве Convergent, где я работаю, в потоке множество проектов, и у каждого из них может быть собственная админка. Есть несколько окружений (дев, стейдж, лайв). А ещё есть разные внутрикорпоративные сервисы (как собственной разработки, так и сторонние вроде Redmine или Mattermost), которыми ежедневно пользуются сотрудники. 

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

Читать далее

Чем Tarantool круче Redis'а для IoT-сервисов

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


Киберпанк 2077 уже наступил. Уровень развития технологий — это почти полное воплощение в реальность мечтаний писателей-фантастов. Умные устройства, «интеллектуальная» среда обитания, автоматизация ручного труда и управление техникой сквозь время и пространство. Полное торжество кибернетики, отложенного старта и дистанционного управления.

Эти «воспоминания о будущем» можно найти как у отечественных писателей, так и у зарубежных. Братья Стругацкие, Сергей Снегов, Кир Булычёв, Рей Брэдбери, Артур Кларк, Станислав Лем предсказали нам то, что мы называем Internet of Things, интернет вещей.

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

Я расскажу о том, как компания Ready For Sky применила Tarantool, чтобы воплотить «воспоминания о будущем» у вас дома.
Читать дальше →

Сколько стоит расписание

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

Основные данные вычислительных экспериментов по реорганизации ярусно-параллельной формы  (ЯПФ) информационных графов алгоритмов (ТГА) приведены в предыдущей публикации. Цель текущей публикации – показать окончательные результаты исследований разработки расписаний выполнения параллельных программ  в показателях вычислительной трудоёмкости собственно преобразования  и качества полученных расписаний. Данная работа является итогом вполне определённого цикла исследований в рассматриваемой области.

Читать далее

Домашний DPI, или как бороться с провайдером его же методами

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

Долгое время я терпел ограничения РосКомНадзора и соответствующие действия провайдеров по различным ограничениям доступа к сайтам - но с определённого момента устал, и начал думать как бы сделать так, чтобы было и удобно, и быстро, и при этом с минимумом заморочек после настройки... Хочу оговориться, что цель анонимизации не ставилась.

Вообще, эта проблема имеет несколько решений... Но я решил бороться с провайдером их же методом.

...При помощи NGINX!

Как создать свою собственную Луну

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

В этой статье рассказывается, как с нуля изготовить 3D-модель Луны. Казалось бы, Зачем создавать модель Луны самому, если её можно купить? Хотя бы потому, что при самостоятельном изготовлении модели Луны вы сможете задавать желаемые параметры, например размеры и толщину оболочки, разрешение изображения, пределы вращения, положение секущей плоскости, сможете сделать отверстие для лампы и так далее. Приступим же к творению своей собственной Луны.

Приятного чтения

Параллелизм и плотность кода

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

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

Естественным перед началом анализа будет указание ограничений на ширину и глубину исследований. Принимаем, что многозадачность в рассматриваемых параллельных системах осуществляется простейшим путём - перегрузкой всего блока (связки) выполняющихся операторов (одновременное выполнение операторов разных программ не предполагается) или же система работает в однозадачном режиме; в противном случае высказанное в предыдущей фразе утверждение может быть неверным. Минимизация   объёма устройств временного хранения данных (описано здесь) проводиться не будет. На этом этапе исследований также не учитываются  задержки времени на обработку операторов и пересылку данных между ними (для системы SPF@home формально эти параметры могут быть заданы в файлах с расширениями med и mvr).

В предыдущей публикации была описана технология получения ПВПП на основе модели потокового (Data-Flow) вычислителя. Обычно считают, что правила выбора операторов для выполнения в такой машине подчиняются логике действия некоторых сущностей, совместно выполняющих определённые  действия – “актёров” (actors); при этом естественным образом моделируются связанные с характеристиками времени параметры обработки операторов. В общем случае при этом отдельные операторы выполняются асинхронно.  В публикации показано, что описанный принцип получения ПВПП приемлем (при выполнении несложных условий) и для машин архитектуры VLIW (Very Long Instruction Word, сверхдлинное машинное слово),  отличающихся требованием
одновременности начала выполнения всех операторов в связке. В расчётах использовали модель ILP (Instruction-Level Parallelism,  параллелизм  уровня машинных команд).

Читать далее

Три года я работал в VSC – и переключился на Lite

Время на прочтение4 мин
Количество просмотров18K
Lite на моём компьютере с Linux, снято автором. Фотография ноутбука с Linux и редактора Lite, который выполняется на ноутбуке

Вероятно, Lite подойдёт программистам, которым не нужно слишком много функций, чтобы писать код. Редактор создал впечатление Notepad++, урезанного в сторону Блокнота. В нём есть очарование минимализма и любопытный исходный код, но хотя бы небольшого обзора на Хабре не было до сих пор. Я исправляю ситуацию. Не лишним будет сказать, что автор оригинала – разработчик веб-фреймворка Neutralinojs, публикации о котором есть на Хабре, а также член комитета управления проектами в Apache Software Foundation.
Читать дальше →

Как образовательный коптер помогает научиться программировать на Python, и что не так с Lua

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

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

Ключевые элементы обучения на сегодняшний день - это развитие навыков программирования для решения задач автономного полета коптера, понимание основ алгоритмов управления и работа с различными функциональными модулями. Для юных пользователей порог входа был снижен за счёт возможности использования визуального блочного программирования в плагине для TRIK-Studio, а вот создание более сложных программ требовало знакомства с языком Lua.

В 2020 году линейка Пионеров дополнилась новыми моделями - появились младший  и старший «братья»  Мини и Макс. И если по размеру и массе братья стоят по ранжиру  - Мини самый маленький и легкий, а Макс самый большой и тяжелый, то по функционалу младший уже готов дать фору своему предшественнику (назовём его Классическим Пионером).

Читать далее

Синхронная репликация в Tarantool

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


Tarantool — это платформа для in-memory вычислений, где упор всегда делался на горизонтальную масштабируемость. То есть при нехватке мощности одного инстанса нужно добавить больше инстансов, а не больше ресурсов одному инстансу.

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

Задача реализации синхронной репликации стояла перед командой разработчиков Tarantool долгие годы, к ней было совершено несколько подходов. И вот теперь в релизе 2.6 Tarantool обзавёлся синхронной репликацией и выборами лидера на базе алгоритма Raft.
Читать дальше →

Мониторинг Tarantool: логи, метрики и их обработка

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

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


Мониторинг Tarantool


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

Читать дальше →

Такие важные  короткоживущие данные

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

Поговорим о вре́менных данных, служащих для информационного обмена между отдельными вычислителями в (максимально близкорасположенных) параллельных вычислительных системах.

Читать далее

Роутер Микротик управляет радиотрансляцией и озвучивает Умный дом

Время на прочтение8 мин
Количество просмотров13K
Недавно, я случайно познакомился с программой RadioBoss компании DJSoft.Net, одной из программ автоматизации радиовещания.



Возможности программы весьма обширны, меня же больше прельстило то, что она поддерживает API управление, что позволяет удаленно полностью управлять проигрыванием музыки на компьютере с установленным RadioBoss. У меня давно была мечта иметь возможность удаленного воспроизведения медиа без подключения к рабочему столу удаленного ПК и вообще без компьютера. Пусть за меня это делает, например, … мой роутер Микротик!

Как известно, Роутер ОС Микротик имеет встроенный мощнейший скриптовый язык, позволяющий писать любые сценарии и программы по автоматизации работы роутера. Но не только роутера! Скриптовая команда /tool fetch позволяет организовать внешние GET и POST запросы на указанный URL и таким образом, обращаться к любому оборудованию или программам с открытыми API. Например, реализованы скрипты и библиотеки команд по управлению из Микротик модулями интернет реле и мониторинга среды (можно посмотреть и скачать здесь), получения сведений о погоде, оповещениях о событиях в Телеграмм и управления роутером через Телеграмм, определения времени восхода/заката солнца c организацией астрономического реле и т.д…
Читать дальше →

Ближайшие события

Umka и трактор: первый опыт практического применения нового языка

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

С весны нынешнего года я разрабатываю статически типизированный встраиваемый скриптовый язык Umka, о концепции которого в своё время была статья на Хабре. При этом по своей основной профессии я занимаюсь алгоритмами систем автоматического руления тракторами — о некоторых подходах к комплексированию датчиков в этих системах я тоже писал. Теперь эти два направления деятельности причудливо пересеклись.

Для исследования поведения трактора в некоторых специфических сценариях (например, на склонах при наличии бокового проскальзывания) понадобился программный симулятор трактора, который верно моделировал бы не только кинематику, но и динамику машины. При этом алгоритм контроллера руления предполагалось постоянно видоизменять и немедленно наблюдать эффект этих изменений. Для такой задачи тандем C++ и Umka выглядел вполне органичным: основной код симулятора, требующий высокого быстродействия, был реализован на C++, а логика контроллера была вынесена в скрипт на Umka.

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

Читать далее

Есть ли параллелизм в произвольном алгоритме и как его использовать лучшим образом

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

Параллелизации обработки данных в настоящее время применяется в основном для сокращения времени вычислений путем одновременной  обработки данных по частям на множестве различных вычислительных устройств с последующим объединением полученных результатов. Параллельное выполнение позволяет “обойти” сформулированный лордом Рэлеем в 1871 г. фундаментальный закон, согласно которому (в применимости к тепловыделению процессоров) мощность их тепловыделения пропорциональна четвертой степени тактовой частоты процессора (увеличение частоты вдвое повышает тепловыделение в 16 раз) и фактически заменить его линейным от числа параллельных вычислителей – при сохранении тактовой  частоты). Ничто не дается даром – задача выявления (обычно скрытого для непосвящённого наблюдателя, [1]) потенциала параллелизма в алгоритмах не является "лежащей на поверхности", а уж эффективность его (параллелизма) использования – тем более.

Далее читать

Расчет перцентилей для мониторинга высоконагруженных систем

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


Привет, меня зовут Игорь, и я разработчик решений на Tarantool в Mail.ru Group. Я работаю над витринами маркетинга в реальном времени для Мегафона. При мониторинге часто требуется использовать перцентили. Они позволяют понять, как система работает бóльшую часть времени, в отличие от усреднения значений, которое сильно подвержено влиянию выбросов. Если 9 из 10 запросов выполняются за 1 секунду, а один за 10 секунд, то среднее будет 1,9 секунды, а 50-перцентиль — 1 секунда. Это лишь один пример того, что среднее значение не подходит для мониторинга. Возникает необходимость считать перцентили, для этого мы добавили в tarantool/metrics Summary-коллектор.

Читать дальше →

Как я решил сделать игру, вдохновившись Heroes of Might and Magic, и потерял деньги (часть 3)

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

Данная история состоит из трёх частей, т.к. я выпустил три игры:

●     Beasts Battle

●     Necromancer Returns

●     Magicians Legacy

 

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

Здесь можно почитать первую и вторую статьи. 

 

Фальстарт

В феврале 2018 года вышла игра Necromancer Returns, которая не оправдала мои ожидания по продажам, и я ушел в депрессию. Но в апреле 2018 года у меня возникла мысль сделать следующую игру на основе этого движка, только чтобы вся графика была уже нарисована в 3D и отрендерена под 2D в изометрии. Мысль была такая: “по-быстрому” придумать новый мир, нарисовать его, запихнуть новых юнитов — и готово. Я списался с художником, который подключился в конце разработки Necromancer Returns и стал для меня основным. Он полностью перерисовал весь интерфейс для мобильной версии Necromancer Returns, а потом мы обновили и версию в Steam. 

Читать далее

Тестируем играючи: мастер-мастер репликация в Tarantool

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


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


Каждый игрок будет некоторым узлом, который меняет данные в игровом мире. Эти данные реплицируются между узлами. Таким образом, репликация Tarantool будет являться своего рода транспортом для игрового процесса.

Как я решил сделать игру, вдохновившись Heroes of Might and Magic, и потерял деньги (часть 1, 2)

Время на прочтение12 мин
Количество просмотров67K
Данная история будет состоять из трёх частей, т.к. я выпустил три игры:

  • Beasts Battle
  • Necromancer Returns
  • Magicians Legacy

Часть‌ ‌1


Для тех кто предпочитает смотреть, а не читать, я подготовил видео этой статьи.


В каждом выпуске будут цифры по каждой игре, какой бюджет и доход принесли игры…

Сразу скажу, я – фанат серии Heroes of Might and Magic и King's Bounty. Играл почти во все части и аддоны, за исключением седьмой части, т.к. время идет, жизнь меняется и на игры времени не осталось.

Мобильные танки и тесты: интервью о тестировании World of Tanks Blitz

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


У всех есть какое-то представление о франшизе World of Tanks. Но, как правило, оно «снаружи» (пользовательское) и общее. А что, если посмотреть изнутри, и рассмотреть какие-то очень конкретные вопросы? Скажем, на каком языке пишут тесты для мобильной World of Tanks Blitz, и по каким причинам выбрали его?


Студия разработки мобильных «танков» MS-1 компании Wargaming присутствовала на нашей конференции Heisenbug, и там мы позадавали такие вопросы Дмитрию Сычеву — Lead QA Automation в World of Tanks Blitz. А теперь решили для Хабра сделать и текстовую версию этого небольшого разговора.

Читать дальше →