Некоторое время назад мы анонсировали публичный релиз и открыли под лицензией MIT исходный код LuaVela – реализации Lua 5.1, основанной на LuaJIT 2.0. Мы начали работать над ним в 2015 году, и к началу 2017 года его использовали в более чем 95% проектов компании. Сейчас хочется оглянуться на пройденный путь. Какие обстоятельства подтолкнули нас к разработке собственной реализации языка программирования? С какими проблемами мы столкнулись и как их решали? Чем LuaVela отличается от остальных форков LuaJIT?
Рубрика «Lua» - 4
LuaVela: реализация Lua 5.1, основанная на LuaJIT 2.0
2019-08-29 в 9:59, admin, рубрики: announce, C, highload, IPONWEB, Lua, luajit, анонс, Блог компании IPONWEB, системное программированиеВстраиваем Lua интерпретатор в проект для микроконтроллера (stm32)
2019-07-16 в 10:42, admin, рубрики: C, cmake, Lua, stm32, микроконтроллеры, отладка, программирование микроконтроллеров, системные вызовы
В достаточно крупных приложениях немалую часть проекта составляет бизнес-логика. Эту часть программы удобно отлаживать на компьютере, после чего встраивать в состав проекта для микроконтроллера, ожидая, что эта часть будет выполняться в точности так, как было задумано без какой-либо отладки (идеальный случай).
Так как большинство программ для микроконтроллеров пишется на С/C++, то для этих целей обычно используют абстрактные классы, предоставляющие интерфейсы к низкоуровневым сущностям (в случае, если проект пишется только с использованием C, то зачастую используются структуры указателей на функции). Данный подход предоставляет требуемый уровень абстракции над железом, однако чреват надобностью в постоянной повторной компиляции проекта с последующим программированием энергонезависимой памяти микроконтроллера бинарным файлом прошивки большого объема.
Однако есть и другой путь — использование скриптового языка, позволяющего производить отладку бизнес-логики в реальном времени на самом устройстве или загружать сценарии работы прямо с внешней памяти, не включая данного кода в состав прошивки микроконтроллера.
В качестве скриптового языка я выбрал Lua.Читать полностью »
Lua in Moscow 2019: интервью с Роберто Иерусалимским
2019-07-16 в 9:36, admin, рубрики: Lua, tarantool, Блог компании Mail.Ru Group, интервью, Программирование
Некоторое время назад наш московский офис посетил Роберто Иерусалимский, автор языка Lua. Мы взяли у него интервью, в ходе которого задали и вопросы от читателей Хабра. Наконец-то мы можем поделиться с вами всей записью разговора.
Читать полностью »
Приглашаем на Tarantool Conference 17 июня
2019-06-11 в 9:39, admin, рубрики: Lua, mail.ru group, tarantool, Администрирование баз данных, Блог компании Mail.Ru Group, высокая производительность, конференции
17 июня в московском офисе Mail.ru Group пройдёт вторая ежегодная открытая Tarantool Conference или коротко T+ Conf — конференция не только про сам Tarantool, а вообще про использование in-memory computing, Tarantool, кооперативной многозадачности и Lua для разработки высоконагруженных отказоустойчивых сервисов. Предварительно доклады сортируются по темам: микросервисная архитектура, грид-архитектура, туториалы, энтерпрайз. А следовательно, будут интересны не только опытным разработчикам, но и, с одной стороны, начинающим, а с другой — архитекторам в enterprise-секторе. Подробности можно найти под катом.
Высокоуровневая репликация в СУБД Tarantool
2019-06-07 в 9:31, admin, рубрики: highload, in-memory database, Lua, replication, tarantool, Администрирование баз данных, Блог компании Mail.Ru Group, высокая производительность, Серверная оптимизацияПривет, я занимаюсь созданием приложений для СУБД Tarantool — это разработанная в Mail.ru Group платформа, совмещающая в себе высокопроизводительную СУБД и сервер приложений на языке Lua. Высокая скорость работы решений, основанных на Tarantool, достигается в частности за счет поддержки in-memory режима СУБД и возможности выполнения бизнес-логики приложения в едином адресном пространстве с данными. При этом обеспечивается персистентность данных с использованием ACID-транзакций (на диске ведется WAL-журнал). В Tarantool имеется встроенная поддержка репликации и шардирования. Начиная с версии 2.1, поддерживаются запросы на языке SQL. Tarantool имеет открытый исходный код и распространяется под лицензией Simplified BSD. Также имеется коммерческая Enterprise-версия.
Feel the power! (...aka enjoy the performance)
Все перечисленное делает Tarantool привлекательной платформой для создания высоконагруженных приложений, работающих с БД. В таких приложениях часто возникает необходимость репликации данных.
Читать полностью »
Гармония скриптов внутри Android приложения
2019-05-17 в 8:25, admin, рубрики: android development, kotlin, Lua, mobile development, Блог компании FunCorp, разработка мобильных приложений, Разработка под android
Думаю, многие читатели хаба по android-разработке слышали, что Java позволяет в рантайме через ClassLoader модифицировать dex уже установленного приложения. С помощью этого можно в рантайме подгружать скомпилированный код и использовать его. Но Google к таким махинациям относится, мягко говоря, не слишком лояльно и банит уличённые в подобном приложения.
Однако есть альтернативные способы загрузки и выполнения скриптов на мобильном устройстве. За подробностями под кат!
Читать полностью »
T+ Conf 2019 не за горами
2019-04-22 в 12:22, admin, рубрики: in-memory computing, Lua, tarantool, Администрирование баз данных, Блог компании Mail.Ru Group, Блог компании Конференции Олега Бунина (Онтико), высокая производительность, конференции
17 июня (понедельник) в офисе Mail.ru Group пройдёт вторая ежегодная конференция
Tarantool Conference, или коротко — T+ Conf. Она адресована как новичкам, так и опытным разработчикам и архитекторам в корпоративном секторе.
Вас ждут новые доклады и воркшопы по использованию in-memory computing, Tarantool / Redis / Memcached, кооперативной многозадачности и языка Lua для создания высоконагруженных отказоустойчивых сервисов в Digital и Enterprise.
Читать полностью »
Наш опыт создания API Gateway
2019-04-02 в 10:37, admin, рубрики: .net, api, API Gateway, api management, fluentd, Hazelcast, Lua, nginx, Блог компании True EngineeringНекоторые компании, в том числе наш заказчик, развивают продукт через партнерскую сеть. Например, крупные интернет-магазины интегрированы со службой доставки — вы заказываете товар и вскоре получаете трекинговый номер посылки. Другой пример — вместе с авиабилетом вы покупаете страховку или билет на аэроэкспресс.
Для этого используется один API, который нужно выдать партнерам через API Gateway. Эту задачу мы и решили. В этой статье расскажем подробности.
Дано: экосистема и API-портал с интерфейсом, где пользователи зарегистрированы, получают информацию и т.п. Нам нужно сделать удобный и надежный API Gateway. В процессе нам нужно было обеспечить
- регистрацию,
- контроль подключения к API,
- мониторинг того, как пользователи используют конечную систему,
- учёт бизнес-показателей.
В статье мы расскажем о нашем опыте создания API Gateway, в ходе которого мы решали следующие задачи:
- аутентификация пользователя,
- авторизация пользователя,
- модификация исходного запроса,
- проксирование запроса,
- постобработка ответа.
Насколько легко доставить заказ, зная адрес клиента (не очень)
2019-03-27 в 13:35, admin, рубрики: devconf, lamoda, Lua, OpenResty, php, postgresql, solr, адрес, Блог компании Lamoda, Геоинформационные сервисы, доклад, доставка, ФИАСВсем привет! Меня зовут Денис Гирько, я системный архитектор e-commerce платформы в Lamoda. В прошлом году я выступал на конференции DevConf с докладом, которым хочу поделиться с вами.
Это обзорный доклад о том, с какими сложностями в процессе доставки заказа встречается крупный интернет-магазин и какие технические решения могут помочь их преодолеть (на примере решений, которые мы опробовали в Lamoda).
О чем пойдет речь? Расскажу:
- о процессе доставки и обозначу проблемы;
- как эффективно хранить территории доставки в базе;
- как повысить качество тех данных, которые мы получаем от клиента;
- как в адресной базе искать адресата, чтобы найти больше точных результатов.