Anonymous
Тут ещё "V" популярность набирает, сам слышал пару раз только о нём, но говорят это Go, но только некоторые моменты сделаны удобнее
Язык который называют самым большим разводом. Если кому то хочется экзотики. То это ИМХО nim
WDMR
Когда-то юзал бек на опенрести
в опенрести есть роутинг?
WDMR
что там вообще есть?
Igor
Да там всё костыльное на самом деле
Igor
Есть плагины под него для роутов
Igor
В принципе, как бекенд катит
WDMR
Да там всё костыльное на самом деле
это же вроде скрипты на луа прикрученные к ngnix? )
Igor
Ну да
Igor
Но в своё время это было популярным и прикольным решением
Igor
Правда, с того момента прошло лет 10
WDMR
Не а )
если глянешь расскажи какие впечатления)
Snusmumriken
что там вообще есть?
То же что во нгинксе: проксирование, балансировка, некоторая защита от ддоса, скриптики на манер какого-нибудь апача (cms-ки есть), отдача статики, тесное слияние со всякими кешами и прочим. Всё дичайше быстрое и асинхронное на всём io. Ну как уже везде.
Snusmumriken
Ну собсно рестя это нгинкс и есть, в который впаяли луа на каждый чих.
Snusmumriken
Луёвые скриптики типа см. выполняются на стороне самого нгинкса а не всякими cgi, поэтому скорость приличная и лишние потоки/приложения не открываются.
Snusmumriken
ну зачем так, есть же content_by_lua_file )
Потому что я могу и мне пофигу. Это моя песочница, с автоперезагружателем конфига по изменениям в нём и отладке )
RapidCodeLab
вообще связка отличная, использовал ранее
Snusmumriken
Правда, с того момента прошло лет 10
Всё ещё популярное, всё ещё прикольное, инфа сотка. Некислую часть костыльности за эти десять лет плавно пофиксили.
Snusmumriken
Снус смотрел redlang?
Ой какая смешная хренька, она визуальная на манер labview?
Snusmumriken
Это то что я нашёл по redlang
Anonymous
Snusmumriken
Пикча как раз оттуда.
Денис
Ребята, всем привет! Весьма радостно найти крупицы комьюнити там, где я уже отчаялся его найти. Кто-то может показать как пишутся фабрики итераторов в Lua? Мне теория не поможет, поскольку я практик. Но может у кого-то есть некое количество примеров? Я честно попытался почитать теорию, но так нифига и не понял...
Igor
Ребята, всем привет! Весьма радостно найти крупицы комьюнити там, где я уже отчаялся его найти. Кто-то может показать как пишутся фабрики итераторов в Lua? Мне теория не поможет, поскольку я практик. Но может у кого-то есть некое количество примеров? Я честно попытался почитать теорию, но так нифига и не понял...
итератор по сути своей - это функция, которая возвращает другую функцию. Вложенная функция будет выполняться, пока не вернёт nil. В верхней ты можешь подготовить вложенную к работе. Вот пример моего итератора, который по директории проходится и возвращает файлы/папки, соответствующие вайлдкарду заданному. З.Ы. Писал его для love2d
Igor
Итератором, кстати, может быть и одна только функция, без вложенной. Таким образом for key, value in next, mytable do ... end - это аналог pairs() итератора.
Igor
но так-то механика итераторов лучше всего была описана в доке по luafun https://luafun.github.io/under_the_hood.html#iterators
Ага, там ещё про тонкости итераторов жита говорилось, если я правильно помню
Igor
Ща, пять сек
Igor
Вот, пример
Денис
Ага, там ещё про тонкости итераторов жита говорилось, если я правильно помню
Вот за этот материал мое искреннее почтение! Стало проясняться!
Snusmumriken
Хорошо. А как тогда работают фабрики итераторов в метатаблицах? Если Lua видит в метатаблице, например, поле __pairs, она вызовет его вместо того, который находится наверху в _G, верно?
"Фабрика итераторов" как-то громко звучит ) Если это "ООПшная фабрика" то это нечто, должно выдавать разные итераторы на разные задачи, как бы ПРОИЗВОДЯ итератор на заказ. Так-то ты спрашиваешь про "перегрузку итераторов" — она к сожалению работает только в Lua 5.3+, что не есть фабрика а просто замена одних итераторов на другие через метатаблички.
Snusmumriken
Типовые разнородные итераторы можно глянуть например тут: https://pastebin.com/ZvejNYr3 — stateless-итераторы вроде sipairs https://pastebin.com/G8nvJ0Bi
Snusmumriken
А, тут только нет итераторов с "return function() .... end"-функциями, потому что это дорого, но эти примеры уже есть в чате.
Snusmumriken
Во, ещё stateless-итератор по utf8-символам, тоже клёвая штучка.
Snusmumriken
У stateless—итераторов есть только одна проблема — они, собственно, являются "stateless", то есть не могут удерживать состояние, и являются глубоко ограниченными стандартом. Если итератор достаточно сложен, должен возвращать больше аргументов чем 2 или ты банально хочешь изменить их порядок при выдаче в for, то тебе придётся создавать итератор под каждый итерационный цикл, или генерировать функцию/табличку удерживающую состояние. При пакетной обработке кучи одинаковой фигни — дороговато выходит, причём на пустом месте.
Денис
В общем, с вашего добродушного пинка понял что это такое. Спасибо всем! ``` function stringfields(str, delimiter, mode) str = tostring(str) if mode == nil then mode = true end delimiter = delimiter or ({[true]=" ",[false]="%s"})[(mode == true)] local t, spos = {}, 1 while string.find(str, delimiter, spos, mode) ~= nil do local startFindPos, endFindPos = str:find(delimiter, spos, mode) table.insert(t, str:sub(spos, startFindPos-1)) spos = endFindPos+1 end table.insert(t, str:sub(spos)) return next, t end for block, field in stringfields("The quick brown fox jumps over the lazy dog") do print("Block index:", block, "Field:", field) end ```
Snusmumriken
Обрамляй код тремя ```. Или на пк нажимай ctrl + shift + m на выделенный текст.
Денис
Snusmumriken
local M = {} local function sipairs_next(tbl, index) index = index + 1 local v = tbl[index] if not v then return end return index, v end -- strait ipairs with optional start index function M.sipairs(tbl, index) assert(type(tbl) == "table", "Arg #1 error: table expected, got " .. type(src)) index = index or 0 index = index > 0 and index - 1 or index return sipairs_next, tbl, index % #tbl end Читы.
Snusmumriken
Или на пк/телефоне выдели текст и выбери в менюшке mono. Это просто хороший тон, а разбирать портянки без форматирования — говно затея.
Snusmumriken
Это не совсем md, это mono-шрифт с сохранением формата.
Snusmumriken
Я знаю что Денис имеет ввиду, и это не совсем md, это просто mono. Но реализовано так же как в md — инлайны через "`" и мультилайн через "```".
Snusmumriken
Пример того как это отображается в стандартных клиентах. У тебя в Unigram иначе?
Денис
Ребят, я обобщенные скриншоты могу понять, а конкретные к сожалению - нет. Дело в том, что у меня нет зрения))) Обобщенные я могу отправить в сервис описания изображений, а конкретные, как, например, код весьма хреновастенько распознаются***
Snusmumriken
Нет зрения это как? Озвучиваешь сообщения?
usernameak
oh.
Snusmumriken
Да, проблемка.
Snusmumriken
Восстановил ссылку https://www.nvaccess.org/
usernameak
Да, проблемка.
тогда могу догадаться почему он юзает юниграм тдесктоп ужасно работает с любыми методами ввода-вывода кроме клавомыши и графики
Snusmumriken
Ну и все требования к форматированию становятся бессмысленными, и цепляния к терминологии в целом тоже :)
Snusmumriken
В общем, когда вставляешь код, постарайся его при вставке обрамить чем-то, и если там имеется табуляция и прочее форматирование, постарайся его сохранить.
Snusmumriken
Моя привычка править сообщения, кстати, небось приводит к требованию переслушивать, мдя.
usernameak
Ну и все требования к форматированию становятся бессмысленными, и цепляния к терминологии в целом тоже :)
в юниграме оно таки работает. сам его юзаю на машине с тачскрином, ибо в тдесктопе тачскрин работает ужасно :)
Денис
Моя привычка править сообщения, кстати, небось приводит к требованию переслушивать, мдя.
У меня такая скорость синтеза речи, что на ппрослушивание сообщения я трачу секунду может))) Так что не переживайте)))
usernameak
даже страшно представить, насколько жутко таким образом кодить :)
Snusmumriken
Забей, люди придумали очень много вариантов всего. Основная проблема — требование удерживать в голове очень много инфы разом, и тем или иным образом визуализировать деревья вложенности, которые обычно просто видны через ту же табуляцию.
Snusmumriken
Но и к этому привыкаешь.
Денис
Забей, люди придумали очень много вариантов всего. Основная проблема — требование удерживать в голове очень много инфы разом, и тем или иным образом визуализировать деревья вложенности, которые обычно просто видны через ту же табуляцию.
Даже отступы можно отслеживать, причем, как тебе удобно: можешь озвучкой количества отступов, можешь тональными сигналами и полагаться на его высоту: чем выше, тем дальше отступ
usernameak
зрение кажется такой базовой вещью, что все равно весьма сложно представить как справляются слепые :)
Денис
А вообще, привыкаешь конечно. Когда ты за компьютером сидишь около двадцати лет, вопросов не возникает вообще)))
Snusmumriken
Представь любой способ которым с этим можно справиться, и он уже будет реализован
Snusmumriken
А нейросетки распознающие изображения это вообще красота, свежее веяние
Денис
А нейросетки распознающие изображения это вообще красота, свежее веяние
Хотел пальца вверх ткнуть, а в группе реакшны отключены 😉
Snusmumriken
Лично меня больше всего упарывает адаптируемость тушки организма человека, где-то наблюдал примеры использования отделов кожи или языка в качестве зоны восприятия зрением. Мол, прикладывается матрица из электродов, на которую подаётся чёрно-белый сигнал с камеры, возбуждающий нервные окончания, и зрение как бы частично возвращается, воображение начинает рисовать картинки и так далее. Очень крутая технология, вопрос только размеров матрицы.
Snusmumriken
И желательно чтобы у человека был опыт наличия зрения, чтобы было с чем сопоставлять полученные сигналы.
Денис
Лично меня больше всего упарывает адаптируемость тушки организма человека, где-то наблюдал примеры использования отделов кожи или языка в качестве зоны восприятия зрением. Мол, прикладывается матрица из электродов, на которую подаётся чёрно-белый сигнал с камеры, возбуждающий нервные окончания, и зрение как бы частично возвращается, воображение начинает рисовать картинки и так далее. Очень крутая технология, вопрос только размеров матрицы.
Ну, если про это здесь немного можно пооффтопить, то это все фигня. Оно так и не получило популярности. Были презентации проекта, привлекались подопытные, но на этом все и закончилось. Так что живем по старинке. Ну, максимум, что шагнуло вперед - это нейросетки. Сейчас даже можно спокойно вывески с помощью смартфона читать, правда подписки на это добро стоят, как крыло от Боинга.