Как стать автором
Обновить

CRUD 0.11.0 для Tarantool

Блог компании VK Open source *NoSQL *Lua *Tarantool *

Неделю назад вышла новая версия модуля CRUD для Tarantool. В 0.11.0 появилось множество нововведений, просьбы о которых поступали от наших пользователей. Что изменилось, как этим пользоваться и кому это может быть полезно? Расскажем обо всём.

Tarantool — это платформа in-memory вычислений с гибкой схемой данных, функциональность которой расширяется с помощью модулей. Одними из самых популярных являются vshard, предназначенный для распределённого хранения данных, и cartridge, который организует работу с кластером Tarantool. CRUD также можно считать членом этого семейства: он предназначен для написания запросов при работе с распределёнными данными. Мы в Tarantool активно используем его при разработке готовых решений и нередко упоминаем в статьях (например, здесь и здесь).

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

13 декабря в Москве пройдет Lua in Moscow Meetup

Блог компании VK Программирование *ООП *Lua *Tarantool *


В пятницу 13 декабря в московском офисе Mail.ru Group пройдёт открытый Lua митап — встреча сообщества Lua in Moscow, где можно обсудить Lua, его использование, проблемы, новые наработки, получить ответы на наболевшие вопросы. Наши докладчики поделятся победами, неудачами, помогут вам извлечь лучшее из своего опыта. Подробная программа под катом.
Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 968
Комментарии 0

История о том, как мы нашли и починили баг в Vulners.nse

Блог компании Газинформсервис Информационная безопасность *Open source *Lua *
Всем привет, сегодня мы хотим вам рассказать, как нашли и зафиксили баг в Iua скрипте vulners.nse.

Если вы никогда этим не пользовались, поясняем. Vulners.nse. – это скрипт расширяющий возможности NMAP и позволяющий использовать результаты сканирования для поиска уязвимостей сетевых устройств и сервисов в большой базе данных vulners.com.

Мы выполняли интеграцию сканера NMAP в качестве стороннего средства сканирования сети с целью инвентаризации и поиска известных уязвимостей на найденных в сети устройствах. Последнее обновление скрипта явным образом указало gzip в качестве принимаемого от сервера vulners.com ответа, но не стало распаковывать пришедшие данные.
Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 439
Комментарии 2

Gmail Notifier своими руками

Настройка Linux *
image Начал я обустраиваться под Linux'ом и обнаружил, что мне сильно не хватает тех красивых попапов, уведомляющих о приходе новой почты, которые умеет показывать Google Talk под Windows. Гугление обнаружило несколько готовых скриптов, позволяющих реализовать подобные попапы (среди прочих: bash-скрипт, bash-скрипт + python-скрипт, плюс pidgin умеет проверять почту), но все подходы слегка уродливы были мне не по душе и требовали доработки напильником, поэтому я решил сделать всё с нуля (пусть будет уродливое, но своё!). О вещах, с которыми я столкнулся в процессе и пойдёт речь…

Читать дальше →
Всего голосов 137: ↑128 и ↓9 +119
Просмотры 4.8K
Комментарии 111

Встреча в Донецке: Скриптинг, CSS, GAE, HD video

Я пиарюсь
Дата: 20.06.2009 12:00—15:00
Место: Донецк, ул. Артема 110, кофейня Изба-читальня

Неформальные доклады по 30-60 минут. Общение.

Скриптинг для desktop-приложений
python, lua,…
Константин Галайко

Нововведения в CSS3
css, html,…
Дмитрий Подгорный

www.HOTAROUND.com/ABOUT
python, gae, javascript,…
Артем Дударев

Веб-хранилище HD video
zfs, python, django, mediatomb, javascript,…
hd.litovchenko.com
Александр Литовченко

Пожалуйста, зарегистрируйтесь:
spreadsheets.google.com/viewform?formkey=cnU0dlBlc3VJbkNZR00zMkxyT1JvQ0E6MA
www.izba4i.com/meetings
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 427
Комментарии 0

Добавление скриптинга в программу с помощью Lua

Разработка веб-сайтов *

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

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

Примеров программ, которые используют Lua достаточно много. Далеко не полный список программ, использующих Lua, можно посмотреть здесь Lua Wiki и здесь Wikipedia
Читать дальше →
Всего голосов 58: ↑53 и ↓5 +48
Просмотры 18K
Комментарии 120

Контроль типов аргументов функций в Lua

Разработка веб-сайтов *

Задача


Lua — язык с динамической типизацией.

Это значит, что тип в языке связан не с переменной, а с её значением:

= "the meaning of life" --> была строка,<br/>
= 42                    --> стало число

Это удобно.

Однако, нередко встречаются случаи, когда хочется жёстко контролировать тип переменной. Самый частый такой случай — проверка аргументов функций.

Рассмотрим наивный пример:

function repeater(n, message)<br/>
  for i = 1, n do<br/>
    print(message)<br/>
  end<br/>
end<br/>
 <br/>
repeater(3"foo") --> foo<br/>
                   --> foo<br/>
                   --> foo

Если перепутать местами аргументы функции repeat, получим ошибку времени выполнения:

> repeater("foo", 3)
stdin:2: 'for' limit must be a number
stack traceback:
	stdin:2: in function 'repeater'
	stdin:1: in main chunk
	[C]: ?

«Какой такой for?!» — скажет пользователь нашей функции, увидев это сообщение об ошибке.
Читать дальше →
Всего голосов 34: ↑27 и ↓7 +20
Просмотры 9.3K
Комментарии 20

nginx+FastCGI(over spawn-fcgi)+lua

Nginx *
И так у нас есть задача. Заставить работать вместе легкий веб-сервер nginx и lua(в данном случае lua через wsapi(lua web server API)-fastcgi).
Что нам потребуется? Ну для начала голова на плечах. Ну то есть не то, что бы она особо нужна, но пригодится.
А далее… А далее сервер в нашем случае с GNU/Linux на борту(но думаю что сойдет и, скажем FreeBSD), мы будем рассматривать на примере Ubuntu GNU/Linux, так сложилось исторически.
интересно?
Всего голосов 8: ↑5 и ↓3 +2
Просмотры 7.7K
Комментарии 8

Основы декларативного программирования на Lua

Разработка веб-сайтов *
Луа (Lua) — мощный, быстрый, лёгкий, расширяемый и встраиваемый скриптовый язык программирования. Луа удобно использовать для написания бизнес-логики приложений.

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

Луа — мультипарадигменный язык программирования. Одна из сильных сторон Луа — хорошая поддержка декларативного стиля. В этой статье я кратко опишу базовые декларативные средства, предоставлямые языком Луа.
Читать дальше →
Всего голосов 69: ↑64 и ↓5 +59
Просмотры 43K
Комментарии 18

Что можно ожидать от Луа 5.2?

Разработка веб-сайтов *

Опубликована первая превью-версия Луа 5.2


Луа (Lua) — мощный, быстрый, лёгкий, расширяемый и встраиваемый скриптовый язык программирования. Луа удобно использовать для написания бизнес-логики приложений.

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

То, что выложено на публику даже не альфа — это просто снапшот рабочего кода. К релизу может измениться всё, что угодно.

Анонс здесь: http://article.gmane.org/gmane.comp.lang.lua.general/61229

Дополненный список изменений от авторов здесь: http://article.gmane.org/gmane.comp.lang.lua.general/61505

Скачать исходники можно здесь: http://www.lua.org/work/lua-5.2.0-work1.tar.gz

Сборка под Windows здесь: http://article.gmane.org/gmane.comp.lang.lua.general/61528

Посмотреть исходники в онлайне можно, например, здесь.

Update: Выложен 5.2.0-work2, анонс здесь.
То, что написано ниже, скорее всего, будет интересно только людям, близко знакомым с языком.
Всего голосов 70: ↑60 и ↓10 +50
Просмотры 4.9K
Комментарии 57

Составление строк из множества частей

Алгоритмы *Lua *
Перевод
Роберто Иерусалимши рассказывает, как эффективно соединять немодифицируемые строки.
Несмотря на то, что код написан на Lua, алгоритм подойдёт и для других языков, в которых строки нельзя изменять.
Читать дальше →
Всего голосов 38: ↑28 и ↓10 +18
Просмотры 8.8K
Комментарии 32

Пишем HTTP proxy сервер с плагинами

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

Итак, задача:
Хочется, чтобы каптчу вводить не приходилось. Хоть если играешь сам, хоть если играет за тебя бот, если ты спишь.
Дополнительное условие: 40 часов времени (ибо паника на корабле).
Желательное условие: установочный файл под Windows.
Ещё одно желательное условие: результат должен занимать не более мегабайта.
Решение задачи с нуля под катом
Всего голосов 49: ↑34 и ↓15 +19
Просмотры 16K
Комментарии 36

Пишем интерпретатор Brainfuck на Lua

Ненормальное программирование *Lua *
Из песочницы
Lua Logo
Каждый программист за свою жизнь успевает изучить множество языков, в нескольких из них специализируется и продолжает работать продолжительное время, а остальные проходят мимо. По разным причинам. Стоит ли тратить время на изучение новых языков, когда уже определился с областью в которой будешь работать? Лично я уверен что стоит, хотя, быть может, многие скажут что важны фундаментальные знания в computer science, а на каком языке писать код не критично. В сущности так и есть. И тем не менее изучать языки интересно и полезно.
Читать дальше →
Всего голосов 49: ↑39 и ↓10 +29
Просмотры 7K
Комментарии 15

Lua vs. JavaScript

Алгоритмы *
SmallPic

Недавно я написал пост о том как сделать рейтрейсер. Код рейтрейсера тогда был написан на JavaScript. Мне стало интересно, как с этой же задачей справится Lua, а именно LuaJIT 2.0. Ниже результаты сравнения.

Читать дальше →
Всего голосов 63: ↑59 и ↓4 +55
Просмотры 15K
Комментарии 91

Lua+FFI vs. JavaScript

Алгоритмы *
SmallPic

Эта небольшая заметка не претендует на звание статьи.

В прошлый раз я сравнивал LuaJIT 2.0 Beta 5 и JavaScript в различных браузерах на примере простого рейтрейсера. Результат сравнения: JavaScript в Chrome набрал 20,000 RPS и занял 1-ое место, а LuaJIT — 5,000 RPS и последнее место.

С выходом LuaJIT 2.0 Beta 6 ситуация изменилась: Lua легко вышел на первое место обогнав Chrome. Посмотрим как это получилось.

Читать дальше →
Всего голосов 18: ↑15 и ↓3 +12
Просмотры 7.8K
Комментарии 22

Тяжелая жизнь антиспамеров или как это происходит на самом деле

Блог компании VK
Поводом для этой публикации послужили недавние серьезные изменения, внесенные в механизм борьбы со спамом в рамках нашего почтового сервиса. Нам хочется поделиться новостью, но не в форме сухого пресс-релиза. Поэтому мы решили рассказать о том, как устроен АнтиСпам в Почте@Mail.Ru, и конечно — с удовольствием ответить на ваши вопросы. Итак…

Архитектура антиспама Mail.Ru


Собственный антиспам в Mail.Ru существует уже много лет. Желание разработать собственный продукт вполне объяснимо, т.к. на определенном этапе развития проекта требования к качеству и масштабируемости механизма борьбы со спамом стали слишком велики, чтобы их могли удовлетворить даже очень сильно кастомизированные «чужие» продукты. Конечно, какие-то сервисы и компоненты независимых поставщиков мы используем по-прежнему (например, для проверки писем на вирусную составляющую), но их роль сейчас уже не является определяющей.
Читать дальше →
Всего голосов 81: ↑63 и ↓18 +45
Просмотры 37K
Комментарии 90

Вызов Lua скриптов из Java и наоборот

Java *
Из песочницы
image
Недавно столкнулся с такой проблемой и был крайне удивлен, что в сети материалов по ней очень мало, учитывая популярность Lua. Как выяснилось, существует довольно много библиотек для работы с Lua-скриптами из java, но все они имеют свои нюансы. Лучше всего, как выяснилось, использовать библиотеку LuaJava от тех же разработчиков, что написали Lua.
Читать дальше →
Всего голосов 2: ↑1 и ↓1 0
Просмотры 12K
Комментарии 5

Lua что новенького в BitTorrent DHT?

Децентрализованные сети
Какое-то время назад я написал для Shareaza внешний DHT Tracker на Lua (GitHub). Для Shareaza это обычный локальный трекер, а по сути это BitTorrent DHT клиент, который позволяет ей качать торенты по магнет ссылкам без трекера.

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

Итак, что новенького мы наловили в BitTorrent DHT.
Читать дальше →
Всего голосов 26: ↑23 и ↓3 +20
Просмотры 2.6K
Комментарии 10