Krutoy
Гуру-
Публикации
482 -
Зарегистрирован
-
Посещение
-
Победитель дней
72
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Krutoy
-
Спасибо, стараюсь. Жаль правда, что крутыми черепашками никто не пользуется, хотя они лучше и этого браузера и других программ добычи. В браузере будет функция "встроенных стилей" для определенных сайтов. Это значит, что можно будет иметь набор CSS для изменения внешнего вида сайтов, поправляя косяки.
-
Итак, начинаю большой проект - браузер реальных HTML страниц для OpenComputers. Всё началось с того, что я решил прикрутить скроллинг лога моего интернет-сервера. Потому я понял, что для этого мне нужно будет подключить GUI, и решил что это будет GML. Но мне не нравилось, что весь код контролов там распологается в одном файле. Я начал разделять отдельно. Потому я понял, что нужно перевести его .gss формат стилей на всем известный CSS, для большей понятности. От этого мне захотелось сделать методы контроллов больше похожими на DOM-элементы... И тут понеслось. Очнулся через 5 дней усиленного изучения Document Object Model, CSS стилей, парсинга HTML и многочисленных библиотек под Lua. HTML парсер на луа я нашел, и даже его начал внедрять, но потом нашел монстра похлеще, с проработанным древом наследования и множеством других функций, хотя для него пришлось переписать парсер, так как он работал с либами на C. Пока показать могу только результат работы парсера. В коричневых областях слева оригинальный файл. Парсер перебирает его по косточкам, разбирая на отдельные теги, аттрибуты и ноды. В правой части обратная сборка документа из таблицы. В черном окне - запущенный эмулятор ОС, который просто выводит текстовые данные из страницы. Красным выделены разницы в файлах. Как видите, парсер только отбросил !DOCTYPE и в некоторых местах убрал лишние пробелы. Мне согласился помочь Zer0Galaxy и написать парсер для css файлов, а так же поиск аттрибутов в них. Браузер планируется сделать так, что бы он умел открывать настоящие веб-сайты, например http://computercraft.ru/ , и выполнять в них навигацию. Из главных фич будет быстрая отрисовка, и возможность использования библиотек как интерфейса для создания GUI. Сейчас исходники весят уже 200кб. Это будет круто.
-
Круто же! Хватай и бегом на оффорум. Популярность быстро станет твоей!
- 22 ответа
-
- 1
-
-
- opencomputers
- textures
- (и ещё 3 )
-
Скрины! Скрины давай!
- 22 ответа
-
- opencomputers
- textures
- (и ещё 3 )
-
Запускать и прогонять каждый раз файл через другой файл всем будет лень. Сделай лучше плагин для сублайма, который будет это делать автоматом при загрузке и сохранении.
-
Меня тоже огорчало, пока не пришел swg2you, и не показал goto. Там как раз без доп. условий реализуется continue: for i=1,count do if condition then goto continue end --[...] ::continue:: end
-
Мой первый пост был именно о проблеме нулевого. Я и на вопрос ответил. Нет не костыль.Эту конструкцию используют контрибьюторы в исходниках OpenComputers. Да что уж там, сам Сангар использует. Идем дальше. Открываем Github и сортируем по Lua и звездочкам. И что же показывает поиск? Все программисты самых популярных проектов на Луа используют конструкцию a and b or c. Все эти программисты тоже ходят с костылями? P.S. О тонкостях использования тернарного оператора поясняется тут. Просто не подаешь нилы вторым выражением и не паришься.
-
У меня тоже похожие чувства когда только начинал на Lua, особенно когда боялся измерять длину массива через # - а вдруг там есть nil в середине. Но со временем отпустило.И тебя как нибудь отпустит от предубеждений.
-
О, какое же это удовольствие, указать более опытному программисту что он не прав. Ты не прав! Пруф: http://ideone.com/VGZGSo :P В луа выражение "а and b or c" является заменой строчного условного оператора "a ? b : c" в других языках, например С++, за исключением случая, описанного мной.
-
"Братия и Сестры". Секта томата.
-
Я даже без тестов в интерпритаторе знаю, последний вариант выдаст 1, 4. Не помню, но кажется даже в документации где то написано, что ... можно писать только после последней запятой. Хотя я это узнал на собственном опыте. А еще, вот какой есть подводный камень: return a and b or c Казалось бы, "если а то вернуть b иначе c", но при этом если b == nil или false то всегда возвращает с.
-
>>Расскажу тебе поучительную историю, брат >>Радуйся, брат! Но у меня нет брата, только сестра.
-
А что, идея классная! Если заделаешь файловую систему на мониторе, или еще лучше, расширитель для текущей файловой системы, прославишься. Еще, мониторы можно красить и ставить впритык. Итого до ~12 мониторов на один комп, что почти 300кб.
-
Новости от Vexatos'a ! Он провел исследование не имея даже логов, и смог воспроизвести ошибку. Оказалось, что ошибка появляется еще раньше чем в ход идут функции computronix. Во всём виноват Forge, который считает текст "test.test(6)[5]" ссылкой, но не может ее запарсить, так как она содержит квадратные скобки. Этот баг будет появляться во всех серверах на Кузнице. Так что Артемка, хочешь что бы не выкидывало - проси удалить Forge. Кстати, вышла новая версия CT.
-
Я не знаю как ему дебажить. По этой информации понятно что где то в майнкрафте есть ошибка, но из тысяч строк кода не понятно где. Значит, нужно подождать пока подобные ошибки будут появляться снова с более пордобными логами. Насколько я знаю, ошибки вызывают traceback - цепочку вызовов до ошибки. Это и нужно.
-
Спасибо, но нужен полный путь ошибки, такой же как ты прошлый раз давал. Эта инфа показывает только верхушку айсберга.
-
ЛО-ГИ! ЛО-ГИ!
-
Итак, новая версия, как я и ожидал, была готова через 50 минут после того как я скинул лог Vexatos'у, разработчику аддона. Я уже кинул патч Алексу, ждем пока поставит. Vexatos изучая логи говорил, что проблема появилась из за того, что чатбокс пытался вызвать метод, хотя находился в выгруженном чанке, из за чего вызывал force-load чанка. Но этого никогда не должно произойти, так как все механизмы получают статус "недействительный" при выгрузке чанка. Какой то другой мод или сервер вызывает этот глюк, но вылазит он почему то именно на чатбоксах. Разработчик добавил дополнительные проверки, и теперь кикать больше не должно. В крайнем случае, такую ошибку в следующий раз временно можно исправить перезагрузкой сервера.
-
Дай скрин ошибки, исходник и условия когда она появляется пожалуйста. Исправлю.
- 14 ответов
-
- кнопки
- поля ввода
-
(и ещё 6 )
Теги:
-
GML уже не один год является единственным и самым продвинутым GUI для OC. Он предоставляет возможность легко создавать сложные интерфейсы. Я использовал готовый код и улучшил его. Добавлено: Поддержка юникода - раньше русские тексты отображались на половину Работа с цветом "без потерь" - до меня цвета искажались Небольшие правки, например, исправленна позиция скролла https://github.com/OpenPrograms/Gopher-Programs/tree/master/gml Документация на английском. Скриншоты старой и новой версии для сравнения: По просьбам Asummonster'а сделал GML в одном файле. Исходник: https://github.com/K...ib/gml_full.lua Теперь достаточно скачать и подключить только 1 файл: wget "https://raw.githubusercontent.com/Krutoy242/Gopher-Programs/Packed/gml/lib/gml_full.lua" gml.lua local gml = require"gml" Эта "сборка" содержит в себе файлы gml.lua, gfxbuffer.lua и default.gss. Если вам нужны остальные файлы типа canvas.lua или gmlDialogs.lua, качайте отдельно.
- 14 ответов
-
- 6
-
-
- кнопки
- поля ввода
-
(и ещё 6 )
Теги:
-
Я нашел еще один уже давно написаный поиск пути, прямо с реализацией создания карты мира у самого робота. Теперь робот может проходить лабиринты самостоятельно! Подробнее тут. Видео-презентация
-
Баг или фича? или реализация load в Lua@OpenComuters
Krutoy ответил в вопрос swg2you в Разные (отсортировать)
Да, действительно, выдает не то, что подразумевается. Но не 2,1 а 2, nil. Почему так происходит не в курсе, нужно видимо у самого Сангара спрашивать, либо копаться в реализации этого load() на гитхабе. Какой еще биндинг, Рид? Мониторов что ли? =))- 14 ответов
