Anonymous
ок
Anonymous
ща
Anonymous
закомменчу сам запрос
Snusmumriken
Как это красивше сделать: Ну там, например, составляем список типа: funclist = { ['photos.move'] = {'owner_id', 'target_album_id', 'photo_id'}, ['photos.putTag'] = {'owner_id', 'photo_id', 'yser_id', 'x', 'y', 'x2', 'y2'}, } А потом проходим по этому списку: for k, ct in pairs(funclist) do flvk[k:gsub('%.', '_')] = function(...) local args = {} for i, v in ipairs{...} do args[ct[i]] = v end return call_method(k, args) end end
Snusmumriken
Типа генерации функций по шаблону. Получается в 100500 раз короче, и быстрее добавлять новые функции.
Anonymous
annelin@westfall:~$ time lua libtts.lua && time python tts.py signature calculated: 472a0caf2ef7d34cd0925d05261ab0083161f44c55c8f8515d8fb04b26cdc35f real 0m0.022s user 0m0.019s sys 0m0.002s signature calculated: e8d6e5295df930f2c3ce949c16e6c4db138ee5d47dd1c4b166551f49163ddf7e real 0m0.311s user 0m0.282s sys 0m0.027s
Anonymous
посоны это ПУШКА
Anonymous
в 15 раз быстрее путона!
Anonymous
точно, обычный луа
Snusmumriken
Хе, оно сработает, потому что делает ровно то же, что у тебя. Просто у тебя на функцию получается 4 строки, а тут - одна. Нет безумия!
Snusmumriken
это ладно
Луажыт будет в 60-300 раз быстрее самой луа.
mva
я как-то just for fun делал на pure-lua реализацию crypt_sha512 (или 256, не помню). В общем, генерацию паролей для /etc/shadow
Anonymous
у меня тут считает хэши hmac-sha256
mva
и она оказалась быстрее референс-реализации на C
mva
из мана по этой функции
mva
вот это была пушка
Snusmumriken
https://eklausmeier.wordpress.com/2016/04/05/performance-comparison-c-vs-lua-vs-luajit-vs-java/ И это ещё бенч 2.0.0. 2.0.2 очень сильно подняла планку.
mva
> javascript
mva
> меньше lua
Snusmumriken
> меньше lua
За счёт v8.
mva
по-моему, у кого-то тесты подкручены
Snusmumriken
Нет, просто v8 со своим jit.
Snusmumriken
Дык не по организации, а по визуализации.
Snusmumriken
Во, ещё типа бенч ))) https://habrahabr.ru/post/113804/
Snusmumriken
Больше бенчей богу бенчей!
mva
а он не автор? :)
mva
картина
Snusmumriken
Snusmumriken
Ты пишешь на асме. Тут нет соседей.
Anonymous
отбой, это инклуд урллиба вешает питон на 0.2 секунды
Anonymous
считать хэши примерно одинаково по времени, но на полной задаче луа побыстрее в 2-3 раза один хуй
Snusmumriken
Да расслабься, уже написал и норм. Меня просто бесит бешеное количество букв, которое надо писать, поэтому я сокращаю где могу.
Alexander
Всем привет Встречал кто либу для работы с потоком камеры onvf?
fgntfg
ffmpeg?
Alexander
H264
Snusmumriken
Ребят, составляю статистику. У кого есть ipv6?
Anonymous
У провайдера есть, по умолчанию теперь ставят ipv6 + ipv4-tunnel, можно по особому желанию отказаться от ipv6, но получить белый v4 ip Модем старый, ipv6 нет. Vodafone/KabelDeutschland Deutsche Telekom/UnityMedia ставят года с 2015 точно ipv6 Мой счет: 1 нет, 3 есть
Snusmumriken
Для узнавания текущей ситуации в мире : ) Стоит ли писать всё с дублированием v4-v6 (переключение на случай если есть). Ну там, допустим, у меня есть сервер встреч. Он может работать в двух режимах, и если к нему обращаются по ipv4 - выдаёт список серверов с ipv4, если есть ipv6 - Выдаёт ipv6. Или даже чуть иначе: сервер выдаёт и то и то, по умолчанию ломимся клиентом по ipv6, но если не получается - v4. Тестов, правда, в полтора раза больше, увы. И с v4 ещё нужно подзаморочиться. И узнать как пробивать порты на v6. Работает ли nat-pmp, какой мультикаст-адрес для поиска устройств и т.п. В общем, веселье.
Snusmumriken
Когда я был маленьким, моя старшая сестра притащила меня на форум (rpgarea, довольно древний, в своё время был похож на федо). И там, я очень боялся писать посты. Ощущение собственной бесполезности, плюс мало ли ляпну чего. Поэтому, каждый пост был продуман раз двадцать, с точки зрения корректности и полезности окружающих. Одно сообщение могло быть написано в течение нескольких часов, а потом удалено, потому что по существу мне было нечего сказать. 99% времени я сидел в ридонли. И знаешь? Это было великолепно. Особенно в двенадцать лет, получать респект и уважуху от "двадцатипятилетних дядек". С двачами (ещё теми) была примерно аналогична ситуация, хоть там и более свободный стиль общения. Но правило остаётся: нечего сказать действительно ценного - лучше молчать : ) Разговоры уходят не туда потому, что ты их ведёшь не туда, и слишком много трындишь. Я считаю что это плохой тон.
Snusmumriken
Хех, а вот тут ты гнёшь палку : ) Одно золотое сообщение в год - радость и счастье. За "активным общением" к твоим услугам: а) контактик б) однокласснеки в) двощ г) любая группа телеграмма по геймдеву д) чатики в асечке >500 чел (она ещё жива)
Snusmumriken
Во, кстати, вот тебе задачка. Я люблю её задавать, ибо демонстрирует пространственное воображение. У тебя есть табличка-список: {2, 3, 12, 7, 16, 20, 8, 1, 90, 52}. Твоя задача - удалить из неё все чётные числа. Как ты будешь это делать?
Snusmumriken
Хмм.
Snusmumriken
Есть чётные числа, а мы их, кажется, удаляли : ) В первом случае - вообще ошибка. Почему?
Snusmumriken
Ой, не совсем корректный код.
Snusmumriken
Во, кстати, почему в прошлом случае не удалились вообще все значения? Все же подходили! И да, тут тоже присутствуют чётные.
Snusmumriken
Там нет динамических массивов : ) А если ты используешь вектор - да, такой же. Как там удалять значения кроме обнуления? Если обнулять - вместо чётных будут нули.
Snusmumriken
Вот тебе пример, как это работает. Почему динамический? Потму что это чат по луа, а тут - единственная сложная структура - табличка, она же - динамический массив. Да и чем ты будешь затыкать дырки?
Snusmumriken
Что ты будешь делать в случае если массив - статический, а тебе надо удалять из него значения? Пройдёшься по старому массиву, посчитаешь необходимый объём значений, создашь его копию нужного размера, перенесёшь туда подходящие значения? Да, это покатит. Но ты опять уходишь от темы.
Snusmumriken
Хмм. table.remove удаляет значение по индексу, а ещё - автоматически убирает дырку сдвигом. Ты доки читал? Это стандартная библиотека, и функция которая используется настолько часто, что доводится до автомата.
Snusmumriken
Что ты тут вообще делаешь? Ещё и в обмане обвиняешь : ) Читай. http://www.lua.ru/doc/5.5.html
Snusmumriken
Snusmumriken
Нечётные, ты имеешь ввиду?
Snusmumriken
Тогда будет ок : ) А если мы не хотим создавать новую таблицу? Допустим, под неё нет памяти.
Snusmumriken
Тот факт что ты так перебираешь означает то, что ты пока не понял сути происходящего. Найди закономерность.
Snusmumriken
Очень плохо будет.
Snusmumriken
Ладно, как придёшь к компу - сам развлечёшься. Домашнее задание такое. Как разберёшься - заходи : )
Alexey
Во, кстати, почему в прошлом случае не удалились вообще все значения? Все же подходили! И да, тут тоже присутствуют чётные.
Элементарно. Ты удалил элемент с индексом 1 и сдвинул элементы. Следующая итерация проверяет элемент с индексом 2. Далее думай.
Anonymous
А поясните мне за _ENV? Я вот хочу сделать у себя простой синтаксис модулей, чтобы в одном (базовом) модуле были базовые определения функций, а в другом можно было их переназначать. Это мне удалось сделать, но сейчас базовые определения используют значения переменных из базового модуля, а не из дочернего. Т.е.: base.lua: name='_base' function test() print(name) end function test2() end mod1.lua: name='mod1' function test2() test() end и при вызове test2 печатается строка '_base', а хотелось бы 'mod1'. Файл mod1.lua подгружается с env, в котором есть все функции и переменные base.lua и этот env меняется в процессе загрузки mod1, но функция test() как будто выполняется в старом env.
Anonymous
Можно это как-нибудь без объектов и self сделать?
Dika
Надо уменьшать i на 1 после удаления
Alexey
Надо уменьшать i на 1 после удаления
Я бы просто обходил массив в обратном порядке. for i = #t, 1, -1 do if ... then table.remove(t,i) end end
Anonymous
пгсоны, если есть один большой главный исполняемый скрипт (main.lua) ,который скомпилирован в байт-код luajit'ом, и к нему еще куча мелких библиотек через require() подгружается - нужно ли и насколько оправдана компиляция в байт-код всех мелких либ?
B
Гспада, встал вопрос, кто чем пользуется в работе? я вот сижу думаю, пользовать ли ide либо какие то просто редакторы но с дополнительным софтом под конкретные задачи дабы иметь лучшее представление о том что как делается и работает; пользовался атомом но в последнее время у него начались лаги, проблемы с обновлениями и зависания во время работы с крупными файлами, сейчас пока сижу на code, поглядывал на вим но шутеечки вроде «пилю проекты на виме вот уже джва года просто потому что не могу из него выйти » как то, не знаю прям =)
mva
😃
mva
точнее, neovim+deoplete+syntastic+luacheck
Snusmumriken
Notepad++ (SciTE), потому что придрочился к шорткатам, есть поиск по файлам, автообновление изменений, портабельный режим и легко расширяется (особенно шорткатами). А ещё он не делает мерзких вещей, типа перехвата консоли, и бешеное количество операций по кодогенерации, и работает с удалёнными файлами, в т.ч. по ftp : ) Либы: - Сеть - luasocket + luasec, заодно там есть пара функций типа sleep/gettime. - Профилировщик - luaProfile - Сериализация - lua_cjson/json/serpent (последний сериализует во внутренний луа-формат, можно десериализовать loadstring'ом) - Расширенная файловая система - lfs Ну, это в общем-то довольно очевидно.
Snusmumriken
В чём прекол сублима? Он же жирный, а уж его настройка - требует изучения всей сублимовой инфраструктуры. Чтобы настроить отступы - лезть в конфиг и прописывать (а не редактировать конфиг, как в scite, или двумя кнопками в n++). А ещё, он перехватывает консоль и форматирует её по своему.
Tverd
Вижуал студия код
Tverd
под линухом на ноуте нормально идет
mva
mva
ST да VS Code у них "норм идут"
mva
вас бы за P3 посадить
Snusmumriken
Ну, напокупали компов за пол ляма )))) А если серьёзно, я (не пользовался вимами и емаксами) не видел нормального редактора, который спокойно работает с сотней-другой файлов на десятки мегабайт, и отжирает при этом 25мб оперативки. Ну, нотпад по умолчанию тоже плохо работает с такими объёмами, пока не отключишь проверку на изменения в файлах. Но современные редакторы и без этого тупят-тормозят, даже на вводе кода.
Snusmumriken
Зато у атома есть power mode
Snusmumriken
И даже combo-mode : ) Но я не могу представить человека, который бы писал таким на постоянной основе.
Snusmumriken
Норм. Но он классический, n++ - из той же категории, хоть и новее чутка : )