войти зарегистрироваться

ПрограммированиеВышел Lua 5.2.0

После продолжительного ожидания наконец-то выпущена версия 5.2 языка Луа.

Официальный сайт на момент написания этого текста ещё не обновлён, но вот анонс в официальной рассылке: thread.gmane.org/gmane.comp.lang.lua.general/86552

Список изменений в языке можно посмотреть здесь: www.lua.org/work/doc/manual.html#8 (на английском языке, после обновления сайта скорее всего будет доступен по другому урлу).

Скачать официальную реализацию можно здесь: www.lua.org/ftp/lua-5.2.0.tar.gz

Зеркало: www.tecgraf.puc-rio.br/lua/ftp/lua-5.2.0.tar.gz

Mobile DevelopmentМобильная разработка с Corona SDK из песочницы

Здравствуйте!

Захотелось поделится своим опытом работы с Corona SDK — средством кроссплатформенной разработки для Android/iOS от Ansca Mobile (основатели компании в прошлом работали в Adobe над Flash Lite). Статей здесь про него не так много, хотя движок один из самых популярных и не без причины. Corona SDK предназначен прежде всего для разработки игр, но нем можно писать и бизнес-приложения — для этого в движке есть набор UI-компонентов со сменными стилями. Главным преимуществом движка является значительное увеличение скорости разработки для опытных программистов, а также снижение технического барьера для новичков в мобильном gamedev’е. Продолжение под катом…

Разработка под Apple iOSCodify: нативная среда разработки для iPad

В App Store появился редактор Codify — первая среда разработки под iPad, с нативным интерфейсом и поддержкой тачскрина. Очень удобно: нажимаете пальцем на характеристики объекта — и видите всплывающее окно со списком вариантов. Но самое главное, что в любой момент написанный код можно запустить, чтобы на ходу проверить работу акселерометра и мультитача. Никаких больше мучений с эмуляторами!



Codify построен на языке Lua, это простой и элегантный язык программирования, который хорошо подходит для создания игр под iPad.

NginxПроксируем Cookies на Nginx при помощи модуля lua-nginx



Я уже писал о том, как с помощью Nginx трансформировать контент на лету. С момента публикации статьи на базе описанного метода запущен и развивается реальный проект ecommerce. Помимо перевода и трансформации также реализован и SEO рерайт по заветам руководства для начинающих от Google.

Однако, до полной победы изделия русских программистов над заграничным контентом, не хватало одной небольшой, но очень важной вещи — проксирования Cookies.

В чем суть проблемы


Проблема заключается в том, что любой нормальный сервер приложений всегда выставляет Cookie, например для того, чтобы сохранять сессию клиента или корзину с его товаром. Если этот сервер (точнее его администратор) озабочен поддержанием определенного уровня безопасности, то он выставляет в теле Cookie домен и путь, например domain= backend.org; path=/path1. Наш Nginx запущенный в режиме Reverse Proxy замечательно меняет все ссылки в теле документов с backend.org на frontend.org, но не делает этого для кук! Это означает что браузер клиента отвергнет такие куки.

Этот вопрос с давних пор волнует умы администраторов nginx, в рассылках он всплывает по 1-2 раза в год. Большинство вопрошавших, по-видимому, решили свои проблемы подкручивая логику backendа, но не я! После очередного апдейта оригинального сайта стало понятно, что костыль с PHP + Curl тянуть больше невозможно и надо непременно найти решение с помощью Nginx!

Я вернул тему в рассылку, попутно перебирая варианты из ngx_http_perl_module и переменной $upstream_http_set_cookie, даже заглянул в дебри сорсов с призрачной надеждой написать модуль самому. Но все было неудачно пока в один прекрасный момент я не получил письмо от Mikhail Mazursky, который дал ценный совет. Благодаря этому совету я не только с легкостью решил задачу проксирования Cookie, но и получил новый инструмент, с помощью которого можно создать версию 2.0 своего проекта.

Решение


Название этого инструмента lua-nginx-module, который написан еще одним китайским самородком с корнями из Taobao. Из названия легко понять, что речь об языке скриптов Lua встроенном в Nginx — но это больше чем просто интерпретатор! Эти ребята создали полностью неблокируемую реализацию с производительностью десятки тысяч операций в секунду, которая имеет хуки ко всем событиям внутри Nginx. То что раньше можно было реализовать только написав свой модуль на C, теперь можно сделать несколькими строчками на Lua. Заинтересовались?

Peer-to-PeerLua что новенького в BitTorrent DHT?

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

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

Итак, что новенького мы наловили в BitTorrent DHT.

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

image
Недавно столкнулся с такой проблемой и был крайне удивлен, что в сети материалов по ней очень мало, учитывая популярность Lua. Как выяснилось, существует довольно много библиотек для работы с Lua-скриптами из java, но все они имеют свои нюансы. Лучше всего, как выяснилось, использовать библиотеку LuaJava от тех же разработчиков, что написали Lua.

Блог компании Mail.Ru GroupТяжелая жизнь антиспамеров или как это происходит на самом деле

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

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


Собственный антиспам в Mail.Ru существует уже много лет. Желание разработать собственный продукт вполне объяснимо, т.к. на определенном этапе развития проекта требования к качеству и масштабируемости механизма борьбы со спамом стали слишком велики, чтобы их могли удовлетворить даже очень сильно кастомизированные «чужие» продукты. Конечно, какие-то сервисы и компоненты независимых поставщиков мы используем по-прежнему (например, для проверки писем на вирусную составляющую), но их роль сейчас уже не является определяющей.

ПрограммированиеКакой стиль выделения блоков будет проще читать и воспринимать ученым (математикам, физикам)?

Проголосовал 1301 человек. Воздержалось 442 человека.

Алгоритмы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. Посмотрим как это получилось.

АлгоритмыLua vs. JavaScript

SmallPic

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