• Lua API++

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

      С Lua я познакомился несколько лет назад, когда подыскивал внедряемый скриптовой язык, отличающийся скромным размером и высокой производительностью. Lua не только отвечает этим запросам, но и подкупает удивительной простотой и выразительностью.

      Не могу сказать, что я недоволен Lua API: это отличный набор функций, удобный и простой в использовании. Интеграция языка в своё приложение и добавление собственных расширений не вызвали трудностей, никаких «подводных камней» тоже не возникло. Но всё же при использовании этого API, ориентированного на Си, меня не оставляла мысль, что этот процесс мог бы быть и поудобнее. Первая попытка сделать удобную объектно-ориентированную обёртку потерпела неудачу: имеющимися средствами мне не удалось создать что-то заслуживающее существования, всё выходило чересчур громоздко и неочевидно.

      А потом появился C++11, который снял все мешавшие мне препятствия (точнее говоря — добавил то, чего не хватало), и головоломка постепенно начала складываться. Второй заход оказался удачным, и в результате я сумел создать достаточно легковесную библиотеку-обёртку с естественным синтаксисом большинства операций. Эта библиотека, которую я назвал Lua API++, призвана служить удобной заменой для Lua API. Этой статья, написанная по мотивам моего выступления на Lua Workshop, поможет познакомиться с основными понятиями Lua API++ и предоставляемыми ей возможностями.
      Читать дальше →
      • +30
      • 14k
      • 4
    • Использовать Lua c С++ легче, чем вы думаете. Tutorial по LuaBridge

      • Tutorial
      Данная статья — перевод моего туториала, который я изначально писал на английском. Однако этот перевод содержит дополнения и улучшения по сравнению с оригиналом.
      Туториал не требует знания Lua, а вот C++ нужно знать на уровне чуть выше базового, но сложного кода здесь нет.

      Когда-то я написал статью про использование Lua с C++ с помощью Lua C API. В то время, как написать простой враппер для Lua, поддерживающий простые переменные и функции, не составляет особого труда, написать враппер, который будет поддерживать более сложные вещи (функции, классы, исключения, пространства имён), уже затруднительно.
      Врапперов для использования Lua и C++ написано довольно много. С многими из них можно ознакомиться здесь.
      Я протестировал многие из них, и больше всего мне понравился LuaBridge. В LuaBridge есть многое: удобный интерфейс, exceptions, namespaces и ещё много всего.
      Но начнём по порядку, зачем вообще использовать Lua c С++?
      Читать дальше →
    • Awesome WM и Dbus

        Я думаю ни для кого не будет секретом, что у Awesome есть «узкое место», если мы запускаем внешний скрипт, который например должен считать данные из файла, или интернета и вернуть результат в виджет или саму систему, то мы периодически можем наблюдать явлениие «фриза», т.е. когда система перестает реагировать на нажатия клавиш и мыши до получения результата обработки (правда активный клиент при этом продолжает работать). Чаще всего это происходит при использовании io.popen или awful.util.pread
        Читать дальше →
        • +26
        • 10,4k
        • 7
      • Cocos2d-x: Пишем на Lua

        • Tutorial


        Доброго времени суток.
        Начнем с того, что я не нашел на хабре туториалов по Cocos2d и Lua, поэтому мне пришлось много страдать и чтобы вы не повторяли моих ошибок я решил написать пост. В этой статье я расскажу как создать простую игру используя Сocos2d-x, Cocos Code IDE и Lua. Ранее, я уже писал про создание игр на Love2d. В этой статье я адаптирую старый туториал для кокоса и как это запустить на андроиде (Ни яблока, ни мака у меня нет).
        Читать дальше →
      • Приглашаем на Lua Workshop 2014

          13 и 14 сентября (суббота и воскресенье) в Москве, в офисе Mail.Ru Group пройдёт крупнейшая ежегодная конференция, посвящённая языку программирования Lua — Lua Workshop 2014. Эта международная англоязычная конференция проводится в этом году в 9-й раз. В 2012 году она проходила в Рестоне (США), в 2013 — в Тулузе (Франция), ну а в этом году конференция приезжает в Москву.

          Если вы пишете на Lua, вопрос посещать или не посещать конференцию не возникнет: когда ещё будет возможность вживую пообщаться с создателем языка и автором «Programming in Lua» Роберто Иерусалимским? Да и просто (бесплатно!) поучаствовать в конференции, узнать больше о вашем языке программирования из первых рук.
          Читать дальше →
        • Эволюция языка расширений: история Lua

          • Перевод
          от пер. Исходный материал датируется 2001 годом, так что некоторые моменты могут показаться забавными. Так же все отсылки на «сегодня», «в настоящий момент» и т.п. относятся к тому периоду.
          Изложение ведется от лица автора, как и в оригинале.
          Все ссылки добавлены мною.


          Изложение организовано в хронологическом порядке. Мы начнем с наших экспериментов, легших в основу создания Lua в 1993, и пройдемся через восемь лет обсуждений, решений, работы и развлечений.
          Читать дальше →
          • +39
          • 17,8k
          • 8
        • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

          Подробнее
          Реклама
        • Возможности метатаблиц в Lua на примере реализации классов

          • Tutorial
          В Lua ООП нет. И оно, в общем-то и не нужно: удобной модульности и функций первого класса достаточно для реализации многих вещей. На этом можно было бы и закончить, но пост не про это. В данном случае я распишу работу с метатаблицами, где в качестве примера шаг за шагом будет реализовываться системка по работе с классами в несколько таком python-стиле. Для понимания нужен хотя бы основной базис языка: таблицы, upvalues.

          Больше Lua на Хабре!
          • +22
          • 17,3k
          • 6
        • Пишем Penguin Daycare Simulator на Go (Google App Engine) и Lua (Corona SDK)

          • Tutorial

          1. Введение


          Данный проект представляет собой простой пример использования Google App Engine в мобильном приложении.

          Cерверная часть предоставляет список пингвинов в формате JSON. Мобильный клиент запрашивает этот список по HTTP или HTTPS.
          Также серверная часть ведёт запись определённых событий в базу данных, а именно количество посещений конкретного пингвина и количество нажатий кнопок: скормить рыбку и почесать животик.
          У каждого пингвина есть поля описания Name, Bio и поля счётчиков.
          Читай далее, если тебе не безразличны пингвины...
        • LUA в nginx: лапшакод в стиле inline php


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

            Думаю, что все разработчики на PHP (включая меня) так или иначе проходили через период, когда код представляет из себя жуткую смесь html и php, напиханных в одном файле. И речь не о шаблонах, а вообще о всей логике в лапше/спагетти-коде.
            И в качестве концепта я решил к первому апреля набросать реализацию чего-то подобного, но на lua под nginx. Прямо как на картинке.
            Читать дальше →
          • Moai SDK 1.5 — кроссплатформенный 2д игровой движок


            Сегодня я хочу рассказать об одном малоизвестном игровом движке, который мы используем уже год для кроссплатформенной разработки мобильных игр. Для 2д он нас полностью устраивает, а единственным конкурентом может быть только Unity3d из-за своего редактора. Отсутствие должного внимания к MOAI SDK, очевидно, связано с высоким порогом входа — сами разработчики (Zipline Games) позиционируют свой продукт как «The mobile platform for pro game developers», хотя разобравшись с установкой и настройкой окружения можно очень быстро и просто клепать игры на Lua.
            Читать дальше →
          Самое читаемое