Group Butler [beta]
Hi Al!
Snusmumriken
Snusmumriken
Всё, можно делать консольные игры реального времени.
Snusmumriken
Tverd
это все здорово, а как в линухе, минуя curses?
mihacooper [МСК -2]
Есть вот такой вот проектик для консоли в Lua: https://github.com/hoelzro/lua-term Сам его правда не пробовал
Snusmumriken
Есть, но мой круче )))
Snusmumriken
Snusmumriken
И форматирование произвольное. И возвращает текст который можно напечатать много-много раз.
mihacooper [МСК -2]
Есть, но мой круче )))
может быть. Просто стоило сообщить.
Snusmumriken
У меня прекол в том, что: а) можно сделать текст (буквы, фигурки) который всегда будет рендериться в одном месте с одними параметрами б) присобачивать модификаторы (форматирование, смещение) в процессе рендеринга в) функция draw, которая создана чтобы рендерить что-то на каких-то координатах.
Snusmumriken
Не а, это универсальные ansi-последовательности, их должны поддерживать практически все консоли.
Snusmumriken
https://ru.wikipedia.org/wiki/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B8%D0%B5_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8_ANSI
Светомеч
Мне казалось, ты там с винапи для реалтайма что-то мутил
Snusmumriken
Какие-то больше, какие-то меньше. Например, венда не поддерживает зачёркнутый текст но поддерживает ленуксовые терминалы. У меня есть флаг "зачёркнутый", который не будет работать на венде но будет на линексе. Винапи - отдельный разговор, я комбинирую ffi-winapi со своей терминальной фиговиной.
Snusmumriken
Кстати, для очистки консоли эффективнее использовать ansi-последовательность \27[J;. Отсутствует мерцание и это мгновенно.
Saphire
По типу Линуксовых
Snusmumriken
Я просто пишу в консоль всякую ересь через print('bla-bla') (точнее, io.write('bla-bla'), ибо print делает перенос). Это всё. У консолей есть последователи символов-модификаторов. Сам попробуй.
Snusmumriken
Snusmumriken
Вот примерно так оно выглядит без "библиотек". Правда, кодировку стоит переключить на юникод. Линексы работают аналогично, это - стандарт консолей с бог знает какого дремучего 80-го года. И через \27[LETTER вызываются разные команды. Если нужны доп-параметры - \27[X;Y;ZLETTER
Snusmumriken
А вот так вот рисуем прямоугольники. Если до этого переместить курсор на нужную позицию - мы по его позиции нарисуем прямоугольник заданных параметров. Это офигенно забавно, и раньше так делали игры.
Snusmumriken
То есть, это как в игре "черепашка", в которой мы двигаем фиговину чертя линии, только после каждой печати нормального символа - оно смещается на единицу вправо, и это надо компенсировать. А так - можно смело рисовать линии, графики, фигуры и прочую фигню. Хоть 3d-рендер. Кроссплатформенный ))
Светомеч
3D в консоли, мм
Snusmumriken
Я ж кидал (в другой чатик, но ты там есть)
mihacooper [МСК -2]
Snusmumriken
Такое можно написать. Это кажись чья-то частная разработка.
Snusmumriken
А, не, тут щупается: http://www.humus.name/index.php?page=3D&ID=43
Snusmumriken
А с winapi/posix можно замутить хоть 3d-шутан ))
Snusmumriken
На самом деле, ничто особо не мешает делать консольные игры в love2d: там можно открыть консоль и закрыть окно. Текстуры рендерить на канвас низкого разрешения, а из канваса - в консоль + сверху гуй.
Group Butler [beta]
Hi Maxim!
Kukuzapa
Добрый день. Возникла необходимость сгенерить xml строку. Кто-нибудь может посоветовать либу?
Revertron
Ручками уже не кошерно?
Kukuzapa
Религия запрещает)
Kukuzapa
Спасибо, хотя опасаюсь, что там по большему счету парсеры.
Ilya
Да, похоже на то.
Kukuzapa
xml2lua - точно парсер
Ilya
Такое ощущение, что в мире Луа ничего не генерируют - только парсят =))
Ilya
Для CSV искал генератор - та же фигня.
Revertron
Может потому, что генерируют ручками? (опять я о своем)
Ilya
@Kukuzapa навскидку нашел http://stevedonovan.github.io/Penlight/api/topics/06-data.md.html#XML и https://github.com/LuaDist/luaxml - вроде бы есть какая-никакая генерация. Не могу сказать, советую я эти модули или нет - просто они есть %-)
Ilya
Может потому, что генерируют ручками? (опять я о своем)
Скорее потому, что luarocks в мире Луа - это не часть стандартной инфраструктуры, а нечто привнесенное извне. Нет культуры выкладывания кода в оупен-сорс - или она развита очень плохо.
mihacooper [МСК -2]
И еще https://matthewwild.co.uk/projects/luaexpat/ и https://github.com/Phrogz/SLAXML
Kukuzapa
Slaxml и luaexpat по моему тоже парсеры.
Kukuzapa
Но, спасибо, за помощь!
Vladimir
собрал с просторов тырнета deserialize - на SLAXML serialize - самописный
Vladimir
сам юзаю, проблем не наблюдал
Ilya
Не факт. Либу можно сделать и выложить на гитхаб.
Ilya
сам юзаю, проблем не наблюдал
Ну а я уже нашел проблему: если в тексте есть символы типа &, " и т.д, & в них будет повторно закодирован.
Ilya
Еще и все функции глобальны.
Ilya
Сериализации. По крайней мере очень похоже на то (см escape())
Vladimir
Еще и все функции глобальны.
я не сварщик, в моем кейсе (автоматизация умного дома на Vera) багов не проявилось полномасштабного тестирования не проводил
Vladimir
Сериализации. По крайней мере очень похоже на то (см escape())
эммм, может я туплю, но как по мне это корректное поведение
Ilya
По идее уже закодированные сущности надо пропускать
Vladimir
по идее, выполнив сериализацию, а затем десериализацию, ты должен получить тот же объект (сорян, таблицу) это код так и работает
Ilya
Так я не об этом. Я о том, что если в каком-то тексте у тебя уже амперсанды закодированы в &, они будут повторно закодированы. Т.е. получится &
Ilya
Скажем так - может это и не проблема как таковая, но что называется "наивная реализация"
Ilya
Нет защиты от дурака.
Vsevolod
дураки есть, а защиты нет
Vladimir
Так я не об этом. Я о том, что если в каком-то тексте у тебя уже амперсанды закодированы в &, они будут повторно закодированы. Т.е. получится &
Что получится, я понял. Но история-то в том, что в сериализуемом объекте & - это строка, а не заэскейпленный символ. Потому мне все же поведение кажется корректным. Но, как написал выше, код не совсем мой, надерган по форумам. И в моем случае работает без багов.
Snusmumriken
Ну, у тебя есть список сессий?
halt
Вот, у меня есть скрипт. Ну в Луа я совсем не силен. Как все это скрестить? freeswitch.consoleLog("WARNING","Before first call\n") first_session = freeswitch.Session("user/1000") if (first_session:ready()) then freeswitch.consoleLog("WARNING","first leg answered\n") second_session = freeswitch.Session("user/1002") if (second_session:ready()) then freeswitch.consoleLog("WARNING","second leg answered\n") freeswitch.bridge(first_session, second_session) freeswitch.consoleLog("WARNING","After bridge\n") else freeswitch.consoleLog("WARNING","second leg failed\n") end else freeswitch.consoleLog("WARNING","first leg failed\n") end
Group Butler [beta]
Hi Oleg!
Group Butler [beta]
Hi Егор!
Group Butler [beta]
Hi RandomUser!
ShadoWalkeR
@Snusmumriken хочешь интересную задачу на Lua?)
Snusmumriken
НЕТ. У меня последнюю неделю 10-18-часовой рабочий день, я ничего не хочу!
ShadoWalkeR
Ок, не отвлекаю