usernameak
Alexander
R
Что за контора?
Не могу назвать до подписания определённых документов, но хорошая.
R
Alexander
R
Alexander
Нет.
Какая зп? Удаленный режим?
Nikolay
@dear_yoshi давай описание вакансии с требованиями и плюшками
Luсky
Почему бы и нет?
R
Так что кому интересно, давайте лучше в личку. В идеале ссылку на Линкедин, конечно.
Snusmumriken
А я тут сижу и думаю над промисами, async-await'ами в луях.
Lucky
А я тут выпотрошил gblorb и думаю, как они вообще ухитряются программировать на Inform7 хоть что-то?
Snusmumriken
Пока чот такое, оно корутинизирует, поэтому можно смело лепить sleep'ы и прочую фигню.
Timur
Snusmumriken
Эх
Anonymous
Здравствуйте, а возможно ли сделать примерно вот такое:
"foo" = 15 -> foo = 15
?
текст перевести в название переменой
Aydar
Anonymous
Кіря
Я забыл математику
Snusmumriken
Круть
Leon174
Беда. Как дальше жить будешь?
Godruma-vihari Dasa
Anonymous
Snusmumriken
Но. Но, но, но.
1.
local s = 'foo'
local a = _G[s]
2.
local my_vars = {foo = 10}
local s = 'foo'
local a = my_vars[s]
local b = my_vars.foo
3. Не трахать себе мозги чушью и сделать как положено вместо попыток костылять костылями. Потому что сама задача по виду и типу выглядит как "как мне собрать размазанные по стене какашки в совочек": не стоит возиться с какашками, и тем более, строить системы размазывания какашек по стенам и дальнейшего автоматического сбора их в совочки: совочки уже существуют, и желательно сразу использовать именно их, минуя процедуры размазывания-сбора.
Anonymous
Snusmumriken
@startekmb
> Добрый день всем ребят. На днях писал библиотеку порт библиотеки LuaSec на более легковесный его аналог mbedtls. То есть получается этакая библиотека для работы с https без тяжелой зависимости такой как OpenSSL. Надеюсь правилами не запрещено пиарить свои библиотеки). https://github.com/star-tek-mb/luasec-mbedtls
ベクゾッド
О спасибо
Snusmumriken
Правилами не запрещается, но ссылки и картинки только после суток в группе.
ベクゾッド
библиотека пока новая, могут быть баги так сказать. много функционала еще не реализовано, API другой, и пока нормальной документации не сделал) но помощь так сказать приветствуется
ベクゾッド
Snusmumriken
У базового luasec бывают проблемы с автоматическим определением протоколов в соединении, иногда приходится перебирать (((
Snusmumriken
Лично я вообще вяло пилю обёртки над курлом с синхронно-асинхронными запросами.
ベクゾッド
Snusmumriken
Дык просто выбор версии tls при коннекте.
Snusmumriken
Курл же — просто какой-то кусок грёбаной магии, который автоматически и сразу делает всё как надо, был бы урл. Но да, меня в основном интересуют запросики )
ベクゾッド
Понял. У меня там только один выбор. Tls 1.2
Rider
Ребят привет! можете помочь с утечкой?
Rider
данный код вызывает утечку памяти при высокой нагрузке на него, используется в QUIK.
Snusmumriken
f = io.open(fname, "a");
while f==nil do
f = io.open(fname, "a");
end;
Вот это тот вызывающий утечку код, сообщение удалено потому что ты в группе меньше суток, а оно решило что io.open это ссылка. Если бы ты сделал монофонтом, было бы норм.
Lucky
Хых
Rider
Snusmumriken
Ну, ты просто не закрывал файл после использования.
Rider
Закрывал
Snusmumriken
f = io.open(...)
...
f:close()
Rider
В самом начале кода было локал. Вероятно в квике не корректно работает мусорщик, и при многократном запуске это рождало утечку
Snusmumriken
Ещё с файлами такое дело, что открывая один и тот же файл во многих местах одновременно в, например, многопоточном приложении, может наступить капитальное замедление процесса при одновременном чтении-записи.
Rider
Файл один, но и поток один, открыл - закрыл... и так бесконечно. утечка исчезла
Rider
я заметил что постепенно убирая из кода "local" утечка уменьшалась, можете проверить в своих компиляторах, но в квике она была из-за него... сотка
Snusmumriken
Можешь сделать операции над файлами чуть медленнее но атомарными:
function writefile(file, text)
local f = assert(io.open(file, "wb"))
f:write(text); f:close()
end
function appendfile(file, text)
local f = assert(io.open(file, "ab"))
f:write(text) f:close()
end
function readfile(file)
local f = assert(io.open(file, "rb"))
local data = f:read("*a")
return data, f:close()
end
Тебе не нужен цикл
while f ==n il do
f = io.open(fname, "a");
end
Потому что если файл не открыт, на это есть причины, и их надо решить.
Rider
мне скорость дикая нужна, никаких замедлений
Rider
причина что его открыли для чтения.
Rider
я знаю кто) я
Snusmumriken
Ммм, насколько дикая? ))
Замедление на долю миллисекунды при чтении и записи это сильное замедление для тебя? У тебя пинг гораздо выше.
Rider
на грани смерти!
Rider
рассказать?
Snusmumriken
Я понял, тебе нужен ОЧЕНЬ быстрый торговый бот, который пытается заработать на микроскачках, поэтому ты даже переселился в соседнюю локалку своего брокера, чтобы пинг был как можно меньше.
Rider
Rider
В чем идея... рассказываю...
Snusmumriken
Ну опиши примерно.
Rider
железо 1. цель сохранить ТОС в файл на виртуальный диск, диск расшарен.
Snusmumriken
ТОС?
Rider
железо 2. цель открыть файл, разбить на части для других клиентов-приложений
Snusmumriken
Почему не использовать сокеты?
Rider
Таблица обезличенных сделок — это список всех сделок с выбранным инструментом с указанием времени совершения сделки, объёма и направления, который обновляется в режиме реального времени. Таблицу можно строить по любым инструментам, торгующимся на бирже. В основном таблицу используют для того, чтобы понять, когда совершают сделки крупные игроки, и присоединиться к таким сделкам.
Snusmumriken
Ну, ссылка думаю лишняя, текста достаточно
Snusmumriken
Мм, нет.
Rider
ДА
Rider
сотка
Snusmumriken
Любые операции ФС (даже на RAM-диске) кушают довольно много ресурсов, особенно на расшаренных дисках.
Snusmumriken
Сокеты (особенно UDP, хы) гораздо быстрее, инфа сотка.
Snusmumriken
Единственное, зачем оно может тебе понадобиться — некоторая отказоустойчивость, например у тебя регулярно падают приложули и ты не хочешь чего-то потерять, тогда ты можешь использовать файлы в пересылке, если что-то упало — файл остался, ты запускаешь приложение и оно его подхватывает начиная процесс заново примерно с момента остановки.
Snusmumriken
И во всех случаях передачи данных между машинами — сокеты гораздо быстрее, я гарантирую.
Snusmumriken
Мало того, твой расшаренный диск шарится теми же сокетами, просто с кучей внешних обёрток, которые замедляют процесс.
Rider
Snusmumriken
В таком случае, есть весьма забавное решение. Называется "база данных", из быстрых баз данных лично я советую redis, благо оно умеет ещё и в брокерство сообщенек с подписками, а служебные данные ты можешь хранить в ней и время от времени делать снапшоты.
Rider
Почему ты понял что биржа, но не знаешь что такое ТОС?)