Как стать автором
Обновить
0
0
Maxim Nikolenko @mephist

Пользователь

Отправить сообщение

Nginx на стероидах — расширяем функционал с помощью LUA

Время на прочтение9 мин
Количество просмотров54K
Для обеспечения работы всех наших внешних продуктов мы используем популярный nginx. Это быстро и это надежно. Проблем с ним почти нет. Наши продукты также постоянно развиваются, появляются новые сервисы, добавляется новый функционал, расширяется старый. Аудитория и нагрузка только растет. Сейчас мы хотим рассказать о том, как мы ускорили разработку, неплохо увеличили производительность и упростили добавление в наши сервисы этого нового функционала, при этом сохранив доступность и отказоустойчивость затронутых приложений. Речь пойдет о концепции “nginx as web application”.
А именно, о сторонних модулях (в основном LUA), позволяющих делать совершенно магические вещи быстро и надежно.
image
Читать дальше →
Всего голосов 72: ↑69 и ↓3+66
Комментарии40

Ciklum Speakers' Corner: «Lua. Обзор языка и его возможностей»

Время на прочтение1 мин
Количество просмотров6K
Компания Ciklum с продолжает ряд открытых мероприятий под названием Speakers’ Corner на которых, за короткое время можно узнать массу полезной информации и пообщаться с единомышленниками в неформальной обстановке.
На этот раз 16го декабря мы приглашаем всех желающих расширить свои гоизонты и погрузиться в мир Lua, получить краткий обзор и узнать о его возможностях.
Проливать луч света на Lua и открывать новые горизонты будет Владимир Безобюк (Senior Linux Developer, IntroPro).
image
Читать далее
Всего голосов 10: ↑7 и ↓3+4
Комментарии10

LUA в nginx: лапшакод в стиле inline php

Время на прочтение5 мин
Количество просмотров15K

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

Думаю, что все разработчики на PHP (включая меня) так или иначе проходили через период, когда код представляет из себя жуткую смесь html и php, напиханных в одном файле. И речь не о шаблонах, а вообще о всей логике в лапше/спагетти-коде.
И в качестве концепта я решил к первому апреля набросать реализацию чего-то подобного, но на lua под nginx. Прямо как на картинке.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии21

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

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

AngularJS и ReactJS или как сделать ваше приложение быстрее

Время на прочтение4 мин
Количество просмотров51K
Современный мир программирования, а особенно веб и javascript уже давно не тот и имеет очень большое количество инструментов для той или иной задачи. В сегодняшнем посте я хотел бы рассказать как скрестить мощь AngularJS и молниеносность отображения view – Facebook React.

Всем известно, что когда мы генерируем коллекцию во view через Angular, то каждый элемент этой коллекции становится observable. Я конечно понимаю и знаю что есть определенный набор библиотек и решений как это обойти, но сегодня речь не об этом. Что же дает нам React? Ну одно из его преимуществ, это jsx синтаксис, который есть не что иным как html в javascript. Также есть возможность создавать reusable компоненты, наследовать их и использовать всю мощь что позволяет делать эта библиотека. Что же приступим.
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии14

Планируете писать приложение на AngularJS? Пост вам в помощь

Время на прочтение6 мин
Количество просмотров38K
Самые непристойные и отвратительные наши поступки, выходящие за всякие нормы морали и принципов, обычно начианаются со слов «А почему бы и нет?».

В данном посте я затрону вопросы проектирования приложения на AngularJS, философии, его архитектуры, сборки, пройдусь по разным полезным библиотекам и готовым архитектурным шаблонам. В довершение устрою небольшую Angular+Require.js+Grunt+Yeoman оргию, которую я назвал Angular-Super-Seed или чуть более скромно ASS-генератор.

Так что, если вы планируете писать приложение на Angular, то почему бы и нет?

Мотивация


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

Читать дальше →
Всего голосов 27: ↑19 и ↓8+11
Комментарии19

Завершен перевод книги Эдди Османи «Паттерны для масштабируемых JavaScript-приложений»

Время на прочтение1 мин
Количество просмотров36K
Ура! Мы закончили работу над переводом замечательной книги об архитектуре JavaScript-приложения. Работать над переводом было очень приятно — мы получили около 40 пулл-реквестов от совершенно незнакомых нам людей, которые помогли исправить множество опечаток, неточностей и различных багов на сайте! Ссылка на наш перевод упоминалась в курсе «Фронтенд-разработка», читаемом во втором семестре Технопарка Mail.ru, а также в некоторых независимых подкастах.

В целом, реакция JavaScript-комьюнити нас очень приятно удивила, и сейчас мы думаем над возможностью перевода еще одной книги, но четкого плана еще нет.

Читать книгу можно на сайте перевода. Также можно скачать книгу в удобном формате: epub, mobi, fb2. Исходный код проекта доступен в репозитории на GitHub
Всего голосов 108: ↑102 и ↓6+96
Комментарии23

LUA в nginx: слегка интеллектуальный firewall

Время на прочтение6 мин
Количество просмотров31K

Данный пост является продолжением применения lua в nginx.

Там обсуждалось кеширование в памяти, а тут lua будет использоваться для фильтрации входящих запросов в качестве этакого фаервола на nginx-балансере. Нечто подобное было у 2GIS. У нас свой велосипед :) В котором разделяем динамику и статику, стараемся учесть NAT и белый список. И, конечно же, всегда можно навернуть еще специфичной логики, что не выйдет при использовании готовых модулей.
Данная схема сейчас спокойно и ненапряжно (практически не сказывается на использовании cpu) обрабатывает порядка 1200 запросов/сек. На предельные величины не тестировалось. Пожалуй, к счастью :)
Читать дальше →
Всего голосов 50: ↑50 и ↓0+50
Комментарии16

LUA в nginx: горячий кеш в памяти

Время на прочтение5 мин
Количество просмотров30K

Решил пополнить копилку статей на Хабре про такой замечательный ЯП, как lua, парой примеров его использования под капотом nginx. Разбил на два независимых поста, второй тут.

В этом посте nginx используется как «горячий кеш» неких постоянно пополняемых данных, запрашиваемых клиентами по интервалу с опциональным группированием (некий аналог BETWEEN и GROUP BY/AGGREGATE из SQL). Подгрузка данных в кеш осуществляется самим же lua+nginx из Redis. Исходные данные в Redis складываются ежесекундно, а клиенты хотят их от сих до сих (интервал в секундах, минутах, часах...) с агрегацией по N (1<=N<=3600) секунд, отсортированные по дате и в json формате.
С хорошим hitrate на имеющейся машине получается обеспечить 110-130к «хотелок» в секунду, правда с плохим — только 20-30к. Что, в общем-то, тоже приемлемо для нас на одной инстанции nginx.
Читать дальше →
Всего голосов 60: ↑59 и ↓1+58
Комментарии3

GitHub запустил Developer Program

Время на прочтение1 мин
Количество просмотров8.6K
GitHub сегодня анонсировал запуск GitHub Developer Program, предназначенной для лучшего информирования разработчиков о происходящих изменения и коллективной работы над улучшением сервиса.



Члены GitHub Developer Program будут получать уведомления об изменениях в GitHub API, а также самый ранний доступ к новым функциям. У участников программы кроме того будет возможность запросить лицензию разработчика для GitHub Enterprise и размещать свои инструменты для рассмотрения на новой странице интеграции, также запущенной сегодня.
Всего голосов 35: ↑31 и ↓4+27
Комментарии1

Три вопроса на собеседовании руководителя проектов

Время на прочтение1 мин
Количество просмотров27K
Предлагаю каждому написать в комментариях три вопроса, которые, по его мнению, обязательно нужно задать ПМу на собеседовании. Варианты оставляем в комментариях первого уровня, форма вопросов любая. В результате получим материал для опросника, который поможет выявить хорошего руководителя проектов из общей массы кандидатов.

Моя версия под катом.
Читать дальше
Всего голосов 16: ↑11 и ↓5+6
Комментарии44

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №96 (9 — 15 февраля 2014)

Время на прочтение7 мин
Количество просмотров36K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Всего голосов 64: ↑57 и ↓7+50
Комментарии3

Промо-сайт для мобильного приложения. Часть 1

Время на прочтение5 мин
Количество просмотров27K
Дисклеймер

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

Уверен, что мои советы не станут для вас откровением, просто, как это часто бывает, не всегда можно взглянуть на свою работу со стороны и учесть моменты, которые “замыленным взглядом” просто не видны.

Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии8

Создаём шаблон 1С-Битрикс на базе Bootstrap вёрстки

Время на прочтение29 мин
Количество просмотров156K

Введение


Уважаемый читатель, данная статья является по сути своей продолжением статьи «Как сверстать веб-страницу. Часть 2 — Bootstrap» и здесь мы отойдём от собственно вёрстки, занявшись интеграцией HTML шаблона в CMS 1С-Битрикс.

В предыдущей части Хабраюзер Mirantus сверстал шаблон Corporate Blue от студии Pcklaboratory с помощью Bootstrap 3.

Читать дальше →
Всего голосов 25: ↑18 и ↓7+11
Комментарии8

Lua за 15 минут

Время на прочтение1 мин
Количество просмотров333K
image

Для всех, кто хотел разобраться с Lua (скриптовый язык для разработки игр и не только, список), но никак не находил времени, Tyler Neylon приготовил небольшой подарок:

http://tylerneylon.com/a/learn-lua/

Посвящается всем, кто предпочитает один большой список из говорящих самих за себя сниппетов кода (с небольшими комментариями к 95% case'ов) длинным мануалам с огромной иерархией. Очень удобно для тех, кто уже умеет программировать и просто хотел бы разобраться с новым для себя языком. Весь «мега-сниппет» на английском, но примеры несложно читаются.

P.S. А для всего остального есть Hyperpolyglot.
Всего голосов 75: ↑71 и ↓4+67
Комментарии49

Бенчмарк HTTP-серверов (С/C++) в FreeBSD

Время на прочтение6 мин
Количество просмотров34K


Проведено сравнение производительности ядер HTTP-серверов, построенных с использованием семи C/C++ библиотек, а также (в познавательных целях) — других готовых решений в этой области (nginx и node.js).

HTTP-сервер — это сложный и интересный механизм. Есть мнение, что плох программист, не написавший свой компилятор, я бы заменил «компилятор» на «HTTP-сервер»: это и парсер, и работа с сетью, и асинхронность с многопоточностью и много чего еще....

Тесты по всем возможным параметрам (отдача статики, динамики, всевозможные модули шифрования, прокси и т.п.) — задача не одного месяца кропотливой работы, поэтому задача упрощена: будем сравнивать производительность ядер. Ядро HTTP-сервера (как и любого сетевого приложения) — это диспетчер событий сокетов и некий первичный механизм их обработки (реализованный в виде пула потоков, процессов и т.п.). Сюда же можно отнести парсер HTTP-пакетов и генератор ответов. На первый взгляд, все должно свестись к тестированию возможностей того или иного системного механизма обработки асинхронных событий (select, epoll и т.п.), их мета-обёрток (libev, boost.asio и др.) и ядра ОС, однако конкретная реализация в виде готового решения дает существенную разницу в производительности.

Был реализован свой вариант HTTP-сервера на libev. Конечно, реализована поддержка небольшого подмножества требований пресловутого rfc2616 (вряд ли ее полностью реализует хоть один HTTP-сервер), лишь необходимый минимум для соответствия требованиям, предъявляемым к участникам данного тестирования,
а именно...
Всего голосов 48: ↑41 и ↓7+34
Комментарии54

Проблема стиля работы руководителя проекта или что делать с ответственной безответственностью?

Время на прочтение3 мин
Количество просмотров33K
Еще несколько лет назад меня абсолютно не интересовал такой момент в управлении проектами как стиль работы руководителя. Наверное, как и многим руководителям, в первую очередь больше приходилось уделять внимание срокам, бюджету, качеству и удовлетворенности/счастью заказчика и лишь во вторую очередь комфорту работы команды. Благо велись проекты по скраму и не пропускались ретроспективы. И, конечно, получая отрицательный отзыв на какой-то процесс, уже было никак нельзя не предпринять попытки его устранить. Так или иначе, в малых и средних командах складывались дружеские отношения, чувствовался интерес к работе, ну и если что-то шло не так, то в теплой атмосфере ближайшего бара решались все прочие нюансы.

Однако все изменилось, когда кроме прямого ведения проектов, пришлось перейти еще и к подбору, мотивации и контролю самих руководителей проектов. И если с цифрами и статистикой по проектам все более менее понятно и прозрачно, то комфорт работы команд оставался тайной за семью печатями.
Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии38

Реально ли заработать на мобильном приложении по просмотру рекламы за деньги?

Время на прочтение5 мин
Количество просмотров68K
Статья является анализом одного из приложения в списке. Статья была написана сразу после обнаружения уязвимости в приложении. Разработчик получил отчет и подтвердил существование проблемы, обещая в скором времени всё исправить. На данный момент вышло обновление приложения на обоих платформах.

Уже несколько лет AppNana (AppJoy) находится на волне популярности, ведь они дают возможность бесплатно, без смс, скачивать платные приложения из магазинов приложения для iOS и Android. В чем подвох, спросите вы? Где спрятаны подводные камни? Всё очень просто: вы тратите своё время на просмотр рекламы, установку левых, не подписанных приложения по прямым ссылкам, а также делитесь своей личной информацией с пол-дюжиной рекламных агрегаторов для мобильных телефонов, передавая им всю информацию к которой имеет доступ AppNana (включая личный email).
Читать дальше →
Всего голосов 34: ↑23 и ↓11+12
Комментарии7

Простой способ модификации Android приложения

Время на прочтение3 мин
Количество просмотров57K
Бывает после релиза приложения его исходники куда-то деваются. Правда ведь, такое постоянно случается? И ничего не остается кроме как декомпилировать его и подправить несколько сотен строк кода и все это нужно сделать максимально быстро.

Вот и у меня появилась задача модифицировать приложение имея всего лишь его apk. И те, кто занимался декомпиляцией приложений знают насколько тяжело его потом скомпилировать.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии14

Приглашаем на Moscow PM 06/02

Время на прочтение2 мин
Количество просмотров3.3K
6 февраля, первый раз в этом году, компания Mail.Ru Group откроет двери сообществу Moscow.pm (группа московских Perl-программистов).

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



Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Комментарии4

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность