Totoro
-
Публикации
1 950 -
Зарегистрирован
-
Посещение
-
Победитель дней
289
Сообщения, опубликованные пользователем Totoro
-
-
Нужна стандартизация, например на ping ответ. В реальных сетях всё проще, в операционную систему заложен ответ на ping , можно попросить Сангара добавить обработчик на modem_message, если сообщение ping, отправить на адрес отправителя pong.
P.S Можно отредактировать самим.
Что бы при инициализации системы цеплялся обработчик.
Не надо нам такого, ИМХО.
Если система делает что-то без ведома пользователя, это плохо.
-
Кстати к вам, гуру Луа, встречный вопрос : смогу ли я определить - есть ли на "том конце" открытый порт ? Для приёма ?
Нет, ты посылаешь сообщения в неизвестность. Ты не можешь узнать, слушает ли кто-то.
Функция send или broadcast вернет true если сообщение было удачно послано. Но о приеме оно ничего не может сказать.
Если нужно удостовериться, что прием произошел, нужно посылать ответную мессагу. Типа "хандшейк".
-
5
-
-
Мне прямо что-то Светлячок вспомнился. Серия 12 "Мусор", где они на лету взламывали прошивку транспортного корабля.
-
Не, на самом деле да, смахивает дракон на парнокопытного. )
Я подозреваю, что так и рисуют художники драконов. Берут черепушку кого-нибудь рогатого, и дорисовывают до дракона

-
А что символизируют медальки олень (или сайгак или как его там) и жук?
Жук - этог баг.
А олень - это дракон.
Да здравствует мой художественный скилл.

-
Выходные, никуда бежать не надо. Поэтому встал с утра и сделал еще пару медалек под хорошее настроение.


-
6
-
-
Я уже давно сказал, что на форум последние пару месяцев ничего не заливается нового из программ, вон только Стив код своего вируса, да констант выложил и все тишина.
Ладно я недокодер, от меня мало что можно ожидать из программ.
Но вот остальные? Да ты Тоторо перешел давно в режим реад-онли. Крутой, Зеро и другие ветераны, которые еще аж в 14 году создавали крутые прибамбасы (чего стоит только ОпенНет) тоже сейчас "ушли на дно"...

Ну ты как-то черезчур пессимистично на это смотришь.
Буквально пять минут назад вышеупомянутый Крутой (и evgkul) зарелизил транслятор MoonScript для OpenComputers

У меня лично становится меньше времени, и в свободные часы я занят репозиторием (работаем вместе с Фингером).
Ты прямо ждешь какого-то конвеера. Программирование - это искусство )
-
3
-
-
Запомните золотую цитату Алекса:
Хотите кодить - заходите в синглплеер
У меня все. Спасибо за внимание!
Если честно, я в этом вопросе солидарен с Алексом.
Кодить надо в сингле. А сервак - полигон.
Ну и завлекалочка для новичков.
Ну и что-то типа коллективного места для дружеского AFK.

P.S. Поскольку я не играю на проекте, и сижу исключительно на форуме, вы можете с чистой совестью объявить мое мнение "пристрастным" и "субъективным".

-
1
-
-
А, простите, нафига так жестоко пахать в игре?
- Задроты, сэр.
-
6
-
-
Будет ОЧЕНЬ лагуче, компилятор - либа, сделанная из lua, lpeg и moonscript через emscripten, а cgi умеют почти все веб-сервера
Ну, вот эта хрень же работает: http://moonscript.org/compiler/
Можно попробовать на серверную часть то же самое свалить.
UPD. Хотя да, ты прав. Будет лагуче.
-
Я имею ввиду, что один из вариантов - поднять на стороннем серваке "компилятор" MoonScript.
По ссылке что я кидал как раз его реализация на JS. То есть поднять вообще ноль проблем.
А на компе OC написать несложный клиент, который будет стучаться на сервак и получать транслированный код.
-
Меня больше волнует в процессе портировании LPeg
Там вроде на debug только эмуляция getfenv/setfenv. Если найдём замену LPeg - можно будет найти какой-то парсер Lua и сделать таблицу с функциями и их сырцами
И, мне кажется, всё это дело проще вынести на c9/openshift/другой хост - на опенкомпах будут ЛАГИ
Если выносить на сторонний сервак, то можно тогда вообще заюзать https://github.com/leafo/moonscript-javascript
-
И да, я уже несколько раз пытался пересобрать moon компилятор под ОС, но потратив десятки часов изучения исходников остановился на поиске решения с заменой debug функций, отмененных в ОС, но использующихся при компиляции.
Буду рад сотрудничать в этом направлении, так как хочу сделать moon-интерпритатор и возможность запускать .moon файлы прямо из OpenOS.
Вот я в ту же тему думаю сейчас. Хочу почитать исходники и подумать, как этом можно сделать.
В идеале надо будет собрать в виде пакета для OPPM или нашей новой репы.
В общем, будет желание - подрубайся к IRC (http://webchat.esper.net/?channels=cc.ru ), я там почти каждый день.
А почему бы, для установки Debian + Lua5.3 не сорганизовать bat-ник ? Чтобы автоматом устанавливало и фиксило.
Ну, это просто частный случай же. Я показал, какие действия нужны для того чтобы это поднять на локальной машине,
и какие потенциальные грабли могут встретиться.
Если ставить это все под Lua 5.1, то ошибок вообще не должно быть.
А вообще можно и скрипт соорудить. Если сделаешь что-нибудь такое, кидай ссылку, я прикнопаю к первому посту. =)
-
Итак, устройтесь поудобнее у ваших голубых экранов.
Сегодня я научу вас програмировать во Имя Луны!
Мы привыкли писать программы для OpenComputers на Луа. И при этом не задумываемся о том, что язык Луа в OpenComputers - это по сути "язык низкого уровня".
На нем мы пишем все - начиная от прошивок BIOS и операционных систем, и заканчивая чатиками для OpenGlasses.
Однако, когда объем кода не имеет решающей роли, и есть время для медитации, программист может дать душе отдохнуть, используя красивые конструкции высокоуровневых языков.
И таким языком сегодня станет MoonScript.
# Что это такое?
MoonScript - это язык с интересным и лаконичным синтаксисом. Он позволяет использовать привычные конструкции ООП (объектно-ориентированное программирование) и ФП (функциональное программирование) в сеттинге Луа.
Сам автор называет его "CoffeeScript for Lua".
Код на MoonScript хранится в файликах с расширением *.moon и транслируется в обычный код Lua. Который может затем быть выполнен на компьютерах или роботах OpenComputers.
Плюсы:
* краткий и красивый код (субъективно)
* изучение нового, интересного (объективно)
Минусы:
* Транслированный код хуже читаем, и немного объемнее, чем аналогичный код, написанный изначально на Луа
# Установка
Приведу пример установки для Debian + Lua5.3. Если у вас другая OS - смотрите соответствующие инструкции по ссылкам.
1) Lua (https://www.lua.org/start.html)$ sudo apt-get install lua5.3
2) Пакетный менеджер LuaRocks (https://luarocks.org/#quick-start)
Для его установки возможно потребуется пакет liblua5.3-dev.
Установим его командой:$ sudo apt-get install liblua5.3-dev
Далее следуем инструкциям с официального сайта:
$ wget http://luarocks.org/releases/luarocks-2.3.0.tar.gz $ tar zxpf luarocks-2.3.0.tar.gz $ cd luarocks-2.3.0 $ ./configure; sudo make bootstrap
3) Ставим пакеты MoonScript (http://moonscript.org/#installation)
$ sudo luarocks install moonscript
Теперь в системе появятся программы moon и moonc. Ура!
К слову, при их запуске может вылетать ошибка типа/usr/local/share/lua/5.3/alt_getopt.lua:24: attempt to call a nil value (global 'module')
Это происходит потому, что moonscript давненько уже не обновлялся, и использует устаревшее ключевое слово module.
Фиксится при помощи правки файликов alt_getopt.lua и moon.
В файле alt_getopt.lua необходимо закомментировать 24 строку (module ("alt_getopt")) и дописать в самый конец строкуreturn {get_opts = get_opts, get_ordered_opts = get_ordered_opts}В файле moon исправляем вторую строку на
local alt_getopt = require("alt_getopt")Все это в нашем случае можно сделать командами:
$ sudo gedit /usr/local/share/lua/5.3/alt_getopt.lua $ sudo gedit /usr/local/lib/luarocks/rocks/moonscript/0.4.0-1/bin/moon
Все! MoonScript установлен, пропатчен и готов к работе.
# Подсветка синтаксиса
Очень рекомендую писать код в редакторе заточенном под код. Чертовски удобно, поверьте.
Для MoonScript существуют пакеты подсветки синтаксиса для разных редакторов.
1) Sublime Text / Text Mate - https://github.com/leafo/moonscript-tmbundle
2) vim - https://github.com/leafo/moonscript-vim
3) Atom - https://atom.io/packages/language-moonscript
4) Textadept - https://github.com/leafo/moonscript-textadept
# А теперь - магия!
Для примера, я переписал код библиотечки Braille Bicycle с использованием MoonScript.
Теперь она использует ООП подход (привет, @Krutoy
).
http://pastebin.com/NQc7JCH3
Этот файлик я потом "откомпилировал" в Lua простой командой:$ moonc braille.moon
И получил на выходе рабочую библиотеку braille.lua.
Далее, заливаем ее в OC и пишем простой тестовый код:local gpu = require('component').gpu local braille = require('braille') local matrix = braille.Matrix(8, 8) matrix:line(1, 1, 8, 1) matrix:set(1, 2); matrix:line(4, 2, 5, 2); matrix:set(8, 2) matrix:set(1, 3); matrix:line(4, 3, 5, 3); matrix:set(8, 3) matrix:line(1, 4, 3, 4); matrix:line(6, 4, 8, 4) matrix:line(1, 5, 2, 5); matrix:line(7, 5, 8, 5) matrix:line(1, 6, 2, 6); matrix:line(7, 6, 8, 6) matrix:line(1, 7, 2, 7); matrix:line(4, 7, 5, 7); matrix:line(7, 7, 8, 7) matrix:line(1, 8, 8, 8) gpu.setForeground(0xC61331) matrix:render(gpu, 14, 12) matrix:render(gpu, 46, 12) gpu.setForeground(0xFFFFFF) matrix:render(gpu, 30, 12) matrix:render(gpu, 62, 12)И вуаля! Работает.

# Игровая трансляция
Все это хорошо, но иногда может быть полезна возможность использовать *.moon исходники прямо из OC, без предварительной компиляции.
Уже поздно, поэтому расскажу об этом как-нибудь в другой раз.
Скажу лишь, что помимо всего прочего, у MoonScript есть такая любопытная тулза, как онлайн "компилятор". Его можно найти вот здесь:
http://moonscript.org/compiler/
# UPD
Товарищи @Krutoy и @evgkul выпустили транслятор MoonScript на чистом Луа, что позволяет запускать и "компилировать" программы MoonScript прямо из OpenOS.
Заценить и потестить можно по этой ссылке:
https://github.com/evgkul/moonscript-opencomputers
Пишите багрепорты (сюда или на GitHub), и отправляйте свои пуллреквесты, чтобы улучшить программу.
# UPD 3
Добавил MoonScript в репозиторий. Теперь можно установить его и потестить всего одной командой:
hpm install moon
-
12
-
-
Предлагаю создать антимонопольный орган. Нашёл модератор монополиста - сразу
расстрелбан на день с конфискацией имущества.Братья монополисты! Нашу свободу душат! Восстанем против произвола и за свободу монополизма!
-
2
-
-
Да никто не будет писать для этого проги. Написать прогу означает сделать рамки для торговли. А это уже не свободная торговля.
...
Это лишнее усложнение.
Свободная торговля - это красная тряпка для монополиста )
В ком-нибудь спит монополист-энтузиаст?
Предлагаю идею: создать бренд, монополизировать торговлю на серве, задушить конкурентов и завладеть экономикой.

-
2
-
-
... А еще любые предметы должны разрушаться, деревянные домики – гнить, сундуки, забитые едой – покрываться плесенью, кубики из грязи должны размываться дождями, и даже каменные столбы должны однажды упасть. ...
Долой ванильно-няшный майн! Даешь темное фентези!
-
3
-
-
Я так думал в начале о телепортах, но каким образом сделать защиту от подмены информации?
Тут надо хорошенько подумать.
Можно сделать так: при оцифровке предмета пакет подписывается уникальным ключом. Этот ключ запоминает мод.
Далее пакет с таким ключом может быть один раз материализован, после чего мод удаляет / деактивирует этот ключ.
Это позволит избежать дюпов.
А вот чтобы твои кровные алмазики не увели злобные хакеры - уже надо будет беспокоиться игроку.
Делать шифрование, защищенные сети, передавать на дискетах и т.п.
-
1
-
-
удобно? да это чит читов тогда будет. Не нужны ни моды торговые, ни письма, ни эндерчесты, ни квантовые мосты. Метай рес, как дед морковку, по серверу, и в ус не дуй.

Это было бы интереснее в виде мода на оцифровку предметов.
Кладешь в "оцифрователь" стак железа, тратишь N гигаватт энергии и шлешь пакетом по сети.
А с другой стороны Вася подрубает "молекулярный принтер", тратит еще N гигаватт и "материализует" себе стак обратно.
Апишку к этим блоками написать.
Под такое дело и сети бы пробрасывались активнее. )
Идет такой Петя по дороге от спавна, а над ним - по WiFi летают гигабайты урановой руды.

-
3
-
-
Конекретнее. Как именно оптимизировать?
Я не про твой код. Это просто абстрактные рассуждения.
А что там с большими числами, удалось метачисла присобачить?
-
А потянут ли опенкомпы что-то серьёзное?
В рамках своих лимитов на количество действий в тик / памяти. Если оптимизировать как следует, можно и что-нибудь интересное запустить.
-
Тебе лекцию написать? Это сложно. Она просто в зависимости от уроков будет отвечать на определенный вход.
Да, я знаю что сложно. Не надо лекцию.
Просто привер ввода и поведения. Чтобы запустить и поиграться.
Что оно умеет делать. Чему можно научить.
-
Расскажи для непосвященных, что оно делать умеет?
-
Дак в том то и дело, что ничего и начать делать даже не успеваешь, как стая коршунов налетает и все хейтит на корню с дикими криками

И желание пропадает вообще что-либо крутить.
Непорядок.
А сама тема еще осталась где-то в архивах?
Можно допилить же.
Мои медальки повесить, чтобы не было белых зубчиков


Репозиторий программ на Lua
в За пределами Minecraft
Опубликовано: · Изменено пользователем Totoro
А вот забегал бы ты в IRC, и не было бы таких мыслей.
https://github.com/MoonlightOwl/hel