ShadoWalkeR
Я проще сделал - взял TCPSocket - в array добавляю строки сообщения - астериск его построчно возвращает, до разделителя между сообщениями - пустой строки. После чего содержимое импровизированного буфера кидаю в функцию обработчик и очищаю его
Snusmumriken
Ну, message queue, да.
ShadoWalkeR
Как результат - на тестовом сервере скрипт уже сутки крутится и отъел 20 мегабайт
ShadoWalkeR
10 на старте и еще 10 в процессе работы за все время
Snusmumriken
У меня сейчас на "основной работе" логирование похожим образом работает.
Условно, на каждой машине развёрнуто приложение, принимающее строчки по TCP, и пихающее их в луа-табличку.
Когда накопится буфер или по истечению таймаута - каждая машина сгружает всё на сервер логов.
Уже месяца полтора крутится с первого тестового запуска, а логов там ~100-500мб в секунду бывает : )
Не каждый раз, конечно, среднее - 5-30мб.
ShadoWalkeR
В руби очень много из коробки есть - поэтому его использую. Просто бездумное написание кода некоторыми людьми убивает))))
Snusmumriken
Это было и будет всегда, пока к комплюхтерам не начнут пускать только тех, кто уже написал пару сотен мильёнов строчек кода и нескольких лет поддержки собственных, кхм, продуктов (и не умер за это время).
ShadoWalkeR
Co(n)stantine👨🔬
ShadoWalkeR
а питон не зашел?
Персональная непереносимость логики организации кода в питоне.
ShadoWalkeR
И ОТСТУПЫ!
Co(n)stantine👨🔬
Co(n)stantine👨🔬
а ты код без них пишешь?
ShadoWalkeR
а ты код без них пишешь?
С ними. Просто когда в консоли надо по быстрому поправить скрипт, они превращают это в ад)
Revertron
Revertron
"Начальники", в нашей стране, обычно нацелены на скорейшее получение бабла, соответственно, максимально быстрое внедрение фич, а какой ценой - это уже их не волнует : )
Знаю, знаю... Это у нас просто ненормальный - разбирается в коде всех наших проектов, под винду, андроид, иос, макось, расширения под несколько браузеров и код всех бэкендов...
И заставляет нас писать чётко :)
Revertron
Yuriy
Я согласен. Начальник лоялен.
Co(n)stantine👨🔬
Где можно подробно почитать про таблицы и метатаблицы и метаметоды🤔
Snusmumriken
Ммм
Snusmumriken
Даже не знаю
Co(n)stantine👨🔬
понял и спасибо
Snusmumriken
https://habr.com/post/346892/
Snusmumriken
Ну а то.
Co(n)stantine👨🔬
пиши еще, что-то интересное)
Elmir
/help@FailsBot
FailsBot
/help@FailsBot
USAGE:
/help - prints this message;
/vzhuh [message] - do vzhuh;
/start - info about bot.
Co(n)stantine👨🔬
/vzhuh@FailsBot
FailsBot
∧_∧
( ・ω・。)つ━☆・*。
⊂ ノ ・゜+.
しーJ °。+ *´¨)
.· ´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·'* ☆
FailsBot
∧_∧
( ・ω・。)つ━☆・*。
⊂ ノ ・゜+.
しーJ °。+ *´¨)
.· ´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·'* ☆
FailsBot
∧_∧
( ・ω・。)つ━☆・*。
⊂ ノ ・゜+.
しーJ °。+ *´¨)
.· ´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·'* ☆ ddd@FailsBot
B
nani?
Vlad
Omae Wa Mou Shindeiru
Co(n)stantine👨🔬
😒
Particle Booster
Ребят, нашел калькулятор https://pastebin.com/HFmKA780 Подскажите, как его использовать из другого файла?
Что бы можно было строку в него передавать.
Particle Booster
я прорбовал так
str = "1+1"
solve(str, a, b)
> attempt to call a nil value (global 'loadstring')
Писал прям внутри калькулятора
Particle Booster
просто в конце добавил эти 2 строки
Particle Booster
и запустил
Particle Booster
в том то и дело, что я не знаю
Particle Booster
просто наугад ткнул
Particle Booster
я хочу, что бы можно было это использовать не из консоли, а передать стринг, к примеру "1+1/2", в качестве аргумента
Particle Booster
может я не совсем понимаю, что пишу, но мне нужно передавать в калькулятор задачу не через консоль. Что бы он хватал переменную с это й задачей и решал.
Particle Booster
var = 1 + 2 - 4
запихать var в калькулятор надо
Particle Booster
я его буду туда заносить
Particle Booster
я незнаю куда это писать, что бы он это взял и решил)
Particle Booster
мне не надо через консоль
Particle Booster
через консоль он видит, а переменную я незнаю куда ему передавать
Particle Booster
есть эта штука https://pastebin.com/HFmKA780 которая решает задачу, когда я запускаю её через нотпад++ и ввожу в консоль то, что надо решить.
Меня не устраивает, что мне приходится что-то вводить через консоль.
Нужно, что бы этот калькулятор хватал переменную из файла которая содержит задачу (не решенную) и решал её, возвращая ответ
Particle Booster
он же принимает input через консоль, потому и предположил, что это стринг
Particle Booster
всё. Я кажется понял, что это не эта штука мне решала задачи =/
Particle Booster
спасибо)
Particle Booster
какой?
Particle Booster
есть какой-нить модуль для этого?
Particle Booster
Спасибо!
Snusmumriken
Ууу
Snusmumriken
Если хочется написать нормальный калькулятор, хавающий строчки типа
'10 + 20 * (35 + 48)', то нужно курить преобразователь в обратную польскую запись, или читерить через loadstring, да. Но писать сейчас - слишком занят.
Particle Booster
спасибо, щас с лоадстрингом разберусь, может меня это устроит)
Particle Booster
не, мне не нужны логарифмы и т.п. Мне простые 4 операции надо
Particle Booster
нулей вроде тоже не предвидится)
Snusmumriken
Лоадстринг грузит строку как кусок кода (функцию). При ошибках парсинга (невалидный код) возвращает ошибку ещё функцией loadstring (nil, err), а при ошибках в процессе исполнения - на попытке вызвать как функцию (поэтому вызов через pcall/xpcall).
Particle Booster
а вот так оно никак не будет работать?
local a = 2
x = loadstring("a+10; return a")
print(x())
Particle Booster
j!
Particle Booster
заработало, когда локал убрал!
Particle Booster
a = 2
x = loadstring("local b =a+10; return b")
print(x())
вот так заработало
Particle Booster
Спасибо!)
Particle Booster
а можно заставить принудительно искать в локальном пространстве?
Particle Booster
да, что бы искать не в глобальном. К примеру
b = 10
function z(b)
local b = 2
local a = 2
local r = loadstring("local c = a + b; return c")
return r()
end
print(z(b))
тут странно. Он видит только глобальную b, но не видит локальную, а вот a он видит локальную =/
Particle Booster
он мне пишет - анэкспектед симбол. Понять не могу в чем проблема
Particle Booster
угу, понял)
Particle Booster
пытается в глобальное обратиться
Snusmumriken
Это можно через setfenv, дописываемый к строке с loadstring'а, тогда все переменные будут писаться в определенную табличку.
Particle Booster
я вот сейчас как раз смотрю про сетенв, но чёт не совсем понимаю, как это сделать
Particle Booster
постоянно ошибки выдает
Particle Booster
догнал, как сделать без энвиронментов -
local a = 1
local b = 3
local sign = "+"
local res = loadstring("local res ="..tostring(a)..sign..tostring(b).." return res")
print(res())