• «Хранимые процедуры» в Redis

    • Tutorial
    image

    Многие знают про возможность хранить процедуры в sql базах данных, про это написано немало пухлых руководств и статей. Однако мало кто знает, что схожие возможности имеются и в Redis, начиная с версии 2.6.0. Но так как Redis не является реляционной БД, то и принципы описания хранимых процедур достаточно сильно отличаются. Хранимые процедуры в Redis — практически полноценные Lua скрипты (на момент написания статьи в качестве интерпретатора используется Lua 5.1).
    Подробности тут
  • Lua 5.3 Справочное руководство


      Перевел на русский язык «Lua 5.3 Справочное руководство». Его chm-версию можно взять на файлообменнике.

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

      Я не программист, базовых знаний у меня нет, так что везде, где «спотыкался» на терминах, старался таким образом облегчить себе понимание.

      Кроме того, для тех, кто, возможно, захочет что-то изменить, вложил в архив файлик Lua5.3.hhp — чтобы любой мог разобрать/собрать chm-файл программой HTML Help Workshop.

      Ну и наконец, я не знаю английского языка, переводил в основном онлайновыми программами перевода (с помощью программы QTranslate).
      • +11
      • 13,1k
      • 9
    • Делаем игру с Gideros

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


      Читать дальше →
      • +16
      • 12,1k
      • 4
    • Lua, ООП и ничего лишнего

      Однажды судьба свела меня с ней. С первого взгляда я был ослеплен и долгое время не мог отвести от нее взгляд. Шло время, но она не переставала меня удивлять, иногда казалось, что я изучил ее вдоль и поперек, но она снова переворачивала все мои представления. Ее гибкости не было предела, а потом я узнал, что она умеет еще и… ООП!

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

      После прочтения множества умных книжек и разбора нескольких ужасных реализаций ООП, я, крупица за крупицей, собирал все самое полезное и простое, пока не выработал свой стиль объектно ориентированного программирования на lua.
      Читать дальше →
    • Прототипное ООП для Lua

        Привет, я придумал свой велосипед для реализации прототипного подхода ООП в Lua.

        Основные фишки
        • Single inheritance
        • Traits
        • LuaJIT


        Перейдем сразу к примерам.

        -- подключаем модуль
        local object = require("object")
        
        -- определяем наш класс, который на самом деле объект
        local HelloClass = object:extend(function(class)
          -- конструктор (необязательно)
          function class:init(name)
            self.name = name
          end
        
          -- метод класса
          function class:sayHello()
            print("Hello " .. self.name)
          end
        end)
        
        local hello = HelloClass:new("John")
        hello:sayHello()
        

        Читать дальше →
        • +10
        • 9,2k
        • 4
      • Tarantool 1.6 — давай начнем

        Не так давно на Хабре была опубликована статья о NoSQL базе — «Tarantool 1.6 от первого лица». Уверен, в своих кругах эта база данных отлично известна и уже завоёвывает популярность. Уверен так же и в том, что есть те начинающие, руки не дошли, кто хотел бы попробовать Tarantool в действии. Именно для таких желающих я приведу несколько простых примеров, помогающих начать знакомиться с этим интересным продуктом. Как понятно из названия статьи — речь идет о версии Tarantool 1.6.
        Читать дальше →
        • +25
        • 32,3k
        • 5
      • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

        Подробнее
        Реклама
      • Библиотека эмуляции терминала ROTE и Lua привязки

          boxshell

          ROTE — простая библиотека на языке C, служащая для эмуляции терминала VT100. Она создает терминал и предоставляет доступ к его состоянию в виде структуры языка C. В терминале можно запустить дочерний процесс, «нажимать» в нем клавиши и смотреть, что он рисует на терминале. Кроме того, есть функция для отрисовки состояния терминала в окне curses.

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

          Несмотря на всё удобство и внутреннюю красоту ROTE, использовать её напрямую в тестах было бы громоздко. Поэтому я решил упростить задачу, привязав ROTE к языку Lua, который я очень люблю и знаю, как писать тесты. Так и родилась библиотека lua-rote, о которой я хочу рассказать.
          Читать дальше →
        • Corona SDK стала бесплатной


            Создатели известного движка для разработки кроссплатформенных мобильных приложений Corona SDK 2 марта объявили о том, что отныне Corona SDK будет бесплатна.

            Четыре месяца назад, в ноябре 2014 Corona была куплена компанией FusePowered. Многие предрекали грядущие изменения в политике компании и в выборе путей ее развития. Вопрос был, в какую сторону будут эти изменения. И вот сегодня случилось — Корона объявила, что возможности, доступные раньше только в платных подписках, теперь будут бесплатны.
            Разберемся, что же они теперь нам предлагают.
            Читать дальше →
          • Raspberry и Telegram: предпосылки создания умного дома

            • Перевод


            Один итальянский магазинчик нащупал новые способы использования Телеграма (и ранее WhatsApp'а), установив его на одноплатный миниатюрный компьютер Raspberry Pi. Как выясняется, мессенджер можно использовать для удалённого общения с собственной техникой. Ниже – перевод статей (1, 2) с сайта Instructables.com. Если есть уточнения по переводу, напишите об этом в комментариях.

            Читать дальше →
          • Lua API for D language

              Предисловие


              Данная заметка не будет слишком уж объемной, а скорее даже наоборот, небольшой.

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

              Сказано сделано — большая часть кода довольно быстро была перенесена с C/C++ на D. Не смотря на различные мнения по поводу D бытующие в среде разработчиков ПО, язык пришелся мне по вкусу.

              Одна беда — в старом варианте проекта для задания параметров модели поезда и изменения логики работы без перекомпиляции использовался Lua-скриптинг. Те кто сталкивается с ним по роду деятельности знают, что существует хорошо разработанный и достаточно документированный API для разработки на C/C++.

              Что касается Lua-скриптинга в D, то существует ряд проектов, например LuaD, привносящий в программы на D возможность работы с Lua. Однако LuaD рассчитан на предыдущую версию 5.1. Попадался мне проект и для 5.2 — DerelictLua, однако навскидку с «легкого пинка» завести его не удалось. При наличии времени можно разобраться, но времени как всегда нет. Пришлось напрячь мыслительные мощности и придумать более быстрое и простое решение. Если читателю интересно, что из этого вышло, добро пожаловать под кат.
              Читать дальше →
            Самое читаемое