@ProLua

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

Google
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
Религия запрещает)

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 - вроде бы есть какая-никакая генерация. Не могу сказать, советую я эти модули или нет - просто они есть %-)

Может потому, что генерируют ручками? (опять я о своем)
Скорее потому, что luarocks в мире Луа - это не часть стандартной инфраструктуры, а нечто привнесенное извне. Нет культуры выкладывания кода в оупен-сорс - или она развита очень плохо.

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 по моему тоже парсеры.

Но, спасибо, за помощь!

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
Не факт. Либу можно сделать и выложить на гитхаб.

сам юзаю, проблем не наблюдал
Ну а я уже нашел проблему: если в тексте есть символы типа &, " и т.д, & в них будет повторно закодирован.

Еще и все функции глобальны.

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

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

Сериализации. По крайней мере очень похоже на то (см escape())
эммм, может я туплю, но как по мне это корректное поведение

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
Так я не об этом. Я о том, что если в каком-то тексте у тебя уже амперсанды закодированы в &, они будут повторно закодированы. Т.е. получится &
Что получится, я понял. Но история-то в том, что в сериализуемом объекте & - это строка, а не заэскейпленный символ. Потому мне все же поведение кажется корректным. Но, как написал выше, код не совсем мой, надерган по форумам. И в моем случае работает без багов.

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!

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]

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

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
Теперь в курсе, спасибо ?

Страница 225 из 307