Highly Likely
Ну, в общем, как к этому подойти – понял
Highly Likely
Дальше дело техники, спасибо
Snusmumriken
Да, я её читал когда сам парсил пдфки ))
Snusmumriken
А, словари трансляции нужны как раз для юникода. Если там чисто ascii — такие извращения не нужны
Highly Likely
Хм, можно еще распарсить PDF’ку в JSON
Highly Likely
Учитывая однородность оформления списков
Highly Likely
И потом уже сильно упростить себе жизнь
Snusmumriken
Ну это уже зависит от того, что именно тебе выдирать в пдфке.
Highly Likely
Есть некоторые очень большие списки по такому типу:
Highly Likely
И их там на сотни страниц, по много таких блоков на страницу
Highly Likely
Превратить всё в удобоваримый json/xml выглядит резонно
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
p = hallo
x = "5"
y = p:rep(x)
--> hallo hallo hallo hallo hallo
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
how to make
--> hallo1 hallo2 hallo3 hallo4 hallo5
Anonymous
Igor
Хе, прав был @Snusmumriken на счёт этого Евгения
fgntfg
Потому что у Евгения аватар из фотобанка
fgntfg
Одна генерит лица, вторая общается после захода в чат с полчаса
Igor
Есть
fgntfg
идея для стратапа прям
Igor
Скоро так и будет
Тоня
всем привет! у нас в компании возникла идея собрать Митап по tarantool, а там глядишь и до сообщества недалеко. нам это интересно, потому что мы будем использовать tarantool в разработке облачного сервиса и навыков для голосового помощника.
хочу узнать, насколько интересна тема tarantool-а сообществу Lua 😊
чтобы не засорять эфир - напишите мне в личку, плиз📌меня зовут Тоня
Может, вам было бы интересно:
📌 послушать (или рассказать), как лучше использовать tarantool, в каких узких или широких местах
📌 маленькие истории успеха
📌 может, за tarantool будущее
Snusmumriken
Хмм, посмотри Lua In Moscow. Одним из организаторов/докладчиков/поддержателей работает mail_ru. И про tarantool там тоже говорят, сами разработчики tarantool.
Тоня
Pavel
привет, а я как раз оттуда (из мейлрушный организаторов)
Pavel
могу и докладчика вам подогнать 🙂
Snusmumriken
О, уже все на месте : )
Alxius
Какие то странные новые слова митап
Snusmumriken
Луёвых митапов проходит довольно много.
Snusmumriken
Как ни странно, немного помогает. Что-то становится на слуху, и многие пробуют потому что слышали что-то продолжительное. Это лучше чем пробовать то, о чем вообще никогда не слышал.
Pavel
Привет! Вопрос по Luarocks (на debian): были установлены модули штатным luarocks... Потом он был снесен, пакеты оставлены и поставлена актуальная версия luarocks из исходников. И он не видит пакеты, установленные до него. Пути как-то настраиваются, куда пакеты ставить?
🐅🤦♂️
Можно ставить в домашний каталог с ключом --local, можно в произвольный с ключом --tree
🐅🤦♂️
Вопрос по наследованию. У меня есть несколько классов контролов - кнопка, слайдер и тд. Есть также некоторый общий код, который может использоваться в каждом из классов. Мне хочется наследовать методы в производных классах. Пока придумал такой вариант. Норм так делать?
local Object = {}
Object.__index = Object
function Object:new(num)
local o = { n = num }
setmetatable(o, Object)
return o
end
function Object:action()
print("Object:action", self.n)
end
local Button = {}
function Button:new(num)
local o = { n = num }
setmetatable(o, self)
self.__index = function(self, key)
return Button[key] or Object[key]
end
return o
end
function Button:zoom()
print("Button:zoom()", self.n)
end
local o = Object:new(100)
o:action()
local b = Button:new(10)
b:zoom()
b:action()
Snusmumriken
Вопрос по наследованию. У меня есть несколько классов контролов - кнопка, слайдер и тд. Есть также некоторый общий код, который может использоваться в каждом из классов. Мне хочется наследовать методы в производных классах. Пока придумал такой вариант. Норм так делать?
local Object = {}
Object.__index = Object
function Object:new(num)
local o = { n = num }
setmetatable(o, Object)
return o
end
function Object:action()
print("Object:action", self.n)
end
local Button = {}
function Button:new(num)
local o = { n = num }
setmetatable(o, self)
self.__index = function(self, key)
return Button[key] or Object[key]
end
return o
end
function Button:zoom()
print("Button:zoom()", self.n)
end
local o = Object:new(100)
o:action()
local b = Button:new(10)
b:zoom()
b:action()
Вместо
self.__index = function(...) end — проще повесить метатаблицу с __index на саму Button. Быстрее работать будет, базарю, инфа сотка.
Типа
local Button = setmetatable({}, {__index = Object}) или даже
local Button = setmetatable({}, Object), если методы не перегружены и Object прописан в себе самом как __index.
Оно умеет ходить по цепочке индексов.
Snusmumriken
Snusmumriken
Но в целом, вариант с подобной функцией нормален в случае если нам совсем пофигу на производительность, но хочется какого-нибудь множественного наследования с проверкой родительских методов на абстрактность, и прочей чуши. Правда, саму функцию self.__index стоит вывести наружу как Button:__index, определить её один раз и не перетирать-пересоздавать заново с каждым новым объектом. А то не заjitуется в случае луажыта, и просто сгенерит кучу мусора в случае PUC Lua.
🐅🤦♂️
Да, именно что нужна цепочка индексов. Попробовал так Button.__index = setmetatable(Button, { __index = Object }) - то, что нужно! Доходит по-тихоньку
vvzvlad
Думаешь, он тоже хочет вступить?
Ivan
Ivan
Мне нужно сделать доку на http API. Положить ее на гитхаю чтобы другие могли править. Я знаю что это можно сделать с помощью swagger описания. Но может быть уже есть какая-то другая штука, которая лучше чем swagger и которую стоит использовать для этой задачи?
Anonymous
6
Alxius
5
Tom
4
mva
3
Roma
2
1
Пуск! Привет коммьюнити)
Кто-нибудь понимает как заставить lpeg работать с Lua 5.1?
Что я уже сделал:
- Установил lpeg через luarocks, luarocks создал в своей подпапке 5.3 файл lpeg.so который в дальнейшем удачно рейквайрится и все работает в среде 5.3.
- Скачал исходники lpeg с оф. сайта и не понял что с ними делать дальше, как из них получить lpeg.so для lua 5.1. Запустил команду make - и та отвалился с ошибкой что не может найти lua.h.
- Скопировал собранный luarocks файл lpeg.so из папки 5.3 в соседнюю паку 5.1, что позволило файлу найтись в среде 5.1, но не позволило ему зареквариться с ошибкой:
Roma
Roma
- попробовал установить две версии luarocks с разными конфигами для 5.1 и 5.3, но за недостатком инструкстажа и понимания что я делаю - что-то пошло не так.
Куда копать? )
Roma
Докопался, заработало, спасибо, дольше писал 😅
- Скачал исходники luarocks
- Запустил из них ./configure --lua-version=5.1 --versioned-rocks-dir
- После чего luarocks стал существовать для 5.1. Был для 5.3
Как все-таки поставить две версии luarocks чтобы и ту и другую можно было юзать - пока хз, но пока и так сойдет, главное он сбилдил lpeg для lua 5.1 и он работает 🙂
🐅🤦♂️
🐅🤦♂️
Roma
Roma
А что делает ключ —tree? Нет возможности посмотреть сейчас
🐅🤦♂️
Устанавливает корневой каталог, куда будут ставиться пакеты.
🐅🤦♂️
Что значит - отличать от других таблиц?
Oleg
ну свою функцию создать явно проще: насколько я знаю, нет простых способов пропатчить type
Oleg
ну на таком уровне патчить type как-то неприлично, имхо, но да, не подумал о таком)
Highly Likely
Highly Likely
Патчить ВМ — зло
Highly Likely
Только если этот код не предполагается использовать исключительно на своем продакшене
Highly Likely
Да и то нужно десять раз подумать, стоит ли оно того, с учетом того, что новые разрабы об этих патчах не знают и им придется привыкать
Highly Likely
Highly Likely
Есть, и очень простые
Highly Likely
Хотя да, менять поведение функций стандартной библиотеки идея такая себе
Highly Likely
Oleg
Если очень хочется подчеркнуть, что ты вводишь какой-то "тип", можно сделать свою глобальную функцию, украв название из другого языка) Например, typeof)
Highly Likely
Не перестаю удивляться тоталитаризму в англоязычном чатике Луа
Highly Likely
Человека кикнули с чата за то, что он не согласился с админом насчет того, что LuaJIT – не Lua :)
Snusmumriken
Ну я тож спорил, но оказался менее упёртый чем данный конкретный спорщик, поэтому меня не кикнули ))
Highly Likely
Ну Балмер там несколько упорот
Snusmumriken
Иногда, стоит взять, подумать, и сказать: "хорошо, ты прав а я неправ". Типо, гибкость и прочая конформность.
Ландон тоже упёрт, но он не админ ))
Highly Likely
Вот Marco Trosi замечательный мужик :)
Highly Likely
Snusmumriken
Если собираешься всю дорогу пробивать лбом свою истину — вперёд и с песней.
Snusmumriken
Но вот только лобик жалко, он один и замене не подлежит ))
Highly Likely
Well, imho, LiaJIT is a piece of crap software. Ymmv
Highly Likely
Maybe not crap software. But it is not Lua.
Highly Likely
LuaJIT does not implement Lua. It is not Lua. It is something different.