Aqendo
Ничего себе)
Igor
Этому апдейту вроде недели 2-3
Null
Этому апдейту вроде недели 2-3
да не, в вебе уже давно есть
Null
потому что там js есть и можно относительно легко прикрутить
Igor
да не, в вебе уже давно есть
А, это я наверное фикс какой-то вспомнил этой фишки, там же вроде был как раз недавно апдейт с ней связанный
Null
а в tdesktop (да и на мобиле) не всё так просто
Igor
А так да, вспомнил, что уже довольно давно её использовал
Igor
Ну у меня 98% телеграмной жизни проходит в вебе, так что не страшно)
Igor
Он и под мобилки, кстати, адаптирован, если бы пользование веб приложениями с телефона не вызывало бы дикую боль в пятой точке, я бы именно его и использовал.
Igor
Igor
Мне такой дезигн нравится даже куда больше, чем тот, что есть у tdesktop и мобильной аппки.
Highly Likely
я вот этого и хотел избежать, так-то :)
Строго говоря то, что ты хочешь получить — то же, что предлагает снус :)
Highly Likely
Строго говоря то, что ты хочешь получить — то же, что предлагает снус :)
Работай оно так, как ты этого бы хотел — оно бы делало ровно то же самое. Неявно полностью копировала таблицу как тип-значение
Mike_Went
(решено, уже не актуально) господа, есть вот такой алгоритм калькуляции CRC16 на плюсах. задача: переписать его на Lua. (под nodemcu). вознаграждение: 50 USD любой криптой.
Mike_Went
<3
Mike_Went
А нельзя её просто обернуть в Luaшный интерфейс?
это сильно сложнее и не факт что заведётся.
Tony
Чтобы не переписывать, а просто использовать
Vyacheslav
https://github.com/cloudwu/skynet/blob/master/lualib/skynet/db/redis/crc16.lua
Mike_Went
это я всё видел и искал, версий CRC слишком много и они несовместимы.
Mike_Went
каждый вендор пишет свою.
Mike_Went
я в плюсах ноль и повешусь пока буду переписывать это сам.
Vyacheslav
только тут инит 0 а у тебя ffff
Vyacheslav
crc определяется инитом и полиномом. полином тут совпадает, только инит поменять
Денис
Чего-то я торможу чтоли... Или как... Создаю rockspec. Почитал доку на полтора километра. Вроде проникся. Создаю. Пытаюсь установить с репозитория: PS C:\Users\denis> luarocks install https://github.com/outsidepro-arts/AlienTolkLua/blob/main/tolklua-1.0-1.rockspec Error: Could not load rockspec file B:\temp/luarocks_luarocks-rockspec-tolklua-1.0-1-5467/tolklua-1.0-1.rockspec (Error loading file: [string "B:\temp/luarocks_luarocks-rockspec-tolklua-1...."]:8: unexpected symbol near '<') PS C:\Users\denis> Решил, что цифра 8 после двоеточия указывает на строку с ошибкой. Заглянул в rockspec. На этом месте находится summary, вполне даже с обычной строкой в кавычках... Решил поискать по коду символ "<". Нашел, но он был прямо скопипасчен с доки: "lua >= 5.1, < 5.4", Строка номер 18. И не 8 нифига… Решил проверять валидность rockspec через LuaRocks pack. Выяснил, что накосячил с форматом имени файла, потом накосячил с форматом версии. Все исправил. Локально рок парсится. Заливаю на репозиторий - ровно та же самая ошибка, что в первом блоке... Решил посмотреть в темпах куда указывает - там вообще ничего нет. Да, у меня темпы на виртуальном диске, который обнуляется, но после ребута, так что пропасть оно само не могло. Значит, LuaRocks таки чистит за собой мусор. Где я неправ?
Денис
Чего-то я торможу чтоли... Или как... Создаю rockspec. Почитал доку на полтора километра. Вроде проникся. Создаю. Пытаюсь установить с репозитория: PS C:\Users\denis> luarocks install https://github.com/outsidepro-arts/AlienTolkLua/blob/main/tolklua-1.0-1.rockspec Error: Could not load rockspec file B:\temp/luarocks_luarocks-rockspec-tolklua-1.0-1-5467/tolklua-1.0-1.rockspec (Error loading file: [string "B:\temp/luarocks_luarocks-rockspec-tolklua-1...."]:8: unexpected symbol near '<') PS C:\Users\denis> Решил, что цифра 8 после двоеточия указывает на строку с ошибкой. Заглянул в rockspec. На этом месте находится summary, вполне даже с обычной строкой в кавычках... Решил поискать по коду символ "<". Нашел, но он был прямо скопипасчен с доки: "lua >= 5.1, < 5.4", Строка номер 18. И не 8 нифига… Решил проверять валидность rockspec через LuaRocks pack. Выяснил, что накосячил с форматом имени файла, потом накосячил с форматом версии. Все исправил. Локально рок парсится. Заливаю на репозиторий - ровно та же самая ошибка, что в первом блоке... Решил посмотреть в темпах куда указывает - там вообще ничего нет. Да, у меня темпы на виртуальном диске, который обнуляется, но после ребута, так что пропасть оно само не могло. Значит, LuaRocks таки чистит за собой мусор. Где я неправ?
А, кажется, дошло... Ему надо raw кормить, иначе ему же страница гитхаба приходит!
Денис
А, кажется, дошло... Ему надо raw кормить, иначе ему же страница гитхаба приходит!
Таки скормил raw. Не может подключиться к GitHub... Но он же по идее должен прямо с корня репозитория найти rockspec… PS C:\Users\denis> luarocks install https://github.com/outsidepro-arts/AlienTolkLua Error: No results matching query were found for Lua 5.3. To check if it is available for other Lua versions, use --check-lua-versions. PS C:\Users\denis> luarocks install https://github.com/outsidepro-arts/AlienTolkLua --check-lua-versions https://github.com/outsidepro-arts/alientolklua not found for Lua 5.3. Checking if available for other Lua versions... Checking for Lua 5.1... Checking for Lua 5.2... Checking for Lua 5.4... Вопрос о моей правоте остается открытым...
wennerryle #nowar #htswasl?
wennerryle #nowar #htswasl?
но все же соглашусь, что почти все компоненты пишутся для ПК бояр(
Igor
правильно написаные компоненты(и желательно не на react и vue) могут показывать хорошую плавность)
Это да, но "продакшн реди" веб это почти всегда что-то огромное и неповоротливое
Igor
Которое работает так лишь бы работало
wennerryle #nowar #htswasl?
Это да, но "продакшн реди" веб это почти всегда что-то огромное и неповоротливое
ну я бы не сказал, вот недавно svelte появился, работает напрямую с деревом html без всяких абстракций
wennerryle #nowar #htswasl?
Тинькофф на нем писали интерфейс для банкоматов
Rider
Приветствую кодеров!
Rider
Нужна помощь. Код утечку памяти вызывает
Rider
function file_exists(name) local f=io.open(name,"r") if f~=nil then price_infile=f:read("*l"); io.close(f) ; return true ; else return false end end
Rider
Зачем read вызов в тестилке существования файла?
Логика - если файл есть - прочесть значение с него и запомнить в глобалку.
Igor
В любом случае, с ним или без него Lua не имеет такого понятия как "утечка памяти"
Igor
Любая неиспользуемая память, которая была самим Lua зарезервирована в один прекрасный момент освободится сборщиком мусора.
Rider
ща покажу.
Igor
Он отрабатывает раз в n-ое кол-во шагов машины
Rider
как-то так...... Это КВИК. утечка именно в этих строках что я выложил выше. Я что-то про утечку похожую при использовании функции даты какой-то читал и исправлял у себя. сегодня не вспомню.
Rider
тут скрипты одинаковые. разные по таймингу исполнения
Rider
1, 8, и 10 секунд
Rider
возможно,))) просто люблю когда красиво)
Igor
1, 8, и 10 секунд
А ты попробуй после каждого вызова file_exists поставить вызов collectgarbage()
Igor
Результаты удивят
Rider
Ок спасибо! попробую. главное чтоб ничего не сломалося😭
Igor
Ок спасибо! попробую. главное чтоб ничего не сломалося😭
Но оставлять его не нужно, это просто для демонстрации, что утечки нет и Lua знает, что делает)
Igor
Если его оставить, это снизит производительность скрипта в целом, ибо сборщик будет занимать процессорное время. Пусть и не много, но от количества мусора зависит и то, насколько быстро он отработает. Лучше оставить весь хлам на совести Lua и не трогать его самому.
Snusmumriken
function file_exists(name) local f=io.open(name,"r") if f~=nil then price_infile=f:read("*l"); io.close(f) ; return true ; else return false end end
function readfile(filename, read) local file, err = io.open(filename, "rb") if not file then return nil, err end local data = file:read(read or "*all") file:close() return data end local foo, err = readfile("myfile", "*l") Никаких утечек просто так невозможно. И вот это довольно красиво, кстати.
Snusmumriken
с квиком не поспоришь😂😂😂
Квик принципиально ничем не отличается от любого другого приложения со встроенными луями. Смотри утечки в другом месте.
Null
с квиком не поспоришь😂😂😂
поспорить можно с твоей интерпретацией того что такое утечка
Rider
поспорить можно с твоей интерпретацией того что такое утечка
что тут спорить🙈 тебе скрипт полностью дать?
Snusmumriken
Давай, кидай на пастбин :)
Rider
пастбин эт шо)
Snusmumriken
pastebin.com
Null
что тут спорить🙈 тебе скрипт полностью дать?
на самом деле, мне насрать вообще. Тебе выше всё объяснили описали причины, и я не понимю что ты хочешь ещё
Rider
pastebin.com
а можно тут?
Null
что тут спорить🙈 тебе скрипт полностью дать?
ты читаешь файл в память память занимается содержимым файла. КАКИЕ НАХЕР УТЕЧКИ?
Null
освободи память и вызови сборщик мусора, и не будет никаких утечек
Snusmumriken
Так вот. Почему код может неожиданно замедляться: 1. У тебя огромные списки (гигантские), которые растут со временем. 2. У тебя кривые On^2 или более хреновые алгоритмы по обработке этих списков
Highly Likely
Никнейм оправдывает автора, хе
Snusmumriken
А раскрой первую мысль, пожаста
Ты такой прочитал файлик со списком элементов 20мб и обработал его. Чем-то линейным. Он отработал за 1 секунду. Ты такой прочитал файлик со списком элементов на 160мб и обработал его. Тем же самым. Он отработал (вот неожиданность) за ~8 секунд.
Snusmumriken
Допустим, ты обрабатываешь какую-то фигню и постепенно её дополняешь. Качаешь котировки, добавляешь их в список и прогнозируешь по всем данным начиная с первой. Список котировок постепенно растёт со временем, и время обработки аналогично вырастает.
Rider
Спасибо. Чтото я тут говна хлебнул..... сам справлюсь. Хорошего вечера
Snusmumriken
Так, а как это бьется с первоначальной проблемой «утечки»? Я не докапываюсь, просто не понимаю
Мы не знаем что в данном случае "утечка", жалоба была что "сначала отработал за 1 секунду а потом за 8", так что пока, на первый взгляд, это просто замедление.