• Классы в lua, или избавляемся от двоеточия

      Как всем известно, в lua нет как таковых классов и объектов. Однако есть метатаблицы и синтаксический сахар.
      С помощью указанных механизмов достаточно просто реализовать подобие классов.
      В итоге и получается нечто такое:
      Самый простой класс
      local MyClass = {} -- the table representing the class, which will double as the metatable for the instances
      MyClass.__index = MyClass -- failed table lookups on the instances should fallback to the class table, to get methods
      
      -- syntax equivalent to "MyClass.new = function..."
      function MyClass.new(init)
        local self = setmetatable({}, MyClass)
        self.value = init
        return self
      end
      
      function MyClass.set_value(self, newval)
        self.value = newval
      end
      
      function MyClass.get_value(self)
        return self.value
      end
      
      local i = MyClass.new(5)
      -- tbl:name(arg) is a shortcut for tbl.name(tbl, arg), except tbl is evaluated only once
      print(i:get_value()) --> 5
      i:set_value(6)
      print(i:get_value()) --> 6
      

      (взято с lua-users.org/wiki/ObjectOrientationTutorial)

      Всё это конечно хорошо, даже при определённой сноровке можно реализовать наследование…
      Но где public и private члены класса? Дефакто в этом примере они все public. Да ещё и надо помнить, где использовать двоеточие:
      MyClass:myFunc()
      

      а где просто одну точку:
      MyClass.myOtherFunc()
      

      А статические члены класса? Неужели придётся отказываться?
      Вот я и не захотел отказываться, и начал колхозить...
    • Заметки о MODX Revo от новичка


        Disclaimer: Конечно, скорее всего многое, из представленного в этой статье, покажется капитанством для сведующих людей. Однако, возможно, кому-то она поможет...

        Введение


        Итак, что же такое MODX (кстати, пишется именно так — MODX, а не как название хаба — MODx)? Если читать официальный сайт — то это CMS. Однако, это лишь часть правды. На самом деле, MODX находится примерно посередине между CMS и CMF. Впрочем, любой, кто заинтересовался бы MODX это быстро бы узнал из других статей, поэтому не буду останавливаться на этом пункте подробней.

        Поскольку MODX находится посередине между CMS и CMF, то её не так легко освоить, как простую CMS, вроде Wordpress или Joomla. Пожалуй, эта статья написана в целях раскрытия некоторых тонкостей, которые кажутся неочевидными на первый взгляд.

        Читать дальше →
      • Beta-тест Bitcasa своими руками

          img

          Небольшое введение


          Некоторое время назад (а точнее 15 сентября 2011 года) на Хабре промелькнула статья — «Облачный» сервис Bitcasa может стать серьезным конкурентом Dropbox
          Вот мне и стало интересно, что же это за Bitcasa такая. И, как любопытный человек, я сразу же выдал им аж три своих email-а для участия в предварительном тестировании.

          И сегодня, наконец, свершилось… На все три ящика упало приглашение.

          Что из этого вышло, смотрим дальше. Внимание! Трафик
        • Объявлены даты окончательного отключения Google Wave

            Сегодня Google прислал письмо, в котором указал даты окончательного отключения Google Wave. Отключение будет производиться в два этапа:
            1. Перевод всех волн в режим «только чтение» — 31/01/2012
            2. Окончательное полное отключение сервиса — 30/04/2012
            Google рекомендует сохранять все свои данные с помощью встроенной функции экспорта в pdf.

            Оригинальный текст письма под катом:
            Читать дальше →