Как стать автором
Обновить
4.73
Рейтинг

Lua *

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Изучаем МойОфис: как использовать макросы в редакторах документов и электронных таблиц

Блог компании МойОфис Lua *Управление продуктом *Софт IT-компании

Привет, Хабр! Недавно в нашем корпоративном блоге мы рассказали о выходе новой версии МойОфис 2021.02, в которой появились удобные инструменты для работы с формулами и математическими выражениями, а также со сводными таблицами.

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

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

CS50`s Introduction to Game Development с русскими субтитрами — Лекция 0. Pong

Разработка игр *Lua *Дизайн игр *
Перевод

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

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

Управляем кластером на Tarantool из командной строки

Блог компании Mail.ru Group Высокая производительность *Администрирование баз данных *Lua *Tarantool *
Tutorial


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

Я расскажу вам, как можно использовать Cartridge CLI для эффективного использования ваших локальных приложений, и об интересных фичах самого CLI. Статья больше ориентирована на тех, кто уже использует Cartridge или хочет начать им пользоваться. Поехали!
Читать дальше →
Всего голосов 32: ↑28 и ↓4 +24
Просмотры 1.4K
Комментарии 10

Что не так с Asterisk Realtime и как с этим жить

API *Asterisk *Lua *Tarantool *

Не так давно я опубликовал пост, в комментариях к которому было высказано мнение, что у астериска есть некоторые проблемы с механизмом realtime. Так вот, на данный момент, вынужден согласиться с этим утверждением, более чем полностью. Как следствие, встал на путь разочарования asterisk'ом как платформой-"конструктором". Почему и как это произошло и при чём тут tarantool, а самое главное, что со всем этим можно сделать? Давайте разбираться под катом.

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

Разработка системы аутентификации на Java+Tarantool

Блог компании Mail.ru Group Java *Lua *Tarantool *
Tutorial
Системы аутентификации есть везде. Пока вы скучаете в лифте по пути с седьмого этажа на первый, можно успеть проверить баланс в приложении банка, поставить пару лайков в Instagram, а потом проверить почту. Это минимум три системы аутентификации.

Меня зовут Александр, я программист в отделе архитектуры и пресейла в Mail.ru Group. Я расскажу, как построить систему аутентификации на основе Tarantool и Java. Нам в пресейле очень часто приходится делать именно такие системы. Способов аутентификации очень много: по паролю, биометрическим данным, SMS и т.п. Для наглядности я покажу, как сделать аутентификацию по паролю.

Статья будет полезна тем, кто хочет разобраться в устройстве систем аутентификации. На доступном примере я покажу все основные части архитектуры, как они связаны между собой и как работают в целом.
Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Просмотры 3.5K
Комментарии 5

Подсчёт ссылок не так прост, как кажется: опыт языка Umka

Программирование *Разработка игр *Компиляторы *Lua *Go *

Подсчёт ссылок обычно предлагается как самый простой способ автоматического управления памятью в языках программирования. Он избавляет программиста от необходимости вставлять в свой код free(), delete и тому подобное, следить за висячими указателями и утечками памяти. Принцип действительно звучит очень просто: каждый выделенный в куче блок памяти наделяется счётчиком ссылок на него. Каждая переменная, через которую можно добраться до этого блока, олицетворяет одну ссылку. Блок освобождается тогда, когда счётчик ссылок доходит до нуля.

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

Итак, обсудим четыре ключевых практических проблемы, с которыми пришлось столкнуться при реализации подсчёта ссылок в языке Umka.

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

ESP8266 и Lua: «оттормаживаем» функцию

Lua *Программирование микроконтроллеров *DIY или Сделай сам

Небольшая заметка на тему, известную всем кто знает JavaScript, но не вполне очевидная для DIY программирования ESP8266.

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

Одним из вариантов такого действа будет работа через callback функцию и таймер. Код с пояснениями:

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

Свой ремейк ZX игры Reskue в Steam

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

Да понимаю что это игра про учёных, но это не игра про немого учёного с монтировкой с цифрой 3 которую все ждут. Что вышло за 4 года разработки.

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

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

Заправьте свой корабль радиоактивным топливом и спасите ученых. Берегите себя, науку и — удачи!

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

Tarantool и кодогенерация на Lua

Блог компании Mail.ru Group Алгоритмы *Lua *Tarantool *
Tutorial

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

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

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

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

Nginx *Серверное администрирование *Lua *
DDoS атаки на 7 уровень (на уровень приложения) наиболее простой способ привести в нерабочее состояние сайт и навредить бизнесу. В отличие от атак на другие уровни, когда для отказа сайта необходимо организовать мощный поток сетевого трафика, атаки на 7 уровень могут проходить без превышения обычного уровня сетевого трафика. Как это происходит, и как от этого можно защищаться я рассмотрю в этом сообщении.
Читать дальше →
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 6.6K
Комментарии 1

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

PHP *Nginx *Yii *Lua *

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

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

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

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

Блог компании Mail.ru Group Lua *Умный дом Интернет вещей Tarantool *


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

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

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

Я расскажу о том, как компания Ready For Sky применила Tarantool, чтобы воплотить «воспоминания о будущем» у вас дома.
Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Просмотры 5.4K
Комментарии 17

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

Open source *Алгоритмы *Lua *Параллельное программирование *

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

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

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

Настройка Linux *Nginx *Lua *

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

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

...При помощи NGINX!
Всего голосов 246: ↑245 и ↓1 +244
Просмотры 192K
Комментарии 180

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

Блог компании SkillFactory Lua *3D-принтеры DIY или Сделай сам Лайфхаки для гиков
Перевод
Tutorial

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

Приятного чтения
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 4.7K
Комментарии 1

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

Open source *Алгоритмы *Lua *Параллельное программирование *

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

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

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

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

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

Программирование *C *Lua *
Перевод
Lite на моём компьютере с Linux, снято автором. Фотография ноутбука с Linux и редактора Lite, который выполняется на ноутбуке

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

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

Python *Lua *Робототехника

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

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

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

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

Вклад авторов