mva
по какой-то причине я был уверен, что через %2 вседа можно обращаться ко второму capture'у
mva
а по факту [^%2] исключает из матча буквально цифру 2 😢
mva
причём, не-в-[] к ней так обращаться-то можно
mva
а вот как внутри - тот её вопрос
mva
блин, фигня какая-то
mva
как же мне тогда иначе сказать gsub'у что "матчить то, что НЕ подходит под то, что скапчурилось в %2"? 😢
mva
пока придумал только разделить правило на два (для каждого варианта кавычки)
mva
но тогда текущие два (для каждого варианта угловой скобки) превращаются в 4 прогона gsub >_>
Snusmumriken
Луёвые регулярки не тьюринг-полные, давай несколько замен.
mva
ну, эт
mva
ПРОИЗВОДИТЕЛЬНОСТЬ СТРАДАЕТ
Snusmumriken
Ага.
Snusmumriken
Или довай lpeg/pcre подрубай.
mva
нене
Snusmumriken
Так что или парсь, или довай мегарегулярки. Да, мегарегулярки медленнее чем несколько луёвых.
mva
у меня там цель - никаких внешних зависимостей
mva
впрочем, можно же lulpeg забандлить :D
mva
но, что-то, такое себе
Mark ☢️
5.1 или 5.4 ?
Maxim
Pavel
Maxim
Pavel
mva
Что-то какая-то странная фигня:
local ok, quotes=srp.load(qf);
if not ok then
print("[E]",quotes)
quotes={}
elseif not(not(quotes)) then
quotes={}
end
print(ok,type(quotes))
os.exit(0)
Казалось бы. всё норм.
Ан нет:
$ luajit a.lua
true nil
O_o
Maxim
mva
Maxim
Maxim
Pavel
Ох Рано….вступил @OXRAHA
Snusmumriken
Тэкс, есть тупейший нано-профилировщик для тех кто его ещё не написал/не нашёл, основанный на метках.
Преколы: отсутствие хуков , то есть почти не влияет на производительность.
https://pastebin.com/qYrT6eJ4
profiler:setTimeFunc(socket.gettime)
profiler:start('foo')
for i = 1, 100 do
... do something
end
profiler:stop('foo')
profiler:start('bar')
doSomeHardFunction()
profiler:stop('bar')
print(profiler:getInfo())
--> bar f: 1.5323 e: 1.5323 5.25%
--> foo f: 29.186 e: 29.186 94.75%
Snusmumriken
В ловке, если печатать на экран каждый кадр, выглядит вот так (код этой фигни на pastebin'е).
f — full, общее затраченное время за все start-stop'ы, e — elapsed, время между последним start и stop'ом. Надо ещё добавить pause, кстати, хм.
Саша
величины тоже наверное не помешают
Snusmumriken
Дык секунды всё. Проценты — время текущего elapsed'а относительно остальных. О, ещё можно добавить начальную строку легенды.
mva
а ещё выравнивание табами (и лимит на длину значения, чтобы не ломал выравнивание)
Snusmumriken
Тут уже есть
("%-20s f: %-10.3f e: %-10.5f %-3.2f%%"):format(t[i], full, elapsed, part)
То есть, оно уже по умолчанию не ломает выравнивание. Под имя есть 20 символов, этого (должно быть?) достаточно, но возможность модифицировать шаблон, кстати, тоже не помешает.
То что в ловке так отображается — это потому что там базовый шрифт не моноширинный, эх.
B
Знает кто конкретную хорошую литературу для освоения с?
Mark ☢️
Mark ☢️
@supapro
Вилби
Привет ребяты! Слушайте, кто работает програмистом... Сколько вы работаете часов в день? И как вам занятость по времени/зп?
Maxim
Вилби
Интересует как все обстоит в этой сфере, как все это выглядит
Вилби
В обыденной жизни так сказать. Хочу узнать какой образ жизни у людей данной профессии
Саша
Я работаю 8-9 часов в день; когда не работаю, я сплю, кушаю или иду/еду на/с работу
Maxim
Коллеги, кто с OpenResty сейчас работает? Подскажите, как рассчитать количество одновременных подключений? Вроде простая арихметика, но что-то не срастается
Snusmumriken
У нгинкса есть встроенный модуль ngx_http_stub_status_module, который выглядит примерно так:
location = /basic_status {
stub_status;
}
И выдаёт нано-вебстраничку с содержимым, типа такого:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Snusmumriken
Да, то что у тебя одновременные подключения не сходятся с запросами может быть сразу по куче причин. Например, keep-alive держит соединение до минуты после последнего запроса. Соединение остаётся на некоторое время, но реальные данные не передаются и никаких запросов не бегает. И по тому же keep-alive можно запросить сразу кучу всего не открывая соединений на каждый запрос.
Snusmumriken
@AlexFails, попробуй влепить вот эту морду @silent_banofbot, а то я таки чаще днём сплю чем доступен.
Mark ☢️
Snusmumriken
Но зато нужно собрать пятерых чуваков которые проголосуют за.
Mark ☢️
Snusmumriken
Ну ясное дело. Благо админов он не трогает и оставляет сообщения "кто кого банил". Я буду восстанавливать нечестно забаненых, если тут сформируется бан-клан и работать над этим, но сомневаюсь что это реально понадобится.
Snusmumriken
А вот как безадминский антиспам работает отлично, проверено в короночате.
Snusmumriken
Куб уже пытался меня зобанить в короночате.
Mark ☢️
Snusmumriken
Корона сдк, луашный фреймворк для мобилок
Mark ☢️
Snusmumriken
На луа.
Mark ☢️
Наркоманы
Snusmumriken
Ну в смысле для луа, да. Плюсовое ядро, дёргание луями сишных функций/методов объектов.
Mark ☢️
Лучше бы усилия пустили на переход на лую 5.4 в опенврт
Mark ☢️
И луажыд
Lucky
только на самом андроиде с её помощью не покодишь
Highly Likely
Highly Likely
Lucky
Mark ☢️
Зачем им это?
Просто для вентиляторов же. Как и большрнство опенсорца
Lucky
яблофончеги не умеют в луажит. им партея велит не уметь.
Mark ☢️
Snusmumriken
Луисты — это, обычно, пользователи луа. Обратись к разработчикам опенврт ))
Anonymous
Не осилил шутку про вентиляторы
Mark ☢️
Mark ☢️
Fan
Mark ☢️
Это ж боян
Pavel
https://transformer.huggingface.co/
@Snusmumriken @gotzmann