
Saphire
22.01.2018
08:13:58
По типу Линуксовых

Snusmumriken
22.01.2018
08:14:51
Я просто пишу в консоль всякую ересь через print('bla-bla') (точнее, io.write('bla-bla'), ибо print делает перенос).
Это всё.
У консолей есть последователи символов-модификаторов.
Сам попробуй.

TheRainwildsKeeper
22.01.2018
08:16:59

Google

Tverd
22.01.2018
08:18:48

Snusmumriken
22.01.2018
08:19:57
Вот примерно так оно выглядит без "библиотек". Правда, кодировку стоит переключить на юникод.
Линексы работают аналогично, это - стандарт консолей с бог знает какого дремучего 80-го года.
И через \27[LETTER вызываются разные команды.
Если нужны доп-параметры - \27[X;Y;ZLETTER
То есть, это как в игре "черепашка", в которой мы двигаем фиговину чертя линии, только после каждой печати нормального символа - оно смещается на единицу вправо, и это надо компенсировать.
А так - можно смело рисовать линии, графики, фигуры и прочую фигню. Хоть 3d-рендер. Кроссплатформенный ))

TheRainwildsKeeper
22.01.2018
08:31:53
3D в консоли, мм

Snusmumriken
22.01.2018
08:32:22

TheRainwildsKeeper
22.01.2018
08:33:00
Пропустил

mihacooper
22.01.2018
08:33:04
где такое можно пощупать?

Snusmumriken
22.01.2018
08:35:12
Такое можно написать.
Это кажись чья-то частная разработка.
А, не, тут щупается:
http://www.humus.name/index.php?page=3D&ID=43
А с winapi/posix можно замутить хоть 3d-шутан ))
На самом деле, ничто особо не мешает делать консольные игры в love2d: там можно открыть консоль и закрыть окно.
Текстуры рендерить на канвас низкого разрешения, а из канваса - в консоль + сверху гуй.

Google

Group Butler [beta]
22.01.2018
11:28:04
Hi Maxim!

Kukuzapa
23.01.2018
12:39:40
Добрый день. Возникла необходимость сгенерить xml строку. Кто-нибудь может посоветовать либу?

Revertron
23.01.2018
12:41:05
Ручками уже не кошерно?

Kukuzapa
23.01.2018
12:41:45
Религия запрещает)

Ilya
23.01.2018
12:41:48

Kukuzapa
23.01.2018
12:43:18
Спасибо, хотя опасаюсь, что там по большему счету парсеры.

Ilya
23.01.2018
12:43:48
Да, похоже на то.

Kukuzapa
23.01.2018
12:44:39
xml2lua - точно парсер

Ilya
23.01.2018
12:46:12
Такое ощущение, что в мире Луа ничего не генерируют - только парсят =))
Для CSV искал генератор - та же фигня.

Revertron
23.01.2018
12:47:52
Может потому, что генерируют ручками? (опять я о своем)

Ilya
23.01.2018
12:50:52
@Kukuzapa навскидку нашел http://stevedonovan.github.io/Penlight/api/topics/06-data.md.html#XML и https://github.com/LuaDist/luaxml - вроде бы есть какая-никакая генерация. Не могу сказать, советую я эти модули или нет - просто они есть %-)

mihacooper
23.01.2018
12:54:54
И еще https://matthewwild.co.uk/projects/luaexpat/ и https://github.com/Phrogz/SLAXML

Kukuzapa
23.01.2018
13:19:25
Slaxml и luaexpat по моему тоже парсеры.
Но, спасибо, за помощь!

Saphire
23.01.2018
13:21:53

Vladimir
23.01.2018
13:28:23
сам юзаю, проблем не наблюдал

Ilya
23.01.2018
14:04:54

Google

Saphire
23.01.2018
14:06:28

Ilya
23.01.2018
14:07:30
Не факт. Либу можно сделать и выложить на гитхаб.
Еще и все функции глобальны.

Vladimir
23.01.2018
14:11:52

Ilya
23.01.2018
14:13:16
Сериализации. По крайней мере очень похоже на то (см escape())

Vladimir
23.01.2018
14:13:35
Еще и все функции глобальны.
я не сварщик, в моем кейсе (автоматизация умного дома на Vera) багов не проявилось
полномасштабного тестирования не проводил

Ilya
23.01.2018
14:17:58
По идее уже закодированные сущности надо пропускать

Vladimir
23.01.2018
14:19:19
по идее, выполнив сериализацию, а затем десериализацию, ты должен получить тот же объект (сорян, таблицу)
это код так и работает

Ilya
23.01.2018
14:20:18
Так я не об этом. Я о том, что если в каком-то тексте у тебя уже амперсанды закодированы в &, они будут повторно закодированы. Т.е. получится &
Скажем так - может это и не проблема как таковая, но что называется "наивная реализация"
Нет защиты от дурака.

Vsevolod
23.01.2018
14:25:41
дураки есть, а защиты нет

Vladimir
23.01.2018
14:35:55

Alex
23.01.2018
17:24:55

Snusmumriken
23.01.2018
17:29:04
Ну, у тебя есть список сессий?

Alex
23.01.2018
17:32:53
Вот, у меня есть скрипт. Ну в Луа я совсем не силен. Как все это скрестить?
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]
24.01.2018
12:25:06
Hi Oleg!
Hi Егор!

Google

Group Butler [beta]
24.01.2018
18:22:56
Hi RandomUser!

Ilya
24.01.2018
19:05:48

ShadoWalkeR
25.01.2018
07:28:59
@Snusmumriken хочешь интересную задачу на Lua?)

Snusmumriken
25.01.2018
07:29:27
НЕТ.
У меня последнюю неделю 10-18-часовой рабочий день, я ничего не хочу!

ShadoWalkeR
25.01.2018
07:29:38
Ок, не отвлекаю

Tverd
25.01.2018
07:30:16
Дык давай задачу, может у кого-то была похожая )

ShadoWalkeR
25.01.2018
07:31:45
Классика жанра - вывод программой своего кода. Только надо дергать из С - чтобы таблица, содержащая функцию вернула код этой функции. Исходники на диске трогать нельзя - только в рантайме
Хотя луа же в байткод компилирует - врятли получится

Tverd
25.01.2018
07:46:01
Интересная задача... Квайн вроде как называется?

ShadoWalkeR
25.01.2018
07:51:40
Да я в астериск хочу прикрутить чтобы dialplan show выводил что там в экстенах из луа лежит, а не просто
[ Context 'incomming' created by 'pbx_lua' ]
Alt. Switch => 'Lua/' [pbx_lua]
Вот например диалплан родного астерискового ЯП:
[ Context 'default' created by 'pbx_ael' ]
'call_close_by_debt' => 1. Wait(2) [pbx_ael]
2. Playback(voicecon/service_messages/interrupted_call_by_debt) [pbx_ael]
3. Hangup() [pbx_ael]

Alex
25.01.2018
07:53:37

ShadoWalkeR
25.01.2018
07:54:56
Ну суть в том, что диалплан кладется в память и оттуда выводится как есть. А вот с Lua несколько сложней. На диске трогать не хочу потому что ктото диалплан может править и содержимое диска не соотвтествует содержимому в памяти

Tverd
25.01.2018
09:43:47

ShadoWalkeR
25.01.2018
09:43:54
Еще нет

Tverd
25.01.2018
09:44:46
string.dump(function() print "Hello" end)

ShadoWalkeR
25.01.2018
09:45:06
Спасибо за наводку - поиграюсь
Походу замыкание нельзя через dump прогнать

mihacooper
25.01.2018
10:24:22
для этого в Lua есть upvalues

ShadoWalkeR
25.01.2018
10:25:02
Ну да ладно - сейчас поважней задачи есть, главное есть наводка с чем играться

Google

Group Butler [beta]
26.01.2018
19:20:02
Hi White2Demon!
Hi Насибуллин!

ShadoWalkeR
29.01.2018
09:02:49
Коллеги, а поясните разницу между function tbl:callPreCheck(exten) и tbl.callPreCheck = function(exten)
Потому как в первом случае в функцию не передается параметр

Чай
29.01.2018
09:25:24
tbl.callPreCheck = function(self, exten)
Теперь и во втором не будет передаваться.
Вызывай через двоеточие, чтобы первым параметром приходила tbl.

ShadoWalkeR
29.01.2018
09:27:21
Да - у меня через точку вызывается

Group Butler [beta]
29.01.2018
13:47:22
Hi 5h4r3r!

Mikhail
29.01.2018
17:28:17
Ребят, нужно из LUA подключаться посредством SSH
к удаленным серверам, слать команды и грабить корованы...
если короче, с LIBSSH кто-нибудь работал в скриптах Lua?
Чувак, который сделал lpty для LUA ( http://tset.de/lpty/index.html )
как раз жаловался, что эко не отключается....в Ubuntu.
у меня тупо не удается ничего.

Ilya
29.01.2018
17:31:31
os.exec('ssh ... ') ?

Mikhail
29.01.2018
17:32:02
мне нужно держать сессию открытой. и интерактивно слать команды.. и принимать файлы там
os.exec('ssh ... ') ?
и да... ты же в курсе, что в таком случае результат просто за кадром.
и чтобы хоть что то получить делают io.popen("command",)

Ilya
29.01.2018
17:34:52
Теперь в курсе, спасибо ?