@ProLua

Страница 291 из 307
Насибуллин
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
генерирует SQL на основе полей HTTP запроса?
Прямо по урлу! Похоже на graphQL, но мне даже больше нравится

Насибуллин
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 в чуть другом формате. Но да, придётся обращаться к этой штуке только из бекенда, потому что юзеры чего только не пришлют совершенно самостоятельно, и разграничение прав тут не очень поможет.

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 можно получить, и все что хочется

Рома
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

У меня идея такая что если файла нет. то просто продолжить выполнение - я чуть выше накатываю шаблонную таблицу, в а файле с имененм ключа должны быть уже индивидуальные особенности
Через pcall/xpcall дёргай. local function safeDofile(file) local function errorprinter(str, lvl) return str..'\n Traceback: '..debug.traceback(lvl or 1) end -- в ранних версиях луа нельзя передавать -- аргументы в xpcall local function df() return dofile(file) end local res = { xpcall(df, errorprinter) } if res[1] then return -- пропускаем первый аргумент успешности select(2, unpack(res)) end return nil, res[2] -- нил и ошибка end



Рома
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
Спасибо за совет - поиграюсь с pcall/xpcall
Да я тебе уже готовую фигню выслал ))

ShadoWalkeR
11.05.2018
11:06:07
Я с ними не работал - чтобы разобраться лучше самому написать)

Google
Snusmumriken
11.05.2018
11:06:41
http://wiki.luajit.org/NYI вот тут таблица есть, dofile вообще never compile
Ну блин, код из dofile может быть скомпилен. Допустим, ты сделал dofile на штуку которая выдаёт набор функций, а потом много дёргал эти функции. Трасса скомпилится.

Про трассировку можно глянуть тут, 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

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