R
Что за контора?
Не могу назвать до подписания определённых документов, но хорошая.
Alexander
Нет.
Какая зп? Удаленный режим?
R
Какая зп? Удаленный режим?
Как договоришься :) Меня на эту задачу хантили 2 года, соответственно по деньгам всё нормально.
Nikolay
@dear_yoshi давай описание вакансии с требованиями и плюшками
Luсky
Почему бы и нет?
R
@dear_yoshi давай описание вакансии с требованиями и плюшками
Нет описания. Их рекрутёры сами выходят на подходящие резюме. Я могу только предложить таковое, а потом отсобеседовать.
R
Так что кому интересно, давайте лучше в личку. В идеале ссылку на Линкедин, конечно.
Snusmumriken
А я тут сижу и думаю над промисами, async-await'ами в луях.
Lucky
А я тут выпотрошил gblorb и думаю, как они вообще ухитряются программировать на Inform7 хоть что-то?
Snusmumriken
Пока чот такое, оно корутинизирует, поэтому можно смело лепить sleep'ы и прочую фигню.
Snusmumriken
Эх
Anonymous
Здравствуйте, а возможно ли сделать примерно вот такое: "foo" = 15 -> foo = 15 ? текст перевести в название переменой
Aydar
Здравствуйте, а возможно ли сделать примерно вот такое: "foo" = 15 -> foo = 15 ? текст перевести в название переменой
_G["foo"] должно сработать, но это скорее хак нежели нормальный код, если есть возможность лучше так не делать.
Кіря
Я забыл математику
Snusmumriken
Круть
Leon174
Беда. Как дальше жить будешь?
Snusmumriken
s='foo' r=load(s..'=15') r() print(foo) Lua 5.4 (в старых версиях loadstring вместо load).
Этот вариант весьма затратен и стрёмен, но по крайней мере работает с учётом областей видимости.
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. Не трахать себе мозги чушью и сделать как положено вместо попыток костылять костылями. Потому что сама задача по виду и типу выглядит как "как мне собрать размазанные по стене какашки в совочек": не стоит возиться с какашками, и тем более, строить системы размазывания какашек по стенам и дальнейшего автоматического сбора их в совочки: совочки уже существуют, и желательно сразу использовать именно их, минуя процедуры размазывания-сбора.
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
Хых
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
В чем идея... рассказываю...
Snusmumriken
Ну опиши примерно.
Rider
железо 1. цель сохранить ТОС в файл на виртуальный диск, диск расшарен.
Snusmumriken
ТОС?
Rider
железо 2. цель открыть файл, разбить на части для других клиентов-приложений
Snusmumriken
Почему не использовать сокеты?
Rider
Таблица обезличенных сделок — это список всех сделок с выбранным инструментом с указанием времени совершения сделки, объёма и направления, который обновляется в режиме реального времени. Таблицу можно строить по любым инструментам, торгующимся на бирже. В основном таблицу используют для того, чтобы понять, когда совершают сделки крупные игроки, и присоединиться к таким сделкам.
Snusmumriken
Ну, ссылка думаю лишняя, текста достаточно
Rider
Почему не использовать сокеты?
я не заморачивался с этим в квике , я потеряю скорость
Snusmumriken
Мм, нет.
Rider
ДА
Rider
сотка
Snusmumriken
Любые операции ФС (даже на RAM-диске) кушают довольно много ресурсов, особенно на расшаренных дисках.
Snusmumriken
Сокеты (особенно UDP, хы) гораздо быстрее, инфа сотка.
Snusmumriken
Единственное, зачем оно может тебе понадобиться — некоторая отказоустойчивость, например у тебя регулярно падают приложули и ты не хочешь чего-то потерять, тогда ты можешь использовать файлы в пересылке, если что-то упало — файл остался, ты запускаешь приложение и оно его подхватывает начиная процесс заново примерно с момента остановки.
Snusmumriken
И во всех случаях передачи данных между машинами — сокеты гораздо быстрее, я гарантирую.
Snusmumriken
Мало того, твой расшаренный диск шарится теми же сокетами, просто с кучей внешних обёрток, которые замедляют процесс.
Snusmumriken
В таком случае, есть весьма забавное решение. Называется "база данных", из быстрых баз данных лично я советую redis, благо оно умеет ещё и в брокерство сообщенек с подписками, а служебные данные ты можешь хранить в ней и время от времени делать снапшоты.
Rider
Почему ты понял что биржа, но не знаешь что такое ТОС?)