fgntfg
Программирование без полной клавиатуры - боль
Lucky
Добрый дяденька Клаус позаботился об этом, нытики.
Lucky
https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard&hl=en
Lucky
и лучше ставить сразу luajit
Lucky
или плеер движка с jit
Lucky
пример игрушки для потестить https://github.com/tylerneylon/termtris
Lucky
https://github.com/soumith/sunfish.lua
Maxim
https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard&hl=en
мне эта клава не зашла, может не смог настроить так чтоб было удобно, но черезе неделю решил прекратить попытки
Snusmumriken
мне эта клава не зашла, может не смог настроить так чтоб было удобно, но черезе неделю решил прекратить попытки
А мне только такая клава зашла под кодинг на телефоне :< Остальными получается о-о-очень медленно, печатаешь в двадцать раз медленнее чем думаешь.
Snusmumriken
Змейку игрульку например?
Win10, тут добавили фичу escape-последовательностей. ru.wikipedia.org/wiki/Управляющие_последовательности_ANSI Правда, ввод с клавиатуры через winapi/ffi, так просто его не получить.
Snusmumriken
Очистка экрана, рисование символов на нужных координатах (через escape-последовательности)
Anonymous
А курсесы тоже через них рисуют?
Snusmumriken
Ну там, типа io.write('\27[22;32f#') — нарисовать символ решётки на координатах 22, 32
fgntfg
Помню была функция gotoxy
Snusmumriken
Курсесы на линуксах рисуют и через них тоже, насколько я знаю (там миллиард "драйверов" для всевозможных терминалов). А под вендой через винапи, потому что под вендой эти escape-последовательности вылезли только в десятке, до этого только сишные функции руления окном консоли.
fgntfg
Для такого
fgntfg
И всегда есть пробелы и \n
Snusmumriken
Не совсем. Кстати, очистка экрана командой '\27[2j' — гораздо быстрее чем cls. А ещё можно очистить только часть экрана. А ещё вывод по координатам тоже гораздо быстрее, ибо вывести нужно не так много символов, а не весь экран.
Snusmumriken
Карочи, для реалтайм-игрушек это весьма актуально. Ах да, перемещение курсора позволяет очищать и перерисовывать не весь экран, а опять таки только его часть. Если у тебя сложные интерфейсы, будет лютое мерцание при полной перерисовке.
Snusmumriken
Я же дал ссылку на википедию "Управляющие последовательности ANSI"
Snusmumriken
Ну, то есть упоминающаяся там CSI это как раз "\27[", а дальше один или несколько символов модификатора. Можно менять цвета в консольке! И ещё много всего. CSI [символ(-ы) режима] n1 ; n2... [замыкающий(-ие) символ(-ы)] буква
Snusmumriken
Шикарно!!
В результате я всё равно бегаю с ноутбуком (или gpd win).
Maxim
Ну, то есть упоминающаяся там CSI это как раз "\27[", а дальше один или несколько символов модификатора. Можно менять цвета в консольке! И ещё много всего. CSI [символ(-ы) режима] n1 ; n2... [замыкающий(-ие) символ(-ы)] буква
в zbstudio столкнулся с подобным, когда решил изменить светлую тему на темную, чтоб глаза не болели. Был очень удивлен как реализована смена темы да и сама тема
Вилби
😳
Snusmumriken
Я же типа описал : )
Snusmumriken
Даже маленькую либу накатал (для личного пользования). https://pastebin.com/cP5DF4AM Доки нет, читаем функции.
Вилби
Не, я еще видимо не готов это понимать
Вилби
Щас почитаем
Snusmumriken
Оно может так сразу не работать (если консоль в режиме не-ascii/unicode а cp1251, поэтому в начале выполняем os.execute('chcp 65001'), а потом terminal:cls(), чтобы убрать вылезший текст о смене кодовой страницы)
Вилби
Так хочется что то сделать уже!!))))
Вилби
Чтоб работало))
Snusmumriken
А для ввода с клавиатуры, я дёргал ffi. Вот тут исходный код самой змейки. https://pastebin.com/X3ynm99t Загуглишь коды всех клавиш, а то тут только коды стрелок. Запускать на luajit или дёргать библиотеки перехвата зажатых клавиш.
Вилби
Что за переменная "Msg" в Луа? где ее применять можно? Я ее print'ом пока заменяю у меня не работает
Snusmumriken
Нет такой. Только если ты её сам объявишь. Где её нашёл?
Snusmumriken
Это не луа, это гмод добавил. https://wiki.garrysmod.com/page/Global/Msg
Maxim
Эммм...
вы же не вслепую пишете код, а с использованием отладчика который показывает все что происходит в данный момент, верно?
Вилби
Понятно
Вилби
Интеграция
Snusmumriken
вы же не вслепую пишете код, а с использованием отладчика который показывает все что происходит в данный момент, верно?
(отладчик не покажет переменные, добавленные сторонним интерпретатором типа гмодовского)
Maxim
(отладчик не покажет переменные, добавленные сторонним интерпретатором типа гмодовского)
наверное, я не работал с gmod, но ngx в openresty отлично отображает и без дэбагера я бы ни за что не смог прикрутить сервис обработки изображений libvips
Lucky
Lua - встраиваемый яп. Поэтому, копируя код откуда-нибудь, смотри api той фигни, откуда копируешь.
Snusmumriken
Да, это я тут извращенец, калякаю на луа в чистом виде всякую ерунду. А ты у нас юзаешь инструменты, пользующиеся луёвыми услугами, так что читай доку к своим инструментам, они расширяют луа своими штуками.
Lucky
https://wiki.garrysmod.com/page/Global/Msg
Maxim
Да, это я тут извращенец, калякаю на луа в чистом виде всякую ерунду. А ты у нас юзаешь инструменты, пользующиеся луёвыми услугами, так что читай доку к своим инструментам, они расширяют луа своими штуками.
http://notebook.kulchenko.com/images/zerobrane-studio-moonscript-debugging.png Мне кажется что этот инструмент можно использовать в различных сферах и с его помощью дэбажить все подряд
Snusmumriken
наверное, я не работал с gmod, но ngx в openresty отлично отображает и без дэбагера я бы ни за что не смог прикрутить сервис обработки изображений libvips
На самом деле, было бы круто написать мегакрутой сетевой отладчик. А ля приложение открывает порт, ты ставишь брейкпоинт (dbg:break()), и через тот же браузер залезаешь в потроха приложения и смотришь что там происходит. Это было бы универсально, хоть и потребовало каких-нибудь луасокетов. В ловке есть подобный отладчик, но он требует исполнения в цикле.
Snusmumriken
http://notebook.kulchenko.com/images/zerobrane-studio-moonscript-debugging.png Мне кажется что этот инструмент можно использовать в различных сферах и с его помощью дэбажить все подряд
Кстати, ты тут имеешь доступ к переменным нгинкса? Ну там, можешь вывести список переменных добавленных нгинксом, или только через remote debug?
Maxim
Кстати, ты тут имеешь доступ к переменным нгинкса? Ну там, можешь вывести список переменных добавленных нгинксом, или только через remote debug?
так точно, все переменные nginx которые есть на текущий момент будут отображены в окошке включая их текущее значение
Snusmumriken
А как это работает? Zerobrane подключается теми же сокетами к нгинксу? Потому что он не может просто взять, и запустить это всё в нгинксе под своим контролем, нгинкс сам запускает (по запросу) и не даёт другим просто так в нём ковыряться.
Snusmumriken
Да, ребзя, снова наступило время когда вас можно поздравить! Уже прошла четверть века с момента рождения человека, которому мы все благодарны за его неоценимую помощь и восхитительные человеческие качества! Аве @Snusmumriken!
Pavel
но поздравлямс
Snusmumriken
скромно
В этом и прекол
Congratulations.
Вилби
Да, это я тут извращенец, калякаю на луа в чистом виде всякую ерунду. А ты у нас юзаешь инструменты, пользующиеся луёвыми услугами, так что читай доку к своим инструментам, они расширяют луа своими штуками.
А чего такого? Это же супер что можно писать на Луа чисто проги. Ведь он и создан как отдельный язык изначально. Но почему он не распространен так?
Snusmumriken
Еее! Всем спасибо! > Но почему он не распространен так? Потому что мало либ на каждый чих и почти отсутствует реклама. Луа супер распространена в области геймдева как встраиваемая фиговина, и как дёргаемые скриптики в куче приложений, но какой-нибудь питон лучше пиарился и ему писали огроменную стандартную библиотеку. На браузерной стороне только JS без вариантов, для системного проганья только C/C++ почти без вариантов (пардон, rust/go, ваше время ещё придёт), жава/шарп в интырпрайзе тоже хорошо рекламились и там тоже всё ок с либами под интырпрайз. А луа — она маленькая.
Pavel
у питона лучше с типами данных. нет монстра в виде таблиц.
Pavel
эо если говорить о синтаксисе и не вдаваться в детали. прямо сейчас рантайм питона невероятно богат
Snusmumriken
у питона лучше с типами данных. нет монстра в виде таблиц.
Да ну тебя, таблицы не монстры. Они даже не жрут больше чем нужно. Пока ты используешь массивную часть таблиц, они остаются массивами, превращаясь в хеши только когда добавляешь не числовые [uint] ключи. Таблички вполне успешно заменяют всё что угодно кроме (многомерных) битмап, там они и правда жирноваты.
Pavel
и есть куча задач где олее строгая типизация подходит в разы лучше
Pavel
даже не строгая. а более конкретная
Snusmumriken
А, ну это, классы? TypeOf(tbl) == myClass?
Snusmumriken
Вот чем мне действительно остро нравится питон, так это работой со списками. А вот отсутствие обычных циклов — не нравится, ранжи какие-то слишком генераторные, их на низком уровне не оптимизируешь. И лямбды только однострочные :< Я тут попробовал написать под pygame апишку похожую на ловку, чтобы def pygame.update(dt): bla-bla И тут приходилось капитально извращаться чтобы добавить к хешу/объекту pygame новый ключ-значение в виде функции. Типа def _upd(dt): bla-bla pygame["update"] = _upd
Maxim
Zbrane запускает дэбагер который слушает на порту и в общем это работает через socket, все верно
Maxim
Возможность пошагово пройти всю конфигурацию и увидеть все что происходит в nginx через lua - очень удобно