usernameak
джава кстати тоже вполне норм встраивается
usernameak
но она громоздкая
Snusmumriken
Хе, я уже видел как народ пишет скриптосы для музыкальных плееров, для автоматического обновления списков интернет-радио с сайтов, делая хттп запросы и регулярками выдирая урлы.
Alexey
а если модуль на С написан под lua 5.1 он уже на 5.4.4. не запустится?
Snusmumriken
а если модуль на С написан под lua 5.1 он уже на 5.4.4. не запустится?
Если дёргает функции которые убрали по пути до 5.4.4 то нет (пока не используешь compat.h), если не дёргает — скорее всего да.
Alexey
те нужно учитывать версию . нет обратной совместимости
Snusmumriken
Не полная. Большую часть либ пишут с совместимостью, эталон 5.1, её можно использовать в 99% случаев. Это как второй питон по ряду причин.
Alexey
как понял , по разному "объявляется либа", пока слаб в терминологии
Alexey
ок, попробую запустить для 5.1 на 5.4
Alexey
ок, всем спасибо. попробуем в деле
Александр
ок, попробую запустить для 5.1 на 5.4
Луашный код скорее всего запустится, но двоичные(сишные) могут быть несовместимы
Anonymous
Мы тyт cобpaли aналитикy в РФ 500 млн активныx пользовaтeлей тeлeграм Kaждый тpетий полyчaет 1 сообщeние в дeнь с раcсылок 500 млн *30 днeй/3 = 5 млpд cообщeний в мeсяц с pаccылок Одно cоoбщeние на рынкe cтоит пpимepнo 3 pyбля ~15 млpд pyблей ежeмесячнo пpoxoдит чеpeз рaссылки)) 100-300 тыcяч в месяц тyт можeт зapaбoтaть пoчти каждый @m0908lead4bot - пoдpoбноcти тут.
Borik
500 миллионов активных пользователей Телеграм в РФ... Ага...
Alexey
Луашный код скорее всего запустится, но двоичные(сишные) могут быть несовместимы
По первым тестам так и есть . Но очень странно что так сделали. Там отличия в регистрации либы. Пара строк разница.
Alexey
Какая версия больше всего используется ?
Александр
По первым тестам так и есть . Но очень странно что так сделали. Там отличия в регистрации либы. Пара строк разница.
По моему 5.2, ибо на неё пришёлся пик популярности луа и под с ней +- держит совместимость luajit. В остальном - не принципиально, если вы встраиваете в сишное приложение, то вы встраиваете и луа. Вопрос версии вас должен беспокоить только в зависимости от совместимости версий дополнительных библиотек(не из поставки). Я бы взял 5.3 для самодостаточного проекта и 5.2(или всё равно 5.3, т.к. многие библиотеки есть и под 5.3), если бы у меня была необходимость подстраиваться под внешние библиотеки
Alexey
Вроде бы все изменения критичные к версии были после , не помню точно 5.2 далее можно уже хоть 5.4.4 . не прав ?
Alexey
Или все же в каждой версии есть зависимость ? + и больше всего либ в 5.3 ?
Александр
Вроде бы все изменения критичные к версии были после , не помню точно 5.2 далее можно уже хоть 5.4.4 . не прав ?
Ну в 5.3 были добавлены побитовые операторы, вроде библиотека utf8, частично изменён сишный интерфейс. Количество библиотек я точно оценить не могу, но предполагаю, что библиотек к 5.2 больше чем 5.1, у которой больше чем у 5.3, в особенности 5.2 больше потому, что - это версия к которой больше всего вкусностей, как уже сказал - тот же luajit
Александр
Вроде бы все изменения критичные к версии были после , не помню точно 5.2 далее можно уже хоть 5.4.4 . не прав ?
Изменения от версии к версии(5.1-5.4) вроде обратно совместимы, но не наоборот, в сишном интерфейсе изменения выраженнее, в частности в 5.3 добавлены новые операции для ВМ(побитовые) и более того были нарушения и обратной совместимости, так например я помню, как библиотеку для 5.1 мне нужно было изменять для 5.3, при том, что для 5.2 она всё ещё работала
Alexey
Как понял рекомендуете 5.2 ветку взять ?
Александр
Но в целом - зависит от задачи
Alexey
Ок, спасибо за совет . Буду пробовать .
Александр
Т.е. как уже писал - если нужные библиотеки есть для более симпатичной вам версии, то можно взять и её, если же вы вовсе не будете пользовать сторонние, прежде всего двоичные библиотеки, то вообще без разницы, более того тут даже лучше брать 5.3 или 5.4, ради синтаксических плюшек.
Alexey
Задачи это 1. Веб дашборд, управление Линукс, маршрутизатором,.2. наверно пойду в управление железом это что на линуксе, и esp.
Alexey
Тут наверно действительно будет зависеть есть ли что то готовое и либы которые нужны , есть под железо, задачу.
Александр
Тут наверно действительно будет зависеть есть ли что то готовое и либы которые нужны , есть под железо, задачу.
Поищите тогда необходимые библиотеки на luarocks и берите версию, которая больше понравится.
Alexey
Ок, спасибо
Snusmumriken
Привет Слава, куда путь держишь? :)
Igor
Привет. В lua.
Это очень длинная и тернистая дорога, не все на ней выживают...
Ярослав
Путевка на два дня
Luсky
Главное - хороший путеводитель.
Luсky
Я полистал оранжевый и настолько преисполнился, что за неделю игру написал.
Слава
Я полистал оранжевый и настолько преисполнился, что за неделю игру написал.
Что это за путеводитель? Может я преисполнюсь. И выживу все-таки.
Ярослав
Что это за путеводитель? Может я преисполнюсь. И выживу все-таки.
Ты знаешь хоть один язык программирования высоко уровня?
Слава
Ты знаешь хоть один язык программирования высоко уровня?
Но книга Иерузалимски тяжело дается. Много еще не понятного.
Ярослав
Луа основы уже знаю
Если бы ты знал другой язык программирования, то было бы легче, потому что правила и идеи одинаковые, синтаксис только другой
Слава
Можешь смело спрашивать
Ок, спасибо. Пока почитаю что до меня писали. Потом спрошу.
Слава
А работу чисто на луа реально найти? И в какой области? Для игр обычно нужны луа и С++/С#.
mva
даже в случае Resty всё равно неплохо бы знать что-нибудь ещё
Snusmumriken
А работу чисто на луа реально найти? И в какой области? Для игр обычно нужны луа и С++/С#.
Найти реально (например мой вариант) но крайне маловероятно. Но областей применения достаточно.
Ярослав
А работу чисто на луа реально найти? И в какой области? Для игр обычно нужны луа и С++/С#.
Для игр бычно нужно знание игрового жвижка. Больше всего вакансий и реальнее всего по Unity (это моя проф область), там только C#
Александр
А работу чисто на луа реально найти? И в какой области? Для игр обычно нужны луа и С++/С#.
Ну Lua ещё бывает в Cisco(CUCM), в nginx, Redis, Tarantool, Aerospike, WeeChat. В общем случае да, можно либо знать Lua на пользовательском уровне и знать ещё что-то. Либо хорошо знать Lua и допиливать интеграции\доделывать LuaJIT под нужды компании. Но тут, получается, тоже надо знать хотя бы C. Разумеется, исключения есть и можно найти работу чисто на Lua, но я бы не рассматривал это как основной вариант
Александр
Вообще можешь вот тут найти список каких-то выдающихся решений, где используется Lua
Luсky
Что это за путеводитель? Может я преисполнюсь. И выживу все-таки.
А вот тут как я писал игру "Штурман" https://instead.hugeping.ru/article/printed4/
Ярослав
Интересная вакансия "Программист Lua" — https://hh.ru/vacancy/68582185?from=share_android Отправлено с помощью мобильного приложения hh https://hh.ru/mobile?from=share_android
Ярослав
"C/Lua-разработчик (VK Реклама)" — https://hh.ru/vacancy/68239073?from=share_android Отправлено с помощью мобильного приложения hh https://hh.ru/mobile?from=share_android
wennerryle #nowar #htswasl?
ребят, привет. Не поможете сократить этот код? пытался заменить на scriptActive = not scriptActive и засунуть тернарку в sampAddChatMessage, но оно почему-то не работало(уходило в вечную перезагрузку и игра висла)
Денис
Ребят, а как в Lua провернуть убирание последней строки из вывода консоли? Код типа io.write("Hello world") io.write('\r') просто печатает новую строку... Поговаривают, что в классическом виде, если принтать через вывод, не печатающий в конце новую строку, такой финт ушами должен "Hello world" таки убрать...
Null
Ребят, а как в Lua провернуть убирание последней строки из вывода консоли? Код типа io.write("Hello world") io.write('\r') просто печатает новую строку... Поговаривают, что в классическом виде, если принтать через вывод, не печатающий в конце новую строку, такой финт ушами должен "Hello world" таки убрать...
1) ОС мы должны угадать? 2) нет, в нормальных ОС \r это просто перевод каретки в начало строки (как и по стандарту). Оно ничего не затирает. Если хочешь "затереть" - нарисуй поверх пробелов. 3) в ненормальных ОС - оно может работать переводом строки и тогда "ой" (твоя задача становится не очень выполнимой)
Null
Помню в си для самых смелых была функция для постановки курсора в любую координату. Для очистки экрана тоже есть функция. Тоже буду нудить от группы
Snusmumriken
Под вендой оно используется если стоит десятка и выше, и терминал переведён в 65001
Null
В xp работало, кажется. И в 98ой
Igor
ребят, привет. Не поможете сократить этот код? пытался заменить на scriptActive = not scriptActive и засунуть тернарку в sampAddChatMessage, но оно почему-то не работало(уходило в вечную перезагрузку и игра висла)
Присваивание нельзя кидать в аргументы функциям, сделай что-то типа lua scriptActive = not scriptActive sampAddChatMessage('Ловля ' .. (scriptActive and 'включена' or 'выключена'), -1)
Snusmumriken
У Дениса проблемы со зрением и у него озвучивалка сообщений, картинки кидать бессмысленно. Но я уже дал ссылку на вики.
Koto
CSI это символ с кодом 27 (0x1b), n - это десятичное число. Выводим "стереть от курсора до начала строки" и затем "переместить курсор в начало строки". Лучше использовать для второй операции команду H, но для этого надо знать текущую позицию курсора (номер строки). Если нужно "по-быстрому", то используем G, но не во всех консолях она поддерживается.
Snusmumriken
В целом, очистка строки escape-последовательностью это вот так: io.write("\27[F\27[K") Или так: io.write("\27[K"), надо чекнуть скриптом, вручную в терминале — первый вариант.
Koto
потому что F - из расширенного стандарта
Snusmumriken
Ну до DOS ещё доползти нужно.
Koto
Ну до DOS ещё доползти нужно.
это почему имеет значение, потому что Lua код, рабтающий с консолью, практически без изменений работает и в сетевом режиме.. а вот кто будет "на той стороне" - это может быть любой терминал, VT100, ANSI, и они не все знают про расширенные команды типа E, F, G, S, T... последние две команды - это скролл, так что его тоже нету "у всех", только из-за этого приходится городить backbuffer.
Snusmumriken
А тут уже зависит от области применения. В таких случаях проще сразу ncurses дёрнуть.
Koto
А тут уже зависит от области применения. В таких случаях проще сразу ncurses дёрнуть.
именно так мы и не можем слезть с ncurses, потому что нынешние разработчики сильно торопятся, и никто не пишет новые либы, которые покрывают все случаи... А ncurses при всём уважении, сто лет в обед =) и документации километр, и архитектура - ну скажем так, древняя
Koto
termbox - всё что мы смогли пока что =)
Snusmumriken
Так что лучшее что можно сделать на мой взгляд — сделать луёвую ООП обёртку вокруг ncurses, чтобы было относительно просто и удобно. Но без переусложнений и луёвых стейтов, чтобы можно было и просто дёргать апишку либы без особых последствий.