Насибуллин
11.05.2018
08:24:33
там довольно много бюрократии кстати
Snusmumriken
11.05.2018
08:24:56
Не удивительно. Приходит какой-нибудь чел и говорит: "Ваша убунта неправильная", и всё ломает.
Насибуллин
11.05.2018
08:25:33
так она и так сломанная
убунта самый бажный дистрибутив
Google
Snusmumriken
11.05.2018
08:26:23
Потому что её постоянно развивает куча народу, мало связанного между собой?
Насибуллин
11.05.2018
08:26:34
наверное)
не знаю
может политика овнера неправильная
Рома
11.05.2018
08:38:23
А я тут изучаю postgREST - супер штука, которая мапит http запросы в sql по проанализированной схеме базы, имхо у этого все шансы постепенно вытеснить все другие подходы, за этим будущее. 10 минут и у тебя есть апи для всей базы на все случаи жизни. И тут есть стартер-кит с опенрестей и прочими свистелками!
Приятно удивлен, значит и луа будущее есть кроме мелких игрулек.
Насибуллин
11.05.2018
08:39:37
генерирует SQL на основе полей HTTP запроса?
или я не понял..
зато я понял почему убунта бажная))
Рома
11.05.2018
08:42:44
Насибуллин
11.05.2018
08:43:26
это не взлетит
Рома
11.05.2018
08:43:53
Слишком круто, чтобы быть правдой, но правда
там уже и продакшн проекты, и комьюнити боьшое, и куча форков
не форков то есть, а дополнений всяких и библиотек
Google
Насибуллин
11.05.2018
08:45:51
не взлетит
Snusmumriken
11.05.2018
08:52:48
Да ладно, тот же sql в чуть другом формате.
Но да, придётся обращаться к этой штуке только из бекенда, потому что юзеры чего только не пришлют совершенно самостоятельно, и разграничение прав тут не очень поможет.
Рома
11.05.2018
08:54:10
Snusmumriken
11.05.2018
08:54:41
Юзеры тебе организуют миллиард запросов туда, куда они не имеют права ломиться, пожалей базу. Это же всё проверять нужно.
Рома
11.05.2018
08:54:43
Одна из фундаментальных идей - у постгреса встроена обалденная система прав
Насибуллин
11.05.2018
08:55:57
была уже такая история
couchdb
похоронили
Snusmumriken
11.05.2018
08:57:07
https://ru.wikipedia.org/wiki/CouchDB
> Состояние: активное
Или похоронили == перестали использовать?
Насибуллин
11.05.2018
08:58:13
ну хайп был приличный
да и база сама неплохая
но не взлетело так чтобы как монга
Рома
11.05.2018
08:59:32
потому что ноускл не нужен
Насибуллин
11.05.2018
09:00:31
АААААА
все в голове перемешалось
полная убунта
Рома
11.05.2018
09:01:12
ну нужен иногда редко, но по возможностям и надежности SQL слишком долго слишком умными людьми пилится
Влад
11.05.2018
10:34:22
Snusmumriken
11.05.2018
10:38:39
Мне немножко кажется, что ты чем-то не тем занимаешься : )
Правда, я сам обычно логирую примерно так:
function foo(a, b)
logging:debug('Foo s: '..render{a, b})
a = a + b
logging:debug('Foo e: '..render(a))
return a
end
function bar()
x, y = 10, 20
logging:debug('Bar s: %d, %d', x, y)
v = foo(x, y)
logging:debug('Bar e: %d', v)
return v
end
print(bar()) --> 30
И получаю такой листинг:
Bar s: 10, 20
Foo s: {10, 20}
Foo e: 30
Bar e: 30
Насибуллин
11.05.2018
10:39:17
нет, задача вполне реальна
Google
Насибуллин
11.05.2018
10:39:27
просто у питона например есть getcurrentframe
в смысле стекфрейма
Snusmumriken
11.05.2018
10:39:38
Ну типа ориентируемся в логах на тему "Где у нас там функция bar? Опа, вот она, а вот то как она вызвала foo".
Насибуллин
11.05.2018
10:39:40
и там можно итерироваться по трейсбеку
Snusmumriken
11.05.2018
10:40:53
Подозреваю что у луёв этого нема потому что замедляет процесс/усложняет. Или нет.
Рома
11.05.2018
10:41:32
Это кстати все есть, но надо ошибку вызывать
Snusmumriken
11.05.2018
10:41:48
Тут нет ошибок. Это просто текст трейсбека.
А вот когда дёргается ошибка - эта фигня вызывается самим интерпретатором.
Рома
11.05.2018
10:42:29
оу, сор, правда есть, так а почему не подходит?
Snusmumriken
11.05.2018
10:42:37
Ну, тут только имена функций, а не ссылки на их самих.
На boot.lua не обращай внимания, это love2d-шная оболочка.
Рома
11.05.2018
10:45:35
У дебага есть метод getinfo, он много чего показывает
для логгинга хватит с лихвой
есть ключевое отличие от питона: jit! Из стак трейса много чего выкинется просто потому что много чего инлайнится
ладно, не знаю питон, может там так же
Насибуллин
11.05.2018
10:47:02
jit да, это существенно
но в дотнете например jit поддерживает компиляцию в дебуге
ShadoWalkeR
11.05.2018
10:47:37
Кстати, @Snusmumriken есть вопрос - почему такая вещь не отрабатывается, если нет файла правильно?
extensions[v].include(assert(dofile(GLOBALS.ETC .. "LUA_"..v..".lua"),"No file"));
Пришлось сделать проверку существования файла "LUA_"..v..".lua" через попытку его открыть на чтение
Google
Snusmumriken
11.05.2018
10:47:51
Рома
11.05.2018
10:49:40
из этого можно даже полноценный отладчик собрать, уверен что они и так есть, там и upvalues можно получить, и все что хочется
Snusmumriken
11.05.2018
10:50:00
Рома
11.05.2018
10:50:40
интроспекция интроспекция
размышлял отделяя суп от специй я
Насибуллин
11.05.2018
10:50:52
отладчик все же подразумевает определенную инструменттацию
т.е. не только на чтение
ShadoWalkeR
11.05.2018
10:51:05
У меня идея такая что если файла нет. то просто продолжить выполнение - я чуть выше накатываю шаблонную таблицу, в а файле с имененм ключа должны быть уже индивидуальные особенности
Snusmumriken
11.05.2018
10:51:16
https://studio.zerobrane.com/doc-lua-debugging
Рома
11.05.2018
11:01:38
можно открыть файл на чтение, если не нил, то прочитать и loadstring сделать
@Snusmumriken в js такая фигня есть, что код с try catch не jit компайлится и советуют такое на более мелкие функции разносить, как в lua с этим не знаешь?
Snusmumriken
11.05.2018
11:04:44
У luajit компайлится всё что достаточно разогрето.
Только тут на трассу не небирается, несколько десятков тысяч раз надо вызвать код с pcall/xpcall чтобы скомпилилось.
Рома
11.05.2018
11:04:54
нашел табличку, все хорошо с этим
ShadoWalkeR
11.05.2018
11:05:18
Спасибо за совет - поиграюсь с pcall/xpcall
Рома
11.05.2018
11:05:42
http://wiki.luajit.org/NYI
вот тут таблица есть, dofile вообще never compile
Snusmumriken
11.05.2018
11:05:45
ShadoWalkeR
11.05.2018
11:06:07
Я с ними не работал - чтобы разобраться лучше самому написать)
Google
Snusmumriken
11.05.2018
11:06:41
Про трассировку можно глянуть тут, 19 минута: https://www.youtube.com/watch?v=9oVZObf2udU
Насибуллин
11.05.2018
11:12:47
эта ссылка вроде появлялась уже в этом чате
это твой знакомый?
Snusmumriken
11.05.2018
11:14:19
Нет, это просто хороший доклад. Грех его не показать к месту.
Насибуллин
11.05.2018
11:14:30
да, я просто поинтересовался
Snusmumriken
11.05.2018
11:14:40
Я же не ГРЕШНИК, а? Или ты думаешь ПО ДРУГОМУ? ))
Насибуллин
11.05.2018
11:15:08
грешник в таком контексе звучит как терпила или чепушила или любое другое ругательство с зоны
тем временем в браузере микрософт Эдж
Sergey
11.05.2018
13:28:54
https://play.golang.org/p/gxWW9wRah0l
Насибуллин
11.05.2018
13:34:50
move_to_next_attribute
это итерирует на следующий атрибут
а тебе нужен узел (Node)
я так думаю
Particle
11.05.2018
13:37:38
Объясните, плз, почему разные последовательности получаются при выводе таблицы у этих вариантов?
тут, setAssay через table.insert добавляет элементы и у него, есдинственного, на выводе Assay правильная последовательность
Assay = lib_probability.setAssay({[2] = 5, [3] = 10, [4] = 1})
Assay = {["2"] = 5, ["3"] = 10, ["4"] = 1}
Assay = {[2] = 5, [3] = 10, [4] = 1}
Sergey
11.05.2018
13:37:53
а тебе нужен узел (Node)
local r = assert(xmlreader.from_string(xml))
while (r:read()) do
local leadingws = (' '):rep(r:depth())
if (r:node_type() == "element") then
io.write(("%s%s:"):format(leadingws, r:name()))
while (r:move_to_next_node()) do
io.write((' %s=%q'):format(r:name(), r:value()))
end
io.write('\n')
end
end
так ошибка
lua: test_yandex.lua:69: attempt to call method 'move_to_next_node' (a nil value)
stack traceback:
test_yandex.lua:69: in main chunk
[C]:
Насибуллин
11.05.2018
13:38:38
я не знаю есть ли такая функция
надо смотреть документацию xmlreader