Рубрика «Lua» - 14

Все началось с того что я работаю в офисе, где как водится нет нормальной вентиляции. Зато есть много народу, кому-то все время жарко, другим постоянно дует.

Для контроля качества воздуха в помещении знать температуру недостаточно. Даже с кондиционером часто бывает прохладно, но душно. Спертый воздух. Оказалось, на это больше всего влияет концентрация со2. Когда я узнал стоимость готовых приборов хотел от этой идеи отказаться. Но случайно увидел описание оптического датчика концентрации со2 MH-Z19.
Читать полностью »

image

Начнем с важной информации: совсем не обязательно перспективные языки являются новыми. Им не так много лет, как вашим любимым Python или Ruby, их нет ни в одной топовой десятке популярных рейтингов (GitHut, RedMonk, TIOBE Index), а знание этих языков не дает пока существенной прибавки к зарплате (за исключением, возможно, Swift). Но и назвать их революцией, набирающей обороты в среде избранных, тоже нельзя. Безусловно, у них есть своя ниша, определенная доля рынка (до 2%) и сложившееся комьюнити. Просто в будущем именно они могут посягнуть на лавры топ-5, если не случится событие типа «черный лебедь».

За последние годы в рейтингах популярности языков мало что изменилось — одни опускаются, другие поднимаются, но никто не врывается в топ под лозунгом «лучший из лучших». Процесс захвата новых территорий для языка чаще всего занимает годы, и за это время успевает сформироваться необходимая база развития. Поэтому никаких эксклюзивов и написанных за вчерашний вечер уникальных языков в обзоре не будет — просто потому, что их время еще не настало. Но в ближайшие годы популярность незыблемых столпов, таких как Java (вся), JavaScript или PHP, будет снижаться, а их место постепенно займут «новички».
Читать полностью »

Лучше маленькая рыбка, чем большой таракан.
Русская поговорка
Lua микро-фреймворк на Apache - 1
Lua нравится всем, он простой, но не примитивный. Нет, скорее — продуманный, выверенный, оптимальный. Р.Иерузалимски (автор языка), в своей книге «Программирование на языке Lua» пишет: «Lua — это крошечный и простой язык». Это так. И ещё он скриптовый, переносимый, эффективный, расширяемый, склеивающий (glue). Как же такой не попробовать?

Как и многие другие, я поддался искушению заглянуть, что же из себя представляет Lua. Ну а поскольку самый лучший способ изучить язык, это написать на нём программу, я решил набросать простой веб-микрофреймворк под сервер Apache (версии 2.3+). Апач выбран потому, что он есть на каждом хостинге, и вся настройка под Lua заключается во включении модуля mod_lua.so в конфигурации сервера. Это решение конечно, будет медленнее, чем на Nginx, но возможно, нам больше и не надо?
Читать полностью »

Блокировки продолжаются а я всё также не приветствую отдачу не шифрованного HTTP трафика в заморские прокси, Tor, анонимайзеры и включение экономии трафика в браузере. Пока есть возможность я буду пытаться ходить на сайты прямо. Заодно скорость связи с сайтом не будет зависеть от загруженности стороннего сервиса.

Я поставил на Firefox плагин RequestPolicy и обнаружил в HTTP хедерах на заблокированном сайте.

X-Squid-Error:"403 Access Denied"

Это значит что соединение к сайту проходит через прозрачный прокси провайдера который блокирует доступ к сайту из реестра.

В этой статье я попробую обойти это ограничение при помощи локального прокси написанного на Lua (Вики)

Скачав LuaSocket 2.0.2 я написал небольшой скрипт локального прокси.

Читать полностью »

Рассказ будет про один контентный проект, в котором мне пришлось переделать архитектуру. Ранее была реализована классическая Лампа-схема (Linux-Apache-MySQL-PHP). Но кол-во посетителей прибавлялось и прибавлялось, уже стало подходить к 1М хитов и сервер БД переставал справляться. Первым делом, я предложил докупить еще один серак, но в данном сегменте конвертация в партнерских программах довольно низкая, так что, руководство проекта немного пожмотилось.

Если, интересно, как мне пришлось изменить архитектуру и при этом еще прикрутить систему ротации и рейтингов, то добро пожаловать под кат.
Читать полностью »

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

Компания занималась продажами, и естественно здесь оказалось много таких человечков, которых зовут менеджерами по продажам, и им нужно было очень много звонить!

В первый же день мне показали существующую систему телефонии. 5 шлюзов VoIP Audiocodes MP-202B и десяток DECT телефонов+ отдельный SIP транк на каждом телефоне. Этими-то телефонами и жонглировали 30 человек весь день. Чё за ..., подумал я и решил поставить Asterisk.
Читать полностью »

Предлагаемые Вашему вниманию часы являются, по сути, побочным продуктом изучения свойств и повадок популярного зверя по кличке ESP8266. Думаю, любой человек, знакомящийся с каким-либо микропроцессором, рано или поздно реализует на нем свою версию часов.
Единственно, что отличает мои часы – у них нет кнопок. Вообще. Они просто показывают точное время.

Бескнопочные часы - 1
— И все же, где же у него кнопка? © Приключения Электроника.

Читать полностью »

На Хабре уже есть статьи о NoSQL СУБД Tarantool и о том, как его используют в Mail.Ru Group (и не только). Однако нет рецептов того, как работать с Tarantool на Python. В своей статье я хочу рассказать о том, как мы готовим Tarantool Python в своих проектах, какие проблемы и сложности при этом возникают, плюсы, минусы, подводные камни и, конечно же, «в чем фишка». Итак, обо всем по порядку.

Асинхронная работа с Tarantool на Python - 1

Tarantool представляет собой Application Server для Lua. Он умеет хранить данные на диске, обеспечивает быстрый доступ к ним. Tarantool используется в задачах с большими потоками данных в единицу времени. Если говорить о цифрах, то это десятки и сотни тысяч операций в секунду. Например, в одном из моих проектов генерируется более 80 000 запросов в секунду (выборка, вставка, обновление, удаление), при этом нагрузка равномерно распределяется по 4 серверам с 12 инстансами Tarantool. Не все современные СУБД готовы работать с такими нагрузками. Кроме того, при таком количестве данных, очень дорого ожидание выполнения запроса, поэтому сами программы должны быстро переключаться от одной задачи к другой. Для эффективной и равномерной загрузки CPU сервера (всех его ядер) как раз нужен Tarantool и асинхронные приемы в программировании.
Читать полностью »

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

boxshell

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

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

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js